standard 1.18.0 → 1.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +11 -11
- data/.github/workflows/update.yml +38 -38
- data/CHANGELOG.md +10 -0
- data/Gemfile.lock +8 -6
- data/README.md +21 -1
- data/lib/standard/loads_yaml_config.rb +1 -1
- data/lib/standard/lsp/server.rb +144 -0
- data/lib/standard/lsp/standardizer.rb +53 -0
- data/lib/standard/merges_settings.rb +3 -1
- data/lib/standard/runners/help.rb +3 -2
- data/lib/standard/runners/lsp.rb +12 -0
- data/lib/standard/version.rb +1 -1
- data/standard.gemspec +4 -1
- metadata +26 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6db13f12aa4f1f0b9e7a2243b59de1902c323835a0a98bc80f261154ede30342
|
4
|
+
data.tar.gz: ff4117589900989c5e6d80b01845ce0572a3351fb0be0a2d5cc4801d744db971
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a02ed1dcdbc8ae45c450e886b5c1a7869ef5cb905e4f2f606b3a93022284031850ef6405022898dcc552c707e75759cf79cceaccf6da0846d14bd5a4cfb55ca0
|
7
|
+
data.tar.gz: e04163746057abfac81ef9dfdb219b21f6a95ecc02e903fe98fc2f7ed537a6319e75bb9b740ce930c4b57762b2ab65e80a930e5e2358fc56ab383538a0a272b8
|
data/.github/workflows/test.yml
CHANGED
@@ -2,9 +2,9 @@ name: Tests
|
|
2
2
|
|
3
3
|
on:
|
4
4
|
push:
|
5
|
-
branches: [
|
5
|
+
branches: [main]
|
6
6
|
pull_request:
|
7
|
-
branches: [
|
7
|
+
branches: [main]
|
8
8
|
workflow_run:
|
9
9
|
workflows: ["Update"]
|
10
10
|
types:
|
@@ -15,17 +15,17 @@ jobs:
|
|
15
15
|
|
16
16
|
strategy:
|
17
17
|
matrix:
|
18
|
-
os: [
|
18
|
+
os: [ubuntu-latest]
|
19
19
|
ruby-version: [2.6, 2.7, '3.0', 3.1]
|
20
20
|
|
21
21
|
runs-on: ${{ matrix.os }}
|
22
22
|
|
23
23
|
steps:
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
24
|
+
- uses: actions/checkout@v3
|
25
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
26
|
+
uses: ruby/setup-ruby@v1
|
27
|
+
with:
|
28
|
+
ruby-version: ${{ matrix.ruby-version }}
|
29
|
+
bundler-cache: true
|
30
|
+
- name: Run tests for Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
|
31
|
+
run: bundle config unset deployment && bundle exec rake
|
@@ -12,41 +12,41 @@ jobs:
|
|
12
12
|
runs-on: ubuntu-latest
|
13
13
|
|
14
14
|
steps:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
15
|
+
- uses: actions/checkout@v3
|
16
|
+
- name: Set up Ruby
|
17
|
+
uses: ruby/setup-ruby@v1
|
18
|
+
with:
|
19
|
+
ruby-version: 3.0.0
|
20
|
+
bundler-cache: true
|
21
|
+
- name: Unset bundler deployment
|
22
|
+
run: bundle config unset deployment
|
23
|
+
- name: Get Outdated
|
24
|
+
id: outdated
|
25
|
+
run: |
|
26
|
+
eval "$(bundle outdated rubocop rubocop-performance |
|
27
|
+
grep rubocop |
|
28
|
+
awk '{print "echo \"::set-output name="$1"_OLD::"$2"\"; echo \"::set-output name="$1"_NEW::"$3"\";"}' - )";
|
29
|
+
- name: Update Changelog
|
30
|
+
run: |
|
31
|
+
eval "$(bundle outdated rubocop rubocop-performance |
|
32
|
+
grep rubocop |
|
33
|
+
awk '{print "sed -i \"2i* Update "$1" from "$2" to ["$3"](https://github.com/rubocop/"$1"/releases/tag/v"$3")\" CHANGELOG.md"}' - )";
|
34
|
+
sed -i '2i\\n## Unreleased\n' CHANGELOG.md;
|
35
|
+
- name: Update Gemspec
|
36
|
+
run: |
|
37
|
+
eval "$(bundle outdated rubocop rubocop-performance |
|
38
|
+
grep rubocop |
|
39
|
+
awk '{print "sed -i /\"" $1 "\"/s/" $2 "/" $3 "/ standard.gemspec"}' - )"
|
40
|
+
- name: Update Gemfile
|
41
|
+
run: bundle update
|
42
|
+
- name: Get current date
|
43
|
+
id: date
|
44
|
+
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
|
45
|
+
- name: Create Pull Request
|
46
|
+
uses: peter-evans/create-pull-request@v3
|
47
|
+
with:
|
48
|
+
reviewers: camilopayan
|
49
|
+
commit-message: '[ ${{ steps.date.outputs.date }} ] - Update dependencies'
|
50
|
+
title: '[ ${{ steps.date.outputs.date }} ] - Update dependencies'
|
51
|
+
delete-branch: true
|
52
|
+
branch: update-deps-${{ steps.date.outputs.date }}
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.19.0
|
4
|
+
|
5
|
+
* Add a language server protocol (LSP) server via the new `standardrb --lsp`
|
6
|
+
command line mode. All credit to [@will](https://github.com/)!
|
7
|
+
[#475](https://github.com/testdouble/standard/pull/475)
|
8
|
+
|
9
|
+
## 1.18.1
|
10
|
+
|
11
|
+
* Update rubocop-performance from 1.15.0 to [1.15.1](https://github.com/rubocop/rubocop-performance/releases/tag/v1.15.1)
|
12
|
+
|
3
13
|
## 1.18.0
|
4
14
|
|
5
15
|
* Update rubocop from 1.38.0 to [1.39.0](https://github.com/rubocop/rubocop/releases/tag/v1.39.0)
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
standard (1.
|
4
|
+
standard (1.19.0)
|
5
|
+
language_server-protocol (= 3.17.0.1)
|
5
6
|
rubocop (= 1.39.0)
|
6
|
-
rubocop-performance (= 1.15.
|
7
|
+
rubocop-performance (= 1.15.1)
|
7
8
|
|
8
9
|
GEM
|
9
10
|
remote: https://rubygems.org/
|
@@ -13,17 +14,18 @@ GEM
|
|
13
14
|
docile (1.4.0)
|
14
15
|
gimme (0.5.0)
|
15
16
|
json (2.6.2)
|
17
|
+
language_server-protocol (3.17.0.1)
|
16
18
|
method_source (1.0.0)
|
17
19
|
minitest (5.16.3)
|
18
20
|
parallel (1.22.1)
|
19
|
-
parser (3.1.
|
21
|
+
parser (3.1.3.0)
|
20
22
|
ast (~> 2.4.1)
|
21
23
|
pry (0.14.1)
|
22
24
|
coderay (~> 1.1)
|
23
25
|
method_source (~> 1.0)
|
24
26
|
rainbow (3.1.1)
|
25
27
|
rake (13.0.6)
|
26
|
-
regexp_parser (2.6.
|
28
|
+
regexp_parser (2.6.1)
|
27
29
|
rexml (3.2.5)
|
28
30
|
rubocop (1.39.0)
|
29
31
|
json (~> 2.3)
|
@@ -35,9 +37,9 @@ GEM
|
|
35
37
|
rubocop-ast (>= 1.23.0, < 2.0)
|
36
38
|
ruby-progressbar (~> 1.7)
|
37
39
|
unicode-display_width (>= 1.4.0, < 3.0)
|
38
|
-
rubocop-ast (1.
|
40
|
+
rubocop-ast (1.24.0)
|
39
41
|
parser (>= 3.1.1.0)
|
40
|
-
rubocop-performance (1.15.
|
42
|
+
rubocop-performance (1.15.1)
|
41
43
|
rubocop (>= 1.7.0, < 2.0)
|
42
44
|
rubocop-ast (>= 0.4.0)
|
43
45
|
ruby-progressbar (1.11.0)
|
data/README.md
CHANGED
@@ -432,12 +432,32 @@ information.
|
|
432
432
|
## How do I run Standard in my editor?
|
433
433
|
|
434
434
|
It can be very handy to know about failures while editing to shorten the
|
435
|
-
feedback loop.
|
435
|
+
feedback loop.
|
436
|
+
|
437
|
+
### Language Server Protocol support
|
438
|
+
|
439
|
+
To provide immediate feedback of Standard violations and support autofixing
|
440
|
+
of your code while avoiding the performance cost of starting and stopping the
|
441
|
+
`standardrb` binary repeatedly, Standard Ruby ships with a built-in [Language
|
442
|
+
Server Protocol](https://microsoft.github.io/language-server-protocol/) server,
|
443
|
+
which is powered by the [language_server-protocol
|
444
|
+
gem](https://github.com/mtsmfm/language_server-protocol-ruby) and can be
|
445
|
+
activated from the command line with the `--lsp` flag.
|
446
|
+
|
447
|
+
Most likely, you'd instantiate this server indirectly in your editor's
|
448
|
+
configuration, as can be demonstrated easily with
|
449
|
+
[neovim](https://github.com/testdouble/standard/wiki/IDE:-neovim).
|
450
|
+
Theoretically, this feature could be leveraged by a purpose-built editor plugin
|
451
|
+
to performantly format and fix your code. (If you're looking for a project, we'd
|
452
|
+
love to see one created for VS Code!)
|
453
|
+
|
454
|
+
### Editor-specific guides
|
436
455
|
|
437
456
|
- [Atom](https://github.com/testdouble/standard/wiki/IDE:-Atom)
|
438
457
|
- [emacs (via flycheck)](https://github.com/julianrubisch/flycheck-standardrb)
|
439
458
|
- [RubyMine](https://www.jetbrains.com/help/ruby/rubocop.html#disable_rubocop)
|
440
459
|
- [vim (via ALE)](https://github.com/testdouble/standard/wiki/IDE:-vim)
|
460
|
+
- [neovim (via LSP)](https://github.com/testdouble/standard/wiki/IDE:-neovim)
|
441
461
|
- [VS Code](https://github.com/testdouble/standard/wiki/IDE:-vscode)
|
442
462
|
|
443
463
|
## Why aren't `frozen_string_literal: true` magic comments enforced?
|
@@ -32,7 +32,7 @@ module Standard
|
|
32
32
|
default_ignores: standard_yaml.key?("default_ignores") ? !!standard_yaml["default_ignores"] : true,
|
33
33
|
config_root: yaml_path ? Pathname.new(yaml_path).dirname.to_s : nil,
|
34
34
|
todo_file: todo_path,
|
35
|
-
todo_ignore_files: (todo_yaml["ignore"] || []).map { |f| Hash === f ? f.keys.first : f }
|
35
|
+
todo_ignore_files: (todo_yaml["ignore"] || []).map { |f| (Hash === f) ? f.keys.first : f }
|
36
36
|
}
|
37
37
|
end
|
38
38
|
|
@@ -0,0 +1,144 @@
|
|
1
|
+
require "language_server-protocol"
|
2
|
+
require_relative "standardizer"
|
3
|
+
|
4
|
+
module Standard
|
5
|
+
module LSP
|
6
|
+
class Server
|
7
|
+
Proto = LanguageServer::Protocol
|
8
|
+
SEV = Proto::Constant::DiagnosticSeverity
|
9
|
+
|
10
|
+
def self.start(standardizer)
|
11
|
+
new(standardizer).start
|
12
|
+
end
|
13
|
+
|
14
|
+
attr_accessor :standardizer, :writer, :reader, :logger, :text_cache, :subscribers
|
15
|
+
|
16
|
+
def initialize(standardizer)
|
17
|
+
self.standardizer = standardizer
|
18
|
+
self.writer = Proto::Transport::Io::Writer.new($stdout)
|
19
|
+
self.reader = Proto::Transport::Io::Reader.new($stdin)
|
20
|
+
self.logger = $stderr
|
21
|
+
self.text_cache = {}
|
22
|
+
|
23
|
+
self.subscribers = {
|
24
|
+
"initialize" => ->(request) {
|
25
|
+
init_result = Proto::Interface::InitializeResult.new(
|
26
|
+
capabilities: Proto::Interface::ServerCapabilities.new(
|
27
|
+
document_formatting_provider: true,
|
28
|
+
diagnostic_provider: true,
|
29
|
+
text_document_sync: Proto::Constant::TextDocumentSyncKind::FULL
|
30
|
+
)
|
31
|
+
)
|
32
|
+
writer.write(id: request[:id], result: init_result)
|
33
|
+
},
|
34
|
+
|
35
|
+
"initialized" => ->(request) { logger.puts "standard v#{Standard::VERSION} initialized, pid #{Process.pid}" },
|
36
|
+
|
37
|
+
"shutdown" => ->(request) {
|
38
|
+
logger.puts "asked to shutdown, exiting..."
|
39
|
+
exit
|
40
|
+
},
|
41
|
+
|
42
|
+
"textDocument/didChange" => ->(request) {
|
43
|
+
params = request[:params]
|
44
|
+
result = diagnostic(params[:textDocument][:uri], params[:contentChanges][0][:text])
|
45
|
+
writer.write(result)
|
46
|
+
},
|
47
|
+
|
48
|
+
"textDocument/didOpen" => ->(request) {
|
49
|
+
td = request[:params][:textDocument]
|
50
|
+
result = diagnostic(td[:uri], td[:text])
|
51
|
+
writer.write(result)
|
52
|
+
},
|
53
|
+
|
54
|
+
"textDocument/didClose" => ->(request) {
|
55
|
+
text_cache.delete(request.dig(:params, :textDocument, :uri))
|
56
|
+
},
|
57
|
+
|
58
|
+
"textDocument/formatting" => ->(request) {
|
59
|
+
uri = request[:params][:textDocument][:uri]
|
60
|
+
writer.write({id: request[:id], result: format_file(uri)})
|
61
|
+
},
|
62
|
+
|
63
|
+
"textDocument/didSave" => ->(request) {}
|
64
|
+
}
|
65
|
+
end
|
66
|
+
|
67
|
+
def start
|
68
|
+
reader.read do |request|
|
69
|
+
method = request[:method]
|
70
|
+
if (subscriber = subscribers[method])
|
71
|
+
subscriber.call(request)
|
72
|
+
else
|
73
|
+
logger.puts "unknown method: #{method}"
|
74
|
+
end
|
75
|
+
rescue => e
|
76
|
+
logger.puts "error #{e.class} #{e.message[0..100]}"
|
77
|
+
logger.puts e.backtrace.inspect
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
def format_file(file_uri)
|
82
|
+
text = text_cache[file_uri]
|
83
|
+
new_text = standardizer.format(text)
|
84
|
+
|
85
|
+
if new_text == text
|
86
|
+
[]
|
87
|
+
else
|
88
|
+
[{
|
89
|
+
newText: new_text,
|
90
|
+
range: {
|
91
|
+
start: {line: 0, character: 0},
|
92
|
+
end: {line: text.count("\n") + 1, character: 0}
|
93
|
+
}
|
94
|
+
}]
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def diagnostic(file_uri, text)
|
99
|
+
text_cache[file_uri] = text
|
100
|
+
offenses = standardizer.offenses(text)
|
101
|
+
|
102
|
+
lsp_diagnostics = offenses.map { |o|
|
103
|
+
code = o[:cop_name]
|
104
|
+
|
105
|
+
msg = o[:message].delete_prefix(code)
|
106
|
+
loc = o[:location]
|
107
|
+
|
108
|
+
severity = case o[:severity]
|
109
|
+
when "error", "fatal"
|
110
|
+
SEV::ERROR
|
111
|
+
when "warning"
|
112
|
+
SEV::WARNING
|
113
|
+
when "convention"
|
114
|
+
SEV::INFORMATION
|
115
|
+
when "refactor", "info"
|
116
|
+
SEV::HINT
|
117
|
+
else # the above cases fully cover what RuboCop sends at this time
|
118
|
+
logger.puts "unknown severity: #{severity.inspect}"
|
119
|
+
SEV::HINT
|
120
|
+
end
|
121
|
+
|
122
|
+
{
|
123
|
+
code: code,
|
124
|
+
message: msg,
|
125
|
+
range: {
|
126
|
+
start: {character: loc[:start_column] - 1, line: loc[:start_line] - 1},
|
127
|
+
end: {character: loc[:last_column] - 1, line: loc[:last_line] - 1}
|
128
|
+
},
|
129
|
+
severity: severity,
|
130
|
+
source: "standard"
|
131
|
+
}
|
132
|
+
}
|
133
|
+
|
134
|
+
{
|
135
|
+
method: "textDocument/publishDiagnostics",
|
136
|
+
params: {
|
137
|
+
diagnostics: lsp_diagnostics,
|
138
|
+
uri: file_uri
|
139
|
+
}
|
140
|
+
}
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative "../runners/rubocop"
|
2
|
+
require "tempfile"
|
3
|
+
|
4
|
+
module Standard
|
5
|
+
module LSP
|
6
|
+
class Standardizer
|
7
|
+
def initialize(config)
|
8
|
+
@template_options = config
|
9
|
+
@runner = Standard::Runners::Rubocop.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def format(text)
|
13
|
+
run_standard(text, format: true)
|
14
|
+
end
|
15
|
+
|
16
|
+
def offenses(text)
|
17
|
+
results = run_standard(text, format: false)
|
18
|
+
JSON.parse(results, symbolize_names: true).dig(:files, 0, :offenses)
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
BASENAME = ["source", ".rb"].freeze
|
24
|
+
def run_standard(text, format:)
|
25
|
+
Tempfile.open(BASENAME) do |temp|
|
26
|
+
temp.write(text)
|
27
|
+
temp.flush
|
28
|
+
stdout = capture_rubocop_stdout(make_config(temp.path, format))
|
29
|
+
format ? File.read(temp.path) : stdout
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def make_config(file, format)
|
34
|
+
# Can't make frozen versions of this hash because RuboCop mutates it
|
35
|
+
o = if format
|
36
|
+
{autocorrect: true, formatters: [["Standard::Formatter", nil]], parallel: true, todo_file: nil, todo_ignore_files: [], safe_autocorrect: true}
|
37
|
+
else
|
38
|
+
{autocorrect: false, formatters: [["json"]], parallel: true, todo_file: nil, todo_ignore_files: [], format: "json"}
|
39
|
+
end
|
40
|
+
Standard::Config.new(@template_options.runner, [file], o, @template_options.rubocop_config_store)
|
41
|
+
end
|
42
|
+
|
43
|
+
def capture_rubocop_stdout(config)
|
44
|
+
redir = StringIO.new
|
45
|
+
$stdout = redir
|
46
|
+
@runner.call(config)
|
47
|
+
redir.string
|
48
|
+
ensure
|
49
|
+
$stdout = STDOUT
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -20,7 +20,7 @@ module Standard
|
|
20
20
|
|
21
21
|
def separate_argv(argv)
|
22
22
|
argv.partition do |flag|
|
23
|
-
["--generate-todo", "--fix", "--no-fix", "--version", "-v", "--help", "-h"].include?(flag)
|
23
|
+
["--generate-todo", "--fix", "--no-fix", "--version", "-v", "--help", "-h", "--lsp"].include?(flag)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -41,6 +41,8 @@ module Standard
|
|
41
41
|
:version
|
42
42
|
elsif (argv & ["--generate-todo"]).any?
|
43
43
|
:genignore
|
44
|
+
elsif (argv & ["--lsp"]).any?
|
45
|
+
:lsp
|
44
46
|
else
|
45
47
|
:rubocop
|
46
48
|
end
|
@@ -4,8 +4,8 @@ module Standard
|
|
4
4
|
module Runners
|
5
5
|
class Help
|
6
6
|
def call(config)
|
7
|
-
puts
|
8
|
-
Usage: standardrb [--fix] [-vh] [--format <name>] [--] [FILE]...
|
7
|
+
puts <<~MESSAGE
|
8
|
+
Usage: standardrb [--fix] [--lsp] [-vh] [--format <name>] [--] [FILE]...
|
9
9
|
|
10
10
|
Options:
|
11
11
|
|
@@ -13,6 +13,7 @@ module Standard
|
|
13
13
|
--no-fix Do not automatically fix failures
|
14
14
|
--format <name> Format output with any RuboCop formatter (e.g. "json")
|
15
15
|
--generate-todo Create a .standard_todo.yml that lists all the files that contain errors
|
16
|
+
--lsp Start a LSP server listening on STDIN
|
16
17
|
-v, --version Print the version of Standard
|
17
18
|
-h, --help Print this message
|
18
19
|
FILE Files to lint [default: ./]
|
data/lib/standard/version.rb
CHANGED
data/standard.gemspec
CHANGED
@@ -20,5 +20,8 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
22
|
spec.add_dependency "rubocop", "1.39.0"
|
23
|
-
spec.add_dependency "rubocop-performance", "1.15.
|
23
|
+
spec.add_dependency "rubocop-performance", "1.15.1"
|
24
|
+
|
25
|
+
# not semver: first three are lsp protocol version, last is patch
|
26
|
+
spec.add_dependency "language_server-protocol", "3.17.0.1"
|
24
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: standard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Searls
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -30,15 +30,29 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.15.
|
33
|
+
version: 1.15.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.15.
|
41
|
-
|
40
|
+
version: 1.15.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: language_server-protocol
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.17.0.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 3.17.0.1
|
55
|
+
description:
|
42
56
|
email:
|
43
57
|
- searls@gmail.com
|
44
58
|
executables:
|
@@ -87,6 +101,8 @@ files:
|
|
87
101
|
- lib/standard/formatter.rb
|
88
102
|
- lib/standard/loads_runner.rb
|
89
103
|
- lib/standard/loads_yaml_config.rb
|
104
|
+
- lib/standard/lsp/server.rb
|
105
|
+
- lib/standard/lsp/standardizer.rb
|
90
106
|
- lib/standard/merges_settings.rb
|
91
107
|
- lib/standard/parses_cli_option.rb
|
92
108
|
- lib/standard/railtie.rb
|
@@ -94,6 +110,7 @@ files:
|
|
94
110
|
- lib/standard/rubocop/ext.rb
|
95
111
|
- lib/standard/runners/genignore.rb
|
96
112
|
- lib/standard/runners/help.rb
|
113
|
+
- lib/standard/runners/lsp.rb
|
97
114
|
- lib/standard/runners/rubocop.rb
|
98
115
|
- lib/standard/runners/version.rb
|
99
116
|
- lib/standard/version.rb
|
@@ -101,7 +118,7 @@ files:
|
|
101
118
|
homepage: https://github.com/testdouble/standard
|
102
119
|
licenses: []
|
103
120
|
metadata: {}
|
104
|
-
post_install_message:
|
121
|
+
post_install_message:
|
105
122
|
rdoc_options: []
|
106
123
|
require_paths:
|
107
124
|
- lib
|
@@ -116,8 +133,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
133
|
- !ruby/object:Gem::Version
|
117
134
|
version: '0'
|
118
135
|
requirements: []
|
119
|
-
rubygems_version: 3.
|
120
|
-
signing_key:
|
136
|
+
rubygems_version: 3.3.7
|
137
|
+
signing_key:
|
121
138
|
specification_version: 4
|
122
139
|
summary: Ruby Style Guide, with linter & automatic code fixer
|
123
140
|
test_files: []
|