From eadfdc40f9b87ec31098618eb2d182d1eb106ab8 Mon Sep 17 00:00:00 2001 From: Almaz Yarullin Date: Sat, 25 May 2024 11:22:32 +0300 Subject: [PATCH] Initial --- vscode/window.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/vscode/window.py b/vscode/window.py index 1500203..6e8c1f4 100644 --- a/vscode/window.py +++ b/vscode/window.py @@ -159,6 +159,19 @@ async def offset_at(self, position: Position) -> TextLine: async def position_at(self, offset: int) -> Position: raise NotImplementedError + async def replace(self, range: Range, text: str) -> None: + s = range.start + e = range.end + escaped_text = json.dumps(text)[1:-1].replace("'", "\\'") + code = ( + self._editor_code + + "editor.edit(editBuilder => {" + + f" let range = new vscode.Range({s.line}, {s.character}, {e.line}, {e.character});".strip() + + f" editBuilder.replace(range, '{escaped_text}');".strip() + + "})" + ) + return await self.ws.run_code(code, wait_for_response=False, thenable=False) + async def save(self): raise NotImplementedError