move Spring Cli commands implementation to language server

This commit is contained in:
vudayani
2024-09-28 17:11:58 +05:30
committed by Martin Lippert
parent 3d18619e98
commit f9949d6480
42 changed files with 2099 additions and 144 deletions

View File

@@ -1,8 +1,8 @@
import { Uri, workspace, window } from "vscode";
import { SPRINGCLI } from "../Main";
import { getTargetGuideMardown } from "./util";
import { Uri, workspace, window, commands } from "vscode";
import { getTargetGuideMardown, readResponseFromFile } from "./util";
import { createConverter } from "vscode-languageclient/lib/common/protocolConverter";
import fs from "fs";
import path from "path";
const CONVERTER = createConverter(undefined, true, true);
@@ -13,11 +13,13 @@ export async function applyLspEdit(uri: Uri) {
if (!uri) {
uri = await getTargetGuideMardown();
}
const lspEdit = await SPRINGCLI.guideLspEdit(uri);
const fileContent = (await readResponseFromFile(uri)).toString();
const lspEdit = await commands.executeCommand("sts/copilot/agent/lspEdits", uri.toString(), path.dirname(uri.fsPath), fileContent);
const workspaceEdit = await CONVERTER.asWorkspaceEdit(lspEdit);
console.log(lspEdit);
await Promise.all(workspaceEdit.entries().map(async ([uri, edits]) => {
console.log(edits);
if (fs.existsSync(uri.fsPath)) {
const doc = await workspace.openTextDocument(uri.fsPath);
await window.showTextDocument(doc);