From 2fe9eace88eed93e921f9e244d2131773993e6ad Mon Sep 17 00:00:00 2001 From: Matsuuu Date: Sun, 12 Nov 2023 17:30:28 +0200 Subject: [PATCH] Utilize TSConfig paths in import diagnostics --- .../src/handlers/diagnostics/import-diagnostics.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/custom-elements-languageserver-core/src/handlers/diagnostics/import-diagnostics.ts b/lib/custom-elements-languageserver-core/src/handlers/diagnostics/import-diagnostics.ts index a599ba2..df79d67 100644 --- a/lib/custom-elements-languageserver-core/src/handlers/diagnostics/import-diagnostics.ts +++ b/lib/custom-elements-languageserver-core/src/handlers/diagnostics/import-diagnostics.ts @@ -16,6 +16,9 @@ export function getImportDiagnostics(request: CustomElementsLanguageServiceReque const { filePath, document, htmlLanguageService, projectBasePath, project } = request; const filePathWithoutFile = getFilePathFolder(filePath); const sourceFile = getSourceFile(filePath, undefined, project); + // Gather aliases and remove wildcards + const compilerPaths = Object.keys(project.getCompilerOptions().paths ?? new Map()) + .map(alias => alias.endsWith("/*") ? alias.substring(0, alias.lastIndexOf("/*")) : alias); if (!sourceFile) { return []; @@ -54,7 +57,12 @@ export function getImportDiagnostics(request: CustomElementsLanguageServiceReque if (!resolvedModuleFileName || !associatedFiles.includes(resolvedModuleFileName)) { - const relativeImportPath = resolveImportPath(fullImportPath, filePathWithoutFile); + let relativeImportPath; + if (compilerPaths.includes(cemInstanceRef.packageName ?? '')) { + relativeImportPath = cemInstanceRef.packageName + "/" + definition.path; + } else { + relativeImportPath = resolveImportPath(fullImportPath, filePathWithoutFile); + } notDefinedTags.push({ node: customElementTag,