- Pass extension storage path to the server (client/ changes) so the server can persist a workspace index. - Introduce IndexCache (server/tools/index_cache.py) and load/save it on initialization and after background indexing. Index entries are stored only when the file's stat hasn't changed while being read. - Add incremental reparse logic (server/tools/incremental_parse.py) and use a per-file _last_parse cache in the language server to reparse only the top-level Tcl commands touched by an edit, falling back to a full parse when necessary. - Use a new _FileIndex dataclass and _build_file_index helper to unify what is stored/loaded for a file; update update_poco_completion_for_file to use the persistent cache for disk-read files (from_disk/source_stat). - Keep background indexing non-blocking and persist the index at the end of the run. Add basic unit tests for incremental parse and index cache. Before: edits and background work always required full parsing of files and no persistent cross-restart index. After: some edits reuse previous ASTs and files read from disk can use a persisted index to skip re-indexing across restarts.
57 lines
3.1 KiB
Markdown
57 lines
3.1 KiB
Markdown
## Unreleased
|
|
|
|
- Reparse only the top-level TCL commands touched by an edit instead of the whole file
|
|
- Cache the workspace index in the extension storage so restarts skip reparsing unchanged files; the cache is discarded automatically when the server or bundled tclint changes
|
|
- Speed up TclOO completion, signature help, inlay hints, and Go to Definition by reusing the cached syntax tree and skipping files without classes
|
|
- Speed up references, document highlights, and call hierarchy with cached definition lookups
|
|
- Keep background indexing from blocking requests that need a fresh syntax tree
|
|
- Add Go to Definition for TclOO classes, constructors, and resolved methods, including PSC library definitions
|
|
- Index PSC layer scripts (including external paths and legacy Windows encoding) and share TclOO class metadata across files for completion, signatures, inlay hints, and highlighting
|
|
- Add document-local TclOO method completion for `new`/`create` instances, `my`, and statically inferred return chains
|
|
- Suggest TclOO class names as classes and semantically highlight their declarations and calls
|
|
- Show signature help and parameter inlay hints for resolved TclOO methods and constructors, including optional and variadic arguments
|
|
- Add incoming and outgoing call hierarchy for custom TCL procedures and MOM event handlers
|
|
- Add document highlights for procedure and variable occurrences
|
|
- Make completion context-aware and prioritize local, current-file, workspace, and built-in symbols
|
|
- Add command-aware completion for Tcl subcommands, fixed arguments, and valid options
|
|
- Add semantic argument completion for variables, procedures, namespaces, and local file paths
|
|
- Add placeholder-based snippets for common Tcl structures and `dict for`
|
|
- Integrate the NX Tcl Remote Debugger directly into NX Postprocessor Support
|
|
- Add `nx-tcl` attach configurations and breakpoint support for TCL and DEF files
|
|
- Support breakpoints, stepping, stack frames, variables, watches, evaluation, logpoints, hit conditions, and Tcl error stops
|
|
- Add generation-safe stack and variable references so delayed VS Code requests cannot address stale NX frames
|
|
- Add command-buffer breakpoint handling for `LIB_GE_command_buffer_edit_*` source bodies
|
|
- Extend the README with launch configuration, path mapping, and debugger usage
|
|
- Prevent truncated TCL inlay hints and add configurable parameter hint modes
|
|
- Add inlay hints for built-in NX procedures, variadic arguments, and visible ranges
|
|
- Add inlay hint documentation and navigation to custom procedure definitions
|
|
- Add signature help for custom TCL procedures and built-in NX/MOM procedures
|
|
- Clean stale TCL indexes on close, delete, and rename operations
|
|
- Make background parsing and index updates thread-safe
|
|
- Improve TCL response times with debounced edits and cached semantic, inlay, hover, completion, and variable indexes
|
|
- Debounce CDL/DEF diagnostics and remove per-line diagnostic logging
|
|
|
|
## [0.0.1]
|
|
|
|
- Initial release
|
|
|
|
## [0.0.2]
|
|
|
|
- Add Autocomp for TYPE
|
|
|
|
## [0.1.0]
|
|
|
|
- Add Hover Feature
|
|
|
|
## [0.2.0]
|
|
|
|
- Add DEF File Support
|
|
|
|
## [2026.6.100]
|
|
|
|
- Fix several bugs
|
|
|
|
## [2026.6.200]
|
|
|
|
- Fix foramtting bug
|