diff --git a/server/package-lock.json b/server/package-lock.json index 2fcede3..1e11b08 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -10,7 +10,8 @@ "license": "MIT", "dependencies": { "vscode-languageserver": "8.0.2", - "vscode-languageserver-textdocument": "1.0.7" + "vscode-languageserver-textdocument": "1.0.7", + "vscode-uri": "^3.0.7" }, "devDependencies": { "@types/vscode": "1.67.0" @@ -62,6 +63,11 @@ "version": "3.17.2", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz", "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==" + }, + "node_modules/vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==" } }, "dependencies": { @@ -102,6 +108,11 @@ "version": "3.17.2", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz", "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==" + }, + "vscode-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", + "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==" } } } diff --git a/server/package.json b/server/package.json index a9649e6..4801a7c 100644 --- a/server/package.json +++ b/server/package.json @@ -15,9 +15,10 @@ }, "dependencies": { "vscode-languageserver": "8.0.2", - "vscode-languageserver-textdocument": "1.0.7" + "vscode-languageserver-textdocument": "1.0.7", + "vscode-uri": "^3.0.7" }, "devDependencies": { "@types/vscode": "1.67.0" } -} \ No newline at end of file +} diff --git a/server/src/server.ts b/server/src/server.ts index 6b5710c..ca9c58d 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -21,7 +21,8 @@ import { FileEvent } from 'vscode-languageserver/node'; -import { DocumentUri, TextDocument } from 'vscode-languageserver-textdocument'; +import { TextDocument } from 'vscode-languageserver-textdocument'; +import { URI } from 'vscode-uri'; import { LogLevel, TimeStampedLogger } from './logging'; @@ -35,7 +36,7 @@ const documents: TextDocuments = new TextDocuments(TextDocument); let hasConfigurationCapability = false; let hasWorkspaceFolderCapability = false; -let workspace_folder_uri: DocumentUri; +let workspace_folder_uri: URI | undefined; let needs_infos: NeedsInfos; let isMultiDocs = false; @@ -106,11 +107,9 @@ interface WsConfigs { } connection.onInitialize((params: InitializeParams) => { - if (params.workspaceFolders) { - workspace_folder_uri = params.workspaceFolders[0].uri; - } else { - workspace_folder_uri = ''; - } + workspace_folder_uri = (params.workspaceFolders && params.workspaceFolders.length > 0) + ? URI.parse(params.workspaceFolders[0].uri) + : undefined; const capabilities = params.capabilities; @@ -237,7 +236,7 @@ function check_wk_confs(configs: WsConfigs) { // Get workspace settings async function get_wk_conf_settings() { - const cal_wk_folder_uri: string = workspace_folder_uri.replace('file://', ''); + const cal_wk_folder_uri: string = workspace_folder_uri?.fsPath ?? ""; // Get configuration of sphinx-needs.needsJson let needs_json_path = '';