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",
|
"name": "aqua-ls-server",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua-language-server-api": "0.7.3-315",
|
"@fluencelabs/aqua-language-server-api": "0.7.4-334",
|
||||||
"global-dirs": "^3.0.0",
|
"global-dirs": "^3.0.0",
|
||||||
"vscode-languageserver": "^7.0.0",
|
"vscode-languageserver": "^7.0.0",
|
||||||
"vscode-languageserver-textdocument": "^1.0.4"
|
"vscode-languageserver-textdocument": "^1.0.4"
|
||||||
@ -30,9 +30,9 @@
|
|||||||
"license": "Apache-2.0"
|
"license": "Apache-2.0"
|
||||||
},
|
},
|
||||||
"node_modules/@fluencelabs/aqua-language-server-api": {
|
"node_modules/@fluencelabs/aqua-language-server-api": {
|
||||||
"version": "0.7.3-315",
|
"version": "0.7.4-334",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.7.3-315.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.7.4-334.tgz",
|
||||||
"integrity": "sha512-QvXEoXGah5T0JGU0eg5g4GZJhG9U+NqZyDzLLFSQ8yhYdp7ipeSGE9uRAvlMTdVOZQ6jG9Y2Sd3UGFkSN/nMww=="
|
"integrity": "sha512-JEoS7DVtYhpBRRCtILGO1I/0UeNbnXFOZjsToL7iHe0an9UMqFYbZk1cDbeEX55bS4UKaLTwcbrBvSWwXL8EAA=="
|
||||||
},
|
},
|
||||||
"node_modules/global-dirs": {
|
"node_modules/global-dirs": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
@ -97,9 +97,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua-language-server-api": {
|
"@fluencelabs/aqua-language-server-api": {
|
||||||
"version": "0.7.3-315",
|
"version": "0.7.4-334",
|
||||||
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.7.3-315.tgz",
|
"resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.7.4-334.tgz",
|
||||||
"integrity": "sha512-QvXEoXGah5T0JGU0eg5g4GZJhG9U+NqZyDzLLFSQ8yhYdp7ipeSGE9uRAvlMTdVOZQ6jG9Y2Sd3UGFkSN/nMww=="
|
"integrity": "sha512-JEoS7DVtYhpBRRCtILGO1I/0UeNbnXFOZjsToL7iHe0an9UMqFYbZk1cDbeEX55bS4UKaLTwcbrBvSWwXL8EAA=="
|
||||||
},
|
},
|
||||||
"global-dirs": {
|
"global-dirs": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
"url": "https://github.com/fluencelabs/aqua"
|
"url": "https://github.com/fluencelabs/aqua"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua-language-server-api": "0.7.3-315",
|
"@fluencelabs/aqua-language-server-api": "0.7.4-334",
|
||||||
"global-dirs": "^3.0.0",
|
"global-dirs": "^3.0.0",
|
||||||
"vscode-languageserver": "^7.0.0",
|
"vscode-languageserver": "^7.0.0",
|
||||||
"vscode-languageserver-textdocument": "^1.0.4"
|
"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 { Diagnostic, DiagnosticSeverity, RemoteConsole } from 'vscode-languageserver/node';
|
||||||
import type { Settings } from './server';
|
import type { Settings } from './server';
|
||||||
import type { WorkspaceFolder } from 'vscode-languageserver-protocol';
|
import type { WorkspaceFolder } from 'vscode-languageserver-protocol';
|
||||||
|
import * as fs from 'fs';
|
||||||
|
import * as Path from 'path';
|
||||||
|
|
||||||
export async function compileAqua(
|
export async function compileAqua(
|
||||||
settings: Settings,
|
settings: Settings,
|
||||||
@ -45,6 +47,25 @@ export async function compileAqua(
|
|||||||
|
|
||||||
const diagnostics: Diagnostic[] = [];
|
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) {
|
if (result.errors) {
|
||||||
// Add all errors to Diagnostic
|
// Add all errors to Diagnostic
|
||||||
result.errors.forEach((err: ErrorInfo) => {
|
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