diff options
author | schneems <richard.schneeman+foo@gmail.com> | 2023-03-09 14:13:46 -0600 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-04-06 15:45:29 +0900 |
commit | 63ea6b0cf2b7fd27e22dc7b468fe65ee2c79b23a (patch) | |
tree | cd71a5059b23d68e5fcb808499390d21897210af | |
parent | 2acbcec056f54df9b4d98d4d15b1e9f612ac1432 (diff) | |
download | ruby-63ea6b0cf2b7fd27e22dc7b468fe65ee2c79b23a.tar.gz |
[ruby/syntax_suggest] Rollback comment indentation behavior
Originally I fixed https://github.com/ruby/syntax_suggest/pull/177 by making the process of comment removal indentation aware. The next commit is the more general fix and means we don't need to carry that additional logic/overhead.
Also: Update syntax via linter
-rw-r--r-- | lib/syntax_suggest/clean_document.rb | 7 | ||||
-rw-r--r-- | lib/syntax_suggest/code_line.rb | 6 | ||||
-rw-r--r-- | spec/syntax_suggest/unit/block_expand_spec.rb | 4 | ||||
-rw-r--r-- | spec/syntax_suggest/unit/clean_document_spec.rb | 3 |
4 files changed, 10 insertions, 10 deletions
diff --git a/lib/syntax_suggest/clean_document.rb b/lib/syntax_suggest/clean_document.rb index 08a465dfb0..2c26061bfc 100644 --- a/lib/syntax_suggest/clean_document.rb +++ b/lib/syntax_suggest/clean_document.rb @@ -155,10 +155,11 @@ module SyntaxSuggest # ).to eq(2) # def clean_sweep(source:) + # Match comments, but not HEREDOC strings with #{variable} interpolation + # https://rubular.com/r/HPwtW9OYxKUHXQ source.lines.map do |line| - if line.match?(/^\s*#([^{].*)?$/) # https://rubular.com/r/LLE10D8HKMkJvs - whitespace = /^(?<whitespace>\s*)#([^{].*)?$/.match(line).named_captures["whitespace"] || "" - whitespace + $/ + if line.match?(/^\s*#([^{].*|)$/) + $/ else line end diff --git a/lib/syntax_suggest/code_line.rb b/lib/syntax_suggest/code_line.rb index d771a2c0dd..a20f34afa4 100644 --- a/lib/syntax_suggest/code_line.rb +++ b/lib/syntax_suggest/code_line.rb @@ -48,10 +48,10 @@ module SyntaxSuggest strip_line = line.dup strip_line.lstrip! - if (@empty = strip_line.empty?) - @indent = line.length - 1 # Newline removed from strip_line is not "whitespace" + @indent = if (@empty = strip_line.empty?) + line.length - 1 # Newline removed from strip_line is not "whitespace" else - @indent = line.length - strip_line.length + line.length - strip_line.length end set_kw_end diff --git a/spec/syntax_suggest/unit/block_expand_spec.rb b/spec/syntax_suggest/unit/block_expand_spec.rb index 4f93210368..5cff73621d 100644 --- a/spec/syntax_suggest/unit/block_expand_spec.rb +++ b/spec/syntax_suggest/unit/block_expand_spec.rb @@ -28,9 +28,9 @@ module SyntaxSuggest block = expansion.expand_neighbors(block) expect(block.to_s).to eq(<<~EOM.indent(2)) - def bark # index 1 + def bark # index 1 - end # index 3 + end # index 3 EOM end diff --git a/spec/syntax_suggest/unit/clean_document_spec.rb b/spec/syntax_suggest/unit/clean_document_spec.rb index bb26e2f392..25a62e4454 100644 --- a/spec/syntax_suggest/unit/clean_document_spec.rb +++ b/spec/syntax_suggest/unit/clean_document_spec.rb @@ -72,7 +72,6 @@ module SyntaxSuggest EOM end - it "joins multi-line chained methods when separated by comments" do source = <<~EOM User. @@ -114,7 +113,7 @@ module SyntaxSuggest lines = CleanDocument.new(source: source).lines expect(lines[0].to_s).to eq($/) expect(lines[1].to_s).to eq('puts "what"' + $/) - expect(lines[2].to_s).to eq(' ' + $/) + expect(lines[2].to_s).to eq($/) end it "trailing slash: does not join trailing do" do |