Compare commits
6
Commits
2026.9.200
...
2026.9.220
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9b368ba761 | ||
|
|
82e13cf7ce | ||
|
|
d104906508 | ||
|
|
a5ff3b55ff | ||
|
|
26225eb8ed | ||
|
|
844138b383 |
Vendored
+26
@@ -17,6 +17,19 @@
|
|||||||
],
|
],
|
||||||
"cwd": "${env:TEMP}/nx-post-support-vscode-debug",
|
"cwd": "${env:TEMP}/nx-post-support-vscode-debug",
|
||||||
"outFiles": ["${env:TEMP}/nx-post-support-vscode-debug/dist/**/*.js"],
|
"outFiles": ["${env:TEMP}/nx-post-support-vscode-debug/dist/**/*.js"],
|
||||||
|
"linux": {
|
||||||
|
"args": [
|
||||||
|
"--extensionDevelopmentPath=${workspaceFolder}",
|
||||||
|
"${workspaceFolder}",
|
||||||
|
"${workspaceFolder}/test/test.tcl"
|
||||||
|
],
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
|
||||||
|
"resolveSourceMapLocations": [
|
||||||
|
"${workspaceFolder}/dist/**/*.js",
|
||||||
|
"!**/node_modules/**"
|
||||||
|
]
|
||||||
|
},
|
||||||
"sourceMaps": true,
|
"sourceMaps": true,
|
||||||
"resolveSourceMapLocations": [
|
"resolveSourceMapLocations": [
|
||||||
"${env:TEMP}/nx-post-support-vscode-debug/dist/**/*.js",
|
"${env:TEMP}/nx-post-support-vscode-debug/dist/**/*.js",
|
||||||
@@ -50,6 +63,19 @@
|
|||||||
],
|
],
|
||||||
"cwd": "${env:TEMP}/nx-post-support-vscode-debug",
|
"cwd": "${env:TEMP}/nx-post-support-vscode-debug",
|
||||||
"outFiles": ["${env:TEMP}/nx-post-support-vscode-debug/dist/**/*.js"],
|
"outFiles": ["${env:TEMP}/nx-post-support-vscode-debug/dist/**/*.js"],
|
||||||
|
"linux": {
|
||||||
|
"args": [
|
||||||
|
"--extensionDevelopmentPath=${workspaceFolder}",
|
||||||
|
"${workspaceFolder}",
|
||||||
|
"${workspaceFolder}/test/test.tcl"
|
||||||
|
],
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
|
||||||
|
"resolveSourceMapLocations": [
|
||||||
|
"${workspaceFolder}/dist/**/*.js",
|
||||||
|
"!**/node_modules/**"
|
||||||
|
]
|
||||||
|
},
|
||||||
"sourceMaps": true,
|
"sourceMaps": true,
|
||||||
"resolveSourceMapLocations": [
|
"resolveSourceMapLocations": [
|
||||||
"${env:TEMP}/nx-post-support-vscode-debug/dist/**/*.js",
|
"${env:TEMP}/nx-post-support-vscode-debug/dist/**/*.js",
|
||||||
|
|||||||
Vendored
+7
@@ -15,6 +15,13 @@
|
|||||||
"${workspaceFolder}",
|
"${workspaceFolder}",
|
||||||
"${env:TEMP}\\nx-post-support-vscode-debug"
|
"${env:TEMP}\\nx-post-support-vscode-debug"
|
||||||
],
|
],
|
||||||
|
"linux": {
|
||||||
|
"command": "npm",
|
||||||
|
"args": ["run", "compile:debug"],
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceFolder}"
|
||||||
|
}
|
||||||
|
},
|
||||||
"problemMatcher": [],
|
"problemMatcher": [],
|
||||||
"presentation": {
|
"presentation": {
|
||||||
"reveal": "always",
|
"reveal": "always",
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
"name": "nx-post-support",
|
"name": "nx-post-support",
|
||||||
"displayName": "NX Postprocessor 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",
|
"description": "VS Code extension for NX CAM postprocessor development with language support and remote Tcl debugging for CDL, TCL, and DEF files",
|
||||||
"version": "2026.9.100",
|
"version": "2026.9.210",
|
||||||
"publisher": "Christoph",
|
"publisher": "Christoph",
|
||||||
"icon": "images/nx-1.png",
|
"icon": "images/nx-1.png",
|
||||||
"activationEvents": [
|
"activationEvents": [
|
||||||
|
|||||||
@@ -1009,7 +1009,13 @@ def _current_command_segment(line_prefix: str) -> str:
|
|||||||
starts.append(brace_starts[-1] + 1)
|
starts.append(brace_starts[-1] + 1)
|
||||||
if bracket_starts:
|
if bracket_starts:
|
||||||
starts.append(bracket_starts[-1] + 1)
|
starts.append(bracket_starts[-1] + 1)
|
||||||
return line_prefix[max(starts) :]
|
start = max(starts)
|
||||||
|
if brace_starts and start == brace_starts[-1] + 1:
|
||||||
|
# An unfinished braced body or expression can itself contain commands
|
||||||
|
# (for example, ``if {[string compare ...``). Scan that inner context
|
||||||
|
# independently, while keeping completed braced arguments opaque.
|
||||||
|
return _current_command_segment(line_prefix[start:])
|
||||||
|
return line_prefix[start:]
|
||||||
|
|
||||||
|
|
||||||
def _tokenize_command_segment(segment: str) -> list[str]:
|
def _tokenize_command_segment(segment: str) -> list[str]:
|
||||||
|
|||||||
@@ -204,6 +204,29 @@ def test_string_completion_handles_nested_commands_and_is_values():
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def test_string_completion_inside_braced_conditions_and_bodies():
|
||||||
|
for prefix in ("if {", "while {", "proc example {} { if {"):
|
||||||
|
subcommands = _argument_completion_labels(prefix + "[string ")
|
||||||
|
assert subcommands is not None
|
||||||
|
assert {"compare", "equal", "is"} <= subcommands
|
||||||
|
assert _argument_completion_labels(prefix + "[string compare -") == {
|
||||||
|
"-length", "-nocase"
|
||||||
|
}
|
||||||
|
assert _argument_completion_labels(
|
||||||
|
prefix + "[string compare -nocase "
|
||||||
|
) == {"-length"}
|
||||||
|
|
||||||
|
|
||||||
|
def test_closed_braced_arguments_do_not_change_completion_context():
|
||||||
|
assert _argument_completion_labels("puts {[string compare }") is None
|
||||||
|
assert _argument_completion_labels(
|
||||||
|
"if {[string equal a b]} {string compare "
|
||||||
|
) == {"-length", "-nocase"}
|
||||||
|
assert _argument_completion_labels(
|
||||||
|
"if {[string equal a b] && [string is integer "
|
||||||
|
) == {"-failindex", "-strict"}
|
||||||
|
|
||||||
|
|
||||||
def test_dict_array_namespace_file_and_info_subcommands():
|
def test_dict_array_namespace_file_and_info_subcommands():
|
||||||
dict_items = _argument_completion_labels("dict ")
|
dict_items = _argument_completion_labels("dict ")
|
||||||
assert dict_items is not None
|
assert dict_items is not None
|
||||||
|
|||||||
@@ -5,6 +5,9 @@
|
|||||||
{
|
{
|
||||||
"include": "#comment"
|
"include": "#comment"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"include": "#escaped-quoted-strings"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"include": "#strings"
|
"include": "#strings"
|
||||||
},
|
},
|
||||||
@@ -28,6 +31,31 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"repository": {
|
"repository": {
|
||||||
|
"escaped-quoted-strings": {
|
||||||
|
"name": "string.quoted.double.def",
|
||||||
|
"begin": "\\\\\"",
|
||||||
|
"end": "\\\\\"",
|
||||||
|
"beginCaptures": {
|
||||||
|
"0": {
|
||||||
|
"name": "punctuation.definition.string.begin.def"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"endCaptures": {
|
||||||
|
"0": {
|
||||||
|
"name": "punctuation.definition.string.end.def"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"name": "constant.character.escape.def",
|
||||||
|
"match": "\\\\."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "variable.other.property",
|
||||||
|
"match": "\\$[_a-zA-Z][_a-zA-Z0-9]*(\\(\\$?[_a-zA-Z][_a-zA-Z0-9]*(,\\$?[_a-zA-Z][_a-zA-Z0-9]*)*\\))?"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"keywords": {
|
"keywords": {
|
||||||
"patterns": [
|
"patterns": [
|
||||||
{
|
{
|
||||||
@@ -151,4 +179,4 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scopeName": "source.def"
|
"scopeName": "source.def"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user