sysml-v2-lsp 0.36.0 → 0.38.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
@@ -2,6 +2,31 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.38.0]
6
+
7
+ ### Added
8
+
9
+ - Experimental LSP request `sysml/validateText`: validates texts against the workspace model without opening or publishing anything. Disabled by default. Enabled by `sysml.experimental.validateText.enabled`, limited by `maxDocuments` (5), `maxLines` (200), `maxCharacters` (8,192 per document), and `maxTotalCharacters` (16,384 per request). Character limits use UTF-16 code units and are checked before parsing.
10
+ - Benchmark suite for `sysml/validateText`.
11
+
12
+ ### Fixed
13
+
14
+ - Keep temporary validation versions outside the LSP integer range so they
15
+ cannot reuse a real document's version or its cached diagnostics.
16
+
17
+ ## [0.37.0]
18
+
19
+ ### Fixed
20
+
21
+ - A quoted name in a feature value (`:>> referenceUnit = 'Ω'`) is no longer read as the feature's type and reported as `unresolved-type`.
22
+ - The standard-library index finds quoted short names (`<'Ω'>`, `<'A > B'>`) and quoted names with spaces (`'circular mil'`) by the name inside the quotes.
23
+ - Support Unicode unrestricted names throughout navigation, hover, references,
24
+ rename, completion, quick fixes, hierarchy, import links, selection and semantic validation.
25
+ Decode standard name escapes consistently, preserve qualified-name segments,
26
+ and use UTF-16 editor positions after astral characters in interactive, batch
27
+ and worker parsing. Rename operates on resolved name tokens across files and
28
+ leaves comments, strings, usage names and unrelated declarations unchanged (#120).
29
+
5
30
  ## [0.36.0]
6
31
 
7
32
  ### Fixed
package/README.md CHANGED
@@ -27,6 +27,40 @@ A [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-p
27
27
 
28
28
  ## Quick Start
29
29
 
30
+ ### Unicode and unrestricted names
31
+
32
+ Use single quotes for names outside the ASCII basic-name syntax, for example
33
+ `attribute 'temperature Ω' : Real;`. Names may contain Unicode characters,
34
+ combining marks, spaces and escaped quotes or backslashes. Their spelling is
35
+ preserved without Unicode normalization (SysML 7.2.2; KerML 8.2.2.3).
36
+
37
+ Navigation, hover, references, rename and completions handle the whole quoted
38
+ name. Rename updates resolved workspace references, not comments, string literals,
39
+ usage names or unrelated same-named declarations. Completion and rename insert
40
+ the required quotes and escapes automatically; editor positions use UTF-16,
41
+ including after characters outside the Basic Multilingual Plane.
42
+
43
+ ### Experimental text validation
44
+
45
+ `sysml/validateText` checks proposed document texts against the current workspace,
46
+ including unsaved documents, without opening documents or publishing diagnostics.
47
+ It is disabled by default. Enable `sysml.experimental.validateText.enabled` to use it.
48
+ Requests contain `documents`, an array of `{ uri, text }` entries. The response
49
+ contains each requested URI and its diagnostics, in request order.
50
+
51
+ The default limits are 5 documents, 200 lines per document, 8,192 characters per
52
+ document, and 16,384 characters across the request. Characters are UTF-16 code
53
+ units, so an emoji outside the Basic Multilingual Plane counts as two.
54
+ The corresponding settings are `maxDocuments`, `maxLines`, `maxCharacters` and
55
+ `maxTotalCharacters` under `sysml.experimental.validateText`.
56
+ Oversized requests fail with `InvalidParams` before parsing or changing cached
57
+ documents. Disabled requests fail with `MethodNotFound`.
58
+
59
+ Only requested documents are checked. Include an affected existing document
60
+ with its current text to check it too. Results use the server's existing
61
+ diagnostic checks; they do not certify complete SysML conformance.
62
+ Input limits reduce work but do not guarantee a fixed response time.
63
+
30
64
  ### Install from Marketplace
31
65
 
32
66
  Install via the VS Code extension from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=JamieD.sysml-v2-support).
@@ -159,7 +193,7 @@ make bench-history # Stable historical benchmark trends
159
193
 
160
194
  ## Benchmarks
161
195
 
162
- A built-in benchmark suite measures parser, symbol table, LSP provider, memory, throughput, and folder-load performance. Results are written as both JSON and Markdown to `benchmarks/results/`.
196
+ A built-in benchmark suite measures parser, symbol table, LSP provider, memory, throughput, folder-load, and `sysml/validateText` performance. Results are written as both JSON and Markdown to `benchmarks/results/`.
163
197
 
164
198
  ### Running Benchmarks
165
199
 
@@ -182,6 +216,7 @@ npm run bench:history # stable historical trends
182
216
  | `memory` | Forced-GC retained-heap estimates; use for coarse trends, not precise allocation counts |
183
217
  | `throughput` | Syntax-valid lexer/parser throughput, including document-level stale-snapshot recovery |
184
218
  | `folderLoad` | Workspace-style file discovery, parse, and symbol build |
219
+ | `validateText` | Main-thread time of a `sysml/validateText` request by workspace, text and request size, and the rebuild it leaves for the next request |
185
220
 
186
221
  ### Regression Detection
187
222