[gnome-builder] Fix diagnostic for LSP provider
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] Fix diagnostic for LSP provider
- Date: Thu, 25 Jun 2020 18:41:48 +0000 (UTC)
commit 9e31c473914ec3e0d0db551cd5391ac5d489a566
Author: Günther Wagner <info gunibert de>
Date: Thu Jun 25 20:37:59 2020 +0200
Fix diagnostic for LSP provider
Prevent applying single location diagnostic if a range is available
src/libide/code/ide-buffer.c | 42 ++++++++++++++++++++++--------------------
1 file changed, 22 insertions(+), 20 deletions(-)
---
diff --git a/src/libide/code/ide-buffer.c b/src/libide/code/ide-buffer.c
index 4e658b77f..9df02da72 100644
--- a/src/libide/code/ide-buffer.c
+++ b/src/libide/code/ide-buffer.c
@@ -2466,33 +2466,35 @@ ide_buffer_apply_diagnostic (IdeBuffer *self,
return;
}
- if ((location = ide_diagnostic_get_location (diagnostic)))
+ n_ranges = ide_diagnostic_get_n_ranges (diagnostic);
+ if (n_ranges == 0)
{
- GtkTextIter begin_iter;
- GtkTextIter end_iter;
+ if ((location = ide_diagnostic_get_location (diagnostic)))
+ {
+ GtkTextIter begin_iter;
+ GtkTextIter end_iter;
- ide_buffer_get_iter_at_location (self, &begin_iter, location);
- end_iter = begin_iter;
+ ide_buffer_get_iter_at_location (self, &begin_iter, location);
+ end_iter = begin_iter;
- if (gtk_text_iter_ends_line (&end_iter))
- {
- gtk_text_iter_backward_char (&begin_iter);
- }
- else
- {
- /* Only highlight to next word */
- if (_ide_source_iter_inside_word (&end_iter) ||
- _ide_source_iter_starts_word (&end_iter))
- _ide_source_iter_forward_visible_word_end (&end_iter);
+ if (gtk_text_iter_ends_line (&end_iter))
+ {
+ gtk_text_iter_backward_char (&begin_iter);
+ }
else
- gtk_text_iter_forward_to_line_end (&end_iter);
- }
+ {
+ /* Only highlight to next word */
+ if (_ide_source_iter_inside_word (&end_iter) ||
+ _ide_source_iter_starts_word (&end_iter))
+ _ide_source_iter_forward_visible_word_end (&end_iter);
+ else
+ gtk_text_iter_forward_to_line_end (&end_iter);
+ }
- gtk_text_buffer_apply_tag_by_name (GTK_TEXT_BUFFER (self), tag_name, &begin_iter, &end_iter);
+ gtk_text_buffer_apply_tag_by_name (GTK_TEXT_BUFFER (self), tag_name, &begin_iter, &end_iter);
+ }
}
- n_ranges = ide_diagnostic_get_n_ranges (diagnostic);
-
for (guint i = 0; i < n_ranges; i++)
{
GtkTextIter begin_iter;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]