1- from lsprotocol .types import Range , Position
1+ import lsprotocol .types as types
22import typing as t
33from pathlib import Path
44from pydantic import Field
88from sqlmesh .core .linter .helpers import (
99 TokenPositionDetails ,
1010)
11+ from sqlmesh .core .linter .rule import Range , Position
1112from sqlmesh .core .model .definition import SqlModel , ExternalModel
1213from sqlmesh .lsp .context import LSPContext , ModelTarget , AuditTarget
1314from sqlglot import exp
@@ -203,15 +204,11 @@ def get_model_definitions_for_a_path(
203204 table .this .meta
204205 ).to_range (read_file )
205206
206- # Convert SQLMesh Range to LSP Range
207- target_range = to_lsp_range (target_range_sqlmesh )
208- table_range = to_lsp_range (table_range_sqlmesh )
209-
210207 references .append (
211208 LSPCteReference (
212209 path = document_uri .to_path (), # Same file
213- range = table_range ,
214- target_range = target_range ,
210+ range = table_range_sqlmesh ,
211+ target_range = target_range_sqlmesh ,
215212 )
216213 )
217214
@@ -222,7 +219,7 @@ def get_model_definitions_for_a_path(
222219 referenced_model_path = document_uri .to_path (),
223220 description = "" ,
224221 reference_type = "cte" ,
225- cte_target_range = target_range ,
222+ cte_target_range = target_range_sqlmesh ,
226223 )
227224 references .extend (column_references )
228225 continue
@@ -257,8 +254,8 @@ def get_model_definitions_for_a_path(
257254 references .append (
258255 LSPExternalModelReference (
259256 range = Range (
260- start = to_lsp_position ( start_pos_sqlmesh ) ,
261- end = to_lsp_position ( end_pos_sqlmesh ) ,
257+ start = start_pos_sqlmesh ,
258+ end = end_pos_sqlmesh ,
262259 ),
263260 markdown_description = "Unregistered external model" ,
264261 )
@@ -288,7 +285,7 @@ def get_model_definitions_for_a_path(
288285
289286 # For external models in YAML files, find the specific model block
290287 if isinstance (referenced_model , ExternalModel ):
291- yaml_target_range : t .Optional [Range ] = None
288+ yaml_target_range : t .Optional [types . Range ] = None
292289 if (
293290 referenced_model_path .suffix in (".yaml" , ".yml" )
294291 and referenced_model_path .is_file ()
@@ -300,8 +297,8 @@ def get_model_definitions_for_a_path(
300297 LSPExternalModelReference (
301298 path = referenced_model_path ,
302299 range = Range (
303- start = to_lsp_position ( start_pos_sqlmesh ) ,
304- end = to_lsp_position ( end_pos_sqlmesh ) ,
300+ start = start_pos_sqlmesh ,
301+ end = end_pos_sqlmesh ,
305302 ),
306303 markdown_description = description ,
307304 target_range = yaml_target_range ,
@@ -325,8 +322,8 @@ def get_model_definitions_for_a_path(
325322 LSPModelReference (
326323 path = referenced_model_path ,
327324 range = Range (
328- start = to_lsp_position ( start_pos_sqlmesh ) ,
329- end = to_lsp_position ( end_pos_sqlmesh ) ,
325+ start = start_pos_sqlmesh ,
326+ end = end_pos_sqlmesh ,
330327 ),
331328 markdown_description = description ,
332329 )
@@ -484,17 +481,19 @@ def get_macro_reference(
484481 return LSPMacroReference (
485482 path = path ,
486483 range = to_lsp_range (macro_range ),
487- target_range = Range (
488- start = Position (line = start_line - 1 , character = 0 ),
489- end = Position (line = end_line - 1 , character = get_length_of_end_line ),
484+ target_range = types . Range (
485+ start = types . Position (line = start_line - 1 , character = 0 ),
486+ end = types . Position (line = end_line - 1 , character = get_length_of_end_line ),
490487 ),
491488 markdown_description = docstring ,
492489 )
493490 except Exception :
494491 return None
495492
496493
497- def get_built_in_macro_reference (macro_name : str , macro_range : Range ) -> t .Optional [Reference ]:
494+ def get_built_in_macro_reference (
495+ macro_name : str , macro_range : types .Range
496+ ) -> t .Optional [Reference ]:
498497 """
499498 Get a reference to a built-in macro by its name.
500499
@@ -517,9 +516,9 @@ def get_built_in_macro_reference(macro_name: str, macro_range: Range) -> t.Optio
517516 return LSPMacroReference (
518517 path = Path (filename ),
519518 range = macro_range ,
520- target_range = Range (
521- start = Position (line = line_number - 1 , character = 0 ),
522- end = Position (line = end_line_number - 1 , character = 0 ),
519+ target_range = types . Range (
520+ start = types . Position (line = line_number - 1 , character = 0 ),
521+ end = types . Position (line = end_line_number - 1 , character = 0 ),
523522 ),
524523 markdown_description = func .__doc__ if func .__doc__ else None ,
525524 )
@@ -811,8 +810,8 @@ def _get_column_table_range(column: exp.Column, read_file: t.List[str]) -> Range
811810 end_range = TokenPositionDetails .from_meta (table_parts [- 1 ].meta ).to_range (read_file )
812811
813812 return Range (
814- start = to_lsp_position ( start_range .start ) ,
815- end = to_lsp_position ( end_range .end ) ,
813+ start = start_range .start ,
814+ end = end_range .end ,
816815 )
817816
818817
@@ -822,7 +821,7 @@ def _process_column_references(
822821 read_file : t .List [str ],
823822 referenced_model_path : Path ,
824823 description : t .Optional [str ] = None ,
825- yaml_target_range : t .Optional [Range ] = None ,
824+ yaml_target_range : t .Optional [types . Range ] = None ,
826825 reference_type : t .Literal ["model" , "external_model" , "cte" ] = "model" ,
827826 default_catalog : t .Optional [str ] = None ,
828827 dialect : t .Optional [str ] = None ,
@@ -914,6 +913,8 @@ def _get_yaml_model_range(path: Path, model_name: str) -> t.Optional[Range]:
914913 # Get size of block by taking the earliest line/col in the items block and the last line/col of the block
915914 position_data = item .lc .data ["name" ] # type: ignore
916915 start = Position (line = position_data [2 ], character = position_data [3 ])
917- end = Position (line = position_data [2 ], character = position_data [3 ] + len (item ["name" ]))
916+ end = Position (
917+ line = position_data [2 ], character = position_data [3 ] + len (item ["name" ])
918+ )
918919 return Range (start = start , end = end )
919920 return None
0 commit comments