From 08cba92302bf79be1a71c370aaf573f23be90b33 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Fri, 7 Mar 2025 13:26:17 +0100 Subject: [PATCH 01/35] fix(debugger): remove unnecessary environment variables for debugpy sessions --- packages/debugger/src/robotcode/debugger/run.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/debugger/src/robotcode/debugger/run.py b/packages/debugger/src/robotcode/debugger/run.py index 5f2307f4..66c69b31 100644 --- a/packages/debugger/src/robotcode/debugger/run.py +++ b/packages/debugger/src/robotcode/debugger/run.py @@ -115,7 +115,10 @@ def start_debugpy( _logger.warning(lambda: f"start debugpy session on port {port}") # this is set by vscode for non config debugpy sessions, we don't need it, so remove it - del os.environ["DEBUGPY_ADAPTER_ENDPOINTS"] + if "DEBUGPY_ADAPTER_ENDPOINTS" in os.environ: + del os.environ["DEBUGPY_ADAPTER_ENDPOINTS"] + if "VSCODE_DEBUGPY_ADAPTER_ENDPOINTS" in os.environ: + del os.environ["VSCODE_DEBUGPY_ADAPTER_ENDPOINTS"] if enable_debugpy(port, addresses): global config_done_callback From 9d54d255b58eba6a96f8b2c3e0973ce721243d1b Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Fri, 7 Mar 2025 13:26:50 +0100 Subject: [PATCH 02/35] =?UTF-8?q?chore(release):=20bump=20version=201.0.1?= =?UTF-8?q?=20=E2=86=92=201.0.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++ intellij-client/gradle.properties | 2 +- package-lock.json | 4 +-- package.json | 2 +- packages/analyze/pyproject.toml | 6 ++-- .../src/robotcode/analyze/__version__.py | 2 +- .../core/src/robotcode/core/__version__.py | 2 +- packages/debugger/pyproject.toml | 4 +-- .../src/robotcode/debugger/__version__.py | 2 +- packages/jsonrpc2/pyproject.toml | 2 +- .../src/robotcode/jsonrpc2/__version__.py | 2 +- packages/language_server/pyproject.toml | 8 ++--- .../robotcode/language_server/__version__.py | 2 +- .../src/robotcode/modifiers/__version__.py | 2 +- .../src/robotcode/plugin/__version__.py | 2 +- packages/repl/pyproject.toml | 2 +- .../repl/src/robotcode/repl/__version__.py | 2 +- packages/repl_server/pyproject.toml | 4 +-- .../src/robotcode/repl_server/__version__.py | 2 +- packages/robot/pyproject.toml | 2 +- .../robot/src/robotcode/robot/__version__.py | 2 +- packages/runner/pyproject.toml | 8 ++--- .../src/robotcode/runner/__version__.py | 2 +- pyproject.toml | 30 +++++++++---------- src/robotcode/cli/__version__.py | 2 +- 25 files changed, 56 insertions(+), 49 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61cc6b91..f23c1b9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. +## [1.0.2](https://github.com/robotcodedev/robotcode/compare/v1.0.1..v1.0.2) - 2025-03-07 + +### Bug Fixes + +- **debugger:** Remove unnecessary environment variables for debugpy sessions ([08cba92](https://github.com/robotcodedev/robotcode/commit/08cba92302bf79be1a71c370aaf573f23be90b33)) + + ## [1.0.1](https://github.com/robotcodedev/robotcode/compare/v1.0.0..v1.0.1) - 2025-03-06 ### Bug Fixes diff --git a/intellij-client/gradle.properties b/intellij-client/gradle.properties index e7caff98..8627a67d 100644 --- a/intellij-client/gradle.properties +++ b/intellij-client/gradle.properties @@ -4,7 +4,7 @@ pluginGroup = dev.robotcode pluginName = RobotCode - Robot Framework Support pluginRepositoryUrl = https://github.com/robotcodedev/robotcode4ij # SemVer format -> https://semver.org -pluginVersion = 1.0.1 +pluginVersion = 1.0.2 # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html pluginSinceBuild = 243 diff --git a/package-lock.json b/package-lock.json index 0ab8663a..c789c438 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "robotcode", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "robotcode", - "version": "1.0.1", + "version": "1.0.2", "funding": [ { "type": "opencollective", diff --git a/package.json b/package.json index b0f93b00..2396e321 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Robot Framework IntelliSense, linting, test execution and debugging, code formatting, refactoring, and many more", "icon": "images/icon.png", "publisher": "d-biehl", - "version": "1.0.1", + "version": "1.0.2", "author": { "name": "Daniel Biehl", "url": "https://github.com/robotcodedev/" diff --git a/packages/analyze/pyproject.toml b/packages/analyze/pyproject.toml index b42d14e5..81aef9b6 100644 --- a/packages/analyze/pyproject.toml +++ b/packages/analyze/pyproject.toml @@ -27,9 +27,9 @@ classifiers = [ ] dependencies = [ "robotframework>=4.1.0", - "robotcode-plugin==1.0.1", - "robotcode-robot==1.0.1", - "robotcode==1.0.1", + "robotcode-plugin==1.0.2", + "robotcode-robot==1.0.2", + "robotcode==1.0.2", ] dynamic = ["version"] diff --git a/packages/analyze/src/robotcode/analyze/__version__.py b/packages/analyze/src/robotcode/analyze/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/analyze/src/robotcode/analyze/__version__.py +++ b/packages/analyze/src/robotcode/analyze/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/packages/core/src/robotcode/core/__version__.py b/packages/core/src/robotcode/core/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/core/src/robotcode/core/__version__.py +++ b/packages/core/src/robotcode/core/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/packages/debugger/pyproject.toml b/packages/debugger/pyproject.toml index 02228088..2c97a34f 100644 --- a/packages/debugger/pyproject.toml +++ b/packages/debugger/pyproject.toml @@ -28,8 +28,8 @@ classifiers = [ dynamic = ["version"] dependencies = [ "robotframework>=4.1.0", - "robotcode-jsonrpc2==1.0.1", - "robotcode-runner==1.0.1", + "robotcode-jsonrpc2==1.0.2", + "robotcode-runner==1.0.2", ] [project.optional-dependencies] diff --git a/packages/debugger/src/robotcode/debugger/__version__.py b/packages/debugger/src/robotcode/debugger/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/debugger/src/robotcode/debugger/__version__.py +++ b/packages/debugger/src/robotcode/debugger/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/packages/jsonrpc2/pyproject.toml b/packages/jsonrpc2/pyproject.toml index fd082826..fab2a567 100644 --- a/packages/jsonrpc2/pyproject.toml +++ b/packages/jsonrpc2/pyproject.toml @@ -25,7 +25,7 @@ classifiers = [ "Framework :: Robot Framework", "Framework :: Robot Framework :: Tool", ] -dependencies = ["robotcode-core==1.0.1"] +dependencies = ["robotcode-core==1.0.2"] dynamic = ["version"] [project.urls] diff --git a/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py b/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py +++ b/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/packages/language_server/pyproject.toml b/packages/language_server/pyproject.toml index f136a394..29e35014 100644 --- a/packages/language_server/pyproject.toml +++ b/packages/language_server/pyproject.toml @@ -27,10 +27,10 @@ classifiers = [ ] dependencies = [ "robotframework>=4.1.0", - "robotcode-jsonrpc2==1.0.1", - "robotcode-robot==1.0.1", - "robotcode-analyze==1.0.1", - "robotcode==1.0.1", + "robotcode-jsonrpc2==1.0.2", + "robotcode-robot==1.0.2", + "robotcode-analyze==1.0.2", + "robotcode==1.0.2", ] dynamic = ["version"] diff --git a/packages/language_server/src/robotcode/language_server/__version__.py b/packages/language_server/src/robotcode/language_server/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/language_server/src/robotcode/language_server/__version__.py +++ b/packages/language_server/src/robotcode/language_server/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/packages/modifiers/src/robotcode/modifiers/__version__.py b/packages/modifiers/src/robotcode/modifiers/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/modifiers/src/robotcode/modifiers/__version__.py +++ b/packages/modifiers/src/robotcode/modifiers/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/packages/plugin/src/robotcode/plugin/__version__.py b/packages/plugin/src/robotcode/plugin/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/plugin/src/robotcode/plugin/__version__.py +++ b/packages/plugin/src/robotcode/plugin/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/packages/repl/pyproject.toml b/packages/repl/pyproject.toml index 04952b09..8c53d2e6 100644 --- a/packages/repl/pyproject.toml +++ b/packages/repl/pyproject.toml @@ -27,7 +27,7 @@ classifiers = [ ] dynamic = ["version"] dependencies = [ - "robotcode-runner==1.0.1" + "robotcode-runner==1.0.2" ] [project.entry-points.robotcode] diff --git a/packages/repl/src/robotcode/repl/__version__.py b/packages/repl/src/robotcode/repl/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/repl/src/robotcode/repl/__version__.py +++ b/packages/repl/src/robotcode/repl/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/packages/repl_server/pyproject.toml b/packages/repl_server/pyproject.toml index f2a8d640..f83cb8c6 100644 --- a/packages/repl_server/pyproject.toml +++ b/packages/repl_server/pyproject.toml @@ -27,8 +27,8 @@ classifiers = [ ] dynamic = ["version"] dependencies = [ - "robotcode-jsonrpc2==1.0.1", - "robotcode-runner==1.0.1" + "robotcode-jsonrpc2==1.0.2", + "robotcode-runner==1.0.2" ] [project.entry-points.robotcode] diff --git a/packages/repl_server/src/robotcode/repl_server/__version__.py b/packages/repl_server/src/robotcode/repl_server/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/repl_server/src/robotcode/repl_server/__version__.py +++ b/packages/repl_server/src/robotcode/repl_server/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/packages/robot/pyproject.toml b/packages/robot/pyproject.toml index 7c97b6fc..6a54b909 100644 --- a/packages/robot/pyproject.toml +++ b/packages/robot/pyproject.toml @@ -30,7 +30,7 @@ dependencies = [ "robotframework>=4.1.0", "tomli>=1.1.0; python_version < '3.11'", "platformdirs>=3.2.0,<4.4.0", - "robotcode-core==1.0.1", + "robotcode-core==1.0.2", ] dynamic = ["version"] diff --git a/packages/robot/src/robotcode/robot/__version__.py b/packages/robot/src/robotcode/robot/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/robot/src/robotcode/robot/__version__.py +++ b/packages/robot/src/robotcode/robot/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/packages/runner/pyproject.toml b/packages/runner/pyproject.toml index 99b08dca..1596cec8 100644 --- a/packages/runner/pyproject.toml +++ b/packages/runner/pyproject.toml @@ -28,10 +28,10 @@ classifiers = [ dynamic = ["version"] dependencies = [ "robotframework>=4.1.0", - "robotcode-robot==1.0.1", - "robotcode-modifiers==1.0.1", - "robotcode-plugin==1.0.1", - "robotcode==1.0.1", + "robotcode-robot==1.0.2", + "robotcode-modifiers==1.0.2", + "robotcode-plugin==1.0.2", + "robotcode==1.0.2", ] [project.entry-points.robotcode] diff --git a/packages/runner/src/robotcode/runner/__version__.py b/packages/runner/src/robotcode/runner/__version__.py index 5c4105cd..7863915f 100644 --- a/packages/runner/src/robotcode/runner/__version__.py +++ b/packages/runner/src/robotcode/runner/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" diff --git a/pyproject.toml b/pyproject.toml index b5f6fb7c..acf2f83f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,9 +51,9 @@ classifiers = [ ] requires-python = ">=3.8" dependencies = [ - "robotcode-core==1.0.1", - "robotcode-plugin==1.0.1", - "robotcode-robot==1.0.1", + "robotcode-core==1.0.2", + "robotcode-plugin==1.0.2", + "robotcode-robot==1.0.2", ] dynamic = ["version"] @@ -71,24 +71,24 @@ robotcode = "robotcode.cli.__main__:main" [project.optional-dependencies] -debugger = ["robotcode-debugger==1.0.1"] -languageserver = ["robotcode-language-server==1.0.1"] -runner = ["robotcode-runner==1.0.1"] -analyze = ["robotcode-analyze==1.0.1"] +debugger = ["robotcode-debugger==1.0.2"] +languageserver = ["robotcode-language-server==1.0.2"] +runner = ["robotcode-runner==1.0.2"] +analyze = ["robotcode-analyze==1.0.2"] yaml = ["PyYAML>=5.4"] lint = ["robotframework-robocop>=2.0.0"] tidy = ["robotframework-tidy>=2.0.0"] rest = ["docutils"] -repl = ["robotcode-repl==1.0.1"] -replserver = ["robotcode-repl-server==1.0.1"] +repl = ["robotcode-repl==1.0.2"] +replserver = ["robotcode-repl-server==1.0.2"] colored = ["rich"] all = [ - "robotcode-debugger==1.0.1", - "robotcode-language-server==1.0.1", - "robotcode-runner==1.0.1", - "robotcode-analyze==1.0.1", - "robotcode-repl==1.0.1", - "robotcode-repl-server==1.0.1", + "robotcode-debugger==1.0.2", + "robotcode-language-server==1.0.2", + "robotcode-runner==1.0.2", + "robotcode-analyze==1.0.2", + "robotcode-repl==1.0.2", + "robotcode-repl-server==1.0.2", "PyYAML>=5.4", "robotframework-robocop>=2.0.0", "robotframework-tidy>=2.0.0", diff --git a/src/robotcode/cli/__version__.py b/src/robotcode/cli/__version__.py index 5c4105cd..7863915f 100644 --- a/src/robotcode/cli/__version__.py +++ b/src/robotcode/cli/__version__.py @@ -1 +1 @@ -__version__ = "1.0.1" +__version__ = "1.0.2" From b14877c41091ba777fdf8a4410ff4fc9630c383d Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Mon, 10 Mar 2025 09:15:01 +0100 Subject: [PATCH 03/35] refactor(debugger): some code simplifications --- packages/debugger/src/robotcode/debugger/run.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/debugger/src/robotcode/debugger/run.py b/packages/debugger/src/robotcode/debugger/run.py index 66c69b31..ee78e49c 100644 --- a/packages/debugger/src/robotcode/debugger/run.py +++ b/packages/debugger/src/robotcode/debugger/run.py @@ -114,11 +114,10 @@ def start_debugpy( if port != debugpy_port: _logger.warning(lambda: f"start debugpy session on port {port}") - # this is set by vscode for non config debugpy sessions, we don't need it, so remove it - if "DEBUGPY_ADAPTER_ENDPOINTS" in os.environ: - del os.environ["DEBUGPY_ADAPTER_ENDPOINTS"] - if "VSCODE_DEBUGPY_ADAPTER_ENDPOINTS" in os.environ: - del os.environ["VSCODE_DEBUGPY_ADAPTER_ENDPOINTS"] + # remove unwanted env variables + for env_var in ["DEBUGPY_ADAPTER_ENDPOINTS", "VSCODE_DEBUGPY_ADAPTER_ENDPOINTS"]: + if env_var in os.environ: + del os.environ[env_var] if enable_debugpy(port, addresses): global config_done_callback From c3c32bf36d3a75aabf22e01de9a35130931bbee9 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Mon, 10 Mar 2025 09:22:39 +0100 Subject: [PATCH 04/35] fix(vscode): correct handling of comments in keyword calls with return fixes #404 --- syntaxes/robotframework-repl.tmLanguage.json | 7 +++++-- syntaxes/robotframework.tmLanguage.json | 7 +++++-- syntaxes/robotframework.tmLanguage.template.json | 7 +++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/syntaxes/robotframework-repl.tmLanguage.json b/syntaxes/robotframework-repl.tmLanguage.json index a84e8237..6a4b1599 100644 --- a/syntaxes/robotframework-repl.tmLanguage.json +++ b/syntaxes/robotframework-repl.tmLanguage.json @@ -403,6 +403,7 @@ "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "beginCaptures": { "1": { "name": "keyword.control.flow.robotframework" } }, "patterns": [ + { "include": "#escape" }, { "include": "#comment" }, { "include": "#comment_line" }, { "include": "#variables" }, @@ -437,9 +438,11 @@ }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "patterns": [ + { "include": "#escape" }, + { "include": "#comment" }, + { "include": "#comment_line" }, { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#comment" } + { "include": "#line_continuation" } ] }, "line_continuation": { diff --git a/syntaxes/robotframework.tmLanguage.json b/syntaxes/robotframework.tmLanguage.json index b4651a86..1b5393e7 100644 --- a/syntaxes/robotframework.tmLanguage.json +++ b/syntaxes/robotframework.tmLanguage.json @@ -412,6 +412,7 @@ "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "beginCaptures": { "1": { "name": "keyword.control.flow.robotframework" } }, "patterns": [ + { "include": "#escape" }, { "include": "#comment" }, { "include": "#comment_line" }, { "include": "#variables" }, @@ -451,10 +452,12 @@ }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "patterns": [ + { "include": "#escape" }, + { "include": "#comment" }, + { "include": "#comment_line" }, { "include": "#variables" }, { "include": "#line_continuation" }, - { "include": "#arg_separator"}, - { "include": "#comment" } + { "include": "#arg_separator"} ] }, "variable_assignment_from_kw": { diff --git a/syntaxes/robotframework.tmLanguage.template.json b/syntaxes/robotframework.tmLanguage.template.json index db2eb948..7d9ab9cf 100644 --- a/syntaxes/robotframework.tmLanguage.template.json +++ b/syntaxes/robotframework.tmLanguage.template.json @@ -412,6 +412,7 @@ "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "beginCaptures": { "1": { "name": "keyword.control.flow.robotframework" } }, "patterns": [ + { "include": "#escape" }, { "include": "#comment" }, { "include": "#comment_line" }, { "include": "#variables" }, @@ -451,10 +452,12 @@ }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "patterns": [ + { "include": "#escape" }, + { "include": "#comment" }, + { "include": "#comment_line" }, { "include": "#variables" }, { "include": "#line_continuation" }, - { "include": "#arg_separator"}, - { "include": "#comment" } + { "include": "#arg_separator"} ] }, "variable_assignment_from_kw": { From 6b90851271beeb0cfa1a3f6feb6ce2a82a3b0361 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Thu, 13 Mar 2025 23:51:48 +0100 Subject: [PATCH 05/35] fix(debugger): ensure proper evaluation of variable expressions fixes #405 --- packages/debugger/src/robotcode/debugger/debugger.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/debugger/src/robotcode/debugger/debugger.py b/packages/debugger/src/robotcode/debugger/debugger.py index 5115fc9f..ec951ae1 100644 --- a/packages/debugger/src/robotcode/debugger/debugger.py +++ b/packages/debugger/src/robotcode/debugger/debugger.py @@ -1637,8 +1637,8 @@ def get_variables( return list(result.values()) - IS_VARIABLE_RE: ClassVar = re.compile(r"^[$@&%]\{.*\}(\[[^\]]*\])?$") - IS_VARIABLE_ASSIGNMENT_RE: ClassVar = re.compile(r"^[$@&%]\{.*\}=?$") + IS_VARIABLE_RE: ClassVar = re.compile(r"^[$@&]\{.*\}(\[[^\]]*\])?$") + IS_VARIABLE_ASSIGNMENT_RE: ClassVar = re.compile(r"^[$@&]\{.*\}=?$") SPLIT_LINE: ClassVar = re.compile(r"(?= {2,}| ?\t)\s*") CURRDIR: ClassVar = re.compile(r"(?i)\$\{CURDIR\}") @@ -1762,8 +1762,10 @@ def run_kw() -> Any: else: result = internal_evaluate_expression(vars.replace_string(expression), vars) else: - if self.IS_VARIABLE_RE.match(expression.strip()): - result = vars[expression.strip()] + parts = self.SPLIT_LINE.split(expression.strip()) + if parts and len(parts) == 1 and self.IS_VARIABLE_RE.match(parts[0].strip()): + # result = vars[parts[0].strip()] + result = vars.replace_scalar(parts[0].strip()) else: def get_test_body_from_string(command: str) -> TestCase: From 227d1738b05cbd07cc5ee88cd234fc477b082e18 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Fri, 14 Mar 2025 00:05:20 +0100 Subject: [PATCH 06/35] fix(analyzer): corrected handling of VAR statement for variable with equal sign fixes #408 --- .../robot/diagnostics/namespace_analyzer.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/robot/src/robotcode/robot/diagnostics/namespace_analyzer.py b/packages/robot/src/robotcode/robot/diagnostics/namespace_analyzer.py index 69e0e8b4..85c262a1 100644 --- a/packages/robot/src/robotcode/robot/diagnostics/namespace_analyzer.py +++ b/packages/robot/src/robotcode/robot/diagnostics/namespace_analyzer.py @@ -332,6 +332,10 @@ def visit_Var(self, node: Statement) -> None: # noqa: N802 if not is_variable(var_name): return + stripped_variable = strip_variable_token( + Token(variable.type, var_name, variable.lineno, variable.col_offset, variable.error) + ) + scope = cast(Var, node).scope if scope: scope = scope.upper() @@ -347,11 +351,11 @@ def visit_Var(self, node: Statement) -> None: # noqa: N802 var = var_type( name=var_name, - name_token=strip_variable_token(variable), - line_no=variable.lineno, - col_offset=variable.col_offset, - end_line_no=variable.lineno, - end_col_offset=variable.end_col_offset, + name_token=strip_variable_token(stripped_variable), + line_no=stripped_variable.lineno, + col_offset=stripped_variable.col_offset, + end_line_no=stripped_variable.lineno, + end_col_offset=stripped_variable.end_col_offset, source=self._namespace.source, ) @@ -361,7 +365,9 @@ def visit_Var(self, node: Statement) -> None: # noqa: N802 else: existing_var = self._variables[var.matcher] - location = Location(self._namespace.document_uri, range_from_token(strip_variable_token(variable))) + location = Location( + self._namespace.document_uri, range_from_token(strip_variable_token(stripped_variable)) + ) self._variable_references[existing_var].add(location) if existing_var in self._overridden_variables: self._variable_references[self._overridden_variables[existing_var]].add(location) From d451630a438cc1d8498c9665691d7e2ad942e6c0 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Fri, 14 Mar 2025 00:08:45 +0100 Subject: [PATCH 07/35] =?UTF-8?q?chore(release):=20bump=20version=201.0.2?= =?UTF-8?q?=20=E2=86=92=201.0.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 14 +++++++++ intellij-client/gradle.properties | 2 +- package-lock.json | 4 +-- package.json | 2 +- packages/analyze/pyproject.toml | 6 ++-- .../src/robotcode/analyze/__version__.py | 2 +- .../core/src/robotcode/core/__version__.py | 2 +- packages/debugger/pyproject.toml | 4 +-- .../src/robotcode/debugger/__version__.py | 2 +- packages/jsonrpc2/pyproject.toml | 2 +- .../src/robotcode/jsonrpc2/__version__.py | 2 +- packages/language_server/pyproject.toml | 8 ++--- .../robotcode/language_server/__version__.py | 2 +- .../src/robotcode/modifiers/__version__.py | 2 +- .../src/robotcode/plugin/__version__.py | 2 +- packages/repl/pyproject.toml | 2 +- .../repl/src/robotcode/repl/__version__.py | 2 +- packages/repl_server/pyproject.toml | 4 +-- .../src/robotcode/repl_server/__version__.py | 2 +- packages/robot/pyproject.toml | 2 +- .../robot/src/robotcode/robot/__version__.py | 2 +- packages/runner/pyproject.toml | 8 ++--- .../src/robotcode/runner/__version__.py | 2 +- pyproject.toml | 30 +++++++++---------- src/robotcode/cli/__version__.py | 2 +- 25 files changed, 63 insertions(+), 49 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f23c1b9e..020b6ce4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. +## [1.0.3](https://github.com/robotcodedev/robotcode/compare/v1.0.2..v1.0.3) - 2025-03-13 + +### Bug Fixes + +- **analyzer:** Corrected handling of VAR statement for variable with equal sign ([227d173](https://github.com/robotcodedev/robotcode/commit/227d1738b05cbd07cc5ee88cd234fc477b082e18)) +- **debugger:** Ensure proper evaluation of variable expressions ([6b90851](https://github.com/robotcodedev/robotcode/commit/6b90851271beeb0cfa1a3f6feb6ce2a82a3b0361)) +- **vscode:** Correct handling of comments in keyword calls with return ([c3c32bf](https://github.com/robotcodedev/robotcode/commit/c3c32bf36d3a75aabf22e01de9a35130931bbee9)) + + +### Refactor + +- **debugger:** Some code simplifications ([b14877c](https://github.com/robotcodedev/robotcode/commit/b14877c41091ba777fdf8a4410ff4fc9630c383d)) + + ## [1.0.2](https://github.com/robotcodedev/robotcode/compare/v1.0.1..v1.0.2) - 2025-03-07 ### Bug Fixes diff --git a/intellij-client/gradle.properties b/intellij-client/gradle.properties index 8627a67d..d121bdcb 100644 --- a/intellij-client/gradle.properties +++ b/intellij-client/gradle.properties @@ -4,7 +4,7 @@ pluginGroup = dev.robotcode pluginName = RobotCode - Robot Framework Support pluginRepositoryUrl = https://github.com/robotcodedev/robotcode4ij # SemVer format -> https://semver.org -pluginVersion = 1.0.2 +pluginVersion = 1.0.3 # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html pluginSinceBuild = 243 diff --git a/package-lock.json b/package-lock.json index c789c438..966cb96a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "robotcode", - "version": "1.0.2", + "version": "1.0.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "robotcode", - "version": "1.0.2", + "version": "1.0.3", "funding": [ { "type": "opencollective", diff --git a/package.json b/package.json index 2396e321..08fd291a 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Robot Framework IntelliSense, linting, test execution and debugging, code formatting, refactoring, and many more", "icon": "images/icon.png", "publisher": "d-biehl", - "version": "1.0.2", + "version": "1.0.3", "author": { "name": "Daniel Biehl", "url": "https://github.com/robotcodedev/" diff --git a/packages/analyze/pyproject.toml b/packages/analyze/pyproject.toml index 81aef9b6..ee3bfffc 100644 --- a/packages/analyze/pyproject.toml +++ b/packages/analyze/pyproject.toml @@ -27,9 +27,9 @@ classifiers = [ ] dependencies = [ "robotframework>=4.1.0", - "robotcode-plugin==1.0.2", - "robotcode-robot==1.0.2", - "robotcode==1.0.2", + "robotcode-plugin==1.0.3", + "robotcode-robot==1.0.3", + "robotcode==1.0.3", ] dynamic = ["version"] diff --git a/packages/analyze/src/robotcode/analyze/__version__.py b/packages/analyze/src/robotcode/analyze/__version__.py index 7863915f..976498ab 100644 --- a/packages/analyze/src/robotcode/analyze/__version__.py +++ b/packages/analyze/src/robotcode/analyze/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/packages/core/src/robotcode/core/__version__.py b/packages/core/src/robotcode/core/__version__.py index 7863915f..976498ab 100644 --- a/packages/core/src/robotcode/core/__version__.py +++ b/packages/core/src/robotcode/core/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/packages/debugger/pyproject.toml b/packages/debugger/pyproject.toml index 2c97a34f..8a1cc980 100644 --- a/packages/debugger/pyproject.toml +++ b/packages/debugger/pyproject.toml @@ -28,8 +28,8 @@ classifiers = [ dynamic = ["version"] dependencies = [ "robotframework>=4.1.0", - "robotcode-jsonrpc2==1.0.2", - "robotcode-runner==1.0.2", + "robotcode-jsonrpc2==1.0.3", + "robotcode-runner==1.0.3", ] [project.optional-dependencies] diff --git a/packages/debugger/src/robotcode/debugger/__version__.py b/packages/debugger/src/robotcode/debugger/__version__.py index 7863915f..976498ab 100644 --- a/packages/debugger/src/robotcode/debugger/__version__.py +++ b/packages/debugger/src/robotcode/debugger/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/packages/jsonrpc2/pyproject.toml b/packages/jsonrpc2/pyproject.toml index fab2a567..d4690296 100644 --- a/packages/jsonrpc2/pyproject.toml +++ b/packages/jsonrpc2/pyproject.toml @@ -25,7 +25,7 @@ classifiers = [ "Framework :: Robot Framework", "Framework :: Robot Framework :: Tool", ] -dependencies = ["robotcode-core==1.0.2"] +dependencies = ["robotcode-core==1.0.3"] dynamic = ["version"] [project.urls] diff --git a/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py b/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py index 7863915f..976498ab 100644 --- a/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py +++ b/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/packages/language_server/pyproject.toml b/packages/language_server/pyproject.toml index 29e35014..0e500799 100644 --- a/packages/language_server/pyproject.toml +++ b/packages/language_server/pyproject.toml @@ -27,10 +27,10 @@ classifiers = [ ] dependencies = [ "robotframework>=4.1.0", - "robotcode-jsonrpc2==1.0.2", - "robotcode-robot==1.0.2", - "robotcode-analyze==1.0.2", - "robotcode==1.0.2", + "robotcode-jsonrpc2==1.0.3", + "robotcode-robot==1.0.3", + "robotcode-analyze==1.0.3", + "robotcode==1.0.3", ] dynamic = ["version"] diff --git a/packages/language_server/src/robotcode/language_server/__version__.py b/packages/language_server/src/robotcode/language_server/__version__.py index 7863915f..976498ab 100644 --- a/packages/language_server/src/robotcode/language_server/__version__.py +++ b/packages/language_server/src/robotcode/language_server/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/packages/modifiers/src/robotcode/modifiers/__version__.py b/packages/modifiers/src/robotcode/modifiers/__version__.py index 7863915f..976498ab 100644 --- a/packages/modifiers/src/robotcode/modifiers/__version__.py +++ b/packages/modifiers/src/robotcode/modifiers/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/packages/plugin/src/robotcode/plugin/__version__.py b/packages/plugin/src/robotcode/plugin/__version__.py index 7863915f..976498ab 100644 --- a/packages/plugin/src/robotcode/plugin/__version__.py +++ b/packages/plugin/src/robotcode/plugin/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/packages/repl/pyproject.toml b/packages/repl/pyproject.toml index 8c53d2e6..ff1b1521 100644 --- a/packages/repl/pyproject.toml +++ b/packages/repl/pyproject.toml @@ -27,7 +27,7 @@ classifiers = [ ] dynamic = ["version"] dependencies = [ - "robotcode-runner==1.0.2" + "robotcode-runner==1.0.3" ] [project.entry-points.robotcode] diff --git a/packages/repl/src/robotcode/repl/__version__.py b/packages/repl/src/robotcode/repl/__version__.py index 7863915f..976498ab 100644 --- a/packages/repl/src/robotcode/repl/__version__.py +++ b/packages/repl/src/robotcode/repl/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/packages/repl_server/pyproject.toml b/packages/repl_server/pyproject.toml index f83cb8c6..b6c5ab4e 100644 --- a/packages/repl_server/pyproject.toml +++ b/packages/repl_server/pyproject.toml @@ -27,8 +27,8 @@ classifiers = [ ] dynamic = ["version"] dependencies = [ - "robotcode-jsonrpc2==1.0.2", - "robotcode-runner==1.0.2" + "robotcode-jsonrpc2==1.0.3", + "robotcode-runner==1.0.3" ] [project.entry-points.robotcode] diff --git a/packages/repl_server/src/robotcode/repl_server/__version__.py b/packages/repl_server/src/robotcode/repl_server/__version__.py index 7863915f..976498ab 100644 --- a/packages/repl_server/src/robotcode/repl_server/__version__.py +++ b/packages/repl_server/src/robotcode/repl_server/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/packages/robot/pyproject.toml b/packages/robot/pyproject.toml index 6a54b909..0b00ae80 100644 --- a/packages/robot/pyproject.toml +++ b/packages/robot/pyproject.toml @@ -30,7 +30,7 @@ dependencies = [ "robotframework>=4.1.0", "tomli>=1.1.0; python_version < '3.11'", "platformdirs>=3.2.0,<4.4.0", - "robotcode-core==1.0.2", + "robotcode-core==1.0.3", ] dynamic = ["version"] diff --git a/packages/robot/src/robotcode/robot/__version__.py b/packages/robot/src/robotcode/robot/__version__.py index 7863915f..976498ab 100644 --- a/packages/robot/src/robotcode/robot/__version__.py +++ b/packages/robot/src/robotcode/robot/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/packages/runner/pyproject.toml b/packages/runner/pyproject.toml index 1596cec8..d1c47098 100644 --- a/packages/runner/pyproject.toml +++ b/packages/runner/pyproject.toml @@ -28,10 +28,10 @@ classifiers = [ dynamic = ["version"] dependencies = [ "robotframework>=4.1.0", - "robotcode-robot==1.0.2", - "robotcode-modifiers==1.0.2", - "robotcode-plugin==1.0.2", - "robotcode==1.0.2", + "robotcode-robot==1.0.3", + "robotcode-modifiers==1.0.3", + "robotcode-plugin==1.0.3", + "robotcode==1.0.3", ] [project.entry-points.robotcode] diff --git a/packages/runner/src/robotcode/runner/__version__.py b/packages/runner/src/robotcode/runner/__version__.py index 7863915f..976498ab 100644 --- a/packages/runner/src/robotcode/runner/__version__.py +++ b/packages/runner/src/robotcode/runner/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" diff --git a/pyproject.toml b/pyproject.toml index acf2f83f..0cd120cc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,9 +51,9 @@ classifiers = [ ] requires-python = ">=3.8" dependencies = [ - "robotcode-core==1.0.2", - "robotcode-plugin==1.0.2", - "robotcode-robot==1.0.2", + "robotcode-core==1.0.3", + "robotcode-plugin==1.0.3", + "robotcode-robot==1.0.3", ] dynamic = ["version"] @@ -71,24 +71,24 @@ robotcode = "robotcode.cli.__main__:main" [project.optional-dependencies] -debugger = ["robotcode-debugger==1.0.2"] -languageserver = ["robotcode-language-server==1.0.2"] -runner = ["robotcode-runner==1.0.2"] -analyze = ["robotcode-analyze==1.0.2"] +debugger = ["robotcode-debugger==1.0.3"] +languageserver = ["robotcode-language-server==1.0.3"] +runner = ["robotcode-runner==1.0.3"] +analyze = ["robotcode-analyze==1.0.3"] yaml = ["PyYAML>=5.4"] lint = ["robotframework-robocop>=2.0.0"] tidy = ["robotframework-tidy>=2.0.0"] rest = ["docutils"] -repl = ["robotcode-repl==1.0.2"] -replserver = ["robotcode-repl-server==1.0.2"] +repl = ["robotcode-repl==1.0.3"] +replserver = ["robotcode-repl-server==1.0.3"] colored = ["rich"] all = [ - "robotcode-debugger==1.0.2", - "robotcode-language-server==1.0.2", - "robotcode-runner==1.0.2", - "robotcode-analyze==1.0.2", - "robotcode-repl==1.0.2", - "robotcode-repl-server==1.0.2", + "robotcode-debugger==1.0.3", + "robotcode-language-server==1.0.3", + "robotcode-runner==1.0.3", + "robotcode-analyze==1.0.3", + "robotcode-repl==1.0.3", + "robotcode-repl-server==1.0.3", "PyYAML>=5.4", "robotframework-robocop>=2.0.0", "robotframework-tidy>=2.0.0", diff --git a/src/robotcode/cli/__version__.py b/src/robotcode/cli/__version__.py index 7863915f..976498ab 100644 --- a/src/robotcode/cli/__version__.py +++ b/src/robotcode/cli/__version__.py @@ -1 +1 @@ -__version__ = "1.0.2" +__version__ = "1.0.3" From b47fc81c85310273e716c4ae9804ec876c5080e3 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Fri, 14 Mar 2025 09:10:07 +0100 Subject: [PATCH 08/35] test(langserver): update and add some tests --- ...ols.robot-057-001-unreachable_keyword].out | 8 +- ...ols.robot-057-002-unreachable_keyword].out | 8 +- ...ols.robot-057-003-unreachable_keyword].out | 8 +- ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...06-variable_with_space_and_equal_sign].out | 25 ++++ ...08-variable_with_space_and_equal_sign].out | 25 ++++ ...10-variable_with_space_and_equal_sign].out | 25 ++++ ...st_semantic_tokens.test[symbols.robot].out | 50 ++++++++ .../rf41/test_workspace_symbols.test[].out | 30 +++++ .../rf41/test_workspace_symbols.test[as].out | 15 +++ ...ols.robot-057-001-unreachable_keyword].out | 8 +- ...ols.robot-057-002-unreachable_keyword].out | 8 +- ...ols.robot-057-003-unreachable_keyword].out | 8 +- ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...06-variable_with_space_and_equal_sign].out | 25 ++++ ...08-variable_with_space_and_equal_sign].out | 25 ++++ ...10-variable_with_space_and_equal_sign].out | 25 ++++ ...st_semantic_tokens.test[symbols.robot].out | 50 ++++++++ .../rf50/test_workspace_symbols.test[].out | 30 +++++ .../rf50/test_workspace_symbols.test[as].out | 15 +++ ...ols.robot-057-001-unreachable_keyword].out | 8 +- ...ols.robot-057-002-unreachable_keyword].out | 8 +- ...ols.robot-057-003-unreachable_keyword].out | 8 +- ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...06-variable_with_space_and_equal_sign].out | 25 ++++ ...08-variable_with_space_and_equal_sign].out | 25 ++++ ...10-variable_with_space_and_equal_sign].out | 25 ++++ ...st_semantic_tokens.test[symbols.robot].out | 50 ++++++++ .../rf60/test_workspace_symbols.test[].out | 30 +++++ .../rf60/test_workspace_symbols.test[as].out | 15 +++ ...ols.robot-057-001-unreachable_keyword].out | 8 +- ...ols.robot-057-002-unreachable_keyword].out | 8 +- ...ols.robot-057-003-unreachable_keyword].out | 8 +- ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...06-variable_with_space_and_equal_sign].out | 25 ++++ ...08-variable_with_space_and_equal_sign].out | 25 ++++ ...10-variable_with_space_and_equal_sign].out | 25 ++++ ...st_semantic_tokens.test[symbols.robot].out | 50 ++++++++ .../rf61/test_workspace_symbols.test[].out | 30 +++++ .../rf61/test_workspace_symbols.test[as].out | 15 +++ ...ols.robot-057-001-unreachable_keyword].out | 8 +- ...ols.robot-057-002-unreachable_keyword].out | 8 +- ...ols.robot-057-003-unreachable_keyword].out | 8 +- ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...06-variable_with_space_and_equal_sign].out | 25 ++++ ...08-variable_with_space_and_equal_sign].out | 25 ++++ ...10-variable_with_space_and_equal_sign].out | 25 ++++ ...st_semantic_tokens.test[symbols.robot].out | 40 +++++++ .../rf70/test_workspace_symbols.test[].out | 109 +++++++++++++----- .../rf70/test_workspace_symbols.test[as].out | 15 +++ ...ols.robot-057-001-unreachable_keyword].out | 8 +- ...ols.robot-057-002-unreachable_keyword].out | 8 +- ...ols.robot-057-003-unreachable_keyword].out | 8 +- ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...06-variable_with_space_and_equal_sign].out | 25 ++++ ...08-variable_with_space_and_equal_sign].out | 25 ++++ ...10-variable_with_space_and_equal_sign].out | 25 ++++ ...st_semantic_tokens.test[symbols.robot].out | 40 +++++++ .../rf71/test_workspace_symbols.test[].out | 109 +++++++++++++----- .../rf71/test_workspace_symbols.test[as].out | 15 +++ ...ols.robot-057-001-unreachable_keyword].out | 8 +- ...ols.robot-057-002-unreachable_keyword].out | 8 +- ...ols.robot-057-003-unreachable_keyword].out | 8 +- ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...11-variable_with_space_and_equal_sign].out | 25 ++++ ...13-variable_with_space_and_equal_sign].out | 25 ++++ ...15-variable_with_space_and_equal_sign].out | 25 ++++ ...06-variable_with_space_and_equal_sign].out | 25 ++++ ...08-variable_with_space_and_equal_sign].out | 25 ++++ ...10-variable_with_space_and_equal_sign].out | 25 ++++ ...st_semantic_tokens.test[symbols.robot].out | 40 +++++++ .../rf72/test_workspace_symbols.test[].out | 109 +++++++++++++----- .../rf72/test_workspace_symbols.test[as].out | 15 +++ .../parts/data/tests/symbols.robot | 9 ++ 106 files changed, 2444 insertions(+), 180 deletions(-) create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out create mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out index f986fa55..ce528ed4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out index 50ea0a76..5a40a0a4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out index 6f3deff6..0644acb8 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..7eb4a249 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..2b7ef04b --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..c3fab851 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..557b4dad --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..48e572cf --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..a22958e5 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b63cdd9a --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 6 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..54d37321 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 8 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b418b805 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 10 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[symbols.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[symbols.robot].out index 37a237f6..4189c2b1 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[symbols.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[symbols.robot].out @@ -285,4 +285,54 @@ result: !SemanticTokens - 11 - 39 - 0 + - 2 + - 0 + - 18 + - 29 + - 0 + - 1 + - 0 + - 20 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 5 + - 2 + - 47 + - 0 + - 0 + - 7 + - 1 + - 48 + - 0 + - 2 + - 4 + - 3 + - 39 + - 0 + - 0 + - 5 + - 2 + - 47 + - 0 + - 0 + - 7 + - 1 + - 48 + - 0 + - 2 + - 4 + - 9 + - 38 + - 0 + - 0 + - 11 + - 8 + - 39 + - 1024 result_id: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[].out index bf28fc27..982c55d4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[].out @@ -5070,6 +5070,21 @@ result: uri: symbols.robot name: ${second} tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 13 + location: + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + uri: symbols.robot + name: ${var 1} + tags: null - !WorkspaceSymbol container_name: symbols data: null @@ -5116,6 +5131,21 @@ result: uri: symbols.robot name: first tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[as].out index debc9dce..0b9bac44 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[as].out @@ -974,6 +974,21 @@ result: uri: symbols.robot name: a keywords tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out index f986fa55..ce528ed4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out index 50ea0a76..5a40a0a4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out index 6f3deff6..0644acb8 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..7eb4a249 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..2b7ef04b --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..c3fab851 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..557b4dad --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..48e572cf --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..a22958e5 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b63cdd9a --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 6 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..54d37321 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 8 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b418b805 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 10 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[symbols.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[symbols.robot].out index 6e4bfd53..31ff5dc7 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[symbols.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[symbols.robot].out @@ -290,4 +290,54 @@ result: !SemanticTokens - 11 - 39 - 0 + - 2 + - 0 + - 18 + - 29 + - 0 + - 1 + - 0 + - 20 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 5 + - 2 + - 47 + - 0 + - 0 + - 7 + - 1 + - 48 + - 0 + - 2 + - 4 + - 3 + - 39 + - 0 + - 0 + - 5 + - 2 + - 47 + - 0 + - 0 + - 7 + - 1 + - 48 + - 0 + - 2 + - 4 + - 9 + - 38 + - 0 + - 0 + - 11 + - 8 + - 39 + - 1024 result_id: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[].out index ebe4bbdf..4880617f 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[].out @@ -5115,6 +5115,21 @@ result: uri: symbols.robot name: ${second} tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 13 + location: + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + uri: symbols.robot + name: ${var 1} + tags: null - !WorkspaceSymbol container_name: symbols data: null @@ -5161,6 +5176,21 @@ result: uri: symbols.robot name: first tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[as].out index debc9dce..0b9bac44 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[as].out @@ -974,6 +974,21 @@ result: uri: symbols.robot name: a keywords tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out index f986fa55..ce528ed4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out index 50ea0a76..5a40a0a4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out index 6f3deff6..0644acb8 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..7eb4a249 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..2b7ef04b --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..c3fab851 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..557b4dad --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..48e572cf --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..a22958e5 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b63cdd9a --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 6 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..54d37321 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 8 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b418b805 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 10 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[symbols.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[symbols.robot].out index 6e4bfd53..31ff5dc7 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[symbols.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[symbols.robot].out @@ -290,4 +290,54 @@ result: !SemanticTokens - 11 - 39 - 0 + - 2 + - 0 + - 18 + - 29 + - 0 + - 1 + - 0 + - 20 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 5 + - 2 + - 47 + - 0 + - 0 + - 7 + - 1 + - 48 + - 0 + - 2 + - 4 + - 3 + - 39 + - 0 + - 0 + - 5 + - 2 + - 47 + - 0 + - 0 + - 7 + - 1 + - 48 + - 0 + - 2 + - 4 + - 9 + - 38 + - 0 + - 0 + - 11 + - 8 + - 39 + - 1024 result_id: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[].out index ebe4bbdf..4880617f 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[].out @@ -5115,6 +5115,21 @@ result: uri: symbols.robot name: ${second} tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 13 + location: + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + uri: symbols.robot + name: ${var 1} + tags: null - !WorkspaceSymbol container_name: symbols data: null @@ -5161,6 +5176,21 @@ result: uri: symbols.robot name: first tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[as].out index debc9dce..0b9bac44 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[as].out @@ -974,6 +974,21 @@ result: uri: symbols.robot name: a keywords tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out index f986fa55..ce528ed4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out index 50ea0a76..5a40a0a4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out index 6f3deff6..0644acb8 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..7eb4a249 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..2b7ef04b --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..c3fab851 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..557b4dad --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..48e572cf --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..a22958e5 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 5 + name: vars with equal sign + range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + selection_range: + end: + character: 47 + line: 69 + start: + character: 0 + line: 63 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b63cdd9a --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 6 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..54d37321 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 8 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b418b805 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 10 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[symbols.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[symbols.robot].out index 6e4bfd53..31ff5dc7 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[symbols.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[symbols.robot].out @@ -290,4 +290,54 @@ result: !SemanticTokens - 11 - 39 - 0 + - 2 + - 0 + - 18 + - 29 + - 0 + - 1 + - 0 + - 20 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 5 + - 2 + - 47 + - 0 + - 0 + - 7 + - 1 + - 48 + - 0 + - 2 + - 4 + - 3 + - 39 + - 0 + - 0 + - 5 + - 2 + - 47 + - 0 + - 0 + - 7 + - 1 + - 48 + - 0 + - 2 + - 4 + - 9 + - 38 + - 0 + - 0 + - 11 + - 8 + - 39 + - 1024 result_id: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[].out index ebe4bbdf..4880617f 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[].out @@ -5115,6 +5115,21 @@ result: uri: symbols.robot name: ${second} tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 13 + location: + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + uri: symbols.robot + name: ${var 1} + tags: null - !WorkspaceSymbol container_name: symbols data: null @@ -5161,6 +5176,21 @@ result: uri: symbols.robot name: first tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[as].out index debc9dce..0b9bac44 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[as].out @@ -974,6 +974,21 @@ result: uri: symbols.robot name: a keywords tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out index f986fa55..ce528ed4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out index 50ea0a76..5a40a0a4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out index 6f3deff6..0644acb8 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..0a5deace --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1}= + range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + selection_range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..42fbdf6c --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1}= + range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + selection_range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..314d4be0 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1}= + range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + selection_range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..a3a7da2d --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 2} = + range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + selection_range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..57340c76 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 2} = + range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + selection_range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..820ba80a --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 2} = + range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + selection_range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b63cdd9a --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 6 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..54d37321 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 8 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b418b805 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 10 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[symbols.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[symbols.robot].out index 8dcbcd13..19a2ce1a 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[symbols.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[symbols.robot].out @@ -290,4 +290,44 @@ result: !SemanticTokens - 11 - 39 - 0 + - 2 + - 0 + - 18 + - 29 + - 0 + - 1 + - 0 + - 20 + - 33 + - 1 + - 1 + - 4 + - 3 + - 55 + - 0 + - 0 + - 5 + - 9 + - 38 + - 0 + - 2 + - 4 + - 3 + - 55 + - 0 + - 0 + - 5 + - 10 + - 38 + - 0 + - 2 + - 4 + - 9 + - 38 + - 0 + - 0 + - 11 + - 8 + - 39 + - 1024 result_id: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[].out index e22235db..58118c06 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[].out @@ -3802,10 +3802,10 @@ result: location: range: end: - character: 21 + character: 20 line: 210 start: - character: 11 + character: 13 line: 210 uri: references.robot name: ${counter} @@ -3832,10 +3832,10 @@ result: location: range: end: - character: 13 + character: 12 line: 260 start: - character: 9 + character: 11 line: 260 uri: references.robot name: ${i} @@ -3847,10 +3847,10 @@ result: location: range: end: - character: 24 + character: 23 line: 247 start: - character: 15 + character: 17 line: 247 uri: references.robot name: ${my var} @@ -3877,10 +3877,10 @@ result: location: range: end: - character: 20 + character: 19 line: 226 start: - character: 11 + character: 13 line: 226 uri: references.robot name: ${output} @@ -5152,10 +5152,10 @@ result: location: range: end: - character: 21 + character: 20 line: 19 start: - character: 9 + character: 11 line: 19 uri: symbols.robot name: ${local_var} @@ -5190,6 +5190,36 @@ result: uri: symbols.robot name: ${second} tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 13 + location: + range: + end: + character: 16 + line: 64 + start: + character: 11 + line: 64 + uri: symbols.robot + name: ${var 1} + tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 13 + location: + range: + end: + character: 16 + line: 66 + start: + character: 11 + line: 66 + uri: symbols.robot + name: ${var 2} + tags: null - !WorkspaceSymbol container_name: symbols data: null @@ -5236,6 +5266,21 @@ result: uri: symbols.robot name: first tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null @@ -6878,10 +6923,10 @@ result: location: range: end: - character: 20 + character: 19 line: 4 start: - character: 11 + character: 13 line: 4 uri: vartest.robot name: ${RESULT} @@ -6893,10 +6938,10 @@ result: location: range: end: - character: 20 + character: 19 line: 10 start: - character: 11 + character: 13 line: 10 uri: vartest.robot name: ${RESULT} @@ -6908,10 +6953,10 @@ result: location: range: end: - character: 20 + character: 19 line: 17 start: - character: 11 + character: 13 line: 17 uri: vartest.robot name: ${RESULT} @@ -6983,10 +7028,10 @@ result: location: range: end: - character: 15 + character: 14 line: 2 start: - character: 11 + character: 13 line: 2 uri: vartest.robot name: ${a} @@ -6998,10 +7043,10 @@ result: location: range: end: - character: 15 + character: 14 line: 8 start: - character: 11 + character: 13 line: 8 uri: vartest.robot name: ${a} @@ -7013,10 +7058,10 @@ result: location: range: end: - character: 15 + character: 14 line: 15 start: - character: 11 + character: 13 line: 15 uri: vartest.robot name: ${a} @@ -7028,10 +7073,10 @@ result: location: range: end: - character: 15 + character: 14 line: 3 start: - character: 11 + character: 13 line: 3 uri: vartest.robot name: ${b} @@ -7043,10 +7088,10 @@ result: location: range: end: - character: 15 + character: 14 line: 9 start: - character: 11 + character: 13 line: 9 uri: vartest.robot name: ${b} @@ -7058,10 +7103,10 @@ result: location: range: end: - character: 15 + character: 14 line: 16 start: - character: 11 + character: 13 line: 16 uri: vartest.robot name: ${b} @@ -7073,10 +7118,10 @@ result: location: range: end: - character: 15 + character: 14 line: 21 start: - character: 11 + character: 13 line: 21 uri: vartest.robot name: '&{a}' @@ -7088,10 +7133,10 @@ result: location: range: end: - character: 15 + character: 14 line: 25 start: - character: 11 + character: 13 line: 25 uri: vartest.robot name: '@{a}' diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[as].out index debc9dce..0b9bac44 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[as].out @@ -974,6 +974,21 @@ result: uri: symbols.robot name: a keywords tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out index f986fa55..ce528ed4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out index 50ea0a76..5a40a0a4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out index 6f3deff6..0644acb8 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..0a5deace --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1}= + range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + selection_range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..42fbdf6c --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1}= + range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + selection_range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..314d4be0 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1}= + range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + selection_range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..a3a7da2d --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 2} = + range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + selection_range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..57340c76 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 2} = + range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + selection_range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..820ba80a --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 2} = + range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + selection_range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b63cdd9a --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 6 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..54d37321 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 8 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b418b805 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 10 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[symbols.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[symbols.robot].out index 8dcbcd13..19a2ce1a 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[symbols.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[symbols.robot].out @@ -290,4 +290,44 @@ result: !SemanticTokens - 11 - 39 - 0 + - 2 + - 0 + - 18 + - 29 + - 0 + - 1 + - 0 + - 20 + - 33 + - 1 + - 1 + - 4 + - 3 + - 55 + - 0 + - 0 + - 5 + - 9 + - 38 + - 0 + - 2 + - 4 + - 3 + - 55 + - 0 + - 0 + - 5 + - 10 + - 38 + - 0 + - 2 + - 4 + - 9 + - 38 + - 0 + - 0 + - 11 + - 8 + - 39 + - 1024 result_id: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[].out index e22235db..58118c06 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[].out @@ -3802,10 +3802,10 @@ result: location: range: end: - character: 21 + character: 20 line: 210 start: - character: 11 + character: 13 line: 210 uri: references.robot name: ${counter} @@ -3832,10 +3832,10 @@ result: location: range: end: - character: 13 + character: 12 line: 260 start: - character: 9 + character: 11 line: 260 uri: references.robot name: ${i} @@ -3847,10 +3847,10 @@ result: location: range: end: - character: 24 + character: 23 line: 247 start: - character: 15 + character: 17 line: 247 uri: references.robot name: ${my var} @@ -3877,10 +3877,10 @@ result: location: range: end: - character: 20 + character: 19 line: 226 start: - character: 11 + character: 13 line: 226 uri: references.robot name: ${output} @@ -5152,10 +5152,10 @@ result: location: range: end: - character: 21 + character: 20 line: 19 start: - character: 9 + character: 11 line: 19 uri: symbols.robot name: ${local_var} @@ -5190,6 +5190,36 @@ result: uri: symbols.robot name: ${second} tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 13 + location: + range: + end: + character: 16 + line: 64 + start: + character: 11 + line: 64 + uri: symbols.robot + name: ${var 1} + tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 13 + location: + range: + end: + character: 16 + line: 66 + start: + character: 11 + line: 66 + uri: symbols.robot + name: ${var 2} + tags: null - !WorkspaceSymbol container_name: symbols data: null @@ -5236,6 +5266,21 @@ result: uri: symbols.robot name: first tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null @@ -6878,10 +6923,10 @@ result: location: range: end: - character: 20 + character: 19 line: 4 start: - character: 11 + character: 13 line: 4 uri: vartest.robot name: ${RESULT} @@ -6893,10 +6938,10 @@ result: location: range: end: - character: 20 + character: 19 line: 10 start: - character: 11 + character: 13 line: 10 uri: vartest.robot name: ${RESULT} @@ -6908,10 +6953,10 @@ result: location: range: end: - character: 20 + character: 19 line: 17 start: - character: 11 + character: 13 line: 17 uri: vartest.robot name: ${RESULT} @@ -6983,10 +7028,10 @@ result: location: range: end: - character: 15 + character: 14 line: 2 start: - character: 11 + character: 13 line: 2 uri: vartest.robot name: ${a} @@ -6998,10 +7043,10 @@ result: location: range: end: - character: 15 + character: 14 line: 8 start: - character: 11 + character: 13 line: 8 uri: vartest.robot name: ${a} @@ -7013,10 +7058,10 @@ result: location: range: end: - character: 15 + character: 14 line: 15 start: - character: 11 + character: 13 line: 15 uri: vartest.robot name: ${a} @@ -7028,10 +7073,10 @@ result: location: range: end: - character: 15 + character: 14 line: 3 start: - character: 11 + character: 13 line: 3 uri: vartest.robot name: ${b} @@ -7043,10 +7088,10 @@ result: location: range: end: - character: 15 + character: 14 line: 9 start: - character: 11 + character: 13 line: 9 uri: vartest.robot name: ${b} @@ -7058,10 +7103,10 @@ result: location: range: end: - character: 15 + character: 14 line: 16 start: - character: 11 + character: 13 line: 16 uri: vartest.robot name: ${b} @@ -7073,10 +7118,10 @@ result: location: range: end: - character: 15 + character: 14 line: 21 start: - character: 11 + character: 13 line: 21 uri: vartest.robot name: '&{a}' @@ -7088,10 +7133,10 @@ result: location: range: end: - character: 15 + character: 14 line: 25 start: - character: 11 + character: 13 line: 25 uri: vartest.robot name: '@{a}' diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[as].out index debc9dce..0b9bac44 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[as].out @@ -974,6 +974,21 @@ result: uri: symbols.robot name: a keywords tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out index f986fa55..ce528ed4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-001-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out index 50ea0a76..5a40a0a4 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-002-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out index 6f3deff6..0644acb8 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-057-003-unreachable_keyword].out @@ -10,15 +10,15 @@ result: !DocumentSymbol name: Keywords range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 selection_range: end: - character: 16 - line: 60 + character: 1 + line: 61 start: character: 0 line: 56 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..0a5deace --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1}= + range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + selection_range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..42fbdf6c --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1}= + range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + selection_range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..314d4be0 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-064-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 64 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1}= + range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + selection_range: + end: + character: 18 + line: 64 + start: + character: 9 + line: 64 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..a3a7da2d --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-011-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 11 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 2} = + range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + selection_range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..57340c76 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-013-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 13 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 2} = + range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + selection_range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..820ba80a --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-066-015-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 15 + line: 66 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 2} = + range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + selection_range: + end: + character: 19 + line: 66 + start: + character: 9 + line: 66 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b63cdd9a --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-006-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 6 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..54d37321 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-008-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 8 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out new file mode 100644 index 00000000..b418b805 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_document_symbols.test[symbols.robot-068-010-variable_with_space_and_equal_sign].out @@ -0,0 +1,25 @@ +data: !GeneratedTestData + character: 10 + line: 68 + name: variable with space and equal sign +result: !DocumentSymbol + children: [] + deprecated: null + detail: null + kind: 13 + name: ${var 1} + range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + selection_range: + end: + character: 12 + line: 68 + start: + character: 4 + line: 68 + tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[symbols.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[symbols.robot].out index 8dcbcd13..19a2ce1a 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[symbols.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[symbols.robot].out @@ -290,4 +290,44 @@ result: !SemanticTokens - 11 - 39 - 0 + - 2 + - 0 + - 18 + - 29 + - 0 + - 1 + - 0 + - 20 + - 33 + - 1 + - 1 + - 4 + - 3 + - 55 + - 0 + - 0 + - 5 + - 9 + - 38 + - 0 + - 2 + - 4 + - 3 + - 55 + - 0 + - 0 + - 5 + - 10 + - 38 + - 0 + - 2 + - 4 + - 9 + - 38 + - 0 + - 0 + - 11 + - 8 + - 39 + - 1024 result_id: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[].out index e22235db..58118c06 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[].out @@ -3802,10 +3802,10 @@ result: location: range: end: - character: 21 + character: 20 line: 210 start: - character: 11 + character: 13 line: 210 uri: references.robot name: ${counter} @@ -3832,10 +3832,10 @@ result: location: range: end: - character: 13 + character: 12 line: 260 start: - character: 9 + character: 11 line: 260 uri: references.robot name: ${i} @@ -3847,10 +3847,10 @@ result: location: range: end: - character: 24 + character: 23 line: 247 start: - character: 15 + character: 17 line: 247 uri: references.robot name: ${my var} @@ -3877,10 +3877,10 @@ result: location: range: end: - character: 20 + character: 19 line: 226 start: - character: 11 + character: 13 line: 226 uri: references.robot name: ${output} @@ -5152,10 +5152,10 @@ result: location: range: end: - character: 21 + character: 20 line: 19 start: - character: 9 + character: 11 line: 19 uri: symbols.robot name: ${local_var} @@ -5190,6 +5190,36 @@ result: uri: symbols.robot name: ${second} tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 13 + location: + range: + end: + character: 16 + line: 64 + start: + character: 11 + line: 64 + uri: symbols.robot + name: ${var 1} + tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 13 + location: + range: + end: + character: 16 + line: 66 + start: + character: 11 + line: 66 + uri: symbols.robot + name: ${var 2} + tags: null - !WorkspaceSymbol container_name: symbols data: null @@ -5236,6 +5266,21 @@ result: uri: symbols.robot name: first tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null @@ -6878,10 +6923,10 @@ result: location: range: end: - character: 20 + character: 19 line: 4 start: - character: 11 + character: 13 line: 4 uri: vartest.robot name: ${RESULT} @@ -6893,10 +6938,10 @@ result: location: range: end: - character: 20 + character: 19 line: 10 start: - character: 11 + character: 13 line: 10 uri: vartest.robot name: ${RESULT} @@ -6908,10 +6953,10 @@ result: location: range: end: - character: 20 + character: 19 line: 17 start: - character: 11 + character: 13 line: 17 uri: vartest.robot name: ${RESULT} @@ -6983,10 +7028,10 @@ result: location: range: end: - character: 15 + character: 14 line: 2 start: - character: 11 + character: 13 line: 2 uri: vartest.robot name: ${a} @@ -6998,10 +7043,10 @@ result: location: range: end: - character: 15 + character: 14 line: 8 start: - character: 11 + character: 13 line: 8 uri: vartest.robot name: ${a} @@ -7013,10 +7058,10 @@ result: location: range: end: - character: 15 + character: 14 line: 15 start: - character: 11 + character: 13 line: 15 uri: vartest.robot name: ${a} @@ -7028,10 +7073,10 @@ result: location: range: end: - character: 15 + character: 14 line: 3 start: - character: 11 + character: 13 line: 3 uri: vartest.robot name: ${b} @@ -7043,10 +7088,10 @@ result: location: range: end: - character: 15 + character: 14 line: 9 start: - character: 11 + character: 13 line: 9 uri: vartest.robot name: ${b} @@ -7058,10 +7103,10 @@ result: location: range: end: - character: 15 + character: 14 line: 16 start: - character: 11 + character: 13 line: 16 uri: vartest.robot name: ${b} @@ -7073,10 +7118,10 @@ result: location: range: end: - character: 15 + character: 14 line: 21 start: - character: 11 + character: 13 line: 21 uri: vartest.robot name: '&{a}' @@ -7088,10 +7133,10 @@ result: location: range: end: - character: 15 + character: 14 line: 25 start: - character: 11 + character: 13 line: 25 uri: vartest.robot name: '@{a}' diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[as].out index debc9dce..0b9bac44 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[as].out @@ -974,6 +974,21 @@ result: uri: symbols.robot name: a keywords tags: null +- !WorkspaceSymbol + container_name: symbols + data: null + kind: 5 + location: + range: + end: + character: 20 + line: 63 + start: + character: 0 + line: 63 + uri: symbols.robot + name: vars with equal sign + tags: null - !WorkspaceSymbol container_name: templates data: null diff --git a/tests/robotcode/language_server/robotframework/parts/data/tests/symbols.robot b/tests/robotcode/language_server/robotframework/parts/data/tests/symbols.robot index 37b6b870..d6071220 100644 --- a/tests/robotcode/language_server/robotframework/parts/data/tests/symbols.robot +++ b/tests/robotcode/language_server/robotframework/parts/data/tests/symbols.robot @@ -59,3 +59,12 @@ another keyword #^^^ unreachable keyword Unreachable + +*** Test Cases *** +vars with equal sign + VAR ${var 1}= 1 +# ^^^^^ variable with space and equal sign + VAR ${var 2} = 1 +# ^^^^^ variable with space and equal sign + ${var 1}= Evaluate 1+2 +# ^^^^^ variable with space and equal sign From e60699b9bbb3b7de7c1f510cf52f7a4181481b06 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Fri, 14 Mar 2025 09:13:32 +0100 Subject: [PATCH 09/35] =?UTF-8?q?chore(release):=20bump=20version=201.0.2?= =?UTF-8?q?=20=E2=86=92=201.0.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 020b6ce4..636bd89a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. -## [1.0.3](https://github.com/robotcodedev/robotcode/compare/v1.0.2..v1.0.3) - 2025-03-13 +## [1.0.3](https://github.com/robotcodedev/robotcode/compare/v1.0.2..v1.0.3) - 2025-03-14 ### Bug Fixes @@ -16,6 +16,11 @@ All notable changes to this project will be documented in this file. See [conven - **debugger:** Some code simplifications ([b14877c](https://github.com/robotcodedev/robotcode/commit/b14877c41091ba777fdf8a4410ff4fc9630c383d)) +### Testing + +- **langserver:** Update and add some tests ([b47fc81](https://github.com/robotcodedev/robotcode/commit/b47fc81c85310273e716c4ae9804ec876c5080e3)) + + ## [1.0.2](https://github.com/robotcodedev/robotcode/compare/v1.0.1..v1.0.2) - 2025-03-07 ### Bug Fixes From 161006e6a730f52501bdff7dcd1cba9e85300fcd Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Fri, 14 Mar 2025 13:41:49 +0100 Subject: [PATCH 10/35] doc: draft article about variables --- docs/04_tip_and_tricks/variable_not_found.md | 299 +++++++++++++++++++ 1 file changed, 299 insertions(+) create mode 100644 docs/04_tip_and_tricks/variable_not_found.md diff --git a/docs/04_tip_and_tricks/variable_not_found.md b/docs/04_tip_and_tricks/variable_not_found.md new file mode 100644 index 00000000..e019fd7a --- /dev/null +++ b/docs/04_tip_and_tricks/variable_not_found.md @@ -0,0 +1,299 @@ +# DRAFT: Why is my variable shown as "not found"? + +Does this sound familiar? Your Robot Framework tests are carefully written and run smoothly - but RobotCode persistently displays `VariableNotFound` errors, even though you're certain that all variables are defined and no errors are reported during runtime. In this guide, you'll learn what causes this problem, how the different handling of variables between RobotCode and Robot Framework leads to misunderstandings, and which best practices make your tests more reliable, maintainable, and transparent. + +## Variables and Variable Scopes in Robot Framework + +Variables are a fundamental building block of any test automation with Robot Framework. They allow storing and reusing values, make tests more dynamic, and improve the maintainability of your code. However, to use variables effectively, understanding their scopes is crucial. + +In Robot Framework, a variable's scope determines where it's available and how long it exists. Misunderstanding these scopes often leads to confusion, especially when RobotCode marks variables as "not found" even though they work at runtime. + +### What scopes exist + +Robot Framework distinguishes four main scopes for variables, which are hierarchically arranged ([see also Robot Framework Documentation on Variable Scopes](https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#variable-scopes)): + +- **Local**: The narrowest scope level. Local variables exist only within the keyword in which they were created, or within a test case if defined there. They disappear as soon as the keyword or test is completed. + +- **Test/Task**: These variables are valid for the duration of a single test and are only accessible within that test. This scope only exists within keywords; within a test, this scope corresponds to the local scope. + +- **Suite**: Suite variables are available within an entire test suite - that is, in all tests of a `.robot` file as well as in all keywords called in these tests. + +- **Global**: The widest scope level. Global variables are available in all test suites, tests, and keywords that run during a test execution. + +This hierarchical structure is important to understand as it determines how Robot Framework searches for variables and how variable overrides work. + +### `*** Variables ***` Section + +The `*** Variables ***` section is a fundamental component of Robot files for defining variables: + +- **Suite Scope:** All variables defined here automatically receive suite scope and are available throughout the file. + +- **Import order decides:** For variables with identical names: + - The first found definition takes precedence + - This applies to both definitions in the current suite and in imported resource files + - For nested resource imports (when Resource A imports Resource B), the same rule applies: The first read definition wins + +- **Strategic overriding:** This property can be deliberately used, for example: + - To control test behavior in different environments + - To specifically adjust library settings + This powerful technique should be used with caution. + +- **Command line variables have the highest priority:** Variables defined via command line parameters (`--variable` or `-v`) always override all definitions in `*** Variables ***` sections. + +**Example: Overriding browser settings** + +In this test suite, we define default browser settings that can be overridden by command line parameters: + +```robot +*** Settings *** +Library Browser + +*** Variables *** +${BROWSER} chromium +${HEADLESS} FALSE + +*** Test Cases *** +Open Browser Test + New Browser browser=${BROWSER} headless=${HEADLESS} + New Page https://example.com + # Further test steps... + Close Browser +``` + +**Execution with default values:** +```bash +robot tests/web_tests.robot +``` +Uses Chromium in normal (non-headless) mode. + +**Execution with Firefox in headless mode:** +```bash +robot --variable BROWSER:firefox --variable HEADLESS:True tests/web_tests.robot +``` + +This pattern is particularly useful for: +- CI/CD pipelines with different browser requirements +- Parallel testing on various browsers +- Local debugging (GUI mode) vs. server execution (headless) + +**Tip:** RobotCode provides special hints when a variable definition might override another definition or be overridden by a global variable. + +### How Robot Framework resolves variables + +When resolving variables, Robot Framework follows a strictly hierarchical search strategy: + +1. **Local scope** (within the current keyword or test) +2. **Test scope** (within the current test case) +3. **Suite scope** (within the current test suite) +4. **Global scope** (valid for the entire test run) + +This search strategy follows a hierarchical resolution principle: Robot Framework always searches first in the narrowest available scope (local) and gradually expands the search outward. The search stops as soon as a matching variable is found - even if there are further variables with the same name in outer scopes. + +In other words: A local variable named `${status}` always takes precedence over a test, suite, or global variable with the same name. This resolution order (local → test → suite → global) corresponds to the typical scope rules of many programming languages. + +### What happens when setting variables? + +Robot Framework offers several methods to define variables and assign them a scope: + +- **Set keywords**: The classic method with `Set Global Variable`, `Set Suite Variable`, `Set Test Variable`, and `Set Local Variable` +- **VAR syntax**: The modern, more readable syntax (available from Robot Framework 7.0) with an optional scope parameter +- **Return values**: Variables created by assigning a keyword return value are local by default + +An important concept in Robot Framework is the **scope override mechanism**: If you define a variable with a name that already exists in a narrower scope and specify a wider scope, the variable in the narrower scope is automatically deleted. This behavior ensures that the variable has the last assigned value, regardless of the scope specified. + +Consider the following example: + +```robot +*** Test Cases *** +test variable scopes + # 1. Create a local variable + VAR ${a_var} a local value + Log ${a_var} # Output: "a local value" + + # 2. Create a suite variable with the same name + VAR ${a_var} a suite value scope=suite + # The local variable is automatically deleted + Log ${a_var} # Output: "a suite value" + + # 3. Create a global variable with the same name + VAR ${a_var} a global value scope=global + # The suite variable is automatically deleted + Log ${a_var} # Output: "a global value" +``` + +To better understand this behavior, it is recommended to run the code in the debugger and observe the variables in the Variables view. + +Pay special attention when variables are set in called keywords with a higher scope: + +```robot +*** Test Cases *** +test variable scopes + VAR ${a_var} a local value + Log ${a_var} # Output: a local value + Do Something + Log ${a_var} # Output: a global value - the local variable was overridden + + +*** Keywords *** +Do Something + VAR ${a_var} a global value scope=global +``` + +Caution: By setting a variable with the same name but in a different scope in the `Do Something` keyword, the local variable in the calling test is overridden. This can lead to hard-to-understand effects if you do not explicitly account for this behavior. + +## Conclusion on variables and variable scopes + +Understanding the different variable scopes in Robot Framework is crucial for developing robust and maintainable tests. The hierarchical structure of local, test, suite, and global variables offers flexibility but also requires careful use. It is especially important to understand the resolution strategy: Robot Framework always searches from the narrowest to the widest scope and stops at the first match. + +Pay particular attention to the fact that setting variables with identical names in different scopes can lead to unexpected overrides. The automatic deletion of variables in narrower scopes can cause hard-to-understand side effects, especially when it occurs in nested keywords. + +As a best practice, you should: +- Use meaningful variable names +- Be cautious when setting variables in suite or global scopes - use these only for truly shared values +- Prefer keyword arguments and return values over setting variables in wider scopes +- Most variables should remain in the local scope +- Be aware of the impact of variables sections in resource files and their import order +- Document necessary variable overrides between keywords to avoid surprises + +These principles help you avoid the most common pitfalls when working with variables and also explain why RobotCode sometimes marks variables as "not found" even though they would exist at runtime. + +## Why does RobotCode now report "Variable not found"? + +The core of the problem lies in two fundamentally different working methods: + +### Runtime vs. Development time + +**Robot Framework** is an interpreter that processes your `.robot` files **at runtime** sequentially: +- Variables are dynamically evaluated +- Scopes are created and destroyed during test execution +- Variable definitions through `Set Suite Variable`, `Set Global Variable`, or the `VAR` syntax with scope parameters only take effect when the corresponding code section is executed +- Only at this moment do the variables become known and usable in the specified scope + +**RobotCode**, on the other hand, performs a **static analysis**: +- Your code is analyzed before it is executed +- RobotCode cannot "see into the future" and know which variables would exist at runtime +- The IDE must work with the information available at the time of analysis +- It cannot predict dynamic assignments or conditional execution paths + +This fundamental discrepancy between **dynamic execution** and **static analysis** explains why RobotCode must mark variables as `VariableNotFound` even if they would work correctly at runtime. It's like the difference between reading a recipe (static analysis) and actually cooking (runtime) - when reading, you only see the ingredients explicitly listed, not what will later emerge during cooking. + +### Reasons why RobotCode can be confused: + +The following points explain why RobotCode sometimes does not recognize variables even though they would exist at runtime. + +- **No call analysis:** + RobotCode does not perform deep tracking of variable assignments across keyword or test calls during its static analysis. This means specifically: + + - If, for example, a suite or global variable is created within a keyword with `Set Suite Variable` or `Set Global Variable`, RobotCode cannot trace this assignment back to the calling code. + - The variable may then appear as "not found" in the test case, even though it would exist correctly at runtime. + + **Example:** A keyword `Setup Environment` sets a suite variable `${CONFIG}`, which is then used in a test. RobotCode cannot automatically recognize that `${CONFIG}` would be defined by calling `Setup Environment`. + + **Why can't RobotCode do this?** + + - **Technically challenging:** A complete call analysis would require simulating all possible execution paths - including conditional branches and loops. + + - **Dynamic language elements:** Robot Framework allows: + + - Conditional execution paths that are not predictable + - Dynamically generated keyword calls (`Run Keyword ${dynamic_name}`) + - Imports at runtime ([`Import Library ${lib_name}`](https://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Import%20Library), [`Import Resource ${resource_path}`](https://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Import%20Resource)) + - Dynamically generated variable names ([`${Home ${name}}`](https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#variables-inside-variables)) + + - **Performance:** Analyzing complex test suites with all possible execution paths would significantly slow down the IDE. + + - **Unlimited search space:** Nested calls across multiple files and potentially recursive structures make a complete analysis impossible. + +- **Unpredictable execution order:** + The execution order in Robot Framework is not always statically predictable. RobotCode cannot know during analysis: + + - Whether tests are filtered with **tags** (`--include`/`--exclude`/`--skip`) + - Whether the order is changed by **command line options** (`--randomize`) + - Whether tests are skipped by **conditional execution** (`Skip If`, `Run Keyword If`) + - Whether **dynamically generated tests** are used (test templates with variable data) + - Whether **parallel execution** (e.g., with Pabot) is used + - Whether **external listeners or prerunmodifiers** change the execution or execution order + + **Example:** A suite contains two tests - the first defines `${CONFIG_VALUE}` as a suite variable, the second uses it: + + ```robot + *** Test Cases *** + Setup Configuration + [Tags] setup + Set Suite Variable ${CONFIG_VALUE} production + + Use Configuration + [Tags] functional + Log ${CONFIG_VALUE} # Works only if the setup test was executed + ``` + + If the test is run with `--include functional`, the variable is missing. + +- **Conditional assignments and loops:** + If variables are only set under certain conditions (e.g., in `IF` statements or loops) or in dynamic contexts, RobotCode cannot predict the actual execution path. Examples include: + + - Variables defined only in an `IF` branch + - Variables created only within a `FOR` loop + - Variables whose assignment depends on dynamic conditions + + ```robot + *** Test Cases *** + test different environments + IF '${ENV}' == 'production' + Set Suite Variable ${API_URL} https://api.production.example.com + ELSE + Set Suite Variable ${TEST_URL} https://api.test.example.com + END + + Log ${API_URL} # [!code error] Error: VariableNotFound + Log ${TEST_URL} # [!code error] Error: VariableNotFound + ``` + +- **Suite order and `__init__.robot`:** + Robot Framework uses a hierarchical execution model with folders and files as test suites. When executing a folder as a suite, Robot Framework first processes the `__init__.robot` file of that folder, if present. This file can define suite setup/teardown keywords as well as test/task setups that then apply to all tests within the entire folder structure. + + This leads to an important peculiarity: Variables defined in these `__init__.robot` files or their suite setups are available at runtime in all subordinate tests. However, this only applies if you run the entire folder. When directly executing a single `.robot` file, parent `__init__.robot` files may not be considered at all - accordingly, the variables defined in them do not exist. + + RobotCode cannot predict during its static analysis whether a single file or an entire folder will be executed. + + +### Summary of technical reasons: + +| Problem | At runtime | During static analysis | +| ---------------------- | -------------------------------------------------- | ------------------------------------------------------ | +| Call analysis | Variable is defined by called keyword | No complete tracking of call chains | +| Execution order | Depends on CLI options and conditional executions | Cannot predict which tests will be executed | +| Conditional assignments| Only one path is actually executed | All possible paths would need to be analyzed | +| Suite folder | Available depending on execution context | Cannot know the exact execution context | + +## The conservative strategy of RobotCode + +RobotCode deliberately follows a cautious approach to variable recognition, partly due to technical limitations regarding complexity and performance. It only marks a variable as valid if it is explicitly defined in one of the following ways: + +- As a command line parameter +- In a `*** Variables ***` section +- In the currently analyzable scope (such as keyword arguments or local variables) + +All other variables are consistently marked as `VariableNotFound` - even if they might exist at runtime. This conservative strategy is not merely a technical limitation but a deliberate design principle that offers significant advantages for test quality and maintenance: + +- **Error prevention:** The variable might actually be undefined, which would only lead to errors at runtime. Such runtime errors are particularly tricky as they may only occur under certain conditions and take a lot of time to debug. Tests could fail on CI/CD systems or in specific environments even though they work fine locally. RobotCode helps you identify and fix these potential issues early during development - long before they lead to hard-to-trace errors in production-like environments. + +- **Code clarity:** Developers cannot immediately tell if a variable is correctly defined when its definition is hidden in other files or nested keywords. A particular risk arises when variables with identical names are set via `Set Global Variable` in different resource files. It can easily happen that a team member uses an already used variable name (`${CONFIG}`) for a completely different purpose - while you store server settings with it, someone else uses the same name for test data. Without explicit definitions, undetected conflicts and hard-to-trace errors arise. + +- **Maintainability:** Implicit variable definitions scattered across multiple resource files or occurring only under certain execution conditions create unwanted dependencies and complicate long-term maintenance. When variables "magically" appear - defined somewhere deep in keywords or rarely executed code paths - every change becomes a risk. Teams spend unnecessary time figuring out where a variable was originally set and whether changing it might have unintended side effects. As test suites grow, this problem intensifies exponentially: What was obvious to the original developer becomes an opaque web of hidden dependencies for the team. RobotCode's conservative warnings enforce cleaner design with explicit dependencies. + +- **Documentation:** Explicit variable definitions serve as integrated documentation of your code. They make it immediately clear which variables are used, what type they have, and what default values are intended. This significantly eases onboarding for new team members as they don't have to search the entire code to understand where a variable comes from or what purpose it serves. Especially in larger test projects, this kind of self-documentation becomes an important factor for the long-term maintainability and extensibility of the test suite. + +The `VariableNotFound` messages should therefore not be seen as annoying warnings but as valuable development tools. They encourage critical reflection on your code and promote better design decisions: "Is a suite variable really necessary here, or is there a more elegant solution?" These diagnostic messages foster an architectural understanding of the test structure, improve code quality, and ultimately support the development of explicit, self-explanatory structures. This principle applies to all diagnostic messages in RobotCode - they are not mere error indications but valuable guardrails on the path to high-quality, robust test suites. + +## How to avoid `VariableNotFound` errors + +### Definition of cross-scope variables in the `*** Variables ***` section + +TODO + +#### Checking default values + +### Using keywords with RETURN + +TODO From 0123a507a3b23265676aa8d0c68af322e01f513c Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Sun, 16 Mar 2025 17:06:35 +0100 Subject: [PATCH 11/35] refactor(analyze): move code analysing to it's own module --- packages/analyze/src/robotcode/analyze/cli.py | 356 +---------------- .../analyze/src/robotcode/analyze/code/cli.py | 360 ++++++++++++++++++ .../analyze/{ => code}/code_analyzer.py | 0 .../analyze/{ => code}/diagnostics_context.py | 0 .../analyze/{ => code}/language_provider.py | 2 +- .../robot_framework_language_provider.py | 27 +- 6 files changed, 379 insertions(+), 366 deletions(-) create mode 100644 packages/analyze/src/robotcode/analyze/code/cli.py rename packages/analyze/src/robotcode/analyze/{ => code}/code_analyzer.py (100%) rename packages/analyze/src/robotcode/analyze/{ => code}/diagnostics_context.py (100%) rename packages/analyze/src/robotcode/analyze/{ => code}/language_provider.py (90%) rename packages/analyze/src/robotcode/analyze/{ => code}/robot_framework_language_provider.py (84%) diff --git a/packages/analyze/src/robotcode/analyze/cli.py b/packages/analyze/src/robotcode/analyze/cli.py index cdc6acea..604d1f0e 100644 --- a/packages/analyze/src/robotcode/analyze/cli.py +++ b/packages/analyze/src/robotcode/analyze/cli.py @@ -1,24 +1,9 @@ -from enum import Flag -from pathlib import Path -from textwrap import indent -from typing import List, Optional, Set, Tuple, Union - import click -from robotcode.core.lsp.types import Diagnostic, DiagnosticSeverity -from robotcode.core.text_document import TextDocument -from robotcode.core.uri import Uri -from robotcode.core.utils.path import try_get_relative_path -from robotcode.core.workspace import WorkspaceFolder from robotcode.plugin import Application, pass_application -from robotcode.robot.config.loader import ( - load_robot_config_from_path, -) -from robotcode.robot.config.utils import get_config_files from .__version__ import __version__ -from .code_analyzer import CodeAnalyzer, DocumentDiagnosticReport, FolderDiagnosticReport -from .config import AnalyzeConfig, ModifiersConfig +from .code.cli import code @click.group( @@ -38,341 +23,4 @@ def analyze(app: Application) -> None: """ -SEVERITY_COLORS = { - DiagnosticSeverity.ERROR: "red", - DiagnosticSeverity.WARNING: "yellow", - DiagnosticSeverity.INFORMATION: "blue", - DiagnosticSeverity.HINT: "cyan", -} - - -class ReturnCode(Flag): - SUCCESS = 0 - ERRORS = 1 - WARNINGS = 2 - INFOS = 4 - HINTS = 8 - - -class Statistic: - def __init__(self) -> None: - self._folders: Set[WorkspaceFolder] = set() - self._files: Set[TextDocument] = set() - self._diagnostics: List[Union[DocumentDiagnosticReport, FolderDiagnosticReport]] = [] - - @property - def errors(self) -> int: - return sum( - len([i for i in e.items if i.severity == DiagnosticSeverity.ERROR]) for e in self._diagnostics if e.items - ) - - @property - def warnings(self) -> int: - return sum( - len([i for i in e.items if i.severity == DiagnosticSeverity.WARNING]) for e in self._diagnostics if e.items - ) - - @property - def infos(self) -> int: - return sum( - len([i for i in e.items if i.severity == DiagnosticSeverity.INFORMATION]) - for e in self._diagnostics - if e.items - ) - - @property - def hints(self) -> int: - return sum( - len([i for i in e.items if i.severity == DiagnosticSeverity.HINT]) for e in self._diagnostics if e.items - ) - - def add_diagnostics_report( - self, diagnostics_report: Union[DocumentDiagnosticReport, FolderDiagnosticReport] - ) -> None: - self._diagnostics.append(diagnostics_report) - - if isinstance(diagnostics_report, FolderDiagnosticReport): - self._folders.add(diagnostics_report.folder) - elif isinstance(diagnostics_report, DocumentDiagnosticReport): - self._files.add(diagnostics_report.document) - - def __str__(self) -> str: - return ( - f"Files: {len(self._files)}, Errors: {self.errors}, Warnings: {self.warnings}, " - f"Infos: {self.infos}, Hints: {self.hints}" - ) - - def calculate_return_code(self) -> ReturnCode: - return_code = ReturnCode.SUCCESS - if self.errors > 0: - return_code |= ReturnCode.ERRORS - if self.warnings > 0: - return_code |= ReturnCode.WARNINGS - if self.infos > 0: - return_code |= ReturnCode.INFOS - if self.hints > 0: - return_code |= ReturnCode.HINTS - return return_code - - -@analyze.command( - add_help_option=True, -) -@click.version_option( - version=__version__, - package_name="robotcode.analyze", - prog_name="RobotCode Analyze", -) -@click.option( - "-f", - "--filter", - "filter", - metavar="PATTERN", - type=str, - multiple=True, - help="""\ - Glob pattern to filter files to analyze. Can be specified multiple times. - """, -) -@click.option( - "-v", - "--variable", - metavar="name:value", - type=str, - multiple=True, - help="Set variables in the test data. see `robot --variable` option.", -) -@click.option( - "-V", - "--variablefile", - metavar="PATH", - type=str, - multiple=True, - help="Python or YAML file file to read variables from. see `robot --variablefile` option.", -) -@click.option( - "-P", - "--pythonpath", - metavar="PATH", - type=str, - multiple=True, - help="Additional locations where to search test libraries" - " and other extensions when they are imported. see `robot --pythonpath` option.", -) -@click.option( - "-mi", - "--modifiers-ignore", - metavar="CODE", - type=str, - multiple=True, - help="Specifies the diagnostics codes to ignore.", -) -@click.option( - "-me", - "--modifiers-error", - metavar="CODE", - type=str, - multiple=True, - help="Specifies the diagnostics codes to treat as errors.", -) -@click.option( - "-mw", - "--modifiers-warning", - metavar="CODE", - type=str, - multiple=True, - help="Specifies the diagnostics codes to treat as warning.", -) -@click.option( - "-mI", - "--modifiers-information", - metavar="CODE", - type=str, - multiple=True, - help="Specifies the diagnostics codes to treat as information.", -) -@click.option( - "-mh", - "--modifiers-hint", - metavar="CODE", - type=str, - multiple=True, - help="Specifies the diagnostics codes to treat as hint.", -) -@click.argument( - "paths", nargs=-1, type=click.Path(exists=True, dir_okay=True, file_okay=True, readable=True, path_type=Path) -) -@pass_application -def code( - app: Application, - filter: Tuple[str, ...], - variable: Tuple[str, ...], - variablefile: Tuple[str, ...], - pythonpath: Tuple[str, ...], - modifiers_ignore: Tuple[str, ...], - modifiers_error: Tuple[str, ...], - modifiers_warning: Tuple[str, ...], - modifiers_information: Tuple[str, ...], - modifiers_hint: Tuple[str, ...], - paths: Tuple[Path], -) -> None: - """\ - Performs static code analysis to identify potential issues in the specified *PATHS*. The analysis detects syntax - errors, missing keywords or variables, missing arguments, and other problems. - - - **PATHS**: Can be individual files or directories. If no *PATHS* are provided, the current directory is - analyzed by default. - - The return code is a bitwise combination of the following values: - - - `0`: **SUCCESS** - No issues detected. - - `1`: **ERRORS** - Critical issues found. - - `2`: **WARNINGS** - Non-critical issues detected. - - `4`: **INFORMATIONS** - General information messages. - - `8`: **HINTS** - Suggestions or improvements. - - \b - *Examples*: - ``` - robotcode analyze code - robotcode analyze code --filter **/*.robot - robotcode analyze code tests/acceptance/first.robot - robotcode analyze code -mi DuplicateKeyword tests/acceptance/first.robot - robotcode --format json analyze code - ``` - """ - - config_files, root_folder, _ = get_config_files( - paths, - app.config.config_files, - root_folder=app.config.root, - no_vcs=app.config.no_vcs, - verbose_callback=app.verbose, - ) - - try: - robot_config = load_robot_config_from_path( - *config_files, extra_tools={"robotcode-analyze": AnalyzeConfig}, verbose_callback=app.verbose - ) - - analyzer_config = robot_config.tool.get("robotcode-analyze", None) if robot_config.tool is not None else None - if analyzer_config is None: - analyzer_config = AnalyzeConfig() - - robot_profile = robot_config.combine_profiles( - *(app.config.profiles or []), verbose_callback=app.verbose, error_callback=app.error - ).evaluated_with_env() - - if variable: - if robot_profile.variables is None: - robot_profile.variables = {} - for v in variable: - name, value = v.split(":", 1) if ":" in v else (v, "") - robot_profile.variables.update({name: value}) - - if pythonpath: - if robot_profile.python_path is None: - robot_profile.python_path = [] - robot_profile.python_path.extend(pythonpath) - - if variablefile: - if robot_profile.variable_files is None: - robot_profile.variable_files = [] - for vf in variablefile: - robot_profile.variable_files.append(vf) - - if analyzer_config.modifiers is None: - analyzer_config.modifiers = ModifiersConfig() - - if modifiers_ignore: - if analyzer_config.modifiers.ignore is None: - analyzer_config.modifiers.ignore = [] - analyzer_config.modifiers.ignore.extend(modifiers_ignore) - - if modifiers_error: - if analyzer_config.modifiers.error is None: - analyzer_config.modifiers.error = [] - analyzer_config.modifiers.error.extend(modifiers_error) - - if modifiers_warning: - if analyzer_config.modifiers.warning is None: - analyzer_config.modifiers.warning = [] - analyzer_config.modifiers.warning.extend(modifiers_warning) - - if modifiers_information: - if analyzer_config.modifiers.information is None: - analyzer_config.modifiers.information = [] - analyzer_config.modifiers.information.extend(modifiers_information) - - if modifiers_hint: - if analyzer_config.modifiers.hint is None: - analyzer_config.modifiers.hint = [] - analyzer_config.modifiers.hint.extend(modifiers_hint) - - statistics = Statistic() - for e in CodeAnalyzer( - app=app, - analysis_config=analyzer_config.to_workspace_analysis_config(), - robot_profile=robot_profile, - root_folder=root_folder, - ).run(paths=paths, filter=filter): - statistics.add_diagnostics_report(e) - - if isinstance(e, FolderDiagnosticReport): - if e.items: - _print_diagnostics(app, root_folder, e.items, e.folder.uri.to_path()) - elif isinstance(e, DocumentDiagnosticReport): - doc_path = ( - e.document.uri.to_path().relative_to(root_folder) if root_folder else e.document.uri.to_path() - ) - if e.items: - _print_diagnostics(app, root_folder, e.items, doc_path) - - statistics_str = str(statistics) - if statistics.errors > 0: - statistics_str = click.style(statistics_str, fg="red") - - app.echo(statistics_str) - - app.exit(statistics.calculate_return_code().value) - - except (TypeError, ValueError) as e: - raise click.ClickException(str(e)) from e - - -def _print_diagnostics( - app: Application, - root_folder: Optional[Path], - diagnostics: List[Diagnostic], - folder_path: Optional[Path], - print_range: bool = True, -) -> None: - for item in diagnostics: - severity = item.severity if item.severity is not None else DiagnosticSeverity.ERROR - - app.echo( - ( - ( - f"{folder_path}:" - + (f"{item.range.start.line + 1}:{item.range.start.character + 1}: " if print_range else " ") - ) - if folder_path and folder_path != root_folder - else "" - ) - + click.style(f"[{severity.name[0]}] {item.code}", fg=SEVERITY_COLORS[severity]) - + f": {indent(item.message, prefix=' ').strip()}", - ) - - if item.related_information: - for related in item.related_information or []: - related_path = try_get_relative_path(Uri(related.location.uri).to_path(), root_folder) - - app.echo( - f" {related_path}:" - + ( - f"{related.location.range.start.line + 1}:{related.location.range.start.character + 1}: " - if print_range - else " " - ) - + f"{indent(related.message, prefix=' ').strip()}", - ) +analyze.add_command(code) diff --git a/packages/analyze/src/robotcode/analyze/code/cli.py b/packages/analyze/src/robotcode/analyze/code/cli.py new file mode 100644 index 00000000..91b9bcac --- /dev/null +++ b/packages/analyze/src/robotcode/analyze/code/cli.py @@ -0,0 +1,360 @@ +from enum import Flag +from pathlib import Path +from textwrap import indent +from typing import List, Optional, Set, Tuple, Union + +import click + +from robotcode.core.lsp.types import Diagnostic, DiagnosticSeverity +from robotcode.core.text_document import TextDocument +from robotcode.core.uri import Uri +from robotcode.core.utils.path import try_get_relative_path +from robotcode.core.workspace import WorkspaceFolder +from robotcode.plugin import Application, pass_application +from robotcode.robot.config.loader import ( + load_robot_config_from_path, +) +from robotcode.robot.config.utils import get_config_files + +from ..__version__ import __version__ +from ..config import AnalyzeConfig, ModifiersConfig +from .code_analyzer import CodeAnalyzer, DocumentDiagnosticReport, FolderDiagnosticReport + +SEVERITY_COLORS = { + DiagnosticSeverity.ERROR: "red", + DiagnosticSeverity.WARNING: "yellow", + DiagnosticSeverity.INFORMATION: "blue", + DiagnosticSeverity.HINT: "cyan", +} + + +class ReturnCode(Flag): + SUCCESS = 0 + ERRORS = 1 + WARNINGS = 2 + INFOS = 4 + HINTS = 8 + + +class Statistic: + def __init__(self) -> None: + self._folders: Set[WorkspaceFolder] = set() + self._files: Set[TextDocument] = set() + self._diagnostics: List[Union[DocumentDiagnosticReport, FolderDiagnosticReport]] = [] + + @property + def errors(self) -> int: + return sum( + len([i for i in e.items if i.severity == DiagnosticSeverity.ERROR]) for e in self._diagnostics if e.items + ) + + @property + def warnings(self) -> int: + return sum( + len([i for i in e.items if i.severity == DiagnosticSeverity.WARNING]) for e in self._diagnostics if e.items + ) + + @property + def infos(self) -> int: + return sum( + len([i for i in e.items if i.severity == DiagnosticSeverity.INFORMATION]) + for e in self._diagnostics + if e.items + ) + + @property + def hints(self) -> int: + return sum( + len([i for i in e.items if i.severity == DiagnosticSeverity.HINT]) for e in self._diagnostics if e.items + ) + + def add_diagnostics_report( + self, diagnostics_report: Union[DocumentDiagnosticReport, FolderDiagnosticReport] + ) -> None: + self._diagnostics.append(diagnostics_report) + + if isinstance(diagnostics_report, FolderDiagnosticReport): + self._folders.add(diagnostics_report.folder) + elif isinstance(diagnostics_report, DocumentDiagnosticReport): + self._files.add(diagnostics_report.document) + + def __str__(self) -> str: + return ( + f"Files: {len(self._files)}, Errors: {self.errors}, Warnings: {self.warnings}, " + f"Infos: {self.infos}, Hints: {self.hints}" + ) + + def calculate_return_code(self) -> ReturnCode: + return_code = ReturnCode.SUCCESS + if self.errors > 0: + return_code |= ReturnCode.ERRORS + if self.warnings > 0: + return_code |= ReturnCode.WARNINGS + if self.infos > 0: + return_code |= ReturnCode.INFOS + if self.hints > 0: + return_code |= ReturnCode.HINTS + return return_code + + +@click.command( + add_help_option=True, +) +@click.version_option( + version=__version__, + package_name="robotcode.analyze", + prog_name="RobotCode Analyze", +) +@click.option( + "-f", + "--filter", + "filter", + metavar="PATTERN", + type=str, + multiple=True, + help="""\ + Glob pattern to filter files to analyze. Can be specified multiple times. + """, +) +@click.option( + "-v", + "--variable", + metavar="name:value", + type=str, + multiple=True, + help="Set variables in the test data. see `robot --variable` option.", +) +@click.option( + "-V", + "--variablefile", + metavar="PATH", + type=str, + multiple=True, + help="Python or YAML file file to read variables from. see `robot --variablefile` option.", +) +@click.option( + "-P", + "--pythonpath", + metavar="PATH", + type=str, + multiple=True, + help="Additional locations where to search test libraries" + " and other extensions when they are imported. see `robot --pythonpath` option.", +) +@click.option( + "-mi", + "--modifiers-ignore", + metavar="CODE", + type=str, + multiple=True, + help="Specifies the diagnostics codes to ignore.", +) +@click.option( + "-me", + "--modifiers-error", + metavar="CODE", + type=str, + multiple=True, + help="Specifies the diagnostics codes to treat as errors.", +) +@click.option( + "-mw", + "--modifiers-warning", + metavar="CODE", + type=str, + multiple=True, + help="Specifies the diagnostics codes to treat as warning.", +) +@click.option( + "-mI", + "--modifiers-information", + metavar="CODE", + type=str, + multiple=True, + help="Specifies the diagnostics codes to treat as information.", +) +@click.option( + "-mh", + "--modifiers-hint", + metavar="CODE", + type=str, + multiple=True, + help="Specifies the diagnostics codes to treat as hint.", +) +@click.argument( + "paths", nargs=-1, type=click.Path(exists=True, dir_okay=True, file_okay=True, readable=True, path_type=Path) +) +@pass_application +def code( + app: Application, + filter: Tuple[str, ...], + variable: Tuple[str, ...], + variablefile: Tuple[str, ...], + pythonpath: Tuple[str, ...], + modifiers_ignore: Tuple[str, ...], + modifiers_error: Tuple[str, ...], + modifiers_warning: Tuple[str, ...], + modifiers_information: Tuple[str, ...], + modifiers_hint: Tuple[str, ...], + paths: Tuple[Path], +) -> None: + """\ + Performs static code analysis to identify potential issues in the specified *PATHS*. The analysis detects syntax + errors, missing keywords or variables, missing arguments, and other problems. + + - **PATHS**: Can be individual files or directories. If no *PATHS* are provided, the current directory is + analyzed by default. + + The return code is a bitwise combination of the following values: + + - `0`: **SUCCESS** - No issues detected. + - `1`: **ERRORS** - Critical issues found. + - `2`: **WARNINGS** - Non-critical issues detected. + - `4`: **INFORMATIONS** - General information messages. + - `8`: **HINTS** - Suggestions or improvements. + + \b + *Examples*: + ``` + robotcode analyze code + robotcode analyze code --filter **/*.robot + robotcode analyze code tests/acceptance/first.robot + robotcode analyze code -mi DuplicateKeyword tests/acceptance/first.robot + robotcode --format json analyze code + ``` + """ + + config_files, root_folder, _ = get_config_files( + paths, + app.config.config_files, + root_folder=app.config.root, + no_vcs=app.config.no_vcs, + verbose_callback=app.verbose, + ) + + try: + robot_config = load_robot_config_from_path( + *config_files, extra_tools={"robotcode-analyze": AnalyzeConfig}, verbose_callback=app.verbose + ) + + analyzer_config = robot_config.tool.get("robotcode-analyze", None) if robot_config.tool is not None else None + if analyzer_config is None: + analyzer_config = AnalyzeConfig() + + robot_profile = robot_config.combine_profiles( + *(app.config.profiles or []), verbose_callback=app.verbose, error_callback=app.error + ).evaluated_with_env() + + if variable: + if robot_profile.variables is None: + robot_profile.variables = {} + for v in variable: + name, value = v.split(":", 1) if ":" in v else (v, "") + robot_profile.variables.update({name: value}) + + if pythonpath: + if robot_profile.python_path is None: + robot_profile.python_path = [] + robot_profile.python_path.extend(pythonpath) + + if variablefile: + if robot_profile.variable_files is None: + robot_profile.variable_files = [] + for vf in variablefile: + robot_profile.variable_files.append(vf) + + if analyzer_config.modifiers is None: + analyzer_config.modifiers = ModifiersConfig() + + if modifiers_ignore: + if analyzer_config.modifiers.ignore is None: + analyzer_config.modifiers.ignore = [] + analyzer_config.modifiers.ignore.extend(modifiers_ignore) + + if modifiers_error: + if analyzer_config.modifiers.error is None: + analyzer_config.modifiers.error = [] + analyzer_config.modifiers.error.extend(modifiers_error) + + if modifiers_warning: + if analyzer_config.modifiers.warning is None: + analyzer_config.modifiers.warning = [] + analyzer_config.modifiers.warning.extend(modifiers_warning) + + if modifiers_information: + if analyzer_config.modifiers.information is None: + analyzer_config.modifiers.information = [] + analyzer_config.modifiers.information.extend(modifiers_information) + + if modifiers_hint: + if analyzer_config.modifiers.hint is None: + analyzer_config.modifiers.hint = [] + analyzer_config.modifiers.hint.extend(modifiers_hint) + + statistics = Statistic() + for e in CodeAnalyzer( + app=app, + analysis_config=analyzer_config.to_workspace_analysis_config(), + robot_profile=robot_profile, + root_folder=root_folder, + ).run(paths=paths, filter=filter): + statistics.add_diagnostics_report(e) + + if isinstance(e, FolderDiagnosticReport): + if e.items: + _print_diagnostics(app, root_folder, e.items, e.folder.uri.to_path()) + elif isinstance(e, DocumentDiagnosticReport): + doc_path = ( + e.document.uri.to_path().relative_to(root_folder) if root_folder else e.document.uri.to_path() + ) + if e.items: + _print_diagnostics(app, root_folder, e.items, doc_path) + + statistics_str = str(statistics) + if statistics.errors > 0: + statistics_str = click.style(statistics_str, fg="red") + + app.echo(statistics_str) + + app.exit(statistics.calculate_return_code().value) + + except (TypeError, ValueError) as e: + raise click.ClickException(str(e)) from e + + +def _print_diagnostics( + app: Application, + root_folder: Optional[Path], + diagnostics: List[Diagnostic], + folder_path: Optional[Path], + print_range: bool = True, +) -> None: + for item in diagnostics: + severity = item.severity if item.severity is not None else DiagnosticSeverity.ERROR + + app.echo( + ( + ( + f"{folder_path}:" + + (f"{item.range.start.line + 1}:{item.range.start.character + 1}: " if print_range else " ") + ) + if folder_path and folder_path != root_folder + else "" + ) + + click.style(f"[{severity.name[0]}] {item.code}", fg=SEVERITY_COLORS[severity]) + + f": {indent(item.message, prefix=' ').strip()}", + ) + + if item.related_information: + for related in item.related_information or []: + related_path = try_get_relative_path(Uri(related.location.uri).to_path(), root_folder) + + app.echo( + f" {related_path}:" + + ( + f"{related.location.range.start.line + 1}:{related.location.range.start.character + 1}: " + if print_range + else " " + ) + + f"{indent(related.message, prefix=' ').strip()}", + ) diff --git a/packages/analyze/src/robotcode/analyze/code_analyzer.py b/packages/analyze/src/robotcode/analyze/code/code_analyzer.py similarity index 100% rename from packages/analyze/src/robotcode/analyze/code_analyzer.py rename to packages/analyze/src/robotcode/analyze/code/code_analyzer.py diff --git a/packages/analyze/src/robotcode/analyze/diagnostics_context.py b/packages/analyze/src/robotcode/analyze/code/diagnostics_context.py similarity index 100% rename from packages/analyze/src/robotcode/analyze/diagnostics_context.py rename to packages/analyze/src/robotcode/analyze/code/diagnostics_context.py diff --git a/packages/analyze/src/robotcode/analyze/language_provider.py b/packages/analyze/src/robotcode/analyze/code/language_provider.py similarity index 90% rename from packages/analyze/src/robotcode/analyze/language_provider.py rename to packages/analyze/src/robotcode/analyze/code/language_provider.py index fab8673b..a802956b 100644 --- a/packages/analyze/src/robotcode/analyze/language_provider.py +++ b/packages/analyze/src/robotcode/analyze/code/language_provider.py @@ -2,7 +2,7 @@ from pathlib import Path from typing import Callable, Iterable, List, Optional -from robotcode.analyze.diagnostics_context import DiagnosticsContext +from robotcode.analyze.code.diagnostics_context import DiagnosticsContext from robotcode.core.language import LanguageDefinition from robotcode.core.workspace import WorkspaceFolder diff --git a/packages/analyze/src/robotcode/analyze/robot_framework_language_provider.py b/packages/analyze/src/robotcode/analyze/code/robot_framework_language_provider.py similarity index 84% rename from packages/analyze/src/robotcode/analyze/robot_framework_language_provider.py rename to packages/analyze/src/robotcode/analyze/code/robot_framework_language_provider.py index c38cf50b..94941099 100644 --- a/packages/analyze/src/robotcode/analyze/robot_framework_language_provider.py +++ b/packages/analyze/src/robotcode/analyze/code/robot_framework_language_provider.py @@ -5,7 +5,7 @@ from robot.utils import FileReader -from robotcode.analyze.diagnostics_context import DiagnosticsContext +from robotcode.analyze.code.diagnostics_context import DiagnosticsContext from robotcode.core.filewatcher import FileWatcherManagerDummy from robotcode.core.ignore_spec import DEFAULT_SPEC_RULES, GIT_IGNORE_FILE, ROBOT_IGNORE_FILE, IgnoreSpec, iter_files from robotcode.core.language import LanguageDefinition, language_id @@ -51,16 +51,21 @@ def __init__(self, diagnostics_context: DiagnosticsContext) -> None: self.diagnostics_context.diagnostics.document_analyzers.add(self.analyze_document) def _update_python_path(self) -> None: - if self.diagnostics_context.workspace.root_uri is not None: - for p in self.diagnostics_context.profile.python_path or []: - pa = Path(str(p)) - if not pa.is_absolute(): - pa = Path(self.diagnostics_context.workspace.root_uri.to_path(), pa) - - absolute_path = str(pa.absolute()) - for f in glob.glob(absolute_path): - if Path(f).is_dir() and f not in sys.path: - sys.path.insert(0, f) + root_path = ( + self.diagnostics_context.workspace.root_uri.to_path() + if self.diagnostics_context.workspace.root_uri is not None + else None + ) + + for p in self.diagnostics_context.profile.python_path or []: + pa = Path(str(p)) + if root_path is not None and not pa.is_absolute(): + pa = Path(root_path, pa) + + absolute_path = str(pa.absolute()) + for f in glob.glob(absolute_path): + if Path(f).is_dir() and f not in sys.path: + sys.path.insert(0, f) @language_id("robotframework") def on_read_document_text(self, sender: Any, uri: Uri) -> str: From 4b677add254f88519d950e54ac5ef1f4e499d0e6 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Mon, 17 Mar 2025 00:16:13 +0100 Subject: [PATCH 12/35] feat(analyze): exit code mask configuration for code analysis Configure which message types should **not** influence the exit code of `robotcode analyze code`, allowing granular control over CI/CD pipeline behavior or pre-commit hooks. **Configuration File (`robot.toml`)** ```toml [tool.robotcode-analyze.code] exit-code-mask = ["error", "warn"] ``` **Command Line Options** ``` robotcode analyze code --exit-code-mask error,warn # or -xm robotcode analyze code --extend-exit-code-mask info # or -xe ``` - `-xm` (or `--exit-code-mask`) overwrites the configuration in `robot.toml` - `-xe` (or `--extend-exit-code-mask`) extends the configuration in `robot.toml` - Both options can be specified multiple times or with comma-separated values: ``` robotcode analyze code -xm error -xm warn # multiple options robotcode analyze code -xm error,warn # comma-separated ``` **Behavior** - Message types in the mask are ignored when determining exit code - Available types: `error`, `warn`/`warning`, `info`/`information`, `hint` - Special value `all` ignores all message types (always exit code 0) - Without configuration, all message types affect the exit code **Example** ```toml # In robot.toml - Ignore warnings but let errors affect exit code [tool.robotcode-analyze.code] exit-code-mask = ["warn"] ``` ```bash # Using short options robotcode analyze code -xm error,hint # Overwrites robot.toml config robotcode analyze code -xe info -xe hint # Extends robot.toml config with multiple types robotcode analyze code -xm all # Always exit with code 0 ``` closes #358 --- .vscode/launch.json | 12 +- docs/03_reference/cli.md | 172 +++++++----------- docs/03_reference/config.md | 57 ++++++ etc/robot.toml.json | 74 ++++++++ .../analyze/src/robotcode/analyze/code/cli.py | 58 +++++- .../robotcode/analyze/code/code_analyzer.py | 2 +- .../analyze/code/diagnostics_context.py | 6 +- .../code/robot_framework_language_provider.py | 2 +- .../analyze/src/robotcode/analyze/config.py | 67 ++++++- .../src/robotcode/core/utils/dataclasses.py | 2 +- robot.toml | 3 + tests/robotcode/core/test_dataclasses.py | 3 + 12 files changed, 334 insertions(+), 124 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index e3b4dbe3..f54f3f66 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -78,10 +78,10 @@ // "suites", // // "discover", "tests", "--tags" // "." - "discover", - "--no-diagnostics", - "all", - ".." + // "discover", + // "--no-diagnostics", + // "all", + // ".." // "config", // "show", // "discover", @@ -90,8 +90,8 @@ // "-i", // "-v", "CMD_LINE_VAR:cmd_line_var", // "E:\\source\\uvtestprj\\tests\\first.robotrepl" - // "analyze", - // "code", + "analyze", + "code", // "--help" // "tests" // "repl-server", diff --git a/docs/03_reference/cli.md b/docs/03_reference/cli.md index 9763ae34..6c5fc54b 100644 --- a/docs/03_reference/cli.md +++ b/docs/03_reference/cli.md @@ -171,10 +171,6 @@ robotcode [OPTIONS] COMMAND [ARGS]... The analyze command provides various subcommands for analyzing Robot Framework code. -- [`clean`](#clean) - - TODO: Cleans a Robot Framework project. - - [`config`](#config) Shows information about the configuration. @@ -199,10 +195,6 @@ robotcode [OPTIONS] COMMAND [ARGS]... Runs `libdoc` with the selected configuration, profiles, options and arguments. -- [`new`](#new) - - TODO: Create a new Robot Framework project. - - [`profiles`](#profiles) Shows information on defined profiles. @@ -349,32 +341,23 @@ robotcode analyze code [OPTIONS] [PATHS]... Specifies the diagnostics codes to treat as hint. -- `--help` - - Show this message and exit. - - +- `-xm, --exit-code-mask [error|warn|info|hint] *` + Specifies which diagnostic severities should not affect the exit code. For example, with 'warn' in the mask, warnings won't cause a non-zero exit code. -#### clean -TODO: Cleans a Robot Framework project. +- `-xe, --extend-exit-code-mask [error|warn|info|hint] *` -TODO: This is not implemented yet. + Extend the exit code mask with the specified values. This appends to the default mask, defined in the config file. -**Usage:** -```text -robotcode clean [OPTIONS] -``` - - -**Options:** - `--help` Show this message and exit. + + #### config Shows information about the configuration. @@ -656,17 +639,17 @@ robotcode debug [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... - `--tcp [
:]` - Run in `tcp` server mode and listen at the given port. (Equivalent to `--mode tcp --port `) *NOTE:* This option is mutually exclusive with options: pipe-server, pipe-name, mode, port. + Run in `tcp` server mode and listen at the given port. (Equivalent to `--mode tcp --port `) *NOTE:* This option is mutually exclusive with options: port, mode, pipe-server, pipe-name. - `--pipe-server NAME` - Run in `pipe-server` mode and listen at the given pipe name. (Equivalent to `--mode pipe-server --pipe-name `) *NOTE:* This option is mutually exclusive with options: port, tcp, bind, pipe-name, mode. + Run in `pipe-server` mode and listen at the given pipe name. (Equivalent to `--mode pipe-server --pipe-name `) *NOTE:* This option is mutually exclusive with options: pipe-name, tcp, mode, port, bind. -- `--mode [pipe-server|tcp]` +- `--mode [tcp|pipe-server]` - The mode to use for the debug launch server. *NOTE:* This option is mutually exclusive with options: pipe-server, tcp. [env var: ROBOTCODE_MODE; default: tcp] + The mode to use for the debug launch server. *NOTE:* This option is mutually exclusive with options: tcp, pipe-server. [env var: ROBOTCODE_MODE; default: tcp] - `--port PORT` @@ -681,7 +664,7 @@ robotcode debug [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... - `--pipe-name NAME` - The pipe to listen on or connect to. (Only valid in `pipe` and `pipe-server` mode) *NOTE:* This option is mutually exclusive with options: pipe-server, tcp, bind, port. [env var: ROBOTCODE_PIPE_NAME] + The pipe to listen on or connect to. (Only valid in `pipe` and `pipe-server` mode) *NOTE:* This option is mutually exclusive with options: tcp, bind, pipe-server, port. [env var: ROBOTCODE_PIPE_NAME] - `--version` @@ -708,47 +691,47 @@ robotcode debug-launch [OPTIONS] **Options:** - `--stdio` - Run in `stdio` mode. (Equivalent to `--mode stdio`) *NOTE:* This option is mutually exclusive with options: socket, port, pipe, pipe-server, tcp, bind, pipe-name, mode. [env var: ROBOTCODE_STDIO] + Run in `stdio` mode. (Equivalent to `--mode stdio`) *NOTE:* This option is mutually exclusive with options: pipe, pipe-server, socket, tcp, mode, pipe-name, port, bind. [env var: ROBOTCODE_STDIO] - `--tcp [
:]` - Run in `tcp` server mode and listen at the given port. (Equivalent to `--mode tcp --port `) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, pipe, pipe-server, pipe-name, mode. + Run in `tcp` server mode and listen at the given port. (Equivalent to `--mode tcp --port `) *NOTE:* This option is mutually exclusive with options: pipe, stdio, pipe-server, socket, pipe-name, mode, port. - `--socket [
:]` - Run in `socket` mode and connect to the given port. (Equivalent to `--mode socket --port `) *NOTE:* This option is mutually exclusive with options: stdio, port, pipe, pipe-server, tcp, pipe-name, mode. + Run in `socket` mode and connect to the given port. (Equivalent to `--mode socket --port `) *NOTE:* This option is mutually exclusive with options: pipe, stdio, pipe-server, pipe-name, tcp, mode, port. - `--pipe NAME` - Run in `pipe` mode and connect to the given pipe name. (Equivalent to `--mode pipe --pipe-name `) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, pipe-server, tcp, bind, pipe-name, mode. + Run in `pipe` mode and connect to the given pipe name. (Equivalent to `--mode pipe --pipe-name `) *NOTE:* This option is mutually exclusive with options: stdio, pipe-server, socket, pipe-name, tcp, mode, port, bind. - `--pipe-server NAME` - Run in `pipe-server` mode and listen at the given pipe name. (Equivalent to `--mode pipe-server --pipe-name `) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, pipe, tcp, bind, pipe-name, mode. + Run in `pipe-server` mode and listen at the given pipe name. (Equivalent to `--mode pipe-server --pipe-name `) *NOTE:* This option is mutually exclusive with options: pipe, stdio, socket, pipe-name, tcp, mode, port, bind. - `--mode [stdio|tcp|socket|pipe|pipe-server]` - The mode to use for the debug launch server. *NOTE:* This option is mutually exclusive with options: stdio, socket, pipe, pipe-server, tcp. [env var: ROBOTCODE_MODE; default: stdio] + The mode to use for the debug launch server. *NOTE:* This option is mutually exclusive with options: pipe, stdio, pipe-server, socket, tcp. [env var: ROBOTCODE_MODE; default: stdio] - `--port PORT` - The port to listen on or connect to. (Only valid for `tcp` and `socket mode`) *NOTE:* This option is mutually exclusive with options: pipe-server, pipe-name, pipe. [env var: ROBOTCODE_PORT; default: 6611; 1<=x<=65535] + The port to listen on or connect to. (Only valid for `tcp` and `socket mode`) *NOTE:* This option is mutually exclusive with options: pipe, pipe-server, pipe-name. [env var: ROBOTCODE_PORT; default: 6611; 1<=x<=65535] - `--bind ADDRESS *` - Specify alternate bind address. If no address is specified `localhost` is used. (Only valid for tcp and socket mode) *NOTE:* This option is mutually exclusive with options: pipe-server, pipe-name, pipe. [env var: ROBOTCODE_BIND; default: 127.0.0.1] + Specify alternate bind address. If no address is specified `localhost` is used. (Only valid for tcp and socket mode) *NOTE:* This option is mutually exclusive with options: pipe, pipe-server, pipe-name. [env var: ROBOTCODE_BIND; default: 127.0.0.1] - `--pipe-name NAME` - The pipe to listen on or connect to. (Only valid in `pipe` and `pipe-server` mode) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, pipe, pipe-server, tcp, bind. [env var: ROBOTCODE_PIPE_NAME] + The pipe to listen on or connect to. (Only valid in `pipe` and `pipe-server` mode) *NOTE:* This option is mutually exclusive with options: pipe, stdio, pipe-server, socket, tcp, port, bind. [env var: ROBOTCODE_PIPE_NAME] - `--version` @@ -853,11 +836,6 @@ robotcode discover all [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Show the tags that are present. [default: tags] -- `--by-longname TEXT *` - - Select tests/tasks or suites by longname. - - - `--exclude-by-longname TEXT *` Excludes tests/tasks or suites by longname. @@ -868,6 +846,11 @@ robotcode discover all [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Show the version and exit. +- `--by-longname TEXT *` + + Select tests/tasks or suites by longname. + + - `--full-paths / --no-full-paths` Show full paths instead of releative. [default: no-full-paths] @@ -952,11 +935,6 @@ robotcode discover suites [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... **Options:** -- `--by-longname TEXT *` - - Select tests/tasks or suites by longname. - - - `--exclude-by-longname TEXT *` Excludes tests/tasks or suites by longname. @@ -967,6 +945,11 @@ robotcode discover suites [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Show the version and exit. +- `--by-longname TEXT *` + + Select tests/tasks or suites by longname. + + - `--full-paths / --no-full-paths` Show full paths instead of releative. [default: no-full-paths] @@ -1024,11 +1007,6 @@ robotcode discover tags [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Show full paths instead of releative. [default: no-full-paths] -- `--by-longname TEXT *` - - Select tests/tasks or suites by longname. - - - `--exclude-by-longname TEXT *` Excludes tests/tasks or suites by longname. @@ -1039,6 +1017,11 @@ robotcode discover tags [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Show the version and exit. +- `--by-longname TEXT *` + + Select tests/tasks or suites by longname. + + - `--help` Show this message and exit. @@ -1081,11 +1064,6 @@ robotcode discover tasks [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Show full paths instead of releative. [default: no-full-paths] -- `--by-longname TEXT *` - - Select tests/tasks or suites by longname. - - - `--exclude-by-longname TEXT *` Excludes tests/tasks or suites by longname. @@ -1096,6 +1074,11 @@ robotcode discover tasks [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Show the version and exit. +- `--by-longname TEXT *` + + Select tests/tasks or suites by longname. + + - `--help` Show this message and exit. @@ -1138,11 +1121,6 @@ robotcode discover tests [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Show full paths instead of releative. [default: no-full-paths] -- `--by-longname TEXT *` - - Select tests/tasks or suites by longname. - - - `--exclude-by-longname TEXT *` Excludes tests/tasks or suites by longname. @@ -1153,6 +1131,11 @@ robotcode discover tests [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Show the version and exit. +- `--by-longname TEXT *` + + Select tests/tasks or suites by longname. + + - `--help` Show this message and exit. @@ -1178,42 +1161,42 @@ robotcode language-server [OPTIONS] [PATHS]... **Options:** - `--stdio` - Run in `stdio` mode. (Equivalent to `--mode stdio`) *NOTE:* This option is mutually exclusive with options: socket, port, pipe, tcp, bind, pipe-name, mode. [env var: ROBOTCODE_STDIO] + Run in `stdio` mode. (Equivalent to `--mode stdio`) *NOTE:* This option is mutually exclusive with options: pipe, socket, pipe-name, tcp, mode, port, bind. [env var: ROBOTCODE_STDIO] - `--tcp [
:]` - Run in `tcp` server mode and listen at the given port. (Equivalent to `--mode tcp --port `) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, pipe, pipe-name, mode. + Run in `tcp` server mode and listen at the given port. (Equivalent to `--mode tcp --port `) *NOTE:* This option is mutually exclusive with options: pipe, stdio, socket, pipe-name, mode, port. - `--socket [
:]` - Run in `socket` mode and connect to the given port. (Equivalent to `--mode socket --port `) *NOTE:* This option is mutually exclusive with options: stdio, port, pipe, tcp, pipe-name, mode. + Run in `socket` mode and connect to the given port. (Equivalent to `--mode socket --port `) *NOTE:* This option is mutually exclusive with options: pipe, stdio, pipe-name, tcp, mode, port. - `--pipe NAME` - Run in `pipe` mode and connect to the given pipe name. (Equivalent to `--mode pipe --pipe-name `) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, tcp, bind, pipe-name, mode. + Run in `pipe` mode and connect to the given pipe name. (Equivalent to `--mode pipe --pipe-name `) *NOTE:* This option is mutually exclusive with options: stdio, socket, pipe-name, tcp, mode, port, bind. -- `--mode [stdio|tcp|socket|pipe]` +- `--mode [tcp|pipe|stdio|socket]` - The mode to use for the debug launch server. *NOTE:* This option is mutually exclusive with options: stdio, tcp, socket, pipe. [env var: ROBOTCODE_MODE; default: stdio] + The mode to use for the debug launch server. *NOTE:* This option is mutually exclusive with options: tcp, pipe, stdio, socket. [env var: ROBOTCODE_MODE; default: stdio] - `--port PORT` - The port to listen on or connect to. (Only valid for `tcp` and `socket mode`) *NOTE:* This option is mutually exclusive with options: pipe-name, pipe. [env var: ROBOTCODE_PORT; default: 6610; 1<=x<=65535] + The port to listen on or connect to. (Only valid for `tcp` and `socket mode`) *NOTE:* This option is mutually exclusive with options: pipe, pipe-name. [env var: ROBOTCODE_PORT; default: 6610; 1<=x<=65535] - `--bind ADDRESS *` - Specify alternate bind address. If no address is specified `localhost` is used. (Only valid for tcp and socket mode) *NOTE:* This option is mutually exclusive with options: pipe-name, pipe. [env var: ROBOTCODE_BIND; default: 127.0.0.1] + Specify alternate bind address. If no address is specified `localhost` is used. (Only valid for tcp and socket mode) *NOTE:* This option is mutually exclusive with options: pipe, pipe-name. [env var: ROBOTCODE_BIND; default: 127.0.0.1] - `--pipe-name NAME` - The pipe to listen on or connect to. (Only valid in `pipe` and `pipe-server` mode) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, pipe, tcp, bind. [env var: ROBOTCODE_PIPE_NAME] + The pipe to listen on or connect to. (Only valid in `pipe` and `pipe-server` mode) *NOTE:* This option is mutually exclusive with options: pipe, stdio, socket, tcp, port, bind. [env var: ROBOTCODE_PIPE_NAME] - `--version` @@ -1255,25 +1238,6 @@ robotcode libdoc [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Use `-- --help` to see the `libdoc` help. -#### new - -TODO: Create a new Robot Framework project. - -TODO: This is not implemented yet. - - -**Usage:** -```text -robotcode new [OPTIONS] -``` - - -**Options:** -- `--help` - - Show this message and exit. - - #### profiles Shows information on defined profiles. @@ -1474,47 +1438,47 @@ robotcode repl-server [OPTIONS] [FILES]... **Options:** - `--stdio` - Run in `stdio` mode. (Equivalent to `--mode stdio`) *NOTE:* This option is mutually exclusive with options: socket, port, pipe, pipe-server, tcp, bind, pipe-name, mode. [env var: ROBOTCODE_STDIO] + Run in `stdio` mode. (Equivalent to `--mode stdio`) *NOTE:* This option is mutually exclusive with options: pipe, pipe-server, socket, tcp, mode, pipe-name, port, bind. [env var: ROBOTCODE_STDIO] - `--tcp [
:]` - Run in `tcp` server mode and listen at the given port. (Equivalent to `--mode tcp --port `) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, pipe, pipe-server, pipe-name, mode. + Run in `tcp` server mode and listen at the given port. (Equivalent to `--mode tcp --port `) *NOTE:* This option is mutually exclusive with options: pipe, stdio, pipe-server, socket, pipe-name, mode, port. - `--socket [
:]` - Run in `socket` mode and connect to the given port. (Equivalent to `--mode socket --port `) *NOTE:* This option is mutually exclusive with options: stdio, port, pipe, pipe-server, tcp, pipe-name, mode. + Run in `socket` mode and connect to the given port. (Equivalent to `--mode socket --port `) *NOTE:* This option is mutually exclusive with options: pipe, stdio, pipe-server, pipe-name, tcp, mode, port. - `--pipe NAME` - Run in `pipe` mode and connect to the given pipe name. (Equivalent to `--mode pipe --pipe-name `) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, pipe-server, tcp, bind, pipe-name, mode. + Run in `pipe` mode and connect to the given pipe name. (Equivalent to `--mode pipe --pipe-name `) *NOTE:* This option is mutually exclusive with options: stdio, pipe-server, socket, pipe-name, tcp, mode, port, bind. - `--pipe-server NAME` - Run in `pipe-server` mode and listen at the given pipe name. (Equivalent to `--mode pipe-server --pipe-name `) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, pipe, tcp, bind, pipe-name, mode. + Run in `pipe-server` mode and listen at the given pipe name. (Equivalent to `--mode pipe-server --pipe-name `) *NOTE:* This option is mutually exclusive with options: pipe, stdio, socket, pipe-name, tcp, mode, port, bind. - `--mode [stdio|tcp|socket|pipe|pipe-server]` - The mode to use for the debug launch server. *NOTE:* This option is mutually exclusive with options: stdio, socket, pipe, pipe-server, tcp. [env var: ROBOTCODE_MODE; default: stdio] + The mode to use for the debug launch server. *NOTE:* This option is mutually exclusive with options: pipe, stdio, pipe-server, socket, tcp. [env var: ROBOTCODE_MODE; default: stdio] - `--port PORT` - The port to listen on or connect to. (Only valid for `tcp` and `socket mode`) *NOTE:* This option is mutually exclusive with options: pipe-server, pipe-name, pipe. [env var: ROBOTCODE_PORT; default: 6601; 1<=x<=65535] + The port to listen on or connect to. (Only valid for `tcp` and `socket mode`) *NOTE:* This option is mutually exclusive with options: pipe, pipe-server, pipe-name. [env var: ROBOTCODE_PORT; default: 6601; 1<=x<=65535] - `--bind ADDRESS *` - Specify alternate bind address. If no address is specified `localhost` is used. (Only valid for tcp and socket mode) *NOTE:* This option is mutually exclusive with options: pipe-server, pipe-name, pipe. [env var: ROBOTCODE_BIND; default: 127.0.0.1] + Specify alternate bind address. If no address is specified `localhost` is used. (Only valid for tcp and socket mode) *NOTE:* This option is mutually exclusive with options: pipe, pipe-server, pipe-name. [env var: ROBOTCODE_BIND; default: 127.0.0.1] - `--pipe-name NAME` - The pipe to listen on or connect to. (Only valid in `pipe` and `pipe-server` mode) *NOTE:* This option is mutually exclusive with options: stdio, socket, port, pipe, pipe-server, tcp, bind. [env var: ROBOTCODE_PIPE_NAME] + The pipe to listen on or connect to. (Only valid in `pipe` and `pipe-server` mode) *NOTE:* This option is mutually exclusive with options: pipe, stdio, pipe-server, socket, tcp, port, bind. [env var: ROBOTCODE_PIPE_NAME] - `-v, --variable name:value *` @@ -1596,11 +1560,6 @@ robotcode robot [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... **Options:** -- `--by-longname TEXT *` - - Select tests/tasks or suites by longname. - - - `--exclude-by-longname TEXT *` Excludes tests/tasks or suites by longname. @@ -1611,6 +1570,11 @@ robotcode robot [OPTIONS] [ROBOT_OPTIONS_AND_ARGS]... Show the version and exit. +- `--by-longname TEXT *` + + Select tests/tasks or suites by longname. + + - `--help` Show this message and exit. diff --git a/docs/03_reference/config.md b/docs/03_reference/config.md index af48f636..762f3f61 100644 --- a/docs/03_reference/config.md +++ b/docs/03_reference/config.md @@ -2615,6 +2615,38 @@ Examples: - `MyVariables` - `myvars.subpackage.subpackage` +## tool.robotcode-analyze.code + +Type: `CodeConfig | None` + +Defines the code analysis configuration. + +Examples: + +```toml +[tool.robotcode-analyze.code] +exit_code_mask = "error|warn" +``` + +## tool.robotcode-analyze.code.exit-code-mask + +Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint']] | None` + +Specifies the exit code mask for the code analysis. +This is useful if you want to ignore certain types of diagnostics in the result code. + +Examples: +```toml +[tool.robotcode-analyze.code] +exit_code_mask = ["error", "warn"] +``` + +## tool.robotcode-analyze.code.extend-exit-code-mask + +Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint']] | None` + +Extend the exit code mask setting. + ## tool.robotcode-analyze.exclude-patterns Type: `list[str] | None` @@ -2701,6 +2733,31 @@ Examples: - `MyVariables` - `myvars.subpackage.subpackage` +## tool.robotcode-analyze.extend-code + +Type: `CodeConfig | None` + +Extend the code analysis configuration. + +## tool.robotcode-analyze.extend-code.exit-code-mask + +Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint']] | None` + +Specifies the exit code mask for the code analysis. +This is useful if you want to ignore certain types of diagnostics in the result code. + +Examples: +```toml +[tool.robotcode-analyze.code] +exit_code_mask = ["error", "warn"] +``` + +## tool.robotcode-analyze.extend-code.extend-exit-code-mask + +Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint']] | None` + +Extend the exit code mask setting. + ## tool.robotcode-analyze.extend-exclude-patterns Type: `list[str] | None` diff --git a/etc/robot.toml.json b/etc/robot.toml.json index f0f13ec6..6ff79344 100644 --- a/etc/robot.toml.json +++ b/etc/robot.toml.json @@ -23,6 +23,19 @@ "description": "Defines the cache configuration.", "title": "Cache" }, + "code": { + "anyOf": [ + { + "$ref": "#/definitions/CodeConfig" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Defines the code analysis configuration.\n\nExamples:\n\n```toml\n[tool.robotcode-analyze.code]\nexit_code_mask = \"error|warn\"\n```\n", + "title": "Code" + }, "exclude-patterns": { "default": null, "description": "Specifies glob patterns for excluding files and folders from analysing by the language server.", @@ -48,6 +61,19 @@ "description": "Extend the cache configuration.", "title": "Extend cache" }, + "extend-code": { + "anyOf": [ + { + "$ref": "#/definitions/CodeConfig" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Extend the code analysis configuration.", + "title": "Extend code" + }, "extend-exclude-patterns": { "default": null, "description": "Extend the exclude patterns.", @@ -203,6 +229,54 @@ "title": "CacheConfig", "type": "object" }, + "CodeConfig": { + "additionalProperties": false, + "description": "robotcode-analyze code configuration.", + "properties": { + "exit-code-mask": { + "default": null, + "description": "Specifies the exit code mask for the code analysis.\nThis is useful if you want to ignore certain types of diagnostics in the result code.\n\nExamples:\n```toml\n[tool.robotcode-analyze.code]\nexit_code_mask = [\"error\", \"warn\"]\n```\n", + "items": { + "enum": [ + "error", + "warn", + "warning", + "info", + "information", + "hint" + ], + "type": "string" + }, + "title": "Exit code mask", + "type": [ + "array", + "null" + ] + }, + "extend-exit-code-mask": { + "default": null, + "description": "Extend the exit code mask setting.", + "items": { + "enum": [ + "error", + "warn", + "warning", + "info", + "information", + "hint" + ], + "type": "string" + }, + "title": "Extend exit code mask", + "type": [ + "array", + "null" + ] + } + }, + "title": "CodeConfig", + "type": "object" + }, "Condition": { "additionalProperties": false, "description": "Condition to evaluate.", diff --git a/packages/analyze/src/robotcode/analyze/code/cli.py b/packages/analyze/src/robotcode/analyze/code/cli.py index 91b9bcac..c21be6f3 100644 --- a/packages/analyze/src/robotcode/analyze/code/cli.py +++ b/packages/analyze/src/robotcode/analyze/code/cli.py @@ -17,7 +17,7 @@ from robotcode.robot.config.utils import get_config_files from ..__version__ import __version__ -from ..config import AnalyzeConfig, ModifiersConfig +from ..config import AnalyzeConfig, ExitCodeMask, ModifiersConfig from .code_analyzer import CodeAnalyzer, DocumentDiagnosticReport, FolderDiagnosticReport SEVERITY_COLORS = { @@ -37,7 +37,8 @@ class ReturnCode(Flag): class Statistic: - def __init__(self) -> None: + def __init__(self, exit_code_mask: ExitCodeMask) -> None: + self.exit_code_mask = exit_code_mask self._folders: Set[WorkspaceFolder] = set() self._files: Set[TextDocument] = set() self._diagnostics: List[Union[DocumentDiagnosticReport, FolderDiagnosticReport]] = [] @@ -86,17 +87,33 @@ def __str__(self) -> str: def calculate_return_code(self) -> ReturnCode: return_code = ReturnCode.SUCCESS - if self.errors > 0: + if self.errors > 0 and not self.exit_code_mask & ExitCodeMask.ERROR: return_code |= ReturnCode.ERRORS - if self.warnings > 0: + if self.warnings > 0 and not self.exit_code_mask & ExitCodeMask.WARN: return_code |= ReturnCode.WARNINGS - if self.infos > 0: + if self.infos > 0 and not self.exit_code_mask & ExitCodeMask.INFO: return_code |= ReturnCode.INFOS - if self.hints > 0: + if self.hints > 0 and not self.exit_code_mask & ExitCodeMask.HINT: return_code |= ReturnCode.HINTS return return_code +def _parse_exit_code_mask(ctx: click.Context, param: click.Option, value: Tuple[str, ...]) -> ExitCodeMask: + try: + return ExitCodeMask.parse(value) + except KeyError as e: + raise click.BadParameter(str(e)) from e + + +def _split_comma(ctx: click.Context, param: click.Option, value: Optional[List[str]]) -> List[str]: + if value is None: + return [] + result: List[str] = [] + for item in value: + result.extend([x.strip() for x in item.split(",") if x.strip()]) + return result + + @click.command( add_help_option=True, ) @@ -181,6 +198,24 @@ def calculate_return_code(self) -> ReturnCode: multiple=True, help="Specifies the diagnostics codes to treat as hint.", ) +@click.option( + "--exit-code-mask", + "-xm", + multiple=True, + callback=_parse_exit_code_mask, + metavar="[" + "|".join(member.name.lower() for member in ExitCodeMask if member.name is not None) + "|all]", + help="Specifies which diagnostic severities should not affect the exit code. " + "For example, with 'warn' in the mask, warnings won't cause a non-zero exit code.", +) +@click.option( + "--extend-exit-code-mask", + "-xe", + multiple=True, + callback=_parse_exit_code_mask, + metavar="[" + "|".join(member.name.lower() for member in ExitCodeMask if member.name is not None) + "|all]", + help="Extend the exit code mask with the specified values. This appends to the default mask, defined in the config" + " file.", +) @click.argument( "paths", nargs=-1, type=click.Path(exists=True, dir_okay=True, file_okay=True, readable=True, path_type=Path) ) @@ -196,6 +231,8 @@ def code( modifiers_warning: Tuple[str, ...], modifiers_information: Tuple[str, ...], modifiers_hint: Tuple[str, ...], + exit_code_mask: ExitCodeMask, + extend_exit_code_mask: ExitCodeMask, paths: Tuple[Path], ) -> None: """\ @@ -291,7 +328,14 @@ def code( analyzer_config.modifiers.hint = [] analyzer_config.modifiers.hint.extend(modifiers_hint) - statistics = Statistic() + default_mask = ( + exit_code_mask + if exit_code_mask != ExitCodeMask.NONE + else ExitCodeMask.parse(analyzer_config.code.exit_code_mask if analyzer_config.code is not None else None) + ) + mask = default_mask | extend_exit_code_mask + + statistics = Statistic(mask) for e in CodeAnalyzer( app=app, analysis_config=analyzer_config.to_workspace_analysis_config(), diff --git a/packages/analyze/src/robotcode/analyze/code/code_analyzer.py b/packages/analyze/src/robotcode/analyze/code/code_analyzer.py index cbea1389..26ed1539 100644 --- a/packages/analyze/src/robotcode/analyze/code/code_analyzer.py +++ b/packages/analyze/src/robotcode/analyze/code/code_analyzer.py @@ -83,7 +83,7 @@ def run( ) -> Iterable[Union[DocumentDiagnosticReport, FolderDiagnosticReport]]: for folder in self.workspace.workspace_folders: self.app.verbose(f"Initialize folder {folder.uri.to_path()}") - initialize_result = self.diagnostics.initialize_folder(folder) + initialize_result = self.diagnostics.analyze_folder(folder) if initialize_result is not None: diagnostics: List[Diagnostic] = [] for item in initialize_result: diff --git a/packages/analyze/src/robotcode/analyze/code/diagnostics_context.py b/packages/analyze/src/robotcode/analyze/code/diagnostics_context.py index 4803dbc3..6335b591 100644 --- a/packages/analyze/src/robotcode/analyze/code/diagnostics_context.py +++ b/packages/analyze/src/robotcode/analyze/code/diagnostics_context.py @@ -14,13 +14,13 @@ class DiagnosticHandlers: @event def document_analyzers(sender, document: TextDocument) -> Optional[List[Diagnostic]]: ... @event - def folder_initializers(sender, folder: WorkspaceFolder) -> Optional[List[Diagnostic]]: ... + def folder_analyzers(sender, folder: WorkspaceFolder) -> Optional[List[Diagnostic]]: ... @event def collectors(sender, document: TextDocument) -> Optional[List[Diagnostic]]: ... - def initialize_folder(self, folder: WorkspaceFolder) -> List[Union[List[Diagnostic], BaseException, None]]: - return self.folder_initializers( + def analyze_folder(self, folder: WorkspaceFolder) -> List[Union[List[Diagnostic], BaseException, None]]: + return self.folder_analyzers( self, folder, return_exceptions=True, diff --git a/packages/analyze/src/robotcode/analyze/code/robot_framework_language_provider.py b/packages/analyze/src/robotcode/analyze/code/robot_framework_language_provider.py index 94941099..4a58ff41 100644 --- a/packages/analyze/src/robotcode/analyze/code/robot_framework_language_provider.py +++ b/packages/analyze/src/robotcode/analyze/code/robot_framework_language_provider.py @@ -47,7 +47,7 @@ def __init__(self, diagnostics_context: DiagnosticsContext) -> None: ) self.diagnostics_context.workspace.documents.on_read_document_text.add(self.on_read_document_text) - self.diagnostics_context.diagnostics.folder_initializers.add(self.analyze_folder) + self.diagnostics_context.diagnostics.folder_analyzers.add(self.analyze_folder) self.diagnostics_context.diagnostics.document_analyzers.add(self.analyze_document) def _update_python_path(self) -> None: diff --git a/packages/analyze/src/robotcode/analyze/config.py b/packages/analyze/src/robotcode/analyze/config.py index 3e0d8fca..9389282e 100644 --- a/packages/analyze/src/robotcode/analyze/config.py +++ b/packages/analyze/src/robotcode/analyze/config.py @@ -1,6 +1,7 @@ # ruff: noqa: RUF009 from dataclasses import dataclass -from typing import List, Optional +from enum import IntFlag +from typing import Iterable, List, Literal, Optional, Union from robotcode.robot.config.model import BaseOptions, field from robotcode.robot.diagnostics.workspace_config import ( @@ -197,10 +198,74 @@ class CacheConfig(BaseOptions): ) +class ExitCodeMask(IntFlag): + NONE = 0 + ERROR = 1 + WARN = 2 + WARNING = WARN + INFO = 4 + INFORMATION = INFO + HINT = 8 + ALL = ERROR | WARN | INFO | HINT + + @staticmethod + def parse(value: Union[Iterable[str], str, None]) -> "ExitCodeMask": + if value is None: + return ExitCodeMask.NONE + + flags = ExitCodeMask(0) + for entry in value: + for part_orig in entry.split(","): + part = part_orig.strip().upper() + if part: + try: + flags |= ExitCodeMask[part] + except KeyError as e: + raise KeyError(f"Invalid exit code mask value: {part_orig}") from e + return flags + + +ExitCodeMaskLiteral = Literal["error", "warn", "warning", "info", "information", "hint"] +ExitCodeMaskList = List[ExitCodeMaskLiteral] + + +@dataclass +class CodeConfig(BaseOptions): + """robotcode-analyze code configuration.""" + + exit_code_mask: Optional[ExitCodeMaskList] = field( + description="""\ + Specifies the exit code mask for the code analysis. + This is useful if you want to ignore certain types of diagnostics in the result code. + + Examples: + ```toml + [tool.robotcode-analyze.code] + exit_code_mask = ["error", "warn"] + ``` + """, + ) + extend_exit_code_mask: Optional[ExitCodeMaskList] = field(description="Extend the exit code mask setting.") + + @dataclass class AnalyzeConfig(BaseOptions): """robotcode-analyze configuration.""" + code: Optional[CodeConfig] = field( + description="""\ + Defines the code analysis configuration. + + Examples: + + ```toml + [tool.robotcode-analyze.code] + exit_code_mask = "error|warn" + ``` + """ + ) + extend_code: Optional[CodeConfig] = field(description="Extend the code analysis configuration.") + modifiers: Optional[ModifiersConfig] = field( description="""\ Defines the modifiers for the analysis. diff --git a/packages/core/src/robotcode/core/utils/dataclasses.py b/packages/core/src/robotcode/core/utils/dataclasses.py index be449efd..fa4f18a2 100644 --- a/packages/core/src/robotcode/core/utils/dataclasses.py +++ b/packages/core/src/robotcode/core/utils/dataclasses.py @@ -480,7 +480,7 @@ def from_dict( raise TypeError(f"Can't initialize {match_!r} with parameters {params!r}: {ex}") from ex raise TypeError( - "Value must be of type `" + f"Value '{value}' must be of type `" + ( repr(types[0]) if len(types) == 1 diff --git a/robot.toml b/robot.toml index 70496e57..320bbe41 100644 --- a/robot.toml +++ b/robot.toml @@ -3,3 +3,6 @@ python-path = [ "tests/robotcode/language_server/robotframework/parts/data/resources", ] paths = "tests/robotcode/language_server/robotframework/parts/data" + +[tool.robotcode-analyze.code] +exit-code-mask = ["info", "hint"] diff --git a/tests/robotcode/core/test_dataclasses.py b/tests/robotcode/core/test_dataclasses.py index 44496383..e4191f2b 100644 --- a/tests/robotcode/core/test_dataclasses.py +++ b/tests/robotcode/core/test_dataclasses.py @@ -221,6 +221,9 @@ def test_encode_with_optional_field_and_none_as_default_value() -> None: List[Union[EnumData, str]], [EnumData.FIRST, EnumData.SECOND, "ninety"], ), + ('"warn"', Literal["warn"], "warn"), + ('["warn"]', List[Literal["warn", "error"]], ["warn"]), + ('["warn", "error"]', List[Literal["warn", "error"]], ["warn", "error"]), ], ) def test_decode_simple(expr: Any, type: Any, expected: str) -> None: From 98e4d5c2e69e1d2a3a1518456f85ff04b15be920 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Mon, 17 Mar 2025 09:04:46 +0100 Subject: [PATCH 13/35] test: fix some unittest --- tests/robotcode/robot/config/test_profile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/robotcode/robot/config/test_profile.py b/tests/robotcode/robot/config/test_profile.py index e92302df..18be1fbb 100644 --- a/tests/robotcode/robot/config/test_profile.py +++ b/tests/robotcode/robot/config/test_profile.py @@ -372,5 +372,5 @@ def test_type_that_wants_alist_should_throw_an_error() -> None: [listeners] listener_with_colon = "dummy:output" """ - with pytest.raises(TypeError, match=".*Value must be of type.*"): + with pytest.raises(TypeError, match=".*Value '.*' must be of type.*"): load_robot_config_from_robot_toml_str(data) From a496714b88d397b46f4b4192c82336711fccac5a Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Mon, 17 Mar 2025 10:24:41 +0100 Subject: [PATCH 14/35] fix(analyze): allow `all` also in `robot.toml` configuration for `exit-code-mask` --- etc/robot.toml.json | 6 ++++-- packages/analyze/src/robotcode/analyze/config.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/etc/robot.toml.json b/etc/robot.toml.json index 6ff79344..52e4cb93 100644 --- a/etc/robot.toml.json +++ b/etc/robot.toml.json @@ -243,7 +243,8 @@ "warning", "info", "information", - "hint" + "hint", + "all" ], "type": "string" }, @@ -263,7 +264,8 @@ "warning", "info", "information", - "hint" + "hint", + "all" ], "type": "string" }, diff --git a/packages/analyze/src/robotcode/analyze/config.py b/packages/analyze/src/robotcode/analyze/config.py index 9389282e..65becdf0 100644 --- a/packages/analyze/src/robotcode/analyze/config.py +++ b/packages/analyze/src/robotcode/analyze/config.py @@ -225,7 +225,7 @@ def parse(value: Union[Iterable[str], str, None]) -> "ExitCodeMask": return flags -ExitCodeMaskLiteral = Literal["error", "warn", "warning", "info", "information", "hint"] +ExitCodeMaskLiteral = Literal["error", "warn", "warning", "info", "information", "hint", "all"] ExitCodeMaskList = List[ExitCodeMaskLiteral] From 738d7a6129f8e459c0af1961ebedfe320d2a4b9d Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Mon, 17 Mar 2025 22:52:53 +0100 Subject: [PATCH 15/35] feat(vscode): add configuration for output file display options Add "robotcode.run.openOutputTarget" setting to control how Robot Framework output files are displayed: - simpleBrowser: in VSCode's built-in browser - externalHttp: in default browser via HTTP protocol - externalFile: in default browser via file system The externalFile options may not run in remote development environments. Closes #391 Closes #227 --- package.json | 18 +++++++++++++++++- vscode-client/extension/debugmanager.ts | 9 +++++---- vscode-client/extension/index.ts | 2 +- .../extension/languageclientsmanger.ts | 19 +++++++++++++++++++ 4 files changed, 42 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 08fd291a..a20dacbd 100644 --- a/package.json +++ b/package.json @@ -757,6 +757,22 @@ "default": "none", "description": "Defines if the report or log file should be opened after a run.", "scope": "resource" + }, + "robotcode.run.openOutputTarget": { + "type": "string", + "enum": [ + "simpleBrowser", + "externalHttp", + "externalFile" + ], + "enumDescriptions": [ + "Display the output file in a simple VSCode browser window.", + "Display the output file in your default web browser via HTTP.", + "Display the output file in your default browser via the file system." + ], + "default": "simpleBrowser", + "description": "Specifies how Robot Framework output files should be displayed when opened.", + "scope": "resource" } } }, @@ -1943,4 +1959,4 @@ "workspaces": [ "docs" ] -} +} \ No newline at end of file diff --git a/vscode-client/extension/debugmanager.ts b/vscode-client/extension/debugmanager.ts index 4cec53f4..9ee5c02a 100644 --- a/vscode-client/extension/debugmanager.ts +++ b/vscode-client/extension/debugmanager.ts @@ -612,10 +612,11 @@ export class DebugManager { logFile?: string, reportFile?: string, ): Promise { - if (session.configuration?.openOutputAfterRun === "report" && reportFile) { - await this.languageClientsManager.openUriInDocumentationView(vscode.Uri.file(reportFile)); - } else if (session.configuration?.openOutputAfterRun === "log" && logFile) { - await this.languageClientsManager.openUriInDocumentationView(vscode.Uri.file(logFile)); + const openMode = session.configuration?.openOutputAfterRun as string; + const fileToOpen = openMode === "report" ? reportFile : openMode === "log" ? logFile : undefined; + + if (fileToOpen) { + await this.languageClientsManager.openOutputFile(vscode.Uri.file(fileToOpen)); } } } diff --git a/vscode-client/extension/index.ts b/vscode-client/extension/index.ts index 75ded5f4..887c45c5 100644 --- a/vscode-client/extension/index.ts +++ b/vscode-client/extension/index.ts @@ -116,7 +116,7 @@ export async function activateAsync(context: vscode.ExtensionContext): Promise { + const workspace = vscode.workspace.getWorkspaceFolder(file); + const result = vscode.workspace.getConfiguration(CONFIG_SECTION, workspace).get("run.openOutputTarget"); + + switch (result) { + case "simpleBrowser": + await this.openUriInDocumentationView(file); + break; + case "externalHttp": + await vscode.env.openExternal( + await vscode.env.asExternalUri((await this.convertToDocumentationUri(file)) ?? file), + ); + break; + case "externalFile": + await vscode.env.openExternal(file); + break; + } + } + public async convertToDocumentationUri( uri: vscode.Uri, token?: vscode.CancellationToken | undefined, From 2d3b190fd8856f669e9a0b63bd96993b9358d428 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Mon, 17 Mar 2025 22:58:19 +0100 Subject: [PATCH 16/35] chore(vscode): update packages --- docs/package.json | 8 +- package-lock.json | 419 ++++++++++++++++++++++++---------------------- package.json | 18 +- 3 files changed, 228 insertions(+), 217 deletions(-) diff --git a/docs/package.json b/docs/package.json index 9ab63d24..e52cfa7c 100644 --- a/docs/package.json +++ b/docs/package.json @@ -8,16 +8,16 @@ "preview": "vitepress preview" }, "devDependencies": { - "esbuild": "^0.25.0", + "esbuild": "^0.25.1", "markdown-it-abbr": "^2.0.0", "markdown-it-kbd": "^2.2.2", "markdown-it-mathjax3": "^4.3.2", "markdown-it-task-lists": "^2.1.1", - "typescript": "^5.7.3", - "typescript-eslint": "^8.25.0", + "typescript": "^5.8.2", + "typescript-eslint": "^8.26.1", "vitepress": "^1.6.3", "vitepress-plugin-tabs": "^0.6.0", - "vitepress-sidebar": "^1.31.0" + "vitepress-sidebar": "^1.31.1" }, "dependencies": { "docs": "file:" diff --git a/package-lock.json b/package-lock.json index 966cb96a..4ba87ff0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,25 +24,25 @@ "devDependencies": { "@eslint/compat": "^1.2.7", "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "^9.21.0", + "@eslint/js": "^9.22.0", "@jgoz/esbuild-plugin-typecheck": "^4.0.3", "@types/fs-extra": "^11.0.4", - "@types/node": "^22.13.6", + "@types/node": "^22.13.10", "@types/vscode": "^1.96.0", "@types/vscode-notebook-renderer": "^1.72.3", "@vscode/python-extension": "^1.0.5", - "@vscode/vsce": "^3.2.2", - "esbuild": "^0.25.0", - "eslint": "^9.21.0", - "eslint-config-prettier": "^10.0.2", + "@vscode/vsce": "^3.3.0", + "esbuild": "^0.25.1", + "eslint": "^9.22.0", + "eslint-config-prettier": "^10.1.1", "eslint-plugin-prettier": "^5.2.3", "globals": "^16.0.0", "ovsx": "^0.10.1", "preact": "^10.26.4", - "prettier": "^3.5.2", + "prettier": "^3.5.3", "ts-loader": "^9.5.2", - "typescript": "^5.7.3", - "typescript-eslint": "^8.25.0" + "typescript": "^5.8.2", + "typescript-eslint": "^8.26.1" }, "engines": { "vscode": "^1.96.0" @@ -53,16 +53,16 @@ "docs": "file:" }, "devDependencies": { - "esbuild": "^0.25.0", + "esbuild": "^0.25.1", "markdown-it-abbr": "^2.0.0", "markdown-it-kbd": "^2.2.2", "markdown-it-mathjax3": "^4.3.2", "markdown-it-task-lists": "^2.1.1", - "typescript": "^5.7.3", - "typescript-eslint": "^8.25.0", + "typescript": "^5.8.2", + "typescript-eslint": "^8.26.1", "vitepress": "^1.6.3", "vitepress-plugin-tabs": "^0.6.0", - "vitepress-sidebar": "^1.31.0" + "vitepress-sidebar": "^1.31.1" } }, "node_modules/@algolia/autocomplete-core": { @@ -580,9 +580,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", "cpu": [ "ppc64" ], @@ -597,9 +597,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", "cpu": [ "arm" ], @@ -614,9 +614,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", "cpu": [ "arm64" ], @@ -631,9 +631,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", "cpu": [ "x64" ], @@ -648,9 +648,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", "cpu": [ "arm64" ], @@ -665,9 +665,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", "cpu": [ "x64" ], @@ -682,9 +682,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", "cpu": [ "arm64" ], @@ -699,9 +699,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", "cpu": [ "x64" ], @@ -716,9 +716,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", "cpu": [ "arm" ], @@ -733,9 +733,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", "cpu": [ "arm64" ], @@ -750,9 +750,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", "cpu": [ "ia32" ], @@ -767,9 +767,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", "cpu": [ "loong64" ], @@ -784,9 +784,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", "cpu": [ "mips64el" ], @@ -801,9 +801,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", "cpu": [ "ppc64" ], @@ -818,9 +818,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", "cpu": [ "riscv64" ], @@ -835,9 +835,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", "cpu": [ "s390x" ], @@ -852,9 +852,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", "cpu": [ "x64" ], @@ -869,9 +869,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", "cpu": [ "arm64" ], @@ -886,9 +886,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", "cpu": [ "x64" ], @@ -903,9 +903,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", "cpu": [ "arm64" ], @@ -920,9 +920,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", "cpu": [ "x64" ], @@ -937,9 +937,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", "cpu": [ "x64" ], @@ -954,9 +954,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", "cpu": [ "arm64" ], @@ -971,9 +971,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", "cpu": [ "ia32" ], @@ -988,9 +988,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", "cpu": [ "x64" ], @@ -1079,6 +1079,16 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/config-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", + "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/core": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", @@ -1130,9 +1140,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", - "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", + "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", "dev": true, "license": "MIT", "engines": { @@ -1870,9 +1880,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.13.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.7.tgz", - "integrity": "sha512-oU2q+BsQldB9lYxHNp/5aZO+/Bs0Usa74Abo9mAKulz4ahQyXRHK6UVKYIN8KSC8HXwhWSi7b49JnX+txuac0w==", + "version": "22.13.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", + "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", "dev": true, "license": "MIT", "dependencies": { @@ -1908,17 +1918,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.25.0.tgz", - "integrity": "sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz", + "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.25.0", - "@typescript-eslint/type-utils": "8.25.0", - "@typescript-eslint/utils": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/type-utils": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1934,20 +1944,20 @@ "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.25.0.tgz", - "integrity": "sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz", + "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.25.0", - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/typescript-estree": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", "debug": "^4.3.4" }, "engines": { @@ -1959,18 +1969,18 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz", - "integrity": "sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz", + "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0" + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1981,14 +1991,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.25.0.tgz", - "integrity": "sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz", + "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.25.0", - "@typescript-eslint/utils": "8.25.0", + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/utils": "8.26.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -2001,13 +2011,13 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.25.0.tgz", - "integrity": "sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz", + "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==", "dev": true, "license": "MIT", "engines": { @@ -2019,14 +2029,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz", - "integrity": "sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz", + "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/visitor-keys": "8.25.0", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -2042,7 +2052,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -2072,16 +2082,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.25.0.tgz", - "integrity": "sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz", + "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.25.0", - "@typescript-eslint/types": "8.25.0", - "@typescript-eslint/typescript-estree": "8.25.0" + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2092,17 +2102,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz", - "integrity": "sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz", + "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.25.0", + "@typescript-eslint/types": "8.26.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -2146,9 +2156,9 @@ } }, "node_modules/@vscode/vsce": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.2.2.tgz", - "integrity": "sha512-4TqdUq/yKlQTHcQMk/DamR632bq/+IJDomSbexOMee/UAYWqYm0XHWA6scGslsCpzY+sCWEhhl0nqdOB0XW1kw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.3.0.tgz", + "integrity": "sha512-HA/pUyvh/TQWkc4wG7AudPIWUvsR8i4jiWZZgM/a69ncPi9Nm5FDogf/wVEk4EWJs4/UdxU7J6X18dfAwfPbxA==", "dev": true, "license": "MIT", "dependencies": { @@ -3823,9 +3833,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -3836,31 +3846,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" } }, "node_modules/escalade": { @@ -3898,18 +3908,19 @@ } }, "node_modules/eslint": { - "version": "9.21.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", - "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", + "version": "9.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", + "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.1.0", "@eslint/core": "^0.12.0", "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "9.21.0", + "@eslint/js": "9.22.0", "@eslint/plugin-kit": "^0.2.7", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -3921,7 +3932,7 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", + "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", @@ -3958,13 +3969,13 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.0.2.tgz", - "integrity": "sha512-1105/17ZIMjmCOJOPNfVdbXafLCLj3hPmkmB7dLgt7XsQ/zkxSuDerE/xgO3RxoHysR1N1whmquY0lSn2O0VLg==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", + "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", "dev": true, "license": "MIT", "bin": { - "eslint-config-prettier": "build/bin/cli.js" + "eslint-config-prettier": "bin/cli.js" }, "peerDependencies": { "eslint": ">=7.0.0" @@ -4002,9 +4013,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -6530,9 +6541,9 @@ } }, "node_modules/prettier": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", - "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "license": "MIT", "bin": { @@ -6618,9 +6629,9 @@ } }, "node_modules/qsu": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/qsu/-/qsu-1.7.1.tgz", - "integrity": "sha512-GE/0bqFoMHcywbaJJ/t3A8DzVzp26ukNxJTwOp4h9F/G/NCeWh4p19nw7CbZ4XwfsjptkeJ/BKbCYtMFlOeHjg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/qsu/-/qsu-1.10.0.tgz", + "integrity": "sha512-60UGE7IEYXX/xy/n1w7vDm+is43pmePajAdXAnFOczvVDJKbVqZ5/RvRy+yobjA4iQitr4H/4zojVFtAkNWW9g==", "dev": true, "license": "MIT", "engines": { @@ -7811,9 +7822,9 @@ } }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -7825,15 +7836,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.25.0.tgz", - "integrity": "sha512-TxRdQQLH4g7JkoFlYG3caW5v1S6kEkz8rqt80iQJZUYPq1zD1Ra7HfQBJJ88ABRaMvHAXnwRvRB4V+6sQ9xN5Q==", + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.26.1.tgz", + "integrity": "sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.25.0", - "@typescript-eslint/parser": "8.25.0", - "@typescript-eslint/utils": "8.25.0" + "@typescript-eslint/eslint-plugin": "8.26.1", + "@typescript-eslint/parser": "8.26.1", + "@typescript-eslint/utils": "8.26.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7844,7 +7855,7 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/uc.micro": { @@ -8611,15 +8622,15 @@ } }, "node_modules/vitepress-sidebar": { - "version": "1.31.0", - "resolved": "https://registry.npmjs.org/vitepress-sidebar/-/vitepress-sidebar-1.31.0.tgz", - "integrity": "sha512-ctdALc8ptXsD0HuOYMM8xjUu3lSBfHGJJZYtKYuixvjhL+q/AipLeSvsvwfUEhDIwRyi46HQlSa/7XsevVA/Mg==", + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/vitepress-sidebar/-/vitepress-sidebar-1.31.1.tgz", + "integrity": "sha512-Hx10z5le87jIIXVfKq4AtRrVqVJJ/1cQsZhmwT+ghVR/j4Yor9FjNMszyigJ54ktrEtoxSLO6C9tvuLauT4lZA==", "dev": true, "license": "MIT", "dependencies": { "glob": "10.4.5", "gray-matter": "4.0.3", - "qsu": "^1.6.4" + "qsu": "^1.10.0" }, "engines": { "node": ">=18.0.0" diff --git a/package.json b/package.json index a20dacbd..93b7b394 100644 --- a/package.json +++ b/package.json @@ -1936,25 +1936,25 @@ "devDependencies": { "@eslint/compat": "^1.2.7", "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "^9.21.0", + "@eslint/js": "^9.22.0", "@jgoz/esbuild-plugin-typecheck": "^4.0.3", "@types/fs-extra": "^11.0.4", - "@types/node": "^22.13.6", + "@types/node": "^22.13.10", "@types/vscode": "^1.96.0", "@types/vscode-notebook-renderer": "^1.72.3", "@vscode/python-extension": "^1.0.5", - "@vscode/vsce": "^3.2.2", - "esbuild": "^0.25.0", - "eslint": "^9.21.0", - "eslint-config-prettier": "^10.0.2", + "@vscode/vsce": "^3.3.0", + "esbuild": "^0.25.1", + "eslint": "^9.22.0", + "eslint-config-prettier": "^10.1.1", "eslint-plugin-prettier": "^5.2.3", "globals": "^16.0.0", "ovsx": "^0.10.1", "preact": "^10.26.4", - "prettier": "^3.5.2", + "prettier": "^3.5.3", "ts-loader": "^9.5.2", - "typescript": "^5.7.3", - "typescript-eslint": "^8.25.0" + "typescript": "^5.8.2", + "typescript-eslint": "^8.26.1" }, "workspaces": [ "docs" From cc7f833b78cdb69b042fdbb71668f3feaae57c75 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Tue, 18 Mar 2025 09:59:29 +0100 Subject: [PATCH 17/35] chore: update workflows to use hatch github action --- .github/workflows/build-test-package-publish.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-test-package-publish.yml b/.github/workflows/build-test-package-publish.yml index a717e0de..70139bdd 100644 --- a/.github/workflows/build-test-package-publish.yml +++ b/.github/workflows/build-test-package-publish.yml @@ -49,8 +49,8 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Ensure latest hatch is installed - run: pipx install hatch + - name: Install Hatch + uses: pypa/hatch@install - name: Test Python Packages uses: nick-fields/retry@v3 @@ -111,8 +111,8 @@ jobs: with: python-version: "3.8" - - name: Ensure latest hatch is installed - run: pipx install hatch + - name: Install Hatch + uses: pypa/hatch@install - name: Gradle Wrapper Validation uses: gradle/actions/wrapper-validation@v4 @@ -166,8 +166,8 @@ jobs: with: python-version: "3.8" - - name: Ensure latest hatch is installed - run: pipx install hatch + - name: Install Hatch + uses: pypa/hatch@install - name: Setup Node.js environment uses: actions/setup-node@v4 @@ -255,8 +255,8 @@ jobs: with: python-version: "3.8" - - name: Ensure latest hatch is installed - run: pipx install hatch + - name: Install Hatch + uses: pypa/hatch@install - name: Setup Node.js environment uses: actions/setup-node@v4 From af4dadd491d7d1cd054609926e1e8fcd8a829415 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Thu, 20 Mar 2025 15:52:56 +0100 Subject: [PATCH 18/35] chore: update pre-commit hook to use conventional-pre-commit --- .pre-commit-config.yaml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ea1d3824..5aeda9fe 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,8 +1,18 @@ fail_fast: true default_language_version: - python: python3.8 -default_stages: [pre-commit, pre-push] + python: python3.9 +default_stages: + - commit-msg + - pre-commit + - pre-push + repos: + - repo: https://github.com/compilerla/conventional-pre-commit + rev: v4.0.0 + hooks: + - id: conventional-pre-commit + stages: [commit-msg] + args: [] - repo: local hooks: - id: lint_package_update From 7686a21c76681d2a7321a67c1c872b6c77687000 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Thu, 20 Mar 2025 15:53:57 +0100 Subject: [PATCH 19/35] doc: added pycharm link on the robotcode.io homepage --- docs/.vitepress/config.mts | 2 + docs/images/pycharm.svg | 214 +++++++++++++++++++++++++++++++++++++ 2 files changed, 216 insertions(+) create mode 100644 docs/images/pycharm.svg diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 8bf52659..19b1bf98 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -10,6 +10,7 @@ import pkg from "../../package.json"; //import python_svg from "../images/python.svg?raw"; const python_svg = readFileSync("images/python.svg", "utf-8"); const vscode_svg = readFileSync("images/vscode.svg", "utf-8"); +const pycharm_svg = readFileSync("images/pycharm.svg", "utf-8"); const opencollective_svg = readFileSync("images/opencollective.svg", "utf-8"); // https://vitepress.dev/reference/site-config @@ -92,6 +93,7 @@ export default defineConfig({ { icon: "github", link: "https://github.com/robotcodedev/robotcode" }, { icon: { svg: python_svg }, link: "https://pypi.org/project/robotcode/" }, { icon: { svg: vscode_svg }, link: "https://marketplace.visualstudio.com/items?itemName=d-biehl.robotcode" }, + { icon: { svg: pycharm_svg }, link: "https://plugins.jetbrains.com/plugin/26216" }, { icon: { svg: opencollective_svg }, link: "https://opencollective.com/robotcode" }, ], }, diff --git a/docs/images/pycharm.svg b/docs/images/pycharm.svg new file mode 100644 index 00000000..36c31478 --- /dev/null +++ b/docs/images/pycharm.svg @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 1a3cb654203500284fc3c08111e8209981372a42 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Thu, 20 Mar 2025 15:58:00 +0100 Subject: [PATCH 20/35] chore: update pre-commit install-hook-types --- .pre-commit-config.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5aeda9fe..b251e837 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,6 +5,10 @@ default_stages: - commit-msg - pre-commit - pre-push +default_install_hook_types: + - pre-commit + - commit-msg + - pre-push repos: - repo: https://github.com/compilerla/conventional-pre-commit From e69465b70070ec0229217a9f45789f4d318312e1 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Fri, 21 Mar 2025 15:38:54 +0100 Subject: [PATCH 21/35] style: switch completly to ruff for formatting and style --- .devcontainer/devcontainer.json | 8 +------ .pre-commit-config.yaml | 3 +-- .vscode/extensions.json | 1 - hatch.toml | 20 +++++++++++----- .../core/src/robotcode/core/concurrent.py | 2 +- .../src/robotcode/core/utils/dataclasses.py | 4 +++- .../core/src/robotcode/core/utils/logging.py | 4 +++- .../src/robotcode/debugger/debugger.py | 2 -- .../src/robotcode/debugger/launcher/server.py | 4 +++- .../src/robotcode/debugger/protocol.py | 4 ++-- .../jsonrpc2/src/robotcode/jsonrpc2/server.py | 4 +++- .../common/parts/diagnostics.py | 8 +++---- .../common/parts/semantic_tokens.py | 4 +++- .../parts/code_action_documentation.py | 4 +++- .../robotframework/parts/completion.py | 12 +++++++--- .../robotframework/parts/hover.py | 2 -- .../robotframework/parts/semantic_tokens.py | 1 - .../plugin/src/robotcode/plugin/__init__.py | 4 +++- .../src/robotcode/repl/console_interpreter.py | 5 ++-- .../robotcode/robot/diagnostics/data_cache.py | 1 - .../robot/diagnostics/imports_manager.py | 7 +++--- .../robot/diagnostics/library_doc.py | 16 +++++++++---- .../robotcode/robot/diagnostics/namespace.py | 24 ++++++++++++++----- .../robot/diagnostics/namespace_analyzer.py | 8 +++++-- .../robot/utils/markdownformatter.py | 6 ++--- .../robotcode/runner/cli/discover/discover.py | 12 ++++++---- .../runner/src/robotcode/runner/cli/libdoc.py | 2 +- .../runner/src/robotcode/runner/cli/rebot.py | 2 +- .../runner/src/robotcode/runner/cli/robot.py | 6 +++-- .../src/robotcode/runner/cli/testdoc.py | 2 +- pyproject.toml | 12 ---------- scripts/create_cmdline_doc.py | 2 +- scripts/generate_rf_options.py | 4 ++-- scripts/install_packages.py | 2 +- scripts/tools.py | 1 - src/robotcode/cli/commands/config.py | 4 ++-- src/robotcode/cli/commands/profiles.py | 16 ++++++------- 37 files changed, 128 insertions(+), 95 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9c02357a..78385a7a 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -41,7 +41,6 @@ "tamasfe.even-better-toml", "gruntfuggly.todo-tree", "charliermarsh.ruff", - "ms-python.black-formatter", "ms-python.mypy-type-checker", "ms-python.debugpy" ], @@ -82,12 +81,7 @@ "^(.*(/|\\\\)\\.?robot\\.toml|\\.?robot\\.toml)$": "http://localhost:8000/etc/robot.toml.json" }, "mypy-type-checker.importStrategy": "fromEnvironment", - "debugpy.debugJustMyCode": false, - "black-formatter.importStrategy": "fromEnvironment", - "black-formatter.args": [ - "--config", - "${workspaceFolder}./pyproject.toml" - ] + "debugpy.debugJustMyCode": false } } } diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b251e837..10a90faf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -49,5 +49,4 @@ repos: pass_filenames: false language: system stages: [pre-commit] - types: - - "javascript" + types_or: [javascript, jsx, ts, tsx] \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 280cf515..e814a210 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -8,7 +8,6 @@ "tamasfe.even-better-toml", "gruntfuggly.todo-tree", "charliermarsh.ruff", - "ms-python.black-formatter", "ms-python.mypy-type-checker" ] } \ No newline at end of file diff --git a/hatch.toml b/hatch.toml index 98b96718..f431230d 100644 --- a/hatch.toml +++ b/hatch.toml @@ -22,7 +22,6 @@ dependencies = [ "pytest-cov", "mypy", "ruff", - "black", "debugpy", "GitPython", "semantic-version", @@ -98,7 +97,7 @@ matrix.rf.dependencies = [ { value = "robotframework>=7.1, <7.2", if = [ "rf71", ] }, - { value = "robotframework>=7.2, <7.3", if = [ + { value = "robotframework>=7.2, <7.3", if = [ "rf72", ] }, ] @@ -150,10 +149,8 @@ features = ["all"] [envs.lint.scripts] -typing-py = "mypy --no-incremental --cache-dir /dev/null {args:.}" -typing = ["typing-py", "npm run compile"] -style = ["ruff check .", "black --check --diff .", "npx eslint ."] -fmt = ["black .", "ruff check --fix .", "style", "npx eslint --fix ."] +typing = "mypy --no-incremental --cache-dir /dev/null {args:.}" +style = ["ruff check .", "ruff format --diff ."] all = ["style", "typing"] [envs.lint.overrides] @@ -178,3 +175,14 @@ extract-release-notes = ["python scripts/extract_release_notes.py"] is-prerelease = ["python scripts/is_prerelease.py"] bump = ["cz bump {args}"] install-bundled-editable = "python ./scripts/install_bundled_editable.py" + + +[envs.hatch-static-analysis] +installer="uv" +dependencies = ["ruff"] + +[envs.hatch-static-analysis.scripts] +format-check = ["ruff format --check --diff {args:.}"] +format-fix = ["ruff format {args:.}"] +lint-check = ["ruff check {args:.}"] +lint-fix = "ruff check --fix {args:.}" diff --git a/packages/core/src/robotcode/core/concurrent.py b/packages/core/src/robotcode/core/concurrent.py index ad0d99af..18f26e1b 100644 --- a/packages/core/src/robotcode/core/concurrent.py +++ b/packages/core/src/robotcode/core/concurrent.py @@ -53,7 +53,7 @@ def acquire(self, blocking: bool = True, timeout: Optional[float] = None) -> boo aquired = self._lock.acquire(blocking, timeout=timeout) if not aquired and blocking and timeout > 0: raise RuntimeError( - f"Could not acquire {self.__class__.__qualname__} {self.name+' ' if self.name else ' '}in {timeout}s." + f"Could not acquire {self.__class__.__qualname__} {self.name + ' ' if self.name else ' '}in {timeout}s." ) return aquired diff --git a/packages/core/src/robotcode/core/utils/dataclasses.py b/packages/core/src/robotcode/core/utils/dataclasses.py index fa4f18a2..4a6bd5cd 100644 --- a/packages/core/src/robotcode/core/utils/dataclasses.py +++ b/packages/core/src/robotcode/core/utils/dataclasses.py @@ -488,7 +488,9 @@ def from_dict( ( (getattr(e, "__name__", None) or str(e) if e is not type(None) else "None") if _get_origin_cached(e) is not Literal - else repr(e).replace("typing.", "") if e is not None else "None" + else repr(e).replace("typing.", "") + if e is not None + else "None" ) for e in types ) diff --git a/packages/core/src/robotcode/core/utils/logging.py b/packages/core/src/robotcode/core/utils/logging.py index 0e633e6e..d1808275 100644 --- a/packages/core/src/robotcode/core/utils/logging.py +++ b/packages/core/src/robotcode/core/utils/logging.py @@ -149,7 +149,9 @@ def __init_logger(self) -> LoggingDescriptor: else ( ("" if self.__owner is None else self.__owner.__module__ + "." + self.__owner.__qualname__) if self.__owner is not None - else get_unwrapped_func(self.__func).__module__ if self.__func is not None else "" + else get_unwrapped_func(self.__func).__module__ + if self.__func is not None + else "" ) + self.__postfix ) diff --git a/packages/debugger/src/robotcode/debugger/debugger.py b/packages/debugger/src/robotcode/debugger/debugger.py index ec951ae1..d09f684c 100644 --- a/packages/debugger/src/robotcode/debugger/debugger.py +++ b/packages/debugger/src/robotcode/debugger/debugger.py @@ -547,7 +547,6 @@ def set_breakpoints( lines: Optional[List[int]] = None, source_modified: Optional[bool] = None, ) -> List[Breakpoint]: - if self.is_windows_path(source.path or ""): path: pathlib.PurePath = pathlib.PureWindowsPath(source.path or "") else: @@ -647,7 +646,6 @@ def process_start_state(self, source: str, line_no: int, type: str, status: str) if source_path in self.breakpoints: breakpoints = [v for v in self.breakpoints[source_path].breakpoints if v.line == line_no] if len(breakpoints) > 0: - for point in breakpoints: if point.condition is not None: hit = False diff --git a/packages/debugger/src/robotcode/debugger/launcher/server.py b/packages/debugger/src/robotcode/debugger/launcher/server.py index 96f3359b..caf6bc70 100644 --- a/packages/debugger/src/robotcode/debugger/launcher/server.py +++ b/packages/debugger/src/robotcode/debugger/launcher/server.py @@ -245,7 +245,9 @@ async def _launch( kind=( RunInTerminalKind.INTEGRATED if console == "integratedTerminal" - else RunInTerminalKind.EXTERNAL if console == "externalTerminal" else None + else RunInTerminalKind.EXTERNAL + if console == "externalTerminal" + else None ), title=name, ) diff --git a/packages/debugger/src/robotcode/debugger/protocol.py b/packages/debugger/src/robotcode/debugger/protocol.py index 47112f48..7d667dfc 100644 --- a/packages/debugger/src/robotcode/debugger/protocol.py +++ b/packages/debugger/src/robotcode/debugger/protocol.py @@ -44,7 +44,7 @@ class DebugAdapterErrorResponseError(JsonRPCException): def __init__(self, error: ErrorResponse) -> None: super().__init__( f'{error.message} (seq={error.request_seq} command="{error.command}")' - f'{f": {error.body.error}" if error.body is not None and error.body.error else ""}' + f"{f': {error.body.error}' if error.body is not None and error.body.error else ''}" ) self.error = error @@ -60,7 +60,7 @@ def __init__( ) -> None: super().__init__( f'{(message + " ") if message else ""}(seq={request_seq} command="{command}")' - f'{f": {error_message}" if error_message else ""}' + f"{f': {error_message}' if error_message else ''}" ) self.message = message self.request_seq = request_seq diff --git a/packages/jsonrpc2/src/robotcode/jsonrpc2/server.py b/packages/jsonrpc2/src/robotcode/jsonrpc2/server.py index 93a6ed3d..497a926e 100644 --- a/packages/jsonrpc2/src/robotcode/jsonrpc2/server.py +++ b/packages/jsonrpc2/src/robotcode/jsonrpc2/server.py @@ -94,7 +94,9 @@ def start(self) -> None: ( self.tcp_params.host if isinstance(self.tcp_params.host, str) - else self.tcp_params.host[0] if self.tcp_params.host else None + else self.tcp_params.host[0] + if self.tcp_params.host + else None ), ) else: diff --git a/packages/language_server/src/robotcode/language_server/common/parts/diagnostics.py b/packages/language_server/src/robotcode/language_server/common/parts/diagnostics.py index d12314eb..0e9bd0cd 100644 --- a/packages/language_server/src/robotcode/language_server/common/parts/diagnostics.py +++ b/packages/language_server/src/robotcode/language_server/common/parts/diagnostics.py @@ -399,10 +399,10 @@ def run_workspace_diagnostics(self) -> None: folder = self.parent.workspace.get_workspace_folder(document.uri) name = path if folder is None else path.relative_to(folder.uri.to_path()) - progress.report(f"Analyze {i+1}/{len(documents)}: {name}", current=i + 1) + progress.report(f"Analyze {i + 1}/{len(documents)}: {name}", current=i + 1) elif analysis_mode == AnalysisProgressMode.SIMPLE: progress.begin() - progress.report(f"Analyze {i+1}/{len(documents)}", current=i + 1) + progress.report(f"Analyze {i + 1}/{len(documents)}", current=i + 1) try: with self._current_diagnostics_task_lock: @@ -490,10 +490,10 @@ def run_workspace_diagnostics(self) -> None: folder = self.parent.workspace.get_workspace_folder(document.uri) name = path if folder is None else path.relative_to(folder.uri.to_path()) - progress.report(f"Collect {i+1}/{len(documents_to_collect)}: {name}", current=i + 1) + progress.report(f"Collect {i + 1}/{len(documents_to_collect)}: {name}", current=i + 1) elif analysis_mode == AnalysisProgressMode.SIMPLE: progress.begin() - progress.report(f"Collect {i+1}/{len(documents_to_collect)}", current=i + 1) + progress.report(f"Collect {i + 1}/{len(documents_to_collect)}", current=i + 1) try: with self._current_diagnostics_task_lock: diff --git a/packages/language_server/src/robotcode/language_server/common/parts/semantic_tokens.py b/packages/language_server/src/robotcode/language_server/common/parts/semantic_tokens.py index 1fc3a801..402ddddd 100644 --- a/packages/language_server/src/robotcode/language_server/common/parts/semantic_tokens.py +++ b/packages/language_server/src/robotcode/language_server/common/parts/semantic_tokens.py @@ -83,7 +83,9 @@ def extend_capabilities(self, capabilities: ServerCapabilities) -> None: full=( SemanticTokensOptionsFullType1(delta=True if len(self.collect_full_delta) else None) if len(self.collect_full) and len(self.collect_full_delta) - else True if len(self.collect_full) else None + else True + if len(self.collect_full) + else None ), range=True if len(self.collect_range) else None, ) diff --git a/packages/language_server/src/robotcode/language_server/robotframework/parts/code_action_documentation.py b/packages/language_server/src/robotcode/language_server/robotframework/parts/code_action_documentation.py index d5e810f1..f6a7ea9d 100644 --- a/packages/language_server/src/robotcode/language_server/robotframework/parts/code_action_documentation.py +++ b/packages/language_server/src/robotcode/language_server/robotframework/parts/code_action_documentation.py @@ -90,7 +90,9 @@ def collect( ( node.value if isinstance(node, (TestTemplate, Template)) - else node.keyword if isinstance(node, KeywordCall) else node.name + else node.keyword + if isinstance(node, KeywordCall) + else node.name ), cast( Token, diff --git a/packages/language_server/src/robotcode/language_server/robotframework/parts/completion.py b/packages/language_server/src/robotcode/language_server/robotframework/parts/completion.py index 3dff99bc..30705f76 100644 --- a/packages/language_server/src/robotcode/language_server/robotframework/parts/completion.py +++ b/packages/language_server/src/robotcode/language_server/robotframework/parts/completion.py @@ -1733,7 +1733,9 @@ def complete_import() -> Optional[List[CompletionItem]]: else ( CompletionItemKind.FILE if e.kind == CompleteResultKind.FILE - else CompletionItemKind.FOLDER if e.kind == CompleteResultKind.FOLDER else None + else CompletionItemKind.FOLDER + if e.kind == CompleteResultKind.FOLDER + else None ) ), detail=e.kind.value, @@ -1928,7 +1930,9 @@ def complete_ResourceImport( # noqa: N802 else ( CompletionItemKind.FILE if e.kind == CompleteResultKind.FILE - else CompletionItemKind.FOLDER if e.kind == CompleteResultKind.FOLDER else None + else CompletionItemKind.FOLDER + if e.kind == CompleteResultKind.FOLDER + else None ) ), detail=e.kind.value, @@ -2050,7 +2054,9 @@ def complete_import() -> Optional[List[CompletionItem]]: else ( CompletionItemKind.FILE if e.kind == CompleteResultKind.FILE - else CompletionItemKind.FOLDER if e.kind == CompleteResultKind.FOLDER else None + else CompletionItemKind.FOLDER + if e.kind == CompleteResultKind.FOLDER + else None ) ), detail=e.kind.value, diff --git a/packages/language_server/src/robotcode/language_server/robotframework/parts/hover.py b/packages/language_server/src/robotcode/language_server/robotframework/parts/hover.py index d0063b09..3d640ddb 100644 --- a/packages/language_server/src/robotcode/language_server/robotframework/parts/hover.py +++ b/packages/language_server/src/robotcode/language_server/robotframework/parts/hover.py @@ -166,14 +166,12 @@ def _hover_default(self, nodes: List[ast.AST], document: TextDocument, position: text = f"### {variable.type.value.title()} `{variable.name}`\n\n" if value: - text += "```python\n" text += f"value: {type(real_value).__name__} = {value}\n" text += "```\n" text += "\n" if text: - return Hover( contents=MarkupContent(kind=MarkupKind.MARKDOWN, value=text), range=highlight_range, diff --git a/packages/language_server/src/robotcode/language_server/robotframework/parts/semantic_tokens.py b/packages/language_server/src/robotcode/language_server/robotframework/parts/semantic_tokens.py index 2849e054..c8bf3029 100644 --- a/packages/language_server/src/robotcode/language_server/robotframework/parts/semantic_tokens.py +++ b/packages/language_server/src/robotcode/language_server/robotframework/parts/semantic_tokens.py @@ -354,7 +354,6 @@ def generate_sem_sub_tokens( length: Optional[int] = None, yield_arguments: bool = False, ) -> Iterator[SemTokenInfo]: - sem_info = self.mapping().get(token.type, None) if token.type is not None else None if sem_info is not None: sem_type, sem_mod = sem_info diff --git a/packages/plugin/src/robotcode/plugin/__init__.py b/packages/plugin/src/robotcode/plugin/__init__.py index f3ec1a46..d98b2bda 100644 --- a/packages/plugin/src/robotcode/plugin/__init__.py +++ b/packages/plugin/src/robotcode/plugin/__init__.py @@ -165,7 +165,9 @@ def print_data( text = tomli_w.dumps( as_dict(data, remove_defaults=remove_defaults) if dataclasses.is_dataclass(data) - else data if isinstance(data, dict) else {data: data} + else data + if isinstance(data, dict) + else {data: data} ) if text is None: diff --git a/packages/repl/src/robotcode/repl/console_interpreter.py b/packages/repl/src/robotcode/repl/console_interpreter.py index 0056e7a9..45b9a220 100644 --- a/packages/repl/src/robotcode/repl/console_interpreter.py +++ b/packages/repl/src/robotcode/repl/console_interpreter.py @@ -110,7 +110,7 @@ def log_message( if is_true(html): message = f"*HTML*{message}" - self.app.echo(f"{' '*self.indent}[ {level} ] {message}", file=sys.__stdout__ if std_err else sys.__stderr__) + self.app.echo(f"{' ' * self.indent}[ {level} ] {message}", file=sys.__stdout__ if std_err else sys.__stderr__) def message( self, message: str, level: str, html: Union[str, bool] = False, timestamp: Union[datetime, str, None] = None @@ -126,7 +126,8 @@ def start_keyword(self, data: "running.Keyword", result: "result.Keyword") -> No return self.app.echo( - f"{' '*self.indent}KEYWORD {result.libname}.{result.kwname} {' '.join(result.args)}", file=sys.__stdout__ + f"{' ' * self.indent}KEYWORD {result.libname}.{result.kwname} {' '.join(result.args)}", + file=sys.__stdout__, ) self.indent += 1 diff --git a/packages/robot/src/robotcode/robot/diagnostics/data_cache.py b/packages/robot/src/robotcode/robot/diagnostics/data_cache.py index c16a517c..bd7bc63d 100644 --- a/packages/robot/src/robotcode/robot/diagnostics/data_cache.py +++ b/packages/robot/src/robotcode/robot/diagnostics/data_cache.py @@ -40,7 +40,6 @@ def __init__(self, cache_dir: Path) -> None: class JsonDataCache(FileCacheDataBase): - def build_cache_data_filename(self, section: CacheSection, entry_name: str) -> Path: return self.cache_dir / section.value / (entry_name + ".json") diff --git a/packages/robot/src/robotcode/robot/diagnostics/imports_manager.py b/packages/robot/src/robotcode/robot/diagnostics/imports_manager.py index 8551b566..b19af102 100644 --- a/packages/robot/src/robotcode/robot/diagnostics/imports_manager.py +++ b/packages/robot/src/robotcode/robot/diagnostics/imports_manager.py @@ -226,7 +226,9 @@ def _update(self) -> None: source_or_origin = ( self._lib_doc.source if self._lib_doc.source is not None - else self._lib_doc.module_spec.origin if self._lib_doc.module_spec is not None else None + else self._lib_doc.module_spec.origin + if self._lib_doc.module_spec is not None + else None ) # we are a module, so add the module path into file watchers @@ -1226,8 +1228,7 @@ def _get_library_libdoc( saved_meta = self.data_cache.read_cache_data(CacheSection.LIBRARY, meta_file, LibraryMetaData) if saved_meta.has_errors: self._logger.debug( - lambda: f"Saved library spec for {name}{args!r} is not used " - "due to errors in meta data", + lambda: f"Saved library spec for {name}{args!r} is not used due to errors in meta data", context_name="import", ) diff --git a/packages/robot/src/robotcode/robot/diagnostics/library_doc.py b/packages/robot/src/robotcode/robot/diagnostics/library_doc.py index 98782977..3eb6ec76 100644 --- a/packages/robot/src/robotcode/robot/diagnostics/library_doc.py +++ b/packages/robot/src/robotcode/robot/diagnostics/library_doc.py @@ -1797,7 +1797,9 @@ def get_library_doc( source=( source or module_spec.origin if module_spec is not None and module_spec.origin - else import_name if is_library_by_path(import_name) else None + else import_name + if is_library_by_path(import_name) + else None ), module_spec=module_spec, errors=[ @@ -1806,7 +1808,9 @@ def get_library_doc( ( source or module_spec.origin if module_spec is not None and module_spec.origin - else import_name if is_library_by_path(import_name) else None + else import_name + if is_library_by_path(import_name) + else None ), ( 1 @@ -2402,7 +2406,9 @@ def _get_initial_handler(self, library: Any, name: Any, method: Any) -> Any: ( source or module_spec.origin if module_spec is not None and module_spec.origin - else import_name if is_variables_by_path(import_name) else None + else import_name + if is_variables_by_path(import_name) + else None ), ( 1 @@ -2426,7 +2432,9 @@ def _get_initial_handler(self, library: Any, name: Any, method: Any) -> Any: ( source or module_spec.origin if module_spec is not None and module_spec.origin - else import_name if is_variables_by_path(import_name) else None + else import_name + if is_variables_by_path(import_name) + else None ), 1 if source is not None or (module_spec is not None and module_spec.origin is not None) else None, ) diff --git a/packages/robot/src/robotcode/robot/diagnostics/namespace.py b/packages/robot/src/robotcode/robot/diagnostics/namespace.py index 6b1aabdc..ce88d1ba 100644 --- a/packages/robot/src/robotcode/robot/diagnostics/namespace.py +++ b/packages/robot/src/robotcode/robot/diagnostics/namespace.py @@ -582,12 +582,16 @@ def visit_LibraryImport(self, node: RobotLibraryImport) -> None: # noqa: N802 end_line_no=( last_data_token.lineno if last_data_token is not None - else node.end_lineno if node.end_lineno is not None else -1 + else node.end_lineno + if node.end_lineno is not None + else -1 ), end_col_offset=( last_data_token.end_col_offset if last_data_token is not None - else node.end_col_offset if node.end_col_offset is not None else -1 + else node.end_col_offset + if node.end_col_offset is not None + else -1 ), source=self.source, ) @@ -607,12 +611,16 @@ def visit_ResourceImport(self, node: RobotResourceImport) -> None: # noqa: N802 end_line_no=( last_data_token.lineno if last_data_token is not None - else node.end_lineno if node.end_lineno is not None else -1 + else node.end_lineno + if node.end_lineno is not None + else -1 ), end_col_offset=( last_data_token.end_col_offset if last_data_token is not None - else node.end_col_offset if node.end_col_offset is not None else -1 + else node.end_col_offset + if node.end_col_offset is not None + else -1 ), source=self.source, ) @@ -633,12 +641,16 @@ def visit_VariablesImport(self, node: RobotVariablesImport) -> None: # noqa: N8 end_line_no=( last_data_token.lineno if last_data_token is not None - else node.end_lineno if node.end_lineno is not None else -1 + else node.end_lineno + if node.end_lineno is not None + else -1 ), end_col_offset=( last_data_token.end_col_offset if last_data_token is not None - else node.end_col_offset if node.end_col_offset is not None else -1 + else node.end_col_offset + if node.end_col_offset is not None + else -1 ), source=self.source, ) diff --git a/packages/robot/src/robotcode/robot/diagnostics/namespace_analyzer.py b/packages/robot/src/robotcode/robot/diagnostics/namespace_analyzer.py index 85c262a1..c68a65d3 100644 --- a/packages/robot/src/robotcode/robot/diagnostics/namespace_analyzer.py +++ b/packages/robot/src/robotcode/robot/diagnostics/namespace_analyzer.py @@ -676,7 +676,9 @@ def _analyze_keyword_call( Uri.from_path( err.source if err.source is not None - else result.source if result.source is not None else "/" + else result.source + if result.source is not None + else "/" ) ), range=Range( @@ -1643,7 +1645,9 @@ def _find_variable(self, name: str) -> Optional[VariableDefinition]: vars = ( self._block_variables if self._block_variables and self._in_block_setting - else self._suite_variables if self._in_setting else self._variables + else self._suite_variables + if self._in_setting + else self._variables ) try: diff --git a/packages/robot/src/robotcode/robot/utils/markdownformatter.py b/packages/robot/src/robotcode/robot/utils/markdownformatter.py index efb2d3de..80022822 100644 --- a/packages/robot/src/robotcode/robot/utils/markdownformatter.py +++ b/packages/robot/src/robotcode/robot/utils/markdownformatter.py @@ -333,14 +333,14 @@ def _format_table(self, rows: List[List[str]]) -> str: for row in header_rows or [[]]: row += [""] * (max_columns - len(row)) - table.append(f'|{"|".join(self._format_cell(cell) for cell in row)}|') + table.append(f"|{'|'.join(self._format_cell(cell) for cell in row)}|") row_ = [" :--- "] * max_columns - table.append(f'|{"|".join(row_)}|') + table.append(f"|{'|'.join(row_)}|") for row in body_rows: row += [""] * (max_columns - len(row)) - table.append(f'|{"|".join(self._format_cell(cell) for cell in row)}|') + table.append(f"|{'|'.join(self._format_cell(cell) for cell in row)}|") return "\n".join(table) + "\n\n" diff --git a/packages/runner/src/robotcode/runner/cli/discover/discover.py b/packages/runner/src/robotcode/runner/cli/discover/discover.py index d3c9d870..2eb4be81 100644 --- a/packages/runner/src/robotcode/runner/cli/discover/discover.py +++ b/packages/runner/src/robotcode/runner/cli/discover/discover.py @@ -490,7 +490,9 @@ def handle_options( ( [*(app.config.default_paths if app.config.default_paths else ())] if profile.paths is None - else profile.paths if isinstance(profile.paths, list) else [profile.paths] + else profile.paths + if isinstance(profile.paths, list) + else [profile.paths] ), app.config.dry, root_folder, @@ -641,7 +643,7 @@ def print(item: TestItem, indent: int = 0) -> Iterable[str]: ) if show_tags and item.tags: yield click.style(" Tags:", bold=True, fg="yellow") - yield f" {', '. join(normalize(str(tag), ignore='_') for tag in sorted(item.tags))}{os.linesep}" + yield f" {', '.join(normalize(str(tag), ignore='_') for tag in sorted(item.tags))}{os.linesep}" else: yield click.style(f"{item.type.capitalize()}: ", fg="green") yield click.style(item.longname, bold=True) @@ -683,7 +685,7 @@ def print(items: List[TestItem]) -> Iterable[str]: ) if show_tags and item.tags: yield click.style(" Tags:", bold=True, fg="yellow") - yield f" {', '. join(normalize(str(tag), ignore='_') for tag in sorted(item.tags))}{os.linesep}" + yield f" {', '.join(normalize(str(tag), ignore='_') for tag in sorted(item.tags))}{os.linesep}" if collector.test_and_tasks: app.echo_via_pager(print(collector.test_and_tasks)) @@ -1047,7 +1049,9 @@ def files(app: Application, full_paths: bool, paths: Iterable[Path]) -> None: ( [*(app.config.default_paths if app.config.default_paths else ())] if profile.paths is None - else profile.paths if isinstance(profile.paths, list) else [profile.paths] + else profile.paths + if isinstance(profile.paths, list) + else [profile.paths] ) if not paths else [str(p) for p in paths] diff --git a/packages/runner/src/robotcode/runner/cli/libdoc.py b/packages/runner/src/robotcode/runner/cli/libdoc.py index f2a718de..e1fdc8db 100644 --- a/packages/runner/src/robotcode/runner/cli/libdoc.py +++ b/packages/runner/src/robotcode/runner/cli/libdoc.py @@ -26,7 +26,7 @@ def parse_arguments(self, cli_args: Any) -> Any: raise Information( "Dry run, not executing any commands. " f"Would execute libdoc with the following options and arguments:\n" - f'{line_end.join((*(f"{k} = {v!r}" for k, v in options.items()), *arguments))}' + f"{line_end.join((*(f'{k} = {v!r}' for k, v in options.items()), *arguments))}" ) return options, arguments diff --git a/packages/runner/src/robotcode/runner/cli/rebot.py b/packages/runner/src/robotcode/runner/cli/rebot.py index fd79c9d5..11a5ba1f 100644 --- a/packages/runner/src/robotcode/runner/cli/rebot.py +++ b/packages/runner/src/robotcode/runner/cli/rebot.py @@ -28,7 +28,7 @@ def parse_arguments(self, cli_args: Any) -> Any: raise Information( "Dry run, not executing any commands. " f"Would execute libdoc with the following options and arguments:\n" - f'{line_end.join((*(f"{k} = {v!r}" for k, v in options.items()), *arguments))}' + f"{line_end.join((*(f'{k} = {v!r}' for k, v in options.items()), *arguments))}" ) return options, arguments diff --git a/packages/runner/src/robotcode/runner/cli/robot.py b/packages/runner/src/robotcode/runner/cli/robot.py index caa7ce91..29d24785 100644 --- a/packages/runner/src/robotcode/runner/cli/robot.py +++ b/packages/runner/src/robotcode/runner/cli/robot.py @@ -188,7 +188,7 @@ def parse_arguments(self, cli_args: Any) -> Any: raise Information( "Dry run, not executing any commands. " f"Would execute robot with the following options and arguments:\n" - f'{line_end.join((*(f"{k} = {v!r}" for k, v in options.items()), *arguments))}' + f"{line_end.join((*(f'{k} = {v!r}' for k, v in options.items()), *arguments))}" ) modifiers = [] @@ -333,7 +333,9 @@ def robot( ( [*(app.config.default_paths if app.config.default_paths else ())] if profile.paths is None - else profile.paths if isinstance(profile.paths, list) else [profile.paths] + else profile.paths + if isinstance(profile.paths, list) + else [profile.paths] ), app.config.dry, root_folder, diff --git a/packages/runner/src/robotcode/runner/cli/testdoc.py b/packages/runner/src/robotcode/runner/cli/testdoc.py index 1f4c8e7f..4d364645 100644 --- a/packages/runner/src/robotcode/runner/cli/testdoc.py +++ b/packages/runner/src/robotcode/runner/cli/testdoc.py @@ -26,7 +26,7 @@ def parse_arguments(self, cli_args: Any) -> Any: raise Information( "Dry run, not executing any commands. " f"Would execute testdoc with the followingoptions and arguments:\n" - f'{line_end.join((*(f"{k} = {v!r}" for k, v in options.items()), *arguments))}' + f"{line_end.join((*(f'{k} = {v!r}' for k, v in options.items()), *arguments))}" ) return options, arguments diff --git a/pyproject.toml b/pyproject.toml index 0cd120cc..73f62b53 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -128,18 +128,6 @@ upload_to_release = false upload_to_repository = false build_command = "pip install hatch && hatch build" -[tool.black] -line-length = 120 -target-version = ['py38'] -extend-exclude = ''' -( - /( - | bundled/libs - )/ -) -''' - - [tool.pytest.ini_options] minversion = "6.0" addopts = "-ra -vv -rf --ignore=bundled --ignore=.hatch" diff --git a/scripts/create_cmdline_doc.py b/scripts/create_cmdline_doc.py index 38bf3f41..ffa27bc3 100644 --- a/scripts/create_cmdline_doc.py +++ b/scripts/create_cmdline_doc.py @@ -26,7 +26,7 @@ def generate(command: click.Command, depth: int = 2, parent_ctx: Optional[click.Context] = None) -> Iterator[str]: ctx = click.Context(command, info_name=command.name, parent=parent_ctx, auto_envvar_prefix="ROBOTCODE") - yield f"#{'#'*depth} {ctx.command.name}" + yield f"#{'#' * depth} {ctx.command.name}" yield "" formatter = ctx.make_formatter() diff --git a/scripts/generate_rf_options.py b/scripts/generate_rf_options.py index 8330322f..6837e790 100644 --- a/scripts/generate_rf_options.py +++ b/scripts/generate_rf_options.py @@ -96,7 +96,7 @@ def generate( current_line = "" m = RE_LIST_MATCHER.match(line) if not in_examples and m: - line = f"**{m.group(1)}{':\\\\'+m.group(4) if m.group(4) else ''}:** {m.group(5)}" + line = f"**{m.group(1)}{':\\\\' + m.group(4) if m.group(4) else ''}:** {m.group(5)}" current_line += "\n\n" + line.strip() else: current_line += "\n" + line.strip() @@ -207,7 +207,7 @@ def build_class_fields(output: List[str], opts: Dict[str, Any], extend: bool = F ) output.append( f" {name}" - f': {get_type(name, internal_options[long_name]["default"], v, is_flag, extend)} = field(\n' + f": {get_type(name, internal_options[long_name]['default'], v, is_flag, extend)} = field(\n" f' description="""\\\n{create_desc(v, extend)}\n """,' ) if not extend: diff --git a/scripts/install_packages.py b/scripts/install_packages.py index c9b616fc..a81cce59 100644 --- a/scripts/install_packages.py +++ b/scripts/install_packages.py @@ -12,7 +12,7 @@ def main() -> None: if uv_path: uv_path = f'"{uv_path}"' - installer_command = f"{uv_path+' ' if uv_path else ''}pip {'' if uv_path else '--disable-pip-version-check'}" + installer_command = f"{uv_path + ' ' if uv_path else ''}pip {'' if uv_path else '--disable-pip-version-check'}" run( f"{installer_command} install -U -r ./bundled_requirements.txt", diff --git a/scripts/tools.py b/scripts/tools.py index 1f12c7d6..9f7df78c 100644 --- a/scripts/tools.py +++ b/scripts/tools.py @@ -15,7 +15,6 @@ class GitDescribeVersion(NamedTuple): def determine_version_bump(repo_path="."): try: - repo = Repo(repo_path) if repo.bare: raise ValueError("Not a valid Git repository.") diff --git a/src/robotcode/cli/commands/config.py b/src/robotcode/cli/commands/config.py index b21d5591..da724b0b 100644 --- a/src/robotcode/cli/commands/config.py +++ b/src/robotcode/cli/commands/config.py @@ -149,7 +149,7 @@ def files(app: Application, paths: List[Path], user: bool = False) -> None: if app.config.output_format is None or app.config.output_format == OutputFormat.TEXT: for entry in result["files"]: - app.echo(f'{entry["path"]} ({entry["type"].value})') + app.echo(f"{entry['path']} ({entry['type'].value})") else: app.print_data(result) @@ -242,7 +242,7 @@ def _get_config_fields_for_type( } args = get_args(field.type) - p = f"{prefix}{'' if prefix[-1]=='.' else '.'}" if prefix else "" + p = f"{prefix}{'' if prefix[-1] == '.' else '.'}" if prefix else "" for a in args: origin = get_origin(a) if origin is None and issubclass(a, BaseOptions): diff --git a/src/robotcode/cli/commands/profiles.py b/src/robotcode/cli/commands/profiles.py index 21aa6c02..516b8a84 100644 --- a/src/robotcode/cli/commands/profiles.py +++ b/src/robotcode/cli/commands/profiles.py @@ -141,8 +141,8 @@ def list(app: Application, paths: List[Path], show_hidden: bool = False, sort_by *(len(profile["description"]) for profile in result["profiles"]), ) output += ( - f'| Active | Selected | Enabled | Precedence | Name{(max_name - len("Name")) * " "} ' - f'| Description{(max_description - len("Description")) * " "} |\n' + f"| Active | Selected | Enabled | Precedence | Name{(max_name - len('Name')) * ' '} " + f"| Description{(max_description - len('Description')) * ' '} |\n" ) output += f"|:------:|:------:|:--------:|:-------:|:{max_name * '-'}-|:{max_description * '-'}-|\n" for selected_profiles, enabled, name, description, precedence in ( @@ -150,12 +150,12 @@ def list(app: Application, paths: List[Path], show_hidden: bool = False, sort_by for v in result["profiles"] ): output += ( - f'| {"*" if selected_profiles and enabled else " "} ' - f'| {"*" if selected_profiles else " "} ' - f'| {"*" if enabled else " "} ' - f'| {precedence if precedence else " "} ' - f'| {name}{(max_name - len(name)) * " "} ' - f'| {description if description else ""}{(max_description - len(description)) * " "} |\n' + f"| {'*' if selected_profiles and enabled else ' '} " + f"| {'*' if selected_profiles else ' '} " + f"| {'*' if enabled else ' '} " + f"| {precedence if precedence else ' '} " + f"| {name}{(max_name - len(name)) * ' '} " + f"| {description if description else ''}{(max_description - len(description)) * ' '} |\n" ) else: output += "No profiles defined.\n" From 0987f551803f23e2c8342638d2b3bb1e23cc99da Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Wed, 26 Mar 2025 11:03:11 +0100 Subject: [PATCH 22/35] feat(vscode): use short CLI argument versions when calling robotcode --- docs/03_reference/config.md | 8 +- .../robotcode4ij/RobotCodeHelpers.kt | 32 ++--- .../execution/RobotCodeRunProfileState.kt | 92 +++++++-------- .../testing/RobotCodeTestManager.kt | 110 +++++++++--------- .../src/robotcode/debugger/launcher/server.py | 4 +- .../runner/src/robotcode/runner/cli/robot.py | 2 + vscode-client/extension/debugmanager.ts | 10 +- .../extension/testcontrollermanager.ts | 6 +- 8 files changed, 133 insertions(+), 131 deletions(-) diff --git a/docs/03_reference/config.md b/docs/03_reference/config.md index 762f3f61..9c11a6d2 100644 --- a/docs/03_reference/config.md +++ b/docs/03_reference/config.md @@ -2630,7 +2630,7 @@ exit_code_mask = "error|warn" ## tool.robotcode-analyze.code.exit-code-mask -Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint']] | None` +Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint', 'all']] | None` Specifies the exit code mask for the code analysis. This is useful if you want to ignore certain types of diagnostics in the result code. @@ -2643,7 +2643,7 @@ exit_code_mask = ["error", "warn"] ## tool.robotcode-analyze.code.extend-exit-code-mask -Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint']] | None` +Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint', 'all']] | None` Extend the exit code mask setting. @@ -2741,7 +2741,7 @@ Extend the code analysis configuration. ## tool.robotcode-analyze.extend-code.exit-code-mask -Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint']] | None` +Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint', 'all']] | None` Specifies the exit code mask for the code analysis. This is useful if you want to ignore certain types of diagnostics in the result code. @@ -2754,7 +2754,7 @@ exit_code_mask = ["error", "warn"] ## tool.robotcode-analyze.extend-code.extend-exit-code-mask -Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint']] | None` +Type: `list[Literal['error', 'warn', 'warning', 'info', 'information', 'hint', 'all']] | None` Extend the exit code mask setting. diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/RobotCodeHelpers.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/RobotCodeHelpers.kt index 84f9a9a9..d7687c49 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/RobotCodeHelpers.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/RobotCodeHelpers.kt @@ -22,7 +22,7 @@ class RobotCodeHelpers { val toolPath: Path = bundledPath.resolve("tool") val robotCodePath: Path = toolPath.resolve("robotcode") val checkRobotVersion: Path = toolPath.resolve("utils").resolve("check_robot_version.py") - + val PYTHON_AND_ROBOT_OK_KEY = Key.create("ROBOTCODE_PYTHON_AND_ROBOT_OK") } } @@ -38,28 +38,28 @@ fun Project.checkPythonAndRobotVersion(reset: Boolean = false): Boolean { if (!reset && this.getUserData(RobotCodeHelpers.PYTHON_AND_ROBOT_OK_KEY) == true) { return true } - + val result = ApplicationManager.getApplication().executeOnPooledThread { - + val pythonInterpreter = this.robotPythonSdk?.homePath - + if (pythonInterpreter == null) { thisLogger().info("No Python Interpreter defined for project '${this.name}'") return@executeOnPooledThread false } - + if (!Path(pythonInterpreter).exists()) { thisLogger().warn("Python Interpreter $pythonInterpreter not exists") return@executeOnPooledThread false } - + if (!Path(pythonInterpreter).isRegularFile()) { thisLogger().warn("Python Interpreter $pythonInterpreter is not a regular file") return@executeOnPooledThread false } - + thisLogger().info("Use Python Interpreter $pythonInterpreter for project '${this.name}'") - + val res = ExecUtil.execAndGetOutput( GeneralCommandLine( pythonInterpreter, "-u", "-c", "import sys; print(sys.version_info[:2]>=(3,8))" @@ -69,7 +69,7 @@ fun Project.checkPythonAndRobotVersion(reset: Boolean = false): Boolean { thisLogger().warn("Invalid python version") return@executeOnPooledThread false } - + val res1 = ExecUtil.execAndGetOutput( GeneralCommandLine(pythonInterpreter, "-u", RobotCodeHelpers.checkRobotVersion.pathString), timeoutInMilliseconds = 5000 @@ -78,13 +78,13 @@ fun Project.checkPythonAndRobotVersion(reset: Boolean = false): Boolean { thisLogger().warn("Invalid Robot Framework version") return@executeOnPooledThread false } - + return@executeOnPooledThread true - + }.get() - + this.putUserData(RobotCodeHelpers.PYTHON_AND_ROBOT_OK_KEY, result) - + return result } @@ -100,7 +100,7 @@ fun Project.buildRobotCodeCommandLine( if (!this.checkPythonAndRobotVersion()) { throw IllegalArgumentException("PythonSDK is not defined or robot version is not valid for project ${this.name}") } - + val pythonInterpreter = this.robotPythonSdk?.homePath val commandLine = GeneralCommandLine( pythonInterpreter, @@ -111,10 +111,10 @@ fun Project.buildRobotCodeCommandLine( *(if (format.isNotEmpty()) arrayOf("--format", format) else arrayOf()), *(if (noColor) arrayOf("--no-color") else arrayOf()), *(if (noPager) arrayOf("--no-pager") else arrayOf()), - *profiles.flatMap { listOf("--profile", it) }.toTypedArray(), + *profiles.flatMap { listOf("-p", it) }.toTypedArray(), *extraArgs, *args ).withWorkDirectory(this.basePath).withCharset(Charsets.UTF_8) - + return commandLine } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/execution/RobotCodeRunProfileState.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/execution/RobotCodeRunProfileState.kt index 51e5b1e1..31fafbfd 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/execution/RobotCodeRunProfileState.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/execution/RobotCodeRunProfileState.kt @@ -46,56 +46,56 @@ import kotlin.uuid.Uuid class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, environment: ExecutionEnvironment) : CommandLineState(environment), ProcessListener { - + companion object { const val DEBUGGER_DEFAULT_PORT = 6612 val DEBUG_PORT: Key = Key.create("ROBOTCODE_DEBUG_PORT") const val TESTFRAMEWORK_NAME = "RobotCode" } - + val debugClient = RobotCodeDebugProtocolClient() lateinit var debugServer: IDebugProtocolServer var isInitialized = false private set var isConfigurationDone = false private set - + val afterInitialize = Signal() val afterConfigurationDone = Signal() - - + + init { debugClient.onTerminated.adviseEternal { if (socket.isConnected) socket.close() } } - + private lateinit var socket: Socket - + override fun startProcess(): ProcessHandler { val project = environment.project val profile = environment.runProfile as? RobotCodeRunConfiguration ?: throw CantRunException("Invalid run configuration") - + // TODO: Add support for configurable paths - val defaultPaths = arrayOf("--default-path", ".") - + val defaultPaths = arrayOf("-dp", ".") + val debug = environment.runner is RobotCodeDebugProgramRunner - + val included = mutableListOf() for (test in profile.includedTestItems) { - included.add("--by-longname") + included.add("--bl") included.add(test.longname) } - + val connection = mutableListOf() - + val port = findFreePort(DEBUGGER_DEFAULT_PORT) if (port != DEBUGGER_DEFAULT_PORT) { included.add("--tcp") included.add(port.toString()) } - + val commandLine = project.buildRobotCodeCommandLine( arrayOf( *defaultPaths, @@ -104,30 +104,30 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en *(if (!debug) arrayOf("--no-debug") else arrayOf()), *(included.toTypedArray()) ), noColor = false // ,extraArgs = arrayOf("-v", "--log", "--log-level", "TRACE") - + ) - + val handler = KillableColoredProcessHandler(commandLine) // handler.setHasPty(true) handler.putUserData(DEBUG_PORT, port) ProcessTerminatedListener.attach(handler) handler.addProcessListener(this) - + // RunContentManager.getInstance(project).showRunContent(environment.executor, handler) - + return handler } - + override fun execute(executor: Executor, runner: ProgramRunner<*>): ExecutionResult { val processHandler = startProcess() val (console, properties) = createAndAttachConsoleInEDT(processHandler, executor) - + val result = DefaultExecutionResult(console, processHandler, *createActions(console, processHandler)) result.setRestartActions(properties.createRerunFailedTestsAction(console)) - + return result } - - + + private fun createAndAttachConsoleInEDT( processHandler: ProcessHandler, executor: Executor ): Pair { @@ -136,12 +136,12 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en ApplicationManager.getApplication().invokeAndWait { try { val propertiesProvider = config as SMRunnerConsolePropertiesProvider - + val consoleProperties = propertiesProvider.createTestConsoleProperties(executor) if (consoleProperties is RobotRunnerConsoleProperties) { consoleProperties.state = this } - + var splitterPropertyName = SMTestRunnerConnectionUtil.getSplitterPropertyName(TESTFRAMEWORK_NAME) var consoleView = RobotCodeRunnerConsoleView(consoleProperties, splitterPropertyName) SMTestRunnerConnectionUtil.initConsoleView(consoleView, TESTFRAMEWORK_NAME) @@ -149,21 +149,21 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en consoleRef.set(consoleView) // consoleRef.set(createAndAttachConsole("RobotCode", processHandler, consoleProperties)) propertiesRef.set(consoleProperties) - + } catch (e: ExecutionException) { consoleRef.set(e) } catch (e: RuntimeException) { consoleRef.set(e) } } - + if (consoleRef.get() is ExecutionException) { throw consoleRef.get() as ExecutionException } else if (consoleRef.get() is RuntimeException) throw consoleRef.get() as RuntimeException - + return Pair(consoleRef.get() as BaseTestsOutputConsoleView, propertiesRef.get() as SMTRunnerConsoleProperties) } - + private suspend fun tryConnectToServerWithTimeout( host: String, port: Int, timeoutMillis: Long, retryIntervalMillis: Long ): Socket? { @@ -180,7 +180,7 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en } catch (_: Exception) { } delay(retryIntervalMillis) - + } socket } @@ -188,54 +188,54 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en null } } - + @OptIn(ExperimentalUuidApi::class) override fun startNotified(event: ProcessEvent) { runBlocking(Dispatchers.IO) { - + var port = event.processHandler.getUserData(DEBUG_PORT) ?: throw CantRunException("No debug port found.") - + socket = tryConnectToServerWithTimeout("127.0.0.1", port, 10000, retryIntervalMillis = 100) ?: throw CantRunException("Unable to establish connection to debug server.") - + val launcher: Launcher = DSPLauncher.createClientLauncher(debugClient, socket.getInputStream(), socket.getOutputStream()) - + launcher.startListening() - + debugServer = launcher.remoteProxy - + val arguments = InitializeRequestArguments().apply { clientID = Uuid.random().toString() adapterID = Uuid.random().toString() - + clientName = "RobotCode4IJ" locale = "en_US" - + supportsRunInTerminalRequest = false supportsStartDebuggingRequest = false pathFormat = "path" supportsVariableType = true supportsVariablePaging = false - + linesStartAt1 = true columnsStartAt1 = true } - + val response = debugServer.initialize(arguments).await() isInitialized = true - + afterInitialize.fire(Unit) - + if (response.supportsConfigurationDoneRequest) { debugServer.configurationDone(ConfigurationDoneArguments()).await() isConfigurationDone = true } - + afterConfigurationDone.fire(Unit) debugServer.attach(emptyMap()) } } - + override fun processTerminated(event: ProcessEvent) { if (socket.isConnected) socket.close() } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/testing/RobotCodeTestManager.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/testing/RobotCodeTestManager.kt index 1a07c253..5b32d2f1 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/testing/RobotCodeTestManager.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/testing/RobotCodeTestManager.kt @@ -48,23 +48,23 @@ import java.util.* companion object { private const val DEBOUNCE_DELAY = 1000L } - + private val refreshJobs = WeakHashMap() private var refreshJob: Job? = null - + var testItems: Array = arrayOf() private set - + init { EditorFactory.getInstance().eventMulticaster.addDocumentListener(this, this) VirtualFileManager.getInstance().addAsyncFileListener(this, this) project.messageBus.connect().subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, this) } - + override fun dispose() { EditorFactory.getInstance().eventMulticaster.removeDocumentListener(this) } - + override fun documentChanged(event: DocumentEvent) { super.documentChanged(event) FileDocumentManager.getInstance().getFile(event.document)?.let { file -> @@ -78,11 +78,11 @@ import java.util.* } } } - + } } } - + override fun prepareChange(events: List): AsyncFileListener.ChangeApplier? { return object : AsyncFileListener.ChangeApplier { override fun afterVfsChange() { @@ -95,36 +95,36 @@ import java.util.* } else { refreshDebounced() } - + } } } } } } - + override fun fileOpened(source: FileEditorManager, file: VirtualFile) { if (file.fileType == RobotSuiteFileType) { refreshDebounced(file) } } - + override fun fileClosed(source: FileEditorManager, file: VirtualFile) { if (file.fileType == RobotSuiteFileType) { refreshDebounced(file) } } - + @OptIn(ExperimentalCoroutinesApi::class) private val refreshScope = CoroutineScope(Dispatchers.IO.limitedParallelism(1)) - + fun refreshDebounced(file: VirtualFile) { if (!project.isOpen || project.isDisposed) { return } - + val job = refreshJobs[file] - + if (job != null) { thisLogger().info("Cancelling previous refresh job") job.cancel() @@ -139,36 +139,36 @@ import java.util.* refreshJobs.remove(file) } } - + fun refreshDebounced() { if (!project.isOpen || project.isDisposed) { return } - + refreshJobs.values.forEach { it.cancel() } refreshJob?.cancel() - + refreshJob = refreshScope.launch { delay(DEBOUNCE_DELAY) refresh() refreshJob = null } } - + fun refresh(uri: String) { if (!project.isOpen || project.isDisposed) { return } - + thisLogger().info("Refreshing test items for $uri") try { val testItem = findTestItem(uri) ?: return - + testItem.children = ApplicationManager.getApplication().executeOnPooledThread { - + // TODO: Add support for configurable paths - val defaultPaths = arrayOf("--default-path", ".") - + val defaultPaths = arrayOf("-dp", ".") + val cmdLine = project.buildRobotCodeCommandLine( arrayOf( *defaultPaths, @@ -183,9 +183,9 @@ import java.util.* escapeRobotGlob(testItem.longname) ), format = "json" ).withCharset(Charsets.UTF_8).withWorkDirectory(project.basePath) - + var openFiles = mutableMapOf() - + ApplicationManager.getApplication().runReadAction { FileEditorManagerEx.getInstanceEx(project).openFiles.forEach { file -> if (file.uri == uri) { @@ -195,9 +195,9 @@ import java.util.* } } } - + var openFilesAsString = Json.encodeToString(openFiles) - + val result = CapturingProcessHandler(cmdLine).apply { process.outputStream.bufferedWriter().apply { write(openFilesAsString) @@ -205,7 +205,7 @@ import java.util.* close() } }.runProcess() - + if (result.exitCode != 0) { throw RuntimeException("Failed to discover test items for $uri: ${result.stderr}") } @@ -214,24 +214,24 @@ import java.util.* } catch (e: Exception) { thisLogger().warn("Failed to discover test items", e) } - + DaemonCodeAnalyzer.getInstance(project).restart() } - + fun refresh() { thisLogger().info("Refreshing test items") try { testItems = ApplicationManager.getApplication().executeOnPooledThread { - + // TODO: Add support for configurable paths - val defaultPaths = arrayOf("--default-path", ".") - + val defaultPaths = arrayOf("-dp", ".") + val cmdLine = project.buildRobotCodeCommandLine( arrayOf(*defaultPaths, "discover", "--read-from-stdin", "all"), format = "json" ).withCharset(Charsets.UTF_8).withWorkDirectory(project.basePath) - + val openFiles = mutableMapOf() - + ApplicationManager.getApplication().runReadAction { FileEditorManagerEx.getInstanceEx(project).openFiles.forEach { file -> FileDocumentManager.getInstance().getDocument(file)?.let { document -> @@ -239,9 +239,9 @@ import java.util.* } } } - + val openFilesAsString = Json.encodeToString(openFiles) - + val result = CapturingProcessHandler(cmdLine).apply { process.outputStream.bufferedWriter().apply { write(openFilesAsString) @@ -249,7 +249,7 @@ import java.util.* close() } }.runProcess() - + if (result.exitCode != 0) { throw RuntimeException("Failed to discover test items: ${result.stderr}") } @@ -259,23 +259,23 @@ import java.util.* thisLogger().warn("Failed to discover test items", e) testItems = arrayOf() } - + DaemonCodeAnalyzer.getInstance(project).restart() } - + fun findTestItem( uri: String, line: UInt? = null, ): RobotCodeTestItem? { return findTestItem(testItems, uri, line) } - + fun findTestItem( root: RobotCodeTestItem, uri: String, line: UInt? = null, ): RobotCodeTestItem? { - + if (line == null) { if (root.isSameUri(uri)) { return root @@ -285,10 +285,10 @@ import java.util.* return root } } - + return findTestItem(root.children ?: arrayOf(), uri, line) } - + fun findTestItem( testItems: Array, uri: String, line: UInt? = null ): RobotCodeTestItem? { @@ -298,38 +298,38 @@ import java.util.* return found } } - + return null } - - + + fun findTestItem(element: PsiElement): RobotCodeTestItem? { val directory = element as? PsiDirectory if (directory != null) { return findTestItem(directory.virtualFile.uri) } - + val containingFile = element.containingFile ?: return null if (containingFile !is RobotSuiteFile) { return null } - + if (element is RobotSuiteFile) { return findTestItem(containingFile.virtualFile.uri) } - + if (element.elementType !is IRobotFrameworkElementType) { return null } - + val psiDocumentManager = PsiDocumentManager.getInstance(project) ?: return null val document = psiDocumentManager.getDocument(containingFile) ?: return null val lineNumber = document.getLineNumber(element.startOffset) if (lineNumber <= 0) return null // this is a suite file and this is already caught above - + val columnNumber = element.startOffset - document.getLineStartOffset(lineNumber) if (columnNumber != 0) return null - + val result = findTestItem(containingFile.virtualFile.uri, lineNumber.toUInt()) return result } @@ -337,13 +337,13 @@ import java.util.* private fun getRfcCompliantUri(virtualFile: VirtualFile): String { val filePath = virtualFile.path - + val normalizedPath = if (isWindows()) { filePath.replace("\\", "/") } else { filePath } - + return Paths.get(normalizedPath).toUri().toString().removeSuffix("/") } diff --git a/packages/debugger/src/robotcode/debugger/launcher/server.py b/packages/debugger/src/robotcode/debugger/launcher/server.py index caf6bc70..ea178a31 100644 --- a/packages/debugger/src/robotcode/debugger/launcher/server.py +++ b/packages/debugger/src/robotcode/debugger/launcher/server.py @@ -143,8 +143,8 @@ async def _launch( robotcode_run_args = [ python or sys.executable, *debugger_script, - *itertools.chain.from_iterable(["--profile", p] for p in profiles or []), - *itertools.chain.from_iterable(["--default-path", p] for p in paths or []), + *itertools.chain.from_iterable(["-p", p] for p in profiles or []), + *itertools.chain.from_iterable(["-dp", p] for p in paths or []), *(robotCodeArgs or []), "debug", ] diff --git a/packages/runner/src/robotcode/runner/cli/robot.py b/packages/runner/src/robotcode/runner/cli/robot.py index 29d24785..976a2631 100644 --- a/packages/runner/src/robotcode/runner/cli/robot.py +++ b/packages/runner/src/robotcode/runner/cli/robot.py @@ -224,12 +224,14 @@ def parse_arguments(self, cli_args: Any) -> Any: ROBOT_OPTIONS: Set[click.Command] = { click.option( "--by-longname", + "-bl", type=str, multiple=True, help="Select tests/tasks or suites by longname.", ), click.option( "--exclude-by-longname", + "-ebl", type=str, multiple=True, help="Excludes tests/tasks or suites by longname.", diff --git a/vscode-client/extension/debugmanager.ts b/vscode-client/extension/debugmanager.ts index 9ee5c02a..13f7bacf 100644 --- a/vscode-client/extension/debugmanager.ts +++ b/vscode-client/extension/debugmanager.ts @@ -495,31 +495,31 @@ export class DebugManager { if (needs_parse_include) { for (const s of rel_sources) { - args.push("--parse-include"); + args.push("-I"); args.push(escapeRobotGlobPatterns(s)); } } if (topLevelSuiteName) { - args.push("--name"); + args.push("-N"); args.push(topLevelSuiteName); } for (const s of suites) { - args.push("--suite"); + args.push("-s"); args.push(escapeRobotGlobPatterns(s)); } if (included.length > 0) { for (const s of included) { - args.push("--by-longname"); + args.push("-bl"); args.push(s); } } if (excluded.length > 0) { for (const s of excluded) { - args.push("--exclude-by-longname"); + args.push("-ebl"); args.push(s); } } diff --git a/vscode-client/extension/testcontrollermanager.ts b/vscode-client/extension/testcontrollermanager.ts index 263b3c7d..e304fdb6 100644 --- a/vscode-client/extension/testcontrollermanager.ts +++ b/vscode-client/extension/testcontrollermanager.ts @@ -428,7 +428,7 @@ export class TestControllerManager { return (await this.languageClientsManager.pythonManager.executeRobotCode( folder, - [...(paths?.length ? paths.flatMap((v) => ["--default-path", v]) : ["--default-path", "."]), "profiles", "list"], + [...(paths?.length ? paths.flatMap((v) => ["-dp", v]) : ["-dp", "."]), "profiles", "list"], profiles, "json", true, @@ -674,7 +674,7 @@ export class TestControllerManager { const result = (await this.languageClientsManager.pythonManager.executeRobotCode( folder, [ - ...(paths?.length ? paths.flatMap((v) => ["--default-path", v]) : ["--default-path", "."]), + ...(paths?.length ? paths.flatMap((v) => ["-dp", v]) : ["-dp", "."]), ...discoverArgs, ...mode_args, ...pythonPath.flatMap((v) => ["-P", v]), @@ -819,7 +819,7 @@ export class TestControllerManager { ["discover", "--read-from-stdin", "tests"], [ ...(robotWorkspaceItem?.needsParseInclude && testItem.relSource - ? ["--parse-include", escapeRobotGlobPatterns(testItem.relSource)] + ? ["-I", escapeRobotGlobPatterns(testItem.relSource)] : []), "--suite", escapeRobotGlobPatterns(testItem.longname), From d5f1972024278c3418425a4f64a6e92b21dcfd70 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Tue, 29 Apr 2025 00:45:45 +0200 Subject: [PATCH 23/35] chore: update packages --- docs/package.json | 10 +- package-lock.json | 502 +++++++++++++++++++++++----------------------- package.json | 26 +-- 3 files changed, 269 insertions(+), 269 deletions(-) diff --git a/docs/package.json b/docs/package.json index e52cfa7c..19c6bc85 100644 --- a/docs/package.json +++ b/docs/package.json @@ -8,15 +8,15 @@ "preview": "vitepress preview" }, "devDependencies": { - "esbuild": "^0.25.1", + "esbuild": "^0.25.3", "markdown-it-abbr": "^2.0.0", - "markdown-it-kbd": "^2.2.2", + "markdown-it-kbd": "^3.0.0", "markdown-it-mathjax3": "^4.3.2", "markdown-it-task-lists": "^2.1.1", - "typescript": "^5.8.2", - "typescript-eslint": "^8.26.1", + "typescript": "^5.8.3", + "typescript-eslint": "^8.31.1", "vitepress": "^1.6.3", - "vitepress-plugin-tabs": "^0.6.0", + "vitepress-plugin-tabs": "^0.7.0", "vitepress-sidebar": "^1.31.1" }, "dependencies": { diff --git a/package-lock.json b/package-lock.json index 4ba87ff0..78d2093e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,27 +22,27 @@ "vscode-languageclient": "^9.0.1" }, "devDependencies": { - "@eslint/compat": "^1.2.7", - "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "^9.22.0", + "@eslint/compat": "^1.2.8", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.25.1", "@jgoz/esbuild-plugin-typecheck": "^4.0.3", "@types/fs-extra": "^11.0.4", - "@types/node": "^22.13.10", + "@types/node": "^22.15.3", "@types/vscode": "^1.96.0", "@types/vscode-notebook-renderer": "^1.72.3", "@vscode/python-extension": "^1.0.5", - "@vscode/vsce": "^3.3.0", - "esbuild": "^0.25.1", - "eslint": "^9.22.0", - "eslint-config-prettier": "^10.1.1", - "eslint-plugin-prettier": "^5.2.3", + "@vscode/vsce": "^3.3.2", + "esbuild": "^0.25.3", + "eslint": "^9.25.1", + "eslint-config-prettier": "^10.1.2", + "eslint-plugin-prettier": "^5.2.6", "globals": "^16.0.0", - "ovsx": "^0.10.1", - "preact": "^10.26.4", + "ovsx": "^0.10.2", + "preact": "^10.26.5", "prettier": "^3.5.3", "ts-loader": "^9.5.2", - "typescript": "^5.8.2", - "typescript-eslint": "^8.26.1" + "typescript": "^5.8.3", + "typescript-eslint": "^8.31.1" }, "engines": { "vscode": "^1.96.0" @@ -53,15 +53,15 @@ "docs": "file:" }, "devDependencies": { - "esbuild": "^0.25.1", + "esbuild": "^0.25.3", "markdown-it-abbr": "^2.0.0", - "markdown-it-kbd": "^2.2.2", + "markdown-it-kbd": "^3.0.0", "markdown-it-mathjax3": "^4.3.2", "markdown-it-task-lists": "^2.1.1", - "typescript": "^5.8.2", - "typescript-eslint": "^8.26.1", + "typescript": "^5.8.3", + "typescript-eslint": "^8.31.1", "vitepress": "^1.6.3", - "vitepress-plugin-tabs": "^0.6.0", + "vitepress-plugin-tabs": "^0.7.0", "vitepress-sidebar": "^1.31.1" } }, @@ -580,9 +580,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", - "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", + "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", "cpu": [ "ppc64" ], @@ -597,9 +597,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", - "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", + "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", "cpu": [ "arm" ], @@ -614,9 +614,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", - "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", + "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", "cpu": [ "arm64" ], @@ -631,9 +631,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", - "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", + "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", "cpu": [ "x64" ], @@ -648,9 +648,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", - "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", + "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", "cpu": [ "arm64" ], @@ -665,9 +665,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", - "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", + "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", "cpu": [ "x64" ], @@ -682,9 +682,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", - "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", + "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", "cpu": [ "arm64" ], @@ -699,9 +699,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", - "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", + "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", "cpu": [ "x64" ], @@ -716,9 +716,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", - "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", + "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", "cpu": [ "arm" ], @@ -733,9 +733,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", - "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", + "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", "cpu": [ "arm64" ], @@ -750,9 +750,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", - "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", + "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", "cpu": [ "ia32" ], @@ -767,9 +767,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", - "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", + "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", "cpu": [ "loong64" ], @@ -784,9 +784,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", - "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", + "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", "cpu": [ "mips64el" ], @@ -801,9 +801,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", - "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", + "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", "cpu": [ "ppc64" ], @@ -818,9 +818,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", - "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", + "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", "cpu": [ "riscv64" ], @@ -835,9 +835,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", - "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", + "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", "cpu": [ "s390x" ], @@ -852,9 +852,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", - "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", + "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", "cpu": [ "x64" ], @@ -869,9 +869,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", - "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", + "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", "cpu": [ "arm64" ], @@ -886,9 +886,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", - "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", + "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", "cpu": [ "x64" ], @@ -903,9 +903,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", - "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", + "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", "cpu": [ "arm64" ], @@ -920,9 +920,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", - "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", + "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", "cpu": [ "x64" ], @@ -937,9 +937,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", - "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", + "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", "cpu": [ "x64" ], @@ -954,9 +954,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", - "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", + "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", "cpu": [ "arm64" ], @@ -971,9 +971,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", - "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", + "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", "cpu": [ "ia32" ], @@ -988,9 +988,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", - "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", + "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", "cpu": [ "x64" ], @@ -1047,9 +1047,9 @@ } }, "node_modules/@eslint/compat": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.7.tgz", - "integrity": "sha512-xvv7hJE32yhegJ8xNAnb62ggiAwTYHBpUCWhRxEj/ksvgDJuSXfoDkBcRYaYNFiJ+jH0IE3K16hd+xXzhBgNbg==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.8.tgz", + "integrity": "sha512-LqCYHdWL/QqKIJuZ/ucMAv8d4luKGs4oCPgpt8mWztQAtPrHfXKQ/XAUc8ljCHAfJCn6SvkpTcGt5Tsh8saowA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1065,9 +1065,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1080,9 +1080,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz", - "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz", + "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1090,9 +1090,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1103,9 +1103,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", - "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1140,9 +1140,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.22.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz", - "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==", + "version": "9.25.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.25.1.tgz", + "integrity": "sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==", "dev": true, "license": "MIT", "engines": { @@ -1160,13 +1160,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", - "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.12.0", + "@eslint/core": "^0.13.0", "levn": "^0.4.1" }, "engines": { @@ -1410,16 +1410,16 @@ } }, "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz", + "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==", "dev": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/pkgr" } }, "node_modules/@rollup/rollup-android-arm-eabi": { @@ -1880,13 +1880,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.13.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", - "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", + "version": "22.15.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.3.tgz", + "integrity": "sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~6.21.0" } }, "node_modules/@types/unist": { @@ -1918,17 +1918,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz", - "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz", + "integrity": "sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.26.1", - "@typescript-eslint/type-utils": "8.26.1", - "@typescript-eslint/utils": "8.26.1", - "@typescript-eslint/visitor-keys": "8.26.1", + "@typescript-eslint/scope-manager": "8.31.1", + "@typescript-eslint/type-utils": "8.31.1", + "@typescript-eslint/utils": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1948,16 +1948,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz", - "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.1.tgz", + "integrity": "sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.26.1", - "@typescript-eslint/types": "8.26.1", - "@typescript-eslint/typescript-estree": "8.26.1", - "@typescript-eslint/visitor-keys": "8.26.1", + "@typescript-eslint/scope-manager": "8.31.1", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/typescript-estree": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "debug": "^4.3.4" }, "engines": { @@ -1973,14 +1973,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz", - "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz", + "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.26.1", - "@typescript-eslint/visitor-keys": "8.26.1" + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1991,14 +1991,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz", - "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz", + "integrity": "sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.26.1", - "@typescript-eslint/utils": "8.26.1", + "@typescript-eslint/typescript-estree": "8.31.1", + "@typescript-eslint/utils": "8.31.1", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -2015,9 +2015,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz", - "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz", + "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==", "dev": true, "license": "MIT", "engines": { @@ -2029,14 +2029,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz", - "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz", + "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.26.1", - "@typescript-eslint/visitor-keys": "8.26.1", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/visitor-keys": "8.31.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -2082,16 +2082,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz", - "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.1.tgz", + "integrity": "sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.26.1", - "@typescript-eslint/types": "8.26.1", - "@typescript-eslint/typescript-estree": "8.26.1" + "@typescript-eslint/scope-manager": "8.31.1", + "@typescript-eslint/types": "8.31.1", + "@typescript-eslint/typescript-estree": "8.31.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2106,13 +2106,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.26.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz", - "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz", + "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/types": "8.31.1", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -2156,9 +2156,9 @@ } }, "node_modules/@vscode/vsce": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.3.0.tgz", - "integrity": "sha512-HA/pUyvh/TQWkc4wG7AudPIWUvsR8i4jiWZZgM/a69ncPi9Nm5FDogf/wVEk4EWJs4/UdxU7J6X18dfAwfPbxA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.3.2.tgz", + "integrity": "sha512-XQ4IhctYalSTMwLnMS8+nUaGbU7v99Qm2sOoGfIEf2QC7jpiLXZZMh7NwArEFsKX4gHTJLx0/GqAUlCdC3gKCw==", "dev": true, "license": "MIT", "dependencies": { @@ -3833,9 +3833,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", - "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", + "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -3846,31 +3846,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.1", - "@esbuild/android-arm": "0.25.1", - "@esbuild/android-arm64": "0.25.1", - "@esbuild/android-x64": "0.25.1", - "@esbuild/darwin-arm64": "0.25.1", - "@esbuild/darwin-x64": "0.25.1", - "@esbuild/freebsd-arm64": "0.25.1", - "@esbuild/freebsd-x64": "0.25.1", - "@esbuild/linux-arm": "0.25.1", - "@esbuild/linux-arm64": "0.25.1", - "@esbuild/linux-ia32": "0.25.1", - "@esbuild/linux-loong64": "0.25.1", - "@esbuild/linux-mips64el": "0.25.1", - "@esbuild/linux-ppc64": "0.25.1", - "@esbuild/linux-riscv64": "0.25.1", - "@esbuild/linux-s390x": "0.25.1", - "@esbuild/linux-x64": "0.25.1", - "@esbuild/netbsd-arm64": "0.25.1", - "@esbuild/netbsd-x64": "0.25.1", - "@esbuild/openbsd-arm64": "0.25.1", - "@esbuild/openbsd-x64": "0.25.1", - "@esbuild/sunos-x64": "0.25.1", - "@esbuild/win32-arm64": "0.25.1", - "@esbuild/win32-ia32": "0.25.1", - "@esbuild/win32-x64": "0.25.1" + "@esbuild/aix-ppc64": "0.25.3", + "@esbuild/android-arm": "0.25.3", + "@esbuild/android-arm64": "0.25.3", + "@esbuild/android-x64": "0.25.3", + "@esbuild/darwin-arm64": "0.25.3", + "@esbuild/darwin-x64": "0.25.3", + "@esbuild/freebsd-arm64": "0.25.3", + "@esbuild/freebsd-x64": "0.25.3", + "@esbuild/linux-arm": "0.25.3", + "@esbuild/linux-arm64": "0.25.3", + "@esbuild/linux-ia32": "0.25.3", + "@esbuild/linux-loong64": "0.25.3", + "@esbuild/linux-mips64el": "0.25.3", + "@esbuild/linux-ppc64": "0.25.3", + "@esbuild/linux-riscv64": "0.25.3", + "@esbuild/linux-s390x": "0.25.3", + "@esbuild/linux-x64": "0.25.3", + "@esbuild/netbsd-arm64": "0.25.3", + "@esbuild/netbsd-x64": "0.25.3", + "@esbuild/openbsd-arm64": "0.25.3", + "@esbuild/openbsd-x64": "0.25.3", + "@esbuild/sunos-x64": "0.25.3", + "@esbuild/win32-arm64": "0.25.3", + "@esbuild/win32-ia32": "0.25.3", + "@esbuild/win32-x64": "0.25.3" } }, "node_modules/escalade": { @@ -3908,20 +3908,20 @@ } }, "node_modules/eslint": { - "version": "9.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz", - "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==", + "version": "9.25.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.25.1.tgz", + "integrity": "sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.2", - "@eslint/config-helpers": "^0.1.0", - "@eslint/core": "^0.12.0", - "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "9.22.0", - "@eslint/plugin-kit": "^0.2.7", + "@eslint/config-array": "^0.20.0", + "@eslint/config-helpers": "^0.2.1", + "@eslint/core": "^0.13.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.25.1", + "@eslint/plugin-kit": "^0.2.8", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -3969,9 +3969,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", - "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.2.tgz", + "integrity": "sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==", "dev": true, "license": "MIT", "bin": { @@ -3982,14 +3982,14 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.3.tgz", - "integrity": "sha512-qJ+y0FfCp/mQYQ/vWQ3s7eUlFEL4PyKfAJxsnYTJ4YT73nsJBWqmEpFryxV9OeUiqmsTsYJ5Y+KDNaeP31wrRw==", + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz", + "integrity": "sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==", "dev": true, "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" + "synckit": "^0.11.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -4000,7 +4000,7 @@ "peerDependencies": { "@types/eslint": ">=8.0.0", "eslint": ">=8.0.0", - "eslint-config-prettier": "*", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", "prettier": ">=3.0.0" }, "peerDependenciesMeta": { @@ -5697,13 +5697,13 @@ "license": "MIT" }, "node_modules/markdown-it-kbd": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/markdown-it-kbd/-/markdown-it-kbd-2.2.2.tgz", - "integrity": "sha512-J5qVHtLuxh1HTJcl5xhopiFpf6fnHIBY0OO1akGHf2KW0VwQLYhsip/bkiTJFoEZqhssxQuUBY1LO5/SbCrB6g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-kbd/-/markdown-it-kbd-3.0.0.tgz", + "integrity": "sha512-r6XK2f8qKPycRX8pn4QShMlmBXElRHqurUV7T30/RIaMkyTTuKJWp/fijDoxiysian5HSExzmKDwIuFTR8+VRA==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=20.0.0" } }, "node_modules/markdown-it-mathjax3": { @@ -6223,9 +6223,9 @@ } }, "node_modules/ovsx": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/ovsx/-/ovsx-0.10.1.tgz", - "integrity": "sha512-8i7+MJMMeq73m1zPEIClSFe17SNuuzU5br7G77ZIfOC24elB4pGQs0N1qRd+gnnbyhL5Qu96G21nFOVOBa2OBg==", + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ovsx/-/ovsx-0.10.2.tgz", + "integrity": "sha512-osLwIOz5Uu1ePvYYSjKw05bkCZo2j/ydQLjm3uO7bCfstyFFzmWyzMGTAL3wJpI4qpo1S47Y52+q09h9A2ZRkQ==", "dev": true, "license": "EPL-2.0", "dependencies": { @@ -6492,9 +6492,9 @@ } }, "node_modules/preact": { - "version": "10.26.4", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.4.tgz", - "integrity": "sha512-KJhO7LBFTjP71d83trW+Ilnjbo+ySsaAgCfXOXUlmGzJ4ygYPWmysm77yg4emwfmoz3b22yvH5IsVFHbhUaH5w==", + "version": "10.26.5", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.5.tgz", + "integrity": "sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==", "dev": true, "license": "MIT", "funding": { @@ -7485,20 +7485,20 @@ } }, "node_modules/synckit": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", - "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz", + "integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" + "@pkgr/core": "^0.2.3", + "tslib": "^2.8.1" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/synckit" } }, "node_modules/tabbable": { @@ -7656,9 +7656,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", - "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", "dev": true, "license": "MIT", "engines": { @@ -7822,9 +7822,9 @@ } }, "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -7836,15 +7836,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.26.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.26.1.tgz", - "integrity": "sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==", + "version": "8.31.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.31.1.tgz", + "integrity": "sha512-j6DsEotD/fH39qKzXTQRwYYWlt7D+0HmfpOK+DVhwJOFLcdmn92hq3mBb7HlKJHbjjI/gTOqEcc9d6JfpFf/VA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.26.1", - "@typescript-eslint/parser": "8.26.1", - "@typescript-eslint/utils": "8.26.1" + "@typescript-eslint/eslint-plugin": "8.31.1", + "@typescript-eslint/parser": "8.31.1", + "@typescript-eslint/utils": "8.31.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7883,9 +7883,9 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "dev": true, "license": "MIT" }, @@ -8079,9 +8079,9 @@ } }, "node_modules/vite": { - "version": "5.4.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", - "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", + "version": "5.4.18", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.18.tgz", + "integrity": "sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==", "dev": true, "license": "MIT", "dependencies": { @@ -8611,14 +8611,14 @@ } }, "node_modules/vitepress-plugin-tabs": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/vitepress-plugin-tabs/-/vitepress-plugin-tabs-0.6.0.tgz", - "integrity": "sha512-35mQUbI6lcVrLj0PpwautXm8LiV6Gz5ZDlklVRf/0KDd6gGs8HaZztqOxdffnzCiKIFLURBx930xq28it9jQTg==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/vitepress-plugin-tabs/-/vitepress-plugin-tabs-0.7.0.tgz", + "integrity": "sha512-++RyeFNEsj/bJBXJK1IURRbJOB9vRqCahRwk1a2ntp9+SZy+7qgE5806vw9W7+uKR9CMi1iW+6plOcCKpmDnfA==", "dev": true, "license": "MIT", "peerDependencies": { "vitepress": "^1.0.0", - "vue": "^3.3.8" + "vue": "^3.5.0" } }, "node_modules/vitepress-sidebar": { diff --git a/package.json b/package.json index 93b7b394..4ea1b1ba 100644 --- a/package.json +++ b/package.json @@ -1934,27 +1934,27 @@ "vscode-languageclient": "^9.0.1" }, "devDependencies": { - "@eslint/compat": "^1.2.7", - "@eslint/eslintrc": "^3.3.0", - "@eslint/js": "^9.22.0", + "@eslint/compat": "^1.2.8", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.25.1", "@jgoz/esbuild-plugin-typecheck": "^4.0.3", "@types/fs-extra": "^11.0.4", - "@types/node": "^22.13.10", + "@types/node": "^22.15.3", "@types/vscode": "^1.96.0", "@types/vscode-notebook-renderer": "^1.72.3", "@vscode/python-extension": "^1.0.5", - "@vscode/vsce": "^3.3.0", - "esbuild": "^0.25.1", - "eslint": "^9.22.0", - "eslint-config-prettier": "^10.1.1", - "eslint-plugin-prettier": "^5.2.3", + "@vscode/vsce": "^3.3.2", + "esbuild": "^0.25.3", + "eslint": "^9.25.1", + "eslint-config-prettier": "^10.1.2", + "eslint-plugin-prettier": "^5.2.6", "globals": "^16.0.0", - "ovsx": "^0.10.1", - "preact": "^10.26.4", + "ovsx": "^0.10.2", + "preact": "^10.26.5", "prettier": "^3.5.3", "ts-loader": "^9.5.2", - "typescript": "^5.8.2", - "typescript-eslint": "^8.26.1" + "typescript": "^5.8.3", + "typescript-eslint": "^8.31.1" }, "workspaces": [ "docs" From 0ce5446154b34655bd5db4c6cba91a9a82266440 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Tue, 29 Apr 2025 12:20:01 +0200 Subject: [PATCH 24/35] fix(langserver): corrected highlightning of embedded arguments if there is a namespace given before the keyword fixes #434 --- .../robotframework/parts/semantic_tokens.py | 2 +- ..._tokens.test[sematic_tokenizing.robot].out | 70 ++++++++++++++ ...ns.test[versions-rf61-__init__.robot].out} | 0 ...ersions-rf61-embedded_keywords.robot].out} | 0 ...st[versions-rf61-jsonvariables.robot].out} | 0 ...s.test[versions-rf61-sometasks.robot].out} | 0 ...rsions-rf61-sub_suite-__init__.robot].out} | 0 ...[versions-rf61-sub_suite-first.robot].out} | 0 ...[versions-rf61-suite_with_name.robot].out} | 0 ...ens.test[versions-rf70-vartest.robot].out} | 0 ...s.test[versions-rf72-grouptest.robot].out} | 0 .../rf41/test_workspace_symbols.test[].out | 96 +++++++++++++++---- .../rf41/test_workspace_symbols.test[as].out | 53 +++++++++- ..._tokens.test[sematic_tokenizing.robot].out | 70 ++++++++++++++ ...ns.test[versions-rf61-__init__.robot].out} | 0 ...ersions-rf61-embedded_keywords.robot].out} | 0 ...st[versions-rf61-jsonvariables.robot].out} | 0 ...s.test[versions-rf61-sometasks.robot].out} | 0 ...rsions-rf61-sub_suite-__init__.robot].out} | 0 ...[versions-rf61-sub_suite-first.robot].out} | 0 ...[versions-rf61-suite_with_name.robot].out} | 0 ...ens.test[versions-rf70-vartest.robot].out} | 0 ...s.test[versions-rf72-grouptest.robot].out} | 0 .../rf50/test_workspace_symbols.test[].out | 96 +++++++++++++++---- .../rf50/test_workspace_symbols.test[as].out | 53 +++++++++- ..._tokens.test[sematic_tokenizing.robot].out | 70 ++++++++++++++ ...ns.test[versions-rf61-__init__.robot].out} | 0 ...ersions-rf61-embedded_keywords.robot].out} | 0 ...st[versions-rf61-jsonvariables.robot].out} | 0 ...s.test[versions-rf61-sometasks.robot].out} | 0 ...rsions-rf61-sub_suite-__init__.robot].out} | 0 ...[versions-rf61-sub_suite-first.robot].out} | 0 ...[versions-rf61-suite_with_name.robot].out} | 0 ...ens.test[versions-rf70-vartest.robot].out} | 0 ...s.test[versions-rf72-grouptest.robot].out} | 0 .../rf60/test_workspace_symbols.test[].out | 96 +++++++++++++++---- .../rf60/test_workspace_symbols.test[as].out | 53 +++++++++- ..._tokens.test[sematic_tokenizing.robot].out | 70 ++++++++++++++ ...ns.test[versions-rf61-__init__.robot].out} | 0 ...ersions-rf61-embedded_keywords.robot].out} | 0 ...st[versions-rf61-jsonvariables.robot].out} | 0 ...s.test[versions-rf61-sometasks.robot].out} | 0 ...rsions-rf61-sub_suite-__init__.robot].out} | 0 ...[versions-rf61-sub_suite-first.robot].out} | 0 ...[versions-rf61-suite_with_name.robot].out} | 0 ...ens.test[versions-rf70-vartest.robot].out} | 0 ...s.test[versions-rf72-grouptest.robot].out} | 0 .../rf61/test_workspace_symbols.test[].out | 96 +++++++++++++++---- .../rf61/test_workspace_symbols.test[as].out | 53 +++++++++- ..._tokens.test[sematic_tokenizing.robot].out | 70 ++++++++++++++ ...ns.test[versions-rf61-__init__.robot].out} | 0 ...ersions-rf61-embedded_keywords.robot].out} | 0 ...st[versions-rf61-jsonvariables.robot].out} | 0 ...s.test[versions-rf61-sometasks.robot].out} | 0 ...rsions-rf61-sub_suite-__init__.robot].out} | 0 ...[versions-rf61-sub_suite-first.robot].out} | 0 ...[versions-rf61-suite_with_name.robot].out} | 0 ...ens.test[versions-rf70-vartest.robot].out} | 0 ...s.test[versions-rf72-grouptest.robot].out} | 0 .../rf70/test_workspace_symbols.test[].out | 96 +++++++++++++++---- .../rf70/test_workspace_symbols.test[as].out | 53 +++++++++- ..._tokens.test[sematic_tokenizing.robot].out | 70 ++++++++++++++ ...ns.test[versions-rf61-__init__.robot].out} | 0 ...ersions-rf61-embedded_keywords.robot].out} | 0 ...st[versions-rf61-jsonvariables.robot].out} | 0 ...s.test[versions-rf61-sometasks.robot].out} | 0 ...rsions-rf61-sub_suite-__init__.robot].out} | 0 ...[versions-rf61-sub_suite-first.robot].out} | 0 ...[versions-rf61-suite_with_name.robot].out} | 0 ...ens.test[versions-rf70-vartest.robot].out} | 0 ...s.test[versions-rf72-grouptest.robot].out} | 0 .../rf71/test_workspace_symbols.test[].out | 96 +++++++++++++++---- .../rf71/test_workspace_symbols.test[as].out | 53 +++++++++- ...rences.robot-011-016-a_custom_library].out | 9 ++ ...rences.robot-011-020-a_custom_library].out | 9 ++ ...rences.robot-011-023-a_custom_library].out | 9 ++ ...s.robot-013-016-a_same_custom_library].out | 9 ++ ...s.robot-013-020-a_same_custom_library].out | 9 ++ ...s.robot-013-023-a_same_custom_library].out | 9 ++ ..._tokens.test[sematic_tokenizing.robot].out | 70 ++++++++++++++ ...ns.test[versions-rf61-__init__.robot].out} | 0 ...ersions-rf61-embedded_keywords.robot].out} | 0 ...st[versions-rf61-jsonvariables.robot].out} | 0 ...s.test[versions-rf61-sometasks.robot].out} | 0 ...rsions-rf61-sub_suite-__init__.robot].out} | 0 ...[versions-rf61-sub_suite-first.robot].out} | 0 ...[versions-rf61-suite_with_name.robot].out} | 0 ...ens.test[versions-rf70-vartest.robot].out} | 0 ...s.test[versions-rf72-grouptest.robot].out} | 0 .../rf72/test_workspace_symbols.test[].out | 96 +++++++++++++++---- .../rf72/test_workspace_symbols.test[as].out | 53 +++++++++- .../data/resources/embedded_args.resource | 3 + .../robotframework/parts/data/robot.toml | 4 +- .../parts/data/tests/sematic_tokenizing.robot | 7 ++ 94 files changed, 1446 insertions(+), 157 deletions(-) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/{test_semantic_tokens.test[versions--rf61--__init__.robot].out => test_semantic_tokens.test[versions-rf61-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/{test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out => test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/{test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out => test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/{test_semantic_tokens.test[versions--rf61--sometasks.robot].out => test_semantic_tokens.test[versions-rf61-sometasks.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/{test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/{test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/{test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out => test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/{test_semantic_tokens.test[versions--rf70--vartest.robot].out => test_semantic_tokens.test[versions-rf70-vartest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/{test_semantic_tokens.test[versions--rf72--grouptest.robot].out => test_semantic_tokens.test[versions-rf72-grouptest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/{test_semantic_tokens.test[versions--rf61--__init__.robot].out => test_semantic_tokens.test[versions-rf61-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/{test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out => test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/{test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out => test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/{test_semantic_tokens.test[versions--rf61--sometasks.robot].out => test_semantic_tokens.test[versions-rf61-sometasks.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/{test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/{test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/{test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out => test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/{test_semantic_tokens.test[versions--rf70--vartest.robot].out => test_semantic_tokens.test[versions-rf70-vartest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/{test_semantic_tokens.test[versions--rf72--grouptest.robot].out => test_semantic_tokens.test[versions-rf72-grouptest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/{test_semantic_tokens.test[versions--rf61--__init__.robot].out => test_semantic_tokens.test[versions-rf61-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/{test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out => test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/{test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out => test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/{test_semantic_tokens.test[versions--rf61--sometasks.robot].out => test_semantic_tokens.test[versions-rf61-sometasks.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/{test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/{test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/{test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out => test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/{test_semantic_tokens.test[versions--rf70--vartest.robot].out => test_semantic_tokens.test[versions-rf70-vartest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/{test_semantic_tokens.test[versions--rf72--grouptest.robot].out => test_semantic_tokens.test[versions-rf72-grouptest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/{test_semantic_tokens.test[versions--rf61--__init__.robot].out => test_semantic_tokens.test[versions-rf61-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/{test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out => test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/{test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out => test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/{test_semantic_tokens.test[versions--rf61--sometasks.robot].out => test_semantic_tokens.test[versions-rf61-sometasks.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/{test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/{test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/{test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out => test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/{test_semantic_tokens.test[versions--rf70--vartest.robot].out => test_semantic_tokens.test[versions-rf70-vartest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/{test_semantic_tokens.test[versions--rf72--grouptest.robot].out => test_semantic_tokens.test[versions-rf72-grouptest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/{test_semantic_tokens.test[versions--rf61--__init__.robot].out => test_semantic_tokens.test[versions-rf61-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/{test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out => test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/{test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out => test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/{test_semantic_tokens.test[versions--rf61--sometasks.robot].out => test_semantic_tokens.test[versions-rf61-sometasks.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/{test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/{test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/{test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out => test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/{test_semantic_tokens.test[versions--rf70--vartest.robot].out => test_semantic_tokens.test[versions-rf70-vartest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/{test_semantic_tokens.test[versions--rf72--grouptest.robot].out => test_semantic_tokens.test[versions-rf72-grouptest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/{test_semantic_tokens.test[versions--rf61--__init__.robot].out => test_semantic_tokens.test[versions-rf61-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/{test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out => test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/{test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out => test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/{test_semantic_tokens.test[versions--rf61--sometasks.robot].out => test_semantic_tokens.test[versions-rf61-sometasks.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/{test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/{test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/{test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out => test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/{test_semantic_tokens.test[versions--rf70--vartest.robot].out => test_semantic_tokens.test[versions-rf70-vartest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/{test_semantic_tokens.test[versions--rf72--grouptest.robot].out => test_semantic_tokens.test[versions-rf72-grouptest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/{test_semantic_tokens.test[versions--rf61--__init__.robot].out => test_semantic_tokens.test[versions-rf61-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/{test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out => test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/{test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out => test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/{test_semantic_tokens.test[versions--rf61--sometasks.robot].out => test_semantic_tokens.test[versions-rf61-sometasks.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/{test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/{test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out => test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/{test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out => test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/{test_semantic_tokens.test[versions--rf70--vartest.robot].out => test_semantic_tokens.test[versions-rf70-vartest.robot].out} (100%) rename tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/{test_semantic_tokens.test[versions--rf72--grouptest.robot].out => test_semantic_tokens.test[versions-rf72-grouptest.robot].out} (100%) create mode 100644 tests/robotcode/language_server/robotframework/parts/data/resources/embedded_args.resource diff --git a/packages/language_server/src/robotcode/language_server/robotframework/parts/semantic_tokens.py b/packages/language_server/src/robotcode/language_server/robotframework/parts/semantic_tokens.py index c8bf3029..008259bd 100644 --- a/packages/language_server/src/robotcode/language_server/robotframework/parts/semantic_tokens.py +++ b/packages/language_server/src/robotcode/language_server/robotframework/parts/semantic_tokens.py @@ -528,7 +528,7 @@ def generate_sem_sub_tokens( Token.ARGUMENT, token.value[arg_start:arg_end], token.lineno, - token.col_offset + arg_start, + token.col_offset + kw_index + arg_start, ) for sub_token in ModelHelper.tokenize_variables( diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[sematic_tokenizing.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[sematic_tokenizing.robot].out index 12d46c94..98c814e6 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[sematic_tokenizing.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[sematic_tokenizing.robot].out @@ -2,6 +2,21 @@ result: !SemanticTokens data: - 0 - 0 + - 16 + - 27 + - 0 + - 1 + - 0 + - 8 + - 24 + - 0 + - 0 + - 12 + - 22 + - 51 + - 0 + - 2 + - 0 - 18 - 29 - 0 @@ -152,6 +167,61 @@ result: !SemanticTokens - 0 - 2 - 0 + - 27 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 1 + - 4 + - 13 + - 51 + - 0 + - 0 + - 13 + - 1 + - 21 + - 0 + - 0 + - 1 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 2 + - 0 - 16 - 32 - 0 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--sometasks.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-sometasks.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--sometasks.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-sometasks.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf70--vartest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf70-vartest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf70--vartest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf70-vartest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf72--grouptest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf72-grouptest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions--rf72--grouptest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_semantic_tokens.test[versions-rf72-grouptest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[].out index 982c55d4..68abba0f 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[].out @@ -1379,6 +1379,51 @@ result: uri: duplicated_resources.robot name: first tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 24 + line: 1 + start: + character: 16 + line: 1 + uri: embedded_args.resource + name: ${thing} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -4478,10 +4523,10 @@ result: range: end: character: 23 - line: 24 + line: 31 start: character: 19 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${a} tags: null @@ -4493,10 +4538,10 @@ result: range: end: character: 31 - line: 24 + line: 31 start: character: 27 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${b} tags: null @@ -4508,10 +4553,10 @@ result: range: end: character: 39 - line: 24 + line: 31 start: character: 35 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${c} tags: null @@ -4523,10 +4568,10 @@ result: range: end: character: 26 - line: 19 + line: 26 start: character: 19 - line: 19 + line: 26 uri: sematic_tokenizing.robot name: ${type} tags: null @@ -4538,10 +4583,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -4553,10 +4598,10 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null @@ -4568,13 +4613,28 @@ result: range: end: character: 12 - line: 18 + line: 25 start: character: 0 - line: 18 + line: 25 uri: sematic_tokenizing.robot name: do something tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: sematic_tokenizing data: null @@ -4583,10 +4643,10 @@ result: range: end: character: 14 - line: 12 + line: 15 start: character: 0 - line: 12 + line: 15 uri: sematic_tokenizing.robot name: some templated tags: null @@ -4598,10 +4658,10 @@ result: range: end: character: 8 - line: 23 + line: 30 start: character: 0 - line: 23 + line: 30 uri: sematic_tokenizing.robot name: template tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[as].out index 0b9bac44..9266e05d 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_workspace_symbols.test[as].out @@ -359,6 +359,36 @@ result: uri: duplicated.resource name: a resource keyword B tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -877,10 +907,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -892,13 +922,28 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: some_tasks data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[sematic_tokenizing.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[sematic_tokenizing.robot].out index 053720e3..fe3fc16a 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[sematic_tokenizing.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[sematic_tokenizing.robot].out @@ -2,6 +2,21 @@ result: !SemanticTokens data: - 0 - 0 + - 16 + - 27 + - 0 + - 1 + - 0 + - 8 + - 24 + - 0 + - 0 + - 12 + - 22 + - 51 + - 0 + - 2 + - 0 - 18 - 29 - 0 @@ -112,6 +127,61 @@ result: !SemanticTokens - 0 - 2 - 0 + - 27 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 1 + - 4 + - 13 + - 51 + - 0 + - 0 + - 13 + - 1 + - 21 + - 0 + - 0 + - 1 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 2 + - 0 - 16 - 32 - 0 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--sometasks.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-sometasks.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--sometasks.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-sometasks.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf70--vartest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf70-vartest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf70--vartest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf70-vartest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf72--grouptest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf72-grouptest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions--rf72--grouptest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_semantic_tokens.test[versions-rf72-grouptest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[].out index 4880617f..183fe528 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[].out @@ -1379,6 +1379,51 @@ result: uri: duplicated_resources.robot name: first tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 24 + line: 1 + start: + character: 16 + line: 1 + uri: embedded_args.resource + name: ${thing} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -4508,10 +4553,10 @@ result: range: end: character: 23 - line: 24 + line: 31 start: character: 19 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${a} tags: null @@ -4523,10 +4568,10 @@ result: range: end: character: 31 - line: 24 + line: 31 start: character: 27 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${b} tags: null @@ -4538,10 +4583,10 @@ result: range: end: character: 39 - line: 24 + line: 31 start: character: 35 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${c} tags: null @@ -4553,10 +4598,10 @@ result: range: end: character: 26 - line: 19 + line: 26 start: character: 19 - line: 19 + line: 26 uri: sematic_tokenizing.robot name: ${type} tags: null @@ -4568,10 +4613,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -4583,10 +4628,10 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null @@ -4598,13 +4643,28 @@ result: range: end: character: 12 - line: 18 + line: 25 start: character: 0 - line: 18 + line: 25 uri: sematic_tokenizing.robot name: do something tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: sematic_tokenizing data: null @@ -4613,10 +4673,10 @@ result: range: end: character: 14 - line: 12 + line: 15 start: character: 0 - line: 12 + line: 15 uri: sematic_tokenizing.robot name: some templated tags: null @@ -4628,10 +4688,10 @@ result: range: end: character: 8 - line: 23 + line: 30 start: character: 0 - line: 23 + line: 30 uri: sematic_tokenizing.robot name: template tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[as].out index 0b9bac44..9266e05d 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_workspace_symbols.test[as].out @@ -359,6 +359,36 @@ result: uri: duplicated.resource name: a resource keyword B tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -877,10 +907,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -892,13 +922,28 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: some_tasks data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[sematic_tokenizing.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[sematic_tokenizing.robot].out index 053720e3..fe3fc16a 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[sematic_tokenizing.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[sematic_tokenizing.robot].out @@ -2,6 +2,21 @@ result: !SemanticTokens data: - 0 - 0 + - 16 + - 27 + - 0 + - 1 + - 0 + - 8 + - 24 + - 0 + - 0 + - 12 + - 22 + - 51 + - 0 + - 2 + - 0 - 18 - 29 - 0 @@ -112,6 +127,61 @@ result: !SemanticTokens - 0 - 2 - 0 + - 27 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 1 + - 4 + - 13 + - 51 + - 0 + - 0 + - 13 + - 1 + - 21 + - 0 + - 0 + - 1 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 2 + - 0 - 16 - 32 - 0 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--sometasks.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-sometasks.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--sometasks.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-sometasks.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf70--vartest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf70-vartest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf70--vartest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf70-vartest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf72--grouptest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf72-grouptest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions--rf72--grouptest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_semantic_tokens.test[versions-rf72-grouptest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[].out index 4880617f..183fe528 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[].out @@ -1379,6 +1379,51 @@ result: uri: duplicated_resources.robot name: first tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 24 + line: 1 + start: + character: 16 + line: 1 + uri: embedded_args.resource + name: ${thing} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -4508,10 +4553,10 @@ result: range: end: character: 23 - line: 24 + line: 31 start: character: 19 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${a} tags: null @@ -4523,10 +4568,10 @@ result: range: end: character: 31 - line: 24 + line: 31 start: character: 27 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${b} tags: null @@ -4538,10 +4583,10 @@ result: range: end: character: 39 - line: 24 + line: 31 start: character: 35 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${c} tags: null @@ -4553,10 +4598,10 @@ result: range: end: character: 26 - line: 19 + line: 26 start: character: 19 - line: 19 + line: 26 uri: sematic_tokenizing.robot name: ${type} tags: null @@ -4568,10 +4613,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -4583,10 +4628,10 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null @@ -4598,13 +4643,28 @@ result: range: end: character: 12 - line: 18 + line: 25 start: character: 0 - line: 18 + line: 25 uri: sematic_tokenizing.robot name: do something tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: sematic_tokenizing data: null @@ -4613,10 +4673,10 @@ result: range: end: character: 14 - line: 12 + line: 15 start: character: 0 - line: 12 + line: 15 uri: sematic_tokenizing.robot name: some templated tags: null @@ -4628,10 +4688,10 @@ result: range: end: character: 8 - line: 23 + line: 30 start: character: 0 - line: 23 + line: 30 uri: sematic_tokenizing.robot name: template tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[as].out index 0b9bac44..9266e05d 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_workspace_symbols.test[as].out @@ -359,6 +359,36 @@ result: uri: duplicated.resource name: a resource keyword B tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -877,10 +907,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -892,13 +922,28 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: some_tasks data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[sematic_tokenizing.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[sematic_tokenizing.robot].out index 0c5d7e02..aebcd638 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[sematic_tokenizing.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[sematic_tokenizing.robot].out @@ -2,6 +2,21 @@ result: !SemanticTokens data: - 0 - 0 + - 16 + - 27 + - 0 + - 1 + - 0 + - 8 + - 24 + - 0 + - 0 + - 12 + - 22 + - 51 + - 0 + - 2 + - 0 - 18 - 29 - 0 @@ -172,6 +187,61 @@ result: !SemanticTokens - 0 - 2 - 0 + - 27 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 1 + - 4 + - 13 + - 51 + - 0 + - 0 + - 13 + - 1 + - 21 + - 0 + - 0 + - 1 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 2 + - 0 - 16 - 32 - 0 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--sometasks.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-sometasks.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--sometasks.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-sometasks.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf70--vartest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf70-vartest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf70--vartest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf70-vartest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf72--grouptest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf72-grouptest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions--rf72--grouptest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_semantic_tokens.test[versions-rf72-grouptest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[].out index 4880617f..183fe528 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[].out @@ -1379,6 +1379,51 @@ result: uri: duplicated_resources.robot name: first tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 24 + line: 1 + start: + character: 16 + line: 1 + uri: embedded_args.resource + name: ${thing} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -4508,10 +4553,10 @@ result: range: end: character: 23 - line: 24 + line: 31 start: character: 19 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${a} tags: null @@ -4523,10 +4568,10 @@ result: range: end: character: 31 - line: 24 + line: 31 start: character: 27 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${b} tags: null @@ -4538,10 +4583,10 @@ result: range: end: character: 39 - line: 24 + line: 31 start: character: 35 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${c} tags: null @@ -4553,10 +4598,10 @@ result: range: end: character: 26 - line: 19 + line: 26 start: character: 19 - line: 19 + line: 26 uri: sematic_tokenizing.robot name: ${type} tags: null @@ -4568,10 +4613,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -4583,10 +4628,10 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null @@ -4598,13 +4643,28 @@ result: range: end: character: 12 - line: 18 + line: 25 start: character: 0 - line: 18 + line: 25 uri: sematic_tokenizing.robot name: do something tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: sematic_tokenizing data: null @@ -4613,10 +4673,10 @@ result: range: end: character: 14 - line: 12 + line: 15 start: character: 0 - line: 12 + line: 15 uri: sematic_tokenizing.robot name: some templated tags: null @@ -4628,10 +4688,10 @@ result: range: end: character: 8 - line: 23 + line: 30 start: character: 0 - line: 23 + line: 30 uri: sematic_tokenizing.robot name: template tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[as].out index 0b9bac44..9266e05d 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_workspace_symbols.test[as].out @@ -359,6 +359,36 @@ result: uri: duplicated.resource name: a resource keyword B tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -877,10 +907,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -892,13 +922,28 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: some_tasks data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[sematic_tokenizing.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[sematic_tokenizing.robot].out index 0c5d7e02..aebcd638 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[sematic_tokenizing.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[sematic_tokenizing.robot].out @@ -2,6 +2,21 @@ result: !SemanticTokens data: - 0 - 0 + - 16 + - 27 + - 0 + - 1 + - 0 + - 8 + - 24 + - 0 + - 0 + - 12 + - 22 + - 51 + - 0 + - 2 + - 0 - 18 - 29 - 0 @@ -172,6 +187,61 @@ result: !SemanticTokens - 0 - 2 - 0 + - 27 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 1 + - 4 + - 13 + - 51 + - 0 + - 0 + - 13 + - 1 + - 21 + - 0 + - 0 + - 1 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 2 + - 0 - 16 - 32 - 0 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--sometasks.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-sometasks.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--sometasks.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-sometasks.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf70--vartest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf70-vartest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf70--vartest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf70-vartest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf72--grouptest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf72-grouptest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions--rf72--grouptest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_semantic_tokens.test[versions-rf72-grouptest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[].out index 58118c06..bab761dd 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[].out @@ -1379,6 +1379,51 @@ result: uri: duplicated_resources.robot name: first tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 24 + line: 1 + start: + character: 16 + line: 1 + uri: embedded_args.resource + name: ${thing} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -4568,10 +4613,10 @@ result: range: end: character: 23 - line: 24 + line: 31 start: character: 19 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${a} tags: null @@ -4583,10 +4628,10 @@ result: range: end: character: 31 - line: 24 + line: 31 start: character: 27 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${b} tags: null @@ -4598,10 +4643,10 @@ result: range: end: character: 39 - line: 24 + line: 31 start: character: 35 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${c} tags: null @@ -4613,10 +4658,10 @@ result: range: end: character: 26 - line: 19 + line: 26 start: character: 19 - line: 19 + line: 26 uri: sematic_tokenizing.robot name: ${type} tags: null @@ -4628,10 +4673,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -4643,10 +4688,10 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null @@ -4658,13 +4703,28 @@ result: range: end: character: 12 - line: 18 + line: 25 start: character: 0 - line: 18 + line: 25 uri: sematic_tokenizing.robot name: do something tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: sematic_tokenizing data: null @@ -4673,10 +4733,10 @@ result: range: end: character: 14 - line: 12 + line: 15 start: character: 0 - line: 12 + line: 15 uri: sematic_tokenizing.robot name: some templated tags: null @@ -4688,10 +4748,10 @@ result: range: end: character: 8 - line: 23 + line: 30 start: character: 0 - line: 23 + line: 30 uri: sematic_tokenizing.robot name: template tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[as].out index 0b9bac44..9266e05d 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_workspace_symbols.test[as].out @@ -359,6 +359,36 @@ result: uri: duplicated.resource name: a resource keyword B tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -877,10 +907,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -892,13 +922,28 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: some_tasks data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[sematic_tokenizing.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[sematic_tokenizing.robot].out index 0c5d7e02..aebcd638 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[sematic_tokenizing.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[sematic_tokenizing.robot].out @@ -2,6 +2,21 @@ result: !SemanticTokens data: - 0 - 0 + - 16 + - 27 + - 0 + - 1 + - 0 + - 8 + - 24 + - 0 + - 0 + - 12 + - 22 + - 51 + - 0 + - 2 + - 0 - 18 - 29 - 0 @@ -172,6 +187,61 @@ result: !SemanticTokens - 0 - 2 - 0 + - 27 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 1 + - 4 + - 13 + - 51 + - 0 + - 0 + - 13 + - 1 + - 21 + - 0 + - 0 + - 1 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 2 + - 0 - 16 - 32 - 0 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--sometasks.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-sometasks.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--sometasks.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-sometasks.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf70--vartest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf70-vartest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf70--vartest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf70-vartest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf72--grouptest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf72-grouptest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions--rf72--grouptest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_semantic_tokens.test[versions-rf72-grouptest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[].out index 58118c06..bab761dd 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[].out @@ -1379,6 +1379,51 @@ result: uri: duplicated_resources.robot name: first tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 24 + line: 1 + start: + character: 16 + line: 1 + uri: embedded_args.resource + name: ${thing} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -4568,10 +4613,10 @@ result: range: end: character: 23 - line: 24 + line: 31 start: character: 19 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${a} tags: null @@ -4583,10 +4628,10 @@ result: range: end: character: 31 - line: 24 + line: 31 start: character: 27 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${b} tags: null @@ -4598,10 +4643,10 @@ result: range: end: character: 39 - line: 24 + line: 31 start: character: 35 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${c} tags: null @@ -4613,10 +4658,10 @@ result: range: end: character: 26 - line: 19 + line: 26 start: character: 19 - line: 19 + line: 26 uri: sematic_tokenizing.robot name: ${type} tags: null @@ -4628,10 +4673,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -4643,10 +4688,10 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null @@ -4658,13 +4703,28 @@ result: range: end: character: 12 - line: 18 + line: 25 start: character: 0 - line: 18 + line: 25 uri: sematic_tokenizing.robot name: do something tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: sematic_tokenizing data: null @@ -4673,10 +4733,10 @@ result: range: end: character: 14 - line: 12 + line: 15 start: character: 0 - line: 12 + line: 15 uri: sematic_tokenizing.robot name: some templated tags: null @@ -4688,10 +4748,10 @@ result: range: end: character: 8 - line: 23 + line: 30 start: character: 0 - line: 23 + line: 30 uri: sematic_tokenizing.robot name: template tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[as].out index 0b9bac44..9266e05d 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_workspace_symbols.test[as].out @@ -359,6 +359,36 @@ result: uri: duplicated.resource name: a resource keyword B tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -877,10 +907,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -892,13 +922,28 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: some_tasks data: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-016-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-016-a_custom_library].out index b1439e05..daef5ac9 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-016-a_custom_library].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-016-a_custom_library].out @@ -57,6 +57,15 @@ result: character: 10 line: 6 uri: tests/duplicated_resources.robot +- !Location + range: + end: + character: 19 + line: 7 + start: + character: 11 + line: 7 + uri: tests/duplicated_resources.robot - !Location range: end: diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-020-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-020-a_custom_library].out index 593481a6..444f2120 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-020-a_custom_library].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-020-a_custom_library].out @@ -57,6 +57,15 @@ result: character: 10 line: 6 uri: tests/duplicated_resources.robot +- !Location + range: + end: + character: 19 + line: 7 + start: + character: 11 + line: 7 + uri: tests/duplicated_resources.robot - !Location range: end: diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-023-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-023-a_custom_library].out index 5d68496c..cf7ff2b5 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-023-a_custom_library].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-023-a_custom_library].out @@ -57,6 +57,15 @@ result: character: 10 line: 6 uri: tests/duplicated_resources.robot +- !Location + range: + end: + character: 19 + line: 7 + start: + character: 11 + line: 7 + uri: tests/duplicated_resources.robot - !Location range: end: diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-016-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-016-a_same_custom_library].out index 9cfd3581..947e15b3 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-016-a_same_custom_library].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-016-a_same_custom_library].out @@ -57,6 +57,15 @@ result: character: 10 line: 6 uri: tests/duplicated_resources.robot +- !Location + range: + end: + character: 19 + line: 7 + start: + character: 11 + line: 7 + uri: tests/duplicated_resources.robot - !Location range: end: diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-020-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-020-a_same_custom_library].out index aa48143f..3a23b8af 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-020-a_same_custom_library].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-020-a_same_custom_library].out @@ -57,6 +57,15 @@ result: character: 10 line: 6 uri: tests/duplicated_resources.robot +- !Location + range: + end: + character: 19 + line: 7 + start: + character: 11 + line: 7 + uri: tests/duplicated_resources.robot - !Location range: end: diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-023-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-023-a_same_custom_library].out index 198ed323..5480c015 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-023-a_same_custom_library].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-023-a_same_custom_library].out @@ -57,6 +57,15 @@ result: character: 10 line: 6 uri: tests/duplicated_resources.robot +- !Location + range: + end: + character: 19 + line: 7 + start: + character: 11 + line: 7 + uri: tests/duplicated_resources.robot - !Location range: end: diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[sematic_tokenizing.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[sematic_tokenizing.robot].out index 0c5d7e02..aebcd638 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[sematic_tokenizing.robot].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[sematic_tokenizing.robot].out @@ -2,6 +2,21 @@ result: !SemanticTokens data: - 0 - 0 + - 16 + - 27 + - 0 + - 1 + - 0 + - 8 + - 24 + - 0 + - 0 + - 12 + - 22 + - 51 + - 0 + - 2 + - 0 - 18 - 29 - 0 @@ -172,6 +187,61 @@ result: !SemanticTokens - 0 - 2 - 0 + - 27 + - 33 + - 1 + - 1 + - 4 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 1 + - 4 + - 13 + - 51 + - 0 + - 0 + - 13 + - 1 + - 21 + - 0 + - 0 + - 1 + - 3 + - 39 + - 0 + - 0 + - 3 + - 4 + - 36 + - 2048 + - 0 + - 5 + - 5 + - 39 + - 0 + - 0 + - 5 + - 5 + - 36 + - 2048 + - 2 + - 0 - 16 - 32 - 0 diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--embedded_keywords.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-embedded_keywords.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--jsonvariables.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-jsonvariables.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--sometasks.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-sometasks.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--sometasks.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-sometasks.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--sub_suite--__init__.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-sub_suite-__init__.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--sub_suite--first.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-sub_suite-first.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf61--suite_with_name.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf61-suite_with_name.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf70--vartest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf70-vartest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf70--vartest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf70-vartest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf72--grouptest.robot].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf72-grouptest.robot].out similarity index 100% rename from tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions--rf72--grouptest.robot].out rename to tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_semantic_tokens.test[versions-rf72-grouptest.robot].out diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[].out index 58118c06..bab761dd 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[].out @@ -1379,6 +1379,51 @@ result: uri: duplicated_resources.robot name: first tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 24 + line: 1 + start: + character: 16 + line: 1 + uri: embedded_args.resource + name: ${thing} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -4568,10 +4613,10 @@ result: range: end: character: 23 - line: 24 + line: 31 start: character: 19 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${a} tags: null @@ -4583,10 +4628,10 @@ result: range: end: character: 31 - line: 24 + line: 31 start: character: 27 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${b} tags: null @@ -4598,10 +4643,10 @@ result: range: end: character: 39 - line: 24 + line: 31 start: character: 35 - line: 24 + line: 31 uri: sematic_tokenizing.robot name: ${c} tags: null @@ -4613,10 +4658,10 @@ result: range: end: character: 26 - line: 19 + line: 26 start: character: 19 - line: 19 + line: 26 uri: sematic_tokenizing.robot name: ${type} tags: null @@ -4628,10 +4673,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -4643,10 +4688,10 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null @@ -4658,13 +4703,28 @@ result: range: end: character: 12 - line: 18 + line: 25 start: character: 0 - line: 18 + line: 25 uri: sematic_tokenizing.robot name: do something tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: sematic_tokenizing data: null @@ -4673,10 +4733,10 @@ result: range: end: character: 14 - line: 12 + line: 15 start: character: 0 - line: 12 + line: 15 uri: sematic_tokenizing.robot name: some templated tags: null @@ -4688,10 +4748,10 @@ result: range: end: character: 8 - line: 23 + line: 30 start: character: 0 - line: 23 + line: 30 uri: sematic_tokenizing.robot name: template tags: null diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[as].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[as].out index 0b9bac44..9266e05d 100644 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[as].out +++ b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_workspace_symbols.test[as].out @@ -359,6 +359,36 @@ result: uri: duplicated.resource name: a resource keyword B tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 13 + location: + range: + end: + character: 10 + line: 1 + start: + character: 3 + line: 1 + uri: embedded_args.resource + name: ${task} + tags: null +- !WorkspaceSymbol + container_name: embedded_args + data: null + kind: 12 + location: + range: + end: + character: 24 + line: 1 + start: + character: 0 + line: 1 + uri: embedded_args.resource + name: do ${task} with ${thing} + tags: null - !WorkspaceSymbol container_name: embedded_keywords data: null @@ -877,10 +907,10 @@ result: range: end: character: 40 - line: 1 + line: 4 start: character: 0 - line: 1 + line: 4 uri: sematic_tokenizing.robot name: Continue when iteration limit is reached tags: null @@ -892,13 +922,28 @@ result: range: end: character: 24 - line: 7 + line: 10 start: character: 0 - line: 7 + line: 10 uri: sematic_tokenizing.robot name: Limit as iteration count tags: null +- !WorkspaceSymbol + container_name: sematic_tokenizing + data: null + kind: 5 + location: + range: + end: + character: 27 + line: 20 + start: + character: 0 + line: 20 + uri: sematic_tokenizing.robot + name: some embedded args keywords + tags: null - !WorkspaceSymbol container_name: some_tasks data: null diff --git a/tests/robotcode/language_server/robotframework/parts/data/resources/embedded_args.resource b/tests/robotcode/language_server/robotframework/parts/data/resources/embedded_args.resource new file mode 100644 index 00000000..3673c6d9 --- /dev/null +++ b/tests/robotcode/language_server/robotframework/parts/data/resources/embedded_args.resource @@ -0,0 +1,3 @@ +*** Keywords *** +do ${task} with ${thing} + ok ${task} ${thing} \ No newline at end of file diff --git a/tests/robotcode/language_server/robotframework/parts/data/robot.toml b/tests/robotcode/language_server/robotframework/parts/data/robot.toml index 6439955a..ef8cbc03 100644 --- a/tests/robotcode/language_server/robotframework/parts/data/robot.toml +++ b/tests/robotcode/language_server/robotframework/parts/data/robot.toml @@ -71,5 +71,5 @@ API_URL = "https://api.test1.company.com" APP_URL = "https://app.test1.company.com" -[tool.robotcode-analyze.modifiers] -warning = ["KeywordNotFound"] +#[tool.robotcode-analyze.modifiers] +#warning = ["KeywordNotFound"] diff --git a/tests/robotcode/language_server/robotframework/parts/data/tests/sematic_tokenizing.robot b/tests/robotcode/language_server/robotframework/parts/data/tests/sematic_tokenizing.robot index 899d18d0..e8b16295 100644 --- a/tests/robotcode/language_server/robotframework/parts/data/tests/sematic_tokenizing.robot +++ b/tests/robotcode/language_server/robotframework/parts/data/tests/sematic_tokenizing.robot @@ -1,3 +1,6 @@ +*** Settings *** +Resource embedded_args.resource + *** Test Cases *** Continue when iteration limit is reached WHILE True limit=5 on_limit=pass @@ -15,6 +18,10 @@ some templated 1 2 3 3 ${{1+2+${1}}} 7 +some embedded args keywords + do task with thing + embedded_args.do task with thing + *** Keywords *** do something [Arguments] ${type} From e01bfe970913c4ca0f53d2c5b197237964754a5a Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Tue, 29 Apr 2025 12:23:52 +0200 Subject: [PATCH 25/35] =?UTF-8?q?chore(release):=20bump=20version=201.0.3?= =?UTF-8?q?=20=E2=86=92=201.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 87 +++++++++++++++++++ intellij-client/gradle.properties | 2 +- package-lock.json | 4 +- package.json | 4 +- packages/analyze/pyproject.toml | 6 +- .../src/robotcode/analyze/__version__.py | 2 +- .../core/src/robotcode/core/__version__.py | 2 +- packages/debugger/pyproject.toml | 4 +- .../src/robotcode/debugger/__version__.py | 2 +- packages/jsonrpc2/pyproject.toml | 2 +- .../src/robotcode/jsonrpc2/__version__.py | 2 +- packages/language_server/pyproject.toml | 8 +- .../robotcode/language_server/__version__.py | 2 +- .../src/robotcode/modifiers/__version__.py | 2 +- .../src/robotcode/plugin/__version__.py | 2 +- packages/repl/pyproject.toml | 2 +- .../repl/src/robotcode/repl/__version__.py | 2 +- packages/repl_server/pyproject.toml | 4 +- .../src/robotcode/repl_server/__version__.py | 2 +- packages/robot/pyproject.toml | 2 +- .../robot/src/robotcode/robot/__version__.py | 2 +- packages/runner/pyproject.toml | 8 +- .../src/robotcode/runner/__version__.py | 2 +- pyproject.toml | 30 +++---- src/robotcode/cli/__version__.py | 2 +- 25 files changed, 137 insertions(+), 50 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 636bd89a..0fd852ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,93 @@ All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. +## [1.1.0](https://github.com/robotcodedev/robotcode/compare/v1.0.3..v1.1.0) - 2025-04-29 + +### Bug Fixes + +- **analyze:** Allow `all` also in `robot.toml` configuration for `exit-code-mask` ([a496714](https://github.com/robotcodedev/robotcode/commit/a496714b88d397b46f4b4192c82336711fccac5a)) +- **langserver:** Corrected highlightning of embedded arguments if there is a namespace given before the keyword ([0ce5446](https://github.com/robotcodedev/robotcode/commit/0ce5446154b34655bd5db4c6cba91a9a82266440)) + + +### Documentation + +- Draft article about variables ([161006e](https://github.com/robotcodedev/robotcode/commit/161006e6a730f52501bdff7dcd1cba9e85300fcd)) +- Added pycharm link on the robotcode.io homepage ([7686a21](https://github.com/robotcodedev/robotcode/commit/7686a21c76681d2a7321a67c1c872b6c77687000)) + + +### Features + +- **analyze:** Exit code mask configuration for code analysis ([4b677ad](https://github.com/robotcodedev/robotcode/commit/4b677add254f88519d950e54ac5ef1f4e499d0e6)) + + Configure which message types should **not** influence the exit code of `robotcode analyze code`, allowing granular control over CI/CD pipeline behavior or pre-commit hooks. + + **Configuration File (`robot.toml`)** + + ```toml + [tool.robotcode-analyze.code] + exit-code-mask = ["error", "warn"] + ``` + + **Command Line Options** + + ``` + robotcode analyze code --exit-code-mask error,warn # or -xm + robotcode analyze code --extend-exit-code-mask info # or -xe + ``` + + - `-xm` (or `--exit-code-mask`) overwrites the configuration in `robot.toml` + - `-xe` (or `--extend-exit-code-mask`) extends the configuration in `robot.toml` + - Both options can be specified multiple times or with comma-separated values: + + ``` + robotcode analyze code -xm error -xm warn # multiple options + robotcode analyze code -xm error,warn # comma-separated + ``` + + **Behavior** + + - Message types in the mask are ignored when determining exit code + - Available types: `error`, `warn`/`warning`, `info`/`information`, `hint` + - Special value `all` ignores all message types (always exit code 0) + - Without configuration, all message types affect the exit code + + **Example** + + ```toml + # In robot.toml - Ignore warnings but let errors affect exit code + [tool.robotcode-analyze.code] + exit-code-mask = ["warn"] + ``` + + ```bash + # Using short options + robotcode analyze code -xm error,hint # Overwrites robot.toml config + robotcode analyze code -xe info -xe hint # Extends robot.toml config with multiple types + robotcode analyze code -xm all # Always exit with code 0 + ``` + +- **vscode:** Add configuration for output file display options ([738d7a6](https://github.com/robotcodedev/robotcode/commit/738d7a6129f8e459c0af1961ebedfe320d2a4b9d)) + + Add "robotcode.run.openOutputTarget" setting to control how Robot Framework output files are displayed: + - simpleBrowser: in VSCode's built-in browser + - externalHttp: in default browser via HTTP protocol + - externalFile: in default browser via file system + + The externalFile options may not run in remote development environments. + +- **vscode:** Use short CLI argument versions when calling robotcode ([0987f55](https://github.com/robotcodedev/robotcode/commit/0987f551803f23e2c8342638d2b3bb1e23cc99da)) + + +### Refactor + +- **analyze:** Move code analysing to it's own module ([0123a50](https://github.com/robotcodedev/robotcode/commit/0123a507a3b23265676aa8d0c68af322e01f513c)) + + +### Testing + +- Fix some unittest ([98e4d5c](https://github.com/robotcodedev/robotcode/commit/98e4d5c2e69e1d2a3a1518456f85ff04b15be920)) + + ## [1.0.3](https://github.com/robotcodedev/robotcode/compare/v1.0.2..v1.0.3) - 2025-03-14 ### Bug Fixes diff --git a/intellij-client/gradle.properties b/intellij-client/gradle.properties index d121bdcb..d4d8c218 100644 --- a/intellij-client/gradle.properties +++ b/intellij-client/gradle.properties @@ -4,7 +4,7 @@ pluginGroup = dev.robotcode pluginName = RobotCode - Robot Framework Support pluginRepositoryUrl = https://github.com/robotcodedev/robotcode4ij # SemVer format -> https://semver.org -pluginVersion = 1.0.3 +pluginVersion = 1.1.0 # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html pluginSinceBuild = 243 diff --git a/package-lock.json b/package-lock.json index 78d2093e..7ac0fcff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "robotcode", - "version": "1.0.3", + "version": "1.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "robotcode", - "version": "1.0.3", + "version": "1.1.0", "funding": [ { "type": "opencollective", diff --git a/package.json b/package.json index 4ea1b1ba..568bfac9 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Robot Framework IntelliSense, linting, test execution and debugging, code formatting, refactoring, and many more", "icon": "images/icon.png", "publisher": "d-biehl", - "version": "1.0.3", + "version": "1.1.0", "author": { "name": "Daniel Biehl", "url": "https://github.com/robotcodedev/" @@ -1959,4 +1959,4 @@ "workspaces": [ "docs" ] -} \ No newline at end of file +} diff --git a/packages/analyze/pyproject.toml b/packages/analyze/pyproject.toml index ee3bfffc..74ccfe81 100644 --- a/packages/analyze/pyproject.toml +++ b/packages/analyze/pyproject.toml @@ -27,9 +27,9 @@ classifiers = [ ] dependencies = [ "robotframework>=4.1.0", - "robotcode-plugin==1.0.3", - "robotcode-robot==1.0.3", - "robotcode==1.0.3", + "robotcode-plugin==1.1.0", + "robotcode-robot==1.1.0", + "robotcode==1.1.0", ] dynamic = ["version"] diff --git a/packages/analyze/src/robotcode/analyze/__version__.py b/packages/analyze/src/robotcode/analyze/__version__.py index 976498ab..6849410a 100644 --- a/packages/analyze/src/robotcode/analyze/__version__.py +++ b/packages/analyze/src/robotcode/analyze/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/packages/core/src/robotcode/core/__version__.py b/packages/core/src/robotcode/core/__version__.py index 976498ab..6849410a 100644 --- a/packages/core/src/robotcode/core/__version__.py +++ b/packages/core/src/robotcode/core/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/packages/debugger/pyproject.toml b/packages/debugger/pyproject.toml index 8a1cc980..a9729ad8 100644 --- a/packages/debugger/pyproject.toml +++ b/packages/debugger/pyproject.toml @@ -28,8 +28,8 @@ classifiers = [ dynamic = ["version"] dependencies = [ "robotframework>=4.1.0", - "robotcode-jsonrpc2==1.0.3", - "robotcode-runner==1.0.3", + "robotcode-jsonrpc2==1.1.0", + "robotcode-runner==1.1.0", ] [project.optional-dependencies] diff --git a/packages/debugger/src/robotcode/debugger/__version__.py b/packages/debugger/src/robotcode/debugger/__version__.py index 976498ab..6849410a 100644 --- a/packages/debugger/src/robotcode/debugger/__version__.py +++ b/packages/debugger/src/robotcode/debugger/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/packages/jsonrpc2/pyproject.toml b/packages/jsonrpc2/pyproject.toml index d4690296..04666254 100644 --- a/packages/jsonrpc2/pyproject.toml +++ b/packages/jsonrpc2/pyproject.toml @@ -25,7 +25,7 @@ classifiers = [ "Framework :: Robot Framework", "Framework :: Robot Framework :: Tool", ] -dependencies = ["robotcode-core==1.0.3"] +dependencies = ["robotcode-core==1.1.0"] dynamic = ["version"] [project.urls] diff --git a/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py b/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py index 976498ab..6849410a 100644 --- a/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py +++ b/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/packages/language_server/pyproject.toml b/packages/language_server/pyproject.toml index 0e500799..5271193e 100644 --- a/packages/language_server/pyproject.toml +++ b/packages/language_server/pyproject.toml @@ -27,10 +27,10 @@ classifiers = [ ] dependencies = [ "robotframework>=4.1.0", - "robotcode-jsonrpc2==1.0.3", - "robotcode-robot==1.0.3", - "robotcode-analyze==1.0.3", - "robotcode==1.0.3", + "robotcode-jsonrpc2==1.1.0", + "robotcode-robot==1.1.0", + "robotcode-analyze==1.1.0", + "robotcode==1.1.0", ] dynamic = ["version"] diff --git a/packages/language_server/src/robotcode/language_server/__version__.py b/packages/language_server/src/robotcode/language_server/__version__.py index 976498ab..6849410a 100644 --- a/packages/language_server/src/robotcode/language_server/__version__.py +++ b/packages/language_server/src/robotcode/language_server/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/packages/modifiers/src/robotcode/modifiers/__version__.py b/packages/modifiers/src/robotcode/modifiers/__version__.py index 976498ab..6849410a 100644 --- a/packages/modifiers/src/robotcode/modifiers/__version__.py +++ b/packages/modifiers/src/robotcode/modifiers/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/packages/plugin/src/robotcode/plugin/__version__.py b/packages/plugin/src/robotcode/plugin/__version__.py index 976498ab..6849410a 100644 --- a/packages/plugin/src/robotcode/plugin/__version__.py +++ b/packages/plugin/src/robotcode/plugin/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/packages/repl/pyproject.toml b/packages/repl/pyproject.toml index ff1b1521..612878fb 100644 --- a/packages/repl/pyproject.toml +++ b/packages/repl/pyproject.toml @@ -27,7 +27,7 @@ classifiers = [ ] dynamic = ["version"] dependencies = [ - "robotcode-runner==1.0.3" + "robotcode-runner==1.1.0" ] [project.entry-points.robotcode] diff --git a/packages/repl/src/robotcode/repl/__version__.py b/packages/repl/src/robotcode/repl/__version__.py index 976498ab..6849410a 100644 --- a/packages/repl/src/robotcode/repl/__version__.py +++ b/packages/repl/src/robotcode/repl/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/packages/repl_server/pyproject.toml b/packages/repl_server/pyproject.toml index b6c5ab4e..b3fc3fda 100644 --- a/packages/repl_server/pyproject.toml +++ b/packages/repl_server/pyproject.toml @@ -27,8 +27,8 @@ classifiers = [ ] dynamic = ["version"] dependencies = [ - "robotcode-jsonrpc2==1.0.3", - "robotcode-runner==1.0.3" + "robotcode-jsonrpc2==1.1.0", + "robotcode-runner==1.1.0" ] [project.entry-points.robotcode] diff --git a/packages/repl_server/src/robotcode/repl_server/__version__.py b/packages/repl_server/src/robotcode/repl_server/__version__.py index 976498ab..6849410a 100644 --- a/packages/repl_server/src/robotcode/repl_server/__version__.py +++ b/packages/repl_server/src/robotcode/repl_server/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/packages/robot/pyproject.toml b/packages/robot/pyproject.toml index 0b00ae80..77e490b9 100644 --- a/packages/robot/pyproject.toml +++ b/packages/robot/pyproject.toml @@ -30,7 +30,7 @@ dependencies = [ "robotframework>=4.1.0", "tomli>=1.1.0; python_version < '3.11'", "platformdirs>=3.2.0,<4.4.0", - "robotcode-core==1.0.3", + "robotcode-core==1.1.0", ] dynamic = ["version"] diff --git a/packages/robot/src/robotcode/robot/__version__.py b/packages/robot/src/robotcode/robot/__version__.py index 976498ab..6849410a 100644 --- a/packages/robot/src/robotcode/robot/__version__.py +++ b/packages/robot/src/robotcode/robot/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/packages/runner/pyproject.toml b/packages/runner/pyproject.toml index d1c47098..46e8c977 100644 --- a/packages/runner/pyproject.toml +++ b/packages/runner/pyproject.toml @@ -28,10 +28,10 @@ classifiers = [ dynamic = ["version"] dependencies = [ "robotframework>=4.1.0", - "robotcode-robot==1.0.3", - "robotcode-modifiers==1.0.3", - "robotcode-plugin==1.0.3", - "robotcode==1.0.3", + "robotcode-robot==1.1.0", + "robotcode-modifiers==1.1.0", + "robotcode-plugin==1.1.0", + "robotcode==1.1.0", ] [project.entry-points.robotcode] diff --git a/packages/runner/src/robotcode/runner/__version__.py b/packages/runner/src/robotcode/runner/__version__.py index 976498ab..6849410a 100644 --- a/packages/runner/src/robotcode/runner/__version__.py +++ b/packages/runner/src/robotcode/runner/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" diff --git a/pyproject.toml b/pyproject.toml index 73f62b53..722632b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,9 +51,9 @@ classifiers = [ ] requires-python = ">=3.8" dependencies = [ - "robotcode-core==1.0.3", - "robotcode-plugin==1.0.3", - "robotcode-robot==1.0.3", + "robotcode-core==1.1.0", + "robotcode-plugin==1.1.0", + "robotcode-robot==1.1.0", ] dynamic = ["version"] @@ -71,24 +71,24 @@ robotcode = "robotcode.cli.__main__:main" [project.optional-dependencies] -debugger = ["robotcode-debugger==1.0.3"] -languageserver = ["robotcode-language-server==1.0.3"] -runner = ["robotcode-runner==1.0.3"] -analyze = ["robotcode-analyze==1.0.3"] +debugger = ["robotcode-debugger==1.1.0"] +languageserver = ["robotcode-language-server==1.1.0"] +runner = ["robotcode-runner==1.1.0"] +analyze = ["robotcode-analyze==1.1.0"] yaml = ["PyYAML>=5.4"] lint = ["robotframework-robocop>=2.0.0"] tidy = ["robotframework-tidy>=2.0.0"] rest = ["docutils"] -repl = ["robotcode-repl==1.0.3"] -replserver = ["robotcode-repl-server==1.0.3"] +repl = ["robotcode-repl==1.1.0"] +replserver = ["robotcode-repl-server==1.1.0"] colored = ["rich"] all = [ - "robotcode-debugger==1.0.3", - "robotcode-language-server==1.0.3", - "robotcode-runner==1.0.3", - "robotcode-analyze==1.0.3", - "robotcode-repl==1.0.3", - "robotcode-repl-server==1.0.3", + "robotcode-debugger==1.1.0", + "robotcode-language-server==1.1.0", + "robotcode-runner==1.1.0", + "robotcode-analyze==1.1.0", + "robotcode-repl==1.1.0", + "robotcode-repl-server==1.1.0", "PyYAML>=5.4", "robotframework-robocop>=2.0.0", "robotframework-tidy>=2.0.0", diff --git a/src/robotcode/cli/__version__.py b/src/robotcode/cli/__version__.py index 976498ab..6849410a 100644 --- a/src/robotcode/cli/__version__.py +++ b/src/robotcode/cli/__version__.py @@ -1 +1 @@ -__version__ = "1.0.3" +__version__ = "1.1.0" From f9a1a823c6cb9d885231c81830d6e438cf60b680 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Tue, 29 Apr 2025 12:39:24 +0200 Subject: [PATCH 26/35] test: disable some flaky tests --- .../robotframework/parts/data/tests/references.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/robotcode/language_server/robotframework/parts/data/tests/references.robot b/tests/robotcode/language_server/robotframework/parts/data/tests/references.robot index c410ad23..fc9f27df 100644 --- a/tests/robotcode/language_server/robotframework/parts/data/tests/references.robot +++ b/tests/robotcode/language_server/robotframework/parts/data/tests/references.robot @@ -10,10 +10,10 @@ Variables ${CURDIR}/../lib/myvariables.py Resource ${CURDIR}/../resources/firstresource.resource # ^^^^^^ Variable in resource import path Library alibrary a_param=from hello WITH NAME lib_hello -# ^^^^^^^^ a custom library +## ^^^^^^^^ a custom library Library alibrary a_param=${LIB_ARG} WITH NAME lib_var # ^^^^^^^ Variable in library params -# ^^^^^^^^ a same custom library +## ^^^^^^^^ a same custom library Suite Setup BuiltIn.Log To Console hi from suite setup # ^^^^^^^^^^^^^^ suite fixture keyword call with namespace Test Setup Log To Console hi from test setup From 43879844c9fdc845ae2b9fa373f076eb13a9feb9 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Tue, 29 Apr 2025 16:10:39 +0200 Subject: [PATCH 27/35] test: disable some flaky tests and correct regression test output file to be platform independent --- tests/conftest.py | 22 ---- ...rences.robot-011-016-a_custom_library].out | 122 ------------------ ...rences.robot-011-020-a_custom_library].out | 122 ------------------ ...rences.robot-011-023-a_custom_library].out | 122 ------------------ ...s.robot-013-016-a_same_custom_library].out | 122 ------------------ ...s.robot-013-020-a_same_custom_library].out | 122 ------------------ ...s.robot-013-023-a_same_custom_library].out | 122 ------------------ ...rences.robot-011-016-a_custom_library].out | 122 ------------------ ...rences.robot-011-020-a_custom_library].out | 122 ------------------ ...rences.robot-011-023-a_custom_library].out | 122 ------------------ ...s.robot-013-016-a_same_custom_library].out | 122 ------------------ ...s.robot-013-020-a_same_custom_library].out | 122 ------------------ ...s.robot-013-023-a_same_custom_library].out | 122 ------------------ ...rences.robot-011-016-a_custom_library].out | 122 ------------------ ...rences.robot-011-020-a_custom_library].out | 122 ------------------ ...rences.robot-011-023-a_custom_library].out | 122 ------------------ ...s.robot-013-016-a_same_custom_library].out | 122 ------------------ ...s.robot-013-020-a_same_custom_library].out | 122 ------------------ ...s.robot-013-023-a_same_custom_library].out | 122 ------------------ ...rences.robot-011-016-a_custom_library].out | 113 ---------------- ...rences.robot-011-020-a_custom_library].out | 113 ---------------- ...rences.robot-011-023-a_custom_library].out | 113 ---------------- ...s.robot-013-016-a_same_custom_library].out | 113 ---------------- ...s.robot-013-020-a_same_custom_library].out | 113 ---------------- ...s.robot-013-023-a_same_custom_library].out | 113 ---------------- ...rences.robot-011-016-a_custom_library].out | 113 ---------------- ...rences.robot-011-020-a_custom_library].out | 113 ---------------- ...rences.robot-011-023-a_custom_library].out | 113 ---------------- ...s.robot-013-016-a_same_custom_library].out | 113 ---------------- ...s.robot-013-020-a_same_custom_library].out | 113 ---------------- ...s.robot-013-023-a_same_custom_library].out | 113 ---------------- ...rences.robot-011-016-a_custom_library].out | 113 ---------------- ...rences.robot-011-020-a_custom_library].out | 113 ---------------- ...rences.robot-011-023-a_custom_library].out | 113 ---------------- ...s.robot-013-016-a_same_custom_library].out | 113 ---------------- ...s.robot-013-020-a_same_custom_library].out | 113 ---------------- ...s.robot-013-023-a_same_custom_library].out | 113 ---------------- ...rences.robot-011-016-a_custom_library].out | 122 ------------------ ...rences.robot-011-020-a_custom_library].out | 122 ------------------ ...rences.robot-011-023-a_custom_library].out | 122 ------------------ ...s.robot-013-016-a_same_custom_library].out | 122 ------------------ ...s.robot-013-020-a_same_custom_library].out | 122 ------------------ ...s.robot-013-023-a_same_custom_library].out | 122 ------------------ .../parts/data/tests/references.robot | 4 +- .../robotframework/parts/pytest_regtestex.py | 9 -- .../language_server/robotframework/tools.py | 2 +- 46 files changed, 3 insertions(+), 4996 deletions(-) delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-016-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-020-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-023-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-016-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-020-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-023-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-016-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-020-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-023-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-016-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-020-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-023-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-016-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-020-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-023-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-016-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-020-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-023-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-016-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-020-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-023-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-016-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-020-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-023-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-016-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-020-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-023-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-016-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-020-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-023-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-016-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-020-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-023-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-016-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-020-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-023-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-016-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-020-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-023-a_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-016-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-020-a_same_custom_library].out delete mode 100644 tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-023-a_same_custom_library].out diff --git a/tests/conftest.py b/tests/conftest.py index f87b4b78..dcdcaa9d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -175,17 +175,6 @@ def __init__(self, request: pytest.FixtureRequest): self.test_folder = request.path.parent self.buffer = StringIO() - @property - def old_output_file_name(self) -> Path: - name, __, test_function = self.nodeid.partition("::") - file_name = Path(name) - - test_function = test_function.replace("/", "--") - if len(test_function) > 100: - test_function = sha512(test_function.encode("utf-8")).hexdigest()[:10] - - return Path(f"{file_name.stem}.{test_function}.out") - @property def output_file_name(self) -> Path: name, __, test_function = self.nodeid.partition("::") @@ -202,10 +191,6 @@ def output_file_name(self) -> Path: return Path(f"{file_name.stem}.{test_function}.out") - @property - def old_result_file(self) -> Path: - return Path(self.test_folder, "_regtest_outputs", self.old_output_file_name) - @property def result_file(self) -> Path: return Path(self.test_folder, "_regtest_outputs", self.output_file_name) @@ -221,9 +206,6 @@ def tobe(self): if os.path.exists(self.result_file): with open(self.result_file) as f: return f.read() - if os.path.exists(self.old_result_file): - with open(self.old_result_file) as f: - return f.read() return "" @@ -239,10 +221,6 @@ def write_current(self): folder = os.path.dirname(self.result_file) if not os.path.exists(folder): os.makedirs(folder) - if os.path.exists(self.old_result_file): - with open(self.old_result_file, "w") as fh: - fh.write(self.current) - return with open(self.result_file, "w") as fh: fh.write(self.current) diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-016-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-016-a_custom_library].out deleted file mode 100644 index daef5ac9..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-016-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-020-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-020-a_custom_library].out deleted file mode 100644 index 444f2120..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-020-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-023-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-023-a_custom_library].out deleted file mode 100644 index cf7ff2b5..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-011-023-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-016-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-016-a_same_custom_library].out deleted file mode 100644 index 947e15b3..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-016-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-020-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-020-a_same_custom_library].out deleted file mode 100644 index 3a23b8af..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-020-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-023-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-023-a_same_custom_library].out deleted file mode 100644 index 5480c015..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf41/test_references.test[references.robot-013-023-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-016-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-016-a_custom_library].out deleted file mode 100644 index daef5ac9..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-016-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-020-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-020-a_custom_library].out deleted file mode 100644 index 444f2120..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-020-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-023-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-023-a_custom_library].out deleted file mode 100644 index cf7ff2b5..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-011-023-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-016-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-016-a_same_custom_library].out deleted file mode 100644 index 947e15b3..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-016-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-020-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-020-a_same_custom_library].out deleted file mode 100644 index 3a23b8af..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-020-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-023-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-023-a_same_custom_library].out deleted file mode 100644 index 5480c015..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf50/test_references.test[references.robot-013-023-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-016-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-016-a_custom_library].out deleted file mode 100644 index daef5ac9..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-016-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-020-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-020-a_custom_library].out deleted file mode 100644 index 444f2120..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-020-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-023-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-023-a_custom_library].out deleted file mode 100644 index cf7ff2b5..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-011-023-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-016-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-016-a_same_custom_library].out deleted file mode 100644 index 947e15b3..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-016-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-020-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-020-a_same_custom_library].out deleted file mode 100644 index 3a23b8af..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-020-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-023-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-023-a_same_custom_library].out deleted file mode 100644 index 5480c015..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf60/test_references.test[references.robot-013-023-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-016-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-016-a_custom_library].out deleted file mode 100644 index b1439e05..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-016-a_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-020-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-020-a_custom_library].out deleted file mode 100644 index 593481a6..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-020-a_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-023-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-023-a_custom_library].out deleted file mode 100644 index 5d68496c..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-011-023-a_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-016-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-016-a_same_custom_library].out deleted file mode 100644 index 9cfd3581..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-016-a_same_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-020-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-020-a_same_custom_library].out deleted file mode 100644 index aa48143f..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-020-a_same_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-023-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-023-a_same_custom_library].out deleted file mode 100644 index 198ed323..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf61/test_references.test[references.robot-013-023-a_same_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-016-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-016-a_custom_library].out deleted file mode 100644 index b1439e05..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-016-a_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-020-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-020-a_custom_library].out deleted file mode 100644 index 593481a6..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-020-a_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-023-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-023-a_custom_library].out deleted file mode 100644 index 5d68496c..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-011-023-a_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-016-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-016-a_same_custom_library].out deleted file mode 100644 index 9cfd3581..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-016-a_same_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-020-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-020-a_same_custom_library].out deleted file mode 100644 index aa48143f..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-020-a_same_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-023-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-023-a_same_custom_library].out deleted file mode 100644 index 198ed323..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf70/test_references.test[references.robot-013-023-a_same_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-016-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-016-a_custom_library].out deleted file mode 100644 index b1439e05..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-016-a_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-020-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-020-a_custom_library].out deleted file mode 100644 index 593481a6..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-020-a_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-023-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-023-a_custom_library].out deleted file mode 100644 index 5d68496c..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-011-023-a_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-016-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-016-a_same_custom_library].out deleted file mode 100644 index 9cfd3581..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-016-a_same_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-020-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-020-a_same_custom_library].out deleted file mode 100644 index aa48143f..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-020-a_same_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-023-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-023-a_same_custom_library].out deleted file mode 100644 index 198ed323..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf71/test_references.test[references.robot-013-023-a_same_custom_library].out +++ /dev/null @@ -1,113 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-016-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-016-a_custom_library].out deleted file mode 100644 index daef5ac9..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-016-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-020-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-020-a_custom_library].out deleted file mode 100644 index 444f2120..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-020-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-023-a_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-023-a_custom_library].out deleted file mode 100644 index cf7ff2b5..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-011-023-a_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 11 - name: a custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-016-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-016-a_same_custom_library].out deleted file mode 100644 index 947e15b3..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-016-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 16 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-020-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-020-a_same_custom_library].out deleted file mode 100644 index 3a23b8af..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-020-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 20 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-023-a_same_custom_library].out b/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-023-a_same_custom_library].out deleted file mode 100644 index 5480c015..00000000 --- a/tests/robotcode/language_server/robotframework/parts/_regtest_outputs/rf72/test_references.test[references.robot-013-023-a_same_custom_library].out +++ /dev/null @@ -1,122 +0,0 @@ -data: !GeneratedTestData - character: 23 - line: 13 - name: a same custom library -result: -- !Location - range: - end: - character: 26 - line: 1 - start: - character: 18 - line: 1 - uri: resources/firstresource.resource -- !Location - range: - end: - character: 24 - line: 12 - start: - character: 16 - line: 12 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 14 - start: - character: 16 - line: 14 - uri: tests/code_action_show_documentation.robot -- !Location - range: - end: - character: 24 - line: 9 - start: - character: 16 - line: 9 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 24 - line: 10 - start: - character: 16 - line: 10 - uri: tests/document_highlight.robot -- !Location - range: - end: - character: 21 - line: 6 - start: - character: 10 - line: 6 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 19 - line: 7 - start: - character: 11 - line: 7 - uri: tests/duplicated_resources.robot -- !Location - range: - end: - character: 22 - line: 1 - start: - character: 11 - line: 1 - uri: tests/external_libray.robot -- !Location - range: - end: - character: 43 - line: 14 - start: - character: 18 - line: 14 - uri: tests/goto.robot -- !Location - range: - end: - character: 26 - line: 3 - start: - character: 18 - line: 3 - uri: tests/hover.robot -- !Location - range: - end: - character: 26 - line: 5 - start: - character: 18 - line: 5 - uri: tests/hover.robot -- !Location - range: - end: - character: 24 - line: 11 - start: - character: 16 - line: 11 - uri: tests/references.robot -- !Location - range: - end: - character: 24 - line: 13 - start: - character: 16 - line: 13 - uri: tests/references.robot diff --git a/tests/robotcode/language_server/robotframework/parts/data/tests/references.robot b/tests/robotcode/language_server/robotframework/parts/data/tests/references.robot index fc9f27df..7a1e9096 100644 --- a/tests/robotcode/language_server/robotframework/parts/data/tests/references.robot +++ b/tests/robotcode/language_server/robotframework/parts/data/tests/references.robot @@ -10,10 +10,10 @@ Variables ${CURDIR}/../lib/myvariables.py Resource ${CURDIR}/../resources/firstresource.resource # ^^^^^^ Variable in resource import path Library alibrary a_param=from hello WITH NAME lib_hello -## ^^^^^^^^ a custom library +## ^^^^^^^^ a custom library # TODO: flaky Library alibrary a_param=${LIB_ARG} WITH NAME lib_var # ^^^^^^^ Variable in library params -## ^^^^^^^^ a same custom library +## ^^^^^^^^ a same custom library # TODO: flaky Suite Setup BuiltIn.Log To Console hi from suite setup # ^^^^^^^^^^^^^^ suite fixture keyword call with namespace Test Setup Log To Console hi from test setup diff --git a/tests/robotcode/language_server/robotframework/parts/pytest_regtestex.py b/tests/robotcode/language_server/robotframework/parts/pytest_regtestex.py index b5a01705..65a19873 100644 --- a/tests/robotcode/language_server/robotframework/parts/pytest_regtestex.py +++ b/tests/robotcode/language_server/robotframework/parts/pytest_regtestex.py @@ -8,15 +8,6 @@ class RegTestFixtureEx(RegTestFixture): - @property - def old_result_file(self) -> Path: - return Path( - self.test_folder, - "_regtest_outputs", - rf_version, - self.old_output_file_name, - ) - @property def result_file(self) -> Path: return Path( diff --git a/tests/robotcode/language_server/robotframework/tools.py b/tests/robotcode/language_server/robotframework/tools.py index d5a5ff35..dba1d468 100644 --- a/tests/robotcode/language_server/robotframework/tools.py +++ b/tests/robotcode/language_server/robotframework/tools.py @@ -77,7 +77,7 @@ def generate_test_id_with_path(base_path: Path, params: Any) -> Any: return repr(params) if isinstance(params, Path): if base_path: - return str(params.relative_to(base_path)) + return str(params.relative_to(base_path).as_posix()) return params.name return params From 58143bc50398d9b757160adadbc303e2df25e85c Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Tue, 29 Apr 2025 16:13:44 +0200 Subject: [PATCH 28/35] =?UTF-8?q?chore(release):=20bump=20version=201.0.3?= =?UTF-8?q?=20=E2=86=92=201.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fd852ac..b9173b5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -87,6 +87,8 @@ All notable changes to this project will be documented in this file. See [conven ### Testing - Fix some unittest ([98e4d5c](https://github.com/robotcodedev/robotcode/commit/98e4d5c2e69e1d2a3a1518456f85ff04b15be920)) +- Disable some flaky tests ([f9a1a82](https://github.com/robotcodedev/robotcode/commit/f9a1a823c6cb9d885231c81830d6e438cf60b680)) +- Disable some flaky tests and correct regression test output file to be platform independent ([4387984](https://github.com/robotcodedev/robotcode/commit/43879844c9fdc845ae2b9fa373f076eb13a9feb9)) ## [1.0.3](https://github.com/robotcodedev/robotcode/compare/v1.0.2..v1.0.3) - 2025-03-14 From b5fa232f4c0fd3032b863363c141d8ffeff6c8c7 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Sat, 3 May 2025 00:40:02 +0200 Subject: [PATCH 29/35] fix(intellij): corrected handling of short by-longname argument --- .../execution/RobotCodeRunProfileState.kt | 90 +++++++++---------- .../RobotCodeTokensFileViewProviderFactory.kt | 5 ++ 2 files changed, 50 insertions(+), 45 deletions(-) create mode 100644 intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeTokensFileViewProviderFactory.kt diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/execution/RobotCodeRunProfileState.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/execution/RobotCodeRunProfileState.kt index 31fafbfd..31e5d9c3 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/execution/RobotCodeRunProfileState.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/execution/RobotCodeRunProfileState.kt @@ -46,56 +46,56 @@ import kotlin.uuid.Uuid class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, environment: ExecutionEnvironment) : CommandLineState(environment), ProcessListener { - + companion object { const val DEBUGGER_DEFAULT_PORT = 6612 val DEBUG_PORT: Key = Key.create("ROBOTCODE_DEBUG_PORT") const val TESTFRAMEWORK_NAME = "RobotCode" } - + val debugClient = RobotCodeDebugProtocolClient() lateinit var debugServer: IDebugProtocolServer var isInitialized = false private set var isConfigurationDone = false private set - + val afterInitialize = Signal() val afterConfigurationDone = Signal() - - + + init { debugClient.onTerminated.adviseEternal { if (socket.isConnected) socket.close() } } - + private lateinit var socket: Socket - + override fun startProcess(): ProcessHandler { val project = environment.project val profile = environment.runProfile as? RobotCodeRunConfiguration ?: throw CantRunException("Invalid run configuration") - + // TODO: Add support for configurable paths val defaultPaths = arrayOf("-dp", ".") - + val debug = environment.runner is RobotCodeDebugProgramRunner - + val included = mutableListOf() for (test in profile.includedTestItems) { - included.add("--bl") + included.add("-bl") included.add(test.longname) } - + val connection = mutableListOf() - + val port = findFreePort(DEBUGGER_DEFAULT_PORT) if (port != DEBUGGER_DEFAULT_PORT) { included.add("--tcp") included.add(port.toString()) } - + val commandLine = project.buildRobotCodeCommandLine( arrayOf( *defaultPaths, @@ -104,30 +104,30 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en *(if (!debug) arrayOf("--no-debug") else arrayOf()), *(included.toTypedArray()) ), noColor = false // ,extraArgs = arrayOf("-v", "--log", "--log-level", "TRACE") - + ) - + val handler = KillableColoredProcessHandler(commandLine) // handler.setHasPty(true) handler.putUserData(DEBUG_PORT, port) ProcessTerminatedListener.attach(handler) handler.addProcessListener(this) - + // RunContentManager.getInstance(project).showRunContent(environment.executor, handler) - + return handler } - + override fun execute(executor: Executor, runner: ProgramRunner<*>): ExecutionResult { val processHandler = startProcess() val (console, properties) = createAndAttachConsoleInEDT(processHandler, executor) - + val result = DefaultExecutionResult(console, processHandler, *createActions(console, processHandler)) result.setRestartActions(properties.createRerunFailedTestsAction(console)) - + return result } - - + + private fun createAndAttachConsoleInEDT( processHandler: ProcessHandler, executor: Executor ): Pair { @@ -136,12 +136,12 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en ApplicationManager.getApplication().invokeAndWait { try { val propertiesProvider = config as SMRunnerConsolePropertiesProvider - + val consoleProperties = propertiesProvider.createTestConsoleProperties(executor) if (consoleProperties is RobotRunnerConsoleProperties) { consoleProperties.state = this } - + var splitterPropertyName = SMTestRunnerConnectionUtil.getSplitterPropertyName(TESTFRAMEWORK_NAME) var consoleView = RobotCodeRunnerConsoleView(consoleProperties, splitterPropertyName) SMTestRunnerConnectionUtil.initConsoleView(consoleView, TESTFRAMEWORK_NAME) @@ -149,21 +149,21 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en consoleRef.set(consoleView) // consoleRef.set(createAndAttachConsole("RobotCode", processHandler, consoleProperties)) propertiesRef.set(consoleProperties) - + } catch (e: ExecutionException) { consoleRef.set(e) } catch (e: RuntimeException) { consoleRef.set(e) } } - + if (consoleRef.get() is ExecutionException) { throw consoleRef.get() as ExecutionException } else if (consoleRef.get() is RuntimeException) throw consoleRef.get() as RuntimeException - + return Pair(consoleRef.get() as BaseTestsOutputConsoleView, propertiesRef.get() as SMTRunnerConsoleProperties) } - + private suspend fun tryConnectToServerWithTimeout( host: String, port: Int, timeoutMillis: Long, retryIntervalMillis: Long ): Socket? { @@ -180,7 +180,7 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en } catch (_: Exception) { } delay(retryIntervalMillis) - + } socket } @@ -188,54 +188,54 @@ class RobotCodeRunProfileState(private val config: RobotCodeRunConfiguration, en null } } - + @OptIn(ExperimentalUuidApi::class) override fun startNotified(event: ProcessEvent) { runBlocking(Dispatchers.IO) { - + var port = event.processHandler.getUserData(DEBUG_PORT) ?: throw CantRunException("No debug port found.") - + socket = tryConnectToServerWithTimeout("127.0.0.1", port, 10000, retryIntervalMillis = 100) ?: throw CantRunException("Unable to establish connection to debug server.") - + val launcher: Launcher = DSPLauncher.createClientLauncher(debugClient, socket.getInputStream(), socket.getOutputStream()) - + launcher.startListening() - + debugServer = launcher.remoteProxy - + val arguments = InitializeRequestArguments().apply { clientID = Uuid.random().toString() adapterID = Uuid.random().toString() - + clientName = "RobotCode4IJ" locale = "en_US" - + supportsRunInTerminalRequest = false supportsStartDebuggingRequest = false pathFormat = "path" supportsVariableType = true supportsVariablePaging = false - + linesStartAt1 = true columnsStartAt1 = true } - + val response = debugServer.initialize(arguments).await() isInitialized = true - + afterInitialize.fire(Unit) - + if (response.supportsConfigurationDoneRequest) { debugServer.configurationDone(ConfigurationDoneArguments()).await() isConfigurationDone = true } - + afterConfigurationDone.fire(Unit) debugServer.attach(emptyMap()) } } - + override fun processTerminated(event: ProcessEvent) { if (socket.isConnected) socket.close() } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeTokensFileViewProviderFactory.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeTokensFileViewProviderFactory.kt new file mode 100644 index 00000000..d94fbc45 --- /dev/null +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeTokensFileViewProviderFactory.kt @@ -0,0 +1,5 @@ +package dev.robotcode.robotcode4ij.lsp + +import com.intellij.psi.FileViewProviderFactory + +class RobotCodeTokensFileViewProviderFactory : FileViewProviderFactory From e94c96b99646e602820663f1210d0df962251bf1 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Sat, 3 May 2025 00:50:22 +0200 Subject: [PATCH 30/35] fix: update IntelliJ platform version and plugin dependencies because of some new features regarding syntax highlightning and text mate the minimal supported version is PyCharm 2025.1 --- intellij-client/gradle.properties | 13 ++++++++----- intellij-client/gradle/libs.versions.toml | 8 +++----- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/intellij-client/gradle.properties b/intellij-client/gradle.properties index d4d8c218..a467fd32 100644 --- a/intellij-client/gradle.properties +++ b/intellij-client/gradle.properties @@ -7,22 +7,25 @@ pluginRepositoryUrl = https://github.com/robotcodedev/robotcode4ij pluginVersion = 1.1.0 # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html -pluginSinceBuild = 243 -pluginUntilBuild = 251.* +pluginSinceBuild = 251 +pluginUntilBuild = 261.* # IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension platformType = PC -platformVersion = 2024.3.1 +platformVersion = 2025.1 # Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html # Example: platformPlugins = com.jetbrains.php:203.4449.22, org.intellij.scala:2023.3.27@EAP -platformPlugins = com.redhat.devtools.lsp4ij:0.10.0 +#platformPlugins = com.redhat.devtools.lsp4ij:0.13.0-20250501-072621@nightly +platformPlugins = com.redhat.devtools.lsp4ij:0.12.0 + + # Example: platformBundledPlugins = com.intellij.java platformBundledPlugins = PythonCore, org.jetbrains.plugins.textmate # Gradle Releases -> https://github.com/gradle/gradle/releases -gradleVersion = 8.12 +gradleVersion = 8.14 # Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib kotlin.stdlib.default.dependency = false diff --git a/intellij-client/gradle/libs.versions.toml b/intellij-client/gradle/libs.versions.toml index 71690abd..fa64f2a6 100644 --- a/intellij-client/gradle/libs.versions.toml +++ b/intellij-client/gradle/libs.versions.toml @@ -1,13 +1,13 @@ [versions] # libraries -annotations = "26.0.1" -kotlinxSerialization = "1.7.3" +annotations = "26.0.2" +kotlinxSerialization = "1.8.1" junit = "4.13.2" lsp4j = "0.21.1" # plugins changelog = "2.2.1" -intelliJPlatForm = "2.2.1" +intelliJPlatForm = "2.5.0" kotlin = "2.1.0" kover = "0.9.1" @@ -55,5 +55,3 @@ version.ref = "kover" [plugins.kotlinSerialization] id = "org.jetbrains.kotlin.plugin.serialization" version.ref = "kotlin" - - From 5cdf3c3ab87857db294e63bcdc0798f1cfd5eacd Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Sun, 4 May 2025 10:51:35 +0200 Subject: [PATCH 31/35] fix(intellij): reenable semantic highlightning, because something has changed in the new LSP4IJ API --- intellij-client/gradle.properties | 2 +- intellij-client/gradle/libs.versions.toml | 4 +- .../RobotCodeSyntaxHighlighter.kt | 1 - .../RobotCodeSemanticTokensColorsProvider.kt | 9 ++- .../RobotCodeTokensFileViewProviderFactory.kt | 32 +++++++++- .../RobotSemanticTokensHighlightVisitor.kt | 64 +++++++++++++++++++ .../psi/RobotCodeParserDefinition.kt | 5 +- .../src/main/resources/META-INF/plugin.xml | 22 +++++++ .../colorSchemes/RobotDarculaColorScheme.xml | 6 ++ .../colorSchemes/RobotDarkColorScheme.xml | 6 ++ .../colorSchemes/RobotLightColorScheme.xml | 6 ++ 11 files changed, 147 insertions(+), 10 deletions(-) create mode 100644 intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotSemanticTokensHighlightVisitor.kt diff --git a/intellij-client/gradle.properties b/intellij-client/gradle.properties index a467fd32..dd8b52c0 100644 --- a/intellij-client/gradle.properties +++ b/intellij-client/gradle.properties @@ -17,7 +17,7 @@ platformVersion = 2025.1 # Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html # Example: platformPlugins = com.jetbrains.php:203.4449.22, org.intellij.scala:2023.3.27@EAP -#platformPlugins = com.redhat.devtools.lsp4ij:0.13.0-20250501-072621@nightly +#platformPlugins = com.redhat.devtools.lsp4ij:0.13.0-20250502-121924@nightly platformPlugins = com.redhat.devtools.lsp4ij:0.12.0 diff --git a/intellij-client/gradle/libs.versions.toml b/intellij-client/gradle/libs.versions.toml index fa64f2a6..2ddcd773 100644 --- a/intellij-client/gradle/libs.versions.toml +++ b/intellij-client/gradle/libs.versions.toml @@ -1,14 +1,14 @@ [versions] # libraries annotations = "26.0.2" -kotlinxSerialization = "1.8.1" +kotlinxSerialization = "1.7.3" junit = "4.13.2" lsp4j = "0.21.1" # plugins changelog = "2.2.1" intelliJPlatForm = "2.5.0" -kotlin = "2.1.0" +kotlin = "2.1.10" kover = "0.9.1" [libraries.lsp4j] diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeSyntaxHighlighter.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeSyntaxHighlighter.kt index 030d42ea..bd798f9d 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeSyntaxHighlighter.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeSyntaxHighlighter.kt @@ -92,7 +92,6 @@ class RobotCodeSyntaxHighlighter : SyntaxHighlighterBase() { ) } - private val myLexer = RobotCodeLexer() override fun getHighlightingLexer(): Lexer { diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt index b437a73b..1ae8977c 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt @@ -28,6 +28,7 @@ private val mapping by lazy { "nameCall" to Colors.NAME_CALL, "argument" to Colors.ARGUMENT, "embeddedArgument" to Colors.EMBEDDED_ARGUMENT, + "argument,embedded" to Colors.EMBEDDED_ARGUMENT, "namedArgument" to Colors.NAMED_ARGUMENT, "variable" to Colors.VARIABLE, "variableExpression" to Colors.VARIABLE_EXPRESSION, @@ -44,10 +45,14 @@ class RobotCodeSemanticTokensColorsProvider : DefaultSemanticTokensColorsProvide override fun getTextAttributesKey( tokenType: String, tokenModifiers: MutableList, file: PsiFile ): TextAttributesKey? { - val result = mapping[tokenType] ?: super.getTextAttributesKey(tokenType, tokenModifiers, file) + var tokenTypeAndModifiers = tokenType + if (tokenModifiers.isNotEmpty()) { + tokenTypeAndModifiers += ",${tokenModifiers.joinToString(",")}" + } + val result = mapping[tokenTypeAndModifiers] ?: mapping[tokenType] ?: super.getTextAttributesKey(tokenType, tokenModifiers, file) return result ?: run { - thisLogger().warn("Unknown token type: $tokenType") + thisLogger().warn("Unknown token type: $tokenType and modifiers: $tokenModifiers") null } } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeTokensFileViewProviderFactory.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeTokensFileViewProviderFactory.kt index d94fbc45..f718fa1a 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeTokensFileViewProviderFactory.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeTokensFileViewProviderFactory.kt @@ -1,5 +1,35 @@ package dev.robotcode.robotcode4ij.lsp +import com.intellij.lang.Language +import com.intellij.openapi.vfs.VirtualFile +import com.intellij.psi.FileViewProvider import com.intellij.psi.FileViewProviderFactory +import com.intellij.psi.PsiManager +import com.redhat.devtools.lsp4ij.features.semanticTokens.viewProvider.LSPSemanticTokensFileViewProvider +import com.redhat.devtools.lsp4ij.features.semanticTokens.viewProvider.LSPSemanticTokensSingleRootFileViewProvider +import dev.robotcode.robotcode4ij.RobotFrameworkLanguage -class RobotCodeTokensFileViewProviderFactory : FileViewProviderFactory +class RobotCodeTokensFileViewProviderFactory : FileViewProviderFactory { + override fun createFileViewProvider( + file: VirtualFile, + language: Language?, + manager: PsiManager, + eventSystemEnabled: Boolean + ): FileViewProvider { + if (language == RobotFrameworkLanguage) { + return RobotCodeTokensFileViewProvider(manager, file, eventSystemEnabled, language) + } + throw UnsupportedOperationException("Unsupported language: $language or file: $file") + } +} + +class RobotCodeTokensFileViewProvider( + manager: PsiManager, + file: VirtualFile, + eventSystemEnabled: Boolean, + language: Language +) : LSPSemanticTokensSingleRootFileViewProvider(manager, file, eventSystemEnabled, language), + LSPSemanticTokensFileViewProvider { + + +} diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotSemanticTokensHighlightVisitor.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotSemanticTokensHighlightVisitor.kt new file mode 100644 index 00000000..14cf831c --- /dev/null +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotSemanticTokensHighlightVisitor.kt @@ -0,0 +1,64 @@ +package dev.robotcode.robotcode4ij.lsp + +import com.intellij.codeInsight.daemon.impl.HighlightVisitor +import com.intellij.codeInsight.daemon.impl.analysis.HighlightInfoHolder +import com.intellij.openapi.diagnostic.thisLogger +import com.intellij.psi.PsiElement +import com.intellij.psi.PsiFile +import com.redhat.devtools.lsp4ij.LSPFileSupport +import com.redhat.devtools.lsp4ij.LSPIJUtils +import com.redhat.devtools.lsp4ij.features.semanticTokens.LazyHighlightInfo +import com.redhat.devtools.lsp4ij.internal.PsiFileChangedException +import dev.robotcode.robotcode4ij.RobotFrameworkLanguage +import kotlinx.coroutines.future.await +import kotlinx.coroutines.runBlocking +import org.eclipse.lsp4j.SemanticTokensParams +import java.util.concurrent.ExecutionException + +class RobotSemanticTokensHighlightVisitor : HighlightVisitor { + override fun suitableForFile(file: PsiFile): Boolean { + return file.language == RobotFrameworkLanguage + } + + override fun visit(element: PsiElement) { + // No-op + } + + override fun analyze( + file: PsiFile, + updateWholeFile: Boolean, + holder: HighlightInfoHolder, + action: Runnable + ): Boolean { + action.run() + runBlocking { + highlight(file, holder) + } + return true + } + + suspend fun highlight(file: PsiFile, holder: HighlightInfoHolder) { + val semanticTokensSupport = LSPFileSupport.getSupport(file).getSemanticTokensSupport() + val params = SemanticTokensParams(LSPIJUtils.toTextDocumentIdentifier(file.virtualFile)) + + val semanticTokens = try { + semanticTokensSupport.getSemanticTokens(params).await() + } catch (_: PsiFileChangedException) { + semanticTokensSupport.cancel() + return + } catch (e: ExecutionException) { + thisLogger().error("Error while consuming LSP 'textDocument/semanticTokens/full' request", e) + return + } + + val document = LSPIJUtils.getDocument(file.virtualFile) ?: return + + semanticTokens.highlight(file, document) { start, end, colorKey -> + holder.add(LazyHighlightInfo.resolve(start, end, colorKey)) + } + } + + override fun clone(): HighlightVisitor { + return RobotSemanticTokensHighlightVisitor() + } +} diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/psi/RobotCodeParserDefinition.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/psi/RobotCodeParserDefinition.kt index 33847551..6867094b 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/psi/RobotCodeParserDefinition.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/psi/RobotCodeParserDefinition.kt @@ -34,14 +34,13 @@ class RobotCodeParserDefinition : ParserDefinition { } override fun getStringLiteralElements(): TokenSet { - // return STRING_TOKENS - return TokenSet.EMPTY + return STRING_TOKENS } override fun createElement(node: ASTNode): PsiElement { return when (node.elementType) { - is IRobotFrameworkElementType -> SimpleASTWrapperPsiElement(node) is RobotTextMateElementType -> ASTWrapperPsiElement(node) + is IRobotFrameworkElementType -> SimpleASTWrapperPsiElement(node) else -> throw IllegalArgumentException("Unknown element type: ${node.elementType}") } diff --git a/intellij-client/src/main/resources/META-INF/plugin.xml b/intellij-client/src/main/resources/META-INF/plugin.xml index c1c181a5..f0b83b62 100644 --- a/intellij-client/src/main/resources/META-INF/plugin.xml +++ b/intellij-client/src/main/resources/META-INF/plugin.xml @@ -9,6 +9,7 @@ com.intellij.modules.python com.redhat.devtools.lsp4ij org.jetbrains.plugins.textmate + robocorp.lsp.intellij com.github.jnhyperion.hyperrobotframeworkplugin com.millennialmedia.intellibot @@ -50,6 +51,27 @@ language="robotframework" implementationClass="com.redhat.devtools.lsp4ij.features.documentSymbol.LSPDocumentSymbolStructureViewFactory"/> + + + + + + + + + + + diff --git a/intellij-client/src/main/resources/colorSchemes/RobotDarkColorScheme.xml b/intellij-client/src/main/resources/colorSchemes/RobotDarkColorScheme.xml index 6822c88c..570b3598 100644 --- a/intellij-client/src/main/resources/colorSchemes/RobotDarkColorScheme.xml +++ b/intellij-client/src/main/resources/colorSchemes/RobotDarkColorScheme.xml @@ -17,4 +17,10 @@ + diff --git a/intellij-client/src/main/resources/colorSchemes/RobotLightColorScheme.xml b/intellij-client/src/main/resources/colorSchemes/RobotLightColorScheme.xml index d8395a5b..74550962 100644 --- a/intellij-client/src/main/resources/colorSchemes/RobotLightColorScheme.xml +++ b/intellij-client/src/main/resources/colorSchemes/RobotLightColorScheme.xml @@ -17,4 +17,10 @@ + From 5b7c4b13469072e3c39c8c112118149ac4b5b1cd Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Wed, 7 May 2025 20:28:47 +0200 Subject: [PATCH 32/35] feat(langserver): refactor and optimize Robot Framework textmate syntax highlighting rules this also fixes the loading of robotframework core test files in PyCharm --- syntaxes/robotframework-repl.tmLanguage.json | 6 +- syntaxes/robotframework.tmLanguage.json | 448 +++++++----------- .../robotframework.tmLanguage.template.json | 448 +++++++----------- 3 files changed, 341 insertions(+), 561 deletions(-) diff --git a/syntaxes/robotframework-repl.tmLanguage.json b/syntaxes/robotframework-repl.tmLanguage.json index 6a4b1599..6af6eaad 100644 --- a/syntaxes/robotframework-repl.tmLanguage.json +++ b/syntaxes/robotframework-repl.tmLanguage.json @@ -41,7 +41,7 @@ ] }, "expression_var": { - "name": "meta.variables.expression.robotframework", + "name": "meta.variable.expression.robotframework", "begin": "[$@&]\\{\\{", "end": "\\}\\}", "beginCaptures": { "0": { "name": "punctuation.definition.expression.begin.robotframework" } }, @@ -73,7 +73,7 @@ "patterns": [ { "include": "#variables" } ] }, "simple_var": { - "name": "meta.variables.robotframework", + "name": "meta.variable.simple.robotframework", "contentName": "variable.name.readwrite.robotframework", "begin": "[$@&]\\{", "end": "(\\})|(?= {2}| ?\\t| ?$)", @@ -82,7 +82,7 @@ "patterns": [ { "include": "#expression_var" } ] }, "env_var": { - "name": "meta.variables.robotframework", + "name": "meta.variable.env.robotframework", "begin": "(%\\{)", "end": "(\\})|(?= {2}| ?\\t| ?$)", "beginCaptures": { "0": { "name": "punctuation.definition.envvar.begin.robotframework" } }, diff --git a/syntaxes/robotframework.tmLanguage.json b/syntaxes/robotframework.tmLanguage.json index 1b5393e7..095789cb 100644 --- a/syntaxes/robotframework.tmLanguage.json +++ b/syntaxes/robotframework.tmLanguage.json @@ -1,33 +1,55 @@ { "$schema": "https://raw.githubusercontent.com/RedCMD/TmLanguage-Syntax-Highlighter/main/vscode.tmLanguage.schema.json", "repository": { - "arg_separator": { - "name": "meta.arg.separator.robotframework", - "match": "( {2}| ?\\t)+" + "argument": { + "match": "\\S+(?: \\S+)*", + "name": "string.unquoted.argument.robotframework", + "captures": { + "0": { + "patterns": [ + { "include": "#escape" }, + { "include": "#variables" } + ] + } + } }, - "variable_setting": { - "name": "meta.variable.assign.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "^([$@&]\\{)(.*?)(\\})( ?=?)", - "beginCaptures": { - "1": { "name": "punctuation.definition.variable.begin.robotframework" }, - "2": { - "name": "variable.name.readwrite.robotframework", - "patterns": [ { "include": "#variables" } ] - }, - "3": { "name": "punctuation.definition.variable.end.robotframework" }, - "4": { "name": "keyword.operator.robotframework" } - }, + "arguments": { + "name": "meta.arguments.robotframework", + "begin": "(?!(?: {2,}| ?\\t ?)+)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "patterns": [ { "include": "#escape" }, { "include": "#comment" }, { "include": "#comment_line" }, - { "include": "#line_continuation" }, { "include": "#variables" }, - { "include": "#arg_separator"} + { "include": "#line_continuation" }, + { "include": "#argument" } ] }, + "variable_setting": { + "name": "meta.variables.setting.robotframework", + "begin": "^(.*?)(?= {2}| ?\\t| ?$)", + "beginCaptures": { + "1": { + "name": "meta.variables.setting.variable.robotframework", + "patterns": [ { "include": "#variable_assignment" } ] + } + }, + "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", + "patterns": [ { "include": "#arguments" } ] + }, + "variable_assignment": { + "name": "meta.variable.assign.robotframework", + "contentName": "variable.name.readwrite.robotframework", + "begin": "[$@&]\\{", + "end": "(\\}( ?=)?)(?=( {2}| ?\\t| ?$))", + "beginCaptures": { "0": { "name": "punctuation.definition.variable.begin.robotframework" } }, + "endCaptures": { + "1": { "name": "punctuation.definition.variable.end.robotframework" }, + "2": { "name": "keyword.operator.robotframework" } + }, + "patterns": [ { "include": "#variables" } ] + }, "variables_section": { "name": "meta.section.variables.robotframework", "begin": "^(\\*+\\s*(?i:variables?|proměnné|variabelen|varijable|muuttujat|variables|variablen|variáveis|กำหนดตัวแปร|zmienne|змінні|переменные|变量|變量|değişkenler|variabler|променливи|variabile|variabili|चर|các biến số|変数|변수)( ?\\*+)?)(?= {2}| ?\\t| ?$)", @@ -46,15 +68,12 @@ ] }, "expression_var": { - "name": "meta.variables.expression.robotframework", + "name": "meta.variable.expression.robotframework", "begin": "[$@&]\\{\\{", "end": "\\}\\}", "beginCaptures": { "0": { "name": "punctuation.definition.expression.begin.robotframework" } }, "endCaptures": { "0": { "name": "punctuation.definition.expression.end.robotframework" } }, - "patterns": [ - { "include": "#expression" }, - { "include": "#simple_var" } - ] + "patterns": [ { "include": "#variables" } ] }, "embedded_argument": { "name": "meta.embedded_argument.robotframework", @@ -78,16 +97,27 @@ "patterns": [ { "include": "#variables" } ] }, "simple_var": { - "name": "meta.variables.robotframework", + "name": "meta.variable.simple.robotframework", "contentName": "variable.name.readwrite.robotframework", "begin": "[$@&]\\{", "end": "(\\})|(?= {2}| ?\\t| ?$)", "beginCaptures": { "0": { "name": "punctuation.definition.variable.begin.robotframework" } }, "endCaptures": { "1": { "name": "punctuation.definition.variable.end.robotframework" } }, - "patterns": [ { "include": "#expression_var" } ] + "patterns": [ + { "include": "#simple_curly_braces" }, + { "include": "#variables" } + ] + }, + "simple_curly_braces": { + "name": "meta.variable.simple.robotframework", + "contentName": "variable.name.readwrite.robotframework", + "begin": "\\{", + "end": "\\}|(?= {2}| ?\\t| ?$)", + "beginCaptures": { "0": { "name": "punctuation.definition.curly.begin.robotframework" } }, + "endCaptures": { "1": { "name": "punctuation.definition.curly.end.robotframework" } } }, "env_var": { - "name": "meta.variables.robotframework", + "name": "meta.variable.env.robotframework", "begin": "(%\\{)", "end": "(\\})|(?= {2}| ?\\t| ?$)", "beginCaptures": { "0": { "name": "punctuation.definition.envvar.begin.robotframework" } }, @@ -129,8 +159,11 @@ }, "settings_section": { "name": "meta.section.settings.robotframework", - "begin": "^(\\*+\\s*(?i:settings?|nastavení|instellingen|postavke|asetukset|paramètres|einstellungen|configurações|definições|การตั้งค่า|ustawienia|налаштування|configuraciones|настройки|设置|設置|ayarlar|inställningar|setari|impostazioni|स्थापना|cài đặt|設定|설정?)( ?\\*+)?)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.other.header.settings.robotframework" } }, + "begin": "^(\\*+\\s*(?i:settings?|nastavení|instellingen|postavke|asetukset|paramètres|einstellungen|configurações|definições|การตั้งค่า|ustawienia|налаштування|configuraciones|настройки|设置|設置|ayarlar|inställningar|setari|impostazioni|स्थापना|cài đặt|設定|설정)( ?\\*+)?)(.*$)", + "beginCaptures": { + "1": { "name": "keyword.other.header.settings.robotframework" }, + "3": { "name": "comment.header.robotframework" } + }, "end": "^(?=\\*)", "patterns": [ { "include": "#comment_line" }, @@ -139,40 +172,55 @@ { "include": "#unknown_setting" } ] }, - "documentation_setting": { - "contentName": "markup.robotframework", - "begin": "(?i)^(documentation|dokumentace|documentatie|dokumentacija|dokumentaatio|dokumentation|documentação|เอกสาร|dokumentacja|документація|documentación|документация|说明|說明|dokümantasyon|documentazione|प्रलेखन|tài liệu hướng dẫn|ドキュメント|문서)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.control.settings.robotframework" } }, + "documentation_argument": { + "match": "\\S+(?: \\S+)*?", + "name": "markup.robotframework", + "captures": { + "0": { + "patterns": [ + { "include": "#escape" }, + { "include": "#documentation_italic" }, + { "include": "#documentation_bold" }, + { "include": "#variables" } + ] + } + } + }, + "documentation_arguments": { + "begin": "(?!(?: {2,}| ?\\t ?)+)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "patterns": [ { "include": "#comment" }, { "include": "#comment_line" }, + { "include": "#escape" }, { "include": "#documentation_italic" }, { "include": "#documentation_bold" }, - { "include": "#escape" }, { "include": "#variables" }, { "include": "#line_continuation" }, - { "include": "#arg_separator"} + { "include": "#documentation_argument" } ] }, + "documentation_setting": { + "name": "meta.setting.documentation.robotframework", + "begin": "(?i)^(documentation|dokumentace|documentatie|dokumentacija|dokumentaatio|dokumentation|documentação|เอกสาร|dokumentacja|документація|documentación|документация|说明|說明|dokümantasyon|documentazione|प्रलेखन|tài liệu hướng dẫn|ドキュメント|문서)(?= {2}| ?\\t| ?$)", + "beginCaptures": { "1": { "name": "keyword.control.settings.robotframework" } }, + "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", + "patterns": [ { "include": "#documentation_arguments" } ] + }, "documentation_bold": { "match": "(?:(?<=\\s|^))(\\*)(?:(?=\\S))(.*?)(?:(?<=\\S))(\\*)(?:(?=\\s|_|\\.))", "captures": { - "1": { "name": "punctuation.definition.italic.markdown" }, + "1": { "name": "punctuation.definition.bold.markdown" }, "2": { "name": "markup.bold.documentation.robotframework", "patterns": [ { "include": "#documentation_italic" }, { "include": "#documentation_bold" }, { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} + { "include": "#variables" } ] }, - "3": { "name": "punctuation.definition.italic.markdown" } + "3": { "name": "punctuation.definition.bold.markdown" } } }, "documentation_italic": { @@ -182,53 +230,35 @@ "2": { "name": "markup.italic.documentation.robotframework", "patterns": [ - { "include": "#documentation_italic" }, { "include": "#documentation_bold" }, + { "include": "#documentation_italic" }, { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} + { "include": "#variables" } ] }, "3": { "name": "punctuation.definition.italic.markdown" } } }, "testcase_name_def": { - "contentName": "string.unquoted.argument.robotframework", "begin": "^( ?\\S+( ?\\S*)*?)(?= {2}| ?\\t| ?$)", "beginCaptures": { "1": { "patterns": [ { "include": "#testcase_name" } ] } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] }, "testcase_name": { "contentName": "entity.name.function.testcase.name.robotframework", "begin": "", "while": ".", - "patterns": [ { "include": "#escape" }, { "include": "#variables" } ] + "patterns": [ + { "include": "#escape" }, + { "include": "#variables" } + ] }, "keyword_name_def": { - "contentName": "string.unquoted.argument.robotframework", "begin": "^( ?\\S+( ?\\S*)*?)(?= {2}| ?\\t| ?$)", "beginCaptures": { "1": { "patterns": [ { "include": "#keyword_name" } ] } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - - ] + "patterns": [ { "include": "#arguments" } ] }, "keyword_name": { "contentName": "entity.name.function.keyword.name.robotframework", @@ -244,15 +274,18 @@ { "include": "#testcase_settings" }, { "include": "#control_flow_expression_statements" }, { "include": "#control_flow_statements" }, - { "include": "#other_statements" }, - { "include": "#keyword_call" }, - { "include": "#returning_keyword_call" } + { "include": "#var_statement" }, + { "include": "#returning_keyword_call" }, + { "include": "#keyword_call" } ] }, "testcases_section": { "name": "meta.section.testcases.robotframework", - "begin": "^(\\*+\\s*(?i:test cases?|testovací případy|testgevallen|test cases|testit|unités de test|testfälle|casos de teste|การทดสอบ|przypadki testowe|тест-кейси|casos de prueba|заголовки тестов|用例|案例|test durumları|testfall|тестови случаи|cazuri de test|casi di test|नियत कार्य प्रवेशिका|các kịch bản kiểm thử|テスト ケース|테스트 사례)( ?\\*+)?)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.other.header.testcase.robotframework" } }, + "begin": "^(\\*+\\s*(?i:test cases?|testovací případy|testgevallen|test cases|testit|unités de test|testfälle|casos de teste|การทดสอบ|przypadki testowe|тест-кейси|casos de prueba|заголовки тестов|用例|案例|test durumları|testfall|тестови случаи|cazuri de test|casi di test|नियत कार्य प्रवेशिका|các kịch bản kiểm thử|テスト ケース|테스트 사례)( ?\\*+)?)(.*$)", + "beginCaptures": { + "1": { "name": "keyword.other.header.testcase.robotframework" }, + "3": { "name": "comment.header.robotframework" } + }, "end": "^(?=\\*)", "patterns": [ { "include": "#comment_line" }, @@ -262,8 +295,11 @@ }, "tasks_section": { "name": "meta.section.tasks.robotframework", - "begin": "^(\\*+\\s*(?i:tasks?|úlohy|taken|taskovi|tehtävät|tâches|aufgaben|tarefas|งาน|zadania|завдань|tareas|задача|任务|任務|görevler|taskar|задачи|sarcini|attività|कार्य प्रवेशिका|các nghiệm vụ|タスク|작업)( ?\\*+)?)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.other.header.task.robotframework" } }, + "begin": "^(\\*+\\s*(?i:tasks?|úlohy|taken|taskovi|tehtävät|tâches|aufgaben|tarefas|งาน|zadania|завдань|tareas|задача|任务|任務|görevler|taskar|задачи|sarcini|attività|कार्य प्रवेशिका|các nghiệm vụ|タスク|작업)( ?\\*+)?)(.*$)", + "beginCaptures": { + "1": { "name": "keyword.other.header.task.robotframework" }, + "3": { "name": "comment.header.robotframework" } + }, "end": "^(?=\\*)", "patterns": [ { "include": "#comment_line" }, @@ -274,7 +310,10 @@ "keywords_section": { "name": "meta.section.keywords.robotframework", "begin": "^(\\*+\\s*(?i:keywords?|klíčová slova|actiewoorden|keywords|avainsanat|mots-clés|schlüsselwörter|palavras-chave|คำสั่งเพิ่มเติม|słowa kluczowe|ключових слова|palabras clave|ключевые слова|关键字|關鍵字|anahtar kelimeler|nyckelord|ключови думи|cuvinte cheie|parole chiave|कुंजीशब्द|các từ khóa|キーワード|키워드)( ?\\*+)?)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.other.header.keyword.robotframework" } }, + "beginCaptures": { + "1": { "name": "keyword.other.header.keyword.robotframework" }, + "3": { "name": "comment.header.robotframework" } + }, "end": "^(?=\\*)", "patterns": [ { "include": "#comment_line" }, @@ -284,8 +323,11 @@ }, "comments_section": { "name": "meta.section.comments.robotframework", - "begin": "^(\\*+\\s*(?i:comments?|komentáře|opmerkingen|komentari|kommentit|commentaires|kommentare|comentários|คำอธิบาย|komentarze|коментарів|comentarios|комментарии|备注|備註|yorumlar|kommentarer|коментари|comentarii|commenti|टिप्पणी|các chú thích|コメント|의견)( ?\\*+)?)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.other.header.comment.robotframework" } }, + "begin": "^(\\*+\\s*(?i:comments?|komentáře|opmerkingen|komentari|kommentit|commentaires|kommentare|comentários|คำอธิบาย|komentarze|коментарів|comentarios|комментарии|备注|備註|yorumlar|kommentarer|коментари|comentarii|commenti|टिप्पणी|các chú thích|コメント|의견)( ?\\*+)?)(.*$)", + "beginCaptures": { + "1": { "name": "keyword.other.header.comment.robotframework" }, + "3": { "name": "comment.header.robotframework" } + }, "end": "^(?=\\*)", "patterns": [ { "include": "#comment_line" }, @@ -304,32 +346,17 @@ }, "other_setting": { "name": "meta.setting.other.robotframework", - "contentName": "string.unquoted.argument.robotframework", "begin": "(?i)^(\\S+( \\S+)*)(?= {2}| ?\\t| ?$)", "beginCaptures": { "1": { "name": "keyword.control.settings.robotframework" } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] }, "unknown_setting": { - "contentName": "comment.unknown.setting.arguments.robotframework", + "name": "meta.setting.unknown.robotframework", "begin": "(?i)^(\\s+)(\\S+( \\S+)*)(?= {2}| ?\\t| ?$)", "beginCaptures": { "2": { "name": "comment.unknown.setting.robotframework" } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] }, "testcase_settings": { "patterns": [ @@ -338,151 +365,87 @@ ] }, "documentation_testcase_settings": { - "contentName": "markup.robotframework", + "name": "meta.testcase_setting.documentation.robotframework", "begin": "^( {2}|\\t)(\\s)*(?i:\\[(documentation|dokumentace|documentatie|dokumentacija|dokumentaatio|dokumentation|documentação|เอกสาร|dokumentacja|документація|documentación|документация|说明|說明|dokümantasyon|documentazione|प्रलेखन|tài liệu hướng dẫn|ドキュメント|문서)\\])(?= {2}| ?\\t| ?$)", "beginCaptures": { "3": { "name": "keyword.control.settings.documentation.robotframework" } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#documentation_italic" }, - { "include": "#documentation_bold" }, - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#documentation_arguments" } ] }, "other_testcase_settings": { - "contentName": "string.unquoted.argument.robotframework", - "begin": "^( {2}|\\t)(\\s)*(\\[.*?\\])(?= {2}| ?\\t| ?$)", + "begin": "^( {2}|\\t)(\\s*)(\\[.*?\\])(?= {2}| ?\\t| ?$)", "beginCaptures": { "0": { "name": "keyword.control.settings.robotframework" } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] }, "keyword_call": { "name": "meta.keyword-call.content.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "^(?!(?: {2,}| ?\\t ?)+(?:(?=[$\\[@&%]|\\.)))(?: {2,}| ?\\t ?)+(.*?)(?= {2,}| ?\\t ?| ?$)", + "begin": "^(( {2}|\\t)(\\s*))(.*?)(?= {2}| ?\\t| ?$)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "beginCaptures": { - "1": { + "4": { "name": "entity.name.function.keyword-call.robotframework", - "patterns": [{ "include": "#escape" }, { "include": "#variables" } ] + "patterns": [ + { "include": "#escape" }, + { "include": "#variables" } + ] } }, - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] + }, + "returning_keyword_call": { + "name": "meta.returning-keyword-call.content.robotframework", + "begin": "^(( {2}|\\t)(\\s*))([$&@]\\{(\\S+(?: \\S+)*)\\}(( ?=)?( {2}|\\t)(\\s*)))(.*?)(?= {2}| ?\\t| ?$)", + "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", + "beginCaptures": { + "4": { + "name": "meta.returning-keyword-call.assign.robotframework", + "patterns": [ { "include": "#variable_assignment" } ] + }, + "10": { + "name": "entity.name.function.keyword-call.robotframework", + "patterns": [ + { "include": "#escape" }, + { "include": "#variables" } + ] + } + }, + "patterns": [ { "include": "#arguments" } ] }, "control_flow_expression_statements": { - "name": "meta.keyword-call.content.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "^(?!(?: {2,}| ?\\t ?)+(?:(?=[$\\[@&%]|\\.)))(?: {2,}| ?\\t ?)+(IF|ELSE IF|WHILE)(( {2,}| ?\\t)( *)(.*?))?(?= {2,}| ?\\t ?| ?$)", + "name": "meta.control-flow-expressions.robotframework", + "begin": "^( {2}|\\t)(\\s*)(IF|ELSE IF|WHILE)(( {2,}| ?\\t)( *)(.*?))?(?= {2}| ?\\t| ?$)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "beginCaptures": { - "1": { "name": "keyword.control.flow.robotframework" }, - "5": { "patterns": [ { "include": "#expression" } ] } + "3": { "name": "keyword.control.flow.robotframework" }, + "4": { "patterns": [ { "include": "#expression" } ] } }, - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] }, "control_flow_statements": { - "name": "meta.keyword-call.content.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "^(?!(?: {2,}| ?\\t ?)+(?:(?=[$\\[@&%]|\\.)))(?: {2,}| ?\\t ?)+(FOR|GROUP|END|ELSE|TRY|EXCEPT|FINALLY)(?= {2,}| ?\\t ?| ?$)", + "name": "meta.control-flow-statements.robotframework", + "begin": "^( {2}|\\t)(\\s*)(FOR|GROUP|END|ELSE|TRY|EXCEPT|FINALLY|BREAK|CONTINUE)(?= {2}| ?\\t| ?$)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "beginCaptures": { "1": { "name": "keyword.control.flow.robotframework" } }, - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "beginCaptures": { "3": { "name": "keyword.control.flow.robotframework" } }, + "patterns": [ { "include": "#arguments" } ] }, - "other_statements": { - "name": "meta.keyword-call.content.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "^(?!(?: {2,}| ?\\t ?)+(?:(?=[$\\[@&%]|\\.)))(?: {2,}| ?\\t ?)+(VAR)(?= {2,}| ?\\t ?| ?$)", + "var_statement": { + "name": "meta.var-statement.robotframework", + "begin": "^( {2}|\\t)(\\s*)(VAR)(( {2}|\\t)+(\\S.+?))?(?= {2}| ?\\t| ?$)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "beginCaptures": { "1": { "name": "keyword.other.robotframework" } }, - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] - }, - "returning_keyword_call": { - "name": "meta.returning-keyword-call.robotframework", - "contentName": "meta.returning.keyword.content.robotframework", - "begin": "^(?=(?: {2,}| ?\\t ?)+(?:(?=[$@&])))(?:\\s)", - "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ { "include": "#returning_keyword" } ] - }, - "returning_keyword": { - "name": "meta.returning-keyword.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "(?<=\\s)(?=\\s*(?:(?=[$@&])))((?:\\s)*(?:[$&@]{(?:.*?)}(?:\\[.*?\\])?(?: ?=?\\s*))*)(.*?)(?: {2,}| ?\\t ?|$)", "beginCaptures": { - "1": { "patterns": [ { "include": "#variable_assignment_from_kw" } ] }, - "2": { "name": "entity.name.function.keyword-call.robotframework" } + "3": { "name": "keyword.other.robotframework" }, + "4": { "patterns": [ { "include": "#variable_assignment" } ] } }, - "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] - }, - "variable_assignment_from_kw": { - "contentName": "meta.variable.assignment.keyword.content.robotframework", - "begin": "(?<=^\\s)(?:\\s*)(?=[$@&])", - "end": "(?:( ?=)|(?: {2,}| ?\\t+ ?| ?$)(?![#$@& \\n\\r]|\\.\\.\\.)|^(?=\\.\\.\\.)( {2,}| ?\\t+ ?| ?$)(?![#$@&]))", - "endCaptures": { "1": { "name": "keyword.operator.robotframework" } }, - "patterns": [ { "include": "#variables" } ] + "patterns": [ { "include": "#arguments" } ] }, "line_continuation": { - "match": "^\\s*(\\.\\.\\.)(?! ?\\S)", - "captures": { "1": { "name": "keyword.operator.continue.robotframework" } } + "match": "^(\\s*)(\\.\\.\\.)(?= {2}| ?\\t| ?$)", + "captures": { "2": { "name": "keyword.operator.continue.robotframework" } } }, "impossible": { "comment": "This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.", "match": "$.^" }, - "semicolon": { - "patterns": [ - { - "name": "invalid.deprecated.semicolon.python", - "match": "\\;$" - } - ] - }, "comments": { "patterns": [ { @@ -516,79 +479,6 @@ { "include": "#comments-base" } ] }, - "docstring": { - "patterns": [ - { - "name": "string.quoted.docstring.multi.python", - "begin": "(\\'\\'\\'|\\\"\\\"\\\")", - "end": "(\\1)", - "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.python" } }, - "endCaptures": { "1": { "name": "punctuation.definition.string.end.python" } }, - "patterns": [ - { "include": "#docstring-prompt" }, - { "include": "#codetags" }, - { "include": "#docstring-guts-unicode" } - ] - }, - { - "name": "string.quoted.docstring.raw.multi.python", - "begin": "([rR])(\\'\\'\\'|\\\"\\\"\\\")", - "end": "(\\2)", - "beginCaptures": { - "1": { "name": "storage.type.string.python" }, - "2": { "name": "punctuation.definition.string.begin.python" } - }, - "endCaptures": { "1": { "name": "punctuation.definition.string.end.python" } }, - "patterns": [ - { "include": "#string-consume-escape" }, - { "include": "#docstring-prompt" }, - { "include": "#codetags" } - ] - }, - { - "name": "string.quoted.docstring.single.python", - "begin": "(\\'|\\\")", - "end": "(\\1)|(\\n)", - "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.python" } }, - "endCaptures": { - "1": { "name": "punctuation.definition.string.end.python" }, - "2": { "name": "invalid.illegal.newline.python" } - }, - "patterns": [ - { "include": "#codetags" }, - { "include": "#docstring-guts-unicode" } - ] - }, - { - "name": "string.quoted.docstring.raw.single.python", - "begin": "([rR])(\\'|\\\")", - "end": "(\\2)|(\\n)", - "beginCaptures": { - "1": { "name": "storage.type.string.python" }, - "2": { "name": "punctuation.definition.string.begin.python" } - }, - "endCaptures": { - "1": { "name": "punctuation.definition.string.end.python" }, - "2": { "name": "invalid.illegal.newline.python" } - }, - "patterns": [ - { "include": "#string-consume-escape" }, - { "include": "#codetags" } - ] - } - ] - }, - "docstring-guts-unicode": { - "patterns": [ - { "include": "#escape-sequence-unicode" }, - { "include": "#escape-sequence" }, - { "include": "#string-line-continuation" } - ] - }, - "docstring-prompt": { - "match": "(?x)\n (?:\n (?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n ((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n )\n", - "captures": { "1": { "name": "keyword.control.flow.python" } } - }, "expression-bare": { "comment": "valid Python expressions w/o comments and line continuation", "patterns": [ diff --git a/syntaxes/robotframework.tmLanguage.template.json b/syntaxes/robotframework.tmLanguage.template.json index 7d9ab9cf..09c32c74 100644 --- a/syntaxes/robotframework.tmLanguage.template.json +++ b/syntaxes/robotframework.tmLanguage.template.json @@ -1,33 +1,55 @@ { "$schema": "https://raw.githubusercontent.com/RedCMD/TmLanguage-Syntax-Highlighter/main/vscode.tmLanguage.schema.json", "repository": { - "arg_separator": { - "name": "meta.arg.separator.robotframework", - "match": "( {2}| ?\\t)+" + "argument": { + "match": "\\S+(?: \\S+)*", + "name": "string.unquoted.argument.robotframework", + "captures": { + "0": { + "patterns": [ + { "include": "#escape" }, + { "include": "#variables" } + ] + } + } }, - "variable_setting": { - "name": "meta.variable.assign.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "^([$@&]\\{)(.*?)(\\})( ?=?)", - "beginCaptures": { - "1": { "name": "punctuation.definition.variable.begin.robotframework" }, - "2": { - "name": "variable.name.readwrite.robotframework", - "patterns": [ { "include": "#variables" } ] - }, - "3": { "name": "punctuation.definition.variable.end.robotframework" }, - "4": { "name": "keyword.operator.robotframework" } - }, + "arguments": { + "name": "meta.arguments.robotframework", + "begin": "(?!(?: {2,}| ?\\t ?)+)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "patterns": [ { "include": "#escape" }, { "include": "#comment" }, { "include": "#comment_line" }, - { "include": "#line_continuation" }, { "include": "#variables" }, - { "include": "#arg_separator"} + { "include": "#line_continuation" }, + { "include": "#argument" } ] }, + "variable_setting": { + "name": "meta.variables.setting.robotframework", + "begin": "^(.*?)(?= {2}| ?\\t| ?$)", + "beginCaptures": { + "1": { + "name": "meta.variables.setting.variable.robotframework", + "patterns": [ { "include": "#variable_assignment" } ] + } + }, + "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", + "patterns": [ { "include": "#arguments" } ] + }, + "variable_assignment": { + "name": "meta.variable.assign.robotframework", + "contentName": "variable.name.readwrite.robotframework", + "begin": "[$@&]\\{", + "end": "(\\}( ?=)?)(?=( {2}| ?\\t| ?$))", + "beginCaptures": { "0": { "name": "punctuation.definition.variable.begin.robotframework" } }, + "endCaptures": { + "1": { "name": "punctuation.definition.variable.end.robotframework" }, + "2": { "name": "keyword.operator.robotframework" } + }, + "patterns": [ { "include": "#variables" } ] + }, "variables_section": { "name": "meta.section.variables.robotframework", "begin": "^(\\*+\\s*(?i:${variables_header})( ?\\*+)?)(?= {2}| ?\\t| ?$)", @@ -46,15 +68,12 @@ ] }, "expression_var": { - "name": "meta.variables.expression.robotframework", + "name": "meta.variable.expression.robotframework", "begin": "[$@&]\\{\\{", "end": "\\}\\}", "beginCaptures": { "0": { "name": "punctuation.definition.expression.begin.robotframework" } }, "endCaptures": { "0": { "name": "punctuation.definition.expression.end.robotframework" } }, - "patterns": [ - { "include": "#expression" }, - { "include": "#simple_var" } - ] + "patterns": [ { "include": "#variables" } ] }, "embedded_argument": { "name": "meta.embedded_argument.robotframework", @@ -78,16 +97,27 @@ "patterns": [ { "include": "#variables" } ] }, "simple_var": { - "name": "meta.variables.robotframework", + "name": "meta.variable.simple.robotframework", "contentName": "variable.name.readwrite.robotframework", "begin": "[$@&]\\{", "end": "(\\})|(?= {2}| ?\\t| ?$)", "beginCaptures": { "0": { "name": "punctuation.definition.variable.begin.robotframework" } }, "endCaptures": { "1": { "name": "punctuation.definition.variable.end.robotframework" } }, - "patterns": [ { "include": "#expression_var" } ] + "patterns": [ + { "include": "#simple_curly_braces" }, + { "include": "#variables" } + ] + }, + "simple_curly_braces": { + "name": "meta.variable.simple.robotframework", + "contentName": "variable.name.readwrite.robotframework", + "begin": "\\{", + "end": "\\}|(?= {2}| ?\\t| ?$)", + "beginCaptures": { "0": { "name": "punctuation.definition.curly.begin.robotframework" } }, + "endCaptures": { "1": { "name": "punctuation.definition.curly.end.robotframework" } } }, "env_var": { - "name": "meta.variables.robotframework", + "name": "meta.variable.env.robotframework", "begin": "(%\\{)", "end": "(\\})|(?= {2}| ?\\t| ?$)", "beginCaptures": { "0": { "name": "punctuation.definition.envvar.begin.robotframework" } }, @@ -129,8 +159,11 @@ }, "settings_section": { "name": "meta.section.settings.robotframework", - "begin": "^(\\*+\\s*(?i:${settings_header}?)( ?\\*+)?)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.other.header.settings.robotframework" } }, + "begin": "^(\\*+\\s*(?i:${settings_header})( ?\\*+)?)(.*$)", + "beginCaptures": { + "1": { "name": "keyword.other.header.settings.robotframework" }, + "3": { "name": "comment.header.robotframework" } + }, "end": "^(?=\\*)", "patterns": [ { "include": "#comment_line" }, @@ -139,40 +172,55 @@ { "include": "#unknown_setting" } ] }, - "documentation_setting": { - "contentName": "markup.robotframework", - "begin": "(?i)^(${documentation_setting})(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.control.settings.robotframework" } }, + "documentation_argument": { + "match": "\\S+(?: \\S+)*?", + "name": "markup.robotframework", + "captures": { + "0": { + "patterns": [ + { "include": "#escape" }, + { "include": "#documentation_italic" }, + { "include": "#documentation_bold" }, + { "include": "#variables" } + ] + } + } + }, + "documentation_arguments": { + "begin": "(?!(?: {2,}| ?\\t ?)+)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "patterns": [ { "include": "#comment" }, { "include": "#comment_line" }, + { "include": "#escape" }, { "include": "#documentation_italic" }, { "include": "#documentation_bold" }, - { "include": "#escape" }, { "include": "#variables" }, { "include": "#line_continuation" }, - { "include": "#arg_separator"} + { "include": "#documentation_argument" } ] }, + "documentation_setting": { + "name": "meta.setting.documentation.robotframework", + "begin": "(?i)^(${documentation_setting})(?= {2}| ?\\t| ?$)", + "beginCaptures": { "1": { "name": "keyword.control.settings.robotframework" } }, + "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", + "patterns": [ { "include": "#documentation_arguments" } ] + }, "documentation_bold": { "match": "(?:(?<=\\s|^))(\\*)(?:(?=\\S))(.*?)(?:(?<=\\S))(\\*)(?:(?=\\s|_|\\.))", "captures": { - "1": { "name": "punctuation.definition.italic.markdown" }, + "1": { "name": "punctuation.definition.bold.markdown" }, "2": { "name": "markup.bold.documentation.robotframework", "patterns": [ { "include": "#documentation_italic" }, { "include": "#documentation_bold" }, { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} + { "include": "#variables" } ] }, - "3": { "name": "punctuation.definition.italic.markdown" } + "3": { "name": "punctuation.definition.bold.markdown" } } }, "documentation_italic": { @@ -182,53 +230,35 @@ "2": { "name": "markup.italic.documentation.robotframework", "patterns": [ - { "include": "#documentation_italic" }, { "include": "#documentation_bold" }, + { "include": "#documentation_italic" }, { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} + { "include": "#variables" } ] }, "3": { "name": "punctuation.definition.italic.markdown" } } }, "testcase_name_def": { - "contentName": "string.unquoted.argument.robotframework", "begin": "^( ?\\S+( ?\\S*)*?)(?= {2}| ?\\t| ?$)", "beginCaptures": { "1": { "patterns": [ { "include": "#testcase_name" } ] } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] }, "testcase_name": { "contentName": "entity.name.function.testcase.name.robotframework", "begin": "", "while": ".", - "patterns": [ { "include": "#escape" }, { "include": "#variables" } ] + "patterns": [ + { "include": "#escape" }, + { "include": "#variables" } + ] }, "keyword_name_def": { - "contentName": "string.unquoted.argument.robotframework", "begin": "^( ?\\S+( ?\\S*)*?)(?= {2}| ?\\t| ?$)", "beginCaptures": { "1": { "patterns": [ { "include": "#keyword_name" } ] } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - - ] + "patterns": [ { "include": "#arguments" } ] }, "keyword_name": { "contentName": "entity.name.function.keyword.name.robotframework", @@ -244,15 +274,18 @@ { "include": "#testcase_settings" }, { "include": "#control_flow_expression_statements" }, { "include": "#control_flow_statements" }, - { "include": "#other_statements" }, - { "include": "#keyword_call" }, - { "include": "#returning_keyword_call" } + { "include": "#var_statement" }, + { "include": "#returning_keyword_call" }, + { "include": "#keyword_call" } ] }, "testcases_section": { "name": "meta.section.testcases.robotframework", - "begin": "^(\\*+\\s*(?i:${test_cases_header})( ?\\*+)?)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.other.header.testcase.robotframework" } }, + "begin": "^(\\*+\\s*(?i:${test_cases_header})( ?\\*+)?)(.*$)", + "beginCaptures": { + "1": { "name": "keyword.other.header.testcase.robotframework" }, + "3": { "name": "comment.header.robotframework" } + }, "end": "^(?=\\*)", "patterns": [ { "include": "#comment_line" }, @@ -262,8 +295,11 @@ }, "tasks_section": { "name": "meta.section.tasks.robotframework", - "begin": "^(\\*+\\s*(?i:${tasks_header})( ?\\*+)?)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.other.header.task.robotframework" } }, + "begin": "^(\\*+\\s*(?i:${tasks_header})( ?\\*+)?)(.*$)", + "beginCaptures": { + "1": { "name": "keyword.other.header.task.robotframework" }, + "3": { "name": "comment.header.robotframework" } + }, "end": "^(?=\\*)", "patterns": [ { "include": "#comment_line" }, @@ -274,7 +310,10 @@ "keywords_section": { "name": "meta.section.keywords.robotframework", "begin": "^(\\*+\\s*(?i:${keywords_header})( ?\\*+)?)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.other.header.keyword.robotframework" } }, + "beginCaptures": { + "1": { "name": "keyword.other.header.keyword.robotframework" }, + "3": { "name": "comment.header.robotframework" } + }, "end": "^(?=\\*)", "patterns": [ { "include": "#comment_line" }, @@ -284,8 +323,11 @@ }, "comments_section": { "name": "meta.section.comments.robotframework", - "begin": "^(\\*+\\s*(?i:${comments_header})( ?\\*+)?)(?= {2}| ?\\t| ?$)", - "beginCaptures": { "1": { "name": "keyword.other.header.comment.robotframework" } }, + "begin": "^(\\*+\\s*(?i:${comments_header})( ?\\*+)?)(.*$)", + "beginCaptures": { + "1": { "name": "keyword.other.header.comment.robotframework" }, + "3": { "name": "comment.header.robotframework" } + }, "end": "^(?=\\*)", "patterns": [ { "include": "#comment_line" }, @@ -304,32 +346,17 @@ }, "other_setting": { "name": "meta.setting.other.robotframework", - "contentName": "string.unquoted.argument.robotframework", "begin": "(?i)^(\\S+( \\S+)*)(?= {2}| ?\\t| ?$)", "beginCaptures": { "1": { "name": "keyword.control.settings.robotframework" } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] }, "unknown_setting": { - "contentName": "comment.unknown.setting.arguments.robotframework", + "name": "meta.setting.unknown.robotframework", "begin": "(?i)^(\\s+)(\\S+( \\S+)*)(?= {2}| ?\\t| ?$)", "beginCaptures": { "2": { "name": "comment.unknown.setting.robotframework" } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] }, "testcase_settings": { "patterns": [ @@ -338,151 +365,87 @@ ] }, "documentation_testcase_settings": { - "contentName": "markup.robotframework", + "name": "meta.testcase_setting.documentation.robotframework", "begin": "^( {2}|\\t)(\\s)*(?i:\\[(${documentation_setting})\\])(?= {2}| ?\\t| ?$)", "beginCaptures": { "3": { "name": "keyword.control.settings.documentation.robotframework" } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#documentation_italic" }, - { "include": "#documentation_bold" }, - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#documentation_arguments" } ] }, "other_testcase_settings": { - "contentName": "string.unquoted.argument.robotframework", - "begin": "^( {2}|\\t)(\\s)*(\\[.*?\\])(?= {2}| ?\\t| ?$)", + "begin": "^( {2}|\\t)(\\s*)(\\[.*?\\])(?= {2}| ?\\t| ?$)", "beginCaptures": { "0": { "name": "keyword.control.settings.robotframework" } }, "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] }, "keyword_call": { "name": "meta.keyword-call.content.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "^(?!(?: {2,}| ?\\t ?)+(?:(?=[$\\[@&%]|\\.)))(?: {2,}| ?\\t ?)+(.*?)(?= {2,}| ?\\t ?| ?$)", + "begin": "^(( {2}|\\t)(\\s*))(.*?)(?= {2}| ?\\t| ?$)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "beginCaptures": { - "1": { + "4": { "name": "entity.name.function.keyword-call.robotframework", - "patterns": [{ "include": "#escape" }, { "include": "#variables" } ] + "patterns": [ + { "include": "#escape" }, + { "include": "#variables" } + ] } }, - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] + }, + "returning_keyword_call": { + "name": "meta.returning-keyword-call.content.robotframework", + "begin": "^(( {2}|\\t)(\\s*))([$&@]\\{(\\S+(?: \\S+)*)\\}(( ?=)?( {2}|\\t)(\\s*)))(.*?)(?= {2}| ?\\t| ?$)", + "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", + "beginCaptures": { + "4": { + "name": "meta.returning-keyword-call.assign.robotframework", + "patterns": [ { "include": "#variable_assignment" } ] + }, + "10": { + "name": "entity.name.function.keyword-call.robotframework", + "patterns": [ + { "include": "#escape" }, + { "include": "#variables" } + ] + } + }, + "patterns": [ { "include": "#arguments" } ] }, "control_flow_expression_statements": { - "name": "meta.keyword-call.content.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "^(?!(?: {2,}| ?\\t ?)+(?:(?=[$\\[@&%]|\\.)))(?: {2,}| ?\\t ?)+(IF|ELSE IF|WHILE)(( {2,}| ?\\t)( *)(.*?))?(?= {2,}| ?\\t ?| ?$)", + "name": "meta.control-flow-expressions.robotframework", + "begin": "^( {2}|\\t)(\\s*)(IF|ELSE IF|WHILE)(( {2,}| ?\\t)( *)(.*?))?(?= {2}| ?\\t| ?$)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", "beginCaptures": { - "1": { "name": "keyword.control.flow.robotframework" }, - "5": { "patterns": [ { "include": "#expression" } ] } + "3": { "name": "keyword.control.flow.robotframework" }, + "4": { "patterns": [ { "include": "#expression" } ] } }, - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "patterns": [ { "include": "#arguments" } ] }, "control_flow_statements": { - "name": "meta.keyword-call.content.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "^(?!(?: {2,}| ?\\t ?)+(?:(?=[$\\[@&%]|\\.)))(?: {2,}| ?\\t ?)+(FOR|GROUP|END|ELSE|TRY|EXCEPT|FINALLY)(?= {2,}| ?\\t ?| ?$)", + "name": "meta.control-flow-statements.robotframework", + "begin": "^( {2}|\\t)(\\s*)(FOR|GROUP|END|ELSE|TRY|EXCEPT|FINALLY|BREAK|CONTINUE)(?= {2}| ?\\t| ?$)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "beginCaptures": { "1": { "name": "keyword.control.flow.robotframework" } }, - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] + "beginCaptures": { "3": { "name": "keyword.control.flow.robotframework" } }, + "patterns": [ { "include": "#arguments" } ] }, - "other_statements": { - "name": "meta.keyword-call.content.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "^(?!(?: {2,}| ?\\t ?)+(?:(?=[$\\[@&%]|\\.)))(?: {2,}| ?\\t ?)+(VAR)(?= {2,}| ?\\t ?| ?$)", + "var_statement": { + "name": "meta.var-statement.robotframework", + "begin": "^( {2}|\\t)(\\s*)(VAR)(( {2}|\\t)+(\\S.+?))?(?= {2}| ?\\t| ?$)", "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "beginCaptures": { "1": { "name": "keyword.other.robotframework" } }, - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] - }, - "returning_keyword_call": { - "name": "meta.returning-keyword-call.robotframework", - "contentName": "meta.returning.keyword.content.robotframework", - "begin": "^(?=(?: {2,}| ?\\t ?)+(?:(?=[$@&])))(?:\\s)", - "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ { "include": "#returning_keyword" } ] - }, - "returning_keyword": { - "name": "meta.returning-keyword.robotframework", - "contentName": "string.unquoted.argument.robotframework", - "begin": "(?<=\\s)(?=\\s*(?:(?=[$@&])))((?:\\s)*(?:[$&@]{(?:.*?)}(?:\\[.*?\\])?(?: ?=?\\s*))*)(.*?)(?: {2,}| ?\\t ?|$)", "beginCaptures": { - "1": { "patterns": [ { "include": "#variable_assignment_from_kw" } ] }, - "2": { "name": "entity.name.function.keyword-call.robotframework" } + "3": { "name": "keyword.other.robotframework" }, + "4": { "patterns": [ { "include": "#variable_assignment" } ] } }, - "end": "^(?!(\\s*(\\.\\.\\.((( {2}| ?\\t)\\s*\\S.*)|(\\s*))?$))|(\\s*#.*$)|(\\s*$))", - "patterns": [ - { "include": "#escape" }, - { "include": "#comment" }, - { "include": "#comment_line" }, - { "include": "#variables" }, - { "include": "#line_continuation" }, - { "include": "#arg_separator"} - ] - }, - "variable_assignment_from_kw": { - "contentName": "meta.variable.assignment.keyword.content.robotframework", - "begin": "(?<=^\\s)(?:\\s*)(?=[$@&])", - "end": "(?:( ?=)|(?: {2,}| ?\\t+ ?| ?$)(?![#$@& \\n\\r]|\\.\\.\\.)|^(?=\\.\\.\\.)( {2,}| ?\\t+ ?| ?$)(?![#$@&]))", - "endCaptures": { "1": { "name": "keyword.operator.robotframework" } }, - "patterns": [ { "include": "#variables" } ] + "patterns": [ { "include": "#arguments" } ] }, "line_continuation": { - "match": "^(\\s*\\.\\.\\.)(?! ?\\S)", - "captures": { "1": { "name": "keyword.operator.continue.robotframework" } } + "match": "^(\\s*)(\\.\\.\\.)(?= {2}| ?\\t| ?$)", + "captures": { "2": { "name": "keyword.operator.continue.robotframework" } } }, "impossible": { "comment": "This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.", "match": "$.^" }, - "semicolon": { - "patterns": [ - { - "name": "invalid.deprecated.semicolon.python", - "match": "\\;$" - } - ] - }, "comments": { "patterns": [ { @@ -516,79 +479,6 @@ { "include": "#comments-base" } ] }, - "docstring": { - "patterns": [ - { - "name": "string.quoted.docstring.multi.python", - "begin": "(\\'\\'\\'|\\\"\\\"\\\")", - "end": "(\\1)", - "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.python" } }, - "endCaptures": { "1": { "name": "punctuation.definition.string.end.python" } }, - "patterns": [ - { "include": "#docstring-prompt" }, - { "include": "#codetags" }, - { "include": "#docstring-guts-unicode" } - ] - }, - { - "name": "string.quoted.docstring.raw.multi.python", - "begin": "([rR])(\\'\\'\\'|\\\"\\\"\\\")", - "end": "(\\2)", - "beginCaptures": { - "1": { "name": "storage.type.string.python" }, - "2": { "name": "punctuation.definition.string.begin.python" } - }, - "endCaptures": { "1": { "name": "punctuation.definition.string.end.python" } }, - "patterns": [ - { "include": "#string-consume-escape" }, - { "include": "#docstring-prompt" }, - { "include": "#codetags" } - ] - }, - { - "name": "string.quoted.docstring.single.python", - "begin": "(\\'|\\\")", - "end": "(\\1)|(\\n)", - "beginCaptures": { "1": { "name": "punctuation.definition.string.begin.python" } }, - "endCaptures": { - "1": { "name": "punctuation.definition.string.end.python" }, - "2": { "name": "invalid.illegal.newline.python" } - }, - "patterns": [ - { "include": "#codetags" }, - { "include": "#docstring-guts-unicode" } - ] - }, - { - "name": "string.quoted.docstring.raw.single.python", - "begin": "([rR])(\\'|\\\")", - "end": "(\\2)|(\\n)", - "beginCaptures": { - "1": { "name": "storage.type.string.python" }, - "2": { "name": "punctuation.definition.string.begin.python" } - }, - "endCaptures": { - "1": { "name": "punctuation.definition.string.end.python" }, - "2": { "name": "invalid.illegal.newline.python" } - }, - "patterns": [ - { "include": "#string-consume-escape" }, - { "include": "#codetags" } - ] - } - ] - }, - "docstring-guts-unicode": { - "patterns": [ - { "include": "#escape-sequence-unicode" }, - { "include": "#escape-sequence" }, - { "include": "#string-line-continuation" } - ] - }, - "docstring-prompt": { - "match": "(?x)\n (?:\n (?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n ((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n )\n", - "captures": { "1": { "name": "keyword.control.flow.python" } } - }, "expression-bare": { "comment": "valid Python expressions w/o comments and line continuation", "patterns": [ From 74644f055e6c1dea38e37446ef430387c667b80c Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Wed, 7 May 2025 22:19:29 +0200 Subject: [PATCH 33/35] feat(intellij): refactored textmate highlightning to use the new intellij textmate infrastructure --- .../robotcode4ij/TextMateBundleHolder.kt | 27 +++--- .../RobotCodeColorSettingsPage.kt | 61 +++++++++----- .../robotcode4ij/highlighting/Colors.kt | 30 +++---- .../highlighting/RobotCodeLexer.kt | 84 +++++++++++-------- .../RobotCodeSemanticTokensColorsProvider.kt | 12 +-- 5 files changed, 128 insertions(+), 86 deletions(-) diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/TextMateBundleHolder.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/TextMateBundleHolder.kt index ecc931fa..7c1c478f 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/TextMateBundleHolder.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/TextMateBundleHolder.kt @@ -1,32 +1,33 @@ package dev.robotcode.robotcode4ij -import com.intellij.util.containers.Interner import org.jetbrains.plugins.textmate.TextMateService +import org.jetbrains.plugins.textmate.language.TextMateConcurrentMapInterner import org.jetbrains.plugins.textmate.language.TextMateLanguageDescriptor -import org.jetbrains.plugins.textmate.language.syntax.TextMateSyntaxTable +import org.jetbrains.plugins.textmate.language.syntax.TextMateSyntaxTableBuilder object TextMateBundleHolder { - private val interner = Interner.createWeakInterner() - + private val interner = TextMateConcurrentMapInterner() + val descriptor: TextMateLanguageDescriptor by lazy { - + val reader = TextMateService.getInstance().readBundle(RobotCodeHelpers.basePath) ?: throw IllegalStateException("Failed to read robotcode textmate bundle") - - val syntaxTable = TextMateSyntaxTable() - + + val builder = TextMateSyntaxTableBuilder(interner) + val grammarIterator = reader.readGrammars().iterator() while (grammarIterator.hasNext()) { val grammar = grammarIterator.next() - val rootScopeName = syntaxTable.loadSyntax(grammar.plist.value, interner) ?: continue + + val rootScopeName = builder.addSyntax(grammar.plist.value) ?: continue if (rootScopeName == "source.robotframework") { - val syntax = syntaxTable.getSyntax(rootScopeName) - return@lazy TextMateLanguageDescriptor(rootScopeName, syntax) + val syntax = builder.build() + return@lazy TextMateLanguageDescriptor(rootScopeName, syntax.getSyntax(rootScopeName)) } } - + throw IllegalStateException("Failed to find robotcode textmate in bundle") } - + } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/configuration/RobotCodeColorSettingsPage.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/configuration/RobotCodeColorSettingsPage.kt index 4d176c2e..16f5a898 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/configuration/RobotCodeColorSettingsPage.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/configuration/RobotCodeColorSettingsPage.kt @@ -11,7 +11,7 @@ import dev.robotcode.robotcode4ij.highlighting.RobotCodeSyntaxHighlighter import javax.swing.Icon class RobotCodeColorSettingsPage : ColorSettingsPage { - + private val descriptors: Array = arrayOf( AttributesDescriptor("Header", Colors.HEADER), AttributesDescriptor("Test case name", Colors.TESTCASE_NAME), @@ -22,6 +22,7 @@ class RobotCodeColorSettingsPage : ColorSettingsPage { AttributesDescriptor("Setting", Colors.SETTING), AttributesDescriptor("Setting import", Colors.SETTING_IMPORT), AttributesDescriptor("Control flow", Colors.CONTROL_FLOW), + AttributesDescriptor("Var statement", Colors.VAR), AttributesDescriptor("Argument", Colors.ARGUMENT), AttributesDescriptor("Embedded argument", Colors.EMBEDDED_ARGUMENT), AttributesDescriptor("Named argument", Colors.NAMED_ARGUMENT), @@ -29,79 +30,101 @@ class RobotCodeColorSettingsPage : ColorSettingsPage { AttributesDescriptor("Variable expression", Colors.VARIABLE_EXPRESSION), AttributesDescriptor("Variable begin", Colors.VARIABLE_BEGIN), AttributesDescriptor("Variable end", Colors.VARIABLE_END), - + AttributesDescriptor("Line comment", Colors.LINE_COMMENT), AttributesDescriptor("Block comment", Colors.BLOCK_COMMENT), - + AttributesDescriptor("Operator", Colors.OPERATOR), AttributesDescriptor("Namespace", Colors.NAMESPACE), AttributesDescriptor("BDD prefix", Colors.BDD_PREFIX), - + AttributesDescriptor("Continuation", Colors.CONTINUATION), ) - + override fun getAttributeDescriptors(): Array { return descriptors } - + override fun getColorDescriptors(): Array { return ColorDescriptor.EMPTY_ARRAY } - + override fun getDisplayName(): String { return "Robot Framework" } - + override fun getIcon(): Icon? { return RobotIcons.RobotCode } - + override fun getHighlighter(): SyntaxHighlighter { return RobotCodeSyntaxHighlighter() } - + override fun getDemoText(): String { return """ *** Settings *** Library SeleniumLibrary - + *** Variables *** ${'$'}{URL} http://example.com # a comment - + *** Test Cases *** Example Test Open Application ${'$'}{URL} Log %{APP_DATA=unknown} + Do Something with argument1 argument2 + ... argument3 + # This is a comment + ... argument4 Close Application - + BDD Example Test Given application is ppen When I enter something into the Search Field Then Something Should Happen - + Another Test [Documentation] This is a test ... with multiple lines [Arguments] ... ${'$'}{arg1} ... ${'$'}{arg2} - + [Tags] example + [Setup] Open Application with arguments + Log ${'$'}{arg1} ${'$'}{arg2} - + Log To Console Hello World + *** Keywords *** Open Application [Arguments] ${'$'}{url} Open Browser ${'$'}{url} - + Close Application Close Browser - + + + Do Something Different + [Arguments] ${'$'}{arg1} ${'$'}{arg2} + IF ${'$'}arg1=="value" + Log ${'$'}{arg1} + ELSE + Log ${'$'}{arg2} + END + + IF ${'$'}arg2==1234 + Log ${'$'}{arg1} + ELSE IF ${'$'}arg2==789 + Log ${'$'}{arg2} + END + *** Comments *** this is a comment block with multiple lines """.trimIndent() } - + override fun getAdditionalHighlightingTagToDescriptorMap(): MutableMap? { return null } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/Colors.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/Colors.kt index 373efb0d..d7211e76 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/Colors.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/Colors.kt @@ -5,13 +5,13 @@ import com.intellij.openapi.editor.colors.TextAttributesKey import com.intellij.openapi.editor.colors.TextAttributesKey.createTextAttributesKey object Colors { - + val HEADER: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_HEADER", DefaultLanguageHighlighterColors.KEYWORD) - + val TESTCASE_NAME: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_TESTCASE_NAME", DefaultLanguageHighlighterColors.FUNCTION_DECLARATION) - + val KEYWORD_NAME: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_KEYWORD_NAME", DefaultLanguageHighlighterColors.FUNCTION_DECLARATION) val KEYWORD_CALL: TextAttributesKey = @@ -20,47 +20,49 @@ object Colors { createTextAttributesKey("ROBOTFRAMEWORK_KEYWORD_CALL_INNER", DefaultLanguageHighlighterColors.FUNCTION_CALL) val NAME_CALL: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_NAME_CALL", DefaultLanguageHighlighterColors.FUNCTION_CALL) - + val SETTING: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_SETTING", DefaultLanguageHighlighterColors.KEYWORD) val SETTING_IMPORT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_SETTING_IMPORT", DefaultLanguageHighlighterColors.KEYWORD) val CONTROL_FLOW: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_CONTROL_FLOW", DefaultLanguageHighlighterColors.KEYWORD) - + + val VAR: TextAttributesKey = + createTextAttributesKey("ROBOTFRAMEWORK_VAR", DefaultLanguageHighlighterColors.KEYWORD) + val VARIABLE: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_VARIABLE", DefaultLanguageHighlighterColors.GLOBAL_VARIABLE) val VARIABLE_EXPRESSION: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_VARIABLE_EXPRESSION", DefaultLanguageHighlighterColors.GLOBAL_VARIABLE) - + val VARIABLE_BEGIN: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_VARIABLE_BEGIN", DefaultLanguageHighlighterColors.BRACES) val VARIABLE_END: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_VARIABLE_END", DefaultLanguageHighlighterColors.BRACES) - + val NAMESPACE: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_NAMESPACE", DefaultLanguageHighlighterColors.CLASS_REFERENCE) - + val ARGUMENT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_ARGUMENT", DefaultLanguageHighlighterColors.STRING) val EMBEDDED_ARGUMENT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_EMBEDDED_ARGUMENT", DefaultLanguageHighlighterColors.STRING) val NAMED_ARGUMENT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_NAMED_ARGUMENT", DefaultLanguageHighlighterColors.PARAMETER) - + val LINE_COMMENT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_LINE_COMMENT", DefaultLanguageHighlighterColors.LINE_COMMENT) - + val BLOCK_COMMENT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_BLOCK_COMMENT", DefaultLanguageHighlighterColors.BLOCK_COMMENT) - + val OPERATOR: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_OPERATOR", DefaultLanguageHighlighterColors.OPERATION_SIGN) - + val BDD_PREFIX: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_BDD_PREFIX", DefaultLanguageHighlighterColors.METADATA) - + val CONTINUATION: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_CONTINUATION", DefaultLanguageHighlighterColors.DOT) } - diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeLexer.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeLexer.kt index f8b4a005..b6642914 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeLexer.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeLexer.kt @@ -1,9 +1,12 @@ package dev.robotcode.robotcode4ij.highlighting import com.intellij.lexer.LexerBase +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.util.registry.Registry import com.intellij.psi.TokenType import com.intellij.psi.tree.IElementType +import com.intellij.textmate.joni.JoniRegexFactory import dev.robotcode.robotcode4ij.TextMateBundleHolder import dev.robotcode.robotcode4ij.psi.ARGUMENT import dev.robotcode.robotcode4ij.psi.COMMENT_BLOCK @@ -24,8 +27,16 @@ import dev.robotcode.robotcode4ij.psi.TESTCASE_NAME import dev.robotcode.robotcode4ij.psi.VARIABLE import dev.robotcode.robotcode4ij.psi.VARIABLE_BEGIN import dev.robotcode.robotcode4ij.psi.VARIABLE_END -import org.jetbrains.plugins.textmate.language.syntax.lexer.TextMateLexer +import org.jetbrains.plugins.textmate.language.syntax.lexer.TextMateCachingSyntaxMatcher +import org.jetbrains.plugins.textmate.language.syntax.lexer.TextMateLexerCore import org.jetbrains.plugins.textmate.language.syntax.lexer.TextMateScope +import org.jetbrains.plugins.textmate.language.syntax.lexer.TextMateSyntaxMatcherImpl +import org.jetbrains.plugins.textmate.language.syntax.lexer.TextmateToken +import org.jetbrains.plugins.textmate.language.syntax.selector.TextMateSelectorCachingWeigher +import org.jetbrains.plugins.textmate.language.syntax.selector.TextMateSelectorWeigherImpl +import org.jetbrains.plugins.textmate.regex.CachingRegexFactory +import org.jetbrains.plugins.textmate.regex.RegexFactory +import org.jetbrains.plugins.textmate.regex.RememberingLastMatchRegexFactory import java.util.* import kotlin.math.min @@ -36,17 +47,17 @@ class RobotCodeLexer : LexerBase() { "comment.line.robotframework" to COMMENT_LINE, "comment.line.rest.robotframework" to COMMENT_LINE, "comment.block.robotframework" to COMMENT_BLOCK, - + "punctuation.definition.variable.begin.robotframework" to VARIABLE_BEGIN, "punctuation.definition.variable.end.robotframework" to VARIABLE_END, "punctuation.definition.envvar.begin.robotframework" to ENVIRONMENT_VARIABLE_BEGIN, "punctuation.definition.envvar.end.robotframework" to ENVIRONMENT_VARIABLE_END, "punctuation.definition.expression.begin.robotframework" to EXPRESSION_VARIABLE_BEGIN, "punctuation.definition.expression.end.robotframework" to EXPRESSION_VARIABLE_END, - + "entity.name.function.testcase.name.robotframework" to TESTCASE_NAME, "entity.name.function.keyword.name.robotframework" to KEYWORD_NAME, - + "keyword.other.header.robotframework" to HEADER, "keyword.other.header.settings.robotframework" to HEADER, "keyword.other.header.variable.robotframework" to HEADER, @@ -54,32 +65,36 @@ class RobotCodeLexer : LexerBase() { "keyword.other.header.task.robotframework" to HEADER, "keyword.other.header.keyword.robotframework" to HEADER, "keyword.other.header.comment.robotframework" to HEADER, - + "keyword.control.settings.robotframework" to SETTING, "keyword.control.settings.documentation.robotframework" to SETTING, - + "entity.name.function.keyword-call.robotframework" to KEYWORD_CALL, "keyword.control.flow.robotframework" to CONTROL_FLOW, - + "keyword.other.robotframework" to SETTING, - + "variable.name.readwrite.robotframework" to VARIABLE, "keyword.operator.robotframework" to OPERATOR, - + "constant.character.robotframework" to ARGUMENT, "string.unquoted.argument.robotframework" to ARGUMENT, - + "keyword.operator.continue.robotframework" to CONTINUATION, - + "punctuation.definition.variable.python.begin.robotframework" to VARIABLE_BEGIN, ) } } - - - private val myLexer = - TextMateLexer(TextMateBundleHolder.descriptor, Registry.get("textmate.line.highlighting.limit").asInteger()) - private var currentLineTokens = LinkedList() + + val regexFactory: RegexFactory = CachingRegexFactory(RememberingLastMatchRegexFactory(JoniRegexFactory())) + val weigher: TextMateSelectorCachingWeigher = TextMateSelectorCachingWeigher(TextMateSelectorWeigherImpl()) + val syntaxMatcher: TextMateCachingSyntaxMatcher = + TextMateCachingSyntaxMatcher(TextMateSyntaxMatcherImpl(regexFactory, weigher)) + val lexer = TextMateLexerCore(TextMateBundleHolder.descriptor, syntaxMatcher, Registry.get("textmate.line.highlighting.limit").asInteger(), false) + + + private var currentLineTokens = LinkedList() private lateinit var buffer: CharSequence private var endOffset = 0 private var currentOffset = 0 @@ -87,7 +102,7 @@ class RobotCodeLexer : LexerBase() { private var tokenStart = 0 private var tokenEnd = 0 private var restartable = false - + override fun start(buffer: CharSequence, startOffset: Int, endOffset: Int, initialState: Int) { this.buffer = buffer this.endOffset = endOffset @@ -95,47 +110,50 @@ class RobotCodeLexer : LexerBase() { this.endOffset = endOffset this.currentLineTokens.clear() this.restartable = initialState == 0 - myLexer.init(buffer, startOffset) + lexer.init(buffer, startOffset) this.advance() } - + override fun getState(): Int { return if (restartable) 0 else 1 } - + override fun getTokenType(): IElementType? { return tokenType } - + override fun getTokenStart(): Int { return tokenStart } - + override fun getTokenEnd(): Int { return tokenEnd } - + override fun advance() { if (this.currentOffset >= this.endOffset) { - this.updateState(null as TextMateLexer.Token?, this.endOffset) + this.updateState(null, this.endOffset) } else { if (currentLineTokens.isEmpty()) { - myLexer.advanceLine(this.currentLineTokens) + val app = ApplicationManager.getApplication() + val checkCancelledCallback: Runnable? = + if (app != null && !app.isUnitTestMode) Runnable { ProgressManager.checkCanceled() } else null + currentLineTokens.addAll(lexer.advanceLine(checkCancelledCallback)) } - + this.updateState( currentLineTokens.poll(), - myLexer.currentOffset + lexer.getCurrentOffset() ) } } - - private fun updateState(token: TextMateLexer.Token?, fallbackOffset: Int) { + + private fun updateState(token: TextmateToken?, fallbackOffset: Int) { if (token != null) { this.tokenType = (if (token.scope === TextMateScope.WHITESPACE) TokenType.WHITE_SPACE else mapping[token.scope.scopeName] ?: RobotTextMateElementType.create(token.scope)) - + tokenStart = token.startOffset tokenEnd = min(token.endOffset.toDouble(), endOffset.toDouble()).toInt() currentOffset = token.endOffset @@ -148,14 +166,12 @@ class RobotCodeLexer : LexerBase() { restartable = true } } - + override fun getBufferSequence(): CharSequence { return buffer } - + override fun getBufferEnd(): Int { return endOffset } } - - diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt index 1ae8977c..81c81d93 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt @@ -4,7 +4,6 @@ import com.intellij.openapi.diagnostic.thisLogger import com.intellij.openapi.editor.colors.TextAttributesKey import com.intellij.psi.PsiFile import com.redhat.devtools.lsp4ij.features.semanticTokens.DefaultSemanticTokensColorsProvider -import com.redhat.devtools.lsp4ij.features.semanticTokens.SemanticTokensColorsProvider import dev.robotcode.robotcode4ij.highlighting.Colors private val mapping by lazy { @@ -16,11 +15,13 @@ private val mapping by lazy { "headerVariable" to Colors.HEADER, "headerTestcase" to Colors.HEADER, "headerTask" to Colors.HEADER, - + "setting" to Colors.SETTING, "settingImport" to Colors.SETTING_IMPORT, "controlFlow" to Colors.CONTROL_FLOW, - + "forSeparator" to Colors.CONTROL_FLOW, + "var" to Colors.VAR, + "testcaseName" to Colors.TESTCASE_NAME, "keywordName" to Colors.KEYWORD_NAME, "keywordCall" to Colors.KEYWORD_CALL, @@ -34,7 +35,7 @@ private val mapping by lazy { "variableExpression" to Colors.VARIABLE_EXPRESSION, "variableBegin" to Colors.VARIABLE_BEGIN, "variableEnd" to Colors.VARIABLE_END, - + "namespace" to Colors.NAMESPACE, "bddPrefix" to Colors.BDD_PREFIX, "continuation" to Colors.CONTINUATION @@ -50,11 +51,10 @@ class RobotCodeSemanticTokensColorsProvider : DefaultSemanticTokensColorsProvide tokenTypeAndModifiers += ",${tokenModifiers.joinToString(",")}" } val result = mapping[tokenTypeAndModifiers] ?: mapping[tokenType] ?: super.getTextAttributesKey(tokenType, tokenModifiers, file) - + return result ?: run { thisLogger().warn("Unknown token type: $tokenType and modifiers: $tokenModifiers") null } } } - From 6b8329705caa5c486ecf7c682dd2fc365c2d5754 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Wed, 7 May 2025 22:24:27 +0200 Subject: [PATCH 34/35] style(intellij): some code formatting and cleanup --- intellij-client/build.gradle.kts | 48 ++++---- .../robotcode4ij/RobotCodeHelpers.kt | 30 ++--- .../robotcode4ij/TextMateBundleHolder.kt | 16 +-- .../RobotCodeColorSettingsPage.kt | 22 ++-- .../robotcode4ij/highlighting/Colors.kt | 28 ++--- .../highlighting/RobotCodeLexer.kt | 55 +++++---- .../RobotCodeSemanticTokensColorsProvider.kt | 14 ++- .../testing/RobotCodeTestManager.kt | 109 +++++++++--------- .../robotcode/robotcode4ij/utils/NetUtils.kt | 2 +- .../colorSchemes/RobotDarculaColorScheme.xml | 4 +- .../colorSchemes/RobotDarkColorScheme.xml | 4 +- .../colorSchemes/RobotLightColorScheme.xml | 4 +- 12 files changed, 172 insertions(+), 164 deletions(-) diff --git a/intellij-client/build.gradle.kts b/intellij-client/build.gradle.kts index e83cb179..a2e5eea5 100644 --- a/intellij-client/build.gradle.kts +++ b/intellij-client/build.gradle.kts @@ -27,7 +27,7 @@ kotlin { // Configure project's dependencies repositories { mavenCentral() - + // IntelliJ Platform Gradle Plugin Repositories Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-repositories-extension.html intellijPlatform { defaultRepositories() @@ -37,10 +37,10 @@ repositories { // Dependencies are managed with Gradle version catalog - read more: https://docs.gradle.org/current/userguide/platforms.html#sub:version-catalog dependencies { compileOnly(libs.kotlinxSerialization) - + testImplementation(kotlin("test")) testImplementation(libs.junit) - + // IntelliJ Platform Gradle Plugin Dependencies Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html intellijPlatform { create( @@ -48,11 +48,11 @@ dependencies { providers.gradleProperty("platformVersion"), useInstaller = false, ) - + // Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins. bundledPlugins(providers.gradleProperty("platformBundledPlugins").map { it.split(',') }) plugins(providers.gradleProperty("platformPlugins").map { it.split(',') }) - + pluginVerifier() zipSigner() testFramework(TestFrameworkType.Platform) @@ -64,12 +64,12 @@ intellijPlatform { pluginConfiguration { name = providers.gradleProperty("pluginName") version = providers.gradleProperty("pluginVersion") - + // Extract the section from README.md and provide for the plugin's manifest description = providers.fileContents(layout.projectDirectory.file("README.md")).asText.map { val start = "" val end = "" - + with(it.lines()) { if (!containsAll(listOf(start, end))) { throw GradleException("Plugin description section not found in README.md:\n$start ... $end") @@ -77,9 +77,9 @@ intellijPlatform { subList(indexOf(start) + 1, indexOf(end)).joinToString("\n").let(::markdownToHTML) } } - + val changelog = project.changelog - + // local variable for configuration cache compatibility // Get the latest available change notes from the changelog file changeNotes = providers.gradleProperty("pluginVersion").map { pluginVersion -> with(changelog) { @@ -89,34 +89,34 @@ intellijPlatform { ) } } - + ideaVersion { sinceBuild = providers.gradleProperty("pluginSinceBuild") untilBuild = providers.gradleProperty("pluginUntilBuild") } } - + signing { certificateChain = providers.environmentVariable("CERTIFICATE_CHAIN") privateKey = providers.environmentVariable("PRIVATE_KEY") password = providers.environmentVariable("PRIVATE_KEY_PASSWORD") } - + publishing { token = providers.environmentVariable("PUBLISH_TOKEN") - + // The pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3 // Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more: // https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel channels = providers.gradleProperty("pluginVersion") .map { listOf(it.substringAfter('-', "").substringBefore('.').ifEmpty { "default" }) } } - + pluginVerification { ides { recommended() } - + } } @@ -149,22 +149,22 @@ val prepareSandboxConfig: PrepareSandboxTask.() -> Unit = { tasks { runIde { - + // From https://app.slack.com/client/T5P9YATH9/C5U8BM1MK // systemProperty("ide.experimental.ui", "true") // systemProperty("projectView.hide.dot.idea", "false") // systemProperty("terminal.new.ui", "false") // systemProperty("ide.tree.painter.compact.default", "true") } - + wrapper { gradleVersion = providers.gradleProperty("gradleVersion").get() } - + publishPlugin { dependsOn(patchChangelog) } - + prepareSandbox(prepareSandboxConfig) } @@ -190,9 +190,9 @@ tasks.withType { ) } } - + prepareSandboxTask(prepareSandboxConfig) - + plugins { robotServerPlugin(Constraints.LATEST_VERSION) } @@ -200,19 +200,19 @@ tasks.withType { @Suppress("unused") val runIdePyCharmProf by intellijPlatformTesting.runIde.registering { type = IntelliJPlatformType.PyCharmProfessional - + prepareSandboxTask(prepareSandboxConfig) } @Suppress("unused") val runIdePyCharmCommunityEAP by intellijPlatformTesting.runIde.registering { type = IntelliJPlatformType.PyCharmCommunity version = "LATEST-EAP-SNAPSHOT" - + prepareSandboxTask(prepareSandboxConfig) } @Suppress("unused") val runIdeIntellijIdeaC by intellijPlatformTesting.runIde.registering { type = IntelliJPlatformType.IntellijIdeaCommunity - + prepareSandboxTask(prepareSandboxConfig) } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/RobotCodeHelpers.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/RobotCodeHelpers.kt index d7687c49..f98ecff2 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/RobotCodeHelpers.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/RobotCodeHelpers.kt @@ -22,7 +22,7 @@ class RobotCodeHelpers { val toolPath: Path = bundledPath.resolve("tool") val robotCodePath: Path = toolPath.resolve("robotcode") val checkRobotVersion: Path = toolPath.resolve("utils").resolve("check_robot_version.py") - + val PYTHON_AND_ROBOT_OK_KEY = Key.create("ROBOTCODE_PYTHON_AND_ROBOT_OK") } } @@ -38,28 +38,28 @@ fun Project.checkPythonAndRobotVersion(reset: Boolean = false): Boolean { if (!reset && this.getUserData(RobotCodeHelpers.PYTHON_AND_ROBOT_OK_KEY) == true) { return true } - + val result = ApplicationManager.getApplication().executeOnPooledThread { - + val pythonInterpreter = this.robotPythonSdk?.homePath - + if (pythonInterpreter == null) { thisLogger().info("No Python Interpreter defined for project '${this.name}'") return@executeOnPooledThread false } - + if (!Path(pythonInterpreter).exists()) { thisLogger().warn("Python Interpreter $pythonInterpreter not exists") return@executeOnPooledThread false } - + if (!Path(pythonInterpreter).isRegularFile()) { thisLogger().warn("Python Interpreter $pythonInterpreter is not a regular file") return@executeOnPooledThread false } - + thisLogger().info("Use Python Interpreter $pythonInterpreter for project '${this.name}'") - + val res = ExecUtil.execAndGetOutput( GeneralCommandLine( pythonInterpreter, "-u", "-c", "import sys; print(sys.version_info[:2]>=(3,8))" @@ -69,7 +69,7 @@ fun Project.checkPythonAndRobotVersion(reset: Boolean = false): Boolean { thisLogger().warn("Invalid python version") return@executeOnPooledThread false } - + val res1 = ExecUtil.execAndGetOutput( GeneralCommandLine(pythonInterpreter, "-u", RobotCodeHelpers.checkRobotVersion.pathString), timeoutInMilliseconds = 5000 @@ -78,13 +78,13 @@ fun Project.checkPythonAndRobotVersion(reset: Boolean = false): Boolean { thisLogger().warn("Invalid Robot Framework version") return@executeOnPooledThread false } - + return@executeOnPooledThread true - + }.get() - + this.putUserData(RobotCodeHelpers.PYTHON_AND_ROBOT_OK_KEY, result) - + return result } @@ -100,7 +100,7 @@ fun Project.buildRobotCodeCommandLine( if (!this.checkPythonAndRobotVersion()) { throw IllegalArgumentException("PythonSDK is not defined or robot version is not valid for project ${this.name}") } - + val pythonInterpreter = this.robotPythonSdk?.homePath val commandLine = GeneralCommandLine( pythonInterpreter, @@ -115,6 +115,6 @@ fun Project.buildRobotCodeCommandLine( *extraArgs, *args ).withWorkDirectory(this.basePath).withCharset(Charsets.UTF_8) - + return commandLine } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/TextMateBundleHolder.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/TextMateBundleHolder.kt index 7c1c478f..d0abd0cb 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/TextMateBundleHolder.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/TextMateBundleHolder.kt @@ -8,26 +8,26 @@ import org.jetbrains.plugins.textmate.language.syntax.TextMateSyntaxTableBuilder object TextMateBundleHolder { private val interner = TextMateConcurrentMapInterner() - + val descriptor: TextMateLanguageDescriptor by lazy { - + val reader = TextMateService.getInstance().readBundle(RobotCodeHelpers.basePath) ?: throw IllegalStateException("Failed to read robotcode textmate bundle") - + val builder = TextMateSyntaxTableBuilder(interner) - + val grammarIterator = reader.readGrammars().iterator() while (grammarIterator.hasNext()) { val grammar = grammarIterator.next() - - val rootScopeName = builder.addSyntax(grammar.plist.value) ?: continue + + val rootScopeName = builder.addSyntax(grammar.plist.value) ?: continue if (rootScopeName == "source.robotframework") { val syntax = builder.build() return@lazy TextMateLanguageDescriptor(rootScopeName, syntax.getSyntax(rootScopeName)) } } - + throw IllegalStateException("Failed to find robotcode textmate in bundle") } - + } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/configuration/RobotCodeColorSettingsPage.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/configuration/RobotCodeColorSettingsPage.kt index 16f5a898..8eb78dc6 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/configuration/RobotCodeColorSettingsPage.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/configuration/RobotCodeColorSettingsPage.kt @@ -11,7 +11,7 @@ import dev.robotcode.robotcode4ij.highlighting.RobotCodeSyntaxHighlighter import javax.swing.Icon class RobotCodeColorSettingsPage : ColorSettingsPage { - + private val descriptors: Array = arrayOf( AttributesDescriptor("Header", Colors.HEADER), AttributesDescriptor("Test case name", Colors.TESTCASE_NAME), @@ -30,37 +30,37 @@ class RobotCodeColorSettingsPage : ColorSettingsPage { AttributesDescriptor("Variable expression", Colors.VARIABLE_EXPRESSION), AttributesDescriptor("Variable begin", Colors.VARIABLE_BEGIN), AttributesDescriptor("Variable end", Colors.VARIABLE_END), - + AttributesDescriptor("Line comment", Colors.LINE_COMMENT), AttributesDescriptor("Block comment", Colors.BLOCK_COMMENT), - + AttributesDescriptor("Operator", Colors.OPERATOR), AttributesDescriptor("Namespace", Colors.NAMESPACE), AttributesDescriptor("BDD prefix", Colors.BDD_PREFIX), - + AttributesDescriptor("Continuation", Colors.CONTINUATION), ) - + override fun getAttributeDescriptors(): Array { return descriptors } - + override fun getColorDescriptors(): Array { return ColorDescriptor.EMPTY_ARRAY } - + override fun getDisplayName(): String { return "Robot Framework" } - + override fun getIcon(): Icon? { return RobotIcons.RobotCode } - + override fun getHighlighter(): SyntaxHighlighter { return RobotCodeSyntaxHighlighter() } - + override fun getDemoText(): String { return """ *** Settings *** @@ -124,7 +124,7 @@ class RobotCodeColorSettingsPage : ColorSettingsPage { with multiple lines """.trimIndent() } - + override fun getAdditionalHighlightingTagToDescriptorMap(): MutableMap? { return null } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/Colors.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/Colors.kt index d7211e76..7036b674 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/Colors.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/Colors.kt @@ -5,13 +5,13 @@ import com.intellij.openapi.editor.colors.TextAttributesKey import com.intellij.openapi.editor.colors.TextAttributesKey.createTextAttributesKey object Colors { - + val HEADER: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_HEADER", DefaultLanguageHighlighterColors.KEYWORD) - + val TESTCASE_NAME: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_TESTCASE_NAME", DefaultLanguageHighlighterColors.FUNCTION_DECLARATION) - + val KEYWORD_NAME: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_KEYWORD_NAME", DefaultLanguageHighlighterColors.FUNCTION_DECLARATION) val KEYWORD_CALL: TextAttributesKey = @@ -20,49 +20,49 @@ object Colors { createTextAttributesKey("ROBOTFRAMEWORK_KEYWORD_CALL_INNER", DefaultLanguageHighlighterColors.FUNCTION_CALL) val NAME_CALL: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_NAME_CALL", DefaultLanguageHighlighterColors.FUNCTION_CALL) - + val SETTING: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_SETTING", DefaultLanguageHighlighterColors.KEYWORD) val SETTING_IMPORT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_SETTING_IMPORT", DefaultLanguageHighlighterColors.KEYWORD) val CONTROL_FLOW: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_CONTROL_FLOW", DefaultLanguageHighlighterColors.KEYWORD) - + val VAR: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_VAR", DefaultLanguageHighlighterColors.KEYWORD) - + val VARIABLE: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_VARIABLE", DefaultLanguageHighlighterColors.GLOBAL_VARIABLE) val VARIABLE_EXPRESSION: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_VARIABLE_EXPRESSION", DefaultLanguageHighlighterColors.GLOBAL_VARIABLE) - + val VARIABLE_BEGIN: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_VARIABLE_BEGIN", DefaultLanguageHighlighterColors.BRACES) val VARIABLE_END: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_VARIABLE_END", DefaultLanguageHighlighterColors.BRACES) - + val NAMESPACE: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_NAMESPACE", DefaultLanguageHighlighterColors.CLASS_REFERENCE) - + val ARGUMENT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_ARGUMENT", DefaultLanguageHighlighterColors.STRING) val EMBEDDED_ARGUMENT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_EMBEDDED_ARGUMENT", DefaultLanguageHighlighterColors.STRING) val NAMED_ARGUMENT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_NAMED_ARGUMENT", DefaultLanguageHighlighterColors.PARAMETER) - + val LINE_COMMENT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_LINE_COMMENT", DefaultLanguageHighlighterColors.LINE_COMMENT) - + val BLOCK_COMMENT: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_BLOCK_COMMENT", DefaultLanguageHighlighterColors.BLOCK_COMMENT) - + val OPERATOR: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_OPERATOR", DefaultLanguageHighlighterColors.OPERATION_SIGN) - + val BDD_PREFIX: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_BDD_PREFIX", DefaultLanguageHighlighterColors.METADATA) - + val CONTINUATION: TextAttributesKey = createTextAttributesKey("ROBOTFRAMEWORK_CONTINUATION", DefaultLanguageHighlighterColors.DOT) } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeLexer.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeLexer.kt index b6642914..e955a270 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeLexer.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/highlighting/RobotCodeLexer.kt @@ -47,17 +47,17 @@ class RobotCodeLexer : LexerBase() { "comment.line.robotframework" to COMMENT_LINE, "comment.line.rest.robotframework" to COMMENT_LINE, "comment.block.robotframework" to COMMENT_BLOCK, - + "punctuation.definition.variable.begin.robotframework" to VARIABLE_BEGIN, "punctuation.definition.variable.end.robotframework" to VARIABLE_END, "punctuation.definition.envvar.begin.robotframework" to ENVIRONMENT_VARIABLE_BEGIN, "punctuation.definition.envvar.end.robotframework" to ENVIRONMENT_VARIABLE_END, "punctuation.definition.expression.begin.robotframework" to EXPRESSION_VARIABLE_BEGIN, "punctuation.definition.expression.end.robotframework" to EXPRESSION_VARIABLE_END, - + "entity.name.function.testcase.name.robotframework" to TESTCASE_NAME, "entity.name.function.keyword.name.robotframework" to KEYWORD_NAME, - + "keyword.other.header.robotframework" to HEADER, "keyword.other.header.settings.robotframework" to HEADER, "keyword.other.header.variable.robotframework" to HEADER, @@ -65,35 +65,40 @@ class RobotCodeLexer : LexerBase() { "keyword.other.header.task.robotframework" to HEADER, "keyword.other.header.keyword.robotframework" to HEADER, "keyword.other.header.comment.robotframework" to HEADER, - + "keyword.control.settings.robotframework" to SETTING, "keyword.control.settings.documentation.robotframework" to SETTING, - + "entity.name.function.keyword-call.robotframework" to KEYWORD_CALL, "keyword.control.flow.robotframework" to CONTROL_FLOW, - + "keyword.other.robotframework" to SETTING, - + "variable.name.readwrite.robotframework" to VARIABLE, "keyword.operator.robotframework" to OPERATOR, - + "constant.character.robotframework" to ARGUMENT, "string.unquoted.argument.robotframework" to ARGUMENT, - + "keyword.operator.continue.robotframework" to CONTINUATION, - + "punctuation.definition.variable.python.begin.robotframework" to VARIABLE_BEGIN, ) } } - + val regexFactory: RegexFactory = CachingRegexFactory(RememberingLastMatchRegexFactory(JoniRegexFactory())) val weigher: TextMateSelectorCachingWeigher = TextMateSelectorCachingWeigher(TextMateSelectorWeigherImpl()) val syntaxMatcher: TextMateCachingSyntaxMatcher = TextMateCachingSyntaxMatcher(TextMateSyntaxMatcherImpl(regexFactory, weigher)) - val lexer = TextMateLexerCore(TextMateBundleHolder.descriptor, syntaxMatcher, Registry.get("textmate.line.highlighting.limit").asInteger(), false) - - + val lexer = TextMateLexerCore( + TextMateBundleHolder.descriptor, + syntaxMatcher, + Registry.get("textmate.line.highlighting.limit").asInteger(), + false + ) + + private var currentLineTokens = LinkedList() private lateinit var buffer: CharSequence private var endOffset = 0 @@ -102,7 +107,7 @@ class RobotCodeLexer : LexerBase() { private var tokenStart = 0 private var tokenEnd = 0 private var restartable = false - + override fun start(buffer: CharSequence, startOffset: Int, endOffset: Int, initialState: Int) { this.buffer = buffer this.endOffset = endOffset @@ -113,23 +118,23 @@ class RobotCodeLexer : LexerBase() { lexer.init(buffer, startOffset) this.advance() } - + override fun getState(): Int { return if (restartable) 0 else 1 } - + override fun getTokenType(): IElementType? { return tokenType } - + override fun getTokenStart(): Int { return tokenStart } - + override fun getTokenEnd(): Int { return tokenEnd } - + override fun advance() { if (this.currentOffset >= this.endOffset) { this.updateState(null, this.endOffset) @@ -140,20 +145,20 @@ class RobotCodeLexer : LexerBase() { if (app != null && !app.isUnitTestMode) Runnable { ProgressManager.checkCanceled() } else null currentLineTokens.addAll(lexer.advanceLine(checkCancelledCallback)) } - + this.updateState( currentLineTokens.poll(), lexer.getCurrentOffset() ) } } - + private fun updateState(token: TextmateToken?, fallbackOffset: Int) { if (token != null) { this.tokenType = (if (token.scope === TextMateScope.WHITESPACE) TokenType.WHITE_SPACE else mapping[token.scope.scopeName] ?: RobotTextMateElementType.create(token.scope)) - + tokenStart = token.startOffset tokenEnd = min(token.endOffset.toDouble(), endOffset.toDouble()).toInt() currentOffset = token.endOffset @@ -166,11 +171,11 @@ class RobotCodeLexer : LexerBase() { restartable = true } } - + override fun getBufferSequence(): CharSequence { return buffer } - + override fun getBufferEnd(): Int { return endOffset } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt index 81c81d93..bece2116 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/lsp/RobotCodeSemanticTokensColorsProvider.kt @@ -15,13 +15,13 @@ private val mapping by lazy { "headerVariable" to Colors.HEADER, "headerTestcase" to Colors.HEADER, "headerTask" to Colors.HEADER, - + "setting" to Colors.SETTING, "settingImport" to Colors.SETTING_IMPORT, "controlFlow" to Colors.CONTROL_FLOW, "forSeparator" to Colors.CONTROL_FLOW, "var" to Colors.VAR, - + "testcaseName" to Colors.TESTCASE_NAME, "keywordName" to Colors.KEYWORD_NAME, "keywordCall" to Colors.KEYWORD_CALL, @@ -35,7 +35,7 @@ private val mapping by lazy { "variableExpression" to Colors.VARIABLE_EXPRESSION, "variableBegin" to Colors.VARIABLE_BEGIN, "variableEnd" to Colors.VARIABLE_END, - + "namespace" to Colors.NAMESPACE, "bddPrefix" to Colors.BDD_PREFIX, "continuation" to Colors.CONTINUATION @@ -50,8 +50,12 @@ class RobotCodeSemanticTokensColorsProvider : DefaultSemanticTokensColorsProvide if (tokenModifiers.isNotEmpty()) { tokenTypeAndModifiers += ",${tokenModifiers.joinToString(",")}" } - val result = mapping[tokenTypeAndModifiers] ?: mapping[tokenType] ?: super.getTextAttributesKey(tokenType, tokenModifiers, file) - + val result = mapping[tokenTypeAndModifiers] ?: mapping[tokenType] ?: super.getTextAttributesKey( + tokenType, + tokenModifiers, + file + ) + return result ?: run { thisLogger().warn("Unknown token type: $tokenType and modifiers: $tokenModifiers") null diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/testing/RobotCodeTestManager.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/testing/RobotCodeTestManager.kt index 5b32d2f1..32647d6b 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/testing/RobotCodeTestManager.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/testing/RobotCodeTestManager.kt @@ -36,7 +36,6 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.Job import kotlinx.coroutines.delay import kotlinx.coroutines.launch -import kotlinx.coroutines.runBlocking import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import java.nio.file.Paths @@ -48,23 +47,23 @@ import java.util.* companion object { private const val DEBOUNCE_DELAY = 1000L } - + private val refreshJobs = WeakHashMap() private var refreshJob: Job? = null - + var testItems: Array = arrayOf() private set - + init { EditorFactory.getInstance().eventMulticaster.addDocumentListener(this, this) VirtualFileManager.getInstance().addAsyncFileListener(this, this) project.messageBus.connect().subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, this) } - + override fun dispose() { EditorFactory.getInstance().eventMulticaster.removeDocumentListener(this) } - + override fun documentChanged(event: DocumentEvent) { super.documentChanged(event) FileDocumentManager.getInstance().getFile(event.document)?.let { file -> @@ -78,11 +77,11 @@ import java.util.* } } } - + } } } - + override fun prepareChange(events: List): AsyncFileListener.ChangeApplier? { return object : AsyncFileListener.ChangeApplier { override fun afterVfsChange() { @@ -95,43 +94,43 @@ import java.util.* } else { refreshDebounced() } - + } } } } } } - + override fun fileOpened(source: FileEditorManager, file: VirtualFile) { if (file.fileType == RobotSuiteFileType) { refreshDebounced(file) } } - + override fun fileClosed(source: FileEditorManager, file: VirtualFile) { if (file.fileType == RobotSuiteFileType) { refreshDebounced(file) } } - + @OptIn(ExperimentalCoroutinesApi::class) private val refreshScope = CoroutineScope(Dispatchers.IO.limitedParallelism(1)) - + fun refreshDebounced(file: VirtualFile) { if (!project.isOpen || project.isDisposed) { return } - + val job = refreshJobs[file] - + if (job != null) { thisLogger().info("Cancelling previous refresh job") job.cancel() } if (refreshJob != null) { thisLogger().info("Cancelling previous refresh job") - //runBlocking { refreshJob?.join() } + // runBlocking { refreshJob?.join() } } refreshJobs[file] = refreshScope.launch { delay(DEBOUNCE_DELAY) @@ -139,36 +138,36 @@ import java.util.* refreshJobs.remove(file) } } - + fun refreshDebounced() { if (!project.isOpen || project.isDisposed) { return } - + refreshJobs.values.forEach { it.cancel() } refreshJob?.cancel() - + refreshJob = refreshScope.launch { delay(DEBOUNCE_DELAY) refresh() refreshJob = null } } - + fun refresh(uri: String) { if (!project.isOpen || project.isDisposed) { return } - + thisLogger().info("Refreshing test items for $uri") try { val testItem = findTestItem(uri) ?: return - + testItem.children = ApplicationManager.getApplication().executeOnPooledThread { - + // TODO: Add support for configurable paths val defaultPaths = arrayOf("-dp", ".") - + val cmdLine = project.buildRobotCodeCommandLine( arrayOf( *defaultPaths, @@ -183,9 +182,9 @@ import java.util.* escapeRobotGlob(testItem.longname) ), format = "json" ).withCharset(Charsets.UTF_8).withWorkDirectory(project.basePath) - + var openFiles = mutableMapOf() - + ApplicationManager.getApplication().runReadAction { FileEditorManagerEx.getInstanceEx(project).openFiles.forEach { file -> if (file.uri == uri) { @@ -195,9 +194,9 @@ import java.util.* } } } - + var openFilesAsString = Json.encodeToString(openFiles) - + val result = CapturingProcessHandler(cmdLine).apply { process.outputStream.bufferedWriter().apply { write(openFilesAsString) @@ -205,7 +204,7 @@ import java.util.* close() } }.runProcess() - + if (result.exitCode != 0) { throw RuntimeException("Failed to discover test items for $uri: ${result.stderr}") } @@ -214,24 +213,24 @@ import java.util.* } catch (e: Exception) { thisLogger().warn("Failed to discover test items", e) } - + DaemonCodeAnalyzer.getInstance(project).restart() } - + fun refresh() { thisLogger().info("Refreshing test items") try { testItems = ApplicationManager.getApplication().executeOnPooledThread { - + // TODO: Add support for configurable paths val defaultPaths = arrayOf("-dp", ".") - + val cmdLine = project.buildRobotCodeCommandLine( arrayOf(*defaultPaths, "discover", "--read-from-stdin", "all"), format = "json" ).withCharset(Charsets.UTF_8).withWorkDirectory(project.basePath) - + val openFiles = mutableMapOf() - + ApplicationManager.getApplication().runReadAction { FileEditorManagerEx.getInstanceEx(project).openFiles.forEach { file -> FileDocumentManager.getInstance().getDocument(file)?.let { document -> @@ -239,9 +238,9 @@ import java.util.* } } } - + val openFilesAsString = Json.encodeToString(openFiles) - + val result = CapturingProcessHandler(cmdLine).apply { process.outputStream.bufferedWriter().apply { write(openFilesAsString) @@ -249,7 +248,7 @@ import java.util.* close() } }.runProcess() - + if (result.exitCode != 0) { throw RuntimeException("Failed to discover test items: ${result.stderr}") } @@ -259,23 +258,23 @@ import java.util.* thisLogger().warn("Failed to discover test items", e) testItems = arrayOf() } - + DaemonCodeAnalyzer.getInstance(project).restart() } - + fun findTestItem( uri: String, line: UInt? = null, ): RobotCodeTestItem? { return findTestItem(testItems, uri, line) } - + fun findTestItem( root: RobotCodeTestItem, uri: String, line: UInt? = null, ): RobotCodeTestItem? { - + if (line == null) { if (root.isSameUri(uri)) { return root @@ -285,10 +284,10 @@ import java.util.* return root } } - + return findTestItem(root.children ?: arrayOf(), uri, line) } - + fun findTestItem( testItems: Array, uri: String, line: UInt? = null ): RobotCodeTestItem? { @@ -298,38 +297,38 @@ import java.util.* return found } } - + return null } - - + + fun findTestItem(element: PsiElement): RobotCodeTestItem? { val directory = element as? PsiDirectory if (directory != null) { return findTestItem(directory.virtualFile.uri) } - + val containingFile = element.containingFile ?: return null if (containingFile !is RobotSuiteFile) { return null } - + if (element is RobotSuiteFile) { return findTestItem(containingFile.virtualFile.uri) } - + if (element.elementType !is IRobotFrameworkElementType) { return null } - + val psiDocumentManager = PsiDocumentManager.getInstance(project) ?: return null val document = psiDocumentManager.getDocument(containingFile) ?: return null val lineNumber = document.getLineNumber(element.startOffset) if (lineNumber <= 0) return null // this is a suite file and this is already caught above - + val columnNumber = element.startOffset - document.getLineStartOffset(lineNumber) if (columnNumber != 0) return null - + val result = findTestItem(containingFile.virtualFile.uri, lineNumber.toUInt()) return result } @@ -337,13 +336,13 @@ import java.util.* private fun getRfcCompliantUri(virtualFile: VirtualFile): String { val filePath = virtualFile.path - + val normalizedPath = if (isWindows()) { filePath.replace("\\", "/") } else { filePath } - + return Paths.get(normalizedPath).toUri().toString().removeSuffix("/") } diff --git a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/utils/NetUtils.kt b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/utils/NetUtils.kt index e6615f19..76eae71c 100644 --- a/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/utils/NetUtils.kt +++ b/intellij-client/src/main/kotlin/dev/robotcode/robotcode4ij/utils/NetUtils.kt @@ -8,7 +8,7 @@ object NetUtils { try { ServerSocket(startPort).use { return startPort } } catch (_: Exception) { - + } return if (endPort == null) { diff --git a/intellij-client/src/main/resources/colorSchemes/RobotDarculaColorScheme.xml b/intellij-client/src/main/resources/colorSchemes/RobotDarculaColorScheme.xml index be81bd32..4507e7a8 100644 --- a/intellij-client/src/main/resources/colorSchemes/RobotDarculaColorScheme.xml +++ b/intellij-client/src/main/resources/colorSchemes/RobotDarculaColorScheme.xml @@ -22,8 +22,8 @@ diff --git a/intellij-client/src/main/resources/colorSchemes/RobotDarkColorScheme.xml b/intellij-client/src/main/resources/colorSchemes/RobotDarkColorScheme.xml index 570b3598..5a6e7ff5 100644 --- a/intellij-client/src/main/resources/colorSchemes/RobotDarkColorScheme.xml +++ b/intellij-client/src/main/resources/colorSchemes/RobotDarkColorScheme.xml @@ -19,8 +19,8 @@ diff --git a/intellij-client/src/main/resources/colorSchemes/RobotLightColorScheme.xml b/intellij-client/src/main/resources/colorSchemes/RobotLightColorScheme.xml index 74550962..39ba7f4f 100644 --- a/intellij-client/src/main/resources/colorSchemes/RobotLightColorScheme.xml +++ b/intellij-client/src/main/resources/colorSchemes/RobotLightColorScheme.xml @@ -19,8 +19,8 @@ From fafe5f78399ae2e77a688a07a5918166b2d30090 Mon Sep 17 00:00:00 2001 From: Daniel Biehl Date: Wed, 7 May 2025 23:03:32 +0200 Subject: [PATCH 35/35] =?UTF-8?q?chore(release):=20bump=20version=201.1.0?= =?UTF-8?q?=20=E2=86=92=201.2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 21 +++++++++++++ intellij-client/gradle.properties | 2 +- package-lock.json | 4 +-- package.json | 2 +- packages/analyze/pyproject.toml | 6 ++-- .../src/robotcode/analyze/__version__.py | 2 +- .../core/src/robotcode/core/__version__.py | 2 +- packages/debugger/pyproject.toml | 4 +-- .../src/robotcode/debugger/__version__.py | 2 +- packages/jsonrpc2/pyproject.toml | 2 +- .../src/robotcode/jsonrpc2/__version__.py | 2 +- packages/language_server/pyproject.toml | 8 ++--- .../robotcode/language_server/__version__.py | 2 +- .../src/robotcode/modifiers/__version__.py | 2 +- .../src/robotcode/plugin/__version__.py | 2 +- packages/repl/pyproject.toml | 2 +- .../repl/src/robotcode/repl/__version__.py | 2 +- packages/repl_server/pyproject.toml | 4 +-- .../src/robotcode/repl_server/__version__.py | 2 +- packages/robot/pyproject.toml | 2 +- .../robot/src/robotcode/robot/__version__.py | 2 +- packages/runner/pyproject.toml | 8 ++--- .../src/robotcode/runner/__version__.py | 2 +- pyproject.toml | 30 +++++++++---------- src/robotcode/cli/__version__.py | 2 +- 25 files changed, 70 insertions(+), 49 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9173b5f..5cec7c81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,27 @@ All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. +## [1.2.0](https://github.com/robotcodedev/robotcode/compare/v1.1.0..v1.2.0) - 2025-05-07 + +### Bug Fixes + +- **intellij:** Corrected handling of short by-longname argument ([b5fa232](https://github.com/robotcodedev/robotcode/commit/b5fa232f4c0fd3032b863363c141d8ffeff6c8c7)) +- **intellij:** Reenable semantic highlightning, because something has changed in the new LSP4IJ API ([5cdf3c3](https://github.com/robotcodedev/robotcode/commit/5cdf3c3ab87857db294e63bcdc0798f1cfd5eacd)) +- Update IntelliJ platform version and plugin dependencies ([e94c96b](https://github.com/robotcodedev/robotcode/commit/e94c96b99646e602820663f1210d0df962251bf1)) + + + because of some new features regarding syntax highlightning and text mate the minimal supported version is PyCharm 2025.1 + + +### Features + +- **intellij:** Refactored textmate highlightning to use the new intellij textmate infrastructure ([74644f0](https://github.com/robotcodedev/robotcode/commit/74644f055e6c1dea38e37446ef430387c667b80c)) +- **langserver:** Refactor and optimize Robot Framework textmate syntax highlighting rules ([5b7c4b1](https://github.com/robotcodedev/robotcode/commit/5b7c4b13469072e3c39c8c112118149ac4b5b1cd)) + + this also fixes the loading of robotframework core test files in PyCharm + + + ## [1.1.0](https://github.com/robotcodedev/robotcode/compare/v1.0.3..v1.1.0) - 2025-04-29 ### Bug Fixes diff --git a/intellij-client/gradle.properties b/intellij-client/gradle.properties index dd8b52c0..9df959cc 100644 --- a/intellij-client/gradle.properties +++ b/intellij-client/gradle.properties @@ -4,7 +4,7 @@ pluginGroup = dev.robotcode pluginName = RobotCode - Robot Framework Support pluginRepositoryUrl = https://github.com/robotcodedev/robotcode4ij # SemVer format -> https://semver.org -pluginVersion = 1.1.0 +pluginVersion = 1.2.0 # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html pluginSinceBuild = 251 diff --git a/package-lock.json b/package-lock.json index 7ac0fcff..e403dc9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "robotcode", - "version": "1.1.0", + "version": "1.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "robotcode", - "version": "1.1.0", + "version": "1.2.0", "funding": [ { "type": "opencollective", diff --git a/package.json b/package.json index 568bfac9..702d333b 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Robot Framework IntelliSense, linting, test execution and debugging, code formatting, refactoring, and many more", "icon": "images/icon.png", "publisher": "d-biehl", - "version": "1.1.0", + "version": "1.2.0", "author": { "name": "Daniel Biehl", "url": "https://github.com/robotcodedev/" diff --git a/packages/analyze/pyproject.toml b/packages/analyze/pyproject.toml index 74ccfe81..a71c8b0e 100644 --- a/packages/analyze/pyproject.toml +++ b/packages/analyze/pyproject.toml @@ -27,9 +27,9 @@ classifiers = [ ] dependencies = [ "robotframework>=4.1.0", - "robotcode-plugin==1.1.0", - "robotcode-robot==1.1.0", - "robotcode==1.1.0", + "robotcode-plugin==1.2.0", + "robotcode-robot==1.2.0", + "robotcode==1.2.0", ] dynamic = ["version"] diff --git a/packages/analyze/src/robotcode/analyze/__version__.py b/packages/analyze/src/robotcode/analyze/__version__.py index 6849410a..c68196d1 100644 --- a/packages/analyze/src/robotcode/analyze/__version__.py +++ b/packages/analyze/src/robotcode/analyze/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/packages/core/src/robotcode/core/__version__.py b/packages/core/src/robotcode/core/__version__.py index 6849410a..c68196d1 100644 --- a/packages/core/src/robotcode/core/__version__.py +++ b/packages/core/src/robotcode/core/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/packages/debugger/pyproject.toml b/packages/debugger/pyproject.toml index a9729ad8..8ca5b8e0 100644 --- a/packages/debugger/pyproject.toml +++ b/packages/debugger/pyproject.toml @@ -28,8 +28,8 @@ classifiers = [ dynamic = ["version"] dependencies = [ "robotframework>=4.1.0", - "robotcode-jsonrpc2==1.1.0", - "robotcode-runner==1.1.0", + "robotcode-jsonrpc2==1.2.0", + "robotcode-runner==1.2.0", ] [project.optional-dependencies] diff --git a/packages/debugger/src/robotcode/debugger/__version__.py b/packages/debugger/src/robotcode/debugger/__version__.py index 6849410a..c68196d1 100644 --- a/packages/debugger/src/robotcode/debugger/__version__.py +++ b/packages/debugger/src/robotcode/debugger/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/packages/jsonrpc2/pyproject.toml b/packages/jsonrpc2/pyproject.toml index 04666254..663f3ae0 100644 --- a/packages/jsonrpc2/pyproject.toml +++ b/packages/jsonrpc2/pyproject.toml @@ -25,7 +25,7 @@ classifiers = [ "Framework :: Robot Framework", "Framework :: Robot Framework :: Tool", ] -dependencies = ["robotcode-core==1.1.0"] +dependencies = ["robotcode-core==1.2.0"] dynamic = ["version"] [project.urls] diff --git a/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py b/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py index 6849410a..c68196d1 100644 --- a/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py +++ b/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/packages/language_server/pyproject.toml b/packages/language_server/pyproject.toml index 5271193e..df190188 100644 --- a/packages/language_server/pyproject.toml +++ b/packages/language_server/pyproject.toml @@ -27,10 +27,10 @@ classifiers = [ ] dependencies = [ "robotframework>=4.1.0", - "robotcode-jsonrpc2==1.1.0", - "robotcode-robot==1.1.0", - "robotcode-analyze==1.1.0", - "robotcode==1.1.0", + "robotcode-jsonrpc2==1.2.0", + "robotcode-robot==1.2.0", + "robotcode-analyze==1.2.0", + "robotcode==1.2.0", ] dynamic = ["version"] diff --git a/packages/language_server/src/robotcode/language_server/__version__.py b/packages/language_server/src/robotcode/language_server/__version__.py index 6849410a..c68196d1 100644 --- a/packages/language_server/src/robotcode/language_server/__version__.py +++ b/packages/language_server/src/robotcode/language_server/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/packages/modifiers/src/robotcode/modifiers/__version__.py b/packages/modifiers/src/robotcode/modifiers/__version__.py index 6849410a..c68196d1 100644 --- a/packages/modifiers/src/robotcode/modifiers/__version__.py +++ b/packages/modifiers/src/robotcode/modifiers/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/packages/plugin/src/robotcode/plugin/__version__.py b/packages/plugin/src/robotcode/plugin/__version__.py index 6849410a..c68196d1 100644 --- a/packages/plugin/src/robotcode/plugin/__version__.py +++ b/packages/plugin/src/robotcode/plugin/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/packages/repl/pyproject.toml b/packages/repl/pyproject.toml index 612878fb..9eb5275b 100644 --- a/packages/repl/pyproject.toml +++ b/packages/repl/pyproject.toml @@ -27,7 +27,7 @@ classifiers = [ ] dynamic = ["version"] dependencies = [ - "robotcode-runner==1.1.0" + "robotcode-runner==1.2.0" ] [project.entry-points.robotcode] diff --git a/packages/repl/src/robotcode/repl/__version__.py b/packages/repl/src/robotcode/repl/__version__.py index 6849410a..c68196d1 100644 --- a/packages/repl/src/robotcode/repl/__version__.py +++ b/packages/repl/src/robotcode/repl/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/packages/repl_server/pyproject.toml b/packages/repl_server/pyproject.toml index b3fc3fda..9958bfc4 100644 --- a/packages/repl_server/pyproject.toml +++ b/packages/repl_server/pyproject.toml @@ -27,8 +27,8 @@ classifiers = [ ] dynamic = ["version"] dependencies = [ - "robotcode-jsonrpc2==1.1.0", - "robotcode-runner==1.1.0" + "robotcode-jsonrpc2==1.2.0", + "robotcode-runner==1.2.0" ] [project.entry-points.robotcode] diff --git a/packages/repl_server/src/robotcode/repl_server/__version__.py b/packages/repl_server/src/robotcode/repl_server/__version__.py index 6849410a..c68196d1 100644 --- a/packages/repl_server/src/robotcode/repl_server/__version__.py +++ b/packages/repl_server/src/robotcode/repl_server/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/packages/robot/pyproject.toml b/packages/robot/pyproject.toml index 77e490b9..050bc3e1 100644 --- a/packages/robot/pyproject.toml +++ b/packages/robot/pyproject.toml @@ -30,7 +30,7 @@ dependencies = [ "robotframework>=4.1.0", "tomli>=1.1.0; python_version < '3.11'", "platformdirs>=3.2.0,<4.4.0", - "robotcode-core==1.1.0", + "robotcode-core==1.2.0", ] dynamic = ["version"] diff --git a/packages/robot/src/robotcode/robot/__version__.py b/packages/robot/src/robotcode/robot/__version__.py index 6849410a..c68196d1 100644 --- a/packages/robot/src/robotcode/robot/__version__.py +++ b/packages/robot/src/robotcode/robot/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/packages/runner/pyproject.toml b/packages/runner/pyproject.toml index 46e8c977..265cc171 100644 --- a/packages/runner/pyproject.toml +++ b/packages/runner/pyproject.toml @@ -28,10 +28,10 @@ classifiers = [ dynamic = ["version"] dependencies = [ "robotframework>=4.1.0", - "robotcode-robot==1.1.0", - "robotcode-modifiers==1.1.0", - "robotcode-plugin==1.1.0", - "robotcode==1.1.0", + "robotcode-robot==1.2.0", + "robotcode-modifiers==1.2.0", + "robotcode-plugin==1.2.0", + "robotcode==1.2.0", ] [project.entry-points.robotcode] diff --git a/packages/runner/src/robotcode/runner/__version__.py b/packages/runner/src/robotcode/runner/__version__.py index 6849410a..c68196d1 100644 --- a/packages/runner/src/robotcode/runner/__version__.py +++ b/packages/runner/src/robotcode/runner/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0" diff --git a/pyproject.toml b/pyproject.toml index 722632b2..45476b2e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,9 +51,9 @@ classifiers = [ ] requires-python = ">=3.8" dependencies = [ - "robotcode-core==1.1.0", - "robotcode-plugin==1.1.0", - "robotcode-robot==1.1.0", + "robotcode-core==1.2.0", + "robotcode-plugin==1.2.0", + "robotcode-robot==1.2.0", ] dynamic = ["version"] @@ -71,24 +71,24 @@ robotcode = "robotcode.cli.__main__:main" [project.optional-dependencies] -debugger = ["robotcode-debugger==1.1.0"] -languageserver = ["robotcode-language-server==1.1.0"] -runner = ["robotcode-runner==1.1.0"] -analyze = ["robotcode-analyze==1.1.0"] +debugger = ["robotcode-debugger==1.2.0"] +languageserver = ["robotcode-language-server==1.2.0"] +runner = ["robotcode-runner==1.2.0"] +analyze = ["robotcode-analyze==1.2.0"] yaml = ["PyYAML>=5.4"] lint = ["robotframework-robocop>=2.0.0"] tidy = ["robotframework-tidy>=2.0.0"] rest = ["docutils"] -repl = ["robotcode-repl==1.1.0"] -replserver = ["robotcode-repl-server==1.1.0"] +repl = ["robotcode-repl==1.2.0"] +replserver = ["robotcode-repl-server==1.2.0"] colored = ["rich"] all = [ - "robotcode-debugger==1.1.0", - "robotcode-language-server==1.1.0", - "robotcode-runner==1.1.0", - "robotcode-analyze==1.1.0", - "robotcode-repl==1.1.0", - "robotcode-repl-server==1.1.0", + "robotcode-debugger==1.2.0", + "robotcode-language-server==1.2.0", + "robotcode-runner==1.2.0", + "robotcode-analyze==1.2.0", + "robotcode-repl==1.2.0", + "robotcode-repl-server==1.2.0", "PyYAML>=5.4", "robotframework-robocop>=2.0.0", "robotframework-tidy>=2.0.0", diff --git a/src/robotcode/cli/__version__.py b/src/robotcode/cli/__version__.py index 6849410a..c68196d1 100644 --- a/src/robotcode/cli/__version__.py +++ b/src/robotcode/cli/__version__.py @@ -1 +1 @@ -__version__ = "1.1.0" +__version__ = "1.2.0"