Browse Source

Fix diagnostic highlighting with invalid location extent

Ignore location extent when starting column is zero. Do not highlight warnings
as errors when location extent is invalid.
micbou 8 years ago
parent
commit
47f3f9d2c6
2 changed files with 5 additions and 5 deletions
  1. 4 3
      python/ycm/diagnostic_interface.py
  2. 1 2
      python/ycm/tests/youcompleteme_test.py

+ 4 - 3
python/ycm/diagnostic_interface.py

@@ -138,11 +138,12 @@ def _UpdateSquiggles( buffer_number_to_line_to_diags ):
       location_extent = diag[ 'location_extent' ]
       is_error = _DiagnosticIsError( diag )
 
-      if location_extent[ 'start' ][ 'line_num' ] < 0:
+      if location_extent[ 'start' ][ 'line_num' ] <= 0:
         location = diag[ 'location' ]
         vimsupport.AddDiagnosticSyntaxMatch(
-            location[ 'line_num' ],
-            location[ 'column_num' ] )
+          location[ 'line_num' ],
+          location[ 'column_num' ],
+          is_error = is_error )
       else:
         vimsupport.AddDiagnosticSyntaxMatch(
           location_extent[ 'start' ][ 'line_num' ],

+ 1 - 2
python/ycm/tests/youcompleteme_test.py

@@ -520,8 +520,7 @@ def YouCompleteMe_UpdateDiagnosticInterface_PrioritizeErrorsOverWarnings_test(
       contains(
         VimMatch( 'YcmWarningSection', '\%3l\%5c\_.\{-}\%3l\%7c' ),
         VimMatch( 'YcmWarningSection', '\%3l\%3c\_.\{-}\%3l\%9c' ),
-        # FIXME: match should be inserted at the end of line 3 (missing ";").
-        VimMatch( 'YcmErrorSection', '\%0l\%0c' )
+        VimMatch( 'YcmErrorSection', '\%3l\%8c' )
       )
     )