Skip to content

Commit

Permalink
feat(langserver): support for folding WHILE and TRY/EXCEPT/FINALLY st…
Browse files Browse the repository at this point in the history
…atements
  • Loading branch information
d-biehl committed Dec 8, 2024
1 parent d6b2ff4 commit b3c1ce2
Show file tree
Hide file tree
Showing 169 changed files with 2,800 additions and 5 deletions.
4 changes: 3 additions & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@
"args": [
"--full-trace",
"--tb=native",
"--regtest2-reset",
//"--regtest-reset",
//"tests/robotcode/language_server/robotframework/parts/test_foldingrange.py"
//"tests/robotcode/language_server/robotframework/parts/test_references.py"
Expand All @@ -175,7 +176,8 @@
//"tests/robotcode/utils/test_dataclasses.py::test_really_complex_data"
//"tests/robotcode/language_server/robotframework/parts/test_foldingrange.py"
//"tests/robotcode/language_server/robotframework/parts/test_document_symbols.py",
"./tests/robotcode/language_server/robotframework/parts/test_semantic_tokens.py "
// "./tests/robotcode/language_server/robotframework/parts/test_semantic_tokens.py "
"tests/robotcode/language_server/robotframework/parts/test_foldingrange.py::test[False-foldingrange.robot-123-001-try end]"
],
"console": "integratedTerminal",
"justMyCode": false,
Expand Down
2 changes: 1 addition & 1 deletion hatch.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pre-install-commands = ["install-packages"]
cov = "pytest --cov-report=term-missing --cov-config=pyproject.toml --cov=robotcode --cov=tests {args}"
no-cov = "cov --no-cov {args}"
test = "pytest {args}"
test-reset = "test --regtest2-reset"
test-reset = "pytest --regtest2-reset {args}"
install-bundled-editable = "python ./scripts/install_bundled_editable.py"
create-json-schema = "python ./scripts/create_robot_toml_json_schema.py"
generate-rf-options = "python ./scripts/generate_rf_options.py"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -607,7 +607,7 @@
},
"extensions": [
".robotrepl",
".robotsript"
".robotscript"
],
"configuration": "./language-configuration.json"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,17 @@
from robotcode.core.lsp.types import FoldingRange
from robotcode.core.text_document import TextDocument
from robotcode.core.utils.logging import LoggingDescriptor
from robotcode.robot.utils import get_robot_version
from robotcode.robot.utils.visitor import Visitor

from .protocol_part import RobotLanguageServerProtocolPart

if TYPE_CHECKING:
from ..protocol import RobotLanguageServerProtocol

if get_robot_version() >= (5, 0):
from robot.parsing.model.blocks import Try, While


class _Visitor(Visitor):
def __init__(self, parent: RobotFoldingRangeProtocolPart) -> None:
Expand Down Expand Up @@ -117,6 +121,19 @@ def visit_If(self, node: If) -> None: # noqa: N802
if node.type == "IF":
self.current_if.remove(node)

if get_robot_version() >= (5, 0):

def visit_While(self, node: While) -> None: # noqa: N802
self.__append(node, kind="while")
self.generic_visit(node)

def visit_Try(self, node: Try) -> None: # noqa: N802
self.__append(node, kind="try", end_node=node.body[-1] if node.body else None)
self.generic_visit(node)


#


class RobotFoldingRangeProtocolPart(RobotLanguageServerProtocolPart):
_logger = LoggingDescriptor()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 82
name: while start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 86
name: while end
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 93
name: try start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 96
name: except start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 99
name: try end
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 102
name: try start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 105
name: finally start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 108
name: try end
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 111
name: try start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 114
name: except start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 117
name: except start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 120
name: finally start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 123
name: try end
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 82
name: while start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 86
name: while end
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 93
name: try start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 96
name: except start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 99
name: try end
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 102
name: try start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 105
name: finally start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 108
name: try end
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 111
name: try start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 114
name: except start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 117
name: except start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 120
name: finally start
result: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
data: !GeneratedTestData
character: 1
line: 123
name: try end
result: []
Loading

0 comments on commit b3c1ce2

Please sign in to comment.