Skip to content

Commit 39d4aed

Browse files
committed
implement hover and goto for assign tokens
1 parent be7fe73 commit 39d4aed

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

robotcode/language_server/robotframework/parts/goto.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
get_tokens_at_position,
2626
range_from_token,
2727
range_from_token_or_node,
28+
tokenize_variables,
2829
)
2930

3031
if TYPE_CHECKING:
@@ -103,9 +104,11 @@ async def _definition_default(
103104

104105
tokens = get_tokens_at_position(node, position)
105106

106-
for t in tokens:
107+
for token in tokens:
107108
try:
108-
for sub_token in filter(lambda s: s.type == RobotToken.VARIABLE, t.tokenize_variables()):
109+
for sub_token in filter(
110+
lambda s: s.type == RobotToken.VARIABLE, tokenize_variables(token, ignore_errors=True)
111+
):
109112
range = range_from_token(sub_token)
110113

111114
if position.is_in_range(range):

robotcode/language_server/robotframework/parts/hover.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
get_tokens_at_position,
2525
range_from_token,
2626
range_from_token_or_node,
27+
tokenize_variables,
2728
)
2829

2930
if TYPE_CHECKING:
@@ -91,9 +92,11 @@ async def _hover_default(self, nodes: List[ast.AST], document: TextDocument, pos
9192

9293
tokens = get_tokens_at_position(node, position)
9394

94-
for t in tokens:
95+
for token in tokens:
9596
try:
96-
for sub_token in filter(lambda s: s.type == RobotToken.VARIABLE, t.tokenize_variables()):
97+
for sub_token in filter(
98+
lambda s: s.type == RobotToken.VARIABLE, tokenize_variables(token, ignore_errors=True)
99+
):
97100
range = range_from_token(sub_token)
98101

99102
if position.is_in_range(range):

robotcode/language_server/robotframework/utils/ast.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ def tokenize_variables(
200200
from robot.api.parsing import Token as RobotToken
201201
from robot.variables import VariableIterator
202202

203-
if token.type not in {*RobotToken.ALLOW_VARIABLES, RobotToken.KEYWORD}:
203+
if token.type not in {*RobotToken.ALLOW_VARIABLES, RobotToken.KEYWORD, RobotToken.ASSIGN}:
204204
return _tokenize_no_variables(token)
205205
variables = VariableIterator(token.value, identifiers=identifiers, ignore_errors=ignore_errors)
206206
if not variables:

0 commit comments

Comments
 (0)