Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
## HEAD (unreleased)

## 1.0.1

- Replace `❯` with `>` in error output for compatability with more fonts (https://github.com/ruby/syntax_suggest/pull/161)

## 1.0.0 (Library renamed to syntax_suggest )

- [Breaking] Output "Syntax OK" will no longer be output when `syntax_suggest` is fired due to a syntax error. (https://github.com/ruby/syntax_suggest/pull/158)
Expand Down
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
syntax_suggest (1.0.0)
syntax_suggest (1.0.1)

GEM
remote: https://rubygems.org/
Expand Down
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ An error in your code forces you to stop. SyntaxSuggest helps you find those err
Unmatched `end', missing keyword (`do', `def`, `if`, etc.) ?

1 class Dog
2 defbark
4 end
> 2 defbark
> 4 end
5 end
```

Expand Down Expand Up @@ -72,9 +72,9 @@ end
```
Unmatched keyword, missing `end' ?

1 class Dog
2 def bark
4 end
> 1 class Dog
> 2 def bark
> 4 end
```

- Missing keyword
Expand All @@ -95,8 +95,8 @@ Unmatched `end', missing keyword (`do', `def`, `if`, etc.) ?

1 class Dog
2 def speak
3 @sounds.each |sound|
5 end
> 3 @sounds.each |sound|
> 5 end
6 end
7 end
```
Expand All @@ -117,8 +117,8 @@ end
Unmatched `(', missing `)' ?

1 class Dog
2 def speak(sound
4 end
> 2 def speak(sound
> 4 end
5 end
```

Expand All @@ -137,7 +137,7 @@ syntax error, unexpected end-of-input

1 class Dog
2 def meals_last_month
3 puts 3 *
> 3 puts 3 *
4 end
5 end
```
Expand Down
4 changes: 2 additions & 2 deletions lib/syntax_suggest/capture_code_context.rb
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ def capture_before_after_kws(block)
# However due to https://github.com/ruby/syntax_suggest/issues/32
# the problem line will be identified as:
#
# class Dog # 1
# > class Dog # 1
#
# Because lines 2, 3, and 4 are technically valid code and are expanded
# first, deemed valid, and hidden. We need to un-hide the matching end
Expand Down Expand Up @@ -200,7 +200,7 @@ def capture_last_end_same_indent(block)
#
# the problem line will be identified as:
#
# end # 4
# > end # 4
#
# This happens because lines 1, 2, and 3 are technically valid code and are expanded
# first, deemed valid, and hidden. We need to un-hide the matching keyword on
Expand Down
4 changes: 2 additions & 2 deletions lib/syntax_suggest/cli.rb
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ def parser

# ...

10 defdog
15 end
> 10 defdog
> 15 end

ENV options:

Expand Down
6 changes: 3 additions & 3 deletions lib/syntax_suggest/display_code_with_line_numbers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ module SyntaxSuggest
# # =>
# 1
# 2 def cat
# 3 Dir.chdir
# 4 end
# > 3 Dir.chdir
# > 4 end
# 5 end
# 6
class DisplayCodeWithLineNumbers
Expand Down Expand Up @@ -50,7 +50,7 @@ def call
private def format(contents:, number:, empty:, highlight: false)
string = +""
string << if highlight
" "
"> "
else
" "
end
Expand Down
2 changes: 1 addition & 1 deletion lib/syntax_suggest/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module SyntaxSuggest
VERSION = "1.0.0"
VERSION = "1.0.1"
end
4 changes: 2 additions & 2 deletions spec/integration/ruby_command_line_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ module SyntaxSuggest
out = `ruby -I#{lib_dir} -rsyntax_suggest #{require_rb} 2>&1`

expect($?.success?).to be_falsey
expect(out).to include(' 5 it "flerg"').once
expect(out).to include('> 5 it "flerg"').once
end
end

Expand Down Expand Up @@ -101,7 +101,7 @@ module SyntaxSuggest
out = `ruby -I#{lib_dir} -rsyntax_suggest #{script} 2>&1`

expect($?.success?).to be_falsey
expect(out).to include(' 5 it "flerg"').once
expect(out).to include('> 5 it "flerg"').once
end
end

Expand Down
54 changes: 27 additions & 27 deletions spec/integration/syntax_suggest_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ module SyntaxSuggest
6 class SyntaxTree < Ripper
170 def self.parse(source)
174 end
754 def on_args_add(arguments, argument)
776 class ArgsAddBlock
810 end
> 754 def on_args_add(arguments, argument)
> 776 class ArgsAddBlock
> 810 end
9233 end
EOM
end
Expand All @@ -54,10 +54,10 @@ module SyntaxSuggest

expect(io.string).to_not include("def ruby_install_binstub_path")
expect(io.string).to include(<<~'EOM')
1067 def add_yarn_binary
1068 return [] if yarn_preinstalled?
1069 |
1075 end
> 1067 def add_yarn_binary
> 1068 return [] if yarn_preinstalled?
> 1069 |
> 1075 end
EOM
end

Expand All @@ -73,9 +73,9 @@ module SyntaxSuggest

expect(io.string).to include(<<~'EOM')
1 Rails.application.routes.draw do
113 namespace :admin do
116 match "/foobar(*path)", via: :all, to: redirect { |_params, req|
120 }
> 113 namespace :admin do
> 116 match "/foobar(*path)", via: :all, to: redirect { |_params, req|
> 120 }
121 end
EOM
end
Expand All @@ -94,8 +94,8 @@ module SyntaxSuggest
1 describe "webmock tests" do
22 it "body" do
27 query = Cutlass::FunctionQuery.new(
28 port: port
29 body: body
> 28 port: port
> 29 body: body
30 ).call
34 end
35 end
Expand All @@ -118,9 +118,9 @@ module SyntaxSuggest
7 REQUIRED_BY = {}
9 attr_reader :name
10 attr_writer :cost
13 def initialize(name)
18 def self.reset!
25 end
> 13 def initialize(name)
> 18 def self.reset!
> 25 end
73 end
74 end
EOM
Expand All @@ -140,9 +140,9 @@ module SyntaxSuggest

expect(out).to include(<<~EOM)
16 class Rexe
77 class Lookups
78 def input_modes
148 end
> 77 class Lookups
> 78 def input_modes
> 148 end
551 end
EOM
end
Expand All @@ -161,9 +161,9 @@ module SyntaxSuggest
expect(out).to include(<<~EOM)
16 class Rexe
18 VERSION = '1.5.1'
77 class Lookups
140 def format_requires
148 end
> 77 class Lookups
> 140 def format_requires
> 148 end
551 end
EOM
end
Expand All @@ -182,9 +182,9 @@ def call # 0
)
out = io.string
expect(out).to include(<<~EOM)
1 def call # 0
3 end # one # 2
4 end # two # 3
> 1 def call # 0
> 3 end # one # 2
> 4 end # two # 3
EOM
end

Expand All @@ -202,9 +202,9 @@ def bark
)
out = io.string
expect(out).to include(<<~EOM)
1 class Dog
2 def bark
4 end
> 1 class Dog
> 2 def bark
> 4 end
EOM
end
end
Expand Down
16 changes: 8 additions & 8 deletions spec/unit/clean_document_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ module SyntaxSuggest
highlight_lines: lines[0]
).call
).to eq(<<~'EOM')
1 User
2 .where(name: 'schneems')
3 .first
> 1 User
> 2 .where(name: 'schneems')
> 3 .first
EOM
end

Expand Down Expand Up @@ -169,8 +169,8 @@ module SyntaxSuggest
).call
).to eq(<<~'EOM')
1 context "timezones workaround" do
2 it "should receive a time in UTC format and return the time with the"\
3 "office's UTC offset substracted from it" do
> 2 it "should receive a time in UTC format and return the time with the"\
> 3 "office's UTC offset substracted from it" do
4 travel_to DateTime.new(2020, 10, 1, 10, 0, 0) do
5 office = build(:office)
6 end
Expand Down Expand Up @@ -227,9 +227,9 @@ module SyntaxSuggest
highlight_lines: lines[0]
).call
).to eq(<<~'EOM')
1 it "should " \
2 "keep " \
3 "going " do
> 1 it "should " \
> 2 "keep " \
> 3 "going " do
4 end
EOM
end
Expand Down
2 changes: 1 addition & 1 deletion spec/unit/cli_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def called?

expect(exit_obj.called?).to be_truthy
expect(exit_obj.value).to eq(1)
expect(out.strip).to include(" 36 def filename")
expect(out.strip).to include("> 36 def filename")
end

it "parses valid code with flags" do
Expand Down
12 changes: 6 additions & 6 deletions spec/unit/code_search_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,8 @@ def hai
expect(search.record_dir.join("1-add-1-(3__4).txt").read).to include(<<~EOM)
1 class OH
2 def hello
3 def hai
4 end
> 3 def hai
> 4 end
5 end
EOM
end
Expand Down Expand Up @@ -245,7 +245,7 @@ def hello
).call

expect(document).to include(<<~'EOM')
36 def filename
> 36 def filename
EOM
end

Expand Down Expand Up @@ -295,9 +295,9 @@ def hello
1 require 'rails_helper'
2
3 RSpec.describe AclassNameHere, type: :worker do
4 describe "thing" do
16 end # line 16 accidental end, but valid block
30 end # mismatched due to 16
> 4 describe "thing" do
> 16 end # line 16 accidental end, but valid block
> 30 end # mismatched due to 16
31 end
EOM
end
Expand Down
12 changes: 6 additions & 6 deletions spec/unit/display_invalid_blocks_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def io.isatty
)
display.call
expect(io.string).to include([
" 2 ",
"> 2 ",
DisplayCodeWithLineNumbers::TERMINAL_HIGHLIGHT,
" def hello"
].join)
Expand All @@ -69,7 +69,7 @@ def io.isatty
code_lines: code_lines
)
display.call
expect(io.string).to include(" 2 def hello")
expect(io.string).to include("> 2 def hello")
end

it "outputs to io when using `call`" do
Expand All @@ -92,7 +92,7 @@ def hai
code_lines: code_lines
)
display.call
expect(io.string).to include(" 2 def hello")
expect(io.string).to include("> 2 def hello")
end

it " wraps code with github style codeblocks" do
Expand All @@ -116,7 +116,7 @@ def hai
).call
expect(io.string).to include(<<~EOM)
1 class OH
2 def hello
> 2 def hello
4 def hai
5 end
6 end
Expand All @@ -143,7 +143,7 @@ def hai

expect(io.string).to include([
" 1 class OH",
" 2 def hello",
"> 2 def hello",
" 4 end",
" 5 end",
""
Expand All @@ -161,7 +161,7 @@ def hai
expect(io.string).to include(
[
" 1 class OH",
[" 2 ", DisplayCodeWithLineNumbers::TERMINAL_HIGHLIGHT, " def hello"].join,
["> 2 ", DisplayCodeWithLineNumbers::TERMINAL_HIGHLIGHT, " def hello"].join,
" 4 end",
" 5 end",
""
Expand Down