Skip to content

Commit 587e91b

Browse files
committed
chore: remove some code smells
1 parent 92a8a46 commit 587e91b

File tree

4 files changed

+48
-50
lines changed

4 files changed

+48
-50
lines changed

packages/language_server/src/robotcode/language_server/robotframework/parts/debugging_utils.py

Lines changed: 39 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from typing import TYPE_CHECKING, Any, Optional
55

66
from robotcode.core.async_itertools import async_next
7-
from robotcode.core.async_tools import run_coroutine_in_thread, threaded
7+
from robotcode.core.async_tools import threaded
88
from robotcode.core.dataclasses import CamelSnakeMixin
99
from robotcode.core.logging import LoggingDescriptor
1010
from robotcode.core.lsp.types import Position, Range, TextDocumentIdentifier
@@ -53,55 +53,52 @@ async def _get_evaluatable_expression(
5353
) -> Optional[EvaluatableExpression]:
5454
from robot.parsing.lexer.tokens import Token as RobotToken
5555

56-
async def run() -> Optional[EvaluatableExpression]:
57-
document = await self.parent.documents.get(text_document.uri)
58-
if document is None:
59-
return None
56+
document = await self.parent.documents.get(text_document.uri)
57+
if document is None:
58+
return None
6059

61-
namespace = await self.parent.documents_cache.get_namespace(document)
62-
model = await self.parent.documents_cache.get_model(document, False)
60+
namespace = await self.parent.documents_cache.get_namespace(document)
61+
model = await self.parent.documents_cache.get_model(document, False)
6362

64-
nodes = await get_nodes_at_position(model, position)
65-
node = nodes[-1]
63+
nodes = await get_nodes_at_position(model, position)
64+
node = nodes[-1]
6665

67-
if not isinstance(node, HasTokens):
68-
return None
66+
if not isinstance(node, HasTokens):
67+
return None
6968

70-
token = get_tokens_at_position(node, position)[-1]
69+
token = get_tokens_at_position(node, position)[-1]
7170

71+
token_and_var = await async_next(
72+
(
73+
(t, v)
74+
async for t, v in self.iter_variables_from_token(token, namespace, nodes, position)
75+
if position in range_from_token(t)
76+
),
77+
None,
78+
)
79+
80+
if (
81+
token_and_var is None
82+
and isinstance(node, self.get_expression_statement_types())
83+
and (token := node.get_token(RobotToken.ARGUMENT)) is not None
84+
and position in range_from_token(token)
85+
):
7286
token_and_var = await async_next(
7387
(
74-
(t, v)
75-
async for t, v in self.iter_variables_from_token(token, namespace, nodes, position)
76-
if position in range_from_token(t)
88+
(var_token, var)
89+
async for var_token, var in self.iter_expression_variables_from_token(
90+
token, namespace, nodes, position
91+
)
92+
if position in range_from_token(var_token)
7793
),
7894
None,
7995
)
8096

81-
if (
82-
token_and_var is None
83-
and isinstance(node, self.get_expression_statement_types())
84-
and (token := node.get_token(RobotToken.ARGUMENT)) is not None
85-
and position in range_from_token(token)
86-
):
87-
token_and_var = await async_next(
88-
(
89-
(var_token, var)
90-
async for var_token, var in self.iter_expression_variables_from_token(
91-
token, namespace, nodes, position
92-
)
93-
if position in range_from_token(var_token)
94-
),
95-
None,
96-
)
97-
98-
if token_and_var is None:
99-
return None
100-
101-
var_token, var = token_and_var
102-
if var.name == "${CURDIR}":
103-
return None
104-
105-
return EvaluatableExpression(range_from_token(var_token), var.name)
106-
107-
return await run_coroutine_in_thread(run)
97+
if token_and_var is None:
98+
return None
99+
100+
var_token, var = token_and_var
101+
if var.name == "${CURDIR}":
102+
return None
103+
104+
return EvaluatableExpression(range_from_token(var_token), var.name)

packages/language_server/src/robotcode/language_server/robotframework/parts/inline_value.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ async def collect(
5050
) -> Optional[List[InlineValue]]:
5151
from robot.parsing.lexer import Token as RobotToken
5252

53+
# TODO make this configurable
54+
5355
namespace = await self.parent.documents_cache.get_namespace(document)
5456

5557
model = await self.parent.documents_cache.get_model(document, False)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ warn_return_any = true
219219
warn_unused_configs = true
220220
warn_unreachable = true
221221
implicit_optional = true
222-
# disallow_untyped_decorators = false
222+
disallow_untyped_decorators = false
223223
disallow_subclassing_any = false
224224
exclude = [
225225
"\\.mypy_cache",

tests/robotcode/core/test_dataclasses.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,20 @@
44
from typing import Any, Dict, List, Literal, Optional, Union
55

66
import pytest
7-
7+
from robotcode.core.dataclasses import as_json, from_json, to_camel_case, to_snake_case
88
from robotcode.core.lsp.types import (
99
CallHierarchyClientCapabilities,
1010
ClientCapabilities,
11-
WindowClientCapabilities,
12-
WorkspaceClientCapabilities,
13-
FileOperationClientCapabilities,
14-
InitializeParamsClientInfoType,
1511
CodeActionClientCapabilities,
1612
CodeActionClientCapabilitiesCodeActionLiteralSupportType,
1713
CodeActionClientCapabilitiesCodeActionLiteralSupportTypeCodeActionKindType,
1814
CodeActionClientCapabilitiesResolveSupportType,
1915
CodeLensClientCapabilities,
2016
CodeLensWorkspaceClientCapabilities,
2117
CompletionClientCapabilities,
18+
CompletionClientCapabilitiesCompletionItemKindType,
2219
CompletionClientCapabilitiesCompletionItemType,
2320
CompletionClientCapabilitiesCompletionItemTypeInsertTextModeSupportType,
24-
CompletionClientCapabilitiesCompletionItemKindType,
2521
CompletionClientCapabilitiesCompletionItemTypeResolveSupportType,
2622
CompletionClientCapabilitiesCompletionItemTypeTagSupportType,
2723
CompletionItemKind,
@@ -42,10 +38,12 @@
4238
DocumentSymbolClientCapabilitiesTagSupportType,
4339
ExecuteCommandClientCapabilities,
4440
FailureHandlingKind,
41+
FileOperationClientCapabilities,
4542
FoldingRangeClientCapabilities,
4643
HoverClientCapabilities,
4744
ImplementationClientCapabilities,
4845
InitializeParams,
46+
InitializeParamsClientInfoType,
4947
InsertTextMode,
5048
LinkedEditingRangeClientCapabilities,
5149
MarkupKind,
@@ -72,14 +70,15 @@
7270
TokenFormat,
7371
TraceValues,
7472
TypeDefinitionClientCapabilities,
73+
WindowClientCapabilities,
74+
WorkspaceClientCapabilities,
7575
WorkspaceEditClientCapabilities,
7676
WorkspaceEditClientCapabilitiesChangeAnnotationSupportType,
7777
WorkspaceFolder,
7878
WorkspaceSymbolClientCapabilities,
7979
WorkspaceSymbolClientCapabilitiesSymbolKindType,
8080
WorkspaceSymbolClientCapabilitiesTagSupportType,
8181
)
82-
from robotcode.core.dataclasses import as_json, from_json, to_camel_case, to_snake_case
8382

8483

8584
class EnumData(Enum):

0 commit comments

Comments
 (0)