This repository was archived by the owner on Oct 24, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -11,17 +11,19 @@ class UnsupportedValue < BaseError; end
1111 # it's important to provide filename and line number information.
1212 # This will be used in various error reports to users, including backtraces;
1313 class SyntaxError < BaseError
14+ LINE_INFO_REGEX = /on line (\d +) of (.+)/
15+
1416 def backtrace
1517 return nil if super . nil?
1618 sass_backtrace + super
1719 end
1820
1921 # The backtrace of the error within Sass files.
2022 def sass_backtrace
21- line_info = message . split ( "\n " ) [ 1 ]
23+ line_info = message . split ( "\n " ) . find { | line | line . match ( LINE_INFO_REGEX ) }
2224 return [ ] unless line_info
2325
24- _ , line , filename = line_info . match ( /on line ( \d +) of (.+)/ ) . to_a
26+ _ , line , filename = line_info . match ( LINE_INFO_REGEX ) . to_a
2527 [ "#{ Pathname . getwd . join ( filename ) } :#{ line } " ]
2628 end
2729 end
Original file line number Diff line number Diff line change @@ -17,6 +17,21 @@ def test_first_backtrace_is_sass
1717 expected = "#{ Pathname . getwd . join ( filename ) } :#{ line } "
1818 assert_equal expected , err . backtrace . first
1919 end
20+
21+ begin
22+ raise SassC ::SyntaxError . new ( <<-ERROR )
23+ Error: no mixin named border-radius
24+
25+ Backtrace:
26+ \t #{ filename } :#{ line }
27+ on line #{ line } of #{ filename }
28+ >> @include border-radius(5px);
29+ -------------^
30+ ERROR
31+ rescue SassC ::SyntaxError => err
32+ expected = "#{ Pathname . getwd . join ( filename ) } :#{ line } "
33+ assert_equal expected , err . backtrace . first
34+ end
2035 end
2136 end
2237end
You can’t perform that action at this time.
0 commit comments