Adds configurable inlay hints for TCL procedures and merges signatures from built-ins and workspace files. The feature supports parameterNames and suppressWhenArgumentMatchesName and respects an optional range filter and current-file priority. - Introduces built-in and custom inlay hint builders - Honors inlayHints parameterNames and suppression options - Adds tests validating hints, ranges, and priority rules
82 lines
3.2 KiB
Markdown
82 lines
3.2 KiB
Markdown
# NX Postprocessor Support
|
|
|
|
A comprehensive VS Code extension providing language support 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
|
|
|
|
## Supported File Types
|
|
|
|
- `.cdl` - NX User Defined Event File
|
|
- `.tcl` - NX TCL postprocessor files
|
|
- `.def` - NX Definition files
|
|
|
|
## Installation
|
|
|
|
1. Install from the VS Code Marketplace
|
|
2. Install Python 3.11 or higher
|
|
3. Open any `.cdl`, `.tcl`, or `.def` file
|
|
4. The extension will automatically activate and provide language support
|
|
|
|
## Configuration
|
|
|
|
The extension can be configured through VS Code settings:
|
|
|
|
- `nx-post-support.interpreter` - Specify custom Python interpreter path for the language server
|
|
- `nx-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 for `all`, only `literals`, or `none` (default: `all`)
|
|
- `nx-post-support.inlayHints.suppressWhenArgumentMatchesName` - Hide redundant hints such as `value:` 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.
|
|
|
|
## 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
|
|
|
|
## Development and debugging
|
|
|
|
Install the root and client dependencies before the first debug session:
|
|
|
|
```powershell
|
|
npm install
|
|
npm install --prefix client
|
|
```
|
|
|
|
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](https://git.cbsk-tech.de/Christoph/nx_post_support.git).
|
|
|
|
## License
|
|
|
|
AGPL-3.0 License - see LICENSE file for details.
|