var dlnum = diag.range.start.line + 1
var ltext = getline(dlnum)
var dlcol = byteidx(ltext, diag.range.start.character + 1)
+
+ var lastline = line('$')
+ if dlnum > lastline
+ # The line number is outside the last line in the file.
+ dlnum = lastline
+ endif
if dlcol < 1
# The column is outside the last character in line.
dlcol = ltext->len() + 1
delete('Xtest.c')
enddef
+# Test for the LspDiagsUpdated autocmd
+def Test_LspDiagsUpdated_Autocmd()
+ g:LspAutoCmd = 0
+ autocmd_add([{event: 'User', pattern: 'LspDiagsUpdated', cmd: 'g:LspAutoCmd = g:LspAutoCmd + 1'}])
+ silent! edit Xtest.c
+ sleep 200m
+ var lines: list<string> =<< trim END
+ void aFunc(void)
+ {
+ return;
+ }
+ END
+ setline(1, lines)
+ :sleep 1
+ WaitForDiags(0)
+ setline(3, ' return:')
+ WaitForDiags(1)
+ setline(3, ' return;')
+ WaitForDiags(0)
+ :%bw!
+ autocmd_delete([{event: 'User', pattern: 'LspDiagsUpdated'}])
+ assert_equal(3, g:LspAutoCmd)
+enddef
+
def LspRunTests()
:set nomore
:set debug=beep