[前][次][番号順一覧][スレッド一覧]

ruby-changes:66759

From: Yusuke <ko1@a...>
Date: Tue, 13 Jul 2021 16:54:28 +0900 (JST)
Subject: [ruby-changes:66759] 5fd5d71a4b (master): [ruby/error_highlight] Support a file that has no final newline

https://git.ruby-lang.org/ruby.git/commit/?id=5fd5d71a4b

From 5fd5d71a4b100fdeca55352a5441b095a1d82e16 Mon Sep 17 00:00:00 2001
From: Yusuke Endoh <mame@r...>
Date: Tue, 13 Jul 2021 16:53:52 +0900
Subject: [ruby/error_highlight] Support a file that has no final newline

https://github.com/ruby/error_highlight/commit/9d671284cb
---
 lib/error_highlight/base.rb                  |  1 +
 test/error_highlight/test_error_highlight.rb | 16 ++++++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/lib/error_highlight/base.rb b/lib/error_highlight/base.rb
index fc23508..696df76 100644
--- a/lib/error_highlight/base.rb
+++ b/lib/error_highlight/base.rb
@@ -35,6 +35,7 @@ module ErrorHighlight https://github.com/ruby/ruby/blob/trunk/lib/error_highlight/base.rb#L35
 
       @fetch = -> (lineno, last_lineno = lineno) do
         snippet = @node.script_lines[lineno - 1 .. last_lineno - 1].join("")
+        snippet += "\n" unless snippet.end_with?("\n")
 
         # It require some work to support Unicode (or multibyte) characters.
         # Tentatively, we stop highlighting if the code snippet has non-ascii characters.
diff --git a/test/error_highlight/test_error_highlight.rb b/test/error_highlight/test_error_highlight.rb
index 071b3bf..03909bd 100644
--- a/test/error_highlight/test_error_highlight.rb
+++ b/test/error_highlight/test_error_highlight.rb
@@ -1016,4 +1016,20 @@ _ _ ^^^^^ https://github.com/ruby/ruby/blob/trunk/test/error_highlight/test_error_highlight.rb#L1016
       load tmp.path
     end
   end
+
+  def test_no_final_newline
+    tmp = Tempfile.new(["error_highlight_test", ".rb"])
+    tmp << "1.time {}"
+    tmp.close(false)
+
+    assert_error_message(NoMethodError, <<~END) do
+undefined method `time' for 1:Integer
+
+1.time {}
+ ^^^^^
+    END
+
+      load tmp.path
+    end
+  end
 end
-- 
cgit v1.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]