summaryrefslogtreecommitdiff
path: root/continuedev/src/continuedev/server
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-07-02 21:59:11 -0700
committerNate Sesti <sestinj@gmail.com>2023-07-02 21:59:11 -0700
commit527c5c7ce2a1605935814e83e851d7539d12e6d0 (patch)
tree619878c7279c376b4ff9c949c898938c822dce6e /continuedev/src/continuedev/server
parentf9ea4f84da154d0c3391d572ce958bc6bb4a96cd (diff)
parentcf3d08ceaabecd80b20aaac24c5c166cd8e6472f (diff)
downloadsncontinue-527c5c7ce2a1605935814e83e851d7539d12e6d0.tar.gz
sncontinue-527c5c7ce2a1605935814e83e851d7539d12e6d0.tar.bz2
sncontinue-527c5c7ce2a1605935814e83e851d7539d12e6d0.zip
Merge branch 'main' of https://github.com/continuedev/continue
Diffstat (limited to 'continuedev/src/continuedev/server')
-rw-r--r--continuedev/src/continuedev/server/gui.py7
-rw-r--r--continuedev/src/continuedev/server/ide.py10
-rw-r--r--continuedev/src/continuedev/server/ide_protocol.py6
3 files changed, 21 insertions, 2 deletions
diff --git a/continuedev/src/continuedev/server/gui.py b/continuedev/src/continuedev/server/gui.py
index c0178920..9a33fb6c 100644
--- a/continuedev/src/continuedev/server/gui.py
+++ b/continuedev/src/continuedev/server/gui.py
@@ -83,6 +83,8 @@ class GUIProtocolServer(AbstractGUIProtocolServer):
self.on_clear_history()
elif message_type == "delete_at_index":
self.on_delete_at_index(data["index"])
+ elif message_type == "delete_context_item_at_index":
+ self.on_delete_context_item_at_index(data["index"])
except Exception as e:
print(e)
@@ -127,6 +129,11 @@ class GUIProtocolServer(AbstractGUIProtocolServer):
def on_delete_at_index(self, index: int):
asyncio.create_task(self.session.autopilot.delete_at_index(index))
+ def on_delete_context_item_at_index(self, index: int):
+ asyncio.create_task(
+ self.session.autopilot.delete_context_item_at_index(index)
+ )
+
@router.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket, session: Session = Depends(websocket_session)):
diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py
index 1f790991..e2685493 100644
--- a/continuedev/src/continuedev/server/ide.py
+++ b/continuedev/src/continuedev/server/ide.py
@@ -9,7 +9,7 @@ from uvicorn.main import Server
from ..libs.util.telemetry import capture_event
from ..libs.util.queue import AsyncSubscriptionQueue
-from ..models.filesystem import FileSystem, RangeInFile, EditDiff, RealFileSystem
+from ..models.filesystem import FileSystem, RangeInFile, EditDiff, RangeInFileWithContents, RealFileSystem
from ..models.filesystem_edit import AddDirectory, AddFile, DeleteDirectory, DeleteFile, FileSystemEdit, FileEdit, FileEditWithFullContents, RenameDirectory, RenameFile, SequentialFileSystemEdit
from pydantic import BaseModel
from .gui import SessionManager, session_manager
@@ -140,6 +140,9 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
fileEdits = list(
map(lambda d: FileEditWithFullContents.parse_obj(d), data["fileEdits"]))
self.onFileEdits(fileEdits)
+ elif message_type == "highlightedCodePush":
+ self.onHighlightedCodeUpdate(
+ [RangeInFileWithContents(**rif) for rif in data["highlightedCode"]])
elif message_type == "commandOutput":
output = data["output"]
self.onCommandOutput(output)
@@ -234,6 +237,11 @@ class IdeProtocolServer(AbstractIdeProtocolServer):
asyncio.create_task(
session.autopilot.handle_command_output(output))
+ def onHighlightedCodeUpdate(self, range_in_files: List[RangeInFileWithContents]):
+ for _, session in self.session_manager.sessions.items():
+ asyncio.create_task(
+ session.autopilot.handle_highlighted_code(range_in_files))
+
# Request information. Session doesn't matter.
async def getOpenFiles(self) -> List[str]:
resp = await self._send_and_receive_json({}, OpenFilesResponse, "openFiles")
diff --git a/continuedev/src/continuedev/server/ide_protocol.py b/continuedev/src/continuedev/server/ide_protocol.py
index 7faf5563..de2eea27 100644
--- a/continuedev/src/continuedev/server/ide_protocol.py
+++ b/continuedev/src/continuedev/server/ide_protocol.py
@@ -3,7 +3,7 @@ from abc import ABC, abstractmethod, abstractproperty
from ..models.main import Traceback
from ..models.filesystem_edit import FileEdit, FileSystemEdit, EditDiff
-from ..models.filesystem import RangeInFile
+from ..models.filesystem import RangeInFile, RangeInFileWithContents
class AbstractIdeProtocolServer(ABC):
@@ -91,6 +91,10 @@ class AbstractIdeProtocolServer(ABC):
async def runCommand(self, command: str) -> str:
"""Run a command"""
+ @abstractmethod
+ def onHighlightedCodeUpdate(self, range_in_files: List[RangeInFileWithContents]):
+ """Called when highlighted code is updated"""
+
@abstractproperty
def workspace_directory(self) -> str:
"""Get the workspace directory"""