@litsx/typescript 0.6.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 +85 -0
- package/dist/authored-semantics.cjs +18567 -0
- package/dist/authored-semantics.cjs.map +1 -0
- package/dist/editor-session.cjs +1345 -0
- package/dist/editor-session.cjs.map +1 -0
- package/dist/index.cjs +841 -0
- package/dist/index.cjs.map +1 -0
- package/dist/litsx-tsc.js +18025 -0
- package/dist/typecheck.cjs +931 -0
- package/dist/typecheck.cjs.map +1 -0
- package/dist/virtualization.cjs +113 -0
- package/dist/virtualization.cjs.map +1 -0
- package/package.json +76 -0
- package/src/authored-semantics.js +1543 -0
- package/src/editor-session.js +1360 -0
- package/src/index.js +844 -0
- package/src/litsx-tsc.js +4 -0
- package/src/typecheck.js +535 -0
- package/src/virtualization.js +125 -0
- package/tsserver-plugin.cjs +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/index.js"],"sourcesContent":["import fs from \"fs\";\n\nimport {\n collectLitsxAuthoredDiagnostics,\n createToolingVirtualLitsxSource,\n decodeVirtualAttributeName,\n getLitsxAttributeCompletionNames,\n inferLitsxAttributeInfoAtPosition,\n inferLitsxStaticHoistInfoAtPosition,\n inferLitsxAttributeCompletionContext,\n inferLitsxMarkupCompletionContext,\n looksLikeLitsxJsx,\n mapOriginalPositionToToolingVirtual,\n remapVirtualText,\n remapToolingTextSpanToOriginal,\n} from \"./virtualization.js\";\nexport { createLitsxTypecheckSession, runLitsxTypecheck } from \"./typecheck.js\";\n\nconst PROFILE_ENABLED = process.env.LITSX_PROFILE === \"1\";\nconst EXTERNAL_FILES_CACHE = new WeakMap();\n\nfunction profilePhase(namespace, name, callback) {\n if (!PROFILE_ENABLED) {\n return callback();\n }\n\n const start = performance.now();\n try {\n return callback();\n } finally {\n globalThis.__litsxProfileEvents ??= [];\n globalThis.__litsxProfileEvents.push({\n namespace,\n name,\n durationMs: performance.now() - start,\n });\n }\n}\n\nfunction isRelevantFile(fileName) {\n return /\\.(jsx|tsx|litsx)$/.test(fileName) || fileName.endsWith(\".litsx.jsx\");\n}\n\nfunction readSnapshotText(snapshot) {\n return snapshot.getText(0, snapshot.getLength());\n}\n\nfunction createSnapshot(ts, sourceText) {\n return ts.ScriptSnapshot.fromString(sourceText);\n}\n\nfunction remapDisplayParts(parts) {\n return parts?.map((part) => ({\n ...part,\n text: remapVirtualText(part.text),\n }));\n}\n\nfunction remapMessageText(messageText) {\n if (typeof messageText === \"string\") {\n return remapVirtualText(messageText);\n }\n\n if (!messageText || typeof messageText !== \"object\") {\n return messageText;\n }\n\n return {\n ...messageText,\n messageText: remapMessageText(messageText.messageText),\n next: messageText.next?.map(remapMessageText),\n };\n}\n\nfunction remapNumericTextSpan(start, length, virtualization) {\n if (typeof start !== \"number\") {\n return null;\n }\n\n return remapToolingTextSpanToOriginal(\n { start, length: length ?? 0 },\n virtualization,\n );\n}\n\nfunction remapTextSpanField(record, fieldName, virtualization) {\n const span = record?.[fieldName];\n if (!span) {\n return record;\n }\n\n return {\n ...record,\n [fieldName]: remapToolingTextSpanToOriginal(span, virtualization),\n };\n}\n\nfunction remapFileSpanRecord(record, getVirtualization) {\n const virtualization = record?.fileName\n ? getVirtualization(record.fileName)\n : null;\n\n if (!virtualization) {\n return record;\n }\n\n let remapped = {\n ...record,\n textSpan: record.textSpan\n ? remapToolingTextSpanToOriginal(record.textSpan, virtualization)\n : record.textSpan,\n };\n\n remapped = remapTextSpanField(remapped, \"contextSpan\", virtualization);\n remapped = remapTextSpanField(remapped, \"originalTextSpan\", virtualization);\n\n return remapped;\n}\n\nfunction remapRelatedInformation(info, getVirtualization, fallbackVirtualization) {\n const virtualization = info.file?.fileName\n ? getVirtualization(info.file.fileName) ?? fallbackVirtualization\n : fallbackVirtualization;\n\n if (!virtualization) {\n return info;\n }\n\n const remappedStartLength = remapNumericTextSpan(info.start, info.length, virtualization);\n const remappedSpan = info.span\n ? remapToolingTextSpanToOriginal(info.span, virtualization)\n : info.span;\n\n return {\n ...info,\n ...(remappedStartLength\n ? {\n start: remappedStartLength.start,\n length: remappedStartLength.length,\n }\n : {}),\n span: remappedSpan,\n messageText: remapMessageText(info.messageText),\n };\n}\n\nfunction wrapDiagnostics(method, getVirtualization) {\n return (fileName) => {\n const diagnostics = method(fileName) ?? [];\n const virtualization = getVirtualization(fileName);\n\n if (!virtualization) {\n return diagnostics;\n }\n\n return diagnostics.map((diagnostic) => {\n const remappedSpan = remapNumericTextSpan(\n diagnostic.start,\n diagnostic.length,\n virtualization,\n );\n\n return {\n ...diagnostic,\n ...(remappedSpan\n ? remappedSpan\n : {\n start: diagnostic.start,\n length: diagnostic.length,\n }),\n messageText: remapMessageText(diagnostic.messageText),\n relatedInformation: diagnostic.relatedInformation?.map((info) => (\n remapRelatedInformation(info, getVirtualization, virtualization)\n )),\n };\n });\n };\n}\n\nfunction wrapSemanticDiagnostics(method, getVirtualization, getAuthoredDiagnostics) {\n return (fileName) => {\n const diagnostics = wrapDiagnostics(method, getVirtualization)(fileName);\n const authoredDiagnostics = getAuthoredDiagnostics(fileName);\n\n if (!authoredDiagnostics?.length) {\n return diagnostics;\n }\n\n const warningCategory = 0;\n const authoredErrors = authoredDiagnostics.filter(\n (diagnostic) => diagnostic.category !== warningCategory,\n );\n\n if (authoredErrors.length === 0) {\n return diagnostics;\n }\n\n return [...diagnostics, ...authoredErrors];\n };\n}\n\nfunction wrapSyntacticDiagnostics(method, getVirtualization, getAuthoredDiagnostics, ts) {\n return (fileName) => {\n const diagnostics = wrapDiagnostics(method, getVirtualization)(fileName);\n const virtualization = getVirtualization(fileName);\n\n if (\n !(/\\.[cm]?[jt]sx$/.test(fileName) || fileName.endsWith(\".litsx\") || fileName.endsWith(\".litsx.jsx\")) ||\n !virtualization\n ) {\n return diagnostics;\n }\n\n const authoredDiagnostics = getAuthoredDiagnostics(fileName);\n if (!authoredDiagnostics?.length) {\n return fileName.endsWith(\".jsx\") ? [] : diagnostics;\n }\n\n // TypeScript's JSX parser does not understand LitSX-authored syntax in\n // plain .jsx files, so its raw syntactic diagnostics are mostly parser\n // cascades. Replace them wholesale with authored diagnostics instead.\n if (fileName.endsWith(\".jsx\")) {\n const seen = new Set();\n return authoredDiagnostics.filter((diagnostic) => {\n const key = `${diagnostic.code}:${diagnostic.start}:${diagnostic.length}`;\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n });\n }\n\n const warningCategory = ts?.DiagnosticCategory?.Warning ?? 0;\n const authoredWarnings = authoredDiagnostics.filter(\n (diagnostic) => diagnostic.category === warningCategory,\n );\n\n if (authoredWarnings.length === 0) {\n return diagnostics;\n }\n\n const seen = new Set(\n diagnostics.map(\n (diagnostic) => `${diagnostic.code}:${diagnostic.start}:${diagnostic.length}`,\n ),\n );\n\n return [\n ...diagnostics,\n ...authoredWarnings.filter((diagnostic) => {\n const key = `${diagnostic.code}:${diagnostic.start}:${diagnostic.length}`;\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n }),\n ];\n };\n}\n\nfunction wrapDefinitionAtPosition(method, getVirtualization) {\n return (fileName, position) => {\n const virtualization = getVirtualization(fileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const definitions = method?.(fileName, mappedPosition);\n\n if (!definitions?.length) {\n return definitions;\n }\n\n return definitions.map((definition) => remapFileSpanRecord(definition, getVirtualization));\n };\n}\n\nfunction wrapDefinitionAndBoundSpan(method, getVirtualization) {\n return (fileName, position) => {\n const virtualization = getVirtualization(fileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const result = method?.(fileName, mappedPosition);\n\n if (!result) {\n return result;\n }\n\n return {\n ...result,\n textSpan: virtualization && result.textSpan\n ? remapToolingTextSpanToOriginal(result.textSpan, virtualization)\n : result.textSpan,\n definitions: result.definitions?.map((definition) => remapFileSpanRecord(definition, getVirtualization)),\n };\n };\n}\n\nfunction wrapReferences(method, getVirtualization) {\n return (fileName, position) => {\n const virtualization = getVirtualization(fileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const references = method?.(fileName, mappedPosition);\n\n if (!references?.length) {\n return references;\n }\n\n return references.map((reference) => remapFileSpanRecord(reference, getVirtualization));\n };\n}\n\nfunction wrapRenameInfo(method, getVirtualization) {\n return (fileName, position, ...rest) => {\n const virtualization = getVirtualization(fileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const info = method?.(fileName, mappedPosition, ...rest);\n\n if (!info || !virtualization || !info.triggerSpan) {\n return info;\n }\n\n return {\n ...info,\n triggerSpan: remapToolingTextSpanToOriginal(info.triggerSpan, virtualization),\n };\n };\n}\n\nfunction wrapRenameLocations(method, getVirtualization) {\n return (fileName, position, ...rest) => {\n const virtualization = getVirtualization(fileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const locations = method?.(fileName, mappedPosition, ...rest);\n\n if (!locations?.length) {\n return locations;\n }\n\n return locations.map((location) => remapFileSpanRecord(location, getVirtualization));\n };\n}\n\nfunction wrapQuickInfo(method, getVirtualization) {\n return (fileName, position) => {\n const virtualization = getVirtualization(fileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const info = method(fileName, mappedPosition);\n\n if (!virtualization) {\n return info;\n }\n\n function createHoistQuickInfo(hoistInfo, fallbackSpan = null) {\n return {\n kind: \"function\",\n kindModifiers: \"\",\n textSpan: hoistInfo\n ? {\n start: hoistInfo.start,\n length: hoistInfo.length,\n }\n : fallbackSpan,\n displayParts: [\n { text: hoistInfo?.name ?? \"static hoist\", kind: \"functionName\" },\n { text: \"(...)\", kind: \"punctuation\" },\n { text: \": \", kind: \"punctuation\" },\n { text: \"static hoist\", kind: \"keyword\" },\n ],\n documentation: [\n {\n text: hoistInfo?.documentation ?? \"LitSX static hoist.\",\n kind: \"text\",\n },\n ],\n };\n }\n\n if (!info) {\n const hoistInfo = inferLitsxStaticHoistInfoAtPosition(virtualization.sourceText, position);\n if (hoistInfo) {\n return createHoistQuickInfo(hoistInfo);\n }\n\n const attributeInfo = inferLitsxAttributeInfoAtPosition(virtualization.sourceText, position);\n if (!attributeInfo) {\n return info;\n }\n\n let kindLabel = \"binding\";\n let detail = \"LitSX binding\";\n\n if (attributeInfo.prefix === \"@\") {\n kindLabel = \"event\";\n detail = \"LitSX event listener binding\";\n } else if (attributeInfo.prefix === \".\") {\n kindLabel = \"property\";\n detail = \"LitSX property binding\";\n } else if (attributeInfo.prefix === \"?\") {\n kindLabel = \"boolean\";\n detail = \"LitSX boolean attribute binding\";\n }\n\n return {\n kind: \"property\",\n kindModifiers: \"\",\n textSpan: {\n start: attributeInfo.start,\n length: attributeInfo.length,\n },\n displayParts: [\n { text: attributeInfo.name, kind: \"propertyName\" },\n { text: \": \", kind: \"punctuation\" },\n { text: kindLabel, kind: \"keyword\" },\n ],\n documentation: [\n {\n text: `${detail} for <${attributeInfo.tagName}>.`,\n kind: \"text\",\n },\n ],\n };\n }\n\n const hoistInfo = inferLitsxStaticHoistInfoAtPosition(virtualization.sourceText, position);\n if (hoistInfo) {\n return createHoistQuickInfo(hoistInfo);\n }\n\n const remappedDisplayParts = remapDisplayParts(info.displayParts);\n return {\n ...info,\n textSpan: remapToolingTextSpanToOriginal(info.textSpan, virtualization),\n displayParts: remappedDisplayParts,\n documentation: remapDisplayParts(info.documentation),\n };\n };\n}\n\nfunction getLitsxCompletionMetadata(name) {\n if (typeof name !== \"string\" || name.length < 2) {\n return null;\n }\n\n if (name.startsWith(\"@\")) {\n return {\n kind: \"memberVariableElement\",\n kindLabel: \"event\",\n detail: \"LitSX event listener binding\",\n };\n }\n\n if (name.startsWith(\".\")) {\n return {\n kind: \"property\",\n kindLabel: \"property\",\n detail: \"LitSX property binding\",\n };\n }\n\n if (name.startsWith(\"?\")) {\n return {\n kind: \"property\",\n kindLabel: \"boolean\",\n detail: \"LitSX boolean attribute binding\",\n };\n }\n\n return null;\n}\n\nfunction createContextualReplacementSpan(context) {\n if (!context) {\n return undefined;\n }\n\n return {\n start: context.start + 1,\n length: Math.max(context.length - 1, 0),\n };\n}\n\nfunction createContextualCompletionEntries(virtualization, position) {\n if (!virtualization) {\n return [];\n }\n\n const context = inferLitsxAttributeCompletionContext(virtualization.sourceText, position);\n\n return getLitsxAttributeCompletionNames(context).map((name, index) => {\n const metadata = getLitsxCompletionMetadata(name);\n\n return {\n name,\n kind: metadata?.kind ?? \"property\",\n kindModifiers: \"\",\n sortText: `0${index}`,\n insertText: name.slice(1),\n filterText: name.slice(1),\n replacementSpan: createContextualReplacementSpan(context),\n source: \"LitSX\",\n data: {\n __litsxContextualCompletion: true,\n },\n };\n });\n}\n\nfunction wrapCompletions(method, getVirtualization) {\n return (fileName, position, options, formattingSettings) => {\n const virtualization = getVirtualization(fileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const completions = method(fileName, mappedPosition, options, formattingSettings);\n const contextualEntries = createContextualCompletionEntries(virtualization, position);\n\n const filteredEntries = (completions?.entries ?? []).filter(\n (entry) => !decodeVirtualAttributeName(entry.name),\n );\n const mergedEntries = [...contextualEntries];\n const seenNames = new Set(contextualEntries.map((entry) => entry.name));\n\n for (const entry of filteredEntries) {\n if (seenNames.has(entry.name)) continue;\n seenNames.add(entry.name);\n mergedEntries.push(entry);\n }\n\n if (!completions && mergedEntries.length === 0) {\n return completions;\n }\n\n return {\n ...(completions ?? {}),\n entries: mergedEntries,\n };\n };\n}\n\nfunction wrapCompletionEntryDetails(method, getVirtualization) {\n return (fileName, position, entryName, ...rest) => {\n const virtualization = getVirtualization(fileName);\n const metadata = getLitsxCompletionMetadata(entryName);\n\n if (virtualization && metadata) {\n const context = inferLitsxAttributeCompletionContext(virtualization.sourceText, position);\n if (context && getLitsxAttributeCompletionNames(context).includes(entryName)) {\n return {\n name: entryName,\n kind: metadata.kind,\n kindModifiers: \"\",\n displayParts: [\n { text: entryName, kind: \"propertyName\" },\n { text: \": \", kind: \"punctuation\" },\n { text: metadata.kindLabel, kind: \"keyword\" },\n ],\n documentation: [\n {\n text: `${metadata.detail} for <${context.tagName}>.`,\n kind: \"text\",\n },\n ],\n tags: [],\n codeActions: [],\n };\n }\n }\n\n if (typeof method !== \"function\") {\n return undefined;\n }\n\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const details = method(fileName, mappedPosition, entryName, ...rest);\n\n if (!details || !virtualization) {\n return details;\n }\n\n return {\n ...details,\n displayParts: remapDisplayParts(details.displayParts),\n documentation: remapDisplayParts(details.documentation),\n };\n };\n}\n\nexport default function init(modules) {\n const ts = modules.typescript;\n\n return {\n create(info) {\n const host = info.languageServiceHost;\n\n if (!host || typeof host.getScriptSnapshot !== \"function\") {\n return info.languageService;\n }\n\n const originalGetScriptSnapshot = host.getScriptSnapshot.bind(host);\n const virtualizations = new Map();\n\n function getPluginsForFile(fileName) {\n return (fileName.endsWith(\".tsx\") || fileName.endsWith(\".litsx\")) ? [\"typescript\"] : [];\n }\n\n const originalGetScriptKind = typeof host.getScriptKind === \"function\"\n ? host.getScriptKind.bind(host)\n : null;\n\n host.getScriptKind = (fileName) => {\n if (fileName.endsWith(\".litsx\")) {\n return ts.ScriptKind.TSX;\n }\n\n if (fileName.endsWith(\".litsx.jsx\")) {\n return ts.ScriptKind.JSX;\n }\n\n return originalGetScriptKind?.(fileName);\n };\n\n function getCachedRecord(fileName) {\n return virtualizations.get(fileName) ?? null;\n }\n\n function clearRecord(fileName) {\n virtualizations.delete(fileName);\n }\n\n function getOrBuildVirtualizationRecord(fileName) {\n const snapshot = originalGetScriptSnapshot(fileName);\n\n if (!snapshot || !isRelevantFile(fileName)) {\n clearRecord(fileName);\n return {\n snapshot,\n record: null,\n };\n }\n\n const cachedRecord = getCachedRecord(fileName);\n if (cachedRecord?.snapshot === snapshot) {\n return {\n snapshot,\n record: cachedRecord,\n };\n }\n\n const sourceText = readSnapshotText(snapshot);\n if (cachedRecord?.sourceText === sourceText) {\n cachedRecord.snapshot = snapshot;\n return {\n snapshot,\n record: cachedRecord,\n };\n }\n\n if (!looksLikeLitsxJsx(sourceText)) {\n clearRecord(fileName);\n return {\n snapshot,\n record: null,\n };\n }\n\n const parserPlugins = getPluginsForFile(fileName);\n const virtualization = profilePhase(\n \"typescript-plugin\",\n \"tooling-virtualization\",\n () => createToolingVirtualLitsxSource(sourceText, {\n plugins: parserPlugins,\n }),\n );\n\n if (virtualization.code === sourceText) {\n clearRecord(fileName);\n return {\n snapshot,\n record: null,\n };\n }\n\n const record = {\n ...virtualization,\n sourceText,\n parserPlugins,\n snapshot,\n virtualizedSnapshot: null,\n authoredDiagnostics: null,\n authoredDiagnosticsReady: false,\n };\n\n virtualizations.set(fileName, record);\n\n return {\n snapshot,\n record,\n };\n }\n\n function getVirtualization(fileName) {\n return getOrBuildVirtualizationRecord(fileName).record;\n }\n\n function getAuthoredDiagnostics(fileName) {\n const record = getVirtualization(fileName);\n if (!record) {\n return null;\n }\n\n if (!record.authoredDiagnosticsReady) {\n record.authoredDiagnostics = profilePhase(\n \"typescript-plugin\",\n \"authored-diagnostics\",\n () => collectLitsxAuthoredDiagnostics(record.sourceText, ts, {\n plugins: record.parserPlugins,\n }),\n );\n record.authoredDiagnosticsReady = true;\n }\n\n return record.authoredDiagnostics;\n }\n\n host.getScriptSnapshot = (fileName) => {\n const { snapshot, record } = getOrBuildVirtualizationRecord(fileName);\n\n if (!record) {\n return snapshot;\n }\n\n if (!record.virtualizedSnapshot) {\n record.virtualizedSnapshot = createSnapshot(ts, record.code);\n }\n\n return record.virtualizedSnapshot;\n };\n\n const languageService = info.languageService;\n\n return {\n ...languageService,\n getSyntacticDiagnostics: wrapSyntacticDiagnostics(\n languageService.getSyntacticDiagnostics.bind(languageService),\n getVirtualization,\n getAuthoredDiagnostics,\n ts,\n ),\n getSemanticDiagnostics: wrapSemanticDiagnostics(\n languageService.getSemanticDiagnostics.bind(languageService),\n getVirtualization,\n getAuthoredDiagnostics,\n ),\n getSuggestionDiagnostics: wrapDiagnostics(\n languageService.getSuggestionDiagnostics.bind(languageService),\n getVirtualization,\n ),\n getQuickInfoAtPosition: wrapQuickInfo(\n languageService.getQuickInfoAtPosition.bind(languageService),\n getVirtualization,\n ),\n getCompletionsAtPosition: wrapCompletions(\n languageService.getCompletionsAtPosition.bind(languageService),\n getVirtualization,\n ),\n getCompletionEntryDetails: wrapCompletionEntryDetails(\n languageService.getCompletionEntryDetails?.bind(languageService),\n getVirtualization,\n ),\n getDefinitionAtPosition: wrapDefinitionAtPosition(\n languageService.getDefinitionAtPosition?.bind(languageService),\n getVirtualization,\n ),\n getDefinitionAndBoundSpan: wrapDefinitionAndBoundSpan(\n languageService.getDefinitionAndBoundSpan?.bind(languageService),\n getVirtualization,\n ),\n getReferencesAtPosition: wrapReferences(\n languageService.getReferencesAtPosition?.bind(languageService),\n getVirtualization,\n ),\n getRenameInfo: wrapRenameInfo(\n languageService.getRenameInfo?.bind(languageService),\n getVirtualization,\n ),\n findRenameLocations: wrapRenameLocations(\n languageService.findRenameLocations?.bind(languageService),\n getVirtualization,\n ),\n };\n },\n\n getExternalFiles(project) {\n const fileNames = project.getFileNames?.() ?? [];\n const projectVersion = project.getProjectVersion?.() ?? \"\";\n const cacheKey = `${projectVersion}:${fileNames.join(\"\\0\")}`;\n const cached = EXTERNAL_FILES_CACHE.get(project);\n if (cached?.cacheKey === cacheKey) {\n return cached.result;\n }\n\n const result = fileNames.filter((fileName) => {\n if (!isRelevantFile(fileName) || !fs.existsSync(fileName)) {\n return false;\n }\n\n const sourceText = fs.readFileSync(fileName, \"utf8\");\n return looksLikeLitsxJsx(sourceText);\n });\n EXTERNAL_FILES_CACHE.set(project, { cacheKey, result });\n return result;\n },\n };\n}\n\nexport {\n collectLitsxAuthoredDiagnostics,\n createVirtualLitsxJsxSource,\n createToolingVirtualLitsxSource,\n decodeVirtualAttributeName,\n getLitsxAttributeCompletionNames,\n inferLitsxAttributeInfoAtPosition,\n inferLitsxAttributeCompletionContext,\n inferLitsxMarkupCompletionContext,\n looksLikeLitsxJsx,\n mapOriginalPositionToVirtual,\n mapOriginalPositionToToolingVirtual,\n remapVirtualText,\n remapTextSpanToOriginal,\n remapToolingTextSpanToOriginal,\n} from \"./virtualization.js\";\n"],"names":["remapVirtualText","virtualization","remapToolingTextSpanToOriginal","mapOriginalPositionToToolingVirtual","inferLitsxStaticHoistInfoAtPosition","inferLitsxAttributeInfoAtPosition","inferLitsxAttributeCompletionContext","getLitsxAttributeCompletionNames","decodeVirtualAttributeName","looksLikeLitsxJsx","createToolingVirtualLitsxSource","collectLitsxAuthoredDiagnostics"],"mappings":"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"}
|