Mercurial > vim
view runtime/compiler/powershell.vim @ 32816:939396a5711c v9.0.1722
patch 9.0.1722: wrong error messages when passing wrong types to count()
Commit: https://github.com/vim/vim/commit/4f389e7c0fe7dfeccfa512a72fa36f9028d57159
Author: zeertzjq <zeertzjq@outlook.com>
Date: Thu Aug 17 22:10:40 2023 +0200
patch 9.0.1722: wrong error messages when passing wrong types to count()
Problem: wrong error messages when passing wrong types to count()
Solution: fix it
This fixes two problems:
1. When passing wrong type to {ic} argument of count(), two error
messages are given, the second of which is misleading.
2. When passing wrong type to {comp} argument of count(), the error
message doesn't mention that {comp} may be a String.
closes: #12825
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 17 Aug 2023 22:15:03 +0200 |
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: