Files
nx_post_support/CHANGELOG.md
T
Christoph 513b1cb340 feat(def): add cross-file navigation and rename for PSC .def block templates and addresses
Add client and server support to navigate, inspect, reference, and rename block
template and address symbols declared in PSC .def files:

- Client: register language providers for .def (definition, hover, references,
  prepare/provide rename) and send the current document text with each request.
- Server: parse .def files into DefDocument/DefDeclaration/DefReference, expose
  def-specific LSP endpoints (definition/hover/references/prepareRename/rename),
  and integrate .def lookups into existing Tcl hover/definition/references/rename
  flows so Tcl calls jump to .def declarations.
- Tcl server keeps a snapshot API for .def documents (current editor content can
  replace file on request); only declared names in loaded .def files can be
  renamed. Name validation uses DEF_NAME_RE.

Update README and CHANGELOG to document navigation features.
2026-09-24 22:55:40 +02:00

8.6 KiB

Changelog

All notable changes to NX Postprocessor Support are listed here, newest release first. Versions correspond to the Git tags of this repository.

Unreleased

Added

  • Go to Definition from block template and address arguments in Tcl (MOM_do_template, MOM_force, MOM_suppress, MOM_ask_address_value, ...) to the BLOCK_TEMPLATE/ADDRESS declaration in the PSC .def files
  • Hover over block templates shows the template body; hover over addresses shows format, leader, trailer, min/max, and modality
  • Find References and Rename for block templates and addresses across Tcl and .def files, including addresses used inside block templates
  • Go to Definition, hover, references, and rename also work inside .def files

Documentation

  • Document DEF block templates, addresses, BLOCK_LIST/ADDR_LIST, and the formatting changes in the README

[2026.9.700] - 2026-09-24

Added

  • BLOCK_LIST and ADDR_LIST completion keywords that list all loaded block templates or addresses; the keyword is replaced by the selected quoted name

Changed

  • Format comments with a space after # (#Comment becomes # Comment); ## separators, #!, and comments that already start with whitespace stay unchanged

[2026.9.600] - 2026-09-24

Added

  • Read BLOCK_TEMPLATE and ADDRESS names from the .def files listed under <DefinedEvents> in PSC layers; changes to PSC and DEF files are picked up automatically
  • Suggest block templates for MOM_do_template and addresses for MOM_ask_address_value, MOM_force, and MOM_suppress, each followed by variables
  • Suggest Always, Once, and Off for the first argument of MOM_force and MOM_suppress
  • Insert block templates, addresses, and modes in quotes without doubling typed or auto-closed quotes; insert variables with a leading $
  • Persistent workspace index in the extension storage, so restarts skip reparsing unchanged files; the cache is discarded automatically when the server or bundled tclint changes

Changed

  • Reparse only the top-level Tcl commands touched by an edit instead of the whole file
  • 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

Fixed

  • Format and lint uplevel bodies as Tcl scripts instead of leaving them untouched
  • Stop the Python debug bootstrap with a clear error instead of hanging when no debugpy listener or only a stale one is available

[2026.9.501] - 2026-09-21

Fixed

  • Highlight braced stored-procedure names in lappend arguments

[2026.9.500] - 2026-09-21

Added

  • Index Tcl scripts referenced by PSC layers, including external folders, environment-variable folders, and legacy Windows encoding
  • Share TclOO class metadata across files for completion, signature help, inlay hints, and highlighting
  • Go to Definition for TclOO classes, constructors, and resolved methods, including PSC library definitions
  • CDL event handler snippets declare an extra <var>_defined global for parameters marked TOGGLE Off
  • Allow INVALID in the CDL CATEGORY grammar

[2026.9.400] - 2026-09-11

Added

  • Document-local TclOO method completion for new/create instances, my, and statically inferred return chains
  • Signature help and parameter inlay hints for resolved TclOO methods and constructors, including optional and variadic arguments
  • Suggest TclOO class names as classes and semantically highlight their declarations and calls
  • Keep completion working while the file has syntax errors

[2026.9.300] - 2026-09-10

Added

  • Array key completion, including keys built with substitutions
  • Generated CDL event handler snippets declare args

[2026.9.220] - 2026-09-08

Fixed

  • Completion inside unfinished braced arguments now recognizes nested commands

[2026.9.210] - 2026-09-04

Added

  • Highlight escaped quoted strings and embedded variables in DEF files

[2026.9.200] - 2026-09-03

Added

  • Command-aware completion for Tcl subcommands, fixed argument values, and options such as string compare -nocase
  • Semantic argument completion for variables, procedures, namespaces, and local file paths
  • Placeholder-based snippets for if, foreach, proc, switch, try, and dict for

[2026.9.100] - 2026-09-03

Added

  • Incoming and outgoing call hierarchy for custom Tcl procedures and MOM event handlers
  • Document highlights for procedure and variable occurrences
  • Context-aware completion that ranks local, current-file, workspace, and built-in symbols in that order

Changed

  • Update lsprotocol to 2025.0.0

[2026.8.300] - 2026-08-28

Added

  • Integrate the NX Tcl Remote Debugger; the separate local-nx.nx-tcl-debug extension is no longer needed
  • nx-tcl attach configurations and breakpoints in Tcl and DEF files
  • Stepping, call stack, scopes, variables, watches, evaluation, logpoints, hit conditions, and Tcl error stops
  • Breakpoints in LIB_GE_command_buffer_edit_* bodies, mapped back to their source and owning procedure

[2026.8.200] - 2026-08-19

Added

  • Configurable parameter-name inlay hints (inlayHints.parameterNames, inlayHints.suppressWhenArgumentMatchesName) for custom and built-in NX procedures, including variadic arguments
  • Unlimited inlay hint length for Tcl files, so later parameter names are not truncated

Changed

  • Cache semantic tokens, inlay hints, hover, completion, and variable indexes and debounce edits and diagnostics for faster responses

[2026.8.100] - 2026-08-19

Added

  • Workspace symbol index with Go to Definition, references, and rename
  • Signature help for custom Tcl procedures and built-in NX/MOM procedures
  • CDL event handler snippets and hover with generated handler and mom_ parameter hints
  • Keep indexes in sync when Tcl files are changed, deleted, or renamed on disk

[2026.6.201] - 2026-06-22

Fixed

  • Preserve whitespace inside single-line braced expressions when formatting

[2026.6.200] - 2026-06-22

Fixed

  • Tcl formatting bug caused by the formatter options

[2026.6.100] - 2026-06-18

Changed

  • Folding ranges for Tcl are computed by the language server, avoiding duplicate regions
  • Language server restarts are serialized so only one server runs at a time
  • Pin the Python dependencies of the server and update the bundled libraries

Fixed

  • Several stability fixes

[2025.9.200] - 2025-09-01

Changed

  • Install server dependencies with uv instead of pip
  • Relicense to AGPL-3.0-or-later

[2025.9.101] - 2025-08-16

Added

  • Signature help
  • Variable checks and additional semantic tokens

Fixed

  • incr on variables that already exist and foreach loop variables

[2025.8.400] - 2025-08-15

Added

  • Outline for DEF and CDL files

Fixed

  • Duplicate MOM_add_to_block_buffer entry renamed to MOM_add_to_line_buffer

[2025.8.300] - 2025-08-12

Added

  • Go to Definition and document outline for Tcl
  • Variable index with positions
  • Procedure documentation in hover

Fixed

  • Formatter deleting line continuations (\)
  • Wrong semantic highlighting in several cases

[2025.8.202] - 2025-08-12

Fixed

  • Formatter deleting line continuations (\)

[2025.8.201] - 2025-08-11

Fixed

  • Highlighting errors

[2025.8.200] - 2025-08-09

  • Version change only

[2025.8.2] - 2025-08-09

  • Version change only

[2025.08.1] - 2025-08-09

Added

  • Load procedures from all workspace files and PSC-referenced scripts for completion
  • Extension icon

[0.4.14] - 2025-08-04

Added

  • LIB_GE_command_buffer_edit_* support in the parser

Fixed

  • Namespace calls in POCO code
  • Semantic highlighting of variables in arrays

[0.4.12] - 2025-08-03

Added

  • More semantic tokens and completion items

[0.4.10] - 2025-07-28

Added

  • Linter based on tclint

Changed

  • Use tclint as parser and formatter

[0.4.9] - 2025-07-22

Added

  • More completion items

[0.4.8] - 2025-07-21

Added

  • More NX functions and hover documentation

[0.4.7] - 2025-07-21

Added

  • Formatter settings

Fixed

  • Formatter fixes

[0.4.6] - 2025-07-21

Fixed

  • @ in buffers when formatting

[0.4.5] - 2025-07-21

Fixed

  • Formatting of buffers

[0.4.4] - 2025-07-21

Fixed

  • Formatter fixes

[0.4.3] - 2025-07-21

Fixed

  • Formatting fixes

[0.4.2] - 2025-07-20

Added

  • Initial release with syntax highlighting, formatting, auto-completion (including TYPE), hover, and DEF file support