summaryrefslogtreecommitdiff
path: root/lib/syntax_suggest/api.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/syntax_suggest/api.rb')
-rw-r--r--lib/syntax_suggest/api.rb17
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/syntax_suggest/api.rb b/lib/syntax_suggest/api.rb
index 74e53c2563..5054efa888 100644
--- a/lib/syntax_suggest/api.rb
+++ b/lib/syntax_suggest/api.rb
@@ -5,9 +5,11 @@ require_relative "version"
require "tmpdir"
require "stringio"
require "pathname"
-require "ripper"
require "timeout"
+# Prism is the new parser, replacing Ripper
+require "prism"
+
module SyntaxSuggest
# Used to indicate a default value that cannot
# be confused with another input.
@@ -119,11 +121,7 @@ module SyntaxSuggest
def self.valid_without?(without_lines:, code_lines:)
lines = code_lines - Array(without_lines).flatten
- if lines.empty?
- true
- else
- valid?(lines)
- end
+ lines.empty? || valid?(lines)
end
# SyntaxSuggest.invalid? [Private]
@@ -133,7 +131,7 @@ module SyntaxSuggest
source = source.join if source.is_a?(Array)
source = source.to_s
- Ripper.new(source).tap(&:parse).error?
+ Prism.parse(source).failure?
end
# SyntaxSuggest.valid? [Private]
@@ -187,11 +185,10 @@ require_relative "explain_syntax"
require_relative "clean_document"
# Helpers
-require_relative "lex_all"
require_relative "code_line"
require_relative "code_block"
require_relative "block_expand"
-require_relative "ripper_errors"
+require_relative "mini_stringio"
require_relative "priority_queue"
require_relative "unvisited_lines"
require_relative "around_block_scan"
@@ -199,3 +196,5 @@ require_relative "priority_engulf_queue"
require_relative "pathname_from_message"
require_relative "display_invalid_blocks"
require_relative "parse_blocks_from_indent_line"
+require_relative "visitor"
+require_relative "token"