@invinite-org/chartlang-language-service 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +182 -0
- package/LICENSE +21 -0
- package/README.md +45 -0
- package/dist/_lib/collectCompletions.d.ts +13 -0
- package/dist/_lib/collectCompletions.d.ts.map +1 -0
- package/dist/_lib/collectCompletions.js +51 -0
- package/dist/_lib/collectCompletions.js.map +1 -0
- package/dist/_lib/isInsideIntervalLiteral.d.ts +11 -0
- package/dist/_lib/isInsideIntervalLiteral.d.ts.map +1 -0
- package/dist/_lib/isInsideIntervalLiteral.js +58 -0
- package/dist/_lib/isInsideIntervalLiteral.js.map +1 -0
- package/dist/_lib/mapDiagnostic.d.ts +43 -0
- package/dist/_lib/mapDiagnostic.d.ts.map +1 -0
- package/dist/_lib/mapDiagnostic.js +60 -0
- package/dist/_lib/mapDiagnostic.js.map +1 -0
- package/dist/_lib/resolveFqnAtOffset.d.ts +23 -0
- package/dist/_lib/resolveFqnAtOffset.d.ts.map +1 -0
- package/dist/_lib/resolveFqnAtOffset.js +72 -0
- package/dist/_lib/resolveFqnAtOffset.js.map +1 -0
- package/dist/_lib/toHoverDoc.d.ts +20 -0
- package/dist/_lib/toHoverDoc.d.ts.map +1 -0
- package/dist/_lib/toHoverDoc.js +27 -0
- package/dist/_lib/toHoverDoc.js.map +1 -0
- package/dist/createLanguageService.d.ts +13 -0
- package/dist/createLanguageService.d.ts.map +1 -0
- package/dist/createLanguageService.js +233 -0
- package/dist/createLanguageService.js.map +1 -0
- package/dist/hoverRegistry.generated.d.ts +34 -0
- package/dist/hoverRegistry.generated.d.ts.map +1 -0
- package/dist/hoverRegistry.generated.js +7546 -0
- package/dist/hoverRegistry.generated.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +168 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Copyright (c) 2026 Invinite. Licensed under the MIT License.
|
|
2
|
+
// See the LICENSE file in the repo root for full license text.
|
|
3
|
+
/**
|
|
4
|
+
* Convert a generated hover-registry entry into the public hover payload.
|
|
5
|
+
*
|
|
6
|
+
* @since 0.4
|
|
7
|
+
* @stable
|
|
8
|
+
* @example
|
|
9
|
+
* const doc = toHoverDoc({
|
|
10
|
+
* fqn: "ta.ema",
|
|
11
|
+
* kind: "function",
|
|
12
|
+
* title: "ta.ema(source, length)",
|
|
13
|
+
* summary: "EMA.",
|
|
14
|
+
* since: "0.1",
|
|
15
|
+
* stability: "stable",
|
|
16
|
+
* });
|
|
17
|
+
* void doc;
|
|
18
|
+
*/
|
|
19
|
+
export function toHoverDoc(entry) {
|
|
20
|
+
return Object.freeze({
|
|
21
|
+
title: entry.title,
|
|
22
|
+
summary: entry.summary,
|
|
23
|
+
...(entry.paramTable === undefined ? {} : { paramTable: entry.paramTable }),
|
|
24
|
+
...(entry.examples === undefined ? {} : { examples: entry.examples }),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=toHoverDoc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toHoverDoc.js","sourceRoot":"","sources":["../../src/_lib/toHoverDoc.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAK/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CAAC,KAAyB;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;KACxE,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ChartlangLanguageService, LanguageServiceOptions } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create a headless chartlang language service.
|
|
4
|
+
*
|
|
5
|
+
* @since 0.4
|
|
6
|
+
* @stable
|
|
7
|
+
* @example
|
|
8
|
+
* const service = createLanguageService();
|
|
9
|
+
* const hovers = service.getCompletions("", 0);
|
|
10
|
+
* void hovers;
|
|
11
|
+
*/
|
|
12
|
+
export declare function createLanguageService(opts?: LanguageServiceOptions): ChartlangLanguageService;
|
|
13
|
+
//# sourceMappingURL=createLanguageService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLanguageService.d.ts","sourceRoot":"","sources":["../src/createLanguageService.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACR,wBAAwB,EAIxB,sBAAsB,EAGzB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,sBAA2B,GAAG,wBAAwB,CA6EjG"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
// Copyright (c) 2026 Invinite. Licensed under the MIT License.
|
|
2
|
+
// See the LICENSE file in the repo root for full license text.
|
|
3
|
+
import { CompileError, compile } from "@invinite-org/chartlang-compiler";
|
|
4
|
+
import ts from "typescript";
|
|
5
|
+
import { collectCompletions } from "./_lib/collectCompletions.js";
|
|
6
|
+
import { isInsideIntervalLiteral } from "./_lib/isInsideIntervalLiteral.js";
|
|
7
|
+
import { makeDiagnostic, mapDiagnostic } from "./_lib/mapDiagnostic.js";
|
|
8
|
+
import { findTokenAtOffset, resolveFqnAtOffset } from "./_lib/resolveFqnAtOffset.js";
|
|
9
|
+
import { toHoverDoc } from "./_lib/toHoverDoc.js";
|
|
10
|
+
import { HOVER_REGISTRY } from "./hoverRegistry.generated.js";
|
|
11
|
+
/**
|
|
12
|
+
* Create a headless chartlang language service.
|
|
13
|
+
*
|
|
14
|
+
* @since 0.4
|
|
15
|
+
* @stable
|
|
16
|
+
* @example
|
|
17
|
+
* const service = createLanguageService();
|
|
18
|
+
* const hovers = service.getCompletions("", 0);
|
|
19
|
+
* void hovers;
|
|
20
|
+
*/
|
|
21
|
+
export function createLanguageService(opts = {}) {
|
|
22
|
+
const capabilities = opts.targetCapabilities;
|
|
23
|
+
return Object.freeze({
|
|
24
|
+
async compileToDiagnostics(source) {
|
|
25
|
+
const diagnostics = [];
|
|
26
|
+
try {
|
|
27
|
+
await compile(source, { apiVersion: 1, sourcePath: "script.chart.ts" });
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
/* v8 ignore next 3 -- non-CompileError failures must propagate. */
|
|
31
|
+
if (err instanceof CompileError)
|
|
32
|
+
diagnostics.push(...err.diagnostics.map(mapDiagnostic));
|
|
33
|
+
else
|
|
34
|
+
throw err;
|
|
35
|
+
}
|
|
36
|
+
if (capabilities !== undefined) {
|
|
37
|
+
diagnostics.push(...collectCapabilityDiagnostics(source, capabilities));
|
|
38
|
+
}
|
|
39
|
+
return Object.freeze(diagnostics);
|
|
40
|
+
},
|
|
41
|
+
getHoverDoc(source, offset) {
|
|
42
|
+
const fqn = resolveFqnAtOffset(source, offset);
|
|
43
|
+
if (fqn === null)
|
|
44
|
+
return null;
|
|
45
|
+
const entry = HOVER_REGISTRY[fqn];
|
|
46
|
+
return entry === undefined ? null : toHoverDoc(entry);
|
|
47
|
+
},
|
|
48
|
+
getCompletions(source, offset) {
|
|
49
|
+
if (capabilities !== undefined && isInsideIntervalLiteral(source, offset)) {
|
|
50
|
+
return Object.freeze(capabilities.intervals.map((descriptor) => Object.freeze({
|
|
51
|
+
label: descriptor.value,
|
|
52
|
+
kind: "enumMember",
|
|
53
|
+
insertText: descriptor.value,
|
|
54
|
+
detail: descriptor.label,
|
|
55
|
+
doc: Object.freeze({
|
|
56
|
+
title: descriptor.value,
|
|
57
|
+
summary: `Group: ${descriptor.group}`,
|
|
58
|
+
}),
|
|
59
|
+
})));
|
|
60
|
+
}
|
|
61
|
+
return collectCompletions(source, offset, HOVER_REGISTRY);
|
|
62
|
+
},
|
|
63
|
+
getSignatureHelp(source, offset) {
|
|
64
|
+
const call = findContainingCall(source, offset);
|
|
65
|
+
if (call === null)
|
|
66
|
+
return null;
|
|
67
|
+
const entry = HOVER_REGISTRY[call.fqn];
|
|
68
|
+
if (entry === undefined || entry.paramTable === undefined)
|
|
69
|
+
return null;
|
|
70
|
+
return Object.freeze({
|
|
71
|
+
label: entry.title,
|
|
72
|
+
parameters: Object.freeze(entry.paramTable.map((param) => Object.freeze({ name: param.name, doc: param.doc }))),
|
|
73
|
+
activeParameter: call.activeParameter,
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
getDefinition(source, offset) {
|
|
77
|
+
const fqn = resolveFqnAtOffset(source, offset);
|
|
78
|
+
if (fqn === null || HOVER_REGISTRY[fqn] === undefined)
|
|
79
|
+
return null;
|
|
80
|
+
return Object.freeze({
|
|
81
|
+
file: "packages/core/dist/index.d.ts",
|
|
82
|
+
line: 1,
|
|
83
|
+
column: 1,
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
getAvailableIntervals() {
|
|
87
|
+
return capabilities?.intervals ?? [];
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function findContainingCall(source, offset) {
|
|
92
|
+
const sourceFile = ts.createSourceFile("script.chart.ts", source, ts.ScriptTarget.Latest, true);
|
|
93
|
+
const token = findTokenAtOffset(sourceFile, offset);
|
|
94
|
+
if (token === null)
|
|
95
|
+
return null;
|
|
96
|
+
let current = token;
|
|
97
|
+
while (current !== undefined) {
|
|
98
|
+
if (ts.isCallExpression(current)) {
|
|
99
|
+
const fqn = callExpressionName(current, sourceFile);
|
|
100
|
+
/* v8 ignore next -- containing call expressions always have a syntactic name here. */
|
|
101
|
+
if (fqn === null)
|
|
102
|
+
return null;
|
|
103
|
+
return Object.freeze({
|
|
104
|
+
fqn,
|
|
105
|
+
activeParameter: activeParameter(current, sourceFile, offset),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
current = current.parent;
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
function activeParameter(call, sourceFile, offset) {
|
|
113
|
+
let count = 0;
|
|
114
|
+
const start = call.arguments.pos;
|
|
115
|
+
const end = Math.min(offset, call.arguments.end);
|
|
116
|
+
const text = sourceFile.text.slice(start, end);
|
|
117
|
+
for (const char of text) {
|
|
118
|
+
if (char === ",")
|
|
119
|
+
count += 1;
|
|
120
|
+
}
|
|
121
|
+
return count;
|
|
122
|
+
}
|
|
123
|
+
function callExpressionName(call, sourceFile) {
|
|
124
|
+
const expression = call.expression;
|
|
125
|
+
if (ts.isIdentifier(expression))
|
|
126
|
+
return expression.text;
|
|
127
|
+
/* v8 ignore next -- defensive for call expressions on non-property expressions. */
|
|
128
|
+
if (!ts.isPropertyAccessExpression(expression))
|
|
129
|
+
return null;
|
|
130
|
+
const parts = [];
|
|
131
|
+
let current = expression;
|
|
132
|
+
while (ts.isPropertyAccessExpression(current)) {
|
|
133
|
+
parts.unshift(current.name.text);
|
|
134
|
+
current = current.expression;
|
|
135
|
+
}
|
|
136
|
+
/* v8 ignore next -- defensive for nested call/element receivers. */
|
|
137
|
+
if (!ts.isIdentifier(current))
|
|
138
|
+
return null;
|
|
139
|
+
parts.unshift(current.getText(sourceFile));
|
|
140
|
+
return parts.join(".");
|
|
141
|
+
}
|
|
142
|
+
function collectCapabilityDiagnostics(source, capabilities) {
|
|
143
|
+
const sourceFile = ts.createSourceFile("script.chart.ts", source, ts.ScriptTarget.Latest, true);
|
|
144
|
+
const diagnostics = [];
|
|
145
|
+
const supportedIntervals = new Set(capabilities.intervals.map((interval) => interval.value));
|
|
146
|
+
const supportedPlots = capabilities.plots;
|
|
147
|
+
const visit = (node) => {
|
|
148
|
+
if (ts.isCallExpression(node)) {
|
|
149
|
+
const fqn = callExpressionName(node, sourceFile);
|
|
150
|
+
if (fqn === "request.security") {
|
|
151
|
+
const interval = literalIntervalFromRequest(node);
|
|
152
|
+
if (interval !== null && !supportedIntervals.has(interval)) {
|
|
153
|
+
diagnostics.push(diagnosticAt(sourceFile, node, {
|
|
154
|
+
severity: "hint",
|
|
155
|
+
code: "unsupported-interval",
|
|
156
|
+
message: `Target adapter does not declare interval "${interval}".`,
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
if (interval !== null && capabilities.multiTimeframe === false) {
|
|
160
|
+
diagnostics.push(diagnosticAt(sourceFile, node, {
|
|
161
|
+
severity: "hint",
|
|
162
|
+
code: "multi-timeframe-not-supported",
|
|
163
|
+
message: "Target adapter does not support secondary timeframes.",
|
|
164
|
+
}));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (fqn === "plot") {
|
|
168
|
+
const kind = literalPlotKind(node);
|
|
169
|
+
if (kind !== null && !supportedPlots.has(kind)) {
|
|
170
|
+
diagnostics.push(diagnosticAt(sourceFile, node, {
|
|
171
|
+
severity: "hint",
|
|
172
|
+
code: "unsupported-plot-kind",
|
|
173
|
+
message: `Target adapter does not declare plot kind "${kind}".`,
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
ts.forEachChild(node, visit);
|
|
179
|
+
};
|
|
180
|
+
visit(sourceFile);
|
|
181
|
+
return Object.freeze(diagnostics);
|
|
182
|
+
}
|
|
183
|
+
function literalIntervalFromRequest(call) {
|
|
184
|
+
const first = call.arguments[0];
|
|
185
|
+
/* v8 ignore next -- compiler rejects non-object request.security arguments. */
|
|
186
|
+
if (first === undefined || !ts.isObjectLiteralExpression(first))
|
|
187
|
+
return null;
|
|
188
|
+
for (const property of first.properties) {
|
|
189
|
+
if (!ts.isPropertyAssignment(property))
|
|
190
|
+
continue;
|
|
191
|
+
if (!propertyNameIs(property.name, "interval"))
|
|
192
|
+
continue;
|
|
193
|
+
/* v8 ignore next -- compiler emits request-security-interval-not-literal first. */
|
|
194
|
+
return ts.isStringLiteral(property.initializer) ? property.initializer.text : null;
|
|
195
|
+
}
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
function literalPlotKind(call) {
|
|
199
|
+
const opts = call.arguments[1];
|
|
200
|
+
if (opts === undefined || !ts.isObjectLiteralExpression(opts))
|
|
201
|
+
return null;
|
|
202
|
+
for (const property of opts.properties) {
|
|
203
|
+
if (!ts.isPropertyAssignment(property) || !propertyNameIs(property.name, "style"))
|
|
204
|
+
continue;
|
|
205
|
+
if (!ts.isObjectLiteralExpression(property.initializer))
|
|
206
|
+
return null;
|
|
207
|
+
for (const styleProperty of property.initializer.properties) {
|
|
208
|
+
if (!ts.isPropertyAssignment(styleProperty))
|
|
209
|
+
continue;
|
|
210
|
+
if (!propertyNameIs(styleProperty.name, "kind"))
|
|
211
|
+
continue;
|
|
212
|
+
return ts.isStringLiteral(styleProperty.initializer)
|
|
213
|
+
? styleProperty.initializer.text
|
|
214
|
+
: null;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
function propertyNameIs(name, expected) {
|
|
220
|
+
return (ts.isIdentifier(name) || ts.isStringLiteral(name)) && name.text === expected;
|
|
221
|
+
}
|
|
222
|
+
function diagnosticAt(sourceFile, node, args) {
|
|
223
|
+
const start = node.getStart(sourceFile);
|
|
224
|
+
const pos = sourceFile.getLineAndCharacterOfPosition(start);
|
|
225
|
+
return makeDiagnostic({
|
|
226
|
+
line: pos.line + 1,
|
|
227
|
+
column: pos.character + 1,
|
|
228
|
+
severity: args.severity,
|
|
229
|
+
code: args.code,
|
|
230
|
+
message: args.message,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=createLanguageService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createLanguageService.js","sourceRoot":"","sources":["../src/createLanguageService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated hover-registry entry extracted from core JSDoc.
|
|
3
|
+
*
|
|
4
|
+
* @since 0.4
|
|
5
|
+
* @stable
|
|
6
|
+
* @example
|
|
7
|
+
* const entry: HoverRegistryEntry = HOVER_REGISTRY["ta.ema"];
|
|
8
|
+
* void entry;
|
|
9
|
+
*/
|
|
10
|
+
export type HoverRegistryEntry = Readonly<{
|
|
11
|
+
fqn: string;
|
|
12
|
+
kind: "function" | "namespace" | "property" | "type";
|
|
13
|
+
title: string;
|
|
14
|
+
summary: string;
|
|
15
|
+
paramTable?: ReadonlyArray<{
|
|
16
|
+
name: string;
|
|
17
|
+
type: string;
|
|
18
|
+
doc: string;
|
|
19
|
+
}>;
|
|
20
|
+
examples?: ReadonlyArray<string>;
|
|
21
|
+
since: string;
|
|
22
|
+
stability: "stable";
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* Generated map of fully-qualified core symbols to hover docs.
|
|
26
|
+
*
|
|
27
|
+
* @since 0.4
|
|
28
|
+
* @stable
|
|
29
|
+
* @example
|
|
30
|
+
* const hover = HOVER_REGISTRY["ta.ema"];
|
|
31
|
+
* void hover;
|
|
32
|
+
*/
|
|
33
|
+
export declare const HOVER_REGISTRY: Readonly<Record<string, HoverRegistryEntry>>;
|
|
34
|
+
//# sourceMappingURL=hoverRegistry.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hoverRegistry.generated.d.ts","sourceRoot":"","sources":["../src/hoverRegistry.generated.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,CAAC;CACvB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AAEH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CA82OvE,CAAC"}
|