diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d49a3692..1add6da9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ ## master +#### :nail_care: Polish + +- Rename custom LSP methods names. https://github.com/rescript-lang/rescript-vscode/pull/611 + #### :bug: Bug Fix - Fix issue where `-open Some.Path` in `"bsc-flags"` would sometimes be treated differently from `open Some.Path` locally in a file https://github.com/rescript-lang/rescript-vscode/pull/616 diff --git a/client/src/commands/create_interface.ts b/client/src/commands/create_interface.ts index 5f7a19207..49ff5b773 100644 --- a/client/src/commands/create_interface.ts +++ b/client/src/commands/create_interface.ts @@ -1,16 +1,13 @@ import * as fs from "fs"; +import * as p from "vscode-languageserver-protocol"; import { LanguageClient, RequestType } from "vscode-languageclient/node"; import { window } from "vscode"; -interface CreateInterfaceRequestParams { - uri: string; -} - export const createInterfaceRequest = new RequestType< - CreateInterfaceRequestParams, - string, + p.TextDocumentIdentifier, + p.TextDocumentIdentifier, void ->("rescript-vscode.create_interface"); +>("textDocument/createInterface"); export const createInterface = (client: LanguageClient) => { if (!client) { diff --git a/client/src/commands/open_compiled.ts b/client/src/commands/open_compiled.ts index 5ba7d0a8e..aca4d5624 100644 --- a/client/src/commands/open_compiled.ts +++ b/client/src/commands/open_compiled.ts @@ -1,20 +1,13 @@ import * as fs from "fs"; +import * as p from "vscode-languageserver-protocol"; import { window, Uri, ViewColumn } from "vscode"; import { LanguageClient, RequestType } from "vscode-languageclient/node"; -interface OpenCompiledFileRequestParams { - uri: string; -} - -interface OpenCompiledFileResponseParams { - uri: string; -} - let openCompiledFileRequest = new RequestType< - OpenCompiledFileRequestParams, - OpenCompiledFileResponseParams, + p.TextDocumentIdentifier, + p.TextDocumentIdentifier, void ->("rescript-vscode.open_compiled"); +>("textDocument/openCompiled"); export const openCompiled = (client: LanguageClient) => { if (!client) { @@ -36,7 +29,7 @@ export const openCompiled = (client: LanguageClient) => { uri: editor.document.uri.toString(), }) .then((response) => { - const document = Uri.file(response.uri); + const document = Uri.parse(response.uri); return window.showTextDocument(document, { viewColumn: ViewColumn.Beside, diff --git a/server/src/server.ts b/server/src/server.ts index 2fb305f59..5b3be2505 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -139,25 +139,17 @@ let findPlatformPath = (projectRootPath: p.DocumentUri | null) => { let findBscExeBinary = (projectRootPath: p.DocumentUri | null) => utils.findBinary(findPlatformPath(projectRootPath), c.bscExeName); -interface CreateInterfaceRequestParams { - uri: string; -} - let createInterfaceRequest = new v.RequestType< - CreateInterfaceRequestParams, - string, + p.TextDocumentIdentifier, + p.TextDocumentIdentifier, void ->("rescript-vscode.create_interface"); - -interface OpenCompiledFileParams { - uri: string; -} +>("textDocument/createInterface"); let openCompiledFileRequest = new v.RequestType< - OpenCompiledFileParams, - OpenCompiledFileParams, + p.TextDocumentIdentifier, + p.TextDocumentIdentifier, void ->("rescript-vscode.open_compiled"); +>("textDocument/openCompiled"); let getCurrentCompilerDiagnosticsForFile = ( fileUri: string @@ -859,7 +851,7 @@ let updateDiagnosticSyntax = (fileUri: string, fileContent: string) => { }; function createInterface(msg: p.RequestMessage): p.Message { - let params = msg.params as CreateInterfaceRequestParams; + let params = msg.params as p.TextDocumentIdentifier; let extension = path.extname(params.uri); let filePath = fileURLToPath(params.uri); let projDir = utils.findProjectRootOfFile(filePath); @@ -953,7 +945,9 @@ function createInterface(msg: p.RequestMessage): p.Message { let response: p.ResponseMessage = { jsonrpc: c.jsonrpcVersion, id: msg.id, - result: "Interface successfully created.", + result: { + uri: utils.pathToURI(resiPath) + }, }; return response; } catch (e) { @@ -970,7 +964,7 @@ function createInterface(msg: p.RequestMessage): p.Message { } function openCompiledFile(msg: p.RequestMessage): p.Message { - let params = msg.params as OpenCompiledFileParams; + let params = msg.params as p.TextDocumentIdentifier; let filePath = fileURLToPath(params.uri); let projDir = utils.findProjectRootOfFile(filePath); @@ -1014,14 +1008,12 @@ function openCompiledFile(msg: p.RequestMessage): p.Message { return response; } - let result: OpenCompiledFileParams = { - uri: compiledFilePath.result, - }; - let response: p.ResponseMessage = { jsonrpc: c.jsonrpcVersion, id: msg.id, - result, + result: { + uri: utils.pathToURI(compiledFilePath.result), + } }; return response; diff --git a/server/src/utils.ts b/server/src/utils.ts index 1535c7050..cb40d9b03 100644 --- a/server/src/utils.ts +++ b/server/src/utils.ts @@ -323,7 +323,7 @@ export let runBuildWatcherUsingValidBuildPath = ( */ // parser helpers -let pathToURI = (file: string) => { +export let pathToURI = (file: string) => { return process.platform === "win32" ? `file:\\\\\\${file}` : `file://${file}`; }; let parseFileAndRange = (fileAndRange: string) => {