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 +160 -72
- package/dist/server/mcpServer.js +90 -85
- package/dist/server/server.js +110 -79
- package/package.json +2 -2
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
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
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
|
|
31
|
-
- Symbol `typeName` → `typeNames` (array)
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
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
|
|
45
|
-
-
|
|
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
|
|
55
|
-
- MCP server (`sysml-mcp` CLI): 7 tools, 3 resources, 3 prompts
|
|
56
|
-
- Standard library: 94 bundled SysML v2 / KerML files
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
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
|
|
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
|
-
|
|
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
|
-
-
|
|
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
|