diff --git a/server/package-lock.json b/server/package-lock.json index c0573f8..2f45145 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -8,7 +8,7 @@ "name": "aqua-ls-server", "version": "0.0.1", "dependencies": { - "@fluencelabs/aqua-language-server-api": "0.7.3-315", + "@fluencelabs/aqua-language-server-api": "0.7.4-334", "global-dirs": "^3.0.0", "vscode-languageserver": "^7.0.0", "vscode-languageserver-textdocument": "^1.0.4" @@ -30,9 +30,9 @@ "license": "Apache-2.0" }, "node_modules/@fluencelabs/aqua-language-server-api": { - "version": "0.7.3-315", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.7.3-315.tgz", - "integrity": "sha512-QvXEoXGah5T0JGU0eg5g4GZJhG9U+NqZyDzLLFSQ8yhYdp7ipeSGE9uRAvlMTdVOZQ6jG9Y2Sd3UGFkSN/nMww==" + "version": "0.7.4-334", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.7.4-334.tgz", + "integrity": "sha512-JEoS7DVtYhpBRRCtILGO1I/0UeNbnXFOZjsToL7iHe0an9UMqFYbZk1cDbeEX55bS4UKaLTwcbrBvSWwXL8EAA==" }, "node_modules/global-dirs": { "version": "3.0.0", @@ -97,9 +97,9 @@ }, "dependencies": { "@fluencelabs/aqua-language-server-api": { - "version": "0.7.3-315", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.7.3-315.tgz", - "integrity": "sha512-QvXEoXGah5T0JGU0eg5g4GZJhG9U+NqZyDzLLFSQ8yhYdp7ipeSGE9uRAvlMTdVOZQ6jG9Y2Sd3UGFkSN/nMww==" + "version": "0.7.4-334", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.7.4-334.tgz", + "integrity": "sha512-JEoS7DVtYhpBRRCtILGO1I/0UeNbnXFOZjsToL7iHe0an9UMqFYbZk1cDbeEX55bS4UKaLTwcbrBvSWwXL8EAA==" }, "global-dirs": { "version": "3.0.0", diff --git a/server/package.json b/server/package.json index f6d1199..65f28df 100644 --- a/server/package.json +++ b/server/package.json @@ -11,7 +11,7 @@ "url": "https://github.com/fluencelabs/aqua" }, "dependencies": { - "@fluencelabs/aqua-language-server-api": "0.7.3-315", + "@fluencelabs/aqua-language-server-api": "0.7.4-334", "global-dirs": "^3.0.0", "vscode-languageserver": "^7.0.0", "vscode-languageserver-textdocument": "^1.0.4" diff --git a/server/src/validation.ts b/server/src/validation.ts index 453bfb0..93289fa 100644 --- a/server/src/validation.ts +++ b/server/src/validation.ts @@ -3,6 +3,8 @@ import { AquaLSP, ErrorInfo, TokenLink } from '@fluencelabs/aqua-language-server import { Diagnostic, DiagnosticSeverity, RemoteConsole } from 'vscode-languageserver/node'; import type { Settings } from './server'; import type { WorkspaceFolder } from 'vscode-languageserver-protocol'; +import * as fs from 'fs'; +import * as Path from 'path'; export async function compileAqua( settings: Settings, @@ -45,6 +47,25 @@ export async function compileAqua( const diagnostics: Diagnostic[] = []; + let links: TokenLink[] = []; + let p = Path.parse(textDocument.uri); + let linksSearch = [p.dir.replace('file://', '')].concat(imports); + result.importLocations.map(function (ti) { + const path = linksSearch.map((i) => i + '/' + ti.path).find((i) => fs.existsSync(i)); + if (path) { + links.push({ + current: ti.current, + definition: { + name: path, + startLine: 0, + startCol: 0, + endLine: 0, + endCol: 0, + }, + }); + } + }); + if (result.errors) { // Add all errors to Diagnostic result.errors.forEach((err: ErrorInfo) => { @@ -73,5 +94,5 @@ export async function compileAqua( }); } - return [diagnostics, result.locations]; + return [diagnostics, result.locations.concat(links)]; }