sysml-v2-lsp 0.5.1 → 0.6.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,163 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.6.0]
4
+
5
+ ### Added
6
+
7
+ - Shared utilities: `identUtils.ts` for identifier handling, `symbolKindMapping.ts` for LSP SymbolKind mapping
8
+ - Keywords now derived from ANTLR grammar at runtime — no manual list to maintain
9
+ - Grammar support for `end` keyword syntax in interface/connection definitions
10
+ - DFA snapshot infrastructure for parser serialisation
11
+
12
+ ### Changed
13
+
14
+ - Code actions use structured diagnostic data instead of message parsing
15
+ - Semantic tokens provider integrates lexer token types for operators/punctuation
16
+ - Library indexing supports qualified name resolution
17
+ - Parser retries with cleared DFA on error
18
+ - Refactored providers to use shared utility modules
19
+
20
+ ### Removed
21
+
22
+ - Hand-maintained keyword list (replaced by grammar-derived extraction)
23
+
24
+ ## [0.5.1]
25
+
26
+ ### Changed
27
+
28
+ - Semantic validator: library type and feature reference checks
29
+ - Symbol table: improved keyword and redefinition pattern handling
30
+
31
+ ## [0.5.0]
32
+
33
+ ### Changed
34
+
35
+ - Symbol table uses `ruleIndex` instead of `constructor.name` for minification safety
36
+ - Removed committed dist/ build artefacts from repository
37
+
38
+ ## [0.4.1]
39
+
40
+ ### Fixed
41
+
42
+ - Web client graceful shutdown
43
+ - Release pipeline fix
44
+
45
+ ## [0.4.0]
46
+
47
+ ### Added
48
+
49
+ - Web client: browser-based SysML editor (`clients/web/`)
50
+ - Python LSP client: Jupyter notebook demo
51
+
52
+ ### Changed
53
+
54
+ - Library index, MCP server, and symbol table improvements
55
+
56
+ ## [0.3.1]
57
+
58
+ ### Fixed
59
+
60
+ - esbuild: added `keepNames` for debugging
61
+ - Removed committed dist/ build artefacts
62
+
3
63
  ## [0.3.0]
4
64
 
5
65
  ### Added
6
66
 
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
67
+ - Mermaid diagram preview with 6 diagram types, focus mode, and diff mode
68
+ - Complexity analyser: structural metrics with composite 0–100 index
69
+ - Semantic validator: unresolved types, invalid multiplicity, duplicate definitions
70
+ - MCP tools: `preview`, `getDiagnostics`, `getComplexity`
71
+ - Code action quick-fixes: naming conventions, doc stubs, empty enum placeholders
72
+ - Library type-level indexing with Go-to-Definition into standard library
73
+ - Multiplicity and documentation extraction from parse tree
74
+ - LSP `sysml/serverStats`, `sysml/clearCache`, `sysml/status` requests
27
75
 
28
76
  ### Changed
29
77
 
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
78
+ - MCP `validate` response: `syntaxErrors` + `semanticIssues` (was `errors` + `errorCount`)
79
+ - Symbol `typeName` → `typeNames` (array)
80
+ - Diagnostics computed synchronously (removed background worker)
81
+ - Parser simplified to single-pass (removed SLL/LL fallback)
82
+ - esbuild output changed from ESM to CJS
41
83
 
42
84
  ### Removed
43
85
 
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`)
86
+ - Background parse worker thread and DFA warm-up
87
+ - Text-scanning reference finder (replaced by symbol-table lookups)
49
88
 
50
89
  ## [0.2.0]
51
90
 
52
91
  ### Added
53
92
 
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
93
+ - Custom LSP request `sysml/model` for full semantic model with scoped queries
94
+ - MCP server (`sysml-mcp` CLI): 7 tools, 3 resources, 3 prompts
95
+ - Standard library: 94 bundled SysML v2 / KerML files
96
+ - LSP providers: inlay hints, call/type hierarchy, signature help, code lens, document links, workspace symbols, linked editing, selection ranges, code actions, formatting
97
+ - Keyword validation with "did you mean?" suggestions
98
+ - npm package, Python LSP client, background parse worker
99
+ - `make update-library`, `make package-server`, `make test-package`
74
100
 
75
101
  ### Changed
76
102
 
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
103
+ - Go-to-definition falls back to standard library
80
104
  - Element kind enum expanded to 55 kinds
81
- - esbuild bundles four targets: server, worker, MCP server, VS Code client
105
+
106
+ ## [0.1.7]
107
+
108
+ ### Changed
109
+
110
+ - Keyword validator: expanded SysML element coverage
111
+ - New parser, symbol table, and provider tests
112
+
113
+ ## [0.1.6]
114
+
115
+ ### Fixed
116
+
117
+ - Keyword validation diagnostic messages
118
+ - Python LSP client diagnostics handling
119
+
120
+ ## [0.1.5]
121
+
122
+ ### Added
123
+
124
+ - Inlay hints, call hierarchy improvements
125
+ - Python LSP client with README
126
+ - Client restructured under `clients/vscode/`
127
+
128
+ ## [0.1.4]
129
+
130
+ ### Added
131
+
132
+ - MCP core module extracted from MCP server
133
+ - Constraint parsing tests, grammar refinements
134
+
135
+ ## [0.1.3]
136
+
137
+ ### Fixed
138
+
139
+ - `constructor.name` minification breaking code lens
140
+ - ESM bundles renamed to `.mjs` for Node 20 compatibility
141
+ - Bundled deps moved to devDependencies (zero runtime deps)
142
+
143
+ ## [0.1.2]
144
+
145
+ ### Fixed
146
+
147
+ - Removed unused `antlr4-c3` dependency
148
+
149
+ ## [0.1.1]
150
+
151
+ ### Fixed
152
+
153
+ - Dropped Node 18 from CI (Vite 7 requires Node 20+)
154
+ - Release pipeline and trusted publishing fixes
82
155
 
83
156
  ## [0.1.0]
84
157
 
85
158
  ### Added
86
159
 
87
160
  - 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
161
+ - LSP providers: diagnostics, document symbols, hover, go-to-definition, find references, completion, semantic tokens, folding, rename
97
162
  - VS Code Language Client extension
98
- - vitest unit tests
99
- - GitHub Actions CI/CD
100
- - Dev Container support
163
+ - vitest unit tests, GitHub Actions CI/CD, Dev Container