umple-lsp-server 0.2.9 → 0.3.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.
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Post-format semantic preservation check.
3
+ *
4
+ * Verifies that formatting did not corrupt the file's semantic content:
5
+ * 1. Symbol set comparison: name, kind, container, statePath must be unchanged
6
+ * 2. Directional parse-health: clean original → clean formatted required
7
+ *
8
+ * Only enforced when the original input is parse-clean. For broken inputs,
9
+ * the check is skipped (recovery indexing is already degraded).
10
+ */
11
+ import type { SymbolEntry } from "./symbolTypes";
12
+ export interface SafetyCheckResult {
13
+ safe: boolean;
14
+ reason?: string;
15
+ }
16
+ /**
17
+ * Check if formatted output preserves the semantic content of the original.
18
+ *
19
+ * @param originalSymbols Symbols from the original text
20
+ * @param formattedSymbols Symbols from the formatted text
21
+ * @param originalClean Whether the original tree had no errors
22
+ * @param formattedClean Whether the formatted tree has no errors
23
+ */
24
+ export declare function checkFormatSafety(originalSymbols: SymbolEntry[], formattedSymbols: SymbolEntry[], originalClean: boolean, formattedClean: boolean): SafetyCheckResult;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /**
3
+ * Post-format semantic preservation check.
4
+ *
5
+ * Verifies that formatting did not corrupt the file's semantic content:
6
+ * 1. Symbol set comparison: name, kind, container, statePath must be unchanged
7
+ * 2. Directional parse-health: clean original → clean formatted required
8
+ *
9
+ * Only enforced when the original input is parse-clean. For broken inputs,
10
+ * the check is skipped (recovery indexing is already degraded).
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.checkFormatSafety = checkFormatSafety;
14
+ /**
15
+ * Compare two symbol sets for semantic equivalence.
16
+ * Returns true if they're equivalent (ignoring line/column positions).
17
+ */
18
+ function symbolSetsEqual(a, b) {
19
+ if (a.length !== b.length)
20
+ return false;
21
+ // Build canonical key sets
22
+ const keyOf = (s) => `${s.kind}:${s.name}:${s.container ?? ""}:${s.statePath?.join(".") ?? ""}`;
23
+ const aKeys = new Map();
24
+ for (const s of a) {
25
+ const k = keyOf(s);
26
+ aKeys.set(k, (aKeys.get(k) ?? 0) + 1);
27
+ }
28
+ const bKeys = new Map();
29
+ for (const s of b) {
30
+ const k = keyOf(s);
31
+ bKeys.set(k, (bKeys.get(k) ?? 0) + 1);
32
+ }
33
+ if (aKeys.size !== bKeys.size)
34
+ return false;
35
+ for (const [k, count] of aKeys) {
36
+ if (bKeys.get(k) !== count)
37
+ return false;
38
+ }
39
+ return true;
40
+ }
41
+ /**
42
+ * Check if formatted output preserves the semantic content of the original.
43
+ *
44
+ * @param originalSymbols Symbols from the original text
45
+ * @param formattedSymbols Symbols from the formatted text
46
+ * @param originalClean Whether the original tree had no errors
47
+ * @param formattedClean Whether the formatted tree has no errors
48
+ */
49
+ function checkFormatSafety(originalSymbols, formattedSymbols, originalClean, formattedClean) {
50
+ // Only enforce when original is parse-clean
51
+ if (!originalClean) {
52
+ return { safe: true };
53
+ }
54
+ // Parse-health: clean original must produce clean formatted
55
+ if (!formattedClean) {
56
+ return {
57
+ safe: false,
58
+ reason: "Formatting introduced parse errors into a previously clean file",
59
+ };
60
+ }
61
+ // Symbol preservation: all symbols must survive formatting
62
+ if (!symbolSetsEqual(originalSymbols, formattedSymbols)) {
63
+ return {
64
+ safe: false,
65
+ reason: "Formatting changed the symbol set (symbols lost, added, or modified)",
66
+ };
67
+ }
68
+ return { safe: true };
69
+ }
70
+ //# sourceMappingURL=formatSafetyNet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatSafetyNet.js","sourceRoot":"","sources":["../src/formatSafetyNet.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AA+CH,8CA4BC;AAvED;;;GAGG;AACH,SAAS,eAAe,CAAC,CAAgB,EAAE,CAAgB;IACzD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAExC,2BAA2B;IAC3B,MAAM,KAAK,GAAG,CAAC,CAAc,EAAE,EAAE,CAC/B,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;IAE7E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5C,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,eAA8B,EAC9B,gBAA+B,EAC/B,aAAsB,EACtB,cAAuB;IAEvB,4CAA4C;IAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,4DAA4D;IAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,iEAAiE;SAC1E,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACxD,OAAO;YACL,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,sEAAsE;SAC/E,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
package/out/formatter.js CHANGED
@@ -103,7 +103,15 @@ function expandCompactStates(text, tree) {
103
103
  const startCol = stateNode.startPosition.column;
104
104
  const endCol = stateNode.endPosition.column;
105
105
  const line = result.split("\n")[row];
106
- const nodeText = line.substring(startCol, endCol);
106
+ // Only expand states that occupy a standalone line:
107
+ // 1. State starts at the first non-whitespace position (no code before)
108
+ // 2. Only whitespace follows the state on the same line (no trailing code)
109
+ // Inline states (e.g., "sm { on { ... } off { ... } }") are left compact.
110
+ const lineLeadingWs = line.length - line.trimStart().length;
111
+ if (startCol !== lineLeadingWs)
112
+ continue;
113
+ if (line.substring(endCol).trim().length > 0)
114
+ continue;
107
115
  // Find the state name
108
116
  const nameNode = stateNode.childForFieldName("name");
109
117
  if (!nameNode)
@@ -117,7 +125,7 @@ function expandCompactStates(text, tree) {
117
125
  transitionTexts.push(child.text);
118
126
  }
119
127
  }
120
- // Compute the indent of the state itself (leading whitespace before it)
128
+ // Compute the indent from leading whitespace only (safe verified above)
121
129
  const stateIndent = line.substring(0, startCol);
122
130
  const childIndent = stateIndent + " "; // +1 level
123
131
  // Build expanded text
@@ -210,9 +218,11 @@ function fixTransitionSpacing(text, tree) {
210
218
  const arrowCol = arrowChild.startPosition.column;
211
219
  const arrowEndCol = arrowChild.endPosition.column;
212
220
  const line = lines[startRow];
213
- // Find whitespace region around the structural arrow
221
+ // Find whitespace region around the structural arrow.
222
+ // Don't walk past line indentation — that belongs to computeIndentEdits().
223
+ const indentEnd = line.search(/\S/);
214
224
  let wsStart = arrowCol;
215
- while (wsStart > 0 && line[wsStart - 1] === " ") {
225
+ while (wsStart > 0 && wsStart > indentEnd && line[wsStart - 1] === " ") {
216
226
  wsStart--;
217
227
  }
218
228
  let wsEnd = arrowEndCol;
@@ -220,7 +230,8 @@ function fixTransitionSpacing(text, tree) {
220
230
  wsEnd++;
221
231
  }
222
232
  const currentRegion = line.substring(wsStart, wsEnd);
223
- const expectedRegion = " -> ";
233
+ // Auto-transitions start with "->"; no leading space if arrow is at indent boundary
234
+ const expectedRegion = wsStart <= indentEnd ? "-> " : " -> ";
224
235
  if (currentRegion === expectedRegion)
225
236
  return;
226
237
  edits.push(node_1.TextEdit.replace(node_1.Range.create(node_1.Position.create(startRow, wsStart), node_1.Position.create(startRow, wsEnd)), expectedRegion));
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"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"}
@@ -19,3 +19,20 @@ export interface HoverContext {
19
19
  * @returns Markdown string, or null if no definition node found
20
20
  */
21
21
  export declare function buildHoverMarkdown(sym: SymbolEntry, allSymbols: SymbolEntry[], hoverCtx: HoverContext): string | null;
22
+ /**
23
+ * Build hover markdown for trait SM operation positions.
24
+ * Shared between server.ts and test helpers.
25
+ */
26
+ export declare function buildTraitSmOpHover(symbols: SymbolEntry[], token: {
27
+ word: string;
28
+ context: {
29
+ type: "trait_sm_op";
30
+ traitName: string;
31
+ isEventSegment: boolean;
32
+ pathSegments: string[];
33
+ };
34
+ }, getEventSignatures: (traitFile: string, traitName: string, smName: string, statePath?: string[]) => {
35
+ name: string;
36
+ label: string;
37
+ statePaths: string[][];
38
+ }[], findTraitFile: () => string | undefined): string | null;
@@ -7,6 +7,7 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.buildHoverMarkdown = buildHoverMarkdown;
10
+ exports.buildTraitSmOpHover = buildTraitSmOpHover;
10
11
  // Module-level context set by the entry point
11
12
  let ctx;
12
13
  function findDefNode(sym) {
@@ -321,4 +322,38 @@ function buildHoverMarkdown(sym, allSymbols, hoverCtx) {
321
322
  }
322
323
  return result;
323
324
  }
325
+ /**
326
+ * Build hover markdown for trait SM operation positions.
327
+ * Shared between server.ts and test helpers.
328
+ */
329
+ function buildTraitSmOpHover(symbols, token, getEventSignatures, findTraitFile) {
330
+ const ctx = token.context;
331
+ if (symbols.length > 0) {
332
+ const sym = symbols[0];
333
+ const kind = sym.kind === "statemachine" ? "statemachine" : "state";
334
+ const smName = ctx.pathSegments[0];
335
+ const location = sym.kind === "statemachine"
336
+ ? `in trait ${ctx.traitName}`
337
+ : `in state machine ${smName} of trait ${ctx.traitName}`;
338
+ return `\`\`\`umple\n${sym.name} (${kind})\n\`\`\`\n\n*${location}*`;
339
+ }
340
+ if (ctx.isEventSegment && ctx.traitName) {
341
+ const traitFile = findTraitFile();
342
+ if (traitFile && ctx.pathSegments.length >= 1) {
343
+ const smName = ctx.pathSegments[0];
344
+ const statePath = ctx.pathSegments.length > 2 ? ctx.pathSegments.slice(1, -1) : undefined;
345
+ const events = getEventSignatures(traitFile, ctx.traitName, smName, statePath);
346
+ const matching = events.filter((e) => e.name === token.word);
347
+ if (matching.length > 0) {
348
+ const evt = matching[0];
349
+ const paths = evt.statePaths.map((p) => p.join("."));
350
+ const stateStr = paths.length === 1
351
+ ? `state ${paths[0]}`
352
+ : `states ${paths.join(", ")}`;
353
+ return `\`\`\`umple\n${evt.label}\n\`\`\`\n\n*event in ${stateStr} of trait ${ctx.traitName}.${smName}*`;
354
+ }
355
+ }
356
+ }
357
+ return null;
358
+ }
324
359
  //# sourceMappingURL=hoverBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hoverBuilder.js","sourceRoot":"","sources":["../src/hoverBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hoverBuilder.js","sourceRoot":"","sources":["../src/hoverBuilder.ts"],"names":[],"mappings":"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"}
@@ -112,14 +112,76 @@ function searchReferences(declarations, includeDeclaration, referencesQuery, fil
112
112
  valSegIdx !== sym.statePath.length)
113
113
  continue;
114
114
  }
115
+ // For trait_sm_binding param paths (deep: sm.s0.s0.s11 as state11)
116
+ const paramSegIdx = getTraitSmBindingParamSegmentIndex(node);
117
+ if (paramSegIdx !== undefined) {
118
+ if (paramSegIdx === 0 && symKind !== "statemachine")
119
+ continue;
120
+ if (paramSegIdx > 0 && symKind !== "state")
121
+ continue;
122
+ if (symKind === "state" && sym.statePath &&
123
+ paramSegIdx !== sym.statePath.length)
124
+ continue;
125
+ }
126
+ // For trait_sm_operation paths, filter by segment position and trait scope.
127
+ // getTraitSmOpSegmentInfo() returns undefined for excluded segments (events,
128
+ // guard content, "as newName") — those are silently skipped.
129
+ const traitSmOp = getTraitSmOpSegmentInfo(node);
130
+ if (traitSmOp !== undefined) {
131
+ // Kind must match segment position
132
+ if (traitSmOp.segmentIndex === 0 && symKind !== "statemachine")
133
+ continue;
134
+ if (traitSmOp.segmentIndex > 0 && symKind !== "state")
135
+ continue;
136
+ // Trait-side container check: declaration must belong to this trait's SM
137
+ const expectedContainer = `${traitSmOp.traitName}.${traitSmOp.pathSegments[0]}`;
138
+ if (!validContainers.has(expectedContainer))
139
+ continue;
140
+ // State depth check
141
+ if (symKind === "state" && sym.statePath &&
142
+ traitSmOp.segmentIndex !== sym.statePath.length)
143
+ continue;
144
+ }
145
+ else if (
146
+ // If getTraitSmOpSegmentInfo returned undefined but node IS inside trait_sm_operation,
147
+ // it's an excluded segment (event, guard, "as") — skip it
148
+ node.parent?.type === "trait_sm_operation" ||
149
+ (node.parent?.type === "qualified_name" && node.parent?.parent?.type === "trait_sm_operation")) {
150
+ continue;
151
+ }
152
+ // Exclude trace entities under parse-only prefixes (add/remove/cardinality)
153
+ if ((node.parent?.type === "trace_entity" || node.parent?.type === "trace_entity_call") &&
154
+ node.parent?.parent?.type === "trace_statement") {
155
+ const ASSOC_PREFIXES = new Set(["add", "remove", "cardinality"]);
156
+ const traceStmt = node.parent.parent;
157
+ let isAssocPrefix = false;
158
+ for (let i = 0; i < traceStmt.childCount; i++) {
159
+ const child = traceStmt.child(i);
160
+ if (!child)
161
+ continue;
162
+ if (child.type === "trace_entity" || child.type === "trace_entity_call")
163
+ break;
164
+ if (ASSOC_PREFIXES.has(child.type)) {
165
+ isAssocPrefix = true;
166
+ break;
167
+ }
168
+ }
169
+ if (isAssocPrefix)
170
+ continue;
171
+ }
115
172
  // For nested states, disambiguate by path context
116
173
  if (symKind === "state" && sym.statePath && sym.statePath.length >= 1) {
117
174
  const pathCtx = extractPathContextFromNode(node);
118
175
  if (pathCtx) {
119
176
  let preceding = pathCtx.preceding;
120
177
  if (node.parent?.parent?.type === "trait_sm_binding" &&
121
- node.parent?.parent?.childForFieldName("value")?.id ===
122
- node.parent?.id) {
178
+ (node.parent?.parent?.childForFieldName("value")?.id === node.parent?.id ||
179
+ node.parent?.parent?.childForFieldName("param")?.id === node.parent?.id)) {
180
+ preceding = preceding.slice(1);
181
+ }
182
+ // trait_sm_operation: first segment is SM name, strip it for state path matching
183
+ if (node.parent?.parent?.type === "trait_sm_operation" ||
184
+ node.parent?.type === "trait_sm_operation") {
123
185
  preceding = preceding.slice(1);
124
186
  }
125
187
  const targetPrecedingPath = sym.statePath.slice(0, sym.statePath.length - 1);
@@ -205,11 +267,13 @@ function resolveEnclosingScopeFromNode(node, targetKind) {
205
267
  }
206
268
  if (!enclosingClass && targetKind === "method") {
207
269
  const parent = node.parent;
208
- if (parent?.type === "toplevel_code_injection" &&
209
- parent.childForFieldName("operation")?.id === node.id) {
210
- const targetNode = parent.childForFieldName("target");
211
- if (targetNode)
212
- return targetNode.text;
270
+ if (parent?.type === "toplevel_code_injection") {
271
+ const ops = parent.childrenForFieldName?.("operation") ?? [];
272
+ if (ops.some((op) => op.id === node.id)) {
273
+ const targetNode = parent.childForFieldName("target");
274
+ if (targetNode)
275
+ return targetNode.text;
276
+ }
213
277
  }
214
278
  }
215
279
  return enclosingClass;
@@ -275,6 +339,29 @@ function resolveTraitSmBindingValueSM(node) {
275
339
  const firstId = parent.namedChild(0);
276
340
  return firstId?.type === "identifier" ? firstId.text : undefined;
277
341
  }
342
+ function getTraitSmBindingParamSegmentIndex(node) {
343
+ const parent = node.parent;
344
+ if (parent?.type !== "qualified_name")
345
+ return undefined;
346
+ const grandparent = parent.parent;
347
+ if (grandparent?.type !== "trait_sm_binding")
348
+ return undefined;
349
+ if (grandparent.childForFieldName("param")?.id !== parent.id)
350
+ return undefined;
351
+ // Single-segment params don't need index-based filtering
352
+ if (parent.namedChildCount <= 1)
353
+ return undefined;
354
+ let idx = 0;
355
+ for (let i = 0; i < parent.namedChildCount; i++) {
356
+ const child = parent.namedChild(i);
357
+ if (child?.type === "identifier") {
358
+ if (child.id === node.id)
359
+ return idx;
360
+ idx++;
361
+ }
362
+ }
363
+ return undefined;
364
+ }
278
365
  function resolveReferencedSmDefinition(node) {
279
366
  const parent = node.parent;
280
367
  if (parent?.type !== "referenced_statemachine")
@@ -303,6 +390,94 @@ function getTraitSmBindingValueSegmentIndex(node) {
303
390
  }
304
391
  return undefined;
305
392
  }
393
+ /**
394
+ * Determine if a node inside trait_sm_operation is a safe SM/state path segment.
395
+ * Returns undefined for guard content, event segments, and "as newName" targets.
396
+ */
397
+ function getTraitSmOpSegmentInfo(node) {
398
+ const parent = node.parent;
399
+ if (!parent)
400
+ return undefined;
401
+ let opNode;
402
+ // Shape 1: identifier inside qualified_name under trait_sm_operation
403
+ if (parent.type === "qualified_name" && parent.parent?.type === "trait_sm_operation") {
404
+ opNode = parent.parent;
405
+ const segments = [];
406
+ let idx = -1;
407
+ for (let i = 0; i < parent.namedChildCount; i++) {
408
+ const child = parent.namedChild(i);
409
+ if (child?.type === "identifier") {
410
+ if (child.id === node.id)
411
+ idx = segments.length;
412
+ segments.push(child.text);
413
+ }
414
+ }
415
+ if (idx < 0)
416
+ return undefined;
417
+ const hasEventParams = opNode.children.some((c) => c.type === "(");
418
+ const isLastSegment = idx === segments.length - 1;
419
+ const isEventSegment = isLastSegment && hasEventParams;
420
+ if (isEventSegment)
421
+ return undefined; // event — excluded
422
+ const traitName = resolveTraitNameFromOp(opNode);
423
+ if (!traitName)
424
+ return undefined;
425
+ return { segmentIndex: idx, isEventSegment: false, traitName, pathSegments: segments };
426
+ }
427
+ // Shape 2: direct-child identifier of trait_sm_operation
428
+ if (parent.type === "trait_sm_operation") {
429
+ opNode = parent;
430
+ // If operation has a qualified_name child, this identifier is guard content
431
+ if (opNode.namedChildren.some((c) => c.type === "qualified_name")) {
432
+ return undefined;
433
+ }
434
+ // Phase 2 unprefixed form: collect identifiers before "as"
435
+ const identifiers = [];
436
+ let afterAs = false;
437
+ for (let i = 0; i < opNode.childCount; i++) {
438
+ const child = opNode.child(i);
439
+ if (!child)
440
+ continue;
441
+ if (child.type === "as") {
442
+ afterAs = true;
443
+ continue;
444
+ }
445
+ if (child.type === "identifier") {
446
+ if (afterAs) {
447
+ // After "as" — excluded (new name)
448
+ if (child.id === node.id)
449
+ return undefined;
450
+ continue;
451
+ }
452
+ identifiers.push({ id: child.id, text: child.text });
453
+ }
454
+ }
455
+ const idx = identifiers.findIndex((id) => id.id === node.id);
456
+ if (idx < 0)
457
+ return undefined;
458
+ const segments = identifiers.map((id) => id.text);
459
+ const hasEventParams = opNode.children.some((c) => c.type === "(");
460
+ const isLastSegment = idx === segments.length - 1;
461
+ if (isLastSegment && hasEventParams)
462
+ return undefined; // event — excluded
463
+ const traitName = resolveTraitNameFromOp(opNode);
464
+ if (!traitName)
465
+ return undefined;
466
+ return { segmentIndex: idx, isEventSegment: false, traitName, pathSegments: segments };
467
+ }
468
+ return undefined;
469
+ }
470
+ /** Extract the trait name from trait_sm_operation's enclosing type_name. */
471
+ function resolveTraitNameFromOp(opNode) {
472
+ const typeName = opNode.parent; // type_name
473
+ if (typeName?.type !== "type_name")
474
+ return undefined;
475
+ const qn = typeName.childForFieldName("name") ?? typeName.namedChild(0);
476
+ if (qn?.type !== "qualified_name")
477
+ return undefined;
478
+ const lastId = qn.namedChild(qn.namedChildCount - 1);
479
+ return lastId?.type === "identifier" ? lastId.text : undefined;
480
+ }
306
481
  function isInheritanceChain(childClass, parentClass, isAGraph) {
307
482
  const visited = new Set();
308
483
  const queue = [childClass];