mirror of
https://github.com/vim/vim
synced 2025-07-16 17:22:00 +00:00
Compare commits
151 Commits
Author | SHA1 | Date | |
---|---|---|---|
b301f6b950 | |||
a8f04aa275 | |||
2993ac5fce | |||
7254067ee9 | |||
5459129af2 | |||
0d20737732 | |||
8846ac5aed | |||
82846a00ac | |||
9e33efd152 | |||
a15ef4588c | |||
9d32276b52 | |||
02ae9b4a93 | |||
1567558b20 | |||
0562532c2e | |||
bc0e9adae9 | |||
dff72ba445 | |||
d317b38a4d | |||
acda04f5c6 | |||
f12519dec8 | |||
dd08b6a32b | |||
511ffdd65d | |||
5d4247402b | |||
28944fecff | |||
2c7b906afb | |||
2374faae11 | |||
191f18bad0 | |||
fef4ddd5eb | |||
06b77ef69f | |||
4bc0bed536 | |||
8a37b03289 | |||
ec48a9c589 | |||
f4aba797cb | |||
15833239a4 | |||
b5cb65ba2b | |||
b7407d3fc9 | |||
ddb349369d | |||
8fd2ffc530 | |||
8dce6c54c8 | |||
4bfa8af141 | |||
42b23fad1d | |||
218101442e | |||
d4a282f7a5 | |||
94073167e3 | |||
1dd45fb4f3 | |||
a338adcf22 | |||
37badc898b | |||
cada78975e | |||
6f361c9912 | |||
153b704e20 | |||
ec0557f08b | |||
059fd01021 | |||
a172b63ab8 | |||
ce46d934af | |||
b50773c6df | |||
1274d33493 | |||
0479e910c4 | |||
d6d304298a | |||
40962ec9c0 | |||
84b242c369 | |||
501383236d | |||
d7823d5b7c | |||
95dbcbea6d | |||
2ec364e94d | |||
0cbcd949e1 | |||
4aad53c369 | |||
ede35bbbd0 | |||
200ea8ffaa | |||
de04654ddc | |||
9e3dfc6501 | |||
2095148277 | |||
df980db69b | |||
a47ebdbd22 | |||
fabaf753e2 | |||
45a0000d5c | |||
e6640ad44e | |||
3c09722600 | |||
b73fa629d6 | |||
ae6f865125 | |||
1bd999f982 | |||
8ada6aa929 | |||
4ce46c2a6b | |||
14a4deb064 | |||
aaf6e43b7a | |||
1223744849 | |||
2efb323e87 | |||
338e47fdfd | |||
132f75255e | |||
a0ca7d002d | |||
4af031dbc8 | |||
b254af312d | |||
c9e649ae81 | |||
606d45ccd8 | |||
4fb921e388 | |||
9bca805ec4 | |||
cb89c98c26 | |||
f0b03c4e98 | |||
8ee2d36e21 | |||
ee219b0e9f | |||
9e1d399e63 | |||
890dd05492 | |||
a1d5c154db | |||
200d0e36bc | |||
7e1652c63c | |||
6621605eb9 | |||
8b42328cef | |||
b29d328eb4 | |||
4697399e8c | |||
7f88b65f6c | |||
a6d4849c71 | |||
fae8ed1fc8 | |||
a703aaee4d | |||
8e6a31df81 | |||
59eb016dff | |||
74240d3feb | |||
35c5e8155d | |||
f405c8fe85 | |||
620ca2da37 | |||
05684310a5 | |||
e4b78e2a42 | |||
3388d33457 | |||
6e65d594aa | |||
23c1b2b018 | |||
415a6939a4 | |||
5fe6bdf858 | |||
3767c6e9ee | |||
ac112f01a6 | |||
feeb4d0901 | |||
1eca6f13d6 | |||
92467d3351 | |||
ce6179c799 | |||
461fe50fea | |||
1ad022a9b8 | |||
24820691e6 | |||
22044dc317 | |||
af903e5d49 | |||
a7c54cfcf8 | |||
97ce419201 | |||
76bb7196f5 | |||
2f0584910c | |||
46359e198f | |||
8b9e20afb0 | |||
1a2ab991a6 | |||
c5aa55db7e | |||
a45ff6caba | |||
3660a10c73 | |||
1ed2276fd5 | |||
f38c86eb6b | |||
bdb8139098 | |||
1355aad2b9 | |||
17471e84a7 | |||
c8c75796a6 |
5
Filelist
5
Filelist
@ -119,7 +119,6 @@ SRC_ALL = \
|
||||
src/testdir/test[0-9]*a.ok \
|
||||
src/testdir/test_[a-z]*.ok \
|
||||
src/testdir/test49.vim \
|
||||
src/testdir/test60.vim \
|
||||
src/testdir/test83-tags? \
|
||||
src/testdir/test77a.com \
|
||||
src/testdir/test_*.vim \
|
||||
@ -138,7 +137,7 @@ SRC_ALL = \
|
||||
src/testdir/samples/*.txt \
|
||||
src/testdir/samples/test000 \
|
||||
src/testdir/if_ver*.vim \
|
||||
src/testdir/xterm_ramp.vim \
|
||||
src/testdir/color_ramp.vim \
|
||||
src/proto.h \
|
||||
src/proto/arabic.pro \
|
||||
src/proto/beval.pro \
|
||||
@ -585,6 +584,7 @@ RT_ALL = \
|
||||
runtime/doc/*.txt \
|
||||
runtime/doc/Makefile \
|
||||
runtime/doc/doctags.c \
|
||||
runtime/doc/test_urls.vim \
|
||||
runtime/doc/vim.1 \
|
||||
runtime/doc/evim.1 \
|
||||
runtime/doc/vimdiff.1 \
|
||||
@ -666,6 +666,7 @@ RT_SCRIPTS = \
|
||||
runtime/autoload/xml/*.vim \
|
||||
runtime/colors/*.vim \
|
||||
runtime/colors/README.txt \
|
||||
runtime/colors/tools/*.vim \
|
||||
runtime/compiler/*.vim \
|
||||
runtime/compiler/README.txt \
|
||||
runtime/indent/*.vim \
|
||||
|
@ -89,6 +89,11 @@ Page instfiles
|
||||
UninstPage uninstConfirm
|
||||
UninstPage instfiles
|
||||
|
||||
# Reserve files
|
||||
# Needed for showing the _vimrc setting page faster.
|
||||
ReserveFile /plugin InstallOptions.dll
|
||||
ReserveFile vimrc.ini
|
||||
|
||||
##########################################################
|
||||
# Functions
|
||||
|
||||
@ -475,14 +480,12 @@ Function SetCustom
|
||||
# Display the InstallOptions dialog
|
||||
|
||||
# Check if a _vimrc should be created
|
||||
SectionGetFlags ${sec_vimrc_id} $0
|
||||
IntOp $0 $0 & 1
|
||||
StrCmp $0 "1" +2 0
|
||||
SectionGetFlags ${sec_vimrc_id} $3
|
||||
IntOp $3 $3 & 1
|
||||
StrCmp $3 "1" +2 0
|
||||
Abort
|
||||
|
||||
Push $3
|
||||
InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
|
||||
Pop $3
|
||||
InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
|
||||
Pop $3
|
||||
FunctionEnd
|
||||
|
||||
|
8
runtime/autoload/dist/ft.vim
vendored
8
runtime/autoload/dist/ft.vim
vendored
@ -1,7 +1,7 @@
|
||||
" Vim functions for file type detection
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Nov 11
|
||||
" Last Change: 2017 Dec 05
|
||||
|
||||
" These functions are moved here from runtime/filetype.vim to make startup
|
||||
" faster.
|
||||
@ -618,7 +618,11 @@ func dist#ft#FTperl()
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
if search('^use\s\s*\k', 'nc', 30)
|
||||
let save_cursor = getpos('.')
|
||||
call cursor(1,1)
|
||||
let has_use = search('^use\s\s*\k', 'c', 30)
|
||||
call setpos('.', save_cursor)
|
||||
if has_use
|
||||
setf perl
|
||||
return 1
|
||||
endif
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
" netrwSettings.vim: makes netrw settings simpler
|
||||
" Date: Nov 09, 2016
|
||||
" Date: Dec 30, 2014
|
||||
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
|
||||
" Version: 16
|
||||
" Version: 15
|
||||
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
@ -19,7 +19,7 @@
|
||||
if exists("g:loaded_netrwSettings") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwSettings = "v16"
|
||||
let g:loaded_netrwSettings = "v15"
|
||||
if v:version < 700
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwSettings needs vim 7.0"
|
||||
@ -154,13 +154,9 @@ fun! netrwSettings#NetrwSettings()
|
||||
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
|
||||
put = 'let g:netrw_liststyle = '.g:netrw_liststyle
|
||||
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
|
||||
put = 'let g:netrw_localcopycmdopt = '.g:netrw_localcopycmdopt
|
||||
put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
|
||||
put = 'let g:netrw_localmkdiropt = '.g:netrw_localmkdiropt
|
||||
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
|
||||
put = 'let g:netrw_localmovecmdopt = '.g:netrw_localmovecmdopt
|
||||
put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir
|
||||
put = 'let g:netrw_localrmdiropt = '.g:netrw_localrmdiropt
|
||||
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
|
||||
put = 'let g:netrw_menu = '.g:netrw_menu
|
||||
put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
|
||||
|
@ -64,6 +64,7 @@ Search for "highlight_init".
|
||||
If you think you have a color scheme that is good enough to be used by others,
|
||||
please check the following items:
|
||||
|
||||
- Source the tools/check_colors.vim script to check for common mistakes.
|
||||
- Does it work in a color terminal as well as in the GUI?
|
||||
- Is "g:colors_name" set to a meaningful value? In case of doubt you can do
|
||||
it this way:
|
||||
|
136
runtime/colors/tools/check_colors.vim
Normal file
136
runtime/colors/tools/check_colors.vim
Normal file
@ -0,0 +1,136 @@
|
||||
" This script tests a color scheme for some errors. Load the scheme and source
|
||||
" this script. e.g. :e colors/desert.vim | :so test_colors.vim
|
||||
" Will output possible errors.
|
||||
|
||||
let s:save_cpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
func! Test_check_colors()
|
||||
call cursor(1,1)
|
||||
let err={}
|
||||
|
||||
" 1) Check g:colors_name is existing
|
||||
if !search('\<\%(g:\)\?colors_name\>', 'cnW')
|
||||
let err['colors_name'] = 'g:colors_name not set'
|
||||
else
|
||||
let err['colors_name'] = 'OK'
|
||||
endif
|
||||
|
||||
" 2) Check for some well-defined highlighting groups
|
||||
" Some items, check several groups, e.g. Diff, Spell
|
||||
let hi_groups = ['ColorColumn', 'Diff', 'ErrorMsg', 'Folded',
|
||||
\ 'FoldColumn', 'IncSearch', 'LineNr', 'ModeMsg', 'MoreMsg', 'NonText',
|
||||
\ 'Normal', 'Pmenu', 'Todo', 'Search', 'Spell', 'StatusLine', 'TabLine',
|
||||
\ 'Title', 'Visual', 'WarningMsg', 'WildMenu']
|
||||
let groups={}
|
||||
for group in hi_groups
|
||||
if search('\c@suppress\s\+'.group, 'cnW')
|
||||
" skip check, if the script contains a line like
|
||||
" @suppress Visual:
|
||||
let groups[group] = 'Ignoring '.group
|
||||
continue
|
||||
endif
|
||||
if !search('hi\%[ghlight] \+'.group, 'cnW')
|
||||
let groups[group] = 'No highlight definition for '.group
|
||||
continue
|
||||
endif
|
||||
if !search('hi\%[ghlight] \+'.group. '.*fg=', 'cnW')
|
||||
let groups[group] = 'Missing foreground color for '.group
|
||||
continue
|
||||
endif
|
||||
if search('hi\%[ghlight] \+'.group. '.*guibg=', 'cnW') &&
|
||||
\ !search('hi\%[ghlight] \+'.group. '.*ctermbg=', 'cnW')
|
||||
let groups[group] = 'Missing bg terminal color for '.group
|
||||
continue
|
||||
endif
|
||||
call search('hi\%[ghlight] \+'.group, 'cW')
|
||||
" only check in the current line
|
||||
if !search('guifg', 'cnW', line('.')) || !search('ctermfg', 'cnW', line('.'))
|
||||
" do not check for background colors, they could be intentionally left out
|
||||
let groups[group] = 'Missing fg definition for '.group
|
||||
endif
|
||||
call cursor(1,1)
|
||||
endfor
|
||||
let err['highlight'] = groups
|
||||
|
||||
" 3) Check, that it does not set background highlighting
|
||||
" Doesn't ':hi Normal ctermfg=253 ctermfg=233' also set the background sometimes?
|
||||
let bg_set='\(set\?\|setl\(ocal\)\?\) .*\(background\|bg\)=\(dark\|light\)'
|
||||
let bg_let='let \%([&]\%([lg]:\)\?\)\%(background\|bg\)\s*=\s*\([''"]\?\)\w\+\1'
|
||||
let bg_pat='\%('.bg_set. '\|'.bg_let.'\)'
|
||||
let line=search(bg_pat, 'cnW')
|
||||
if search(bg_pat, 'cnW')
|
||||
exe line
|
||||
if search('hi \U\w\+\s\+\S', 'cbnW')
|
||||
let err['background'] = 'Should not set background option after :hi statement'
|
||||
endif
|
||||
else
|
||||
let err['background'] = 'OK'
|
||||
endif
|
||||
call cursor(1,1)
|
||||
|
||||
" 4) Check, that t_Co is checked
|
||||
let pat = '[&]t_Co\s*[<>=]=\?\s*\d\+'
|
||||
if !search(pat, 'ncW')
|
||||
let err['t_Co'] = 'Does not check terminal for capable colors'
|
||||
endif
|
||||
|
||||
" 5) Initializes correctly, e.g. should have a section like
|
||||
" hi clear
|
||||
" if exists("syntax_on")
|
||||
" syntax reset
|
||||
" endif
|
||||
let pat='hi\%[ghlight]\s*clear\n\s*if\s*exists(\([''"]\)syntax_on\1)\n\s*syn\%[tax]\s*reset\n\s*endif'
|
||||
if !search(pat, 'cnW')
|
||||
let err['init'] = 'No initialization'
|
||||
endif
|
||||
|
||||
" 6) Does not use :syn on
|
||||
if search('syn\%[tax]\s\+on', 'cnW')
|
||||
let err['background'] = 'Should not issue :syn on'
|
||||
endif
|
||||
|
||||
" 7) Does not define filetype specfic groups like vimCommand, htmlTag,
|
||||
let hi_groups = ['vim', 'html', 'python', 'sh', 'ruby']
|
||||
for group in hi_groups
|
||||
let pat='\Chi\%[ghlight]\s*\zs'.group.'\w\+\>'
|
||||
if search(pat, 'cnW')
|
||||
let line = search(pat, 'cW')
|
||||
let err['filetype'] = get(err, 'filetype', 'Should not define: ') . matchstr(getline('.'), pat). ' '
|
||||
endif
|
||||
call cursor(1,1)
|
||||
endfor
|
||||
let g:err = err
|
||||
|
||||
" print Result
|
||||
call Result(err)
|
||||
endfu
|
||||
|
||||
fu! Result(err)
|
||||
let do_roups = 0
|
||||
echohl Title|echomsg "---------------"|echohl Normal
|
||||
for key in sort(keys(a:err))
|
||||
if key is# 'highlight'
|
||||
let do_groups = 1
|
||||
continue
|
||||
else
|
||||
if a:err[key] !~ 'OK'
|
||||
echohl Title
|
||||
endif
|
||||
echomsg printf("%15s: %s", key, a:err[key])
|
||||
echohl Normal
|
||||
endif
|
||||
endfor
|
||||
echohl Title|echomsg "---------------"|echohl Normal
|
||||
if do_groups
|
||||
echohl Title | echomsg "Groups" | echohl Normal
|
||||
for v1 in sort(keys(a:err['highlight']))
|
||||
echomsg printf("%25s: %s", v1, a:err['highlight'][v1])
|
||||
endfor
|
||||
endif
|
||||
endfu
|
||||
|
||||
call Test_check_colors()
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
@ -375,6 +375,10 @@ tags.ref tags.html: tags
|
||||
perlhtml: tags $(DOCS)
|
||||
./vim2html.pl tags $(DOCS)
|
||||
|
||||
# Check URLs in the help with "curl".
|
||||
test_urls:
|
||||
vim -S test_urls.vim
|
||||
|
||||
clean:
|
||||
-rm doctags *.html tags.ref
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2017 Nov 05
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2018 Feb 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -33,7 +33,7 @@ files matching *.c. You can also use autocommands to implement advanced
|
||||
features, such as editing compressed files (see |gzip-example|). The usual
|
||||
place to put autocommands is in your .vimrc or .exrc file.
|
||||
|
||||
*E203* *E204* *E143* *E855* *E937*
|
||||
*E203* *E204* *E143* *E855* *E937* *E952*
|
||||
WARNING: Using autocommands is very powerful, and may lead to unexpected side
|
||||
effects. Be careful not to destroy your text.
|
||||
- It's a good idea to do some testing on an expendable copy of a file first.
|
||||
@ -295,6 +295,8 @@ Name triggered by ~
|
||||
|FileChangedShellPost| After handling a file changed since editing started
|
||||
|FileChangedRO| before making the first change to a read-only file
|
||||
|
||||
|DirChanged| after the working directory has changed
|
||||
|
||||
|ShellCmdPost| after executing a shell command
|
||||
|ShellFilterPost| after filtering with a shell command
|
||||
|
||||
@ -330,6 +332,7 @@ Name triggered by ~
|
||||
|
||||
|TextChanged| after a change was made to the text in Normal mode
|
||||
|TextChangedI| after a change was made to the text in Insert mode
|
||||
|TextYankPost| after text is yanked or deleted
|
||||
|
||||
|ColorScheme| after loading a color scheme
|
||||
|
||||
@ -499,6 +502,13 @@ CmdUndefined When a user command is used but it isn't
|
||||
command is defined. An alternative is to
|
||||
always define the user command and have it
|
||||
invoke an autoloaded function. See |autoload|.
|
||||
*CmdlineChanged*
|
||||
CmdlineChanged After a change was made to the text inside
|
||||
command line. Be careful not to mess up the
|
||||
command line, it may cause Vim to lock up.
|
||||
<afile> is set to a single character,
|
||||
indicating the type of command-line.
|
||||
|cmdwin-char|
|
||||
*CmdlineEnter*
|
||||
CmdlineEnter After moving the cursor to the command line,
|
||||
where the user can type a command or search
|
||||
@ -625,6 +635,16 @@ FileChangedRO Before making the first change to a read-only
|
||||
*E881*
|
||||
If the number of lines changes saving for undo
|
||||
may fail and the change will be aborted.
|
||||
*DirChanged*
|
||||
DirChanged The working directory has changed in response
|
||||
to the |:cd| or |:lcd| commands, or as a
|
||||
result of the 'autochdir' option.
|
||||
The pattern can be:
|
||||
"window" to trigger on `:lcd
|
||||
"global" to trigger on `:cd`
|
||||
"auto" to trigger on 'autochdir'.
|
||||
"drop" to trigger on editing a file
|
||||
<afile> is set to the new directory name.
|
||||
*FileChangedShell*
|
||||
FileChangedShell When Vim notices that the modification time of
|
||||
a file has changed since editing started.
|
||||
@ -956,6 +976,25 @@ TextChangedI After a change was made to the text in the
|
||||
current buffer in Insert mode.
|
||||
Not triggered when the popup menu is visible.
|
||||
Otherwise the same as TextChanged.
|
||||
*TextYankPost*
|
||||
TextYankPost After text has been yanked or deleted in the
|
||||
current buffer. The following values of
|
||||
|v:event| can be used to determine the operation
|
||||
that triggered this autocmd:
|
||||
operator The operation performed.
|
||||
regcontents Text that was stored in the
|
||||
register, as a list of lines,
|
||||
like with: >
|
||||
getreg(r, 1, 1)
|
||||
< regname Name of the |register| or
|
||||
empty string for the unnamed
|
||||
register.
|
||||
regtype Type of the register, see
|
||||
|getregtype()|.
|
||||
Not triggered when |quote_| is used nor when
|
||||
called recursively.
|
||||
It is not allowed to change the buffer text,
|
||||
see |textlock|.
|
||||
*User*
|
||||
User Never executed automatically. To be used for
|
||||
autocommands that are only executed with
|
||||
|
@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.0. Last change: 2017 Nov 19
|
||||
*eval.txt* For Vim version 8.0. Last change: 2018 Feb 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -1554,6 +1554,12 @@ v:errors Errors found by assert functions, such as |assert_true()|.
|
||||
< If v:errors is set to anything but a list it is made an empty
|
||||
list by the assert function.
|
||||
|
||||
*v:event* *event-variable*
|
||||
v:event Dictionary containing information about the current
|
||||
|autocommand|. The dictionary is emptied when the |autocommand|
|
||||
finishes, please refer to |dict-identity| for how to get an
|
||||
independent copy of it.
|
||||
|
||||
*v:exception* *exception-variable*
|
||||
v:exception The value of the exception most recently caught and not
|
||||
finished. See also |v:throwpoint| and |throw-variables|.
|
||||
@ -2031,7 +2037,7 @@ assert_true({actual} [, {msg}]) none assert {actual} is true
|
||||
asin({expr}) Float arc sine of {expr}
|
||||
atan({expr}) Float arc tangent of {expr}
|
||||
atan2({expr1}, {expr2}) Float arc tangent of {expr1} / {expr2}
|
||||
balloon_show({msg}) none show {msg} inside the balloon
|
||||
balloon_show({expr}) none show {expr} inside the balloon
|
||||
balloon_split({msg}) List split {msg} as used for a balloon
|
||||
browse({save}, {title}, {initdir}, {default})
|
||||
String put up a file requester
|
||||
@ -2270,6 +2276,8 @@ mode([expr]) String current editing mode
|
||||
mzeval({expr}) any evaluate |MzScheme| expression
|
||||
nextnonblank({lnum}) Number line nr of non-blank line >= {lnum}
|
||||
nr2char({expr} [, {utf8}]) String single char with ASCII/UTF8 value {expr}
|
||||
option_restore({list}) none restore options saved by option_save()
|
||||
option_save({list}) List save options values
|
||||
or({expr}, {expr}) Number bitwise OR
|
||||
pathshorten({expr}) String shorten directory names in a path
|
||||
perleval({expr}) any evaluate |Perl| expression
|
||||
@ -2452,6 +2460,7 @@ win_getid([{win} [, {tab}]]) Number get window ID for {win} in {tab}
|
||||
win_gotoid({expr}) Number go to window with ID {expr}
|
||||
win_id2tabwin({expr}) List get tab and window nr from window ID
|
||||
win_id2win({expr}) Number get window nr from window ID
|
||||
win_screenpos({nr}) List get screen position of window {nr}
|
||||
winbufnr({nr}) Number buffer number of window {nr}
|
||||
wincol() Number window column of the cursor
|
||||
winheight({nr}) Number height of window {nr}
|
||||
@ -3055,12 +3064,16 @@ ch_open({address} [, {options}]) *ch_open()*
|
||||
ch_read({handle} [, {options}]) *ch_read()*
|
||||
Read from {handle} and return the received message.
|
||||
{handle} can be a Channel or a Job that has a Channel.
|
||||
For a NL channel this waits for a NL to arrive, except when
|
||||
there is nothing more to read (channel was closed).
|
||||
See |channel-more|.
|
||||
{only available when compiled with the |+channel| feature}
|
||||
|
||||
ch_readraw({handle} [, {options}]) *ch_readraw()*
|
||||
Like ch_read() but for a JS and JSON channel does not decode
|
||||
the message. See |channel-more|.
|
||||
the message. For a NL channel it does not block waiting for
|
||||
the NL to arrive, but otherwise works like ch_read().
|
||||
See |channel-more|.
|
||||
{only available when compiled with the |+channel| feature}
|
||||
|
||||
ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
|
||||
@ -3325,8 +3338,8 @@ count({comp}, {expr} [, {ic} [, {start}]]) *count()*
|
||||
When {ic} is given and it's |TRUE| then case is ignored.
|
||||
|
||||
When {comp} is a string then the number of not overlapping
|
||||
occurrences of {expr} is returned.
|
||||
|
||||
occurrences of {expr} is returned. Zero is returned when
|
||||
{expr} is an empty string.
|
||||
|
||||
*cscope_connection()*
|
||||
cscope_connection([{num} , {dbpath} [, {prepend}]])
|
||||
@ -4168,6 +4181,7 @@ getbufinfo([{dict}])
|
||||
be specified in {dict}:
|
||||
buflisted include only listed buffers.
|
||||
bufloaded include only loaded buffers.
|
||||
bufmodified include only modified buffers.
|
||||
|
||||
Otherwise, {expr} specifies a particular buffer to return
|
||||
information for. For the use of {expr}, see |bufname()|
|
||||
@ -4470,10 +4484,13 @@ getcwd([{winnr} [, {tabnr}]])
|
||||
Without arguments, for the current window.
|
||||
|
||||
With {winnr} return the local current directory of this window
|
||||
in the current tab page.
|
||||
in the current tab page. {winnr} can be the window number or
|
||||
the |window-ID|.
|
||||
If {winnr} is -1 return the name of the global working
|
||||
directory. See also |haslocaldir()|.
|
||||
|
||||
With {winnr} and {tabnr} return the local current directory of
|
||||
the window in the specified tab page.
|
||||
{winnr} can be the window number or the |window-ID|.
|
||||
Return an empty string if the arguments are invalid.
|
||||
|
||||
getfsize({fname}) *getfsize()*
|
||||
@ -4660,13 +4677,15 @@ getqflist([{what}]) *getqflist()*
|
||||
If the optional {what} dictionary argument is supplied, then
|
||||
returns only the items listed in {what} as a dictionary. The
|
||||
following string items are supported in {what}:
|
||||
changedtick get the total number of changes made
|
||||
to the list
|
||||
context get the context stored with |setqflist()|
|
||||
efm errorformat to use when parsing "lines". If
|
||||
not present, then the 'erroformat' option
|
||||
not present, then the 'errorformat' option
|
||||
value is used.
|
||||
id get information for the quickfix list with
|
||||
|quickfix-ID|; zero means the id for the
|
||||
current list or the list specifed by "nr"
|
||||
current list or the list specified by "nr"
|
||||
idx index of the current entry in the list
|
||||
items quickfix list entries
|
||||
lines use 'errorformat' to extract items from a list
|
||||
@ -4678,9 +4697,10 @@ getqflist([{what}]) *getqflist()*
|
||||
the last quickfix list
|
||||
size number of entries in the quickfix list
|
||||
title get the list title
|
||||
winid get the |window-ID| (if opened)
|
||||
winid get the quickfix |window-ID|
|
||||
all all of the above quickfix properties
|
||||
Non-string items in {what} are ignored.
|
||||
Non-string items in {what} are ignored. To get the value of a
|
||||
particular item, set it to zero.
|
||||
If "nr" is not present then the current quickfix list is used.
|
||||
If both "nr" and a non-zero "id" are specified, then the list
|
||||
specified by "id" is used.
|
||||
@ -4690,18 +4710,24 @@ getqflist([{what}]) *getqflist()*
|
||||
When "lines" is specified, all the other items except "efm"
|
||||
are ignored. The returned dictionary contains the entry
|
||||
"items" with the list of entries.
|
||||
In case of error processing {what}, an empty dictionary is
|
||||
returned.
|
||||
|
||||
The returned dictionary contains the following entries:
|
||||
context context information stored with |setqflist()|
|
||||
id quickfix list ID |quickfix-ID|
|
||||
idx index of the current entry in the list
|
||||
items quickfix list entries
|
||||
nr quickfix list number
|
||||
size number of entries in the quickfix list
|
||||
title quickfix list title text
|
||||
winid quickfix |window-ID| (if opened)
|
||||
changedtick total number of changes made to the
|
||||
list |quickfix-changedtick|
|
||||
context context information stored with |setqflist()|.
|
||||
If not present, set to "".
|
||||
id quickfix list ID |quickfix-ID|. If not
|
||||
present, set to 0.
|
||||
idx index of the current entry in the list. If not
|
||||
present, set to 0.
|
||||
items quickfix list entries. If not present, set to
|
||||
an empty list.
|
||||
nr quickfix list number. If not present, set to 0
|
||||
size number of entries in the quickfix list. If not
|
||||
present, set to 0.
|
||||
title quickfix list title text. If not present, set
|
||||
to "".
|
||||
winid quickfix |window-ID|. If not present, set to 0
|
||||
|
||||
Examples: >
|
||||
:echo getqflist({'all': 1})
|
||||
@ -5910,8 +5936,6 @@ matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
|
||||
< Matches added by |matchaddpos()| are returned by
|
||||
|getmatches()| with an entry "pos1", "pos2", etc., with the
|
||||
value a list like the {pos} item.
|
||||
These matches cannot be set via |setmatches()|, however they
|
||||
can still be deleted by |clearmatches()|.
|
||||
|
||||
matcharg({nr}) *matcharg()*
|
||||
Selects the {nr} match item, as set with a |:match|,
|
||||
@ -6097,6 +6121,31 @@ nr2char({expr} [, {utf8}]) *nr2char()*
|
||||
characters. nr2char(0) is a real NUL and terminates the
|
||||
string, thus results in an empty string.
|
||||
|
||||
option_restore({list}) *option_restore()*
|
||||
Restore options previously saved by option_save().
|
||||
When buffer-local options have been saved, this function must
|
||||
be called when the same buffer is the current buffer.
|
||||
When window-local options have been saved, this function must
|
||||
be called when the same window is the current window.
|
||||
When in the wrong buffer and/or window an error is given and
|
||||
the local options won't be restored.
|
||||
NOT IMPLEMENTED YET!
|
||||
|
||||
option_save({list}) *option_save()*
|
||||
Saves the options named in {list}. The returned value can be
|
||||
passed to option_restore(). Example: >
|
||||
let s:saved_options = option_save([
|
||||
\ 'ignorecase',
|
||||
\ 'iskeyword',
|
||||
\ ])
|
||||
au <buffer> BufLeave *
|
||||
\ call option_restore(s:saved_options)
|
||||
< The advantage over using `:let` is that global and local
|
||||
values are handled and the script ID is restored, so that
|
||||
`:verbose set` will show where the option was originally set,
|
||||
not where it was restored.
|
||||
NOT IMPLEMENTED YET!
|
||||
|
||||
or({expr}, {expr}) *or()*
|
||||
Bitwise OR on the two arguments. The arguments are converted
|
||||
to a number. A List, Dict or Float argument causes an error.
|
||||
@ -7695,8 +7744,9 @@ submatch({nr} [, {list}]) *submatch()* *E935*
|
||||
When substitute() is used recursively only the submatches in
|
||||
the current (deepest) call can be obtained.
|
||||
|
||||
Example: >
|
||||
Examples: >
|
||||
:s/\d\+/\=submatch(0) + 1/
|
||||
:echo substitute(text, '\d\+', '\=submatch(0) + 1', '')
|
||||
< This finds the first number in the line and adds one to it.
|
||||
A line break is included as a newline character.
|
||||
|
||||
@ -8632,6 +8682,14 @@ win_id2win({expr}) *win_id2win()*
|
||||
Return the window number of window with ID {expr}.
|
||||
Return 0 if the window cannot be found in the current tabpage.
|
||||
|
||||
win_screenpos({nr}) *win_screenpos()*
|
||||
Return the screen position of window {nr} as a list with two
|
||||
numbers: [row, col]. The first window always has position
|
||||
[1, 1].
|
||||
{nr} can be the window number or the |window-ID|.
|
||||
Return [0, 0] if the window cannot be found in the current
|
||||
tabpage.
|
||||
|
||||
*winbufnr()*
|
||||
winbufnr({nr}) The result is a Number, which is the number of the buffer
|
||||
associated with window {nr}. {nr} can be the window number or
|
||||
@ -8783,8 +8841,8 @@ writefile({list}, {fname} [, {flags}])
|
||||
the file. This flushes the file to disk, if possible. This
|
||||
takes more time but avoids losing the file if the system
|
||||
crashes.
|
||||
When {flags} does not contain "S" or "s" then fsync is called
|
||||
if the 'fsync' option is set.
|
||||
When {flags} does not contain "S" or "s" then fsync() is
|
||||
called if the 'fsync' option is set.
|
||||
When {flags} contains "S" then fsync() is not called, even
|
||||
when 'fsync' is set.
|
||||
|
||||
@ -8952,8 +9010,12 @@ persistent_undo Compiled with support for persistent undo history.
|
||||
postscript Compiled with PostScript file printing.
|
||||
printer Compiled with |:hardcopy| support.
|
||||
profile Compiled with |:profile| support.
|
||||
python Compiled with Python 2.x interface. |has-python|
|
||||
python3 Compiled with Python 3.x interface. |has-python|
|
||||
python Python 2.x interface available. |has-python|
|
||||
python_compiled Compiled with Python 2.x interface. |has-python|
|
||||
python_dynamic Python 2.x interface is dynamically loaded. |has-python|
|
||||
python3 Python 3.x interface available. |has-python|
|
||||
python3_compiled Compiled with Python 3.x interface. |has-python|
|
||||
python3_dynamic Python 3.x interface is dynamically loaded. |has-python|
|
||||
pythonx Compiled with |python_x| interface. |has-pythonx|
|
||||
qnx QNX version of Vim.
|
||||
quickfix Compiled with |quickfix| support.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 8.0. Last change: 2017 Oct 10
|
||||
*filetype.txt* For Vim version 8.0. Last change: 2018 Feb 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -602,51 +602,17 @@ MANPAGER *manpager.vim*
|
||||
The :Man command allows you to turn Vim into a manpager (that syntax highlights
|
||||
manpages and follows linked manpages on hitting CTRL-]).
|
||||
|
||||
Tested on:
|
||||
|
||||
- Linux
|
||||
- Mac OS
|
||||
- FreeBSD
|
||||
- OpenBSD
|
||||
- Cygwin
|
||||
- Win 10 under Bash
|
||||
|
||||
Untested:
|
||||
|
||||
- Amiga OS
|
||||
- BeOS
|
||||
- OS/2
|
||||
|
||||
If man sets the $MAN_PN environment variable, like man-db, the most common
|
||||
implementation on Linux, then the "env MAN_PN=1 " part below should NOT be
|
||||
set, that is, the "env MAN_PN=1" should be omitted! Otherwise, the Vim
|
||||
manpager does not correctly recognize manpages whose title contains a capital
|
||||
letter. See the discussion on
|
||||
|
||||
https://groups.google.com/forum/#!topic/vim_dev/pWZmt_7GkxI
|
||||
|
||||
For bash,zsh,ksh or dash, add to the config file (.bashrc,.zshrc, ...)
|
||||
|
||||
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER -"
|
||||
export MANPAGER="vim -M +MANPAGER -"
|
||||
|
||||
For (t)csh, add to the config file
|
||||
|
||||
setenv MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
|
||||
setenv MANPAGER "vim -M +MANPAGER -"
|
||||
|
||||
For fish, add to the config file
|
||||
|
||||
set -x MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
|
||||
|
||||
On OpenBSD:
|
||||
|
||||
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER"
|
||||
|
||||
If you experience still issues on manpages whose titles do not contain capital
|
||||
letters, then try adding MANPATH=${MANPATH} after MAN_PN=1. If your manpages do
|
||||
not show up localized, then try adding, LANGUAGE=${LANG} after MAN_PN=1. See
|
||||
|
||||
https://github.com/vim/vim/issues/1002
|
||||
|
||||
set -x MANPAGER "vim -M +MANPAGER -"
|
||||
|
||||
PDF *ft-pdf-plugin*
|
||||
|
||||
@ -669,7 +635,7 @@ By default the following options are set, in accordance with PEP8: >
|
||||
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
|
||||
|
||||
To disable this behaviour, set the following variable in your vimrc: >
|
||||
|
||||
|
||||
let g:python_recommended_style = 0
|
||||
|
||||
|
||||
@ -706,4 +672,23 @@ You can change the default by defining the variable g:tex_flavor to the format
|
||||
Currently no other formats are recognized.
|
||||
|
||||
|
||||
VIM *ft-vim-plugin*
|
||||
|
||||
The Vim filetype plugin defines mappings to move to the start and end of
|
||||
functions with [[ and ]]. Move around comments with ]" and [".
|
||||
|
||||
The mappings can be disabled with: >
|
||||
let g:no_vim_maps = 1
|
||||
|
||||
|
||||
ZIMBU *ft-zimbu-plugin*
|
||||
|
||||
The Zimbu filetype plugin defines mappings to move to the start and end of
|
||||
functions with [[ and ]].
|
||||
|
||||
The mappings can be disabled with: >
|
||||
let g:no_zimbu_maps = 1
|
||||
<
|
||||
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_cscop.txt* For Vim version 8.0. Last change: 2017 Jun 14
|
||||
*if_cscop.txt* For Vim version 8.0. Last change: 2018 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Andy Kahn
|
||||
@ -468,36 +468,18 @@ license or OS distribution), then you can download it for free from:
|
||||
http://cscope.sourceforge.net/
|
||||
This is released by SCO under the BSD license.
|
||||
|
||||
If you want a newer version of cscope, you will probably have to buy it.
|
||||
According to the (old) nvi documentation:
|
||||
|
||||
You can buy version 13.3 source with an unrestricted license
|
||||
for $400 from AT&T Software Solutions by calling +1-800-462-8146.
|
||||
|
||||
Also you can download cscope 13.x and mlcscope 14.x (multi-lingual cscope
|
||||
which supports C, C++, Java, lex, yacc, breakpoint listing, Ingres, and SDL)
|
||||
from World-Wide Exptools Open Source packages page:
|
||||
http://www.bell-labs.com/project/wwexptools/packages.html
|
||||
|
||||
In Solaris 2.x, if you have the C compiler license, you will also have
|
||||
cscope. Both are usually located under /opt/SUNWspro/bin
|
||||
|
||||
SGI developers can also get it. Search for Cscope on this page:
|
||||
http://freeware.sgi.com/index-by-alpha.html
|
||||
https://toolbox.sgi.com/toolbox/utilities/cscope/
|
||||
The second one is for those who have a password for the SGI toolbox.
|
||||
|
||||
There is source to an older version of a cscope clone (called "cs") available
|
||||
on the net. Due to various reasons, this is not supported with Vim.
|
||||
|
||||
The cscope interface/support for Vim was originally written by
|
||||
Andy Kahn <ackahn@netapp.com>. The original structure (as well as a tiny
|
||||
bit of code) was adapted from the cscope interface in nvi. Please report
|
||||
any problems, suggestions, patches, et al., you have for the usage of
|
||||
cscope within Vim to him.
|
||||
bit of code) was adapted from the cscope interface in nvi.
|
||||
*cscope-win32*
|
||||
For a cscope version for Win32 see:
|
||||
http://code.google.com/p/cscope-win32/
|
||||
For a cscope version for Win32 see (seems abandoned):
|
||||
https://code.google.com/archive/p/cscope-win32/
|
||||
|
||||
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
|
||||
him if you have Win32-specific issues.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_perl.txt* For Vim version 8.0. Last change: 2015 Oct 16
|
||||
*if_perl.txt* For Vim version 8.0. Last change: 2017 Nov 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sven Verdoolaege
|
||||
@ -112,7 +112,7 @@ possible.
|
||||
Here is an overview of the functions that are available to Perl: >
|
||||
|
||||
:perl VIM::Msg("Text") # displays a message
|
||||
:perl VIM::Msg("Error", "ErrorMsg") # displays an error message
|
||||
:perl VIM::Msg("Wrong!", "ErrorMsg") # displays an error message
|
||||
:perl VIM::Msg("remark", "Comment") # displays a highlighted message
|
||||
:perl VIM::SetOption("ai") # sets a vim option
|
||||
:perl $nbuf = VIM::Buffers() # returns the number of buffers
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 8.0. Last change: 2017 Nov 09
|
||||
*if_pyth.txt* For Vim version 8.0. Last change: 2018 Jan 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@ -736,8 +736,8 @@ or 'pythonthreedll' option can be also used to specify the Python DLL.
|
||||
|
||||
The name of the DLL should match the Python version Vim was compiled with.
|
||||
Currently the name for Python 2 is "python27.dll", that is for Python 2.7.
|
||||
That is the default value for 'pythondll'. For Python 3 it is python35.dll
|
||||
(Python 3.5). To know for sure edit "gvim.exe" and search for
|
||||
That is the default value for 'pythondll'. For Python 3 it is python36.dll
|
||||
(Python 3.6). To know for sure edit "gvim.exe" and search for
|
||||
"python\d*.dll\c".
|
||||
|
||||
|
||||
@ -809,7 +809,8 @@ Raising SystemExit exception in python isn't endorsed way to quit vim, use: >
|
||||
You can test what Python version is available with: >
|
||||
if has('python')
|
||||
echo 'there is Python 2.x'
|
||||
elseif has('python3')
|
||||
endif
|
||||
if has('python3')
|
||||
echo 'there is Python 3.x'
|
||||
endif
|
||||
|
||||
@ -818,6 +819,24 @@ dynamically, these has() calls will try to load them. If only one can be
|
||||
loaded at a time, just checking if Python 2 or 3 are available will prevent
|
||||
the other one from being available.
|
||||
|
||||
To avoid loading the dynamic library, only check if Vim was compiled with
|
||||
python support: >
|
||||
if has('python_compiled')
|
||||
echo 'compiled with Python 2.x support'
|
||||
if has('python_dynamic')
|
||||
echo 'Python 2.x dynamically loaded'
|
||||
endif
|
||||
endif
|
||||
if has('python3_compiled')
|
||||
echo 'compiled with Python 3.x support'
|
||||
if has('python3_dynamic')
|
||||
echo 'Python 3.x dynamically loaded'
|
||||
endif
|
||||
endif
|
||||
|
||||
This also tells you whether Python is dynamically loaded, which will fail if
|
||||
the runtime library cannot be found.
|
||||
|
||||
==============================================================================
|
||||
11. Python X *python_x* *pythonx*
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 8.0. Last change: 2017 May 30
|
||||
*insert.txt* For Vim version 8.0. Last change: 2018 Jan 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -433,7 +433,7 @@ An example for using CTRL-G U: >
|
||||
inoremap ( ()<C-G>U<Left>
|
||||
|
||||
This makes it possible to use the cursor keys in Insert mode, without breaking
|
||||
the undo sequence and therefore using |.| (redo) will work as expected.
|
||||
the undo sequence and therefore using |.| (redo) will work as expected.
|
||||
Also entering a text like (with the "(" mapping from above): >
|
||||
|
||||
Lorem ipsum (dolor
|
||||
@ -1296,7 +1296,8 @@ it here: http://ctags.sourceforge.net/ Version 5.6 or later is recommended.
|
||||
For version 5.5.4 you should add a patch that adds the "typename:" field:
|
||||
ftp://ftp.vim.org/pub/vim/unstable/patches/ctags-5.5.4.patch
|
||||
A compiled .exe for MS-Windows can be found at:
|
||||
http://georgevreilly.com/vim/ctags.html
|
||||
http://ctags.sourceforge.net/
|
||||
https://github.com/universal-ctags/ctags-win32
|
||||
|
||||
If you want to complete system functions you can do something like this. Use
|
||||
ctags to generate a tags file for all the system header files: >
|
||||
@ -1472,7 +1473,7 @@ The completions provided by CTRL-X CTRL-O are sensitive to the context:
|
||||
|
||||
Notes:
|
||||
- Vim will load/evaluate code in order to provide completions. This may
|
||||
cause some code execution, which may be a concern. This is no longer
|
||||
cause some code execution, which may be a concern. This is no longer
|
||||
enabled by default, to enable this feature add >
|
||||
let g:rubycomplete_buffer_loading = 1
|
||||
<- In context 1 above, Vim can parse the entire buffer to add a list of
|
||||
@ -1528,15 +1529,15 @@ that begin with the filetype, "php", in this case. For example these syntax
|
||||
groups are included by default with the PHP: phpEnvVar, phpIntVar,
|
||||
phpFunctions.
|
||||
|
||||
If you wish non-filetype syntax items to also be included, you can use a
|
||||
regular expression syntax (added in version 13.0 of autoload\syntaxcomplete.vim)
|
||||
to add items. Looking at the output from ":syntax list" while editing a PHP file
|
||||
I can see some of these entries: >
|
||||
If you wish non-filetype syntax items to also be included, you can use a
|
||||
regular expression syntax (added in version 13.0 of
|
||||
autoload\syntaxcomplete.vim) to add items. Looking at the output from
|
||||
":syntax list" while editing a PHP file I can see some of these entries: >
|
||||
htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
|
||||
|
||||
To pick up any JavaScript and HTML keyword syntax groups while editing a PHP
|
||||
file, you can use 3 different regexs, one for each language. Or you can
|
||||
simply restrict the include groups to a particular value, without using
|
||||
file, you can use 3 different regexs, one for each language. Or you can
|
||||
simply restrict the include groups to a particular value, without using
|
||||
a regex string: >
|
||||
let g:omni_syntax_group_include_php = 'php\w\+,javaScript\w\+,html\w\+'
|
||||
let g:omni_syntax_group_include_php = 'phpFunctions,phpMethods'
|
||||
@ -1549,9 +1550,9 @@ highlight. These items will be available within the omni completion list.
|
||||
|
||||
Some people may find this list unwieldy or are only interested in certain
|
||||
items. There are two ways to prune this list (if necessary). If you find
|
||||
certain syntax groups you do not wish displayed you can use two different
|
||||
methods to identify these groups. The first specifically lists the syntax
|
||||
groups by name. The second uses a regular expression to identify both
|
||||
certain syntax groups you do not wish displayed you can use two different
|
||||
methods to identify these groups. The first specifically lists the syntax
|
||||
groups by name. The second uses a regular expression to identify both
|
||||
syntax groups. Simply add one the following to your vimrc: >
|
||||
let g:omni_syntax_group_exclude_php = 'phpCoreConstant,phpConstant'
|
||||
let g:omni_syntax_group_exclude_php = 'php\w*Constant'
|
||||
@ -1574,22 +1575,22 @@ vimrc: >
|
||||
|
||||
For plugin developers, the plugin exposes a public function OmniSyntaxList.
|
||||
This function can be used to request a List of syntax items. When editing a
|
||||
SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
|
||||
SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
|
||||
various groups and syntax items. For example: >
|
||||
syntax list
|
||||
syntax list
|
||||
|
||||
Yields data similar to this: >
|
||||
sqlOperator xxx some prior all like and any escape exists in is not
|
||||
or intersect minus between distinct
|
||||
links to Operator
|
||||
sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier
|
||||
date money long tinyint unsigned xml text smalldate
|
||||
double datetime nchar smallint numeric time bit char
|
||||
varbinary binary smallmoney
|
||||
image float integer timestamp real decimal
|
||||
Yields data similar to this:
|
||||
sqlOperator xxx some prior all like and any escape exists in is not ~
|
||||
or intersect minus between distinct ~
|
||||
links to Operator ~
|
||||
sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier ~
|
||||
date money long tinyint unsigned xml text smalldate ~
|
||||
double datetime nchar smallint numeric time bit char ~
|
||||
varbinary binary smallmoney ~
|
||||
image float integer timestamp real decimal ~
|
||||
|
||||
There are two syntax groups listed here: sqlOperator and sqlType. To retrieve
|
||||
a List of syntax items you can call OmniSyntaxList a number of different
|
||||
a List of syntax items you can call OmniSyntaxList a number of different
|
||||
ways. To retrieve all syntax items regardless of syntax group: >
|
||||
echo OmniSyntaxList( [] )
|
||||
|
||||
@ -1606,7 +1607,6 @@ From within a plugin, you would typically assign the output to a List: >
|
||||
let myKeywords = []
|
||||
let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
|
||||
|
||||
|
||||
|
||||
SQL *ft-sql-omni*
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 8.0. Last change: 2017 Sep 04
|
||||
*intro.txt* For Vim version 8.0. Last change: 2018 Jan 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -138,7 +138,7 @@ There are two ways to report bugs, both work:
|
||||
see the message. If you don't want that, e.g. because it is a security
|
||||
issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer
|
||||
(that's Bram).
|
||||
2. Open issue on GitHub: https://github.com/vim/vim/issues
|
||||
2. Open an issue on GitHub: https://github.com/vim/vim/issues
|
||||
The text will be forwarded to the vim-dev maillist.
|
||||
|
||||
Please be brief; all the time that is spent on answering mail is subtracted
|
||||
|
@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 8.0. Last change: 2016 Jul 21
|
||||
*mbyte.txt* For Vim version 8.0. Last change: 2018 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@ -1257,8 +1257,8 @@ Combining forms:
|
||||
==============================================================================
|
||||
10. Input with imactivatefunc() *mbyte-func*
|
||||
|
||||
Vim has |imactivatefunc()| and |imstatusfunc()|. This is useful to
|
||||
activate/deativate input method from Vim in any way, also with an external
|
||||
Vim has the 'imactivatefunc' and 'imstatusfunc' options. These are useful to
|
||||
activate/deactivate the input method from Vim in any way, also with an external
|
||||
command. For example, fcitx provide fcitx-remote command: >
|
||||
|
||||
set iminsert=2
|
||||
|
@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 8.0. Last change: 2017 Oct 14
|
||||
*message.txt* For Vim version 8.0. Last change: 2018 Feb 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -76,7 +76,7 @@ See `:messages` above.
|
||||
LIST OF MESSAGES
|
||||
*E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317*
|
||||
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
|
||||
*E323* *E341* *E473* *E570* *E685* >
|
||||
*E323* *E341* *E473* *E570* *E685* *E950* >
|
||||
Add to read buffer
|
||||
makemap: Illegal mode
|
||||
Cannot create BalloonEval with both message and callback
|
||||
@ -97,6 +97,7 @@ LIST OF MESSAGES
|
||||
Internal error
|
||||
Internal error: {function}
|
||||
fatal error in cs_manage_matches
|
||||
Invalid count for del_bytes(): {N}
|
||||
|
||||
This is an internal error. If you can reproduce it, please send in a bug
|
||||
report. |bugs|
|
||||
|
@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.0. Last change: 2017 Nov 18
|
||||
*options.txt* For Vim version 8.0. Last change: 2018 Feb 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -2634,6 +2634,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
vertical Start diff mode with vertical splits (unless
|
||||
explicitly specified otherwise).
|
||||
|
||||
hiddenoff Do not use diff mode for a buffer when it
|
||||
becomes hidden.
|
||||
|
||||
foldcolumn:{n} Set the 'foldcolumn' option to {n} when
|
||||
starting diff mode. Without this 2 is used.
|
||||
|
||||
@ -4464,8 +4467,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
match may not be found. This is to avoid that Vim hangs while you
|
||||
are typing the pattern.
|
||||
The highlighting can be set with the 'i' flag in 'highlight'.
|
||||
When 'hlsearch' is on, all matched strings are highlighted too while typing
|
||||
a search command. See also: 'hlsearch'.
|
||||
When 'hlsearch' is on, all matched strings are highlighted too while
|
||||
typing a search command. See also: 'hlsearch'.
|
||||
If you don't want turn 'hlsearch' on, but want to highlight all matches
|
||||
while searching, you can turn on and off 'hlsearch' with autocmd.
|
||||
Example: >
|
||||
@ -5746,11 +5749,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
copy of the original file will be kept. The name of the copy is the
|
||||
name of the original file with the string in the 'patchmode' option
|
||||
appended. This option should start with a dot. Use a string like
|
||||
".org". 'backupdir' must not be empty for this to work (Detail: The
|
||||
backup file is renamed to the patchmode file after the new file has
|
||||
been successfully written, that's why it must be possible to write a
|
||||
backup file). If there was no file to be backed up, an empty file is
|
||||
created.
|
||||
".orig" or ".org". 'backupdir' must not be empty for this to work
|
||||
(Detail: The backup file is renamed to the patchmode file after the
|
||||
new file has been successfully written, that's why it must be possible
|
||||
to write a backup file). If there was no file to be backed up, an
|
||||
empty file is created.
|
||||
When the 'backupskip' pattern matches, a patchmode file is not made.
|
||||
Using 'patchmode' for compressed files appends the extension at the
|
||||
end (e.g., "file.gz.orig"), thus the resulting name isn't always
|
||||
@ -5950,6 +5953,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{not in Vi}
|
||||
Determines the maximum number of items to show in the popup menu for
|
||||
Insert mode completion. When zero as much space as available is used.
|
||||
|ins-completion-menu|.
|
||||
|
||||
*'pumwidth'* *'pw'*
|
||||
'pumwidth' 'pw' number (default 0)
|
||||
global
|
||||
{not available when compiled without the
|
||||
|+insert_expand| feature}
|
||||
{not in Vi}
|
||||
Determines the minium width to use for the popup menu for Insert mode
|
||||
completion. When zero the default of 15 screen cells is used.
|
||||
|ins-completion-menu|.
|
||||
|
||||
*'pythondll'*
|
||||
@ -5962,6 +5975,20 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
DYNAMIC_PYTHON_DLL, which was specified at compile time.
|
||||
Environment variables are expanded |:set_env|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'pythonhome'*
|
||||
'pythonhome' string (default "")
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+python/dyn|
|
||||
feature}
|
||||
Specifies the name of the Python 2.x home directory. When 'pythonhome'
|
||||
and the PYTHONHOME environment variable are not set, PYTHON_HOME,
|
||||
which was specified at compile time, will be used for the Python 2.x
|
||||
home directory.
|
||||
Environment variables are expanded |:set_env|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'pythonthreedll'*
|
||||
@ -5974,6 +6001,20 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
DYNAMIC_PYTHON3_DLL, which was specified at compile time.
|
||||
Environment variables are expanded |:set_env|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'pythonthreehome'*
|
||||
'pythonthreehome' string (default "")
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+python3/dyn|
|
||||
feature}
|
||||
Specifies the name of the Python 3 home directory. When
|
||||
'pythonthreehome' and the PYTHONHOME environment variable are not set,
|
||||
PYTHON3_HOME, which was specified at compile time, will be used for
|
||||
the Python 3 home directory.
|
||||
Environment variables are expanded |:set_env|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'pyxversion'* *'pyx'*
|
||||
@ -6119,9 +6160,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
geom pixelGeometry int 0 - 2 (see below)
|
||||
renmode renderingMode int 0 - 6 (see below)
|
||||
taamode textAntialiasMode int 0 - 3 (see below)
|
||||
scrlines Scroll Lines int (deprecated)
|
||||
|
||||
See this URL for detail:
|
||||
http://msdn.microsoft.com/en-us/library/dd368190.aspx
|
||||
See this URL for detail (except for scrlines):
|
||||
https://msdn.microsoft.com/en-us/library/dd368190.aspx
|
||||
|
||||
For geom: structure of a device pixel.
|
||||
0 - DWRITE_PIXEL_GEOMETRY_FLAT
|
||||
@ -6129,7 +6171,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
2 - DWRITE_PIXEL_GEOMETRY_BGR
|
||||
|
||||
See this URL for detail:
|
||||
http://msdn.microsoft.com/en-us/library/dd368114.aspx
|
||||
https://msdn.microsoft.com/en-us/library/dd368114.aspx
|
||||
|
||||
For renmode: method of rendering glyphs.
|
||||
0 - DWRITE_RENDERING_MODE_DEFAULT
|
||||
@ -6141,7 +6183,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
6 - DWRITE_RENDERING_MODE_OUTLINE
|
||||
|
||||
See this URL for detail:
|
||||
http://msdn.microsoft.com/en-us/library/dd368118.aspx
|
||||
https://msdn.microsoft.com/en-us/library/dd368118.aspx
|
||||
|
||||
For taamode: antialiasing mode used for drawing text.
|
||||
0 - D2D1_TEXT_ANTIALIAS_MODE_DEFAULT
|
||||
@ -6150,7 +6192,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
3 - D2D1_TEXT_ANTIALIAS_MODE_ALIASED
|
||||
|
||||
See this URL for detail:
|
||||
http://msdn.microsoft.com/en-us/library/dd368170.aspx
|
||||
https://msdn.microsoft.com/en-us/library/dd368170.aspx
|
||||
|
||||
For scrlines:
|
||||
This was used for optimizing scrolling behavior, however this
|
||||
is now deprecated. If specified, it is simply ignored.
|
||||
|
||||
Example: >
|
||||
set encoding=utf-8
|
||||
@ -6159,13 +6205,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
<
|
||||
If select a raster font (Courier, Terminal or FixedSys which
|
||||
have ".fon" extension in file name) to 'guifont', it will be
|
||||
drawn by GDI as a fallback. This fallback will cause
|
||||
significant slow down on drawing.
|
||||
drawn by GDI as a fallback.
|
||||
|
||||
NOTE: It is known that some fonts and options combination
|
||||
causes trouble on drawing glyphs.
|
||||
|
||||
- 'rendmode:5' and 'renmode:6' will not work with some
|
||||
- 'renmode:5' and 'renmode:6' will not work with some
|
||||
special made fonts (True-Type fonts which includes only
|
||||
bitmap glyphs).
|
||||
- 'taamode:3' will not work with some vector fonts.
|
||||
@ -6595,14 +6640,21 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
It is allowed to give an argument to the command, e.g. "csh -f".
|
||||
See |option-backslash| about including spaces and backslashes.
|
||||
Environment variables are expanded |:set_env|.
|
||||
|
||||
If the name of the shell contains a space, you might need to enclose
|
||||
it in quotes. Example: >
|
||||
it in quotes or escape the space. Example with quotes: >
|
||||
:set shell=\"c:\program\ files\unix\sh.exe\"\ -f
|
||||
< Note the backslash before each quote (to avoid starting a comment) and
|
||||
each space (to avoid ending the option value). Also note that the
|
||||
"-f" is not inside the quotes, because it is not part of the command
|
||||
name. And Vim automagically recognizes the backslashes that are path
|
||||
name. Vim automagically recognizes the backslashes that are path
|
||||
separators.
|
||||
Example with escaped space (Vim will do this when initializing the
|
||||
option from $SHELL): >
|
||||
:set shell=/bin/with\\\ space/sh
|
||||
< The resulting value of 'shell' is "/bin/with\ space/sh", two
|
||||
backslashes are consumed by `:set`.
|
||||
|
||||
Under MS-Windows, when the executable ends in ".com" it must be
|
||||
included. Thus setting the shell to "command.com" or "4dos.com"
|
||||
works, but "command" and "4dos" do not work for all commands (e.g.,
|
||||
@ -8255,7 +8307,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
number, more intelligent detection process runs.
|
||||
The "xterm2" value will be set if the xterm version is reported to be
|
||||
from 95 to 276. The "sgr" value will be set if the xterm version is
|
||||
277 or highter and when Vim detects Mac Terminal.app or Iterm2.
|
||||
277 or higher and when Vim detects Mac Terminal.app or iTerm2.
|
||||
If you do not want 'ttymouse' to be set to "xterm2" or "sgr"
|
||||
automatically, set t_RV to an empty string: >
|
||||
:set t_RV=
|
||||
|
@ -1,4 +1,4 @@
|
||||
*os_mac.txt* For Vim version 8.0. Last change: 2017 Apr 28
|
||||
*os_mac.txt* For Vim version 8.0. Last change: 2018 Jan 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@ -165,7 +165,7 @@ and then run `make` to build Vim. The order of the options doesn't matter.
|
||||
|
||||
To make sure at runtime whether or not the darwin feature is compiled in, you
|
||||
can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0
|
||||
otherwise. For backwards comptibility, you can still use `macunix` instead of
|
||||
otherwise. For backward compatibility, you can still use `macunix` instead of
|
||||
`osxdarwin`.
|
||||
|
||||
Notable use cases where `--disable-darwin` is turned out to be useful are:
|
||||
|
@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 8.0. Last change: 2017 Jun 05
|
||||
*pattern.txt* For Vim version 8.0. Last change: 2018 Feb 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -905,7 +905,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
becomes invalid. Vim doesn't automatically update the matches.
|
||||
Similar to moving the cursor for "\%#" |/\%#|.
|
||||
|
||||
*/\%l* */\%>l* */\%<l*
|
||||
*/\%l* */\%>l* */\%<l* *E951*
|
||||
\%23l Matches in a specific line.
|
||||
\%<23l Matches above a specific line (lower line number).
|
||||
\%>23l Matches below a specific line (higher line number).
|
||||
|
@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 8.0. Last change: 2017 Sep 13
|
||||
*quickfix.txt* For Vim version 8.0. Last change: 2017 Dec 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -64,6 +64,14 @@ When a window with a location list is split, the new window gets a copy of the
|
||||
location list. When there are no longer any references to a location list,
|
||||
the location list is destroyed.
|
||||
|
||||
*quickfix-changedtick*
|
||||
Every quickfix and location list has a read-only changedtick variable that
|
||||
tracks the total number of changes made to the list. Every time the quickfix
|
||||
list is modified, this count is incremented. This can be used to perform an
|
||||
action only when the list has changed. The getqflist() and getloclist()
|
||||
functions can be used to query the current value of changedtick. You cannot
|
||||
change the changedtick variable.
|
||||
|
||||
The following quickfix commands can be used. The location list commands are
|
||||
similar to the quickfix commands, replacing the 'c' prefix in the quickfix
|
||||
command with 'l'.
|
||||
@ -341,6 +349,50 @@ use this code: >
|
||||
au QuickfixCmdPost make call QfMakeConv()
|
||||
Another option is using 'makeencoding'.
|
||||
|
||||
*quickfix-title*
|
||||
Every quickfix and location list has a title. By default the title is set to
|
||||
the command that created the list. The |getqflist()| and |getloclist()|
|
||||
functions can be used to get the title of a quickfix and a location list
|
||||
respectively. The |setqflist()| and |setloclist()| functions can be used to
|
||||
modify the title of a quickfix and location list respectively. Examples: >
|
||||
call setqflist([], 'a', {'title' : 'Cmd output'})
|
||||
echo getqflist({'title' : 1})
|
||||
call setloclist(3, [], 'a', {'title' : 'Cmd output'})
|
||||
echo getloclist(3, {'title' : 1})
|
||||
<
|
||||
*quickfix-size*
|
||||
You can get the number of entries (size) in a quickfix and a location list
|
||||
using the |getqflist()| and |getloclist()| functions respectively. Examples: >
|
||||
echo getqflist({'size' : 1})
|
||||
echo getloclist(5, {'size' : 1})
|
||||
<
|
||||
*quickfix-context*
|
||||
Any Vim type can be associated as a context with a quickfix or location list.
|
||||
The |setqflist()| and the |setloclist()| functions can be used to associate a
|
||||
context with a quickfix and a location list respectively. The |getqflist()|
|
||||
and the |getloclist()| functions can be used to retrieve the context of a
|
||||
quickfix and a location list respectively. This is useful for a Vim plugin
|
||||
dealing with multiple quickfix/location lists.
|
||||
Examples: >
|
||||
|
||||
let somectx = {'name' : 'Vim', 'type' : 'Editor'}
|
||||
call setqflist([], 'a', {'context' : somectx})
|
||||
echo getqflist({'context' : 1})
|
||||
|
||||
let newctx = ['red', 'green', 'blue']
|
||||
call setloclist(2, [], 'a', {'id' : qfid, 'context' : newctx})
|
||||
echo getloclist(2, {'id' : qfid, 'context' : 1})
|
||||
<
|
||||
*quickfix-parse*
|
||||
You can parse a list of lines using 'errorformat' without creating or
|
||||
modifying a quickfix list using the |getqflist()| function. Examples: >
|
||||
echo getqflist({'lines' : ["F1:10:Line10", "F2:20:Line20"]})
|
||||
echo getqflist({'lines' : systemlist('grep -Hn quickfix *')})
|
||||
This returns a dictionary where the 'items' key contains the list of quickfix
|
||||
entries parsed from lines. The following shows how to use a custom
|
||||
'errorformat' to parse the lines without modifying the 'errorformat' option: >
|
||||
echo getqflist({'efm' : '%f#%l#%m', 'lines' : ['F1#10#Line']})
|
||||
<
|
||||
|
||||
EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
|
||||
*:cdo*
|
||||
@ -542,6 +594,13 @@ In all of the above cases, if the location list for the selected window is not
|
||||
yet set, then it is set to the location list displayed in the location list
|
||||
window.
|
||||
|
||||
*quickfix-window-ID*
|
||||
You can use the |getqflist()| and |getloclist()| functions to obtain the
|
||||
window ID of the quickfix window and location list window respectively (if
|
||||
present). Examples: >
|
||||
echo getqflist({'winid' : 1}).winid
|
||||
echo getloclist(2, {'winid' : 1}).winid
|
||||
<
|
||||
=============================================================================
|
||||
3. Using more than one list of errors *quickfix-error-lists*
|
||||
|
||||
@ -586,6 +645,14 @@ list, one newer list is overwritten. This is especially useful if you are
|
||||
browsing with ":grep" |grep|. If you want to keep the more recent error
|
||||
lists, use ":cnewer 99" first.
|
||||
|
||||
To get the number of lists in the quickfix and location list stack, you can
|
||||
use the |getqflist()| and |getloclist()| functions respectively with the list
|
||||
number set to the special value '$'. Examples: >
|
||||
echo getqflist({'nr' : '$'}).nr
|
||||
echo getloclist(3, {'nr' : '$'}).nr
|
||||
To get the number of the current list in the stack: >
|
||||
echo getqflist({'nr' : 0}).nr
|
||||
<
|
||||
=============================================================================
|
||||
4. Using :make *:make_makeprg*
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 8.0. Last change: 2017 Nov 21
|
||||
*quickref.txt* For Vim version 8.0. Last change: 2018 Jan 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -839,7 +839,9 @@ Short explanation of each option: *option-list*
|
||||
'prompt' 'prompt' enable prompt in Ex mode
|
||||
'pumheight' 'ph' maximum height of the popup menu
|
||||
'pythondll' name of the Python 2 dynamic library
|
||||
'pythonhome' name of the Python 2 home directory
|
||||
'pythonthreedll' name of the Python 3 dynamic library
|
||||
'pythonthreehome' name of the Python 3 home directory
|
||||
'pyxversion' 'pyx' Python version used for pyx* commands
|
||||
'quoteescape' 'qe' escape characters used in a string
|
||||
'readonly' 'ro' disallow writing the buffer
|
||||
|
@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 8.0. Last change: 2017 Jun 10
|
||||
*repeat.txt* For Vim version 8.0. Last change: 2017 Dec 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -242,6 +242,10 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
If the directory pack/*/opt/{name}/after exists it is
|
||||
added at the end of 'runtimepath'.
|
||||
|
||||
If loading packages from "pack/*/start" was skipped,
|
||||
then this directory is searched first:
|
||||
pack/*/start/{name} ~
|
||||
|
||||
Note that {name} is the directory name, not the name
|
||||
of the .vim file. All the files matching the pattern
|
||||
pack/*/opt/{name}/plugin/**/*.vim ~
|
||||
|
@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 8.0. Last change: 2017 Nov 18
|
||||
*starting.txt* For Vim version 8.0. Last change: 2018 Feb 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -1010,14 +1010,13 @@ Vi compatible default value ~
|
||||
When Vim starts, the 'compatible' option is on. This will be used when Vim
|
||||
starts its initializations. But as soon as:
|
||||
- a user vimrc file is found, or
|
||||
- a vimrc file in the current directory, or
|
||||
- a vimrc file in the current directoryis found, or
|
||||
- the "VIMINIT" environment variable is set, or
|
||||
- the "-N" command line argument is given, or
|
||||
- the "--clean" command line argument is given, or
|
||||
even when no vimrc file exists.
|
||||
- the |defaults.vim| script is loaded, or
|
||||
- gvimrc file was found,
|
||||
then it will be set to 'nocompatible'.
|
||||
- a gvimrc file was found,
|
||||
then the option will be set to 'nocompatible'.
|
||||
|
||||
Note that this does NOT happen when a system-wide vimrc file was found.
|
||||
|
||||
@ -1043,7 +1042,7 @@ giving the mapping.
|
||||
Defaults without a .vimrc file ~
|
||||
*defaults.vim*
|
||||
If Vim is started normally and no user vimrc file is found, the
|
||||
$VIMRUTIME/defaults.vim script is loaded. This will set 'compatible' off,
|
||||
$VIMRUNTIME/defaults.vim script is loaded. This will set 'compatible' off,
|
||||
switch on syntax highlighting and a few more things. See the script for
|
||||
details. NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
|
||||
patch 7.4.2111 to be exact).
|
||||
|
@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.0. Last change: 2017 Sep 30
|
||||
*syntax.txt* For Vim version 8.0. Last change: 2018 Jan 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -2779,13 +2779,10 @@ Ruby syntax will perform spellchecking of strings if you define
|
||||
|
||||
SCHEME *scheme.vim* *ft-scheme-syntax*
|
||||
|
||||
By default only R5RS keywords are highlighted and properly indented.
|
||||
By default only R7RS keywords are highlighted and properly indented.
|
||||
|
||||
MzScheme-specific stuff will be used if b:is_mzscheme or g:is_mzscheme
|
||||
variables are defined.
|
||||
|
||||
Also scheme.vim supports keywords of the Chicken Scheme->C compiler. Define
|
||||
b:is_chicken or g:is_chicken, if you need them.
|
||||
scheme.vim also supports extensions of the CHICKEN Scheme->C compiler.
|
||||
Define b:is_chicken or g:is_chicken, if you need them.
|
||||
|
||||
|
||||
SDL *sdl.vim* *ft-sdl-syntax*
|
||||
@ -5025,12 +5022,19 @@ StatusLine status line of current window
|
||||
StatusLineNC status lines of not-current windows
|
||||
Note: if this is equal to "StatusLine" Vim will use "^^^" in
|
||||
the status line of the current window.
|
||||
*hl-StatusLineTerm*
|
||||
StatusLineTerm status line of current window, if it is a |terminal| window.
|
||||
*hl-StatusLineTermNC*
|
||||
StatusLineTermNC status lines of not-current windows that is a |terminal|
|
||||
window.
|
||||
*hl-TabLine*
|
||||
TabLine tab pages line, not active tab page label
|
||||
*hl-TabLineFill*
|
||||
TabLineFill tab pages line, where there are no labels
|
||||
*hl-TabLineSel*
|
||||
TabLineSel tab pages line, active tab page label
|
||||
*hl-Terminal*
|
||||
Terminal |terminal| window (see |terminal-size-color|)
|
||||
*hl-Title*
|
||||
Title titles for output from ":set all", ":autocmd" etc.
|
||||
*hl-Visual*
|
||||
|
@ -785,7 +785,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'pvh' options.txt /*'pvh'*
|
||||
'pvw' options.txt /*'pvw'*
|
||||
'pythondll' options.txt /*'pythondll'*
|
||||
'pythonhome' options.txt /*'pythonhome'*
|
||||
'pythonthreedll' options.txt /*'pythonthreedll'*
|
||||
'pythonthreehome' options.txt /*'pythonthreehome'*
|
||||
'pyx' options.txt /*'pyx'*
|
||||
'pyxversion' options.txt /*'pyxversion'*
|
||||
'qe' options.txt /*'qe'*
|
||||
@ -3664,6 +3666,7 @@ Cmd-event autocmd.txt /*Cmd-event*
|
||||
CmdUndefined autocmd.txt /*CmdUndefined*
|
||||
Cmdline cmdline.txt /*Cmdline*
|
||||
Cmdline-mode cmdline.txt /*Cmdline-mode*
|
||||
CmdlineChanged autocmd.txt /*CmdlineChanged*
|
||||
CmdlineEnter autocmd.txt /*CmdlineEnter*
|
||||
CmdlineLeave autocmd.txt /*CmdlineLeave*
|
||||
CmdwinEnter autocmd.txt /*CmdwinEnter*
|
||||
@ -3688,6 +3691,7 @@ Dictionaries eval.txt /*Dictionaries*
|
||||
Dictionary eval.txt /*Dictionary*
|
||||
Dictionary-function eval.txt /*Dictionary-function*
|
||||
Digraphs digraph.txt /*Digraphs*
|
||||
DirChanged autocmd.txt /*DirChanged*
|
||||
E motion.txt /*E*
|
||||
E10 message.txt /*E10*
|
||||
E100 diff.txt /*E100*
|
||||
@ -4577,6 +4581,9 @@ E947 terminal.txt /*E947*
|
||||
E948 terminal.txt /*E948*
|
||||
E949 editing.txt /*E949*
|
||||
E95 message.txt /*E95*
|
||||
E950 message.txt /*E950*
|
||||
E951 pattern.txt /*E951*
|
||||
E952 autocmd.txt /*E952*
|
||||
E96 diff.txt /*E96*
|
||||
E97 diff.txt /*E97*
|
||||
E98 diff.txt /*E98*
|
||||
@ -4820,6 +4827,7 @@ TermResponse autocmd.txt /*TermResponse*
|
||||
Terminal-mode terminal.txt /*Terminal-mode*
|
||||
TextChanged autocmd.txt /*TextChanged*
|
||||
TextChangedI autocmd.txt /*TextChangedI*
|
||||
TextYankPost autocmd.txt /*TextYankPost*
|
||||
Transact-SQL ft_sql.txt /*Transact-SQL*
|
||||
U undo.txt /*U*
|
||||
UTF-8 mbyte.txt /*UTF-8*
|
||||
@ -5869,6 +5877,7 @@ eval() eval.txt /*eval()*
|
||||
eval-examples eval.txt /*eval-examples*
|
||||
eval-sandbox eval.txt /*eval-sandbox*
|
||||
eval.txt eval.txt /*eval.txt*
|
||||
event-variable eval.txt /*event-variable*
|
||||
eventhandler() eval.txt /*eventhandler()*
|
||||
eview starting.txt /*eview*
|
||||
evim starting.txt /*evim*
|
||||
@ -6230,6 +6239,7 @@ ft-vb-syntax syntax.txt /*ft-vb-syntax*
|
||||
ft-verilog-indent indent.txt /*ft-verilog-indent*
|
||||
ft-vhdl-indent indent.txt /*ft-vhdl-indent*
|
||||
ft-vim-indent indent.txt /*ft-vim-indent*
|
||||
ft-vim-plugin filetype.txt /*ft-vim-plugin*
|
||||
ft-vim-syntax syntax.txt /*ft-vim-syntax*
|
||||
ft-xf86conf-syntax syntax.txt /*ft-xf86conf-syntax*
|
||||
ft-xhtml-omni insert.txt /*ft-xhtml-omni*
|
||||
@ -6237,6 +6247,7 @@ ft-xml-omni insert.txt /*ft-xml-omni*
|
||||
ft-xml-syntax syntax.txt /*ft-xml-syntax*
|
||||
ft-xpm-syntax syntax.txt /*ft-xpm-syntax*
|
||||
ft-yaml-syntax syntax.txt /*ft-yaml-syntax*
|
||||
ft-zimbu-plugin filetype.txt /*ft-zimbu-plugin*
|
||||
ft-zsh-syntax syntax.txt /*ft-zsh-syntax*
|
||||
ft_ada.txt ft_ada.txt /*ft_ada.txt*
|
||||
ft_rust.txt ft_rust.txt /*ft_rust.txt*
|
||||
@ -6821,9 +6832,12 @@ hl-SpellLocal syntax.txt /*hl-SpellLocal*
|
||||
hl-SpellRare syntax.txt /*hl-SpellRare*
|
||||
hl-StatusLine syntax.txt /*hl-StatusLine*
|
||||
hl-StatusLineNC syntax.txt /*hl-StatusLineNC*
|
||||
hl-StatusLineTerm syntax.txt /*hl-StatusLineTerm*
|
||||
hl-StatusLineTermNC syntax.txt /*hl-StatusLineTermNC*
|
||||
hl-TabLine syntax.txt /*hl-TabLine*
|
||||
hl-TabLineFill syntax.txt /*hl-TabLineFill*
|
||||
hl-TabLineSel syntax.txt /*hl-TabLineSel*
|
||||
hl-Terminal syntax.txt /*hl-Terminal*
|
||||
hl-Title syntax.txt /*hl-Title*
|
||||
hl-Tooltip syntax.txt /*hl-Tooltip*
|
||||
hl-User1 syntax.txt /*hl-User1*
|
||||
@ -6834,6 +6848,8 @@ hl-Visual syntax.txt /*hl-Visual*
|
||||
hl-VisualNOS syntax.txt /*hl-VisualNOS*
|
||||
hl-WarningMsg syntax.txt /*hl-WarningMsg*
|
||||
hl-WildMenu syntax.txt /*hl-WildMenu*
|
||||
hl-debugBreakpoint terminal.txt /*hl-debugBreakpoint*
|
||||
hl-debugPC terminal.txt /*hl-debugPC*
|
||||
hlID() eval.txt /*hlID()*
|
||||
hlexists() eval.txt /*hlexists()*
|
||||
hlsearch-variable eval.txt /*hlsearch-variable*
|
||||
@ -7346,6 +7362,7 @@ mbyte-encoding mbyte.txt /*mbyte-encoding*
|
||||
mbyte-first mbyte.txt /*mbyte-first*
|
||||
mbyte-fonts-MSwin mbyte.txt /*mbyte-fonts-MSwin*
|
||||
mbyte-fonts-X11 mbyte.txt /*mbyte-fonts-X11*
|
||||
mbyte-func mbyte.txt /*mbyte-func*
|
||||
mbyte-keymap mbyte.txt /*mbyte-keymap*
|
||||
mbyte-locale mbyte.txt /*mbyte-locale*
|
||||
mbyte-options mbyte.txt /*mbyte-options*
|
||||
@ -7825,6 +7842,8 @@ option-backslash options.txt /*option-backslash*
|
||||
option-list quickref.txt /*option-list*
|
||||
option-summary options.txt /*option-summary*
|
||||
option-window options.txt /*option-window*
|
||||
option_restore() eval.txt /*option_restore()*
|
||||
option_save() eval.txt /*option_save()*
|
||||
options options.txt /*options*
|
||||
options-changed version5.txt /*options-changed*
|
||||
options-in-terminal terminal.txt /*options-in-terminal*
|
||||
@ -8057,14 +8076,20 @@ quake.vim syntax.txt /*quake.vim*
|
||||
quickfix quickfix.txt /*quickfix*
|
||||
quickfix-6 version6.txt /*quickfix-6*
|
||||
quickfix-ID quickfix.txt /*quickfix-ID*
|
||||
quickfix-changedtick quickfix.txt /*quickfix-changedtick*
|
||||
quickfix-context quickfix.txt /*quickfix-context*
|
||||
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
|
||||
quickfix-error-lists quickfix.txt /*quickfix-error-lists*
|
||||
quickfix-functions usr_41.txt /*quickfix-functions*
|
||||
quickfix-gcc quickfix.txt /*quickfix-gcc*
|
||||
quickfix-manx quickfix.txt /*quickfix-manx*
|
||||
quickfix-parse quickfix.txt /*quickfix-parse*
|
||||
quickfix-perl quickfix.txt /*quickfix-perl*
|
||||
quickfix-size quickfix.txt /*quickfix-size*
|
||||
quickfix-title quickfix.txt /*quickfix-title*
|
||||
quickfix-valid quickfix.txt /*quickfix-valid*
|
||||
quickfix-window quickfix.txt /*quickfix-window*
|
||||
quickfix-window-ID quickfix.txt /*quickfix-window-ID*
|
||||
quickfix.txt quickfix.txt /*quickfix.txt*
|
||||
quickref quickref.txt /*quickref*
|
||||
quickref.txt quickref.txt /*quickref.txt*
|
||||
@ -9103,6 +9128,7 @@ v:ctype eval.txt /*v:ctype*
|
||||
v:dying eval.txt /*v:dying*
|
||||
v:errmsg eval.txt /*v:errmsg*
|
||||
v:errors eval.txt /*v:errors*
|
||||
v:event eval.txt /*v:event*
|
||||
v:exception eval.txt /*v:exception*
|
||||
v:false eval.txt /*v:false*
|
||||
v:fcs_choice eval.txt /*v:fcs_choice*
|
||||
@ -9470,6 +9496,7 @@ win_getid() eval.txt /*win_getid()*
|
||||
win_gotoid() eval.txt /*win_gotoid()*
|
||||
win_id2tabwin() eval.txt /*win_id2tabwin()*
|
||||
win_id2win() eval.txt /*win_id2win()*
|
||||
win_screenpos() eval.txt /*win_screenpos()*
|
||||
winbufnr() eval.txt /*winbufnr()*
|
||||
wincol() eval.txt /*wincol()*
|
||||
window windows.txt /*window*
|
||||
|
@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 8.0. Last change: 2017 Nov 17
|
||||
*terminal.txt* For Vim version 8.0. Last change: 2018 Jan 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -122,7 +122,8 @@ and background colors are taken from Vim, the Normal highlight group.
|
||||
For a color terminal the 'background' option is used to decide whether the
|
||||
terminal window will start with a white or black background.
|
||||
|
||||
To use a different color the Terminal highlight group can be used: >
|
||||
To use a different color the Terminal highlight group can be used, for
|
||||
example: >
|
||||
hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
|
||||
|
||||
|
||||
@ -148,11 +149,6 @@ Syntax ~
|
||||
keys in the terminal window. For MS-Windows see the
|
||||
++eof argument below.
|
||||
|
||||
Two comma separated numbers are used as "rows,cols".
|
||||
E.g. `:24,80gdb` opens a terminal with 24 rows and 80
|
||||
columns. However, if the terminal window spans the
|
||||
Vim window with, there is no vertical split, the Vim
|
||||
window width is used.
|
||||
*term++close* *term++open*
|
||||
Supported [options] are:
|
||||
++close The terminal window will close
|
||||
@ -167,9 +163,15 @@ Syntax ~
|
||||
++hidden Open the terminal in a hidden buffer,
|
||||
no window will be used.
|
||||
++rows={height} Use {height} for the terminal window
|
||||
height.
|
||||
height. If the terminal uses the full
|
||||
Vim height (no window above or below
|
||||
th terminal window) the command line
|
||||
height will be reduced as needed.
|
||||
++cols={width} Use {width} for the terminal window
|
||||
width.
|
||||
width. If the terminal uses the full
|
||||
Vim width (no window left or right of
|
||||
the terminal window) this value is
|
||||
ignored.
|
||||
++eof={text} when using [range]: text to send after
|
||||
the last line was written. Cannot
|
||||
contain white space. A CR is
|
||||
@ -370,12 +372,14 @@ Starting ~
|
||||
Load the plugin with this command: >
|
||||
packadd termdebug
|
||||
< *:Termdebug*
|
||||
To start debugging use `:TermDebug` folowed by the command name, for example: >
|
||||
To start debugging use `:Termdebug` followed by the command name, for example: >
|
||||
:Termdebug vim
|
||||
|
||||
This opens two windows:
|
||||
|
||||
gdb window A terminal window in which "gdb vim" is executed. Here you
|
||||
can directly interact with gdb. The buffer name is "!gdb".
|
||||
|
||||
program window A terminal window for the executed program. When "run" is
|
||||
used in gdb the program I/O will happen in this window, so
|
||||
that it does not interfere with controlling gdb. The buffer
|
||||
@ -476,14 +480,15 @@ In the window showing the source code these commands can used to control gdb:
|
||||
:Continue execute the gdb "continue" command
|
||||
:Stop interrupt the program
|
||||
|
||||
The plugin adds a window toolbar with these entries:
|
||||
If 'mouse' is set the plugin adds a window toolbar with these entries:
|
||||
Step :Step
|
||||
Next :Over
|
||||
Finish :Finish
|
||||
Cont :Continue
|
||||
Stop :Stop
|
||||
Eval :Evaluate
|
||||
This way you can use the mouse to perform the most common commands.
|
||||
This way you can use the mouse to perform the most common commands. You need
|
||||
to have the 'mouse' option set to enable mouse clicks.
|
||||
|
||||
|
||||
Inspecting variables ~
|
||||
@ -520,6 +525,7 @@ interface. This probably requires gdb version 7.12. if you get this error:
|
||||
Undefined command: "new-ui". Try "help".~
|
||||
Then your gdb is too old.
|
||||
|
||||
*hl-debugPC* *hl-debugBreakpoint*
|
||||
The color of the signs can be adjusted with these highlight groups:
|
||||
- debugPC the current position
|
||||
- debugBreakpoint a breakpoint
|
||||
|
68
runtime/doc/test_urls.vim
Normal file
68
runtime/doc/test_urls.vim
Normal file
@ -0,0 +1,68 @@
|
||||
" Test for URLs in help documents.
|
||||
"
|
||||
" Opens a new window with all found URLS followed by return code from curl
|
||||
" (anything other than 0 means unreachable)
|
||||
"
|
||||
" Written by Christian Brabandt.
|
||||
|
||||
func Test_check_URLs()
|
||||
if has("win32")
|
||||
echoerr "Doesn't work on MS-Windows"
|
||||
return
|
||||
endif
|
||||
if executable('curl')
|
||||
" Note: does not follow redirects!
|
||||
let s:command = 'curl --silent --fail --output /dev/null --head '
|
||||
elseif executable('wget')
|
||||
" Note: only allow a couple of redirects
|
||||
let s:command = 'wget --quiet -S --spider --max-redirect=2 --timeout=5 --tries=2 -O /dev/null '
|
||||
else
|
||||
echoerr 'Only works when "curl" or "wget" is available'
|
||||
return
|
||||
endif
|
||||
|
||||
let pat='\(https\?\|ftp\)://[^\t* ]\+'
|
||||
exe 'helpgrep' pat
|
||||
helpclose
|
||||
|
||||
let urls = map(getqflist(), 'v:val.text')
|
||||
" do not use submatch(1)!
|
||||
let urls = map(urls, {key, val -> matchstr(val, pat)})
|
||||
" remove examples like user@host (invalid urls)
|
||||
let urls = filter(urls, 'v:val !~ "@"')
|
||||
" Remove example URLs which are invalid
|
||||
let urls = filter(urls, {key, val -> val !~ '\<\(\(my\|some\)\?host\|machine\|hostname\|file\)\>'})
|
||||
new
|
||||
put =urls
|
||||
" remove some more invalid items
|
||||
" empty lines
|
||||
v/./d
|
||||
" remove # anchors
|
||||
%s/#.*$//e
|
||||
" remove trailing stuff (parenthesis, dot, comma, quotes), but only for HTTP
|
||||
" links
|
||||
g/^h/s#[.,)'"/>][:.]\?$##
|
||||
g#^[hf]t\?tp:/\(/\?\.*\)$#d
|
||||
silent! g/ftp://,$/d
|
||||
silent! g/=$/d
|
||||
let a = getline(1,'$')
|
||||
let a = uniq(sort(a))
|
||||
%d
|
||||
call setline(1, a)
|
||||
|
||||
" Do the testing.
|
||||
set nomore
|
||||
%s/.*/\=TestURL(submatch(0))/
|
||||
|
||||
" highlight the failures
|
||||
/.* \([0-9]*[1-9]\|[0-9]\{2,}\)$
|
||||
endfunc
|
||||
|
||||
func TestURL(url)
|
||||
" Relies on the return code to determine whether a page is valid
|
||||
echom printf("Testing URL: %d/%d %s", line('.'), line('$'), a:url)
|
||||
call system(s:command . shellescape(a:url))
|
||||
return printf("%s %d", a:url, v:shell_error)
|
||||
endfunc
|
||||
|
||||
call Test_check_URLs()
|
@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.0. Last change: 2017 Nov 21
|
||||
*todo.txt* For Vim version 8.0. Last change: 2018 Feb 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -54,6 +54,8 @@ Terminal emulator window:
|
||||
with the expected screenshot. Set t_Co to 256.
|
||||
|
||||
+channel:
|
||||
- get_job_options() isn't clear about what causes an error, often just returns
|
||||
"invalid argument".
|
||||
- Add a separate timeout for opening a socket. Currently it's fixed at 50
|
||||
msec, which is too small for a remote connection. (tverniquet, #2130)
|
||||
- Try out background make plugin:
|
||||
@ -127,42 +129,126 @@ Regexp problems:
|
||||
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
|
||||
(2017 May 15, #1252)
|
||||
|
||||
Use vim_clear() in more places, instead of vim_free() and assigning NULL.
|
||||
|
||||
Include a few color schemes, based on popularity:
|
||||
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
|
||||
http://vimawesome.com/?q=tag:color-scheme
|
||||
Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
|
||||
- monokai - Xia Crusoe (2017 Aug 4)
|
||||
- seoul256 - Christian Brabandt (2017 Aug 3)
|
||||
- gruvbox - Christian Brabandt (2017 Aug 3)
|
||||
- gruvbox - Christian Brabandt (2017 Aug 3) (simplified version from
|
||||
Lifepillar, 2018 Jan 22, #2573)
|
||||
- janah - Marco Hinz (2017 Aug 4)
|
||||
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
|
||||
Suggested by Hiroki Kokubun:
|
||||
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
|
||||
- [hybrid](https://github.com/w0ng/vim-hybrid)
|
||||
Include solarized color scheme?, it does not support termguicolors.
|
||||
-> Make check for colorscheme that it's sane.
|
||||
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
|
||||
|
||||
Reproducible:
|
||||
invalid memory access in regexp with zero-width.
|
||||
reproduced by Dominique, 2017 Dec 23
|
||||
|
||||
"silent! try" doesn't restore emsg_silent when an exception is thrown.
|
||||
(Ben Reilly, 2018 Jan 5, #2531) Possible solution by Christian Brabandt, 2018
|
||||
Jan 6.
|
||||
|
||||
Mode message isn't updated on vertical split. (Alexei Averchenko, 2018 Feb 2,
|
||||
#2611)
|
||||
|
||||
Errors found with random data:
|
||||
heap-buffer-overflow in alist_add (#2472)
|
||||
|
||||
Compiler warnings (geeknik, 2017 Oct 26):
|
||||
- signed integer overflow in do_sub() (#2249)
|
||||
- signed integer overflow in get_address() (#2248)
|
||||
- signed integer overflow in getdecchrs() (#2254)
|
||||
- signed integer overflow in nfa_regatom() (#2251)
|
||||
- undefined left shift in get_string_tv() (#2250)
|
||||
|
||||
Patch to use imactivatefunc() also without +xim feature. (Yasuhiro Matsumoto,
|
||||
2017 Nov 19, #2349)
|
||||
Cursor in wrong screen line with WinBar. (#2362)
|
||||
Fix by Christian Brabandt (2018 Jan 2)
|
||||
|
||||
'hlsearch' shows empty matches, which means highlighting everything.
|
||||
Don't do that. For "foo\|" or "\v"
|
||||
Patch from Christian, 2017 Nov 14. Should still display "$" matches.
|
||||
balloon_show() does not work properly in the terminal. (Ben Jackson, 2017 Dec
|
||||
20, #2481)
|
||||
Also see #2352, want better control over balloon, perhaps set the position.
|
||||
|
||||
When starting with --clean packages under "start" are not loaded. Make this
|
||||
work: :packadd START {name} similar to :runtime START name
|
||||
Patch to support hunspell. (Matej Cepl, Jan 2018, #2500)
|
||||
Patch to include hunspell support. (Matej Cepl, 2017 Dec 26, #845)
|
||||
Doesn't work on Windows yet.
|
||||
|
||||
Cursor in status line after search. (#2530)
|
||||
|
||||
Cursor in wrong position when line wraps. (#2540)
|
||||
|
||||
Alternative manpager.vim. (Enno, 2018 Jan 5, #2529)
|
||||
|
||||
Patch for minimum width of completion popup menu. (Christian Brabandt, 2018
|
||||
Jan 3, #2314)
|
||||
|
||||
Patch to redraw instead of scroll for terminal window. (Ken Takata, #2010)
|
||||
|
||||
Patch to add "user_data" to completion items. (Ben Jackson, 2018 Feb 1, #2608,
|
||||
closes #2508)
|
||||
|
||||
Patch to add TextChangedP, text changed while popup menu is visible. (Prabir
|
||||
Shrestha, 2018 Jan 28, test added by Christian Brabandt)
|
||||
|
||||
When using :packadd files under "later" are not used, which is inconsistent
|
||||
with packages under "start". (xtal8, #1994)
|
||||
|
||||
Column number is wrong whsn using 'linebreak' and 'wrap'. (Keith Smiley, 2018
|
||||
Jan 15, #2555)
|
||||
|
||||
Patch to add getjumplist(). (Yegappan Lakshmanan, 2018 Feb 2, #2609)
|
||||
|
||||
Serbian translations. (Peseic, 2018 Jan 17)
|
||||
|
||||
Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015
|
||||
Sep 10) Update 2018 Jan 4 #2575
|
||||
Alternate change by Ken Takata.
|
||||
|
||||
Check argument of systemlist(). (Pavlov)
|
||||
|
||||
Patch to parse ":line" in tags file and use it for search. (Daniel Hahler,
|
||||
#2546)
|
||||
|
||||
When 'inchsearch' and 'hlsearch' are set /\v highlights everything.
|
||||
Also see #2337
|
||||
|
||||
Starting job with cwd option, when the directory does not exist, gives a
|
||||
confusing error message. (Wang Shidong, 2018 Jan 2, #2519)
|
||||
|
||||
7 Add a watchpoint in the debug mode: An expression that breaks execution
|
||||
when evaluating to non-zero. Add the "watchadd expr" command, stop when
|
||||
the value of the expression changes. ":watchdel" deletes an item,
|
||||
":watchlist" lists the items. (Charles Campbell)
|
||||
Patch by Christian Brabandt, 2016 Jun 10, #859
|
||||
|
||||
7 Make "ga" show the digraph for a character, if it exists.
|
||||
Patch from Christian Brabandt, 2011 Aug 19.
|
||||
|
||||
Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
|
||||
8, #1757) Now part of #2322. Or #2327? #1757 was re-opened, include that
|
||||
first.
|
||||
|
||||
ch_sendraw() with long string does not try to read inbetween, which may cause
|
||||
a deadlock if the reading side is waiting for the write to finish. (Nate
|
||||
Bosch, 2018 Jan 13, #2548)
|
||||
|
||||
User dictionary ~/.vim/spell/lang.utf-8.add not used for spell checking until a
|
||||
word is re-added to it. (Matej Cepl, 2018 Feb 6)
|
||||
|
||||
Problem with mouse scroll in tmux. (fcying, #2419) Might be caused by patch
|
||||
8.0.1309. Removing "held_button = MOUSE_RELEASE;" helps. (2018 Feb 5)
|
||||
|
||||
Patch for 24 bit color support in MS-Windows console, using vcon. (Nobuhiro
|
||||
Takasaki, Ken Takata, 2017 Oct 1, #2060).
|
||||
|
||||
Does setting 'cursorline' cause syntax highlighting to slow down? Perhaps is
|
||||
mess up the cache? (Mike Lee Williams, 2018 Jan 27, #2539)
|
||||
|
||||
Fold at end of the buffer behaves inconsistently. (James McCoy, 2017 Oct 9)
|
||||
|
||||
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
||||
@ -171,12 +257,6 @@ With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
||||
Using 'wildignore' also applies to literally entered file name. Also with
|
||||
:drop (remote commands).
|
||||
|
||||
Race condition between stat() and open() in write_viminfo(). Use open() in the
|
||||
loop and try another name instead of using a temp file. (Simon Ruderich)
|
||||
The first one, when viminfo is new, should just fail if it creating with
|
||||
O_EXCL fails.
|
||||
Also use umask instead of mch_fopen() after vim_tempname().
|
||||
|
||||
"gvim --remote" from a directory with non-word characters changes the current
|
||||
directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
|
||||
Also see #1689.
|
||||
@ -184,6 +264,25 @@ Also see #1689.
|
||||
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
|
||||
Lemonboy can reproduce (2017 Jun 5)
|
||||
|
||||
When 'virtualedit' is "all" and 'cursorcolumn' is set, the wrong column may be
|
||||
highlighted. (van-de-bugger, 2018 Jan 23, #2576)
|
||||
|
||||
Patch to add winlayout() function. (Yegappan Lakshmanan, 2018 Jan 4)
|
||||
|
||||
No profile information for function that executes ":quit". (Daniel Hahler,
|
||||
2017 Dec 26, #2501)
|
||||
|
||||
Get a "No Name" buffer when 'hidden' is set and opening a new window from the
|
||||
quickfix list. (bfrg, 2018 Jan 22, #2574)
|
||||
|
||||
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
|
||||
|
||||
Patch to fix E806. (Dominique, 2017 Nov 22, #2368)
|
||||
Kazunobu Kuriyama: caused by XtSetLanguageProc().
|
||||
|
||||
Patch to fix GUI find/replace dialog. (kiloliter, 2017 Dec 11, report in
|
||||
#2418, fix in #2435)
|
||||
|
||||
Invalid range error when using BufWinLeave for closing terminal.
|
||||
(Gabriel Barta, 2017 Nov 15, #2339)
|
||||
|
||||
@ -194,9 +293,15 @@ Error in emsg with buggy script. (Dominique, 2017 Apr 30)
|
||||
Patch to avoid clearing the intro message on Win32 console.
|
||||
(Ken Takata, 2017 Nov 14)
|
||||
|
||||
Patch to fix encoding in print document name (Yasuhiro Matsumoto, 2017 Dec 20,
|
||||
#2478)
|
||||
|
||||
Patch to copy buffer-local options before buffer leaves the window. (Bjorn
|
||||
Linse, 2017 Nov 14, #2336)
|
||||
|
||||
Join truncates xml comment. (Dmitrii Tcyganok, 2017 Dec 24, #2494)
|
||||
Requires 'formatoptions' to include "j". (Gary Johnson, 2017 Dec 24)
|
||||
|
||||
When a timer is running and typing CTRL-R on the command line, it is not
|
||||
redrawn properly. (xtal8, 2017 Oct 23, #2241)
|
||||
|
||||
@ -206,9 +311,8 @@ Koichi Iwamoto, #2126
|
||||
Patch to fix cmdline abbreviation after '<,'>. (Christian Brabandt, 2017 Nov
|
||||
13, on issue #2320)
|
||||
|
||||
Patch to add TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011
|
||||
May 24) Update May 26.
|
||||
Now in patch by Lemonboy, #2333 (who is Lemonboy?)
|
||||
Patch for Neovim concerning restoring when closing help window. (glacambre
|
||||
neovim #7431)
|
||||
|
||||
Default install on MS-Windows should source defaults.vim.
|
||||
Ask whether to use Windows or Vim key behavior?
|
||||
@ -216,6 +320,9 @@ Ask whether to use Windows or Vim key behavior?
|
||||
Patch for improving detecting Ruby on Mac in configure. (Ilya Mikhaltsou, 2017
|
||||
Nov 21)
|
||||
|
||||
Add a ModeChanged autocommand that has an argument indicating the old and new
|
||||
mode. Also used for switching Terminal mode.
|
||||
|
||||
When using command line window, CmdlineLeave is triggered without
|
||||
CmdlineEnter. (xtal8, 2017 Oct 30, #2263)
|
||||
Add some way to get the nested state. Although CmdwinEnter is obviously
|
||||
@ -223,9 +330,12 @@ always nested.
|
||||
|
||||
matchit hasn't been maintained for a long time. #955.
|
||||
|
||||
Patch to add variable name after "scope add". (Eddie Lebow, 2018 Feb 7, #2620)
|
||||
Maybe not needed?
|
||||
|
||||
Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)
|
||||
|
||||
MS-Windows: buffer completetion doesn't work when using backslash (or slash)
|
||||
MS-Windows: buffer completion doesn't work when using backslash (or slash)
|
||||
for a path separator. (xtal8, #2201)
|
||||
|
||||
Patch to adjust to DPI setting for GTK. (Roel van de Kraats, 2017 Nov 20,
|
||||
@ -251,15 +361,12 @@ line breaks. (Ken Takata, 2017 Aug 22)
|
||||
|
||||
The ":move" command does not honor closed folds. (Ryan Lue, #2351)
|
||||
|
||||
Patch for 24 bit color support in MS-Windows console, using vcon. (Nobuhiro
|
||||
Takasaki, Ken Takata, 2017 Oct 1, #2060).
|
||||
|
||||
Memory leaks in test_channel? (or is it because of fork())
|
||||
Memory leak in test_arabic.
|
||||
Using uninitialized value in test_crypt.
|
||||
Memory leaks in test_escaped_glob
|
||||
|
||||
Patch to clear background when "guibg=NONE" is used and 'termguicolors' is
|
||||
set.
|
||||
set. (Nick Jensen, 2017 Nov 13, #2332, based on #981 by Kazunobu Kuriyama)
|
||||
|
||||
Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
|
||||
|
||||
@ -291,6 +398,9 @@ Alternatives for ~:
|
||||
|
||||
The ++ options for the :edit command are also useful on the Vim command line.
|
||||
|
||||
When recovering a file, put the swap file name in b:recovered_swapfile. Then
|
||||
a command can delete it.
|
||||
|
||||
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
|
||||
#2089) Patch with possible solution by Björn Linse.
|
||||
|
||||
@ -332,10 +442,6 @@ stack trace. (Yggdroot, 2017 Jul 28, #1887)
|
||||
Profile of a dict function is lost when the dict is deleted. Would it be
|
||||
possible to collect this? (Daniel Hahler, #2350)
|
||||
|
||||
Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
|
||||
8, #1757) Now part of #2322. Or #2327? #1757 was re-opened, include that
|
||||
first.
|
||||
|
||||
Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
|
||||
#2322) Now in #2327?
|
||||
|
||||
@ -413,7 +519,7 @@ Perhaps simpler: actually delete the mappings. Use maplist() to list matching
|
||||
mappings (with a lhs prefix, like maparg()), mapdelete() to delete,
|
||||
maprestore() to restore (using the output of maplist()).
|
||||
|
||||
Add an argument to :mkvimrc (or add aother command) to skip mappings from
|
||||
Add an argument to :mkvimrc (or add another command) to skip mappings from
|
||||
plugins (source is a Vim script). No need to put these in a .vimrc, they will
|
||||
be defined when the plugin is loaded.
|
||||
|
||||
@ -628,7 +734,7 @@ Probably list of keystrokes, with some annotations for mode changes.
|
||||
Could store in logfile to be able to analyse it with an external command.
|
||||
E.g. to see when's the last time a plugin command was used.
|
||||
|
||||
execute() cannot be used with command completeion. (Daniel Hahler, 2016 Oct 1,
|
||||
execute() cannot be used with command completion. (Daniel Hahler, 2016 Oct 1,
|
||||
#1141)
|
||||
|
||||
cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
|
||||
@ -682,9 +788,6 @@ Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)
|
||||
Have a way to get the call stack, in a function and from an exception.
|
||||
#1125
|
||||
|
||||
Patch to add 'pythonhome' and 'pythonthreehome' options. (Kazuki Sakamoto,
|
||||
2016 Nov 21, #1266)
|
||||
|
||||
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
|
||||
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
|
||||
|
||||
@ -799,12 +902,6 @@ directory exists. (Sergio Gallelli, 2013 Dec 29)
|
||||
In debug mode one can inspect variables, but not the function parameters
|
||||
(starting with a:). (Luc Hermitte, 2017 Jan 4, #1352)
|
||||
|
||||
7 Add a watchpoint in the debug mode: An expression that breaks execution
|
||||
when evaluating to non-zero. Add the "watchadd expr" command, stop when
|
||||
the value of the expression changes. ":watchdel" deletes an item,
|
||||
":watchlist" lists the items. (Charles Campbell)
|
||||
Patch by Christian Brabandt, 2016 Jun 10, #859
|
||||
|
||||
If ":bd" also closes a Tab page then the " mark is not set. (Harm te Hennepe,
|
||||
2016 Apr 25, #780)
|
||||
|
||||
@ -933,9 +1030,6 @@ Update Aug 14.
|
||||
When using --remote-tab on MS-Windows 'encoding' hasn't been initialized yet,
|
||||
the file name ends up encoded wrong. (Raul Coronado, 2015 Dec 21)
|
||||
|
||||
Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015
|
||||
Sep 10)
|
||||
|
||||
Example in editing.txt uses $HOME with the expectation that it ends in a
|
||||
slash. For me it does, but perhaps not for everybody. Add a function that
|
||||
inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12)
|
||||
@ -982,9 +1076,6 @@ Doesn't work completely (Dominique Orban)
|
||||
|
||||
Patch to add a "literal" argument to bufnr(). (Olaf Dabrunz, 2015 Aug 4)
|
||||
|
||||
Cannot execute the shell when it's in a directory with a space.
|
||||
Issue #459.
|
||||
|
||||
When a session file is created and there are "nofile" buffers, these are not
|
||||
filled. Need to trigger BufReadCmd autocommands. Also handle deleting the
|
||||
initial empty buffer better. (ZyX, 2015 March 8)
|
||||
@ -1041,8 +1132,6 @@ Patch to open folds for 'incsearch'. (Christian Brabandt, 2015 Jan 6)
|
||||
Patch for building a 32bit Vim with 64bit MingW compiler.
|
||||
(Michael Soyka, 2014 Oct 15)
|
||||
|
||||
Delete old code in os_msdos.c, mch_FullName().
|
||||
|
||||
Patch: On MS-Windows shellescape() may have to triple double quotes.
|
||||
(Ingo Karkat, 2015 Jan 16)
|
||||
|
||||
@ -1235,13 +1324,6 @@ Patch to allow more types in remote_expr(). (Lech Lorens, 2014 Jan 5)
|
||||
Doesn't work for string in list. Other way to pass all types of variables
|
||||
reliably?
|
||||
|
||||
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file.
|
||||
That is, calling a dictionary function on an autoloaded dict.
|
||||
Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar
|
||||
17)
|
||||
Patch by Christian Brabandt, 2013 Mar 23.
|
||||
Not 100% sure this is the right solution.
|
||||
|
||||
Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}.
|
||||
(Christian Brabandt, 2013 Dec 9)
|
||||
|
||||
@ -1510,9 +1592,6 @@ doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18)
|
||||
|
||||
Behavior of i" and a" text objects isn't logical. (Ben Fritz, 2013 Nov 19)
|
||||
|
||||
7 Make "ga" show the digraph for a character, if it exists.
|
||||
Patch from Christian Brabandt, 2011 Aug 19.
|
||||
|
||||
maparg() does not show the <script> flag. When temporarily changing a
|
||||
mapping, how to restore the script ID?
|
||||
|
||||
@ -1909,8 +1988,6 @@ Haskell, 2010 Aug 24)
|
||||
|
||||
This does not work yet: "a\(%C\)" (get composing characters into a submatch).
|
||||
|
||||
A function on a dictionary is not profiled. (ZyX, 2010 Dec 25)
|
||||
|
||||
Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
|
||||
messages, even though locale is not supported. But ":lang messages
|
||||
es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
|
||||
@ -4497,8 +4574,6 @@ Autocommands:
|
||||
Error - When an error happens
|
||||
NormalEnter - Entering Normal mode
|
||||
ReplaceEnter - Entering Replace mode
|
||||
CmdEnter - Entering Cmdline mode (with type of cmdline to allow
|
||||
different mapping)
|
||||
VisualEnter - Entering Visual mode
|
||||
*Leave - Leaving a mode (in pair with the above *Enter)
|
||||
VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
|
||||
|
@ -1,4 +1,4 @@
|
||||
*usr_27.txt* For Vim version 8.0. Last change: 2010 Mar 28
|
||||
*usr_27.txt* For Vim version 8.0. Last change: 2018 Jan 26
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@ -225,9 +225,9 @@ specify a line offset, this can cause trouble. For example: >
|
||||
/const/-2
|
||||
|
||||
This finds the next word "const" and then moves two lines up. If you
|
||||
use "n" to search again, Vim could start at the current position and find the same
|
||||
"const" match. Then using the offset again, you would be back where you started.
|
||||
You would be stuck!
|
||||
use "n" to search again, Vim could start at the current position and find the
|
||||
same "const" match. Then using the offset again, you would be back where you
|
||||
started. You would be stuck!
|
||||
It could be worse: Suppose there is another match with "const" in the next
|
||||
line. Then repeating the forward search would find this match and move two
|
||||
lines up. Thus you would actually move the cursor back!
|
||||
|
@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 8.0. Last change: 2017 Nov 19
|
||||
*usr_41.txt* For Vim version 8.0. Last change: 2017 Dec 02
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@ -902,6 +902,7 @@ Vim server: *server-functions*
|
||||
Window size and position: *window-size-functions*
|
||||
winheight() get height of a specific window
|
||||
winwidth() get width of a specific window
|
||||
win_screenpos() get screen position of a window
|
||||
winrestcmd() return command to restore window sizes
|
||||
winsaveview() get view of current window
|
||||
winrestview() restore saved view of current window
|
||||
|
@ -1,4 +1,4 @@
|
||||
*version8.txt* For Vim version 8.0. Last change: 2017 Apr 23
|
||||
*version8.txt* For Vim version 8.0. Last change: 2017 Nov 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -15582,7 +15582,7 @@ Files: src/json.c, src/testdir/test_json.vim
|
||||
|
||||
Patch 8.0.0181
|
||||
Problem: When 'cursorbind' and 'cursorcolumn' are both on, the column
|
||||
highlignt in non-current windows is wrong.
|
||||
highlight in non-current windows is wrong.
|
||||
Solution: Add validate_cursor(). (Masanori Misono, closes #1372)
|
||||
Files: src/move.c
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Nov 21
|
||||
" Last Change: 2018 Jan 28
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@ -239,6 +239,7 @@ endif
|
||||
|
||||
" C or lpc
|
||||
au BufNewFile,BufRead *.c call dist#ft#FTlpc()
|
||||
au BufNewFile,BufRead *.lpc,*.ulpc setf lpc
|
||||
|
||||
" Calendar
|
||||
au BufNewFile,BufRead calendar setf calendar
|
||||
@ -378,7 +379,7 @@ au BufNewFile,BufRead *.cfm,*.cfi,*.cfc setf cf
|
||||
au BufNewFile,BufRead configure.in,configure.ac setf config
|
||||
|
||||
" CUDA Cumpute Unified Device Architecture
|
||||
au BufNewFile,BufRead *.cu setf cuda
|
||||
au BufNewFile,BufRead *.cu,*.cuh setf cuda
|
||||
|
||||
" Dockerfile
|
||||
au BufNewFile,BufRead Dockerfile,*.Dockerfile setf dockerfile
|
||||
@ -1152,8 +1153,9 @@ au BufNewFile,BufRead *.pod6 setf pod6
|
||||
" Also .ctp for Cake template file
|
||||
au BufNewFile,BufRead *.php,*.php\d,*.phtml,*.ctp setf php
|
||||
|
||||
" Pike
|
||||
au BufNewFile,BufRead *.pike,*.lpc,*.ulpc,*.pmod setf pike
|
||||
" Pike and Cmod
|
||||
au BufNewFile,BufRead *.pike,*.pmod setf pike
|
||||
au BufNewFile,BufRead *.cmod setf cmod
|
||||
|
||||
" Pinfo config
|
||||
au BufNewFile,BufRead */etc/pinforc,*/.pinforc setf pinfo
|
||||
@ -1878,8 +1880,8 @@ au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc
|
||||
" Yacc or racc
|
||||
au BufNewFile,BufRead *.y call dist#ft#FTy()
|
||||
|
||||
" Yaml
|
||||
au BufNewFile,BufRead *.yaml,*.yml setf yaml
|
||||
" Yaml or Raml
|
||||
au BufNewFile,BufRead *.yaml,*.yml,*.raml setf yaml
|
||||
|
||||
" yum conf (close enough to dosini)
|
||||
au BufNewFile,BufRead */etc/yum.conf setf dosini
|
||||
@ -1925,6 +1927,9 @@ au StdinReadPost * if !did_filetype() | runtime! scripts.vim | endif
|
||||
" Most of these should call s:StarSetf() to avoid names ending in .gz and the
|
||||
" like are used.
|
||||
|
||||
" More Apache style config files
|
||||
au BufNewFile,BufRead */etc/proftpd/*.conf*,*/etc/proftpd/conf.*/* call s:StarSetf('apachestyle')
|
||||
|
||||
" More Apache config files
|
||||
au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache')
|
||||
au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache')
|
||||
|
51
runtime/ftplugin/chicken.vim
Normal file
51
runtime/ftplugin/chicken.vim
Normal file
@ -0,0 +1,51 @@
|
||||
" CHICKEN-specific Vim customizations
|
||||
" Last Change: 2018-01-06
|
||||
" Author: Evan Hanson <evhan@foldling.org>
|
||||
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||
" URL: https://foldling.org/vim/ftplugin/chicken.vim
|
||||
" Notes: These are supplemental settings, to be loaded after the core
|
||||
" Scheme ftplugin file (ftplugin/scheme.vim). Enable it by setting
|
||||
" b:is_chicken=1 and filetype=scheme.
|
||||
|
||||
if !exists('b:did_scheme_ftplugin')
|
||||
finish
|
||||
endif
|
||||
|
||||
setl keywordprg=chicken-doc
|
||||
|
||||
setl lispwords+=and-let*
|
||||
setl lispwords+=begin-for-syntax
|
||||
setl lispwords+=compiler-typecase
|
||||
setl lispwords+=condition-case
|
||||
setl lispwords+=define-compiler-syntax
|
||||
setl lispwords+=define-constant
|
||||
setl lispwords+=define-external
|
||||
setl lispwords+=define-for-syntax
|
||||
setl lispwords+=define-inline
|
||||
setl lispwords+=define-record
|
||||
setl lispwords+=define-record-printer
|
||||
setl lispwords+=define-specialization
|
||||
setl lispwords+=define-syntax-rule
|
||||
setl lispwords+=eval-when
|
||||
setl lispwords+=fluid-let
|
||||
setl lispwords+=handle-exceptions
|
||||
setl lispwords+=let-compiler-syntax
|
||||
setl lispwords+=let-optionals
|
||||
setl lispwords+=let-optionals*
|
||||
setl lispwords+=letrec-values
|
||||
setl lispwords+=match
|
||||
setl lispwords+=match-lambda
|
||||
setl lispwords+=match-lambda*
|
||||
setl lispwords+=match-let
|
||||
setl lispwords+=match-let*
|
||||
setl lispwords+=module
|
||||
setl lispwords+=receive
|
||||
setl lispwords+=select
|
||||
setl lispwords+=set!-values
|
||||
|
||||
let b:undo_ftplugin = b:undo_ftplugin . ' keywordprg<'
|
||||
|
||||
if exists('g:loaded_matchit') && !exists('b:match_words')
|
||||
let b:match_words = '#>:<#'
|
||||
let b:undo_ftplugin = b:undo_ftplugin . ' | unlet! b:match_words'
|
||||
endif
|
16
runtime/ftplugin/cmake.vim
Normal file
16
runtime/ftplugin/cmake.vim
Normal file
@ -0,0 +1,16 @@
|
||||
" Vim filetype plugin
|
||||
" Language: CMake
|
||||
" Maintainer: Keith Smiley <keithbsmiley@gmail.com>
|
||||
" Last Change: 2017 Dec 24
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring<"
|
||||
|
||||
setlocal commentstring=#\ %s
|
@ -1,11 +1,11 @@
|
||||
" Vim filetype plugin file (GUI menu, folding and completion)
|
||||
" Language: Debian Changelog
|
||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainers: Michael Piefel <piefel@informatik.hu-berlin.de>
|
||||
" Stefano Zacchiroli <zack@debian.org>
|
||||
" Last Change: 2014-01-31
|
||||
" Last Change: 2018-01-06
|
||||
" License: Vim License
|
||||
" URL: http://hg.debian.org/hg/pkg-vim/vim/file/unstable/runtime/ftplugin/debchangelog.vim
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debchangelog.vim
|
||||
|
||||
" Bug completion requires apt-listbugs installed for Debian packages or
|
||||
" python-launchpadlib installed for Ubuntu packages
|
||||
|
@ -1,9 +1,9 @@
|
||||
" Vim filetype plugin file (GUI menu and folding)
|
||||
" Language: Debian control files
|
||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainer: Pierre Habouzit <madcoder@debian.org>
|
||||
" Last Change: 2008-03-08
|
||||
" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/ftplugin/debcontrol.vim
|
||||
" Last Change: 2018-01-06
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/ftplugin/debcontrol.vim
|
||||
|
||||
" Do these settings once per buffer
|
||||
if exists("b:did_ftplugin")
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: man
|
||||
" Maintainer: SungHyun Nam <goweol@gmail.com>
|
||||
" Last Change: 2017 Nov 11
|
||||
" Last Change: 2018 Jan 15
|
||||
|
||||
" To make the ":Man" command available before editing a manual page, source
|
||||
" this script from your startup vimrc file.
|
||||
@ -39,7 +39,7 @@ if &filetype == "man"
|
||||
endif
|
||||
|
||||
if exists(":Man") != 2
|
||||
com -nargs=+ Man call s:GetPage(<f-args>)
|
||||
com -nargs=+ -complete=shellcmd Man call s:GetPage(<f-args>)
|
||||
nmap <Leader>K :call <SID>PreGetPage(0)<CR>
|
||||
nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR>
|
||||
endif
|
||||
@ -173,7 +173,15 @@ func <SID>GetPage(...)
|
||||
|
||||
" Ensure Vim is not recursively invoked (man-db does this) when doing ctrl-[
|
||||
" on a man page reference by unsetting MANPAGER.
|
||||
silent exec "r !env -u MANPAGER man ".s:GetCmdArg(sect, page)." | col -b"
|
||||
" Some versions of env(1) do not support the '-u' option, and in such case
|
||||
" we set MANPAGER=cat.
|
||||
if !exists('s:env_has_u')
|
||||
call system('env -u x true')
|
||||
let s:env_has_u = (v:shell_error == 0)
|
||||
endif
|
||||
let env_cmd = s:env_has_u ? 'env -u MANPAGER' : 'env MANPAGER=cat'
|
||||
let man_cmd = env_cmd . ' man ' . s:GetCmdArg(sect, page) . ' | col -b'
|
||||
silent exec "r !" . man_cmd
|
||||
|
||||
if unsetwidth
|
||||
let $MANWIDTH = ''
|
||||
|
@ -1,22 +1,43 @@
|
||||
" Vim ftplugin file
|
||||
" Language: NSIS script
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2008-07-09
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
" Language: NSIS script
|
||||
" Maintainer: Ken Takata
|
||||
" URL: https://github.com/k-takata/vim-nsis
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Last Change: 2018-01-26
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
|
||||
\ " | unlet! b:match_ignorecase b:match_words"
|
||||
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\=
|
||||
setlocal include=^\\s*!include\\%(/NONFATAL\\)\\=
|
||||
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 1
|
||||
let b:match_words =
|
||||
\ '\${\%(If\|IfNot\|Unless\)}:\${\%(Else\|ElseIf\|ElseIfNot\|ElseUnless\)}:\${\%(EndIf\|EndUnless\)},' .
|
||||
\ '\${Select}:\${EndSelect},' .
|
||||
\ '\${Switch}:\${EndSwitch},' .
|
||||
\ '\${\%(Do\|DoWhile\|DoUntil\)}:\${\%(Loop\|LoopWhile\|LoopUntil\)},' .
|
||||
\ '\${\%(For\|ForEach\)}:\${Next},' .
|
||||
\ '\<Function\>:\<FunctionEnd\>,' .
|
||||
\ '\<Section\>:\<SectionEnd\>,' .
|
||||
\ '\<SectionGroup\>:\<SectionGroupEnd\>,' .
|
||||
\ '\<PageEx\>:\<PageExEnd\>,' .
|
||||
\ '\${MementoSection}:\${MementoSectionEnd},' .
|
||||
\ '!if\%(\%(macro\)\?n\?def\)\?\>:!else\>:!endif\>,' .
|
||||
\ '!macro\>:!macroend\>'
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
@ -3,7 +3,7 @@
|
||||
" Maintainer: Tom Picton <tom@tompicton.co.uk>
|
||||
" Previous Maintainer: James Sully <sullyj3@gmail.com>
|
||||
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Thur, 09 November 2017
|
||||
" Last Change: Wed, 20 December 2017
|
||||
" https://github.com/tpict/vim-ftplugin-python
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
@ -20,6 +20,9 @@ setlocal comments=b:#,fb:-
|
||||
setlocal commentstring=#\ %s
|
||||
|
||||
setlocal omnifunc=pythoncomplete#Complete
|
||||
if has('python3')
|
||||
setlocal omnifunc=python3complete#Complete
|
||||
endif
|
||||
|
||||
set wildignore+=*.pyc
|
||||
|
||||
|
@ -1,45 +1,62 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Scheme
|
||||
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||
" URL: http://sites.google.com/site/khorser/opensource/vim
|
||||
" Original author: Dorai Sitaram <ds26@gte.com>
|
||||
" Original URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html
|
||||
" Last Change: Oct 23, 2013
|
||||
" Vim filetype plugin file
|
||||
" Language: Scheme (R7RS)
|
||||
" Last Change: 2018-01-20
|
||||
" Author: Evan Hanson <evhan@foldling.org>
|
||||
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||
" URL: https://foldling.org/vim/ftplugin/scheme.vim
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
let s:cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Copy-paste from ftplugin/lisp.vim
|
||||
setl comments=:;
|
||||
setl define=^\\s*(def\\k*
|
||||
setl formatoptions-=t
|
||||
setl iskeyword+=+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
|
||||
setl lisp
|
||||
setl comments=:;;;;,:;;;,:;;,:;,sr:#\|,ex:\|#
|
||||
setl commentstring=;%s
|
||||
setl define=^\\s*(def\\k*
|
||||
setl iskeyword=33,35-39,42-43,45-58,60-90,94,95,97-122,126
|
||||
|
||||
setl comments^=:;;;,:;;,sr:#\|,mb:\|,ex:\|#
|
||||
let b:undo_ftplugin = 'setl lisp< comments< commentstring< define< iskeyword<'
|
||||
|
||||
" Scheme-specific settings
|
||||
if exists("b:is_mzscheme") || exists("is_mzscheme")
|
||||
" improve indenting
|
||||
setl iskeyword+=#,%,^
|
||||
setl lispwords+=module,parameterize,let-values,let*-values,letrec-values
|
||||
setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
|
||||
setl lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig
|
||||
setl lispwords=begin
|
||||
setl lispwords+=case
|
||||
setl lispwords+=case-lambda
|
||||
setl lispwords+=cond
|
||||
setl lispwords+=cond-expand
|
||||
setl lispwords+=define
|
||||
setl lispwords+=define-record-type
|
||||
setl lispwords+=define-syntax
|
||||
setl lispwords+=define-values
|
||||
setl lispwords+=do
|
||||
setl lispwords+=guard
|
||||
setl lispwords+=import
|
||||
setl lispwords+=lambda
|
||||
setl lispwords+=let
|
||||
setl lispwords+=let*
|
||||
setl lispwords+=let*-values
|
||||
setl lispwords+=let-syntax
|
||||
setl lispwords+=let-values
|
||||
setl lispwords+=letrec
|
||||
setl lispwords+=letrec*
|
||||
setl lispwords+=letrec-syntax
|
||||
setl lispwords+=parameterize
|
||||
setl lispwords+=set!
|
||||
setl lispwords+=syntax-rules
|
||||
setl lispwords+=unless
|
||||
setl lispwords+=when
|
||||
|
||||
let b:undo_ftplugin = b:undo_ftplugin . ' lispwords<'
|
||||
|
||||
let b:did_scheme_ftplugin = 1
|
||||
|
||||
if exists('b:is_chicken') || exists('g:is_chicken')
|
||||
exe 'ru! ftplugin/chicken.vim'
|
||||
endif
|
||||
|
||||
if exists("b:is_chicken") || exists("is_chicken")
|
||||
" improve indenting
|
||||
setl iskeyword+=#,%,^
|
||||
setl lispwords+=let-optionals,let-optionals*,declare
|
||||
setl lispwords+=let-values,let*-values,letrec-values
|
||||
setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case
|
||||
setl lispwords+=cond-expand,and-let*,foreign-lambda,foreign-lambda*
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = "setlocal comments< define< formatoptions< iskeyword< lispwords< lisp< commentstring<"
|
||||
unlet b:did_scheme_ftplugin
|
||||
let b:did_ftplugin = 1
|
||||
let &cpo = s:cpo
|
||||
unlet s:cpo
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Vim
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2017 Nov 06
|
||||
" Last Change: 2017 Dec 05
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@ -39,21 +39,23 @@ endif
|
||||
" Comments start with a double quote
|
||||
setlocal commentstring=\"%s
|
||||
|
||||
" Move around functions.
|
||||
nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
|
||||
vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
|
||||
nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
|
||||
vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR>
|
||||
nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
|
||||
vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR>
|
||||
nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
|
||||
vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR>
|
||||
if !exists("no_plugin_maps") && !exists("no_vim_maps")
|
||||
" Move around functions.
|
||||
nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
|
||||
vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
|
||||
nnoremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
|
||||
vnoremap <silent><buffer> ]] m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "W")<CR>
|
||||
nnoremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
|
||||
vnoremap <silent><buffer> [] m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "bW")<CR>
|
||||
nnoremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
|
||||
vnoremap <silent><buffer> ][ m':<C-U>exe "normal! gv"<Bar>call search('^\s*endf*\%[unction]\>', "W")<CR>
|
||||
|
||||
" Move around comments
|
||||
nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
|
||||
vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
|
||||
nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
" Move around comments
|
||||
nnoremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
|
||||
vnoremap <silent><buffer> ]" :<C-U>exe "normal! gv"<Bar>call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>
|
||||
nnoremap <silent><buffer> [" :call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
vnoremap <silent><buffer> [" :<C-U>exe "normal! gv"<Bar>call search('\%(^\s*".*\n\)\%(^\s*"\)\@!', "bW")<CR>
|
||||
endif
|
||||
|
||||
" Let the matchit plugin know what items can be matched.
|
||||
if exists("loaded_matchit")
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Zimbu
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2012 Sep 08
|
||||
" Last Change: 2017 Dec 05
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@ -135,8 +135,10 @@ iabbr <buffer> <expr> until GCUpperSpace("until")
|
||||
iabbr <buffer> <expr> while GCUpperSpace("while")
|
||||
iabbr <buffer> <expr> repeat GCUpper("repeat")
|
||||
|
||||
nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR>
|
||||
nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR>
|
||||
if !exists("no_plugin_maps") && !exists("no_zimbu_maps")
|
||||
nnoremap <silent> <buffer> [[ m`:call ZimbuGoStartBlock()<CR>
|
||||
nnoremap <silent> <buffer> ]] m`:call ZimbuGoEndBlock()<CR>
|
||||
endif
|
||||
|
||||
" Using a function makes sure the search pattern is restored
|
||||
func! ZimbuGoStartBlock()
|
||||
|
@ -2,7 +2,7 @@
|
||||
" Language: Zsh shell script
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2015-05-29
|
||||
" Latest Revision: 2017-11-22
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/chrisbra/vim-zsh
|
||||
|
||||
@ -18,9 +18,7 @@ let b:undo_ftplugin = "setl com< cms< fo<"
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
|
||||
|
||||
let b:match_words =
|
||||
\ &matchpairs
|
||||
\ . ',\<if\>:\<elif\>:\<else\>:\<fi\>'
|
||||
let b:match_words = ',\<if\>:\<elif\>:\<else\>:\<fi\>'
|
||||
\ . ',\<case\>:^\s*([^)]*):\<esac\>'
|
||||
\ . ',\<\%(select\|while\|until\|repeat\|for\%(each\)\=\)\>:\<done\>'
|
||||
let b:match_skip = 's:comment\|string\|heredoc\|subst'
|
||||
|
@ -2,7 +2,7 @@
|
||||
" Language: Javascript
|
||||
" Maintainer: Chris Paul ( https://github.com/bounceme )
|
||||
" URL: https://github.com/pangloss/vim-javascript
|
||||
" Last Change: September 18, 2017
|
||||
" Last Change: December 4, 2017
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists('b:did_indent')
|
||||
@ -10,10 +10,6 @@ if exists('b:did_indent')
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
" indent correctly if inside <script>
|
||||
" vim/vim@690afe1 for the switch from cindent
|
||||
let b:html_indent_script1 = 'inc'
|
||||
|
||||
" Now, set up our indentation expression and keys that trigger it.
|
||||
setlocal indentexpr=GetJavascriptIndent()
|
||||
setlocal autoindent nolisp nosmartindent
|
||||
@ -25,13 +21,6 @@ setlocal indentkeys+=0],0)
|
||||
|
||||
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
|
||||
|
||||
" Regex of syntax group names that are or delimit string or are comments.
|
||||
let b:syng_strcom = get(b:,'syng_strcom','string\|comment\|regex\|special\|doc\|template\%(braces\)\@!')
|
||||
let b:syng_str = get(b:,'syng_str','string\|template\|special')
|
||||
" template strings may want to be excluded when editing graphql:
|
||||
" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
|
||||
" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'
|
||||
|
||||
" Only define the function once.
|
||||
if exists('*GetJavascriptIndent')
|
||||
finish
|
||||
@ -40,6 +29,23 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" indent correctly if inside <script>
|
||||
" vim/vim@690afe1 for the switch from cindent
|
||||
" overridden with b:html_indent_script1
|
||||
call extend(g:,{'html_indent_script1': 'inc'},'keep')
|
||||
|
||||
" Regex of syntax group names that are or delimit string or are comments.
|
||||
let s:bvars = {
|
||||
\ 'syng_strcom': 'string\|comment\|regex\|special\|doc\|template\%(braces\)\@!',
|
||||
\ 'syng_str': 'string\|template\|special' }
|
||||
" template strings may want to be excluded when editing graphql:
|
||||
" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
|
||||
" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'
|
||||
|
||||
function s:GetVars()
|
||||
call extend(b:,extend(s:bvars,{'js_cache': [0,0,0]}),'keep')
|
||||
endfunction
|
||||
|
||||
" Get shiftwidth value
|
||||
if exists('*shiftwidth')
|
||||
function s:sw()
|
||||
@ -104,21 +110,22 @@ endfunction
|
||||
function s:SkipFunc()
|
||||
if s:top_col == 1
|
||||
throw 'out of bounds'
|
||||
endif
|
||||
let s:top_col = 0
|
||||
if s:check_in
|
||||
elseif s:check_in
|
||||
if eval(s:skip_expr)
|
||||
return 1
|
||||
endif
|
||||
let s:check_in = 0
|
||||
elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
|
||||
if eval(s:skip_expr)
|
||||
let s:looksyn = a:firstline
|
||||
return 1
|
||||
endif
|
||||
elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn) && eval(s:skip_expr)
|
||||
let s:check_in = 1
|
||||
return 1
|
||||
elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn)
|
||||
if eval(s:skip_expr)
|
||||
let s:check_in = 1
|
||||
return 1
|
||||
endif
|
||||
else
|
||||
let s:synid_cache[:] += [[line2byte('.') + col('.') - 1], ['']]
|
||||
endif
|
||||
let [s:looksyn, s:top_col] = getpos('.')[1:2]
|
||||
endfunction
|
||||
@ -159,19 +166,29 @@ function s:Token()
|
||||
return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt()
|
||||
endfunction
|
||||
|
||||
function s:PreviousToken()
|
||||
let l:col = col('.')
|
||||
function s:PreviousToken(...)
|
||||
let [l:pos, tok] = [getpos('.'), '']
|
||||
if search('\m\k\{1,}\|\S','ebW')
|
||||
if search('\m\*\%#\/\|\/\/\%<'.a:firstline.'l','nbW',line('.')) && eval(s:in_comm)
|
||||
if s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm)
|
||||
return s:Token()
|
||||
if getline('.')[col('.')-2:col('.')-1] == '*/'
|
||||
if eval(s:in_comm) && !s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm)
|
||||
call setpos('.',l:pos)
|
||||
else
|
||||
let tok = s:Token()
|
||||
endif
|
||||
call cursor(a:firstline, l:col)
|
||||
else
|
||||
return s:Token()
|
||||
let two = a:0 || line('.') != l:pos[1] ? strridx(getline('.')[:col('.')],'//') + 1 : 0
|
||||
if two && eval(s:in_comm)
|
||||
call cursor(0,two)
|
||||
let tok = s:PreviousToken(1)
|
||||
if tok is ''
|
||||
call setpos('.',l:pos)
|
||||
endif
|
||||
else
|
||||
let tok = s:Token()
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
return ''
|
||||
return tok
|
||||
endfunction
|
||||
|
||||
function s:Pure(f,...)
|
||||
@ -183,23 +200,30 @@ function s:SearchLoop(pat,flags,expr)
|
||||
endfunction
|
||||
|
||||
function s:ExprCol()
|
||||
if getline('.')[col('.')-2] == ':'
|
||||
return 1
|
||||
endif
|
||||
let bal = 0
|
||||
while s:SearchLoop('[{}?]\|\_[^:]\zs::\@!','bW',s:skip_expr)
|
||||
while s:SearchLoop('[{}?:]','bW',s:skip_expr)
|
||||
if s:LookingAt() == ':'
|
||||
if getline('.')[col('.')-2] == ':'
|
||||
call cursor(0,col('.')-1)
|
||||
continue
|
||||
endif
|
||||
let bal -= 1
|
||||
elseif s:LookingAt() == '?'
|
||||
let bal += 1
|
||||
if bal == 1
|
||||
break
|
||||
if getline('.')[col('.'):col('.')+1] =~ '^\.\d\@!'
|
||||
continue
|
||||
elseif !bal
|
||||
return 1
|
||||
endif
|
||||
let bal += 1
|
||||
elseif s:LookingAt() == '{'
|
||||
let bal = !s:IsBlock()
|
||||
break
|
||||
return !s:IsBlock()
|
||||
elseif !s:GetPair('{','}','bW',s:skip_expr)
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
return s:Nat(bal)
|
||||
endfunction
|
||||
|
||||
" configurable regexes that define continuation lines, not including (, {, or [.
|
||||
@ -208,30 +232,29 @@ let s:opfirst = '^' . get(g:,'javascript_opfirst',
|
||||
let s:continuation = get(g:,'javascript_continuation',
|
||||
\ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
|
||||
|
||||
function s:Continues(ln,con)
|
||||
let tok = matchstr(a:con[-15:],s:continuation)
|
||||
function s:Continues()
|
||||
let tok = matchstr(strpart(getline('.'),col('.')-15,15),s:continuation)
|
||||
if tok =~ '[a-z:]'
|
||||
call cursor(a:ln, len(a:con))
|
||||
return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.'
|
||||
elseif tok !~ '[/>]'
|
||||
return tok isnot ''
|
||||
endif
|
||||
return s:SynAt(a:ln, len(a:con)) !~? (tok == '>' ? 'jsflow\|^html' : 'regex')
|
||||
return s:SynAt(line('.'),col('.')) !~? (tok == '>' ? 'jsflow\|^html' : 'regex')
|
||||
endfunction
|
||||
|
||||
" Check if line 'lnum' has a balanced amount of parentheses.
|
||||
function s:Balanced(lnum)
|
||||
let [l:open, l:line] = [0, getline(a:lnum)]
|
||||
let pos = match(l:line, '[][(){}]')
|
||||
function s:Balanced(lnum,line)
|
||||
let l:open = 0
|
||||
let pos = match(a:line, '[][(){}]')
|
||||
while pos != -1
|
||||
if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom
|
||||
let l:open += match(' ' . l:line[pos],'[[({]')
|
||||
let l:open += match(' ' . a:line[pos],'[[({]')
|
||||
if l:open < 0
|
||||
return
|
||||
endif
|
||||
endif
|
||||
let pos = match(l:line, !l:open ? '[][(){}]' : '()' =~ l:line[pos] ?
|
||||
\ '[()]' : '{}' =~ l:line[pos] ? '[{}]' : '[][]', pos + 1)
|
||||
let pos = match(a:line, !l:open ? '[][(){}]' : '()' =~ a:line[pos] ?
|
||||
\ '[()]' : '{}' =~ a:line[pos] ? '[{}]' : '[][]', pos + 1)
|
||||
endwhile
|
||||
return !l:open
|
||||
endfunction
|
||||
@ -244,27 +267,38 @@ function s:OneScope()
|
||||
\ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile())
|
||||
elseif s:Token() =~# '^else$\|^do$'
|
||||
return s:Pure('s:PreviousToken') != '.'
|
||||
elseif strpart(getline('.'),col('.')-2,2) == '=>'
|
||||
call cursor(0,col('.')-1)
|
||||
if s:PreviousToken() == ')'
|
||||
return s:GetPair('(', ')', 'bW', s:skip_expr)
|
||||
endif
|
||||
return 1
|
||||
endif
|
||||
return strpart(getline('.'),col('.')-2,2) == '=>'
|
||||
endfunction
|
||||
|
||||
function s:DoWhile()
|
||||
let cpos = searchpos('\m\<','cbW')
|
||||
if s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr)
|
||||
if s:{s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) ?
|
||||
\ 'Previous' : ''}Token() ==# 'do' && s:IsBlock()
|
||||
return 1
|
||||
while s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr)
|
||||
if s:LookingAt() =~ '\a'
|
||||
if s:Pure('s:IsBlock')
|
||||
if s:LookingAt() ==# 'd'
|
||||
return 1
|
||||
endif
|
||||
break
|
||||
endif
|
||||
elseif s:LookingAt() != '}' || !s:GetPair('{','}','bW',s:skip_expr)
|
||||
break
|
||||
endif
|
||||
call call('cursor',cpos)
|
||||
endif
|
||||
endwhile
|
||||
call call('cursor',cpos)
|
||||
endfunction
|
||||
|
||||
" returns total offset from braceless contexts. 'num' is the lineNr which
|
||||
" encloses the entire context, 'cont' if whether a:firstline is a continued
|
||||
" expression, which could have started in a braceless context
|
||||
function s:IsContOne(num,cont)
|
||||
let [l:num, b_l] = [a:num + !a:num, 0]
|
||||
let pind = a:num ? indent(a:num) + s:sw() : 0
|
||||
function s:IsContOne(cont)
|
||||
let [l:num, b_l] = [b:js_cache[1] + !b:js_cache[1], 0]
|
||||
let pind = b:js_cache[1] ? indent(b:js_cache[1]) + s:sw() : 0
|
||||
let ind = indent('.') + !a:cont
|
||||
while line('.') > l:num && ind > pind || line('.') == l:num
|
||||
if indent('.') < ind && s:OneScope()
|
||||
@ -282,20 +316,16 @@ function s:IsContOne(num,cont)
|
||||
return b_l
|
||||
endfunction
|
||||
|
||||
function s:Class()
|
||||
return (s:Token() ==# 'class' || s:PreviousToken() =~# '^class$\|^extends$') &&
|
||||
\ s:PreviousToken() != '.'
|
||||
endfunction
|
||||
|
||||
function s:IsSwitch()
|
||||
return s:PreviousToken() !~ '[.*]' &&
|
||||
\ (!s:GetPair('{','}','cbW',s:skip_expr) || s:IsBlock() && !s:Class())
|
||||
call call('cursor',b:js_cache[1:])
|
||||
return search('\m\C\%#.\_s*\%(\%(\/\/.*\_$\|\/\*\_.\{-}\*\/\)\@>\_s*\)*\%(case\|default\)\>','nWc'.s:z)
|
||||
endfunction
|
||||
|
||||
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
|
||||
function s:IsBlock()
|
||||
let tok = s:PreviousToken()
|
||||
if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx'
|
||||
let s:in_jsx = 1
|
||||
return tok != '{'
|
||||
elseif tok =~ '\k'
|
||||
if tok ==# 'type'
|
||||
@ -320,7 +350,7 @@ function s:IsBlock()
|
||||
endfunction
|
||||
|
||||
function GetJavascriptIndent()
|
||||
let b:js_cache = get(b:,'js_cache',[0,0,0])
|
||||
call s:GetVars()
|
||||
let s:synid_cache = [[],[]]
|
||||
let l:line = getline(v:lnum)
|
||||
" use synstack as it validates syn state and works in an empty line
|
||||
@ -334,7 +364,7 @@ function GetJavascriptIndent()
|
||||
return -1
|
||||
endif
|
||||
elseif s:stack[-1] =~? b:syng_str
|
||||
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
|
||||
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1,getline(v:lnum-1))
|
||||
let b:js_cache[0] = v:lnum
|
||||
endif
|
||||
return -1
|
||||
@ -361,7 +391,7 @@ function GetJavascriptIndent()
|
||||
call cursor(v:lnum,1)
|
||||
let idx = index([']',')','}'],l:line[0])
|
||||
if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum ||
|
||||
\ b:js_cache[0] == l:lnum && s:Balanced(l:lnum)
|
||||
\ b:js_cache[0] == l:lnum && s:Balanced(l:lnum,pline)
|
||||
call call('cursor',b:js_cache[1:])
|
||||
else
|
||||
let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0,
|
||||
@ -382,10 +412,10 @@ function GetJavascriptIndent()
|
||||
|
||||
let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]]
|
||||
|
||||
let [num_ind, is_op, b_l, l:switch_offset] = [s:Nat(indent(num)),0,0,0]
|
||||
let [num_ind, is_op, b_l, l:switch_offset, s:in_jsx] = [s:Nat(indent(num)),0,0,0,0]
|
||||
if !num || s:LookingAt() == '{' && s:IsBlock()
|
||||
let ilnum = line('.')
|
||||
if num && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr)
|
||||
if num && !s:in_jsx && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr)
|
||||
if ilnum == num
|
||||
let [num, num_ind] = [line('.'), indent('.')]
|
||||
endif
|
||||
@ -399,23 +429,24 @@ function GetJavascriptIndent()
|
||||
endif
|
||||
endif
|
||||
if idx == -1 && pline[-1:] !~ '[{;]'
|
||||
call cursor(l:lnum, len(pline))
|
||||
let sol = matchstr(l:line,s:opfirst)
|
||||
if sol is '' || sol == '/' && s:SynAt(v:lnum,
|
||||
\ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex'
|
||||
if s:Continues(l:lnum,pline)
|
||||
if s:Continues()
|
||||
let is_op = s:sw()
|
||||
endif
|
||||
elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$'
|
||||
call call('cursor',b:js_cache[1:])
|
||||
if s:PreviousToken() =~ '\k' && s:Class()
|
||||
return num_ind + s:sw()
|
||||
endif
|
||||
let is_op = s:sw()
|
||||
elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$' &&
|
||||
\ s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) &&
|
||||
\ s:PreviousToken() == ')' && s:GetPair('(',')','bW',s:skip_expr) &&
|
||||
\ (s:PreviousToken() == ']' || s:LookingAt() =~ '\k' &&
|
||||
\ s:{s:PreviousToken() == '*' ? 'Previous' : ''}Token() !=# 'function')
|
||||
return num_ind + s:sw()
|
||||
else
|
||||
let is_op = s:sw()
|
||||
endif
|
||||
call cursor(l:lnum, len(pline))
|
||||
let b_l = s:Nat(s:IsContOne(b:js_cache[1],is_op) - (!is_op && l:line =~ '^{')) * s:sw()
|
||||
let b_l = s:Nat(s:IsContOne(is_op) - (!is_op && l:line =~ '^{')) * s:sw()
|
||||
endif
|
||||
elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U'))
|
||||
let pval = s:ParseCino('(')
|
||||
@ -431,10 +462,10 @@ function GetJavascriptIndent()
|
||||
|
||||
" main return
|
||||
if l:line =~ '^[])}]\|^|}'
|
||||
if l:line_raw[0] == ')' && getline(num)[b:js_cache[2]-1] == '('
|
||||
if l:line_raw[0] == ')'
|
||||
if s:ParseCino('M')
|
||||
return indent(l:lnum)
|
||||
elseif &cino =~# 'm' && !s:ParseCino('m')
|
||||
elseif num && &cino =~# 'm' && !s:ParseCino('m')
|
||||
return virtcol('.') - 1
|
||||
endif
|
||||
endif
|
||||
|
91
runtime/indent/nsis.vim
Normal file
91
runtime/indent/nsis.vim
Normal file
@ -0,0 +1,91 @@
|
||||
" Vim indent file
|
||||
" Language: NSIS script
|
||||
" Maintainer: Ken Takata
|
||||
" URL: https://github.com/k-takata/vim-nsis
|
||||
" Last Change: 2018-01-21
|
||||
" Filenames: *.nsi
|
||||
" License: VIM License
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal nosmartindent
|
||||
setlocal noautoindent
|
||||
setlocal indentexpr=GetNsisIndent(v:lnum)
|
||||
setlocal indentkeys=!^F,o,O
|
||||
setlocal indentkeys+==~${Else,=~${EndIf,=~${EndUnless,=~${AndIf,=~${AndUnless,=~${OrIf,=~${OrUnless,=~${Case,=~${Default,=~${EndSelect,=~${EndSwith,=~${Loop,=~${Next,=~${MementoSectionEnd,=~FunctionEnd,=~SectionEnd,=~SectionGroupEnd,=~PageExEnd,0=~!macroend,0=~!if,0=~!else,0=~!endif
|
||||
|
||||
if exists("*GetNsisIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
function! GetNsisIndent(lnum)
|
||||
" If this line is explicitly joined: If the previous line was also joined,
|
||||
" line it up with that one, otherwise add two 'shiftwidth'
|
||||
if getline(a:lnum - 1) =~ '\\$'
|
||||
if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
|
||||
return indent(a:lnum - 1)
|
||||
endif
|
||||
return indent(a:lnum - 1) + shiftwidth() * 2
|
||||
endif
|
||||
|
||||
" Grab the current line, stripping comments.
|
||||
let l:thisl = substitute(getline(a:lnum), '[;#].*$', '', '')
|
||||
" Check if this line is a conditional preprocessor line.
|
||||
let l:preproc = l:thisl =~? '^\s*!\%(if\|else\|endif\)'
|
||||
|
||||
" Grab the previous line, stripping comments.
|
||||
" Skip preprocessor lines and continued lines.
|
||||
let l:prevlnum = a:lnum
|
||||
while 1
|
||||
let l:prevlnum = prevnonblank(l:prevlnum - 1)
|
||||
if l:prevlnum == 0
|
||||
" top of file
|
||||
return 0
|
||||
endif
|
||||
let l:prevl = substitute(getline(l:prevlnum), '[;#].*$', '', '')
|
||||
let l:prevpreproc = l:prevl =~? '^\s*!\%(if\|else\|endif\)'
|
||||
if l:preproc == l:prevpreproc && getline(l:prevlnum - 1) !~? '\\$'
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
let l:previ = indent(l:prevlnum)
|
||||
let l:ind = l:previ
|
||||
|
||||
if l:preproc
|
||||
" conditional preprocessor
|
||||
if l:prevl =~? '^\s*!\%(if\%(\%(macro\)\?n\?def\)\?\|else\)\>'
|
||||
let l:ind += shiftwidth()
|
||||
endif
|
||||
if l:thisl =~? '^\s*!\%(else\|endif\)\?\>'
|
||||
let l:ind -= shiftwidth()
|
||||
endif
|
||||
return l:ind
|
||||
endif
|
||||
|
||||
if l:prevl =~? '^\s*\%(\${\%(If\|IfNot\|Unless\|ElseIf\|ElseIfNot\|ElseUnless\|Else\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Select\|Case\|Case[2-5]\|CaseElse\|Default\|Switch\|Do\|DoWhile\|DoUntil\|For\|ForEach\|MementoSection\)}\|Function\>\|Section\>\|SectionGroup\|PageEx\>\|!macro\>\)'
|
||||
" previous line opened a block
|
||||
let l:ind += shiftwidth()
|
||||
endif
|
||||
if l:thisl =~? '^\s*\%(\${\%(ElseIf\|ElseIfNot\|ElseUnless\|Else\|EndIf\|EndUnless\|AndIf\|AndIfNot\|AndUnless\|OrIf\|OrIfNot\|OrUnless\|Loop\|LoopWhile\|LoopUntil\|Next\|MementoSectionEnd\)\>}\?\|FunctionEnd\>\|SectionEnd\>\|SectionGroupEnd\|PageExEnd\>\|!macroend\>\)'
|
||||
" this line closed a block
|
||||
let l:ind -= shiftwidth()
|
||||
elseif l:thisl =~? '^\s*\${\%(Case\|Case[2-5]\|CaseElse\|Default\)\>}\?'
|
||||
if l:prevl !~? '^\s*\${\%(Select\|Switch\)}'
|
||||
let l:ind -= shiftwidth()
|
||||
endif
|
||||
elseif l:thisl =~? '^\s*\${\%(EndSelect\|EndSwitch\)\>}\?'
|
||||
" this line closed a block
|
||||
if l:prevl =~? '^\s*\${\%(Select\|Switch\)}'
|
||||
let l:ind -= shiftwidth()
|
||||
else
|
||||
let l:ind -= shiftwidth() * 2
|
||||
endif
|
||||
endif
|
||||
|
||||
return l:ind
|
||||
endfunction
|
||||
|
||||
" vim: ts=8 sw=2 sts=2
|
@ -1,11 +1,14 @@
|
||||
" Vim indent file
|
||||
" Language: Scheme
|
||||
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||
" Last Change: 2005 Jun 24
|
||||
" Language: Scheme
|
||||
" Last Change: 2018 Jan 31
|
||||
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||
" URL: https://foldling.org/vim/indent/scheme.vim
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Use the Lisp indenting
|
||||
runtime! indent/lisp.vim
|
||||
|
@ -1354,10 +1354,18 @@ if exists("&pythondll")
|
||||
call append("$", "pythondll\tname of the Python 2 dynamic library")
|
||||
call <SID>OptionG("pythondll", &pythondll)
|
||||
endif
|
||||
if exists("&pythonhome")
|
||||
call append("$", "pythonhome\tname of the Python 2 home directory")
|
||||
call <SID>OptionG("pythonhome", &pythonhome)
|
||||
endif
|
||||
if exists("&pythonthreedll")
|
||||
call append("$", "pythonthreedll\tname of the Python 3 dynamic library")
|
||||
call <SID>OptionG("pythonthreedll", &pythonthreedll)
|
||||
endif
|
||||
if exists("&pythonthreehome")
|
||||
call append("$", "pythonthreehome\tname of the Python 3 home directory")
|
||||
call <SID>OptionG("pythonthreehome", &pythonthreehome)
|
||||
endif
|
||||
if exists("&rubydll")
|
||||
call append("$", "rubydll\tname of the Ruby dynamic library")
|
||||
call <SID>OptionG("rubydll", &rubydll)
|
||||
|
@ -216,7 +216,7 @@ func s:InstallCommands()
|
||||
" TODO: can the K mapping be restored?
|
||||
nnoremap K :Evaluate<CR>
|
||||
|
||||
if has('menu')
|
||||
if has('menu') && &mouse != ''
|
||||
nnoremenu WinBar.Step :Step<CR>
|
||||
nnoremenu WinBar.Next :Over<CR>
|
||||
nnoremenu WinBar.Finish :Finish<CR>
|
||||
|
@ -1,29 +1,30 @@
|
||||
" Vim plugin for using Vim as manpager.
|
||||
" Maintainer: Enno Nagel <ennonagel+vim@gmail.com>
|
||||
" Last Change: 2017 November 07
|
||||
" Last Change: 2018 Feb 04
|
||||
|
||||
" $MAN_PN is supposed to be set by MANPAGER, see ":help manpager.vim".
|
||||
if empty($MAN_PN)
|
||||
finish
|
||||
endif
|
||||
command! -nargs=0 MANPAGER call s:ManPager() | delcommand MANPAGER
|
||||
|
||||
command! -nargs=0 MANPAGER call s:MANPAGER() | delcommand MANPAGER
|
||||
|
||||
function! s:MANPAGER()
|
||||
let page_pattern = '\v\w[-_.:0-9A-Za-z]*'
|
||||
let sec_pattern = '\v\w+%(\+\w+)*'
|
||||
let pagesec_pattern = '\v(' . page_pattern . ')\((' . sec_pattern . ')\)'
|
||||
|
||||
if $MAN_PN is '1'
|
||||
let manpage = tolower(matchstr( getline(nextnonblank(1)), '^' . pagesec_pattern ))
|
||||
else
|
||||
let manpage = expand($MAN_PN)
|
||||
function! s:ManPager()
|
||||
set nocompatible
|
||||
if exists('+viminfofile')
|
||||
set viminfofile=NONE
|
||||
endif
|
||||
set noswapfile
|
||||
|
||||
let page_sec = matchlist(manpage, '^' . pagesec_pattern . '$')
|
||||
setlocal ft=man
|
||||
runtime ftplugin/man.vim
|
||||
setlocal buftype=nofile bufhidden=hide iskeyword+=: modifiable
|
||||
|
||||
bwipe!
|
||||
" Emulate 'col -b'
|
||||
silent keepj keepp %s/\v(.)\b\ze\1?//ge
|
||||
|
||||
setlocal filetype=man
|
||||
exe 'Man' page_sec[2] page_sec[1]
|
||||
" Remove empty lines above the header
|
||||
call cursor(1, 1)
|
||||
let n = search(".*(.*)", "c")
|
||||
if n > 1
|
||||
exe "1," . n-1 . "d"
|
||||
endif
|
||||
setlocal nomodified readonly
|
||||
|
||||
syntax on
|
||||
endfunction
|
||||
|
@ -20,7 +20,7 @@
|
||||
if &cp || exists("g:loaded_netrwPlugin")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwPlugin = "v162"
|
||||
let g:loaded_netrwPlugin = "v156"
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
"DechoRemOn
|
||||
@ -42,8 +42,8 @@ augroup END
|
||||
" Network Browsing Reading Writing: {{{2
|
||||
augroup Network
|
||||
au!
|
||||
au BufReadCmd file://* call netrw#FileUrlEdit(expand("<amatch>"))
|
||||
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
|
||||
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
|
||||
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "sil doau BufReadPost ".fnameescape(expand("<amatch>"))
|
||||
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,file://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "sil doau FileReadPost ".fnameescape(expand("<amatch>"))
|
||||
au BufWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau BufWritePost ".fnameescape(expand("<amatch>"))
|
||||
au FileWriteCmd ftp://*,rcp://*,scp://*,http://*,file://*,dav://*,davs://*,rsync://*,sftp://* exe "sil doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "sil doau FileWritePost ".fnameescape(expand("<amatch>"))
|
||||
@ -59,7 +59,7 @@ com! -count=1 -nargs=* Nread let s:svpos= winsaveview()<bar>call netrw#NetRead(
|
||||
com! -range=% -nargs=* Nwrite let s:svpos= winsaveview()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call winrestview(s:svpos)
|
||||
com! -nargs=* NetUserPass call NetUserPass(<f-args>)
|
||||
com! -nargs=* Nsource let s:svpos= winsaveview()<bar>call netrw#NetSource(<f-args>)<bar>call winrestview(s:svpos)
|
||||
com! -nargs=? Ntree call netrw#SetTreetop(1,<q-args>)
|
||||
com! -nargs=? Ntree call netrw#SetTreetop(<q-args>)
|
||||
|
||||
" Commands: :Explore, :Sexplore, Hexplore, Vexplore, Lexplore {{{2
|
||||
com! -nargs=* -bar -bang -count=0 -complete=dir Explore call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
|
||||
@ -81,7 +81,7 @@ if !exists("g:netrw_nogx")
|
||||
if !hasmapto('<Plug>NetrwBrowseX')
|
||||
nmap <unique> gx <Plug>NetrwBrowseX
|
||||
endif
|
||||
nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX()))<cr>
|
||||
nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(expand((exists("g:netrw_gx")? g:netrw_gx : '<cfile>')),netrw#CheckIfRemote())<cr>
|
||||
endif
|
||||
if maparg('gx','v') == ""
|
||||
if !hasmapto('<Plug>NetrwBrowseXVis')
|
||||
@ -129,15 +129,19 @@ fun! s:LocalBrowse(dirname)
|
||||
elseif isdirectory(a:dirname)
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> ft=".&ft." (isdirectory, not amiga)")
|
||||
" call Dredir("LocalBrowse ft last set: ","verbose set ft")
|
||||
" call Decho("(s:LocalBrowse) COMBAK#23: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
|
||||
sil! call netrw#LocalBrowseCheck(a:dirname)
|
||||
" call Decho("(s:LocalBrowse) COMBAK#24: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
|
||||
if exists("w:netrw_bannercnt") && line('.') < w:netrw_bannercnt
|
||||
exe w:netrw_bannercnt
|
||||
" call Decho("(s:LocalBrowse) COMBAK#25: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
|
||||
endif
|
||||
|
||||
else
|
||||
" not a directory, ignore it
|
||||
" call Decho("(LocalBrowse) dirname<".a:dirname."> not a directory, ignoring...")
|
||||
endif
|
||||
" call Decho("(s:LocalBrowse) COMBAK#26: buf#".bufnr("%")." file<".expand("%")."> line#".line(".")." col#".col("."))
|
||||
|
||||
" call Dret("s:LocalBrowse")
|
||||
endfun
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types in scripts
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2017 Nov 11
|
||||
" Last change: 2018 Feb 03
|
||||
|
||||
" This file is called by an autocommand for every file that has just been
|
||||
" loaded into a buffer. It checks if the type of file can be recognized by
|
||||
@ -100,6 +100,14 @@ if s:line1 =~# "^#!"
|
||||
elseif s:name =~# 'make\>'
|
||||
set ft=make
|
||||
|
||||
" Pike
|
||||
elseif s:name =~# '^pike\%(\>\|[0-9]\)'
|
||||
set ft=pike
|
||||
|
||||
" Pike
|
||||
elseif s:name =~# '^pike\%(\>\|[0-9]\)'
|
||||
set ft=pike
|
||||
|
||||
" Lua
|
||||
elseif s:name =~# 'lua'
|
||||
set ft=lua
|
||||
@ -129,7 +137,7 @@ if s:line1 =~# "^#!"
|
||||
set ft=ruby
|
||||
|
||||
" JavaScript
|
||||
elseif s:name =~# 'node\(js\)\=\>' || s:name =~# 'rhino\>'
|
||||
elseif s:name =~# 'node\(js\)\=\>\|js\>' || s:name =~# 'rhino\>'
|
||||
set ft=javascript
|
||||
|
||||
" BC calculator
|
||||
@ -172,6 +180,10 @@ if s:line1 =~# "^#!"
|
||||
elseif s:name =~# 'scala\>'
|
||||
set ft=scala
|
||||
|
||||
" Clojure
|
||||
elseif s:name =~# 'clojure'
|
||||
set ft=clojure
|
||||
|
||||
endif
|
||||
unlet s:name
|
||||
|
||||
|
@ -1,8 +1,10 @@
|
||||
" Vim syntax file
|
||||
" Language: Apache-Style configuration files (proftpd.conf/apache.conf/..)
|
||||
" Maintainer: Christian Hammers <ch@westend.com>
|
||||
" URL: none
|
||||
" Maintainer: Ben RUBSON <ben.rubson@gmail.com>
|
||||
" Former Maintainer: Christian Hammers <ch@westend.com>
|
||||
" ChangeLog:
|
||||
" 2017-12-17,ch
|
||||
" correctly detect comments
|
||||
" 2001-05-04,ch
|
||||
" adopted Vim 6.0 syntax style
|
||||
" 1999-10-28,ch
|
||||
@ -27,8 +29,8 @@ endif
|
||||
|
||||
syn case ignore
|
||||
|
||||
syn match apComment /^\s*#.*$/
|
||||
syn match apOption /^\s*[^ \t#<=]*/
|
||||
syn match apComment /^\s*#.*$/
|
||||
"syn match apLastValue /[^ \t<=#]*$/ contains=apComment ugly
|
||||
|
||||
" tags
|
||||
|
101
runtime/syntax/autodoc.vim
Normal file
101
runtime/syntax/autodoc.vim
Normal file
@ -0,0 +1,101 @@
|
||||
" Vim syntax file
|
||||
" Language: Autodoc
|
||||
" Maintainer: Stephen R. van den Berg <srb@cuci.nl>
|
||||
" Last Change: 2018 Jan 23
|
||||
" Version: 2.9
|
||||
" Remark: Included by pike.vim, cmod.vim and optionally c.vim
|
||||
" Remark: In order to make c.vim use it, set: c_autodoc
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn case match
|
||||
|
||||
" A bunch of useful autodoc keywords
|
||||
syn keyword autodocStatement contained appears belongs global
|
||||
syn keyword autodocStatement contained decl directive inherit
|
||||
syn keyword autodocStatement contained deprecated obsolete bugs
|
||||
syn keyword autodocStatement contained copyright example fixme note param returns
|
||||
syn keyword autodocStatement contained seealso thanks throws constant
|
||||
syn keyword autodocStatement contained member index elem
|
||||
syn keyword autodocStatement contained value type item
|
||||
|
||||
syn keyword autodocRegion contained enum mapping code multiset array
|
||||
syn keyword autodocRegion contained int string section mixed ol ul dl
|
||||
syn keyword autodocRegion contained class module namespace
|
||||
syn keyword autodocRegion contained endenum endmapping endcode endmultiset
|
||||
syn keyword autodocRegion contained endarray endint endstring endsection
|
||||
syn keyword autodocRegion contained endmixed endol endul enddl
|
||||
syn keyword autodocRegion contained endclass endmodule endnamespace
|
||||
|
||||
syn keyword autodocIgnore contained ignore endignore
|
||||
|
||||
syn keyword autodocStatAcc contained b i u tt url pre sub sup
|
||||
syn keyword autodocStatAcc contained ref rfc xml dl expr image
|
||||
|
||||
syn keyword autodocTodo contained TODO FIXME XXX
|
||||
|
||||
syn match autodocLineStart display "\(//\|/\?\*\)\@2<=!"
|
||||
syn match autodocWords "[^!@{}[\]]\+" display contains=@Spell
|
||||
|
||||
syn match autodocLink "@\[[^[\]]\+]"hs=s+2,he=e-1 display contains=autodocLead
|
||||
syn match autodocAtStmt "@[a-z]\+\%(\s\|$\)\@="hs=s+1 display contains=autodocStatement,autodocIgnore,autodocLead,autodocRegion
|
||||
|
||||
" Due to limitations of the matching algorithm, we cannot highlight
|
||||
" nested autodocNStmtAcc structures correctly
|
||||
syn region autodocNStmtAcc start="@[a-z]\+{" end="@}" contains=autodocStatAcc,autodocLead keepend
|
||||
|
||||
syn match autodocUrl contained display ".\+"
|
||||
syn region autodocAtUrlAcc start="{"ms=s+1 end="@}"he=e-1,me=e-2 contained display contains=autodocUrl,autodocLead keepend
|
||||
syn region autodocNUrlAcc start="@url{" end="@}" contains=autodocStatAcc,autodocAtUrlAcc,autodocLead transparent
|
||||
|
||||
syn match autodocSpecial "@@" display
|
||||
syn match autodocLead "@" display contained
|
||||
|
||||
"when wanted, highlight trailing white space
|
||||
if exists("c_space_errors")
|
||||
if !exists("c_no_trail_space_error")
|
||||
syn match autodocSpaceError display excludenl "\s\+$"
|
||||
endif
|
||||
if !exists("c_no_tab_space_error")
|
||||
syn match autodocSpaceError display " \+\t"me=e-1
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists("c_minlines")
|
||||
let b:c_minlines = c_minlines
|
||||
else
|
||||
if !exists("c_no_if0")
|
||||
let b:c_minlines = 50 " #if 0 constructs can be long
|
||||
else
|
||||
let b:c_minlines = 15 " mostly for () constructs
|
||||
endif
|
||||
endif
|
||||
exec "syn sync ccomment autodocComment minlines=" . b:c_minlines
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only used when an item doesn't have highlighting yet
|
||||
hi def link autodocStatement Statement
|
||||
hi def link autodocStatAcc Statement
|
||||
hi def link autodocRegion Structure
|
||||
hi def link autodocAtStmt Error
|
||||
hi def link autodocNStmtAcc Identifier
|
||||
hi def link autodocLink Type
|
||||
hi def link autodocTodo Todo
|
||||
hi def link autodocSpaceError Error
|
||||
hi def link autodocLineStart SpecialComment
|
||||
hi def link autodocSpecial SpecialChar
|
||||
hi def link autodocUrl Underlined
|
||||
hi def link autodocLead Statement
|
||||
hi def link autodocIgnore Delimiter
|
||||
|
||||
let b:current_syntax = "autodoc"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vim: ts=8
|
@ -13,6 +13,14 @@ set cpo&vim
|
||||
|
||||
let s:ft = matchstr(&ft, '^\([^.]\)\+')
|
||||
|
||||
" Optional embedded Autodoc parsing
|
||||
" To enable it add: let g:c_autodoc = 1
|
||||
" to your .vimrc
|
||||
if exists("c_autodoc")
|
||||
syn include @cAutodoc <sfile>:p:h/autodoc.vim
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
|
||||
" A bunch of useful C keywords
|
||||
syn keyword cStatement goto break return continue asm
|
||||
syn keyword cLabel case default
|
||||
@ -377,6 +385,13 @@ syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInP
|
||||
syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||
syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||
|
||||
" Optional embedded Autodoc parsing
|
||||
if exists("c_autodoc")
|
||||
syn match cAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cAutodoc containedin=cComment,cCommentL
|
||||
syn cluster cCommentGroup add=cAutodocReal
|
||||
syn cluster cPreProcGroup add=cAutodocReal
|
||||
endif
|
||||
|
||||
" Highlight User Labels
|
||||
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
||||
if s:ft ==# 'c' || exists("cpp_no_cpp11")
|
||||
|
File diff suppressed because it is too large
Load Diff
77
runtime/syntax/chicken.vim
Normal file
77
runtime/syntax/chicken.vim
Normal file
@ -0,0 +1,77 @@
|
||||
" Vim syntax file
|
||||
" Language: Scheme (CHICKEN)
|
||||
" Last Change: 2018 Jan 31
|
||||
" Author: Evan Hanson <evhan@foldling.org>
|
||||
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||
" URL: https://foldling.org/vim/syntax/chicken.vim
|
||||
" Notes: This is supplemental syntax, to be loaded after the core Scheme
|
||||
" syntax file (syntax/scheme.vim). Enable it by setting b:is_chicken=1
|
||||
" and filetype=scheme.
|
||||
|
||||
" Only to be used on top of the Scheme syntax.
|
||||
if !exists('b:did_scheme_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Lighten parentheses.
|
||||
hi def link schemeParentheses Comment
|
||||
|
||||
" foo#bar
|
||||
syn match schemeExtraSyntax /[^ #'`\t\n()\[\]"|;]\+#[^ '`\t\n()\[\]"|;]\+/
|
||||
|
||||
" ##foo#bar
|
||||
syn match schemeExtraSyntax /##[^ '`\t\n()\[\]"|;]\+/
|
||||
|
||||
" Heredocs.
|
||||
syn region schemeString start=/#<[<#]\s*\z(.*\)/ end=/^\z1$/
|
||||
|
||||
" Keywords.
|
||||
syn match schemeKeyword /#[!:][a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+/
|
||||
syn match schemeKeyword /[a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+:\>/
|
||||
|
||||
" C/C++ syntax.
|
||||
let s:c = globpath(&rtp, 'syntax/cpp.vim', 0, 1)
|
||||
if len(s:c)
|
||||
exe 'syn include @c ' s:c[0]
|
||||
syn region c matchgroup=schemeComment start=/#>/ end=/<#/ contains=@c
|
||||
endif
|
||||
|
||||
syn keyword schemeSyntax define-record
|
||||
|
||||
syn keyword schemeLibrarySyntax declare
|
||||
syn keyword schemeLibrarySyntax module
|
||||
syn keyword schemeLibrarySyntax reexport
|
||||
syn keyword schemeLibrarySyntax require-library
|
||||
|
||||
syn keyword schemeTypeSyntax -->
|
||||
syn keyword schemeTypeSyntax ->
|
||||
syn keyword schemeTypeSyntax :
|
||||
syn keyword schemeTypeSyntax assume
|
||||
syn keyword schemeTypeSyntax compiler-typecase
|
||||
syn keyword schemeTypeSyntax define-specialization
|
||||
syn keyword schemeTypeSyntax define-type
|
||||
syn keyword schemeTypeSyntax the
|
||||
|
||||
syn keyword schemeExtraSyntax and-let*
|
||||
syn keyword schemeExtraSyntax match
|
||||
syn keyword schemeExtraSyntax match-lambda
|
||||
syn keyword schemeExtraSyntax match-lambda*
|
||||
|
||||
syn keyword schemeSpecialSyntax define-compiler-syntax
|
||||
syn keyword schemeSpecialSyntax define-constant
|
||||
syn keyword schemeSpecialSyntax define-external
|
||||
syn keyword schemeSpecialSyntax define-inline
|
||||
syn keyword schemeSpecialSyntax foreign-code
|
||||
syn keyword schemeSpecialSyntax foreign-declare
|
||||
syn keyword schemeSpecialSyntax foreign-lambda
|
||||
syn keyword schemeSpecialSyntax foreign-lambda*
|
||||
syn keyword schemeSpecialSyntax foreign-primitive
|
||||
syn keyword schemeSpecialSyntax foreign-safe-lambda
|
||||
syn keyword schemeSpecialSyntax foreign-safe-lambda*
|
||||
syn keyword schemeSpecialSyntax foreign-value
|
||||
|
||||
syn keyword schemeSyntaxSyntax begin-for-syntax
|
||||
syn keyword schemeSyntaxSyntax define-for-syntax
|
||||
syn keyword schemeSyntaxSyntax er-macro-transformer
|
||||
syn keyword schemeSyntaxSyntax ir-macro-transformer
|
||||
syn keyword schemeSyntaxSyntax require-library-for-syntax
|
144
runtime/syntax/cmod.vim
Normal file
144
runtime/syntax/cmod.vim
Normal file
@ -0,0 +1,144 @@
|
||||
" Vim syntax file
|
||||
" Language: Cmod
|
||||
" Current Maintainer: Stephen R. van den Berg <srb@cuci.nl>
|
||||
" Last Change: 2018 Jan 23
|
||||
" Version: 2.9
|
||||
" Remark: Is used to edit Cmod files for Pike development.
|
||||
" Remark: Includes a highlighter for any embedded Autodoc format.
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Read the C syntax to start with
|
||||
runtime! syntax/c.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
if !exists("c_autodoc")
|
||||
" For embedded Autodoc documentation
|
||||
syn include @cmodAutodoc <sfile>:p:h/autodoc.vim
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
|
||||
" Supports rotating amongst several same-level preprocessor conditionals
|
||||
packadd! matchit
|
||||
let b:match_words = "({:}\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"
|
||||
|
||||
" Cmod extensions
|
||||
syn keyword cmodStatement __INIT INIT EXIT GC_RECURSE GC_CHECK
|
||||
syn keyword cmodStatement EXTRA OPTIMIZE RETURN
|
||||
syn keyword cmodStatement ADD_EFUN ADD_EFUN2 ADD_FUNCTION
|
||||
syn keyword cmodStatement MK_STRING MK_STRING_SVALUE CONSTANT_STRLEN
|
||||
|
||||
syn keyword cmodStatement SET_SVAL pop_n_elems pop_stack
|
||||
syn keyword cmodStatement SIMPLE_ARG_TYPE_ERROR Pike_sp Pike_fp MKPCHARP
|
||||
syn keyword cmodStatement SET_SVAL_TYPE REF_MAKE_CONST_STRING INC_PCHARP
|
||||
syn keyword cmodStatement PTR_FROM_INT INHERIT_FROM_PTR
|
||||
syn keyword cmodStatement DECLARE_CYCLIC BEGIN_CYCLIC END_CYCLIC
|
||||
syn keyword cmodStatement UPDATE_LOCATION UNSAFE_IS_ZERO SAFE_IS_ZERO
|
||||
syn keyword cmodStatement MKPCHARP_STR APPLY_MASTER current_storage
|
||||
syn keyword cmodStatement PIKE_MAP_VARIABLE size_shift
|
||||
syn keyword cmodStatement THREADS_ALLOW THREADS_DISALLOW
|
||||
|
||||
syn keyword cmodStatement add_integer_constant ref_push_object
|
||||
syn keyword cmodStatement push_string apply_svalue free_svalue
|
||||
syn keyword cmodStatement get_inherit_storage get_storage
|
||||
syn keyword cmodStatement make_shared_binary_string push_int64
|
||||
syn keyword cmodStatement begin_shared_string end_shared_string
|
||||
syn keyword cmodStatement add_ref fast_clone_object clone_object
|
||||
syn keyword cmodStatement push_undefined push_int ref_push_string
|
||||
syn keyword cmodStatement free_string push_ulongest free_object
|
||||
syn keyword cmodStatement convert_stack_top_to_bignum push_array
|
||||
syn keyword cmodStatement push_object reduce_stack_top_bignum
|
||||
syn keyword cmodStatement push_static_text apply_current
|
||||
syn keyword cmodStatement assign_svalue free_program destruct_object
|
||||
syn keyword cmodStatement start_new_program low_inherit stack_swap
|
||||
syn keyword cmodStatement generic_error_program end_program
|
||||
syn keyword cmodStatement free_array apply_external copy_mapping
|
||||
syn keyword cmodStatement push_constant_text ref_push_mapping
|
||||
syn keyword cmodStatement mapping_insert mapping_string_insert_string
|
||||
syn keyword cmodStatement f_aggregate_mapping f_aggregate apply
|
||||
syn keyword cmodStatement push_mapping push_svalue low_mapping_lookup
|
||||
syn keyword cmodStatement assign_svalues_no_free f_add
|
||||
syn keyword cmodStatement push_empty_string stack_dup assign_lvalue
|
||||
syn keyword cmodStatement low_mapping_string_lookup allocate_mapping
|
||||
syn keyword cmodStatement copy_shared_string make_shared_binary_string0
|
||||
syn keyword cmodStatement f_call_function f_index f_utf8_to_string
|
||||
syn keyword cmodStatement finish_string_builder init_string_builder
|
||||
syn keyword cmodStatement reset_string_builder free_string_builder
|
||||
syn keyword cmodStatement string_builder_putchar get_all_args
|
||||
syn keyword cmodStatement add_shared_strings check_all_args
|
||||
syn keyword cmodStatement do_inherit add_string_constant
|
||||
syn keyword cmodStatement add_program_constant set_init_callback
|
||||
syn keyword cmodStatement simple_mapping_string_lookup
|
||||
syn keyword cmodStatement f_sprintf push_text string_has_null
|
||||
syn keyword cmodStatement end_and_resize_shared_string
|
||||
|
||||
syn keyword cmodStatement args sp
|
||||
|
||||
syn keyword cmodStatement free
|
||||
|
||||
syn keyword cmodConstant ID_PROTECTED ID_FINAL PIKE_DEBUG
|
||||
syn keyword cmodConstant NUMBER_NUMBER
|
||||
syn keyword cmodConstant PIKE_T_INT PIKE_T_STRING PIKE_T_ARRAY
|
||||
syn keyword cmodConstant PIKE_T_MULTISET PIKE_T_OBJECT PIKE_T_MAPPING
|
||||
syn keyword cmodConstant NUMBER_UNDEFINED PIKE_T_PROGRAM PIKE_T_FUNCTION
|
||||
syn keyword cmodConstant T_OBJECT T_STRING T_ARRAY T_MAPPING
|
||||
|
||||
syn keyword cmodException SET_ONERROR UNSET_ONERROR ONERROR
|
||||
syn keyword cmodException CALL_AND_UNSET_ONERROR
|
||||
|
||||
syn keyword cmodDebug Pike_fatal Pike_error check_stack
|
||||
|
||||
syn keyword cmodAccess public protected private INHERIT
|
||||
syn keyword cmodAccess CTYPE CVAR PIKEVAR PIKEFUN
|
||||
|
||||
syn keyword cmodModifier efun export flags optflags optfunc
|
||||
syn keyword cmodModifier type rawtype errname name c_name prototype
|
||||
syn keyword cmodModifier program_flags gc_trivial PMOD_EXPORT
|
||||
syn keyword cmodModifier ATTRIBUTE noclone noinline
|
||||
syn keyword cmodModifier tOr tFuncV tInt tMix tVoid tStr tMap tPrg
|
||||
syn keyword cmodModifier tSetvar tArr tMult tMultiset
|
||||
syn keyword cmodModifier tArray tMapping tString tSetvar tVar
|
||||
|
||||
syn keyword cmodType bool mapping string multiset array mixed
|
||||
syn keyword cmodType object function program auto svalue
|
||||
syn keyword cmodType bignum longest zero pike_string
|
||||
syn keyword cmodType this this_program THIS INT_TYPE INT64 INT32
|
||||
syn keyword cmodType p_wchar2 PCHARP p_wchar1 p_wchar0 MP_INT
|
||||
|
||||
syn keyword cmodOperator _destruct create __hash _sizeof _indices _values
|
||||
syn keyword cmodOperator _is_type _sprintf _equal _m_delete _get_iterator
|
||||
syn keyword cmodOperator _search _types _serialize _deserialize
|
||||
syn keyword cmodOperator _size_object _random _sqrt TYPEOF SUBTYPEOF
|
||||
syn keyword cmodOperator LIKELY UNLIKELY
|
||||
|
||||
syn keyword cmodStructure DECLARATIONS PIKECLASS DECLARE_STORAGE
|
||||
|
||||
if !exists("c_autodoc")
|
||||
syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL
|
||||
syn cluster cCommentGroup add=cmodAutodocReal
|
||||
syn cluster cPreProcGroup add=cmodAutodocReal
|
||||
endif
|
||||
|
||||
" Default highlighting
|
||||
hi def link cmodAccess Statement
|
||||
hi def link cmodOperator Operator
|
||||
hi def link cmodStatement Statement
|
||||
hi def link cmodConstant Constant
|
||||
hi def link cmodModifier Type
|
||||
hi def link cmodType Type
|
||||
hi def link cmodStorageClass StorageClass
|
||||
hi def link cmodStructure Structure
|
||||
hi def link cmodException Exception
|
||||
hi def link cmodDebug Debug
|
||||
|
||||
let b:current_syntax = "cmod"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vim: ts=8
|
@ -1,9 +1,10 @@
|
||||
" Vim syntax file
|
||||
" Language: configure.in script: M4 with sh
|
||||
" Maintainer: Christian Hammesr <ch@lathspell.westend.com>
|
||||
" Last Change: 2015 Jan 14
|
||||
" Former Maintainer: Christian Hammesr <ch@lathspell.westend.com>
|
||||
" Last Change: 2018 Feb 03
|
||||
" (patch from Yngve Inntjore Levinsen to detect AC_MSG)
|
||||
" (patch from Khym Chanur to add @Spell)
|
||||
" (patch from James McCoy to fix paren matching)
|
||||
|
||||
" Well, I actually even do not know much about m4. This explains why there
|
||||
" is probably very much missing here, yet !
|
||||
@ -30,8 +31,8 @@ syn keyword configspecial cat rm eval
|
||||
syn region configstring start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell
|
||||
|
||||
" Anything inside AC_MSG_TYPE([...]) and AC_MSG_TYPE(...) is a string.
|
||||
syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell
|
||||
syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell
|
||||
syn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell
|
||||
syn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
@ -45,6 +46,7 @@ hi def link confignumber Number
|
||||
hi def link configkeyword Keyword
|
||||
hi def link configspecial Special
|
||||
hi def link configstring String
|
||||
hi def link configmsg String
|
||||
|
||||
|
||||
let b:current_syntax = "config"
|
||||
|
@ -1,15 +1,15 @@
|
||||
" Vim syntax file
|
||||
" Language: CUDA (NVIDIA Compute Unified Device Architecture)
|
||||
" Maintainer: Timothy B. Terriberry <tterribe@users.sourceforge.net>
|
||||
" Last Change: 2007 Oct 13
|
||||
" Last Change: 2018 Feb 06
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" Read the C syntax to start with
|
||||
runtime! syntax/c.vim
|
||||
" Read the C++ syntax to start with
|
||||
runtime! syntax/cpp.vim
|
||||
|
||||
" CUDA extentions
|
||||
syn keyword cudaStorageClass __device__ __global__ __host__
|
||||
|
@ -1,10 +1,10 @@
|
||||
" Vim syntax file
|
||||
" Language: Debian changelog files
|
||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||
" Wichert Akkerman <wakkerma@debian.org>
|
||||
" Last Change: 2017 Apr 23
|
||||
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim
|
||||
" Last Change: 2018 Jan 06
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
if exists("b:current_syntax")
|
||||
@ -21,7 +21,7 @@ let s:binNMU='binary-only=yes'
|
||||
syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
|
||||
exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
|
||||
exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
|
||||
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
|
||||
syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
|
||||
syn match debchangelogVersion contained "(.\{-})"
|
||||
syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
|
||||
syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
|
||||
|
@ -1,10 +1,10 @@
|
||||
" Vim syntax file
|
||||
" Language: Debian control files
|
||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||
" Wichert Akkerman <wakkerma@debian.org>
|
||||
" Last Change: 2017 Nov 04
|
||||
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debcontrol.vim
|
||||
" Last Change: 2018 Jan 06
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debcontrol.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
if exists("b:current_syntax")
|
||||
@ -52,7 +52,7 @@ let s:sections = [
|
||||
\, 'devel', 'doc', 'editors', 'education', 'electronics', 'embedded'
|
||||
\, 'fonts', 'games', 'gnome', 'gnustep', 'gnu-r', 'golang', 'graphics'
|
||||
\, 'hamradio', 'haskell', 'httpd', 'interpreters', 'introspection'
|
||||
\, 'java', 'javascript', 'kde', 'kernel', 'libs', 'libdevel', 'lisp'
|
||||
\, 'java\%(script\)\=', 'kde', 'kernel', 'libs', 'libdevel', 'lisp'
|
||||
\, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net'
|
||||
\, 'news', 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python'
|
||||
\, 'ruby', 'rust', 'science', 'shells', 'sound', 'text', 'tex'
|
||||
@ -87,44 +87,29 @@ syn match debcontrolComment "^#.*$" contains=@Spell
|
||||
|
||||
syn case ignore
|
||||
|
||||
" List of all legal keys, in order, from deb-src-control(5)
|
||||
" Source fields
|
||||
syn match debcontrolKey contained "^\%(Source\|Maintainer\|Uploaders\|Standards-Version\|Description\|Homepage\|Bugs\|Rules-Requires-Root\): *"
|
||||
syn match debcontrolKey contained "^\%(XS-\)\=Vcs-\%(Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\|Browser\): *"
|
||||
syn match debcontrolKey contained "^\%(Origin\|Section\|Priority\): *"
|
||||
syn match debcontrolKey contained "^Build-\%(Depends\|Conflicts\)\%(-Arch\|-Indep\)\=: *"
|
||||
|
||||
" Binary fields
|
||||
syn match debcontrolKey contained "^\%(Package\%(-Type\)\=\|Architecture\|Build-Profiles\): *"
|
||||
syn match debcontrolKey contained "^\%(\%(Build-\)\=Essential\|Multi-Arch\|Tag\): *"
|
||||
syn match debcontrolKey contained "^\%(\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\): *"
|
||||
syn match debcontrolKey contained "^\%(Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): *"
|
||||
|
||||
" User-defined fields
|
||||
syn match debcontrolKey contained "^X[SBC]\{0,3\}\%(-Private\)\=-[-a-zA-Z0-9]\+: *"
|
||||
|
||||
syn match debcontrolDeprecatedKey contained "^\%(\%(XS-\)\=DM-Upload-Allowed\): *"
|
||||
" Handle all fields from deb-src-control(5)
|
||||
|
||||
" Fields for which we do strict syntax checking
|
||||
syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
|
||||
syn region debcontrolStrictField start="^Multi-Arch" end="$" contains=debcontrolKey,debcontrolMultiArch oneline
|
||||
syn region debcontrolStrictField start="^\%(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline
|
||||
syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline
|
||||
syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline
|
||||
syn region debcontrolStrictField start="^\%(XC-\)\=Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline
|
||||
syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
|
||||
syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
|
||||
syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolDeprecatedKey,debcontrolDmUpload oneline
|
||||
syn region debcontrolStrictField start="^Rules-Requires-Root" end="$" contains=debcontrolKey,debcontrolR3 oneline
|
||||
syn region debcontrolStrictField start="^\%(Build-\)\=Essential" end="$" contains=debcontrolKey,debcontrolYesNo oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Architecture: *" end="$" contains=debcontrolArchitecture,debcontrolSpace oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Multi-Arch: *" end="$" contains=debcontrolMultiArch oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Package\|Source\): *" end="$" contains=debcontrolName oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Priority: *" end="$" contains=debcontrolPriority oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Section: *" end="$" contains=debcontrolSection oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XC-\)\=Package-Type: *" end="$" contains=debcontrolPackageType oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Homepage: *" end="$" contains=debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\): *" end="$" contains=debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Svn: *" end="$" contains=debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Cvs: *" end="$" contains=debcontrolVcsCvs oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-\)\=Vcs-Git: *" end="$" contains=debcontrolVcsGit oneline keepend
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^Rules-Requires-Root: *" end="$" contains=debcontrolR3 oneline
|
||||
syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Build-\)\=Essential: *" end="$" contains=debcontrolYesNo oneline
|
||||
|
||||
syn region debcontrolStrictField matchgroup=debcontrolDeprecatedKey start="^\%(XS-\)\=DM-Upload-Allowed: *" end="$" contains=debcontrolDmUpload oneline
|
||||
|
||||
" Catch-all for the other legal fields
|
||||
syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
|
||||
syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
|
||||
syn region debcontrolMultiFieldSpell start="^\%(Description\):" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
|
||||
syn region debcontrolField matchgroup=debcontrolKey start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\%(-Triggers\)\=\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): " end="$" contains=debcontrolVariable,debcontrolEmail oneline
|
||||
syn region debcontrolMultiField matchgroup=debcontrolKey start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\): *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment
|
||||
syn region debcontrolMultiFieldSpell matchgroup=debcontrolKey start="^Description: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell
|
||||
|
||||
" Associate our matches and regions with pretty colours
|
||||
hi def link debcontrolKey Keyword
|
||||
|
@ -1,9 +1,9 @@
|
||||
" Vim syntax file
|
||||
" Language: Debian sources.list
|
||||
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
|
||||
" Last Change: 2017 Oct 28
|
||||
" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debsources.vim
|
||||
" Last Change: 2018 Jan 06
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
if exists("b:current_syntax")
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Haskell
|
||||
" Maintainer: Haskell Cafe mailinglist <haskell-cafe@haskell.org>
|
||||
" Last Change: 2017 Jun 04
|
||||
" Last Change: 2017 Dec 16
|
||||
" Original Author: John Williams <jrw@pobox.com>
|
||||
"
|
||||
" Thanks to Ryan Crumley for suggestions and John Meacham for
|
||||
@ -59,8 +59,8 @@ syn match hsSpecialCharError contained "\\&\|'''\+"
|
||||
syn region hsString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=hsSpecialChar
|
||||
syn match hsCharacter "[^a-zA-Z0-9_']'\([^\\]\|\\[^']\+\|\\'\)'"lc=1 contains=hsSpecialChar,hsSpecialCharError
|
||||
syn match hsCharacter "^'\([^\\]\|\\[^']\+\|\\'\)'" contains=hsSpecialChar,hsSpecialCharError
|
||||
syn match hsNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>"
|
||||
syn match hsFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
|
||||
syn match hsNumber "\v<[0-9]%(_*[0-9])*>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*>|<0[oO]_*%(_*[0-7])*>|<0[bB]_*[01]%(_*[01])*>"
|
||||
syn match hsFloat "\v<[0-9]%(_*[0-9])*\.[0-9]%(_*[0-9])*%(_*[eE][-+]?[0-9]%(_*[0-9])*)?>|<[0-9]%(_*[0-9])*_*[eE][-+]?[0-9]%(_*[0-9])*>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*\.[0-9a-fA-F]%(_*[0-9a-fA-F])*%(_*[pP][-+]?[0-9]%(_*[0-9])*)?>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*_*[pP][-+]?[0-9]%(_*[0-9])*>"
|
||||
|
||||
" Keyword definitions. These must be patterns instead of keywords
|
||||
" because otherwise they would match as keywords at the start of a
|
||||
|
@ -3,8 +3,8 @@
|
||||
" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
|
||||
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
|
||||
" Repository: https://notabug.org/jorgesumle/vim-html-syntax
|
||||
" Last Change: 2017 Sep 30
|
||||
" included patch from Christian Brabandt to make use of the strikethrough attributes
|
||||
" Last Change: 2017 Dec 16
|
||||
" Included patch from Jorge Maldonado Ventura to add the dialog element
|
||||
"
|
||||
|
||||
" Please check :help html.vim for some comments and a description of the options
|
||||
@ -100,11 +100,11 @@ syn keyword htmlArg contained summary tabindex valuetype version
|
||||
" html 5 arg names
|
||||
syn keyword htmlArg contained allowfullscreen async autocomplete autofocus
|
||||
syn keyword htmlArg contained autoplay challenge contenteditable contextmenu
|
||||
syn keyword htmlArg contained controls crossorigin default dirname download
|
||||
syn keyword htmlArg contained draggable dropzone form formaction formenctype
|
||||
syn keyword htmlArg contained formmethod formnovalidate formtarget hidden
|
||||
syn keyword htmlArg contained high icon inputmode keytype kind list loop low
|
||||
syn keyword htmlArg contained max min minlength muted nonce novalidate open
|
||||
syn keyword htmlArg contained controls crossorigin default dialog dirname
|
||||
syn keyword htmlArg contained download draggable dropzone form formaction
|
||||
syn keyword htmlArg contained formenctype formmethod formnovalidate formtarget
|
||||
syn keyword htmlArg contained hidden high icon inputmode keytype kind list loop
|
||||
syn keyword htmlArg contained low max min minlength muted nonce novalidate open
|
||||
syn keyword htmlArg contained optimum pattern placeholder poster preload
|
||||
syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck
|
||||
syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate
|
||||
|
@ -2,7 +2,7 @@
|
||||
" Language: MIX (Donald Knuth's assembly language used in TAOCP)
|
||||
" Maintainer: Wu Yongwei <wuyongwei@gmail.com>
|
||||
" Filenames: *.mixal *.mix
|
||||
" Last Change: 2013 Nov 13
|
||||
" Last Change: 2017-11-26 15:21:36 +0800
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@ -16,7 +16,7 @@ syn case ignore
|
||||
|
||||
" Special processing of ALF directive: implementations vary whether quotation
|
||||
" marks are needed
|
||||
syn match mixAlfParam #\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixAlfDirective,mixString nextgroup=mixEndComment contained
|
||||
syn match mixAlfParam #\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixString nextgroup=mixEndComment contained
|
||||
|
||||
" Region for parameters
|
||||
syn match mixParam #[-+*/:=0-9a-z,()"]\+# contains=mixIdentifier,mixSpecial,mixNumber,mixString,mixLabel nextgroup=mixEndComment contained
|
||||
@ -46,6 +46,7 @@ syn keyword mixDirective ALF nextgroup=mixAlfParam contained
|
||||
" Opcodes
|
||||
syn keyword mixOpcode NOP HLT NUM CHAR FLOT FIX nextgroup=mixEndComment contained
|
||||
syn keyword mixOpcode FADD FSUB FMUL FDIV FCMP MOVE ADD SUB MUL DIV IOC IN OUT JRED JBUS JMP JSJ JOV JNOV JL JE JG JLE JNE JGE SLA SRA SLAX SRAX SLC SRC nextgroup=mixParam contained skipwhite
|
||||
syn keyword mixOpcode SLB SRB JAE JAO JXE JXO nextgroup=mixParam contained skipwhite
|
||||
|
||||
syn match mixOpcode "LD[AX1-6]N\?\>" nextgroup=mixParam contained skipwhite
|
||||
syn match mixOpcode "ST[AX1-6JZ]\>" nextgroup=mixParam contained skipwhite
|
||||
@ -58,7 +59,7 @@ syn match mixOpcode "J[AX1-6]N\?[NZP]\>" nextgroup=mixParam contained skipwhite
|
||||
" Switch back to being case sensitive
|
||||
syn case match
|
||||
|
||||
" Registers (only to used in comments now)
|
||||
" Registers (only to be used in comments now)
|
||||
syn keyword mixRegister rA rX rI1 rI2 rI3 rI4 rI5 rI6 rJ contained
|
||||
|
||||
" The default highlighting
|
||||
|
@ -1,52 +1,72 @@
|
||||
" Vim syntax file
|
||||
" Language: NSIS script, for version of NSIS 1.91 and later
|
||||
" Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt>
|
||||
" Last Change: 2004 May 12
|
||||
" Language: NSIS script, for version of NSIS 3.02 and later
|
||||
" Maintainer: Ken Takata
|
||||
" URL: https://github.com/k-takata/vim-nsis
|
||||
" Previous Maintainer: Alex Jakushev <Alex.Jakushev@kemek.lt>
|
||||
" Last Change: 2018-01-26
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn case ignore
|
||||
|
||||
|
||||
"COMMENTS
|
||||
"Pseudo definitions
|
||||
syn match nsisLine nextgroup=@nsisPseudoStatement skipwhite "^"
|
||||
syn cluster nsisPseudoStatement contains=nsisFirstComment,nsisLocalLabel,nsisGlobalLabel
|
||||
syn cluster nsisPseudoStatement add=nsisDefine,nsisPreCondit,nsisMacro,nsisInclude,nsisSystem
|
||||
syn cluster nsisPseudoStatement add=nsisAttribute,nsisCompiler,nsisVersionInfo,nsisInstruction,nsisStatement
|
||||
|
||||
"COMMENTS (4.1)
|
||||
syn keyword nsisTodo todo attention note fixme readme
|
||||
syn region nsisComment start=";" end="$" contains=nsisTodo
|
||||
syn region nsisComment start="#" end="$" contains=nsisTodo
|
||||
syn region nsisComment start="[;#]" end="$" contains=nsisTodo,nsisLineContinuation,@Spell oneline
|
||||
syn region nsisComment start=".\@1<=/\*" end="\*/" contains=nsisTodo,@Spell
|
||||
syn region nsisFirstComment start="/\*" end="\*/" contained contains=nsisTodo,@Spell skipwhite
|
||||
\ nextgroup=@nsisPseudoStatement
|
||||
|
||||
"LABELS
|
||||
syn match nsisLocalLabel "\a\S\{-}:"
|
||||
syn match nsisGlobalLabel "\.\S\{-1,}:"
|
||||
syn match nsisLineContinuation "\\$"
|
||||
|
||||
"PREPROCESSOR
|
||||
syn match nsisPreprocSubst "${.\{-}}"
|
||||
syn match nsisDefine "!define\>"
|
||||
syn match nsisDefine "!undef\>"
|
||||
syn match nsisPreCondit "!ifdef\>"
|
||||
syn match nsisPreCondit "!ifndef\>"
|
||||
syn match nsisPreCondit "!endif\>"
|
||||
syn match nsisPreCondit "!else\>"
|
||||
syn match nsisMacro "!macro\>"
|
||||
syn match nsisMacro "!macroend\>"
|
||||
syn match nsisMacro "!insertmacro\>"
|
||||
"STRINGS (4.1)
|
||||
syn region nsisString start=/"/ end=/"/ contains=@nsisStringItems,@Spell
|
||||
syn region nsisString start=/'/ end=/'/ contains=@nsisStringItems,@Spell
|
||||
syn region nsisString start=/`/ end=/`/ contains=@nsisStringItems,@Spell
|
||||
|
||||
"COMPILER UTILITY
|
||||
syn match nsisInclude "!include\>"
|
||||
syn match nsisSystem "!cd\>"
|
||||
syn match nsisSystem "!system\>"
|
||||
syn match nsisSystem "!packhdr\>"
|
||||
syn cluster nsisStringItems contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisRegistry,nsisLineContinuation
|
||||
|
||||
"VARIABLES
|
||||
"NUMBERS (4.1)
|
||||
syn match nsisNumber "\<[1-9]\d*\>"
|
||||
syn match nsisNumber "\<0x\x\+\>"
|
||||
syn match nsisNumber "\<0\o*\>"
|
||||
|
||||
"STRING REPLACEMENT (5.4, 4.9.15.2, 5.3.1)
|
||||
syn region nsisPreprocSubst start="\${" end="}" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar
|
||||
syn region nsisPreprocLangStr start="\$(" end=")" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar
|
||||
syn region nsisPreprocEnvVar start="\$%" end="%" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar
|
||||
|
||||
"VARIABLES (4.2.2)
|
||||
syn match nsisUserVar "$\d"
|
||||
syn match nsisUserVar "$R\d"
|
||||
syn match nsisSysVar "$INSTDIR"
|
||||
syn match nsisSysVar "$OUTDIR"
|
||||
syn match nsisSysVar "$CMDLINE"
|
||||
syn match nsisSysVar "$LANGUAGE"
|
||||
"CONSTANTS (4.2.3)
|
||||
syn match nsisSysVar "$PROGRAMFILES"
|
||||
syn match nsisSysVar "$PROGRAMFILES32"
|
||||
syn match nsisSysVar "$PROGRAMFILES64"
|
||||
syn match nsisSysVar "$COMMONFILES"
|
||||
syn match nsisSysVar "$COMMONFILES32"
|
||||
syn match nsisSysVar "$COMMONFILES64"
|
||||
syn match nsisSysVar "$DESKTOP"
|
||||
syn match nsisSysVar "$EXEDIR"
|
||||
syn match nsisSysVar "$EXEFILE"
|
||||
syn match nsisSysVar "$EXEPATH"
|
||||
syn match nsisSysVar "${NSISDIR}"
|
||||
syn match nsisSysVar "$WINDIR"
|
||||
syn match nsisSysVar "$SYSDIR"
|
||||
syn match nsisSysVar "$TEMP"
|
||||
@ -54,170 +74,513 @@ syn match nsisSysVar "$STARTMENU"
|
||||
syn match nsisSysVar "$SMPROGRAMS"
|
||||
syn match nsisSysVar "$SMSTARTUP"
|
||||
syn match nsisSysVar "$QUICKLAUNCH"
|
||||
syn match nsisSysVar "$DOCUMENTS"
|
||||
syn match nsisSysVar "$SENDTO"
|
||||
syn match nsisSysVar "$RECENT"
|
||||
syn match nsisSysVar "$FAVORITES"
|
||||
syn match nsisSysVar "$MUSIC"
|
||||
syn match nsisSysVar "$PICTURES"
|
||||
syn match nsisSysVar "$VIDEOS"
|
||||
syn match nsisSysVar "$NETHOOD"
|
||||
syn match nsisSysVar "$FONTS"
|
||||
syn match nsisSysVar "$TEMPLATES"
|
||||
syn match nsisSysVar "$APPDATA"
|
||||
syn match nsisSysVar "$LOCALAPPDATA"
|
||||
syn match nsisSysVar "$PRINTHOOD"
|
||||
syn match nsisSysVar "$INTERNET_CACHE"
|
||||
syn match nsisSysVar "$COOKIES"
|
||||
syn match nsisSysVar "$HISTORY"
|
||||
syn match nsisSysVar "$PROFILE"
|
||||
syn match nsisSysVar "$ADMINTOOLS"
|
||||
syn match nsisSysVar "$RESOURCES"
|
||||
syn match nsisSysVar "$RESOURCES_LOCALIZED"
|
||||
syn match nsisSysVar "$CDBURN_AREA"
|
||||
syn match nsisSysVar "$HWNDPARENT"
|
||||
syn match nsisSysVar "$PLUGINSDIR"
|
||||
syn match nsisSysVar "$\\r"
|
||||
syn match nsisSysVar "$\\n"
|
||||
syn match nsisSysVar "$\\t"
|
||||
syn match nsisSysVar "$\$"
|
||||
syn match nsisSysVar "$\\["'`]"
|
||||
|
||||
"STRINGS
|
||||
syn region nsisString start=/"/ skip=/'\|`/ end=/"/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry
|
||||
syn region nsisString start=/'/ skip=/"\|`/ end=/'/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry
|
||||
syn region nsisString start=/`/ skip=/"\|'/ end=/`/ contains=nsisPreprocSubst,nsisUserVar,nsisSysVar,nsisRegistry
|
||||
"LABELS (4.3)
|
||||
syn match nsisLocalLabel contained "[^-+!$0-9;#. \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
|
||||
syn match nsisGlobalLabel contained "\.[^-+!$0-9;# \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)"
|
||||
|
||||
"CONSTANTS
|
||||
syn keyword nsisBoolean true false on off
|
||||
syn keyword nsisBoolean contained true false
|
||||
syn keyword nsisOnOff contained on off
|
||||
|
||||
syn keyword nsisAttribOptions hide show nevershow auto force try ifnewer normal silent silentlog
|
||||
syn keyword nsisAttribOptions smooth colored SET CUR END RO none listonly textonly both current all
|
||||
syn keyword nsisAttribOptions zlib bzip2 lzma
|
||||
|
||||
syn match nsisAttribOptions '\/NOCUSTOM'
|
||||
syn match nsisAttribOptions '\/CUSTOMSTRING'
|
||||
syn match nsisAttribOptions '\/COMPONENTSONLYONCUSTOM'
|
||||
syn match nsisAttribOptions '\/windows'
|
||||
syn match nsisAttribOptions '\/r'
|
||||
syn match nsisAttribOptions '\/oname'
|
||||
syn match nsisAttribOptions '\/REBOOTOK'
|
||||
syn match nsisAttribOptions '\/SILENT'
|
||||
syn match nsisAttribOptions '\/FILESONLY'
|
||||
syn match nsisAttribOptions '\/SHORT'
|
||||
|
||||
syn keyword nsisExecShell SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED
|
||||
|
||||
syn keyword nsisRegistry HKCR HKLM HKCU HKU HKCC HKDD HKPD
|
||||
syn keyword nsisRegistry HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS
|
||||
syn keyword nsisRegistry HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA
|
||||
|
||||
syn keyword nsisFileAttrib NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY
|
||||
syn keyword nsisFileAttrib FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN
|
||||
syn keyword nsisFileAttrib FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM
|
||||
syn keyword nsisFileAttrib FILE_ATTRIBUTE_TEMPORARY
|
||||
|
||||
syn keyword nsisMessageBox MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL
|
||||
syn keyword nsisMessageBox MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP
|
||||
syn keyword nsisMessageBox MB_TOPMOST MB_SETFOREGROUND MB_RIGHT
|
||||
syn keyword nsisMessageBox MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4
|
||||
syn keyword nsisMessageBox IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES
|
||||
|
||||
syn match nsisNumber "\<[^0]\d*\>"
|
||||
syn match nsisNumber "\<0x\x\+\>"
|
||||
syn match nsisNumber "\<0\o*\>"
|
||||
syn keyword nsisRegistry contained HKCR HKLM HKCU HKU HKCC HKDD HKPD SHCTX
|
||||
syn keyword nsisRegistry contained HKCR32 HKCR64 HKCU32 HKCU64 HKLM32 HKLM64
|
||||
syn keyword nsisRegistry contained HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS
|
||||
syn keyword nsisRegistry contained HKEY_CLASSES_ROOT32 HKEY_CLASSES_ROOT64
|
||||
syn keyword nsisRegistry contained HKEY_CURRENT_USER32 HKEY_CURRENT_USER64
|
||||
syn keyword nsisRegistry contained HKEY_LOCAL_MACHINE32 HKEY_LOCAL_MACHINE64
|
||||
syn keyword nsisRegistry contained HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA
|
||||
syn keyword nsisRegistry contained SHELL_CONTEXT
|
||||
|
||||
|
||||
"INSTALLER ATTRIBUTES - General installer configuration
|
||||
syn keyword nsisAttribute OutFile Name Caption SubCaption BrandingText Icon
|
||||
syn keyword nsisAttribute WindowIcon BGGradient SilentInstall SilentUnInstall
|
||||
syn keyword nsisAttribute CRCCheck MiscButtonText InstallButtonText FileErrorText
|
||||
" common options
|
||||
syn cluster nsisAnyOpt contains=nsisComment,nsisLineContinuation,nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisString,nsisNumber
|
||||
syn region nsisBooleanOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBoolean
|
||||
syn region nsisOnOffOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisOnOff
|
||||
syn region nsisLangOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLangKwd
|
||||
syn match nsisLangKwd contained "/LANG\>"
|
||||
syn region nsisFontOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFontKwd
|
||||
syn match nsisFontKwd contained "/\%(ITALIC\|UNDERLINE\|STRIKE\)\>"
|
||||
|
||||
"INSTALLER ATTRIBUTES - Install directory configuration
|
||||
syn keyword nsisAttribute InstallDir InstallDirRegKey
|
||||
"STATEMENTS - pages (4.5)
|
||||
syn keyword nsisStatement contained Page UninstPage nextgroup=nsisPageOpt skipwhite
|
||||
syn region nsisPageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageKwd
|
||||
syn keyword nsisPageKwd contained custom license components directory instfiles uninstConfirm
|
||||
syn match nsisPageKwd contained "/ENABLECANCEL\>"
|
||||
|
||||
"INSTALLER ATTRIBUTES - License page configuration
|
||||
syn keyword nsisAttribute LicenseText LicenseData
|
||||
syn keyword nsisStatement contained PageEx nextgroup=nsisPageExOpt skipwhite
|
||||
syn region nsisPageExOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageExKwd
|
||||
syn match nsisPageExKwd contained "\<\%(un\.\)\?\%(custom\|license\|components\|directory\|instfiles\|uninstConfirm\)\>"
|
||||
|
||||
"INSTALLER ATTRIBUTES - Component page configuration
|
||||
syn keyword nsisAttribute ComponentText InstType EnabledBitmap DisabledBitmap SpaceTexts
|
||||
syn keyword nsisStatement contained PageExEnd PageCallbacks
|
||||
|
||||
"INSTALLER ATTRIBUTES - Directory page configuration
|
||||
syn keyword nsisAttribute DirShow DirText AllowRootDirInstall
|
||||
"STATEMENTS - sections (4.6.1)
|
||||
syn keyword nsisStatement contained AddSize SectionEnd SectionGroupEnd
|
||||
|
||||
"INSTALLER ATTRIBUTES - Install page configuration
|
||||
syn keyword nsisAttribute InstallColors InstProgressFlags AutoCloseWindow
|
||||
syn keyword nsisAttribute ShowInstDetails DetailsButtonText CompletedText
|
||||
syn keyword nsisStatement contained Section nextgroup=nsisSectionOpt skipwhite
|
||||
syn region nsisSectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionKwd
|
||||
syn match nsisSectionKwd contained "/o\>"
|
||||
|
||||
"INSTALLER ATTRIBUTES - Uninstall configuration
|
||||
syn keyword nsisAttribute UninstallText UninstallIcon UninstallCaption
|
||||
syn keyword nsisAttribute UninstallSubCaption ShowUninstDetails UninstallButtonText
|
||||
syn keyword nsisStatement contained SectionIn nextgroup=nsisSectionInOpt skipwhite
|
||||
syn region nsisSectionInOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionInKwd
|
||||
syn keyword nsisSectionInKwd contained RO
|
||||
|
||||
"COMPILER ATTRIBUTES
|
||||
syn keyword nsisCompiler SetOverwrite SetCompress SetCompressor SetDatablockOptimize SetDateSave
|
||||
syn keyword nsisStatement contained SectionGroup nextgroup=nsisSectionGroupOpt skipwhite
|
||||
syn region nsisSectionGroupOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionGroupKwd
|
||||
syn match nsisSectionGroupKwd contained "/e\>"
|
||||
|
||||
"STATEMENTS - functions (4.7.1)
|
||||
syn keyword nsisStatement contained Function FunctionEnd
|
||||
|
||||
|
||||
"FUNCTIONS - general purpose
|
||||
syn keyword nsisInstruction SetOutPath File Exec ExecWait ExecShell
|
||||
syn keyword nsisInstruction Rename Delete RMDir
|
||||
|
||||
"FUNCTIONS - registry & ini
|
||||
syn keyword nsisInstruction WriteRegStr WriteRegExpandStr WriteRegDWORD WriteRegBin
|
||||
syn keyword nsisInstruction WriteINIStr ReadRegStr ReadRegDWORD ReadINIStr ReadEnvStr
|
||||
syn keyword nsisInstruction ExpandEnvStrings DeleteRegValue DeleteRegKey EnumRegKey
|
||||
syn keyword nsisInstruction EnumRegValue DeleteINISec DeleteINIStr
|
||||
|
||||
"FUNCTIONS - general purpose, advanced
|
||||
syn keyword nsisInstruction CreateDirectory CopyFiles SetFileAttributes CreateShortCut
|
||||
syn keyword nsisInstruction GetFullPathName SearchPath GetTempFileName CallInstDLL
|
||||
syn keyword nsisInstruction RegDLL UnRegDLL GetDLLVersion GetDLLVersionLocal
|
||||
syn keyword nsisInstruction GetFileTime GetFileTimeLocal
|
||||
|
||||
"FUNCTIONS - Branching, flow control, error checking, user interaction, etc instructions
|
||||
syn keyword nsisInstruction Goto Call Return IfErrors ClearErrors SetErrors FindWindow
|
||||
syn keyword nsisInstruction SendMessage IsWindow IfFileExists MessageBox StrCmp
|
||||
syn keyword nsisInstruction IntCmp IntCmpU Abort Quit GetFunctionAddress GetLabelAddress
|
||||
syn keyword nsisInstruction GetCurrentAddress
|
||||
|
||||
"FUNCTIONS - File and directory i/o instructions
|
||||
syn keyword nsisInstruction FindFirst FindNext FindClose FileOpen FileClose FileRead
|
||||
syn keyword nsisInstruction FileWrite FileReadByte FileWriteByte FileSeek
|
||||
|
||||
"FUNCTIONS - Misc instructions
|
||||
syn keyword nsisInstruction SetDetailsView SetDetailsPrint SetAutoClose DetailPrint
|
||||
syn keyword nsisInstruction Sleep BringToFront HideWindow SetShellVarContext
|
||||
|
||||
"FUNCTIONS - String manipulation support
|
||||
syn keyword nsisInstruction StrCpy StrLen
|
||||
|
||||
"FUNCTIONS - Stack support
|
||||
syn keyword nsisInstruction Push Pop Exch
|
||||
|
||||
"FUNCTIONS - Integer manipulation support
|
||||
syn keyword nsisInstruction IntOp IntFmt
|
||||
|
||||
"FUNCTIONS - Rebooting support
|
||||
syn keyword nsisInstruction Reboot IfRebootFlag SetRebootFlag
|
||||
|
||||
"FUNCTIONS - Uninstaller instructions
|
||||
syn keyword nsisInstruction WriteUninstaller
|
||||
|
||||
"FUNCTIONS - Install logging instructions
|
||||
syn keyword nsisInstruction LogSet LogText
|
||||
|
||||
"FUNCTIONS - Section management instructions
|
||||
syn keyword nsisInstruction SectionSetFlags SectionGetFlags SectionSetText
|
||||
syn keyword nsisInstruction SectionGetText
|
||||
"STATEMENTS - LogicLib.nsh
|
||||
syn match nsisStatement "${If}"
|
||||
syn match nsisStatement "${IfNot}"
|
||||
syn match nsisStatement "${Unless}"
|
||||
syn match nsisStatement "${ElseIf}"
|
||||
syn match nsisStatement "${ElseIfNot}"
|
||||
syn match nsisStatement "${ElseUnless}"
|
||||
syn match nsisStatement "${Else}"
|
||||
syn match nsisStatement "${EndIf}"
|
||||
syn match nsisStatement "${EndUnless}"
|
||||
syn match nsisStatement "${AndIf}"
|
||||
syn match nsisStatement "${AndIfNot}"
|
||||
syn match nsisStatement "${AndUnless}"
|
||||
syn match nsisStatement "${OrIf}"
|
||||
syn match nsisStatement "${OrIfNot}"
|
||||
syn match nsisStatement "${OrUnless}"
|
||||
syn match nsisStatement "${IfThen}"
|
||||
syn match nsisStatement "${IfNotThen}"
|
||||
syn match nsisStatement "${||\?}" nextgroup=@nsisPseudoStatement skipwhite
|
||||
syn match nsisStatement "${IfCmd}" nextgroup=@nsisPseudoStatement skipwhite
|
||||
syn match nsisStatement "${Select}"
|
||||
syn match nsisStatement "${Case}"
|
||||
syn match nsisStatement "${Case[2-5]}"
|
||||
syn match nsisStatement "${CaseElse}"
|
||||
syn match nsisStatement "${Default}"
|
||||
syn match nsisStatement "${EndSelect}"
|
||||
syn match nsisStatement "${Switch}"
|
||||
syn match nsisStatement "${EndSwitch}"
|
||||
syn match nsisStatement "${Break}"
|
||||
syn match nsisStatement "${Do}"
|
||||
syn match nsisStatement "${DoWhile}"
|
||||
syn match nsisStatement "${DoUntil}"
|
||||
syn match nsisStatement "${ExitDo}"
|
||||
syn match nsisStatement "${Continue}"
|
||||
syn match nsisStatement "${Loop}"
|
||||
syn match nsisStatement "${LoopWhile}"
|
||||
syn match nsisStatement "${LoopUntil}"
|
||||
syn match nsisStatement "${For}"
|
||||
syn match nsisStatement "${ForEach}"
|
||||
syn match nsisStatement "${ExitFor}"
|
||||
syn match nsisStatement "${Next}"
|
||||
"STATEMENTS - Memento.nsh
|
||||
syn match nsisStatement "${MementoSection}"
|
||||
syn match nsisStatement "${MementoSectionEnd}"
|
||||
|
||||
|
||||
"SPECIAL FUNCTIONS - install
|
||||
"USER VARIABLES (4.2.1)
|
||||
syn keyword nsisInstruction contained Var nextgroup=nsisVarOpt skipwhite
|
||||
syn region nsisVarOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVarKwd
|
||||
syn match nsisVarKwd contained "/GLOBAL\>"
|
||||
|
||||
"INSTALLER ATTRIBUTES (4.8.1)
|
||||
syn keyword nsisAttribute contained Caption ChangeUI CheckBitmap CompletedText ComponentText
|
||||
syn keyword nsisAttribute contained DetailsButtonText DirText DirVar
|
||||
syn keyword nsisAttribute contained FileErrorText Icon InstallButtonText
|
||||
syn keyword nsisAttribute contained InstallDir InstProgressFlags
|
||||
syn keyword nsisAttribute contained LicenseData LicenseText
|
||||
syn keyword nsisAttribute contained MiscButtonText Name OutFile
|
||||
syn keyword nsisAttribute contained SpaceTexts SubCaption UninstallButtonText UninstallCaption
|
||||
syn keyword nsisAttribute contained UninstallIcon UninstallSubCaption UninstallText
|
||||
|
||||
syn keyword nsisAttribute contained AddBrandingImage nextgroup=nsisAddBrandingImageOpt skipwhite
|
||||
syn region nsisAddBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddBrandingImageKwd
|
||||
syn keyword nsisAddBrandingImageKwd contained left right top bottom width height
|
||||
|
||||
syn keyword nsisAttribute contained nextgroup=nsisBooleanOpt skipwhite
|
||||
\ AllowRootDirInstall AutoCloseWindow
|
||||
|
||||
syn keyword nsisAttribute contained BGFont nextgroup=nsisFontOpt skipwhite
|
||||
|
||||
syn keyword nsisAttribute contained BGGradient nextgroup=nsisBGGradientOpt skipwhite
|
||||
syn region nsisBGGradientOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBGGradientKwd
|
||||
syn keyword nsisBGGradientKwd contained off
|
||||
|
||||
syn keyword nsisAttribute contained BrandingText nextgroup=nsisBrandingTextOpt skipwhite
|
||||
syn region nsisBrandingTextOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBrandingTextKwd
|
||||
syn match nsisBrandingTextKwd contained "/TRIM\%(LEFT\|RIGHT\|CENTER\)\>"
|
||||
|
||||
syn keyword nsisAttribute contained CRCCheck nextgroup=nsisCRCCheckOpt skipwhite
|
||||
syn region nsisCRCCheckOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCRCCheckKwd
|
||||
syn keyword nsisCRCCheckKwd contained on off force
|
||||
|
||||
syn keyword nsisAttribute contained DirVerify nextgroup=nsisDirVerifyOpt skipwhite
|
||||
syn region nsisDirVerifyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDirVerifyKwd
|
||||
syn keyword nsisDirVerifyKwd contained auto leave
|
||||
|
||||
syn keyword nsisAttribute contained InstallColors nextgroup=nsisInstallColorsOpt skipwhite
|
||||
syn region nsisInstallColorsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstallColorsKwd
|
||||
syn match nsisInstallColorsKwd contained "/windows\>"
|
||||
|
||||
syn keyword nsisAttribute contained InstallDirRegKey nextgroup=nsisRegistryOpt skipwhite
|
||||
|
||||
syn keyword nsisAttribute contained InstType nextgroup=nsisInstTypeOpt skipwhite
|
||||
syn region nsisInstTypeOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstTypeKwd
|
||||
syn match nsisInstTypeKwd contained "/\%(NOCUSTOM\|CUSTOMSTRING\|COMPONENTSONLYONCUSTOM\)\>"
|
||||
|
||||
syn keyword nsisAttribute contained LicenseBkColor nextgroup=nsisLicenseBkColorOpt skipwhite
|
||||
syn region nsisLicenseBkColorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseBkColorKwd
|
||||
syn match nsisLicenseBkColorKwd contained "/\%(gray\|windows\)\>"
|
||||
|
||||
syn keyword nsisAttribute contained LicenseForceSelection nextgroup=nsisLicenseForceSelectionOpt skipwhite
|
||||
syn region nsisLicenseForceSelectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseForceSelectionKwd
|
||||
syn keyword nsisLicenseForceSelectionKwd contained checkbox radiobuttons off
|
||||
|
||||
syn keyword nsisAttribute contained ManifestDPIAware nextgroup=nsisManifestDPIAwareOpt skipwhite
|
||||
syn region nsisManifestDPIAwareOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestDPIAwareKwd
|
||||
syn keyword nsisManifestDPIAwareKwd contained notset true false
|
||||
|
||||
syn keyword nsisAttribute contained ManifestSupportedOS nextgroup=nsisManifestSupportedOSOpt skipwhite
|
||||
syn region nsisManifestSupportedOSOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestSupportedOSKwd
|
||||
syn match nsisManifestSupportedOSKwd contained "\<\%(none\|all\|WinVista\|Win7\|Win8\|Win8\.1\|Win10\)\>"
|
||||
|
||||
syn keyword nsisAttribute contained RequestExecutionLevel nextgroup=nsisRequestExecutionLevelOpt skipwhite
|
||||
syn region nsisRequestExecutionLevelOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRequestExecutionLevelKwd
|
||||
syn keyword nsisRequestExecutionLevelKwd contained none user highest admin
|
||||
|
||||
syn keyword nsisAttribute contained SetFont nextgroup=nsisLangOpt skipwhite
|
||||
|
||||
syn keyword nsisAttribute contained nextgroup=nsisShowInstDetailsOpt skipwhite
|
||||
\ ShowInstDetails ShowUninstDetails
|
||||
syn region nsisShowInstDetailsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisShowInstDetailsKwd
|
||||
syn keyword nsisShowInstDetailsKwd contained hide show nevershow
|
||||
|
||||
syn keyword nsisAttribute contained SilentInstall nextgroup=nsisSilentInstallOpt skipwhite
|
||||
syn region nsisSilentInstallOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentInstallKwd
|
||||
syn keyword nsisSilentInstallKwd contained normal silent silentlog
|
||||
|
||||
syn keyword nsisAttribute contained SilentUnInstall nextgroup=nsisSilentUnInstallOpt skipwhite
|
||||
syn region nsisSilentUnInstallOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentUnInstallKwd
|
||||
syn keyword nsisSilentUnInstallKwd contained normal silent
|
||||
|
||||
syn keyword nsisAttribute contained nextgroup=nsisOnOffOpt skipwhite
|
||||
\ WindowIcon XPStyle
|
||||
|
||||
"COMPILER FLAGS (4.8.2)
|
||||
syn keyword nsisCompiler contained nextgroup=nsisOnOffOpt skipwhite
|
||||
\ AllowSkipFiles SetDatablockOptimize SetDateSave
|
||||
|
||||
syn keyword nsisCompiler contained FileBufSize SetCompressorDictSize
|
||||
|
||||
syn keyword nsisCompiler contained SetCompress nextgroup=nsisSetCompressOpt skipwhite
|
||||
syn region nsisSetCompressOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressKwd
|
||||
syn keyword nsisSetCompressKwd contained auto force off
|
||||
|
||||
syn keyword nsisCompiler contained SetCompressor nextgroup=nsisSetCompressorOpt skipwhite
|
||||
syn region nsisSetCompressorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressorKwd
|
||||
syn keyword nsisSetCompressorKwd contained zlib bzip2 lzma
|
||||
syn match nsisSetCompressorKwd contained "/\%(SOLID\|FINAL\)"
|
||||
|
||||
syn keyword nsisCompiler contained SetOverwrite nextgroup=nsisSetOverwriteOpt skipwhite
|
||||
syn region nsisSetOverwriteOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetOverwriteKwd
|
||||
syn keyword nsisSetOverwriteKwd contained on off try ifnewer ifdiff lastused
|
||||
|
||||
syn keyword nsisCompiler contained Unicode nextgroup=nsisBooleanOpt skipwhite
|
||||
|
||||
"VERSION INFORMATION (4.8.3)
|
||||
syn keyword nsisVersionInfo contained VIAddVersionKey nextgroup=nsisLangOpt skipwhite
|
||||
|
||||
syn keyword nsisVersionInfo contained VIProductVersion VIFileVersion
|
||||
|
||||
|
||||
"FUNCTIONS - basic (4.9.1)
|
||||
syn keyword nsisInstruction contained Delete Rename nextgroup=nsisDeleteOpt skipwhite
|
||||
syn region nsisDeleteOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteKwd
|
||||
syn match nsisDeleteKwd contained "/REBOOTOK\>"
|
||||
|
||||
syn keyword nsisInstruction contained Exec ExecWait SetOutPath
|
||||
|
||||
syn keyword nsisInstruction contained ExecShell ExecShellWait nextgroup=nsisExecShellOpt skipwhite
|
||||
syn region nsisExecShellOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisExecShellKwd
|
||||
syn keyword nsisExecShellKwd contained SW_SHOWDEFAULT SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_HIDE
|
||||
syn match nsisExecShellKwd contained "/INVOKEIDLIST\>"
|
||||
|
||||
syn keyword nsisInstruction contained File nextgroup=nsisFileOpt skipwhite
|
||||
syn region nsisFileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileKwd
|
||||
syn match nsisFileKwd contained "/\%(nonfatal\|[arx]\|oname\)\>"
|
||||
|
||||
syn keyword nsisInstruction contained ReserveFile nextgroup=nsisReserveFileOpt skipwhite
|
||||
syn region nsisReserveFileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisReserveFileKwd
|
||||
syn match nsisReserveFileKwd contained "/\%(nonfatal\|[rx]\|plugin\)\>"
|
||||
|
||||
syn keyword nsisInstruction contained RMDir nextgroup=nsisRMDirOpt skipwhite
|
||||
syn region nsisRMDirOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRMDirKwd
|
||||
syn match nsisRMDirKwd contained "/\%(REBOOTOK\|r\)\>"
|
||||
|
||||
|
||||
"FUNCTIONS - registry & ini (4.9.2)
|
||||
syn keyword nsisInstruction contained DeleteINISec DeleteINIStr FlushINI ReadINIStr WriteINIStr
|
||||
syn keyword nsisInstruction contained ExpandEnvStrings ReadEnvStr
|
||||
|
||||
syn keyword nsisInstruction contained DeleteRegKey nextgroup=nsisDeleteRegKeyOpt skipwhite
|
||||
syn region nsisDeleteRegKeyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteRegKeyKwd,nsisRegistry
|
||||
syn match nsisDeleteRegKeyKwd contained "/ifempty\>"
|
||||
|
||||
syn keyword nsisInstruction contained nextgroup=nsisRegistryOpt skipwhite
|
||||
\ DeleteRegValue EnumRegKey EnumRegValue ReadRegDWORD ReadRegStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr
|
||||
syn region nsisRegistryOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry
|
||||
|
||||
syn keyword nsisInstruction contained WriteRegMultiStr nextgroup=nsisWriteRegMultiStrOpt skipwhite
|
||||
syn region nsisWriteRegMultiStrOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry,nsisWriteRegMultiStrKwd
|
||||
syn match nsisWriteRegMultiStrKwd contained "/REGEDIT5\>"
|
||||
|
||||
syn keyword nsisInstruction contained SetRegView nextgroup=nsisSetRegViewOpt skipwhite
|
||||
syn region nsisSetRegViewOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetRegViewKwd
|
||||
syn keyword nsisSetRegViewKwd contained default lastused
|
||||
|
||||
"FUNCTIONS - general purpose (4.9.3)
|
||||
syn keyword nsisInstruction contained CallInstDLL CreateDirectory GetDLLVersion
|
||||
syn keyword nsisInstruction contained GetDLLVersionLocal GetFileTime GetFileTimeLocal
|
||||
syn keyword nsisInstruction contained GetTempFileName SearchPath RegDLL UnRegDLL
|
||||
|
||||
syn keyword nsisInstruction contained CopyFiles nextgroup=nsisCopyFilesOpt skipwhite
|
||||
syn region nsisCopyFilesOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCopyFilesKwd
|
||||
syn match nsisCopyFilesKwd contained "/\%(SILENT\|FILESONLY\)\>"
|
||||
|
||||
syn keyword nsisInstruction contained CreateShortcut nextgroup=nsisCreateShortcutOpt skipwhite
|
||||
syn region nsisCreateShortcutOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCreateShortcutKwd
|
||||
syn match nsisCreateShortcutKwd contained "/NoWorkingDir\>"
|
||||
|
||||
syn keyword nsisInstruction contained GetFullPathName nextgroup=nsisGetFullPathNameOpt skipwhite
|
||||
syn region nsisGetFullPathNameOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetFullPathNameKwd
|
||||
syn match nsisGetFullPathNameKwd contained "/SHORT\>"
|
||||
|
||||
syn keyword nsisInstruction contained SetFileAttributes nextgroup=nsisSetFileAttributesOpt skipwhite
|
||||
syn region nsisSetFileAttributesOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileAttrib
|
||||
syn keyword nsisFileAttrib contained NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY
|
||||
syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN
|
||||
syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM
|
||||
syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_TEMPORARY
|
||||
|
||||
"FUNCTIONS - Flow Control (4.9.4)
|
||||
syn keyword nsisInstruction contained Abort Call ClearErrors GetCurrentAddress
|
||||
syn keyword nsisInstruction contained GetFunctionAddress GetLabelAddress Goto
|
||||
syn keyword nsisInstruction contained IfAbort IfErrors IfFileExists IfRebootFlag IfSilent
|
||||
syn keyword nsisInstruction contained IntCmp IntCmpU Return Quit SetErrors StrCmp StrCmpS
|
||||
|
||||
syn keyword nsisInstruction contained MessageBox nextgroup=nsisMessageBoxOpt skipwhite
|
||||
syn region nsisMessageBoxOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisMessageBox
|
||||
syn keyword nsisMessageBox contained MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL
|
||||
syn keyword nsisMessageBox contained MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP MB_USERICON
|
||||
syn keyword nsisMessageBox contained MB_TOPMOST MB_SETFOREGROUND MB_RIGHT MB_RTLREADING
|
||||
syn keyword nsisMessageBox contained MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4
|
||||
syn keyword nsisMessageBox contained IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES
|
||||
syn match nsisMessageBox contained "/SD\>"
|
||||
|
||||
"FUNCTIONS - File and directory i/o instructions (4.9.5)
|
||||
syn keyword nsisInstruction contained FileClose FileOpen FileRead FileReadUTF16LE
|
||||
syn keyword nsisInstruction contained FileReadByte FileReadWord FileSeek FileWrite
|
||||
syn keyword nsisInstruction contained FileWriteByte FileWriteWord
|
||||
syn keyword nsisInstruction contained FindClose FindFirst FindNext
|
||||
|
||||
syn keyword nsisInstruction contained FileWriteUTF16LE nextgroup=nsisFileWriteUTF16LEOpt skipwhite
|
||||
syn region nsisFileWriteUTF16LEOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileWriteUTF16LEKwd
|
||||
syn match nsisFileWriteUTF16LEKwd contained "/BOM\>"
|
||||
|
||||
"FUNCTIONS - Uninstaller instructions (4.9.6)
|
||||
syn keyword nsisInstruction contained WriteUninstaller
|
||||
|
||||
"FUNCTIONS - Misc instructions (4.9.7)
|
||||
syn keyword nsisInstruction contained GetErrorLevel GetInstDirError InitPluginsDir Nop
|
||||
syn keyword nsisInstruction contained SetErrorLevel Sleep
|
||||
|
||||
syn keyword nsisInstruction contained SetShellVarContext nextgroup=nsisSetShellVarContextOpt skipwhite
|
||||
syn region nsisSetShellVarContextOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetShellVarContextKwd
|
||||
syn keyword nsisSetShellVarContextKwd contained current all
|
||||
|
||||
"FUNCTIONS - String manipulation support (4.9.8)
|
||||
syn keyword nsisInstruction contained StrCpy StrLen
|
||||
|
||||
"FUNCTIONS - Stack support (4.9.9)
|
||||
syn keyword nsisInstruction contained Exch Push Pop
|
||||
|
||||
"FUNCTIONS - Integer manipulation support (4.9.10)
|
||||
syn keyword nsisInstruction contained IntOp IntFmt
|
||||
|
||||
"FUNCTIONS - Rebooting support (4.9.11)
|
||||
syn keyword nsisInstruction contained Reboot SetRebootFlag
|
||||
|
||||
"FUNCTIONS - Install logging instructions (4.9.12)
|
||||
syn keyword nsisInstruction contained LogSet nextgroup=nsisOnOffOpt skipwhite
|
||||
syn keyword nsisInstruction contained LogText
|
||||
|
||||
"FUNCTIONS - Section management instructions (4.9.13)
|
||||
syn keyword nsisInstruction contained SectionSetFlags SectionGetFlags SectionSetText
|
||||
syn keyword nsisInstruction contained SectionGetText SectionSetInstTypes SectionGetInstTypes
|
||||
syn keyword nsisInstruction contained SectionSetSize SectionGetSize SetCurInstType GetCurInstType
|
||||
syn keyword nsisInstruction contained InstTypeSetText InstTypeGetText
|
||||
|
||||
"FUNCTIONS - User Interface Instructions (4.9.14)
|
||||
syn keyword nsisInstruction contained BringToFront DetailPrint EnableWindow
|
||||
syn keyword nsisInstruction contained FindWindow GetDlgItem HideWindow IsWindow
|
||||
syn keyword nsisInstruction contained ShowWindow
|
||||
|
||||
syn keyword nsisInstruction contained CreateFont nextgroup=nsisFontOpt skipwhite
|
||||
|
||||
syn keyword nsisInstruction contained nextgroup=nsisBooleanOpt skipwhite
|
||||
\ LockWindow SetAutoClose
|
||||
|
||||
syn keyword nsisInstruction contained SendMessage nextgroup=nsisSendMessageOpt skipwhite
|
||||
syn region nsisSendMessageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSendMessageKwd
|
||||
syn match nsisSendMessageKwd contained "/TIMEOUT\>"
|
||||
|
||||
syn keyword nsisInstruction contained SetBrandingImage nextgroup=nsisSetBrandingImageOpt skipwhite
|
||||
syn region nsisSetBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetBrandingImageKwd
|
||||
syn match nsisSetBrandingImageKwd contained "/\%(IMGID\|RESIZETOFIT\)\>"
|
||||
|
||||
syn keyword nsisInstruction contained SetDetailsView nextgroup=nsisSetDetailsViewOpt skipwhite
|
||||
syn region nsisSetDetailsViewOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsViewKwd
|
||||
syn keyword nsisSetDetailsViewKwd contained show hide
|
||||
|
||||
syn keyword nsisInstruction contained SetDetailsPrint nextgroup=nsisSetDetailsPrintOpt skipwhite
|
||||
syn region nsisSetDetailsPrintOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsPrintKwd
|
||||
syn keyword nsisSetDetailsPrintKwd contained none listonly textonly both lastused
|
||||
|
||||
syn keyword nsisInstruction contained SetCtlColors nextgroup=nsisSetCtlColorsOpt skipwhite
|
||||
syn region nsisSetCtlColorsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCtlColorsKwd
|
||||
syn match nsisSetCtlColorsKwd contained "/BRANDING\>"
|
||||
|
||||
syn keyword nsisInstruction contained SetSilent nextgroup=nsisSetSilentOpt skipwhite
|
||||
syn region nsisSetSilentOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetSilentKwd
|
||||
syn keyword nsisSetSilentKwd contained silent normal
|
||||
|
||||
|
||||
"FUNCTIONS - Multiple Languages Instructions (4.9.15)
|
||||
syn keyword nsisInstruction contained LoadLanguageFile LangString LicenseLangString
|
||||
|
||||
|
||||
"SPECIAL FUNCTIONS - install (4.7.2.1)
|
||||
syn match nsisCallback "\.onGUIInit"
|
||||
syn match nsisCallback "\.onInit"
|
||||
syn match nsisCallback "\.onUserAbort"
|
||||
syn match nsisCallback "\.onInstSuccess"
|
||||
syn match nsisCallback "\.onInstFailed"
|
||||
syn match nsisCallback "\.onVerifyInstDir"
|
||||
syn match nsisCallback "\.onNextPage"
|
||||
syn match nsisCallback "\.onPrevPage"
|
||||
syn match nsisCallback "\.onInstSuccess"
|
||||
syn match nsisCallback "\.onGUIEnd"
|
||||
syn match nsisCallback "\.onMouseOverSection"
|
||||
syn match nsisCallback "\.onRebootFailed"
|
||||
syn match nsisCallback "\.onSelChange"
|
||||
syn match nsisCallback "\.onUserAbort"
|
||||
syn match nsisCallback "\.onVerifyInstDir"
|
||||
|
||||
"SPECIAL FUNCTIONS - uninstall
|
||||
"SPECIAL FUNCTIONS - uninstall (4.7.2.2)
|
||||
syn match nsisCallback "un\.onGUIInit"
|
||||
syn match nsisCallback "un\.onInit"
|
||||
syn match nsisCallback "un\.onUninstFailed"
|
||||
syn match nsisCallback "un\.onUninstSuccess"
|
||||
syn match nsisCallback "un\.onGUIEnd"
|
||||
syn match nsisCallback "un\.onRebootFailed"
|
||||
syn match nsisCallback "un\.onSelChange"
|
||||
syn match nsisCallback "un\.onUserAbort"
|
||||
syn match nsisCallback "un\.onInstSuccess"
|
||||
syn match nsisCallback "un\.onInstFailed"
|
||||
syn match nsisCallback "un\.onVerifyInstDir"
|
||||
syn match nsisCallback "un\.onNextPage"
|
||||
|
||||
|
||||
"STATEMENTS - sections
|
||||
syn keyword nsisStatement Section SectionIn SectionEnd SectionDivider
|
||||
syn keyword nsisStatement AddSize
|
||||
"COMPILER UTILITY (5.1)
|
||||
syn match nsisInclude contained "!include\>" nextgroup=nsisIncludeOpt skipwhite
|
||||
syn region nsisIncludeOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIncludeKwd
|
||||
syn match nsisIncludeKwd contained "/\%(NONFATAL\|CHARSET\)\>"
|
||||
|
||||
"STATEMENTS - functions
|
||||
syn keyword nsisStatement Function FunctionEnd
|
||||
syn match nsisSystem contained "!addincludedir\>"
|
||||
|
||||
"STATEMENTS - pages
|
||||
syn keyword nsisStatement Page UninstPage PageEx PageExEnc PageCallbacks
|
||||
syn match nsisSystem contained "!addplugindir\>" nextgroup=nsisAddplugindirOpt skipwhite
|
||||
syn region nsisAddplugindirOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddplugindirKwd
|
||||
syn match nsisAddplugindirKwd contained "/\%(x86-ansi\|x86-unicode\)\>"
|
||||
|
||||
syn match nsisSystem contained "!appendfile\>" nextgroup=nsisAppendfileOpt skipwhite
|
||||
syn region nsisAppendfileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAppendfileKwd
|
||||
syn match nsisAppendfileKwd contained "/\%(CHARSET\|RawNL\)\>"
|
||||
|
||||
syn match nsisSystem contained "!cd\>"
|
||||
|
||||
syn match nsisSystem contained "!delfile\>" nextgroup=nsisDelfileOpt skipwhite
|
||||
syn region nsisDelfileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDelfileKwd
|
||||
syn match nsisDelfileKwd contained "/nonfatal\>"
|
||||
|
||||
syn match nsisSystem contained "!echo\>"
|
||||
syn match nsisSystem contained "!error\>"
|
||||
syn match nsisSystem contained "!execute\>"
|
||||
syn match nsisSystem contained "!makensis\>"
|
||||
syn match nsisSystem contained "!packhdr\>"
|
||||
syn match nsisSystem contained "!finalize\>"
|
||||
syn match nsisSystem contained "!system\>"
|
||||
syn match nsisSystem contained "!tempfile\>"
|
||||
syn match nsisSystem contained "!getdllversion\>"
|
||||
syn match nsisSystem contained "!warning\>"
|
||||
|
||||
syn match nsisSystem contained "!pragma\>" nextgroup=nsisPragmaOpt skipwhite
|
||||
syn region nsisPragmaOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPragmaKwd
|
||||
syn keyword nsisPragmaKwd contained enable disable default push pop
|
||||
|
||||
syn match nsisSystem contained "!verbose\>" nextgroup=nsisVerboseOpt skipwhite
|
||||
syn region nsisVerboseOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVerboseKwd
|
||||
syn keyword nsisVerboseKwd contained push pop
|
||||
|
||||
"PREPROCESSOR (5.4)
|
||||
syn match nsisDefine contained "!define\>" nextgroup=nsisDefineOpt skipwhite
|
||||
syn region nsisDefineOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDefineKwd
|
||||
syn match nsisDefineKwd contained "/\%(ifndef\|redef\|date\|utcdate\|math\|file\)\>"
|
||||
|
||||
syn match nsisDefine contained "!undef\>"
|
||||
syn match nsisPreCondit contained "!ifdef\>"
|
||||
syn match nsisPreCondit contained "!ifndef\>"
|
||||
|
||||
syn match nsisPreCondit contained "!if\>" nextgroup=nsisIfOpt skipwhite
|
||||
syn region nsisIfOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIfKwd
|
||||
syn match nsisIfKwd contained "/FileExists\>"
|
||||
|
||||
syn match nsisPreCondit contained "!ifmacrodef\>"
|
||||
syn match nsisPreCondit contained "!ifmacrondef\>"
|
||||
syn match nsisPreCondit contained "!else\>"
|
||||
syn match nsisPreCondit contained "!endif\>"
|
||||
syn match nsisMacro contained "!insertmacro\>"
|
||||
syn match nsisMacro contained "!macro\>"
|
||||
syn match nsisMacro contained "!macroend\>"
|
||||
syn match nsisMacro contained "!macroundef\>"
|
||||
|
||||
syn match nsisMacro contained "!searchparse\>" nextgroup=nsisSearchparseOpt skipwhite
|
||||
syn region nsisSearchparseOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchparseKwd
|
||||
syn match nsisSearchparseKwd contained "/\%(ignorecase\|noerrors\|file\)\>"
|
||||
|
||||
syn match nsisMacro contained "!searchreplace\>" nextgroup=nsisSearchreplaceOpt skipwhite
|
||||
syn region nsisSearchreplaceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchreplaceKwd
|
||||
syn match nsisSearchreplaceKwd contained "/ignorecase\>"
|
||||
|
||||
"ERROR
|
||||
syn keyword nsisError UninstallExeName
|
||||
|
||||
|
||||
" Define the default highlighting.
|
||||
@ -225,32 +588,93 @@ syn keyword nsisError UninstallExeName
|
||||
|
||||
hi def link nsisInstruction Function
|
||||
hi def link nsisComment Comment
|
||||
hi def link nsisLocalLabel Label
|
||||
hi def link nsisFirstComment Comment
|
||||
hi def link nsisLocalLabel Label
|
||||
hi def link nsisGlobalLabel Label
|
||||
hi def link nsisStatement Statement
|
||||
hi def link nsisStatement Statement
|
||||
hi def link nsisString String
|
||||
hi def link nsisBoolean Boolean
|
||||
hi def link nsisAttribOptions Constant
|
||||
hi def link nsisExecShell Constant
|
||||
hi def link nsisFileAttrib Constant
|
||||
hi def link nsisMessageBox Constant
|
||||
hi def link nsisRegistry Identifier
|
||||
hi def link nsisOnOff Boolean
|
||||
hi def link nsisFontKwd Constant
|
||||
hi def link nsisLangKwd Constant
|
||||
hi def link nsisPageKwd Constant
|
||||
hi def link nsisPageExKwd Constant
|
||||
hi def link nsisSectionKwd Constant
|
||||
hi def link nsisSectionInKwd Constant
|
||||
hi def link nsisSectionGroupKwd Constant
|
||||
hi def link nsisVarKwd Constant
|
||||
hi def link nsisAddBrandingImageKwd Constant
|
||||
hi def link nsisBGGradientKwd Constant
|
||||
hi def link nsisBrandingTextKwd Constant
|
||||
hi def link nsisCRCCheckKwd Constant
|
||||
hi def link nsisDirVerifyKwd Constant
|
||||
hi def link nsisInstallColorsKwd Constant
|
||||
hi def link nsisInstTypeKwd Constant
|
||||
hi def link nsisLicenseBkColorKwd Constant
|
||||
hi def link nsisLicenseForceSelectionKwd Constant
|
||||
hi def link nsisManifestDPIAwareKwd Constant
|
||||
hi def link nsisManifestSupportedOSKwd Constant
|
||||
hi def link nsisRequestExecutionLevelKwd Constant
|
||||
hi def link nsisShowInstDetailsKwd Constant
|
||||
hi def link nsisSilentInstallKwd Constant
|
||||
hi def link nsisSilentUnInstallKwd Constant
|
||||
hi def link nsisSetCompressKwd Constant
|
||||
hi def link nsisSetCompressorKwd Constant
|
||||
hi def link nsisSetOverwriteKwd Constant
|
||||
hi def link nsisDeleteKwd Constant
|
||||
hi def link nsisExecShellKwd Constant
|
||||
hi def link nsisFileKwd Constant
|
||||
hi def link nsisReserveFileKwd Constant
|
||||
hi def link nsisRMDirKwd Constant
|
||||
hi def link nsisDeleteRegKeyKwd Constant
|
||||
hi def link nsisWriteRegMultiStrKwd Constant
|
||||
hi def link nsisSetRegViewKwd Constant
|
||||
hi def link nsisCopyFilesKwd Constant
|
||||
hi def link nsisCreateShortcutKwd Constant
|
||||
hi def link nsisGetFullPathNameKwd Constant
|
||||
hi def link nsisFileAttrib Constant
|
||||
hi def link nsisMessageBox Constant
|
||||
hi def link nsisFileWriteUTF16LEKwd Constant
|
||||
hi def link nsisSetShellVarContextKwd Constant
|
||||
hi def link nsisSendMessageKwd Constant
|
||||
hi def link nsisSetBrandingImageKwd Constant
|
||||
hi def link nsisSetDetailsViewKwd Constant
|
||||
hi def link nsisSetDetailsPrintKwd Constant
|
||||
hi def link nsisSetCtlColorsKwd Constant
|
||||
hi def link nsisSetSilentKwd Constant
|
||||
hi def link nsisRegistry Identifier
|
||||
hi def link nsisNumber Number
|
||||
hi def link nsisError Error
|
||||
hi def link nsisUserVar Identifier
|
||||
hi def link nsisSysVar Identifier
|
||||
hi def link nsisAttribute Type
|
||||
hi def link nsisCompiler Type
|
||||
hi def link nsisAttribute Type
|
||||
hi def link nsisCompiler Type
|
||||
hi def link nsisVersionInfo Type
|
||||
hi def link nsisTodo Todo
|
||||
hi def link nsisCallback Operator
|
||||
hi def link nsisCallback Identifier
|
||||
" preprocessor commands
|
||||
hi def link nsisPreprocSubst PreProc
|
||||
hi def link nsisPreprocLangStr PreProc
|
||||
hi def link nsisPreprocEnvVar PreProc
|
||||
hi def link nsisDefine Define
|
||||
hi def link nsisMacro Macro
|
||||
hi def link nsisPreCondit PreCondit
|
||||
hi def link nsisPreCondit PreCondit
|
||||
hi def link nsisInclude Include
|
||||
hi def link nsisSystem PreProc
|
||||
hi def link nsisLineContinuation Special
|
||||
hi def link nsisIncludeKwd Constant
|
||||
hi def link nsisAddplugindirKwd Constant
|
||||
hi def link nsisAppendfileKwd Constant
|
||||
hi def link nsisDelfileKwd Constant
|
||||
hi def link nsisPragmaKwd Constant
|
||||
hi def link nsisVerboseKwd Constant
|
||||
hi def link nsisDefineKwd Constant
|
||||
hi def link nsisIfKwd Constant
|
||||
hi def link nsisSearchparseKwd Constant
|
||||
hi def link nsisSearchreplaceKwd Constant
|
||||
|
||||
|
||||
let b:current_syntax = "nsis"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
@ -1,59 +1,184 @@
|
||||
" Vim syntax file
|
||||
" Language: Pike
|
||||
" Maintainer: Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it>
|
||||
" Last Change: 2001 May 10
|
||||
" Language: Pike
|
||||
" Maintainer: Stephen R. van den Berg <srb@cuci.nl>
|
||||
" Maintainer of previous implementation: Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it>
|
||||
" Last Change: 2018 Jan 28
|
||||
" Version: 2.9
|
||||
" Remark: Derived from the C-syntax; fixed several bugs in the C-syntax
|
||||
" Remark: and extended it with the Pike syntax.
|
||||
" Remark: Includes a highlighter for all Pike types of parenthesis errors.
|
||||
" Remark: Includes a highlighter for SQL on multiline strings.
|
||||
" Remark: Includes a highlighter for any embedded Autodoc format.
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" A bunch of useful C keywords
|
||||
syn keyword pikeStatement goto break return continue
|
||||
syn keyword pikeLabel case default
|
||||
syn keyword pikeConditional if else switch
|
||||
syn keyword pikeRepeat while for foreach do
|
||||
syn keyword pikeStatement gauge destruct lambda inherit import typeof
|
||||
syn keyword pikeException catch
|
||||
syn keyword pikeType inline nomask private protected public static
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" For multiline strings, try formatting them as SQL
|
||||
syn include @pikeSQL <sfile>:p:h/sqloracle.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
syn keyword pikeTodo contained TODO FIXME XXX
|
||||
" For embedded Autodoc documentation (WIP)
|
||||
syn include @pikeAutodoc <sfile>:p:h/autodoc.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
syn case match
|
||||
|
||||
" Supports array, multiset, mapping multi-character delimiter matching
|
||||
" Supports rotating amongst several same-level preprocessor conditionals
|
||||
packadd! matchit
|
||||
let b:match_words = "({:}\\@1<=),(\\[:]\\@1<=),(<:>\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"
|
||||
|
||||
" A bunch of useful Pike keywords
|
||||
syn keyword pikeDebug gauge backtrace describe_backtrace werror _Static_assert static_assert
|
||||
syn keyword pikeException error catch throw
|
||||
syn keyword pikeLabel case default break return continue
|
||||
syn keyword pikeConditional if else switch
|
||||
syn keyword pikeRepeat while for foreach do
|
||||
|
||||
syn keyword pikePredef RegGetKeyNames RegGetValue RegGetValues
|
||||
syn keyword pikePredef __automap__ __empty_program
|
||||
syn keyword pikePredef __handle_sprintf_format __parse_pike_type _disable_threads
|
||||
syn keyword pikePredef _do_call_outs _exit _gdb_breakpoint
|
||||
syn keyword pikePredef abs access acos acosh add_constant alarm all_constants
|
||||
syn keyword pikePredef array_sscanf asin asinh atan atan2 atanh atexit
|
||||
syn keyword pikePredef basetype call_function call_out call_out_info cd ceil
|
||||
syn keyword pikePredef combine_path combine_path_nt
|
||||
syn keyword pikePredef combine_path_unix compile copy_value cos cosh cpp crypt
|
||||
syn keyword pikePredef ctime decode_value delay encode_value encode_value_canonic
|
||||
syn keyword pikePredef enumerate errno exece exit exp file_stat file_truncate
|
||||
syn keyword pikePredef filesystem_stat find_call_out floor fork function_name
|
||||
syn keyword pikePredef function_object function_program gc
|
||||
syn keyword pikePredef get_active_compilation_handler get_active_error_handler
|
||||
syn keyword pikePredef get_all_groups get_all_users get_dir get_groups_for_user
|
||||
syn keyword pikePredef get_iterator get_profiling_info get_weak_flag getcwd
|
||||
syn keyword pikePredef getgrgid getgrnam gethrdtime gethrtime gethrvtime getpid
|
||||
syn keyword pikePredef getpwnam getpwuid getxattr glob gmtime has_index has_prefix
|
||||
syn keyword pikePredef has_suffix has_value hash hash_7_0 hash_7_4 hash_8_0
|
||||
syn keyword pikePredef hash_value kill limit listxattr load_module localtime
|
||||
syn keyword pikePredef log lower_case master max min mkdir mktime mv
|
||||
syn keyword pikePredef object_program pow query_num_arg random_seed
|
||||
syn keyword pikePredef remove_call_out removexattr replace_master rm round
|
||||
syn keyword pikePredef set_priority set_weak_flag setxattr sgn signal signame
|
||||
syn keyword pikePredef signum sin sinh sleep sort sprintf sqrt sscanf strerror
|
||||
syn keyword pikePredef string_filter_non_unicode string_to_unicode string_to_utf8
|
||||
syn keyword pikePredef tan tanh time trace types ualarm unicode_to_string
|
||||
syn keyword pikePredef upper_case utf8_to_string version
|
||||
|
||||
syn keyword pikePredef write lock try_lock
|
||||
syn keyword pikePredef MutexKey Timestamp Date Time TimeTZ Interval Inet Range
|
||||
syn keyword pikePredef Null null inf nan
|
||||
|
||||
syn keyword pikeTodo contained TODO FIXME XXX
|
||||
|
||||
" Match parengroups: allows for highlighting indices of mappings and
|
||||
" highlighting semicolons that are out of place due to a paren imbalance
|
||||
syn cluster pikePreShort contains=pikeDefine,pikePreProc,pikeCppOutWrapper,pikeCppInWrapper,pikePreCondit,pikePreConditMatch
|
||||
syn cluster pikeExprGroup contains=pikeMappIndex,@pikeStmt,pikeNest,@pikeBadGroup,pikeSoftCast
|
||||
syn match pikeWord transparent contained /[^()'"[\]{},;:]\+/ contains=ALLBUT,@pikePreProcGroup,@pikeExprGroup
|
||||
syn match pikeFirstWord transparent display contained /^\s*#[^()'"[\]{},;:]\+/ contains=@pikePreShort
|
||||
syn cluster pikeMappElm contains=pikeMappIndex,@pikeStmt
|
||||
syn cluster pikeStmt contains=pikeFirstWord,pikeCharacter,pikeString,pikeMlString,pikeWord,pikeNest
|
||||
syn cluster pikeBadGroup contains=pikeBadPClose,pikeBadAClose,pikeBadBClose,pikeBadSPClose,pikeBadSAClose,pikeBadSBClose,pikeBadSClose,pikeBadSPAClose,pikeBadSBAClose
|
||||
syn match pikeBadPClose display contained "[}\]]"
|
||||
syn match pikeBadAClose display contained "[)\]]"
|
||||
syn match pikeBadBClose display contained "[)}]"
|
||||
syn match pikeBadSPClose display contained "[;}\]]"
|
||||
syn match pikeBadSAClose display contained "[;)\]]"
|
||||
syn match pikeBadSPAClose display contained "[;\]]"
|
||||
syn match pikeBadSBAClose display contained "[;}]"
|
||||
syn match pikeBadSClose display contained "[;)}\]]"
|
||||
syn region pikeNest transparent start="(\@1<!{" end="}" contains=@pikeStmt,pikeUserLabel,pikeBadAClose
|
||||
syn region pikeNest transparent start="\%(\<for\%(each\)\?\s\?\)\@8<!([[{<]\@!" end=")" contains=@pikeStmt,pikeBadSPClose
|
||||
syn region pikeNest transparent start="\%(\<for\%(each\)\?\s\?\)\@8<=(" end=")" contains=@pikeStmt,pikeBadPClose
|
||||
syn region pikeNest transparent start="(\@1<!\[" end="]" contains=@pikeStmt,pikeBadSBClose
|
||||
syn region pikeNest transparent start="(\zs\[" end="])" contains=@pikeMappElm,pikeBadSBAClose
|
||||
" For some reason specifying a matchgroup on the pikeNest below makes it
|
||||
" override the shorter variant; consider it a kludge, no idea why it works
|
||||
syn region pikeNest transparent matchgroup=pikeSoftCast start=%(\zs\[[ \t\v\r\n.a-zA-Z0-9_():,|]\+])\@!% end=")" contains=@pikeStmt
|
||||
syn region pikeNest transparent start="(\zs{" end="})" contains=@pikeStmt,pikeBadSPAClose
|
||||
syn region pikeNest transparent start="(\zs<" end=">)" contains=@pikeStmt,pikeBadSPClose keepend
|
||||
|
||||
" It's easy to accidentally add a space after a backslash that was intended
|
||||
" for line continuation. Some compilers allow it, which makes it
|
||||
" unpredictable and should be avoided.
|
||||
syn match pikeBadContinuation contained "\\\s\+$"
|
||||
|
||||
" pikeCommentGroup allows adding matches for special things in comments
|
||||
syn cluster pikeCommentGroup contains=pikeTodo,pikeBadContinuation
|
||||
|
||||
" String and Character constants
|
||||
" Highlight special characters (those which have a backslash) differently
|
||||
syn match pikeSpecial contained "\\[0-7][0-7][0-7]\=\|\\."
|
||||
syn region pikeString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial
|
||||
syn match pikeCharacter "'[^\\]'"
|
||||
syn match pikeSpecialCharacter "'\\.'"
|
||||
syn match pikeSpecialCharacter "'\\[0-7][0-7]'"
|
||||
syn match pikeSpecialCharacter "'\\[0-7][0-7][0-7]'"
|
||||
syn match pikeSpecial display contained "\\\%(x\x*\|d\d*\|\o\+\|u\x\{4}\|U\x\{8}\|[abefnrtv]\|$\)"
|
||||
|
||||
" Compound data types
|
||||
syn region pikeCompoundType start='({' contains=pikeString,pikeCompoundType,pikeNumber,pikeFloat end='})'
|
||||
syn region pikeCompoundType start='(\[' contains=pikeString,pikeCompoundType,pikeNumber,pikeFloat end='\])'
|
||||
syn region pikeCompoundType start='(<' contains=pikeString,pikeCompoundType,pikeNumber,pikeFloat end='>)'
|
||||
" ISO C11 or ISO C++ 11
|
||||
if !exists("c_no_cformat")
|
||||
" Highlight % items in strings.
|
||||
syn match pikeFormat display "%\%(\d\+\$\)\=[-+' #0*]*\%(\d*\|\*\|\*\d\+\$\)\%(\.\%(\d*\|\*\|\*\d\+\$\)\)\=\%([hlLjzt]\|ll\|hh\)\=\%([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
|
||||
syn match pikeFormat display "%%" contained
|
||||
syn region pikeString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,pikeFormat,@Spell keepend
|
||||
syn region pikeMlString start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeFormat,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend
|
||||
else
|
||||
syn region pikeString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,@Spell
|
||||
syn region pikeMlString transparent start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend
|
||||
endif
|
||||
|
||||
"catch errors caused by wrong parenthesis
|
||||
syn region pikeParen transparent start='([^{[<(]' end=')' contains=ALLBUT,pikeParenError,pikeIncluded,pikeSpecial,pikeTodo,pikeUserLabel,pikeBitField
|
||||
syn match pikeParenError ")"
|
||||
syn match pikeInParen contained "[^(][{}][^)]"
|
||||
" Use SQL-syntax highlighting in multiline string if it starts with
|
||||
" a standard SQL keyword
|
||||
syn case ignore
|
||||
" FIXME Use explicit newline match to cover up a bug in the regexp engine
|
||||
" If the kludge is not used, the match will only start unless at least a space
|
||||
" follows the initial doublequote on the first line (or the keyword is on
|
||||
" the first line).
|
||||
syn region pikeEmbeddedString contained start=+\%(#"\n\?\)\@2<=\_s*\%(SELECT\|INSERT\|UPDATE\|DELETE\|WITH\|CREATE\|DROP\|ALTER\)\>+ skip=+\\\\\|\\"+ end=+[\\#]\@1<!"+ contains=@pikeSQL,pikeBindings keepend
|
||||
syn case match
|
||||
|
||||
syn match pikeBindings display contained ":\@1<!:\I\i*"
|
||||
|
||||
syn match pikeCharacter "'[^\\']'" contains=pikeDelimiterSQ
|
||||
syn match pikeCharacter "'[^']*'" contains=pikeSpecial,pikeDelimiterSQ
|
||||
syn match pikeSpecialError "'\\[^'\"?\\abefnrtv]'"
|
||||
syn match pikeDelimiterDQ display +"+ contained
|
||||
syn match pikeDelimiterSQ display +'+ contained
|
||||
|
||||
"when wanted, highlight trailing white space
|
||||
if exists("c_space_errors")
|
||||
if !exists("c_no_trail_space_error")
|
||||
syn match pikeSpaceError display excludenl "\s\+$"
|
||||
endif
|
||||
if !exists("c_no_tab_space_error")
|
||||
syn match pikeSpaceError display " \+\ze\t"
|
||||
endif
|
||||
endif
|
||||
|
||||
"integer number, or floating point number without a dot and with "f".
|
||||
syn case ignore
|
||||
syn match pikeNumber "\<\d\+\(u\=l\=\|lu\|f\)\>"
|
||||
"floating point number, with dot, optional exponent
|
||||
syn match pikeFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||
"floating point number, starting with a dot, optional exponent
|
||||
syn match pikeFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||
"floating point number, without dot, with exponent
|
||||
syn match pikeFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"
|
||||
syn match pikeNumbers display transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctalError,pikeOctal
|
||||
" Same, but without octal error (for comments)
|
||||
syn match pikeNumbersCom display contained transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctal
|
||||
syn match pikeNumber display contained "\<\d\+\%(u\=l\{0,2}\|ll\=u\)\>"
|
||||
"hex number
|
||||
syn match pikeNumber "\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>"
|
||||
"syn match pikeIdentifier "\<[a-z_][a-z0-9_]*\>"
|
||||
syn case match
|
||||
syn match pikeNumber display contained "\<0x\x\+\%(u\=l\{0,2}\|ll\=u\)\>"
|
||||
" Flag the first zero of an octal number as something special
|
||||
syn match pikeOctal display contained "\<0\o\+\%(u\=l\{0,2}\|ll\=u\)\>" contains=pikeOctalZero
|
||||
syn match pikeOctalZero display contained "\<0"
|
||||
"floating point number, with dot, optional exponent
|
||||
syn match pikeFloat display contained "\<\d\+\%(f\|\.[0-9.]\@!\d*\%(e[-+]\=\d\+\)\=[fl]\=\)"
|
||||
"floating point number, starting with a dot, optional exponent
|
||||
syn match pikeFloat display contained "[0-9.]\@1<!\.\d\+\%(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||
"floating point number, without dot, with exponent
|
||||
syn match pikeFloat display contained "\<\d\+e[-+]\=\d\+[fl]\=\>"
|
||||
|
||||
"hexadecimal floating point number, two variants, with exponent
|
||||
syn match pikeFloat display contained "\<0x\%(\x\+\.\?\|\x*\.\x\+\)p[-+]\=\d\+[fl]\=\>"
|
||||
|
||||
" flag an octal number with wrong digits
|
||||
syn match pikeOctalError "\<0[0-7]*[89]"
|
||||
syn match pikeOctalError display contained "\<0\o*[89]\d*"
|
||||
syn case match
|
||||
|
||||
if exists("c_comment_strings")
|
||||
" A comment can contain pikeString, pikeCharacter and pikeNumber.
|
||||
@ -61,82 +186,201 @@ if exists("c_comment_strings")
|
||||
" need to use a special type of pikeString: pikeCommentString, which also ends on
|
||||
" "*/", and sees a "*" at the start of the line as comment again.
|
||||
" Unfortunately this doesn't very well work for // type of comments :-(
|
||||
syntax match pikeCommentSkip contained "^\s*\*\($\|\s\+\)"
|
||||
syntax region pikeCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=pikeSpecial,pikeCommentSkip
|
||||
syntax region pikeComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=pikeSpecial
|
||||
syntax region pikeComment start="/\*" end="\*/" contains=pikeTodo,pikeCommentString,pikeCharacter,pikeNumber,pikeFloat
|
||||
syntax match pikeComment "//.*" contains=pikeTodo,pikeComment2String,pikeCharacter,pikeNumber
|
||||
syntax match pikeComment "#\!.*" contains=pikeTodo,pikeComment2String,pikeCharacter,pikeNumber
|
||||
syn match pikeCommentSkip contained "^\s*\*\%($\|\s\+\)"
|
||||
syn region pikeCommentString contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\ze\*/+ contains=pikeSpecial,pikeCommentSkip
|
||||
syn region pikeComment2String contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=pikeSpecial
|
||||
syn region pikeCommentL start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeComment2String,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord
|
||||
if exists("c_no_comment_fold")
|
||||
" Use "extend" here to have preprocessor lines not terminate halfway a
|
||||
" comment.
|
||||
syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord
|
||||
else
|
||||
syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord
|
||||
endif
|
||||
else
|
||||
syn region pikeComment start="/\*" end="\*/" contains=pikeTodo
|
||||
syn match pikeComment "//.*" contains=pikeTodo
|
||||
syn match pikeComment "#!.*" contains=pikeTodo
|
||||
syn region pikeCommentL start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord
|
||||
if exists("c_no_comment_fold")
|
||||
syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord
|
||||
else
|
||||
syn region pikeComment matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord
|
||||
endif
|
||||
endif
|
||||
syntax match pikeCommentError "\*/"
|
||||
" keep a // comment separately, it terminates a preproc. conditional
|
||||
syn match pikeCommentError display "\*/"
|
||||
syn match pikeCommentStartError display "/\ze\*" contained
|
||||
|
||||
syn keyword pikeOperator sizeof
|
||||
syn keyword pikeType int string void float mapping array multiset mixed
|
||||
syn keyword pikeType program object function
|
||||
syn keyword pikeOperator sizeof
|
||||
syn keyword pikeOperator typeof _typeof _refs
|
||||
syn keyword pikeOperator zero_type intp stringp arrayp mappingp multisetp
|
||||
syn keyword pikeOperator objectp functionp programp callablep destructedp
|
||||
syn keyword pikeOperator object_variablep undefinedp
|
||||
syn keyword pikeOperator allocate equal
|
||||
syn keyword pikeOperator aggregate aggregate_mapping aggregate_multiset
|
||||
syn keyword pikeOperator map filter search replace reverse column rows
|
||||
syn keyword pikeOperator indices values mkmapping mkmultiset m_delete sort
|
||||
syn keyword pikeOperator m_delete destruct
|
||||
syn keyword pikeOperator create _destruct _sprintf cast _encode _decode
|
||||
syn keyword pikeOperator __hash _sizeof _values _indices __INIT _equal
|
||||
syn keyword pikeOperator _is_type _m_delete _get_iterator _search
|
||||
syn keyword pikeOperator _serialize _deserialize _sqrt _types _random
|
||||
syn keyword pikeOperator _size_object
|
||||
|
||||
syn region pikePreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=pikeComment,pikeString,pikeCharacter,pikeNumber,pikeCommentError
|
||||
syn region pikeIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn match pikeIncluded contained "<[^>]*>"
|
||||
syn match pikeInclude "^\s*#\s*include\>\s*["<]" contains=pikeIncluded
|
||||
"syn match pikeLineSkip "\\$"
|
||||
syn region pikeDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,pikePreCondit,pikeIncluded,pikeInclude,pikeDefine,pikeInParen
|
||||
syn region pikePreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,pikePreCondit,pikeIncluded,pikeInclude,pikeDefine,pikeInParen
|
||||
syn keyword pikeType int void
|
||||
syn keyword pikeType float
|
||||
syn keyword pikeType bool string array mapping multiset mixed
|
||||
syn keyword pikeType object function program auto
|
||||
|
||||
syn keyword pikeType this this_object this_program
|
||||
syn keyword pikeType sprintf_args sprintf_format sprintf_result
|
||||
syn keyword pikeType strict_sprintf_format
|
||||
|
||||
syn keyword pikeStructure class enum typedef inherit import
|
||||
syn keyword pikeTypedef typedef
|
||||
syn keyword pikeStorageClass private protected public constant final variant
|
||||
syn keyword pikeStorageClass optional inline extern static __deprecated__ lambda
|
||||
|
||||
syn keyword pikeConstant __LINE__ __FILE__ __DIR__ __DATE__ __TIME__
|
||||
syn keyword pikeConstant __AUTO_BIGNUM__ __NT__
|
||||
syn keyword pikeConstant __BUILD__ __COUNTER__ _MAJOR__ __MINOR__ __VERSION__
|
||||
syn keyword pikeConstant __REAL_BUILD__ _REAL_MAJOR__ __REAL_MINOR__
|
||||
syn keyword pikeConstant __REAL_VERSION__ __PIKE__ UNDEFINED
|
||||
|
||||
" These should actually only be parsed in preprocessor conditionals
|
||||
syn keyword pikeCppOperator contained defined constant efun _Pragma
|
||||
|
||||
syn keyword pikeBoolean true false
|
||||
|
||||
syn match pikeCppPrefix display "^\s*\zs#\s*[a-z]\+" contained
|
||||
syn region pikePreCondit start="^\s*#\s*\%(if\%(n\?def\)\?\|el\%(se\)\?if\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix
|
||||
syn match pikePreConditMatch display "^\s*\zs#\s*\%(else\|endif\)\>"
|
||||
if !exists("c_no_if0")
|
||||
syn cluster pikeCppOutInGroup contains=pikeCppInIf,pikeCppInElse,pikeCppInElse2,pikeCppOutIf,pikeCppOutIf2,pikeCppOutElse,pikeCppInSkip,pikeCppOutSkip
|
||||
syn region pikeCppOutWrapper start="^\s*\zs#\s*if\s\+0\+\s*\%($\|//\|/\*\|&\)" end=".\@=\|$" contains=pikeCppOutIf,pikeCppOutElse,@NoSpell fold
|
||||
syn region pikeCppOutIf contained start="0\+" matchgroup=pikeCppOutWrapper end="^\s*#\s*endif\>" contains=pikeCppOutIf2,pikeCppOutElse
|
||||
if !exists("c_no_if0_fold")
|
||||
syn region pikeCppOutIf2 contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell fold
|
||||
else
|
||||
syn region pikeCppOutIf2 contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell
|
||||
endif
|
||||
syn region pikeCppOutElse contained matchgroup=pikeCppOutWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit
|
||||
syn region pikeCppInWrapper start="^\s*\zs#\s*if\s\+0*[1-9]\d*\s*\%($\|//\|/\*\||\)" end=".\@=\|$" contains=pikeCppInIf,pikeCppInElse fold
|
||||
syn region pikeCppInIf contained matchgroup=pikeCppInWrapper start="\d\+" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit
|
||||
if !exists("c_no_if0_fold")
|
||||
syn region pikeCppInElse contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2 fold
|
||||
else
|
||||
syn region pikeCppInElse contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2
|
||||
endif
|
||||
syn region pikeCppInElse2 contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)\%([^/]\|/[^/*]\)*" end="^\ze\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip,@Spell
|
||||
syn region pikeCppOutSkip contained start="^\s*#\s*if\%(n\?def\)\?\>" skip="\\$" end="^\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip
|
||||
syn region pikeCppInSkip contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(if\s\+\%(\d\+\s*\%($\|//\|/\*\||\|&\)\)\@!\|ifn\?def\>\)" skip="\\$" end="^\s*#\s*endif\>" containedin=pikeCppOutElse,pikeCppInIf,pikeCppInSkip contains=TOP,pikePreProc
|
||||
endif
|
||||
syn region pikeIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeDelimiterDQ keepend
|
||||
syn match pikeIncluded display contained "<[^>]*>"
|
||||
syn match pikeInclude display "^\s*\zs#\s*include\>\s*["<]" contains=pikeIncluded
|
||||
syn cluster pikePreProcGroup contains=pikeIncluded,pikeInclude,pikeEmbeddedString,pikeCppOutWrapper,pikeCppInWrapper,@pikeCppOutInGroup,pikeFormat,pikeMlString,pikeCommentStartError,@pikeBadGroup,pikeWord
|
||||
syn region pikeDefine start="^\s*\zs#\s*\%(define\|undef\)\>" skip="\\$" end="$" keepend contains=@pikeStmt,@pikeBadGroup
|
||||
syn region pikePreProc start="^\s*\zs#\s*\%(pragma\|charset\|pike\|require\|string\|line\|warning\|error\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix,@Spell,pikeConstant
|
||||
|
||||
syn match pikeAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@pikeAutodoc containedin=pikeComment,pikeCommentL
|
||||
syn cluster pikeCommentGroup add=pikeAutodocReal
|
||||
syn cluster pikePreProcGroup add=pikeAutodocReal
|
||||
|
||||
" Highlight User Labels
|
||||
syn region pikeMulti transparent start='?' end=':' contains=ALLBUT,pikeIncluded,pikeSpecial,pikeTodo,pikeUserLabel,pikeBitField
|
||||
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
|
||||
syn match pikeUserLabel "^\s*\I\i*\s*:$"
|
||||
syn match pikeUserLabel ";\s*\I\i*\s*:$"ms=s+1
|
||||
syn match pikeUserLabel "^\s*\I\i*\s*:[^:]"me=e-1
|
||||
syn match pikeUserLabel ";\s*\I\i*\s*:[^:]"ms=s+1,me=e-1
|
||||
syn match pikeUserLabel display "\%(^\|[{};]\)\zs\I\i*\s*\ze:\%([^:]\|$\)" contained contains=NONE
|
||||
syn match pikeUserLabel display "\%(\<\%(break\|continue\)\_s\+\)\@10<=\I\i*" contained contains=NONE
|
||||
syn match pikeUserLabel display "\%(\<case\)\@5<=\s\+[^<()[\]{},;:]\+\ze::\@!" contained contains=pikeDelimiterDQ,pikeDelimiterSQ
|
||||
|
||||
" Avoid recognizing most bitfields as labels
|
||||
syn match pikeBitField "^\s*\I\i*\s*:\s*[1-9]"me=e-1
|
||||
syn match pikeBitField ";\s*\I\i*\s*:\s*[1-9]"me=e-1
|
||||
syn match pikeMappIndex display contained "[^<()[\]{},;:]\+\ze::\@!" contains=pikeDelimiterDQ,pikeDelimiterSQ
|
||||
syn match pikeSoftCast display contained "\[[ \t\v\r\n.a-zA-Z0-9_():,|\+]" contains=NONE
|
||||
|
||||
syn sync ccomment pikeComment minlines=10
|
||||
if exists("c_minlines")
|
||||
let b:c_minlines = c_minlines
|
||||
else
|
||||
if !exists("c_no_if0")
|
||||
let b:c_minlines = 400 " #if 0 constructs can be long
|
||||
else
|
||||
let b:c_minlines = 200 " mostly for multiline strings
|
||||
endif
|
||||
endif
|
||||
exec "syn sync ccomment pikeComment minlines=" . b:c_minlines
|
||||
syn sync match pikeMlStringSync grouphere pikeMlString +^[^"#]\+#\"+
|
||||
syn sync match pikeAutodocSync grouphere pikeCommentL "^\s*//!"
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
" Only used when an item doesn't have highlighting yet
|
||||
hi def link pikeFormat SpecialChar
|
||||
hi def link pikeMlString String
|
||||
hi def link pikeCommentL Comment
|
||||
hi def link pikeCommentStart Comment
|
||||
hi def link pikeLabel Label
|
||||
hi def link pikeUserLabel Label
|
||||
hi def link pikeUserLabel Identifier
|
||||
hi def link pikeConditional Conditional
|
||||
hi def link pikeRepeat Repeat
|
||||
hi def link pikeCharacter Character
|
||||
hi def link pikeSpecialCharacter pikeSpecial
|
||||
hi def link pikeCharacter Character
|
||||
hi def link pikeDelimiterDQ Delimiter
|
||||
hi def link pikeDelimiterSQ Delimiter
|
||||
hi def link pikeNumber Number
|
||||
hi def link pikeOctal Number
|
||||
hi def link pikeOctalZero PreProc " link this to Error if you want
|
||||
hi def link pikeFloat Float
|
||||
hi def link pikeOctalError pikeError
|
||||
hi def link pikeParenError pikeError
|
||||
hi def link pikeInParen pikeError
|
||||
hi def link pikeCommentError pikeError
|
||||
hi def link pikeOperator Operator
|
||||
hi def link pikeOctalError Error
|
||||
hi def link pikeCommentError Error
|
||||
hi def link pikeCommentStartError Error
|
||||
hi def link pikeSpaceError Error
|
||||
hi def link pikeSpecialError Error
|
||||
hi def link pikeOperator Operator
|
||||
hi def link pikeCppOperator Operator
|
||||
hi def link pikeStructure Structure
|
||||
hi def link pikeTypedef Typedef
|
||||
hi def link pikeStorageClass StorageClass
|
||||
hi def link pikeInclude Include
|
||||
hi def link pikeCppPrefix PreCondit
|
||||
hi def link pikePreProc PreProc
|
||||
hi def link pikeDefine Macro
|
||||
hi def link pikeIncluded pikeString
|
||||
hi def link pikeIncluded String
|
||||
hi def link pikeError Error
|
||||
hi def link pikeStatement Statement
|
||||
hi def link pikePreCondit PreCondit
|
||||
hi def link pikeDebug Debug
|
||||
hi def link pikeException Exception
|
||||
hi def link pikeStatement Statement
|
||||
hi def link pikeType Type
|
||||
hi def link pikeCommentError pikeError
|
||||
hi def link pikeCommentString pikeString
|
||||
hi def link pikeComment2String pikeString
|
||||
hi def link pikeCommentSkip pikeComment
|
||||
hi def link pikeConstant Constant
|
||||
hi def link pikeBoolean Boolean
|
||||
hi def link pikeCommentString String
|
||||
hi def link pikeComment2String String
|
||||
hi def link pikeCommentSkip Comment
|
||||
hi def link pikeString String
|
||||
hi def link pikeComment Comment
|
||||
hi def link pikeSpecial SpecialChar
|
||||
hi def link pikeTodo Todo
|
||||
hi def link pikeException pikeStatement
|
||||
hi def link pikeCompoundType Constant
|
||||
"hi def link pikeIdentifier Identifier
|
||||
hi def link pikeBadContinuation Error
|
||||
|
||||
hi def link pikeCppInWrapper PreCondit
|
||||
hi def link pikeCppOutWrapper PreCondit
|
||||
hi def link pikePreConditMatch PreCondit
|
||||
|
||||
hi def link pikeCppOutSkip Comment
|
||||
hi def link pikeCppInElse2 Comment
|
||||
hi def link pikeCppOutIf2 Comment
|
||||
hi def link pikeCppOut Comment
|
||||
|
||||
hi def link pikePredef Statement
|
||||
hi def link pikeBindings Identifier
|
||||
hi def link pikeMappIndex Identifier
|
||||
hi def link pikeSoftCast Type
|
||||
hi def link pikeBadGroup Error
|
||||
hi def link pikeBadPClose Error
|
||||
hi def link pikeBadAClose Error
|
||||
hi def link pikeBadBClose Error
|
||||
hi def link pikeBadSPClose Error
|
||||
hi def link pikeBadSAClose Error
|
||||
hi def link pikeBadSBClose Error
|
||||
hi def link pikeBadSPAClose Error
|
||||
hi def link pikeBadSBAClose Error
|
||||
hi def link pikeBadSClose Error
|
||||
|
||||
let b:current_syntax = "pike"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
" vim: ts=8
|
||||
|
@ -1,7 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: readline(3) configuration file
|
||||
" Maintainer: Daniel Moch <daniel@danielmoch.com>
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2017-06-25
|
||||
" Latest Revision: 2017-12-25
|
||||
" readline_has_bash - if defined add support for bash specific
|
||||
" settings/functions
|
||||
|
||||
@ -152,6 +153,9 @@ syn keyword readlineVariable contained
|
||||
\ skipwhite
|
||||
\ comment-begin
|
||||
\ isearch-terminators
|
||||
\ vi-cmd-mode-string
|
||||
\ vi-ins-mode-string
|
||||
\ emacs-mode-string
|
||||
|
||||
syn keyword readlineVariable contained
|
||||
\ nextgroup=readlineNumber
|
||||
|
@ -1,328 +1,464 @@
|
||||
" Vim syntax file
|
||||
" Language: Scheme (R5RS + some R6RS extras)
|
||||
" Last Change: 2016 May 23
|
||||
" Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||
" Original author: Dirk van Deun <dirk@igwe.vub.ac.be>
|
||||
" Language: Scheme (R7RS)
|
||||
" Last Change: 2018-01-06
|
||||
" Author: Evan Hanson <evhan@foldling.org>
|
||||
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||
" Previous Author: Dirk van Deun <dirk@igwe.vub.ac.be>
|
||||
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||
" URL: https://foldling.org/vim/syntax/scheme.vim
|
||||
|
||||
" This script incorrectly recognizes some junk input as numerals:
|
||||
" parsing the complete system of Scheme numerals using the pattern
|
||||
" language is practically impossible: I did a lax approximation.
|
||||
|
||||
" MzScheme extensions can be activated with setting is_mzscheme variable
|
||||
|
||||
" Suggestions and bug reports are solicited by the author.
|
||||
|
||||
" Initializing:
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
let s:cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn case ignore
|
||||
syn match schemeParentheses "[^ '`\t\n()\[\]";]\+"
|
||||
syn match schemeParentheses "[)\]]"
|
||||
|
||||
" Fascist highlighting: everything that doesn't fit the rules is an error...
|
||||
syn match schemeIdentifier /[^ '`\t\n()\[\]"|;][^ '`\t\n()\[\]"|;]*/
|
||||
|
||||
syn match schemeError ![^ \t()\[\]";]*!
|
||||
syn match schemeError ")"
|
||||
syn region schemeQuote matchgroup=schemeData start=/'[`']*/ end=/[ \t\n()\[\]";]/me=e-1
|
||||
syn region schemeQuote matchgroup=schemeData start=/'['`]*"/ skip=/\\[\\"]/ end=/"/
|
||||
syn region schemeQuote matchgroup=schemeData start=/'['`]*|/ skip=/\\[\\|]/ end=/|/
|
||||
syn region schemeQuote matchgroup=schemeData start=/'['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||
|
||||
" Quoted and backquoted stuff
|
||||
syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*/ end=/[ \t\n()\[\]";]/me=e-1
|
||||
syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuote,schemeQuoteForm,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||
|
||||
syn region schemeQuoted matchgroup=Delimiter start="['`]" end=![ \t()\[\]";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn region schemeUnquote matchgroup=schemeParentheses start=/,/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
|
||||
syn region schemeUnquote matchgroup=schemeParentheses start=/,@/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
|
||||
syn region schemeUnquote matchgroup=schemeParentheses start=/,(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
|
||||
syn region schemeUnquote matchgroup=schemeParentheses start=/,@(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster
|
||||
|
||||
syn region schemeQuoted matchgroup=Delimiter start="['`](" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn region schemeQuoted matchgroup=Delimiter start="['`]#(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn region schemeQuoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||
syn region schemeQuasiquoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||
|
||||
syn region schemeStrucRestricted matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn region schemeStrucRestricted matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn region schemeString start=/\(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/
|
||||
syn region schemeSymbol start=/\(\\\)\@<!|/ skip=/\\[\\|]/ end=/|/
|
||||
|
||||
" Popular Scheme extension:
|
||||
" using [] as well as ()
|
||||
syn region schemeStrucRestricted matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn region schemeStrucRestricted matchgroup=Delimiter start="#\[" matchgroup=Delimiter end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn match schemeNumber /\(#[dbeio]\)*[+\-]*\([0-9]\+\|inf.0\|nan.0\)\(\/\|\.\)\?[0-9+\-@\ilns]*\>/
|
||||
syn match schemeNumber /#x[+\-]*[0-9a-fA-F]\+\>/
|
||||
|
||||
syn region schemeUnquote matchgroup=Delimiter start="," end=![ \t\[\]()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn region schemeUnquote matchgroup=Delimiter start=",@" end=![ \t\[\]()";]!me=e-1 contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn match schemeBoolean /#t\(rue\)\?/
|
||||
syn match schemeBoolean /#f\(alse\)\?/
|
||||
|
||||
syn region schemeUnquote matchgroup=Delimiter start=",(" end=")" contains=ALL
|
||||
syn region schemeUnquote matchgroup=Delimiter start=",@(" end=")" contains=ALL
|
||||
syn match schemeCharacter /#\\.[^ `'\t\n\[\]()]*/
|
||||
syn match schemeCharacter /#\\x[0-9a-fA-F]\+/
|
||||
|
||||
syn region schemeUnquote matchgroup=Delimiter start=",#(" end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn region schemeUnquote matchgroup=Delimiter start=",@#(" end=")" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn match schemeComment /;.*$/
|
||||
|
||||
syn region schemeUnquote matchgroup=Delimiter start=",\[" end="\]" contains=ALL
|
||||
syn region schemeUnquote matchgroup=Delimiter start=",@\[" end="\]" contains=ALL
|
||||
syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment
|
||||
|
||||
syn region schemeUnquote matchgroup=Delimiter start=",#\[" end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn region schemeUnquote matchgroup=Delimiter start=",@#\[" end="\]" contains=ALLBUT,schemeStruc,schemeSyntax,schemeFunc
|
||||
syn region schemeForm matchgroup=schemeParentheses start="(" end=")" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
|
||||
syn region schemeForm matchgroup=schemeParentheses start="\[" end="\]" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
|
||||
|
||||
" R5RS Scheme Functions and Syntax:
|
||||
syn region schemeVector matchgroup=schemeData start="#(" end=")" contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||
syn region schemeVector matchgroup=schemeData start="#[fsu]\d\+(" end=")" contains=schemeNumber,schemeComment,schemeDatumComment
|
||||
|
||||
setlocal iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_
|
||||
|
||||
syn keyword schemeSyntax lambda and or if cond case define let let* letrec
|
||||
syn keyword schemeSyntax begin do delay set! else =>
|
||||
syn keyword schemeSyntax quote quasiquote unquote unquote-splicing
|
||||
syn keyword schemeSyntax define-syntax let-syntax letrec-syntax syntax-rules
|
||||
" R6RS
|
||||
syn keyword schemeSyntax define-record-type fields protocol
|
||||
|
||||
syn keyword schemeFunc not boolean? eq? eqv? equal? pair? cons car cdr set-car!
|
||||
syn keyword schemeFunc set-cdr! caar cadr cdar cddr caaar caadr cadar caddr
|
||||
syn keyword schemeFunc cdaar cdadr cddar cdddr caaaar caaadr caadar caaddr
|
||||
syn keyword schemeFunc cadaar cadadr caddar cadddr cdaaar cdaadr cdadar cdaddr
|
||||
syn keyword schemeFunc cddaar cddadr cdddar cddddr null? list? list length
|
||||
syn keyword schemeFunc append reverse list-ref memq memv member assq assv assoc
|
||||
syn keyword schemeFunc symbol? symbol->string string->symbol number? complex?
|
||||
syn keyword schemeFunc real? rational? integer? exact? inexact? = < > <= >=
|
||||
syn keyword schemeFunc zero? positive? negative? odd? even? max min + * - / abs
|
||||
syn keyword schemeFunc quotient remainder modulo gcd lcm numerator denominator
|
||||
syn keyword schemeFunc floor ceiling truncate round rationalize exp log sin cos
|
||||
syn keyword schemeFunc tan asin acos atan sqrt expt make-rectangular make-polar
|
||||
syn keyword schemeFunc real-part imag-part magnitude angle exact->inexact
|
||||
syn keyword schemeFunc inexact->exact number->string string->number char=?
|
||||
syn keyword schemeFunc char-ci=? char<? char-ci<? char>? char-ci>? char<=?
|
||||
syn keyword schemeFunc char-ci<=? char>=? char-ci>=? char-alphabetic? char?
|
||||
syn keyword schemeFunc char-numeric? char-whitespace? char-upper-case?
|
||||
syn keyword schemeFunc char-lower-case?
|
||||
syn keyword schemeFunc char->integer integer->char char-upcase char-downcase
|
||||
syn keyword schemeFunc string? make-string string string-length string-ref
|
||||
syn keyword schemeFunc string-set! string=? string-ci=? string<? string-ci<?
|
||||
syn keyword schemeFunc string>? string-ci>? string<=? string-ci<=? string>=?
|
||||
syn keyword schemeFunc string-ci>=? substring string-append vector? make-vector
|
||||
syn keyword schemeFunc vector vector-length vector-ref vector-set! procedure?
|
||||
syn keyword schemeFunc apply map for-each call-with-current-continuation
|
||||
syn keyword schemeFunc call-with-input-file call-with-output-file input-port?
|
||||
syn keyword schemeFunc output-port? current-input-port current-output-port
|
||||
syn keyword schemeFunc open-input-file open-output-file close-input-port
|
||||
syn keyword schemeFunc close-output-port eof-object? read read-char peek-char
|
||||
syn keyword schemeFunc write display newline write-char call/cc
|
||||
syn keyword schemeFunc list-tail string->list list->string string-copy
|
||||
syn keyword schemeFunc string-fill! vector->list list->vector vector-fill!
|
||||
syn keyword schemeFunc force with-input-from-file with-output-to-file
|
||||
syn keyword schemeFunc char-ready? load transcript-on transcript-off eval
|
||||
syn keyword schemeFunc dynamic-wind port? values call-with-values
|
||||
syn keyword schemeFunc scheme-report-environment null-environment
|
||||
syn keyword schemeFunc interaction-environment
|
||||
" R6RS
|
||||
syn keyword schemeFunc make-eq-hashtable make-eqv-hashtable make-hashtable
|
||||
syn keyword schemeFunc hashtable? hashtable-size hashtable-ref hashtable-set!
|
||||
syn keyword schemeFunc hashtable-delete! hashtable-contains? hashtable-update!
|
||||
syn keyword schemeFunc hashtable-copy hashtable-clear! hashtable-keys
|
||||
syn keyword schemeFunc hashtable-entries hashtable-equivalence-function hashtable-hash-function
|
||||
syn keyword schemeFunc hashtable-mutable? equal-hash string-hash string-ci-hash symbol-hash
|
||||
syn keyword schemeFunc find for-all exists filter partition fold-left fold-right
|
||||
syn keyword schemeFunc remp remove remv remq memp assp cons*
|
||||
|
||||
" ... so that a single + or -, inside a quoted context, would not be
|
||||
" interpreted as a number (outside such contexts, it's a schemeFunc)
|
||||
|
||||
syn match schemeDelimiter !\.[ \t\[\]()";]!me=e-1
|
||||
syn match schemeDelimiter !\.$!
|
||||
" ... and a single dot is not a number but a delimiter
|
||||
|
||||
" This keeps all other stuff unhighlighted, except *stuff* and <stuff>:
|
||||
|
||||
syn match schemeOther ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*,
|
||||
syn match schemeError ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
|
||||
|
||||
syn match schemeOther "\.\.\."
|
||||
syn match schemeError !\.\.\.[^ \t\[\]()";]\+!
|
||||
" ... a special identifier
|
||||
|
||||
syn match schemeConstant ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*[ \t\[\]()";],me=e-1
|
||||
syn match schemeConstant ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*$,
|
||||
syn match schemeError ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
|
||||
|
||||
syn match schemeConstant ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1
|
||||
syn match schemeConstant ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
|
||||
syn match schemeError ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
|
||||
|
||||
" Non-quoted lists, and strings:
|
||||
|
||||
syn region schemeStruc matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALL
|
||||
syn region schemeStruc matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALL
|
||||
|
||||
syn region schemeStruc matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=ALL
|
||||
syn region schemeStruc matchgroup=Delimiter start="#\[" matchgroup=Delimiter end="\]" contains=ALL
|
||||
|
||||
" Simple literals:
|
||||
syn region schemeString start=+\%(\\\)\@<!"+ skip=+\\[\\"]+ end=+"+ contains=@Spell
|
||||
|
||||
" Comments:
|
||||
|
||||
syn match schemeComment ";.*$" contains=@Spell
|
||||
|
||||
|
||||
" Writing out the complete description of Scheme numerals without
|
||||
" using variables is a day's work for a trained secretary...
|
||||
|
||||
syn match schemeOther ![+-][ \t\[\]()";]!me=e-1
|
||||
syn match schemeOther ![+-]$!
|
||||
"
|
||||
" This is a useful lax approximation:
|
||||
syn match schemeNumber "[-#+.]\=[0-9][-#+/0-9a-f@i.boxesfdl]*"
|
||||
syn match schemeError ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*!
|
||||
|
||||
syn match schemeBoolean "#[tf]"
|
||||
syn match schemeError !#[tf][^ \t\[\]()";]\+!
|
||||
|
||||
syn match schemeCharacter "#\\"
|
||||
syn match schemeCharacter "#\\."
|
||||
syn match schemeError !#\\.[^ \t\[\]()";]\+!
|
||||
syn match schemeCharacter "#\\space"
|
||||
syn match schemeError !#\\space[^ \t\[\]()";]\+!
|
||||
syn match schemeCharacter "#\\newline"
|
||||
syn match schemeError !#\\newline[^ \t\[\]()";]\+!
|
||||
|
||||
" R6RS
|
||||
syn match schemeCharacter "#\\x[0-9a-fA-F]\+"
|
||||
|
||||
|
||||
if exists("b:is_mzscheme") || exists("is_mzscheme")
|
||||
" MzScheme extensions
|
||||
" multiline comment
|
||||
syn region schemeComment start="#|" end="|#" contains=@Spell
|
||||
|
||||
" #%xxx are the special MzScheme identifiers
|
||||
syn match schemeOther "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
|
||||
" anything limited by |'s is identifier
|
||||
syn match schemeOther "|[^|]\+|"
|
||||
|
||||
syn match schemeCharacter "#\\\%(return\|tab\)"
|
||||
|
||||
" Modules require stmt
|
||||
syn keyword schemeExtSyntax module require dynamic-require lib prefix all-except prefix-all-except rename
|
||||
" modules provide stmt
|
||||
syn keyword schemeExtSyntax provide struct all-from all-from-except all-defined all-defined-except
|
||||
" Other from MzScheme
|
||||
syn keyword schemeExtSyntax with-handlers when unless instantiate define-struct case-lambda syntax-case
|
||||
syn keyword schemeExtSyntax free-identifier=? bound-identifier=? module-identifier=? syntax-object->datum
|
||||
syn keyword schemeExtSyntax datum->syntax-object
|
||||
syn keyword schemeExtSyntax let-values let*-values letrec-values set!-values fluid-let parameterize begin0
|
||||
syn keyword schemeExtSyntax error raise opt-lambda define-values unit unit/sig define-signature
|
||||
syn keyword schemeExtSyntax invoke-unit/sig define-values/invoke-unit/sig compound-unit/sig import export
|
||||
syn keyword schemeExtSyntax link syntax quasisyntax unsyntax with-syntax
|
||||
|
||||
syn keyword schemeExtFunc format system-type current-extension-compiler current-extension-linker
|
||||
syn keyword schemeExtFunc use-standard-linker use-standard-compiler
|
||||
syn keyword schemeExtFunc find-executable-path append-object-suffix append-extension-suffix
|
||||
syn keyword schemeExtFunc current-library-collection-paths current-extension-compiler-flags make-parameter
|
||||
syn keyword schemeExtFunc current-directory build-path normalize-path current-extension-linker-flags
|
||||
syn keyword schemeExtFunc file-exists? directory-exists? delete-directory/files delete-directory delete-file
|
||||
syn keyword schemeExtFunc system compile-file system-library-subpath getenv putenv current-standard-link-libraries
|
||||
syn keyword schemeExtFunc remove* file-size find-files fold-files directory-list shell-execute split-path
|
||||
syn keyword schemeExtFunc current-error-port process/ports process printf fprintf open-input-string open-output-string
|
||||
syn keyword schemeExtFunc get-output-string
|
||||
" exceptions
|
||||
syn keyword schemeExtFunc exn exn:application:arity exn:application:continuation exn:application:fprintf:mismatch
|
||||
syn keyword schemeExtFunc exn:application:mismatch exn:application:type exn:application:mismatch exn:break exn:i/o:filesystem exn:i/o:port
|
||||
syn keyword schemeExtFunc exn:i/o:port:closed exn:i/o:tcp exn:i/o:udp exn:misc exn:misc:application exn:misc:unsupported exn:module exn:read
|
||||
syn keyword schemeExtFunc exn:read:non-char exn:special-comment exn:syntax exn:thread exn:user exn:variable exn:application:mismatch
|
||||
syn keyword schemeExtFunc exn? exn:application:arity? exn:application:continuation? exn:application:fprintf:mismatch? exn:application:mismatch?
|
||||
syn keyword schemeExtFunc exn:application:type? exn:application:mismatch? exn:break? exn:i/o:filesystem? exn:i/o:port? exn:i/o:port:closed?
|
||||
syn keyword schemeExtFunc exn:i/o:tcp? exn:i/o:udp? exn:misc? exn:misc:application? exn:misc:unsupported? exn:module? exn:read? exn:read:non-char?
|
||||
syn keyword schemeExtFunc exn:special-comment? exn:syntax? exn:thread? exn:user? exn:variable? exn:application:mismatch?
|
||||
" Command-line parsing
|
||||
syn keyword schemeExtFunc command-line current-command-line-arguments once-any help-labels multi once-each
|
||||
|
||||
" syntax quoting, unquoting and quasiquotation
|
||||
syn region schemeUnquote matchgroup=Delimiter start="#," end=![ \t\[\]()";]!me=e-1 contains=ALL
|
||||
syn region schemeUnquote matchgroup=Delimiter start="#,@" end=![ \t\[\]()";]!me=e-1 contains=ALL
|
||||
syn region schemeUnquote matchgroup=Delimiter start="#,(" end=")" contains=ALL
|
||||
syn region schemeUnquote matchgroup=Delimiter start="#,@(" end=")" contains=ALL
|
||||
syn region schemeUnquote matchgroup=Delimiter start="#,\[" end="\]" contains=ALL
|
||||
syn region schemeUnquote matchgroup=Delimiter start="#,@\[" end="\]" contains=ALL
|
||||
syn region schemeQuoted matchgroup=Delimiter start="#['`]" end=![ \t()\[\]";]!me=e-1 contains=ALL
|
||||
syn region schemeQuoted matchgroup=Delimiter start="#['`](" matchgroup=Delimiter end=")" contains=ALL
|
||||
|
||||
" Identifiers are very liberal in MzScheme/Racket
|
||||
syn match schemeOther ![^()[\]{}",'`;#|\\ ]\+!
|
||||
|
||||
" Language setting
|
||||
syn match schemeLang "#lang [-+_/A-Za-z0-9]\+\>"
|
||||
|
||||
" Various number forms
|
||||
syn match schemeNumber "[-+]\=[0-9]\+\(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\>"
|
||||
syn match schemeNumber "[-+]\=\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>"
|
||||
syn match schemeNumber "[-+]\=[0-9]\+/[0-9]\+\>"
|
||||
syn match schemeNumber "\([-+]\=\([0-9]\+\(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\|\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\|[0-9]\+/[0-9]\+\)\)\=[-+]\([0-9]\+\(\.[0-9]*\)\=\(e[-+]\=[0-9]\+\)\=\|\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\|[0-9]\+/[0-9]\+\)\=i\>"
|
||||
if exists('g:is_chicken') || exists('b:is_chicken')
|
||||
syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\|import-syntax\|use\|require-extension\)\(-for-syntax\)\?\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment
|
||||
else
|
||||
syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\)\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment
|
||||
endif
|
||||
|
||||
syn match schemeImportKeyword "\(([ \t\n]*\)\@<=\(except\|only\|prefix\|rename\|srfi\)\>"
|
||||
syn region schemeImportForm matchgroup=schemeParentheses start="(" end=")" contained contains=schemeIdentifier,schemeComment,schemeDatumComment,@schemeImportCluster
|
||||
syn cluster schemeImportCluster contains=schemeImportForm,schemeImportKeyword
|
||||
|
||||
if exists("b:is_chicken") || exists("is_chicken")
|
||||
" multiline comment
|
||||
syntax region schemeMultilineComment start=/#|/ end=/|#/ contains=@Spell,schemeMultilineComment
|
||||
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*/ end=/[ \t\n()\[\]";]/me=e-1
|
||||
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*"/ skip=/\\[\\"]/ end=/"/
|
||||
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*|/ skip=/\\[\\|]/ end=/|/
|
||||
syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*\(#\([usf]\d\+\)\?\)\?(/ end=/)/ contains=schemeDatumCommentForm
|
||||
syn region schemeDatumCommentForm start="(" end=")" contained contains=schemeDatumCommentForm
|
||||
|
||||
syn match schemeOther "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
|
||||
syn match schemeExtSyntax "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
|
||||
syn cluster schemeSyntaxCluster contains=schemeFunction,schemeKeyword,schemeSyntax,schemeExtraSyntax,schemeLibrarySyntax,schemeSyntaxSyntax
|
||||
|
||||
syn keyword schemeExtSyntax unit uses declare hide foreign-declare foreign-parse foreign-parse/spec
|
||||
syn keyword schemeExtSyntax foreign-lambda foreign-lambda* define-external define-macro load-library
|
||||
syn keyword schemeExtSyntax let-values let*-values letrec-values ->string require-extension
|
||||
syn keyword schemeExtSyntax let-optionals let-optionals* define-foreign-variable define-record
|
||||
syn keyword schemeExtSyntax pointer tag-pointer tagged-pointer? define-foreign-type
|
||||
syn keyword schemeExtSyntax require require-for-syntax cond-expand and-let* receive argc+argv
|
||||
syn keyword schemeExtSyntax fixnum? fx= fx> fx< fx>= fx<= fxmin fxmax
|
||||
syn keyword schemeExtFunc ##core#inline ##sys#error ##sys#update-errno
|
||||
syn keyword schemeLibrarySyntax define-library
|
||||
syn keyword schemeLibrarySyntax export
|
||||
syn keyword schemeLibrarySyntax include
|
||||
syn keyword schemeLibrarySyntax include-ci
|
||||
syn keyword schemeLibrarySyntax include-library-declarations
|
||||
syn keyword schemeLibrarySyntax library
|
||||
syn keyword schemeLibrarySyntax cond-expand
|
||||
|
||||
" here-string
|
||||
syn region schemeString start=+#<<\s*\z(.*\)+ end=+^\z1$+ contains=@Spell
|
||||
syn keyword schemeSyntaxSyntax define-syntax
|
||||
syn keyword schemeSyntaxSyntax let-syntax
|
||||
syn keyword schemeSyntaxSyntax letrec-syntax
|
||||
syn keyword schemeSyntaxSyntax syntax-rules
|
||||
|
||||
if filereadable(expand("<sfile>:p:h")."/cpp.vim")
|
||||
unlet! b:current_syntax
|
||||
syn include @ChickenC <sfile>:p:h/cpp.vim
|
||||
syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-declare "+ end=+")\@=+ contains=@ChickenC
|
||||
syn region ChickenC matchgroup=schemeComment start=+foreign-declare\s*#<<\z(.*\)$+hs=s+15 end=+^\z1$+ contains=@ChickenC
|
||||
syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-parse "+ end=+")\@=+ contains=@ChickenC
|
||||
syn region ChickenC matchgroup=schemeComment start=+foreign-parse\s*#<<\z(.*\)$+hs=s+13 end=+^\z1$+ contains=@ChickenC
|
||||
syn region ChickenC matchgroup=schemeOther start=+(\@<=foreign-parse/spec "+ end=+")\@=+ contains=@ChickenC
|
||||
syn region ChickenC matchgroup=schemeComment start=+foreign-parse/spec\s*#<<\z(.*\)$+hs=s+18 end=+^\z1$+ contains=@ChickenC
|
||||
syn region ChickenC matchgroup=schemeComment start=+#>+ end=+<#+ contains=@ChickenC
|
||||
syn region ChickenC matchgroup=schemeComment start=+#>?+ end=+<#+ contains=@ChickenC
|
||||
syn region ChickenC matchgroup=schemeComment start=+#>!+ end=+<#+ contains=@ChickenC
|
||||
syn region ChickenC matchgroup=schemeComment start=+#>\$+ end=+<#+ contains=@ChickenC
|
||||
syn region ChickenC matchgroup=schemeComment start=+#>%+ end=+<#+ contains=@ChickenC
|
||||
endif
|
||||
syn keyword schemeSyntax =>
|
||||
syn keyword schemeSyntax and
|
||||
syn keyword schemeSyntax begin
|
||||
syn keyword schemeSyntax case
|
||||
syn keyword schemeSyntax case-lambda
|
||||
syn keyword schemeSyntax cond
|
||||
syn keyword schemeSyntax define
|
||||
syn keyword schemeSyntax define-record-type
|
||||
syn keyword schemeSyntax define-values
|
||||
syn keyword schemeSyntax delay
|
||||
syn keyword schemeSyntax delay-force
|
||||
syn keyword schemeSyntax do
|
||||
syn keyword schemeSyntax else
|
||||
syn keyword schemeSyntax guard
|
||||
syn keyword schemeSyntax if
|
||||
syn keyword schemeSyntax lambda
|
||||
syn keyword schemeSyntax let
|
||||
syn keyword schemeSyntax let*
|
||||
syn keyword schemeSyntax let*-values
|
||||
syn keyword schemeSyntax let-values
|
||||
syn keyword schemeSyntax letrec
|
||||
syn keyword schemeSyntax letrec*
|
||||
syn keyword schemeSyntax or
|
||||
syn keyword schemeSyntax parameterize
|
||||
syn keyword schemeSyntax quasiquote
|
||||
syn keyword schemeSyntax quote
|
||||
syn keyword schemeSyntax set!
|
||||
syn keyword schemeSyntax unless
|
||||
syn keyword schemeSyntax unquote
|
||||
syn keyword schemeSyntax unquote-splicing
|
||||
syn keyword schemeSyntax when
|
||||
|
||||
" suggested by Alex Queiroz
|
||||
syn match schemeExtSyntax "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
|
||||
syn region schemeString start=+#<#\s*\z(.*\)+ end=+^\z1$+ contains=@Spell
|
||||
syn keyword schemeFunction *
|
||||
syn keyword schemeFunction +
|
||||
syn keyword schemeFunction -
|
||||
syn keyword schemeFunction /
|
||||
syn keyword schemeFunction <
|
||||
syn keyword schemeFunction <=
|
||||
syn keyword schemeFunction =
|
||||
syn keyword schemeFunction >
|
||||
syn keyword schemeFunction >=
|
||||
syn keyword schemeFunction abs
|
||||
syn keyword schemeFunction acos
|
||||
syn keyword schemeFunction acos
|
||||
syn keyword schemeFunction angle
|
||||
syn keyword schemeFunction append
|
||||
syn keyword schemeFunction apply
|
||||
syn keyword schemeFunction asin
|
||||
syn keyword schemeFunction assoc
|
||||
syn keyword schemeFunction assq
|
||||
syn keyword schemeFunction assv
|
||||
syn keyword schemeFunction atan
|
||||
syn keyword schemeFunction binary-port?
|
||||
syn keyword schemeFunction boolean=?
|
||||
syn keyword schemeFunction boolean?
|
||||
syn keyword schemeFunction bytevector
|
||||
syn keyword schemeFunction bytevector-append
|
||||
syn keyword schemeFunction bytevector-append
|
||||
syn keyword schemeFunction bytevector-copy
|
||||
syn keyword schemeFunction bytevector-copy!
|
||||
syn keyword schemeFunction bytevector-length
|
||||
syn keyword schemeFunction bytevector-u8-ref
|
||||
syn keyword schemeFunction bytevector-u8-set!
|
||||
syn keyword schemeFunction bytevector?
|
||||
syn keyword schemeFunction caaaar
|
||||
syn keyword schemeFunction caaadr
|
||||
syn keyword schemeFunction caaar
|
||||
syn keyword schemeFunction caadar
|
||||
syn keyword schemeFunction caaddr
|
||||
syn keyword schemeFunction caadr
|
||||
syn keyword schemeFunction caar
|
||||
syn keyword schemeFunction cadaar
|
||||
syn keyword schemeFunction cadadr
|
||||
syn keyword schemeFunction cadar
|
||||
syn keyword schemeFunction caddar
|
||||
syn keyword schemeFunction cadddr
|
||||
syn keyword schemeFunction caddr
|
||||
syn keyword schemeFunction cadr
|
||||
syn keyword schemeFunction call-with-current-continuation
|
||||
syn keyword schemeFunction call-with-input-file
|
||||
syn keyword schemeFunction call-with-output-file
|
||||
syn keyword schemeFunction call-with-port
|
||||
syn keyword schemeFunction call-with-values
|
||||
syn keyword schemeFunction call/cc
|
||||
syn keyword schemeFunction car
|
||||
syn keyword schemeFunction cdaaar
|
||||
syn keyword schemeFunction cdaadr
|
||||
syn keyword schemeFunction cdaar
|
||||
syn keyword schemeFunction cdadar
|
||||
syn keyword schemeFunction cdaddr
|
||||
syn keyword schemeFunction cdadr
|
||||
syn keyword schemeFunction cdar
|
||||
syn keyword schemeFunction cddaar
|
||||
syn keyword schemeFunction cddadr
|
||||
syn keyword schemeFunction cddar
|
||||
syn keyword schemeFunction cdddar
|
||||
syn keyword schemeFunction cddddr
|
||||
syn keyword schemeFunction cdddr
|
||||
syn keyword schemeFunction cddr
|
||||
syn keyword schemeFunction cdr
|
||||
syn keyword schemeFunction ceiling
|
||||
syn keyword schemeFunction char->integer
|
||||
syn keyword schemeFunction char-alphabetic?
|
||||
syn keyword schemeFunction char-ci<=?
|
||||
syn keyword schemeFunction char-ci<?
|
||||
syn keyword schemeFunction char-ci=?
|
||||
syn keyword schemeFunction char-ci>=?
|
||||
syn keyword schemeFunction char-ci>?
|
||||
syn keyword schemeFunction char-downcase
|
||||
syn keyword schemeFunction char-foldcase
|
||||
syn keyword schemeFunction char-lower-case?
|
||||
syn keyword schemeFunction char-numeric?
|
||||
syn keyword schemeFunction char-ready?
|
||||
syn keyword schemeFunction char-upcase
|
||||
syn keyword schemeFunction char-upper-case?
|
||||
syn keyword schemeFunction char-whitespace?
|
||||
syn keyword schemeFunction char<=?
|
||||
syn keyword schemeFunction char<?
|
||||
syn keyword schemeFunction char=?
|
||||
syn keyword schemeFunction char>=?
|
||||
syn keyword schemeFunction char>?
|
||||
syn keyword schemeFunction char?
|
||||
syn keyword schemeFunction close-input-port
|
||||
syn keyword schemeFunction close-output-port
|
||||
syn keyword schemeFunction close-port
|
||||
syn keyword schemeFunction command-line
|
||||
syn keyword schemeFunction complex?
|
||||
syn keyword schemeFunction cons
|
||||
syn keyword schemeFunction cos
|
||||
syn keyword schemeFunction current-error-port
|
||||
syn keyword schemeFunction current-input-port
|
||||
syn keyword schemeFunction current-jiffy
|
||||
syn keyword schemeFunction current-output-port
|
||||
syn keyword schemeFunction current-second
|
||||
syn keyword schemeFunction delete-file
|
||||
syn keyword schemeFunction denominator
|
||||
syn keyword schemeFunction digit-value
|
||||
syn keyword schemeFunction display
|
||||
syn keyword schemeFunction dynamic-wind
|
||||
syn keyword schemeFunction emergency-exit
|
||||
syn keyword schemeFunction environment
|
||||
syn keyword schemeFunction eof-object
|
||||
syn keyword schemeFunction eof-object?
|
||||
syn keyword schemeFunction eq?
|
||||
syn keyword schemeFunction equal?
|
||||
syn keyword schemeFunction eqv?
|
||||
syn keyword schemeFunction error
|
||||
syn keyword schemeFunction error-object-irritants
|
||||
syn keyword schemeFunction error-object-message
|
||||
syn keyword schemeFunction error-object?
|
||||
syn keyword schemeFunction eval
|
||||
syn keyword schemeFunction even?
|
||||
syn keyword schemeFunction exact
|
||||
syn keyword schemeFunction exact->inexact
|
||||
syn keyword schemeFunction exact-integer-sqrt
|
||||
syn keyword schemeFunction exact-integer?
|
||||
syn keyword schemeFunction exact?
|
||||
syn keyword schemeFunction exit
|
||||
syn keyword schemeFunction exp
|
||||
syn keyword schemeFunction expt
|
||||
syn keyword schemeFunction features
|
||||
syn keyword schemeFunction file-error?
|
||||
syn keyword schemeFunction file-exists?
|
||||
syn keyword schemeFunction finite?
|
||||
syn keyword schemeFunction floor
|
||||
syn keyword schemeFunction floor-quotient
|
||||
syn keyword schemeFunction floor-remainder
|
||||
syn keyword schemeFunction floor/
|
||||
syn keyword schemeFunction flush-output-port
|
||||
syn keyword schemeFunction for-each
|
||||
syn keyword schemeFunction force
|
||||
syn keyword schemeFunction gcd
|
||||
syn keyword schemeFunction get-environment-variable
|
||||
syn keyword schemeFunction get-environment-variables
|
||||
syn keyword schemeFunction get-output-bytevector
|
||||
syn keyword schemeFunction get-output-string
|
||||
syn keyword schemeFunction imag-part
|
||||
syn keyword schemeFunction inexact
|
||||
syn keyword schemeFunction inexact->exact
|
||||
syn keyword schemeFunction inexact?
|
||||
syn keyword schemeFunction infinite?
|
||||
syn keyword schemeFunction input-port-open?
|
||||
syn keyword schemeFunction input-port?
|
||||
syn keyword schemeFunction integer->char
|
||||
syn keyword schemeFunction integer?
|
||||
syn keyword schemeFunction interaction-environment
|
||||
syn keyword schemeFunction jiffies-per-second
|
||||
syn keyword schemeFunction lcm
|
||||
syn keyword schemeFunction length
|
||||
syn keyword schemeFunction list
|
||||
syn keyword schemeFunction list->string
|
||||
syn keyword schemeFunction list->vector
|
||||
syn keyword schemeFunction list-copy
|
||||
syn keyword schemeFunction list-ref
|
||||
syn keyword schemeFunction list-set!
|
||||
syn keyword schemeFunction list-tail
|
||||
syn keyword schemeFunction list?
|
||||
syn keyword schemeFunction load
|
||||
syn keyword schemeFunction log
|
||||
syn keyword schemeFunction magnitude
|
||||
syn keyword schemeFunction make-bytevector
|
||||
syn keyword schemeFunction make-list
|
||||
syn keyword schemeFunction make-parameter
|
||||
syn keyword schemeFunction make-polar
|
||||
syn keyword schemeFunction make-promise
|
||||
syn keyword schemeFunction make-rectangular
|
||||
syn keyword schemeFunction make-string
|
||||
syn keyword schemeFunction make-vector
|
||||
syn keyword schemeFunction map
|
||||
syn keyword schemeFunction max
|
||||
syn keyword schemeFunction member
|
||||
syn keyword schemeFunction memq
|
||||
syn keyword schemeFunction memv
|
||||
syn keyword schemeFunction min
|
||||
syn keyword schemeFunction modulo
|
||||
syn keyword schemeFunction nan?
|
||||
syn keyword schemeFunction negative?
|
||||
syn keyword schemeFunction newline
|
||||
syn keyword schemeFunction not
|
||||
syn keyword schemeFunction null-environment
|
||||
syn keyword schemeFunction null?
|
||||
syn keyword schemeFunction number->string
|
||||
syn keyword schemeFunction number?
|
||||
syn keyword schemeFunction numerator
|
||||
syn keyword schemeFunction odd?
|
||||
syn keyword schemeFunction open-binary-input-file
|
||||
syn keyword schemeFunction open-binary-output-file
|
||||
syn keyword schemeFunction open-input-bytevector
|
||||
syn keyword schemeFunction open-input-file
|
||||
syn keyword schemeFunction open-input-string
|
||||
syn keyword schemeFunction open-output-bytevector
|
||||
syn keyword schemeFunction open-output-file
|
||||
syn keyword schemeFunction open-output-string
|
||||
syn keyword schemeFunction output-port-open?
|
||||
syn keyword schemeFunction output-port?
|
||||
syn keyword schemeFunction pair?
|
||||
syn keyword schemeFunction peek-char
|
||||
syn keyword schemeFunction peek-u8
|
||||
syn keyword schemeFunction port?
|
||||
syn keyword schemeFunction positive?
|
||||
syn keyword schemeFunction procedure?
|
||||
syn keyword schemeFunction promise?
|
||||
syn keyword schemeFunction quotient
|
||||
syn keyword schemeFunction raise
|
||||
syn keyword schemeFunction raise-continuable
|
||||
syn keyword schemeFunction rational?
|
||||
syn keyword schemeFunction rationalize
|
||||
syn keyword schemeFunction read
|
||||
syn keyword schemeFunction read-bytevector
|
||||
syn keyword schemeFunction read-bytevector!
|
||||
syn keyword schemeFunction read-char
|
||||
syn keyword schemeFunction read-error?
|
||||
syn keyword schemeFunction read-line
|
||||
syn keyword schemeFunction read-string
|
||||
syn keyword schemeFunction read-u8
|
||||
syn keyword schemeFunction real-part
|
||||
syn keyword schemeFunction real?
|
||||
syn keyword schemeFunction remainder
|
||||
syn keyword schemeFunction reverse
|
||||
syn keyword schemeFunction round
|
||||
syn keyword schemeFunction scheme-report-environment
|
||||
syn keyword schemeFunction set-car!
|
||||
syn keyword schemeFunction set-cdr!
|
||||
syn keyword schemeFunction sin
|
||||
syn keyword schemeFunction sqrt
|
||||
syn keyword schemeFunction square
|
||||
syn keyword schemeFunction string
|
||||
syn keyword schemeFunction string->list
|
||||
syn keyword schemeFunction string->number
|
||||
syn keyword schemeFunction string->symbol
|
||||
syn keyword schemeFunction string->utf8
|
||||
syn keyword schemeFunction string->vector
|
||||
syn keyword schemeFunction string-append
|
||||
syn keyword schemeFunction string-ci<=?
|
||||
syn keyword schemeFunction string-ci<?
|
||||
syn keyword schemeFunction string-ci=?
|
||||
syn keyword schemeFunction string-ci>=?
|
||||
syn keyword schemeFunction string-ci>?
|
||||
syn keyword schemeFunction string-copy
|
||||
syn keyword schemeFunction string-copy!
|
||||
syn keyword schemeFunction string-downcase
|
||||
syn keyword schemeFunction string-fill!
|
||||
syn keyword schemeFunction string-foldcase
|
||||
syn keyword schemeFunction string-for-each
|
||||
syn keyword schemeFunction string-length
|
||||
syn keyword schemeFunction string-map
|
||||
syn keyword schemeFunction string-ref
|
||||
syn keyword schemeFunction string-set!
|
||||
syn keyword schemeFunction string-upcase
|
||||
syn keyword schemeFunction string<=?
|
||||
syn keyword schemeFunction string<?
|
||||
syn keyword schemeFunction string=?
|
||||
syn keyword schemeFunction string>=?
|
||||
syn keyword schemeFunction string>?
|
||||
syn keyword schemeFunction string?
|
||||
syn keyword schemeFunction substring
|
||||
syn keyword schemeFunction symbol->string
|
||||
syn keyword schemeFunction symbol=?
|
||||
syn keyword schemeFunction symbol?
|
||||
syn keyword schemeFunction syntax-error
|
||||
syn keyword schemeFunction tan
|
||||
syn keyword schemeFunction textual-port?
|
||||
syn keyword schemeFunction transcript-off
|
||||
syn keyword schemeFunction transcript-on
|
||||
syn keyword schemeFunction truncate
|
||||
syn keyword schemeFunction truncate-quotient
|
||||
syn keyword schemeFunction truncate-remainder
|
||||
syn keyword schemeFunction truncate/
|
||||
syn keyword schemeFunction u8-ready?
|
||||
syn keyword schemeFunction utf8->string
|
||||
syn keyword schemeFunction values
|
||||
syn keyword schemeFunction vector
|
||||
syn keyword schemeFunction vector->list
|
||||
syn keyword schemeFunction vector->string
|
||||
syn keyword schemeFunction vector-append
|
||||
syn keyword schemeFunction vector-copy
|
||||
syn keyword schemeFunction vector-copy!
|
||||
syn keyword schemeFunction vector-fill!
|
||||
syn keyword schemeFunction vector-for-each
|
||||
syn keyword schemeFunction vector-length
|
||||
syn keyword schemeFunction vector-map
|
||||
syn keyword schemeFunction vector-ref
|
||||
syn keyword schemeFunction vector-set!
|
||||
syn keyword schemeFunction vector?
|
||||
syn keyword schemeFunction with-exception-handler
|
||||
syn keyword schemeFunction with-input-from-file
|
||||
syn keyword schemeFunction with-output-to-file
|
||||
syn keyword schemeFunction write
|
||||
syn keyword schemeFunction write-bytevector
|
||||
syn keyword schemeFunction write-char
|
||||
syn keyword schemeFunction write-shared
|
||||
syn keyword schemeFunction write-simple
|
||||
syn keyword schemeFunction write-string
|
||||
syn keyword schemeFunction write-u8
|
||||
syn keyword schemeFunction zero?
|
||||
|
||||
hi def link schemeBoolean Boolean
|
||||
hi def link schemeCharacter Character
|
||||
hi def link schemeComment Comment
|
||||
hi def link schemeConstant Constant
|
||||
hi def link schemeData Delimiter
|
||||
hi def link schemeDatumComment Comment
|
||||
hi def link schemeDatumCommentForm Comment
|
||||
hi def link schemeDelimiter Delimiter
|
||||
hi def link schemeError Error
|
||||
hi def link schemeExtraSyntax Underlined
|
||||
hi def link schemeFunction Function
|
||||
hi def link schemeIdentifier Normal
|
||||
hi def link schemeImport PreProc
|
||||
hi def link schemeImportKeyword PreProc
|
||||
hi def link schemeKeyword Type
|
||||
hi def link schemeLibrarySyntax PreProc
|
||||
hi def link schemeMultilineComment Comment
|
||||
hi def link schemeNumber Number
|
||||
hi def link schemeParentheses Normal
|
||||
hi def link schemeQuasiquote Delimiter
|
||||
hi def link schemeQuote Delimiter
|
||||
hi def link schemeSpecialSyntax Special
|
||||
hi def link schemeString String
|
||||
hi def link schemeSymbol Normal
|
||||
hi def link schemeSyntax Statement
|
||||
hi def link schemeSyntaxSyntax PreProc
|
||||
hi def link schemeTypeSyntax Type
|
||||
|
||||
let b:did_scheme_syntax = 1
|
||||
|
||||
if exists('b:is_chicken') || exists('g:is_chicken')
|
||||
exe 'ru! syntax/chicken.vim'
|
||||
endif
|
||||
|
||||
" Synchronization and the wrapping up...
|
||||
|
||||
syn sync match matchPlace grouphere NONE "^[^ \t]"
|
||||
" ... i.e. synchronize on a line that starts at the left margin
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
hi def link schemeSyntax Statement
|
||||
hi def link schemeFunc Function
|
||||
|
||||
hi def link schemeString String
|
||||
hi def link schemeCharacter Character
|
||||
hi def link schemeNumber Number
|
||||
hi def link schemeBoolean Boolean
|
||||
|
||||
hi def link schemeDelimiter Delimiter
|
||||
hi def link schemeConstant Constant
|
||||
|
||||
hi def link schemeComment Comment
|
||||
hi def link schemeMultilineComment Comment
|
||||
hi def link schemeError Error
|
||||
|
||||
hi def link schemeExtSyntax Type
|
||||
hi def link schemeExtFunc PreProc
|
||||
|
||||
hi def link schemeLang PreProc
|
||||
|
||||
|
||||
let b:current_syntax = "scheme"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
unlet b:did_scheme_syntax
|
||||
let b:current_syntax = 'scheme'
|
||||
let &cpo = s:cpo
|
||||
unlet s:cpo
|
||||
|
@ -2,15 +2,16 @@
|
||||
" Language: SNOBOL4
|
||||
" Maintainer: Rafal Sulejman <rms@poczta.onet.pl>
|
||||
" Site: http://rms.republika.pl/vim/syntax/snobol4.vim
|
||||
" Last change: 2006 may 10
|
||||
" Last change: : Thu, 25 Jan 2018 14:21:24 +0100
|
||||
" Changes:
|
||||
" - system variables updated for SNOBOL4 2.0+
|
||||
" - strict snobol4 mode (set snobol4_strict_mode to activate)
|
||||
" - incorrect HL of dots in strings corrected
|
||||
" - incorrect HL of dot-variables in parens corrected
|
||||
" - one character labels weren't displayed correctly.
|
||||
" - nonexistent Snobol4 keywords displayed as errors.
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
@ -59,7 +60,7 @@ syn match snobol4Constant /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1
|
||||
syn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError
|
||||
syn match snobol4Number "\<\d*\(\.\d\d*\)*\>"
|
||||
syn match snobol4BogusSysVar "&\w\{1,}"
|
||||
syn match snobol4SysVar "&\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)"
|
||||
syn match snobol4SysVar "&\<\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|digits\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)\>"
|
||||
syn match snobol4ExtSysVar "&\(gtrace\|line\|file\|lastline\|lastfile\)"
|
||||
syn match snobol4Label "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*"
|
||||
syn match snobol4Comment "\(^\|;\)\([\*\|!;#].*$\)"
|
||||
@ -100,11 +101,11 @@ hi def link snobol4ErrInBracket snobol4Error
|
||||
hi def link snobol4SysVar Keyword
|
||||
hi def link snobol4BogusSysVar snobol4Error
|
||||
if exists("snobol4_strict_mode")
|
||||
hi def link snobol4ExtSysVar WarningMsg
|
||||
hi def link snobol4ExtKeyword WarningMsg
|
||||
hi def link snobol4ExtSysVar WarningMsg
|
||||
hi def link snobol4ExtKeyword WarningMsg
|
||||
else
|
||||
hi def link snobol4ExtSysVar snobol4SysVar
|
||||
hi def link snobol4ExtKeyword snobol4Keyword
|
||||
hi def link snobol4ExtSysVar snobol4SysVar
|
||||
hi def link snobol4ExtKeyword snobol4Keyword
|
||||
endif
|
||||
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: TeX
|
||||
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
|
||||
" Last Change: Oct 12, 2017
|
||||
" Version: 105
|
||||
" Last Change: Dec 11, 2017
|
||||
" Version: 107
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
|
||||
"
|
||||
" Notes: {{{1
|
||||
@ -396,8 +396,8 @@ endif
|
||||
|
||||
" Bad Math (mismatched): {{{1
|
||||
if !exists("g:tex_no_math") && !s:tex_no_error
|
||||
syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|subequations\|smallmatrix\|xxalignat\)\s*}"
|
||||
syn match texBadMath "\\end\s*{\s*\(align\|alignat\|displaymath\|displaymath\|eqnarray\|equation\|flalign\|gather\|math\|multline\|xalignat\)\*\=\s*}"
|
||||
syn match texBadMath "\\end\s*{\s*\(array\|bBpvV]matrix\|split\|smallmatrix\)\s*}"
|
||||
syn match texBadMath "\\end\s*{\s*\(displaymath\|equation\|eqnarray\|math\)\*\=\s*}"
|
||||
syn match texBadMath "\\[\])]"
|
||||
endif
|
||||
|
||||
@ -436,17 +436,10 @@ if !exists("g:tex_no_math")
|
||||
endfun
|
||||
|
||||
" Standard Math Zones: {{{2
|
||||
call TexNewMathZone("A","align",1)
|
||||
call TexNewMathZone("B","alignat",1)
|
||||
call TexNewMathZone("C","displaymath",1)
|
||||
call TexNewMathZone("D","eqnarray",1)
|
||||
call TexNewMathZone("E","equation",1)
|
||||
call TexNewMathZone("F","flalign",1)
|
||||
call TexNewMathZone("G","gather",1)
|
||||
call TexNewMathZone("H","math",1)
|
||||
call TexNewMathZone("I","multline",1)
|
||||
call TexNewMathZone("J","xalignat",1)
|
||||
call TexNewMathZone("K","xxalignat",0)
|
||||
call TexNewMathZone("A","displaymath",1)
|
||||
call TexNewMathZone("B","eqnarray",1)
|
||||
call TexNewMathZone("C","equation",1)
|
||||
call TexNewMathZone("D","math",1)
|
||||
|
||||
" Inline Math Zones: {{{2
|
||||
if s:tex_fast =~# 'M'
|
||||
|
@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 8.0 script
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: November 03, 2017
|
||||
" Version: 8.0-04
|
||||
" Last Change: Dec 15, 2017
|
||||
" Version: 8.0-07
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
@ -199,7 +199,7 @@ syn keyword vimFTOption contained detect indent off on plugin
|
||||
|
||||
" Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
|
||||
" ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
|
||||
syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
|
||||
syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue,vimSetEqual,vimOption
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a'
|
||||
syn region vimAugroup fold matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList
|
||||
else
|
||||
@ -215,7 +215,8 @@ syn keyword vimAugroupKey contained aug[roup]
|
||||
" =========
|
||||
syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
|
||||
syn match vimOper "\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\(\<is\>\|\<isnot\>\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "||\|&&\|[-+.]" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=@vimOperGroup
|
||||
syn region vimOperParen matchgroup=vimSep start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
|
||||
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror")
|
||||
@ -559,7 +560,7 @@ syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster
|
||||
|
||||
syn match vimHiGroup contained "\i\+"
|
||||
syn case ignore
|
||||
syn keyword vimHiAttrib contained none bold inverse italic reverse standout underline undercurl
|
||||
syn keyword vimHiAttrib contained none bold inverse italic nocombine reverse standout strikethrough underline undercurl
|
||||
syn keyword vimFgBgAttrib contained none bg background fg foreground
|
||||
syn case match
|
||||
syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib
|
||||
|
@ -2,7 +2,7 @@
|
||||
" Language: Zsh shell script
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2017-07-11
|
||||
" Latest Revision: 2017-11-22
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/chrisbra/vim-zsh
|
||||
|
||||
@ -324,9 +324,9 @@ syn match zshOption /
|
||||
\ \%(\%(\<no_\?\)\?vi\>\)\|
|
||||
\ \%(\%(\<no_\?\)\?warncreateglobal\>\)\|\%(\%(no_\?\)\?warn_create_global\>\)\|
|
||||
\ \%(\%(\<no_\?\)\?xtrace\>\)\|
|
||||
\ \%(\%(\<no_\?\)\?zle\>\)/ nextgroup=zshOption skipwhite contained
|
||||
\ \%(\%(\<no_\?\)\?zle\>\)/ nextgroup=zshOption,zshComment skipwhite contained
|
||||
|
||||
syn keyword zshTypes float integer local typeset declare private
|
||||
syn keyword zshTypes float integer local typeset declare private readonly
|
||||
|
||||
" XXX: this may be too much
|
||||
" syn match zshSwitches '\s\zs--\=[a-zA-Z0-9-]\+'
|
||||
|
@ -18,7 +18,7 @@
|
||||
use. That means that you need to execute the commands to learn them
|
||||
properly. If you only read the text, you will forget the commands!
|
||||
|
||||
Now, make sure that your Shift-Lock key is NOT depressed and press
|
||||
Now, make sure that your Caps-Lock key is NOT depressed and press
|
||||
the j key enough times to move the cursor so that Lesson 1.1
|
||||
completely fills the screen.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -17,7 +17,7 @@
|
||||
To znamen<EFBFBD>, <EFBFBD>e je pot<EFBFBD>eba si p<EFBFBD><EFBFBD>kazy vyzkou<EFBFBD>et pro jejich spr<EFBFBD>vn<EFBFBD>
|
||||
nau<EFBFBD>en<EFBFBD>. Pokud si jen <EFBFBD>te<EFBFBD> text, p<EFBFBD><EFBFBD>kazy zapomene<EFBFBD>!
|
||||
|
||||
Nyn<EFBFBD> se p<EFBFBD>esv<EFBFBD>d<EFBFBD>te, <EFBFBD>e Shift-Lock NEN<EFBFBD> stla<EFBFBD>en<EFBFBD> a n<EFBFBD>kolikr<EFBFBD>t stiskn<EFBFBD>te
|
||||
Nyn<EFBFBD> se p<EFBFBD>esv<EFBFBD>d<EFBFBD>te, <EFBFBD>e Caps-Lock NEN<EFBFBD> stla<EFBFBD>en<EFBFBD> a n<EFBFBD>kolikr<EFBFBD>t stiskn<EFBFBD>te
|
||||
kl<EFBFBD>vesu j aby se kurzor posunul natolik, <EFBFBD>e lekce 1.1 zapln<EFBFBD> celou
|
||||
obrazovku.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -17,7 +17,7 @@
|
||||
To znamen<65>, <20>e je pot<6F>eba si p<><70>kazy vyzkou<6F>et pro jejich spr<70>vn<76>
|
||||
nau<61>en<65>. Pokud si jen <20>te<74> text, p<><70>kazy zapomene<6E>!
|
||||
|
||||
Nyn<79> se p<>esv<73>d<EFBFBD>te, <20>e Shift-Lock NEN<45> stla<6C>en<65> a n<>kolikr<6B>t stiskn<6B>te
|
||||
Nyn<79> se p<>esv<73>d<EFBFBD>te, <20>e Caps-Lock NEN<45> stla<6C>en<65> a n<>kolikr<6B>t stiskn<6B>te
|
||||
kl<6B>vesu j aby se kurzor posunul natolik, <20>e lekce 1.1 zapln<6C> celou
|
||||
obrazovku.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -17,7 +17,7 @@
|
||||
To znamená, že je potřeba si příkazy vyzkoušet pro jejich správné
|
||||
naučení. Pokud si jen čteš text, příkazy zapomeneš!
|
||||
|
||||
Nyní se přesvědčte, že Shift-Lock NENÍ stlačený a několikrát stiskněte
|
||||
Nyní se přesvědčte, že Caps-Lock NENÍ stlačený a několikrát stiskněte
|
||||
klávesu j aby se kurzor posunul natolik, že lekce 1.1 zaplní celou
|
||||
obrazovku.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -20,7 +20,7 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Shift-Lock <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Caps-Lock <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> j <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1.1 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嫜 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD> <20>ៜ<EFBFBD><E19F9C> <20>੫<EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><E19D9C> <20>椦 <20><>
|
||||
<20><>壜<EFBFBD><E5A39C>, <20><> <20><><EFBFBD> <20><><EFBFBD>ᩜ<EFBFBD><E1A99C>!
|
||||
|
||||
<20>騘, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嫜 櫠 <20><> <20><>㡫<EFBFBD><E3A1AB> Shift-Lock <20><><EFBFBD> <20>夘<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⤦ <20><><EFBFBD>
|
||||
<20>騘, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嫜 櫠 <20><> <20><>㡫<EFBFBD><E3A1AB> Caps-Lock <20><><EFBFBD> <20>夘<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>⤦ <20><><EFBFBD>
|
||||
<20><><EFBFBD>㩫<EFBFBD> <20><> <20><>㡫<EFBFBD><E3A1AB> j <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㩜<EFBFBD><E3A99C> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⫩<>
|
||||
驫<> <20><> <20><EFBFBD><E19F9E> 1.1 <20><> <20><><EFBFBD>婜<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>椞.
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
εκτελείτε τις εντολές για να τις μάθετε σωστά. Αν διαβάζετε μόνο το
|
||||
κείμενο, θα τις ξεχάσετε!
|
||||
|
||||
Τώρα, βεβαιωθείτε ότι το πλήκτρο Shift-Lock ΔΕΝ είναι πατημένο και
|
||||
Τώρα, βεβαιωθείτε ότι το πλήκτρο Caps-Lock ΔΕΝ είναι πατημένο και
|
||||
πατήστε το πλήκτρο j αρκετές φορές για να μετακινήσετε τον δρομέα έτσι
|
||||
ώστε το Μάθημα 1.1 να γεμίσει πλήρως την οθόνη.
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
pou<6F><75>van<61>m. To znamen<65>, <20>e je potrebn<62> si pr<70>kazy vysk<73><6B>a<EFBFBD>, aby bolo
|
||||
u<>enie spr<70>vne. Ak len <20>itas text, pr<70>kazy zabudne<6E>!
|
||||
|
||||
Presved<65> sa, <20>e Shift-Lock NIEJE stla<6C>en<65> a stla<6C>t kl<6B>vesu
|
||||
Presved<65> sa, <20>e Caps-Lock NIEJE stla<6C>en<65> a stla<6C>t kl<6B>vesu
|
||||
j nieko<6B>ko kr<6B>t, aby sa kurzor posunul nato<74>ko, <20>e lekcia 1.1
|
||||
celkom zapln<6C> obrazovku.
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
pou<6F><75>van<61>m. To znamen<65>, <20>e je potrebn<62> si pr<70>kazy vysk<73><6B>a<EFBFBD>, aby bolo
|
||||
u<>enie spr<70>vne. Ak len <20>itas text, pr<70>kazy zabudne<6E>!
|
||||
|
||||
Presved<65> sa, <20>e Shift-Lock NIEJE stla<6C>en<65> a stla<6C>t kl<6B>vesu
|
||||
Presved<65> sa, <20>e Caps-Lock NIEJE stla<6C>en<65> a stla<6C>t kl<6B>vesu
|
||||
j nieko<6B>ko kr<6B>t, aby sa kurzor posunul nato<74>ko, <20>e lekcia 1.1
|
||||
celkom zapln<6C> obrazovku.
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
používaním. To znamená, že je potrebné si príkazy vyskúšať, aby bolo
|
||||
učenie správne. Ak len čitas text, príkazy zabudneš!
|
||||
|
||||
Presvedč sa, že Shift-Lock NIEJE stlačený a stlačt klávesu
|
||||
Presvedč sa, že Caps-Lock NIEJE stlačený a stlačt klávesu
|
||||
j niekoľko krát, aby sa kurzor posunul natoľko, že lekcia 1.1
|
||||
celkom zaplní obrazovku.
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
anlama gelir; komutlar<61> <20><>renmek i<>in do<64>ru bir <20>ekilde <20>al<61><6C>t<EFBFBD>rman<61>z gerekir.
|
||||
E<>er sadece yaz<61>lanlar<61> okursan<61>z komutlar<61> unutursunuz.
|
||||
|
||||
<20>imdi Shift-Lock tu<74>lar<61>n<EFBFBD>z<EFBFBD>n bas<61>l<EFBFBD> olmad<61><64><EFBFBD>na emin olun ve Ders 1.1'in
|
||||
<20>imdi Caps-Lock tu<74>lar<61>n<EFBFBD>z<EFBFBD>n bas<61>l<EFBFBD> olmad<61><64><EFBFBD>na emin olun ve Ders 1.1'in
|
||||
ekran<61> tamamen doldurmas<61> i<>in j tu<74>una yeterli miktarda bas<61>n.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Ders 1.1: <20>MLEC<45> HAREKET ETT<54>RMEK
|
||||
|
@ -18,7 +18,7 @@
|
||||
anlama gelir; komutları öğrenmek için doğru bir şekilde çalıştırmanız gerekir.
|
||||
Eğer sadece yazılanları okursanız komutları unutursunuz.
|
||||
|
||||
Şimdi Shift-Lock tuşlarınızın basılı olmadığına emin olun ve Ders 1.1'in
|
||||
Şimdi Caps-Lock tuşlarınızın basılı olmadığına emin olun ve Ders 1.1'in
|
||||
ekranı tamamen doldurması için j tuşuna yeterli miktarda basın.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Ders 1.1: İMLECİ HAREKET ETTİRMEK
|
||||
|
@ -18,7 +18,7 @@
|
||||
use. That means that you need to execute the commands to learn them
|
||||
properly. If you only read the text, you will forget the commands!
|
||||
|
||||
Now, make sure that your Shift-Lock key is NOT depressed and press
|
||||
Now, make sure that your Caps-Lock key is NOT depressed and press
|
||||
the j key enough times to move the cursor so that Lesson 1.1
|
||||
completely fills the screen.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -34,10 +34,11 @@ Contents:
|
||||
11. Building with Ruby support
|
||||
12. Building with Tcl support
|
||||
13. Building with Terminal support
|
||||
14. Windows 3.1
|
||||
15. MS-DOS
|
||||
14. Building with DirectX (DirectWrite) support
|
||||
15. Windows 3.1
|
||||
16. MS-DOS
|
||||
|
||||
16. Installing after building from sources
|
||||
17. Installing after building from sources
|
||||
|
||||
|
||||
The currently recommended way (that means it has been verified to work) is
|
||||
@ -438,18 +439,31 @@ You will end up with a Python-enabled, Win32 version. Enjoy!
|
||||
================================
|
||||
|
||||
For building with MSVC 2008 the "Windows Installer" from www.python.org
|
||||
works fine. Python 3.4 is recommended.
|
||||
works fine. Python 3.6 is recommended.
|
||||
|
||||
When building, you need to set the following variables at least:
|
||||
|
||||
PYTHON3: Where Python3 is installed. E.g. C:\Python34
|
||||
PYTHON3: Where Python3 is installed. E.g. C:\Python36
|
||||
DYNAMIC_PYTHON3: Whether dynamic linking is used. Usually, set to yes.
|
||||
PYTHON3_VER: Python3 version. E.g. 34 for Python 3.4.X.
|
||||
PYTHON3_VER: Python3 version. E.g. 36 for Python 3.6.X.
|
||||
|
||||
E.g. When using MSVC (as one line):
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
PYTHON3=C:\Python34 DYNAMIC_PYTHON3=yes PYTHON3_VER=34
|
||||
PYTHON3=C:\Python36 DYNAMIC_PYTHON3=yes PYTHON3_VER=36
|
||||
|
||||
|
||||
When using msys2 and link with Python3 bundled with msys2 (as one line):
|
||||
|
||||
mingw32-make -f Make_ming.mak PYTHON3=c:/msys64/mingw64
|
||||
PYTHON3_HOME=c:/msys64/mingw64
|
||||
PYTHON3INC=-Ic:/msys64/mingw64/include/python3.6m
|
||||
DYNAMIC_PYTHON3=yes
|
||||
PYTHON3_VER=36
|
||||
DYNAMIC_PYTHON3_DLL=libpython3.6m.dll
|
||||
STATIC_STDCPLUS=yes
|
||||
|
||||
(This is for 64-bit builds. For 32-bit builds, replace mingw64 with mingw32.)
|
||||
|
||||
|
||||
8. Building with Racket or MzScheme support
|
||||
@ -684,21 +698,33 @@ config.h and Ruby's DLL name. Here are the steps for working around them:
|
||||
There is no need to build whole Ruby, just config.h is needed.
|
||||
If you use 32-bit MSVC 2015, the config.h is generated in the
|
||||
.ext\include\i386-mswin32_140 directory.
|
||||
If you use 64-bit MSVC 2015, the config.h is generated in the
|
||||
.ext\include\x64-mswin64_140 directory.
|
||||
|
||||
3) Install the generated config.h.
|
||||
|
||||
For 32-bit version:
|
||||
|
||||
xcopy /s .ext\include C:\Ruby24\include\ruby-2.4.0
|
||||
|
||||
For 64-bit version:
|
||||
|
||||
xcopy /s .ext\include C:\Ruby24-x64\include\ruby-2.4.0
|
||||
|
||||
Note that 2.4.0 is Ruby API version of Ruby 2.4.X.
|
||||
You may need to close the console and reopen it to pick up the new $PATH.
|
||||
|
||||
4) Build Vim. Note that you need to adjust some variables (as one line):
|
||||
|
||||
For 32-bit version:
|
||||
|
||||
nmake -f Make_mvc.mak
|
||||
RUBY=C:\Ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0
|
||||
RUBY_MSVCRT_NAME=msvcrt
|
||||
WINVER=0x501
|
||||
|
||||
For 64-bit version, replace RUBY=C:\Ruby24 with RUBY=C:\Ruby24-x64.
|
||||
|
||||
If you set WINVER explicitly, it must be set to >=0x500, when building
|
||||
with Ruby 2.1 or later. (Default is 0x501.)
|
||||
When using this trick, you also need to set RUBY_MSVCRT_NAME to msvcrt
|
||||
@ -713,6 +739,7 @@ After you install RubyInstaller, just type this (as one line):
|
||||
RUBY=C:/Ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0
|
||||
WINVER=0x501
|
||||
|
||||
For 64-bit version, replace RUBY=C:/Ruby24 with RUBY=C:/Ruby24-x64.
|
||||
If you set WINVER explicitly, it must be set to >=0x500, when building with
|
||||
Ruby 2.1 or later. (Default is 0x501.)
|
||||
|
||||
@ -761,25 +788,59 @@ E.g. When using MSVC:
|
||||
|
||||
nmake -f Make_mvc.mak TERMINAL=yes
|
||||
|
||||
Or when using MinGW (as one line):
|
||||
Or when using MinGW:
|
||||
|
||||
mingw32-make -f Make_ming.mak TERMINAL=yes
|
||||
|
||||
|
||||
14. Windows 3.1x
|
||||
14. Building with DirectX (DirectWrite) support
|
||||
===============================================
|
||||
|
||||
Vim with DirectX (DirectWrite) support can be built with either MSVC or MinGW.
|
||||
This requires dwrite_2.h and some other header files which come with Windows
|
||||
SDK 8.1 or later (or MinGW-w64), if you want to enable color emoji support.
|
||||
This also requires MBYTE=yes which is enabled by default.
|
||||
|
||||
A) Using MSVC
|
||||
|
||||
If you use MSVC 2013 or later, Windows SDK 8.1 or later is used by default.
|
||||
You just need to specify DIRECTX=yes:
|
||||
|
||||
nmake -f Make_mvc.mak DIRECTX=yes
|
||||
|
||||
If you use MSVC 2012 or earlier, the required header files are not available
|
||||
by default. However, you can use the header files from newer SDKs with older
|
||||
compilers. E.g.:
|
||||
|
||||
set "INCLUDE=%INCLUDE%;C:\Program Files (x86)\Windows Kits\8.1\Include\um"
|
||||
nmake -f Make_mvc.mak DIRECTX=yes
|
||||
|
||||
If you don't need color emoji support, only dwrite.h is required. You can use
|
||||
older compilers (e.g. VC2010) without Windows SDK 8.1. E.g.:
|
||||
|
||||
nmake -f Make_mvc.mak DIRECTX=yes COLOR_EMOJI=no
|
||||
|
||||
B) Using MinGW-w64
|
||||
|
||||
Just set DIRECTX to yes:
|
||||
|
||||
mingw32-make -f Make_ming.mak DIRECTX=yes
|
||||
|
||||
|
||||
15. Windows 3.1x
|
||||
================
|
||||
|
||||
The Windows 3.1x support was removed in patch 7.4.1364.
|
||||
|
||||
|
||||
15. MS-DOS
|
||||
16. MS-DOS
|
||||
==========
|
||||
|
||||
The MS-DOS support was removed in patch 7.4.1399. Only very old Vim versions
|
||||
work on MS-DOS because of the limited amount of memory available.
|
||||
|
||||
|
||||
16. Installing after building from sources
|
||||
17. Installing after building from sources
|
||||
==========================================
|
||||
|
||||
[provided by Michael Soyka, updated by Ken Takata]
|
||||
|
@ -316,14 +316,14 @@ endif
|
||||
# Python3 interface:
|
||||
# PYTHON3=[Path to Python3 directory] (Set inside Make_cyg.mak or Make_ming.mak)
|
||||
# DYNAMIC_PYTHON3=yes (to load the Python3 DLL dynamically)
|
||||
# PYTHON3_VER=[Python3 version, eg 31, 32] (default is 35)
|
||||
# PYTHON3_VER=[Python3 version, eg 31, 32] (default is 36)
|
||||
ifdef PYTHON3
|
||||
ifndef DYNAMIC_PYTHON3
|
||||
DYNAMIC_PYTHON3=yes
|
||||
endif
|
||||
|
||||
ifndef PYTHON3_VER
|
||||
PYTHON3_VER=35
|
||||
PYTHON3_VER=36
|
||||
endif
|
||||
ifndef DYNAMIC_PYTHON3_DLL
|
||||
DYNAMIC_PYTHON3_DLL=python$(PYTHON3_VER).dll
|
||||
@ -588,7 +588,7 @@ endif
|
||||
ifeq ($(DIRECTX),yes)
|
||||
# Only allow DirectWrite for a GUI build.
|
||||
ifeq (yes, $(GUI))
|
||||
DEFINES += -DFEAT_DIRECTX -DDYNAMIC_DIRECTX
|
||||
DEFINES += -DFEAT_DIRECTX -DDYNAMIC_DIRECTX -DFEAT_DIRECTX_COLOR_EMOJI
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -25,12 +25,15 @@
|
||||
#
|
||||
# GUI interface: GUI=yes (default is no)
|
||||
#
|
||||
# GUI with DirectWrite(DirectX): DIRECTX=yes
|
||||
# (default is no, requires GUI=yes)
|
||||
# GUI with DirectWrite (DirectX): DIRECTX=yes
|
||||
# (default is no, requires GUI=yes and MBYTE=yes)
|
||||
#
|
||||
# Color emoji support: COLOR_EMOJI=yes
|
||||
# (default is yes if DIRECTX=yes, requires WinSDK 8.1 or later.)
|
||||
#
|
||||
# OLE interface: OLE=yes (usually with GUI=yes)
|
||||
#
|
||||
# Multibyte support: MBYTE=yes (default is no)
|
||||
# Multibyte support: MBYTE=yes (default is yes for NORMAL, BIG, HUGE)
|
||||
#
|
||||
# IME support: IME=yes (requires GUI=yes)
|
||||
# DYNAMIC_IME=[yes or no] (to load the imm32.dll dynamically, default
|
||||
@ -67,7 +70,7 @@
|
||||
# Python3 interface:
|
||||
# PYTHON3=[Path to Python3 directory]
|
||||
# DYNAMIC_PYTHON3=yes (to load the Python3 DLL dynamically)
|
||||
# PYTHON3_VER=[Python3 version, eg 30, 31] (default is 35)
|
||||
# PYTHON3_VER=[Python3 version, eg 30, 31] (default is 36)
|
||||
#
|
||||
# Ruby interface:
|
||||
# RUBY=[Path to Ruby directory]
|
||||
@ -286,7 +289,8 @@ MSVC_MAJOR = ($(MSVCVER) / 100 - 6)
|
||||
MSVCRT_VER = ($(MSVCVER) / 10 - 60)
|
||||
# Visual C++ 2017 needs special handling
|
||||
# it has an _MSC_VER of 1910->14.1, but is actually v15 with runtime v140
|
||||
!elseif $(MSVCVER) == 1910
|
||||
# TODO: what's the maximum value?
|
||||
!elseif $(MSVCVER) >= 1910
|
||||
MSVC_MAJOR = 15
|
||||
MSVCRT_VER = 140
|
||||
!else
|
||||
@ -419,9 +423,12 @@ NBDEBUG_SRC = nbdebug.c
|
||||
NETBEANS_LIB = WSock32.lib
|
||||
!endif
|
||||
|
||||
# DirectWrite(DirectX)
|
||||
# DirectWrite (DirectX)
|
||||
!if "$(DIRECTX)" == "yes"
|
||||
DIRECTX_DEFS = -DFEAT_DIRECTX -DDYNAMIC_DIRECTX
|
||||
!if "$(COLOR_EMOJI)" != "no"
|
||||
DIRECTX_DEFS = $(DIRECTX_DEFS) -DFEAT_DIRECTX_COLOR_EMOJI
|
||||
!endif
|
||||
DIRECTX_INCL = gui_dwrite.h
|
||||
DIRECTX_OBJ = $(OUTDIR)\gui_dwrite.obj
|
||||
!endif
|
||||
@ -906,7 +913,7 @@ PYTHON_LIB = $(PYTHON)\libs\python$(PYTHON_VER).lib
|
||||
# PYTHON3 interface
|
||||
!ifdef PYTHON3
|
||||
!ifndef PYTHON3_VER
|
||||
PYTHON3_VER = 35
|
||||
PYTHON3_VER = 36
|
||||
!endif
|
||||
!message Python3 requested (version $(PYTHON3_VER)) - root dir is "$(PYTHON3)"
|
||||
!if "$(DYNAMIC_PYTHON3)" == "yes"
|
||||
@ -1173,6 +1180,13 @@ LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!if $(MSVC_MAJOR) >= 11 && "$(CPU)" == "AMD64" && "$(GUI)" == "yes"
|
||||
# This option is required for VC2012 or later so that 64-bit gvim can
|
||||
# accept D&D from 32-bit applications. NOTE: This disables 64-bit ASLR,
|
||||
# therefore the security level becomes as same as VC2010.
|
||||
LINKARGS1 = $(LINKARGS1) /HIGHENTROPYVA:NO
|
||||
!endif
|
||||
|
||||
all: $(VIM).exe \
|
||||
vimrun.exe \
|
||||
install.exe \
|
||||
|
10
src/Makefile
10
src/Makefile
@ -2101,11 +2101,10 @@ run_message_test: $(MESSAGE_TEST_TARGET)
|
||||
# These do not depend on the executable, compile it when needed.
|
||||
test1 \
|
||||
test_eval \
|
||||
test_wordcount \
|
||||
test3 test11 test14 test15 test17 \
|
||||
test29 test30 test36 test37 test39 \
|
||||
test3 test11 test14 test17 \
|
||||
test29 test30 test37 test39 \
|
||||
test42 test44 test48 test49 \
|
||||
test50 test52 test59 \
|
||||
test52 test59 \
|
||||
test64 test69 \
|
||||
test70 test72 \
|
||||
test85 test86 test87 test88 \
|
||||
@ -2120,6 +2119,7 @@ test_arglist \
|
||||
test_assign \
|
||||
test_autochdir \
|
||||
test_autocmd \
|
||||
test_autoload \
|
||||
test_backspace_opt \
|
||||
test_breakindent \
|
||||
test_bufline \
|
||||
@ -2147,6 +2147,7 @@ test_arglist \
|
||||
test_edit \
|
||||
test_erasebackword \
|
||||
test_escaped_glob \
|
||||
test_eval_stuff \
|
||||
test_ex_undo \
|
||||
test_ex_z \
|
||||
test_exec_while_if \
|
||||
@ -2295,6 +2296,7 @@ test_arglist \
|
||||
test_window_cmd \
|
||||
test_window_id \
|
||||
test_windows_home \
|
||||
test_wordcount \
|
||||
test_writefile \
|
||||
test_alot_latin \
|
||||
test_alot_utf8 \
|
||||
|
165
src/auto/configure
vendored
165
src/auto/configure
vendored
@ -1513,7 +1513,7 @@ Optional Features:
|
||||
--disable-icon-cache-update update disabled
|
||||
--disable-desktop-database-update update disabled
|
||||
--disable-largefile omit support for large files
|
||||
--disable-acl Don't check for ACL support.
|
||||
--disable-acl No check for ACL support.
|
||||
--disable-gpm Don't use gpm (Linux mouse daemon).
|
||||
--disable-sysmouse Don't use sysmouse (mouse in *BSD console).
|
||||
--disable-nls Don't support NLS (gettext()).
|
||||
@ -4781,8 +4781,13 @@ fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_is_selinux_enabled" >&5
|
||||
$as_echo "$ac_cv_lib_selinux_is_selinux_enabled" >&6; }
|
||||
if test "x$ac_cv_lib_selinux_is_selinux_enabled" = xyes; then :
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "selinux/selinux.h" "ac_cv_header_selinux_selinux_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_selinux_selinux_h" = xyes; then :
|
||||
LIBS="$LIBS -lselinux"
|
||||
$as_echo "#define HAVE_SELINUX 1" >>confdefs.h
|
||||
$as_echo "#define HAVE_SELINUX 1" >>confdefs.h
|
||||
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
|
||||
@ -7509,7 +7514,7 @@ $as_echo "defaulting to no" >&6; }
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
fi
|
||||
if test "$enable_terminal" = "yes"; then
|
||||
if test "$enable_terminal" = "yes" -a "$enable_channel" = "yes"; then
|
||||
$as_echo "#define FEAT_TERMINAL 1" >>confdefs.h
|
||||
|
||||
TERM_SRC="libvterm/src/encoding.c libvterm/src/keyboard.c libvterm/src/mouse.c libvterm/src/parser.c libvterm/src/pen.c libvterm/src/screen.c libvterm/src/state.c libvterm/src/unicode.c libvterm/src/vterm.c"
|
||||
@ -8882,8 +8887,9 @@ $as_echo "gtk test disabled" >&6; }
|
||||
fi
|
||||
|
||||
if test "X$PKG_CONFIG" = "X"; then
|
||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
||||
set dummy pkg-config; ac_word=$2
|
||||
if test -n "$ac_tool_prefix"; then
|
||||
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
|
||||
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
||||
@ -8909,7 +8915,6 @@ done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
@ -8923,6 +8928,63 @@ $as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
||||
ac_pt_PKG_CONFIG=$PKG_CONFIG
|
||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
||||
set dummy pkg-config; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
case $ac_pt_PKG_CONFIG in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
||||
if test -n "$ac_pt_PKG_CONFIG"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
|
||||
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
if test "x$ac_pt_PKG_CONFIG" = x; then
|
||||
PKG_CONFIG="no"
|
||||
else
|
||||
case $cross_compiling:$ac_tool_warned in
|
||||
yes:)
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||||
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||||
ac_tool_warned=yes ;;
|
||||
esac
|
||||
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
||||
fi
|
||||
else
|
||||
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$PKG_CONFIG" != "xno"; then
|
||||
@ -9176,8 +9238,9 @@ $as_echo "gtk test disabled" >&6; }
|
||||
fi
|
||||
|
||||
if test "X$PKG_CONFIG" = "X"; then
|
||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
||||
set dummy pkg-config; ac_word=$2
|
||||
if test -n "$ac_tool_prefix"; then
|
||||
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
|
||||
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
||||
@ -9203,7 +9266,6 @@ done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
@ -9217,6 +9279,63 @@ $as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
||||
ac_pt_PKG_CONFIG=$PKG_CONFIG
|
||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
||||
set dummy pkg-config; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
case $ac_pt_PKG_CONFIG in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
||||
if test -n "$ac_pt_PKG_CONFIG"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
|
||||
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
if test "x$ac_pt_PKG_CONFIG" = x; then
|
||||
PKG_CONFIG="no"
|
||||
else
|
||||
case $cross_compiling:$ac_tool_warned in
|
||||
yes:)
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||||
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||||
ac_tool_warned=yes ;;
|
||||
esac
|
||||
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
||||
fi
|
||||
else
|
||||
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test "x$PKG_CONFIG" != "xno"; then
|
||||
@ -12698,9 +12817,9 @@ else
|
||||
fi
|
||||
|
||||
if test "$enable_acl" = "yes"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_get_file in -lposix1e" >&5
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_get_file in -lposix1e" >&5
|
||||
$as_echo_n "checking for acl_get_file in -lposix1e... " >&6; }
|
||||
if ${ac_cv_lib_posix1e_acl_get_file+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
@ -12822,9 +12941,9 @@ fi
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for POSIX ACL support" >&5
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for POSIX ACL support" >&5
|
||||
$as_echo_n "checking for POSIX ACL support... " >&6; }
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -12853,7 +12972,7 @@ fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_get in -lsec" >&5
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_get in -lsec" >&5
|
||||
$as_echo_n "checking for acl_get in -lsec... " >&6; }
|
||||
if ${ac_cv_lib_sec_acl_get+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
@ -12895,7 +13014,7 @@ if test "x$ac_cv_lib_sec_acl_get" = xyes; then :
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
|
||||
$as_echo_n "checking for Solaris ACL support... " >&6; }
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#ifdef HAVE_SYS_ACL_H
|
||||
@ -12923,9 +13042,9 @@ rm -f core conftest.err conftest.$ac_objext \
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AIX ACL support" >&5
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AIX ACL support" >&5
|
||||
$as_echo_n "checking for AIX ACL support... " >&6; }
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
#if STDC_HEADERS
|
||||
@ -14195,6 +14314,18 @@ $as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need to force -D_FILE_OFFSET_BITS=64" >&5
|
||||
$as_echo_n "checking whether we need to force -D_FILE_OFFSET_BITS=64... " >&6; }
|
||||
if echo "$CFLAGS $LUA_CFLAGS $MZSCHEME_CFLAGS $PERL_CFLAGS $PYTHON_GETPATH_CFLAGS $PYTHON_CFLAGS $PYTHON3_CFLAGS $TCL_CFLAGS $RUBY_CFLAGS $GTK_CFLAGS" | grep -q D_FILE_OFFSET_BITS 2>/dev/null; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h
|
||||
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5
|
||||
$as_echo_n "checking linker --as-needed support... " >&6; }
|
||||
LINK_AS_NEEDED=
|
||||
|
@ -50,7 +50,7 @@ get_beval_info(
|
||||
}
|
||||
#endif
|
||||
wp = mouse_find_win(&row, &col);
|
||||
if (wp != NULL && row < wp->w_height && col < wp->w_width)
|
||||
if (wp != NULL && row >= 0 && row < wp->w_height && col < wp->w_width)
|
||||
{
|
||||
/* Found a window and the cursor is in the text. Now find the line
|
||||
* number. */
|
||||
|
@ -1,5 +1,5 @@
|
||||
:: command to build big Vim with OLE, Lua, Perl, Python, Racket, Ruby and Tcl
|
||||
SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\"
|
||||
SET TOOLDIR=E:\
|
||||
%VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes LUA=%TOOLDIR%lua53 DYNAMIC_LUA=yes LUA_VER=53 PERL=%TOOLDIR%perl524 DYNAMIC_PERL=yes PERL_VER=524 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python35 DYNAMIC_PYTHON3=yes PYTHON3_VER=35 MZSCHEME=%TOOLDIR%Racket DYNAMIC_MZSCHEME=yes MZSCHEME_VER=3m_a36fs8 RUBY=%TOOLDIR%ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0 RUBY_MSVCRT_NAME=msvcrt TCL=%TOOLDIR%ActiveTcl TCL_VER=86 TCL_VER_LONG=8.6 DYNAMIC_TCL=yes TCL_DLL=tcl86t.dll %1 IME=yes CSCOPE=yes DIRECTX=yes
|
||||
%VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes LUA=%TOOLDIR%lua53 DYNAMIC_LUA=yes LUA_VER=53 PERL=%TOOLDIR%perl524 DYNAMIC_PERL=yes PERL_VER=524 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python36 DYNAMIC_PYTHON3=yes PYTHON3_VER=36 MZSCHEME=%TOOLDIR%Racket DYNAMIC_MZSCHEME=yes MZSCHEME_VER=3m_a36fs8 RUBY=%TOOLDIR%ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0 RUBY_MSVCRT_NAME=msvcrt TCL=%TOOLDIR%ActiveTcl TCL_VER=86 TCL_VER_LONG=8.6 DYNAMIC_TCL=yes TCL_DLL=tcl86t.dll %1 IME=yes CSCOPE=yes DIRECTX=yes
|
||||
|
||||
|
34
src/buffer.c
34
src/buffer.c
@ -593,6 +593,11 @@ aucmd_abort:
|
||||
if (buf->b_nwindows > 0)
|
||||
--buf->b_nwindows;
|
||||
|
||||
#ifdef FEAT_DIFF
|
||||
if (diffopt_hiddenoff() && !unload_buf && buf->b_nwindows == 0)
|
||||
diff_buf_delete(buf); /* Clear 'diff' for hidden buffer. */
|
||||
#endif
|
||||
|
||||
/* Return when a window is displaying the buffer or when it's not
|
||||
* unloaded. */
|
||||
if (buf->b_nwindows > 0 || !unload_buf)
|
||||
@ -652,9 +657,6 @@ aucmd_abort:
|
||||
--buf->b_nwindows;
|
||||
#endif
|
||||
|
||||
/* Change directories when the 'acd' option is set. */
|
||||
DO_AUTOCHDIR
|
||||
|
||||
/*
|
||||
* Remove the buffer from the list.
|
||||
*/
|
||||
@ -1660,7 +1662,8 @@ set_curbuf(buf_T *buf, int action)
|
||||
#ifdef FEAT_SYN_HL
|
||||
long old_tw = curbuf->b_p_tw;
|
||||
#endif
|
||||
bufref_T bufref;
|
||||
bufref_T newbufref;
|
||||
bufref_T prevbufref;
|
||||
|
||||
setpcmark();
|
||||
if (!cmdmod.keepalt)
|
||||
@ -1670,18 +1673,22 @@ set_curbuf(buf_T *buf, int action)
|
||||
/* Don't restart Select mode after switching to another buffer. */
|
||||
VIsual_reselect = FALSE;
|
||||
|
||||
/* close_windows() or apply_autocmds() may change curbuf */
|
||||
/* close_windows() or apply_autocmds() may change curbuf and wipe out "buf"
|
||||
*/
|
||||
prevbuf = curbuf;
|
||||
set_bufref(&bufref, prevbuf);
|
||||
set_bufref(&prevbufref, prevbuf);
|
||||
set_bufref(&newbufref, buf);
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
/* Autocommands may delete the curren buffer and/or the buffer we wan to go
|
||||
* to. In those cases don't close the buffer. */
|
||||
if (!apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf)
|
||||
|| (bufref_valid(&prevbufref)
|
||||
&& bufref_valid(&newbufref)
|
||||
# ifdef FEAT_EVAL
|
||||
|| (bufref_valid(&bufref) && !aborting())
|
||||
# else
|
||||
|| bufref_valid(&bufref)
|
||||
&& !aborting()
|
||||
# endif
|
||||
)
|
||||
))
|
||||
#endif
|
||||
{
|
||||
#ifdef FEAT_SYN_HL
|
||||
@ -1691,9 +1698,9 @@ set_curbuf(buf_T *buf, int action)
|
||||
if (unload)
|
||||
close_windows(prevbuf, FALSE);
|
||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
|
||||
if (bufref_valid(&bufref) && !aborting())
|
||||
if (bufref_valid(&prevbufref) && !aborting())
|
||||
#else
|
||||
if (bufref_valid(&bufref))
|
||||
if (bufref_valid(&prevbufref))
|
||||
#endif
|
||||
{
|
||||
win_T *previouswin = curwin;
|
||||
@ -1852,7 +1859,7 @@ do_autochdir(void)
|
||||
{
|
||||
if ((starting == 0 || test_autochdir)
|
||||
&& curbuf->b_ffname != NULL
|
||||
&& vim_chdirfile(curbuf->b_ffname) == OK)
|
||||
&& vim_chdirfile(curbuf->b_ffname, "auto") == OK)
|
||||
shorten_fnames(TRUE);
|
||||
}
|
||||
#endif
|
||||
@ -2202,6 +2209,7 @@ free_buf_options(
|
||||
clear_string_option(&buf->b_p_isk);
|
||||
#ifdef FEAT_KEYMAP
|
||||
clear_string_option(&buf->b_p_keymap);
|
||||
keymap_clear(&buf->b_kmap_ga);
|
||||
ga_clear(&buf->b_kmap_ga);
|
||||
#endif
|
||||
#ifdef FEAT_COMMENTS
|
||||
|
@ -2207,14 +2207,7 @@ channel_exe_cmd(channel_T *channel, ch_part_T part, typval_T *argv)
|
||||
ex_redraw(&ea);
|
||||
showruler(FALSE);
|
||||
setcursor();
|
||||
out_flush();
|
||||
#ifdef FEAT_GUI
|
||||
if (gui.in_use)
|
||||
{
|
||||
gui_update_cursor(TRUE, FALSE);
|
||||
gui_mch_flush();
|
||||
}
|
||||
#endif
|
||||
out_flush_cursor(TRUE, FALSE);
|
||||
}
|
||||
else if (STRCMP(cmd, "expr") == 0 || STRCMP(cmd, "call") == 0)
|
||||
{
|
||||
@ -3313,11 +3306,12 @@ channel_read(channel_T *channel, ch_part_T part, char *func)
|
||||
/*
|
||||
* Read from RAW or NL "channel"/"part". Blocks until there is something to
|
||||
* read or the timeout expires.
|
||||
* When "raw" is TRUE don't block waiting on a NL.
|
||||
* Returns what was read in allocated memory.
|
||||
* Returns NULL in case of error or timeout.
|
||||
*/
|
||||
char_u *
|
||||
channel_read_block(channel_T *channel, ch_part_T part, int timeout)
|
||||
static char_u *
|
||||
channel_read_block(channel_T *channel, ch_part_T part, int timeout, int raw)
|
||||
{
|
||||
char_u *buf;
|
||||
char_u *msg;
|
||||
@ -3327,7 +3321,7 @@ channel_read_block(channel_T *channel, ch_part_T part, int timeout)
|
||||
readq_T *node;
|
||||
|
||||
ch_log(channel, "Blocking %s read, timeout: %d msec",
|
||||
mode == MODE_RAW ? "RAW" : "NL", timeout);
|
||||
mode == MODE_RAW ? "RAW" : "NL", timeout);
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
@ -3340,6 +3334,10 @@ channel_read_block(channel_T *channel, ch_part_T part, int timeout)
|
||||
break;
|
||||
if (channel_collapse(channel, part, mode == MODE_NL) == OK)
|
||||
continue;
|
||||
/* If not blocking or nothing more is coming then return what we
|
||||
* have. */
|
||||
if (raw || fd == INVALID_FD)
|
||||
break;
|
||||
}
|
||||
|
||||
/* Wait for up to the channel timeout. */
|
||||
@ -3366,11 +3364,16 @@ channel_read_block(channel_T *channel, ch_part_T part, int timeout)
|
||||
nl = channel_first_nl(node);
|
||||
|
||||
/* Convert NUL to NL, the internal representation. */
|
||||
for (p = buf; p < nl && p < buf + node->rq_buflen; ++p)
|
||||
for (p = buf; (nl == NULL || p < nl) && p < buf + node->rq_buflen; ++p)
|
||||
if (*p == NUL)
|
||||
*p = NL;
|
||||
|
||||
if (nl + 1 == buf + node->rq_buflen)
|
||||
if (nl == NULL)
|
||||
{
|
||||
/* must be a closed channel with missing NL */
|
||||
msg = channel_get(channel, part);
|
||||
}
|
||||
else if (nl + 1 == buf + node->rq_buflen)
|
||||
{
|
||||
/* get the whole buffer */
|
||||
msg = channel_get(channel, part);
|
||||
@ -3513,7 +3516,8 @@ common_channel_read(typval_T *argvars, typval_T *rettv, int raw)
|
||||
timeout = opt.jo_timeout;
|
||||
|
||||
if (raw || mode == MODE_RAW || mode == MODE_NL)
|
||||
rettv->vval.v_string = channel_read_block(channel, part, timeout);
|
||||
rettv->vval.v_string = channel_read_block(channel, part,
|
||||
timeout, raw);
|
||||
else
|
||||
{
|
||||
if (opt.jo_set & JO_ID)
|
||||
@ -3955,7 +3959,8 @@ ch_raw_common(typval_T *argvars, typval_T *rettv, int eval)
|
||||
timeout = opt.jo_timeout;
|
||||
else
|
||||
timeout = channel_get_timeout(channel, part_read);
|
||||
rettv->vval.v_string = channel_read_block(channel, part_read, timeout);
|
||||
rettv->vval.v_string = channel_read_block(channel, part_read,
|
||||
timeout, TRUE);
|
||||
}
|
||||
free_job_options(&opt);
|
||||
}
|
||||
|
@ -433,8 +433,9 @@ if test "x$found_smack" = "x"; then
|
||||
if test "$enable_selinux" = "yes"; then
|
||||
AC_MSG_RESULT(no)
|
||||
AC_CHECK_LIB(selinux, is_selinux_enabled,
|
||||
[AC_CHECK_HEADER(selinux/selinux.h,
|
||||
[LIBS="$LIBS -lselinux"
|
||||
AC_DEFINE(HAVE_SELINUX)])
|
||||
AC_DEFINE(HAVE_SELINUX)])])
|
||||
else
|
||||
AC_MSG_RESULT(yes)
|
||||
fi
|
||||
@ -2058,7 +2059,7 @@ else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
fi
|
||||
if test "$enable_terminal" = "yes"; then
|
||||
if test "$enable_terminal" = "yes" -a "$enable_channel" = "yes"; then
|
||||
AC_DEFINE(FEAT_TERMINAL)
|
||||
TERM_SRC="libvterm/src/encoding.c libvterm/src/keyboard.c libvterm/src/mouse.c libvterm/src/parser.c libvterm/src/pen.c libvterm/src/screen.c libvterm/src/state.c libvterm/src/unicode.c libvterm/src/vterm.c"
|
||||
AC_SUBST(TERM_SRC)
|
||||
@ -2633,7 +2634,7 @@ if test -z "$SKIP_GTK2"; then
|
||||
fi
|
||||
|
||||
if test "X$PKG_CONFIG" = "X"; then
|
||||
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
||||
AC_PATH_TOOL(PKG_CONFIG, pkg-config, no)
|
||||
fi
|
||||
|
||||
if test "x$PKG_CONFIG" != "xno"; then
|
||||
@ -2685,7 +2686,7 @@ if test -z "$SKIP_GTK3"; then
|
||||
fi
|
||||
|
||||
if test "X$PKG_CONFIG" = "X"; then
|
||||
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
||||
AC_PATH_TOOL(PKG_CONFIG, pkg-config, no)
|
||||
fi
|
||||
|
||||
if test "x$PKG_CONFIG" != "xno"; then
|
||||
@ -3796,16 +3797,16 @@ dnl when -lacl works, also try to use -lattr (required for Debian).
|
||||
dnl On Solaris, use the acl_get/set functions in libsec, if present.
|
||||
AC_MSG_CHECKING(--disable-acl argument)
|
||||
AC_ARG_ENABLE(acl,
|
||||
[ --disable-acl Don't check for ACL support.],
|
||||
[ --disable-acl No check for ACL support.],
|
||||
, [enable_acl="yes"])
|
||||
if test "$enable_acl" = "yes"; then
|
||||
AC_MSG_RESULT(no)
|
||||
AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
|
||||
AC_MSG_RESULT(no)
|
||||
AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
|
||||
AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
|
||||
AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
|
||||
|
||||
AC_MSG_CHECKING(for POSIX ACL support)
|
||||
AC_TRY_LINK([
|
||||
AC_MSG_CHECKING(for POSIX ACL support)
|
||||
AC_TRY_LINK([
|
||||
#include <sys/types.h>
|
||||
#ifdef HAVE_SYS_ACL_H
|
||||
# include <sys/acl.h>
|
||||
@ -3816,9 +3817,9 @@ acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
|
||||
AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
|
||||
AC_MSG_RESULT(no))
|
||||
|
||||
AC_CHECK_LIB(sec, acl_get, [LIBS="$LIBS -lsec"; AC_DEFINE(HAVE_SOLARIS_ZFS_ACL)],
|
||||
AC_MSG_CHECKING(for Solaris ACL support)
|
||||
AC_TRY_LINK([
|
||||
AC_CHECK_LIB(sec, acl_get, [LIBS="$LIBS -lsec"; AC_DEFINE(HAVE_SOLARIS_ZFS_ACL)],
|
||||
AC_MSG_CHECKING(for Solaris ACL support)
|
||||
AC_TRY_LINK([
|
||||
#ifdef HAVE_SYS_ACL_H
|
||||
# include <sys/acl.h>
|
||||
#endif], [acl("foo", GETACLCNT, 0, NULL);
|
||||
@ -3826,8 +3827,8 @@ AC_TRY_LINK([
|
||||
AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
|
||||
AC_MSG_RESULT(no)))
|
||||
|
||||
AC_MSG_CHECKING(for AIX ACL support)
|
||||
AC_TRY_LINK([
|
||||
AC_MSG_CHECKING(for AIX ACL support)
|
||||
AC_TRY_LINK([
|
||||
#if STDC_HEADERS
|
||||
# include <stdlib.h>
|
||||
# include <stddef.h>
|
||||
@ -4365,6 +4366,20 @@ if test "$GCC" = yes; then
|
||||
fi
|
||||
AC_SUBST(DEPEND_CFLAGS_FILTER)
|
||||
|
||||
dnl On some systems AC_SYS_LARGEFILE determines that -D_FILE_OFFSET_BITS=64
|
||||
dnl isn't required, but the CFLAGS for some of the libraries we're using
|
||||
dnl include the define. Since the define changes the size of some datatypes
|
||||
dnl (e.g. ino_t and off_t), all of Vim's modules must be compiled with a
|
||||
dnl consistent value. It's therefore safest to force the use of the define
|
||||
dnl if it's present in any of the *_CFLAGS variables.
|
||||
AC_MSG_CHECKING(whether we need to force -D_FILE_OFFSET_BITS=64)
|
||||
if echo "$CFLAGS $LUA_CFLAGS $MZSCHEME_CFLAGS $PERL_CFLAGS $PYTHON_GETPATH_CFLAGS $PYTHON_CFLAGS $PYTHON3_CFLAGS $TCL_CFLAGS $RUBY_CFLAGS $GTK_CFLAGS" | grep -q D_FILE_OFFSET_BITS 2>/dev/null; then
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(_FILE_OFFSET_BITS, 64)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
dnl link.sh tries to avoid overlinking in a hackish way.
|
||||
dnl At least GNU ld supports --as-needed which provides the same functionality
|
||||
dnl at linker level. Let's use it.
|
||||
|
36
src/dict.c
36
src/dict.c
@ -47,6 +47,16 @@ dict_alloc(void)
|
||||
return d;
|
||||
}
|
||||
|
||||
dict_T *
|
||||
dict_alloc_lock(int lock)
|
||||
{
|
||||
dict_T *d = dict_alloc();
|
||||
|
||||
if (d != NULL)
|
||||
d->dv_lock = lock;
|
||||
return d;
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate an empty dict for a return value.
|
||||
* Returns OK or FAIL.
|
||||
@ -54,13 +64,12 @@ dict_alloc(void)
|
||||
int
|
||||
rettv_dict_alloc(typval_T *rettv)
|
||||
{
|
||||
dict_T *d = dict_alloc();
|
||||
dict_T *d = dict_alloc_lock(0);
|
||||
|
||||
if (d == NULL)
|
||||
return FAIL;
|
||||
|
||||
rettv_dict_set(rettv, d);
|
||||
rettv->v_lock = 0;
|
||||
return OK;
|
||||
}
|
||||
|
||||
@ -80,7 +89,7 @@ rettv_dict_set(typval_T *rettv, dict_T *d)
|
||||
* Free a Dictionary, including all non-container items it contains.
|
||||
* Ignores the reference count.
|
||||
*/
|
||||
static void
|
||||
void
|
||||
dict_free_contents(dict_T *d)
|
||||
{
|
||||
int todo;
|
||||
@ -102,6 +111,8 @@ dict_free_contents(dict_T *d)
|
||||
--todo;
|
||||
}
|
||||
}
|
||||
|
||||
/* The hashtab is still locked, it has to be re-initialized anyway */
|
||||
hash_clear(&d->dv_hashtab);
|
||||
}
|
||||
|
||||
@ -846,4 +857,23 @@ dict_list(typval_T *argvars, typval_T *rettv, int what)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Make each item in the dict readonly (not the value of the item).
|
||||
*/
|
||||
void
|
||||
dict_set_items_ro(dict_T *di)
|
||||
{
|
||||
int todo = (int)di->dv_hashtab.ht_used;
|
||||
hashitem_T *hi;
|
||||
|
||||
/* Set readonly */
|
||||
for (hi = di->dv_hashtab.ht_array; todo > 0 ; ++hi)
|
||||
{
|
||||
if (HASHITEM_EMPTY(hi))
|
||||
continue;
|
||||
--todo;
|
||||
HI2DI(hi)->di_flags |= DI_FLAGS_RO | DI_FLAGS_FIX;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* defined(FEAT_EVAL) */
|
||||
|
15
src/diff.c
15
src/diff.c
@ -23,6 +23,7 @@ static int diff_busy = FALSE; /* ex_diffgetput() is busy */
|
||||
#define DIFF_IWHITE 4 /* ignore change in white space */
|
||||
#define DIFF_HORIZONTAL 8 /* horizontal splits */
|
||||
#define DIFF_VERTICAL 16 /* vertical splits */
|
||||
#define DIFF_HIDDEN_OFF 32 /* diffoff when hidden */
|
||||
static int diff_flags = DIFF_FILLER;
|
||||
|
||||
#define LBUFLEN 50 /* length of line in diff file */
|
||||
@ -1924,6 +1925,11 @@ diffopt_changed(void)
|
||||
p += 11;
|
||||
diff_foldcolumn_new = getdigits(&p);
|
||||
}
|
||||
else if (STRNCMP(p, "hiddenoff", 9) == 0)
|
||||
{
|
||||
p += 9;
|
||||
diff_flags_new |= DIFF_HIDDEN_OFF;
|
||||
}
|
||||
if (*p != ',' && *p != NUL)
|
||||
return FAIL;
|
||||
if (*p == ',')
|
||||
@ -1961,6 +1967,15 @@ diffopt_horizontal(void)
|
||||
return (diff_flags & DIFF_HORIZONTAL) != 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if 'diffopt' contains "hiddenoff".
|
||||
*/
|
||||
int
|
||||
diffopt_hiddenoff(void)
|
||||
{
|
||||
return (diff_flags & DIFF_HIDDEN_OFF) != 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Find the difference within a changed line.
|
||||
* Returns TRUE if the line was added, no other buffer has it.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user