Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 18 additions & 9 deletions plugin/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,18 @@
from urllib.parse import urlparse

import sublime
from LSP.plugin import AbstractPlugin, ClientConfig, DottedDict, Notification, Request, Session, WorkspaceFolder
from LSP.plugin.api import notification_handler, request_handler
from LSP.plugin.core.promise import Promise
from LSP.plugin import (
AbstractPlugin,
ClientConfig,
DottedDict,
Notification,
Promise,
Request,
Session,
WorkspaceFolder,
notification_handler,
request_handler,
)
from typing_extensions import override

from .constants import (
Expand Down Expand Up @@ -52,6 +61,7 @@
from .template import load_string_template
from .types import (
AccountStatus,
CopilotDocType,
CopilotPayloadCompletions,
CopilotPayloadConversationContext,
CopilotPayloadConversationEntry,
Expand Down Expand Up @@ -530,13 +540,12 @@ def _handle_status_notification_notification(self, payload: CopilotPayloadStatus
self.update_status_bar_text()

@request_handler(REQ_CONVERSATION_CONTEXT)
def _handle_conversation_context_request(self, payload: CopilotPayloadConversationContext) -> Promise[Any]:
if not (session := self.weaksession()):
return Promise.resolve(None)

skill_id = payload.get("skillId")
def _handle_conversation_context_request(
self, payload: CopilotPayloadConversationContext
) -> Promise[CopilotDocType | None]:
if (
(skill_id == "current-editor")
(session := self.weaksession())
and (payload.get("skillId") == "current-editor")
and (window := session.window)
and (wcm := WindowConversationManager(window))
and (view := find_view_by_id(wcm.last_active_view_id))
Expand Down
Loading