Mercurial > vim
view runtime/compiler/powershell.vim @ 33844:58c9f11eae5b v9.0.2134
patch 9.0.2134: ml_get error when scrolling
Commit: https://github.com/vim/vim/commit/c4ffeddfe5bd1824650e9b911ed9245bf56c69e3
Author: Christian Brabandt <cb@256bit.org>
Date: Mon Nov 27 23:25:03 2023 +0100
patch 9.0.2134: ml_get error when scrolling
Problem: ml_get error when scrolling after delete
Solution: mark topline to be validated in main_loop
if it is larger than current buffers line
count
reset_lnums() is called after e.g. TextChanged autocommands and it may
accidentally cause curwin->w_topline to become invalid, e.g. if the
autocommand has deleted some lines.
So verify that curwin->w_topline points to a valid line and if not, mark
the window to have w_topline recalculated in main_loop() in
update_topline() after reset_lnums() returns.
fixes: #13568
fixes: #13578
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 27 Nov 2023 23:30:04 +0100 |
parents | 5c98ea5f5d6e |
children | 2c3f939d46bf |
line wrap: on
line source
" Vim compiler file " Compiler: powershell " URL: https://github.com/PProvost/vim-ps1 " Last Change: 2020 Mar 30 if exists("current_compiler") finish endif let current_compiler = "powershell" if exists(":CompilerSet") != 2 " older Vim always used :setlocal command -nargs=* CompilerSet setlocal <args> endif let s:cpo_save = &cpo set cpo-=C if !exists("g:ps1_makeprg_cmd") if executable('pwsh') " pwsh is the future let g:ps1_makeprg_cmd = 'pwsh' elseif executable('pwsh.exe') let g:ps1_makeprg_cmd = 'pwsh.exe' elseif executable('powershell.exe') let g:ps1_makeprg_cmd = 'powershell.exe' else let g:ps1_makeprg_cmd = '' endif endif if !executable(g:ps1_makeprg_cmd) echoerr "To use the powershell compiler, please set g:ps1_makeprg_cmd to the powershell executable!" endif " Show CategoryInfo, FullyQualifiedErrorId, etc? let g:ps1_efm_show_error_categories = get(g:, 'ps1_efm_show_error_categories', 0) " Use absolute path because powershell requires explicit relative paths " (./file.ps1 is okay, but # expands to file.ps1) let &l:makeprg = g:ps1_makeprg_cmd .' %:p:S' " Parse file, line, char from callstacks: " Write-Ouput : The term 'Write-Ouput' is not recognized as the name of a " cmdlet, function, script file, or operable program. Check the spelling " of the name, or if a path was included, verify that the path is correct " and try again. " At C:\script.ps1:11 char:5 " + Write-Ouput $content " + ~~~~~~~~~~~ " + CategoryInfo : ObjectNotFound: (Write-Ouput:String) [], CommandNotFoundException " + FullyQualifiedErrorId : CommandNotFoundException " Showing error in context with underlining. CompilerSet errorformat=%+G+%m " Error summary. CompilerSet errorformat+=%E%*\\S\ :\ %m " Error location. CompilerSet errorformat+=%CAt\ %f:%l\ char:%c " Errors that span multiple lines (may be wrapped to width of terminal). CompilerSet errorformat+=%C%m " Ignore blank/whitespace-only lines. CompilerSet errorformat+=%Z\\s%# if g:ps1_efm_show_error_categories CompilerSet errorformat^=%+G\ \ \ \ +\ %.%#\\s%#:\ %m else CompilerSet errorformat^=%-G\ \ \ \ +\ %.%#\\s%#:\ %m endif " Parse file, line, char from of parse errors: " At C:\script.ps1:22 char:16 " + Stop-Process -Name "invalidprocess " + ~~~~~~~~~~~~~~~ " The string is missing the terminator: ". " + CategoryInfo : ParserError: (:) [], ParseException " + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString CompilerSet errorformat+=At\ %f:%l\ char:%c let &cpo = s:cpo_save unlet s:cpo_save " vim:set sw=2 sts=2: