From a31e1c78b509c4ab3d0df16df417903405b8044d Mon Sep 17 00:00:00 2001 From: Dima Date: Wed, 29 May 2024 14:10:16 +0700 Subject: [PATCH] find file paths in use and import tokens (#105) --- client/package-lock.json | 53 ---------------------------------------- server/package-lock.json | 14 +++++------ server/package.json | 2 +- server/src/validation.ts | 17 ++++++++++--- 4 files changed, 22 insertions(+), 64 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 9683a09..7a8f3c3 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -28,22 +28,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -55,18 +39,6 @@ "node": ">=10" } }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -153,22 +125,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -177,15 +133,6 @@ "yallist": "^4.0.0" } }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", diff --git a/server/package-lock.json b/server/package-lock.json index 6220446..1793891 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.14.7", + "@fluencelabs/aqua-language-server-api": "0.14.8", "global-dirs": "^4.0.0", "vscode-languageserver": "^9.0.0", "vscode-languageserver-textdocument": "^1.0.4", @@ -35,9 +35,9 @@ "license": "Apache-2.0" }, "node_modules/@fluencelabs/aqua-language-server-api": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.14.7.tgz", - "integrity": "sha512-B+dEpbTf/vjsfqKf0+vONYCy/xYCJJbNcQggcirrFzB3E2EiV9BIZUkWNuxZE0zcFwNktbd7N/GfhFTRNXsraQ==" + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.14.8.tgz", + "integrity": "sha512-cvpo4p0XbzXFtrvM5jeHVsq4oxxl7jU+DsEcqfq/iCYr8n29Dmf3JYDPfA46NdtDTIVzUh+kKHbhA6jes3+shA==" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -1290,9 +1290,9 @@ }, "dependencies": { "@fluencelabs/aqua-language-server-api": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.14.7.tgz", - "integrity": "sha512-B+dEpbTf/vjsfqKf0+vONYCy/xYCJJbNcQggcirrFzB3E2EiV9BIZUkWNuxZE0zcFwNktbd7N/GfhFTRNXsraQ==" + "version": "0.14.8", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-language-server-api/-/aqua-language-server-api-0.14.8.tgz", + "integrity": "sha512-cvpo4p0XbzXFtrvM5jeHVsq4oxxl7jU+DsEcqfq/iCYr8n29Dmf3JYDPfA46NdtDTIVzUh+kKHbhA6jes3+shA==" }, "@types/json5": { "version": "0.0.29", diff --git a/server/package.json b/server/package.json index 5c1f74e..687feaa 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.14.7", + "@fluencelabs/aqua-language-server-api": "0.14.8", "global-dirs": "^4.0.0", "vscode-languageserver": "^9.0.0", "vscode-languageserver-textdocument": "^1.0.4", diff --git a/server/src/validation.ts b/server/src/validation.ts index ecf5371..651d7c7 100644 --- a/server/src/validation.ts +++ b/server/src/validation.ts @@ -53,12 +53,21 @@ export async function compileAqua( const docPath = Path.parse(path); - const linksSearch = [docPath.dir]; + // empty string for already resolved paths in 'importLocations' + const linksSearch = ['', docPath.dir]; - // TODO: fix import locations search result.importLocations.map(function (ti) { - const path = linksSearch.map((i) => Path.join(i, ti.path)).find(fs.existsSync); + // add extension for imports without extension + let importPath: string; + if (ti.path.endsWith('.aqua')) { + importPath = ti.path; + } else { + importPath = ti.path + '.aqua'; + } + const path = linksSearch.map((i) => Path.join(i, importPath)).find(fs.existsSync); + + if (path) { links.push({ current: ti.current, @@ -70,6 +79,8 @@ export async function compileAqua( endCol: 0, }, }); + } else { + console.log(`Cannot find path for '${ti}'`) } });