Fix column clamping when highlighting diagnostics on Python 3

This commit is contained in:
micbou 2018-03-25 15:55:57 +02:00
parent 788c293aee
commit ca8211a64b
No known key found for this signature in database
GPG Key ID: C7E8FD1F3BDA1E05
2 changed files with 16 additions and 1 deletions

View File

@ -1281,6 +1281,19 @@ def AddDiagnosticSyntaxMatch_WarningAtEndOfLine_test():
)
def AddDiagnosticSyntaxMatch_UnicodeAtEndOfLine_test():
current_buffer = VimBuffer(
'some_file',
contents = [ 'Highlight unicøde' ]
)
with patch( 'vim.current.buffer', current_buffer ):
assert_that(
vimsupport.GetDiagnosticMatchPattern( 1, 16, 1, 19 ),
equal_to( '\%1l\%16c\_.\{-}\%1l\%19c' )
)
@patch( 'vim.command', new_callable=ExtendedMock )
@patch( 'vim.current', new_callable=ExtendedMock)
def WriteToPreviewWindow_test( vim_current, vim_command ):

View File

@ -267,7 +267,9 @@ def LineAndColumnNumbersClamped( line_num, column_num ):
if line_num and line_num > max_line:
new_line_num = max_line
max_column = len( vim.current.buffer[ new_line_num - 1 ] )
# Vim buffers are a list of byte objects on Python 2 but Unicode objects on
# Python 3.
max_column = len( ToBytes( vim.current.buffer[ new_line_num - 1 ] ) )
if column_num and column_num > max_column:
new_column_num = max_column