summaryrefslogtreecommitdiff
path: root/continuedev/src/continuedev/server
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-06-06 17:50:50 -0400
committerNate Sesti <sestinj@gmail.com>2023-06-06 17:50:50 -0400
commit7af8208d0adb9586e60bd67fd6f4f321a35262d8 (patch)
treee3b5e19f9a71d1267d8cd7e1271c47a02b9641cf /continuedev/src/continuedev/server
parent42d9dadcaac714b7d6e789fbdeafb2dad04dbed7 (diff)
downloadsncontinue-7af8208d0adb9586e60bd67fd6f4f321a35262d8.tar.gz
sncontinue-7af8208d0adb9586e60bd67fd6f4f321a35262d8.tar.bz2
sncontinue-7af8208d0adb9586e60bd67fd6f4f321a35262d8.zip
trying to reliably capture terminal output in vsc
Diffstat (limited to 'continuedev/src/continuedev/server')
-rw-r--r--continuedev/src/continuedev/server/ide.py12
-rw-r--r--continuedev/src/continuedev/server/ide_protocol.py2
2 files changed, 8 insertions, 6 deletions
diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py
index 073e1dba..007eb2b4 100644
--- a/continuedev/src/continuedev/server/ide.py
+++ b/continuedev/src/continuedev/server/ide.py
@@ -76,6 +76,10 @@ class GetUserSecretResponse(BaseModel):
value: str
+class RunCommandResponse(BaseModel):
+ output: str
+
+
T = TypeVar("T", bound=BaseModel)
@@ -110,7 +114,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"]:
+ elif message_type in ["highlightedCode", "openFiles", "readFile", "editFile", "workspaceDirectory", "getUserSecret", "runCommand"]:
self.sub_queue.post(message_type, data)
else:
raise ValueError("Unknown message type", message_type)
@@ -139,10 +143,8 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
"color": color
})
- async def runCommand(self, command: str):
- await self._send_json("runCommand", {
- "command": command
- })
+ async def runCommand(self, command: str) -> str:
+ return (await self._send_and_receive_json({"command": command}, RunCommandResponse, "runCommand")).output
async def showSuggestionsAndWait(self, suggestions: List[FileEdit]) -> bool:
ids = [str(uuid.uuid4()) for _ in suggestions]
diff --git a/continuedev/src/continuedev/server/ide_protocol.py b/continuedev/src/continuedev/server/ide_protocol.py
index f42de68f..4622d6ff 100644
--- a/continuedev/src/continuedev/server/ide_protocol.py
+++ b/continuedev/src/continuedev/server/ide_protocol.py
@@ -88,5 +88,5 @@ class AbstractIdeProtocolServer(ABC):
"""Highlight code"""
@abstractmethod
- async def runCommand(self, command: str):
+ async def runCommand(self, command: str) -> str:
"""Run a command"""