From 8291fcb2f798c35a1debee1a9f682385f0354e4c Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 19 Jul 2022 12:22:32 -0400 Subject: [PATCH 1/2] Pass `--print-width` to LSP --- lib/syntax_tree/cli.rb | 4 ++-- lib/syntax_tree/language_server.rb | 11 ++++++++--- test/language_server_test.rb | 28 ++++++++++++++++++++++++++-- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/lib/syntax_tree/cli.rb b/lib/syntax_tree/cli.rb index 2484a5b7..cad4fc35 100644 --- a/lib/syntax_tree/cli.rb +++ b/lib/syntax_tree/cli.rb @@ -246,7 +246,7 @@ def run(item) #{Color.bold("stree help")} Display this help message - #{Color.bold("stree lsp [--plugins=...]")} + #{Color.bold("stree lsp [--plugins=...] [--print-width=NUMBER]")} Run syntax tree in language server mode #{Color.bold("stree version")} @@ -300,7 +300,7 @@ def run(argv) return 0 when "lsp" require "syntax_tree/language_server" - LanguageServer.new.run + LanguageServer.new(print_width: print_width).run return 0 when "version" puts SyntaxTree::VERSION diff --git a/lib/syntax_tree/language_server.rb b/lib/syntax_tree/language_server.rb index 2eb8228b..41b80af1 100644 --- a/lib/syntax_tree/language_server.rb +++ b/lib/syntax_tree/language_server.rb @@ -13,11 +13,16 @@ module SyntaxTree # stree lsp # class LanguageServer - attr_reader :input, :output + attr_reader :input, :output, :print_width - def initialize(input: $stdin, output: $stdout) + def initialize( + input: $stdin, + output: $stdout, + print_width: DEFAULT_PRINT_WIDTH + ) @input = input.binmode @output = output.binmode + @print_width = print_width end # rubocop:disable Layout/LineLength @@ -93,7 +98,7 @@ def format(source) character: 0 } }, - newText: SyntaxTree.format(source) + newText: SyntaxTree.format(source, print_width) } end diff --git a/test/language_server_test.rb b/test/language_server_test.rb index fc26054d..31062e87 100644 --- a/test/language_server_test.rb +++ b/test/language_server_test.rb @@ -120,6 +120,26 @@ def test_formatting end end + def test_formatting_print_width + contents = "#{"a" * 40} + #{"b" * 40}\n" + messages = [ + Initialize.new(1), + TextDocumentDidOpen.new("file:///path/to/file.rb", contents), + TextDocumentFormatting.new(2, "file:///path/to/file.rb"), + TextDocumentDidClose.new("file:///path/to/file.rb"), + Shutdown.new(3) + ] + + case run_server(messages, print_width: 100) + in [ + { id: 1, result: { capabilities: Hash } }, + { id: 2, result: [{ newText: new_text }] }, + { id: 3, result: {} } + ] + assert_equal(contents, new_text) + end + end + def test_inlay_hint messages = [ Initialize.new(1), @@ -234,11 +254,15 @@ def read(content) end end - def run_server(messages) + def run_server(messages, print_width: DEFAULT_PRINT_WIDTH) input = StringIO.new(messages.map { |message| write(message) }.join) output = StringIO.new - LanguageServer.new(input: input, output: output).run + LanguageServer.new( + input: input, + output: output, + print_width: print_width + ).run read(output.tap(&:rewind)) end end From ef53c06c0fae82244cc6a79174a55845de6d651a Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 19 Jul 2022 12:42:12 -0400 Subject: [PATCH 2/2] Bump to v3.2.0 --- CHANGELOG.md | 9 ++++++++- Gemfile.lock | 2 +- lib/syntax_tree/version.rb | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5376027a..b219009b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [3.2.0] - 2022-07-19 + +### Added + +- [#116](https://github.com/ruby-syntax-tree/syntax_tree/pull/116) - Pass the `--print-width` option in the CLI to the language server. + ## [3.1.0] - 2022-07-19 ### Added @@ -300,7 +306,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a - 🎉 Initial release! 🎉 -[unreleased]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.1.0...HEAD +[unreleased]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.2.0...HEAD +[3.2.0]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.1.0...v3.2.0 [3.1.0]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.0.1...v3.1.0 [3.0.1]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v3.0.0...v3.0.1 [3.0.0]: https://github.com/ruby-syntax-tree/syntax_tree/compare/v2.9.0...v3.0.0 diff --git a/Gemfile.lock b/Gemfile.lock index 00b88281..ab79db80 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - syntax_tree (3.1.0) + syntax_tree (3.2.0) prettier_print GEM diff --git a/lib/syntax_tree/version.rb b/lib/syntax_tree/version.rb index d4c0d91d..92f18514 100644 --- a/lib/syntax_tree/version.rb +++ b/lib/syntax_tree/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module SyntaxTree - VERSION = "3.1.0" + VERSION = "3.2.0" end