mirror of
https://github.com/fluencelabs/aqua-vscode
synced 2025-04-24 16:12:14 +00:00
validate improts
This commit is contained in:
parent
9136b322fc
commit
03169bef44
@ -166,7 +166,7 @@ documents.onDidOpen(async (change) => {
|
||||
async function validateDocument(textDocument: TextDocument): Promise<void> {
|
||||
const settings = await getDocumentSettings(textDocument.uri);
|
||||
|
||||
const [diagnostics, locations] = await compileAqua(settings, textDocument, folders);
|
||||
const [diagnostics, locations] = await compileAqua(settings, textDocument, folders, connection.console);
|
||||
|
||||
allLocations.set(textDocument.uri, locations);
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import type { TextDocument } from 'vscode-languageserver-textdocument';
|
||||
import { AquaLSP, ErrorInfo, TokenLink } from '@fluencelabs/aqua-language-server-api/aqua-lsp-api';
|
||||
import { Diagnostic, DiagnosticSeverity } from 'vscode-languageserver/node';
|
||||
import { Diagnostic, DiagnosticSeverity, RemoteConsole } from 'vscode-languageserver/node';
|
||||
import type { Settings } from './server';
|
||||
import type { WorkspaceFolder } from 'vscode-languageserver-protocol';
|
||||
|
||||
@ -8,6 +8,7 @@ export async function compileAqua(
|
||||
settings: Settings,
|
||||
textDocument: TextDocument,
|
||||
folders: WorkspaceFolder[],
|
||||
console: RemoteConsole,
|
||||
): Promise<[Diagnostic[], TokenLink[]]> {
|
||||
const uri = textDocument.uri.replace('file://', '');
|
||||
|
||||
@ -16,8 +17,25 @@ export async function compileAqua(
|
||||
// add all workspace folders to imports
|
||||
imports = imports.concat(folders.map((f) => f.uri.replace('file://', '')));
|
||||
imports = imports.concat(folders.map((f) => f.uri.replace('file://', '')) + '/node_modules');
|
||||
imports = imports.concat(settings.imports.map((s) => s.replace('file://', '')));
|
||||
imports = imports.concat(settings.imports.map((s) => s.replace('file://', '')) + '/node_modules');
|
||||
|
||||
if (settings.imports && Array.isArray(settings.imports)) {
|
||||
const validatedImports: string[] = settings.imports.filter((s) => {
|
||||
if (typeof s != 'string') {
|
||||
console.warn(
|
||||
`Field 'import' in extension settings must have only array of strings. Cannot add import ${JSON.stringify(
|
||||
s,
|
||||
)}`,
|
||||
);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
imports = imports.concat(validatedImports.map((s) => s.replace('file://', '')));
|
||||
imports = imports.concat(validatedImports.map((s) => s.replace('file://', '')) + '/node_modules');
|
||||
}
|
||||
|
||||
if (require.main) {
|
||||
imports = imports.concat(require.main.paths);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user