aboutsummaryrefslogtreecommitdiff
path: root/editors/vscode/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'editors/vscode/README.md')
-rw-r--r--editors/vscode/README.md8
1 files changed, 5 insertions, 3 deletions
diff --git a/editors/vscode/README.md b/editors/vscode/README.md
index d60194e..5c3d0c7 100644
--- a/editors/vscode/README.md
+++ b/editors/vscode/README.md
@@ -2,7 +2,7 @@
this extension connects vscode to the zc language server. the server runs the compiler in check mode, so diagnostics and semantic highlighting reflect the language the compiler actually parses, including syntax introduced with parse words.
-features include compiler diagnostics, optimization hints, semantic highlighting, hover documentation and immediate textmate highlighting while the server starts.
+features include compiler diagnostics, import quick fixes, optimization hints, semantic highlighting, hover documentation (values, types, ownership and lifetimes, module include names, embedded declarations and assembly instruction descriptions), fuzzy completions with signatures and descriptions (consumed variables are crossed out and sorted last), go to definition and find references (also into included files), document formatting and immediate textmate highlighting while the server starts. module completion lists exported members after an imported namespace. import quick fixes preserve namespace headers, comments and crlf line endings, and the editor drops edits for stale document versions. hints are shown as blue information squiggles; `hints on`, `hints small` and `hints off` in the source change which ones appear. formatting reads a `.zcformat` file (`UseTab`, `IndentWidth`, `MaxEmptyLines`, `ContinuationIndent`, `NormalizeSpacing`, `CaseIndent`, `FinalNewline`) from the document's directory upward, and falls back to the editor's tab settings. by default, case labels are indented one level inside their switch; `CaseIndent: 0` aligns them with the switch.
## install
@@ -25,6 +25,8 @@ diagnostics are cached per document using a sha256 key that includes the server
## limitations
-the bundled webassembly server cannot read included files from disk. use a native server with `zc.lsp.serverPath` when diagnostics need filesystem access for includes. hover does not follow declarations reached through `include` yet.
+the extension sends included source files to both bundled servers. relative paths are resolved next to the including file, then in the workspace folder. `include std;` uses the embedded library; it is never automatically imported. hovering an import name shows the module overview. `core.zc` is embedded, and qualified navigation distinguishes `core.syscall` from `rt.syscall`. source libraries can provide module documentation in the overview comment after their namespace and include headers. go to definition for built-ins opens embedded runtime, compiler or library source in a read-only document.
-see `tests/drivers/lsp_test.js` for protocol tests and `src/tools/mkvsix.sh` for packaging.
+see `tests/drivers/lsp_test.js` for protocol tests, `tests/drivers/codeactions_client_test.js` for workspace-edit version handling, `tests/drivers/ext_cache_test.js` for the real editor provider and bundled server, and `src/tools/mkvsix.sh` for packaging.
+
+the native language server also accepts `--help` or `-h`; its `--format`, `--annotate` and `--types` source modes remain available. use `bin/zclsp --help` for the stdin protocol and source-mode details. `python3 tests/drivers/cli_help_test.py` checks these command-line options along with the bundled command-line tools.