NX Postprocessor Support
A comprehensive VS Code extension providing language support and remote debugging for NX CAM postprocessor development, including CDL, TCL, and DEF files.
Features
- Syntax Highlighting - Full syntax highlighting for CDL, TCL, and DEF files
- Code Formatting - Automatic code formatting for all supported file types
- Multi-language Support - Supports NX CDL, TCL, and DEF file formats
- Intelligent Code Analysis - Linting and error detection for postprocessor code
- Auto-completion - Context-aware code completion for faster development
- Signature Help - Shows parameters and documentation for custom and NX procedures
- NX Tcl Remote Debugger - Breakpoints, stepping, call stack, scopes, variables, watches, evaluation, logpoints, hit conditions, and Tcl error stops directly in a running NX Post process
Supported File Types
.cdl- NX User Defined Event File.tcl- NX TCL postprocessor files.def- NX Definition files
Installation
- Install from the VS Code Marketplace
- Install Python 3.11 or higher
- Open any
.cdl,.tcl, or.deffile - The extension will automatically activate and provide language support
The former standalone NX Tcl Remote Debugger extension is no longer required. Disable or
uninstall local-nx.nx-tcl-debug before using the integrated debugger because both extensions
register the same nx-tcl debug type.
Configuration
The extension can be configured through VS Code settings:
nx-post-support.interpreter- Specify custom Python interpreter path for the language servernx-post-support.formatter- Enable/disable the TCL formatter (default: false)nx-post-support.inlayHint- Enable/disable inlay Hints (default: true)nx-post-support.inlayHints.parameterNames- Show parameter names forall, onlyliterals, ornone(default:all)nx-post-support.inlayHints.suppressWhenArgumentMatchesName- Hide redundant hints such asvalue:before$value(default: true)
TCL files default to unlimited inlay hint length so that VS Code does not
truncate later parameter names on a line. An explicit user setting for
editor.inlayHints.maximumLength still takes precedence.
NX Tcl Remote Debugger
Add a VS Code attach configuration
Create .vscode/launch.json through Run and Debug: create a launch.json file and select
NX Tcl: Attach to NX Post, or use this configuration:
{
"version": "0.2.0",
"configurations": [
{
"type": "nx-tcl",
"request": "attach",
"name": "Attach to NX Post Tcl",
"host": "127.0.0.1",
"port": 4711,
"connectTimeout": 120000,
"stopOnEntry": false,
"breakOnError": true,
"localRoot": "${workspaceFolder}"
}
]
}
When VS Code and NX see the source through different roots, set remoteRoot to the root used by
NX and keep localRoot as the corresponding workspace root.
Start debugging
- Set breakpoints on executable Tcl or DEF commands.
- Start Attach to NX Post Tcl in VS Code before running the postprocessor.
- Start postprocessing in NX.
- Use Continue, Step Over, Step Into, Step Out, Pause, Variables, Watch, and the Debug Console as with a normal source debugger.
Breakpoints remain active and stop at every real invocation. Use a hit condition such as 1 for
a one-time stop. Blank lines, comments, declarations, and multiline Tcl commands may be relocated
to the nearest executable command; VS Code shows the resolved line. Dynamic
LIB_GE_command_buffer_edit_* bodies are mapped back to their original source and owning Tcl
procedure.
Usage
Simply open any supported file type and enjoy:
- Syntax highlighting
- Error detection and linting
- Code completion
- Code formatting (Format Document command)
- Hover information
- Signature help while entering procedure arguments
- Remote NX Tcl debugging with breakpoints and full stepping
Development and debugging
Install the root and client dependencies before the first debug session:
npm install
npm install --prefix client
npm run test:debugger
Use one of the checked-in VS Code launch configurations:
- Run Extension debugs the TypeScript extension host.
- Debug Extension and Python debugs both the TypeScript extension and the Python language server. This is the recommended configuration for LSP work.
- Python Attach attaches manually to an already running Python process.
The launch configuration creates a fresh non-minified bundle with embedded
source maps and opens test/test.tcl so the extension activates immediately.
For combined debugging, the Python adapter listens on 127.0.0.1:5678; the
language server waits for that adapter before initialization. The NX
Postprocessor Support output channel reports Python debug mode: enabled and
shows _debug_server.py in the server command when the debug path is active.
Contributing
This extension is actively maintained. For issues or feature requests, please visit our repository.
License
AGPL-3.0 License - see LICENSE file for details. The embedded NX Tcl Remote Debugger adapter
retains its MIT notice in debugger/NX_TCL_DEBUGGER_LICENSE.txt.