Commit 5218dafd by David Malcolm Committed by David Malcolm

diagnostics: tweak to line-insertion fix-it hints with line-numbering

This commit slightly tweaks line-insertion fix-it hints, so that
with line-numbering, rather than e.g.:

 99 |       x = a;
    |+      break;
110 |     case 'b':
    |     ^~~~~~~~

we fill the margin with "+":

 99 |       x = a;
+++ |+      break;
110 |     case 'b':
    |     ^~~~~~~~

to emphasize that this is a suggested new line, rather than the user's
source.

gcc/ChangeLog:
	* diagnostic-show-locus.c (layout::start_annotation_line): Add
	"margin_char" parameter, defaulting to space.  Use it in place
	of pp_space for the initial part of the margin.
	(layout::print_leading_fixits): Use '+' when filling the margin
	of line-insertion fix-it hints.

gcc/testsuite/ChangeLog:
	* gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c
	(test_fixit_insert_newline): Update expected output to show '+'
	characters in margin of line-insertion fix-it hint.

From-SVN: r263605
parent 4416420e
2018-08-16 David Malcolm <dmalcolm@redhat.com>
* diagnostic-show-locus.c (layout::start_annotation_line): Add
"margin_char" parameter, defaulting to space. Use it in place
of pp_space for the initial part of the margin.
(layout::print_leading_fixits): Use '+' when filling the margin
of line-insertion fix-it hints.
2018-08-16 Segher Boessenkool <segher@kernel.crashing.org> 2018-08-16 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (two unnamed define_insn and define_split): * config/rs6000/rs6000.md (two unnamed define_insn and define_split):
......
...@@ -253,7 +253,7 @@ class layout ...@@ -253,7 +253,7 @@ class layout
void print_source_line (linenum_type row, const char *line, int line_width, void print_source_line (linenum_type row, const char *line, int line_width,
line_bounds *lbounds_out); line_bounds *lbounds_out);
bool should_print_annotation_line_p (linenum_type row) const; bool should_print_annotation_line_p (linenum_type row) const;
void start_annotation_line () const; void start_annotation_line (char margin_char = ' ') const;
void print_annotation_line (linenum_type row, const line_bounds lbounds); void print_annotation_line (linenum_type row, const line_bounds lbounds);
void print_any_labels (linenum_type row); void print_any_labels (linenum_type row);
void print_trailing_fixits (linenum_type row); void print_trailing_fixits (linenum_type row);
...@@ -1330,12 +1330,12 @@ layout::should_print_annotation_line_p (linenum_type row) const ...@@ -1330,12 +1330,12 @@ layout::should_print_annotation_line_p (linenum_type row) const
margin, which is empty for annotation lines. Otherwise, do nothing. */ margin, which is empty for annotation lines. Otherwise, do nothing. */
void void
layout::start_annotation_line () const layout::start_annotation_line (char margin_char) const
{ {
if (m_show_line_numbers_p) if (m_show_line_numbers_p)
{ {
for (int i = 0; i < m_linenum_width; i++) for (int i = 0; i < m_linenum_width; i++)
pp_space (m_pp); pp_character (m_pp, margin_char);
pp_string (m_pp, " |"); pp_string (m_pp, " |");
} }
} }
...@@ -1587,7 +1587,7 @@ layout::print_leading_fixits (linenum_type row) ...@@ -1587,7 +1587,7 @@ layout::print_leading_fixits (linenum_type row)
helps them stand out from each other, and from helps them stand out from each other, and from
the surrounding text. */ the surrounding text. */
m_colorizer.set_normal_text (); m_colorizer.set_normal_text ();
start_annotation_line (); start_annotation_line ('+');
pp_character (m_pp, '+'); pp_character (m_pp, '+');
m_colorizer.set_fixit_insert (); m_colorizer.set_fixit_insert ();
/* Print all but the trailing newline of the fix-it hint. /* Print all but the trailing newline of the fix-it hint.
......
2018-08-16 David Malcolm <dmalcolm@redhat.com>
* gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c
(test_fixit_insert_newline): Update expected output to show '+'
characters in margin of line-insertion fix-it hint.
2018-08-16 Nathan Sidwell <nathan@acm.org> 2018-08-16 Nathan Sidwell <nathan@acm.org>
* gcc.dg/cpp/macsyntx.c: Adjust expected errors. * gcc.dg/cpp/macsyntx.c: Adjust expected errors.
......
...@@ -111,7 +111,7 @@ void test_fixit_insert_newline (void) ...@@ -111,7 +111,7 @@ void test_fixit_insert_newline (void)
x = b; x = b;
} }
/* { dg-begin-multiline-output "" } /* { dg-begin-multiline-output "" }
|+ break; +++ |+ break;
110 | case 'b': 110 | case 'b':
| ^~~~~~~~ | ^~~~~~~~
{ dg-end-multiline-output "" } */ { dg-end-multiline-output "" } */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment