22from lsprotocol .types import Position
33from sqlmesh .core .context import Context
44from sqlmesh .lsp .context import LSPContext , ModelTarget , AuditTarget
5- from sqlmesh .lsp .reference import get_model_definitions_for_a_path , filter_references_by_position
5+ from sqlmesh .lsp .reference import get_model_definitions_for_a_path , by_position
66
77
88@pytest .mark .fast
@@ -54,6 +54,7 @@ def test_reference_with_alias() -> None:
5454
5555 assert references [0 ].uri .endswith ("orders.py" )
5656 assert get_string_from_range (read_file , references [0 ].range ) == "sushi.orders"
57+ assert references [0 ].description == "Table of sushi orders."
5758 assert references [1 ].uri .endswith ("order_items.py" )
5859 assert get_string_from_range (read_file , references [1 ].range ) == "sushi.order_items"
5960 assert references [2 ].uri .endswith ("items.py" )
@@ -139,7 +140,7 @@ def test_filter_references_by_position() -> None:
139140 middle_line = (reference .range .start .line + reference .range .end .line ) // 2
140141 middle_char = (reference .range .start .character + reference .range .end .character ) // 2
141142 position_inside = Position (line = middle_line , character = middle_char )
142- filtered = filter_references_by_position ( all_references , position_inside )
143+ filtered = list ( filter ( by_position ( position_inside ), all_references ) )
143144 assert len (filtered ) == 1
144145 assert filtered [0 ].uri == reference .uri
145146 assert filtered [0 ].range == reference .range
@@ -155,14 +156,14 @@ def test_filter_references_by_position() -> None:
155156 outside_char = prev_ref .range .end .character + 5
156157
157158 position_outside = Position (line = outside_line , character = outside_char )
158- filtered_outside = filter_references_by_position ( all_references , position_outside )
159+ filtered_outside = list ( filter ( by_position ( position_outside ), all_references ) )
159160 assert reference not in filtered_outside , (
160161 f"Reference { i } should not match position outside its range"
161162 )
162163
163164 # Test case: cursor at beginning of file - no references should match
164165 position_start = Position (line = 0 , character = 0 )
165- filtered_start = filter_references_by_position ( all_references , position_start )
166+ filtered_start = list ( filter ( by_position ( position_start ), all_references ) )
166167 assert len (filtered_start ) == 0 or all (
167168 ref .range .start .line == 0 and ref .range .start .character <= 0 for ref in filtered_start
168169 )
@@ -171,7 +172,7 @@ def test_filter_references_by_position() -> None:
171172 last_line = len (read_file ) - 1
172173 last_char = len (read_file [last_line ]) - 1
173174 position_end = Position (line = last_line , character = last_char )
174- filtered_end = filter_references_by_position ( all_references , position_end )
175+ filtered_end = list ( filter ( by_position ( position_end ), all_references ) )
175176 assert len (filtered_end ) == 0 or all (
176177 ref .range .end .line >= last_line and ref .range .end .character >= last_char
177178 for ref in filtered_end
0 commit comments