sysml-v2-lsp 0.5.1 → 0.7.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 CHANGED
@@ -1,100 +1,188 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.7.0]
4
+
5
+ ### Added
6
+
7
+ - Workspace-wide semantic validation with cross-file symbol indexes (byName, byParent, byQualifiedName, definitionsByName, portsByName)
8
+ - Three new validation rules: redefinition multiplicity, port type compatibility, constraint body references
9
+ - Quick-fix code actions for all three new rules (align multiplicity, switch port endpoint, suggest nearest member)
10
+ - Context-aware completions: port endpoints in `connect` blocks, type annotation filtering, workspace definition symbols
11
+ - Semantic feedback in hover tooltips — shows diagnostics and repair hints at the hovered position
12
+ - Cached semantic diagnostics per document version to avoid redundant revalidation
13
+ - MCP preview tool falls back to cached/loaded documents when `code` parameter is omitted
14
+
15
+ ### Changed
16
+
17
+ - Unused-definition rule narrowed to PartDef/ActionDef, excludes types with base types, promoted from Hint to Warning, now workspace-scoped
18
+ - Grammar updated to OMG "2026-02 - SysML v2 Release" — removed local `end <keyword>` patch in favour of upstream `endFeatureUsage` rule
19
+ - MCP non-visual tools annotated with explicit "NOT Visualization" routing guidance
20
+ - MCP preview response stripped to minimal render data (mermaidMarkup + title)
21
+ - MCP tool routing guidance and aliases expanded for diagnostics, validation, and file-focused preview requests
22
+
23
+ ### Fixed
24
+
25
+ - Semantic validator signal quality: reduced specialization false positives and downgraded low-value unused-definition reports to warnings
26
+ - Document-close diagnostics race: pending validation timers are cancelled and diagnostics publishing is guarded for closed documents
27
+
28
+ ## [0.6.0]
29
+
30
+ ### Added
31
+
32
+ - Shared utilities: `identUtils.ts` for identifier handling, `symbolKindMapping.ts` for LSP SymbolKind mapping
33
+ - Keywords now derived from ANTLR grammar at runtime — no manual list to maintain
34
+ - Grammar support for `end` keyword syntax in interface/connection definitions
35
+ - DFA snapshot infrastructure for parser serialisation
36
+
37
+ ### Changed
38
+
39
+ - Code actions use structured diagnostic data instead of message parsing
40
+ - Semantic tokens provider integrates lexer token types for operators/punctuation
41
+ - Library indexing supports qualified name resolution
42
+ - Parser retries with cleared DFA on error
43
+ - Refactored providers to use shared utility modules
44
+
45
+ ### Removed
46
+
47
+ - Hand-maintained keyword list (replaced by grammar-derived extraction)
48
+
49
+ ## [0.5.1]
50
+
51
+ ### Changed
52
+
53
+ - Semantic validator: library type and feature reference checks
54
+ - Symbol table: improved keyword and redefinition pattern handling
55
+
56
+ ## [0.5.0]
57
+
58
+ ### Changed
59
+
60
+ - Symbol table uses `ruleIndex` instead of `constructor.name` for minification safety
61
+ - Removed committed dist/ build artefacts from repository
62
+
63
+ ## [0.4.1]
64
+
65
+ ### Fixed
66
+
67
+ - Web client graceful shutdown
68
+ - Release pipeline fix
69
+
70
+ ## [0.4.0]
71
+
72
+ ### Added
73
+
74
+ - Web client: browser-based SysML editor (`clients/web/`)
75
+ - Python LSP client: Jupyter notebook demo
76
+
77
+ ### Changed
78
+
79
+ - Library index, MCP server, and symbol table improvements
80
+
81
+ ## [0.3.1]
82
+
83
+ ### Fixed
84
+
85
+ - esbuild: added `keepNames` for debugging
86
+ - Removed committed dist/ build artefacts
87
+
3
88
  ## [0.3.0]
4
89
 
5
90
  ### Added
6
91
 
7
- - Mermaid diagram preview: SysML → Mermaid diagram generation with 6 diagram types (class, activity, state, sequence, interconnection, use-case) and auto-detection
8
- - Mermaid focus mode: filter diagram to a specific element, its children, parent, and related types
9
- - Mermaid diff mode: compare original vs. modified SysML and report structural changes
10
- - Complexity analyzer: structural complexity metrics (nesting depth, coupling, fan-out, documentation coverage) with composite 0–100 index and per-definition hotspots
11
- - Semantic validator: unresolved type references, invalid multiplicity bounds, empty enumerations, duplicate definitions — with standard-library type allow-list
12
- - MCP tool `preview`: generates Mermaid diagrams from SysML with focus/diff support
13
- - MCP tool `getDiagnostics`: returns semantic diagnostics for parsed documents
14
- - MCP tool `getComplexity`: exposes complexity analysis as an MCP tool
15
- - Code action quick-fixes: naming convention (PascalCase/camelCase), missing documentation stub, empty enumeration placeholder, unused definition suppression
16
- - Library type-level indexing: Go-to-Definition into standard library types at exact declaration lines
17
- - Multiplicity extraction from parse tree (`0..*`, `1`, etc.) on symbols
18
- - Documentation extraction from doc/comment nodes on symbols
19
- - Symbol table caching per URI keyed by document version
20
- - Multi-specialization support: comma-separated specialization targets with `:>` and `specializes`
21
- - LSP `sysml/serverStats` request: uptime, memory, and cache statistics
22
- - LSP `sysml/clearCache` request: flush all in-memory caches
23
- - LSP `sysml/status` notifications: begin/end parse progress events
24
- - Language configuration: folding markers (`#region`/`#endregion`), indentation rules, `wordPattern`
25
- - Model stats: lex/parse timing breakdown and complexity report in `sysml/model` response
26
- - New tests: codeActions, complexity, libraryIndex, semantic validation, MCP preview/diagnostics
92
+ - Mermaid diagram preview with 6 diagram types, focus mode, and diff mode
93
+ - Complexity analyser: structural metrics with composite 0–100 index
94
+ - Semantic validator: unresolved types, invalid multiplicity, duplicate definitions
95
+ - MCP tools: `preview`, `getDiagnostics`, `getComplexity`
96
+ - Code action quick-fixes: naming conventions, doc stubs, empty enum placeholders
97
+ - Library type-level indexing with Go-to-Definition into standard library
98
+ - Multiplicity and documentation extraction from parse tree
99
+ - LSP `sysml/serverStats`, `sysml/clearCache`, `sysml/status` requests
27
100
 
28
101
  ### Changed
29
102
 
30
- - MCP `validate` response shape: now returns `syntaxErrors`, `semanticIssues`, and `totalIssues` (was `errors` + `errorCount`)
31
- - Symbol `typeName` → `typeNames` (array) across MCP core and model provider
32
- - Definition provider simplified: word-at-position logic moved inline
33
- - References provider: uses symbol-table–based `findReferences()` instead of cross-file text scanning
34
- - Diagnostics computed synchronously on document change (removed background parse worker thread)
35
- - Symbol table kind inference: direct string comparison replaces regex-based rule matching for minification safety
36
- - Document manager simplified: removed `TextDocuments` integration; parse timing now derived from `ParseResult.timing`
37
- - esbuild: output format changed from ESM (`.mjs`) to CJS (`.js`); simplified to server + MCP + client bundles
38
- - Parser simplified: removed SLL/LL two-stage fallback with `BailErrorStrategy`; single-pass parse
39
- - MCP server: added `instructions` field for tool-call guidance
40
- - Library index: `resolveLibraryPackage()` replaced by `resolveLibraryType()` for type-level lookups
103
+ - MCP `validate` response: `syntaxErrors` + `semanticIssues` (was `errors` + `errorCount`)
104
+ - Symbol `typeName` → `typeNames` (array)
105
+ - Diagnostics computed synchronously (removed background worker)
106
+ - Parser simplified to single-pass (removed SLL/LL fallback)
107
+ - esbuild output changed from ESM to CJS
41
108
 
42
109
  ### Removed
43
110
 
44
- - Background parse worker thread (`parseWorker.mjs`) and DFA warm-up
45
- - `resolveAt()` and `getWordAtPosition()` from symbol table (moved to providers)
46
- - `findTextReferences()` text-scanning reference finder
47
- - Keyword typo validation from diagnostics provider (replaced by semantic validator)
48
- - Several parser and symbol table tests (connection-end parsing, keyword typo, `findTextReferences`)
111
+ - Background parse worker thread and DFA warm-up
112
+ - Text-scanning reference finder (replaced by symbol-table lookups)
49
113
 
50
114
  ## [0.2.0]
51
115
 
52
116
  ### Added
53
117
 
54
- - Custom LSP request (`sysml/model`): full semantic model with scoped queries
55
- - MCP server (`sysml-mcp` CLI): 7 tools, 3 resources, 3 prompts for AI-assisted modelling
56
- - Standard library: 94 bundled SysML v2 / KerML files from OMG release repo
57
- - Inlay hints: ghost text for inferred types and supertypes
58
- - Call hierarchy: action call graph navigation
59
- - Type hierarchy: specialization chain navigation
60
- - Signature help: parameter tooltips for action/calc invocations
61
- - Code lens: reference counts above definitions
62
- - Document links: clickable `import` statements
63
- - Workspace symbols: cross-document symbol search
64
- - Linked editing ranges: simultaneous rename of all occurrences
65
- - Selection ranges: smart expand/shrink selection
66
- - Code actions: quick-fix actions for diagnostics
67
- - Formatting: document and range formatting
68
- - Keyword validation: typo detection with "did you mean?" suggestions
69
- - npm package: `sysml-v2-lsp` distributable for third-party extensions
70
- - Python LSP client: reference JSON-RPC/stdio client
71
- - Parse worker: background ANTLR parsing with DFA warm-up
72
- - `make update-library`: fetch latest standard library from upstream
73
- - `make package-server` / `make test-package`: npm tarball build and validation
118
+ - Custom LSP request `sysml/model` for full semantic model with scoped queries
119
+ - MCP server (`sysml-mcp` CLI): 7 tools, 3 resources, 3 prompts
120
+ - Standard library: 94 bundled SysML v2 / KerML files
121
+ - LSP providers: inlay hints, call/type hierarchy, signature help, code lens, document links, workspace symbols, linked editing, selection ranges, code actions, formatting
122
+ - Keyword validation with "did you mean?" suggestions
123
+ - npm package, Python LSP client, background parse worker
124
+ - `make update-library`, `make package-server`, `make test-package`
74
125
 
75
126
  ### Changed
76
127
 
77
- - Go-to-definition falls back to standard library for unresolved symbols
78
- - Recursive type name extraction in symbol table
79
- - Synthetic `start`/`done` nodes in activity diagram flows
128
+ - Go-to-definition falls back to standard library
80
129
  - Element kind enum expanded to 55 kinds
81
- - esbuild bundles four targets: server, worker, MCP server, VS Code client
130
+
131
+ ## [0.1.7]
132
+
133
+ ### Changed
134
+
135
+ - Keyword validator: expanded SysML element coverage
136
+ - New parser, symbol table, and provider tests
137
+
138
+ ## [0.1.6]
139
+
140
+ ### Fixed
141
+
142
+ - Keyword validation diagnostic messages
143
+ - Python LSP client diagnostics handling
144
+
145
+ ## [0.1.5]
146
+
147
+ ### Added
148
+
149
+ - Inlay hints, call hierarchy improvements
150
+ - Python LSP client with README
151
+ - Client restructured under `clients/vscode/`
152
+
153
+ ## [0.1.4]
154
+
155
+ ### Added
156
+
157
+ - MCP core module extracted from MCP server
158
+ - Constraint parsing tests, grammar refinements
159
+
160
+ ## [0.1.3]
161
+
162
+ ### Fixed
163
+
164
+ - `constructor.name` minification breaking code lens
165
+ - ESM bundles renamed to `.mjs` for Node 20 compatibility
166
+ - Bundled deps moved to devDependencies (zero runtime deps)
167
+
168
+ ## [0.1.2]
169
+
170
+ ### Fixed
171
+
172
+ - Removed unused `antlr4-c3` dependency
173
+
174
+ ## [0.1.1]
175
+
176
+ ### Fixed
177
+
178
+ - Dropped Node 18 from CI (Vite 7 requires Node 20+)
179
+ - Release pipeline and trusted publishing fixes
82
180
 
83
181
  ## [0.1.0]
84
182
 
85
183
  ### Added
86
184
 
87
185
  - Initial LSP server with ANTLR4-based SysML v2 parser
88
- - Diagnostics: syntax error reporting
89
- - Document symbols: outline panel integration
90
- - Hover: element kind, type, and documentation
91
- - Go to definition: navigate to declarations
92
- - Find references: locate all usages
93
- - Code completion: keywords, snippets, symbol suggestions
94
- - Semantic tokens: rich syntax highlighting
95
- - Folding ranges: collapsible blocks and comments
96
- - Rename: symbol rename with reference updates
186
+ - LSP providers: diagnostics, document symbols, hover, go-to-definition, find references, completion, semantic tokens, folding, rename
97
187
  - VS Code Language Client extension
98
- - vitest unit tests
99
- - GitHub Actions CI/CD
100
- - Dev Container support
188
+ - vitest unit tests, GitHub Actions CI/CD, Dev Container