ruby-lsp-rubyfmt-formatter 0.1.1 → 0.1.2

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: d73a95026bc35112cbdbfef7e9cf5a61accde1ea23e1a10c7c7e97909ad3ec75
4
- data.tar.gz: 36bb27b226c3fc6818d538089a2b12877f8072315665a9da08a8f5429d927b8b
3
+ metadata.gz: e580a05f58e3543801587b5098c5389df062b05e516180e48ea97751427533f8
4
+ data.tar.gz: 71f7ea4463e475f05eefa8ad3d85c1a3d0d175d80beed5e766a593b4ca71201e
5
5
  SHA512:
6
- metadata.gz: f4437e36e3c9144c00d3df92eab17502db8a8444cb8a0225dfd55c01434b852e03470c1bc1e6c9a38e073a6552dc83bda279b386bd351168e62296bafd0b5acc
7
- data.tar.gz: 0f769325963ea1f826e4744f378ff45349bfcb728267fa4b710e9e53f34f1ebda0034a6e3182245c35b4e8f8be631116ee44f8b7d03cf997be15159a0c9ea4ed
6
+ metadata.gz: 031142cf02cfed40ccdf601e7c08fd71f7583821c93bef22fdbaeebbe4f4b94716b7273511e1f1eff6671bf61837b7d65feebf8114f1e1dcb2b035dcb7d1d6a1
7
+ data.tar.gz: f82456554a6232aced596eab50b4e07b00e3c11096e28fd16c89f1465053e39aafeaca81f803b2b333a36bb0841769f3fd286857b1ba3d841ab0adc670c70a82
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.2
4
+
5
+ - Pass `--stdin-path` on supported versions (>=0.13.0) of `rubyfmt`
6
+
3
7
  ## 0.1.1
4
8
 
5
9
  - Correctly read arguments from VSCode settings
data/Rakefile CHANGED
@@ -1,7 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "bundler/gem_tasks"
4
+ require "rubocop/rake_task"
3
5
  require "minitest/test_task"
4
6
 
5
7
  Minitest::TestTask.create
8
+ RuboCop::RakeTask.new
6
9
 
7
- task(default: %i[test])
10
+ task(default: %i[test rubocop])
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "ruby_lsp/internal"
4
4
  require "open3"
5
+ require "uri"
5
6
 
6
7
  module RubyLsp
7
8
  module RubyfmtFormatter
@@ -28,7 +29,7 @@ module RubyLsp
28
29
 
29
30
  def run_formatting(uri, document)
30
31
  source = document.source
31
- command = build_command
32
+ command = build_command(uri)
32
33
 
33
34
  stdout, stderr, status = Open3.capture3(*command, stdin_data: source)
34
35
 
@@ -47,10 +48,15 @@ module RubyLsp
47
48
  # rubyfmt doesn't emit diagnostics
48
49
  end
49
50
 
50
- private def build_command
51
+ private def build_command(uri)
51
52
  path = rubyfmt_executable
52
53
  args = additional_args
53
54
 
55
+ if uri && supports_stdin_filepath?
56
+ file_path = URI(uri.to_s).path
57
+ args += ["--stdin-filepath", file_path] if file_path
58
+ end
59
+
54
60
  [path] + args
55
61
  end
56
62
 
@@ -66,6 +72,23 @@ module RubyLsp
66
72
  args_string.split
67
73
  end
68
74
 
75
+ private def supports_stdin_filepath?
76
+ Gem::Version.new(rubyfmt_version) >= Gem::Version.new("0.13.0")
77
+ rescue ArgumentError
78
+ false
79
+ end
80
+
81
+ private def rubyfmt_version
82
+ @rubyfmt_version ||= begin
83
+ stdout, _stderr, status = Open3.capture3(rubyfmt_executable, "--version")
84
+ if status.success? && (match = stdout.match(/(\d+\.\d+\.\d+)/))
85
+ match[1]
86
+ else
87
+ "0.0.0"
88
+ end
89
+ end
90
+ end
91
+
69
92
  private def settings
70
93
  addon_settings = @global_state.settings_for_addon("rubyfmt")
71
94
  addon_settings&.transform_keys!(&:to_sym)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RubyLsp
4
4
  module RubyfmtFormatter
5
- VERSION = "0.1.1"
5
+ VERSION = "0.1.2"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-lsp-rubyfmt-formatter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reese Williams
@@ -42,6 +42,7 @@ licenses:
42
42
  metadata:
43
43
  homepage_uri: https://github.com/reese/ruby-lsp-rubyfmt-formatter
44
44
  source_code_uri: https://github.com/reese/ruby-lsp-rubyfmt-formatter
45
+ rubygems_mfa_required: 'true'
45
46
  rdoc_options: []
46
47
  require_paths:
47
48
  - lib
@@ -56,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
57
  - !ruby/object:Gem::Version
57
58
  version: '0'
58
59
  requirements: []
59
- rubygems_version: 4.0.3
60
+ rubygems_version: 4.0.6
60
61
  specification_version: 4
61
62
  summary: A Ruby LSP add-on for formatting with `rubyfmt`.
62
63
  test_files: []