@litsx/typescript 0.6.0 → 0.6.1
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/dist/editor-session.cjs +67 -12
- package/dist/editor-session.cjs.map +1 -1
- package/dist/index.cjs +19 -2
- package/dist/index.cjs.map +1 -1
- package/package.json +1 -1
- package/src/editor-session.js +67 -12
- package/src/index.js +19 -2
package/dist/editor-session.cjs
CHANGED
|
@@ -127,6 +127,56 @@ function remapDisplayParts(parts) {
|
|
|
127
127
|
}));
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
+
function normalizeEscapedNewlines(text) {
|
|
131
|
+
if (typeof text !== "string" || !text.includes("\\")) {
|
|
132
|
+
return text;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
return text
|
|
136
|
+
.replace(/\\r\\n/g, "\r\n")
|
|
137
|
+
.replace(/\\n/g, "\n");
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function remapDocumentationParts(parts) {
|
|
141
|
+
return parts?.map((part) => ({
|
|
142
|
+
...part,
|
|
143
|
+
text: normalizeEscapedNewlines(authoredSemantics.remapVirtualText(part.text)),
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function getHoverCodeLanguage(languageId) {
|
|
148
|
+
if (languageId === "litsx" || languageId === "tsx") {
|
|
149
|
+
return "tsx";
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (languageId === "litsx-jsx" || languageId === "jsx") {
|
|
153
|
+
return "jsx";
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return "ts";
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function createHoverResult({ start, length, code, documentation, languageId }) {
|
|
160
|
+
const normalizedDocumentation = normalizeEscapedNewlines(documentation ?? "");
|
|
161
|
+
const markdownParts = [
|
|
162
|
+
`\`\`\`${getHoverCodeLanguage(languageId)}`,
|
|
163
|
+
code || "symbol",
|
|
164
|
+
"```",
|
|
165
|
+
];
|
|
166
|
+
|
|
167
|
+
if (normalizedDocumentation) {
|
|
168
|
+
markdownParts.push("", normalizedDocumentation);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
return {
|
|
172
|
+
start,
|
|
173
|
+
length,
|
|
174
|
+
code: code || "symbol",
|
|
175
|
+
documentation: normalizedDocumentation,
|
|
176
|
+
markdown: markdownParts.join("\n"),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
|
|
130
180
|
function remapMessageText(messageText) {
|
|
131
181
|
if (typeof messageText === "string") {
|
|
132
182
|
return authoredSemantics.remapVirtualText(messageText);
|
|
@@ -1047,12 +1097,13 @@ function createLitsxEditorSession(options = {}) {
|
|
|
1047
1097
|
|
|
1048
1098
|
const hoistInfo = authoredSemantics.inferLitsxStaticHoistInfoAtPosition(sourceText, position);
|
|
1049
1099
|
if (hoistInfo) {
|
|
1050
|
-
return {
|
|
1100
|
+
return createHoverResult({
|
|
1051
1101
|
start: hoistInfo.start,
|
|
1052
1102
|
length: hoistInfo.length,
|
|
1053
1103
|
code: `${hoistInfo.name}(...): static hoist`,
|
|
1054
1104
|
documentation: hoistInfo.documentation,
|
|
1055
|
-
|
|
1105
|
+
languageId,
|
|
1106
|
+
});
|
|
1056
1107
|
}
|
|
1057
1108
|
|
|
1058
1109
|
if (!info) {
|
|
@@ -1064,12 +1115,13 @@ function createLitsxEditorSession(options = {}) {
|
|
|
1064
1115
|
authoredSemantics.inferLitsxAttributeInfoAtPosition(sourceText, position),
|
|
1065
1116
|
);
|
|
1066
1117
|
return bindingHoverInfo
|
|
1067
|
-
? {
|
|
1118
|
+
? createHoverResult({
|
|
1068
1119
|
start: bindingHoverInfo.start,
|
|
1069
1120
|
length: bindingHoverInfo.length,
|
|
1070
1121
|
code: `${bindingHoverInfo.name}: ${bindingHoverInfo.kindLabel}`,
|
|
1071
1122
|
documentation: bindingHoverInfo.detail,
|
|
1072
|
-
|
|
1123
|
+
languageId,
|
|
1124
|
+
})
|
|
1073
1125
|
: null;
|
|
1074
1126
|
}
|
|
1075
1127
|
|
|
@@ -1095,26 +1147,28 @@ function createLitsxEditorSession(options = {}) {
|
|
|
1095
1147
|
length: 0,
|
|
1096
1148
|
};
|
|
1097
1149
|
|
|
1098
|
-
return {
|
|
1150
|
+
return createHoverResult({
|
|
1099
1151
|
start: remappedNodeSpan.start,
|
|
1100
1152
|
length: remappedNodeSpan.length,
|
|
1101
1153
|
code: `${symbol?.getName?.() ?? node.getText(sourceFile)}: ${checker.typeToString(type)}`,
|
|
1102
1154
|
documentation: symbol
|
|
1103
|
-
? ts$1.displayPartsToString(symbol.getDocumentationComment(checker))
|
|
1155
|
+
? normalizeEscapedNewlines(ts$1.displayPartsToString(symbol.getDocumentationComment(checker)))
|
|
1104
1156
|
: "",
|
|
1105
|
-
|
|
1157
|
+
languageId,
|
|
1158
|
+
});
|
|
1106
1159
|
}
|
|
1107
1160
|
|
|
1108
1161
|
const bindingHoverInfo = getBindingHoverInfo(
|
|
1109
1162
|
authoredSemantics.inferLitsxAttributeInfoAtPosition(sourceText, position),
|
|
1110
1163
|
);
|
|
1111
1164
|
return bindingHoverInfo
|
|
1112
|
-
? {
|
|
1165
|
+
? createHoverResult({
|
|
1113
1166
|
start: bindingHoverInfo.start,
|
|
1114
1167
|
length: bindingHoverInfo.length,
|
|
1115
1168
|
code: `${bindingHoverInfo.name}: ${bindingHoverInfo.kindLabel}`,
|
|
1116
1169
|
documentation: bindingHoverInfo.detail,
|
|
1117
|
-
|
|
1170
|
+
languageId,
|
|
1171
|
+
})
|
|
1118
1172
|
: null;
|
|
1119
1173
|
}
|
|
1120
1174
|
|
|
@@ -1124,16 +1178,17 @@ function createLitsxEditorSession(options = {}) {
|
|
|
1124
1178
|
const displayText = (remapDisplayParts(info.displayParts) ?? [])
|
|
1125
1179
|
.map((entry) => entry.text)
|
|
1126
1180
|
.join("");
|
|
1127
|
-
const documentation = (
|
|
1181
|
+
const documentation = (remapDocumentationParts(info.documentation) ?? [])
|
|
1128
1182
|
.map((entry) => entry.text)
|
|
1129
1183
|
.join("");
|
|
1130
1184
|
|
|
1131
|
-
return {
|
|
1185
|
+
return createHoverResult({
|
|
1132
1186
|
start: remappedSpan.start,
|
|
1133
1187
|
length: remappedSpan.length,
|
|
1134
1188
|
code: displayText || "symbol",
|
|
1135
1189
|
documentation,
|
|
1136
|
-
|
|
1190
|
+
languageId,
|
|
1191
|
+
});
|
|
1137
1192
|
}
|
|
1138
1193
|
|
|
1139
1194
|
function getCompletions(fileName, sourceText, languageId, position, completionKindAdapter) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-session.cjs","sources":["../src/editor-session.js"],"sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport defaultTs from \"typescript\";\n\nimport {\n collectLitsxAuthoredDiagnostics,\n createToolingVirtualLitsxSource,\n decodeVirtualAttributeName,\n getLitsxAttributeCompletionNames,\n inferLitsxComponentEventNames,\n inferLitsxComponentPropNames,\n inferLitsxAttributeCompletionContext,\n inferLitsxAttributeInfoAtPosition,\n inferLitsxMarkupCompletionContext,\n inferLitsxStaticHoistInfoAtPosition,\n looksLikeLitsxJsx,\n mapOriginalPositionToToolingVirtual,\n remapToolingTextSpanToOriginal,\n getLitsxMarkupCompletionNames,\n remapVirtualText,\n} from \"./virtualization.js\";\n\nconst QUERY_FILE_SUFFIX_BY_LANGUAGE_ID = {\n litsx: \".tsx\",\n \"litsx-jsx\": \".jsx\",\n};\n\nconst SUPPORTED_SOURCE_EXTENSIONS = [\n \".litsx.jsx\",\n \".litsx\",\n \".tsx\",\n \".ts\",\n \".jsx\",\n \".js\",\n];\n\nconst SCRIPT_KIND_BY_EXTENSION = {\n \"litsx.jsx\": \"JSX\",\n litsx: \"TSX\",\n tsx: \"TSX\",\n jsx: \"JSX\",\n ts: \"TS\",\n js: \"JS\",\n};\n\nconst BINDING_HOVER_BY_PREFIX = {\n \"@\": {\n kindLabel: \"event\",\n detail: \"LitSX event listener binding\",\n },\n \".\": {\n kindLabel: \"property\",\n detail: \"LitSX property binding\",\n },\n \"?\": {\n kindLabel: \"boolean\",\n detail: \"LitSX boolean attribute binding\",\n },\n};\n\nconst COMPLETION_KIND_BY_TS_KIND = {\n keyword: \"Keyword\",\n const: \"Variable\",\n constElement: \"Variable\",\n let: \"Variable\",\n letElement: \"Variable\",\n variable: \"Variable\",\n variableElement: \"Variable\",\n localVariableElement: \"Variable\",\n memberVariableElement: \"Property\",\n property: \"Property\",\n function: \"Function\",\n functionElement: \"Function\",\n memberFunctionElement: \"Function\",\n class: \"Class\",\n classElement: \"Class\",\n interface: \"Interface\",\n interfaceElement: \"Interface\",\n module: \"Module\",\n moduleElement: \"Module\",\n};\n\nconst SYMBOL_KIND_RULES = [\n [\"Function\", (ts) => ts.SymbolFlags.Function | ts.SymbolFlags.Method],\n [\"Class\", (ts) => ts.SymbolFlags.Class | ts.SymbolFlags.TypeAlias],\n [\"Interface\", (ts) => ts.SymbolFlags.Interface],\n [\"Module\", (ts) => ts.SymbolFlags.Module | ts.SymbolFlags.Namespace],\n [\"Property\", (ts) => ts.SymbolFlags.Property | ts.SymbolFlags.EnumMember],\n];\n\nfunction normalizeFileName(fileName) {\n return path.resolve(fileName).replace(/\\\\/g, \"/\");\n}\n\nfunction getParserPlugins(languageId) {\n return languageId === \"litsx\" ? [\"typescript\"] : [];\n}\n\nfunction isRelevantFile(fileName) {\n return /\\.(jsx|tsx|litsx)$/.test(fileName) || fileName.endsWith(\".litsx.jsx\");\n}\n\nfunction getPluginsForFile(fileName, languageId) {\n return (languageId === \"litsx\" || /\\.(tsx|litsx)$/.test(fileName ?? \"\"))\n ? [\"typescript\"]\n : [];\n}\n\nfunction createCompletionKindAdapter(adapter) {\n if (typeof adapter === \"function\") {\n return adapter;\n }\n\n if (adapter && typeof adapter === \"object\") {\n return (kind) => adapter[kind] ?? kind;\n }\n\n return (kind) => kind;\n}\n\nfunction createDefaultLogger(logger) {\n if (!logger) {\n return () => {};\n }\n\n if (typeof logger === \"function\") {\n return logger;\n }\n\n if (typeof logger.appendLine === \"function\") {\n return (message) => logger.appendLine(message);\n }\n\n return () => {};\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 remapCompletionTextChanges(textChanges, targetFileName, virtualization) {\n if (!Array.isArray(textChanges)) {\n return [];\n }\n\n return textChanges.map((change) => {\n const span = virtualization\n ? remapToolingTextSpanToOriginal(change.span, virtualization)\n : change.span;\n\n return {\n fileName: targetFileName,\n start: span.start,\n length: span.length,\n newText: change.newText,\n };\n });\n}\n\nfunction startsAtAuthoredSyntax(sourceText, start) {\n if (typeof sourceText !== \"string\" || typeof start !== \"number\" || !(start >= 0 && start < sourceText.length)) {\n return false;\n }\n\n return \"@.?\".includes(sourceText[start]);\n}\n\nfunction getBindingHoverInfo(attributeInfo) {\n if (!attributeInfo) {\n return null;\n }\n\n const bindingInfo = BINDING_HOVER_BY_PREFIX[attributeInfo.prefix] ?? {\n kindLabel: \"binding\",\n detail: \"LitSX binding\",\n };\n\n return {\n name: attributeInfo.name,\n start: attributeInfo.start,\n length: attributeInfo.length,\n kindLabel: bindingInfo.kindLabel,\n detail: `${bindingInfo.detail} for <${attributeInfo.tagName}>.`,\n };\n}\n\nfunction getCompletionKindToken(name) {\n return name.startsWith(\"@\") ? \"Event\" : \"Property\";\n}\n\nfunction getContextualCompletionEdit(name, context) {\n const replacementStart = (context?.start ?? 0) + 1;\n const replacementLength = Math.max((context?.length ?? 1) - 1, 0);\n\n return {\n insertText: name.slice(1),\n filterText: name.slice(1),\n start: replacementStart,\n length: replacementLength,\n };\n}\n\nfunction getModuleExtension(ts, fileName) {\n if (fileName.endsWith(\".litsx.jsx\") || fileName.endsWith(\".jsx\")) {\n return ts.Extension.Jsx;\n }\n\n if (fileName.endsWith(\".litsx\") || fileName.endsWith(\".tsx\")) {\n return ts.Extension.Tsx;\n }\n\n if (fileName.endsWith(\".ts\")) {\n return ts.Extension.Ts;\n }\n\n return ts.Extension.Js;\n}\n\nfunction isPathLikeModuleName(moduleName) {\n return moduleName.startsWith(\"./\") || moduleName.startsWith(\"../\") || moduleName.startsWith(\"/\");\n}\n\nfunction getTransparentResolutionCandidates(modulePath) {\n const requestedExtension = SUPPORTED_SOURCE_EXTENSIONS.find((extension) => modulePath.endsWith(extension)) ?? null;\n\n if (requestedExtension) {\n return [\n modulePath,\n path.join(modulePath, `index${requestedExtension}`),\n ];\n }\n\n return [\n ...SUPPORTED_SOURCE_EXTENSIONS.map((extension) => `${modulePath}${extension}`),\n ...SUPPORTED_SOURCE_EXTENSIONS.map((extension) => path.join(modulePath, `index${extension}`)),\n ];\n}\n\nfunction createResolvedModule(ts, resolvedFileName) {\n return {\n resolvedFileName,\n extension: getModuleExtension(ts, resolvedFileName),\n isExternalLibraryImport: false,\n };\n}\n\nfunction findDeepestNodeAtPosition(sourceFile, position) {\n let bestNode = null;\n\n function visit(node) {\n if (position < node.pos || position >= node.end) {\n return;\n }\n\n bestNode = node;\n node.forEachChild(visit);\n }\n\n visit(sourceFile);\n return bestNode;\n}\n\nfunction getSourceFileScriptKind(ts, fileName, languageId) {\n if (fileName.endsWith(\".litsx.jsx\") || languageId === \"litsx-jsx\" || fileName.endsWith(\".jsx\")) {\n return ts.ScriptKind.JSX;\n }\n\n if (fileName.endsWith(\".litsx\") || languageId === \"litsx\" || fileName.endsWith(\".tsx\")) {\n return ts.ScriptKind.TSX;\n }\n\n if (fileName.endsWith(\".ts\")) {\n return ts.ScriptKind.TS;\n }\n\n return ts.ScriptKind.JS;\n}\n\nfunction isCustomElementsDefineCall(ts, node) {\n return ts.isCallExpression(node)\n && ts.isPropertyAccessExpression(node.expression)\n && ts.isIdentifier(node.expression.expression)\n && node.expression.expression.text === \"customElements\"\n && node.expression.name.text === \"define\";\n}\n\nfunction isLikelyLitsxComponentReference(ts, sourceFile, node) {\n if (!ts.isIdentifier(node) || !/^[A-Z]/.test(node.text)) {\n return false;\n }\n\n let matches = false;\n\n function visit(current) {\n if (matches) {\n return;\n }\n\n if (\n ts.isImportDeclaration(current)\n && ts.isStringLiteral(current.moduleSpecifier)\n && (current.moduleSpecifier.text.endsWith(\".litsx\") || current.moduleSpecifier.text.endsWith(\".litsx.jsx\"))\n ) {\n const bindings = current.importClause?.namedBindings;\n if (bindings && ts.isNamedImports(bindings)) {\n matches = bindings.elements.some((element) => element.name.text === node.text);\n }\n }\n\n if (\n ts.isVariableDeclaration(current)\n && ts.isIdentifier(current.name)\n && current.name.text === node.text\n && (ts.isArrowFunction(current.initializer) || ts.isFunctionExpression(current.initializer))\n ) {\n matches = true;\n }\n\n if (ts.isFunctionDeclaration(current) && current.name?.text === node.text) {\n matches = true;\n }\n\n if (!matches) {\n current.forEachChild(visit);\n }\n }\n\n sourceFile.forEachChild(visit);\n return matches;\n}\n\nfunction shouldSuppressCustomElementConstructorDiagnostic(ts, sourceFile, diagnostic) {\n if (diagnostic.code !== 2345 || typeof diagnostic.start !== \"number\") {\n return false;\n }\n\n const node = findDeepestNodeAtPosition(sourceFile, diagnostic.start);\n let current = node;\n\n while (current && !isCustomElementsDefineCall(ts, current)) {\n current = current.parent ?? null;\n }\n\n if (!current || !isCustomElementsDefineCall(ts, current)) {\n return false;\n }\n\n const candidate = current.arguments?.[1];\n if (!candidate || diagnostic.start < candidate.getStart(sourceFile) || diagnostic.start >= candidate.getEnd()) {\n return false;\n }\n\n return isLikelyLitsxComponentReference(ts, sourceFile, candidate)\n && String(typeof diagnostic.messageText === \"string\" ? diagnostic.messageText : diagnostic.messageText?.messageText ?? \"\")\n .includes(\"CustomElementConstructor\");\n}\n\nfunction getScopeCompletionPrefix(sourceText, position) {\n const match = /[A-Za-z0-9_$]*$/.exec(sourceText.slice(0, position));\n return match?.[0] ?? \"\";\n}\n\nfunction getJsxImportSourceExportEntries(service, ts, prefix, adaptKind, position) {\n if (!prefix) {\n return [];\n }\n\n const program = service.languageService.getProgram();\n const checker = program?.getTypeChecker();\n const jsxImportSource = program?.getCompilerOptions?.().jsxImportSource;\n\n if (!program || !checker || typeof jsxImportSource !== \"string\" || jsxImportSource.length === 0) {\n return [];\n }\n\n const moduleSourceFile = program.getSourceFiles().find((sourceFile) => (\n sourceFile.fileName.includes(`/node_modules/${jsxImportSource}/`)\n || sourceFile.fileName.includes(`/${jsxImportSource}/src/`)\n ));\n\n const moduleSymbol = moduleSourceFile?.symbol ?? null;\n if (!moduleSymbol) {\n return [];\n }\n\n const exportedSymbols = checker.getExportsOfModule(moduleSymbol);\n\n return exportedSymbols\n .filter((symbol) => {\n const name = symbol.getName?.();\n return typeof name === \"string\"\n && name.startsWith(prefix)\n && !isInternalCompletionName(name);\n })\n .map((symbol) => {\n const name = symbol.getName();\n return {\n label: name,\n kind: adaptKind(getSymbolCompletionKind(ts, symbol), {\n source: jsxImportSource,\n label: name,\n }),\n detail: \"export\",\n documentation: `From ${jsxImportSource}`,\n start: position - prefix.length,\n length: prefix.length,\n };\n });\n}\n\nfunction getSourceParserPlugins(fileName) {\n return /\\.(litsx|tsx|ts)$/.test(fileName) ? [\"typescript\"] : [];\n}\n\nfunction getImportedComponentReference(ts, sourceFile, tagName) {\n let reference = null;\n\n sourceFile.forEachChild((node) => {\n if (\n reference ||\n !ts.isImportDeclaration(node) ||\n !ts.isStringLiteral(node.moduleSpecifier)\n ) {\n return;\n }\n\n const bindings = node.importClause?.namedBindings;\n if (!bindings || !ts.isNamedImports(bindings)) {\n return;\n }\n\n for (const element of bindings.elements) {\n if (element.name.text !== tagName) {\n continue;\n }\n\n reference = {\n exportName: element.propertyName?.text ?? element.name.text,\n moduleName: node.moduleSpecifier.text,\n };\n return;\n }\n });\n\n return reference;\n}\n\nfunction getComponentEventCompletionEntries(service, ts, queryFileName, sourceText, position, adaptKind) {\n const context = inferLitsxAttributeCompletionContext(sourceText, position);\n if (!context || context.prefix !== \"@\" || !/^[A-Z]/.test(context.tagName)) {\n return [];\n }\n\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n if (!sourceFile) {\n return [];\n }\n\n const reference = getImportedComponentReference(ts, sourceFile, context.tagName);\n if (!reference) {\n return [];\n }\n\n const resolvedModule = service.resolveModuleName?.(reference.moduleName, queryFileName);\n const componentFileName = resolvedModule?.resolvedFileName;\n if (!componentFileName) {\n return [];\n }\n\n const componentSourceText = service.readSourceText?.(componentFileName);\n if (typeof componentSourceText !== \"string\") {\n return [];\n }\n\n const eventNames = inferLitsxComponentEventNames(componentSourceText, {\n plugins: getSourceParserPlugins(componentFileName),\n })[reference.exportName] ?? [];\n\n return eventNames\n .filter((name) => typeof name === \"string\" && name.startsWith(context.partialName))\n .map((name) => ({\n ...getContextualCompletionEdit(`@${name}`, context),\n label: `@${name}`,\n kind: adaptKind(\"Event\", {\n source: \"litsx-component-event\",\n label: `@${name}`,\n }),\n detail: `Emitted by <${context.tagName}>`,\n documentation: `LitSX custom event emitted by <${context.tagName}>.`,\n }));\n}\n\nfunction getComponentStaticPropCompletionEntries(service, ts, queryFileName, sourceText, position, adaptKind) {\n const markupContext = inferLitsxMarkupCompletionContext(sourceText, position);\n if (!markupContext || !/^[A-Z]/.test(markupContext.tagName)) {\n return [];\n }\n\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n if (!sourceFile) {\n return [];\n }\n\n const reference = getImportedComponentReference(ts, sourceFile, markupContext.tagName);\n if (!reference) {\n return [];\n }\n\n const resolvedModule = service.resolveModuleName?.(reference.moduleName, queryFileName);\n const componentFileName = resolvedModule?.resolvedFileName;\n if (!componentFileName) {\n return [];\n }\n\n const componentSourceText = service.readSourceText?.(componentFileName);\n if (typeof componentSourceText !== \"string\") {\n return [];\n }\n\n const propNames = inferLitsxComponentPropNames(componentSourceText, {\n plugins: getSourceParserPlugins(componentFileName),\n })[reference.exportName] ?? [];\n\n return propNames\n .filter((name) => typeof name === \"string\" && name.startsWith(markupContext.partialName))\n .map((name) => ({\n label: name,\n kind: adaptKind(\"Property\", {\n source: \"litsx-component-static-prop\",\n label: name,\n }),\n detail: `Static property of <${markupContext.tagName}>`,\n documentation: `LitSX static property exposed by <${markupContext.tagName}>.`,\n start: markupContext.start,\n length: markupContext.length,\n }));\n}\n\nfunction getCompletionEntryImportEdits(languageService, queryFileName, fileName, position, entry, virtualization) {\n if (typeof languageService.getCompletionEntryDetails !== \"function\" || !entry?.hasAction) {\n return [];\n }\n\n let details;\n try {\n details = languageService.getCompletionEntryDetails(\n queryFileName,\n position,\n entry.name,\n {},\n entry.source,\n {},\n entry.data,\n );\n } catch {\n return [];\n }\n\n const fileChanges = details?.codeActions\n ?.flatMap((action) => action.changes ?? [])\n ?.filter((change) => change.fileName === queryFileName || change.fileName === fileName) ?? [];\n\n return fileChanges.flatMap((change) => (\n remapCompletionTextChanges(change.textChanges, fileName, virtualization)\n ));\n}\n\nfunction isInternalCompletionName(name) {\n return typeof name === \"string\" && (\n name.startsWith(\"__litsx_\") ||\n name.startsWith(\"_$L\") ||\n name.startsWith(\"_currentTarget\") ||\n name.includes(\"$\")\n );\n}\n\nfunction isLikelyIntrinsicMarkupCompletionName(name) {\n if (\n typeof name !== \"string\" ||\n name.length === 0 ||\n isInternalCompletionName(name) ||\n name.startsWith(\"_\") ||\n /^[A-Z0-9_]+$/.test(name) ||\n /^[A-Z]/.test(name) ||\n /^on[a-z]/.test(name) ||\n /(Element|Elements|Node|Nodes)$/.test(name)\n ) {\n return false;\n }\n\n return /^[a-z][\\w-]*$/.test(name) || /^aria[A-Z]/.test(name);\n}\n\nfunction isLikelyComponentPropCompletionName(name) {\n return typeof name === \"string\"\n && name.length > 0\n && !isInternalCompletionName(name)\n && !name.startsWith(\"_\")\n && !/^[A-Z]/.test(name)\n && !name.includes(\"$\")\n && /^[a-z][\\w-]*$/.test(name);\n}\n\nfunction rankCompletionLabel(label, prefix) {\n const normalizedLabel = String(label ?? \"\").toLowerCase();\n const normalizedPrefix = prefix.toLowerCase();\n\n if (normalizedPrefix.length === 0) {\n return 3;\n }\n\n if (normalizedLabel === normalizedPrefix) {\n return 0;\n }\n\n if (normalizedLabel.startsWith(normalizedPrefix)) {\n return 1;\n }\n\n if (normalizedLabel.includes(normalizedPrefix)) {\n return 2;\n }\n\n return 3;\n}\n\nfunction compareCompletionEntries(left, right, prefix) {\n const leftLabel = String(left.label ?? \"\");\n const rightLabel = String(right.label ?? \"\");\n const leftRank = rankCompletionLabel(leftLabel, prefix);\n const rightRank = rankCompletionLabel(rightLabel, prefix);\n\n if (leftRank !== rightRank) {\n return leftRank - rightRank;\n }\n\n const leftIsLitsxApi = left.documentation === \"From @litsx/core\";\n const rightIsLitsxApi = right.documentation === \"From @litsx/core\";\n\n if (leftIsLitsxApi !== rightIsLitsxApi) {\n return leftIsLitsxApi ? -1 : 1;\n }\n\n if (prefix.toLowerCase().startsWith(\"use\")) {\n const leftStartsWithUse = leftLabel.startsWith(\"use\");\n const rightStartsWithUse = rightLabel.startsWith(\"use\");\n if (leftStartsWithUse !== rightStartsWithUse) {\n return leftStartsWithUse ? -1 : 1;\n }\n }\n\n return leftLabel.localeCompare(rightLabel);\n}\n\nfunction getSymbolCompletionKind(ts, symbol) {\n return SYMBOL_KIND_RULES.find(([, getMask]) => (symbol.flags & getMask(ts)) !== 0)?.[0] ?? \"Variable\";\n}\n\nfunction createLitsxEditorSession(options = {}) {\n const ts = options.typescript ?? defaultTs;\n const bundledLibDir = options.bundledLibDir ?? null;\n const trace = createDefaultLogger(options.logger);\n const projectServiceCache = new Map();\n\n function log(message) {\n if (!options.trace) {\n return;\n }\n trace(message);\n }\n\n function getDefaultLibFilePath(localTs, compilerOptions) {\n if (!bundledLibDir) {\n return localTs.getDefaultLibFilePath(compilerOptions);\n }\n\n const libFileName = localTs.getDefaultLibFileName(compilerOptions);\n const candidate = path.join(bundledLibDir, libFileName);\n return fs.existsSync(candidate) ? candidate : localTs.getDefaultLibFilePath(compilerOptions);\n }\n\n function getProjectKey(fileName) {\n const configPath =\n ts.findConfigFile(path.dirname(fileName), ts.sys.fileExists, \"tsconfig.json\") ??\n ts.findConfigFile(path.dirname(fileName), ts.sys.fileExists, \"jsconfig.json\");\n return configPath ? normalizeFileName(configPath) : `<standalone>:${normalizeFileName(fileName)}`;\n }\n\n function getQueryFileName(fileName, languageId) {\n return `${fileName}${QUERY_FILE_SUFFIX_BY_LANGUAGE_ID[languageId] ?? \"\"}`;\n }\n\n function getExtraFileExtensions(localTs) {\n return [\n {\n extension: \".litsx\",\n isMixedContent: false,\n scriptKind: localTs.ScriptKind.TSX,\n },\n {\n extension: \".litsx.jsx\",\n isMixedContent: false,\n scriptKind: localTs.ScriptKind.JSX,\n },\n ];\n }\n\n function getFileVersion(fileName) {\n try {\n const stats = fs.statSync(fileName);\n return `${stats.mtimeMs}:${stats.size}`;\n } catch {\n return \"0\";\n }\n }\n\n function readFileText(fileName, overlays) {\n const normalizedFileName = normalizeFileName(fileName);\n if (overlays.has(normalizedFileName)) {\n return overlays.get(normalizedFileName).text;\n }\n\n try {\n return fs.readFileSync(fileName, \"utf8\");\n } catch {\n return null;\n }\n }\n\n function getOrCreateProjectService(fileName, sourceText, languageId) {\n const projectKey = getProjectKey(fileName);\n const queryFileName = getQueryFileName(fileName, languageId);\n let service = projectServiceCache.get(projectKey);\n\n if (!service) {\n const configPath = projectKey.startsWith(\"<standalone>:\") ? null : projectKey;\n let compilerOptions;\n let rootNames;\n\n if (configPath) {\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile);\n const parsed = ts.parseJsonConfigFileContent(\n configFile.config,\n {\n ...ts.sys,\n onUnRecoverableConfigFileDiagnostic() {},\n },\n path.dirname(configPath),\n undefined,\n configPath,\n undefined,\n getExtraFileExtensions(ts),\n );\n\n compilerOptions = parsed.options;\n rootNames = [...parsed.fileNames];\n if (\n rootNames.some((entry) => entry.endsWith(\".litsx\") || entry.endsWith(\".litsx.jsx\")) ||\n queryFileName.endsWith(\".tsx\") ||\n queryFileName.endsWith(\".jsx\") ||\n fileName.endsWith(\".litsx\") ||\n fileName.endsWith(\".litsx.jsx\")\n ) {\n compilerOptions = {\n ...compilerOptions,\n allowNonTsExtensions: true,\n };\n }\n } else {\n compilerOptions = {\n target: ts.ScriptTarget.ESNext,\n module: ts.ModuleKind.ESNext,\n jsx: ts.JsxEmit.Preserve,\n allowJs: true,\n checkJs: true,\n allowNonTsExtensions: true,\n types: [],\n };\n rootNames = [queryFileName];\n }\n\n if (!rootNames.includes(queryFileName)) {\n rootNames.push(queryFileName);\n }\n\n const overlays = new Map();\n const virtualizationCache = new Map();\n\n function fileExistsForResolution(nextFileName) {\n return overlays.has(normalizeFileName(nextFileName)) || ts.sys.fileExists(nextFileName);\n }\n\n function getScriptKind(nextFileName) {\n const extension = /\\.((?:litsx\\.jsx)|litsx|tsx|jsx|ts|js)$/.exec(nextFileName)?.[1];\n const scriptKindName = extension ? SCRIPT_KIND_BY_EXTENSION[extension] : undefined;\n return scriptKindName ? ts.ScriptKind[scriptKindName] : undefined;\n }\n\n function getSnapshotRecord(nextFileName) {\n const normalizedFileName = normalizeFileName(nextFileName);\n const overlay = overlays.get(normalizedFileName);\n const version = overlay?.version ?? getFileVersion(nextFileName);\n const cached = virtualizationCache.get(normalizedFileName);\n\n if (cached?.version === version) {\n return cached;\n }\n\n const nextSourceText = readFileText(nextFileName, overlays);\n if (typeof nextSourceText !== \"string\") {\n virtualizationCache.delete(normalizedFileName);\n return null;\n }\n\n let virtualization = null;\n let toolingText = nextSourceText;\n\n if (isRelevantFile(nextFileName) && looksLikeLitsxJsx(nextSourceText)) {\n virtualization = createToolingVirtualLitsxSource(nextSourceText, {\n plugins: getPluginsForFile(nextFileName, languageId),\n });\n toolingText = virtualization.code;\n }\n\n const record = {\n version,\n sourceText: nextSourceText,\n toolingText,\n virtualization,\n snapshot: ts.ScriptSnapshot.fromString(toolingText),\n };\n virtualizationCache.set(normalizedFileName, record);\n return record;\n }\n\n function resolveTransparentModuleName(moduleName, containingFile) {\n if (!isPathLikeModuleName(moduleName)) {\n return null;\n }\n\n const candidateBase = path.resolve(path.dirname(containingFile), moduleName);\n for (const candidate of getTransparentResolutionCandidates(candidateBase)) {\n if (fileExistsForResolution(candidate)) {\n return createResolvedModule(ts, candidate);\n }\n }\n\n return null;\n }\n\n function resolveModule(moduleName, containingFile) {\n const resolved = ts.resolveModuleName(\n moduleName,\n containingFile,\n compilerOptions,\n {\n fileExists: fileExistsForResolution,\n readFile(nextFileName) {\n return readFileText(nextFileName, overlays);\n },\n directoryExists(nextDirName) {\n return ts.sys.directoryExists?.(nextDirName) ?? true;\n },\n getDirectories(nextDirName) {\n return ts.sys.getDirectories?.(nextDirName) ?? [];\n },\n realpath(nextFileName) {\n return ts.sys.realpath?.(nextFileName) ?? nextFileName;\n },\n },\n ).resolvedModule;\n\n return resolved ?? resolveTransparentModuleName(moduleName, containingFile);\n }\n\n const host = {\n extraFileExtensions: getExtraFileExtensions(ts),\n getCompilationSettings() {\n return compilerOptions;\n },\n getCurrentDirectory() {\n return configPath ? path.dirname(configPath) : path.dirname(fileName);\n },\n getDefaultLibFileName(optionsForLib) {\n return getDefaultLibFilePath(ts, optionsForLib);\n },\n getScriptFileNames() {\n return rootNames;\n },\n getScriptVersion(nextFileName) {\n const normalizedFileName = normalizeFileName(nextFileName);\n const overlay = overlays.get(normalizedFileName);\n return String(overlay?.version ?? getFileVersion(nextFileName));\n },\n getScriptKind,\n getScriptSnapshot(nextFileName) {\n return getSnapshotRecord(nextFileName)?.snapshot;\n },\n fileExists(nextFileName) {\n return fileExistsForResolution(nextFileName);\n },\n readFile(nextFileName) {\n return readFileText(nextFileName, overlays);\n },\n resolveModuleNames(moduleNames, containingFile) {\n return moduleNames.map((moduleName) => resolveModule(moduleName, containingFile));\n },\n resolveModuleNameLiterals(moduleLiterals, containingFile) {\n return moduleLiterals.map(({ text }) => ({ resolvedModule: resolveModule(text, containingFile) }));\n },\n readDirectory(...args) {\n return ts.sys.readDirectory(...args);\n },\n directoryExists(nextDirName) {\n return ts.sys.directoryExists?.(nextDirName) ?? true;\n },\n getDirectories(nextDirName) {\n return ts.sys.getDirectories?.(nextDirName) ?? [];\n },\n getNewLine() {\n return ts.sys.newLine;\n },\n useCaseSensitiveFileNames() {\n return ts.sys.useCaseSensitiveFileNames;\n },\n getCanonicalFileName(nextFileName) {\n return ts.sys.useCaseSensitiveFileNames\n ? nextFileName\n : nextFileName.toLowerCase();\n },\n };\n\n service = {\n rootNames,\n overlays,\n languageService: ts.createLanguageService(host, ts.createDocumentRegistry()),\n readSourceText(nextFileName) {\n return readFileText(nextFileName, overlays);\n },\n resolveModuleName(moduleName, containingFile) {\n return resolveModule(moduleName, containingFile);\n },\n getVirtualization(nextFileName) {\n return getSnapshotRecord(nextFileName)?.virtualization ?? null;\n },\n setOverlay(nextFileName, nextSourceText) {\n const normalizedFileName = normalizeFileName(nextFileName);\n const previousVersion = overlays.get(normalizedFileName)?.version ?? 0;\n overlays.set(normalizedFileName, {\n text: nextSourceText,\n version: previousVersion + 1,\n });\n if (!rootNames.includes(nextFileName)) {\n rootNames.push(nextFileName);\n }\n },\n };\n\n projectServiceCache.set(projectKey, service);\n }\n\n service.setOverlay(queryFileName, sourceText);\n service.queryFileName = queryFileName;\n return service;\n }\n\n function getDiagnostics(fileName, sourceText, languageId) {\n const service = getOrCreateProjectService(fileName, sourceText, languageId);\n const queryFileName = service.queryFileName ?? fileName;\n const virtualization = service.getVirtualization(queryFileName);\n const authoredSourceFile = ts.createSourceFile(\n fileName,\n sourceText,\n ts.ScriptTarget.Latest,\n true,\n getSourceFileScriptKind(ts, fileName, languageId),\n );\n const diagnostics = [\n ...service.languageService.getSyntacticDiagnostics(queryFileName),\n ...service.languageService.getSemanticDiagnostics(queryFileName),\n ];\n const remappedDiagnostics = diagnostics\n .map((diagnostic) => {\n if (!virtualization || typeof diagnostic.start !== \"number\") {\n return {\n ...diagnostic,\n messageText: remapMessageText(diagnostic.messageText),\n };\n }\n\n const remappedSpan = remapToolingTextSpanToOriginal(\n {\n start: diagnostic.start,\n length: diagnostic.length ?? 0,\n },\n virtualization,\n );\n\n return {\n ...diagnostic,\n start: remappedSpan.start,\n length: remappedSpan.length,\n messageText: remapMessageText(diagnostic.messageText),\n };\n })\n .filter((diagnostic) => (\n !String(diagnostic.messageText ?? \"\").includes(\"__litsx_\") &&\n !startsAtAuthoredSyntax(sourceText, diagnostic.start) &&\n !shouldSuppressCustomElementConstructorDiagnostic(ts, authoredSourceFile, diagnostic)\n ));\n\n const authoredDiagnostics = collectLitsxAuthoredDiagnostics(sourceText, ts, {\n plugins: getParserPlugins(languageId),\n });\n const seen = new Set(\n remappedDiagnostics.map((diagnostic) => `${diagnostic.code}:${diagnostic.start}:${diagnostic.length}`),\n );\n\n return [\n ...remappedDiagnostics,\n ...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\n function getHover(fileName, sourceText, languageId, position) {\n const service = getOrCreateProjectService(fileName, sourceText, languageId);\n const queryFileName = service.queryFileName ?? fileName;\n const virtualization = service.getVirtualization(queryFileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const info = service.languageService.getQuickInfoAtPosition(queryFileName, mappedPosition);\n\n const hoistInfo = inferLitsxStaticHoistInfoAtPosition(sourceText, position);\n if (hoistInfo) {\n return {\n start: hoistInfo.start,\n length: hoistInfo.length,\n code: `${hoistInfo.name}(...): static hoist`,\n documentation: hoistInfo.documentation,\n };\n }\n\n if (!info) {\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n const checker = program?.getTypeChecker();\n if (!program || !sourceFile || !checker) {\n const bindingHoverInfo = getBindingHoverInfo(\n inferLitsxAttributeInfoAtPosition(sourceText, position),\n );\n return bindingHoverInfo\n ? {\n start: bindingHoverInfo.start,\n length: bindingHoverInfo.length,\n code: `${bindingHoverInfo.name}: ${bindingHoverInfo.kindLabel}`,\n documentation: bindingHoverInfo.detail,\n }\n : null;\n }\n\n let node = findDeepestNodeAtPosition(sourceFile, mappedPosition);\n while (node) {\n const symbol = checker.getSymbolAtLocation(node) ?? null;\n const type = checker.getTypeAtLocation(node) ?? null;\n if (!type) {\n node = node.parent ?? null;\n continue;\n }\n\n const remappedNodeSpan = virtualization\n ? remapToolingTextSpanToOriginal(\n {\n start: node.getStart(sourceFile),\n length: node.getWidth(sourceFile),\n },\n virtualization,\n )\n : {\n start: position,\n length: 0,\n };\n\n return {\n start: remappedNodeSpan.start,\n length: remappedNodeSpan.length,\n code: `${symbol?.getName?.() ?? node.getText(sourceFile)}: ${checker.typeToString(type)}`,\n documentation: symbol\n ? ts.displayPartsToString(symbol.getDocumentationComment(checker))\n : \"\",\n };\n }\n\n const bindingHoverInfo = getBindingHoverInfo(\n inferLitsxAttributeInfoAtPosition(sourceText, position),\n );\n return bindingHoverInfo\n ? {\n start: bindingHoverInfo.start,\n length: bindingHoverInfo.length,\n code: `${bindingHoverInfo.name}: ${bindingHoverInfo.kindLabel}`,\n documentation: bindingHoverInfo.detail,\n }\n : null;\n }\n\n const remappedSpan = virtualization\n ? remapToolingTextSpanToOriginal(info.textSpan, virtualization)\n : info.textSpan;\n const displayText = (remapDisplayParts(info.displayParts) ?? [])\n .map((entry) => entry.text)\n .join(\"\");\n const documentation = (remapDisplayParts(info.documentation) ?? [])\n .map((entry) => entry.text)\n .join(\"\");\n\n return {\n start: remappedSpan.start,\n length: remappedSpan.length,\n code: displayText || \"symbol\",\n documentation,\n };\n }\n\n function getCompletions(fileName, sourceText, languageId, position, completionKindAdapter) {\n const adaptKind = createCompletionKindAdapter(completionKindAdapter);\n const service = getOrCreateProjectService(fileName, sourceText, languageId);\n const queryFileName = service.queryFileName ?? fileName;\n const virtualization = service.getVirtualization(queryFileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const completions = service.languageService.getCompletionsAtPosition(queryFileName, mappedPosition, {\n includeCompletionsForModuleExports: true,\n includeCompletionsWithInsertText: true,\n });\n const rawCompletionEntriesByName = new Map(\n (completions?.entries ?? []).map((entry) => [entry.name, entry]),\n );\n\n const context = inferLitsxAttributeCompletionContext(sourceText, position);\n const markupContext = inferLitsxMarkupCompletionContext(sourceText, position);\n const isComponentTag = /^[A-Z]/.test(markupContext?.tagName ?? \"\");\n const contextualEntries = context\n ? getLitsxAttributeCompletionNames(context).map((name) => ({\n ...getContextualCompletionEdit(name, context),\n label: name,\n kind: adaptKind(getCompletionKindToken(name), {\n source: \"litsx\",\n label: name,\n }),\n detail: \"LitSX binding\",\n documentation: `LitSX binding for <${context.tagName}>.`,\n }))\n : [];\n const componentEventEntries = getComponentEventCompletionEntries(\n service,\n ts,\n queryFileName,\n sourceText,\n position,\n adaptKind,\n ).filter((entry) => !contextualEntries.some((contextualEntry) => contextualEntry.label === entry.label));\n const componentStaticPropEntries = getComponentStaticPropCompletionEntries(\n service,\n ts,\n queryFileName,\n sourceText,\n position,\n adaptKind,\n );\n const markupEntries = markupContext && !isComponentTag\n ? getLitsxMarkupCompletionNames(markupContext).map((name) => ({\n label: name,\n kind: adaptKind(\n name.startsWith(\"@\")\n ? \"Event\"\n : name.startsWith(\".\") || name.startsWith(\"?\")\n ? \"Property\"\n : \"Property\",\n {\n source: \"litsx-markup\",\n label: name,\n },\n ),\n detail: name.startsWith(\"@\")\n ? \"LitSX event binding\"\n : name.startsWith(\".\")\n ? \"LitSX property binding\"\n : name.startsWith(\"?\")\n ? \"LitSX boolean attribute binding\"\n : \"LitSX markup attribute\",\n documentation: name.startsWith(\"@\") || name.startsWith(\".\") || name.startsWith(\"?\")\n ? `LitSX binding for <${markupContext.tagName}>.`\n : `LitSX-authored attribute for <${markupContext.tagName}>.`,\n start: markupContext.start,\n length: markupContext.length,\n }))\n : [];\n const scopePrefix = getScopeCompletionPrefix(sourceText, position);\n const jsxImportSourceEntries = markupContext\n ? []\n : getJsxImportSourceExportEntries(service, ts, scopePrefix, adaptKind, position).map((entry) => ({\n ...entry,\n additionalTextEdits: getCompletionEntryImportEdits(\n service.languageService,\n queryFileName,\n fileName,\n mappedPosition,\n rawCompletionEntriesByName.get(entry.label),\n virtualization,\n ),\n }));\n\n const mergedEntries = [\n ...contextualEntries,\n ...componentEventEntries,\n ...componentStaticPropEntries,\n ...markupEntries,\n ...jsxImportSourceEntries,\n ];\n const seen = new Set(mergedEntries.map((entry) => entry.label));\n\n for (const entry of completions?.entries ?? []) {\n if (\n decodeVirtualAttributeName(entry.name) ||\n seen.has(entry.name) ||\n isInternalCompletionName(entry.name)\n ) {\n continue;\n }\n\n if (markupContext && !isComponentTag && !isLikelyIntrinsicMarkupCompletionName(entry.name)) {\n continue;\n }\n\n if (markupContext && isComponentTag && !isLikelyComponentPropCompletionName(entry.name)) {\n continue;\n }\n\n seen.add(entry.name);\n\n const remappedSpan = virtualization && entry.replacementSpan\n ? remapToolingTextSpanToOriginal(entry.replacementSpan, virtualization)\n : entry.replacementSpan ?? { start: position, length: 0 };\n\n const kindToken = COMPLETION_KIND_BY_TS_KIND[entry.kind] ?? \"Text\";\n mergedEntries.push({\n label: entry.name,\n kind: adaptKind(kindToken, {\n source: \"typescript\",\n label: entry.name,\n tsKind: entry.kind,\n kindModifiers: entry.kindModifiers,\n }),\n detail: entry.kindModifiers || entry.kind,\n documentation: entry.source ? `From ${entry.source}` : \"TypeScript completion\",\n start: remappedSpan.start,\n length: remappedSpan.length,\n additionalTextEdits: getCompletionEntryImportEdits(\n service.languageService,\n queryFileName,\n fileName,\n mappedPosition,\n entry,\n virtualization,\n ),\n });\n }\n\n if (mergedEntries.length === (contextualEntries.length + componentEventEntries.length + componentStaticPropEntries.length)) {\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n const checker = program?.getTypeChecker();\n const node = sourceFile ? findDeepestNodeAtPosition(sourceFile, mappedPosition) : null;\n const prefix = scopePrefix;\n\n if (node && checker && !markupContext) {\n const scopeSymbols = checker.getSymbolsInScope(\n node,\n ts.SymbolFlags.Value | ts.SymbolFlags.Type | ts.SymbolFlags.Namespace | ts.SymbolFlags.Alias,\n );\n\n for (const symbol of scopeSymbols) {\n const name = symbol.getName?.();\n if (!name || isInternalCompletionName(name) || seen.has(name) || !name.startsWith(prefix)) {\n continue;\n }\n\n seen.add(name);\n const kindToken = getSymbolCompletionKind(ts, symbol);\n mergedEntries.push({\n label: name,\n kind: adaptKind(kindToken, {\n source: \"typescript-scope\",\n label: name,\n }),\n detail: \"TypeScript symbol\",\n documentation: \"Project-backed TypeScript completion\",\n start: position - prefix.length,\n length: prefix.length,\n });\n }\n }\n }\n\n if (markupContext) {\n return mergedEntries;\n }\n\n return mergedEntries.sort((left, right) => (\n compareCompletionEntries(left, right, scopePrefix)\n ));\n }\n\n log(\"LitSX editor session initialized\");\n\n return {\n typescript: ts,\n bundledLibDir,\n getDiagnostics,\n getHover,\n getCompletions,\n clear() {\n projectServiceCache.clear();\n },\n };\n}\n\nexport {\n createLitsxEditorSession,\n};\n"],"names":["remapVirtualText","virtualization","remapToolingTextSpanToOriginal","inferLitsxAttributeCompletionContext","inferLitsxComponentEventNames","inferLitsxMarkupCompletionContext","inferLitsxComponentPropNames","ts","defaultTs","looksLikeLitsxJsx","createToolingVirtualLitsxSource","collectLitsxAuthoredDiagnostics","mapOriginalPositionToToolingVirtual","inferLitsxStaticHoistInfoAtPosition","inferLitsxAttributeInfoAtPosition","getLitsxAttributeCompletionNames","getLitsxMarkupCompletionNames","decodeVirtualAttributeName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editor-session.cjs","sources":["../src/editor-session.js"],"sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport defaultTs from \"typescript\";\n\nimport {\n collectLitsxAuthoredDiagnostics,\n createToolingVirtualLitsxSource,\n decodeVirtualAttributeName,\n getLitsxAttributeCompletionNames,\n inferLitsxComponentEventNames,\n inferLitsxComponentPropNames,\n inferLitsxAttributeCompletionContext,\n inferLitsxAttributeInfoAtPosition,\n inferLitsxMarkupCompletionContext,\n inferLitsxStaticHoistInfoAtPosition,\n looksLikeLitsxJsx,\n mapOriginalPositionToToolingVirtual,\n remapToolingTextSpanToOriginal,\n getLitsxMarkupCompletionNames,\n remapVirtualText,\n} from \"./virtualization.js\";\n\nconst QUERY_FILE_SUFFIX_BY_LANGUAGE_ID = {\n litsx: \".tsx\",\n \"litsx-jsx\": \".jsx\",\n};\n\nconst SUPPORTED_SOURCE_EXTENSIONS = [\n \".litsx.jsx\",\n \".litsx\",\n \".tsx\",\n \".ts\",\n \".jsx\",\n \".js\",\n];\n\nconst SCRIPT_KIND_BY_EXTENSION = {\n \"litsx.jsx\": \"JSX\",\n litsx: \"TSX\",\n tsx: \"TSX\",\n jsx: \"JSX\",\n ts: \"TS\",\n js: \"JS\",\n};\n\nconst BINDING_HOVER_BY_PREFIX = {\n \"@\": {\n kindLabel: \"event\",\n detail: \"LitSX event listener binding\",\n },\n \".\": {\n kindLabel: \"property\",\n detail: \"LitSX property binding\",\n },\n \"?\": {\n kindLabel: \"boolean\",\n detail: \"LitSX boolean attribute binding\",\n },\n};\n\nconst COMPLETION_KIND_BY_TS_KIND = {\n keyword: \"Keyword\",\n const: \"Variable\",\n constElement: \"Variable\",\n let: \"Variable\",\n letElement: \"Variable\",\n variable: \"Variable\",\n variableElement: \"Variable\",\n localVariableElement: \"Variable\",\n memberVariableElement: \"Property\",\n property: \"Property\",\n function: \"Function\",\n functionElement: \"Function\",\n memberFunctionElement: \"Function\",\n class: \"Class\",\n classElement: \"Class\",\n interface: \"Interface\",\n interfaceElement: \"Interface\",\n module: \"Module\",\n moduleElement: \"Module\",\n};\n\nconst SYMBOL_KIND_RULES = [\n [\"Function\", (ts) => ts.SymbolFlags.Function | ts.SymbolFlags.Method],\n [\"Class\", (ts) => ts.SymbolFlags.Class | ts.SymbolFlags.TypeAlias],\n [\"Interface\", (ts) => ts.SymbolFlags.Interface],\n [\"Module\", (ts) => ts.SymbolFlags.Module | ts.SymbolFlags.Namespace],\n [\"Property\", (ts) => ts.SymbolFlags.Property | ts.SymbolFlags.EnumMember],\n];\n\nfunction normalizeFileName(fileName) {\n return path.resolve(fileName).replace(/\\\\/g, \"/\");\n}\n\nfunction getParserPlugins(languageId) {\n return languageId === \"litsx\" ? [\"typescript\"] : [];\n}\n\nfunction isRelevantFile(fileName) {\n return /\\.(jsx|tsx|litsx)$/.test(fileName) || fileName.endsWith(\".litsx.jsx\");\n}\n\nfunction getPluginsForFile(fileName, languageId) {\n return (languageId === \"litsx\" || /\\.(tsx|litsx)$/.test(fileName ?? \"\"))\n ? [\"typescript\"]\n : [];\n}\n\nfunction createCompletionKindAdapter(adapter) {\n if (typeof adapter === \"function\") {\n return adapter;\n }\n\n if (adapter && typeof adapter === \"object\") {\n return (kind) => adapter[kind] ?? kind;\n }\n\n return (kind) => kind;\n}\n\nfunction createDefaultLogger(logger) {\n if (!logger) {\n return () => {};\n }\n\n if (typeof logger === \"function\") {\n return logger;\n }\n\n if (typeof logger.appendLine === \"function\") {\n return (message) => logger.appendLine(message);\n }\n\n return () => {};\n}\n\nfunction remapDisplayParts(parts) {\n return parts?.map((part) => ({\n ...part,\n text: remapVirtualText(part.text),\n }));\n}\n\nfunction normalizeEscapedNewlines(text) {\n if (typeof text !== \"string\" || !text.includes(\"\\\\\")) {\n return text;\n }\n\n return text\n .replace(/\\\\r\\\\n/g, \"\\r\\n\")\n .replace(/\\\\n/g, \"\\n\");\n}\n\nfunction remapDocumentationParts(parts) {\n return parts?.map((part) => ({\n ...part,\n text: normalizeEscapedNewlines(remapVirtualText(part.text)),\n }));\n}\n\nfunction getHoverCodeLanguage(languageId) {\n if (languageId === \"litsx\" || languageId === \"tsx\") {\n return \"tsx\";\n }\n\n if (languageId === \"litsx-jsx\" || languageId === \"jsx\") {\n return \"jsx\";\n }\n\n return \"ts\";\n}\n\nfunction createHoverResult({ start, length, code, documentation, languageId }) {\n const normalizedDocumentation = normalizeEscapedNewlines(documentation ?? \"\");\n const markdownParts = [\n `\\`\\`\\`${getHoverCodeLanguage(languageId)}`,\n code || \"symbol\",\n \"```\",\n ];\n\n if (normalizedDocumentation) {\n markdownParts.push(\"\", normalizedDocumentation);\n }\n\n return {\n start,\n length,\n code: code || \"symbol\",\n documentation: normalizedDocumentation,\n markdown: markdownParts.join(\"\\n\"),\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 remapCompletionTextChanges(textChanges, targetFileName, virtualization) {\n if (!Array.isArray(textChanges)) {\n return [];\n }\n\n return textChanges.map((change) => {\n const span = virtualization\n ? remapToolingTextSpanToOriginal(change.span, virtualization)\n : change.span;\n\n return {\n fileName: targetFileName,\n start: span.start,\n length: span.length,\n newText: change.newText,\n };\n });\n}\n\nfunction startsAtAuthoredSyntax(sourceText, start) {\n if (typeof sourceText !== \"string\" || typeof start !== \"number\" || !(start >= 0 && start < sourceText.length)) {\n return false;\n }\n\n return \"@.?\".includes(sourceText[start]);\n}\n\nfunction getBindingHoverInfo(attributeInfo) {\n if (!attributeInfo) {\n return null;\n }\n\n const bindingInfo = BINDING_HOVER_BY_PREFIX[attributeInfo.prefix] ?? {\n kindLabel: \"binding\",\n detail: \"LitSX binding\",\n };\n\n return {\n name: attributeInfo.name,\n start: attributeInfo.start,\n length: attributeInfo.length,\n kindLabel: bindingInfo.kindLabel,\n detail: `${bindingInfo.detail} for <${attributeInfo.tagName}>.`,\n };\n}\n\nfunction getCompletionKindToken(name) {\n return name.startsWith(\"@\") ? \"Event\" : \"Property\";\n}\n\nfunction getContextualCompletionEdit(name, context) {\n const replacementStart = (context?.start ?? 0) + 1;\n const replacementLength = Math.max((context?.length ?? 1) - 1, 0);\n\n return {\n insertText: name.slice(1),\n filterText: name.slice(1),\n start: replacementStart,\n length: replacementLength,\n };\n}\n\nfunction getModuleExtension(ts, fileName) {\n if (fileName.endsWith(\".litsx.jsx\") || fileName.endsWith(\".jsx\")) {\n return ts.Extension.Jsx;\n }\n\n if (fileName.endsWith(\".litsx\") || fileName.endsWith(\".tsx\")) {\n return ts.Extension.Tsx;\n }\n\n if (fileName.endsWith(\".ts\")) {\n return ts.Extension.Ts;\n }\n\n return ts.Extension.Js;\n}\n\nfunction isPathLikeModuleName(moduleName) {\n return moduleName.startsWith(\"./\") || moduleName.startsWith(\"../\") || moduleName.startsWith(\"/\");\n}\n\nfunction getTransparentResolutionCandidates(modulePath) {\n const requestedExtension = SUPPORTED_SOURCE_EXTENSIONS.find((extension) => modulePath.endsWith(extension)) ?? null;\n\n if (requestedExtension) {\n return [\n modulePath,\n path.join(modulePath, `index${requestedExtension}`),\n ];\n }\n\n return [\n ...SUPPORTED_SOURCE_EXTENSIONS.map((extension) => `${modulePath}${extension}`),\n ...SUPPORTED_SOURCE_EXTENSIONS.map((extension) => path.join(modulePath, `index${extension}`)),\n ];\n}\n\nfunction createResolvedModule(ts, resolvedFileName) {\n return {\n resolvedFileName,\n extension: getModuleExtension(ts, resolvedFileName),\n isExternalLibraryImport: false,\n };\n}\n\nfunction findDeepestNodeAtPosition(sourceFile, position) {\n let bestNode = null;\n\n function visit(node) {\n if (position < node.pos || position >= node.end) {\n return;\n }\n\n bestNode = node;\n node.forEachChild(visit);\n }\n\n visit(sourceFile);\n return bestNode;\n}\n\nfunction getSourceFileScriptKind(ts, fileName, languageId) {\n if (fileName.endsWith(\".litsx.jsx\") || languageId === \"litsx-jsx\" || fileName.endsWith(\".jsx\")) {\n return ts.ScriptKind.JSX;\n }\n\n if (fileName.endsWith(\".litsx\") || languageId === \"litsx\" || fileName.endsWith(\".tsx\")) {\n return ts.ScriptKind.TSX;\n }\n\n if (fileName.endsWith(\".ts\")) {\n return ts.ScriptKind.TS;\n }\n\n return ts.ScriptKind.JS;\n}\n\nfunction isCustomElementsDefineCall(ts, node) {\n return ts.isCallExpression(node)\n && ts.isPropertyAccessExpression(node.expression)\n && ts.isIdentifier(node.expression.expression)\n && node.expression.expression.text === \"customElements\"\n && node.expression.name.text === \"define\";\n}\n\nfunction isLikelyLitsxComponentReference(ts, sourceFile, node) {\n if (!ts.isIdentifier(node) || !/^[A-Z]/.test(node.text)) {\n return false;\n }\n\n let matches = false;\n\n function visit(current) {\n if (matches) {\n return;\n }\n\n if (\n ts.isImportDeclaration(current)\n && ts.isStringLiteral(current.moduleSpecifier)\n && (current.moduleSpecifier.text.endsWith(\".litsx\") || current.moduleSpecifier.text.endsWith(\".litsx.jsx\"))\n ) {\n const bindings = current.importClause?.namedBindings;\n if (bindings && ts.isNamedImports(bindings)) {\n matches = bindings.elements.some((element) => element.name.text === node.text);\n }\n }\n\n if (\n ts.isVariableDeclaration(current)\n && ts.isIdentifier(current.name)\n && current.name.text === node.text\n && (ts.isArrowFunction(current.initializer) || ts.isFunctionExpression(current.initializer))\n ) {\n matches = true;\n }\n\n if (ts.isFunctionDeclaration(current) && current.name?.text === node.text) {\n matches = true;\n }\n\n if (!matches) {\n current.forEachChild(visit);\n }\n }\n\n sourceFile.forEachChild(visit);\n return matches;\n}\n\nfunction shouldSuppressCustomElementConstructorDiagnostic(ts, sourceFile, diagnostic) {\n if (diagnostic.code !== 2345 || typeof diagnostic.start !== \"number\") {\n return false;\n }\n\n const node = findDeepestNodeAtPosition(sourceFile, diagnostic.start);\n let current = node;\n\n while (current && !isCustomElementsDefineCall(ts, current)) {\n current = current.parent ?? null;\n }\n\n if (!current || !isCustomElementsDefineCall(ts, current)) {\n return false;\n }\n\n const candidate = current.arguments?.[1];\n if (!candidate || diagnostic.start < candidate.getStart(sourceFile) || diagnostic.start >= candidate.getEnd()) {\n return false;\n }\n\n return isLikelyLitsxComponentReference(ts, sourceFile, candidate)\n && String(typeof diagnostic.messageText === \"string\" ? diagnostic.messageText : diagnostic.messageText?.messageText ?? \"\")\n .includes(\"CustomElementConstructor\");\n}\n\nfunction getScopeCompletionPrefix(sourceText, position) {\n const match = /[A-Za-z0-9_$]*$/.exec(sourceText.slice(0, position));\n return match?.[0] ?? \"\";\n}\n\nfunction getJsxImportSourceExportEntries(service, ts, prefix, adaptKind, position) {\n if (!prefix) {\n return [];\n }\n\n const program = service.languageService.getProgram();\n const checker = program?.getTypeChecker();\n const jsxImportSource = program?.getCompilerOptions?.().jsxImportSource;\n\n if (!program || !checker || typeof jsxImportSource !== \"string\" || jsxImportSource.length === 0) {\n return [];\n }\n\n const moduleSourceFile = program.getSourceFiles().find((sourceFile) => (\n sourceFile.fileName.includes(`/node_modules/${jsxImportSource}/`)\n || sourceFile.fileName.includes(`/${jsxImportSource}/src/`)\n ));\n\n const moduleSymbol = moduleSourceFile?.symbol ?? null;\n if (!moduleSymbol) {\n return [];\n }\n\n const exportedSymbols = checker.getExportsOfModule(moduleSymbol);\n\n return exportedSymbols\n .filter((symbol) => {\n const name = symbol.getName?.();\n return typeof name === \"string\"\n && name.startsWith(prefix)\n && !isInternalCompletionName(name);\n })\n .map((symbol) => {\n const name = symbol.getName();\n return {\n label: name,\n kind: adaptKind(getSymbolCompletionKind(ts, symbol), {\n source: jsxImportSource,\n label: name,\n }),\n detail: \"export\",\n documentation: `From ${jsxImportSource}`,\n start: position - prefix.length,\n length: prefix.length,\n };\n });\n}\n\nfunction getSourceParserPlugins(fileName) {\n return /\\.(litsx|tsx|ts)$/.test(fileName) ? [\"typescript\"] : [];\n}\n\nfunction getImportedComponentReference(ts, sourceFile, tagName) {\n let reference = null;\n\n sourceFile.forEachChild((node) => {\n if (\n reference ||\n !ts.isImportDeclaration(node) ||\n !ts.isStringLiteral(node.moduleSpecifier)\n ) {\n return;\n }\n\n const bindings = node.importClause?.namedBindings;\n if (!bindings || !ts.isNamedImports(bindings)) {\n return;\n }\n\n for (const element of bindings.elements) {\n if (element.name.text !== tagName) {\n continue;\n }\n\n reference = {\n exportName: element.propertyName?.text ?? element.name.text,\n moduleName: node.moduleSpecifier.text,\n };\n return;\n }\n });\n\n return reference;\n}\n\nfunction getComponentEventCompletionEntries(service, ts, queryFileName, sourceText, position, adaptKind) {\n const context = inferLitsxAttributeCompletionContext(sourceText, position);\n if (!context || context.prefix !== \"@\" || !/^[A-Z]/.test(context.tagName)) {\n return [];\n }\n\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n if (!sourceFile) {\n return [];\n }\n\n const reference = getImportedComponentReference(ts, sourceFile, context.tagName);\n if (!reference) {\n return [];\n }\n\n const resolvedModule = service.resolveModuleName?.(reference.moduleName, queryFileName);\n const componentFileName = resolvedModule?.resolvedFileName;\n if (!componentFileName) {\n return [];\n }\n\n const componentSourceText = service.readSourceText?.(componentFileName);\n if (typeof componentSourceText !== \"string\") {\n return [];\n }\n\n const eventNames = inferLitsxComponentEventNames(componentSourceText, {\n plugins: getSourceParserPlugins(componentFileName),\n })[reference.exportName] ?? [];\n\n return eventNames\n .filter((name) => typeof name === \"string\" && name.startsWith(context.partialName))\n .map((name) => ({\n ...getContextualCompletionEdit(`@${name}`, context),\n label: `@${name}`,\n kind: adaptKind(\"Event\", {\n source: \"litsx-component-event\",\n label: `@${name}`,\n }),\n detail: `Emitted by <${context.tagName}>`,\n documentation: `LitSX custom event emitted by <${context.tagName}>.`,\n }));\n}\n\nfunction getComponentStaticPropCompletionEntries(service, ts, queryFileName, sourceText, position, adaptKind) {\n const markupContext = inferLitsxMarkupCompletionContext(sourceText, position);\n if (!markupContext || !/^[A-Z]/.test(markupContext.tagName)) {\n return [];\n }\n\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n if (!sourceFile) {\n return [];\n }\n\n const reference = getImportedComponentReference(ts, sourceFile, markupContext.tagName);\n if (!reference) {\n return [];\n }\n\n const resolvedModule = service.resolveModuleName?.(reference.moduleName, queryFileName);\n const componentFileName = resolvedModule?.resolvedFileName;\n if (!componentFileName) {\n return [];\n }\n\n const componentSourceText = service.readSourceText?.(componentFileName);\n if (typeof componentSourceText !== \"string\") {\n return [];\n }\n\n const propNames = inferLitsxComponentPropNames(componentSourceText, {\n plugins: getSourceParserPlugins(componentFileName),\n })[reference.exportName] ?? [];\n\n return propNames\n .filter((name) => typeof name === \"string\" && name.startsWith(markupContext.partialName))\n .map((name) => ({\n label: name,\n kind: adaptKind(\"Property\", {\n source: \"litsx-component-static-prop\",\n label: name,\n }),\n detail: `Static property of <${markupContext.tagName}>`,\n documentation: `LitSX static property exposed by <${markupContext.tagName}>.`,\n start: markupContext.start,\n length: markupContext.length,\n }));\n}\n\nfunction getCompletionEntryImportEdits(languageService, queryFileName, fileName, position, entry, virtualization) {\n if (typeof languageService.getCompletionEntryDetails !== \"function\" || !entry?.hasAction) {\n return [];\n }\n\n let details;\n try {\n details = languageService.getCompletionEntryDetails(\n queryFileName,\n position,\n entry.name,\n {},\n entry.source,\n {},\n entry.data,\n );\n } catch {\n return [];\n }\n\n const fileChanges = details?.codeActions\n ?.flatMap((action) => action.changes ?? [])\n ?.filter((change) => change.fileName === queryFileName || change.fileName === fileName) ?? [];\n\n return fileChanges.flatMap((change) => (\n remapCompletionTextChanges(change.textChanges, fileName, virtualization)\n ));\n}\n\nfunction isInternalCompletionName(name) {\n return typeof name === \"string\" && (\n name.startsWith(\"__litsx_\") ||\n name.startsWith(\"_$L\") ||\n name.startsWith(\"_currentTarget\") ||\n name.includes(\"$\")\n );\n}\n\nfunction isLikelyIntrinsicMarkupCompletionName(name) {\n if (\n typeof name !== \"string\" ||\n name.length === 0 ||\n isInternalCompletionName(name) ||\n name.startsWith(\"_\") ||\n /^[A-Z0-9_]+$/.test(name) ||\n /^[A-Z]/.test(name) ||\n /^on[a-z]/.test(name) ||\n /(Element|Elements|Node|Nodes)$/.test(name)\n ) {\n return false;\n }\n\n return /^[a-z][\\w-]*$/.test(name) || /^aria[A-Z]/.test(name);\n}\n\nfunction isLikelyComponentPropCompletionName(name) {\n return typeof name === \"string\"\n && name.length > 0\n && !isInternalCompletionName(name)\n && !name.startsWith(\"_\")\n && !/^[A-Z]/.test(name)\n && !name.includes(\"$\")\n && /^[a-z][\\w-]*$/.test(name);\n}\n\nfunction rankCompletionLabel(label, prefix) {\n const normalizedLabel = String(label ?? \"\").toLowerCase();\n const normalizedPrefix = prefix.toLowerCase();\n\n if (normalizedPrefix.length === 0) {\n return 3;\n }\n\n if (normalizedLabel === normalizedPrefix) {\n return 0;\n }\n\n if (normalizedLabel.startsWith(normalizedPrefix)) {\n return 1;\n }\n\n if (normalizedLabel.includes(normalizedPrefix)) {\n return 2;\n }\n\n return 3;\n}\n\nfunction compareCompletionEntries(left, right, prefix) {\n const leftLabel = String(left.label ?? \"\");\n const rightLabel = String(right.label ?? \"\");\n const leftRank = rankCompletionLabel(leftLabel, prefix);\n const rightRank = rankCompletionLabel(rightLabel, prefix);\n\n if (leftRank !== rightRank) {\n return leftRank - rightRank;\n }\n\n const leftIsLitsxApi = left.documentation === \"From @litsx/core\";\n const rightIsLitsxApi = right.documentation === \"From @litsx/core\";\n\n if (leftIsLitsxApi !== rightIsLitsxApi) {\n return leftIsLitsxApi ? -1 : 1;\n }\n\n if (prefix.toLowerCase().startsWith(\"use\")) {\n const leftStartsWithUse = leftLabel.startsWith(\"use\");\n const rightStartsWithUse = rightLabel.startsWith(\"use\");\n if (leftStartsWithUse !== rightStartsWithUse) {\n return leftStartsWithUse ? -1 : 1;\n }\n }\n\n return leftLabel.localeCompare(rightLabel);\n}\n\nfunction getSymbolCompletionKind(ts, symbol) {\n return SYMBOL_KIND_RULES.find(([, getMask]) => (symbol.flags & getMask(ts)) !== 0)?.[0] ?? \"Variable\";\n}\n\nfunction createLitsxEditorSession(options = {}) {\n const ts = options.typescript ?? defaultTs;\n const bundledLibDir = options.bundledLibDir ?? null;\n const trace = createDefaultLogger(options.logger);\n const projectServiceCache = new Map();\n\n function log(message) {\n if (!options.trace) {\n return;\n }\n trace(message);\n }\n\n function getDefaultLibFilePath(localTs, compilerOptions) {\n if (!bundledLibDir) {\n return localTs.getDefaultLibFilePath(compilerOptions);\n }\n\n const libFileName = localTs.getDefaultLibFileName(compilerOptions);\n const candidate = path.join(bundledLibDir, libFileName);\n return fs.existsSync(candidate) ? candidate : localTs.getDefaultLibFilePath(compilerOptions);\n }\n\n function getProjectKey(fileName) {\n const configPath =\n ts.findConfigFile(path.dirname(fileName), ts.sys.fileExists, \"tsconfig.json\") ??\n ts.findConfigFile(path.dirname(fileName), ts.sys.fileExists, \"jsconfig.json\");\n return configPath ? normalizeFileName(configPath) : `<standalone>:${normalizeFileName(fileName)}`;\n }\n\n function getQueryFileName(fileName, languageId) {\n return `${fileName}${QUERY_FILE_SUFFIX_BY_LANGUAGE_ID[languageId] ?? \"\"}`;\n }\n\n function getExtraFileExtensions(localTs) {\n return [\n {\n extension: \".litsx\",\n isMixedContent: false,\n scriptKind: localTs.ScriptKind.TSX,\n },\n {\n extension: \".litsx.jsx\",\n isMixedContent: false,\n scriptKind: localTs.ScriptKind.JSX,\n },\n ];\n }\n\n function getFileVersion(fileName) {\n try {\n const stats = fs.statSync(fileName);\n return `${stats.mtimeMs}:${stats.size}`;\n } catch {\n return \"0\";\n }\n }\n\n function readFileText(fileName, overlays) {\n const normalizedFileName = normalizeFileName(fileName);\n if (overlays.has(normalizedFileName)) {\n return overlays.get(normalizedFileName).text;\n }\n\n try {\n return fs.readFileSync(fileName, \"utf8\");\n } catch {\n return null;\n }\n }\n\n function getOrCreateProjectService(fileName, sourceText, languageId) {\n const projectKey = getProjectKey(fileName);\n const queryFileName = getQueryFileName(fileName, languageId);\n let service = projectServiceCache.get(projectKey);\n\n if (!service) {\n const configPath = projectKey.startsWith(\"<standalone>:\") ? null : projectKey;\n let compilerOptions;\n let rootNames;\n\n if (configPath) {\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile);\n const parsed = ts.parseJsonConfigFileContent(\n configFile.config,\n {\n ...ts.sys,\n onUnRecoverableConfigFileDiagnostic() {},\n },\n path.dirname(configPath),\n undefined,\n configPath,\n undefined,\n getExtraFileExtensions(ts),\n );\n\n compilerOptions = parsed.options;\n rootNames = [...parsed.fileNames];\n if (\n rootNames.some((entry) => entry.endsWith(\".litsx\") || entry.endsWith(\".litsx.jsx\")) ||\n queryFileName.endsWith(\".tsx\") ||\n queryFileName.endsWith(\".jsx\") ||\n fileName.endsWith(\".litsx\") ||\n fileName.endsWith(\".litsx.jsx\")\n ) {\n compilerOptions = {\n ...compilerOptions,\n allowNonTsExtensions: true,\n };\n }\n } else {\n compilerOptions = {\n target: ts.ScriptTarget.ESNext,\n module: ts.ModuleKind.ESNext,\n jsx: ts.JsxEmit.Preserve,\n allowJs: true,\n checkJs: true,\n allowNonTsExtensions: true,\n types: [],\n };\n rootNames = [queryFileName];\n }\n\n if (!rootNames.includes(queryFileName)) {\n rootNames.push(queryFileName);\n }\n\n const overlays = new Map();\n const virtualizationCache = new Map();\n\n function fileExistsForResolution(nextFileName) {\n return overlays.has(normalizeFileName(nextFileName)) || ts.sys.fileExists(nextFileName);\n }\n\n function getScriptKind(nextFileName) {\n const extension = /\\.((?:litsx\\.jsx)|litsx|tsx|jsx|ts|js)$/.exec(nextFileName)?.[1];\n const scriptKindName = extension ? SCRIPT_KIND_BY_EXTENSION[extension] : undefined;\n return scriptKindName ? ts.ScriptKind[scriptKindName] : undefined;\n }\n\n function getSnapshotRecord(nextFileName) {\n const normalizedFileName = normalizeFileName(nextFileName);\n const overlay = overlays.get(normalizedFileName);\n const version = overlay?.version ?? getFileVersion(nextFileName);\n const cached = virtualizationCache.get(normalizedFileName);\n\n if (cached?.version === version) {\n return cached;\n }\n\n const nextSourceText = readFileText(nextFileName, overlays);\n if (typeof nextSourceText !== \"string\") {\n virtualizationCache.delete(normalizedFileName);\n return null;\n }\n\n let virtualization = null;\n let toolingText = nextSourceText;\n\n if (isRelevantFile(nextFileName) && looksLikeLitsxJsx(nextSourceText)) {\n virtualization = createToolingVirtualLitsxSource(nextSourceText, {\n plugins: getPluginsForFile(nextFileName, languageId),\n });\n toolingText = virtualization.code;\n }\n\n const record = {\n version,\n sourceText: nextSourceText,\n toolingText,\n virtualization,\n snapshot: ts.ScriptSnapshot.fromString(toolingText),\n };\n virtualizationCache.set(normalizedFileName, record);\n return record;\n }\n\n function resolveTransparentModuleName(moduleName, containingFile) {\n if (!isPathLikeModuleName(moduleName)) {\n return null;\n }\n\n const candidateBase = path.resolve(path.dirname(containingFile), moduleName);\n for (const candidate of getTransparentResolutionCandidates(candidateBase)) {\n if (fileExistsForResolution(candidate)) {\n return createResolvedModule(ts, candidate);\n }\n }\n\n return null;\n }\n\n function resolveModule(moduleName, containingFile) {\n const resolved = ts.resolveModuleName(\n moduleName,\n containingFile,\n compilerOptions,\n {\n fileExists: fileExistsForResolution,\n readFile(nextFileName) {\n return readFileText(nextFileName, overlays);\n },\n directoryExists(nextDirName) {\n return ts.sys.directoryExists?.(nextDirName) ?? true;\n },\n getDirectories(nextDirName) {\n return ts.sys.getDirectories?.(nextDirName) ?? [];\n },\n realpath(nextFileName) {\n return ts.sys.realpath?.(nextFileName) ?? nextFileName;\n },\n },\n ).resolvedModule;\n\n return resolved ?? resolveTransparentModuleName(moduleName, containingFile);\n }\n\n const host = {\n extraFileExtensions: getExtraFileExtensions(ts),\n getCompilationSettings() {\n return compilerOptions;\n },\n getCurrentDirectory() {\n return configPath ? path.dirname(configPath) : path.dirname(fileName);\n },\n getDefaultLibFileName(optionsForLib) {\n return getDefaultLibFilePath(ts, optionsForLib);\n },\n getScriptFileNames() {\n return rootNames;\n },\n getScriptVersion(nextFileName) {\n const normalizedFileName = normalizeFileName(nextFileName);\n const overlay = overlays.get(normalizedFileName);\n return String(overlay?.version ?? getFileVersion(nextFileName));\n },\n getScriptKind,\n getScriptSnapshot(nextFileName) {\n return getSnapshotRecord(nextFileName)?.snapshot;\n },\n fileExists(nextFileName) {\n return fileExistsForResolution(nextFileName);\n },\n readFile(nextFileName) {\n return readFileText(nextFileName, overlays);\n },\n resolveModuleNames(moduleNames, containingFile) {\n return moduleNames.map((moduleName) => resolveModule(moduleName, containingFile));\n },\n resolveModuleNameLiterals(moduleLiterals, containingFile) {\n return moduleLiterals.map(({ text }) => ({ resolvedModule: resolveModule(text, containingFile) }));\n },\n readDirectory(...args) {\n return ts.sys.readDirectory(...args);\n },\n directoryExists(nextDirName) {\n return ts.sys.directoryExists?.(nextDirName) ?? true;\n },\n getDirectories(nextDirName) {\n return ts.sys.getDirectories?.(nextDirName) ?? [];\n },\n getNewLine() {\n return ts.sys.newLine;\n },\n useCaseSensitiveFileNames() {\n return ts.sys.useCaseSensitiveFileNames;\n },\n getCanonicalFileName(nextFileName) {\n return ts.sys.useCaseSensitiveFileNames\n ? nextFileName\n : nextFileName.toLowerCase();\n },\n };\n\n service = {\n rootNames,\n overlays,\n languageService: ts.createLanguageService(host, ts.createDocumentRegistry()),\n readSourceText(nextFileName) {\n return readFileText(nextFileName, overlays);\n },\n resolveModuleName(moduleName, containingFile) {\n return resolveModule(moduleName, containingFile);\n },\n getVirtualization(nextFileName) {\n return getSnapshotRecord(nextFileName)?.virtualization ?? null;\n },\n setOverlay(nextFileName, nextSourceText) {\n const normalizedFileName = normalizeFileName(nextFileName);\n const previousVersion = overlays.get(normalizedFileName)?.version ?? 0;\n overlays.set(normalizedFileName, {\n text: nextSourceText,\n version: previousVersion + 1,\n });\n if (!rootNames.includes(nextFileName)) {\n rootNames.push(nextFileName);\n }\n },\n };\n\n projectServiceCache.set(projectKey, service);\n }\n\n service.setOverlay(queryFileName, sourceText);\n service.queryFileName = queryFileName;\n return service;\n }\n\n function getDiagnostics(fileName, sourceText, languageId) {\n const service = getOrCreateProjectService(fileName, sourceText, languageId);\n const queryFileName = service.queryFileName ?? fileName;\n const virtualization = service.getVirtualization(queryFileName);\n const authoredSourceFile = ts.createSourceFile(\n fileName,\n sourceText,\n ts.ScriptTarget.Latest,\n true,\n getSourceFileScriptKind(ts, fileName, languageId),\n );\n const diagnostics = [\n ...service.languageService.getSyntacticDiagnostics(queryFileName),\n ...service.languageService.getSemanticDiagnostics(queryFileName),\n ];\n const remappedDiagnostics = diagnostics\n .map((diagnostic) => {\n if (!virtualization || typeof diagnostic.start !== \"number\") {\n return {\n ...diagnostic,\n messageText: remapMessageText(diagnostic.messageText),\n };\n }\n\n const remappedSpan = remapToolingTextSpanToOriginal(\n {\n start: diagnostic.start,\n length: diagnostic.length ?? 0,\n },\n virtualization,\n );\n\n return {\n ...diagnostic,\n start: remappedSpan.start,\n length: remappedSpan.length,\n messageText: remapMessageText(diagnostic.messageText),\n };\n })\n .filter((diagnostic) => (\n !String(diagnostic.messageText ?? \"\").includes(\"__litsx_\") &&\n !startsAtAuthoredSyntax(sourceText, diagnostic.start) &&\n !shouldSuppressCustomElementConstructorDiagnostic(ts, authoredSourceFile, diagnostic)\n ));\n\n const authoredDiagnostics = collectLitsxAuthoredDiagnostics(sourceText, ts, {\n plugins: getParserPlugins(languageId),\n });\n const seen = new Set(\n remappedDiagnostics.map((diagnostic) => `${diagnostic.code}:${diagnostic.start}:${diagnostic.length}`),\n );\n\n return [\n ...remappedDiagnostics,\n ...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\n function getHover(fileName, sourceText, languageId, position) {\n const service = getOrCreateProjectService(fileName, sourceText, languageId);\n const queryFileName = service.queryFileName ?? fileName;\n const virtualization = service.getVirtualization(queryFileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const info = service.languageService.getQuickInfoAtPosition(queryFileName, mappedPosition);\n\n const hoistInfo = inferLitsxStaticHoistInfoAtPosition(sourceText, position);\n if (hoistInfo) {\n return createHoverResult({\n start: hoistInfo.start,\n length: hoistInfo.length,\n code: `${hoistInfo.name}(...): static hoist`,\n documentation: hoistInfo.documentation,\n languageId,\n });\n }\n\n if (!info) {\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n const checker = program?.getTypeChecker();\n if (!program || !sourceFile || !checker) {\n const bindingHoverInfo = getBindingHoverInfo(\n inferLitsxAttributeInfoAtPosition(sourceText, position),\n );\n return bindingHoverInfo\n ? createHoverResult({\n start: bindingHoverInfo.start,\n length: bindingHoverInfo.length,\n code: `${bindingHoverInfo.name}: ${bindingHoverInfo.kindLabel}`,\n documentation: bindingHoverInfo.detail,\n languageId,\n })\n : null;\n }\n\n let node = findDeepestNodeAtPosition(sourceFile, mappedPosition);\n while (node) {\n const symbol = checker.getSymbolAtLocation(node) ?? null;\n const type = checker.getTypeAtLocation(node) ?? null;\n if (!type) {\n node = node.parent ?? null;\n continue;\n }\n\n const remappedNodeSpan = virtualization\n ? remapToolingTextSpanToOriginal(\n {\n start: node.getStart(sourceFile),\n length: node.getWidth(sourceFile),\n },\n virtualization,\n )\n : {\n start: position,\n length: 0,\n };\n\n return createHoverResult({\n start: remappedNodeSpan.start,\n length: remappedNodeSpan.length,\n code: `${symbol?.getName?.() ?? node.getText(sourceFile)}: ${checker.typeToString(type)}`,\n documentation: symbol\n ? normalizeEscapedNewlines(ts.displayPartsToString(symbol.getDocumentationComment(checker)))\n : \"\",\n languageId,\n });\n }\n\n const bindingHoverInfo = getBindingHoverInfo(\n inferLitsxAttributeInfoAtPosition(sourceText, position),\n );\n return bindingHoverInfo\n ? createHoverResult({\n start: bindingHoverInfo.start,\n length: bindingHoverInfo.length,\n code: `${bindingHoverInfo.name}: ${bindingHoverInfo.kindLabel}`,\n documentation: bindingHoverInfo.detail,\n languageId,\n })\n : null;\n }\n\n const remappedSpan = virtualization\n ? remapToolingTextSpanToOriginal(info.textSpan, virtualization)\n : info.textSpan;\n const displayText = (remapDisplayParts(info.displayParts) ?? [])\n .map((entry) => entry.text)\n .join(\"\");\n const documentation = (remapDocumentationParts(info.documentation) ?? [])\n .map((entry) => entry.text)\n .join(\"\");\n\n return createHoverResult({\n start: remappedSpan.start,\n length: remappedSpan.length,\n code: displayText || \"symbol\",\n documentation,\n languageId,\n });\n }\n\n function getCompletions(fileName, sourceText, languageId, position, completionKindAdapter) {\n const adaptKind = createCompletionKindAdapter(completionKindAdapter);\n const service = getOrCreateProjectService(fileName, sourceText, languageId);\n const queryFileName = service.queryFileName ?? fileName;\n const virtualization = service.getVirtualization(queryFileName);\n const mappedPosition = virtualization\n ? mapOriginalPositionToToolingVirtual(position, virtualization)\n : position;\n const completions = service.languageService.getCompletionsAtPosition(queryFileName, mappedPosition, {\n includeCompletionsForModuleExports: true,\n includeCompletionsWithInsertText: true,\n });\n const rawCompletionEntriesByName = new Map(\n (completions?.entries ?? []).map((entry) => [entry.name, entry]),\n );\n\n const context = inferLitsxAttributeCompletionContext(sourceText, position);\n const markupContext = inferLitsxMarkupCompletionContext(sourceText, position);\n const isComponentTag = /^[A-Z]/.test(markupContext?.tagName ?? \"\");\n const contextualEntries = context\n ? getLitsxAttributeCompletionNames(context).map((name) => ({\n ...getContextualCompletionEdit(name, context),\n label: name,\n kind: adaptKind(getCompletionKindToken(name), {\n source: \"litsx\",\n label: name,\n }),\n detail: \"LitSX binding\",\n documentation: `LitSX binding for <${context.tagName}>.`,\n }))\n : [];\n const componentEventEntries = getComponentEventCompletionEntries(\n service,\n ts,\n queryFileName,\n sourceText,\n position,\n adaptKind,\n ).filter((entry) => !contextualEntries.some((contextualEntry) => contextualEntry.label === entry.label));\n const componentStaticPropEntries = getComponentStaticPropCompletionEntries(\n service,\n ts,\n queryFileName,\n sourceText,\n position,\n adaptKind,\n );\n const markupEntries = markupContext && !isComponentTag\n ? getLitsxMarkupCompletionNames(markupContext).map((name) => ({\n label: name,\n kind: adaptKind(\n name.startsWith(\"@\")\n ? \"Event\"\n : name.startsWith(\".\") || name.startsWith(\"?\")\n ? \"Property\"\n : \"Property\",\n {\n source: \"litsx-markup\",\n label: name,\n },\n ),\n detail: name.startsWith(\"@\")\n ? \"LitSX event binding\"\n : name.startsWith(\".\")\n ? \"LitSX property binding\"\n : name.startsWith(\"?\")\n ? \"LitSX boolean attribute binding\"\n : \"LitSX markup attribute\",\n documentation: name.startsWith(\"@\") || name.startsWith(\".\") || name.startsWith(\"?\")\n ? `LitSX binding for <${markupContext.tagName}>.`\n : `LitSX-authored attribute for <${markupContext.tagName}>.`,\n start: markupContext.start,\n length: markupContext.length,\n }))\n : [];\n const scopePrefix = getScopeCompletionPrefix(sourceText, position);\n const jsxImportSourceEntries = markupContext\n ? []\n : getJsxImportSourceExportEntries(service, ts, scopePrefix, adaptKind, position).map((entry) => ({\n ...entry,\n additionalTextEdits: getCompletionEntryImportEdits(\n service.languageService,\n queryFileName,\n fileName,\n mappedPosition,\n rawCompletionEntriesByName.get(entry.label),\n virtualization,\n ),\n }));\n\n const mergedEntries = [\n ...contextualEntries,\n ...componentEventEntries,\n ...componentStaticPropEntries,\n ...markupEntries,\n ...jsxImportSourceEntries,\n ];\n const seen = new Set(mergedEntries.map((entry) => entry.label));\n\n for (const entry of completions?.entries ?? []) {\n if (\n decodeVirtualAttributeName(entry.name) ||\n seen.has(entry.name) ||\n isInternalCompletionName(entry.name)\n ) {\n continue;\n }\n\n if (markupContext && !isComponentTag && !isLikelyIntrinsicMarkupCompletionName(entry.name)) {\n continue;\n }\n\n if (markupContext && isComponentTag && !isLikelyComponentPropCompletionName(entry.name)) {\n continue;\n }\n\n seen.add(entry.name);\n\n const remappedSpan = virtualization && entry.replacementSpan\n ? remapToolingTextSpanToOriginal(entry.replacementSpan, virtualization)\n : entry.replacementSpan ?? { start: position, length: 0 };\n\n const kindToken = COMPLETION_KIND_BY_TS_KIND[entry.kind] ?? \"Text\";\n mergedEntries.push({\n label: entry.name,\n kind: adaptKind(kindToken, {\n source: \"typescript\",\n label: entry.name,\n tsKind: entry.kind,\n kindModifiers: entry.kindModifiers,\n }),\n detail: entry.kindModifiers || entry.kind,\n documentation: entry.source ? `From ${entry.source}` : \"TypeScript completion\",\n start: remappedSpan.start,\n length: remappedSpan.length,\n additionalTextEdits: getCompletionEntryImportEdits(\n service.languageService,\n queryFileName,\n fileName,\n mappedPosition,\n entry,\n virtualization,\n ),\n });\n }\n\n if (mergedEntries.length === (contextualEntries.length + componentEventEntries.length + componentStaticPropEntries.length)) {\n const program = service.languageService.getProgram();\n const sourceFile = program?.getSourceFile(queryFileName);\n const checker = program?.getTypeChecker();\n const node = sourceFile ? findDeepestNodeAtPosition(sourceFile, mappedPosition) : null;\n const prefix = scopePrefix;\n\n if (node && checker && !markupContext) {\n const scopeSymbols = checker.getSymbolsInScope(\n node,\n ts.SymbolFlags.Value | ts.SymbolFlags.Type | ts.SymbolFlags.Namespace | ts.SymbolFlags.Alias,\n );\n\n for (const symbol of scopeSymbols) {\n const name = symbol.getName?.();\n if (!name || isInternalCompletionName(name) || seen.has(name) || !name.startsWith(prefix)) {\n continue;\n }\n\n seen.add(name);\n const kindToken = getSymbolCompletionKind(ts, symbol);\n mergedEntries.push({\n label: name,\n kind: adaptKind(kindToken, {\n source: \"typescript-scope\",\n label: name,\n }),\n detail: \"TypeScript symbol\",\n documentation: \"Project-backed TypeScript completion\",\n start: position - prefix.length,\n length: prefix.length,\n });\n }\n }\n }\n\n if (markupContext) {\n return mergedEntries;\n }\n\n return mergedEntries.sort((left, right) => (\n compareCompletionEntries(left, right, scopePrefix)\n ));\n }\n\n log(\"LitSX editor session initialized\");\n\n return {\n typescript: ts,\n bundledLibDir,\n getDiagnostics,\n getHover,\n getCompletions,\n clear() {\n projectServiceCache.clear();\n },\n };\n}\n\nexport {\n createLitsxEditorSession,\n};\n"],"names":["remapVirtualText","virtualization","remapToolingTextSpanToOriginal","inferLitsxAttributeCompletionContext","inferLitsxComponentEventNames","inferLitsxMarkupCompletionContext","inferLitsxComponentPropNames","ts","defaultTs","looksLikeLitsxJsx","createToolingVirtualLitsxSource","collectLitsxAuthoredDiagnostics","mapOriginalPositionToToolingVirtual","inferLitsxStaticHoistInfoAtPosition","inferLitsxAttributeInfoAtPosition","getLitsxAttributeCompletionNames","getLitsxMarkupCompletionNames","decodeVirtualAttributeName"],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -51,6 +51,23 @@ function remapDisplayParts(parts) {
|
|
|
51
51
|
}));
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
function normalizeEscapedNewlines(text) {
|
|
55
|
+
if (typeof text !== "string" || !text.includes("\\")) {
|
|
56
|
+
return text;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return text
|
|
60
|
+
.replace(/\\r\\n/g, "\r\n")
|
|
61
|
+
.replace(/\\n/g, "\n");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function remapDocumentationParts(parts) {
|
|
65
|
+
return parts?.map((part) => ({
|
|
66
|
+
...part,
|
|
67
|
+
text: normalizeEscapedNewlines(authoredSemantics.remapVirtualText(part.text)),
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
|
|
54
71
|
function remapMessageText(messageText) {
|
|
55
72
|
if (typeof messageText === "string") {
|
|
56
73
|
return authoredSemantics.remapVirtualText(messageText);
|
|
@@ -437,7 +454,7 @@ function wrapQuickInfo(method, getVirtualization) {
|
|
|
437
454
|
...info,
|
|
438
455
|
textSpan: virtualization.remapToolingTextSpanToOriginal(info.textSpan, virtualization$1),
|
|
439
456
|
displayParts: remappedDisplayParts,
|
|
440
|
-
documentation:
|
|
457
|
+
documentation: remapDocumentationParts(info.documentation),
|
|
441
458
|
};
|
|
442
459
|
};
|
|
443
460
|
}
|
|
@@ -588,7 +605,7 @@ function wrapCompletionEntryDetails(method, getVirtualization) {
|
|
|
588
605
|
return {
|
|
589
606
|
...details,
|
|
590
607
|
displayParts: remapDisplayParts(details.displayParts),
|
|
591
|
-
documentation:
|
|
608
|
+
documentation: remapDocumentationParts(details.documentation),
|
|
592
609
|
};
|
|
593
610
|
};
|
|
594
611
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +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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"}
|
|
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 normalizeEscapedNewlines(text) {\n if (typeof text !== \"string\" || !text.includes(\"\\\\\")) {\n return text;\n }\n\n return text\n .replace(/\\\\r\\\\n/g, \"\\r\\n\")\n .replace(/\\\\n/g, \"\\n\");\n}\n\nfunction remapDocumentationParts(parts) {\n return parts?.map((part) => ({\n ...part,\n text: normalizeEscapedNewlines(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: remapDocumentationParts(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: remapDocumentationParts(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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"}
|
package/package.json
CHANGED
package/src/editor-session.js
CHANGED
|
@@ -141,6 +141,56 @@ function remapDisplayParts(parts) {
|
|
|
141
141
|
}));
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
+
function normalizeEscapedNewlines(text) {
|
|
145
|
+
if (typeof text !== "string" || !text.includes("\\")) {
|
|
146
|
+
return text;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return text
|
|
150
|
+
.replace(/\\r\\n/g, "\r\n")
|
|
151
|
+
.replace(/\\n/g, "\n");
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function remapDocumentationParts(parts) {
|
|
155
|
+
return parts?.map((part) => ({
|
|
156
|
+
...part,
|
|
157
|
+
text: normalizeEscapedNewlines(remapVirtualText(part.text)),
|
|
158
|
+
}));
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function getHoverCodeLanguage(languageId) {
|
|
162
|
+
if (languageId === "litsx" || languageId === "tsx") {
|
|
163
|
+
return "tsx";
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (languageId === "litsx-jsx" || languageId === "jsx") {
|
|
167
|
+
return "jsx";
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return "ts";
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function createHoverResult({ start, length, code, documentation, languageId }) {
|
|
174
|
+
const normalizedDocumentation = normalizeEscapedNewlines(documentation ?? "");
|
|
175
|
+
const markdownParts = [
|
|
176
|
+
`\`\`\`${getHoverCodeLanguage(languageId)}`,
|
|
177
|
+
code || "symbol",
|
|
178
|
+
"```",
|
|
179
|
+
];
|
|
180
|
+
|
|
181
|
+
if (normalizedDocumentation) {
|
|
182
|
+
markdownParts.push("", normalizedDocumentation);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return {
|
|
186
|
+
start,
|
|
187
|
+
length,
|
|
188
|
+
code: code || "symbol",
|
|
189
|
+
documentation: normalizedDocumentation,
|
|
190
|
+
markdown: markdownParts.join("\n"),
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
|
|
144
194
|
function remapMessageText(messageText) {
|
|
145
195
|
if (typeof messageText === "string") {
|
|
146
196
|
return remapVirtualText(messageText);
|
|
@@ -1061,12 +1111,13 @@ function createLitsxEditorSession(options = {}) {
|
|
|
1061
1111
|
|
|
1062
1112
|
const hoistInfo = inferLitsxStaticHoistInfoAtPosition(sourceText, position);
|
|
1063
1113
|
if (hoistInfo) {
|
|
1064
|
-
return {
|
|
1114
|
+
return createHoverResult({
|
|
1065
1115
|
start: hoistInfo.start,
|
|
1066
1116
|
length: hoistInfo.length,
|
|
1067
1117
|
code: `${hoistInfo.name}(...): static hoist`,
|
|
1068
1118
|
documentation: hoistInfo.documentation,
|
|
1069
|
-
|
|
1119
|
+
languageId,
|
|
1120
|
+
});
|
|
1070
1121
|
}
|
|
1071
1122
|
|
|
1072
1123
|
if (!info) {
|
|
@@ -1078,12 +1129,13 @@ function createLitsxEditorSession(options = {}) {
|
|
|
1078
1129
|
inferLitsxAttributeInfoAtPosition(sourceText, position),
|
|
1079
1130
|
);
|
|
1080
1131
|
return bindingHoverInfo
|
|
1081
|
-
? {
|
|
1132
|
+
? createHoverResult({
|
|
1082
1133
|
start: bindingHoverInfo.start,
|
|
1083
1134
|
length: bindingHoverInfo.length,
|
|
1084
1135
|
code: `${bindingHoverInfo.name}: ${bindingHoverInfo.kindLabel}`,
|
|
1085
1136
|
documentation: bindingHoverInfo.detail,
|
|
1086
|
-
|
|
1137
|
+
languageId,
|
|
1138
|
+
})
|
|
1087
1139
|
: null;
|
|
1088
1140
|
}
|
|
1089
1141
|
|
|
@@ -1109,26 +1161,28 @@ function createLitsxEditorSession(options = {}) {
|
|
|
1109
1161
|
length: 0,
|
|
1110
1162
|
};
|
|
1111
1163
|
|
|
1112
|
-
return {
|
|
1164
|
+
return createHoverResult({
|
|
1113
1165
|
start: remappedNodeSpan.start,
|
|
1114
1166
|
length: remappedNodeSpan.length,
|
|
1115
1167
|
code: `${symbol?.getName?.() ?? node.getText(sourceFile)}: ${checker.typeToString(type)}`,
|
|
1116
1168
|
documentation: symbol
|
|
1117
|
-
? ts.displayPartsToString(symbol.getDocumentationComment(checker))
|
|
1169
|
+
? normalizeEscapedNewlines(ts.displayPartsToString(symbol.getDocumentationComment(checker)))
|
|
1118
1170
|
: "",
|
|
1119
|
-
|
|
1171
|
+
languageId,
|
|
1172
|
+
});
|
|
1120
1173
|
}
|
|
1121
1174
|
|
|
1122
1175
|
const bindingHoverInfo = getBindingHoverInfo(
|
|
1123
1176
|
inferLitsxAttributeInfoAtPosition(sourceText, position),
|
|
1124
1177
|
);
|
|
1125
1178
|
return bindingHoverInfo
|
|
1126
|
-
? {
|
|
1179
|
+
? createHoverResult({
|
|
1127
1180
|
start: bindingHoverInfo.start,
|
|
1128
1181
|
length: bindingHoverInfo.length,
|
|
1129
1182
|
code: `${bindingHoverInfo.name}: ${bindingHoverInfo.kindLabel}`,
|
|
1130
1183
|
documentation: bindingHoverInfo.detail,
|
|
1131
|
-
|
|
1184
|
+
languageId,
|
|
1185
|
+
})
|
|
1132
1186
|
: null;
|
|
1133
1187
|
}
|
|
1134
1188
|
|
|
@@ -1138,16 +1192,17 @@ function createLitsxEditorSession(options = {}) {
|
|
|
1138
1192
|
const displayText = (remapDisplayParts(info.displayParts) ?? [])
|
|
1139
1193
|
.map((entry) => entry.text)
|
|
1140
1194
|
.join("");
|
|
1141
|
-
const documentation = (
|
|
1195
|
+
const documentation = (remapDocumentationParts(info.documentation) ?? [])
|
|
1142
1196
|
.map((entry) => entry.text)
|
|
1143
1197
|
.join("");
|
|
1144
1198
|
|
|
1145
|
-
return {
|
|
1199
|
+
return createHoverResult({
|
|
1146
1200
|
start: remappedSpan.start,
|
|
1147
1201
|
length: remappedSpan.length,
|
|
1148
1202
|
code: displayText || "symbol",
|
|
1149
1203
|
documentation,
|
|
1150
|
-
|
|
1204
|
+
languageId,
|
|
1205
|
+
});
|
|
1151
1206
|
}
|
|
1152
1207
|
|
|
1153
1208
|
function getCompletions(fileName, sourceText, languageId, position, completionKindAdapter) {
|
package/src/index.js
CHANGED
|
@@ -56,6 +56,23 @@ function remapDisplayParts(parts) {
|
|
|
56
56
|
}));
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
function normalizeEscapedNewlines(text) {
|
|
60
|
+
if (typeof text !== "string" || !text.includes("\\")) {
|
|
61
|
+
return text;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return text
|
|
65
|
+
.replace(/\\r\\n/g, "\r\n")
|
|
66
|
+
.replace(/\\n/g, "\n");
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function remapDocumentationParts(parts) {
|
|
70
|
+
return parts?.map((part) => ({
|
|
71
|
+
...part,
|
|
72
|
+
text: normalizeEscapedNewlines(remapVirtualText(part.text)),
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
|
|
59
76
|
function remapMessageText(messageText) {
|
|
60
77
|
if (typeof messageText === "string") {
|
|
61
78
|
return remapVirtualText(messageText);
|
|
@@ -442,7 +459,7 @@ function wrapQuickInfo(method, getVirtualization) {
|
|
|
442
459
|
...info,
|
|
443
460
|
textSpan: remapToolingTextSpanToOriginal(info.textSpan, virtualization),
|
|
444
461
|
displayParts: remappedDisplayParts,
|
|
445
|
-
documentation:
|
|
462
|
+
documentation: remapDocumentationParts(info.documentation),
|
|
446
463
|
};
|
|
447
464
|
};
|
|
448
465
|
}
|
|
@@ -593,7 +610,7 @@ function wrapCompletionEntryDetails(method, getVirtualization) {
|
|
|
593
610
|
return {
|
|
594
611
|
...details,
|
|
595
612
|
displayParts: remapDisplayParts(details.displayParts),
|
|
596
|
-
documentation:
|
|
613
|
+
documentation: remapDocumentationParts(details.documentation),
|
|
597
614
|
};
|
|
598
615
|
};
|
|
599
616
|
}
|