diff options
Diffstat (limited to 'continuedev')
3 files changed, 39 insertions, 1 deletions
diff --git a/continuedev/src/continuedev/libs/constants/default_config.py b/continuedev/src/continuedev/libs/constants/default_config.py index c72e4bcf..76d66c02 100644 --- a/continuedev/src/continuedev/libs/constants/default_config.py +++ b/continuedev/src/continuedev/libs/constants/default_config.py @@ -19,6 +19,7 @@ from continuedev.src.continuedev.plugins.steps.main import EditHighlightedCodeSt from continuedev.src.continuedev.plugins.context_providers.search import SearchContextProvider from continuedev.src.continuedev.plugins.context_providers.diff import DiffContextProvider from continuedev.src.continuedev.plugins.context_providers.url import URLContextProvider +from continuedev.src.continuedev.plugins.context_providers.terminal import TerminalContextProvider config = ContinueConfig( allow_anonymous_telemetry=True, @@ -78,7 +79,8 @@ config = ContinueConfig( preset_urls = [ # Add any common urls you reference here so they appear in autocomplete ] - ) + ), + TerminalContextProvider(), ], ) """ diff --git a/continuedev/src/continuedev/plugins/context_providers/terminal.py b/continuedev/src/continuedev/plugins/context_providers/terminal.py new file mode 100644 index 00000000..c7e91945 --- /dev/null +++ b/continuedev/src/continuedev/plugins/context_providers/terminal.py @@ -0,0 +1,32 @@ +from typing import List + +from ...core.context import ContextProvider +from ...core.main import ContextItem, ContextItemDescription, ContextItemId + + +class TerminalContextProvider(ContextProvider): + title = "terminal" + + workspace_dir: str = None + + def _terminal_context_item(self, content: str = ""): + return ContextItem( + content=content, + description=ContextItemDescription( + name="Terminal", + description="Reference the contents of the VS Code terminal", + id=ContextItemId(provider_title=self.title, item_id=self.title), + ), + ) + + async def provide_context_items(self, workspace_dir: str) -> List[ContextItem]: + self.workspace_dir = workspace_dir + return [self._terminal_context_item()] + + async def get_item(self, id: ContextItemId, query: str) -> ContextItem: + if not id.item_id == self.title: + raise Exception("Invalid item id") + + terminal_contents = await self.sdk.ide.getTerminalContents() + + return self._terminal_context_item(terminal_contents) diff --git a/continuedev/src/continuedev/server/ide_protocol.py b/continuedev/src/continuedev/server/ide_protocol.py index f4a39c26..4ef4bde7 100644 --- a/continuedev/src/continuedev/server/ide_protocol.py +++ b/continuedev/src/continuedev/server/ide_protocol.py @@ -155,5 +155,9 @@ class AbstractIdeProtocolServer(ABC): async def fileExists(self, filepath: str) -> str: """Check if a file exists""" + @abstractmethod + async def getTerminalContents(self) -> str: + """Get the terminal contents""" + workspace_directory: str unique_id: str |