hind 0.1.9 → 0.1.11
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.
- checksums.yaml +4 -4
- data/lib/hind/cli.rb +0 -5
- data/lib/hind/lsif/generator.rb +15 -33
- data/lib/hind/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 054260d6085eb851ea7d06c3e2fcbf8e922fb76310af44d23f1eebe533bffe93
|
4
|
+
data.tar.gz: 9e8158243b223bbea3c9a2d673d2d44e67b3d195d7af6d6a2b46672163415ef5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f60e9409b3e42ed5edf5122484e73c144f02f06a267bea0b6780cfb109578b4a0efdd09217535ba89517b1416c77bd7125415dfaae988322a805d04df4270517
|
7
|
+
data.tar.gz: e92d80e0f1024d8b92040fd21edb88563dc31d82b42fea2f6fd11164aa4c17e372c9d307335d1a592b94f351491cdcba4ac4696ff7dae9eb83152605d6c28fa9
|
data/lib/hind/cli.rb
CHANGED
@@ -99,11 +99,6 @@ module Hind
|
|
99
99
|
)
|
100
100
|
output_file.puts(reference_lsif_data.map(&:to_json).join("\n"))
|
101
101
|
end
|
102
|
-
|
103
|
-
# Finalize and write cross-file references
|
104
|
-
say 'Processing cross-file references...', :cyan if options[:verbose]
|
105
|
-
final_references = generator.finalize_references
|
106
|
-
output_file.puts(final_references.map(&:to_json).join("\n"))
|
107
102
|
end
|
108
103
|
end
|
109
104
|
|
data/lib/hind/lsif/generator.rb
CHANGED
@@ -90,30 +90,6 @@ module Hind
|
|
90
90
|
@initial_data
|
91
91
|
end
|
92
92
|
|
93
|
-
def finalize_references
|
94
|
-
# Restore vertex ID
|
95
|
-
@vertex_id = @last_vertex_id
|
96
|
-
# Process all references to create definition results
|
97
|
-
@global_state.references.each do |qualified_name, references|
|
98
|
-
declaration = @global_state.declarations[qualified_name]
|
99
|
-
next unless declaration && declaration[:result_set_id]
|
100
|
-
|
101
|
-
# Create reference result for this symbol
|
102
|
-
ref_result_id = emit_vertex('referenceResult')
|
103
|
-
emit_edge('textDocument/references', declaration[:result_set_id], ref_result_id)
|
104
|
-
|
105
|
-
# Group references by document
|
106
|
-
references_by_doc = references.group_by { |ref| ref[:document_id] }
|
107
|
-
|
108
|
-
# Create item edges for each document's references
|
109
|
-
references_by_doc.each do |doc_id, refs|
|
110
|
-
emit_edge('item', ref_result_id, refs.map { |r| r[:range_id] }, 'references', doc_id)
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
@lsif_data
|
115
|
-
end
|
116
|
-
|
117
93
|
def register_declaration(declaration)
|
118
94
|
return unless @current_uri && declaration[:node]
|
119
95
|
|
@@ -122,7 +98,13 @@ module Hind
|
|
122
98
|
setup_document if @document_id.nil?
|
123
99
|
current_doc_id = @document_id
|
124
100
|
|
125
|
-
range_id =
|
101
|
+
range_id = if declaration[:type] == :constant_write
|
102
|
+
create_range(declaration[:node].name_loc)
|
103
|
+
elsif declaration[:type] == :module
|
104
|
+
create_range(declaration[:node].module_keyword_loc)
|
105
|
+
else
|
106
|
+
create_range(declaration[:node].constant_path)
|
107
|
+
end
|
126
108
|
return unless range_id
|
127
109
|
|
128
110
|
result_set_id = emit_vertex('resultSet')
|
@@ -161,7 +143,7 @@ module Hind
|
|
161
143
|
setup_document if @document_id.nil?
|
162
144
|
current_doc_id = @document_id
|
163
145
|
|
164
|
-
range_id = create_range(reference[:node].location
|
146
|
+
range_id = create_range(reference[:node].location)
|
165
147
|
return unless range_id
|
166
148
|
|
167
149
|
declaration = @global_state.declarations[reference[:name]]
|
@@ -213,17 +195,17 @@ module Hind
|
|
213
195
|
end
|
214
196
|
end
|
215
197
|
|
216
|
-
def create_range(
|
217
|
-
return nil unless @current_uri &&
|
198
|
+
def create_range(location)
|
199
|
+
return nil unless @current_uri && location
|
218
200
|
|
219
201
|
range_id = emit_vertex('range', {
|
220
202
|
start: {
|
221
|
-
line:
|
222
|
-
character:
|
203
|
+
line: location.start_line - 1, # Convert from 1-based to 0-based numbering
|
204
|
+
character: location.start_column
|
223
205
|
},
|
224
206
|
end: {
|
225
|
-
line:
|
226
|
-
character:
|
207
|
+
line: location.end_line - 1,
|
208
|
+
character: location.end_column
|
227
209
|
}
|
228
210
|
})
|
229
211
|
|
@@ -286,7 +268,7 @@ module Hind
|
|
286
268
|
when :module
|
287
269
|
"module #{declaration[:name]}"
|
288
270
|
when :constant
|
289
|
-
value_info = declaration[:node].value.content ? " = #{declaration[:node].value.content}" : ''
|
271
|
+
value_info = declaration[:node].value.respond_to?(:content) ? " = #{declaration[:node].value.content}" : ''
|
290
272
|
"#{declaration[:name]}#{value_info}"
|
291
273
|
else
|
292
274
|
declaration[:name].to_s
|
data/lib/hind/version.rb
CHANGED