diff options
| author | Earlopain <14981592+Earlopain@users.noreply.github.com> | 2026-01-20 13:38:50 +0100 |
|---|---|---|
| committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2026-03-23 11:00:31 +0900 |
| commit | fd784dc7626dbd5cd2e5b5c2e85b07fa1d2fb2f1 (patch) | |
| tree | 2bef576267cd9cf5a4f12f56fd2abeec7901d4cd | |
| parent | df9f221e2c1bf867c1135c86ff3731b94fc09074 (diff) | |
[ruby/syntax_suggest] Handle `on_sp` when using prism
It used to not emit this token type, but now it does.
So when a newer version of prism is present, we can fall back
to the same code that ripper uses.
Ref:
* https://github.com/ruby/ruby/pull/15914
* https://github.com/ruby/prism/pull/3859
https://github.com/ruby/syntax_suggest/commit/42a3b8f6cb
| -rw-r--r-- | lib/syntax_suggest/code_line.rb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/syntax_suggest/code_line.rb b/lib/syntax_suggest/code_line.rb index 58197e95d0..892c273c41 100644 --- a/lib/syntax_suggest/code_line.rb +++ b/lib/syntax_suggest/code_line.rb @@ -180,10 +180,13 @@ module SyntaxSuggest # EOM # expect(lines.first.trailing_slash?).to eq(true) # - if SyntaxSuggest.use_prism_parser? + if SyntaxSuggest.use_prism_parser? && Prism::VERSION <= "1.8.0" + # Older versions of prism didn't correctly emit on_sp def trailing_slash? last = @lex.last - last&.type == :on_tstring_end + return false unless last + + last.type == :on_tstring_end || (last.type == :on_sp && last.token == TRAILING_SLASH) end else def trailing_slash? |
