robotcode-language-server 0.90.0__tar.gz → 0.92.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/PKG-INFO +5 -4
  2. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/pyproject.toml +4 -3
  3. robotcode_language_server-0.92.0/src/robotcode/language_server/__version__.py +1 -0
  4. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/cli.py +46 -4
  5. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/configuration.py +7 -1
  6. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/documents_cache.py +3 -1
  7. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/protocol.py +3 -1
  8. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/server.py +4 -1
  9. robotcode_language_server-0.90.0/src/robotcode/language_server/__version__.py +0 -1
  10. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/.gitignore +0 -0
  11. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/LICENSE.txt +0 -0
  12. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/README.md +0 -0
  13. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/__init__.py +0 -0
  14. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/__init__.py +0 -0
  15. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/decorators.py +0 -0
  16. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/__init__.py +0 -0
  17. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/code_action.py +0 -0
  18. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/code_lens.py +0 -0
  19. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/commands.py +0 -0
  20. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/completion.py +0 -0
  21. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/declaration.py +0 -0
  22. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/definition.py +0 -0
  23. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/diagnostics.py +0 -0
  24. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/document_highlight.py +0 -0
  25. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/document_symbols.py +0 -0
  26. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/documents.py +0 -0
  27. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/folding_range.py +0 -0
  28. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/formatting.py +0 -0
  29. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/hover.py +0 -0
  30. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/implementation.py +0 -0
  31. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/inlay_hint.py +0 -0
  32. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/inline_value.py +0 -0
  33. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/linked_editing_ranges.py +0 -0
  34. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/protocol_part.py +0 -0
  35. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/references.py +0 -0
  36. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/rename.py +0 -0
  37. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/selection_range.py +0 -0
  38. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/semantic_tokens.py +0 -0
  39. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/signature_help.py +0 -0
  40. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/window.py +0 -0
  41. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/parts/workspace.py +0 -0
  42. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/protocol.py +0 -0
  43. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/common/server.py +0 -0
  44. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/hooks.py +0 -0
  45. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/py.typed +0 -0
  46. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/__init__.py +0 -0
  47. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/__init__.py +0 -0
  48. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/code_action_documentation.py +0 -0
  49. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/code_action_helper_mixin.py +0 -0
  50. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/code_action_quick_fixes.py +0 -0
  51. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/code_action_refactor.py +0 -0
  52. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/code_lens.py +0 -0
  53. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/completion.py +0 -0
  54. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/debugging_utils.py +0 -0
  55. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/diagnostics.py +0 -0
  56. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/document_highlight.py +0 -0
  57. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/document_symbols.py +0 -0
  58. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/folding_range.py +0 -0
  59. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/formatting.py +0 -0
  60. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/goto.py +0 -0
  61. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/hover.py +0 -0
  62. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/http_server.py +0 -0
  63. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/inlay_hint.py +0 -0
  64. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/inline_value.py +0 -0
  65. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/keywords_treeview.py +0 -0
  66. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/project_info.py +0 -0
  67. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/protocol_part.py +0 -0
  68. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/references.py +0 -0
  69. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/rename.py +0 -0
  70. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/robocop_diagnostics.py +0 -0
  71. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/robot_workspace.py +0 -0
  72. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/selection_range.py +0 -0
  73. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/semantic_tokens.py +0 -0
  74. {robotcode_language_server-0.90.0 → robotcode_language_server-0.92.0}/src/robotcode/language_server/robotframework/parts/signature_help.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: robotcode-language-server
3
- Version: 0.90.0
3
+ Version: 0.92.0
4
4
  Summary: RobotCode Language Server for Robot Framework
5
5
  Project-URL: Homepage, https://robotcode.io
6
6
  Project-URL: Donate, https://opencollective.com/robotcode
@@ -25,9 +25,10 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
25
25
  Classifier: Topic :: Utilities
26
26
  Classifier: Typing :: Typed
27
27
  Requires-Python: >=3.8
28
- Requires-Dist: robotcode-jsonrpc2==0.90.0
29
- Requires-Dist: robotcode-robot==0.90.0
30
- Requires-Dist: robotcode==0.90.0
28
+ Requires-Dist: robotcode-analyze==0.92.0
29
+ Requires-Dist: robotcode-jsonrpc2==0.92.0
30
+ Requires-Dist: robotcode-robot==0.92.0
31
+ Requires-Dist: robotcode==0.92.0
31
32
  Requires-Dist: robotframework>=4.1.0
32
33
  Description-Content-Type: text/markdown
33
34
 
@@ -27,9 +27,10 @@ classifiers = [
27
27
  ]
28
28
  dependencies = [
29
29
  "robotframework>=4.1.0",
30
- "robotcode-jsonrpc2==0.90.0",
31
- "robotcode-robot==0.90.0",
32
- "robotcode==0.90.0",
30
+ "robotcode-jsonrpc2==0.92.0",
31
+ "robotcode-robot==0.92.0",
32
+ "robotcode-analyze==0.92.0",
33
+ "robotcode==0.92.0",
33
34
  ]
34
35
  dynamic = ["version"]
35
36
 
@@ -4,6 +4,7 @@ from typing import Final, Optional, Sequence, Union
4
4
 
5
5
  import click
6
6
 
7
+ from robotcode.analyze.config import AnalyzeConfig
7
8
  from robotcode.core.types import ServerMode, TcpParams
8
9
  from robotcode.plugin import Application, UnknownError, pass_application
9
10
  from robotcode.plugin.click_helper.options import (
@@ -14,6 +15,12 @@ from robotcode.plugin.click_helper.types import AddressesPort, add_options
14
15
  from robotcode.robot.config.loader import load_robot_config_from_path
15
16
  from robotcode.robot.config.model import RobotBaseProfile
16
17
  from robotcode.robot.config.utils import get_config_files
18
+ from robotcode.robot.diagnostics.workspace_config import (
19
+ AnalysisDiagnosticModifiersConfig,
20
+ AnalysisRobotConfig,
21
+ CacheConfig,
22
+ WorkspaceAnalysisConfig,
23
+ )
17
24
 
18
25
  from .__version__ import __version__
19
26
 
@@ -26,6 +33,7 @@ def run_server(
26
33
  port: int,
27
34
  pipe_name: Optional[str],
28
35
  profile: Optional[RobotBaseProfile] = None,
36
+ analysis_config: Optional[WorkspaceAnalysisConfig] = None,
29
37
  ) -> None:
30
38
  from .robotframework.server import RobotLanguageServer
31
39
 
@@ -34,6 +42,7 @@ def run_server(
34
42
  tcp_params=TcpParams(addresses or "127.0.0.1", port),
35
43
  pipe_name=pipe_name,
36
44
  profile=profile,
45
+ analysis_config=analysis_config,
37
46
  ) as server:
38
47
  server.run()
39
48
 
@@ -71,17 +80,49 @@ def language_server(
71
80
  """Run Robot Framework Language Server."""
72
81
 
73
82
  profile: Optional[RobotBaseProfile] = None
83
+ analysis_config: Optional[WorkspaceAnalysisConfig] = None
74
84
 
75
85
  config_files, root_folder, _ = get_config_files(paths, app.config.config_files, verbose_callback=app.verbose)
76
86
  if root_folder:
77
87
  os.chdir(root_folder)
78
88
 
79
89
  try:
80
- profile = (
81
- load_robot_config_from_path(*config_files)
82
- .combine_profiles(*(app.config.profiles or []), verbose_callback=app.verbose, error_callback=app.error)
83
- .evaluated_with_env(verbose_callback=app.verbose, error_callback=app.error)
90
+ robot_config = load_robot_config_from_path(
91
+ *config_files, extra_tools={"robotcode-analyze": AnalyzeConfig}, verbose_callback=app.verbose
84
92
  )
93
+ analyzer_config = robot_config.tool.get("robotcode-analyze", None) if robot_config.tool is not None else None
94
+
95
+ if analyzer_config is None:
96
+ analyzer_config = AnalyzeConfig()
97
+
98
+ analysis_config = WorkspaceAnalysisConfig(
99
+ cache=(
100
+ CacheConfig(
101
+ # TODO savelocation
102
+ ignored_libraries=analyzer_config.cache.ignored_libraries or [],
103
+ ignored_variables=analyzer_config.cache.ignored_variables or [],
104
+ ignore_arguments_for_library=analyzer_config.cache.ignore_arguments_for_library or [],
105
+ )
106
+ if analyzer_config.cache is not None
107
+ else CacheConfig()
108
+ ),
109
+ robot=AnalysisRobotConfig(global_library_search_order=analyzer_config.global_library_search_order or []),
110
+ modifiers=(
111
+ AnalysisDiagnosticModifiersConfig(
112
+ ignore=analyzer_config.modifiers.ignore or [],
113
+ error=analyzer_config.modifiers.error or [],
114
+ warning=analyzer_config.modifiers.warning or [],
115
+ information=analyzer_config.modifiers.information or [],
116
+ hint=analyzer_config.modifiers.hint or [],
117
+ )
118
+ if analyzer_config.modifiers is not None
119
+ else AnalysisDiagnosticModifiersConfig()
120
+ ),
121
+ )
122
+
123
+ profile = robot_config.combine_profiles(
124
+ *(app.config.profiles or []), verbose_callback=app.verbose, error_callback=app.error
125
+ ).evaluated_with_env(verbose_callback=app.verbose, error_callback=app.error)
85
126
  except (TypeError, ValueError) as e:
86
127
  app.echo(str(e), err=True)
87
128
 
@@ -95,6 +136,7 @@ def language_server(
95
136
  port=port if port is not None else LANGUAGE_SERVER_DEFAULT_PORT,
96
137
  pipe_name=pipe_name,
97
138
  profile=profile,
139
+ analysis_config=analysis_config,
98
140
  )
99
141
  except SystemExit as e:
100
142
  app.verbose(f"Server exited with code {e.code}", err=e.code != 0)
@@ -3,7 +3,12 @@ from typing import List, Optional, Tuple
3
3
 
4
4
  from robotcode.core.workspace import ConfigBase, config_section
5
5
  from robotcode.language_server.common.parts.diagnostics import AnalysisProgressMode, DiagnosticsMode
6
- from robotcode.robot.diagnostics.workspace_config import AnalysisRobotConfig, CacheConfig, RobotConfig
6
+ from robotcode.robot.diagnostics.workspace_config import (
7
+ AnalysisDiagnosticModifiersConfig,
8
+ AnalysisRobotConfig,
9
+ CacheConfig,
10
+ RobotConfig,
11
+ )
7
12
 
8
13
 
9
14
  @config_section("robotcode.languageServer")
@@ -68,6 +73,7 @@ class AnalysisConfig(ConfigBase):
68
73
  find_unused_references: bool = False
69
74
  cache: CacheConfig = field(default_factory=CacheConfig)
70
75
  robot: AnalysisRobotConfig = field(default_factory=AnalysisRobotConfig)
76
+ modifiers: AnalysisDiagnosticModifiersConfig = field(default_factory=AnalysisDiagnosticModifiersConfig)
71
77
 
72
78
 
73
79
  @config_section("robotcode")
@@ -26,7 +26,9 @@ class DocumentsCachePart(RobotLanguageServerProtocolPart, DocumentsCacheHelper):
26
26
 
27
27
  def __init__(self, parent: "RobotLanguageServerProtocol") -> None:
28
28
  super().__init__(parent)
29
- DocumentsCacheHelper.__init__(self, parent.workspace, parent.documents, parent.workspace, parent.robot_profile)
29
+ DocumentsCacheHelper.__init__(
30
+ self, parent.workspace, parent.documents, parent.workspace, parent.robot_profile, parent.analysis_config
31
+ )
30
32
 
31
33
  self._imports_managers_lock = threading.RLock()
32
34
  self._imports_managers: weakref.WeakKeyDictionary[WorkspaceFolder, ImportsManager] = weakref.WeakKeyDictionary()
@@ -21,7 +21,7 @@ from robotcode.jsonrpc2.protocol import JsonRPCErrorException, JsonRPCErrors, Pr
21
21
  from robotcode.language_server.common.parts.document_symbols import symbol_information_label
22
22
  from robotcode.language_server.common.protocol import LanguageServerProtocol
23
23
  from robotcode.robot.config.model import RobotBaseProfile
24
- from robotcode.robot.diagnostics.workspace_config import RobotConfig
24
+ from robotcode.robot.diagnostics.workspace_config import RobotConfig, WorkspaceAnalysisConfig
25
25
  from robotcode.robot.utils import get_robot_version
26
26
 
27
27
  from ..__version__ import __version__
@@ -152,9 +152,11 @@ class RobotLanguageServerProtocol(LanguageServerProtocol):
152
152
  self,
153
153
  server: "RobotLanguageServer",
154
154
  profile: Optional[RobotBaseProfile] = None,
155
+ analysis_config: Optional[WorkspaceAnalysisConfig] = None,
155
156
  ):
156
157
  super().__init__(server)
157
158
  self.robot_profile = profile if profile is not None else RobotBaseProfile()
159
+ self.analysis_config = analysis_config if analysis_config is not None else WorkspaceAnalysisConfig()
158
160
  self.robot_initialization_options = RobotInitializationOptions()
159
161
  self.on_initialize.add(self._on_initialize)
160
162
  self.on_initialized.add(self.server_initialized)
@@ -6,6 +6,7 @@ from robotcode.language_server.common.server import (
6
6
  LanguageServerBase,
7
7
  )
8
8
  from robotcode.robot.config.model import RobotBaseProfile
9
+ from robotcode.robot.diagnostics.workspace_config import WorkspaceAnalysisConfig
9
10
 
10
11
  from .protocol import RobotLanguageServerProtocol
11
12
 
@@ -17,9 +18,11 @@ class RobotLanguageServer(LanguageServerBase[RobotLanguageServerProtocol]):
17
18
  tcp_params: TcpParams = TcpParams(None, TCP_DEFAULT_PORT),
18
19
  pipe_name: Optional[str] = None,
19
20
  profile: Optional[RobotBaseProfile] = None,
21
+ analysis_config: Optional[WorkspaceAnalysisConfig] = None,
20
22
  ):
21
23
  super().__init__(mode, tcp_params, pipe_name)
22
24
  self.profile = profile
25
+ self.analysis_config = analysis_config
23
26
 
24
27
  def create_protocol(self) -> RobotLanguageServerProtocol:
25
- return RobotLanguageServerProtocol(self, self.profile)
28
+ return RobotLanguageServerProtocol(self, self.profile, self.analysis_config)
@@ -1 +0,0 @@
1
- __version__ = "0.90.0"