Merge pull request 'Highlight braced stored-proc names in lappend arguments' (#42) from #41 into main
build_and_puplish.yml / build_and_publish (release) Successful in 32s
build_and_puplish.yml / build_and_publish (release) Successful in 32s
This commit was merged in pull request #42.
This commit is contained in:
@@ -4,7 +4,7 @@ from typing import List
|
|||||||
import attrs
|
import attrs
|
||||||
from common.load_data import standard_items
|
from common.load_data import standard_items
|
||||||
from tclint.commands.plugins import PluginManager
|
from tclint.commands.plugins import PluginManager
|
||||||
from tclint.syntax_tree import BareWord, Command, QuotedWord, Visitor
|
from tclint.syntax_tree import BareWord, BracedWord, Command, QuotedWord, Visitor
|
||||||
from tools.variable_names import variable_name
|
from tools.variable_names import variable_name
|
||||||
from tools.tcloo_symbols import class_symbols
|
from tools.tcloo_symbols import class_symbols
|
||||||
from tools.tcloo_completion import _analyze
|
from tools.tcloo_completion import _analyze
|
||||||
@@ -173,6 +173,15 @@ class _Highlighter(Visitor):
|
|||||||
def visit_command(self, command: Command):
|
def visit_command(self, command: Command):
|
||||||
routine = command.routine
|
routine = command.routine
|
||||||
|
|
||||||
|
# Stored procedure names in braced lappend arguments use the same
|
||||||
|
# highlighting as calls, without treating the literal as executable Tcl.
|
||||||
|
if routine.contents in {"lappend", "::lappend"}:
|
||||||
|
for argument in command.args:
|
||||||
|
if (isinstance(argument, BracedWord)
|
||||||
|
and argument.contents in self._custom_function_names | _STANDARD_PROC_NAMES):
|
||||||
|
line, col = argument.contents_pos
|
||||||
|
self._append_token((line - 1, col - 1), len(argument.contents), "function", [])
|
||||||
|
|
||||||
# Highlight functions (custom or standard) when used as the routine
|
# Highlight functions (custom or standard) when used as the routine
|
||||||
name = getattr(routine, "contents", None)
|
name = getattr(routine, "contents", None)
|
||||||
if name:
|
if name:
|
||||||
|
|||||||
Reference in New Issue
Block a user