ruby-lsp 0.18.4 → 0.19.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd64a8dbd26620a032266729f488c5ace69ead93e1cd8ae2677333d128bd72d4
4
- data.tar.gz: a7489c2405509d8764750c5946036d19106db75b6609524117f763b6279f45d1
3
+ metadata.gz: f1d89f4c5d5724a4b8c17002986c64d9f3ea2951282e4a35d96d50b0dd699ba9
4
+ data.tar.gz: f3513888e58fbde4a85d93a2ef58ae124e02c354729693ae5e928a66548cd058
5
5
  SHA512:
6
- metadata.gz: dba4de24eca9cd3db51c94a2aef71c0b77e041172a5827d24b2a4b4079c41d955e0e990972258a6fd223766eedc20490f9af809da80ff46eb289a31d2fe2dbb7
7
- data.tar.gz: 49922ea026fe43cd23bfece5b5e1f6c10838dfe6e80a24c1dc5bd184d359361459af94083f773c86ce45f392ab4750f242a512136d367b8ccd95125ff13d42a9
6
+ metadata.gz: 57b44fec7c55b57408e042a9c40fe900c2445aa9fefa811223aa3154f5a4e1e8b1d0f11cf306548b13653f3a61877bcb8d01df7beeadb4766f2094b27786653b
7
+ data.tar.gz: cf769828221a3a1cb65e906b2b9c5c0c8fac8feee265e5f31b90fb96813f10a225798da1b3746165e11fd4591f7bd0620ab177233c2214d939986e22a1e3709b
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.18.4
1
+ 0.19.0
data/lib/core_ext/uri.rb CHANGED
@@ -3,6 +3,11 @@
3
3
 
4
4
  module URI
5
5
  class Generic
6
+ # Avoid a deprecation warning with Ruby 3.4 where the default parser was changed to RFC3986.
7
+ # This condition must remain even after support for 3.4 has been dropped for users that have
8
+ # `uri` in their lockfile, decoupling it from the ruby version.
9
+ PARSER = T.let(const_defined?(:RFC2396_PARSER) ? RFC2396_PARSER : DEFAULT_PARSER, RFC2396_Parser)
10
+
6
11
  class << self
7
12
  extend T::Sig
8
13
 
@@ -10,12 +15,12 @@ module URI
10
15
  def from_path(path:, fragment: nil, scheme: "file")
11
16
  # On Windows, if the path begins with the disk name, we need to add a leading slash to make it a valid URI
12
17
  escaped_path = if /^[A-Z]:/i.match?(path)
13
- DEFAULT_PARSER.escape("/#{path}")
18
+ PARSER.escape("/#{path}")
14
19
  elsif path.start_with?("//?/")
15
20
  # Some paths on Windows start with "//?/". This is a special prefix that allows for long file paths
16
- DEFAULT_PARSER.escape(path.delete_prefix("//?"))
21
+ PARSER.escape(path.delete_prefix("//?"))
17
22
  else
18
- DEFAULT_PARSER.escape(path)
23
+ PARSER.escape(path)
19
24
  end
20
25
 
21
26
  build(scheme: scheme, path: escaped_path, fragment: fragment)
@@ -29,7 +34,7 @@ module URI
29
34
  parsed_path = path
30
35
  return unless parsed_path
31
36
 
32
- unescaped_path = DEFAULT_PARSER.unescape(parsed_path)
37
+ unescaped_path = PARSER.unescape(parsed_path)
33
38
 
34
39
  # On Windows, when we're getting the file system path back from the URI, we need to remove the leading forward
35
40
  # slash
@@ -19,9 +19,13 @@ module RubyIndexer
19
19
  sig { params(workspace_path: String).void }
20
20
  attr_writer :workspace_path
21
21
 
22
+ sig { returns(Encoding) }
23
+ attr_accessor :encoding
24
+
22
25
  sig { void }
23
26
  def initialize
24
27
  @workspace_path = T.let(Dir.pwd, String)
28
+ @encoding = T.let(Encoding::UTF_8, Encoding)
25
29
  @excluded_gems = T.let(initial_excluded_gems, T::Array[String])
26
30
  @included_gems = T.let([], T::Array[String])
27
31
  @excluded_patterns = T.let([File.join("**", "*_test.rb"), File.join("tmp", "**", "*")], T::Array[String])
@@ -235,6 +239,8 @@ module RubyIndexer
235
239
 
236
240
  excluded.uniq!
237
241
  excluded.map(&:name)
242
+ rescue Bundler::GemfileNotFound
243
+ []
238
244
  end
239
245
  end
240
246
  end
@@ -109,6 +109,7 @@ module RubyIndexer
109
109
  node.location,
110
110
  constant_path.location,
111
111
  comments,
112
+ @index.configuration.encoding,
112
113
  parent_class,
113
114
  )
114
115
 
@@ -132,7 +133,14 @@ module RubyIndexer
132
133
 
133
134
  comments = collect_comments(node)
134
135
 
135
- entry = Entry::Module.new(actual_nesting(name), @file_path, node.location, constant_path.location, comments)
136
+ entry = Entry::Module.new(
137
+ actual_nesting(name),
138
+ @file_path,
139
+ node.location,
140
+ constant_path.location,
141
+ comments,
142
+ @index.configuration.encoding,
143
+ )
136
144
 
137
145
  @owner_stack << entry
138
146
  @index.add(entry)
@@ -161,7 +169,12 @@ module RubyIndexer
161
169
 
162
170
  if existing_entries
163
171
  entry = T.must(existing_entries.first)
164
- entry.update_singleton_information(node.location, expression.location, collect_comments(node))
172
+ entry.update_singleton_information(
173
+ node.location,
174
+ expression.location,
175
+ collect_comments(node),
176
+ @index.configuration.encoding,
177
+ )
165
178
  else
166
179
  entry = Entry::SingletonClass.new(
167
180
  real_nesting,
@@ -169,6 +182,7 @@ module RubyIndexer
169
182
  node.location,
170
183
  expression.location,
171
184
  collect_comments(node),
185
+ @index.configuration.encoding,
172
186
  nil,
173
187
  )
174
188
  @index.add(entry, skip_prefix_tree: true)
@@ -329,6 +343,7 @@ module RubyIndexer
329
343
  node.location,
330
344
  node.name_loc,
331
345
  comments,
346
+ @index.configuration.encoding,
332
347
  [Entry::Signature.new(list_params(node.parameters))],
333
348
  current_visibility,
334
349
  @owner_stack.last,
@@ -345,6 +360,7 @@ module RubyIndexer
345
360
  node.location,
346
361
  node.name_loc,
347
362
  comments,
363
+ @index.configuration.encoding,
348
364
  [Entry::Signature.new(list_params(node.parameters))],
349
365
  current_visibility,
350
366
  singleton,
@@ -403,6 +419,7 @@ module RubyIndexer
403
419
  @file_path,
404
420
  node.new_name.location,
405
421
  comments,
422
+ @index.configuration.encoding,
406
423
  ),
407
424
  )
408
425
  end
@@ -433,7 +450,14 @@ module RubyIndexer
433
450
  owner = @index.existing_or_new_singleton_class(owner.name)
434
451
  end
435
452
 
436
- @index.add(Entry::InstanceVariable.new(name, @file_path, loc, collect_comments(node), owner))
453
+ @index.add(Entry::InstanceVariable.new(
454
+ name,
455
+ @file_path,
456
+ loc,
457
+ collect_comments(node),
458
+ @index.configuration.encoding,
459
+ owner,
460
+ ))
437
461
  end
438
462
 
439
463
  sig { params(node: Prism::CallNode).void }
@@ -496,6 +520,7 @@ module RubyIndexer
496
520
  @file_path,
497
521
  new_name.location,
498
522
  comments,
523
+ @index.configuration.encoding,
499
524
  ),
500
525
  )
501
526
  end
@@ -525,19 +550,43 @@ module RubyIndexer
525
550
  @index.add(
526
551
  case value
527
552
  when Prism::ConstantReadNode, Prism::ConstantPathNode
528
- Entry::UnresolvedConstantAlias.new(value.slice, @stack.dup, name, @file_path, node.location, comments)
553
+ Entry::UnresolvedConstantAlias.new(
554
+ value.slice,
555
+ @stack.dup,
556
+ name,
557
+ @file_path,
558
+ node.location,
559
+ comments,
560
+ @index.configuration.encoding,
561
+ )
529
562
  when Prism::ConstantWriteNode, Prism::ConstantAndWriteNode, Prism::ConstantOrWriteNode,
530
563
  Prism::ConstantOperatorWriteNode
531
564
 
532
565
  # If the right hand side is another constant assignment, we need to visit it because that constant has to be
533
566
  # indexed too
534
- Entry::UnresolvedConstantAlias.new(value.name.to_s, @stack.dup, name, @file_path, node.location, comments)
567
+ Entry::UnresolvedConstantAlias.new(
568
+ value.name.to_s,
569
+ @stack.dup,
570
+ name,
571
+ @file_path,
572
+ node.location,
573
+ comments,
574
+ @index.configuration.encoding,
575
+ )
535
576
  when Prism::ConstantPathWriteNode, Prism::ConstantPathOrWriteNode, Prism::ConstantPathOperatorWriteNode,
536
577
  Prism::ConstantPathAndWriteNode
537
578
 
538
- Entry::UnresolvedConstantAlias.new(value.target.slice, @stack.dup, name, @file_path, node.location, comments)
579
+ Entry::UnresolvedConstantAlias.new(
580
+ value.target.slice,
581
+ @stack.dup,
582
+ name,
583
+ @file_path,
584
+ node.location,
585
+ comments,
586
+ @index.configuration.encoding,
587
+ )
539
588
  else
540
- Entry::Constant.new(name, @file_path, node.location, comments)
589
+ Entry::Constant.new(name, @file_path, node.location, comments, @index.configuration.encoding)
541
590
  end,
542
591
  )
543
592
  end
@@ -600,7 +649,15 @@ module RubyIndexer
600
649
  next unless name && loc
601
650
 
602
651
  if reader
603
- @index.add(Entry::Accessor.new(name, @file_path, loc, comments, current_visibility, @owner_stack.last))
652
+ @index.add(Entry::Accessor.new(
653
+ name,
654
+ @file_path,
655
+ loc,
656
+ comments,
657
+ @index.configuration.encoding,
658
+ current_visibility,
659
+ @owner_stack.last,
660
+ ))
604
661
  end
605
662
 
606
663
  next unless writer
@@ -610,6 +667,7 @@ module RubyIndexer
610
667
  @file_path,
611
668
  loc,
612
669
  comments,
670
+ @index.configuration.encoding,
613
671
  current_visibility,
614
672
  @owner_stack.last,
615
673
  ))
@@ -33,9 +33,10 @@ module RubyIndexer
33
33
  file_path: String,
34
34
  location: T.any(Prism::Location, RubyIndexer::Location),
35
35
  comments: T.nilable(String),
36
+ encoding: Encoding,
36
37
  ).void
37
38
  end
38
- def initialize(name, file_path, location, comments)
39
+ def initialize(name, file_path, location, comments, encoding)
39
40
  @name = name
40
41
  @file_path = file_path
41
42
  @comments = comments
@@ -46,8 +47,8 @@ module RubyIndexer
46
47
  Location.new(
47
48
  location.start_line,
48
49
  location.end_line,
49
- location.start_column,
50
- location.end_column,
50
+ location.start_code_units_column(encoding),
51
+ location.end_code_units_column(encoding),
51
52
  )
52
53
  else
53
54
  location
@@ -150,22 +151,23 @@ module RubyIndexer
150
151
  location: T.any(Prism::Location, RubyIndexer::Location),
151
152
  name_location: T.any(Prism::Location, Location),
152
153
  comments: T.nilable(String),
154
+ encoding: Encoding,
153
155
  ).void
154
156
  end
155
- def initialize(nesting, file_path, location, name_location, comments)
157
+ def initialize(nesting, file_path, location, name_location, comments, encoding) # rubocop:disable Metrics/ParameterLists
156
158
  @name = T.let(nesting.join("::"), String)
157
159
  # The original nesting where this namespace was discovered
158
160
  @nesting = nesting
159
161
 
160
- super(@name, file_path, location, comments)
162
+ super(@name, file_path, location, comments, encoding)
161
163
 
162
164
  @name_location = T.let(
163
165
  if name_location.is_a?(Prism::Location)
164
166
  Location.new(
165
167
  name_location.start_line,
166
168
  name_location.end_line,
167
- name_location.start_column,
168
- name_location.end_column,
169
+ name_location.start_code_units_column(encoding),
170
+ name_location.end_code_units_column(encoding),
169
171
  )
170
172
  else
171
173
  name_location
@@ -211,11 +213,12 @@ module RubyIndexer
211
213
  location: T.any(Prism::Location, RubyIndexer::Location),
212
214
  name_location: T.any(Prism::Location, Location),
213
215
  comments: T.nilable(String),
216
+ encoding: Encoding,
214
217
  parent_class: T.nilable(String),
215
218
  ).void
216
219
  end
217
- def initialize(nesting, file_path, location, name_location, comments, parent_class) # rubocop:disable Metrics/ParameterLists
218
- super(nesting, file_path, location, name_location, comments)
220
+ def initialize(nesting, file_path, location, name_location, comments, encoding, parent_class) # rubocop:disable Metrics/ParameterLists
221
+ super(nesting, file_path, location, name_location, comments, encoding)
219
222
  @parent_class = parent_class
220
223
  end
221
224
 
@@ -228,20 +231,27 @@ module RubyIndexer
228
231
  class SingletonClass < Class
229
232
  extend T::Sig
230
233
 
231
- sig { params(location: Prism::Location, name_location: Prism::Location, comments: T.nilable(String)).void }
232
- def update_singleton_information(location, name_location, comments)
234
+ sig do
235
+ params(
236
+ location: Prism::Location,
237
+ name_location: Prism::Location,
238
+ comments: T.nilable(String),
239
+ encoding: Encoding,
240
+ ).void
241
+ end
242
+ def update_singleton_information(location, name_location, comments, encoding)
233
243
  # Create a new RubyIndexer::Location object from the Prism location
234
244
  @location = Location.new(
235
245
  location.start_line,
236
246
  location.end_line,
237
- location.start_column,
238
- location.end_column,
247
+ location.start_code_units_column(encoding),
248
+ location.end_code_units_column(encoding),
239
249
  )
240
250
  @name_location = Location.new(
241
251
  name_location.start_line,
242
252
  name_location.end_line,
243
- name_location.start_column,
244
- name_location.end_column,
253
+ name_location.start_code_units_column(encoding),
254
+ name_location.end_code_units_column(encoding),
245
255
  )
246
256
  (@comments ||= +"") << comments if comments
247
257
  end
@@ -361,12 +371,13 @@ module RubyIndexer
361
371
  file_path: String,
362
372
  location: T.any(Prism::Location, RubyIndexer::Location),
363
373
  comments: T.nilable(String),
374
+ encoding: Encoding,
364
375
  visibility: Visibility,
365
376
  owner: T.nilable(Entry::Namespace),
366
377
  ).void
367
378
  end
368
- def initialize(name, file_path, location, comments, visibility, owner) # rubocop:disable Metrics/ParameterLists
369
- super(name, file_path, location, comments)
379
+ def initialize(name, file_path, location, comments, encoding, visibility, owner) # rubocop:disable Metrics/ParameterLists
380
+ super(name, file_path, location, comments, encoding)
370
381
  @visibility = visibility
371
382
  @owner = owner
372
383
  end
@@ -429,21 +440,22 @@ module RubyIndexer
429
440
  location: T.any(Prism::Location, RubyIndexer::Location),
430
441
  name_location: T.any(Prism::Location, Location),
431
442
  comments: T.nilable(String),
443
+ encoding: Encoding,
432
444
  signatures: T::Array[Signature],
433
445
  visibility: Visibility,
434
446
  owner: T.nilable(Entry::Namespace),
435
447
  ).void
436
448
  end
437
- def initialize(name, file_path, location, name_location, comments, signatures, visibility, owner) # rubocop:disable Metrics/ParameterLists
438
- super(name, file_path, location, comments, visibility, owner)
449
+ def initialize(name, file_path, location, name_location, comments, encoding, signatures, visibility, owner) # rubocop:disable Metrics/ParameterLists
450
+ super(name, file_path, location, comments, encoding, visibility, owner)
439
451
  @signatures = signatures
440
452
  @name_location = T.let(
441
453
  if name_location.is_a?(Prism::Location)
442
454
  Location.new(
443
455
  name_location.start_line,
444
456
  name_location.end_line,
445
- name_location.start_column,
446
- name_location.end_column,
457
+ name_location.start_code_units_column(encoding),
458
+ name_location.end_code_units_column(encoding),
447
459
  )
448
460
  else
449
461
  name_location
@@ -480,10 +492,11 @@ module RubyIndexer
480
492
  file_path: String,
481
493
  location: T.any(Prism::Location, RubyIndexer::Location),
482
494
  comments: T.nilable(String),
495
+ encoding: Encoding,
483
496
  ).void
484
497
  end
485
- def initialize(target, nesting, name, file_path, location, comments) # rubocop:disable Metrics/ParameterLists
486
- super(name, file_path, location, comments)
498
+ def initialize(target, nesting, name, file_path, location, comments, encoding) # rubocop:disable Metrics/ParameterLists
499
+ super(name, file_path, location, comments, encoding)
487
500
 
488
501
  @target = target
489
502
  @nesting = nesting
@@ -497,9 +510,15 @@ module RubyIndexer
497
510
  sig { returns(String) }
498
511
  attr_reader :target
499
512
 
500
- sig { params(target: String, unresolved_alias: UnresolvedConstantAlias).void }
501
- def initialize(target, unresolved_alias)
502
- super(unresolved_alias.name, unresolved_alias.file_path, unresolved_alias.location, unresolved_alias.comments)
513
+ sig { params(target: String, unresolved_alias: UnresolvedConstantAlias, encoding: Encoding).void }
514
+ def initialize(target, unresolved_alias, encoding)
515
+ super(
516
+ unresolved_alias.name,
517
+ unresolved_alias.file_path,
518
+ unresolved_alias.location,
519
+ unresolved_alias.comments,
520
+ encoding
521
+ )
503
522
 
504
523
  @visibility = unresolved_alias.visibility
505
524
  @target = target
@@ -517,11 +536,12 @@ module RubyIndexer
517
536
  file_path: String,
518
537
  location: T.any(Prism::Location, RubyIndexer::Location),
519
538
  comments: T.nilable(String),
539
+ encoding: Encoding,
520
540
  owner: T.nilable(Entry::Namespace),
521
541
  ).void
522
542
  end
523
- def initialize(name, file_path, location, comments, owner)
524
- super(name, file_path, location, comments)
543
+ def initialize(name, file_path, location, comments, encoding, owner) # rubocop:disable Metrics/ParameterLists
544
+ super(name, file_path, location, comments, encoding)
525
545
  @owner = owner
526
546
  end
527
547
  end
@@ -546,10 +566,11 @@ module RubyIndexer
546
566
  file_path: String,
547
567
  location: T.any(Prism::Location, RubyIndexer::Location),
548
568
  comments: T.nilable(String),
569
+ encoding: Encoding,
549
570
  ).void
550
571
  end
551
- def initialize(new_name, old_name, owner, file_path, location, comments) # rubocop:disable Metrics/ParameterLists
552
- super(new_name, file_path, location, comments)
572
+ def initialize(new_name, old_name, owner, file_path, location, comments, encoding) # rubocop:disable Metrics/ParameterLists
573
+ super(new_name, file_path, location, comments, encoding)
553
574
 
554
575
  @new_name = new_name
555
576
  @old_name = old_name
@@ -567,8 +588,10 @@ module RubyIndexer
567
588
  sig { returns(T.nilable(Entry::Namespace)) }
568
589
  attr_reader :owner
569
590
 
570
- sig { params(target: T.any(Member, MethodAlias), unresolved_alias: UnresolvedMethodAlias).void }
571
- def initialize(target, unresolved_alias)
591
+ sig do
592
+ params(target: T.any(Member, MethodAlias), unresolved_alias: UnresolvedMethodAlias, encoding: Encoding).void
593
+ end
594
+ def initialize(target, unresolved_alias, encoding)
572
595
  full_comments = +"Alias for #{target.name}\n"
573
596
  full_comments << "#{unresolved_alias.comments}\n"
574
597
  full_comments << target.comments
@@ -578,6 +601,7 @@ module RubyIndexer
578
601
  unresolved_alias.file_path,
579
602
  unresolved_alias.location,
580
603
  full_comments,
604
+ encoding
581
605
  )
582
606
 
583
607
  @target = target
@@ -665,6 +665,7 @@ module RubyIndexer
665
665
  attached_ancestor.location,
666
666
  attached_ancestor.name_location,
667
667
  nil,
668
+ @configuration.encoding,
668
669
  nil,
669
670
  )
670
671
  add(singleton, skip_prefix_tree: true)
@@ -856,7 +857,7 @@ module RubyIndexer
856
857
  return entry unless target
857
858
 
858
859
  target_name = T.must(target.first).name
859
- resolved_alias = Entry::ConstantAlias.new(target_name, entry)
860
+ resolved_alias = Entry::ConstantAlias.new(target_name, entry, @configuration.encoding)
860
861
 
861
862
  # Replace the UnresolvedAlias by a resolved one so that we don't have to do this again later
862
863
  original_entries = T.must(@entries[alias_name])
@@ -1047,7 +1048,7 @@ module RubyIndexer
1047
1048
  target_method_entries = resolve_method(entry.old_name, receiver_name, seen_names)
1048
1049
  return entry unless target_method_entries
1049
1050
 
1050
- resolved_alias = Entry::MethodAlias.new(T.must(target_method_entries.first), entry)
1051
+ resolved_alias = Entry::MethodAlias.new(T.must(target_method_entries.first), entry, @configuration.encoding)
1051
1052
  original_entries = T.must(@entries[new_name])
1052
1053
  original_entries.delete(entry)
1053
1054
  original_entries << resolved_alias
@@ -5,6 +5,8 @@ module RubyIndexer
5
5
  class RBSIndexer
6
6
  extend T::Sig
7
7
 
8
+ HAS_UNTYPED_FUNCTION = T.let(!!defined?(RBS::Types::UntypedFunction), T::Boolean)
9
+
8
10
  sig { params(index: Index).void }
9
11
  def initialize(index)
10
12
  @index = index
@@ -57,9 +59,9 @@ module RubyIndexer
57
59
  comments = comments_to_string(declaration)
58
60
  entry = if declaration.is_a?(RBS::AST::Declarations::Class)
59
61
  parent_class = declaration.super_class&.name&.name&.to_s
60
- Entry::Class.new(nesting, file_path, location, location, comments, parent_class)
62
+ Entry::Class.new(nesting, file_path, location, location, comments, @index.configuration.encoding, parent_class)
61
63
  else
62
- Entry::Module.new(nesting, file_path, location, location, comments)
64
+ Entry::Module.new(nesting, file_path, location, location, comments, @index.configuration.encoding)
63
65
  end
64
66
  add_declaration_mixins_to_entry(declaration, entry)
65
67
  @index.add(entry)
@@ -126,7 +128,17 @@ module RubyIndexer
126
128
 
127
129
  real_owner = member.singleton? ? @index.existing_or_new_singleton_class(owner.name) : owner
128
130
  signatures = signatures(member)
129
- @index.add(Entry::Method.new(name, file_path, location, location, comments, signatures, visibility, real_owner))
131
+ @index.add(Entry::Method.new(
132
+ name,
133
+ file_path,
134
+ location,
135
+ location,
136
+ comments,
137
+ @index.configuration.encoding,
138
+ signatures,
139
+ visibility,
140
+ real_owner,
141
+ ))
130
142
  end
131
143
 
132
144
  sig { params(member: RBS::AST::Members::MethodDefinition).returns(T::Array[Entry::Signature]) }
@@ -151,7 +163,7 @@ module RubyIndexer
151
163
 
152
164
  # Untyped functions are a new RBS feature (since v3.6.0) to declare methods that accept any parameters. For our
153
165
  # purposes, accepting any argument is equivalent to `...`
154
- if defined?(RBS::Types::UntypedFunction) && function.is_a?(RBS::Types::UntypedFunction)
166
+ if HAS_UNTYPED_FUNCTION && function.is_a?(RBS::Types::UntypedFunction)
155
167
  [Entry::ForwardingParameter.new]
156
168
  else
157
169
  []
@@ -255,6 +267,7 @@ module RubyIndexer
255
267
  file_path,
256
268
  to_ruby_indexer_location(declaration.location),
257
269
  comments_to_string(declaration),
270
+ @index.configuration.encoding,
258
271
  ))
259
272
  end
260
273
 
@@ -270,6 +283,7 @@ module RubyIndexer
270
283
  file_path,
271
284
  to_ruby_indexer_location(member.location),
272
285
  comments,
286
+ @index.configuration.encoding,
273
287
  )
274
288
 
275
289
  @index.add(entry)