diff options
author | Nate Sesti <sestinj@gmail.com> | 2023-06-14 14:34:42 -0700 |
---|---|---|
committer | Nate Sesti <sestinj@gmail.com> | 2023-06-14 14:34:42 -0700 |
commit | 7b08dfd5af073dfe5b12f52d3427ae03c4313ea6 (patch) | |
tree | c25aab43f6e5932d5b37a9a5cb328a874bb2ec0a /continuedev/src/continuedev/server | |
parent | ac10d9dfe7342f1c5af1a00dbb8bb9a6b3ddb58a (diff) | |
download | sncontinue-7b08dfd5af073dfe5b12f52d3427ae03c4313ea6.tar.gz sncontinue-7b08dfd5af073dfe5b12f52d3427ae03c4313ea6.tar.bz2 sncontinue-7b08dfd5af073dfe5b12f52d3427ae03c4313ea6.zip |
feedback with unique id, patch
Diffstat (limited to 'continuedev/src/continuedev/server')
-rw-r--r-- | continuedev/src/continuedev/server/ide.py | 30 | ||||
-rw-r--r-- | continuedev/src/continuedev/server/ide_protocol.py | 4 |
2 files changed, 33 insertions, 1 deletions
diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py index f4ea1071..c53149d8 100644 --- a/continuedev/src/continuedev/server/ide.py +++ b/continuedev/src/continuedev/server/ide.py @@ -81,9 +81,29 @@ class RunCommandResponse(BaseModel): output: str +class UniqueIdResponse(BaseModel): + uniqueId: str + + T = TypeVar("T", bound=BaseModel) +class cached_property_no_none: + def __init__(self, func): + self.func = func + + def __get__(self, instance, owner): + if instance is None: + return self + value = self.func(instance) + if value is not None: + setattr(instance, self.func.__name__, value) + return value + + def __repr__(self): + return f"<cached_property_no_none '{self.func.__name__}'>" + + class IdeProtocolServer(AbstractIdeProtocolServer): websocket: WebSocket session_manager: SessionManager @@ -115,7 +135,7 @@ class IdeProtocolServer(AbstractIdeProtocolServer): fileEdits = list( map(lambda d: FileEditWithFullContents.parse_obj(d), data["fileEdits"])) self.onFileEdits(fileEdits) - elif message_type in ["highlightedCode", "openFiles", "readFile", "editFile", "workspaceDirectory", "getUserSecret", "runCommand"]: + elif message_type in ["highlightedCode", "openFiles", "readFile", "editFile", "workspaceDirectory", "getUserSecret", "runCommand", "uniqueId"]: self.sub_queue.post(message_type, data) else: raise ValueError("Unknown message type", message_type) @@ -200,10 +220,18 @@ class IdeProtocolServer(AbstractIdeProtocolServer): resp = await self._send_and_receive_json({}, WorkspaceDirectoryResponse, "workspaceDirectory") return resp.workspaceDirectory + async def get_unique_id(self) -> str: + resp = await self._send_and_receive_json({}, UniqueIdResponse, "uniqueId") + return resp.uniqueId + @cached_property def workspace_directory(self) -> str: return asyncio.run(self.getWorkspaceDirectory()) + @cached_property_no_none + def unique_id(self) -> str: + return asyncio.run(self.get_unique_id()) + async def getHighlightedCode(self) -> List[RangeInFile]: resp = await self._send_and_receive_json({}, HighlightedCodeResponse, "highlightedCode") return resp.highlightedCode diff --git a/continuedev/src/continuedev/server/ide_protocol.py b/continuedev/src/continuedev/server/ide_protocol.py index a937ad75..1d98f4a1 100644 --- a/continuedev/src/continuedev/server/ide_protocol.py +++ b/continuedev/src/continuedev/server/ide_protocol.py @@ -94,3 +94,7 @@ class AbstractIdeProtocolServer(ABC): @abstractproperty def workspace_directory(self) -> str: """Get the workspace directory""" + + @abstractproperty + def unique_id(self) -> str: + """Get a unique ID for this IDE""" |