umple-lsp-server 0.2.4 → 0.2.5
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/out/diagramNavigation.d.ts +25 -0
- package/out/diagramNavigation.js +193 -0
- package/out/diagramNavigation.js.map +1 -0
- package/out/diagramRequests.d.ts +15 -0
- package/out/diagramRequests.js +66 -0
- package/out/diagramRequests.js.map +1 -0
- package/out/referenceSearch.d.ts +1 -1
- package/out/referenceSearch.js +35 -9
- package/out/referenceSearch.js.map +1 -1
- package/out/resolver.js +26 -2
- package/out/resolver.js.map +1 -1
- package/out/server.js +45 -10
- package/out/server.js.map +1 -1
- package/out/symbolIndex.d.ts +27 -0
- package/out/symbolIndex.js +126 -2
- package/out/symbolIndex.js.map +1 -1
- package/out/treeUtils.js +3 -2
- package/out/treeUtils.js.map +1 -1
- package/package.json +1 -1
- package/tree-sitter-umple.wasm +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagram-specific navigation: resolve click targets from SVG diagram payloads.
|
|
3
|
+
* Owns the AST walking and symbol lookup logic for diagram click-to-select.
|
|
4
|
+
* Depends on SymbolIndex for symbol queries and tree parsing.
|
|
5
|
+
*/
|
|
6
|
+
import { SymbolIndex, SymbolEntry } from "./symbolIndex";
|
|
7
|
+
type LocationRange = {
|
|
8
|
+
line: number;
|
|
9
|
+
column: number;
|
|
10
|
+
endLine: number;
|
|
11
|
+
endColumn: number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Resolve a state location from a diagram click payload.
|
|
15
|
+
* Uses the symbol index for path-aware state lookup.
|
|
16
|
+
* Scoped to the clicked file.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveStateLocation(si: SymbolIndex, filePath: string, className: string | undefined, stateMachine: string, statePath: string[]): SymbolEntry | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Resolve a transition location from a diagram click payload.
|
|
21
|
+
* Path-aware: navigates class → SM → source state path before searching transitions.
|
|
22
|
+
* Uses tree-sitter tree walk (transitions are not in the symbol index).
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveTransitionLocation(si: SymbolIndex, filePath: string, content: string, className: string | undefined, stateMachine: string, sourcePath: string[], event: string, targetPath: string[], guard?: string): LocationRange | undefined;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Diagram-specific navigation: resolve click targets from SVG diagram payloads.
|
|
4
|
+
* Owns the AST walking and symbol lookup logic for diagram click-to-select.
|
|
5
|
+
* Depends on SymbolIndex for symbol queries and tree parsing.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.resolveStateLocation = resolveStateLocation;
|
|
9
|
+
exports.resolveTransitionLocation = resolveTransitionLocation;
|
|
10
|
+
const path = require("path");
|
|
11
|
+
/**
|
|
12
|
+
* Resolve a state location from a diagram click payload.
|
|
13
|
+
* Uses the symbol index for path-aware state lookup.
|
|
14
|
+
* Scoped to the clicked file.
|
|
15
|
+
*/
|
|
16
|
+
function resolveStateLocation(si, filePath, className, stateMachine, statePath) {
|
|
17
|
+
const smContainer = className
|
|
18
|
+
? `${className}.${stateMachine}`
|
|
19
|
+
: stateMachine;
|
|
20
|
+
const targetName = statePath[statePath.length - 1];
|
|
21
|
+
const preceding = statePath.slice(0, -1);
|
|
22
|
+
const reachableFiles = new Set([path.normalize(filePath)]);
|
|
23
|
+
// Try each candidate container in order (alias-local first, then base fallback)
|
|
24
|
+
const containers = si.getSmContainerCandidates(smContainer);
|
|
25
|
+
for (const container of containers) {
|
|
26
|
+
let symbol;
|
|
27
|
+
if (preceding.length > 0) {
|
|
28
|
+
symbol = si.resolveStateInPath(preceding, targetName, container, reachableFiles);
|
|
29
|
+
}
|
|
30
|
+
if (!symbol) {
|
|
31
|
+
const candidates = si
|
|
32
|
+
.getSymbols({
|
|
33
|
+
name: targetName,
|
|
34
|
+
kind: "state",
|
|
35
|
+
container,
|
|
36
|
+
})
|
|
37
|
+
.filter((s) => reachableFiles.has(path.normalize(s.file)));
|
|
38
|
+
if (preceding.length === 0) {
|
|
39
|
+
symbol = candidates[0];
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const targetPath = [...preceding, targetName];
|
|
43
|
+
symbol = candidates.find((s) => s.statePath &&
|
|
44
|
+
s.statePath.length >= targetPath.length &&
|
|
45
|
+
targetPath.every((seg, i) => s.statePath[s.statePath.length - targetPath.length + i] === seg));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (symbol)
|
|
49
|
+
return symbol;
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
// ── Transition AST walking ───────────────────────────────────────────────────
|
|
54
|
+
/**
|
|
55
|
+
* Find a named child node of specific types within a parent node.
|
|
56
|
+
* Recurses into class_definition and source_file nodes.
|
|
57
|
+
*/
|
|
58
|
+
function findNamedChild(parent, types, name) {
|
|
59
|
+
for (let i = 0; i < parent.childCount; i++) {
|
|
60
|
+
const child = parent.child(i);
|
|
61
|
+
if (types.includes(child.type)) {
|
|
62
|
+
const nameNode = child.childForFieldName("name");
|
|
63
|
+
if (nameNode && nameNode.text === name)
|
|
64
|
+
return child;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
for (let i = 0; i < parent.childCount; i++) {
|
|
68
|
+
const child = parent.child(i);
|
|
69
|
+
if (child.type === "class_definition" || child.type === "source_file" || child.type === "statemachine_definition") {
|
|
70
|
+
const found = findNamedChild(child, types, name);
|
|
71
|
+
if (found)
|
|
72
|
+
return found;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
/** SM node types: inline, reused, and standalone definitions. */
|
|
78
|
+
const SM_NODE_TYPES = ["state_machine", "referenced_statemachine", "statemachine_definition"];
|
|
79
|
+
/**
|
|
80
|
+
* Resolve a transition location from a diagram click payload.
|
|
81
|
+
* Path-aware: navigates class → SM → source state path before searching transitions.
|
|
82
|
+
* Uses tree-sitter tree walk (transitions are not in the symbol index).
|
|
83
|
+
*/
|
|
84
|
+
function resolveTransitionLocation(si, filePath, content, className, stateMachine, sourcePath, event, targetPath, guard) {
|
|
85
|
+
const tree = si.parse(content);
|
|
86
|
+
if (!tree)
|
|
87
|
+
return undefined;
|
|
88
|
+
const targetName = targetPath.join(".");
|
|
89
|
+
// Step 1: Find the class node (if className provided)
|
|
90
|
+
let classScope = tree.rootNode;
|
|
91
|
+
if (className) {
|
|
92
|
+
const classNode = findNamedChild(classScope, ["class_definition"], className);
|
|
93
|
+
if (!classNode)
|
|
94
|
+
return undefined;
|
|
95
|
+
classScope = classNode;
|
|
96
|
+
}
|
|
97
|
+
// Step 2: Find the state machine node (state_machine or referenced_statemachine)
|
|
98
|
+
const smNode = findNamedChild(classScope, SM_NODE_TYPES, stateMachine);
|
|
99
|
+
if (!smNode)
|
|
100
|
+
return undefined;
|
|
101
|
+
// Try to find the transition in the alias SM first, then fall back to base
|
|
102
|
+
const result = findTransitionInSm(smNode, sourcePath, event, targetName, guard);
|
|
103
|
+
if (result)
|
|
104
|
+
return result;
|
|
105
|
+
// Fallback: if this is a referenced_statemachine, try the base standalone SM
|
|
106
|
+
if (smNode.type === "referenced_statemachine") {
|
|
107
|
+
const baseName = smNode.childForFieldName("definition")?.text;
|
|
108
|
+
if (baseName) {
|
|
109
|
+
// Search at file root for standalone statemachine_definition
|
|
110
|
+
const baseSmNode = findNamedChild(tree.rootNode, ["statemachine_definition"], baseName);
|
|
111
|
+
if (baseSmNode) {
|
|
112
|
+
return findTransitionInSm(baseSmNode, sourcePath, event, targetName, guard);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Walk the source state path within an SM node and find a matching transition.
|
|
120
|
+
*/
|
|
121
|
+
function findTransitionInSm(smNode, sourcePath, event, targetName, guard) {
|
|
122
|
+
// First: check standalone_transition children at SM scope.
|
|
123
|
+
// These live directly under the SM node (not inside a state body) and encode
|
|
124
|
+
// source state as from_state field: "event fromState -> toState;"
|
|
125
|
+
const fromState = sourcePath.length > 0 ? sourcePath[sourcePath.length - 1] : undefined;
|
|
126
|
+
for (let i = 0; i < smNode.childCount; i++) {
|
|
127
|
+
const child = smNode.child(i);
|
|
128
|
+
if (child.type === "standalone_transition") {
|
|
129
|
+
const eventNode = child.childForFieldName("event");
|
|
130
|
+
const fromNode = child.childForFieldName("from_state");
|
|
131
|
+
const toNode = child.childForFieldName("to_state");
|
|
132
|
+
const eventMatch = eventNode ? eventNode.text === event : !event;
|
|
133
|
+
const fromMatch = fromNode ? fromNode.text === fromState : !fromState;
|
|
134
|
+
const targetMatch = toNode ? toNode.text === targetName : !targetName;
|
|
135
|
+
if (eventMatch && fromMatch && targetMatch) {
|
|
136
|
+
return {
|
|
137
|
+
line: child.startPosition.row,
|
|
138
|
+
column: child.startPosition.column,
|
|
139
|
+
endLine: child.endPosition.row,
|
|
140
|
+
endColumn: child.endPosition.column,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Then: walk down the source state path for regular nested transitions
|
|
146
|
+
let scope = smNode;
|
|
147
|
+
for (const seg of sourcePath) {
|
|
148
|
+
const stateNode = findNamedChild(scope, ["state"], seg);
|
|
149
|
+
if (!stateNode)
|
|
150
|
+
return undefined;
|
|
151
|
+
scope = stateNode;
|
|
152
|
+
}
|
|
153
|
+
// Find the matching transition (regular or standalone within state)
|
|
154
|
+
for (let i = 0; i < scope.childCount; i++) {
|
|
155
|
+
const child = scope.child(i);
|
|
156
|
+
if (child.type === "transition") {
|
|
157
|
+
const eventNode = child.childForFieldName("event");
|
|
158
|
+
const targetNode = child.childForFieldName("target");
|
|
159
|
+
const eventMatch = eventNode ? eventNode.text === event : !event;
|
|
160
|
+
const targetMatch = targetNode ? targetNode.text === targetName : !targetName;
|
|
161
|
+
let guardMatch = true;
|
|
162
|
+
if (guard) {
|
|
163
|
+
const guardNode = child.children.find((c) => c.type === "guard");
|
|
164
|
+
guardMatch = guardNode ? guardNode.text.includes(guard) : false;
|
|
165
|
+
}
|
|
166
|
+
if (eventMatch && targetMatch && guardMatch) {
|
|
167
|
+
return {
|
|
168
|
+
line: child.startPosition.row,
|
|
169
|
+
column: child.startPosition.column,
|
|
170
|
+
endLine: child.endPosition.row,
|
|
171
|
+
endColumn: child.endPosition.column,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// standalone_transition: "event fromState -> toState;"
|
|
176
|
+
if (child.type === "standalone_transition") {
|
|
177
|
+
const eventNode = child.childForFieldName("event");
|
|
178
|
+
const toNode = child.childForFieldName("to_state");
|
|
179
|
+
const eventMatch = eventNode ? eventNode.text === event : !event;
|
|
180
|
+
const targetMatch = toNode ? toNode.text === targetName : !targetName;
|
|
181
|
+
if (eventMatch && targetMatch) {
|
|
182
|
+
return {
|
|
183
|
+
line: child.startPosition.row,
|
|
184
|
+
column: child.startPosition.column,
|
|
185
|
+
endLine: child.endPosition.row,
|
|
186
|
+
endColumn: child.endPosition.column,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=diagramNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagramNavigation.js","sourceRoot":"","sources":["../src/diagramNavigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom LSP request handlers for diagram click-to-select.
|
|
3
|
+
* Registers umple/resolveStateLocation and umple/resolveTransitionLocation.
|
|
4
|
+
*/
|
|
5
|
+
import { Connection } from "vscode-languageserver/node";
|
|
6
|
+
import { TextDocument } from "vscode-languageserver-textdocument";
|
|
7
|
+
import { SymbolIndex } from "./symbolIndex";
|
|
8
|
+
type DiagramDeps = {
|
|
9
|
+
symbolIndex: SymbolIndex;
|
|
10
|
+
isSymbolIndexReady: () => boolean;
|
|
11
|
+
getDocument: (uri: string) => TextDocument | undefined;
|
|
12
|
+
getDocumentFilePath: (doc: TextDocument) => string | null;
|
|
13
|
+
};
|
|
14
|
+
export declare function registerDiagramRequests(connection: Connection, deps: DiagramDeps): void;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Custom LSP request handlers for diagram click-to-select.
|
|
4
|
+
* Registers umple/resolveStateLocation and umple/resolveTransitionLocation.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.registerDiagramRequests = registerDiagramRequests;
|
|
8
|
+
const fs = require("fs");
|
|
9
|
+
const url_1 = require("url");
|
|
10
|
+
const diagramNavigation_1 = require("./diagramNavigation");
|
|
11
|
+
function registerDiagramRequests(connection, deps) {
|
|
12
|
+
// Resolve a state location from a diagram click payload
|
|
13
|
+
connection.onRequest("umple/resolveStateLocation", async (params) => {
|
|
14
|
+
if (!deps.isSymbolIndexReady() || !params.statePath.length)
|
|
15
|
+
return null;
|
|
16
|
+
const filePath = deps.getDocumentFilePath({
|
|
17
|
+
uri: params.uri,
|
|
18
|
+
});
|
|
19
|
+
if (!filePath)
|
|
20
|
+
return null;
|
|
21
|
+
// Ensure the file is indexed
|
|
22
|
+
const doc = deps.getDocument(params.uri);
|
|
23
|
+
if (doc) {
|
|
24
|
+
deps.symbolIndex.indexFile(filePath, doc.getText());
|
|
25
|
+
}
|
|
26
|
+
const symbol = (0, diagramNavigation_1.resolveStateLocation)(deps.symbolIndex, filePath, params.className, params.stateMachine, params.statePath);
|
|
27
|
+
if (!symbol)
|
|
28
|
+
return null;
|
|
29
|
+
return {
|
|
30
|
+
uri: (0, url_1.pathToFileURL)(symbol.file).toString(),
|
|
31
|
+
range: {
|
|
32
|
+
start: { line: symbol.line, character: symbol.column },
|
|
33
|
+
end: { line: symbol.endLine, character: symbol.endColumn },
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
// Resolve a transition location from a diagram click payload
|
|
38
|
+
connection.onRequest("umple/resolveTransitionLocation", async (params) => {
|
|
39
|
+
if (!deps.isSymbolIndexReady() || !params.event)
|
|
40
|
+
return null;
|
|
41
|
+
const filePath = deps.getDocumentFilePath({
|
|
42
|
+
uri: params.uri,
|
|
43
|
+
});
|
|
44
|
+
if (!filePath)
|
|
45
|
+
return null;
|
|
46
|
+
const doc = deps.getDocument(params.uri);
|
|
47
|
+
const content = doc
|
|
48
|
+
? doc.getText()
|
|
49
|
+
: fs.existsSync(filePath)
|
|
50
|
+
? fs.readFileSync(filePath, "utf8")
|
|
51
|
+
: null;
|
|
52
|
+
if (!content)
|
|
53
|
+
return null;
|
|
54
|
+
const result = (0, diagramNavigation_1.resolveTransitionLocation)(deps.symbolIndex, filePath, content, params.className, params.stateMachine, params.sourcePath, params.event, params.targetPath, params.guard);
|
|
55
|
+
if (!result)
|
|
56
|
+
return null;
|
|
57
|
+
return {
|
|
58
|
+
uri: (0, url_1.pathToFileURL)(filePath).toString(),
|
|
59
|
+
range: {
|
|
60
|
+
start: { line: result.line, character: result.column },
|
|
61
|
+
end: { line: result.endLine, character: result.endColumn },
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=diagramRequests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagramRequests.js","sourceRoot":"","sources":["../src/diagramRequests.ts"],"names":[],"mappings":"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"}
|
package/out/referenceSearch.d.ts
CHANGED
|
@@ -18,5 +18,5 @@ import type { SymbolEntry, ReferenceLocation } from "./symbolTypes";
|
|
|
18
18
|
* @param fileTreeMap filePath → cached parse tree (only files to search)
|
|
19
19
|
* @param isAGraph className → parent class names (for inheritance checks)
|
|
20
20
|
*/
|
|
21
|
-
export declare function searchReferences(declarations: SymbolEntry[], includeDeclaration: boolean, referencesQuery: Query, fileTreeMap: Map<string, Tree>, isAGraph: Map<string, string[]>): ReferenceLocation[];
|
|
21
|
+
export declare function searchReferences(declarations: SymbolEntry[], includeDeclaration: boolean, referencesQuery: Query, fileTreeMap: Map<string, Tree>, isAGraph: Map<string, string[]>, smReuseBindings?: Map<string, string>): ReferenceLocation[];
|
|
22
22
|
export {};
|
package/out/referenceSearch.js
CHANGED
|
@@ -21,13 +21,15 @@ const treeUtils_1 = require("./treeUtils");
|
|
|
21
21
|
* @param fileTreeMap filePath → cached parse tree (only files to search)
|
|
22
22
|
* @param isAGraph className → parent class names (for inheritance checks)
|
|
23
23
|
*/
|
|
24
|
-
function searchReferences(declarations, includeDeclaration, referencesQuery, fileTreeMap, isAGraph) {
|
|
24
|
+
function searchReferences(declarations, includeDeclaration, referencesQuery, fileTreeMap, isAGraph, smReuseBindings) {
|
|
25
25
|
if (declarations.length === 0)
|
|
26
26
|
return [];
|
|
27
27
|
const sym = declarations[0];
|
|
28
28
|
const symName = sym.name;
|
|
29
29
|
const symKind = sym.kind;
|
|
30
30
|
const symContainer = sym.container;
|
|
31
|
+
// For shared state declarations, build the set of all valid containers
|
|
32
|
+
const validContainers = new Set(declarations.map((d) => d.container).filter(Boolean));
|
|
31
33
|
// Collect definition positions for deduplication and includeDeclaration
|
|
32
34
|
const defPositions = new Set();
|
|
33
35
|
for (const d of declarations) {
|
|
@@ -66,16 +68,23 @@ function searchReferences(declarations, includeDeclaration, referencesQuery, fil
|
|
|
66
68
|
const refKinds = parseCaptureKinds(capture.name);
|
|
67
69
|
if (!refKinds || !refKinds.includes(symKind))
|
|
68
70
|
continue;
|
|
69
|
-
// For container-scoped kinds, verify enclosing scope matches
|
|
71
|
+
// For container-scoped kinds, verify enclosing scope matches any valid container
|
|
70
72
|
if (isContainerScoped && symContainer) {
|
|
71
73
|
const enclosing = resolveEnclosingScopeFromNode(node, symKind);
|
|
72
|
-
if (enclosing && enclosing
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
if (enclosing && !validContainers.has(enclosing)) {
|
|
75
|
+
// Check expanded matches: standalone SM, reuse bindings, inheritance
|
|
76
|
+
const isStandaloneSm = symKind === "statemachine" &&
|
|
77
|
+
Array.from(validContainers).some((c) => enclosing.endsWith(`.${c}`));
|
|
78
|
+
const isReusedSm = (symKind === "state" || symKind === "statemachine") &&
|
|
79
|
+
smReuseBindings &&
|
|
80
|
+
Array.from(validContainers).some((c) => smReuseBindings.get(enclosing) === c);
|
|
81
|
+
if (!isStandaloneSm && !isReusedSm) {
|
|
82
|
+
if (symKind === "state" || symKind === "statemachine") {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
if (!isInheritanceChain(enclosing, symContainer, isAGraph)) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
79
88
|
}
|
|
80
89
|
}
|
|
81
90
|
}
|
|
@@ -143,6 +152,23 @@ function resolveEnclosingScopeFromNode(node, targetKind) {
|
|
|
143
152
|
if (current.type === "state_machine" || current.type === "statemachine_definition") {
|
|
144
153
|
enclosingSM = current.childForFieldName("name")?.text ?? enclosingSM;
|
|
145
154
|
}
|
|
155
|
+
// referenced_statemachine is an SM scope only for nodes inside its body
|
|
156
|
+
// (states, transitions), not for its name/definition fields.
|
|
157
|
+
// Check: is the original node inside a state/transition descendant of this node?
|
|
158
|
+
if (current.type === "referenced_statemachine") {
|
|
159
|
+
let isInBody = false;
|
|
160
|
+
let walk = node;
|
|
161
|
+
while (walk && walk.id !== current.id) {
|
|
162
|
+
if (walk.type === "state" || walk.type === "transition" || walk.type === "standalone_transition") {
|
|
163
|
+
isInBody = true;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
walk = walk.parent;
|
|
167
|
+
}
|
|
168
|
+
if (isInBody) {
|
|
169
|
+
enclosingSM = current.childForFieldName("name")?.text ?? enclosingSM;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
146
172
|
if (!enclosingClass &&
|
|
147
173
|
["class_definition", "trait_definition", "interface_definition", "association_class_definition"].includes(current.type)) {
|
|
148
174
|
enclosingClass = current.childForFieldName("name")?.text;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referenceSearch.js","sourceRoot":"","sources":["../src/referenceSearch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"referenceSearch.js","sourceRoot":"","sources":["../src/referenceSearch.ts"],"names":[],"mappings":"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"}
|
package/out/resolver.js
CHANGED
|
@@ -93,8 +93,8 @@ function resolveSymbolAtPosition(si, docPath, content, line, col, reachableFiles
|
|
|
93
93
|
break;
|
|
94
94
|
}
|
|
95
95
|
case "referenced_sm": {
|
|
96
|
-
// referenced_statemachine: "door as status" —
|
|
97
|
-
//
|
|
96
|
+
// referenced_statemachine: "door as status" — try class-local SM first,
|
|
97
|
+
// then fall back to top-level standalone statemachine.
|
|
98
98
|
const className = token.enclosingClass;
|
|
99
99
|
const smContainer = `${className}.${token.word}`;
|
|
100
100
|
symbols = si
|
|
@@ -104,6 +104,16 @@ function resolveSymbolAtPosition(si, docPath, content, line, col, reachableFiles
|
|
|
104
104
|
container: smContainer,
|
|
105
105
|
})
|
|
106
106
|
.filter((s) => reachableFiles.has(path.normalize(s.file)));
|
|
107
|
+
// Fallback: top-level standalone statemachine (container = smName itself)
|
|
108
|
+
if (symbols.length === 0) {
|
|
109
|
+
symbols = si
|
|
110
|
+
.getSymbols({
|
|
111
|
+
name: token.word,
|
|
112
|
+
kind: ["statemachine"],
|
|
113
|
+
container: token.word,
|
|
114
|
+
})
|
|
115
|
+
.filter((s) => reachableFiles.has(path.normalize(s.file)));
|
|
116
|
+
}
|
|
107
117
|
break;
|
|
108
118
|
}
|
|
109
119
|
case "toplevel_injection": {
|
|
@@ -127,6 +137,7 @@ function resolveSymbolAtPosition(si, docPath, content, line, col, reachableFiles
|
|
|
127
137
|
const scopedKinds = token.kinds.filter((k) => containerKinds.has(k));
|
|
128
138
|
const unscopedKinds = token.kinds.filter((k) => !containerKinds.has(k));
|
|
129
139
|
if (scopedKinds.length > 0 && container) {
|
|
140
|
+
// Try local container first (includes inherited via isA)
|
|
130
141
|
symbols = si
|
|
131
142
|
.getSymbols({
|
|
132
143
|
name: token.word,
|
|
@@ -135,6 +146,19 @@ function resolveSymbolAtPosition(si, docPath, content, line, col, reachableFiles
|
|
|
135
146
|
inherited: true,
|
|
136
147
|
})
|
|
137
148
|
.filter((s) => reachableFiles.has(path.normalize(s.file)));
|
|
149
|
+
// Fallback: for reused SMs, try the base standalone SM container
|
|
150
|
+
if (symbols.length === 0) {
|
|
151
|
+
const candidates = si.getSmContainerCandidates(container);
|
|
152
|
+
for (let ci = 1; ci < candidates.length && symbols.length === 0; ci++) {
|
|
153
|
+
symbols = si
|
|
154
|
+
.getSymbols({
|
|
155
|
+
name: token.word,
|
|
156
|
+
kind: scopedKinds,
|
|
157
|
+
container: candidates[ci],
|
|
158
|
+
})
|
|
159
|
+
.filter((s) => reachableFiles.has(path.normalize(s.file)));
|
|
160
|
+
}
|
|
161
|
+
}
|
|
138
162
|
}
|
|
139
163
|
if (symbols.length === 0 && unscopedKinds.length > 0) {
|
|
140
164
|
symbols = si
|
package/out/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAmBH,
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
|