From 8e1e7b32986d01a77ed29874fb8c6c7269b9a6ec Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Thu, 1 Dec 2022 19:45:09 +0900 Subject: [PATCH 1/2] No longer need PathnameFromMessage with SyntaxError#path. https://bugs.ruby-lang.org/issues/19138 Co-authored-by: Nobuyoshi Nakada --- lib/syntax_suggest/core_ext.rb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/syntax_suggest/core_ext.rb b/lib/syntax_suggest/core_ext.rb index 40f5fe1..616a6ed 100644 --- a/lib/syntax_suggest/core_ext.rb +++ b/lib/syntax_suggest/core_ext.rb @@ -25,15 +25,12 @@ def detailed_message(highlight: true, syntax_suggest: true, **kwargs) require "syntax_suggest/api" unless defined?(SyntaxSuggest::DEFAULT_VALUE) message = super - file = if highlight - SyntaxSuggest::PathnameFromMessage.new(super(highlight: false, **kwargs)).call.name - else - SyntaxSuggest::PathnameFromMessage.new(message).call.name - end - - io = SyntaxSuggest::MiniStringIO.new + file = path if file + file = Pathname.new(file) + io = SyntaxSuggest::MiniStringIO.new + SyntaxSuggest.call( io: io, source: file.read, From 98620324658f2311e2781cd6cf9152a73e8b7bc3 Mon Sep 17 00:00:00 2001 From: schneems Date: Thu, 1 Dec 2022 13:27:59 -0600 Subject: [PATCH 2/2] Add temp support for 3.2.0-preview{3,2,1} This SyntaxError#path feature only exists in Ruby HEAD. Until it is released in a preview I want to continue to support existing releases of 3.2.0 (and also so CI will continue to work, as it still uses a preview version to execute tests). --- CHANGELOG.md | 1 + lib/syntax_suggest/core_ext.rb | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f806903..884a1c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## HEAD (unreleased) +- Native support of `SyntaxError#path`, support 3.2.0-preview3 will be dropped with the release of 3.2.0-preview4 () - Added dependabot for GitHub Actions (https://github.com/ruby/syntax_suggest/pull/160) ## 1.0.1 diff --git a/lib/syntax_suggest/core_ext.rb b/lib/syntax_suggest/core_ext.rb index 616a6ed..59e13a1 100644 --- a/lib/syntax_suggest/core_ext.rb +++ b/lib/syntax_suggest/core_ext.rb @@ -25,7 +25,16 @@ def detailed_message(highlight: true, syntax_suggest: true, **kwargs) require "syntax_suggest/api" unless defined?(SyntaxSuggest::DEFAULT_VALUE) message = super - file = path + + file = if respond_to?(:path) + path + elsif highlight + # This branch will be removed when the next Ruby 3.2 preview is released with + # support for SyntaxError#path + SyntaxSuggest::PathnameFromMessage.new(super(highlight: false, **kwargs)).call.name + else + SyntaxSuggest::PathnameFromMessage.new(message).call.name + end if file file = Pathname.new(file)