umple-lsp-server 0.2.7 → 0.2.9
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/completions.scm +3 -0
- package/definitions.scm +3 -0
- package/out/completionAnalysis.d.ts +3 -1
- package/out/completionAnalysis.js +45 -0
- package/out/completionAnalysis.js.map +1 -1
- package/out/completionBuilder.js +22 -3
- package/out/completionBuilder.js.map +1 -1
- package/out/hoverBuilder.js +29 -13
- package/out/hoverBuilder.js.map +1 -1
- package/out/referenceSearch.js +63 -1
- package/out/referenceSearch.js.map +1 -1
- package/out/resolver.js +12 -0
- package/out/resolver.js.map +1 -1
- package/out/server.js +44 -0
- package/out/server.js.map +1 -1
- package/out/symbolIndex.js +142 -5
- package/out/symbolIndex.js.map +1 -1
- package/out/symbolTypes.d.ts +1 -0
- package/out/tokenAnalysis.js +73 -2
- package/out/tokenAnalysis.js.map +1 -1
- package/out/tokenTypes.d.ts +3 -0
- package/package.json +1 -1
- package/references.scm +12 -7
- package/tree-sitter-umple.wasm +0 -0
package/out/symbolTypes.d.ts
CHANGED
package/out/tokenAnalysis.js
CHANGED
|
@@ -24,11 +24,31 @@ const treeUtils_1 = require("./treeUtils");
|
|
|
24
24
|
* @param column 0-based column
|
|
25
25
|
*/
|
|
26
26
|
function analyzeToken(tree, referencesQuery, line, column) {
|
|
27
|
-
|
|
27
|
+
let node = tree.rootNode.descendantForPosition({ row: line, column });
|
|
28
|
+
// Fallback: if cursor lands on an ERROR node, search its children for an
|
|
29
|
+
// identifier at the exact position. ERROR nodes contain parsed-but-unmatched
|
|
30
|
+
// tokens as children, so the identifier is still accessible.
|
|
31
|
+
if (node?.type === "ERROR" || node?.isError) {
|
|
32
|
+
let found = null;
|
|
33
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
34
|
+
const child = node.child(i);
|
|
35
|
+
if (child.type === "identifier" &&
|
|
36
|
+
child.startPosition.row === line &&
|
|
37
|
+
child.startPosition.column <= column &&
|
|
38
|
+
child.endPosition.column > column) {
|
|
39
|
+
found = child;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (found) {
|
|
44
|
+
node = found;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
28
47
|
if (!node ||
|
|
29
48
|
(node.type !== "identifier" &&
|
|
30
49
|
node.type !== "use_path" &&
|
|
31
|
-
node.type !== "filter_pattern"
|
|
50
|
+
node.type !== "filter_pattern" &&
|
|
51
|
+
node.type !== "req_id")) {
|
|
32
52
|
return null;
|
|
33
53
|
}
|
|
34
54
|
// For filter_pattern: skip wildcards and exclusion patterns
|
|
@@ -39,6 +59,15 @@ function analyzeToken(tree, referencesQuery, line, column) {
|
|
|
39
59
|
}
|
|
40
60
|
}
|
|
41
61
|
let kinds = resolveDefinitionKinds(tree, node, referencesQuery);
|
|
62
|
+
// Fallback: if the identifier is inside an ERROR node, references.scm won't
|
|
63
|
+
// capture it. Use top-level-only kind candidates to avoid scoped-preference
|
|
64
|
+
// guessing. Container-scoped kinds (attribute, method) are excluded because
|
|
65
|
+
// they introduce ambiguity with local symbols of the same name.
|
|
66
|
+
if ((!kinds || kinds.length === 0) &&
|
|
67
|
+
node.type === "identifier" &&
|
|
68
|
+
(node.parent?.type === "ERROR" || node.parent?.isError)) {
|
|
69
|
+
kinds = ["class", "interface", "trait", "enum"];
|
|
70
|
+
}
|
|
42
71
|
const { enclosingClass, enclosingStateMachine } = (0, treeUtils_1.resolveEnclosingScope)(tree, line, column);
|
|
43
72
|
// ── Detect orthogonal metadata ──────────────────────────────────────────
|
|
44
73
|
// Dotted state path in transition targets
|
|
@@ -125,6 +154,40 @@ function analyzeToken(tree, referencesQuery, line, column) {
|
|
|
125
154
|
context = { type: "toplevel_injection", targetClass: targetNode.text };
|
|
126
155
|
}
|
|
127
156
|
}
|
|
157
|
+
// Sorted association key: sorted {key} — attribute reference against owner class
|
|
158
|
+
if (node.type === "identifier" &&
|
|
159
|
+
parent?.type === "sorted_modifier" &&
|
|
160
|
+
parent.childForFieldName("sort_key")?.id === node.id) {
|
|
161
|
+
// Walk up to find the association node and determine the owner class
|
|
162
|
+
const assocNode = parent.parent;
|
|
163
|
+
if (assocNode) {
|
|
164
|
+
let ownerClass;
|
|
165
|
+
if (assocNode.type === "association_inline") {
|
|
166
|
+
// Check if sorted_modifier is before or after the arrow
|
|
167
|
+
const arrow = findChildByType(assocNode, "arrow");
|
|
168
|
+
if (arrow && parent.startIndex < arrow.startIndex) {
|
|
169
|
+
// Left-side sorted → owner is the enclosing class
|
|
170
|
+
ownerClass = enclosingClass;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
// Right-side sorted → owner is right_type
|
|
174
|
+
ownerClass = assocNode.childForFieldName("right_type")?.text;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else if (assocNode.type === "association_member") {
|
|
178
|
+
const arrow = findChildByType(assocNode, "arrow");
|
|
179
|
+
if (arrow && parent.startIndex < arrow.startIndex) {
|
|
180
|
+
ownerClass = assocNode.childForFieldName("left_type")?.text;
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
ownerClass = assocNode.childForFieldName("right_type")?.text;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (ownerClass) {
|
|
187
|
+
context = { type: "sorted_key", ownerClass };
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
128
191
|
// Default-value qualifier in "Status.ACTIVE"
|
|
129
192
|
if (node.type === "identifier" &&
|
|
130
193
|
parent?.type === "qualified_name" &&
|
|
@@ -149,6 +212,14 @@ function analyzeToken(tree, referencesQuery, line, column) {
|
|
|
149
212
|
};
|
|
150
213
|
}
|
|
151
214
|
// ── Private helpers ─────────────────────────────────────────────────────────
|
|
215
|
+
/** Find a direct child node by type (e.g., "arrow" in an association). */
|
|
216
|
+
function findChildByType(node, type) {
|
|
217
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
218
|
+
if (node.child(i).type === type)
|
|
219
|
+
return node.child(i);
|
|
220
|
+
}
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
152
223
|
/**
|
|
153
224
|
* Use references.scm query to determine which symbol kinds are valid
|
|
154
225
|
* for a node's context.
|
package/out/tokenAnalysis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenAnalysis.js","sourceRoot":"","sources":["../src/tokenAnalysis.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAuBH,
|
|
1
|
+
{"version":3,"file":"tokenAnalysis.js","sourceRoot":"","sources":["../src/tokenAnalysis.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAuBH,oCAkOC;AAvPD,iEAAiE;AACjE,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAK9C,6CAA0D;AAC1D,2CAAsE;AAEtE;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAC1B,IAAU,EACV,eAAsB,EACtB,IAAY,EACZ,MAAc;IAEd,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtE,yEAAyE;IACzE,6EAA6E;IAC7E,6DAA6D;IAC7D,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;QAC5C,IAAI,KAAK,GAAsB,IAAI,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IACE,KAAK,CAAC,IAAI,KAAK,YAAY;gBAC3B,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,IAAI;gBAChC,KAAK,CAAC,aAAa,CAAC,MAAM,IAAI,MAAM;gBACpC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,EACjC,CAAC;gBACD,KAAK,GAAG,KAAK,CAAC;gBACd,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,IACE,CAAC,IAAI;QACL,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;YACzB,IAAI,CAAC,IAAI,KAAK,UAAU;YACxB,IAAI,CAAC,IAAI,KAAK,gBAAgB;YAC9B,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,EACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IAC5D,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IAEhE,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,gEAAgE;IAChE,IACE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,CAAC;QACD,KAAK,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAiB,CAAC;IAClE,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAC7C,IAAA,iCAAqB,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAE5C,2EAA2E;IAE3E,0CAA0C;IAC1C,IAAI,cAA6C,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,EAAE,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QAClC,IAAI,WAAW,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,UAAU,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAa,EAAE,CAAC;gBACzB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;gBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACnC,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;wBACjC,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;4BAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;wBAC3C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;oBAC/B,cAAc,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,kBAAqD,CAAC;IAC1D,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,OAAO;QACxB,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EAChD,CAAC;QACD,kBAAkB,GAAG,EAAE,cAAc,EAAE,IAAA,4BAAgB,EAAC,IAAI,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,4EAA4E;IAE5E,IAAI,OAAO,GAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAEhD,+CAA+C;IAC/C,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,kBAAkB;QACnC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EACjD,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,IAAI,QAAQ,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxE,IAAI,EAAE,EAAE,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;gBACrD,IAAI,MAAM,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;oBAClC,OAAO,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,gBAAgB;QACjC,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,kBAAkB;QAC1C,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,EAC1D,CAAC;QACD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;oBAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;YAChF,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,yBAAyB;QAC1C,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;QACtD,cAAc,EACd,CAAC;QACD,OAAO,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IACtC,CAAC;IAED,sEAAsE;IACtE,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,yBAAyB;QAC1C,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EACrD,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,GAAG,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,iBAAiB;QAClC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EACpD,CAAC;QACD,qEAAqE;QACrE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,UAA8B,CAAC;YACnC,IAAI,SAAS,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAC5C,wDAAwD;gBACxD,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,KAAK,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;oBAClD,kDAAkD;oBAClD,UAAU,GAAG,cAAc,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,0CAA0C;oBAC1C,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAClD,IAAI,KAAK,IAAI,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;oBAClD,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;gBAC/D,CAAC;YACH,CAAC;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IACE,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1B,MAAM,EAAE,IAAI,KAAK,gBAAgB;QACjC,MAAM,CAAC,eAAe,GAAG,CAAC,EAC1B,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,EAAE,IAAI,KAAK,uBAAuB,IAAI,EAAE,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;YAC7E,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACpF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjB,OAAO,GAAG,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK;QACL,cAAc;QACd,qBAAqB;QACrB,OAAO;QACP,cAAc;QACd,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,0EAA0E;AAC1E,SAAS,eAAe,CAAC,IAAgB,EAAE,IAAY;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,IAAU,EACV,IAAgB,EAChB,eAAsB;IAEtB,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;QACvD,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IAEH,IAAI,WAAW,GAA8C,IAAI,CAAC;IAClE,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,IAAI,aAAa,GAAG,QAAQ,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IACE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;YAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EACtC,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACjD,IACE,IAAI,GAAG,QAAQ;gBACf,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,GAAG,aAAa,CAAC,EAChD,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC;gBAChB,aAAa,GAAG,SAAS,CAAC;gBAC1B,WAAW,GAAG,OAAO,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC;IAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,uCAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC"}
|
package/out/tokenTypes.d.ts
CHANGED
|
@@ -24,6 +24,9 @@ export type LookupContext = {
|
|
|
24
24
|
targetClass: string;
|
|
25
25
|
} | {
|
|
26
26
|
type: "default_value_qualifier";
|
|
27
|
+
} | {
|
|
28
|
+
type: "sorted_key";
|
|
29
|
+
ownerClass: string;
|
|
27
30
|
};
|
|
28
31
|
/** Post-lookup disambiguation for dotted state references in transitions. */
|
|
29
32
|
export interface DottedStateRef {
|
package/package.json
CHANGED
package/references.scm
CHANGED
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
(interface_definition name: (identifier) @reference.interface)
|
|
19
19
|
(trait_definition name: (identifier) @reference.trait)
|
|
20
20
|
(enum_definition name: (identifier) @reference.enum)
|
|
21
|
+
(requirement_definition name: (identifier) @reference.requirement)
|
|
22
|
+
(requirement_definition name: (req_id) @reference.requirement)
|
|
21
23
|
|
|
22
24
|
; =====================
|
|
23
25
|
; TRAIT PARAMETER REFERENCES
|
|
@@ -35,7 +37,6 @@
|
|
|
35
37
|
(enum_value name: (identifier) @reference.enum_value)
|
|
36
38
|
(external_definition name: (identifier) @reference.class)
|
|
37
39
|
(mixset_definition name: (identifier) @reference.mixset)
|
|
38
|
-
(requirement_definition name: (identifier) @reference.requirement)
|
|
39
40
|
(association_class_definition name: (identifier) @reference.class)
|
|
40
41
|
(statemachine_definition name: (identifier) @reference.statemachine)
|
|
41
42
|
(state_machine name: (identifier) @reference.statemachine)
|
|
@@ -86,12 +87,6 @@
|
|
|
86
87
|
|
|
87
88
|
(use_statement path: (_) @reference.mixset)
|
|
88
89
|
|
|
89
|
-
; =====================
|
|
90
|
-
; REQUIREMENT REFERENCES
|
|
91
|
-
; =====================
|
|
92
|
-
|
|
93
|
-
(req_implementation (identifier) @reference.requirement)
|
|
94
|
-
|
|
95
90
|
; =====================
|
|
96
91
|
; TOP-LEVEL CODE INJECTION
|
|
97
92
|
; =====================
|
|
@@ -103,6 +98,13 @@
|
|
|
103
98
|
; before/after method hook — method name reference
|
|
104
99
|
(before_after (identifier) @reference.method)
|
|
105
100
|
|
|
101
|
+
; =====================
|
|
102
|
+
; REQUIREMENT REFERENCES
|
|
103
|
+
; =====================
|
|
104
|
+
; implementsReq R01, R02; — requirement name references
|
|
105
|
+
(req_implementation (identifier) @reference.requirement)
|
|
106
|
+
(req_implementation (req_id) @reference.requirement)
|
|
107
|
+
|
|
106
108
|
; =====================
|
|
107
109
|
; ASSOCIATION TYPE REFERENCES
|
|
108
110
|
; =====================
|
|
@@ -113,6 +115,9 @@
|
|
|
113
115
|
(association_member right_type: (identifier) @reference.class_interface_trait)
|
|
114
116
|
(single_association_end type: (identifier) @reference.class_interface_trait)
|
|
115
117
|
|
|
118
|
+
; Sorted association key — attribute reference against the owning class
|
|
119
|
+
(sorted_modifier sort_key: (identifier) @reference.attribute)
|
|
120
|
+
|
|
116
121
|
; =====================
|
|
117
122
|
; STATE REFERENCES
|
|
118
123
|
; =====================
|
package/tree-sitter-umple.wasm
CHANGED
|
Binary file
|