ruby-lsp 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/VERSION +1 -1
  4. data/lib/ruby_lsp/handler.rb +0 -19
  5. data/lib/ruby_lsp/requests/document_link.rb +59 -0
  6. data/lib/ruby_lsp/requests/semantic_highlighting.rb +11 -5
  7. data/lib/ruby_lsp/requests/support/highlight_target.rb +2 -1
  8. data/lib/ruby_lsp/requests/support/rubocop_diagnostic.rb +9 -2
  9. data/lib/ruby_lsp/requests.rb +2 -0
  10. data/lib/ruby_lsp/server.rb +51 -19
  11. metadata +3 -69
  12. data/.github/dependabot.yml +0 -11
  13. data/.github/probots.yml +0 -2
  14. data/.github/pull_request_template.md +0 -15
  15. data/.github/workflows/ci.yml +0 -31
  16. data/.github/workflows/publish_docs.yml +0 -32
  17. data/.gitignore +0 -9
  18. data/.rubocop.yml +0 -40
  19. data/.vscode/extensions.json +0 -5
  20. data/.vscode/settings.json +0 -5
  21. data/.vscode/tasks.json +0 -25
  22. data/CODE_OF_CONDUCT.md +0 -78
  23. data/Gemfile +0 -18
  24. data/Gemfile.lock +0 -126
  25. data/Rakefile +0 -28
  26. data/bin/console +0 -19
  27. data/bin/rubocop +0 -29
  28. data/bin/tapioca +0 -29
  29. data/bin/test +0 -9
  30. data/dev.yml +0 -20
  31. data/rakelib/check_docs.rake +0 -81
  32. data/ruby-lsp.gemspec +0 -27
  33. data/service.yml +0 -2
  34. data/sorbet/config +0 -4
  35. data/sorbet/rbi/.rubocop.yml +0 -8
  36. data/sorbet/rbi/gems/ansi@1.5.0.rbi +0 -338
  37. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -522
  38. data/sorbet/rbi/gems/builder@3.2.4.rbi +0 -418
  39. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -8
  40. data/sorbet/rbi/gems/debug@1.5.0.rbi +0 -1273
  41. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -867
  42. data/sorbet/rbi/gems/io-console@0.5.11.rbi +0 -8
  43. data/sorbet/rbi/gems/irb@1.4.1.rbi +0 -376
  44. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +0 -7325
  45. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -8
  46. data/sorbet/rbi/gems/minitest-reporters@1.5.0.rbi +0 -612
  47. data/sorbet/rbi/gems/minitest@5.15.0.rbi +0 -994
  48. data/sorbet/rbi/gems/parallel@1.22.1.rbi +0 -163
  49. data/sorbet/rbi/gems/parser@3.1.2.0.rbi +0 -3968
  50. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +0 -734
  51. data/sorbet/rbi/gems/pry@0.14.1.rbi +0 -8
  52. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -227
  53. data/sorbet/rbi/gems/rake@13.0.6.rbi +0 -1853
  54. data/sorbet/rbi/gems/rbi@0.0.14.rbi +0 -2337
  55. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +0 -1854
  56. data/sorbet/rbi/gems/reline@0.3.1.rbi +0 -1274
  57. data/sorbet/rbi/gems/rexml@3.2.5.rbi +0 -3852
  58. data/sorbet/rbi/gems/rubocop-ast@1.18.0.rbi +0 -4180
  59. data/sorbet/rbi/gems/rubocop-minitest@0.20.0.rbi +0 -1369
  60. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +0 -246
  61. data/sorbet/rbi/gems/rubocop-shopify@2.6.0.rbi +0 -8
  62. data/sorbet/rbi/gems/rubocop-sorbet@0.6.8.rbi +0 -652
  63. data/sorbet/rbi/gems/rubocop@1.30.0.rbi +0 -36729
  64. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +0 -732
  65. data/sorbet/rbi/gems/spoom@1.1.11.rbi +0 -1600
  66. data/sorbet/rbi/gems/syntax_tree@2.7.1.rbi +0 -6777
  67. data/sorbet/rbi/gems/tapioca@0.8.1.rbi +0 -1972
  68. data/sorbet/rbi/gems/thor@1.2.1.rbi +0 -2921
  69. data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +0 -27
  70. data/sorbet/rbi/gems/unparser@0.6.5.rbi +0 -2789
  71. data/sorbet/rbi/gems/webrick@1.7.0.rbi +0 -1779
  72. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +0 -289
  73. data/sorbet/rbi/gems/yard@0.9.27.rbi +0 -13048
  74. data/sorbet/rbi/shims/fiddle.rbi +0 -4
  75. data/sorbet/rbi/shims/hash.rbi +0 -6
  76. data/sorbet/rbi/shims/rdoc.rbi +0 -4
  77. data/sorbet/tapioca/config.yml +0 -13
  78. data/sorbet/tapioca/require.rb +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d067270389ee6b02bb03fb6363e272b6808e7c3d27d77354442801d09a617149
4
- data.tar.gz: 74e7cd206a790a8c139969f5167ab3d38686f78646c619488153fd8ab139892e
3
+ metadata.gz: 0fefb041d92fb2000d3da23248ed622abd596a95264b421349f27d104b85f997
4
+ data.tar.gz: 312918f128e0a49a2f5b2066354df2fe45f9ed37af5e5eace6c76caa101155e5
5
5
  SHA512:
6
- metadata.gz: 8d65637f892541a79fde71e3f523dfc37c887ec4892315ffe58b450718c8fa6e2a342036c394c28f5a94da0a1348948a104609881109c5621488b9d23a581bc1
7
- data.tar.gz: 1d25dbac214c23c2af2bd991d4c57bdae9dce488ac886cc700d7ab10a7e3b4a0e72ddc2c1d4be459b332e9cdfac69588d42eac11ff78023d365e0d5ef6701f78
6
+ metadata.gz: 7ab96bd356fe94e3a95572bec24053eed9b467c71acec431a80c600e87ea5a3c31f0f2aee20c7b3b407b5aabc9b5736e0bb385dedf2840747c892fe7ad090b69
7
+ data.tar.gz: 2ec3f3c88c851e86e7ef6485c7719a271dbda81717990446900fe121844daac905b5f554833b59769a4c6f626bb50579d5e51970e7a306d206c898d0a289d36c
data/CHANGELOG.md CHANGED
@@ -6,6 +6,16 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.2.2]
10
+
11
+ - Support document links (https://github.com/Shopify/ruby-lsp/pull/195)
12
+ - Avoid returning on request blocks (https://github.com/Shopify/ruby-lsp/pull/232)
13
+ - Better specify gemspec files (https://github.com/Shopify/ruby-lsp/pull/233)
14
+ - Include Kernel instance methods as special methods for semantic highlighting (https://github.com/Shopify/ruby-lsp/pull/231)
15
+ - Fix call processing when message is a :call symbol literal (https://github.com/Shopify/ruby-lsp/pull/236)
16
+ - Alert users about non auto-correctable diagnostics (https://github.com/Shopify/ruby-lsp/pull/230)
17
+ - Let clients pull diagnostics instead of pushing on edits (https://github.com/Shopify/ruby-lsp/pull/242)
18
+
9
19
  ## [0.2.1]
10
20
 
11
21
  - Implement the exit lifecycle request (https://github.com/Shopify/ruby-lsp/pull/198)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.2.2
@@ -86,25 +86,6 @@ module RubyLsp
86
86
  store.clear
87
87
  end
88
88
 
89
- sig { params(uri: String).void }
90
- def send_diagnostics(uri)
91
- response = store.cache_fetch(uri, :diagnostics) do |document|
92
- Requests::Diagnostics.new(uri, document).run
93
- end
94
-
95
- return if response.nil?
96
-
97
- @writer.write(
98
- method: "textDocument/publishDiagnostics",
99
- params: Interface::PublishDiagnosticsParams.new(
100
- uri: uri,
101
- diagnostics: response.map(&:to_lsp_diagnostic)
102
- )
103
- )
104
- rescue RuboCop::ValidationError => e
105
- show_message(Constant::MessageType::ERROR, "Error in RuboCop configuration file: #{e.message}")
106
- end
107
-
108
89
  sig { params(uri: String).void }
109
90
  def clear_diagnostics(uri)
110
91
  @writer.write(
@@ -0,0 +1,59 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module RubyLsp
5
+ module Requests
6
+ # ![Document link demo](../../misc/document_link.gif)
7
+ #
8
+ # The [document link](https://microsoft.github.io/language-server-protocol/specification#textDocument_documentLink)
9
+ # makes `# source://PATH_TO_FILE:line` comments in a Ruby/RBI file clickable if the file exists.
10
+ # When the user clicks the link, it'll open that location.
11
+ #
12
+ # # Example
13
+ #
14
+ # ```ruby
15
+ # # source://syntax_tree-3.2.1/lib/syntax_tree.rb:51 <- it will be clickable and will take the user to that location
16
+ # def format(source, maxwidth = T.unsafe(nil))
17
+ # end
18
+ # ```
19
+ class DocumentLink < BaseRequest
20
+ extend T::Sig
21
+
22
+ RUBY_ROOT = "RUBY_ROOT"
23
+
24
+ sig { params(document: Document).void }
25
+ def initialize(document)
26
+ super
27
+
28
+ @links = T.let([], T::Array[LanguageServer::Protocol::Interface::DocumentLink])
29
+ end
30
+
31
+ sig { override.returns(T.all(T::Array[LanguageServer::Protocol::Interface::DocumentLink], Object)) }
32
+ def run
33
+ visit(@document.tree)
34
+ @links
35
+ end
36
+
37
+ sig { params(node: SyntaxTree::Comment).void }
38
+ def visit_comment(node)
39
+ match = node.value.match(%r{source://(?<path>.*):(?<line>\d+)$})
40
+ return unless match
41
+
42
+ file_path = if match[:path].start_with?(RUBY_ROOT)
43
+ match[:path].sub(RUBY_ROOT, RbConfig::CONFIG["rubylibdir"])
44
+ else
45
+ File.join(Bundler.bundle_path, "gems", match[:path])
46
+ end
47
+ return unless File.exist?(file_path)
48
+
49
+ target = "file://#{file_path}##{match[:line]}"
50
+
51
+ @links << LanguageServer::Protocol::Interface::DocumentLink.new(
52
+ range: range_from_syntax_tree_node(node),
53
+ target: target,
54
+ tooltip: "Jump to #{target.delete_prefix("file://")}"
55
+ )
56
+ end
57
+ end
58
+ end
59
+ end
@@ -60,10 +60,13 @@ module RubyLsp
60
60
  default_library: 9,
61
61
  }.freeze, T::Hash[Symbol, Integer])
62
62
 
63
- SPECIAL_RUBY_METHODS = T.let((Module.instance_methods(false) +
64
- Kernel.methods(false) + Bundler::Dsl.instance_methods(false) +
65
- Module.private_instance_methods(false))
66
- .map(&:to_s), T::Array[String])
63
+ SPECIAL_RUBY_METHODS = T.let([
64
+ Module.instance_methods(false),
65
+ Kernel.instance_methods(false),
66
+ Kernel.methods(false),
67
+ Bundler::Dsl.instance_methods(false),
68
+ Module.private_instance_methods(false),
69
+ ].flatten.map(&:to_s), T::Array[String])
67
70
 
68
71
  class SemanticToken < T::Struct
69
72
  const :location, SyntaxTree::Location
@@ -105,7 +108,10 @@ module RubyLsp
105
108
  sig { params(node: SyntaxTree::Call).void }
106
109
  def visit_call(node)
107
110
  visit(node.receiver)
108
- add_token(node.message.location, :method)
111
+
112
+ message = node.message
113
+ add_token(message.location, :method) if message != :call
114
+
109
115
  visit(node.arguments)
110
116
  end
111
117
 
@@ -76,7 +76,8 @@ module RubyLsp
76
76
  when SyntaxTree::VarField, SyntaxTree::VarRef, SyntaxTree::VCall, SyntaxTree::FCall
77
77
  node.value&.value
78
78
  when SyntaxTree::Call, SyntaxTree::Command, SyntaxTree::CommandCall
79
- node.message.value
79
+ message = node.message
80
+ message != :call ? message.value : nil
80
81
  when SyntaxTree::ClassDeclaration, SyntaxTree::ModuleDeclaration
81
82
  node.constant.constant.value
82
83
  end
@@ -61,11 +61,18 @@ module RubyLsp
61
61
 
62
62
  sig { returns(LanguageServer::Protocol::Interface::Diagnostic) }
63
63
  def to_lsp_diagnostic
64
+ if @offense.correctable?
65
+ severity = RUBOCOP_TO_LSP_SEVERITY[@offense.severity.name]
66
+ message = @offense.message
67
+ else
68
+ severity = LanguageServer::Protocol::Constant::DiagnosticSeverity::WARNING
69
+ message = "#{@offense.message}\n\nThis offense is not auto-correctable.\n"
70
+ end
64
71
  LanguageServer::Protocol::Interface::Diagnostic.new(
65
- message: @offense.message,
72
+ message: message,
66
73
  source: "RuboCop",
67
74
  code: @offense.cop_name,
68
- severity: RUBOCOP_TO_LSP_SEVERITY[@offense.severity.name],
75
+ severity: severity,
69
76
  range: LanguageServer::Protocol::Interface::Range.new(
70
77
  start: LanguageServer::Protocol::Interface::Position.new(
71
78
  line: @offense.line - 1,
@@ -5,6 +5,7 @@ module RubyLsp
5
5
  # Supported features
6
6
  #
7
7
  # - {RubyLsp::Requests::DocumentSymbol}
8
+ # - {RubyLsp::Requests::DocumentLink}
8
9
  # - {RubyLsp::Requests::FoldingRanges}
9
10
  # - {RubyLsp::Requests::SelectionRanges}
10
11
  # - {RubyLsp::Requests::SemanticHighlighting}
@@ -15,6 +16,7 @@ module RubyLsp
15
16
  module Requests
16
17
  autoload :BaseRequest, "ruby_lsp/requests/base_request"
17
18
  autoload :DocumentSymbol, "ruby_lsp/requests/document_symbol"
19
+ autoload :DocumentLink, "ruby_lsp/requests/document_link"
18
20
  autoload :FoldingRanges, "ruby_lsp/requests/folding_ranges"
19
21
  autoload :SelectionRanges, "ruby_lsp/requests/selection_ranges"
20
22
  autoload :SemanticHighlighting, "ruby_lsp/requests/semantic_highlighting"
@@ -19,6 +19,10 @@ module RubyLsp
19
19
  )
20
20
  end
21
21
 
22
+ document_link_provider = if enabled_features.include?("documentLink")
23
+ Interface::DocumentLinkOptions.new(resolve_provider: false)
24
+ end
25
+
22
26
  folding_ranges_provider = if enabled_features.include?("foldingRanges")
23
27
  Interface::FoldingRangeClientCapabilities.new(line_folding_only: true)
24
28
  end
@@ -37,20 +41,30 @@ module RubyLsp
37
41
  )
38
42
  end
39
43
 
44
+ diagnostics_provider = if enabled_features.include?("diagnostics")
45
+ {
46
+ interFileDependencies: false,
47
+ workspaceDiagnostics: false,
48
+ }
49
+ end
50
+
51
+ # TODO: switch back to using Interface::ServerCapabilities once the gem is updated for spec 3.17
40
52
  Interface::InitializeResult.new(
41
- capabilities: Interface::ServerCapabilities.new(
42
- text_document_sync: Interface::TextDocumentSyncOptions.new(
53
+ capabilities: {
54
+ textDocumentSync: Interface::TextDocumentSyncOptions.new(
43
55
  change: Constant::TextDocumentSyncKind::INCREMENTAL,
44
56
  open_close: true,
45
57
  ),
46
- selection_range_provider: enabled_features.include?("selectionRanges"),
47
- document_symbol_provider: document_symbol_provider,
48
- folding_range_provider: folding_ranges_provider,
49
- semantic_tokens_provider: semantic_tokens_provider,
50
- document_formatting_provider: enabled_features.include?("formatting"),
51
- document_highlight_provider: enabled_features.include?("documentHighlights"),
52
- code_action_provider: enabled_features.include?("codeActions")
53
- )
58
+ selectionRangeProvider: enabled_features.include?("selectionRanges"),
59
+ documentSymbolProvider: document_symbol_provider,
60
+ documentLinkProvider: document_link_provider,
61
+ foldingRangeProvider: folding_ranges_provider,
62
+ semanticTokensProvider: semantic_tokens_provider,
63
+ documentFormattingProvider: enabled_features.include?("formatting"),
64
+ documentHighlightProvider: enabled_features.include?("documentHighlights"),
65
+ codeActionProvider: enabled_features.include?("codeActions"),
66
+ diagnosticProvider: diagnostics_provider,
67
+ }.reject { |_, v| !v }
54
68
  )
55
69
  end
56
70
 
@@ -58,7 +72,6 @@ module RubyLsp
58
72
  uri = request.dig(:params, :textDocument, :uri)
59
73
  store.push_edits(uri, request.dig(:params, :contentChanges))
60
74
 
61
- send_diagnostics(uri)
62
75
  Handler::VOID
63
76
  end
64
77
 
@@ -67,7 +80,6 @@ module RubyLsp
67
80
  text = request.dig(:params, :textDocument, :text)
68
81
  store.set(uri, text)
69
82
 
70
- send_diagnostics(uri)
71
83
  Handler::VOID
72
84
  end
73
85
 
@@ -85,6 +97,12 @@ module RubyLsp
85
97
  end
86
98
  end
87
99
 
100
+ on("textDocument/documentLink") do |request|
101
+ store.cache_fetch(request.dig(:params, :textDocument, :uri), :document_link) do |document|
102
+ RubyLsp::Requests::DocumentLink.new(document).run
103
+ end
104
+ end
105
+
88
106
  on("textDocument/foldingRange") do |request|
89
107
  store.cache_fetch(request.dig(:params, :textDocument, :uri), :folding_ranges) do |document|
90
108
  Requests::FoldingRanges.new(document).run
@@ -99,15 +117,16 @@ module RubyLsp
99
117
  Requests::SelectionRanges.new(document).run
100
118
  end
101
119
 
102
- return if ranges.nil?
103
-
104
120
  # Per the selection range request spec (https://microsoft.github.io/language-server-protocol/specification#textDocument_selectionRange),
105
121
  # every position in the positions array should have an element at the same index in the response
106
122
  # array. For positions without a valid selection range, the corresponding element in the response
107
123
  # array will be nil.
108
- positions.map do |position|
109
- ranges.find do |range|
110
- range.cover?(position)
124
+
125
+ unless ranges.nil?
126
+ positions.map do |position|
127
+ ranges.find do |range|
128
+ range.cover?(position)
129
+ end
111
130
  end
112
131
  end
113
132
  end
@@ -132,9 +151,10 @@ module RubyLsp
132
151
 
133
152
  on("textDocument/documentHighlight") do |request|
134
153
  document = store.get(request.dig(:params, :textDocument, :uri))
135
- return unless document.parsed?
136
154
 
137
- Requests::DocumentHighlight.new(document, request.dig(:params, :position)).run
155
+ if document.parsed?
156
+ Requests::DocumentHighlight.new(document, request.dig(:params, :position)).run
157
+ end
138
158
  end
139
159
 
140
160
  on("textDocument/codeAction") do |request|
@@ -148,6 +168,18 @@ module RubyLsp
148
168
  end
149
169
  end
150
170
 
171
+ on("textDocument/diagnostic") do |request|
172
+ uri = request.dig(:params, :textDocument, :uri)
173
+ response = store.cache_fetch(uri, :diagnostics) do |document|
174
+ Requests::Diagnostics.new(uri, document).run
175
+ end
176
+
177
+ { kind: "full", items: response.map(&:to_lsp_diagnostic) } if response
178
+ rescue RuboCop::ValidationError => e
179
+ show_message(Constant::MessageType::ERROR, "Error in RuboCop configuration file: #{e.message}")
180
+ nil
181
+ end
182
+
151
183
  on("shutdown") { shutdown }
152
184
 
153
185
  on("exit") do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lsp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-27 00:00:00.000000000 Z
11
+ date: 2022-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: language_server-protocol
@@ -60,29 +60,10 @@ executables:
60
60
  extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
- - ".github/dependabot.yml"
64
- - ".github/probots.yml"
65
- - ".github/pull_request_template.md"
66
- - ".github/workflows/ci.yml"
67
- - ".github/workflows/publish_docs.yml"
68
- - ".gitignore"
69
- - ".rubocop.yml"
70
- - ".vscode/extensions.json"
71
- - ".vscode/settings.json"
72
- - ".vscode/tasks.json"
73
63
  - CHANGELOG.md
74
- - CODE_OF_CONDUCT.md
75
- - Gemfile
76
- - Gemfile.lock
77
64
  - LICENSE.txt
78
65
  - README.md
79
- - Rakefile
80
66
  - VERSION
81
- - bin/console
82
- - bin/rubocop
83
- - bin/tapioca
84
- - bin/test
85
- - dev.yml
86
67
  - exe/ruby-lsp
87
68
  - lib/ruby-lsp.rb
88
69
  - lib/ruby_lsp/document.rb
@@ -93,6 +74,7 @@ files:
93
74
  - lib/ruby_lsp/requests/code_actions.rb
94
75
  - lib/ruby_lsp/requests/diagnostics.rb
95
76
  - lib/ruby_lsp/requests/document_highlight.rb
77
+ - lib/ruby_lsp/requests/document_link.rb
96
78
  - lib/ruby_lsp/requests/document_symbol.rb
97
79
  - lib/ruby_lsp/requests/folding_ranges.rb
98
80
  - lib/ruby_lsp/requests/formatting.rb
@@ -107,54 +89,6 @@ files:
107
89
  - lib/ruby_lsp/requests/support/syntax_error_diagnostic.rb
108
90
  - lib/ruby_lsp/server.rb
109
91
  - lib/ruby_lsp/store.rb
110
- - rakelib/check_docs.rake
111
- - ruby-lsp.gemspec
112
- - service.yml
113
- - sorbet/config
114
- - sorbet/rbi/.rubocop.yml
115
- - sorbet/rbi/gems/ansi@1.5.0.rbi
116
- - sorbet/rbi/gems/ast@2.4.2.rbi
117
- - sorbet/rbi/gems/builder@3.2.4.rbi
118
- - sorbet/rbi/gems/coderay@1.1.3.rbi
119
- - sorbet/rbi/gems/debug@1.5.0.rbi
120
- - sorbet/rbi/gems/diff-lcs@1.5.0.rbi
121
- - sorbet/rbi/gems/io-console@0.5.11.rbi
122
- - sorbet/rbi/gems/irb@1.4.1.rbi
123
- - sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi
124
- - sorbet/rbi/gems/method_source@1.0.0.rbi
125
- - sorbet/rbi/gems/minitest-reporters@1.5.0.rbi
126
- - sorbet/rbi/gems/minitest@5.15.0.rbi
127
- - sorbet/rbi/gems/parallel@1.22.1.rbi
128
- - sorbet/rbi/gems/parser@3.1.2.0.rbi
129
- - sorbet/rbi/gems/prettier_print@0.1.0.rbi
130
- - sorbet/rbi/gems/pry@0.14.1.rbi
131
- - sorbet/rbi/gems/rainbow@3.1.1.rbi
132
- - sorbet/rbi/gems/rake@13.0.6.rbi
133
- - sorbet/rbi/gems/rbi@0.0.14.rbi
134
- - sorbet/rbi/gems/regexp_parser@2.5.0.rbi
135
- - sorbet/rbi/gems/reline@0.3.1.rbi
136
- - sorbet/rbi/gems/rexml@3.2.5.rbi
137
- - sorbet/rbi/gems/rubocop-ast@1.18.0.rbi
138
- - sorbet/rbi/gems/rubocop-minitest@0.20.0.rbi
139
- - sorbet/rbi/gems/rubocop-rake@0.6.0.rbi
140
- - sorbet/rbi/gems/rubocop-shopify@2.6.0.rbi
141
- - sorbet/rbi/gems/rubocop-sorbet@0.6.8.rbi
142
- - sorbet/rbi/gems/rubocop@1.30.0.rbi
143
- - sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi
144
- - sorbet/rbi/gems/spoom@1.1.11.rbi
145
- - sorbet/rbi/gems/syntax_tree@2.7.1.rbi
146
- - sorbet/rbi/gems/tapioca@0.8.1.rbi
147
- - sorbet/rbi/gems/thor@1.2.1.rbi
148
- - sorbet/rbi/gems/unicode-display_width@2.1.0.rbi
149
- - sorbet/rbi/gems/unparser@0.6.5.rbi
150
- - sorbet/rbi/gems/webrick@1.7.0.rbi
151
- - sorbet/rbi/gems/yard-sorbet@0.6.1.rbi
152
- - sorbet/rbi/gems/yard@0.9.27.rbi
153
- - sorbet/rbi/shims/fiddle.rbi
154
- - sorbet/rbi/shims/hash.rbi
155
- - sorbet/rbi/shims/rdoc.rbi
156
- - sorbet/tapioca/config.yml
157
- - sorbet/tapioca/require.rb
158
92
  homepage: https://github.com/Shopify/ruby-lsp
159
93
  licenses:
160
94
  - MIT
@@ -1,11 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: "bundler"
4
- directory: "/"
5
- schedule:
6
- interval: "weekly"
7
- reviewers:
8
- - "Shopify/sorbet"
9
- labels:
10
- - "dependencies"
11
- - "ruby"
data/.github/probots.yml DELETED
@@ -1,2 +0,0 @@
1
- enabled:
2
- - cla
@@ -1,15 +0,0 @@
1
- ### Motivation
2
-
3
- <!-- Explain why you are making this change. Include links to issues or describe the problem being solved, not the solution. -->
4
-
5
- ### Implementation
6
-
7
- <!-- How did you implement your changes? Explain your solution, design decisions, things reviewers should watch out for. -->
8
-
9
- ### Automated Tests
10
-
11
- <!-- We hope you added unit tests as part of your changes, just state that you have. If you haven't, state why. -->
12
-
13
- ### Manual Tests
14
-
15
- <!-- Explain how we can test these changes in our own instance of VS Code. Provide the step by step instructions. -->
@@ -1,31 +0,0 @@
1
- name: CI
2
-
3
- on: [push, pull_request]
4
-
5
- jobs:
6
- build:
7
- runs-on: ubuntu-latest
8
- strategy:
9
- fail-fast: false
10
- matrix:
11
- ruby: [ "2.7", "3.0", "3.1" ]
12
- name: Ruby ${{ matrix.ruby }}
13
- steps:
14
- - uses: actions/checkout@v2
15
- - name: Set up Ruby
16
- uses: ruby/setup-ruby@v1
17
- with:
18
- ruby-version: ${{ matrix.ruby }}
19
- bundler-cache: true
20
-
21
- - name: Check if documentation is up to date
22
- run: bundle exec rake check_docs
23
-
24
- - name: Typecheck
25
- run: bundle exec srb tc
26
-
27
- - name: Lint Ruby files
28
- run: bin/rubocop
29
-
30
- - name: Run tests
31
- run: bin/test
@@ -1,32 +0,0 @@
1
- name: Publish docs
2
-
3
- on:
4
- push:
5
- branches: [main]
6
-
7
- jobs:
8
- build:
9
- runs-on: ubuntu-latest
10
- name: Publish documentation website
11
- steps:
12
- - uses: actions/checkout@v3
13
-
14
- - name: Set up Ruby
15
- uses: ruby/setup-ruby@v1
16
- with:
17
- ruby-version: 3.1.1
18
- bundler-cache: true
19
-
20
- - name: Configure git
21
- run: |
22
- git config user.name github-actions
23
- git config user.email github-actions@github.com
24
-
25
- - name: Generate documentation
26
- run: bundle exec rake yard
27
-
28
- - name: Commit to gh-pages
29
- run: |
30
- git add docs
31
- git commit -m "Publish website $(git log --format=format:%h -1)"
32
- git push --force origin main:gh-pages
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- /**/.bundle/
2
- /**/.yardoc
3
- /**/_yardoc/
4
- /**/coverage/
5
- /**/doc/
6
- /**/pkg/
7
- /**/spec/reports/
8
- /**/tmp/
9
- /**/.dev/
data/.rubocop.yml DELETED
@@ -1,40 +0,0 @@
1
- inherit_gem:
2
- rubocop-shopify: rubocop.yml
3
-
4
- require:
5
- - rubocop-sorbet
6
- - rubocop-minitest
7
- - rubocop-rake
8
-
9
- AllCops:
10
- NewCops: disable
11
- SuggestExtensions: false
12
- TargetRubyVersion: 2.7
13
- Exclude:
14
- - "vendor/**/*"
15
- - "features/**/*"
16
- - "test/fixtures/**/*"
17
-
18
- Naming/FileName:
19
- Exclude:
20
- - "lib/ruby-lsp.rb"
21
-
22
- Sorbet/FalseSigil:
23
- Enabled: false
24
-
25
- Sorbet/TrueSigil:
26
- Enabled: true
27
- Include:
28
- - "test/**/*.rb"
29
- Exclude:
30
- - "**/*.rake"
31
- - "lib/**/*.rb"
32
-
33
- Sorbet/StrictSigil:
34
- Enabled: true
35
- Include:
36
- - "lib/**/*.rb"
37
- Exclude:
38
- - "**/*.rake"
39
- - "test/**/*.rb"
40
- - "lib/ruby-lsp.rb"
@@ -1,5 +0,0 @@
1
- {
2
- "recommendations": [
3
- "rebornix.ruby"
4
- ]
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- // Set this value to `verbose` to see the full JSON content of LSP requests and responses
3
- "ruby lsp.trace.server": "messages",
4
- "editor.defaultFormatter": "Shopify.ruby-lsp",
5
- }
data/.vscode/tasks.json DELETED
@@ -1,25 +0,0 @@
1
- // See https://go.microsoft.com/fwlink/?LinkId=733558
2
- // for the documentation about the tasks.json format
3
- {
4
- "version": "2.0.0",
5
- "tasks": [
6
- {
7
- "type": "rake",
8
- "task": "test",
9
- "group": {
10
- "kind": "test",
11
- "isDefault": true
12
- },
13
- "problemMatcher": [],
14
- "label": "rake: test",
15
- "presentation": {
16
- "echo": true,
17
- "reveal": "always",
18
- "focus": true,
19
- "panel": "shared",
20
- "showReuseMessage": true,
21
- "clear": false
22
- }
23
- }
24
- ]
25
- }