@@ -75,8 +75,12 @@ def __init__(self, message: str, token: Token):
75
75
super ().__init__ (f"{ message } \n \n " + self ._underline_token_in_template (token ))
76
76
77
77
@staticmethod
78
+ def _skipped_lines_message (nr_of_lines : int ) -> str :
79
+ return f"[{ nr_of_lines } line{ 's' if nr_of_lines > 1 else '' } skipped]"
80
+
81
+ @classmethod
78
82
def _underline_token_in_template (
79
- token : Token , * , lines_around : int = 4 , symbol : str = "^"
83
+ cls , token : Token , * , lines_around : int = 4 , symbol : str = "^"
80
84
) -> str :
81
85
"""
82
86
Return ``number_of_lines`` lines before and after the token, with the token content underlined
@@ -96,15 +100,16 @@ def _underline_token_in_template(
96
100
97
101
template_before_token = token .template [: token .start_position ]
98
102
if (skipped_lines := template_before_token .count ("\n " ) - lines_around ) > 0 :
99
- template_before_token = f"[{ skipped_lines } lines skipped]\n " + "\n " .join (
100
- template_before_token .split ("\n " )[- (lines_around + 1 ) :]
103
+ template_before_token = (
104
+ f"{ cls ._skipped_lines_message (skipped_lines )} \n "
105
+ + "\n " .join (template_before_token .split ("\n " )[- (lines_around + 1 ) :])
101
106
)
102
107
103
108
template_after_token = token .template [token .end_position :]
104
109
if (skipped_lines := template_after_token .count ("\n " ) - lines_around ) > 0 :
105
110
template_after_token = (
106
111
"\n " .join (template_after_token .split ("\n " )[: (lines_around + 1 )])
107
- + f"\n [ { skipped_lines } lines skipped] "
112
+ + f"\n { cls . _skipped_lines_message ( skipped_lines ) } "
108
113
)
109
114
110
115
lines_before_line_with_token = template_before_token .rsplit ("\n " , 1 )[0 ]
0 commit comments