{ "name": "nx-post-support", "displayName": "NX Postprocessor Support", "description": "VS Code extension for NX CAM postprocessor development with language support and remote Tcl debugging for CDL, TCL, and DEF files", "version": "2026.8.300", "publisher": "Christoph", "icon": "images/nx-1.png", "activationEvents": [ "onLanguage:tcl", "onLanguage:cdl", "onLanguage:def", "onDebug" ], "extensionDependencies": [ "ms-python.python" ], "serverInfo": { "name": "NX Postprocessor Support", "module": "nx-post-support" }, "repository": { "type": "git", "url": "https://git.cbsk-tech.de/Christoph/nx_post_support.git" }, "main": "./dist/extension.js", "keywords": [ "cdl", "NX CDL", "UDE", "Postprocessor", "NX CAM", "Siemens NX", "debugger", "remote debugging" ], "engines": { "vscode": "^1.96.0" }, "categories": [ "Programming Languages", "Debuggers" ], "contributes": { "breakpoints": [ { "language": "tcl" }, { "language": "def" } ], "debuggers": [ { "type": "nx-tcl", "label": "NX Tcl Remote Debugger", "languages": [ "tcl", "def" ], "configurationAttributes": { "attach": { "required": [ "host", "port" ], "properties": { "host": { "type": "string", "default": "127.0.0.1", "description": "Host on which the NX Tcl runtime is listening." }, "port": { "type": "number", "default": 4711, "description": "TCP port of the NX Tcl runtime." }, "connectTimeout": { "type": "number", "default": 120000, "description": "How long VS Code retries until NX starts the runtime, in milliseconds." }, "stopOnEntry": { "type": "boolean", "default": false, "description": "Stop on the first traced Tcl command." }, "breakOnError": { "type": "boolean", "default": true, "description": "Stop when a traced Tcl command returns TCL_ERROR." }, "localRoot": { "type": "string", "description": "Local source root opened in VS Code." }, "remoteRoot": { "type": "string", "description": "Corresponding source root on the NX host when it differs from localRoot." } } } }, "initialConfigurations": [ { "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}" } ], "configurationSnippets": [ { "label": "NX Tcl: Attach to NX Post", "description": "Attach VS Code to an NX runtime embedded in NX Post.", "body": { "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}" } } ] } ], "languages": [ { "id": "tcl", "aliases": [ "NX TCL", "tcl" ], "extensions": [ ".tcl" ], "configuration": "./language-configuration.json" }, { "id": "cdl", "aliases": [ "NX CDL", "cdl" ], "extensions": [ ".cdl" ], "configuration": "./language-configuration.json" }, { "id": "def", "aliases": [ "NX DEF", "def" ], "extensions": [ ".def" ], "configuration": "./language-configuration.json" } ], "grammars": [ { "language": "tcl", "scopeName": "source.tcl", "path": "./syntaxes/tcl.tmLanguage.json" }, { "language": "cdl", "scopeName": "source.cdl", "path": "./syntaxes/cdl.tmLanguage.json" }, { "language": "def", "scopeName": "source.def", "path": "./syntaxes/def.tmLanguage.json" } ], "configuration": { "properties": { "nx-post-support.formatter": { "type": "boolean", "default": false, "description": "Use the TCL formatter from `NX Postprocessor Support`" }, "nx-post-support.inlayHint": { "type": "boolean", "default": true, "description": "Use the Inlay Hints in from `NX Postprocessor Support`" }, "nx-post-support.inlayHints.parameterNames": { "type": "string", "default": "all", "enum": [ "all", "literals", "none" ], "enumDescriptions": [ "Show parameter name hints for all arguments.", "Show parameter name hints only for literal arguments.", "Do not show parameter name hints." ], "description": "Controls which TCL procedure arguments receive parameter name hints." }, "nx-post-support.inlayHints.suppressWhenArgumentMatchesName": { "type": "boolean", "default": true, "description": "Hide a parameter hint when a variable argument already has the same name, for example `output` in `my_proc $output`." }, "nx-post-support.importStrategy": { "default": "useBundled", "description": "Defines where `NX Postprocessor Support` is imported from.", "enum": [ "useBundled", "fromEnvironment" ], "enumDescriptions": [ "Always use the bundled version of `NX Postprocessor Support`.", "Use `NX Postprocessor Support` from environment, fallback to bundled version only if `NX Postprocessor Support` not available in the environment." ], "scope": "window", "type": "string" }, "nx-post-support.interpreter": { "default": [], "description": "When set to the path of a Python executable, extension will use that to launch the server.", "scope": "resource", "items": { "type": "string" }, "type": "array" } } }, "configurationDefaults": { "[tcl]": { "editor.inlayHints.maximumLength": 0 } } }, "scripts": { "compile": "node esbuild.js --production", "compile:debug": "node esbuild.js", "watch": "node esbuild.js --watch", "package": "node esbuild.js --production", "test:debugger": "node --test test/debugger.test.js" }, "devDependencies": { "@types/vscode": "^1.96.0", "@vscode/vsce": "^3.2.1", "cross-env": "^7.0.3", "esbuild": "^0.25.6", "prettier": "^3.4.2", "typescript": "^5.7.2" } }