summaryrefslogtreecommitdiff
path: root/continuedev/src/continuedev/server
diff options
context:
space:
mode:
authorNate Sesti <33237525+sestinj@users.noreply.github.com>2023-07-02 20:15:49 -0700
committerGitHub <noreply@github.com>2023-07-02 20:15:49 -0700
commit9831ac76fbced2f18ec15642eb31d3854af56e67 (patch)
treec2682170eb8f8a81fd494fce7bb8a435dcfa9829 /continuedev/src/continuedev/server
parentc41314b095648e6b3bcecc84a20354574db8379d (diff)
parent38d0c1ad7955b43c1765ac8faea723028a90201e (diff)
downloadsncontinue-9831ac76fbced2f18ec15642eb31d3854af56e67.tar.gz
sncontinue-9831ac76fbced2f18ec15642eb31d3854af56e67.tar.bz2
sncontinue-9831ac76fbced2f18ec15642eb31d3854af56e67.zip
Merge pull request #170 from continuedev/explicit-context
Explicit context
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"""