mirror of
https://github.com/fluencelabs/aqua-vscode
synced 2025-03-15 13:50:52 +00:00
Go-to for structs and imports (#18)
This commit is contained in:
parent
03169bef44
commit
7a71f0fbbe
14
server/package-lock.json
generated
14
server/package-lock.json
generated
@ -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",
|
||||
|
@ -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"
|
||||
|
@ -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)];
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user