mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
In case the current directory is present as valid $PATH entry, it is OK to call the program from it, even if vim curdir is in that same directory. (Without that patch, for instance, you will not be able to open .zip files while your current directory is /bin) closes: #13027 Signed-off-by: Christian Brabandt <cb@256bit.org>
72 lines
1.8 KiB
VimL
72 lines
1.8 KiB
VimL
" Vim filetype plugin file
|
|
" Language: Zig
|
|
" Upstream: https://github.com/ziglang/zig.vim
|
|
|
|
" Only do this when not done yet for this buffer
|
|
if exists("b:did_ftplugin")
|
|
finish
|
|
endif
|
|
|
|
let b:did_ftplugin = 1
|
|
|
|
let s:cpo_orig = &cpo
|
|
set cpo&vim
|
|
|
|
compiler zig_build
|
|
|
|
" Match Zig builtin fns
|
|
setlocal iskeyword+=@-@
|
|
|
|
" Recommended code style, no tabs and 4-space indentation
|
|
setlocal expandtab
|
|
setlocal tabstop=8
|
|
setlocal softtabstop=4
|
|
setlocal shiftwidth=4
|
|
|
|
setlocal formatoptions-=t formatoptions+=croql
|
|
|
|
setlocal suffixesadd=.zig,.zir
|
|
|
|
if has('comments')
|
|
setlocal comments=:///,://!,://,:\\\\
|
|
setlocal commentstring=//\ %s
|
|
endif
|
|
|
|
if has('find_in_path')
|
|
let &l:includeexpr='substitute(v:fname, "^([^.])$", "\1.zig", "")'
|
|
let &l:include='\v(\@import>|\@cInclude>|^\s*\#\s*include)'
|
|
endif
|
|
|
|
let &l:define='\v(<fn>|<const>|<var>|^\s*\#\s*define)'
|
|
|
|
" Safety check: don't execute zip from current directory
|
|
let s:tmp_cwd = getcwd()
|
|
if !exists('g:zig_std_dir') && exists('*json_decode') &&
|
|
\ executable('zig') && (fnamemodify(exepath("zig"), ":p:h") != s:tmp_cwd
|
|
\ || (index(split($PATH,has("win32")? ';' : ':'), s:tmp_cwd) != -1 && s:tmp_cwd != '.'))
|
|
silent let s:env = system('zig env')
|
|
if v:shell_error == 0
|
|
let g:zig_std_dir = json_decode(s:env)['std_dir']
|
|
endif
|
|
unlet! s:env
|
|
endif
|
|
unlet s:tmp_cwd
|
|
|
|
if exists('g:zig_std_dir')
|
|
let &l:path = &l:path . ',' . g:zig_std_dir
|
|
endif
|
|
|
|
let b:undo_ftplugin =
|
|
\ 'setl isk< et< ts< sts< sw< fo< sua< mp< com< cms< inex< inc< pa<'
|
|
|
|
augroup vim-zig
|
|
autocmd! * <buffer>
|
|
autocmd BufWritePre <buffer> if get(g:, 'zig_fmt_autosave', 1) | call zig#fmt#Format() | endif
|
|
augroup END
|
|
|
|
let b:undo_ftplugin .= '|au! vim-zig * <buffer>'
|
|
|
|
let &cpo = s:cpo_orig
|
|
unlet s:cpo_orig
|
|
" vim: tabstop=8 shiftwidth=4 softtabstop=4 expandtab
|