ruby_language_server 0.3.18 → 0.4.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: 7dfeb724b879efc9c975b4e25012584b6440441f98ce92fe194dba282e721e59
4
- data.tar.gz: 93c444322a6a2d5bc7bd79e8879433ed74a216720438c5f90c8d193efcecfda8
3
+ metadata.gz: 948555ce0af9e594b0617d804ce0a0c593868c22ab0521aa9bf8bb9121fa3db0
4
+ data.tar.gz: 46136fc0951e709c892faa17f769a122daea64e67db08d5dc473e105ebe2a7c7
5
5
  SHA512:
6
- metadata.gz: 8fde3f68a5ab27204fd19730b18f3b59e3e70454c82f9d6dab3743134c5768b866ad9db4d5524882a4a0796f8bf6b800e9e2ec4e23deb885049f0789d488a095
7
- data.tar.gz: 2d439b69dda08931d28a1b21ba41d229e70396c6b02bcb2b5e922fa456c00a72f08c42b0d343d015944e295e49447e65541441e688750fca7af0805507049ba3
6
+ metadata.gz: b2246964b443cebc9896783c605f97d8eda90481b064150f0802c15c66a2553762b7647a9dba3df4ad5602c618893348660dfe50f9f5a2b00d080e5b8ff47c5a
7
+ data.tar.gz: 7621d28c3dac448c9fb86b31a11225290ee68f0df8e9b9f43a3ec5cc9032c1b2037f3e06ca59e16ec13a27edda4a15fb4e6e287b2b8c1bb12c9572fcb2902415
data/CHANGELOG.txt CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ #### 0.4.0 Fri May 9 22:33:03 PDT 2025
4
+
5
+ * Ditch rubocop - it has its own LSP
6
+ * Also update rails version
7
+
3
8
  #### 0.3.18 Tue Sep 10 20:10:21 PDT 2024
4
9
 
5
10
  * bump dependencies
data/Gemfile.lock CHANGED
@@ -1,51 +1,66 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby_language_server (0.3.18)
4
+ ruby_language_server (0.4.0)
5
5
  activerecord (~> 7.0)
6
6
  amatch
7
7
  bundler
8
8
  etc
9
9
  fuzzy_match
10
10
  json
11
- rubocop (> 1.38.0)
12
- rubocop-ast (> 1.32.0)
13
- rubocop-performance
14
- rubocop-rspec
15
- sqlite3 (< 1.5.0)
11
+ ostruct
12
+ sqlite3
16
13
 
17
14
  GEM
18
15
  remote: https://rubygems.org/
19
16
  specs:
20
- activemodel (7.0.7.2)
21
- activesupport (= 7.0.7.2)
22
- activerecord (7.0.7.2)
23
- activemodel (= 7.0.7.2)
24
- activesupport (= 7.0.7.2)
25
- activesupport (7.0.7.2)
26
- concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ activemodel (7.2.2.1)
18
+ activesupport (= 7.2.2.1)
19
+ activerecord (7.2.2.1)
20
+ activemodel (= 7.2.2.1)
21
+ activesupport (= 7.2.2.1)
22
+ timeout (>= 0.4.0)
23
+ activesupport (7.2.2.1)
24
+ base64
25
+ benchmark (>= 0.3)
26
+ bigdecimal
27
+ concurrent-ruby (~> 1.0, >= 1.3.1)
28
+ connection_pool (>= 2.2.5)
29
+ drb
27
30
  i18n (>= 1.6, < 2)
31
+ logger (>= 1.4.2)
28
32
  minitest (>= 5.1)
29
- tzinfo (~> 2.0)
33
+ securerandom (>= 0.3)
34
+ tzinfo (~> 2.0, >= 2.0.5)
30
35
  amatch (0.4.1)
31
36
  mize
32
37
  tins (~> 1.0)
33
38
  ansi (1.5.0)
34
- ast (2.4.2)
35
- builder (3.2.4)
36
- byebug (11.1.3)
39
+ ast (2.4.3)
40
+ base64 (0.2.0)
41
+ benchmark (0.4.0)
42
+ bigdecimal (3.1.9)
43
+ builder (3.3.0)
37
44
  coderay (1.1.3)
38
- concurrent-ruby (1.2.2)
39
- etc (1.3.0)
40
- ffi (1.15.5)
45
+ concurrent-ruby (1.3.5)
46
+ connection_pool (2.5.3)
47
+ debug (1.10.0)
48
+ irb (~> 1.10)
49
+ reline (>= 0.3.8)
50
+ drb (2.2.1)
51
+ etc (1.4.5)
52
+ ffi (1.17.2-aarch64-linux-musl)
53
+ ffi (1.17.2-x86_64-linux-gnu)
41
54
  formatador (1.1.0)
42
55
  fuzzy_match (2.1.0)
43
- guard (2.18.0)
56
+ guard (2.19.1)
44
57
  formatador (>= 0.2.4)
45
58
  listen (>= 2.7, < 4.0)
59
+ logger (~> 1.6)
46
60
  lumberjack (>= 1.0.12, < 2.0)
47
61
  nenv (~> 0.1)
48
62
  notiffany (~> 0.0)
63
+ ostruct (~> 0.6)
49
64
  pry (>= 0.13.0)
50
65
  shellany (~> 0.0)
51
66
  thor (>= 0.18.1)
@@ -56,95 +71,118 @@ GEM
56
71
  guard-rubocop (1.5.0)
57
72
  guard (~> 2.0)
58
73
  rubocop (< 2.0)
59
- i18n (1.14.1)
74
+ i18n (1.14.7)
60
75
  concurrent-ruby (~> 1.0)
61
- json (2.6.2)
62
- listen (3.7.1)
76
+ io-console (0.7.1)
77
+ irb (1.13.1)
78
+ rdoc (>= 4.0.0)
79
+ reline (>= 0.4.2)
80
+ json (2.11.3)
81
+ language_server-protocol (3.17.0.4)
82
+ lint_roller (1.1.0)
83
+ listen (3.9.0)
63
84
  rb-fsevent (~> 0.10, >= 0.10.3)
64
85
  rb-inotify (~> 0.9, >= 0.9.10)
65
- lumberjack (1.2.8)
66
- method_source (1.0.0)
67
- minitest (5.16.3)
68
- minitest-reporters (1.5.0)
86
+ logger (1.7.0)
87
+ lumberjack (1.2.10)
88
+ method_source (1.1.0)
89
+ minitest (5.25.5)
90
+ minitest-reporters (1.7.1)
69
91
  ansi
70
92
  builder
71
93
  minitest (>= 5.0)
72
94
  ruby-progressbar
73
- mize (0.4.0)
74
- protocol (~> 2.0)
95
+ mize (0.6.1)
75
96
  nenv (0.3.0)
76
97
  notiffany (0.1.3)
77
98
  nenv (~> 0.1)
78
99
  shellany (~> 0.0)
79
- parallel (1.22.1)
80
- parser (3.3.4.2)
100
+ ostruct (0.6.1)
101
+ parallel (1.27.0)
102
+ parser (3.3.8.0)
81
103
  ast (~> 2.4.1)
82
104
  racc
83
- protocol (2.0.0)
84
- ruby_parser (~> 3.0)
85
- pry (0.14.1)
105
+ prism (1.4.0)
106
+ pry (0.15.2)
86
107
  coderay (~> 1.1)
87
108
  method_source (~> 1.0)
109
+ psych (5.1.2)
110
+ stringio
88
111
  racc (1.8.1)
89
112
  rainbow (3.1.1)
90
- rake (13.0.6)
113
+ rake (13.2.1)
91
114
  rb-fsevent (0.11.2)
92
- rb-inotify (0.10.1)
115
+ rb-inotify (0.11.1)
93
116
  ffi (~> 1.0)
94
- regexp_parser (2.6.0)
95
- rexml (3.3.6)
96
- strscan
97
- rubocop (1.42.0)
117
+ rdoc (6.6.3.1)
118
+ psych (>= 4.0.0)
119
+ regexp_parser (2.10.0)
120
+ reline (0.5.10)
121
+ io-console (~> 0.5)
122
+ rubocop (1.75.5)
98
123
  json (~> 2.3)
124
+ language_server-protocol (~> 3.17.0.2)
125
+ lint_roller (~> 1.1.0)
99
126
  parallel (~> 1.10)
100
- parser (>= 3.1.2.1)
127
+ parser (>= 3.3.0.2)
101
128
  rainbow (>= 2.2.2, < 4.0)
102
- regexp_parser (>= 1.8, < 3.0)
103
- rexml (>= 3.2.5, < 4.0)
104
- rubocop-ast (>= 1.24.1, < 2.0)
129
+ regexp_parser (>= 2.9.3, < 3.0)
130
+ rubocop-ast (>= 1.44.0, < 2.0)
105
131
  ruby-progressbar (~> 1.7)
106
- unicode-display_width (>= 1.4.0, < 3.0)
107
- rubocop-ast (1.32.1)
108
- parser (>= 3.3.1.0)
109
- rubocop-minitest (0.34.5)
110
- rubocop (>= 1.39, < 2.0)
111
- rubocop-ast (>= 1.30.0, < 2.0)
112
- rubocop-performance (1.19.1)
113
- rubocop (>= 1.7.0, < 2.0)
114
- rubocop-ast (>= 0.4.0)
115
- rubocop-rake (0.6.0)
116
- rubocop (~> 1.0)
117
- rubocop-rspec (3.0.0)
118
- rubocop (~> 1.40)
119
- ruby-progressbar (1.11.0)
120
- ruby_parser (3.19.1)
121
- sexp_processor (~> 4.16)
122
- sexp_processor (4.16.1)
132
+ unicode-display_width (>= 2.4.0, < 4.0)
133
+ rubocop-ast (1.44.1)
134
+ parser (>= 3.3.7.2)
135
+ prism (~> 1.4)
136
+ rubocop-minitest (0.38.0)
137
+ lint_roller (~> 1.1)
138
+ rubocop (>= 1.75.0, < 2.0)
139
+ rubocop-ast (>= 1.38.0, < 2.0)
140
+ rubocop-performance (1.25.0)
141
+ lint_roller (~> 1.1)
142
+ rubocop (>= 1.75.0, < 2.0)
143
+ rubocop-ast (>= 1.38.0, < 2.0)
144
+ rubocop-rake (0.7.1)
145
+ lint_roller (~> 1.1)
146
+ rubocop (>= 1.72.1)
147
+ rubocop-rspec (3.6.0)
148
+ lint_roller (~> 1.1)
149
+ rubocop (~> 1.72, >= 1.72.1)
150
+ ruby-progressbar (1.13.0)
151
+ securerandom (0.4.1)
123
152
  shellany (0.0.1)
124
- sqlite3 (1.4.4)
125
- strscan (3.1.0)
153
+ sqlite3 (2.6.0-aarch64-linux-musl)
154
+ sqlite3 (2.6.0-x86_64-linux-gnu)
155
+ stringio (3.1.1)
126
156
  sync (0.5.0)
127
- thor (1.2.1)
128
- tins (1.31.1)
157
+ thor (1.3.2)
158
+ timeout (0.4.3)
159
+ tins (1.38.0)
160
+ bigdecimal
129
161
  sync
130
162
  tzinfo (2.0.6)
131
163
  concurrent-ruby (~> 1.0)
132
- unicode-display_width (2.3.0)
164
+ unicode-display_width (3.1.4)
165
+ unicode-emoji (~> 4.0, >= 4.0.4)
166
+ unicode-emoji (4.0.4)
133
167
 
134
168
  PLATFORMS
135
169
  aarch64-linux-musl
136
170
  x86_64-linux
137
171
 
138
172
  DEPENDENCIES
139
- byebug
173
+ debug
140
174
  guard
141
175
  guard-minitest
142
176
  guard-rubocop
143
177
  minitest
144
178
  minitest-reporters
145
179
  rake
180
+ rubocop (> 1.38.0)
181
+ rubocop-ast (> 1.32.0)
146
182
  rubocop-minitest
183
+ rubocop-performance
147
184
  rubocop-rake
185
+ rubocop-rspec
148
186
  ruby_language_server!
149
187
 
150
188
  BUNDLED WITH
data/Guardfile CHANGED
@@ -25,7 +25,7 @@ group :red_green_refactor, halt_on_fail: true do
25
25
  # watch(%r{^test/test_helper\.rb$}) { 'test' }
26
26
 
27
27
  # with Minitest::Spec
28
- watch(%r{^spec/**/(.*)_spec\.rb$})
28
+ watch(%r{^spec/*/(.*)_spec\.rb$})
29
29
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
30
30
  watch(%r{^spec/spec_helper\.rb$}) { 'spec' }
31
31
  end
@@ -7,7 +7,7 @@ ActiveRecord::Base.establish_connection(
7
7
  timeout: 30.seconds # does not seem to help
8
8
  )
9
9
 
10
- database = ActiveRecord::Base.connection.instance_variable_get :@connection
10
+ database = ActiveRecord::Base.connection.raw_connection
11
11
  database.enable_load_extension(1)
12
12
  if Gem.win_platform?
13
13
  # load DLL from PATH
@@ -13,7 +13,6 @@ require_relative 'io'
13
13
  require_relative 'location'
14
14
  require_relative 'code_file'
15
15
  require_relative 'scope_parser'
16
- require_relative 'good_cop'
17
16
  require_relative 'project_manager'
18
17
  require_relative 'server'
19
18
  require_relative 'line_context'
@@ -13,7 +13,7 @@ module RubyLanguageServer
13
13
  return_response(id, response, $stdout) unless id.nil?
14
14
  rescue SignalException => e
15
15
  RubyLanguageServer.logger.error "We received a signal. Let's bail: #{e}"
16
- exit(true)
16
+ exit
17
17
  rescue Exception => e
18
18
  RubyLanguageServer.logger.error "Something when horribly wrong: #{e}"
19
19
  backtrace = e.backtrace * "\n"
@@ -69,7 +69,7 @@ module RubyLanguageServer
69
69
  retry unless retries <= 0
70
70
  end
71
71
  end
72
- exit(true) if response == 'EXIT'
72
+ exit if response == 'EXIT'
73
73
  [id, response]
74
74
  else
75
75
  RubyLanguageServer.logger.warn "SERVER DOES NOT RESPOND TO #{method_name}"
@@ -49,22 +49,13 @@ module RubyLanguageServer
49
49
 
50
50
  @root_uri = "file://#{path}"
51
51
  # This is {uri: code_file} where content stuff is like
52
- @additional_gems_installed = false
53
- @additional_gem_mutex = Mutex.new
52
+ # @additional_gems_installed = false
53
+ # @additional_gem_mutex = Mutex.new
54
54
  end
55
55
 
56
- def diagnostics_ready?
57
- @additional_gem_mutex.synchronize { @additional_gems_installed }
58
- end
59
-
60
- def install_additional_gems(gem_names)
61
- Thread.new do
62
- RubyLanguageServer::GemInstaller.install_gems(gem_names)
63
- @additional_gem_mutex.synchronize { @additional_gems_installed = true }
64
- rescue StandardError => e
65
- RubyLanguageServer.logger.error("Issue installing rubocop gems: #{e} #{e.backtrace}")
66
- end
67
- end
56
+ # def diagnostics_ready?
57
+ # @additional_gem_mutex.synchronize { @additional_gems_installed }
58
+ # end
68
59
 
69
60
  def text_for_uri(uri)
70
61
  code_file = code_file_for_uri(uri)
@@ -219,17 +210,17 @@ module RubyLanguageServer
219
210
  return code_file.diagnostics if code_file.text == text
220
211
 
221
212
  code_file.update_text(text)
222
- diagnostics_ready? ? updated_diagnostics_for_codefile(code_file) : []
213
+ # diagnostics_ready? ? updated_diagnostics_for_codefile(code_file) : []
223
214
  end
224
215
 
225
- def updated_diagnostics_for_codefile(code_file)
226
- # Maybe we should be sharing this GoodCop across instances
227
- RubyLanguageServer.logger.debug("updated_diagnostics_for_codefile: #{code_file.uri}")
228
- project_relative_filename = filename_relative_to_project(code_file.uri)
229
- code_file.diagnostics = GoodCop.instance&.diagnostics(code_file.text, project_relative_filename)
230
- RubyLanguageServer.logger.debug("code_file.diagnostics: #{code_file.diagnostics}")
231
- code_file.diagnostics
232
- end
216
+ # def updated_diagnostics_for_codefile(code_file)
217
+ # # Maybe we should be sharing this GoodCop across instances
218
+ # RubyLanguageServer.logger.debug("updated_diagnostics_for_codefile: #{code_file.uri}")
219
+ # project_relative_filename = filename_relative_to_project(code_file.uri)
220
+ # # code_file.diagnostics = GoodCop.instance&.diagnostics(code_file.text, project_relative_filename)
221
+ # RubyLanguageServer.logger.debug("code_file.diagnostics: #{code_file.diagnostics}")
222
+ # code_file.diagnostics
223
+ # end
233
224
 
234
225
  # Returns the context of what is being typed in the given line
235
226
  def context_at_location(uri, position)
@@ -25,7 +25,7 @@ module RubyLanguageServer
25
25
  # attr_accessor :superclass_name # superclass name
26
26
 
27
27
  def self.build(parent = nil, type = TYPE_ROOT, name = '', top_line = 1, column = 1)
28
- full_name = [parent ? parent.full_name : nil, name].compact.join(JoinHash[type])
28
+ full_name = [parent&.full_name, name].compact.join(JoinHash[type])
29
29
  create!(
30
30
  parent:,
31
31
  top_line:,
@@ -5,6 +5,7 @@ require 'json'
5
5
  # Deal with the various languageserver calls.
6
6
  module RubyLanguageServer
7
7
  class Server
8
+ Position = Struct.new('Position', :line, :character)
8
9
  attr_accessor :io
9
10
 
10
11
  def initialize(mutex)
@@ -18,9 +19,6 @@ module RubyLanguageServer
18
19
  root_uri = params['rootUri']
19
20
  @project_manager = ProjectManager.new(root_path, root_uri)
20
21
  @project_manager.scan_all_project_files
21
- gem_string = ENV.fetch('ADDITIONAL_GEMS', nil)
22
- gem_array = (gem_string.split(',').compact.map(&:strip).reject { |string| string == '' } if gem_string && !gem_string.empty?)
23
- @project_manager.install_additional_gems(gem_array)
24
22
  {
25
23
  capabilities: {
26
24
  textDocumentSync: 1,
@@ -124,11 +122,9 @@ module RubyLanguageServer
124
122
  textDocument['uri']
125
123
  end
126
124
 
127
- Position = Struct.new('Position', :line, :character)
128
-
129
125
  def postition_from_params(params)
130
126
  position = params['position']
131
- Position.new((position['line']).to_i, position['character'].to_i)
127
+ Position.new(position['line'].to_i, position['character'].to_i)
132
128
  end
133
129
  end
134
130
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyLanguageServer
4
- VERSION = '0.3.18'
4
+ VERSION = '0.4.0'
5
5
  end
@@ -35,30 +35,27 @@ Gem::Specification.new do |spec|
35
35
  spec.require_paths = ['lib']
36
36
 
37
37
  # Normally the system will have these - but not if it's a stripped down docker image
38
+ spec.add_dependency 'activerecord', '~>7.0'
39
+ spec.add_dependency 'amatch' # in c
38
40
  spec.add_dependency 'bundler'
39
41
  spec.add_dependency 'etc'
40
- spec.add_dependency 'json'
41
-
42
- # No - do not put these in dev - they are needed for the app
43
- spec.add_dependency 'rubocop', '>1.38.0' # Something broke in 1.38.0. Move to rubocop --server?
44
- spec.add_dependency 'rubocop-ast', '>1.32.0' # Something broke in 1.38.0. Move to rubocop --server?
45
- spec.add_dependency 'rubocop-performance' # Linter - no longer needed - use additional gems?
46
- spec.add_dependency 'rubocop-rspec' # Linter - no longer needed - use additional gems?
47
-
48
- spec.add_dependency 'amatch' # in c
49
42
  spec.add_dependency 'fuzzy_match' # completion matching
43
+ spec.add_dependency 'json'
44
+ spec.add_dependency 'ostruct'
45
+ spec.add_dependency 'sqlite3'
50
46
 
51
- spec.add_dependency 'activerecord', '~>7.0'
52
- spec.add_dependency 'sqlite3', '<1.5.0' # 1.5.0 breaks in docker M1 at least
53
-
54
- spec.add_development_dependency 'byebug'
47
+ spec.add_development_dependency 'debug'
55
48
  spec.add_development_dependency 'guard'
56
49
  spec.add_development_dependency 'guard-minitest'
57
50
  spec.add_development_dependency 'guard-rubocop'
58
51
  spec.add_development_dependency 'minitest'
59
52
  spec.add_development_dependency 'minitest-reporters'
60
53
  spec.add_development_dependency 'rake' # required by guard :-(
54
+ spec.add_development_dependency 'rubocop', '>1.38.0' # Something broke in 1.38.0. Move to rubocop --server?
55
+ spec.add_development_dependency 'rubocop-ast', '>1.32.0' # Something broke in 1.38.0. Move to rubocop --server?
61
56
  spec.add_development_dependency 'rubocop-minitest'
57
+ spec.add_development_dependency 'rubocop-performance' # Linter - no longer needed - use additional gems?
62
58
  spec.add_development_dependency 'rubocop-rake'
59
+ spec.add_development_dependency 'rubocop-rspec' # Linter - no longer needed - use additional gems?
63
60
  spec.metadata['rubygems_mfa_required'] = 'true'
64
61
  end
metadata CHANGED
@@ -1,31 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_language_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.18
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kurt Werle
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-11 00:00:00.000000000 Z
11
+ date: 2025-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '7.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '7.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: etc
28
+ name: amatch
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: json
42
+ name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,35 +53,35 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rubocop
56
+ name: etc
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 1.38.0
61
+ version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 1.38.0
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rubocop-ast
70
+ name: fuzzy_match
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 1.32.0
75
+ version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 1.32.0
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rubocop-performance
84
+ name: json
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rubocop-rspec
98
+ name: ostruct
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: amatch
112
+ name: sqlite3
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,13 +123,13 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: fuzzy_match
126
+ name: debug
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
- type: :runtime
132
+ type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
@@ -137,35 +137,35 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: activerecord
140
+ name: guard
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: '7.0'
146
- type: :runtime
145
+ version: '0'
146
+ type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: '7.0'
152
+ version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: sqlite3
154
+ name: guard-minitest
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "<"
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: 1.5.0
160
- type: :runtime
159
+ version: '0'
160
+ type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "<"
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: 1.5.0
166
+ version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
- name: byebug
168
+ name: guard-rubocop
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - ">="
@@ -179,7 +179,7 @@ dependencies:
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  - !ruby/object:Gem::Dependency
182
- name: guard
182
+ name: minitest
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - ">="
@@ -193,7 +193,7 @@ dependencies:
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  - !ruby/object:Gem::Dependency
196
- name: guard-minitest
196
+ name: minitest-reporters
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - ">="
@@ -207,7 +207,7 @@ dependencies:
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  - !ruby/object:Gem::Dependency
210
- name: guard-rubocop
210
+ name: rake
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - ">="
@@ -221,21 +221,35 @@ dependencies:
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
223
  - !ruby/object:Gem::Dependency
224
- name: minitest
224
+ name: rubocop
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - ">="
227
+ - - ">"
228
228
  - !ruby/object:Gem::Version
229
- version: '0'
229
+ version: 1.38.0
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - ">="
234
+ - - ">"
235
235
  - !ruby/object:Gem::Version
236
- version: '0'
236
+ version: 1.38.0
237
237
  - !ruby/object:Gem::Dependency
238
- name: minitest-reporters
238
+ name: rubocop-ast
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">"
242
+ - !ruby/object:Gem::Version
243
+ version: 1.32.0
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">"
249
+ - !ruby/object:Gem::Version
250
+ version: 1.32.0
251
+ - !ruby/object:Gem::Dependency
252
+ name: rubocop-minitest
239
253
  requirement: !ruby/object:Gem::Requirement
240
254
  requirements:
241
255
  - - ">="
@@ -249,7 +263,7 @@ dependencies:
249
263
  - !ruby/object:Gem::Version
250
264
  version: '0'
251
265
  - !ruby/object:Gem::Dependency
252
- name: rake
266
+ name: rubocop-performance
253
267
  requirement: !ruby/object:Gem::Requirement
254
268
  requirements:
255
269
  - - ">="
@@ -263,7 +277,7 @@ dependencies:
263
277
  - !ruby/object:Gem::Version
264
278
  version: '0'
265
279
  - !ruby/object:Gem::Dependency
266
- name: rubocop-minitest
280
+ name: rubocop-rake
267
281
  requirement: !ruby/object:Gem::Requirement
268
282
  requirements:
269
283
  - - ">="
@@ -277,7 +291,7 @@ dependencies:
277
291
  - !ruby/object:Gem::Version
278
292
  version: '0'
279
293
  - !ruby/object:Gem::Dependency
280
- name: rubocop-rake
294
+ name: rubocop-rspec
281
295
  requirement: !ruby/object:Gem::Requirement
282
296
  requirements:
283
297
  - - ">="
@@ -315,13 +329,11 @@ files:
315
329
  - lib/config/initializers/active_record.rb
316
330
  - lib/config/initializers/sqlite.rb
317
331
  - lib/db/schema.rb
318
- - lib/resources/fallback_rubocop.yml
319
332
  - lib/ruby_language_server.rb
320
333
  - lib/ruby_language_server/application.rb
321
334
  - lib/ruby_language_server/code_file.rb
322
335
  - lib/ruby_language_server/completion.rb
323
336
  - lib/ruby_language_server/gem_installer.rb
324
- - lib/ruby_language_server/good_cop.rb
325
337
  - lib/ruby_language_server/io.rb
326
338
  - lib/ruby_language_server/line_context.rb
327
339
  - lib/ruby_language_server/location.rb
@@ -362,7 +374,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
362
374
  - !ruby/object:Gem::Version
363
375
  version: '0'
364
376
  requirements: []
365
- rubygems_version: 3.5.16
377
+ rubygems_version: 3.5.22
366
378
  signing_key:
367
379
  specification_version: 4
368
380
  summary: Provide a language server implementation for ruby in ruby.
@@ -1,2 +0,0 @@
1
- # This is a blank rubocop file just to have a handle to make rubocop happy.
2
- # It is used if the project does not have a rubocop file.
@@ -1,172 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rubocop'
4
-
5
- module RubyLanguageServer
6
- class GoodCop < RuboCop::Runner
7
- def initialize(config_path, initialization_error = nil)
8
- @initialization_error = initialization_error
9
- unless @initialization_error
10
- initialize_rubocop_ivars
11
- @config_store.options_config = config_path
12
- RubyLanguageServer.logger.debug("Rubocop config_path: #{config_path}")
13
- super({}, @config_store)
14
- end
15
- rescue Exception => e
16
- RubyLanguageServer.logger.error(e)
17
- @initialization_error = "There was an issue loading the rubocop configuration file: #{e}. Maybe you need to add some additional gems to the ide-ruby settings?"
18
- end
19
-
20
- # namespace DiagnosticSeverity {
21
- # /**
22
- # * Reports an error.
23
- # */
24
- # export const Error = 1;
25
- # /**
26
- # * Reports a warning.
27
- # */
28
- # export const Warning = 2;
29
- # /**
30
- # * Reports an information.
31
- # */
32
- # export const Information = 3;
33
- # /**
34
- # * Reports a hint.
35
- # */
36
- # export const Hint = 4;
37
- # }
38
-
39
- # interface Diagnostic {
40
- # /**
41
- # * The range at which the message applies.
42
- # */
43
- # range: Range;
44
- #
45
- # /**
46
- # * The diagnostic's severity. Can be omitted. If omitted it is up to the
47
- # * client to interpret diagnostics as error, warning, info or hint.
48
- # */
49
- # severity?: number;
50
- #
51
- # /**
52
- # * The diagnostic's code. Can be omitted.
53
- # */
54
- # code?: number | string;
55
- #
56
- # /**
57
- # * A human-readable string describing the source of this
58
- # * diagnostic, e.g. 'typescript' or 'super lint'.
59
- # */
60
- # source?: string;
61
- #
62
- # /**
63
- # * The diagnostic's message.
64
- # */
65
- # message: string;
66
- # }
67
-
68
- def diagnostic_severity_for(severity)
69
- case severity.to_s
70
- when 'error', 'fatal'
71
- 1
72
- when 'warning'
73
- 2
74
- when 'refactor', 'convention'
75
- 3
76
- else
77
- RubyLanguageServer.logger.error("Could not map severity for #{severity} - returning 2")
78
- 2
79
- end
80
- end
81
-
82
- def diagnostics(text, filename = nil)
83
- return initialization_offenses unless @initialization_error.nil?
84
-
85
- maximum_severity = 4 # (ENV['LINT_LEVEL'] || 4).to_i
86
- enabled_offenses = offenses(text, filename).reject { |offense| offense.status == :disabled }
87
- enabled_offenses.map do |offense|
88
- {
89
- range: Location.position_hash(offense.location.line, offense.location.column, offense.location.last_line, offense.location.last_column),
90
- severity: diagnostic_severity_for(offense.severity),
91
- # code?: number | string;
92
- code: 'code',
93
- source: "RuboCop:#{offense.cop_name}",
94
- message: offense.message
95
- }
96
- end.select { |hash| hash[:severity] <= maximum_severity }
97
- end
98
-
99
- private
100
-
101
- def offenses(text, filename)
102
- if excluded_file?(filename)
103
- []
104
- else
105
- ruby_version = 3.1
106
- processed_source = RuboCop::ProcessedSource.new(text, ruby_version, filename)
107
- offenses = inspect_file(processed_source)
108
- offenses.compact.flatten.reject(&:blank?) # reject blank because some are `false`
109
- end
110
- end
111
-
112
- def initialize_rubocop_ivars
113
- @config_store ||= RuboCop::ConfigStore.new
114
- @options ||= {}
115
- @errors ||= []
116
- @warnings ||= []
117
- end
118
-
119
- def inspect_file(source)
120
- initialize_rubocop_ivars
121
- super
122
- end
123
-
124
- def initialization_offenses
125
- [
126
- {
127
- range: Location.position_hash(1, 1, 1, 1),
128
- severity: 'startup', # diagnostic_severity_for(offense.severity),
129
- # code?: number | string;
130
- code: 'code',
131
- source: 'RuboCop:RubyLanguageServer',
132
- message: @initialization_error
133
- }
134
- ]
135
- end
136
-
137
- class << self
138
- def instance
139
- return @instance if @instance
140
-
141
- @config_path ||= config_path
142
- config_path_timestamp = File.mtime(@config_path)
143
- if @cached_config_path_timestamp.nil? || @cached_config_path_timestamp < config_path_timestamp
144
- @cached_config_path_timestamp = config_path_timestamp
145
- @instance = new(@config_path)
146
- else
147
- @instance = new
148
- end
149
- rescue StandardError => e
150
- @instance = new(@config_path, e.to_s)
151
- end
152
-
153
- private
154
-
155
- def config_path
156
- my_path = __FILE__
157
- pathname = Pathname.new(my_path)
158
- my_directory = pathname.dirname
159
- fallback_pathname = "#{my_directory}/../resources/fallback_rubocop.yml"
160
- project_path = "#{RubyLanguageServer::ProjectManager.root_path}.rubocop.yml"
161
- possible_config_paths = [project_path, fallback_pathname.to_s]
162
- possible_config_paths.detect { |path| File.exist?(path) }
163
- end
164
- end
165
-
166
- def excluded_file?(filename)
167
- initialize_rubocop_ivars
168
- file_config = @config_store.for(filename)
169
- file_config.file_to_exclude?(filename)
170
- end
171
- end
172
- end