ruby-lsp-rubyfmt-formatter 0.1.0 → 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: ed5cb1b1289eb0b163a41623c2747754ec8c8c26aeb98221290445be1bd5a767
4
- data.tar.gz: 68244f3c075f5286267cf0e7f525a0385227f0ae57ae15135a50f20202f9d15a
3
+ metadata.gz: e580a05f58e3543801587b5098c5389df062b05e516180e48ea97751427533f8
4
+ data.tar.gz: 71f7ea4463e475f05eefa8ad3d85c1a3d0d175d80beed5e766a593b4ca71201e
5
5
  SHA512:
6
- metadata.gz: a6d7d26044b7cf7f9430fabf3e727276d1d4ad1f8f97d2d3cc921db60f5e8b2da948b88aed97d0aa52bcdb514eb4dd1810af12ffeb246f8c2b19aa3059fb4657
7
- data.tar.gz: 3a5b50120bfe500ad94737055ec8ba86e6f7872eda1a5861ec400fe797a626662a257ddb6659d3a626c0a40ecbe1524bcd75a31d9f7dc9d9661eca3ba56efa4e
6
+ metadata.gz: 031142cf02cfed40ccdf601e7c08fd71f7583821c93bef22fdbaeebbe4f4b94716b7273511e1f1eff6671bf61837b7d65feebf8114f1e1dcb2b035dcb7d1d6a1
7
+ data.tar.gz: f82456554a6232aced596eab50b4e07b00e3c11096e28fd16c89f1465053e39aafeaca81f803b2b333a36bb0841769f3fd286857b1ba3d841ab0adc670c70a82
data/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # Changelog
2
+
3
+ ## 0.1.2
4
+
5
+ - Pass `--stdin-path` on supported versions (>=0.13.0) of `rubyfmt`
6
+
7
+ ## 0.1.1
8
+
9
+ - Correctly read arguments from VSCode settings
10
+
11
+ ## 0.1.0
12
+
13
+ Initial release! 🎉
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,27 +48,50 @@ 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
 
57
63
  private def rubyfmt_executable
58
64
  # Fall back to PATH if nothing is provided
59
- settings.fetch("rubyfmtPath", "rubyfmt")
65
+ settings.fetch(:rubyfmtPath, "rubyfmt")
60
66
  end
61
67
 
62
68
  private def additional_args
63
- args_string = settings.fetch("rubyfmtArgs", "")
69
+ args_string = settings.fetch(:rubyfmtArgs, "")
64
70
  return [] if args_string.empty?
65
71
 
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")
94
+ addon_settings&.transform_keys!(&:to_sym)
71
95
  addon_settings || {}
72
96
  end
73
97
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RubyLsp
4
4
  module RubyfmtFormatter
5
- VERSION = "0.1.0"
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.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reese Williams
@@ -30,6 +30,7 @@ extensions: []
30
30
  extra_rdoc_files: []
31
31
  files:
32
32
  - ".vscode/settings.json"
33
+ - CHANGELOG.md
33
34
  - LICENSE.txt
34
35
  - README.md
35
36
  - Rakefile
@@ -41,6 +42,7 @@ licenses:
41
42
  metadata:
42
43
  homepage_uri: https://github.com/reese/ruby-lsp-rubyfmt-formatter
43
44
  source_code_uri: https://github.com/reese/ruby-lsp-rubyfmt-formatter
45
+ rubygems_mfa_required: 'true'
44
46
  rdoc_options: []
45
47
  require_paths:
46
48
  - lib
@@ -55,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
57
  - !ruby/object:Gem::Version
56
58
  version: '0'
57
59
  requirements: []
58
- rubygems_version: 4.0.3
60
+ rubygems_version: 4.0.6
59
61
  specification_version: 4
60
62
  summary: A Ruby LSP add-on for formatting with `rubyfmt`.
61
63
  test_files: []