umple-lsp-server 0.4.2 → 1.0.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 +10 -0
- package/README.md +35 -0
- package/completions.scm +9 -3
- package/definitions.scm +5 -0
- package/highlights.scm +487 -0
- package/out/codeActions.d.ts +31 -0
- package/out/codeActions.js +361 -0
- package/out/codeActions.js.map +1 -0
- package/out/completionAnalysis.d.ts +9 -1
- package/out/completionAnalysis.js +1211 -64
- package/out/completionAnalysis.js.map +1 -1
- package/out/completionBuilder.d.ts +1 -1
- package/out/completionBuilder.js +463 -319
- package/out/completionBuilder.js.map +1 -1
- package/out/completionTriggers.d.ts +20 -0
- package/out/completionTriggers.js +69 -0
- package/out/completionTriggers.js.map +1 -0
- package/out/diagnosticSources.d.ts +3 -0
- package/out/diagnosticSources.js +11 -0
- package/out/diagnosticSources.js.map +1 -0
- package/out/diagramNavigation.js +3 -3
- package/out/diagramNavigation.js.map +1 -1
- package/out/documentSymbolBuilder.js +2 -37
- package/out/documentSymbolBuilder.js.map +1 -1
- package/out/formatter.d.ts +13 -1
- package/out/formatter.js +303 -10
- package/out/formatter.js.map +1 -1
- package/out/hoverBuilder.js +90 -23
- package/out/hoverBuilder.js.map +1 -1
- package/out/inlayHints.d.ts +21 -0
- package/out/inlayHints.js +98 -0
- package/out/inlayHints.js.map +1 -0
- package/out/referenceSearch.d.ts +1 -1
- package/out/referenceSearch.js +134 -7
- package/out/referenceSearch.js.map +1 -1
- package/out/resolver.js +82 -3
- package/out/resolver.js.map +1 -1
- package/out/semanticTokens.d.ts +32 -0
- package/out/semanticTokens.js +228 -0
- package/out/semanticTokens.js.map +1 -0
- package/out/server.js +216 -36
- package/out/server.js.map +1 -1
- package/out/snippets.d.ts +39 -0
- package/out/snippets.js +328 -0
- package/out/snippets.js.map +1 -0
- package/out/symbolIndex.d.ts +50 -0
- package/out/symbolIndex.js +170 -7
- package/out/symbolIndex.js.map +1 -1
- package/out/symbolPresentation.d.ts +3 -0
- package/out/symbolPresentation.js +45 -0
- package/out/symbolPresentation.js.map +1 -0
- package/out/symbolTypes.d.ts +1 -0
- package/out/tokenAnalysis.js +77 -4
- package/out/tokenAnalysis.js.map +1 -1
- package/out/tokenTypes.d.ts +8 -1
- package/out/tokenTypes.js +2 -0
- package/out/tokenTypes.js.map +1 -1
- package/out/treeUtils.js +17 -4
- package/out/treeUtils.js.map +1 -1
- package/out/workspaceSymbolBuilder.d.ts +3 -0
- package/out/workspaceSymbolBuilder.js +117 -0
- package/out/workspaceSymbolBuilder.js.map +1 -0
- package/package.json +5 -2
- package/references.scm +31 -3
- package/tree-sitter-umple.wasm +0 -0
- package/out/bin.d.ts +0 -2
- package/out/bin.js +0 -5
- package/out/bin.js.map +0 -1
- package/out/log.d.ts +0 -7
- package/out/log.js +0 -22
- package/out/log.js.map +0 -1
- package/out/tsconfig.tsbuildinfo +0 -1
package/out/formatter.js
CHANGED
|
@@ -10,7 +10,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.expandCompactStates = expandCompactStates;
|
|
11
11
|
exports.computeIndentEdits = computeIndentEdits;
|
|
12
12
|
exports.fixTransitionSpacing = fixTransitionSpacing;
|
|
13
|
+
exports.fixStructuralCommaSpacing = fixStructuralCommaSpacing;
|
|
13
14
|
exports.fixAssociationSpacing = fixAssociationSpacing;
|
|
15
|
+
exports.fixDeclarationAssignmentSpacing = fixDeclarationAssignmentSpacing;
|
|
14
16
|
exports.normalizeTopLevelBlankLines = normalizeTopLevelBlankLines;
|
|
15
17
|
exports.reindentEmbeddedCode = reindentEmbeddedCode;
|
|
16
18
|
exports.getCodeContentRanges = getCodeContentRanges;
|
|
@@ -21,7 +23,7 @@ const TreeSitter = require("web-tree-sitter");
|
|
|
21
23
|
// ── Phase 0: Compact block expansion ────────────────────────────────────────
|
|
22
24
|
/** Allowed child types inside a state body for expansion eligibility. */
|
|
23
25
|
const EXPANSION_ALLOWED_CHILDREN = new Set([
|
|
24
|
-
"transition", "standalone_transition",
|
|
26
|
+
"transition", "standalone_transition", "state_to_state_transition",
|
|
25
27
|
"{", "}", ";", "identifier",
|
|
26
28
|
]);
|
|
27
29
|
/** Node types that disqualify a state from expansion if found as descendants. */
|
|
@@ -55,7 +57,7 @@ function isEligibleForExpansion(stateNode) {
|
|
|
55
57
|
const child = stateNode.child(i);
|
|
56
58
|
const type = child.type;
|
|
57
59
|
if (EXPANSION_ALLOWED_CHILDREN.has(type)) {
|
|
58
|
-
if (type === "transition" || type === "standalone_transition") {
|
|
60
|
+
if (type === "transition" || type === "standalone_transition" || type === "state_to_state_transition") {
|
|
59
61
|
hasTransition = true;
|
|
60
62
|
}
|
|
61
63
|
continue;
|
|
@@ -121,7 +123,7 @@ function expandCompactStates(text, tree) {
|
|
|
121
123
|
const transitionTexts = [];
|
|
122
124
|
for (let i = 0; i < stateNode.childCount; i++) {
|
|
123
125
|
const child = stateNode.child(i);
|
|
124
|
-
if (child.type === "transition" || child.type === "standalone_transition") {
|
|
126
|
+
if (child.type === "transition" || child.type === "standalone_transition" || child.type === "state_to_state_transition") {
|
|
125
127
|
transitionTexts.push(child.text);
|
|
126
128
|
}
|
|
127
129
|
}
|
|
@@ -154,6 +156,7 @@ function computeIndentEdits(text, options, tree) {
|
|
|
154
156
|
const lines = text.split("\n");
|
|
155
157
|
const edits = [];
|
|
156
158
|
const unit = options.insertSpaces ? " ".repeat(options.tabSize) : "\t";
|
|
159
|
+
const multilineListIndents = computeMultilineListIndentMap(lines, options, tree);
|
|
157
160
|
for (let i = 0; i < lines.length; i++) {
|
|
158
161
|
const line = lines[i];
|
|
159
162
|
const trimmed = line.trim();
|
|
@@ -177,7 +180,7 @@ function computeIndentEdits(text, options, tree) {
|
|
|
177
180
|
}
|
|
178
181
|
depth = Math.max(0, depth - leadingCloses);
|
|
179
182
|
// Compute expected indent
|
|
180
|
-
const expected = unit.repeat(depth);
|
|
183
|
+
const expected = multilineListIndents.get(i) ?? unit.repeat(depth);
|
|
181
184
|
const currentIndent = line.substring(0, firstNonWs);
|
|
182
185
|
// Only emit edit if indent differs
|
|
183
186
|
if (currentIndent !== expected) {
|
|
@@ -186,11 +189,155 @@ function computeIndentEdits(text, options, tree) {
|
|
|
186
189
|
}
|
|
187
190
|
return edits;
|
|
188
191
|
}
|
|
192
|
+
function computeMultilineListIndentMap(lines, options, tree) {
|
|
193
|
+
const overrides = new Map();
|
|
194
|
+
const setOverride = (row, indent, node, priority) => {
|
|
195
|
+
if (row < 0 || row >= lines.length)
|
|
196
|
+
return;
|
|
197
|
+
if (lines[row].trim().length === 0)
|
|
198
|
+
return;
|
|
199
|
+
const spanRows = node.endPosition.row - node.startPosition.row;
|
|
200
|
+
const existing = overrides.get(row);
|
|
201
|
+
if (!existing ||
|
|
202
|
+
spanRows < existing.spanRows ||
|
|
203
|
+
(spanRows === existing.spanRows && priority > existing.priority)) {
|
|
204
|
+
overrides.set(row, { indent, spanRows, priority });
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
const getBaseIndentColumns = (row) => {
|
|
208
|
+
const existing = overrides.get(row);
|
|
209
|
+
if (existing) {
|
|
210
|
+
return measureIndentColumns(existing.indent, options.tabSize);
|
|
211
|
+
}
|
|
212
|
+
return computeExpectedStructuralIndentColumns(lines, options, tree, row);
|
|
213
|
+
};
|
|
214
|
+
const visit = (node) => {
|
|
215
|
+
if (MULTILINE_LIST_NODES.has(node.type)) {
|
|
216
|
+
addMultilineListIndentOverrides(node, lines, options, getBaseIndentColumns, setOverride);
|
|
217
|
+
}
|
|
218
|
+
addParamListClosingIndentOverride(node, lines, options, getBaseIndentColumns, setOverride);
|
|
219
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
220
|
+
visit(node.child(i));
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
visit(tree.rootNode);
|
|
224
|
+
return new Map(Array.from(overrides, ([row, value]) => [row, value.indent]));
|
|
225
|
+
}
|
|
226
|
+
function addMultilineListIndentOverrides(node, lines, options, getBaseIndentColumns, setOverride) {
|
|
227
|
+
const startRow = node.startPosition.row;
|
|
228
|
+
const endRow = node.endPosition.row;
|
|
229
|
+
if (startRow === endRow)
|
|
230
|
+
return;
|
|
231
|
+
if (!hasDirectCommaChild(node))
|
|
232
|
+
return;
|
|
233
|
+
const baseRow = getMultilineListBaseRow(node);
|
|
234
|
+
if (baseRow === null)
|
|
235
|
+
return;
|
|
236
|
+
const baseColumns = getBaseIndentColumns(baseRow);
|
|
237
|
+
const baseIndent = buildIndent(baseColumns, options);
|
|
238
|
+
const itemIndent = buildIndent(baseColumns + options.tabSize, options);
|
|
239
|
+
const closingDelimiter = getMultilineListClosingDelimiter(node.type);
|
|
240
|
+
for (let row = Math.max(startRow, baseRow + 1); row <= endRow; row++) {
|
|
241
|
+
const trimmed = lines[row]?.trimStart() ?? "";
|
|
242
|
+
if (!trimmed)
|
|
243
|
+
continue;
|
|
244
|
+
if (closingDelimiter && trimmed.startsWith(closingDelimiter)) {
|
|
245
|
+
setOverride(row, baseIndent, node, 40);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
setOverride(row, itemIndent, node, 20);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
function addParamListClosingIndentOverride(node, lines, options, getBaseIndentColumns, setOverride) {
|
|
253
|
+
if (!hasDirectChildOfType(node, "param_list"))
|
|
254
|
+
return;
|
|
255
|
+
const openParen = firstDirectChildOfType(node, "(");
|
|
256
|
+
const closeParen = lastDirectChildOfType(node, ")");
|
|
257
|
+
if (!openParen || !closeParen)
|
|
258
|
+
return;
|
|
259
|
+
if (openParen.startPosition.row === closeParen.startPosition.row)
|
|
260
|
+
return;
|
|
261
|
+
const closeRow = closeParen.startPosition.row;
|
|
262
|
+
const trimmed = lines[closeRow]?.trimStart() ?? "";
|
|
263
|
+
if (!trimmed.startsWith(")"))
|
|
264
|
+
return;
|
|
265
|
+
const baseColumns = getBaseIndentColumns(openParen.startPosition.row);
|
|
266
|
+
setOverride(closeRow, buildIndent(baseColumns, options), node, 50);
|
|
267
|
+
}
|
|
268
|
+
function computeExpectedStructuralIndentColumns(lines, options, tree, row) {
|
|
269
|
+
const line = lines[row] ?? "";
|
|
270
|
+
if (!line.trim())
|
|
271
|
+
return getLineIndentColumns(line, options.tabSize);
|
|
272
|
+
const firstNonWs = line.length - line.trimStart().length;
|
|
273
|
+
let depth = (0, formatRules_1.computeStructuralDepth)(tree, row, firstNonWs);
|
|
274
|
+
const trimmed = line.trim();
|
|
275
|
+
let leadingCloses = 0;
|
|
276
|
+
for (const ch of trimmed) {
|
|
277
|
+
if (ch === "}")
|
|
278
|
+
leadingCloses++;
|
|
279
|
+
else
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
depth = Math.max(0, depth - leadingCloses);
|
|
283
|
+
return depth * options.tabSize;
|
|
284
|
+
}
|
|
285
|
+
function hasDirectCommaChild(node) {
|
|
286
|
+
return hasDirectChildOfType(node, ",");
|
|
287
|
+
}
|
|
288
|
+
function hasDirectChildOfType(node, type) {
|
|
289
|
+
return firstDirectChildOfType(node, type) !== null;
|
|
290
|
+
}
|
|
291
|
+
function firstDirectChildOfType(node, type) {
|
|
292
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
293
|
+
const child = node.child(i);
|
|
294
|
+
if (child?.type === type)
|
|
295
|
+
return child;
|
|
296
|
+
}
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
299
|
+
function lastDirectChildOfType(node, type) {
|
|
300
|
+
for (let i = node.childCount - 1; i >= 0; i--) {
|
|
301
|
+
const child = node.child(i);
|
|
302
|
+
if (child?.type === type)
|
|
303
|
+
return child;
|
|
304
|
+
}
|
|
305
|
+
return null;
|
|
306
|
+
}
|
|
307
|
+
function getMultilineListBaseRow(node) {
|
|
308
|
+
if (node.type === "param_list") {
|
|
309
|
+
const openParen = node.parent ? firstDirectChildOfType(node.parent, "(") : null;
|
|
310
|
+
return openParen?.startPosition.row ?? node.startPosition.row;
|
|
311
|
+
}
|
|
312
|
+
const opener = node.type === "template_list"
|
|
313
|
+
? firstDirectChildOfType(node, "(")
|
|
314
|
+
: node.type === "type_name" || node.type === "trait_parameters"
|
|
315
|
+
? firstDirectChildOfType(node, "<")
|
|
316
|
+
: node.type === "key_definition" || node.type === "enumerated_attribute"
|
|
317
|
+
? firstDirectChildOfType(node, "{")
|
|
318
|
+
: null;
|
|
319
|
+
return opener?.startPosition.row ?? node.startPosition.row;
|
|
320
|
+
}
|
|
321
|
+
function getMultilineListClosingDelimiter(nodeType) {
|
|
322
|
+
if (nodeType === "type_name" || nodeType === "trait_parameters")
|
|
323
|
+
return ">";
|
|
324
|
+
if (nodeType === "template_list")
|
|
325
|
+
return ")";
|
|
326
|
+
if (nodeType === "key_definition" || nodeType === "enumerated_attribute")
|
|
327
|
+
return "}";
|
|
328
|
+
if (nodeType === "trace_statement")
|
|
329
|
+
return "}";
|
|
330
|
+
return null;
|
|
331
|
+
}
|
|
332
|
+
function getLineIndentColumns(line, tabSize) {
|
|
333
|
+
const indentChars = line.length - line.trimStart().length;
|
|
334
|
+
return measureIndentColumns(line.substring(0, indentChars), tabSize);
|
|
335
|
+
}
|
|
189
336
|
// ── Phase 2: Targeted fixups ────────────────────────────────────────────────
|
|
190
337
|
/** Node types that contain a `->` arrow whose surrounding whitespace should be normalized. */
|
|
191
|
-
const ARROW_NODES = new Set(["transition", "standalone_transition"]);
|
|
338
|
+
const ARROW_NODES = new Set(["transition", "standalone_transition", "state_to_state_transition"]);
|
|
192
339
|
/**
|
|
193
|
-
* Normalize whitespace around `->` in transition and
|
|
340
|
+
* Normalize whitespace around `->` in transition and standalone/state-to-state transition nodes.
|
|
194
341
|
* Only handles single-line nodes. Leaves event, guard, action, and target text verbatim.
|
|
195
342
|
*/
|
|
196
343
|
function fixTransitionSpacing(text, tree) {
|
|
@@ -222,11 +369,11 @@ function fixTransitionSpacing(text, tree) {
|
|
|
222
369
|
// Don't walk past line indentation — that belongs to computeIndentEdits().
|
|
223
370
|
const indentEnd = line.search(/\S/);
|
|
224
371
|
let wsStart = arrowCol;
|
|
225
|
-
while (wsStart > 0 && wsStart > indentEnd && line[wsStart - 1]
|
|
372
|
+
while (wsStart > 0 && wsStart > indentEnd && isHorizontalWhitespace(line[wsStart - 1])) {
|
|
226
373
|
wsStart--;
|
|
227
374
|
}
|
|
228
375
|
let wsEnd = arrowEndCol;
|
|
229
|
-
while (wsEnd < line.length && line[wsEnd]
|
|
376
|
+
while (wsEnd < line.length && isHorizontalWhitespace(line[wsEnd])) {
|
|
230
377
|
wsEnd++;
|
|
231
378
|
}
|
|
232
379
|
const currentRegion = line.substring(wsStart, wsEnd);
|
|
@@ -246,6 +393,101 @@ function fixTransitionSpacing(text, tree) {
|
|
|
246
393
|
}
|
|
247
394
|
/** Node types that contain an `arrow` child whose surrounding whitespace should be normalized. */
|
|
248
395
|
const ASSOC_NODES = new Set(["association_inline", "association_member"]);
|
|
396
|
+
const DECLARATION_ASSIGNMENT_NODES = new Set([
|
|
397
|
+
"attribute_declaration",
|
|
398
|
+
"const_declaration",
|
|
399
|
+
]);
|
|
400
|
+
const STRUCTURAL_EQUALS_NODES = new Set([
|
|
401
|
+
"tracer_directive",
|
|
402
|
+
]);
|
|
403
|
+
const STRUCTURAL_COMMA_NODES = new Set([
|
|
404
|
+
"use_statement",
|
|
405
|
+
"isa_type_list",
|
|
406
|
+
"filter_value",
|
|
407
|
+
"filter_combined_value",
|
|
408
|
+
"filter_namespace_stmt",
|
|
409
|
+
"param_list",
|
|
410
|
+
"type_name",
|
|
411
|
+
"type_list",
|
|
412
|
+
"trait_parameters",
|
|
413
|
+
"enum_definition",
|
|
414
|
+
"method_signature",
|
|
415
|
+
"method_declaration",
|
|
416
|
+
"abstract_method_declaration",
|
|
417
|
+
"before_after",
|
|
418
|
+
"toplevel_code_injection",
|
|
419
|
+
"code_langs",
|
|
420
|
+
"key_definition",
|
|
421
|
+
"enumerated_attribute",
|
|
422
|
+
"req_implementation",
|
|
423
|
+
"trace_statement",
|
|
424
|
+
"template_list",
|
|
425
|
+
"tracer_directive",
|
|
426
|
+
]);
|
|
427
|
+
const MULTILINE_LIST_NODES = new Set([
|
|
428
|
+
"use_statement",
|
|
429
|
+
"isa_type_list",
|
|
430
|
+
"filter_value",
|
|
431
|
+
"filter_combined_value",
|
|
432
|
+
"filter_namespace_stmt",
|
|
433
|
+
"param_list",
|
|
434
|
+
"type_name",
|
|
435
|
+
"type_list",
|
|
436
|
+
"trait_parameters",
|
|
437
|
+
"code_langs",
|
|
438
|
+
"key_definition",
|
|
439
|
+
"enumerated_attribute",
|
|
440
|
+
"req_implementation",
|
|
441
|
+
"trace_statement",
|
|
442
|
+
"template_list",
|
|
443
|
+
]);
|
|
444
|
+
function isHorizontalWhitespace(ch) {
|
|
445
|
+
return ch === " " || ch === "\t";
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Normalize commas in selected structural lists.
|
|
449
|
+
* This deliberately excludes method bodies and expression-like text; code commas
|
|
450
|
+
* are inside code_content and are not parser-visible children here.
|
|
451
|
+
*/
|
|
452
|
+
function fixStructuralCommaSpacing(text, tree) {
|
|
453
|
+
const lines = text.split("\n");
|
|
454
|
+
const edits = [];
|
|
455
|
+
const visit = (node) => {
|
|
456
|
+
if (STRUCTURAL_COMMA_NODES.has(node.type)) {
|
|
457
|
+
for (let c = 0; c < node.childCount; c++) {
|
|
458
|
+
const child = node.child(c);
|
|
459
|
+
if (!child || child.type !== ",")
|
|
460
|
+
continue;
|
|
461
|
+
const row = child.startPosition.row;
|
|
462
|
+
if (row !== child.endPosition.row)
|
|
463
|
+
continue;
|
|
464
|
+
const commaCol = child.startPosition.column;
|
|
465
|
+
const commaEndCol = child.endPosition.column;
|
|
466
|
+
const line = lines[row];
|
|
467
|
+
if (line.substring(commaEndCol).trim().length === 0)
|
|
468
|
+
continue;
|
|
469
|
+
let wsStart = commaCol;
|
|
470
|
+
while (wsStart > 0 && isHorizontalWhitespace(line[wsStart - 1])) {
|
|
471
|
+
wsStart--;
|
|
472
|
+
}
|
|
473
|
+
let wsEnd = commaEndCol;
|
|
474
|
+
while (wsEnd < line.length && isHorizontalWhitespace(line[wsEnd])) {
|
|
475
|
+
wsEnd++;
|
|
476
|
+
}
|
|
477
|
+
const currentRegion = line.substring(wsStart, wsEnd);
|
|
478
|
+
const expectedRegion = ", ";
|
|
479
|
+
if (currentRegion !== expectedRegion) {
|
|
480
|
+
edits.push(node_1.TextEdit.replace(node_1.Range.create(node_1.Position.create(row, wsStart), node_1.Position.create(row, wsEnd)), expectedRegion));
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
485
|
+
visit(node.child(i));
|
|
486
|
+
}
|
|
487
|
+
};
|
|
488
|
+
visit(tree.rootNode);
|
|
489
|
+
return edits;
|
|
490
|
+
}
|
|
249
491
|
/**
|
|
250
492
|
* Normalize whitespace around the arrow in association_inline and association_member nodes.
|
|
251
493
|
* Only handles single-line nodes. Same child-walking approach as fixTransitionSpacing.
|
|
@@ -275,11 +517,11 @@ function fixAssociationSpacing(text, tree) {
|
|
|
275
517
|
const line = lines[startRow];
|
|
276
518
|
// Find whitespace region around the arrow
|
|
277
519
|
let wsStart = arrowCol;
|
|
278
|
-
while (wsStart > 0 && line[wsStart - 1]
|
|
520
|
+
while (wsStart > 0 && isHorizontalWhitespace(line[wsStart - 1])) {
|
|
279
521
|
wsStart--;
|
|
280
522
|
}
|
|
281
523
|
let wsEnd = arrowEndCol;
|
|
282
|
-
while (wsEnd < line.length && line[wsEnd]
|
|
524
|
+
while (wsEnd < line.length && isHorizontalWhitespace(line[wsEnd])) {
|
|
283
525
|
wsEnd++;
|
|
284
526
|
}
|
|
285
527
|
const currentRegion = line.substring(wsStart, wsEnd);
|
|
@@ -297,6 +539,52 @@ function fixAssociationSpacing(text, tree) {
|
|
|
297
539
|
visit(tree.rootNode);
|
|
298
540
|
return edits;
|
|
299
541
|
}
|
|
542
|
+
/**
|
|
543
|
+
* Normalize whitespace around structural declaration assignment (`=`) tokens.
|
|
544
|
+
* Only touches parser-visible assignment children in attributes and constants;
|
|
545
|
+
* embedded code bodies and expression operators are intentionally ignored.
|
|
546
|
+
*/
|
|
547
|
+
function fixDeclarationAssignmentSpacing(text, tree) {
|
|
548
|
+
const lines = text.split("\n");
|
|
549
|
+
const edits = [];
|
|
550
|
+
const visit = (node) => {
|
|
551
|
+
if (DECLARATION_ASSIGNMENT_NODES.has(node.type) || STRUCTURAL_EQUALS_NODES.has(node.type)) {
|
|
552
|
+
const startRow = node.startPosition.row;
|
|
553
|
+
const endRow = node.endPosition.row;
|
|
554
|
+
if (startRow !== endRow)
|
|
555
|
+
return;
|
|
556
|
+
for (let c = 0; c < node.childCount; c++) {
|
|
557
|
+
const child = node.child(c);
|
|
558
|
+
if (!child || child.type !== "=")
|
|
559
|
+
continue;
|
|
560
|
+
const equalsCol = child.startPosition.column;
|
|
561
|
+
const equalsEndCol = child.endPosition.column;
|
|
562
|
+
const line = lines[startRow];
|
|
563
|
+
let wsStart = equalsCol;
|
|
564
|
+
while (wsStart > 0 && isHorizontalWhitespace(line[wsStart - 1])) {
|
|
565
|
+
wsStart--;
|
|
566
|
+
}
|
|
567
|
+
let wsEnd = equalsEndCol;
|
|
568
|
+
while (wsEnd < line.length && isHorizontalWhitespace(line[wsEnd])) {
|
|
569
|
+
wsEnd++;
|
|
570
|
+
}
|
|
571
|
+
const currentRegion = line.substring(wsStart, wsEnd);
|
|
572
|
+
const expectedRegion = " = ";
|
|
573
|
+
if (currentRegion !== expectedRegion) {
|
|
574
|
+
edits.push(node_1.TextEdit.replace(node_1.Range.create(node_1.Position.create(startRow, wsStart), node_1.Position.create(startRow, wsEnd)), expectedRegion));
|
|
575
|
+
}
|
|
576
|
+
if (DECLARATION_ASSIGNMENT_NODES.has(node.type))
|
|
577
|
+
break;
|
|
578
|
+
}
|
|
579
|
+
return;
|
|
580
|
+
}
|
|
581
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
582
|
+
visit(node.child(i));
|
|
583
|
+
}
|
|
584
|
+
};
|
|
585
|
+
visit(tree.rootNode);
|
|
586
|
+
return edits;
|
|
587
|
+
}
|
|
300
588
|
/**
|
|
301
589
|
* Normalize blank lines between top-level declarations in source_file.
|
|
302
590
|
* Ensures exactly 1 blank line between consecutive top-level named children.
|
|
@@ -321,6 +609,11 @@ function normalizeTopLevelBlankLines(text, tree) {
|
|
|
321
609
|
for (let i = 0; i < topDecls.length - 1; i++) {
|
|
322
610
|
const prevEnd = topDecls[i].endRow;
|
|
323
611
|
const nextStart = topDecls[i + 1].startRow;
|
|
612
|
+
// Multiple top-level declarations can legally appear on one physical line
|
|
613
|
+
// (`use f1; use f2;`). This pass only normalizes inter-line gaps; splitting
|
|
614
|
+
// same-line declarations is a separate, higher-risk rewrite.
|
|
615
|
+
if (nextStart <= prevEnd)
|
|
616
|
+
continue;
|
|
324
617
|
const gap = nextStart - prevEnd - 1; // number of lines between them
|
|
325
618
|
if (gap === 1)
|
|
326
619
|
continue; // Already correct: exactly 1 blank line
|
package/out/formatter.js.map
CHANGED
|
@@ -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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"}
|
package/out/hoverBuilder.js
CHANGED
|
@@ -77,6 +77,27 @@ function buildAttributeHover(sym, defNode) {
|
|
|
77
77
|
}
|
|
78
78
|
return "```umple\n" + parts.join(" ") + "\n```" + extra;
|
|
79
79
|
}
|
|
80
|
+
function buildPortHover(sym, defNode) {
|
|
81
|
+
const parts = [];
|
|
82
|
+
const visibility = defNode.children.find((c) => c.type === "visibility");
|
|
83
|
+
if (visibility)
|
|
84
|
+
parts.push(visibility.text);
|
|
85
|
+
const conjugated = defNode.children.find((c) => c.text === "conjugated");
|
|
86
|
+
if (conjugated)
|
|
87
|
+
parts.push("conjugated");
|
|
88
|
+
const direction = defNode.children.find((c) => c.text === "in" || c.text === "out" || c.text === "port");
|
|
89
|
+
if (direction)
|
|
90
|
+
parts.push(direction.text);
|
|
91
|
+
const typeNode = defNode.children.find((c) => c.type === "type_name");
|
|
92
|
+
if (typeNode)
|
|
93
|
+
parts.push(typeNode.text);
|
|
94
|
+
parts.push(sym.name);
|
|
95
|
+
let result = "```umple\n" + parts.join(" ") + "\n```";
|
|
96
|
+
if (sym.container) {
|
|
97
|
+
result += `\n\n*in class ${sym.container}*`;
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
80
101
|
function buildConstHover(sym, defNode) {
|
|
81
102
|
const typeNode = defNode.childForFieldName("type");
|
|
82
103
|
const typeName = typeNode ? typeNode.text : "String";
|
|
@@ -101,7 +122,68 @@ function buildConstHover(sym, defNode) {
|
|
|
101
122
|
}
|
|
102
123
|
return result;
|
|
103
124
|
}
|
|
125
|
+
function buildParamString(defNode) {
|
|
126
|
+
const paramList = defNode.children.find((c) => c.type === "param_list");
|
|
127
|
+
if (!paramList)
|
|
128
|
+
return "";
|
|
129
|
+
const params = [];
|
|
130
|
+
for (const p of paramList.children) {
|
|
131
|
+
if (p.type !== "param")
|
|
132
|
+
continue;
|
|
133
|
+
const pName = p.childForFieldName("name");
|
|
134
|
+
const pType = p.children.find((c) => c.type === "type_name");
|
|
135
|
+
if (pType && pName) {
|
|
136
|
+
params.push(`${pType.text} ${pName.text}`);
|
|
137
|
+
}
|
|
138
|
+
else if (pName) {
|
|
139
|
+
params.push(pName.text);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return params.join(", ");
|
|
143
|
+
}
|
|
144
|
+
function buildEventHover(sym, defNode) {
|
|
145
|
+
const paramStr = buildParamString(defNode);
|
|
146
|
+
let result = "```umple\n" + `${sym.name}(${paramStr})` + "\n```";
|
|
147
|
+
if (sym.container) {
|
|
148
|
+
result += `\n\n*event in ${sym.container}*`;
|
|
149
|
+
}
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
function methodContainerSuffix(sym) {
|
|
153
|
+
return sym.container ? `\n\n*in class ${sym.container}*` : "";
|
|
154
|
+
}
|
|
155
|
+
function buildActiveMethodHover(sym, defNode) {
|
|
156
|
+
const parts = [];
|
|
157
|
+
const vis = defNode.children.find((c) => c.type === "visibility");
|
|
158
|
+
if (vis)
|
|
159
|
+
parts.push(vis.text);
|
|
160
|
+
const returnType = defNode.childForFieldName("return_type");
|
|
161
|
+
if (returnType)
|
|
162
|
+
parts.push(returnType.text);
|
|
163
|
+
const activeModifier = defNode.children.find((c) => c.text === "atomic" || c.text === "synchronous" || c.text === "intercept");
|
|
164
|
+
if (activeModifier)
|
|
165
|
+
parts.push(activeModifier.text);
|
|
166
|
+
parts.push("active");
|
|
167
|
+
const hasParens = defNode.children.some((c) => c.text === "(");
|
|
168
|
+
const paramStr = buildParamString(defNode);
|
|
169
|
+
parts.push(hasParens ? `${sym.name}(${paramStr})` : sym.name);
|
|
170
|
+
return "```umple\n" + parts.join(" ") + "\n```" + methodContainerSuffix(sym);
|
|
171
|
+
}
|
|
172
|
+
function buildTestCaseHover(sym, defNode) {
|
|
173
|
+
const prefix = defNode.children.find((c) => c.type === "test_case_prefix");
|
|
174
|
+
const parts = [];
|
|
175
|
+
if (prefix)
|
|
176
|
+
parts.push(prefix.text);
|
|
177
|
+
parts.push("test", sym.name);
|
|
178
|
+
return "```umple\n" + parts.join(" ") + "\n```" + methodContainerSuffix(sym);
|
|
179
|
+
}
|
|
104
180
|
function buildMethodHover(sym, defNode) {
|
|
181
|
+
if (defNode.type === "active_method") {
|
|
182
|
+
return buildActiveMethodHover(sym, defNode);
|
|
183
|
+
}
|
|
184
|
+
if (defNode.type === "test_case") {
|
|
185
|
+
return buildTestCaseHover(sym, defNode);
|
|
186
|
+
}
|
|
105
187
|
const parts = [];
|
|
106
188
|
const vis = defNode.children.find((c) => c.type === "visibility");
|
|
107
189
|
if (vis)
|
|
@@ -119,30 +201,9 @@ function buildMethodHover(sym, defNode) {
|
|
|
119
201
|
else {
|
|
120
202
|
parts.push("void");
|
|
121
203
|
}
|
|
122
|
-
const
|
|
123
|
-
let paramStr = "";
|
|
124
|
-
if (paramList) {
|
|
125
|
-
const params = [];
|
|
126
|
-
for (const p of paramList.children) {
|
|
127
|
-
if (p.type === "param") {
|
|
128
|
-
const pName = p.childForFieldName("name");
|
|
129
|
-
const pType = p.children.find((c) => c.type === "type_name");
|
|
130
|
-
if (pType && pName) {
|
|
131
|
-
params.push(`${pType.text} ${pName.text}`);
|
|
132
|
-
}
|
|
133
|
-
else if (pName) {
|
|
134
|
-
params.push(pName.text);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
paramStr = params.join(", ");
|
|
139
|
-
}
|
|
204
|
+
const paramStr = buildParamString(defNode);
|
|
140
205
|
parts.push(`${sym.name}(${paramStr})`);
|
|
141
|
-
|
|
142
|
-
if (sym.container) {
|
|
143
|
-
extra = `\n\n*in class ${sym.container}*`;
|
|
144
|
-
}
|
|
145
|
-
return "```umple\n" + parts.join(" ") + "\n```" + extra;
|
|
206
|
+
return "```umple\n" + parts.join(" ") + "\n```" + methodContainerSuffix(sym);
|
|
146
207
|
}
|
|
147
208
|
function buildStateMachineHover(sym, allSymbols) {
|
|
148
209
|
const stateNames = [];
|
|
@@ -282,12 +343,18 @@ function buildHoverMarkdown(sym, allSymbols, hoverCtx) {
|
|
|
282
343
|
case "attribute":
|
|
283
344
|
result = buildAttributeHover(sym, defNode);
|
|
284
345
|
break;
|
|
346
|
+
case "port":
|
|
347
|
+
result = buildPortHover(sym, defNode);
|
|
348
|
+
break;
|
|
285
349
|
case "const":
|
|
286
350
|
result = buildConstHover(sym, defNode);
|
|
287
351
|
break;
|
|
288
352
|
case "method":
|
|
289
353
|
result = buildMethodHover(sym, defNode);
|
|
290
354
|
break;
|
|
355
|
+
case "event":
|
|
356
|
+
result = buildEventHover(sym, defNode);
|
|
357
|
+
break;
|
|
291
358
|
case "statemachine":
|
|
292
359
|
result = buildStateMachineHover(sym, allSymbols);
|
|
293
360
|
break;
|