mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 02:34:59 -07:00
fd57f39766
See newly added help entry referring to option-backslash
closes: vim/vim#16084
4927daef60
Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
87 lines
2.8 KiB
VimL
87 lines
2.8 KiB
VimL
" Vim compiler file
|
|
" Compiler: powershell
|
|
" URL: https://github.com/PProvost/vim-ps1
|
|
" Contributors: Enno Nagel
|
|
" Last Change: 2024 Mar 29
|
|
" 2024 Apr 03 by the Vim Project (removed :CompilerSet definition)
|
|
" 2024 Apr 05 by the Vim Project (avoid leaving behind g:makeprg)
|
|
" 2024 Nov 19 by the Vim Project (properly escape makeprg setting)
|
|
|
|
if exists("current_compiler")
|
|
finish
|
|
endif
|
|
let current_compiler = "powershell"
|
|
|
|
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 s: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
|
|
|
|
execute 'CompilerSet makeprg=' .. escape(s:makeprg, ' \|"')
|
|
|
|
" 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:
|