@canonical/terrazzo-lsp 0.0.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +158 -10
- package/dist/esm/cli/expandGlobs.js +21 -0
- package/dist/esm/cli/expandGlobs.js.map +1 -0
- package/dist/esm/cli/index.js +64 -0
- package/dist/esm/cli/index.js.map +1 -0
- package/dist/esm/cli/loadArtifactFiles.js +21 -0
- package/dist/esm/cli/loadArtifactFiles.js.map +1 -0
- package/dist/esm/cli/printHelp.js +20 -0
- package/dist/esm/cli/printHelp.js.map +1 -0
- package/dist/esm/cli/runCheck.js +52 -0
- package/dist/esm/cli/runCheck.js.map +1 -0
- package/dist/esm/cli/runGraph.js +41 -0
- package/dist/esm/cli/runGraph.js.map +1 -0
- package/dist/esm/cli/runInspect.js +27 -0
- package/dist/esm/cli/runInspect.js.map +1 -0
- package/dist/esm/cli/runInstall.js +126 -0
- package/dist/esm/cli/runInstall.js.map +1 -0
- package/dist/esm/cli/runResolve.js +17 -0
- package/dist/esm/cli/runResolve.js.map +1 -0
- package/dist/esm/cli/runStatus.js +18 -0
- package/dist/esm/cli/runStatus.js.map +1 -0
- package/dist/esm/cli.js +2 -361
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/css/colorSetup.js +13 -0
- package/dist/esm/css/colorSetup.js.map +1 -0
- package/dist/esm/css/createDocumentIndex.js +43 -0
- package/dist/esm/css/createDocumentIndex.js.map +1 -0
- package/dist/esm/css/imports/extractCssImports.js +41 -0
- package/dist/esm/css/imports/extractCssImports.js.map +1 -0
- package/dist/esm/css/{extractJsImports.js → imports/extractJsImports.js} +1 -4
- package/dist/esm/css/imports/extractJsImports.js.map +1 -0
- package/dist/esm/css/{extractPackageName.js → imports/extractPackageName.js} +1 -1
- package/dist/esm/css/imports/extractPackageName.js.map +1 -0
- package/dist/esm/css/imports/formatFileUri.js +6 -0
- package/dist/esm/css/imports/formatFileUri.js.map +1 -0
- package/dist/esm/css/imports/index.js +9 -0
- package/dist/esm/css/imports/index.js.map +1 -0
- package/dist/esm/css/{isBareSpecifier.js → imports/isBareSpecifier.js} +1 -1
- package/dist/esm/css/imports/isBareSpecifier.js.map +1 -0
- package/dist/esm/css/{isExternalPath.js → imports/isExternalPath.js} +1 -1
- package/dist/esm/css/imports/isExternalPath.js.map +1 -0
- package/dist/esm/css/imports/parseFileUri.js +6 -0
- package/dist/esm/css/imports/parseFileUri.js.map +1 -0
- package/dist/esm/css/{resolveImportSpecifier.js → imports/resolveImportSpecifier.js} +1 -4
- package/dist/esm/css/imports/resolveImportSpecifier.js.map +1 -0
- package/dist/esm/css/index.js +6 -24
- package/dist/esm/css/index.js.map +1 -1
- package/dist/esm/css/lezer/applyTreeChanges.js +5 -0
- package/dist/esm/css/lezer/applyTreeChanges.js.map +1 -0
- package/dist/esm/css/lezer/computeChangedRange.js +23 -0
- package/dist/esm/css/lezer/computeChangedRange.js.map +1 -0
- package/dist/esm/css/lezer/createTreeFragments.js +5 -0
- package/dist/esm/css/lezer/createTreeFragments.js.map +1 -0
- package/dist/esm/css/lezer/index.js +6 -0
- package/dist/esm/css/lezer/index.js.map +1 -0
- package/dist/esm/css/lezer/nodeText.js +4 -0
- package/dist/esm/css/lezer/nodeText.js.map +1 -0
- package/dist/esm/css/lezer/parseCSS.js +5 -0
- package/dist/esm/css/lezer/parseCSS.js.map +1 -0
- package/dist/esm/css/lezer/types.js +2 -0
- package/dist/esm/css/lezer/types.js.map +1 -0
- package/dist/esm/css/scanners/extractPropertyAtPosition.js +23 -0
- package/dist/esm/css/scanners/extractPropertyAtPosition.js.map +1 -0
- package/dist/esm/css/scanners/index.js +6 -0
- package/dist/esm/css/scanners/index.js.map +1 -0
- package/dist/esm/css/scanners/parseSuppressionDirectives.js +88 -0
- package/dist/esm/css/scanners/parseSuppressionDirectives.js.map +1 -0
- package/dist/esm/css/scanners/scanDeclarations.js +38 -0
- package/dist/esm/css/scanners/scanDeclarations.js.map +1 -0
- package/dist/esm/css/scanners/scanProperties.js +49 -0
- package/dist/esm/css/scanners/scanProperties.js.map +1 -0
- package/dist/esm/css/scanners/scanUsages.js +64 -0
- package/dist/esm/css/scanners/scanUsages.js.map +1 -0
- package/dist/esm/css/{buildSelectorContext.js → selectors/buildSelectorContext.js} +2 -2
- package/dist/esm/css/selectors/buildSelectorContext.js.map +1 -0
- package/dist/esm/css/{classifySelectorScope.js → selectors/classifySelectorScope.js} +1 -1
- package/dist/esm/css/selectors/classifySelectorScope.js.map +1 -0
- package/dist/esm/css/selectors/index.js +3 -0
- package/dist/esm/css/selectors/index.js.map +1 -0
- package/dist/esm/css/tree/ancestors.js +74 -0
- package/dist/esm/css/tree/ancestors.js.map +1 -0
- package/dist/esm/css/tree/declarations.js +6 -0
- package/dist/esm/css/tree/declarations.js.map +1 -0
- package/dist/esm/css/tree/index.js +5 -0
- package/dist/esm/css/tree/index.js.map +1 -0
- package/dist/esm/css/tree/lineage.js +10 -0
- package/dist/esm/css/tree/lineage.js.map +1 -0
- package/dist/esm/css/tree/lines.js +25 -0
- package/dist/esm/css/tree/lines.js.map +1 -0
- package/dist/esm/css/values/compareFallbackStaleness.js +34 -0
- package/dist/esm/css/values/compareFallbackStaleness.js.map +1 -0
- package/dist/esm/css/{constants.js → values/constants.js} +0 -2
- package/dist/esm/css/values/constants.js.map +1 -0
- package/dist/esm/css/{expectedTypeForProperty.js → values/expectedTypeForProperty.js} +0 -7
- package/dist/esm/css/values/expectedTypeForProperty.js.map +1 -0
- package/dist/esm/css/values/extractUnit.js +6 -0
- package/dist/esm/css/values/extractUnit.js.map +1 -0
- package/dist/esm/css/values/index.js +11 -0
- package/dist/esm/css/values/index.js.map +1 -0
- package/dist/esm/css/values/inferValueType.js +104 -0
- package/dist/esm/css/values/inferValueType.js.map +1 -0
- package/dist/esm/css/{isAssignable.js → values/isAssignable.js} +1 -2
- package/dist/esm/css/values/isAssignable.js.map +1 -0
- package/dist/esm/css/values/isSuppressed.js +47 -0
- package/dist/esm/css/values/isSuppressed.js.map +1 -0
- package/dist/esm/css/{mapDtcgType.js → values/mapDtcgType.js} +1 -2
- package/dist/esm/css/values/mapDtcgType.js.map +1 -0
- package/dist/esm/css/values/parseSyntaxType.js +50 -0
- package/dist/esm/css/values/parseSyntaxType.js.map +1 -0
- package/dist/esm/css/{resolveDimensionValue.js → values/resolveDimensionValue.js} +2 -3
- package/dist/esm/css/{resolveDimensionValue.js.map → values/resolveDimensionValue.js.map} +1 -1
- package/dist/esm/diagnosticCodes.js +18 -0
- package/dist/esm/diagnosticCodes.js.map +1 -0
- package/dist/esm/extension/findBundledVsixPath.js +20 -0
- package/dist/esm/extension/findBundledVsixPath.js.map +1 -0
- package/dist/esm/extension/index.js +4 -0
- package/dist/esm/extension/index.js.map +1 -0
- package/dist/esm/extension/installBundledVscodeExtension.js +25 -0
- package/dist/esm/extension/installBundledVscodeExtension.js.map +1 -0
- package/dist/esm/extension/updateVscodeSettings.js +8 -0
- package/dist/esm/extension/updateVscodeSettings.js.map +1 -0
- package/dist/esm/graph/ReachabilityCache.js +38 -22
- package/dist/esm/graph/ReachabilityCache.js.map +1 -1
- package/dist/esm/graph/TokenGraph.js +256 -7
- package/dist/esm/graph/TokenGraph.js.map +1 -1
- package/dist/esm/graph/index.js +4 -4
- package/dist/esm/graph/index.js.map +1 -1
- package/dist/esm/graph/loadArtifact.js +26 -31
- package/dist/esm/graph/loadArtifact.js.map +1 -1
- package/dist/esm/graph/parseArtifactToken.js +19 -18
- package/dist/esm/graph/parseArtifactToken.js.map +1 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/protocol/createRequest.js +5 -2
- package/dist/esm/protocol/createRequest.js.map +1 -1
- package/dist/esm/protocol/index.js +3 -7
- package/dist/esm/protocol/index.js.map +1 -1
- package/dist/esm/protocol/matchResponse.js +1 -1
- package/dist/esm/protocol/matchResponse.js.map +1 -1
- package/dist/esm/protocol/resolveConfig.js +41 -25
- package/dist/esm/protocol/resolveConfig.js.map +1 -1
- package/dist/esm/protocol/typeGuards.js +16 -0
- package/dist/esm/protocol/typeGuards.js.map +1 -0
- package/dist/esm/providers/artifactDiagnostics/checkBrokenAlias.js +15 -0
- package/dist/esm/providers/artifactDiagnostics/checkBrokenAlias.js.map +1 -0
- package/dist/esm/providers/artifactDiagnostics/checkCircularAlias.js +22 -0
- package/dist/esm/providers/artifactDiagnostics/checkCircularAlias.js.map +1 -0
- package/dist/esm/providers/artifactDiagnostics/checkDraftSyntax.js +15 -0
- package/dist/esm/providers/artifactDiagnostics/checkDraftSyntax.js.map +1 -0
- package/dist/esm/providers/artifactDiagnostics/checkMissingType.js +10 -0
- package/dist/esm/providers/artifactDiagnostics/checkMissingType.js.map +1 -0
- package/dist/esm/providers/artifactDiagnostics/checkSchemaViolation.js +15 -0
- package/dist/esm/providers/artifactDiagnostics/checkSchemaViolation.js.map +1 -0
- package/dist/esm/providers/artifactDiagnostics/index.js +28 -0
- package/dist/esm/providers/artifactDiagnostics/index.js.map +1 -0
- package/dist/esm/providers/classifyProvenance.js +5 -5
- package/dist/esm/providers/classifyProvenance.js.map +1 -1
- package/dist/esm/providers/completions/buildCompletionItem.js +132 -0
- package/dist/esm/providers/completions/buildCompletionItem.js.map +1 -0
- package/dist/esm/providers/completions/buildSortText.js +39 -0
- package/dist/esm/providers/completions/buildSortText.js.map +1 -0
- package/dist/esm/providers/completions/index.js +6 -0
- package/dist/esm/providers/completions/index.js.map +1 -0
- package/dist/esm/providers/completions/provideCompletions.js +64 -0
- package/dist/esm/providers/completions/provideCompletions.js.map +1 -0
- package/dist/esm/providers/completions/resolveCompletionItem.js +26 -0
- package/dist/esm/providers/completions/resolveCompletionItem.js.map +1 -0
- package/dist/esm/providers/completions/resolveExpectedType.js +17 -0
- package/dist/esm/providers/completions/resolveExpectedType.js.map +1 -0
- package/dist/esm/providers/constants.js +53 -0
- package/dist/esm/providers/constants.js.map +1 -0
- package/dist/esm/providers/diagnostics/checkMissingFallback.js +20 -0
- package/dist/esm/providers/diagnostics/checkMissingFallback.js.map +1 -0
- package/dist/esm/providers/diagnostics/checkNoColorScheme.js +27 -0
- package/dist/esm/providers/diagnostics/checkNoColorScheme.js.map +1 -0
- package/dist/esm/providers/diagnostics/checkPrimitiveToken.js +20 -0
- package/dist/esm/providers/diagnostics/checkPrimitiveToken.js.map +1 -0
- package/dist/esm/providers/diagnostics/checkScopedUsage.js +28 -0
- package/dist/esm/providers/diagnostics/checkScopedUsage.js.map +1 -0
- package/dist/esm/providers/diagnostics/checkStaleFallback.js +22 -0
- package/dist/esm/providers/diagnostics/checkStaleFallback.js.map +1 -0
- package/dist/esm/providers/diagnostics/checkTypeMismatch.js +24 -0
- package/dist/esm/providers/diagnostics/checkTypeMismatch.js.map +1 -0
- package/dist/esm/providers/diagnostics/checkTypeUncertain.js +19 -0
- package/dist/esm/providers/diagnostics/checkTypeUncertain.js.map +1 -0
- package/dist/esm/providers/diagnostics/checkUnknownVar.js +18 -0
- package/dist/esm/providers/diagnostics/checkUnknownVar.js.map +1 -0
- package/dist/esm/providers/diagnostics/checkUnreachableToken.js +25 -0
- package/dist/esm/providers/diagnostics/checkUnreachableToken.js.map +1 -0
- package/dist/esm/providers/diagnostics/index.js +2 -0
- package/dist/esm/providers/diagnostics/index.js.map +1 -0
- package/dist/esm/providers/diagnostics/orchestrateDiagnostics.js +90 -0
- package/dist/esm/providers/diagnostics/orchestrateDiagnostics.js.map +1 -0
- package/dist/esm/providers/diagnostics/types.js +2 -0
- package/dist/esm/providers/diagnostics/types.js.map +1 -0
- package/dist/esm/providers/formatCheckReport.js +4 -4
- package/dist/esm/providers/formatCheckReport.js.map +1 -1
- package/dist/esm/providers/index.js +18 -10
- package/dist/esm/providers/index.js.map +1 -1
- package/dist/esm/providers/makeDiagnostic.js +13 -0
- package/dist/esm/providers/makeDiagnostic.js.map +1 -0
- package/dist/esm/providers/prepareRename.js +36 -0
- package/dist/esm/providers/prepareRename.js.map +1 -0
- package/dist/esm/providers/provideCodeActions.js +154 -0
- package/dist/esm/providers/provideCodeActions.js.map +1 -0
- package/dist/esm/providers/provideDocumentColors.js +1 -1
- package/dist/esm/providers/provideDocumentColors.js.map +1 -1
- package/dist/esm/providers/provideDocumentLinks.js +55 -0
- package/dist/esm/providers/provideDocumentLinks.js.map +1 -0
- package/dist/esm/providers/provideHover.js +3 -6
- package/dist/esm/providers/provideHover.js.map +1 -1
- package/dist/esm/providers/provideInlayHints.js +82 -0
- package/dist/esm/providers/provideInlayHints.js.map +1 -0
- package/dist/esm/providers/provideReferences.js +39 -0
- package/dist/esm/providers/provideReferences.js.map +1 -0
- package/dist/esm/providers/provideRename.js +4 -4
- package/dist/esm/providers/provideRename.js.map +1 -1
- package/dist/esm/providers/provideSemanticTokens.js +6 -13
- package/dist/esm/providers/provideSemanticTokens.js.map +1 -1
- package/dist/esm/providers/provideWorkspaceSymbols.js +39 -13
- package/dist/esm/providers/provideWorkspaceSymbols.js.map +1 -1
- package/dist/esm/providers/resolveDefinition.js +4 -4
- package/dist/esm/providers/resolveDefinition.js.map +1 -1
- package/dist/esm/providers/tokenTooltip/buildResolutionTable.js +121 -0
- package/dist/esm/providers/tokenTooltip/buildResolutionTable.js.map +1 -0
- package/dist/esm/providers/tokenTooltip/buildTokenTooltip.js +60 -0
- package/dist/esm/providers/tokenTooltip/buildTokenTooltip.js.map +1 -0
- package/dist/esm/providers/tokenTooltip/constants.js +14 -0
- package/dist/esm/providers/tokenTooltip/constants.js.map +1 -0
- package/dist/esm/providers/tokenTooltip/formatDeclarationSites.js +53 -0
- package/dist/esm/providers/tokenTooltip/formatDeclarationSites.js.map +1 -0
- package/dist/esm/providers/tokenTooltip/formatProvenanceLine.js +86 -0
- package/dist/esm/providers/tokenTooltip/formatProvenanceLine.js.map +1 -0
- package/dist/esm/providers/tokenTooltip/index.js +6 -0
- package/dist/esm/providers/tokenTooltip/index.js.map +1 -0
- package/dist/esm/providers/tokenTooltip/resolveToLiteral.js +19 -0
- package/dist/esm/providers/tokenTooltip/resolveToLiteral.js.map +1 -0
- package/dist/esm/providers/truncate.js +6 -0
- package/dist/esm/providers/truncate.js.map +1 -0
- package/dist/esm/providers/types.js +38 -0
- package/dist/esm/providers/types.js.map +1 -0
- package/dist/esm/runtime/ConfigNotFoundError.js +21 -0
- package/dist/esm/runtime/ConfigNotFoundError.js.map +1 -0
- package/dist/esm/runtime/artifacts/index.js +2 -0
- package/dist/esm/runtime/artifacts/index.js.map +1 -0
- package/dist/esm/runtime/artifacts/loadConfiguredArtifacts.js +32 -0
- package/dist/esm/runtime/artifacts/loadConfiguredArtifacts.js.map +1 -0
- package/dist/esm/runtime/buildImportGraph.js +15 -55
- package/dist/esm/runtime/buildImportGraph.js.map +1 -1
- package/dist/esm/runtime/config/ensureServerConfig.js +64 -0
- package/dist/esm/runtime/config/ensureServerConfig.js.map +1 -0
- package/dist/esm/runtime/config/index.js +2 -0
- package/dist/esm/runtime/config/index.js.map +1 -0
- package/dist/esm/runtime/createConfigCandidatePath.js +7 -0
- package/dist/esm/runtime/createConfigCandidatePath.js.map +1 -0
- package/dist/esm/runtime/createGraphWorker.js +13 -319
- package/dist/esm/runtime/createGraphWorker.js.map +1 -1
- package/dist/esm/runtime/createServerState.js +39 -0
- package/dist/esm/runtime/createServerState.js.map +1 -0
- package/dist/esm/runtime/detectRuntime.js +40 -0
- package/dist/esm/runtime/detectRuntime.js.map +1 -0
- package/dist/esm/runtime/dispatch/LogMessageType.js +8 -0
- package/dist/esm/runtime/dispatch/LogMessageType.js.map +1 -0
- package/dist/esm/runtime/dispatch/handleWorkerResponse.js +58 -0
- package/dist/esm/runtime/dispatch/handleWorkerResponse.js.map +1 -0
- package/dist/esm/runtime/dispatch/index.js +5 -0
- package/dist/esm/runtime/dispatch/index.js.map +1 -0
- package/dist/esm/runtime/dispatch/routeLspRequest.js +232 -0
- package/dist/esm/runtime/dispatch/routeLspRequest.js.map +1 -0
- package/dist/esm/runtime/dispatch/routeWorkerRequest.js +162 -0
- package/dist/esm/runtime/dispatch/routeWorkerRequest.js.map +1 -0
- package/dist/esm/runtime/dispatch/types.js +2 -0
- package/dist/esm/runtime/dispatch/types.js.map +1 -0
- package/dist/esm/runtime/documents/handleArtifactChanged.js +18 -0
- package/dist/esm/runtime/documents/handleArtifactChanged.js.map +1 -0
- package/dist/esm/runtime/documents/handleChangeDocument.js +41 -0
- package/dist/esm/runtime/documents/handleChangeDocument.js.map +1 -0
- package/dist/esm/runtime/documents/handleCloseDocument.js +10 -0
- package/dist/esm/runtime/documents/handleCloseDocument.js.map +1 -0
- package/dist/esm/runtime/documents/handleFileChanged.js +14 -0
- package/dist/esm/runtime/documents/handleFileChanged.js.map +1 -0
- package/dist/esm/runtime/documents/handleOpenDocument.js +37 -0
- package/dist/esm/runtime/documents/handleOpenDocument.js.map +1 -0
- package/dist/esm/runtime/documents/index.js +6 -0
- package/dist/esm/runtime/documents/index.js.map +1 -0
- package/dist/esm/runtime/getServerCapabilities.js +35 -0
- package/dist/esm/runtime/getServerCapabilities.js.map +1 -0
- package/dist/esm/runtime/index.js +12 -3
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/indexing/index.js +5 -0
- package/dist/esm/runtime/indexing/index.js.map +1 -0
- package/dist/esm/runtime/indexing/indexDocument.js +32 -0
- package/dist/esm/runtime/indexing/indexDocument.js.map +1 -0
- package/dist/esm/runtime/indexing/indexGlobalStylesheets.js +12 -0
- package/dist/esm/runtime/indexing/indexGlobalStylesheets.js.map +1 -0
- package/dist/esm/runtime/indexing/reindexDocument.js +16 -0
- package/dist/esm/runtime/indexing/reindexDocument.js.map +1 -0
- package/dist/esm/runtime/indexing/updateImportEdges.js +5 -0
- package/dist/esm/runtime/indexing/updateImportEdges.js.map +1 -0
- package/dist/esm/runtime/scheduleBufferUpdate.js +13 -35
- package/dist/esm/runtime/scheduleBufferUpdate.js.map +1 -1
- package/dist/esm/runtime/startLspServer.js +36 -335
- package/dist/esm/runtime/startLspServer.js.map +1 -1
- package/dist/esm/runtime/types.js +0 -6
- package/dist/esm/runtime/types.js.map +1 -1
- package/dist/esm/testing/index.js +8 -0
- package/dist/esm/testing/index.js.map +1 -0
- package/dist/esm/testing/makeArtifactToken.js +31 -0
- package/dist/esm/testing/makeArtifactToken.js.map +1 -0
- package/dist/esm/testing/makeConfig.js +40 -0
- package/dist/esm/testing/makeConfig.js.map +1 -0
- package/dist/esm/testing/makeDeclarationNode.js +18 -0
- package/dist/esm/testing/makeDeclarationNode.js.map +1 -0
- package/dist/esm/testing/makePropertyNode.js +12 -0
- package/dist/esm/testing/makePropertyNode.js.map +1 -0
- package/dist/esm/testing/makeServerState.js +21 -0
- package/dist/esm/testing/makeServerState.js.map +1 -0
- package/dist/esm/testing/makeTokenNode.js +34 -0
- package/dist/esm/testing/makeTokenNode.js.map +1 -0
- package/dist/esm/testing/makeTransport.js +9 -0
- package/dist/esm/testing/makeTransport.js.map +1 -0
- package/dist/esm/transport/index.js +2 -0
- package/dist/esm/transport/index.js.map +1 -0
- package/dist/esm/transport/stdio/createMessageStream.js +50 -0
- package/dist/esm/transport/stdio/createMessageStream.js.map +1 -0
- package/dist/esm/transport/stdio/index.js +2 -0
- package/dist/esm/transport/stdio/index.js.map +1 -0
- package/dist/esm/types/config.js +6 -0
- package/dist/esm/types/config.js.map +1 -0
- package/dist/esm/types/css.js +6 -0
- package/dist/esm/types/css.js.map +1 -0
- package/dist/esm/types/graph.js +6 -0
- package/dist/esm/types/graph.js.map +1 -0
- package/dist/esm/types/index.js +16 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/lsp.js +10 -0
- package/dist/esm/types/lsp.js.map +1 -0
- package/dist/esm/types/protocol.js +35 -0
- package/dist/esm/types/protocol.js.map +1 -0
- package/dist/esm/types/worker.js +6 -0
- package/dist/esm/types/worker.js.map +1 -0
- package/dist/types/cli/expandGlobs.d.ts +2 -0
- package/dist/types/cli/expandGlobs.d.ts.map +1 -0
- package/dist/types/cli/index.d.ts +2 -0
- package/dist/types/cli/index.d.ts.map +1 -0
- package/dist/types/cli/loadArtifactFiles.d.ts +3 -0
- package/dist/types/cli/loadArtifactFiles.d.ts.map +1 -0
- package/dist/types/cli/printHelp.d.ts +3 -0
- package/dist/types/cli/printHelp.d.ts.map +1 -0
- package/dist/types/cli/runCheck.d.ts +2 -0
- package/dist/types/cli/runCheck.d.ts.map +1 -0
- package/dist/types/cli/runGraph.d.ts +2 -0
- package/dist/types/cli/runGraph.d.ts.map +1 -0
- package/dist/types/cli/runInspect.d.ts +2 -0
- package/dist/types/cli/runInspect.d.ts.map +1 -0
- package/dist/types/cli/runInstall.d.ts +7 -0
- package/dist/types/cli/runInstall.d.ts.map +1 -0
- package/dist/types/cli/runResolve.d.ts +8 -0
- package/dist/types/cli/runResolve.d.ts.map +1 -0
- package/dist/types/cli/runStatus.d.ts +2 -0
- package/dist/types/cli/runStatus.d.ts.map +1 -0
- package/dist/types/cli.d.ts +2 -1
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/css/colorSetup.d.ts +2 -0
- package/dist/types/css/colorSetup.d.ts.map +1 -0
- package/dist/types/css/createDocumentIndex.d.ts +21 -0
- package/dist/types/css/createDocumentIndex.d.ts.map +1 -0
- package/dist/types/css/imports/extractCssImports.d.ts +4 -0
- package/dist/types/css/imports/extractCssImports.d.ts.map +1 -0
- package/dist/types/css/imports/extractJsImports.d.ts +3 -0
- package/dist/types/css/imports/extractJsImports.d.ts.map +1 -0
- package/dist/types/css/{extractPackageName.d.ts → imports/extractPackageName.d.ts} +1 -1
- package/dist/types/css/imports/extractPackageName.d.ts.map +1 -0
- package/dist/types/css/imports/formatFileUri.d.ts +2 -0
- package/dist/types/css/imports/formatFileUri.d.ts.map +1 -0
- package/dist/types/css/imports/index.d.ts +9 -0
- package/dist/types/css/imports/index.d.ts.map +1 -0
- package/dist/types/css/imports/isBareSpecifier.d.ts +3 -0
- package/dist/types/css/imports/isBareSpecifier.d.ts.map +1 -0
- package/dist/types/css/imports/isExternalPath.d.ts +3 -0
- package/dist/types/css/imports/isExternalPath.d.ts.map +1 -0
- package/dist/types/css/imports/parseFileUri.d.ts +2 -0
- package/dist/types/css/imports/parseFileUri.d.ts.map +1 -0
- package/dist/types/css/{resolveImportSpecifier.d.ts → imports/resolveImportSpecifier.d.ts} +1 -1
- package/dist/types/css/imports/resolveImportSpecifier.d.ts.map +1 -0
- package/dist/types/css/index.d.ts +7 -24
- package/dist/types/css/index.d.ts.map +1 -1
- package/dist/types/css/lezer/applyTreeChanges.d.ts +4 -0
- package/dist/types/css/lezer/applyTreeChanges.d.ts.map +1 -0
- package/dist/types/css/lezer/computeChangedRange.d.ts +3 -0
- package/dist/types/css/lezer/computeChangedRange.d.ts.map +1 -0
- package/dist/types/css/lezer/createTreeFragments.d.ts +4 -0
- package/dist/types/css/lezer/createTreeFragments.d.ts.map +1 -0
- package/dist/types/css/lezer/index.d.ts +7 -0
- package/dist/types/css/lezer/index.d.ts.map +1 -0
- package/dist/types/css/lezer/nodeText.d.ts +3 -0
- package/dist/types/css/lezer/nodeText.d.ts.map +1 -0
- package/dist/types/css/lezer/parseCSS.d.ts +4 -0
- package/dist/types/css/lezer/parseCSS.d.ts.map +1 -0
- package/dist/types/css/lezer/types.d.ts +2 -0
- package/dist/types/css/lezer/types.d.ts.map +1 -0
- package/dist/types/css/scanners/extractPropertyAtPosition.d.ts +20 -0
- package/dist/types/css/scanners/extractPropertyAtPosition.d.ts.map +1 -0
- package/dist/types/css/scanners/index.d.ts +6 -0
- package/dist/types/css/scanners/index.d.ts.map +1 -0
- package/dist/types/css/scanners/parseSuppressionDirectives.d.ts +10 -0
- package/dist/types/css/scanners/parseSuppressionDirectives.d.ts.map +1 -0
- package/dist/types/css/scanners/scanDeclarations.d.ts +5 -0
- package/dist/types/css/scanners/scanDeclarations.d.ts.map +1 -0
- package/dist/types/css/scanners/scanProperties.d.ts +5 -0
- package/dist/types/css/scanners/scanProperties.d.ts.map +1 -0
- package/dist/types/css/scanners/scanUsages.d.ts +5 -0
- package/dist/types/css/scanners/scanUsages.d.ts.map +1 -0
- package/dist/types/css/selectors/buildSelectorContext.d.ts +4 -0
- package/dist/types/css/selectors/buildSelectorContext.d.ts.map +1 -0
- package/dist/types/css/selectors/classifySelectorScope.d.ts +4 -0
- package/dist/types/css/selectors/classifySelectorScope.d.ts.map +1 -0
- package/dist/types/css/selectors/index.d.ts +3 -0
- package/dist/types/css/selectors/index.d.ts.map +1 -0
- package/dist/types/css/tree/ancestors.d.ts +6 -0
- package/dist/types/css/tree/ancestors.d.ts.map +1 -0
- package/dist/types/css/tree/declarations.d.ts +2 -0
- package/dist/types/css/tree/declarations.d.ts.map +1 -0
- package/dist/types/css/tree/index.d.ts +5 -0
- package/dist/types/css/tree/index.d.ts.map +1 -0
- package/dist/types/css/tree/lineage.d.ts +5 -0
- package/dist/types/css/tree/lineage.d.ts.map +1 -0
- package/dist/types/css/tree/lines.d.ts +4 -0
- package/dist/types/css/tree/lines.d.ts.map +1 -0
- package/dist/types/css/values/compareFallbackStaleness.d.ts +2 -0
- package/dist/types/css/values/compareFallbackStaleness.d.ts.map +1 -0
- package/dist/types/css/values/constants.d.ts +5 -0
- package/dist/types/css/values/constants.d.ts.map +1 -0
- package/dist/types/css/values/expectedTypeForProperty.d.ts +7 -0
- package/dist/types/css/values/expectedTypeForProperty.d.ts.map +1 -0
- package/dist/types/css/values/extractUnit.d.ts +3 -0
- package/dist/types/css/values/extractUnit.d.ts.map +1 -0
- package/dist/types/css/values/index.d.ts +11 -0
- package/dist/types/css/values/index.d.ts.map +1 -0
- package/dist/types/css/values/inferValueType.d.ts +16 -0
- package/dist/types/css/values/inferValueType.d.ts.map +1 -0
- package/dist/types/css/values/isAssignable.d.ts +4 -0
- package/dist/types/css/values/isAssignable.d.ts.map +1 -0
- package/dist/types/css/values/isSuppressed.d.ts +4 -0
- package/dist/types/css/values/isSuppressed.d.ts.map +1 -0
- package/dist/types/css/values/mapDtcgType.d.ts +3 -0
- package/dist/types/css/values/mapDtcgType.d.ts.map +1 -0
- package/dist/types/css/values/parseSyntaxType.d.ts +13 -0
- package/dist/types/css/values/parseSyntaxType.d.ts.map +1 -0
- package/dist/types/css/values/resolveDimensionValue.d.ts +4 -0
- package/dist/types/css/values/resolveDimensionValue.d.ts.map +1 -0
- package/dist/types/diagnosticCodes.d.ts +4 -0
- package/dist/types/diagnosticCodes.d.ts.map +1 -0
- package/dist/types/extension/findBundledVsixPath.d.ts +3 -0
- package/dist/types/extension/findBundledVsixPath.d.ts.map +1 -0
- package/dist/types/extension/index.d.ts +4 -0
- package/dist/types/extension/index.d.ts.map +1 -0
- package/dist/types/extension/installBundledVscodeExtension.d.ts +12 -0
- package/dist/types/extension/installBundledVscodeExtension.d.ts.map +1 -0
- package/dist/types/extension/updateVscodeSettings.d.ts +3 -0
- package/dist/types/extension/updateVscodeSettings.d.ts.map +1 -0
- package/dist/types/graph/ReachabilityCache.d.ts +15 -5
- package/dist/types/graph/ReachabilityCache.d.ts.map +1 -1
- package/dist/types/graph/TokenGraph.d.ts +107 -5
- package/dist/types/graph/TokenGraph.d.ts.map +1 -1
- package/dist/types/graph/index.d.ts +4 -4
- package/dist/types/graph/index.d.ts.map +1 -1
- package/dist/types/graph/loadArtifact.d.ts +8 -4
- package/dist/types/graph/loadArtifact.d.ts.map +1 -1
- package/dist/types/graph/parseArtifactToken.d.ts +8 -4
- package/dist/types/graph/parseArtifactToken.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/protocol/createRequest.d.ts +6 -6
- package/dist/types/protocol/createRequest.d.ts.map +1 -1
- package/dist/types/protocol/index.d.ts +3 -7
- package/dist/types/protocol/index.d.ts.map +1 -1
- package/dist/types/protocol/matchResponse.d.ts +2 -2
- package/dist/types/protocol/matchResponse.d.ts.map +1 -1
- package/dist/types/protocol/resolveConfig.d.ts +10 -2
- package/dist/types/protocol/resolveConfig.d.ts.map +1 -1
- package/dist/types/protocol/typeGuards.d.ts +17 -0
- package/dist/types/protocol/typeGuards.d.ts.map +1 -0
- package/dist/types/providers/artifactDiagnostics/checkBrokenAlias.d.ts +4 -0
- package/dist/types/providers/artifactDiagnostics/checkBrokenAlias.d.ts.map +1 -0
- package/dist/types/providers/artifactDiagnostics/checkCircularAlias.d.ts +4 -0
- package/dist/types/providers/artifactDiagnostics/checkCircularAlias.d.ts.map +1 -0
- package/dist/types/providers/artifactDiagnostics/checkDraftSyntax.d.ts +4 -0
- package/dist/types/providers/artifactDiagnostics/checkDraftSyntax.d.ts.map +1 -0
- package/dist/types/providers/artifactDiagnostics/checkMissingType.d.ts +4 -0
- package/dist/types/providers/artifactDiagnostics/checkMissingType.d.ts.map +1 -0
- package/dist/types/providers/artifactDiagnostics/checkSchemaViolation.d.ts +4 -0
- package/dist/types/providers/artifactDiagnostics/checkSchemaViolation.d.ts.map +1 -0
- package/dist/types/providers/artifactDiagnostics/index.d.ts +13 -0
- package/dist/types/providers/artifactDiagnostics/index.d.ts.map +1 -0
- package/dist/types/providers/classifyProvenance.d.ts +8 -3
- package/dist/types/providers/classifyProvenance.d.ts.map +1 -1
- package/dist/types/providers/completions/buildCompletionItem.d.ts +5 -0
- package/dist/types/providers/completions/buildCompletionItem.d.ts.map +1 -0
- package/dist/types/providers/completions/buildSortText.d.ts +15 -0
- package/dist/types/providers/completions/buildSortText.d.ts.map +1 -0
- package/dist/types/providers/completions/index.d.ts +6 -0
- package/dist/types/providers/completions/index.d.ts.map +1 -0
- package/dist/types/providers/{provideCompletions.d.ts → completions/provideCompletions.d.ts} +3 -6
- package/dist/types/providers/completions/provideCompletions.d.ts.map +1 -0
- package/dist/types/providers/completions/resolveCompletionItem.d.ts +9 -0
- package/dist/types/providers/completions/resolveCompletionItem.d.ts.map +1 -0
- package/dist/types/providers/completions/resolveExpectedType.d.ts +9 -0
- package/dist/types/providers/completions/resolveExpectedType.d.ts.map +1 -0
- package/dist/types/providers/constants.d.ts +31 -0
- package/dist/types/providers/constants.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/checkMissingFallback.d.ts +5 -0
- package/dist/types/providers/diagnostics/checkMissingFallback.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/checkNoColorScheme.d.ts +5 -0
- package/dist/types/providers/diagnostics/checkNoColorScheme.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/checkPrimitiveToken.d.ts +5 -0
- package/dist/types/providers/diagnostics/checkPrimitiveToken.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/checkScopedUsage.d.ts +5 -0
- package/dist/types/providers/diagnostics/checkScopedUsage.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/checkStaleFallback.d.ts +5 -0
- package/dist/types/providers/diagnostics/checkStaleFallback.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/checkTypeMismatch.d.ts +5 -0
- package/dist/types/providers/diagnostics/checkTypeMismatch.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/checkTypeUncertain.d.ts +5 -0
- package/dist/types/providers/diagnostics/checkTypeUncertain.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/checkUnknownVar.d.ts +5 -0
- package/dist/types/providers/diagnostics/checkUnknownVar.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/checkUnreachableToken.d.ts +5 -0
- package/dist/types/providers/diagnostics/checkUnreachableToken.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/index.d.ts +3 -0
- package/dist/types/providers/diagnostics/index.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/orchestrateDiagnostics.d.ts +6 -0
- package/dist/types/providers/diagnostics/orchestrateDiagnostics.d.ts.map +1 -0
- package/dist/types/providers/diagnostics/types.d.ts +30 -0
- package/dist/types/providers/diagnostics/types.d.ts.map +1 -0
- package/dist/types/providers/formatCheckReport.d.ts +4 -3
- package/dist/types/providers/formatCheckReport.d.ts.map +1 -1
- package/dist/types/providers/index.d.ts +18 -10
- package/dist/types/providers/index.d.ts.map +1 -1
- package/dist/types/providers/makeDiagnostic.d.ts +3 -0
- package/dist/types/providers/makeDiagnostic.d.ts.map +1 -0
- package/dist/types/providers/prepareRename.d.ts +15 -0
- package/dist/types/providers/prepareRename.d.ts.map +1 -0
- package/dist/types/providers/provideCodeActions.d.ts +9 -0
- package/dist/types/providers/provideCodeActions.d.ts.map +1 -0
- package/dist/types/providers/provideDocumentColors.d.ts +1 -14
- package/dist/types/providers/provideDocumentColors.d.ts.map +1 -1
- package/dist/types/providers/provideDocumentLinks.d.ts +13 -0
- package/dist/types/providers/provideDocumentLinks.d.ts.map +1 -0
- package/dist/types/providers/provideHover.d.ts +2 -5
- package/dist/types/providers/provideHover.d.ts.map +1 -1
- package/dist/types/providers/provideInlayHints.d.ts +21 -0
- package/dist/types/providers/provideInlayHints.d.ts.map +1 -0
- package/dist/types/providers/provideReferences.d.ts +10 -0
- package/dist/types/providers/provideReferences.d.ts.map +1 -0
- package/dist/types/providers/provideRename.d.ts +2 -3
- package/dist/types/providers/provideRename.d.ts.map +1 -1
- package/dist/types/providers/provideSemanticTokens.d.ts +2 -1
- package/dist/types/providers/provideSemanticTokens.d.ts.map +1 -1
- package/dist/types/providers/provideWorkspaceSymbols.d.ts +2 -10
- package/dist/types/providers/provideWorkspaceSymbols.d.ts.map +1 -1
- package/dist/types/providers/resolveDefinition.d.ts +2 -5
- package/dist/types/providers/resolveDefinition.d.ts.map +1 -1
- package/dist/types/providers/tokenTooltip/buildResolutionTable.d.ts +4 -0
- package/dist/types/providers/tokenTooltip/buildResolutionTable.d.ts.map +1 -0
- package/dist/types/providers/tokenTooltip/buildTokenTooltip.d.ts +22 -0
- package/dist/types/providers/tokenTooltip/buildTokenTooltip.d.ts.map +1 -0
- package/dist/types/providers/tokenTooltip/constants.d.ts +5 -0
- package/dist/types/providers/tokenTooltip/constants.d.ts.map +1 -0
- package/dist/types/providers/tokenTooltip/formatDeclarationSites.d.ts +3 -0
- package/dist/types/providers/tokenTooltip/formatDeclarationSites.d.ts.map +1 -0
- package/dist/types/providers/tokenTooltip/formatProvenanceLine.d.ts +4 -0
- package/dist/types/providers/tokenTooltip/formatProvenanceLine.d.ts.map +1 -0
- package/dist/types/providers/tokenTooltip/index.d.ts +6 -0
- package/dist/types/providers/tokenTooltip/index.d.ts.map +1 -0
- package/dist/types/providers/tokenTooltip/resolveToLiteral.d.ts +3 -0
- package/dist/types/providers/tokenTooltip/resolveToLiteral.d.ts.map +1 -0
- package/dist/types/providers/truncate.d.ts +4 -0
- package/dist/types/providers/truncate.d.ts.map +1 -0
- package/dist/types/providers/types.d.ts +101 -0
- package/dist/types/providers/types.d.ts.map +1 -0
- package/dist/types/runtime/ConfigNotFoundError.d.ts +8 -0
- package/dist/types/runtime/ConfigNotFoundError.d.ts.map +1 -0
- package/dist/types/runtime/artifacts/index.d.ts +2 -0
- package/dist/types/runtime/artifacts/index.d.ts.map +1 -0
- package/dist/types/runtime/artifacts/loadConfiguredArtifacts.d.ts +3 -0
- package/dist/types/runtime/artifacts/loadConfiguredArtifacts.d.ts.map +1 -0
- package/dist/types/runtime/buildImportGraph.d.ts +2 -1
- package/dist/types/runtime/buildImportGraph.d.ts.map +1 -1
- package/dist/types/runtime/config/ensureServerConfig.d.ts +3 -0
- package/dist/types/runtime/config/ensureServerConfig.d.ts.map +1 -0
- package/dist/types/runtime/config/index.d.ts +2 -0
- package/dist/types/runtime/config/index.d.ts.map +1 -0
- package/dist/types/runtime/createConfigCandidatePath.d.ts +3 -0
- package/dist/types/runtime/createConfigCandidatePath.d.ts.map +1 -0
- package/dist/types/runtime/createGraphWorker.d.ts +16 -3
- package/dist/types/runtime/createGraphWorker.d.ts.map +1 -1
- package/dist/types/runtime/createServerState.d.ts +3 -0
- package/dist/types/runtime/createServerState.d.ts.map +1 -0
- package/dist/types/runtime/detectRuntime.d.ts +10 -0
- package/dist/types/runtime/detectRuntime.d.ts.map +1 -0
- package/dist/types/runtime/dispatch/LogMessageType.d.ts +7 -0
- package/dist/types/runtime/dispatch/LogMessageType.d.ts.map +1 -0
- package/dist/types/runtime/dispatch/handleWorkerResponse.d.ts +9 -0
- package/dist/types/runtime/dispatch/handleWorkerResponse.d.ts.map +1 -0
- package/dist/types/runtime/dispatch/index.d.ts +6 -0
- package/dist/types/runtime/dispatch/index.d.ts.map +1 -0
- package/dist/types/runtime/dispatch/routeLspRequest.d.ts +3 -0
- package/dist/types/runtime/dispatch/routeLspRequest.d.ts.map +1 -0
- package/dist/types/runtime/dispatch/routeWorkerRequest.d.ts +4 -0
- package/dist/types/runtime/dispatch/routeWorkerRequest.d.ts.map +1 -0
- package/dist/types/runtime/dispatch/types.d.ts +29 -0
- package/dist/types/runtime/dispatch/types.d.ts.map +1 -0
- package/dist/types/runtime/documents/handleArtifactChanged.d.ts +7 -0
- package/dist/types/runtime/documents/handleArtifactChanged.d.ts.map +1 -0
- package/dist/types/runtime/documents/handleChangeDocument.d.ts +6 -0
- package/dist/types/runtime/documents/handleChangeDocument.d.ts.map +1 -0
- package/dist/types/runtime/documents/handleCloseDocument.d.ts +11 -0
- package/dist/types/runtime/documents/handleCloseDocument.d.ts.map +1 -0
- package/dist/types/runtime/documents/handleFileChanged.d.ts +7 -0
- package/dist/types/runtime/documents/handleFileChanged.d.ts.map +1 -0
- package/dist/types/runtime/documents/handleOpenDocument.d.ts +6 -0
- package/dist/types/runtime/documents/handleOpenDocument.d.ts.map +1 -0
- package/dist/types/runtime/documents/index.d.ts +6 -0
- package/dist/types/runtime/documents/index.d.ts.map +1 -0
- package/dist/types/runtime/getServerCapabilities.d.ts +42 -0
- package/dist/types/runtime/getServerCapabilities.d.ts.map +1 -0
- package/dist/types/runtime/index.d.ts +13 -4
- package/dist/types/runtime/index.d.ts.map +1 -1
- package/dist/types/runtime/indexing/index.d.ts +5 -0
- package/dist/types/runtime/indexing/index.d.ts.map +1 -0
- package/dist/types/runtime/indexing/indexDocument.d.ts +12 -0
- package/dist/types/runtime/indexing/indexDocument.d.ts.map +1 -0
- package/dist/types/runtime/indexing/indexGlobalStylesheets.d.ts +16 -0
- package/dist/types/runtime/indexing/indexGlobalStylesheets.d.ts.map +1 -0
- package/dist/types/runtime/indexing/reindexDocument.d.ts +18 -0
- package/dist/types/runtime/indexing/reindexDocument.d.ts.map +1 -0
- package/dist/types/runtime/indexing/updateImportEdges.d.ts +12 -0
- package/dist/types/runtime/indexing/updateImportEdges.d.ts.map +1 -0
- package/dist/types/runtime/scheduleBufferUpdate.d.ts +12 -2
- package/dist/types/runtime/scheduleBufferUpdate.d.ts.map +1 -1
- package/dist/types/runtime/startLspServer.d.ts +5 -4
- package/dist/types/runtime/startLspServer.d.ts.map +1 -1
- package/dist/types/runtime/types.d.ts +25 -2
- package/dist/types/runtime/types.d.ts.map +1 -1
- package/dist/types/testing/index.d.ts +8 -0
- package/dist/types/testing/index.d.ts.map +1 -0
- package/dist/types/testing/makeArtifactToken.d.ts +11 -0
- package/dist/types/testing/makeArtifactToken.d.ts.map +1 -0
- package/dist/types/testing/makeConfig.d.ts +4 -0
- package/dist/types/testing/makeConfig.d.ts.map +1 -0
- package/dist/types/testing/makeDeclarationNode.d.ts +7 -0
- package/dist/types/testing/makeDeclarationNode.d.ts.map +1 -0
- package/dist/types/testing/makePropertyNode.d.ts +7 -0
- package/dist/types/testing/makePropertyNode.d.ts.map +1 -0
- package/dist/types/testing/makeServerState.d.ts +12 -0
- package/dist/types/testing/makeServerState.d.ts.map +1 -0
- package/dist/types/testing/makeTokenNode.d.ts +6 -0
- package/dist/types/testing/makeTokenNode.d.ts.map +1 -0
- package/dist/types/testing/makeTransport.d.ts +4 -0
- package/dist/types/testing/makeTransport.d.ts.map +1 -0
- package/dist/types/transport/index.d.ts +2 -0
- package/dist/types/transport/index.d.ts.map +1 -0
- package/dist/types/transport/stdio/createMessageStream.d.ts +21 -0
- package/dist/types/transport/stdio/createMessageStream.d.ts.map +1 -0
- package/dist/types/transport/stdio/index.d.ts +2 -0
- package/dist/types/transport/stdio/index.d.ts.map +1 -0
- package/dist/types/types/config.d.ts +121 -0
- package/dist/types/types/config.d.ts.map +1 -0
- package/dist/types/types/css.d.ts +81 -0
- package/dist/types/types/css.d.ts.map +1 -0
- package/dist/types/types/graph.d.ts +220 -0
- package/dist/types/types/graph.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +17 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/lsp.d.ts +90 -0
- package/dist/types/types/lsp.d.ts.map +1 -0
- package/dist/types/types/protocol.d.ts +124 -0
- package/dist/types/types/protocol.d.ts.map +1 -0
- package/dist/types/types/worker.d.ts +231 -0
- package/dist/types/types/worker.d.ts.map +1 -0
- package/extension/terrazzo-lsp-0.1.0.vsix +0 -0
- package/package.json +37 -4
- package/dist/esm/css/buildSelectorContext.js.map +0 -1
- package/dist/esm/css/classifySelectorScope.js.map +0 -1
- package/dist/esm/css/compareFallbackStaleness.js +0 -61
- package/dist/esm/css/compareFallbackStaleness.js.map +0 -1
- package/dist/esm/css/constants.js.map +0 -1
- package/dist/esm/css/expectedTypeForProperty.js.map +0 -1
- package/dist/esm/css/extractCssImports.js +0 -20
- package/dist/esm/css/extractCssImports.js.map +0 -1
- package/dist/esm/css/extractJsImports.js.map +0 -1
- package/dist/esm/css/extractPackageName.js.map +0 -1
- package/dist/esm/css/extractPropertyAtPosition.js +0 -30
- package/dist/esm/css/extractPropertyAtPosition.js.map +0 -1
- package/dist/esm/css/extractUnit.js +0 -9
- package/dist/esm/css/extractUnit.js.map +0 -1
- package/dist/esm/css/formatFileUri.js +0 -5
- package/dist/esm/css/formatFileUri.js.map +0 -1
- package/dist/esm/css/isAssignable.js.map +0 -1
- package/dist/esm/css/isBareSpecifier.js.map +0 -1
- package/dist/esm/css/isExternalPath.js.map +0 -1
- package/dist/esm/css/isSuppressed.js +0 -49
- package/dist/esm/css/isSuppressed.js.map +0 -1
- package/dist/esm/css/mapDtcgType.js.map +0 -1
- package/dist/esm/css/parseFileUri.js +0 -5
- package/dist/esm/css/parseFileUri.js.map +0 -1
- package/dist/esm/css/parseSuppressionDirectives.js +0 -57
- package/dist/esm/css/parseSuppressionDirectives.js.map +0 -1
- package/dist/esm/css/parseSyntaxType.js +0 -27
- package/dist/esm/css/parseSyntaxType.js.map +0 -1
- package/dist/esm/css/resolveImportSpecifier.js.map +0 -1
- package/dist/esm/css/scanDeclarations.js +0 -107
- package/dist/esm/css/scanDeclarations.js.map +0 -1
- package/dist/esm/css/scanProperties.js +0 -40
- package/dist/esm/css/scanProperties.js.map +0 -1
- package/dist/esm/css/scanUsages.js +0 -81
- package/dist/esm/css/scanUsages.js.map +0 -1
- package/dist/esm/protocol/isCompletionRequest.js +0 -4
- package/dist/esm/protocol/isCompletionRequest.js.map +0 -1
- package/dist/esm/protocol/isDefinitionRequest.js +0 -4
- package/dist/esm/protocol/isDefinitionRequest.js.map +0 -1
- package/dist/esm/protocol/isDiagnosticsRequest.js +0 -4
- package/dist/esm/protocol/isDiagnosticsRequest.js.map +0 -1
- package/dist/esm/protocol/isHoverRequest.js +0 -4
- package/dist/esm/protocol/isHoverRequest.js.map +0 -1
- package/dist/esm/protocol/isReferencesRequest.js +0 -4
- package/dist/esm/protocol/isReferencesRequest.js.map +0 -1
- package/dist/esm/providers/buildTokenTooltip.js +0 -504
- package/dist/esm/providers/buildTokenTooltip.js.map +0 -1
- package/dist/esm/providers/produceArtifactDiagnostics.js +0 -101
- package/dist/esm/providers/produceArtifactDiagnostics.js.map +0 -1
- package/dist/esm/providers/produceDiagnostics.js +0 -245
- package/dist/esm/providers/produceDiagnostics.js.map +0 -1
- package/dist/esm/providers/provideCompletions.js +0 -286
- package/dist/esm/providers/provideCompletions.js.map +0 -1
- package/dist/esm/providers/tooltipOptions.js +0 -15
- package/dist/esm/providers/tooltipOptions.js.map +0 -1
- package/dist/esm/types.js +0 -74
- package/dist/esm/types.js.map +0 -1
- package/dist/types/css/buildSelectorContext.d.ts +0 -4
- package/dist/types/css/buildSelectorContext.d.ts.map +0 -1
- package/dist/types/css/classifySelectorScope.d.ts +0 -7
- package/dist/types/css/classifySelectorScope.d.ts.map +0 -1
- package/dist/types/css/compareFallbackStaleness.d.ts +0 -8
- package/dist/types/css/compareFallbackStaleness.d.ts.map +0 -1
- package/dist/types/css/constants.d.ts +0 -11
- package/dist/types/css/constants.d.ts.map +0 -1
- package/dist/types/css/expectedTypeForProperty.d.ts +0 -22
- package/dist/types/css/expectedTypeForProperty.d.ts.map +0 -1
- package/dist/types/css/extractCssImports.d.ts +0 -6
- package/dist/types/css/extractCssImports.d.ts.map +0 -1
- package/dist/types/css/extractJsImports.d.ts +0 -6
- package/dist/types/css/extractJsImports.d.ts.map +0 -1
- package/dist/types/css/extractPackageName.d.ts.map +0 -1
- package/dist/types/css/extractPropertyAtPosition.d.ts +0 -22
- package/dist/types/css/extractPropertyAtPosition.d.ts.map +0 -1
- package/dist/types/css/extractUnit.d.ts +0 -6
- package/dist/types/css/extractUnit.d.ts.map +0 -1
- package/dist/types/css/formatFileUri.d.ts +0 -3
- package/dist/types/css/formatFileUri.d.ts.map +0 -1
- package/dist/types/css/isAssignable.d.ts +0 -7
- package/dist/types/css/isAssignable.d.ts.map +0 -1
- package/dist/types/css/isBareSpecifier.d.ts +0 -3
- package/dist/types/css/isBareSpecifier.d.ts.map +0 -1
- package/dist/types/css/isExternalPath.d.ts +0 -3
- package/dist/types/css/isExternalPath.d.ts.map +0 -1
- package/dist/types/css/isSuppressed.d.ts +0 -7
- package/dist/types/css/isSuppressed.d.ts.map +0 -1
- package/dist/types/css/mapDtcgType.d.ts +0 -7
- package/dist/types/css/mapDtcgType.d.ts.map +0 -1
- package/dist/types/css/parseFileUri.d.ts +0 -3
- package/dist/types/css/parseFileUri.d.ts.map +0 -1
- package/dist/types/css/parseSuppressionDirectives.d.ts +0 -13
- package/dist/types/css/parseSuppressionDirectives.d.ts.map +0 -1
- package/dist/types/css/parseSyntaxType.d.ts +0 -4
- package/dist/types/css/parseSyntaxType.d.ts.map +0 -1
- package/dist/types/css/resolveDimensionValue.d.ts +0 -7
- package/dist/types/css/resolveDimensionValue.d.ts.map +0 -1
- package/dist/types/css/resolveImportSpecifier.d.ts.map +0 -1
- package/dist/types/css/scanDeclarations.d.ts +0 -8
- package/dist/types/css/scanDeclarations.d.ts.map +0 -1
- package/dist/types/css/scanProperties.d.ts +0 -7
- package/dist/types/css/scanProperties.d.ts.map +0 -1
- package/dist/types/css/scanUsages.d.ts +0 -7
- package/dist/types/css/scanUsages.d.ts.map +0 -1
- package/dist/types/protocol/isCompletionRequest.d.ts +0 -5
- package/dist/types/protocol/isCompletionRequest.d.ts.map +0 -1
- package/dist/types/protocol/isDefinitionRequest.d.ts +0 -5
- package/dist/types/protocol/isDefinitionRequest.d.ts.map +0 -1
- package/dist/types/protocol/isDiagnosticsRequest.d.ts +0 -5
- package/dist/types/protocol/isDiagnosticsRequest.d.ts.map +0 -1
- package/dist/types/protocol/isHoverRequest.d.ts +0 -5
- package/dist/types/protocol/isHoverRequest.d.ts.map +0 -1
- package/dist/types/protocol/isReferencesRequest.d.ts +0 -5
- package/dist/types/protocol/isReferencesRequest.d.ts.map +0 -1
- package/dist/types/providers/buildTokenTooltip.d.ts +0 -33
- package/dist/types/providers/buildTokenTooltip.d.ts.map +0 -1
- package/dist/types/providers/produceArtifactDiagnostics.d.ts +0 -14
- package/dist/types/providers/produceArtifactDiagnostics.d.ts.map +0 -1
- package/dist/types/providers/produceDiagnostics.d.ts +0 -5
- package/dist/types/providers/produceDiagnostics.d.ts.map +0 -1
- package/dist/types/providers/provideCompletions.d.ts.map +0 -1
- package/dist/types/providers/tooltipOptions.d.ts +0 -12
- package/dist/types/providers/tooltipOptions.d.ts.map +0 -1
- package/dist/types/types.d.ts +0 -927
- package/dist/types/types.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -17,15 +17,23 @@ Language server providing CSS custom property intelligence for design token work
|
|
|
17
17
|
|
|
18
18
|
## Editor Setup
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
**VS Code:**
|
|
20
|
+
**VS Code** (recommended):
|
|
23
21
|
|
|
24
22
|
```bash
|
|
25
|
-
bun
|
|
23
|
+
bun run build:all
|
|
24
|
+
npm install -D @canonical/design-tokens
|
|
25
|
+
npx terrazzo-lsp install vscode
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
The `terrazzo-lsp` command is re-exported by `@canonical/design-tokens`, so
|
|
29
|
+
consumers can use `npx terrazzo-lsp` without installing the LSP package
|
|
30
|
+
directly. The install command attempts to install the bundled VS Code extension
|
|
31
|
+
with the `code` CLI and always writes `.vscode/settings.json`. If `code` is not
|
|
32
|
+
on your `PATH`, it prints the manual `code --install-extension ...` command.
|
|
33
|
+
|
|
34
|
+
The extension auto-detects `bun` first and falls back to `node >= 22`.
|
|
35
|
+
|
|
36
|
+
**Neovim** (via nvim-lspconfig):
|
|
29
37
|
|
|
30
38
|
```bash
|
|
31
39
|
bun dist/esm/cli.js install neovim
|
|
@@ -40,12 +48,124 @@ bun dist/esm/cli.js install helix
|
|
|
40
48
|
## CLI
|
|
41
49
|
|
|
42
50
|
```bash
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
51
|
+
npx terrazzo-lsp install vscode # Install bundled VS Code extension + workspace settings
|
|
52
|
+
npx terrazzo-lsp --stdio # Start LSP server on stdio
|
|
53
|
+
npx terrazzo-lsp --stdio --allow-degraded # Start with reduced capabilities when config is missing
|
|
54
|
+
npx terrazzo-lsp check [globs] # Run diagnostics on CSS files
|
|
55
|
+
npx terrazzo-lsp status # Show config and artifact status
|
|
56
|
+
npx terrazzo-lsp inspect <var> # Inspect a CSS custom property
|
|
57
|
+
npx terrazzo-lsp resolve <spec> # Resolve an import specifier
|
|
58
|
+
npx terrazzo-lsp graph <file> # Show import graph from a file
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Diagnostics Reference
|
|
62
|
+
|
|
63
|
+
The LSP emits 14 diagnostic codes across two categories: **CSS** (in-file analysis) and **DTCG** (artifact-level validation). The example below triggers every CSS diagnostic:
|
|
64
|
+
|
|
65
|
+
```css
|
|
66
|
+
/* ──────────────────────────────────────────────────────────
|
|
67
|
+
Example: every terrazzo-lsp CSS diagnostic in one file
|
|
68
|
+
────────────────────────────────────────────────────────── */
|
|
69
|
+
|
|
70
|
+
/* Assume the following tokens exist in the artifact:
|
|
71
|
+
* --color-fg : oklch(17.2% 0 0) tier: semantic, type: color
|
|
72
|
+
* --spacing-sm : 0.5rem tier: semantic, type: dimension
|
|
73
|
+
* --color-palette-blue : oklch(50% 0.15 250) tier: primitive, type: color
|
|
74
|
+
* --button-pad : 0.75rem tier: semantic, scoped to .button
|
|
75
|
+
* --unreachable-token : 1rem (in a file not imported by this sheet)
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
/* ① css/unknown-var (off by default — enable via config)
|
|
79
|
+
* A var() reference that does not match any known custom property. */
|
|
80
|
+
.unknown {
|
|
81
|
+
margin: var(--does-not-exist);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* ② css/missing-fallback
|
|
85
|
+
* A var() reference to a non-artifact property with no fallback value
|
|
86
|
+
* and no @property registration. */
|
|
87
|
+
.missing-fb {
|
|
88
|
+
padding: var(--local-pad);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* ③ css/stale-fallback
|
|
92
|
+
* The fallback literal no longer matches the token's resolved value. */
|
|
93
|
+
.stale-fb {
|
|
94
|
+
gap: var(--spacing-sm, 16px); /* actual resolved value is 0.5rem, not 16px */
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* ④ css/type-mismatch
|
|
98
|
+
* A token's DTCG type is incompatible with the CSS property's
|
|
99
|
+
* expected value type (e.g. color token in a length context). */
|
|
100
|
+
.type-err {
|
|
101
|
+
width: var(--color-fg); /* color token used where <length> is expected */
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* ⑤ css/type-uncertain
|
|
105
|
+
* A typed token appears in a shorthand or context where multiple
|
|
106
|
+
* value types are acceptable — the LSP cannot confirm correctness. */
|
|
107
|
+
.type-warn {
|
|
108
|
+
background: var(--spacing-sm); /* dimension token in a shorthand that accepts many types */
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* ⑥ css/unreachable-token
|
|
112
|
+
* The token's artifact output file is not reachable through this
|
|
113
|
+
* file's @import graph. */
|
|
114
|
+
.unreachable {
|
|
115
|
+
margin: var(--unreachable-token);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* ⑦ css/primitive-token
|
|
119
|
+
* Direct use of a primitive-tier token. Prefer semantic aliases. */
|
|
120
|
+
.primitive {
|
|
121
|
+
color: var(--color-palette-blue);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* ⑧ css/scoped-usage
|
|
125
|
+
* The token is declared under a specific selector scope (e.g. .button)
|
|
126
|
+
* but is referenced outside that scope. */
|
|
127
|
+
.card {
|
|
128
|
+
padding: var(--button-pad); /* --button-pad is scoped to .button */
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/* ⑨ css/no-color-scheme
|
|
132
|
+
* A light-dark() function is used without a color-scheme property
|
|
133
|
+
* on the same selector or an ancestor. */
|
|
134
|
+
.no-scheme {
|
|
135
|
+
color: light-dark(black, white); /* no color-scheme declared */
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/* ──────────────────────────────────────────────────────────
|
|
139
|
+
Suppression syntax
|
|
140
|
+
────────────────────────────────────────────────────────── */
|
|
141
|
+
|
|
142
|
+
/* Disable all checks for a region: */
|
|
143
|
+
/* terrazzo-lsp-disable */
|
|
144
|
+
.suppressed {
|
|
145
|
+
width: var(--color-fg); /* no diagnostic — all checks disabled */
|
|
146
|
+
}
|
|
147
|
+
/* terrazzo-lsp-enable */
|
|
148
|
+
|
|
149
|
+
/* Disable a specific code for the next line: */
|
|
150
|
+
/* terrazzo-lsp-disable css/primitive-token */
|
|
151
|
+
.selective {
|
|
152
|
+
color: var(--color-palette-blue); /* no diagnostic — primitive check disabled */
|
|
153
|
+
}
|
|
154
|
+
/* terrazzo-lsp-enable css/primitive-token */
|
|
47
155
|
```
|
|
48
156
|
|
|
157
|
+
### DTCG Diagnostics (artifact-level)
|
|
158
|
+
|
|
159
|
+
These are emitted once when loading `tokens.json` artifacts, not per CSS file. They validate that the design token definitions conform to the [DTCG 2025.10](https://tr.designtokens.org/format/) specification.
|
|
160
|
+
|
|
161
|
+
| Code | Default Severity | Trigger |
|
|
162
|
+
|------|-----------------|---------|
|
|
163
|
+
| `dtcg/broken-alias` | Error | An `{alias.path}` reference points to a token ID that does not exist in any loaded artifact. |
|
|
164
|
+
| `dtcg/schema-violation` | Error | A token's value is invalid for its declared `$type` — e.g. `$type: color` with a value that is not a valid CSS colour, or `$type: dimension` with a value that cannot be resolved to a length/percentage. |
|
|
165
|
+
| `dtcg/circular-alias` | Error | The alias chain for a token forms a cycle (a token ID appears more than once in the resolution path). |
|
|
166
|
+
| `dtcg/missing-type` | Warning | Token has no `$type` field and cannot inherit one from a parent group. The resolved type is ambiguous. |
|
|
167
|
+
| `dtcg/draft-syntax` | Info | Token uses pre-standardisation draft field syntax (`value`/`type` without the `$` prefix) or has an empty token ID, suggesting it was authored before the DTCG standard was finalised. |
|
|
168
|
+
|
|
49
169
|
## Configuration
|
|
50
170
|
|
|
51
171
|
Create a `terrazzo-lsp.config.json` in your workspace root:
|
|
@@ -57,13 +177,41 @@ Create a `terrazzo-lsp.config.json` in your workspace root:
|
|
|
57
177
|
}
|
|
58
178
|
```
|
|
59
179
|
|
|
180
|
+
If no config file is present, the output panel logs every candidate path it
|
|
181
|
+
tried, prints a ready-to-copy starter config, and then exits. For temporary
|
|
182
|
+
degraded startup, pass `--allow-degraded`.
|
|
183
|
+
|
|
184
|
+
```json
|
|
185
|
+
{ "artifacts": ["@canonical/design-tokens/dist/tokens.json"] }
|
|
186
|
+
```
|
|
187
|
+
|
|
60
188
|
See the root repository README for the full configuration reference.
|
|
61
189
|
|
|
62
190
|
## Development
|
|
63
191
|
|
|
192
|
+
### Architecture
|
|
193
|
+
|
|
194
|
+
The LSP server is organised into four main layers:
|
|
195
|
+
|
|
196
|
+
| Layer | Path | Responsibility |
|
|
197
|
+
|-------|------|----------------|
|
|
198
|
+
| **Protocol** | `protocol/` | JSON-RPC message parsing, config loading, request/response matching |
|
|
199
|
+
| **Runtime** | `runtime/` | Server lifecycle, document management, import graph building, worker dispatch |
|
|
200
|
+
| **Graph** | `graph/` | Token graph data structure, artifact loading, reachability cache |
|
|
201
|
+
| **Providers** | `providers/` | All LSP features: completions, hover, diagnostics, rename, etc. |
|
|
202
|
+
|
|
203
|
+
**Diagnostics pipeline:**
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
CSS diagnostics: orchestrateDiagnostics → per-rule check modules → makeDiagnostic
|
|
207
|
+
DTCG diagnostics: produceArtifactDiagnostics → per-rule check modules → makeDiagnostic
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Each diagnostic rule lives in its own file (`diagnostics/checkMissingFallback.ts`, `artifactDiagnostics/checkBrokenAlias.ts`, etc.) with a co-located `.tests.ts` file. The orchestrator loops over usages (CSS) or tokens (DTCG) and delegates to each check function.
|
|
211
|
+
|
|
64
212
|
```bash
|
|
65
213
|
bun run build # Compile LSP server (tsc)
|
|
66
|
-
bun run build:
|
|
214
|
+
bun run build:all # Build + package VS Code extension
|
|
67
215
|
bun run test # Run tests
|
|
68
216
|
bun run check # Lint + type check
|
|
69
217
|
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Expand glob patterns to matching file paths (deduplicated).
|
|
3
|
+
*
|
|
4
|
+
* @note Impure — reads the file system via `fs.glob`.
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from "node:fs/promises";
|
|
7
|
+
export async function expandGlobs(patterns, rootDir) {
|
|
8
|
+
const results = [];
|
|
9
|
+
for (const pattern of patterns) {
|
|
10
|
+
try {
|
|
11
|
+
for await (const entry of fs.glob(pattern, { cwd: rootDir })) {
|
|
12
|
+
results.push(entry);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
// Pattern didn't match — skip
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return [...new Set(results)];
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=expandGlobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expandGlobs.js","sourceRoot":"","sources":["../../../src/cli/expandGlobs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAkB,EAClB,OAAe;IAEf,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI entry-point dispatcher.
|
|
3
|
+
*
|
|
4
|
+
* Parses `process.argv`, dispatches to the appropriate sub-command,
|
|
5
|
+
* then tail-calls `run()`.
|
|
6
|
+
*/
|
|
7
|
+
import startLspServer from "../runtime/startLspServer.js";
|
|
8
|
+
import { printHelp } from "./printHelp.js";
|
|
9
|
+
import { runCheck } from "./runCheck.js";
|
|
10
|
+
import { runGraph } from "./runGraph.js";
|
|
11
|
+
import { runInspect } from "./runInspect.js";
|
|
12
|
+
import { runInstall } from "./runInstall.js";
|
|
13
|
+
import { runResolve } from "./runResolve.js";
|
|
14
|
+
import { runStatus } from "./runStatus.js";
|
|
15
|
+
const args = process.argv.slice(2).filter((arg) => arg !== "--allow-degraded");
|
|
16
|
+
const allowDegraded = process.argv.includes("--allow-degraded");
|
|
17
|
+
const command = args[0] ?? "--stdio";
|
|
18
|
+
const rootDir = process.cwd();
|
|
19
|
+
/**
|
|
20
|
+
* Run the CLI.
|
|
21
|
+
*
|
|
22
|
+
* @note This function is impure — it reads files, writes to stdout,
|
|
23
|
+
* and may exit the process.
|
|
24
|
+
*/
|
|
25
|
+
async function run() {
|
|
26
|
+
switch (command) {
|
|
27
|
+
case "--stdio":
|
|
28
|
+
case "serve":
|
|
29
|
+
startLspServer(rootDir, { allowDegraded });
|
|
30
|
+
break;
|
|
31
|
+
case "check":
|
|
32
|
+
await runCheck(args.slice(1), rootDir);
|
|
33
|
+
break;
|
|
34
|
+
case "status":
|
|
35
|
+
await runStatus(rootDir);
|
|
36
|
+
break;
|
|
37
|
+
case "inspect":
|
|
38
|
+
await runInspect(args[1], rootDir);
|
|
39
|
+
break;
|
|
40
|
+
case "resolve":
|
|
41
|
+
await runResolve(args[1], rootDir);
|
|
42
|
+
break;
|
|
43
|
+
case "graph":
|
|
44
|
+
await runGraph(args[1], rootDir);
|
|
45
|
+
break;
|
|
46
|
+
case "install":
|
|
47
|
+
await runInstall(args[1], rootDir);
|
|
48
|
+
break;
|
|
49
|
+
case "--help":
|
|
50
|
+
case "-h":
|
|
51
|
+
printHelp();
|
|
52
|
+
break;
|
|
53
|
+
case "--version":
|
|
54
|
+
case "-v":
|
|
55
|
+
console.log("terrazzo-lsp 0.1.0");
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
console.error(`Unknown command: ${command}`);
|
|
59
|
+
printHelp();
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
void run();
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,kBAAkB,CAAC,CAAC;AAC/E,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAChE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AACrC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE9B;;;;;GAKG;AACH,KAAK,UAAU,GAAG;IAChB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,OAAO;YACV,cAAc,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;YAC3C,MAAM;QACR,KAAK,OAAO;YACV,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACvC,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM;QACR,KAAK,OAAO;YACV,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACjC,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,SAAS,EAAE,CAAC;YACZ,MAAM;QACR,KAAK,WAAW,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,KAAK,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read JSON artifact files from disk and load them into the token graph.
|
|
3
|
+
*
|
|
4
|
+
* @note Impure — reads files from disk.
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from "node:fs/promises";
|
|
7
|
+
import { dirname } from "node:path";
|
|
8
|
+
import { loadArtifact } from "../graph/index.js";
|
|
9
|
+
export async function loadArtifactFiles(paths, graph) {
|
|
10
|
+
for (const p of paths) {
|
|
11
|
+
try {
|
|
12
|
+
const raw = await fs.readFile(p, "utf-8");
|
|
13
|
+
const artifact = JSON.parse(raw);
|
|
14
|
+
loadArtifact(artifact, graph, "", dirname(p));
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
// Skip missing artifacts
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=loadArtifactFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadArtifactFiles.js","sourceRoot":"","sources":["../../../src/cli/loadArtifactFiles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAGlE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAe,EACf,KAAiB;IAEjB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Print CLI usage help. */
|
|
2
|
+
export function printHelp() {
|
|
3
|
+
console.log(`terrazzo-lsp — CSS custom property intelligence for design tokens
|
|
4
|
+
|
|
5
|
+
Usage:
|
|
6
|
+
terrazzo-lsp Start LSP server (stdio)
|
|
7
|
+
terrazzo-lsp check [globs] Run diagnostics on CSS files
|
|
8
|
+
terrazzo-lsp status Show config and artifact status
|
|
9
|
+
terrazzo-lsp inspect <var> Inspect a CSS custom property
|
|
10
|
+
terrazzo-lsp resolve <spec> Resolve an import specifier
|
|
11
|
+
terrazzo-lsp graph <file> Show import graph from a file
|
|
12
|
+
terrazzo-lsp install <editor> Install LSP config (neovim, helix, vscode)
|
|
13
|
+
|
|
14
|
+
Options:
|
|
15
|
+
--stdio Start LSP server on stdio (default)
|
|
16
|
+
--allow-degraded Keep the server alive without config, with reduced capabilities
|
|
17
|
+
-h, --help Show this help
|
|
18
|
+
-v, --version Show version`);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=printHelp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printHelp.js","sourceRoot":"","sources":["../../../src/cli/printHelp.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;6CAe+B,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `check` command — run diagnostics on CSS files and report.
|
|
3
|
+
*
|
|
4
|
+
* @note Impure — reads files, writes to stdout, may exit the process.
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from "node:fs/promises";
|
|
7
|
+
import { resolve } from "node:path";
|
|
8
|
+
import { ReachabilityCache, TokenGraph } from "../graph/index.js";
|
|
9
|
+
import { loadConfigFile, resolveConfig } from "../protocol/index.js";
|
|
10
|
+
import { produceDiagnostics } from "../providers/index.js";
|
|
11
|
+
import { DiagnosticSeverity } from "../types/index.js";
|
|
12
|
+
import { expandGlobs } from "./expandGlobs.js";
|
|
13
|
+
import { loadArtifactFiles } from "./loadArtifactFiles.js";
|
|
14
|
+
export async function runCheck(globs, rootDir) {
|
|
15
|
+
const { raw, configDir } = await loadConfigFile(rootDir);
|
|
16
|
+
const config = resolveConfig(raw, configDir ?? rootDir);
|
|
17
|
+
const graph = new TokenGraph();
|
|
18
|
+
const cache = new ReachabilityCache();
|
|
19
|
+
await loadArtifactFiles(config.artifactPaths, graph);
|
|
20
|
+
const patterns = globs.length > 0 ? globs : config.scanGlobs;
|
|
21
|
+
const files = await expandGlobs(patterns, rootDir);
|
|
22
|
+
let errorCount = 0;
|
|
23
|
+
let warningCount = 0;
|
|
24
|
+
for (const file of files) {
|
|
25
|
+
const absPath = resolve(rootDir, file);
|
|
26
|
+
const source = await fs.readFile(absPath, "utf-8");
|
|
27
|
+
const uri = `file://${absPath}`;
|
|
28
|
+
const diagnostics = produceDiagnostics(uri, source, graph, cache, config);
|
|
29
|
+
for (const diag of diagnostics) {
|
|
30
|
+
const severity = diag.severity === DiagnosticSeverity.Error
|
|
31
|
+
? "error"
|
|
32
|
+
: diag.severity === DiagnosticSeverity.Warning
|
|
33
|
+
? "warning"
|
|
34
|
+
: "info";
|
|
35
|
+
if (diag.severity === DiagnosticSeverity.Error)
|
|
36
|
+
errorCount++;
|
|
37
|
+
if (diag.severity === DiagnosticSeverity.Warning)
|
|
38
|
+
warningCount++;
|
|
39
|
+
const loc = `${file}:${diag.range.start.line + 1}:${diag.range.start.character + 1}`;
|
|
40
|
+
console.log(`${loc} ${severity} ${diag.code} ${diag.message}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const total = errorCount + warningCount;
|
|
44
|
+
if (total > 0) {
|
|
45
|
+
console.log(`\n${errorCount} errors, ${warningCount} warnings`);
|
|
46
|
+
process.exit(errorCount > 0 ? 1 : 0);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.log("No issues found.");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=runCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runCheck.js","sourceRoot":"","sources":["../../../src/cli/runCheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `graph` command — show the import graph from a file.
|
|
3
|
+
*
|
|
4
|
+
* @note Impure — reads files, writes to stdout/stderr, may exit the process.
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from "node:fs/promises";
|
|
7
|
+
import { resolve } from "node:path";
|
|
8
|
+
import { TokenGraph } from "../graph/index.js";
|
|
9
|
+
import buildImportGraph from "../runtime/buildImportGraph.js";
|
|
10
|
+
export async function runGraph(file, rootDir) {
|
|
11
|
+
if (!file) {
|
|
12
|
+
console.error("Usage: terrazzo-lsp graph <file>");
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
const graph = new TokenGraph();
|
|
16
|
+
const absPath = resolve(rootDir, file);
|
|
17
|
+
const uri = `file://${absPath}`;
|
|
18
|
+
const nodeFs = {
|
|
19
|
+
rootDir,
|
|
20
|
+
async readFile(fileUri) {
|
|
21
|
+
const fsPath = fileUri.startsWith("file://") ? fileUri.slice(7) : fileUri;
|
|
22
|
+
try {
|
|
23
|
+
return await fs.readFile(fsPath, "utf-8");
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
await buildImportGraph(uri, graph, nodeFs);
|
|
31
|
+
console.log(`Import graph from ${file}:`);
|
|
32
|
+
for (const [importer, imported] of graph.importEntries()) {
|
|
33
|
+
for (const dep of imported) {
|
|
34
|
+
const short = (s) => s.startsWith("file://") ? s.slice(7).replace(rootDir, ".") : s;
|
|
35
|
+
console.log(` ${short(importer)} → ${short(dep)}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
console.log(`\nFiles: ${graph.fileCount}`);
|
|
39
|
+
console.log(`Declarations: ${graph.varCount}`);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=runGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runGraph.js","sourceRoot":"","sources":["../../../src/cli/runGraph.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAG9D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAwB,EACxB,OAAe;IAEf,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,UAAU,OAAO,EAAE,CAAC;IAEhC,MAAM,MAAM,GAAe;QACzB,OAAO;QACP,KAAK,CAAC,QAAQ,CAAC,OAAe;YAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1E,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;QACzD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAC1B,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `inspect` command — inspect a CSS custom property.
|
|
3
|
+
*
|
|
4
|
+
* @note Impure — reads config + artifacts, writes to stdout/stderr,
|
|
5
|
+
* may exit the process.
|
|
6
|
+
*/
|
|
7
|
+
import { TokenGraph } from "../graph/index.js";
|
|
8
|
+
import { loadConfigFile, resolveConfig } from "../protocol/index.js";
|
|
9
|
+
import { loadArtifactFiles } from "./loadArtifactFiles.js";
|
|
10
|
+
export async function runInspect(cssVar, rootDir) {
|
|
11
|
+
if (!cssVar) {
|
|
12
|
+
console.error("Usage: terrazzo-lsp inspect <--custom-property>");
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
const { raw, configDir } = await loadConfigFile(rootDir);
|
|
16
|
+
const config = resolveConfig(raw, configDir ?? rootDir);
|
|
17
|
+
const graph = new TokenGraph();
|
|
18
|
+
await loadArtifactFiles(config.artifactPaths, graph);
|
|
19
|
+
const token = graph.resolveToken(cssVar);
|
|
20
|
+
if (token) {
|
|
21
|
+
console.log(JSON.stringify(token, null, 2));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log(`Token "${cssVar}" not found in loaded artifacts.`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=runInspect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runInspect.js","sourceRoot":"","sources":["../../../src/cli/runInspect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAA0B,EAC1B,OAAe;IAEf,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;IAC/B,MAAM,iBAAiB,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAErD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,kCAAkC,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `install` command — install LSP configuration for an editor.
|
|
3
|
+
*
|
|
4
|
+
* @note Impure — writes config files to disk, may exit the process.
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from "node:fs/promises";
|
|
7
|
+
import { homedir } from "node:os";
|
|
8
|
+
import { dirname, join, resolve } from "node:path";
|
|
9
|
+
import { fileURLToPath } from "node:url";
|
|
10
|
+
import { findBundledVsixPath, installBundledVscodeExtension, updateVscodeSettings, } from "../extension/index.js";
|
|
11
|
+
const NEOVIM_CONFIG = `-- terrazzo-lsp configuration for Neovim
|
|
12
|
+
-- Add this to your init.lua or lspconfig setup
|
|
13
|
+
--
|
|
14
|
+
-- Requires: bun (recommended) or node >= 22
|
|
15
|
+
-- Update the cmd path to point to your project's dist/esm/cli.js
|
|
16
|
+
require('lspconfig').terrazzo_lsp.setup({
|
|
17
|
+
cmd = { 'bun', 'run', '<path-to-repo>/dist/esm/cli.js', '--stdio' },
|
|
18
|
+
filetypes = { 'css', 'scss', 'json' },
|
|
19
|
+
root_dir = require('lspconfig').util.root_pattern(
|
|
20
|
+
'terrazzo-lsp.config.json', 'package.json', '.git'
|
|
21
|
+
),
|
|
22
|
+
on_attach = function(client, bufnr)
|
|
23
|
+
local o = { buffer = bufnr, noremap = true, silent = true }
|
|
24
|
+
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, o)
|
|
25
|
+
vim.keymap.set('n', 'gr', vim.lsp.buf.references, o)
|
|
26
|
+
vim.keymap.set('n', 'K', vim.lsp.buf.hover, o)
|
|
27
|
+
vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, o)
|
|
28
|
+
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, o)
|
|
29
|
+
end,
|
|
30
|
+
})
|
|
31
|
+
`;
|
|
32
|
+
const HELIX_CONFIG = `# terrazzo-lsp configuration for Helix
|
|
33
|
+
# Add this to your ~/.config/helix/languages.toml
|
|
34
|
+
#
|
|
35
|
+
# Requires: bun (recommended) or node >= 22
|
|
36
|
+
# Update the command path to point to your project's dist/esm/cli.js
|
|
37
|
+
|
|
38
|
+
[language-server.terrazzo]
|
|
39
|
+
command = "bun"
|
|
40
|
+
args = ["run", "<path-to-repo>/dist/esm/cli.js", "--stdio"]
|
|
41
|
+
|
|
42
|
+
[[language]]
|
|
43
|
+
name = "css"
|
|
44
|
+
language-servers = ["terrazzo", "vscode-css-language-server"]
|
|
45
|
+
|
|
46
|
+
[[language]]
|
|
47
|
+
name = "scss"
|
|
48
|
+
language-servers = ["terrazzo", "vscode-css-language-server"]
|
|
49
|
+
`;
|
|
50
|
+
/**
|
|
51
|
+
* Install LSP configuration for the specified editor.
|
|
52
|
+
*
|
|
53
|
+
* @note This function is impure — it writes config files.
|
|
54
|
+
*/
|
|
55
|
+
export async function runInstall(editor, rootDir) {
|
|
56
|
+
if (!editor) {
|
|
57
|
+
console.error("Usage: terrazzo-lsp install <editor>\nEditors: neovim, helix, vscode");
|
|
58
|
+
process.exit(1);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
switch (editor) {
|
|
62
|
+
case "neovim": {
|
|
63
|
+
const configDir = join(homedir(), ".config", "nvim", "lsp");
|
|
64
|
+
await fs.mkdir(configDir, { recursive: true });
|
|
65
|
+
const configPath = join(configDir, "terrazzo_lsp.lua");
|
|
66
|
+
await fs.writeFile(configPath, NEOVIM_CONFIG, "utf-8");
|
|
67
|
+
console.log(`Wrote Neovim LSP config to ${configPath}`);
|
|
68
|
+
console.log("Ensure nvim-lspconfig is installed. Update the cmd path in the config.");
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
case "helix": {
|
|
72
|
+
const configDir = join(homedir(), ".config", "helix");
|
|
73
|
+
const configPath = join(configDir, "languages.toml");
|
|
74
|
+
let existing = "";
|
|
75
|
+
try {
|
|
76
|
+
existing = await fs.readFile(configPath, "utf-8");
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// File doesn't exist yet
|
|
80
|
+
}
|
|
81
|
+
if (existing.includes("terrazzo")) {
|
|
82
|
+
console.log(`Helix config at ${configPath} already contains terrazzo configuration.`);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
await fs.mkdir(configDir, { recursive: true });
|
|
86
|
+
const updated = existing
|
|
87
|
+
? `${existing}\n${HELIX_CONFIG}`
|
|
88
|
+
: HELIX_CONFIG;
|
|
89
|
+
await fs.writeFile(configPath, updated, "utf-8");
|
|
90
|
+
console.log(`Appended terrazzo-lsp config to ${configPath}`);
|
|
91
|
+
}
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
case "vscode": {
|
|
95
|
+
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..", "..", "..");
|
|
96
|
+
const vsixPath = await findBundledVsixPath(packageRoot);
|
|
97
|
+
const extDir = join(rootDir, ".vscode");
|
|
98
|
+
await fs.mkdir(extDir, { recursive: true });
|
|
99
|
+
const settingsPath = join(extDir, "settings.json");
|
|
100
|
+
let settings = {};
|
|
101
|
+
try {
|
|
102
|
+
const raw = await fs.readFile(settingsPath, "utf-8");
|
|
103
|
+
settings = JSON.parse(raw);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// New file
|
|
107
|
+
}
|
|
108
|
+
if (vsixPath) {
|
|
109
|
+
const installResult = await installBundledVscodeExtension(vsixPath);
|
|
110
|
+
console.log(installResult.message);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
console.log("Bundled VS Code extension not found. Build it with `bun run build:extension`.");
|
|
114
|
+
}
|
|
115
|
+
settings = updateVscodeSettings(settings);
|
|
116
|
+
await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2), "utf-8");
|
|
117
|
+
console.log(`Updated VS Code settings at ${settingsPath}`);
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
default:
|
|
121
|
+
console.error(`Unknown editor: ${editor}`);
|
|
122
|
+
console.error("Supported editors: neovim, helix, vscode");
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=runInstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runInstall.js","sourceRoot":"","sources":["../../../src/cli/runInstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `resolve` command — resolve an import specifier.
|
|
3
|
+
*
|
|
4
|
+
* @note Impure — dynamically imports css module, writes to stdout/stderr,
|
|
5
|
+
* may exit the process.
|
|
6
|
+
*/
|
|
7
|
+
export async function runResolve(specifier, rootDir) {
|
|
8
|
+
if (!specifier) {
|
|
9
|
+
console.error("Usage: terrazzo-lsp resolve <import-specifier>");
|
|
10
|
+
process.exit(1);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const { resolveImportSpecifier } = await import("../css/index.js");
|
|
14
|
+
const resolved = resolveImportSpecifier(specifier, rootDir, rootDir);
|
|
15
|
+
console.log(resolved ?? "(unresolvable)");
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=runResolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runResolve.js","sourceRoot":"","sources":["../../../src/cli/runResolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAA6B,EAC7B,OAAe;IAEf,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC;AAC5C,CAAC"}
|