mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-07 15:37:14 +02:00
Compare commits
235 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1776f34377 | |||
| 7dc2678e9e | |||
| af41f9159b | |||
| 2463525246 | |||
| 61343f0c44 | |||
| 63187f7932 | |||
| 2a5b52758b | |||
| 331bafd481 | |||
| cb5ff34c1b | |||
| f914a33c9c | |||
| ab0a789808 | |||
| 06e6377009 | |||
| 85850f3a5e | |||
| 4b93716235 | |||
| 486f4fd9d4 | |||
| 7964873afe | |||
| df9c6cad8c | |||
| d6bcff4577 | |||
| acf7544cf6 | |||
| 4a0a161a9b | |||
| 403d090e39 | |||
| 3fb4f4762b | |||
| cfdbc5adde | |||
| 99a764bccd | |||
| 273e46e9c5 | |||
| 4c6d90458b | |||
| 69a5b86794 | |||
| 6138640806 | |||
| c7283078c3 | |||
| 7ce2aa01c2 | |||
| 250e3112c6 | |||
| 2ac6e82a4e | |||
| 5d6844566a | |||
| c9afd15bc8 | |||
| cea2a15687 | |||
| f49a692259 | |||
| 41a8260445 | |||
| f9cc9f209e | |||
| b8be54dcc5 | |||
| 37d9f175a4 | |||
| 0346413c24 | |||
| 660a10ad41 | |||
| 1850b14c0d | |||
| ecaa70ea29 | |||
| 2898ebb44c | |||
| a099da3572 | |||
| 396e829fa3 | |||
| fa55cfc69d | |||
| d5abb4c877 | |||
| d65a45df03 | |||
| 809ce4d317 | |||
| 0fb286e82d | |||
| 63d0dad874 | |||
| eaa49e40d7 | |||
| a901a37bae | |||
| b073da8929 | |||
| 017c269938 | |||
| 7b73f914c4 | |||
| 4e63f9425e | |||
| b4f0628fc5 | |||
| d94ac0caca | |||
| b7b9efbccf | |||
| 0231f8312b | |||
| efef9fea72 | |||
| 8ccabf624e | |||
| 8071cb2c64 | |||
| bd42b31780 | |||
| b420747478 | |||
| 847a5d69a8 | |||
| 1072768b91 | |||
| e28cfb2812 | |||
| 4e69a2db7c | |||
| 247bf0de46 | |||
| 7780e5c1c5 | |||
| b05caa782d | |||
| 3b849af90a | |||
| 7ba343e634 | |||
| e089c3fd69 | |||
| 3dabd718f4 | |||
| 8a7383b6d2 | |||
| 0d07155c8b | |||
| 49fe95f225 | |||
| 9992244226 | |||
| ee9e604124 | |||
| 61202ecef9 | |||
| 3e35d05b1f | |||
| 3f3e954d96 | |||
| d84b2c3d88 | |||
| 56a6312099 | |||
| b3d17a20d2 | |||
| 5b19e5b919 | |||
| 899f20deae | |||
| ec572ad6a6 | |||
| 6cc7e21412 | |||
| 404104cdbf | |||
| 90426e0d99 | |||
| c222e3351c | |||
| 71394541f3 | |||
| e9b9613c6a | |||
| 3bbddb323b | |||
| 2c3d9adf12 | |||
| 2760686ac9 | |||
| 7ec24fa490 | |||
| c2f5054be9 | |||
| 28fc247f8d | |||
| 3940ec6d41 | |||
| 4f5b0e5355 | |||
| 437a746b4c | |||
| b4d9b893d3 | |||
| 981d9dc8f3 | |||
| b7ed839976 | |||
| 48ac671fe5 | |||
| 4e038571aa | |||
| e809a4ed30 | |||
| 790c18bfa5 | |||
| 6bf2c6264b | |||
| 931a277145 | |||
| 6cb39f924a | |||
| 5ca1ac373a | |||
| bc2cfe4672 | |||
| 0d702028fe | |||
| e4b407f536 | |||
| e296e3177b | |||
| 80edda1cf5 | |||
| ba45f1f4fb | |||
| 435f9f06ca | |||
| 9ee3d161f7 | |||
| d529ba58dc | |||
| 0cbfb7381e | |||
| 8531dc66e8 | |||
| 7866b87958 | |||
| f8a0712655 | |||
| a83e70000f | |||
| 5b8cfedfbd | |||
| 892ae723ab | |||
| 15e248e37f | |||
| 2e62b568e9 | |||
| 8fa50d1832 | |||
| b60d8514b8 | |||
| f9c85f580b | |||
| 548be7f126 | |||
| 4340fc95d5 | |||
| 13b47c37a6 | |||
| d74af4227b | |||
| 711d02c96d | |||
| 8da4181631 | |||
| 4cd583c6da | |||
| 6efd76ae4a | |||
| 53a95d6584 | |||
| 68acb41f99 | |||
| c2a4316500 | |||
| 88c47aa692 | |||
| 2eed9bafa0 | |||
| 6a7af8e2db | |||
| 5c381eb9e7 | |||
| 7d491c4253 | |||
| 6c6a603cd2 | |||
| 75fb0854e9 | |||
| e96a2498f9 | |||
| 2b044ffb5a | |||
| b2cda0dd1d | |||
| e7eb92708e | |||
| 0a1f56fcfe | |||
| 6984f4e017 | |||
| 7be3ab2589 | |||
| 0fcf26ba4f | |||
| 7a39dd7f00 | |||
| c662ec9978 | |||
| 6c1e1570b1 | |||
| adc6714aac | |||
| dfc1455728 | |||
| 0fc97e346a | |||
| 693f7dc818 | |||
| 405bb42734 | |||
| 4849c201a0 | |||
| 75a1a9415b | |||
| a3fce62c91 | |||
| 37e66cf0f6 | |||
| e9726e31fe | |||
| a956bf6ca3 | |||
| 4dff4aed09 | |||
| bf8c3adef2 | |||
| 87652a7e3b | |||
| db51730df1 | |||
| 517f71ab17 | |||
| 9b283523f2 | |||
| 394c5d8870 | |||
| 6e5000d493 | |||
| e58b970a0c | |||
| ad24a71e22 | |||
| 588c934913 | |||
| ae943150d3 | |||
| 6313c4f41d | |||
| eb2310d47d | |||
| a730e55cc2 | |||
| 983f2f1403 | |||
| 8a5c7ef9bb | |||
| 8cdbd5b3c4 | |||
| 1c196e7b17 | |||
| dc2ce58b5a | |||
| f85e40afc2 | |||
| 6c17543b56 | |||
| 51c3131040 | |||
| 61eeeea8e6 | |||
| a42d945efc | |||
| 26910de8b0 | |||
| 0331faf712 | |||
| 45aa07d3c1 | |||
| b46fecd345 | |||
| b6e3b88ec8 | |||
| d7c9687947 | |||
| bffc50494d | |||
| 0abb4273f6 | |||
| 9937a05543 | |||
| dfa97f2aed | |||
| fc06cbbf86 | |||
| 1755ec4278 | |||
| 650a63748c | |||
| bd75b5333d | |||
| 2fc39aeeb5 | |||
| d2cea96f6c | |||
| 0554fa478d | |||
| f42397c395 | |||
| 21606676d9 | |||
| b4086ffa32 | |||
| a540f8aa3b | |||
| 37df9a4401 | |||
| b53fb31a1e | |||
| b0f94c1ff3 | |||
| 8d24104031 | |||
| 68d48f40a4 | |||
| 7c7f01e2b2 | |||
| 451d4b5b7c | |||
| 06e2c81f6d | |||
| 202d982b36 |
+3
-1
@@ -35,7 +35,9 @@ src/auto/pathdef.c
|
||||
*.RES
|
||||
vim*.dll
|
||||
vim*.lib
|
||||
src/pathdef.c
|
||||
src/dobj*/pathdef.c
|
||||
src/gobj*/pathdef.c
|
||||
src/obj*/pathdef.c
|
||||
src/Obj*/pathdef.c
|
||||
gvimext.dll
|
||||
gvimext.lib
|
||||
|
||||
@@ -37,7 +37,9 @@ src/auto/pathdef.c
|
||||
*.RES
|
||||
vim*.dll
|
||||
vim*.lib
|
||||
src/pathdef.c
|
||||
src/dobj*/pathdef.c
|
||||
src/gobj*/pathdef.c
|
||||
src/obj*/pathdef.c
|
||||
src/Obj*/pathdef.c
|
||||
gvimext.dll
|
||||
gvimext.lib
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ before_deploy:
|
||||
deploy:
|
||||
provider: releases
|
||||
api_key:
|
||||
secure: HYHKVbuSG2Trc5zEN+aQO0TO/020qtTokoaaatd9GhQ/ImOI2uhOuVsk47mcViCINyE9+wwVEr23Tk7GqzsJBS66FoZJeOsgYoO/LFlQjCYyya+48Ajez6I2VAIGKn0JD6jpW+ZYIX7MAWLCQKv/vW03MrBMDLZvjB89pHe72MLQFlVcEzxsWnr7smTzLcuKShkV+AVZopE/HRdY1k/zjWf/TzcJgqXwThuJOPYY+CcGUv1CMJjWB8pBuH31pbQ2AVOXV7VG5oxy2HSbCeDRShKT3GooecWj7xjh9SApNqEIzC44RlufgyC73M0DeILUasmbF0g2Q+AsDaj3+9w3LbLbmfpV5kEM9E/PbzWEn+0EgRKV+HCscZnPMlzkiVWKnjzfwKGMOmTwD0aN4Bt6Y9z+UvQKfsQN+6wHmh7xcSpaeR1J6PBeaCd+QyhD7t9ZxP2qmZWCBMFpnkqO4+LoclJNV+IxYstNFjaKIvxEe/S9GM2w+i2cSDDrxSNz+kUGWzshyu6HXxRtrNo+qM6sCO8TiOMMALPAkLCJT2P/TPMRkdy2wjCDwprc1ePDqikIHIGGwQ8Csd5IqFUcJs405xw4HfVkOuhWL/SpLuI6OHOVQqAkqMEMaEhlfh1swFNkT4ffDJGzvklB8v2980B003eWbcHr6lMGtpqQecqgS9A=
|
||||
secure: ukjm+qbuNiTli25Ut2BoVpeBCV+JyVbRUwPqjTKrJxfHz34bpr38eSbryIB8BgKBItgzE876Yoqa3CD0k8mqGClis1+98MtrYFpAkO97juJmHpcZZZB7ausbHGf7Z7VdMT4jBjjVGcBeaNj0mio0hwem0/S4WyJK3M/3Fym995CltCUtJKRfMvRiGkWZqUs8K7EZf53DFR6CXUn38rq/3B88SeK51OZuCkMsiDWLGYCdayH19vJfFrTF8MYMQYDYxz16Q/Kf21PVhwia7HEhOzqnXS8RXS+vLkZw8mzIxowX+w6NT90q7Sj0ENdR7YaS27QPfDdhZEnOgpgqj+za63lpiyIdRcgSBkGxNYrM6B5KhiwC1VocBxCBdCxT5WXlx9rA9+k4CASdsxAW/MtQOK6PRMfZEnAB+ShFvshM2H/iE5Jch+o/SIjCXhdkeASD5qov2x6eXcsEVu8PIxvEUptCpHeqJTN5/26nfKsvOdrsqbwJbDluwISOKfEPhohb8Hn7JqOJNTS2aJr3jfvU+egE1NS0eLqKPXecu7MOOsOq1CQL6WxblphG2JCCmAOuNMYrJx9+w28ekMDRDAbI9r5nWcPLZtBqjFUyuBXXM7UknMar0FZ2fd7YTi/Gki3n56UN0lKaSAKaJB9EXlneDSKp/1ogsETr9/b7jz0s6lI=
|
||||
file: src/MacVim/build/Release/MacVim.dmg
|
||||
skip_cleanup: true
|
||||
on:
|
||||
|
||||
@@ -50,6 +50,7 @@ SRC_ALL = \
|
||||
src/gui_beval.c \
|
||||
src/hardcopy.c \
|
||||
src/hashtab.c \
|
||||
src/highlight.c \
|
||||
src/indent.c \
|
||||
src/insexpand.c \
|
||||
src/json.c \
|
||||
@@ -80,6 +81,7 @@ SRC_ALL = \
|
||||
src/option.h \
|
||||
src/popupmnu.c \
|
||||
src/popupwin.c \
|
||||
src/profiler.c \
|
||||
src/quickfix.c \
|
||||
src/regexp.c \
|
||||
src/regexp_nfa.c \
|
||||
@@ -99,6 +101,7 @@ SRC_ALL = \
|
||||
src/terminal.c \
|
||||
src/term.h \
|
||||
src/termlib.c \
|
||||
src/testing.c \
|
||||
src/textprop.c \
|
||||
src/ui.c \
|
||||
src/undo.c \
|
||||
@@ -120,9 +123,11 @@ SRC_ALL = \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/runtest.vim \
|
||||
src/testdir/summarize.vim \
|
||||
src/testdir/check.vim \
|
||||
src/testdir/shared.vim \
|
||||
src/testdir/screendump.vim \
|
||||
src/testdir/view_util.vim \
|
||||
src/testdir/term_util.vim \
|
||||
src/testdir/setup.vim \
|
||||
src/testdir/gui_init.vim \
|
||||
src/testdir/setup_gui.vim \
|
||||
@@ -186,6 +191,7 @@ SRC_ALL = \
|
||||
src/proto/gui_beval.pro \
|
||||
src/proto/hardcopy.pro \
|
||||
src/proto/hashtab.pro \
|
||||
src/proto/highlight.pro \
|
||||
src/proto/indent.pro \
|
||||
src/proto/insexpand.pro \
|
||||
src/proto/json.pro \
|
||||
@@ -206,6 +212,7 @@ SRC_ALL = \
|
||||
src/proto/option.pro \
|
||||
src/proto/popupmnu.pro \
|
||||
src/proto/popupwin.pro \
|
||||
src/proto/profiler.pro \
|
||||
src/proto/quickfix.pro \
|
||||
src/proto/regexp.pro \
|
||||
src/proto/screen.pro \
|
||||
@@ -220,6 +227,7 @@ SRC_ALL = \
|
||||
src/proto/term.pro \
|
||||
src/proto/terminal.pro \
|
||||
src/proto/termlib.pro \
|
||||
src/proto/testing.pro \
|
||||
src/proto/textprop.pro \
|
||||
src/proto/ui.pro \
|
||||
src/proto/undo.pro \
|
||||
@@ -538,10 +546,7 @@ SRC_AMI = \
|
||||
README_amisrc.txt.info \
|
||||
src.info \
|
||||
src/INSTALLami.txt \
|
||||
src/Make_dice.mak \
|
||||
src/Make_manx.mak \
|
||||
src/Make_morph.mak \
|
||||
src/Make_sas.mak \
|
||||
src/os_amiga.c \
|
||||
src/os_amiga.h \
|
||||
src/proto/os_amiga.pro \
|
||||
|
||||
+3
-1
@@ -22,8 +22,10 @@ if "%FEATURE%" == "HUGE" (
|
||||
)
|
||||
.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_ming.txt
|
||||
|
||||
:: Filter out the progress bar from the build log
|
||||
sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
|
||||
|
||||
echo "Building MSVC 64bit console Version"
|
||||
sed -e "s/\$(LINKARGS2)/\$(LINKARGS2) | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
|
||||
nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=no IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
|
||||
nmake -f Make_mvc2.mak clean
|
||||
|
||||
|
||||
+1221
-777
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
" netrwSettings.vim: makes netrw settings simpler
|
||||
" Date: Dec 30, 2014
|
||||
" Date: Nov 09, 2016
|
||||
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
|
||||
" Version: 15
|
||||
" Version: 16
|
||||
" 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 = "v15"
|
||||
let g:loaded_netrwSettings = "v16"
|
||||
if v:version < 700
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwSettings needs vim 7.0"
|
||||
@@ -154,9 +154,13 @@ 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
|
||||
|
||||
@@ -8,7 +8,7 @@ set cpo&vim
|
||||
func! Test_check_colors()
|
||||
let l:savedview = winsaveview()
|
||||
call cursor(1,1)
|
||||
let err={}
|
||||
let err = {}
|
||||
|
||||
" 1) Check g:colors_name is existing
|
||||
if !search('\<\%(g:\)\?colors_name\>', 'cnW')
|
||||
@@ -81,36 +81,39 @@ func! Test_check_colors()
|
||||
\ 'WarningMsg',
|
||||
\ 'WildMenu',
|
||||
\ ]
|
||||
let groups={}
|
||||
let groups = {}
|
||||
for group in hi_groups
|
||||
if search('\c@suppress\s\+'.group, 'cnW')
|
||||
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]!\= \+link \+'.group, 'cnW') " Linked group
|
||||
if search('hi\%[ghlight]!\= \+link \+' .. group, 'cnW') " Linked group
|
||||
continue
|
||||
endif
|
||||
if !search('hi\%[ghlight] \+'.group, 'cnW')
|
||||
let groups[group] = 'No highlight definition for '.group
|
||||
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
|
||||
if !search('hi\%[ghlight] \+\<' .. group .. '\>.*[bf]g=', 'cnW')
|
||||
let groups[group] = 'Missing foreground or background 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
|
||||
if search('hi\%[ghlight] \+\<' .. group .. '\>.*guibg=', 'cnW') &&
|
||||
\ !search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermbg=', 'cnW')
|
||||
\ && group != 'Cursor'
|
||||
let groups[group] = 'Missing bg terminal color for ' .. group
|
||||
continue
|
||||
endif
|
||||
if !search('hi\%[ghlight] \+'.group. '.*guifg=', 'cnW')
|
||||
let groups[group] = 'Missing guifg definition for '.group
|
||||
if !search('hi\%[ghlight] \+\<' .. group .. '\>.*guifg=', 'cnW')
|
||||
\ && group !~ '^Diff'
|
||||
let groups[group] = 'Missing guifg definition for ' .. group
|
||||
continue
|
||||
endif
|
||||
if !search('hi\%[ghlight] \+'.group. '.*ctermfg=', 'cnW')
|
||||
let groups[group] = 'Missing ctermfg definition for '.group
|
||||
if !search('hi\%[ghlight] \+\<' .. group .. '\>.*ctermfg=', 'cnW')
|
||||
\ && group !~ '^Diff'
|
||||
\ && group != 'Cursor'
|
||||
let groups[group] = 'Missing ctermfg definition for ' .. group
|
||||
continue
|
||||
endif
|
||||
" do not check for background colors, they could be intentionally left out
|
||||
@@ -120,10 +123,10 @@ func! Test_check_colors()
|
||||
|
||||
" 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')
|
||||
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')
|
||||
@@ -145,7 +148,7 @@ func! Test_check_colors()
|
||||
" 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'
|
||||
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
|
||||
@@ -160,7 +163,7 @@ func! Test_check_colors()
|
||||
let ft_groups = []
|
||||
" let group = '\%('.join(hi_groups, '\|').'\)' " More efficient than a for loop, but less informative
|
||||
for group in hi_groups
|
||||
let pat='\Chi\%[ghlight]!\= *\%[link] \+\zs'.group.'\w\+\>\ze \+.' " Skips `hi clear`
|
||||
let pat = '\Chi\%[ghlight]!\= *\%[link] \+\zs' .. group .. '\w\+\>\ze \+.' " Skips `hi clear`
|
||||
if search(pat, 'cW')
|
||||
call add(ft_groups, matchstr(getline('.'), pat))
|
||||
endif
|
||||
@@ -172,7 +175,7 @@ func! Test_check_colors()
|
||||
|
||||
" 8) Were debugPC and debugBreakpoint defined?
|
||||
for group in ['debugPC', 'debugBreakpoint']
|
||||
let pat='\Chi\%[ghlight]!\= *\%[link] \+\zs'.group.'\>'
|
||||
let pat = '\Chi\%[ghlight]!\= *\%[link] \+\zs' .. group .. '\>'
|
||||
if search(pat, 'cnW')
|
||||
let line = search(pat, 'cW')
|
||||
let err['filetype'] = get(err, 'filetype', 'Should not define: ') . matchstr(getline('.'), pat). ' '
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
" Compiler: GNU C Compiler
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2010-10-14
|
||||
" changed pattern for entering/leaving directories
|
||||
" by Daniel Hahler, 2019 Jul 12
|
||||
" added line suggested by Anton Lindqvist 2016 Mar 31
|
||||
|
||||
if exists("current_compiler")
|
||||
@@ -27,10 +29,10 @@ CompilerSet errorformat=
|
||||
\%f:%l:\ %m,
|
||||
\%f:\\(%*[^\\)]\\):\ %m,
|
||||
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ [`']%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ [`']%f',
|
||||
\%D%*\\a:\ Entering\ directory\ [`']%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ [`']%f',
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ %*[`']%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ %*[`']%f',
|
||||
\%D%*\\a:\ Entering\ directory\ %*[`']%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ %*[`']%f',
|
||||
\%DMaking\ %*\\a\ in\ %f
|
||||
|
||||
if exists('g:compiler_gcc_ignore_unmatched_lines')
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
" Vim Compiler File
|
||||
" Compiler: ocaml
|
||||
" Maintainer: See ftplugin/ocaml.vim (?)
|
||||
" Last Change: June 2013 by Marc Weber
|
||||
" Compiler: ocaml
|
||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
||||
" Last Change:
|
||||
" 2017 Nov 26 - Improved error format (Markus Mottl)
|
||||
" 2013 Aug 27 - Added a new OCaml error format (Markus Mottl)
|
||||
" 2013 Jun 30 - Initial version (Marc Weber)
|
||||
"
|
||||
" Marc Weber's comments:
|
||||
" Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt,
|
||||
@@ -17,7 +21,6 @@
|
||||
"
|
||||
" So having it here makes people opt-in
|
||||
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
@@ -28,6 +31,7 @@ set cpo&vim
|
||||
|
||||
CompilerSet errorformat =
|
||||
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
|
||||
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d\ %.%#,
|
||||
\%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
|
||||
\%+EReference\ to\ unbound\ regexp\ name\ %m,
|
||||
\%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m,
|
||||
@@ -38,6 +42,12 @@ CompilerSet errorformat =
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
|
||||
\%D%*\\a:\ Entering\ directory\ `%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ `%f',
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ '%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ '%f',
|
||||
\%D%*\\a:\ Entering\ directory\ '%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ '%f',
|
||||
\%DEntering\ directory\ '%f',
|
||||
\%XLeaving\ directory\ '%f',
|
||||
\%DMaking\ %*\\a\ in\ %f
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
+28
-11
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
||||
*autocmd.txt* For Vim version 8.1. Last change: 2019 Jun 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -407,8 +407,8 @@ BufFilePost After changing the name of the current buffer
|
||||
BufFilePre Before changing the name of the current buffer
|
||||
with the ":file" or ":saveas" command.
|
||||
*BufHidden*
|
||||
BufHidden Just after a buffer has become hidden. That
|
||||
is, when there are no longer windows that show
|
||||
BufHidden Just before a buffer becomes hidden. That is,
|
||||
when there are no longer windows that show
|
||||
the buffer, but the buffer is not unloaded or
|
||||
deleted. Not used for ":qa" or ":q" when
|
||||
exiting Vim.
|
||||
@@ -873,15 +873,32 @@ MenuPopup Just before showing the popup menu (under the
|
||||
*OptionSet*
|
||||
OptionSet After setting an option. The pattern is
|
||||
matched against the long option name.
|
||||
The |v:option_old| variable indicates the
|
||||
old option value, |v:option_new| variable
|
||||
indicates the newly set value, the
|
||||
|v:option_type| variable indicates whether
|
||||
it's global or local scoped and |<amatch>|
|
||||
indicates what option has been set.
|
||||
|<amatch>| indicates what option has been set.
|
||||
|
||||
Is not triggered on startup and for the 'key'
|
||||
option for obvious reasons.
|
||||
|v:option_type| indicates whether it's global
|
||||
or local scoped.
|
||||
|v:option_command| indicates what type of
|
||||
set/let command was used (follow the tag to
|
||||
see the table).
|
||||
|v:option_new| indicates the newly set value.
|
||||
|v:option_oldlocal| has the old local value.
|
||||
|v:option_oldglobal| has the old global value.
|
||||
|v:option_old| indicates the old option value.
|
||||
|
||||
|v:option_oldlocal| is only set when |:set|
|
||||
or |:setlocal| or a |modeline| was used to set
|
||||
the option. Similarly |v:option_oldglobal| is
|
||||
only set when |:set| or |:setglobal| was used.
|
||||
|
||||
Note that when setting a |global-local| string
|
||||
option with |:set|, then |v:option_old| is the
|
||||
old global value. However, for all other kinds
|
||||
of options (local string options, global-local
|
||||
number options, ...) it is the old local
|
||||
value.
|
||||
|
||||
OptionSet is not triggered on startup and for
|
||||
the 'key' option for obvious reasons.
|
||||
|
||||
Usage example: Check for the existence of the
|
||||
directory in the 'backupdir' and 'undodir'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 8.1. Last change: 2019 May 07
|
||||
*change.txt* For Vim version 8.1. Last change: 2019 Jul 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1179,9 +1179,9 @@ There are ten types of registers: *registers* *E354*
|
||||
2. 10 numbered registers "0 to "9
|
||||
3. The small delete register "-
|
||||
4. 26 named registers "a to "z or "A to "Z
|
||||
5. three read-only registers ":, "., "%
|
||||
6. alternate buffer register "#
|
||||
7. the expression register "=
|
||||
5. Three read-only registers ":, "., "%
|
||||
6. Alternate buffer register "#
|
||||
7. The expression register "=
|
||||
8. The selection and drop registers "*, "+ and "~
|
||||
9. The black hole register "_
|
||||
10. Last search pattern register "/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*debugger.txt* For Vim version 8.1. Last change: 2019 May 12
|
||||
*debugger.txt* For Vim version 8.1. Last change: 2019 Jul 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
@@ -6,6 +6,10 @@
|
||||
|
||||
Debugger Support Features *debugger-support*
|
||||
|
||||
These features are for integration with a debugger or an Integrated
|
||||
Programming Environment (IPE) or Integrated Development Environment (IDE).
|
||||
For the debugger running in a Vim terminal window see |terminal-debugger|.
|
||||
|
||||
1. Debugger Features |debugger-features|
|
||||
2. Vim Compile Options |debugger-compilation|
|
||||
3. Integrated Debuggers |debugger-integration|
|
||||
@@ -14,9 +18,7 @@ Debugger Support Features *debugger-support*
|
||||
==============================================================================
|
||||
1. Debugger Features *debugger-features*
|
||||
|
||||
The following features are available for an integration with a debugger or
|
||||
an Integrated Programming Environment (IPE) or Integrated Development
|
||||
Environment (IDE):
|
||||
The following features are available:
|
||||
|
||||
Alternate Command Input |alt-input|
|
||||
Debug Signs |debug-signs|
|
||||
@@ -90,6 +92,9 @@ However, the feature was implemented in as general a manner as possible and
|
||||
could be used for displaying other information as well. The functionality is
|
||||
limited though, for advanced popups see |popup-window|.
|
||||
|
||||
Another way to use the balloon is with the 'balloonexpr' option. This is
|
||||
completely user definable.
|
||||
|
||||
The Balloon Evaluation has some settable parameters too. For Motif the font
|
||||
list and colors can be set via X resources (XmNballoonEvalFontList,
|
||||
XmNballoonEvalBackground, and XmNballoonEvalForeground).
|
||||
@@ -106,9 +111,6 @@ The Balloon evaluation functions are also used to show a tooltip for the
|
||||
toolbar. The 'ballooneval' option does not need to be set for this. But the
|
||||
other settings apply.
|
||||
|
||||
Another way to use the balloon is with the 'balloonexpr' option. This is
|
||||
completely user definable.
|
||||
|
||||
==============================================================================
|
||||
2. Vim Compile Options *debugger-compilation*
|
||||
|
||||
|
||||
+313
-392
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.1. Last change: 2019 Jun 10
|
||||
*eval.txt* For Vim version 8.1. Last change: 2019 Jul 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -58,7 +58,9 @@ List An ordered sequence of items, see |List| for details.
|
||||
|
||||
Dictionary An associative, unordered array: Each entry has a key and a
|
||||
value. |Dictionary|
|
||||
Example: {'blue': "#0000ff", 'red': "#ff0000"}
|
||||
Examples:
|
||||
{'blue': "#0000ff", 'red': "#ff0000"}
|
||||
#{blue: "#0000ff", red: "#ff0000"}
|
||||
|
||||
Funcref A reference to a function |Funcref|.
|
||||
Example: function("strlen")
|
||||
@@ -477,8 +479,14 @@ only appear once. Examples: >
|
||||
A key is always a String. You can use a Number, it will be converted to a
|
||||
String automatically. Thus the String '4' and the number 4 will find the same
|
||||
entry. Note that the String '04' and the Number 04 are different, since the
|
||||
Number will be converted to the String '4'. The empty string can be used as a
|
||||
key.
|
||||
Number will be converted to the String '4'. The empty string can also be used
|
||||
as a key.
|
||||
*literal-Dict*
|
||||
To avoid having to put quotes around every key the #{} form can be used. This
|
||||
does require the key to consist only of ASCII letters, digits, '-' and '_'.
|
||||
Example: >
|
||||
let mydict = #{zero: 0, one_key: 1, two-key: 2, 333: 3}
|
||||
Note that 333 here is the string "333". Empty keys are not possible with #{}.
|
||||
|
||||
A value can be any expression. Using a Dictionary for a value creates a
|
||||
nested Dictionary: >
|
||||
@@ -1943,10 +1951,29 @@ v:option_new New value of the option. Valid while executing an |OptionSet|
|
||||
autocommand.
|
||||
*v:option_old*
|
||||
v:option_old Old value of the option. Valid while executing an |OptionSet|
|
||||
autocommand.
|
||||
autocommand. Depending on the command used for setting and the
|
||||
kind of option this is either the local old value or the
|
||||
global old value.
|
||||
*v:option_oldlocal*
|
||||
v:option_oldlocal
|
||||
Old local value of the option. Valid while executing an
|
||||
|OptionSet| autocommand.
|
||||
*v:option_oldglobal*
|
||||
v:option_oldglobal
|
||||
Old global value of the option. Valid while executing an
|
||||
|OptionSet| autocommand.
|
||||
*v:option_type*
|
||||
v:option_type Scope of the set command. Valid while executing an
|
||||
|OptionSet| autocommand. Can be either "global" or "local"
|
||||
*v:option_command*
|
||||
v:option_command
|
||||
Command used to set the option. Valid while executing an
|
||||
|OptionSet| autocommand.
|
||||
value option was set via ~
|
||||
"setlocal" |:setlocal| or ":let l:xxx"
|
||||
"setglobal" |:setglobal| or ":let g:xxx"
|
||||
"set" |:set| or |:let|
|
||||
"modeline" |modeline|
|
||||
*v:operator* *operator-variable*
|
||||
v:operator The last operator given in Normal mode. This is a single
|
||||
character except for commands starting with <g> or <z>,
|
||||
@@ -2164,7 +2191,7 @@ v:val Value of the current item of a |List| or |Dictionary|. Only
|
||||
|
||||
*v:version* *version-variable*
|
||||
v:version Version number of Vim: Major version number times 100 plus
|
||||
minor version number. Version 5.0 is 500. Version 5.1 (5.01)
|
||||
minor version number. Version 5.0 is 500. Version 5.1
|
||||
is 501. Read-only. "version" also works, for backwards
|
||||
compatibility, unless |scriptversion| is 3 or higher.
|
||||
Use |has()| to check if a certain patch was included, e.g.: >
|
||||
@@ -2173,6 +2200,17 @@ v:version Version number of Vim: Major version number times 100 plus
|
||||
version 5.0 and 5.1 may have a patch 123, but these are
|
||||
completely different.
|
||||
|
||||
*v:versionlong* *versionlong-variable*
|
||||
v:versionlong Like v:version, but also including the patchlevel in the last
|
||||
four digits. Version 8.1 with patch 123 has value 8010123.
|
||||
This can be used like this: >
|
||||
if v:versionlong >= 8010123
|
||||
< However, if there are gaps in the list of patches included
|
||||
this will not work well. This can happen if a recent patch
|
||||
was included into an older version, e.g. for a security fix.
|
||||
Use the has() function to make sure the patch is actually
|
||||
included.
|
||||
|
||||
*v:vim_did_enter* *vim_did_enter-variable*
|
||||
v:vim_did_enter Zero until most of startup is done. It is set to one just
|
||||
before |VimEnter| autocommands are triggered.
|
||||
@@ -2242,8 +2280,10 @@ balloon_split({msg}) List split {msg} as used for a balloon
|
||||
browse({save}, {title}, {initdir}, {default})
|
||||
String put up a file requester
|
||||
browsedir({title}, {initdir}) String put up a directory requester
|
||||
bufadd({name}) Number add a buffer to the buffer list
|
||||
bufexists({expr}) Number |TRUE| if buffer {expr} exists
|
||||
buflisted({expr}) Number |TRUE| if buffer {expr} is listed
|
||||
bufload({expr}) Number load buffer {expr} if not loaded yet
|
||||
bufloaded({expr}) Number |TRUE| if buffer {expr} is loaded
|
||||
bufname({expr}) String Name of the buffer {expr}
|
||||
bufnr({expr} [, {create}]) Number Number of the buffer {expr}
|
||||
@@ -2502,6 +2542,25 @@ nr2char({expr} [, {utf8}]) String single char with ASCII/UTF8 value {expr}
|
||||
or({expr}, {expr}) Number bitwise OR
|
||||
pathshorten({expr}) String shorten directory names in a path
|
||||
perleval({expr}) any evaluate |Perl| expression
|
||||
popup_atcursor({what}, {options}) Number create popup window near the cursor
|
||||
popup_beval({what}, {options}) Number create popup window for 'ballooneval'
|
||||
popup_clear() none close all popup windows
|
||||
popup_close({id} [, {result}]) none close popup window {id}
|
||||
popup_create({what}, {options}) Number create a popup window
|
||||
popup_dialog({what}, {options}) Number create a popup window used as a dialog
|
||||
popup_filter_menu({id}, {key}) Number filter for a menu popup window
|
||||
popup_filter_yesno({id}, {key}) Number filter for a dialog popup window
|
||||
popup_getoptions({id}) Dict get options of popup window {id}
|
||||
popup_getpos({id}) Dict get position of popup window {id}
|
||||
popup_hide({id}) none hide popup menu {id}
|
||||
popup_menu({what}, {options}) Number create a popup window used as a menu
|
||||
popup_move({id}, {options}) none set position of popup window {id}
|
||||
popup_notification({what}, {options})
|
||||
Number create a notification popup window
|
||||
popup_show({id}) none unhide popup window {id}
|
||||
popup_setoptions({id}, {options})
|
||||
none set options for popup window {id}
|
||||
popup_settext({id}, {text}) none set the text of popup window {id}
|
||||
pow({x}, {y}) Float {x} to the power of {y}
|
||||
prevnonblank({lnum}) Number line nr of non-blank line <= {lnum}
|
||||
printf({fmt}, {expr1}...) String format text
|
||||
@@ -2563,6 +2622,7 @@ screenattr({row}, {col}) Number attribute at screen position
|
||||
screenchar({row}, {col}) Number character at screen position
|
||||
screenchars({row}, {col}) List List of characters at screen position
|
||||
screencol() Number current cursor column
|
||||
screenpos({winid}, {lnum}, {col}) Dict screen row and col of a text character
|
||||
screenrow() Number current cursor row
|
||||
screenstring({row}, {col}) String characters at screen position
|
||||
search({pattern} [, {flags} [, {stopline} [, {timeout}]]])
|
||||
@@ -2608,6 +2668,7 @@ shellescape({string} [, {special}])
|
||||
command argument
|
||||
shiftwidth([{col}]) Number effective value of 'shiftwidth'
|
||||
sign_define({name} [, {dict}]) Number define or update a sign
|
||||
sign_define({list}) List define or update a list of signs
|
||||
sign_getdefined([{name}]) List get a list of defined signs
|
||||
sign_getplaced([{expr} [, {dict}]])
|
||||
List get a list of placed signs
|
||||
@@ -2615,9 +2676,12 @@ sign_jump({id}, {group}, {expr})
|
||||
Number jump to a sign
|
||||
sign_place({id}, {group}, {name}, {expr} [, {dict}])
|
||||
Number place a sign
|
||||
sign_placelist({list}) List place a list of signs
|
||||
sign_undefine([{name}]) Number undefine a sign
|
||||
sign_undefine({list}) List undefine a list of signs
|
||||
sign_unplace({group} [, {dict}])
|
||||
Number unplace a sign
|
||||
sign_unplacelist({list}) List unplace a list of signs
|
||||
simplify({filename}) String simplify filename as much as possible
|
||||
sin({expr}) Float sine of {expr}
|
||||
sinh({expr}) Float hyperbolic sine of {expr}
|
||||
@@ -2711,6 +2775,7 @@ test_alloc_fail({id}, {countdown}, {repeat})
|
||||
test_autochdir() none enable 'autochdir' during startup
|
||||
test_feedinput({string}) none add key sequence to input buffer
|
||||
test_garbagecollect_now() none free memory right now for testing
|
||||
test_garbagecollect_soon() none free memory soon for testing
|
||||
test_getvalue({string}) any get value of an internal variable
|
||||
test_ignore_error({expr}) none ignore a specific error
|
||||
test_null_blob() Blob null value for testing
|
||||
@@ -3101,6 +3166,18 @@ browsedir({title}, {initdir})
|
||||
When the "Cancel" button is hit, something went wrong, or
|
||||
browsing is not possible, an empty string is returned.
|
||||
|
||||
bufadd({name}) *bufadd()*
|
||||
Add a buffer to the buffer list with {name}.
|
||||
If a buffer for file {name} already exists, return that buffer
|
||||
number. Otherwise return the buffer number of the newly
|
||||
created buffer. When {name} is an empty string then a new
|
||||
buffer is always created.
|
||||
The buffer will not have' 'buflisted' set and not be loaded
|
||||
yet. To add some text to the buffer use this: >
|
||||
let bufnr = bufadd('someName')
|
||||
call bufload(bufnr)
|
||||
call setbufline(bufnr, 1, ['some', 'text'])
|
||||
|
||||
bufexists({expr}) *bufexists()*
|
||||
The result is a Number, which is |TRUE| if a buffer called
|
||||
{expr} exists.
|
||||
@@ -3130,6 +3207,15 @@ buflisted({expr}) *buflisted()*
|
||||
{expr} exists and is listed (has the 'buflisted' option set).
|
||||
The {expr} argument is used like with |bufexists()|.
|
||||
|
||||
bufload({expr}) *bufload()*
|
||||
Ensure the buffer {expr} is loaded. When the buffer name
|
||||
refers to an existing file then the file is read. Otherwise
|
||||
the buffer will be empty. If the buffer was already loaded
|
||||
then there is no change.
|
||||
If there is an existing swap file for the file of the buffer,
|
||||
there will be no dialog, the buffer will be loaded anyway.
|
||||
The {expr} argument is used like with |bufexists()|.
|
||||
|
||||
bufloaded({expr}) *bufloaded()*
|
||||
The result is a Number, which is |TRUE| if a buffer called
|
||||
{expr} exists and is loaded (shown in a window or hidden).
|
||||
@@ -4694,6 +4780,8 @@ getbufinfo([{dict}])
|
||||
buffer-local variables.
|
||||
windows list of |window-ID|s that display this
|
||||
buffer
|
||||
popups list of popup |window-ID|s that
|
||||
display this buffer
|
||||
|
||||
Examples: >
|
||||
for buf in getbufinfo()
|
||||
@@ -6418,6 +6506,8 @@ listener_flush([{buf}]) *listener_flush()*
|
||||
|
||||
listener_remove({id}) *listener_remove()*
|
||||
Remove a listener previously added with listener_add().
|
||||
Returns zero when {id} could not be found, one when {id} was
|
||||
removed.
|
||||
|
||||
localtime() *localtime()*
|
||||
Return the current time, measured as seconds since 1st Jan
|
||||
@@ -6979,6 +7069,10 @@ perleval({expr}) *perleval()*
|
||||
< [1, 2, 3, 4]
|
||||
{only available when compiled with the |+perl| feature}
|
||||
|
||||
|
||||
popup_ functions are documented here: |popup-functions|.
|
||||
|
||||
|
||||
pow({x}, {y}) *pow()*
|
||||
Return the power of {x} to the exponent {y} as a |Float|.
|
||||
{x} and {y} must evaluate to a |Float| or a |Number|.
|
||||
@@ -7829,6 +7923,23 @@ screencol() *screencol()*
|
||||
nnoremap <expr> GG ":echom ".screencol()."\n"
|
||||
nnoremap <silent> GG :echom screencol()<CR>
|
||||
<
|
||||
screenpos({winid}, {lnum}, {col}) *screenpos()*
|
||||
The result is a Dict with the screen position of the text
|
||||
character in window {winid} at buffer line {lnum} and column
|
||||
{col}. {col} is a one-based byte index.
|
||||
The Dict has these members:
|
||||
row screen row
|
||||
col first screen column
|
||||
endcol last screen column
|
||||
curscol cursor screen column
|
||||
If the specified position is not visible, all values are zero.
|
||||
The "endcol" value differs from "col" when the character
|
||||
occupies more than one screen cell. E.g. for a Tab "col" can
|
||||
be 1 and "endcol" can be 8.
|
||||
The "curscol" value is where the cursor would be placed. For
|
||||
a Tab it would be the same as "endcol", while for a double
|
||||
width character it would be the same as "col".
|
||||
|
||||
screenrow() *screenrow()*
|
||||
The result is a Number, which is the current screen row of the
|
||||
cursor. The top line has number one.
|
||||
@@ -8093,10 +8204,10 @@ setbufline({expr}, {lnum}, {text}) *setbufline()*
|
||||
|
||||
{lnum} is used like with |setline()|.
|
||||
This works like |setline()| for the specified buffer.
|
||||
On success 0 is returned, on failure 1 is returned.
|
||||
|
||||
If {expr} is not a valid buffer or {lnum} is not valid, an
|
||||
error message is given.
|
||||
When {expr} is not a valid buffer, the buffer is not loaded or
|
||||
{lnum} is not valid then 1 is returned. On success 0 is
|
||||
returned.
|
||||
|
||||
setbufvar({expr}, {varname}, {val}) *setbufvar()*
|
||||
Set option or local variable {varname} in buffer {expr} to
|
||||
@@ -8527,6 +8638,7 @@ shiftwidth([{col}]) *shiftwidth()*
|
||||
no {col} argument is given, column 1 will be assumed.
|
||||
|
||||
sign_define({name} [, {dict}]) *sign_define()*
|
||||
sign_define({list})
|
||||
Define a new sign named {name} or modify the attributes of an
|
||||
existing sign. This is similar to the |:sign-define| command.
|
||||
|
||||
@@ -8546,11 +8658,25 @@ sign_define({name} [, {dict}]) *sign_define()*
|
||||
If the sign named {name} already exists, then the attributes
|
||||
of the sign are updated.
|
||||
|
||||
Returns 0 on success and -1 on failure.
|
||||
The one argument {list} can be used to define a list of signs.
|
||||
Each list item is a dictionary with the above items in {dict}
|
||||
and a 'name' item for the sign name.
|
||||
|
||||
Returns 0 on success and -1 on failure. When the one argument
|
||||
{list} is used, then returns a List of values one for each
|
||||
defined sign.
|
||||
|
||||
Examples: >
|
||||
call sign_define("mySign", {"text" : "=>", "texthl" :
|
||||
\ "Error", "linehl" : "Search"})
|
||||
call sign_define("mySign", {
|
||||
\ "text" : "=>",
|
||||
\ "texthl" : "Error",
|
||||
\ "linehl" : "Search"})
|
||||
call sign_define([
|
||||
\ {'name' : 'sign1',
|
||||
\ 'text' : '=>'},
|
||||
\ {'name' : 'sign2',
|
||||
\ 'text' : '!!'}
|
||||
\ ])
|
||||
<
|
||||
sign_getdefined([{name}]) *sign_getdefined()*
|
||||
Get a list of defined signs and their attributes.
|
||||
@@ -8657,9 +8783,9 @@ sign_jump({id}, {group}, {expr})
|
||||
<
|
||||
*sign_place()*
|
||||
sign_place({id}, {group}, {name}, {expr} [, {dict}])
|
||||
Place the sign defined as {name} at line {lnum} in file {expr}
|
||||
and assign {id} and {group} to sign. This is similar to the
|
||||
|:sign-place| command.
|
||||
Place the sign defined as {name} at line {lnum} in file or
|
||||
buffer {expr} and assign {id} and {group} to sign. This is
|
||||
similar to the |:sign-place| command.
|
||||
|
||||
If the sign identifier {id} is zero, then a new identifier is
|
||||
allocated. Otherwise the specified number is used. {group} is
|
||||
@@ -8673,9 +8799,9 @@ sign_place({id}, {group}, {name}, {expr} [, {dict}])
|
||||
values, see |bufname()|.
|
||||
|
||||
The optional {dict} argument supports the following entries:
|
||||
lnum line number in the buffer {expr} where
|
||||
the sign is to be placed. For the
|
||||
accepted values, see |line()|.
|
||||
lnum line number in the file or buffer
|
||||
{expr} where the sign is to be placed.
|
||||
For the accepted values, see |line()|.
|
||||
priority priority of the sign. See
|
||||
|sign-priority| for more information.
|
||||
|
||||
@@ -8703,18 +8829,86 @@ sign_place({id}, {group}, {name}, {expr} [, {dict}])
|
||||
" at line 40 in buffer json.c with priority 90
|
||||
call sign_place(10, 'g3', 'sign4', 'json.c',
|
||||
\ {'lnum' : 40, 'priority' : 90})
|
||||
<
|
||||
*sign_placelist()*
|
||||
sign_placelist({list})
|
||||
Place one or more signs. This is similar to the
|
||||
|sign_place()| function. The {list} argument specifies the
|
||||
List of signs to place. Each list item is a dict with the
|
||||
following sign attributes:
|
||||
buffer buffer name or number. For the accepted
|
||||
values, see |bufname()|.
|
||||
group sign group. {group} functions as a namespace
|
||||
for {id}, thus two groups can use the same
|
||||
IDs. If not specified or set to an empty
|
||||
string, then the global group is used. See
|
||||
|sign-group| for more information.
|
||||
id sign identifier. If not specified or zero,
|
||||
then a new unique identifier is allocated.
|
||||
Otherwise the specified number is used. See
|
||||
|sign-identifier| for more information.
|
||||
lnum line number in the buffer {expr} where the
|
||||
sign is to be placed. For the accepted values,
|
||||
see |line()|.
|
||||
name name of the sign to place. See |sign_define()|
|
||||
for more information.
|
||||
priority priority of the sign. When multiple signs are
|
||||
placed on a line, the sign with the highest
|
||||
priority is used. If not specified, the
|
||||
default value of 10 is used. See
|
||||
|sign-priority| for more information.
|
||||
|
||||
If {id} refers to an existing sign, then the existing sign is
|
||||
modified to use the specified {name} and/or {priority}.
|
||||
|
||||
Returns a List of sign identifiers. If failed to place a
|
||||
sign, the corresponding list item is set to -1.
|
||||
|
||||
Examples: >
|
||||
" Place sign s1 with id 5 at line 20 and id 10 at line
|
||||
" 30 in buffer a.c
|
||||
let [n1, n2] = sign_placelist([
|
||||
\ {'id' : 5,
|
||||
\ 'name' : 's1',
|
||||
\ 'buffer' : 'a.c',
|
||||
\ 'lnum' : 20},
|
||||
\ {'id' : 10,
|
||||
\ 'name' : 's1',
|
||||
\ 'buffer' : 'a.c',
|
||||
\ 'lnum' : 30}
|
||||
\ ])
|
||||
|
||||
" Place sign s1 in buffer a.c at line 40 and 50
|
||||
" with auto-generated identifiers
|
||||
let [n1, n2] = sign_placelist([
|
||||
\ {'name' : 's1',
|
||||
\ 'buffer' : 'a.c',
|
||||
\ 'lnum' : 40},
|
||||
\ {'name' : 's1',
|
||||
\ 'buffer' : 'a.c',
|
||||
\ 'lnum' : 50}
|
||||
\ ])
|
||||
<
|
||||
sign_undefine([{name}]) *sign_undefine()*
|
||||
sign_undefine({list})
|
||||
Deletes a previously defined sign {name}. This is similar to
|
||||
the |:sign-undefine| command. If {name} is not supplied, then
|
||||
deletes all the defined signs.
|
||||
|
||||
Returns 0 on success and -1 on failure.
|
||||
The one argument {list} can be used to undefine a list of
|
||||
signs. Each list item is the name of a sign.
|
||||
|
||||
Returns 0 on success and -1 on failure. For the one argument
|
||||
{list} call, returns a list of values one for each undefined
|
||||
sign.
|
||||
|
||||
Examples: >
|
||||
" Delete a sign named mySign
|
||||
call sign_undefine("mySign")
|
||||
|
||||
" Delete signs 'sign1' and 'sign2'
|
||||
call sign_undefine(["sign1", "sign2"])
|
||||
|
||||
" Delete all the signs
|
||||
call sign_undefine()
|
||||
<
|
||||
@@ -8760,6 +8954,34 @@ sign_unplace({group} [, {dict}]) *sign_unplace()*
|
||||
" Remove all the placed signs from all the buffers
|
||||
call sign_unplace('*')
|
||||
<
|
||||
sign_unplacelist({list}) *sign_unplacelist()*
|
||||
Remove previously placed signs from one or more buffers. This
|
||||
is similar to the |sign_unplace()| function.
|
||||
|
||||
The {list} argument specifies the List of signs to remove.
|
||||
Each list item is a dict with the following sign attributes:
|
||||
buffer buffer name or number. For the accepted
|
||||
values, see |bufname()|. If not specified,
|
||||
then the specified sign is removed from all
|
||||
the buffers.
|
||||
group sign group name. If not specified or set to an
|
||||
empty string, then the global sign group is
|
||||
used. If set to '*', then all the groups
|
||||
including the global group are used.
|
||||
id sign identifier. If not specified, then all
|
||||
the signs in the specified group are removed.
|
||||
|
||||
Returns a List where an entry is set to 0 if the corresponding
|
||||
sign was successfully removed or -1 on failure.
|
||||
|
||||
Example: >
|
||||
" Remove sign with id 10 from buffer a.vim and sign
|
||||
" with id 20 from buffer b.vim
|
||||
call sign_unplacelist([
|
||||
\ {'id' : 10, 'buffer' : "a.vim"},
|
||||
\ {'id' : 20, 'buffer' : 'b.vim'},
|
||||
\ ])
|
||||
<
|
||||
simplify({filename}) *simplify()*
|
||||
Simplify the file name as much as possible without changing
|
||||
the meaning. Shortcuts (on MS-Windows) or symbolic links (on
|
||||
@@ -8854,7 +9076,7 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
|
||||
<
|
||||
sound_clear() *sound_clear()*
|
||||
Stop playing all sounds.
|
||||
{only available when compiled with the +sound feature}
|
||||
{only available when compiled with the |+sound| feature}
|
||||
|
||||
*sound_playevent()*
|
||||
sound_playevent({name} [, {callback}])
|
||||
@@ -8863,20 +9085,25 @@ sound_playevent({name} [, {callback}])
|
||||
are used. On Ubuntu they may be found in
|
||||
/usr/share/sounds/freedesktop/stereo. Example: >
|
||||
call sound_playevent('bell')
|
||||
< On MS-Windows, {name} can be SystemAsterisk, SystemDefault,
|
||||
SystemExclamation, SystemExit, SystemHand, SystemQuestion,
|
||||
SystemStart, SystemWelcome, etc.
|
||||
|
||||
< When {callback} is specified it is invoked when the sound is
|
||||
When {callback} is specified it is invoked when the sound is
|
||||
finished. The first argument is the sound ID, the second
|
||||
argument is the status:
|
||||
0 sound was played to the end
|
||||
1 sound was interrupted
|
||||
2 error occured after sound started
|
||||
2 error occurred after sound started
|
||||
Example: >
|
||||
func Callback(id, status)
|
||||
echomsg "sound " .. a:id .. " finished with " .. a:status
|
||||
endfunc
|
||||
call sound_playevent('bell', 'Callback')
|
||||
|
||||
< Returns the sound ID, which can be passed to `sound_stop()`.
|
||||
< MS-Windows: {callback} doesn't work for this function.
|
||||
|
||||
Returns the sound ID, which can be passed to `sound_stop()`.
|
||||
Returns zero if the sound could not be played.
|
||||
{only available when compiled with the |+sound| feature}
|
||||
|
||||
@@ -8892,6 +9119,10 @@ sound_playfile({path} [, {callback}])
|
||||
sound_stop({id}) *sound_stop()*
|
||||
Stop playing sound {id}. {id} must be previously returned by
|
||||
`sound_playevent()` or `sound_playfile()`.
|
||||
|
||||
On MS-Windows, this does not work for event sound started by
|
||||
`sound_playevent()`. To stop event sounds, use `sound_clear()`.
|
||||
|
||||
{only available when compiled with the |+sound| feature}
|
||||
|
||||
*soundfold()*
|
||||
@@ -9591,364 +9822,7 @@ tempname() *tempname()* *temp-file-name*
|
||||
For MS-Windows forward slashes are used when the 'shellslash'
|
||||
option is set or when 'shellcmdflag' starts with '-'.
|
||||
|
||||
*term_dumpdiff()*
|
||||
term_dumpdiff({filename}, {filename} [, {options}])
|
||||
Open a new window displaying the difference between the two
|
||||
files. The files must have been created with
|
||||
|term_dumpwrite()|.
|
||||
Returns the buffer number or zero when the diff fails.
|
||||
Also see |terminal-diff|.
|
||||
NOTE: this does not work with double-width characters yet.
|
||||
|
||||
The top part of the buffer contains the contents of the first
|
||||
file, the bottom part of the buffer contains the contents of
|
||||
the second file. The middle part shows the differences.
|
||||
The parts are separated by a line of equals.
|
||||
|
||||
If the {options} argument is present, it must be a Dict with
|
||||
these possible members:
|
||||
"term_name" name to use for the buffer name, instead
|
||||
of the first file name.
|
||||
"term_rows" vertical size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"term_cols" horizontal size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"vertical" split the window vertically
|
||||
"curwin" use the current window, do not split the
|
||||
window; fails if the current buffer
|
||||
cannot be |abandon|ed
|
||||
"bufnr" do not create a new buffer, use the
|
||||
existing buffer "bufnr". This buffer
|
||||
must have been previously created with
|
||||
term_dumpdiff() or term_dumpload() and
|
||||
visible in a window.
|
||||
"norestore" do not add the terminal window to a
|
||||
session file
|
||||
|
||||
Each character in the middle part indicates a difference. If
|
||||
there are multiple differences only the first in this list is
|
||||
used:
|
||||
X different character
|
||||
w different width
|
||||
f different foreground color
|
||||
b different background color
|
||||
a different attribute
|
||||
+ missing position in first file
|
||||
- missing position in second file
|
||||
|
||||
Using the "s" key the top and bottom parts are swapped. This
|
||||
makes it easy to spot a difference.
|
||||
|
||||
*term_dumpload()*
|
||||
term_dumpload({filename} [, {options}])
|
||||
Open a new window displaying the contents of {filename}
|
||||
The file must have been created with |term_dumpwrite()|.
|
||||
Returns the buffer number or zero when it fails.
|
||||
Also see |terminal-diff|.
|
||||
|
||||
For {options} see |term_dumpdiff()|.
|
||||
|
||||
*term_dumpwrite()*
|
||||
term_dumpwrite({buf}, {filename} [, {options}])
|
||||
Dump the contents of the terminal screen of {buf} in the file
|
||||
{filename}. This uses a format that can be used with
|
||||
|term_dumpload()| and |term_dumpdiff()|.
|
||||
If the job in the terminal already finished an error is given:
|
||||
*E958*
|
||||
If {filename} already exists an error is given: *E953*
|
||||
Also see |terminal-diff|.
|
||||
|
||||
{options} is a dictionary with these optional entries:
|
||||
"rows" maximum number of rows to dump
|
||||
"columns" maximum number of columns to dump
|
||||
|
||||
term_getaltscreen({buf}) *term_getaltscreen()*
|
||||
Returns 1 if the terminal of {buf} is using the alternate
|
||||
screen.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getansicolors({buf}) *term_getansicolors()*
|
||||
Get the ANSI color palette in use by terminal {buf}.
|
||||
Returns a List of length 16 where each element is a String
|
||||
representing a color in hexadecimal "#rrggbb" format.
|
||||
Also see |term_setansicolors()| and |g:terminal_ansi_colors|.
|
||||
If neither was used returns the default colors.
|
||||
|
||||
{buf} is used as with |term_getsize()|. If the buffer does not
|
||||
exist or is not a terminal window, an empty list is returned.
|
||||
{only available when compiled with the |+terminal| feature and
|
||||
with GUI enabled and/or the |+termguicolors| feature}
|
||||
|
||||
term_getattr({attr}, {what}) *term_getattr()*
|
||||
Given {attr}, a value returned by term_scrape() in the "attr"
|
||||
item, return whether {what} is on. {what} can be one of:
|
||||
bold
|
||||
italic
|
||||
underline
|
||||
strike
|
||||
reverse
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getcursor({buf}) *term_getcursor()*
|
||||
Get the cursor position of terminal {buf}. Returns a list with
|
||||
two numbers and a dictionary: [row, col, dict].
|
||||
|
||||
"row" and "col" are one based, the first screen cell is row
|
||||
1, column 1. This is the cursor position of the terminal
|
||||
itself, not of the Vim window.
|
||||
|
||||
"dict" can have these members:
|
||||
"visible" one when the cursor is visible, zero when it
|
||||
is hidden.
|
||||
"blink" one when the cursor is blinking, zero when it
|
||||
is not blinking.
|
||||
"shape" 1 for a block cursor, 2 for underline and 3
|
||||
for a vertical bar.
|
||||
"color" color of the cursor, e.g. "green"
|
||||
|
||||
{buf} must be the buffer number of a terminal window. If the
|
||||
buffer does not exist or is not a terminal window, an empty
|
||||
list is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getjob({buf}) *term_getjob()*
|
||||
Get the Job associated with terminal window {buf}.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
Returns |v:null| when there is no job.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getline({buf}, {row}) *term_getline()*
|
||||
Get a line of text from the terminal window of {buf}.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
|
||||
The first line has {row} one. When {row} is "." the cursor
|
||||
line is used. When {row} is invalid an empty string is
|
||||
returned.
|
||||
|
||||
To get attributes of each character use |term_scrape()|.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getscrolled({buf}) *term_getscrolled()*
|
||||
Return the number of lines that scrolled to above the top of
|
||||
terminal {buf}. This is the offset between the row number
|
||||
used for |term_getline()| and |getline()|, so that: >
|
||||
term_getline(buf, N)
|
||||
< is equal to: >
|
||||
getline(N + term_getscrolled(buf))
|
||||
< (if that line exists).
|
||||
|
||||
{buf} is used as with |term_getsize()|.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getsize({buf}) *term_getsize()*
|
||||
Get the size of terminal {buf}. Returns a list with two
|
||||
numbers: [rows, cols]. This is the size of the terminal, not
|
||||
the window containing the terminal.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. Use an
|
||||
empty string for the current buffer. If the buffer does not
|
||||
exist or is not a terminal window, an empty list is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getstatus({buf}) *term_getstatus()*
|
||||
Get the status of terminal {buf}. This returns a comma
|
||||
separated list of these items:
|
||||
running job is running
|
||||
finished job has finished
|
||||
normal in Terminal-Normal mode
|
||||
One of "running" or "finished" is always present.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. If the
|
||||
buffer does not exist or is not a terminal window, an empty
|
||||
string is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_gettitle({buf}) *term_gettitle()*
|
||||
Get the title of terminal {buf}. This is the title that the
|
||||
job in the terminal has set.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. If the
|
||||
buffer does not exist or is not a terminal window, an empty
|
||||
string is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_gettty({buf} [, {input}]) *term_gettty()*
|
||||
Get the name of the controlling terminal associated with
|
||||
terminal window {buf}. {buf} is used as with |term_getsize()|.
|
||||
|
||||
When {input} is omitted or 0, return the name for writing
|
||||
(stdout). When {input} is 1 return the name for reading
|
||||
(stdin). On UNIX, both return same name.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_list() *term_list()*
|
||||
Return a list with the buffer numbers of all buffers for
|
||||
terminal windows.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_scrape({buf}, {row}) *term_scrape()*
|
||||
Get the contents of {row} of terminal screen of {buf}.
|
||||
For {buf} see |term_getsize()|.
|
||||
|
||||
The first line has {row} one. When {row} is "." the cursor
|
||||
line is used. When {row} is invalid an empty string is
|
||||
returned.
|
||||
|
||||
Return a List containing a Dict for each screen cell:
|
||||
"chars" character(s) at the cell
|
||||
"fg" foreground color as #rrggbb
|
||||
"bg" background color as #rrggbb
|
||||
"attr" attributes of the cell, use |term_getattr()|
|
||||
to get the individual flags
|
||||
"width" cell width: 1 or 2
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_sendkeys({buf}, {keys}) *term_sendkeys()*
|
||||
Send keystrokes {keys} to terminal {buf}.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
|
||||
{keys} are translated as key sequences. For example, "\<c-x>"
|
||||
means the character CTRL-X.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_setansicolors({buf}, {colors}) *term_setansicolors()*
|
||||
Set the ANSI color palette used by terminal {buf}.
|
||||
{colors} must be a List of 16 valid color names or hexadecimal
|
||||
color codes, like those accepted by |highlight-guifg|.
|
||||
Also see |term_getansicolors()| and |g:terminal_ansi_colors|.
|
||||
|
||||
The colors normally are:
|
||||
0 black
|
||||
1 dark red
|
||||
2 dark green
|
||||
3 brown
|
||||
4 dark blue
|
||||
5 dark magenta
|
||||
6 dark cyan
|
||||
7 light grey
|
||||
8 dark grey
|
||||
9 red
|
||||
10 green
|
||||
11 yellow
|
||||
12 blue
|
||||
13 magenta
|
||||
14 cyan
|
||||
15 white
|
||||
|
||||
These colors are used in the GUI and in the terminal when
|
||||
'termguicolors' is set. When not using GUI colors (GUI mode
|
||||
or 'termguicolors'), the terminal window always uses the 16
|
||||
ANSI colors of the underlying terminal.
|
||||
{only available when compiled with the |+terminal| feature and
|
||||
with GUI enabled and/or the |+termguicolors| feature}
|
||||
|
||||
term_setkill({buf}, {how}) *term_setkill()*
|
||||
When exiting Vim or trying to close the terminal window in
|
||||
another way, {how} defines whether the job in the terminal can
|
||||
be stopped.
|
||||
When {how} is empty (the default), the job will not be
|
||||
stopped, trying to exit will result in |E947|.
|
||||
Otherwise, {how} specifies what signal to send to the job.
|
||||
See |job_stop()| for the values.
|
||||
|
||||
After sending the signal Vim will wait for up to a second to
|
||||
check that the job actually stopped.
|
||||
|
||||
term_setrestore({buf}, {command}) *term_setrestore()*
|
||||
Set the command to write in a session file to restore the job
|
||||
in this terminal. The line written in the session file is: >
|
||||
terminal ++curwin ++cols=%d ++rows=%d {command}
|
||||
< Make sure to escape the command properly.
|
||||
|
||||
Use an empty {command} to run 'shell'.
|
||||
Use "NONE" to not restore this window.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_setsize({buf}, {rows}, {cols}) *term_setsize()* *E955*
|
||||
Set the size of terminal {buf}. The size of the window
|
||||
containing the terminal will also be adjusted, if possible.
|
||||
If {rows} or {cols} is zero or negative, that dimension is not
|
||||
changed.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. Use an
|
||||
empty string for the current buffer. If the buffer does not
|
||||
exist or is not a terminal window, an error is given.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_start({cmd} [, {options}]) *term_start()*
|
||||
Open a terminal window and run {cmd} in it.
|
||||
|
||||
{cmd} can be a string or a List, like with |job_start()|. The
|
||||
string "NONE" can be used to open a terminal window without
|
||||
starting a job, the pty of the terminal can be used by a
|
||||
command like gdb.
|
||||
|
||||
Returns the buffer number of the terminal window. If {cmd}
|
||||
cannot be executed the window does open and shows an error
|
||||
message.
|
||||
If opening the window fails zero is returned.
|
||||
|
||||
{options} are similar to what is used for |job_start()|, see
|
||||
|job-options|. However, not all options can be used. These
|
||||
are supported:
|
||||
all timeout options
|
||||
"stoponexit", "cwd", "env"
|
||||
"callback", "out_cb", "err_cb", "exit_cb", "close_cb"
|
||||
"in_io", "in_top", "in_bot", "in_name", "in_buf"
|
||||
"out_io", "out_name", "out_buf", "out_modifiable", "out_msg"
|
||||
"err_io", "err_name", "err_buf", "err_modifiable", "err_msg"
|
||||
However, at least one of stdin, stdout or stderr must be
|
||||
connected to the terminal. When I/O is connected to the
|
||||
terminal then the callback function for that part is not used.
|
||||
|
||||
There are extra options:
|
||||
"term_name" name to use for the buffer name, instead
|
||||
of the command name.
|
||||
"term_rows" vertical size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"term_cols" horizontal size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"vertical" split the window vertically; note that
|
||||
other window position can be defined with
|
||||
command modifiers, such as |:belowright|.
|
||||
"curwin" use the current window, do not split the
|
||||
window; fails if the current buffer
|
||||
cannot be |abandon|ed
|
||||
"hidden" do not open a window
|
||||
"norestore" do not add the terminal window to a
|
||||
session file
|
||||
"term_kill" what to do when trying to close the
|
||||
terminal window, see |term_setkill()|
|
||||
"term_finish" What to do when the job is finished:
|
||||
"close": close any windows
|
||||
"open": open window if needed
|
||||
Note that "open" can be interruptive.
|
||||
See |term++close| and |term++open|.
|
||||
"term_opencmd" command to use for opening the window when
|
||||
"open" is used for "term_finish"; must
|
||||
have "%d" where the buffer number goes,
|
||||
e.g. "10split|buffer %d"; when not
|
||||
specified "botright sbuf %d" is used
|
||||
"eof_chars" Text to send after all buffer lines were
|
||||
written to the terminal. When not set
|
||||
CTRL-D is used on MS-Windows. For Python
|
||||
use CTRL-Z or "exit()". For a shell use
|
||||
"exit". A CR is always added.
|
||||
"ansi_colors" A list of 16 color names or hex codes
|
||||
defining the ANSI palette used in GUI
|
||||
color modes. See |g:terminal_ansi_colors|.
|
||||
"tty_type" (MS-Windows only): Specify which pty to
|
||||
use. See 'termwintype' for the values.
|
||||
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_wait({buf} [, {time}]) *term_wait()*
|
||||
Wait for pending updates of {buf} to be handled.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
{time} is how long to wait for updates to arrive in msec. If
|
||||
not set then 10 msec will be used.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
term_ functions are documented here: |terminal-function-details|
|
||||
|
||||
test_alloc_fail({id}, {countdown}, {repeat}) *test_alloc_fail()*
|
||||
This is for testing: If the memory allocation with {id} is
|
||||
@@ -9971,6 +9845,10 @@ test_garbagecollect_now() *test_garbagecollect_now()*
|
||||
internally, and |v:testing| must have been set before calling
|
||||
any function.
|
||||
|
||||
test_garbagecollect_soon() *test_garbagecollect_soon()*
|
||||
Set the flag to call the garbagecollector as if in the main
|
||||
loop. Only to be used in tests.
|
||||
|
||||
test_getvalue({name}) *test_getvalue()*
|
||||
Get the value of an internal variable. These values for
|
||||
{name} are supported:
|
||||
@@ -10034,6 +9912,8 @@ test_override({name}, {val}) *test_override()*
|
||||
fallback to the old engine
|
||||
no_query_mouse do not query the mouse position for "dec"
|
||||
terminals
|
||||
no_wait_return set the "no_wait_return" flag. Not restored
|
||||
with "ALL".
|
||||
ALL clear all overrides ({val} is not used)
|
||||
|
||||
"starting" is to be used when a test should behave like
|
||||
@@ -10162,8 +10042,8 @@ timer_stop({timer}) *timer_stop()*
|
||||
|
||||
timer_stopall() *timer_stopall()*
|
||||
Stop all timers. The timer callbacks will no longer be
|
||||
invoked. Useful if some timers is misbehaving. If there are
|
||||
no timers there is no error.
|
||||
invoked. Useful if a timer is misbehaving. If there are no
|
||||
timers there is no error.
|
||||
|
||||
{only available when compiled with the |+timers| feature}
|
||||
|
||||
@@ -11525,13 +11405,24 @@ text...
|
||||
If {marker} is not supplied, then "." is used as the
|
||||
default marker.
|
||||
|
||||
Any white space characters in the lines of text are
|
||||
preserved. If "trim" is specified before {marker},
|
||||
then all the leading indentation exactly matching the
|
||||
leading indentation before `let` is stripped from the
|
||||
input lines and the line containing {marker}. Note
|
||||
that the difference between space and tab matters
|
||||
here.
|
||||
Without "trim" any white space characters in the lines
|
||||
of text are preserved. If "trim" is specified before
|
||||
{marker}, then indentation is stripped so you can do: >
|
||||
let text =<< trim END
|
||||
if ok
|
||||
echo 'done'
|
||||
endif
|
||||
END
|
||||
< Results in: ["if ok", " echo 'done'", "endif"]
|
||||
The marker must line up with "let" and the indentation
|
||||
of the first line is removed from all the text lines.
|
||||
Specifically: all the leading indentation exactly
|
||||
matching the leading indentation of the first
|
||||
non-empty text line is stripped from the input lines.
|
||||
All leading indentation exactly matching the leading
|
||||
indentation before `let` is stripped from the line
|
||||
containing {marker}. Note that the difference between
|
||||
space and tab matters here.
|
||||
|
||||
If {var-name} didn't exist yet, it is created.
|
||||
Cannot be followed by another command, but can be
|
||||
@@ -11567,7 +11458,6 @@ text...
|
||||
# Number
|
||||
* Funcref
|
||||
|
||||
|
||||
:unl[et][!] {name} ... *:unlet* *:unl* *E108* *E795*
|
||||
Remove the internal variable {name}. Several variable
|
||||
names can be given, they are all removed. The name
|
||||
@@ -11592,7 +11482,38 @@ text...
|
||||
No error message is given for a non-existing
|
||||
variable, also without !.
|
||||
If the system does not support deleting an environment
|
||||
variable, it is made emtpy.
|
||||
variable, it is made empty.
|
||||
|
||||
*:cons* *:const*
|
||||
:cons[t] {var-name} = {expr1}
|
||||
:cons[t] [{name1}, {name2}, ...] = {expr1}
|
||||
:cons[t] [{name}, ..., ; {lastname}] = {expr1}
|
||||
:cons[t] {var-name} =<< [trim] {marker}
|
||||
text...
|
||||
text...
|
||||
{marker}
|
||||
Similar to |:let|, but additionally lock the variable
|
||||
after setting the value. This is the same as locking
|
||||
the variable with |:lockvar| just after |:let|, thus: >
|
||||
:const x = 1
|
||||
< is equivalent to: >
|
||||
:let x = 1
|
||||
:lockvar 1 x
|
||||
< This is useful if you want to make sure the variable
|
||||
is not modified.
|
||||
*E995*
|
||||
|:const| does not allow to for changing a variable: >
|
||||
:let x = 1
|
||||
:const x = 2 " Error!
|
||||
< *E996*
|
||||
Note that environment variables, option values and
|
||||
register values cannot be used here, since they cannot
|
||||
be locked.
|
||||
|
||||
:cons[t]
|
||||
:cons[t] {var-name}
|
||||
If no argument is given or only {var-name} is given,
|
||||
the behavior is the same as |:let|.
|
||||
|
||||
:lockv[ar][!] [depth] {name} ... *:lockvar* *:lockv*
|
||||
Lock the internal variable {name}. Locking means that
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*filetype.txt* For Vim version 8.1. Last change: 2019 Jul 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -642,6 +642,16 @@ To disable this behavior, set the following variable in your vimrc: >
|
||||
let g:python_recommended_style = 0
|
||||
|
||||
|
||||
QF QUICKFIX *qf.vim* *ft-qf-plugin*
|
||||
|
||||
The "qf" filetype is used for the quickfix window, see |quickfix-window|.
|
||||
|
||||
The quickfix filetype plugin includes configuration for displaying the command
|
||||
that produced the quickfix list in the |status-line|. To disable this setting,
|
||||
configure as follows: >
|
||||
:let g:qf_disable_statusline = 1
|
||||
|
||||
|
||||
R MARKDOWN *ft-rmd-plugin*
|
||||
|
||||
By default ftplugin/html.vim is not sourced. If you want it sourced, add to
|
||||
|
||||
+3
-3
@@ -802,9 +802,9 @@ nr Name Normal action ~
|
||||
30 WinMinWidth make current window use few columns
|
||||
|
||||
*hidden-menus* *win32-hidden-menus*
|
||||
In the Win32 and GTK+ GUI, starting a menu name with ']' excludes that menu
|
||||
from the main menu bar. You must then use the |:popup| or |:tearoff| command
|
||||
to display it.
|
||||
In the Win32, MacVim, and GTK+ GUI, starting a menu name with ']' excludes
|
||||
that menu from the main menu bar. You must then use the |:popup| or
|
||||
|:tearoff| command to display it.
|
||||
|
||||
*window-toolbar* *WinBar*
|
||||
Each window can have a local toolbar. This uses the first line of the window,
|
||||
|
||||
@@ -247,6 +247,8 @@ Here is a list of relevant dictionary entries:
|
||||
KEY VALUE ~
|
||||
*MMCellWidthMultiplier* width of a normal glyph in em units [float]
|
||||
*MMDialogsTrackPwd* open/save dialogs track the Vim pwd [bool]
|
||||
*MMDisableLaunchAnimation* disable launch animation when opening a new
|
||||
MacVim window [bool]
|
||||
*MMFullScreenFadeTime* fade delay for non-native fullscreen [float]
|
||||
*MMLoginShellArgument* login shell parameter [string]
|
||||
*MMLoginShellCommand* which shell to use to launch Vim [string]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 8.1. Last change: 2019 Jun 09
|
||||
*index.txt* For Vim version 8.1. Last change: 2019 Jun 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1241,6 +1241,7 @@ tag command action ~
|
||||
|:compiler| :comp[iler] do settings for a specific compiler
|
||||
|:continue| :con[tinue] go back to :while
|
||||
|:confirm| :conf[irm] prompt user when confirmation required
|
||||
|:const| :cons[t] create a variable as a constant
|
||||
|:copen| :cope[n] open quickfix window
|
||||
|:cprevious| :cp[revious] go to previous error
|
||||
|:cpfile| :cpf[ile] go to last error in previous file
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 8.1. Last change: 2019 May 07
|
||||
*intro.txt* For Vim version 8.1. Last change: 2019 Jun 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -65,14 +65,21 @@ contain links to the most recent version of Vim. The FAQ is a list of
|
||||
Frequently Asked Questions. Read this if you have problems.
|
||||
|
||||
Vim home page: https://www.vim.org/
|
||||
Vim FAQ: https://vimhelp.appspot.com/vim_faq.txt.html
|
||||
Vim FAQ: https://vimhelp.org/vim_faq.txt.html
|
||||
Downloading: https://www.vim.org/download.php
|
||||
|
||||
|
||||
Asking questions, finding answers: https://vi.stackexchange.com/
|
||||
"Vi and Vim Stack Exchange is a question and answer site for people using the
|
||||
vi and Vim families of text editors"
|
||||
|
||||
|
||||
Usenet News group where Vim is discussed: *news* *usenet*
|
||||
comp.editors
|
||||
This group is also for other editors. If you write about Vim, don't forget to
|
||||
mention that.
|
||||
You can access it here:
|
||||
https://groups.google.com/forum/#!topic/comp.editors
|
||||
|
||||
*mail-list* *maillist*
|
||||
There are several mailing lists for Vim:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 8.1. Last change: 2019 Apr 28
|
||||
*mbyte.txt* For Vim version 8.1. Last change: 2019 Jul 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@@ -943,11 +943,12 @@ To input multibyte characters on Windows, you can use an Input Method Editor
|
||||
IME many many many times. Because IME with status on is hooking all of your
|
||||
key inputs, you cannot input 'j', 'k', or almost all of keys to Vim directly.
|
||||
|
||||
This |+multi_byte_ime| feature help this. It reduce times of switch status of
|
||||
IME manually. In normal mode, there are almost no need working IME, even
|
||||
editing multibyte text. So exiting insert mode with ESC, Vim memorize last
|
||||
status of IME and force turn off IME. When re-enter insert mode, Vim revert
|
||||
IME status to that memorized automatically.
|
||||
The |+multi_byte_ime| feature helps for this. It reduces the number of times
|
||||
the IME status has to be switched manually. In Normal mode, there is almost
|
||||
no need to use IME, even when editing multibyte text. So when exiting Insert
|
||||
mode, Vim memorizes the last status of IME and turns off IME. When
|
||||
re-entering Insert mode, Vim sets the IME status to that memorized status
|
||||
automatically.
|
||||
|
||||
This works on not only insert-normal mode, but also search-command input and
|
||||
replace mode.
|
||||
|
||||
+20
-7
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.1. Last change: 2019 May 25
|
||||
*options.txt* For Vim version 8.1. Last change: 2019 Jul 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1147,8 +1147,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
set bexpr=MyBalloonExpr()
|
||||
set ballooneval
|
||||
<
|
||||
Also see |balloon_show()|, can be used if the content of the balloon
|
||||
is to be fetched asynchronously.
|
||||
Also see |balloon_show()|, it can be used if the content of the balloon
|
||||
is to be fetched asynchronously. In that case evaluating
|
||||
'balloonexpr' should result in an empty string. If you get a balloon
|
||||
with only "0" you probably didn't return anything from your function.
|
||||
|
||||
NOTE: The balloon is displayed only if the cursor is on a text
|
||||
character. If the result of evaluating 'balloonexpr' is not empty,
|
||||
@@ -1160,7 +1162,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option cannot be set in a modeline when 'modelineexpr' is off.
|
||||
|
||||
It is not allowed to change text or jump to another window while
|
||||
evaluating 'balloonexpr' |textlock|.
|
||||
evaluating 'balloonexpr', see |textlock|.
|
||||
|
||||
To check whether line breaks in the balloon text work use this check: >
|
||||
if has("balloon_multiline")
|
||||
@@ -5534,7 +5536,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
rows in the window, depending on whether 'number' or 'relativenumber'
|
||||
is set. Thus with the Vim default of 4 there is room for a line number
|
||||
up to 999. When the buffer has 1000 lines five columns will be used.
|
||||
The minimum value is 1, the maximum value is 10.
|
||||
The minimum value is 1, the maximum value is 20.
|
||||
NOTE: This option is set to the Vi default value when 'compatible' is
|
||||
set and to the Vim default value when 'compatible' is reset.
|
||||
|
||||
@@ -5774,7 +5776,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{not available when compiled without the |+windows| or
|
||||
|+quickfix| features}
|
||||
Default height for a preview window. Used for |:ptag| and associated
|
||||
commands. Used for |CTRL-W_}| when no count is given.
|
||||
commands. Used for |CTRL-W_}| when no count is given. Not used when
|
||||
'previewpopup' is set.
|
||||
|
||||
*'previewpopup'* *'pvp'*
|
||||
'previewpopup' 'pvp' string (default empty)
|
||||
global
|
||||
{not available when compiled without the |+windows|,
|
||||
|+textprop| or |+quickfix| feature}
|
||||
When not empty a popup window is used for commands that would open a
|
||||
preview window. See |preview-popup|.
|
||||
|
||||
*'previewwindow'* *'nopreviewwindow'*
|
||||
*'pvw'* *'nopvw'* *E590*
|
||||
@@ -6952,6 +6963,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"auto" only when there is a sign to display
|
||||
"no" never
|
||||
"yes" always
|
||||
"number" display signs in the 'number' column. If the number
|
||||
column is not present, then behaves like "auto".
|
||||
|
||||
|
||||
*'smartcase'* *'scs'* *'nosmartcase'* *'noscs'*
|
||||
@@ -8231,7 +8244,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
already.
|
||||
Additionally, if vim is compiled with the |+termresponse| feature and
|
||||
|t_RV| is set to the escape sequence to request the xterm version
|
||||
number, more intelligent detection process runs.
|
||||
number, more intelligent detection is done.
|
||||
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 Vim detects Mac
|
||||
Terminal.app, iTerm2 or mintty, and when the xterm version is 277 or
|
||||
|
||||
+57
-37
@@ -1,4 +1,4 @@
|
||||
*pi_netrw.txt* For Vim version 8.1. Last change: 2019 May 05
|
||||
*pi_netrw.txt* For Vim version 8.1. Last change: 2019 Jul 17
|
||||
|
||||
------------------------------------------------
|
||||
NETRW REFERENCE MANUAL by Charles E. Campbell
|
||||
@@ -1184,7 +1184,7 @@ One may easily "bookmark" the currently browsed directory by using >
|
||||
*.netrwbook*
|
||||
Bookmarks are retained in between sessions of vim in a file called .netrwbook
|
||||
as a |List|, which is typically stored in the first directory on the user's
|
||||
'|runtimepath|'; entries are kept in sorted order.
|
||||
'runtimepath'; entries are kept in sorted order.
|
||||
|
||||
If there are marked files and/or directories, mb will add them to the bookmark
|
||||
list.
|
||||
@@ -2094,7 +2094,7 @@ track netrw's browsing directory.
|
||||
|
||||
However, given the default setting for g:netrw_keepdir of 1 where netrw
|
||||
maintains its own separate notion of the current directory, in order to make
|
||||
the two directories the same, use the "c" map (just type c). That map will
|
||||
the two directories the same, use the "cd" map (type cd). That map will
|
||||
set Vim's notion of the current directory to netrw's current browsing
|
||||
directory.
|
||||
|
||||
@@ -2739,7 +2739,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
=0 : show all
|
||||
=1 : show not-hidden files
|
||||
=2 : show hidden files only
|
||||
default: =0
|
||||
default: =1
|
||||
|
||||
*g:netrw_home* The home directory for where bookmarks and
|
||||
history are saved (as .netrwbook and
|
||||
@@ -2940,14 +2940,23 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
|
||||
netrwBak : *.bak
|
||||
netrwCompress: *.gz *.bz2 *.Z *.zip
|
||||
netrwCoreDump: core.\d\+
|
||||
netrwData : *.dat
|
||||
netrwDoc : *.doc,*.txt,*.pdf,
|
||||
*.pdf,*.docx
|
||||
netrwHdr : *.h
|
||||
netrwLex : *.l *.lex
|
||||
netrwLib : *.a *.so *.lib *.dll
|
||||
netrwMakefile: [mM]akefile *.mak
|
||||
netrwObj : *.o *.obj
|
||||
netrwPix : *.bmp,*.fit,*.fits,*.gif,
|
||||
*.jpg,*.jpeg,*.pcx,*.ppc
|
||||
*.pgm,*.png,*.psd,*.rgb
|
||||
*.tif,*.xbm,*.xcf
|
||||
netrwTags : tags ANmenu ANtags
|
||||
netrwTilde : *
|
||||
netrwTmp : tmp* *tmp
|
||||
netrwYacc : *.y
|
||||
|
||||
In addition, those groups mentioned in
|
||||
|'suffixes'| are also added to the special
|
||||
@@ -3032,8 +3041,9 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
current netrw buffer's window to be used for
|
||||
the new window.
|
||||
If g:netrw_winsize is less than zero, then
|
||||
the absolute value of g:netrw_winsize lines
|
||||
or columns will be used for the new window.
|
||||
the absolute value of g:netrw_winsize will be
|
||||
used to specify the quantity of lines or
|
||||
columns for the new window.
|
||||
If g:netrw_winsize is zero, then a normal
|
||||
split will be made (ie. |'equalalways'| will
|
||||
take effect, for example).
|
||||
@@ -3371,7 +3381,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
(This section is likely to grow as I get feedback)
|
||||
(also see |netrw-debug|)
|
||||
*netrw-p1*
|
||||
P1. I use windows 95, and my ftp dumps four blank lines at the
|
||||
P1. I use windows 95, and my ftp dumps four blank lines at the {{{2
|
||||
end of every read.
|
||||
|
||||
See |netrw-fixup|, and put the following into your
|
||||
@@ -3380,7 +3390,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
let g:netrw_win95ftp= 1
|
||||
|
||||
*netrw-p2*
|
||||
P2. I use Windows, and my network browsing with ftp doesn't sort by
|
||||
P2. I use Windows, and my network browsing with ftp doesn't sort by {{{2
|
||||
time or size! -or- The remote system is a Windows server; why
|
||||
don't I get sorts by time or size?
|
||||
|
||||
@@ -3407,7 +3417,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
|
||||
|
||||
*netrw-p3*
|
||||
P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw
|
||||
P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw {{{2
|
||||
used ssh! That wasn't what I asked for...
|
||||
|
||||
Netrw has two methods for browsing remote directories: ssh
|
||||
@@ -3416,7 +3426,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
listing), netrw will use the given protocol to do so.
|
||||
|
||||
*netrw-p4*
|
||||
P4. I would like long listings to be the default.
|
||||
P4. I would like long listings to be the default. {{{2
|
||||
|
||||
Put the following statement into your |.vimrc|: >
|
||||
|
||||
@@ -3426,7 +3436,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
you can set.
|
||||
|
||||
*netrw-p5*
|
||||
P5. My times come up oddly in local browsing
|
||||
P5. My times come up oddly in local browsing {{{2
|
||||
|
||||
Does your system's strftime() accept the "%c" to yield dates
|
||||
such as "Sun Apr 27 11:49:23 1997"? If not, do a
|
||||
@@ -3436,7 +3446,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
let g:netrw_timefmt= "%X" (where X is the option)
|
||||
<
|
||||
*netrw-p6*
|
||||
P6. I want my current directory to track my browsing.
|
||||
P6. I want my current directory to track my browsing. {{{2
|
||||
How do I do that?
|
||||
|
||||
Put the following line in your |.vimrc|:
|
||||
@@ -3444,8 +3454,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
let g:netrw_keepdir= 0
|
||||
<
|
||||
*netrw-p7*
|
||||
P7. I use Chinese (or other non-ascii) characters in my filenames, and
|
||||
netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
|
||||
P7. I use Chinese (or other non-ascii) characters in my filenames, {{{2
|
||||
and netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
|
||||
|
||||
(taken from an answer provided by Wu Yongwei on the vim
|
||||
mailing list)
|
||||
@@ -3459,7 +3469,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
(...it is one more reason to recommend that people use utf-8!)
|
||||
|
||||
*netrw-p8*
|
||||
P8. I'm getting "ssh is not executable on your system" -- what do I
|
||||
P8. I'm getting "ssh is not executable on your system" -- what do I {{{2
|
||||
do?
|
||||
|
||||
(Dudley Fox) Most people I know use putty for windows ssh. It
|
||||
@@ -3502,7 +3512,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
- Click "Add..."
|
||||
- Set External Editor (adjust path as needed, include
|
||||
the quotes and !.! at the end):
|
||||
"c:\Program Files\Vim\vim81\gvim.exe" !.!
|
||||
"c:\Program Files\Vim\vim70\gvim.exe" !.!
|
||||
- Check that the filetype in the box below is
|
||||
{asterisk}.{asterisk} (all files), or whatever types
|
||||
you want (cec: change {asterisk} to * ; I had to
|
||||
@@ -3542,7 +3552,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
default.
|
||||
|
||||
*netrw-p9* *netrw-ml_get*
|
||||
P9. I'm browsing, changing directory, and bang! ml_get errors
|
||||
P9. I'm browsing, changing directory, and bang! ml_get errors {{{2
|
||||
appear and I have to kill vim. Any way around this?
|
||||
|
||||
Normally netrw attempts to avoid writing swapfiles for
|
||||
@@ -3553,7 +3563,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
let g:netrw_use_noswf= 0
|
||||
<
|
||||
*netrw-p10*
|
||||
P10. I'm being pestered with "[something] is a directory" and
|
||||
P10. I'm being pestered with "[something] is a directory" and {{{2
|
||||
"Press ENTER or type command to continue" prompts...
|
||||
|
||||
The "[something] is a directory" prompt is issued by Vim,
|
||||
@@ -3564,8 +3574,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
your <.vimrc> file.
|
||||
|
||||
*netrw-p11*
|
||||
P11. I want to have two windows; a thin one on the left and my editing
|
||||
window on the right. How may I accomplish this?
|
||||
P11. I want to have two windows; a thin one on the left and my {{{2
|
||||
editing window on the right. How may I accomplish this?
|
||||
|
||||
You probably want netrw running as in a side window. If so, you
|
||||
will likely find that ":[N]Lexplore" does what you want. The
|
||||
@@ -3590,7 +3600,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
|
||||
|
||||
*netrw-p12*
|
||||
P12. My directory isn't sorting correctly, or unwanted letters are
|
||||
P12. My directory isn't sorting correctly, or unwanted letters are {{{2
|
||||
appearing in the listed filenames, or things aren't lining
|
||||
up properly in the wide listing, ...
|
||||
|
||||
@@ -3600,9 +3610,9 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
|
||||
|
||||
*netrw-p13*
|
||||
P13. I'm a Windows + putty + ssh user, and when I attempt to browse,
|
||||
the directories are missing trailing "/"s so netrw treats them
|
||||
as file transfers instead of as attempts to browse
|
||||
P13. I'm a Windows + putty + ssh user, and when I attempt to {{{2
|
||||
browse, the directories are missing trailing "/"s so netrw treats
|
||||
them as file transfers instead of as attempts to browse
|
||||
subdirectories. How may I fix this?
|
||||
|
||||
(mikeyao) If you want to use vim via ssh and putty under Windows,
|
||||
@@ -3621,7 +3631,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
"let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
|
||||
<
|
||||
*netrw-p14*
|
||||
P14. I would like to speed up writes using Nwrite and scp/ssh
|
||||
P14. I would like to speed up writes using Nwrite and scp/ssh {{{2
|
||||
style connections. How? (Thomer M. Gil)
|
||||
|
||||
Try using ssh's ControlMaster and ControlPath (see the ssh_config
|
||||
@@ -3648,8 +3658,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
vim scp://host.domain.com//home/user/.bashrc
|
||||
<
|
||||
*netrw-p15*
|
||||
P15. How may I use a double-click instead of netrw's usual single click
|
||||
to open a file or directory? (Ben Fritz)
|
||||
P15. How may I use a double-click instead of netrw's usual single {{{2
|
||||
click to open a file or directory? (Ben Fritz)
|
||||
|
||||
First, disable netrw's mapping with >
|
||||
let g:netrw_mousemaps= 0
|
||||
@@ -3661,7 +3671,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
(see |g:netrw_mousemaps|)
|
||||
|
||||
*netrw-p16*
|
||||
P16. When editing remote files (ex. :e ftp://hostname/path/file),
|
||||
P16. When editing remote files (ex. :e ftp://hostname/path/file), {{{2
|
||||
under Windows I get an |E303| message complaining that its unable
|
||||
to open a swap file.
|
||||
|
||||
@@ -3670,7 +3680,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
directory.
|
||||
|
||||
*netrw-p17*
|
||||
P17. Netrw is closing buffers on its own.
|
||||
P17. Netrw is closing buffers on its own. {{{2
|
||||
What steps will reproduce the problem?
|
||||
1. :Explore, navigate directories, open a file
|
||||
2. :Explore, open another file
|
||||
@@ -3684,14 +3694,14 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
a ":ls!" will show them (although ":ls" does not).
|
||||
|
||||
*netrw-P18*
|
||||
P18. How to locally edit a file that's only available via
|
||||
P18. How to locally edit a file that's only available via {{{2
|
||||
another server accessible via ssh?
|
||||
See http://stackoverflow.com/questions/12469645/
|
||||
"Using Vim to Remotely Edit A File on ServerB Only
|
||||
Accessible From ServerA"
|
||||
|
||||
*netrw-P19*
|
||||
P19. How do I get numbering on in directory listings?
|
||||
P19. How do I get numbering on in directory listings? {{{2
|
||||
With |g:netrw_bufsettings|, you can control netrw's buffer
|
||||
settings; try putting >
|
||||
let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
|
||||
@@ -3700,7 +3710,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
|
||||
<
|
||||
*netrw-P20*
|
||||
P20. How may I have gvim start up showing a directory listing?
|
||||
P20. How may I have gvim start up showing a directory listing? {{{2
|
||||
Try putting the following code snippet into your .vimrc: >
|
||||
augroup VimStartup
|
||||
au!
|
||||
@@ -3713,8 +3723,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
(ie. a "huge" vim version).
|
||||
|
||||
*netrw-P21*
|
||||
P21. I've made a directory (or file) with an accented character, but
|
||||
netrw isn't letting me enter that directory/read that file:
|
||||
P21. I've made a directory (or file) with an accented character, {{{2
|
||||
but netrw isn't letting me enter that directory/read that file:
|
||||
|
||||
Its likely that the shell or o/s is using a different encoding
|
||||
than you have vim (netrw) using. A patch to vim supporting
|
||||
@@ -3724,7 +3734,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
|
||||
au FileType netrw set enc=latin1
|
||||
<
|
||||
*netrw-P22*
|
||||
P22. I get an error message when I try to copy or move a file:
|
||||
P22. I get an error message when I try to copy or move a file: {{{2
|
||||
|
||||
**error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!
|
||||
|
||||
@@ -3752,8 +3762,8 @@ by obtaining a copy of the latest (often developmental) netrw at:
|
||||
|
||||
The <netrw.vim> script is typically installed on systems as something like:
|
||||
>
|
||||
/usr/local/share/vim/vim8x/plugin/netrwPlugin.vim
|
||||
/usr/local/share/vim/vim8x/autoload/netrw.vim
|
||||
/usr/local/share/vim/vim7x/plugin/netrwPlugin.vim
|
||||
/usr/local/share/vim/vim7x/autoload/netrw.vim
|
||||
(see output of :echo &rtp)
|
||||
<
|
||||
which is loaded automatically at startup (assuming :set nocp). If you
|
||||
@@ -3832,6 +3842,16 @@ netrw:
|
||||
==============================================================================
|
||||
12. History *netrw-history* {{{1
|
||||
|
||||
v163: Dec 05, 2017 * (Cristi Balan) reported that a setting ('sel')
|
||||
was left changed
|
||||
* (Holger Mitschke) reported a problem with
|
||||
saving and restoring history. Fixed.
|
||||
* Hopefully I fixed a nasty bug that caused a
|
||||
file rename to wipe out a buffer that it
|
||||
should not have wiped out.
|
||||
* (Holger Mitschke) amended this help file
|
||||
with additional |g:netrw_special_syntax|
|
||||
items
|
||||
v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors
|
||||
with a patch; these are now fixed.
|
||||
Oct 26, 2016 * I started using mate-terminal and found that
|
||||
|
||||
+533
-239
@@ -1,16 +1,26 @@
|
||||
*popup.txt* For Vim version 8.1. Last change: 2019 Jun 10
|
||||
*popup.txt* For Vim version 8.1. Last change: 2019 Jul 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
Displaying text in floating window. *popup* *popup-window*
|
||||
Displaying text in a floating window. *popup* *popup-window*
|
||||
|
||||
THIS IS UNDER DESIGN - ANYTHING MAY STILL CHANGE
|
||||
|
||||
1. Introduction |popup-intro|
|
||||
Window position and size |popup-position|
|
||||
Closing the popup window |popup-close|
|
||||
Popup buffer and window |popup-buffer|
|
||||
2. Functions |popup-functions|
|
||||
3. Examples |popup-examples|
|
||||
Details |popup-function-details|
|
||||
3. Usage |popup-usage|
|
||||
popup_create() arguments |popup_create-arguments|
|
||||
Popup text properties |popup-props|
|
||||
Popup filter |popup-filter|
|
||||
Popup callback |popup-callback|
|
||||
Popup scrollbar |popup-scrollbar|
|
||||
Popup mask |popup-mask|
|
||||
4. Examples |popup-examples|
|
||||
|
||||
|
||||
{not available if the |+textprop| feature was disabled at compile time}
|
||||
@@ -36,15 +46,16 @@ The default color used is "Pmenu". If you prefer something else use the
|
||||
hi MyPopupColor ctermbg=lightblue guibg=lightblue
|
||||
call setwinvar(winid, '&wincolor', 'MyPopupColor')
|
||||
|
||||
'hlsearch' and match highlighting are not displayed in a popup window.
|
||||
'hlsearch' highlighting is not displayed in a popup window.
|
||||
|
||||
A popup window has a window-ID like other windows, but behaves differently.
|
||||
The size can be up to the whole Vim window and it overlaps other windows.
|
||||
Popup windows can also overlap each other.
|
||||
Popup windows can also overlap each other. The "zindex" property specifies
|
||||
what goes on top of what.
|
||||
|
||||
The popup window contains a buffer, and that buffer is always associated with
|
||||
the popup window. The window cannot be used in Normal, Visual or Insert mode,
|
||||
it does not get keyboard focus. You can use functions like `setbufline()` to
|
||||
the popup window. The window cannot be in Normal, Visual or Insert mode, it
|
||||
does not get keyboard focus. You can use functions like `setbufline()` to
|
||||
change the text in the buffer. There are more differences from how this
|
||||
window and buffer behave compared to regular windows and buffers, see
|
||||
|popup-buffer|.
|
||||
@@ -54,7 +65,7 @@ If this is not what you are looking for, check out other popup functionality:
|
||||
- balloon, see |balloon-eval|
|
||||
|
||||
|
||||
WINDOW POSITION AND SIZE *popup-position*
|
||||
WINDOW POSITION AND SIZE *popup-position*
|
||||
|
||||
The height of the window is normally equal to the number of, possibly
|
||||
wrapping, lines in the buffer. It can be limited with the "maxheight"
|
||||
@@ -63,231 +74,51 @@ property.
|
||||
|
||||
The width of the window is normally equal to the longest line in the buffer.
|
||||
It can be limited with the "maxwidth" property. You can use spaces to
|
||||
increase the width or the "minwidth" property.
|
||||
increase the width or use the "minwidth" property.
|
||||
|
||||
By default the 'wrap' option is set, so that no text disappears. Otherwise,
|
||||
if there is not enough space then the window is shifted left in order to
|
||||
display more text. This can be disabled with the "fixed" property. Also
|
||||
disabled when right-aligned.
|
||||
display more text. When right-aligned the window is shifted right to display
|
||||
more text. The shifting can be disabled with the "fixed" property.
|
||||
|
||||
Vim tries to show the popup in the location you specify. In some cases, e.g.
|
||||
when the popup would go outside of the Vim window, it will show it somewhere
|
||||
else. E.g. if you use `popup_atcursor()` the popup normally shows just above
|
||||
nearby. E.g. if you use `popup_atcursor()` the popup normally shows just above
|
||||
the current cursor position, but if the cursor is close to the top of the Vim
|
||||
window it will be placed below the cursor position.
|
||||
|
||||
When the screen scrolls up for output of an Ex command, popups move too, so
|
||||
that they will not cover the output.
|
||||
|
||||
The current cursor position is displayed even when it is under a popup window.
|
||||
That way you can still see where it is, even though you cannot see the text
|
||||
that it is in.
|
||||
|
||||
|
||||
CLOSING THE POPUP WINDOW *popup-close*
|
||||
|
||||
IMPLEMENTATION:
|
||||
- buffers remain after a popup was deleted.
|
||||
- Why does 'nrformats' leak from the popup window buffer???
|
||||
- Add 'balloonpopup': instead of showing text, let the callback open a popup
|
||||
window and return the window ID. The popup will then be closed when the
|
||||
mouse moves, except when it moves inside the popup.
|
||||
- For the "moved" property also include mouse movement?
|
||||
- Make redrawing more efficient and avoid flicker:
|
||||
- put popup menu also put in popup_mask?
|
||||
- Disable commands, feedkeys(), CTRL-W, etc. in a popup window.
|
||||
Use NOT_IN_POPUP_WINDOW for more commands.
|
||||
- Invoke filter with character before mapping?
|
||||
- Figure out the size and position better.
|
||||
if wrapping splits a double-wide character
|
||||
if wrapping inserts indent
|
||||
- Can the buffer be re-used, to avoid using up lots of buffer numbers?
|
||||
- Implement all the unimplemented options and features.
|
||||
|
||||
|
||||
==============================================================================
|
||||
2. Functions *popup-functions*
|
||||
|
||||
THIS IS UNDER DESIGN - ANYTHING MAY STILL CHANGE
|
||||
|
||||
[functions to be moved to eval.txt later, keep overview of functions here]
|
||||
|
||||
popup_atcursor({text}, {options}) *popup_atcursor()*
|
||||
Show the {text} above the cursor, and close it when the cursor
|
||||
moves. This works like: >
|
||||
call popup_create({text}, {
|
||||
\ 'pos': 'botleft',
|
||||
\ 'line': 'cursor-1',
|
||||
\ 'col': 'cursor',
|
||||
\ 'moved': 'WORD',
|
||||
\ })
|
||||
< Use {options} to change the properties.
|
||||
|
||||
|
||||
*popup_clear()*
|
||||
popup_clear() Emergency solution to a misbehaving plugin: close all popup
|
||||
windows.
|
||||
|
||||
|
||||
popup_close({id} [, {result}]) *popup_close()*
|
||||
Close popup {id}. The window and the associated buffer will
|
||||
be deleted.
|
||||
|
||||
If the popup has a callback it will be called just before the
|
||||
popup window is deleted. If the optional {result} is present
|
||||
it will be passed as the second argument of the callback.
|
||||
Otherwise zero is passed to the callback.
|
||||
|
||||
|
||||
popup_create({text}, {options}) *popup_create()*
|
||||
Open a popup window showing {text}, which is either:
|
||||
- a string
|
||||
- a list of strings
|
||||
- a list of text lines with text properties
|
||||
|
||||
{options} is a dictionary with many possible entries.
|
||||
See |popup_create-usage| for details.
|
||||
|
||||
Returns a window-ID, which can be used with other popup
|
||||
functions. Use `winbufnr()` to get the number of the buffer
|
||||
in the window: >
|
||||
let winid = popup_create('hello', {})
|
||||
let bufnr = winbufnr(winid)
|
||||
call setbufline(bufnr, 2, 'second line')
|
||||
< In case of failure zero is returned.
|
||||
|
||||
|
||||
popup_dialog({text}, {options}) *popup_dialog()*
|
||||
{not implemented yet}
|
||||
Just like |popup_create()| but with these default options: >
|
||||
call popup_create({text}, {
|
||||
\ 'pos': 'center',
|
||||
\ 'zindex': 200,
|
||||
\ 'border': [],
|
||||
\ 'padding': [],
|
||||
\})
|
||||
< Use {options} to change the properties.
|
||||
|
||||
|
||||
popup_filter_menu({id}, {key}) *popup_filter_menu()*
|
||||
{not implemented yet}
|
||||
Filter that can be used for a popup. It handles the cursor
|
||||
keys to move the selected index in the popup. Space and Enter
|
||||
can be used to select an item. Invokes the "callback" of the
|
||||
popup menu with the index of the selected line as the second
|
||||
argument.
|
||||
|
||||
|
||||
popup_filter_yesno({id}, {key}) *popup_filter_yesno()*
|
||||
{not implemented yet}
|
||||
Filter that can be used for a popup. It handles only the keys
|
||||
'y', 'Y' and 'n' or 'N'. Invokes the "callback" of the
|
||||
popup menu with the 1 for 'y' or 'Y' and zero for 'n' or 'N'
|
||||
as the second argument. Pressing Esc and CTRL-C works like
|
||||
pressing 'n'.
|
||||
|
||||
|
||||
popup_getoptions({id}) *popup_getoptions()*
|
||||
Return the {options} for popup {id} in a Dict.
|
||||
A zero value means the option was not set. For "zindex" the
|
||||
default value is returned, not zero.
|
||||
|
||||
The "highlight" entry is omitted, use the 'wincolor' option
|
||||
for that: >
|
||||
let hl = getwinvar(winid, '&wincolor')
|
||||
|
||||
< If popup window {id} is not found an empty Dict is returned.
|
||||
|
||||
|
||||
popup_getpos({id}) *popup_getpos()*
|
||||
Return the position and size of popup {id}. Returns a Dict
|
||||
with these entries:
|
||||
col screen column of the popup, one-based
|
||||
line screen line of the popup, one-based
|
||||
width width of the whole popup in screen cells
|
||||
height height of the whole popup in screen cells
|
||||
core_col screen column of the text box
|
||||
core_line screen line of the text box
|
||||
core_width width of the text box in screen cells
|
||||
core_height height of the text box in screen cells
|
||||
visible one if the popup is displayed, zero if hidden
|
||||
Note that these are the actual screen positions. They differ
|
||||
from the values in `popup_getoptions()` for the sizing and
|
||||
positioning mechanism applied.
|
||||
|
||||
The "core_" values exclude the padding and border.
|
||||
|
||||
If popup window {id} is not found an empty Dict is returned.
|
||||
|
||||
|
||||
popup_hide({id}) *popup_hide()*
|
||||
If {id} is a displayed popup, hide it now. If the popup has a
|
||||
filter it will not be invoked for so long as the popup is
|
||||
hidden.
|
||||
If window {id} does not exist nothing happens. If window {id}
|
||||
exists but is not a popup window an error is given. *E993*
|
||||
|
||||
|
||||
popup_menu({text}, {options}) *popup_menu()*
|
||||
{not implemented yet}
|
||||
Show the {text} near the cursor, handle selecting one of the
|
||||
items with cursorkeys, and close it an item is selected with
|
||||
Space or Enter. {text} should have multiple lines to make this
|
||||
useful. This works like: >
|
||||
call popup_create({text}, {
|
||||
\ 'pos': 'center',
|
||||
\ 'zindex': 200,
|
||||
\ 'wrap': 0,
|
||||
\ 'border': [],
|
||||
\ 'filter': 'popup_filter_menu',
|
||||
\ })
|
||||
< Use {options} to change the properties. Should at least set
|
||||
"callback" to a function that handles the selected item.
|
||||
|
||||
|
||||
popup_move({id}, {options}) *popup_move()*
|
||||
Move popup {id} to the position speficied with {options}.
|
||||
{options} may contain the items from |popup_create()| that
|
||||
specify the popup position: "line", "col", "pos", "maxheight",
|
||||
"minheight", "maxwidth" and "minwidth".
|
||||
For {id} see `popup_hide()`.
|
||||
|
||||
|
||||
popup_notification({text}, {options}) *popup_notification()*
|
||||
{not implemented yet}
|
||||
Show the {text} for 3 seconds at the top of the Vim window.
|
||||
This works like: >
|
||||
call popup_create({text}, {
|
||||
\ 'line': 1,
|
||||
\ 'col': 10,
|
||||
\ 'time': 3000,
|
||||
\ 'tab': -1,
|
||||
\ 'zindex': 200,
|
||||
\ 'highlight': 'WarningMsg',
|
||||
\ 'border': [],
|
||||
\ })
|
||||
< Use {options} to change the properties.
|
||||
|
||||
|
||||
popup_show({id}) *popup_show()*
|
||||
If {id} is a hidden popup, show it now.
|
||||
For {id} see `popup_hide()`.
|
||||
|
||||
|
||||
popup_setoptions({id}, {options}) *popup_setoptions()*
|
||||
{not implemented yet}
|
||||
Override options in popup {id} with entries in {options}.
|
||||
|
||||
Normally the plugin that created the popup window is also in charge of closing
|
||||
it. If somehow a popup hangs around, you can close all of them with: >
|
||||
call popup_clear()
|
||||
Some popups, such as notifications, close after a specified time. This can be
|
||||
set with the "time" property on `popup_create()`.
|
||||
Otherwise, a popup can be closed by clicking on the X in the top-right corner
|
||||
or by clicking anywhere inside the popup. This must be enabled with the
|
||||
"close" property. It is set by default for notifications.
|
||||
|
||||
|
||||
POPUP BUFFER AND WINDOW *popup-buffer*
|
||||
|
||||
A new buffer is created to hold the text and text properties of the popup
|
||||
window. The buffer is always associated with the popup window and
|
||||
manipulation is restricted:
|
||||
If a popup function is called to create a popup from text, a new buffer is
|
||||
created to hold the text and text properties of the popup window. The buffer
|
||||
is always associated with the popup window and manipulation is restricted:
|
||||
- the buffer has no name
|
||||
- 'buftype' is "popup"
|
||||
- 'swapfile' is off
|
||||
- 'bufhidden' is "hide"
|
||||
- 'buflisted' is off
|
||||
- 'undolevels' is -1: no undo at all
|
||||
- all other buffer-local and window_local options are set to their Vim default
|
||||
- all other buffer-local and window-local options are set to their Vim default
|
||||
value.
|
||||
|
||||
It is possible to change the specifically mentioned options, but anything
|
||||
@@ -307,10 +138,334 @@ Note that this does not trigger autocommands. Use `win_execute()` if you do
|
||||
need them.
|
||||
|
||||
|
||||
POPUP_CREATE() ARGUMENTS *popup_create-usage*
|
||||
|
||||
The first argument of |popup_create()| specifies the text to be displayed, and
|
||||
optionally text properties. It is in one of three forms:
|
||||
==============================================================================
|
||||
2. Functions *popup-functions*
|
||||
|
||||
Creating a popup window:
|
||||
|popup_create()| centered in the screen
|
||||
|popup_atcursor()| just above the cursor position, closes when
|
||||
the cursor moves away
|
||||
|popup_beval()| at the position indicated by v:beval_
|
||||
variables, closes when the mouse moves away
|
||||
|popup_notification()| show a notification for three seconds
|
||||
|popup_dialog()| centered with padding and border
|
||||
|popup_menu()| prompt for selecting an item from a list
|
||||
|
||||
Manipulating a popup window:
|
||||
|popup_hide()| hide a popup temporarily
|
||||
|popup_show()| show a previously hidden popup
|
||||
|popup_move()| change the position and size of a popup
|
||||
|popup_setoptions()| override options of a popup
|
||||
|popup_settext()| replace the popup buffer contents
|
||||
|
||||
Closing popup windows:
|
||||
|popup_close()| close one popup
|
||||
|popup_clear()| close all popups
|
||||
|
||||
Filter functions:
|
||||
|popup_filter_menu()| select from a list of items
|
||||
|popup_filter_yesno()| blocks until 'y' or 'n' is pressed
|
||||
|
||||
Other:
|
||||
|popup_getoptions()| get current options for a popup
|
||||
|popup_getpos()| get actual position and size of a popup
|
||||
|popup_locate()| find popup window at a screen position
|
||||
|
||||
|
||||
DETAILS *popup-function-details*
|
||||
|
||||
popup_atcursor({what}, {options}) *popup_atcursor()*
|
||||
Show the {what} above the cursor, and close it when the cursor
|
||||
moves. This works like: >
|
||||
call popup_create({what}, #{
|
||||
\ pos: 'botleft',
|
||||
\ line: 'cursor-1',
|
||||
\ col: 'cursor',
|
||||
\ moved: 'WORD',
|
||||
\ })
|
||||
< Use {options} to change the properties.
|
||||
|
||||
|
||||
popup_beval({what}, {options}) *popup_beval()*
|
||||
Show the {what} above the position from 'ballooneval' and
|
||||
close it when the mouse moves. This works like: >
|
||||
let pos = screenpos(v:beval_winnr, v:beval_lnum, v:beval_col)
|
||||
call popup_create({what}, #{
|
||||
\ pos: 'botleft',
|
||||
\ line: pos.row - 1,
|
||||
\ col: pos.col,
|
||||
\ mousemoved: 'WORD',
|
||||
\ })
|
||||
< Use {options} to change the properties.
|
||||
See |popup_beval_example| for an example use.
|
||||
|
||||
|
||||
*popup_clear()*
|
||||
popup_clear() Emergency solution to a misbehaving plugin: close all popup
|
||||
windows for the current tab and global popups.
|
||||
|
||||
|
||||
popup_close({id} [, {result}]) *popup_close()*
|
||||
Close popup {id}. The window and the associated buffer will
|
||||
be deleted.
|
||||
|
||||
If the popup has a callback it will be called just before the
|
||||
popup window is deleted. If the optional {result} is present
|
||||
it will be passed as the second argument of the callback.
|
||||
Otherwise zero is passed to the callback.
|
||||
|
||||
|
||||
popup_create({what}, {options}) *popup_create()*
|
||||
Open a popup window showing {what}, which is either:
|
||||
- a buffer number
|
||||
- a string
|
||||
- a list of strings
|
||||
- a list of text lines with text properties
|
||||
When {what} is not a buffer number, a buffer is created with
|
||||
'buftype' set to "popup". That buffer will be wiped out once
|
||||
the popup closes.
|
||||
|
||||
{options} is a dictionary with many possible entries.
|
||||
See |popup_create-arguments| for details.
|
||||
|
||||
Returns a window-ID, which can be used with other popup
|
||||
functions. Use `winbufnr()` to get the number of the buffer
|
||||
in the window: >
|
||||
let winid = popup_create('hello', {})
|
||||
let bufnr = winbufnr(winid)
|
||||
call setbufline(bufnr, 2, 'second line')
|
||||
< In case of failure zero is returned.
|
||||
|
||||
|
||||
popup_dialog({what}, {options}) *popup_dialog()*
|
||||
Just like |popup_create()| but with these default options: >
|
||||
call popup_create({what}, #{
|
||||
\ pos: 'center',
|
||||
\ zindex: 200,
|
||||
\ drag: 1,
|
||||
\ border: [],
|
||||
\ padding: [],
|
||||
\})
|
||||
< Use {options} to change the properties. E.g. add a 'filter'
|
||||
option with value 'popup_filter_yesno'. Example: >
|
||||
call popup_create('do you want to quit (Yes/no)?', #{
|
||||
\ filter: 'popup_filter_yesno',
|
||||
\ callback: 'QuitCallback',
|
||||
\ })
|
||||
|
||||
< By default the dialog can be dragged, so that text below it
|
||||
can be read if needed.
|
||||
|
||||
|
||||
popup_filter_menu({id}, {key}) *popup_filter_menu()*
|
||||
Filter that can be used for a popup. These keys can be used:
|
||||
j <Down> select item below
|
||||
k <Up> select item above
|
||||
<Space> <Enter> accept current selection
|
||||
x Esc CTRL-C cancel the menu
|
||||
Other keys are ignored.
|
||||
|
||||
A match is set on that line to highlight it, see
|
||||
|popup_menu()|.
|
||||
|
||||
When the current selection is accepted the "callback" of the
|
||||
popup menu is invoked with the index of the selected line as
|
||||
the second argument. The first entry has index one.
|
||||
Cancelling the menu invokes the callback with -1.
|
||||
|
||||
To add shortcut keys, see the example here:
|
||||
|popup_menu-shortcut-example|
|
||||
|
||||
|
||||
popup_filter_yesno({id}, {key}) *popup_filter_yesno()*
|
||||
Filter that can be used for a popup. It handles only the keys
|
||||
'y', 'Y' and 'n' or 'N'. Invokes the "callback" of the
|
||||
popup menu with the 1 for 'y' or 'Y' and zero for 'n' or 'N'
|
||||
as the second argument. Pressing Esc and 'x' works like
|
||||
pressing 'n'. CTRL-C invokes the callback with -1. Other
|
||||
keys are ignored.
|
||||
See the example here: |popup_dialog-example|
|
||||
|
||||
|
||||
popup_getoptions({id}) *popup_getoptions()*
|
||||
Return the {options} for popup {id} in a Dict.
|
||||
A zero value means the option was not set. For "zindex" the
|
||||
default value is returned, not zero.
|
||||
|
||||
The "moved" entry is a list with line number, minimum and
|
||||
maximum column, [0, 0, 0] when not set.
|
||||
|
||||
The "mousemoved" entry is a list with screen row, minimum and
|
||||
maximum screen column, [0, 0, 0] when not set.
|
||||
|
||||
"border" and "padding" are not included when all values are
|
||||
zero. When all values are one then an empty list is included.
|
||||
|
||||
"borderhighlight" is not included when all values are empty.
|
||||
"scrollbarhighlight" and "thumbhighlight" are only included
|
||||
when set.
|
||||
|
||||
"tabpage" will be -1 for a global popup, zero for a popup on
|
||||
the current tabpage and a positive number for a popup on
|
||||
another tabpage.
|
||||
|
||||
If popup window {id} is not found an empty Dict is returned.
|
||||
|
||||
|
||||
popup_getpos({id}) *popup_getpos()*
|
||||
Return the position and size of popup {id}. Returns a Dict
|
||||
with these entries:
|
||||
col screen column of the popup, one-based
|
||||
line screen line of the popup, one-based
|
||||
width width of the whole popup in screen cells
|
||||
height height of the whole popup in screen cells
|
||||
core_col screen column of the text box
|
||||
core_line screen line of the text box
|
||||
core_width width of the text box in screen cells
|
||||
core_height height of the text box in screen cells
|
||||
firstline line of the buffer at top (1 unless scrolled)
|
||||
scrollbar non-zero if a scrollbar is displayed
|
||||
visible one if the popup is displayed, zero if hidden
|
||||
Note that these are the actual screen positions. They differ
|
||||
from the values in `popup_getoptions()` for the sizing and
|
||||
positioning mechanism applied.
|
||||
|
||||
The "core_" values exclude the padding and border.
|
||||
|
||||
If popup window {id} is not found an empty Dict is returned.
|
||||
|
||||
|
||||
popup_hide({id}) *popup_hide()*
|
||||
If {id} is a displayed popup, hide it now. If the popup has a
|
||||
filter it will not be invoked for so long as the popup is
|
||||
hidden.
|
||||
If window {id} does not exist nothing happens. If window {id}
|
||||
exists but is not a popup window an error is given. *E993*
|
||||
|
||||
|
||||
popup_locate({row}, {col}) *popup_locate()*
|
||||
Return the |window-ID| of the popup at screen position {row}
|
||||
and {col}. If there are multiple popups the one with the
|
||||
highest zindex is returned. If there are no popups at this
|
||||
position then zero is returned.
|
||||
|
||||
|
||||
popup_menu({what}, {options}) *popup_menu()*
|
||||
Show the {what} near the cursor, handle selecting one of the
|
||||
items with cursorkeys, and close it an item is selected with
|
||||
Space or Enter. {what} should have multiple lines to make this
|
||||
useful. This works like: >
|
||||
call popup_create({what}, #{
|
||||
\ pos: 'center',
|
||||
\ zindex: 200,
|
||||
\ drag: 1,
|
||||
\ wrap: 0,
|
||||
\ border: [],
|
||||
\ cursorline: 1,
|
||||
\ padding: [0,1,0,1],
|
||||
\ filter: 'popup_filter_menu',
|
||||
\ })
|
||||
< The current line is highlighted with a match using
|
||||
"PopupSelected", or "PmenuSel" if that is not defined.
|
||||
|
||||
Use {options} to change the properties. Should at least set
|
||||
"callback" to a function that handles the selected item.
|
||||
|
||||
|
||||
popup_move({id}, {options}) *popup_move()*
|
||||
Move popup {id} to the position specified with {options}.
|
||||
{options} may contain the items from |popup_create()| that
|
||||
specify the popup position:
|
||||
line
|
||||
col
|
||||
pos
|
||||
maxheight
|
||||
minheight
|
||||
maxwidth
|
||||
minwidth
|
||||
fixed
|
||||
For {id} see `popup_hide()`.
|
||||
For other options see |popup_setoptions()|.
|
||||
|
||||
|
||||
popup_notification({what}, {options}) *popup_notification()*
|
||||
Show the {what} for 3 seconds at the top of the Vim window.
|
||||
This works like: >
|
||||
call popup_create({what}, #{
|
||||
\ line: 1,
|
||||
\ col: 10,
|
||||
\ minwidth: 20,
|
||||
\ time: 3000,
|
||||
\ tabpage: -1,
|
||||
\ zindex: 300,
|
||||
\ drag: 1,
|
||||
\ highlight: 'WarningMsg',
|
||||
\ border: [],
|
||||
\ close: 'click',
|
||||
\ padding: [0,1,0,1],
|
||||
\ })
|
||||
< The PopupNotification highlight group is used instead of
|
||||
WarningMsg if it is defined.
|
||||
|
||||
Without the |+timers| feature the poup will not disappear
|
||||
automatically, the user has to click in it.
|
||||
|
||||
The position will be adjusted to avoid overlap with other
|
||||
notifications.
|
||||
Use {options} to change the properties.
|
||||
|
||||
|
||||
popup_show({id}) *popup_show()*
|
||||
If {id} is a hidden popup, show it now.
|
||||
For {id} see `popup_hide()`.
|
||||
|
||||
|
||||
popup_setoptions({id}, {options}) *popup_setoptions()*
|
||||
Override options in popup {id} with entries in {options}.
|
||||
These options can be set:
|
||||
border
|
||||
borderchars
|
||||
borderhighlight
|
||||
callback
|
||||
close
|
||||
drag
|
||||
cursorline
|
||||
filter
|
||||
firstline
|
||||
flip
|
||||
highlight
|
||||
mask
|
||||
moved
|
||||
padding
|
||||
scrollbar
|
||||
scrollbarhighlight
|
||||
thumbhighlight
|
||||
time
|
||||
title
|
||||
wrap
|
||||
zindex
|
||||
The options from |popup_move()| can also be used.
|
||||
For "hidden" use |popup_hide()| and |popup_show()|.
|
||||
"tabpage" cannot be changed.
|
||||
|
||||
popup_settext({id}, {text}) *popup_settext()*
|
||||
Set the text of the buffer in poup win {id}. {text} is the
|
||||
same as supplied to |popup_create()|, except that a buffer
|
||||
number is not allowed.
|
||||
Does not change the window size or position, other than caused
|
||||
by the different text.
|
||||
|
||||
|
||||
==============================================================================
|
||||
3. Usage *popup-usage*
|
||||
|
||||
POPUP_CREATE() ARGUMENTS *popup_create-arguments*
|
||||
|
||||
The first argument of |popup_create()| (and the second argument to
|
||||
|popup_settext()|) specifies the text to be displayed, and optionally text
|
||||
properties. It is in one of four forms:
|
||||
- a buffer number
|
||||
- a string
|
||||
- a list of strings
|
||||
- a list of dictionaries, where each dictionary has these entries:
|
||||
@@ -348,7 +503,9 @@ The second argument of |popup_create()| is a dictionary with options:
|
||||
flip When TRUE (the default) and the position is relative
|
||||
to the cursor, flip to below or above the cursor to
|
||||
avoid overlap with the |popupmenu-completion| or
|
||||
another popup with a higher "zindex".
|
||||
another popup with a higher "zindex". When there is
|
||||
no space above/below the cursor then show the popup to
|
||||
the side of the popup or popup menu.
|
||||
{not implemented yet}
|
||||
maxheight Maximum height of the contents, excluding border and
|
||||
padding.
|
||||
@@ -358,20 +515,37 @@ The second argument of |popup_create()| is a dictionary with options:
|
||||
padding.
|
||||
minwidth Minimum width of the contents, excluding border and
|
||||
padding.
|
||||
firstline First buffer line to display. When larger than one it
|
||||
looks like the text scrolled up. When out of range
|
||||
the last buffer line will at the top of the window.
|
||||
Also see "scrollbar".
|
||||
hidden When TRUE the popup exists but is not displayed; use
|
||||
`popup_show()` to unhide it.
|
||||
{not implemented yet}
|
||||
tab When -1: display the popup on all tabs.
|
||||
tabpage When -1: display the popup on all tab pages.
|
||||
When 0 (the default): display the popup on the current
|
||||
tab.
|
||||
tab page.
|
||||
Otherwise the number of the tab page the popup is
|
||||
displayed on; when invalid the current tab is used.
|
||||
{only -1 and 0 are implemented}
|
||||
displayed on; when invalid the popup is not created
|
||||
and an error is given. *E997*
|
||||
title Text to be displayed above the first item in the
|
||||
popup, on top of any border. If there is no top
|
||||
border on line of padding is added to put the title on.
|
||||
{not implemented yet}
|
||||
border one line of padding is added to put the title
|
||||
on. You might want to add one or more spaces at the
|
||||
start and end as padding.
|
||||
wrap TRUE to make the lines wrap (default TRUE).
|
||||
drag TRUE to allow the popup to be dragged with the mouse
|
||||
by grabbing at at the border. Has no effect if the
|
||||
popup does not have a border. As soon as dragging
|
||||
starts and "pos" is "center" it is changed to
|
||||
"topleft".
|
||||
close When "button" an X is displayed in the top-right, on
|
||||
top of any border, padding or text. When clicked on
|
||||
the X the popup will close. Any callback is invoked
|
||||
with the value -2.
|
||||
When "click" any mouse click in the popup will close
|
||||
it.
|
||||
When "none" (the default) mouse clicks do not close
|
||||
the popup window.
|
||||
highlight Highlight group name to use for the text, stored in
|
||||
the 'wincolor' option.
|
||||
padding List with numbers, defining the padding
|
||||
@@ -400,20 +574,37 @@ The second argument of |popup_create()| is a dictionary with options:
|
||||
When the list has two characters the first is used for
|
||||
the border lines, the second for the corners.
|
||||
By default a double line is used all around when
|
||||
'encoding' is "utf-8", otherwise ASCII characters are
|
||||
used.
|
||||
zindex Priority for the popup, default 50. Mininum value is
|
||||
'encoding' is "utf-8" and 'ambiwidth' is "single",
|
||||
otherwise ASCII characters are used.
|
||||
scrollbar non-zero: show a scrollbar when the text doesn't fit.
|
||||
zero: do not show a scrollbar. Default is non-zero.
|
||||
Also see |popup-scrollbar|.
|
||||
scrollbarhighlight Highlight group name for the scrollbar. The
|
||||
background color is what matters. When not given then
|
||||
PmenuSbar is used.
|
||||
thumbhighlight Highlight group name for the scrollbar thumb. The
|
||||
background color is what matters. When not given then
|
||||
PmenuThumb is used.
|
||||
zindex Priority for the popup, default 50. Minimum value is
|
||||
1, maximum value is 32000.
|
||||
mask A list of lists with coordinates, defining parts of
|
||||
the popup that are transparent. See |popup-mask|.
|
||||
time Time in milliseconds after which the popup will close.
|
||||
When omitted |popup_close()| must be used.
|
||||
moved Specifies to close the popup if the cursor moved:
|
||||
- "any": if the cursor moved at all
|
||||
- "word": if the cursor moved outside |<cword>|
|
||||
- "WORD": if the cursor moved outside |<cWORD>|
|
||||
- "expr": if the cursor moved outside |<cexpr>|
|
||||
- [{start}, {end}]: if the cursor moved before column
|
||||
{start} or after {end}
|
||||
The popup also closes if the cursor moves to another
|
||||
line or to another window.
|
||||
cursorline non-zero: Highlight the cursor line. Also scrolls the
|
||||
text to show this line (only works properly
|
||||
when 'wrap' is off).
|
||||
zero: Do not highlight the cursor line.
|
||||
Default is zero, except for |popup_menu()|.
|
||||
filter A callback that can filter typed characters, see
|
||||
|popup-filter|.
|
||||
callback A callback that is called when the popup closes, e.g.
|
||||
@@ -434,7 +625,6 @@ These are similar to the third argument of |prop_add()| except:
|
||||
- "lnum" is always the current line in the list
|
||||
- "bufnr" is always the buffer of the popup
|
||||
- "col" is in the Dict instead of a separate argument
|
||||
- "transparent" is extra
|
||||
So we get:
|
||||
col starting column, counted in bytes, use one for the
|
||||
first column.
|
||||
@@ -447,10 +637,6 @@ So we get:
|
||||
used
|
||||
type name of the text property type, as added with
|
||||
|prop_type_add()|
|
||||
transparent do not show these characters, show the text under it;
|
||||
if there is a border character to the right or below
|
||||
it will be made transparent as well
|
||||
{not implemented yet}
|
||||
|
||||
|
||||
POPUP FILTER *popup-filter*
|
||||
@@ -465,7 +651,7 @@ filter is also called. The filter of the popup window with the highest zindex
|
||||
is called first.
|
||||
|
||||
The filter function is called with two arguments: the ID of the popup and the
|
||||
key, e.g.: >
|
||||
key as a string, e.g.: >
|
||||
func MyFilter(winid, key)
|
||||
if a:key == "\<F2>"
|
||||
" do something
|
||||
@@ -500,21 +686,51 @@ Vim recognizes the Esc key. If you do use Esc, it is recommended to set the
|
||||
|
||||
POPUP CALLBACK *popup-callback*
|
||||
|
||||
A callback that is invoked when the popup closes. Used by
|
||||
|popup_filter_menu()|.
|
||||
A callback that is invoked when the popup closes.
|
||||
|
||||
The callback is invoked with two arguments: the ID of the popup window and the
|
||||
result, which could be an index in the popup lines, or whatever was passed as
|
||||
the second argument of `popup_close()`.
|
||||
|
||||
If the popup is closed because the cursor moved, the number -1 is passed to
|
||||
the callback.
|
||||
If the popup is force-closed, e.g. because the cursor moved or CTRL-C was
|
||||
pressed, the number -1 is passed to the callback.
|
||||
|
||||
|
||||
POPUP SCROLLBAR *popup-scrollbar*
|
||||
|
||||
If the text does not fit in the popup a scrollbar is displayed on the right of
|
||||
the window. This can be disabled by setting the "scrollbar" option to zero.
|
||||
When the scrollbar is displayed mouse scroll events, while the mouse pointer
|
||||
is on the popup, will cause the text to scroll up or down as you would expect.
|
||||
A click in the upper half of the scrollbar will scroll the text down one line.
|
||||
A click in the lower half will scroll the text up one line. However, this is
|
||||
limited so that the popup does not get smaller.
|
||||
|
||||
|
||||
POPUP MASK *popup-mask*
|
||||
|
||||
To minimize the text that the popup covers, parts of it can be made
|
||||
transparent. This is defined by a "mask" which is a list of lists, where each
|
||||
list has four numbers:
|
||||
col start column, positive for counting from the left, 1 for
|
||||
leftmost, negative for counting from the right, -1 for
|
||||
rightmost
|
||||
endcol last column, like "col"
|
||||
line start line, positive for counting from the top, 1 for top,
|
||||
negative for counting from the bottom, -1 for bottom
|
||||
endline end line, like "line"
|
||||
|
||||
For example, to make the last 10 columns of the last line transparent:
|
||||
[[-10, -1, -1, -1]]
|
||||
|
||||
To make the four corners transparent:
|
||||
[[1, 1, 1, 1], [-1, -1, 1, 1], [1, 1, -1, -1], [-1, -1, -1, -1]]
|
||||
|
||||
==============================================================================
|
||||
3. Examples *popup-examples*
|
||||
|
||||
TODO
|
||||
4. Examples *popup-examples*
|
||||
|
||||
TODO: more interesting examples
|
||||
*popup_dialog-example*
|
||||
Prompt the user to press y/Y or n/N: >
|
||||
|
||||
func MyDialogHandler(id, result)
|
||||
@@ -523,10 +739,88 @@ Prompt the user to press y/Y or n/N: >
|
||||
endif
|
||||
endfunc
|
||||
|
||||
call popup_create(['Continue? y/n'], {
|
||||
\ 'filter': 'popup_filter_yesno',
|
||||
\ 'callback': 'MyDialogHandler',
|
||||
call popup_dialog('Continue? y/n', #{
|
||||
\ filter: 'popup_filter_yesno',
|
||||
\ callback: 'MyDialogHandler',
|
||||
\ })
|
||||
<
|
||||
*popup_menu-shortcut-example*
|
||||
Extend popup_filter_menu() with shortcut keys: >
|
||||
|
||||
call popup_menu(['Save', 'Cancel', 'Discard'], #{
|
||||
\ filter: 'MyMenuFilter',
|
||||
\ callback: 'MyMenuHandler',
|
||||
\ })
|
||||
|
||||
func MyMenuFilter(id, key)
|
||||
" Handle shortcuts
|
||||
if a:key == 'S'
|
||||
call popup_close(a:id, 1)
|
||||
return 1
|
||||
endif
|
||||
if a:key == 'C'
|
||||
call popup_close(a:id, 2)
|
||||
return 1
|
||||
endif
|
||||
if a:key == 'D'
|
||||
call popup_close(a:id, 3)
|
||||
return 1
|
||||
endif
|
||||
|
||||
" No shortcut, pass to generic filter
|
||||
return popup_filter_menu(a:id, a:key)
|
||||
endfunc
|
||||
<
|
||||
*popup_beval_example*
|
||||
Example for using a popup window for 'ballooneval': >
|
||||
|
||||
set ballooneval balloonevalterm
|
||||
set balloonexpr=BalloonExpr()
|
||||
let s:winid = 0
|
||||
let s:last_text = ''
|
||||
|
||||
func BalloonExpr()
|
||||
if s:winid && popup_getpos(s:winid) != {}
|
||||
" previous popup window still shows
|
||||
if v:beval_text == s:last_text
|
||||
" Still the same text, keep the existing popup
|
||||
return ''
|
||||
endif
|
||||
call popup_close(s:winid)
|
||||
endif
|
||||
let s:winid = popup_beval(v:beval_text, #{mousemoved: 'word'})
|
||||
let s:last_text = v:beval_text
|
||||
return ''
|
||||
endfunc
|
||||
<
|
||||
If the text has to be obtained asynchronously return an empty string from the
|
||||
expression function and call popup_beval() once the text is available. In
|
||||
this example simulated with a timer callback: >
|
||||
|
||||
set ballooneval balloonevalterm
|
||||
set balloonexpr=BalloonExpr()
|
||||
let s:winid = 0
|
||||
let s:balloonText = ''
|
||||
|
||||
func BalloonExpr()
|
||||
if s:winid && popup_getpos(s:winid) != {}
|
||||
" previous popup window still shows
|
||||
if v:beval_text == s:balloonText
|
||||
" Still the same text, keep the existing popup
|
||||
return ''
|
||||
endif
|
||||
call popup_close(s:winid)
|
||||
let s:winid = 0
|
||||
endif
|
||||
" simulate an asynchronous loopup for the text to display
|
||||
let s:balloonText = v:beval_text
|
||||
call timer_start(100, 'ShowPopup')
|
||||
return ''
|
||||
endfunc
|
||||
|
||||
func ShowPopup(id)
|
||||
let s:winid = popup_beval(s:balloonText, #{mousemoved: 'word'})
|
||||
endfunc
|
||||
<
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
||||
*quickfix.txt* For Vim version 8.1. Last change: 2019 Jul 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -650,9 +650,9 @@ You can use CTRL-W <Enter> to open a new window and jump to the error there.
|
||||
|
||||
When the quickfix window has been filled, two autocommand events are
|
||||
triggered. First the 'filetype' option is set to "qf", which triggers the
|
||||
FileType event. Then the BufReadPost event is triggered, using "quickfix" for
|
||||
the buffer name. This can be used to perform some action on the listed
|
||||
errors. Example: >
|
||||
FileType event (also see |qf.vim|). Then the BufReadPost event is triggered,
|
||||
using "quickfix" for the buffer name. This can be used to perform some action
|
||||
on the listed errors. Example: >
|
||||
au BufReadPost quickfix setlocal modifiable
|
||||
\ | silent exe 'g/^/s//\=line(".")." "/'
|
||||
\ | setlocal nomodifiable
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 8.1. Last change: 2019 May 31
|
||||
*quickref.txt* For Vim version 8.1. Last change: 2019 Jul 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -836,6 +836,7 @@ Short explanation of each option: *option-list*
|
||||
'perldll' name of the Perl dynamic library
|
||||
'preserveindent' 'pi' preserve the indent structure when reindenting
|
||||
'previewheight' 'pvh' height of the preview window
|
||||
'previewpopup' 'pvp' use popup window for preview
|
||||
'previewwindow' 'pvw' identifies the preview window
|
||||
'printdevice' 'pdev' name of the printer to be used for :hardcopy
|
||||
'printencoding' 'penc' encoding to be used for printing
|
||||
|
||||
+11
-4
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 8.1. Last change: 2019 May 22
|
||||
*repeat.txt* For Vim version 8.1. Last change: 2019 Jun 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -280,9 +280,16 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
after loading your .vimrc file. With this command it
|
||||
can be done earlier.
|
||||
|
||||
Packages will be loaded only once. After this command
|
||||
it won't happen again. When the optional ! is added
|
||||
this command will load packages even when done before.
|
||||
Packages will be loaded only once. Using
|
||||
`:packloadall` a second time will have no effect.
|
||||
When the optional ! is added this command will load
|
||||
packages even when done before.
|
||||
|
||||
Note that when using `:packloadall` in the |vimrc|
|
||||
file, the 'runtimepath' option is updated, and later
|
||||
all plugins in 'runtimepath' will be loaded, which
|
||||
means they are loaded again. Plugins are expected to
|
||||
handle that.
|
||||
|
||||
An error only causes sourcing the script where it
|
||||
happens to be aborted, further plugins will be loaded.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.1. Last change: 2019 Jun 01
|
||||
*syntax.txt* For Vim version 8.1. Last change: 2019 Jul 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -2623,7 +2623,6 @@ preceding last option and unsetting all other ones): >
|
||||
Note: only existence of these options matter, not their value. You can replace
|
||||
1 above with anything.
|
||||
|
||||
|
||||
QUAKE *quake.vim* *ft-quake-syntax*
|
||||
|
||||
The Quake syntax definition should work for most any FPS (First Person
|
||||
@@ -3140,7 +3139,7 @@ in your <.vimrc>, and :set fdm=syntax. I suggest doing the latter via a
|
||||
modeline at the end of your LaTeX file: >
|
||||
% vim: fdm=syntax
|
||||
If your system becomes too slow, then you might wish to look into >
|
||||
https://vimhelp.appspot.com/vim_faq.txt.html#faq-29.7
|
||||
https://vimhelp.org/vim_faq.txt.html#faq-29.7
|
||||
<
|
||||
*g:tex_nospell*
|
||||
Tex: No Spell Checking Wanted~
|
||||
|
||||
+63
-27
@@ -793,6 +793,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'pp' options.txt /*'pp'*
|
||||
'preserveindent' options.txt /*'preserveindent'*
|
||||
'previewheight' options.txt /*'previewheight'*
|
||||
'previewpopup' options.txt /*'previewpopup'*
|
||||
'previewwindow' options.txt /*'previewwindow'*
|
||||
'printdevice' options.txt /*'printdevice'*
|
||||
'printencoding' options.txt /*'printencoding'*
|
||||
@@ -807,6 +808,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'pumheight' options.txt /*'pumheight'*
|
||||
'pumwidth' options.txt /*'pumwidth'*
|
||||
'pvh' options.txt /*'pvh'*
|
||||
'pvp' options.txt /*'pvp'*
|
||||
'pvw' options.txt /*'pvw'*
|
||||
'pw' options.txt /*'pw'*
|
||||
'pythondll' options.txt /*'pythondll'*
|
||||
@@ -2284,6 +2286,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:con eval.txt /*:con*
|
||||
:conf editing.txt /*:conf*
|
||||
:confirm editing.txt /*:confirm*
|
||||
:cons eval.txt /*:cons*
|
||||
:const eval.txt /*:const*
|
||||
:continue eval.txt /*:continue*
|
||||
:cope quickfix.txt /*:cope*
|
||||
:copen quickfix.txt /*:copen*
|
||||
@@ -4778,12 +4782,12 @@ E95 message.txt /*E95*
|
||||
E950 message.txt /*E950*
|
||||
E951 pattern.txt /*E951*
|
||||
E952 autocmd.txt /*E952*
|
||||
E953 eval.txt /*E953*
|
||||
E953 terminal.txt /*E953*
|
||||
E954 options.txt /*E954*
|
||||
E955 eval.txt /*E955*
|
||||
E955 terminal.txt /*E955*
|
||||
E956 pattern.txt /*E956*
|
||||
E957 eval.txt /*E957*
|
||||
E958 eval.txt /*E958*
|
||||
E958 terminal.txt /*E958*
|
||||
E96 diff.txt /*E96*
|
||||
E960 options.txt /*E960*
|
||||
E961 cmdline.txt /*E961*
|
||||
@@ -4823,6 +4827,9 @@ E991 eval.txt /*E991*
|
||||
E992 options.txt /*E992*
|
||||
E993 popup.txt /*E993*
|
||||
E994 eval.txt /*E994*
|
||||
E995 eval.txt /*E995*
|
||||
E996 eval.txt /*E996*
|
||||
E997 popup.txt /*E997*
|
||||
E999 repeat.txt /*E999*
|
||||
EX intro.txt /*EX*
|
||||
EXINIT starting.txt /*EXINIT*
|
||||
@@ -4905,6 +4912,7 @@ M motion.txt /*M*
|
||||
MDI starting.txt /*MDI*
|
||||
MMCellWidthMultiplier gui_mac.txt /*MMCellWidthMultiplier*
|
||||
MMDialogsTrackPwd gui_mac.txt /*MMDialogsTrackPwd*
|
||||
MMDisableLaunchAnimation gui_mac.txt /*MMDisableLaunchAnimation*
|
||||
MMFullScreenFadeTime gui_mac.txt /*MMFullScreenFadeTime*
|
||||
MMLoginShellArgument gui_mac.txt /*MMLoginShellArgument*
|
||||
MMLoginShellCommand gui_mac.txt /*MMLoginShellCommand*
|
||||
@@ -5492,6 +5500,7 @@ break-finally eval.txt /*break-finally*
|
||||
browse() eval.txt /*browse()*
|
||||
browsedir() eval.txt /*browsedir()*
|
||||
browsefilter editing.txt /*browsefilter*
|
||||
bufadd() eval.txt /*bufadd()*
|
||||
bufexists() eval.txt /*bufexists()*
|
||||
buffer-functions usr_41.txt /*buffer-functions*
|
||||
buffer-hidden windows.txt /*buffer-hidden*
|
||||
@@ -5504,6 +5513,7 @@ buffer_number() eval.txt /*buffer_number()*
|
||||
buffers windows.txt /*buffers*
|
||||
buffers-menu gui.txt /*buffers-menu*
|
||||
buflisted() eval.txt /*buflisted()*
|
||||
bufload() eval.txt /*bufload()*
|
||||
bufloaded() eval.txt /*bufloaded()*
|
||||
bufname() eval.txt /*bufname()*
|
||||
bufnr() eval.txt /*bufnr()*
|
||||
@@ -6516,6 +6526,7 @@ ft-ptcap-syntax syntax.txt /*ft-ptcap-syntax*
|
||||
ft-python-indent indent.txt /*ft-python-indent*
|
||||
ft-python-plugin filetype.txt /*ft-python-plugin*
|
||||
ft-python-syntax syntax.txt /*ft-python-syntax*
|
||||
ft-qf-plugin filetype.txt /*ft-qf-plugin*
|
||||
ft-quake-syntax syntax.txt /*ft-quake-syntax*
|
||||
ft-r-indent indent.txt /*ft-r-indent*
|
||||
ft-r-syntax syntax.txt /*ft-r-syntax*
|
||||
@@ -7547,6 +7558,7 @@ listener_add() eval.txt /*listener_add()*
|
||||
listener_flush() eval.txt /*listener_flush()*
|
||||
listener_remove() eval.txt /*listener_remove()*
|
||||
lite.vim syntax.txt /*lite.vim*
|
||||
literal-Dict eval.txt /*literal-Dict*
|
||||
literal-string eval.txt /*literal-string*
|
||||
lnum-variable eval.txt /*lnum-variable*
|
||||
load-plugins starting.txt /*load-plugins*
|
||||
@@ -8339,31 +8351,43 @@ popt-option print.txt /*popt-option*
|
||||
popup popup.txt /*popup*
|
||||
popup-buffer popup.txt /*popup-buffer*
|
||||
popup-callback popup.txt /*popup-callback*
|
||||
popup-close popup.txt /*popup-close*
|
||||
popup-examples popup.txt /*popup-examples*
|
||||
popup-filter popup.txt /*popup-filter*
|
||||
popup-function-details popup.txt /*popup-function-details*
|
||||
popup-functions popup.txt /*popup-functions*
|
||||
popup-intro popup.txt /*popup-intro*
|
||||
popup-mask popup.txt /*popup-mask*
|
||||
popup-menu gui.txt /*popup-menu*
|
||||
popup-menu-added version5.txt /*popup-menu-added*
|
||||
popup-position popup.txt /*popup-position*
|
||||
popup-props popup.txt /*popup-props*
|
||||
popup-scrollbar popup.txt /*popup-scrollbar*
|
||||
popup-usage popup.txt /*popup-usage*
|
||||
popup-window popup.txt /*popup-window*
|
||||
popup-window-functions usr_41.txt /*popup-window-functions*
|
||||
popup.txt popup.txt /*popup.txt*
|
||||
popup_atcursor() popup.txt /*popup_atcursor()*
|
||||
popup_beval() popup.txt /*popup_beval()*
|
||||
popup_beval_example popup.txt /*popup_beval_example*
|
||||
popup_clear() popup.txt /*popup_clear()*
|
||||
popup_close() popup.txt /*popup_close()*
|
||||
popup_create() popup.txt /*popup_create()*
|
||||
popup_create-usage popup.txt /*popup_create-usage*
|
||||
popup_create-arguments popup.txt /*popup_create-arguments*
|
||||
popup_dialog() popup.txt /*popup_dialog()*
|
||||
popup_dialog-example popup.txt /*popup_dialog-example*
|
||||
popup_filter_menu() popup.txt /*popup_filter_menu()*
|
||||
popup_filter_yesno() popup.txt /*popup_filter_yesno()*
|
||||
popup_getoptions() popup.txt /*popup_getoptions()*
|
||||
popup_getpos() popup.txt /*popup_getpos()*
|
||||
popup_hide() popup.txt /*popup_hide()*
|
||||
popup_locate() popup.txt /*popup_locate()*
|
||||
popup_menu() popup.txt /*popup_menu()*
|
||||
popup_menu-shortcut-example popup.txt /*popup_menu-shortcut-example*
|
||||
popup_move() popup.txt /*popup_move()*
|
||||
popup_notification() popup.txt /*popup_notification()*
|
||||
popup_setoptions() popup.txt /*popup_setoptions()*
|
||||
popup_settext() popup.txt /*popup_settext()*
|
||||
popup_show() popup.txt /*popup_show()*
|
||||
popupmenu-completion insert.txt /*popupmenu-completion*
|
||||
popupmenu-keys insert.txt /*popupmenu-keys*
|
||||
@@ -8384,6 +8408,7 @@ ppwiz.vim syntax.txt /*ppwiz.vim*
|
||||
press-enter message.txt /*press-enter*
|
||||
press-return message.txt /*press-return*
|
||||
prevcount-variable eval.txt /*prevcount-variable*
|
||||
preview-popup windows.txt /*preview-popup*
|
||||
preview-window windows.txt /*preview-window*
|
||||
prevnonblank() eval.txt /*prevnonblank()*
|
||||
print-intro print.txt /*print-intro*
|
||||
@@ -8489,6 +8514,7 @@ q repeat.txt /*q*
|
||||
q/ cmdline.txt /*q\/*
|
||||
q: cmdline.txt /*q:*
|
||||
q? cmdline.txt /*q?*
|
||||
qf.vim filetype.txt /*qf.vim*
|
||||
qnx os_qnx.txt /*qnx*
|
||||
qnx-compiling os_qnx.txt /*qnx-compiling*
|
||||
qnx-general os_qnx.txt /*qnx-general*
|
||||
@@ -8696,6 +8722,7 @@ screenattr() eval.txt /*screenattr()*
|
||||
screenchar() eval.txt /*screenchar()*
|
||||
screenchars() eval.txt /*screenchars()*
|
||||
screencol() eval.txt /*screencol()*
|
||||
screenpos() eval.txt /*screenpos()*
|
||||
screenrow() eval.txt /*screenrow()*
|
||||
screenstring() eval.txt /*screenstring()*
|
||||
script usr_41.txt /*script*
|
||||
@@ -8799,8 +8826,10 @@ sign_getdefined() eval.txt /*sign_getdefined()*
|
||||
sign_getplaced() eval.txt /*sign_getplaced()*
|
||||
sign_jump() eval.txt /*sign_jump()*
|
||||
sign_place() eval.txt /*sign_place()*
|
||||
sign_placelist() eval.txt /*sign_placelist()*
|
||||
sign_undefine() eval.txt /*sign_undefine()*
|
||||
sign_unplace() eval.txt /*sign_unplace()*
|
||||
sign_unplacelist() eval.txt /*sign_unplacelist()*
|
||||
signs sign.txt /*signs*
|
||||
simple-change change.txt /*simple-change*
|
||||
simplify() eval.txt /*simplify()*
|
||||
@@ -9376,29 +9405,29 @@ term++open terminal.txt /*term++open*
|
||||
term-dependent-settings term.txt /*term-dependent-settings*
|
||||
term-list syntax.txt /*term-list*
|
||||
term.txt term.txt /*term.txt*
|
||||
term_dumpdiff() eval.txt /*term_dumpdiff()*
|
||||
term_dumpload() eval.txt /*term_dumpload()*
|
||||
term_dumpwrite() eval.txt /*term_dumpwrite()*
|
||||
term_getaltscreen() eval.txt /*term_getaltscreen()*
|
||||
term_getansicolors() eval.txt /*term_getansicolors()*
|
||||
term_getattr() eval.txt /*term_getattr()*
|
||||
term_getcursor() eval.txt /*term_getcursor()*
|
||||
term_getjob() eval.txt /*term_getjob()*
|
||||
term_getline() eval.txt /*term_getline()*
|
||||
term_getscrolled() eval.txt /*term_getscrolled()*
|
||||
term_getsize() eval.txt /*term_getsize()*
|
||||
term_getstatus() eval.txt /*term_getstatus()*
|
||||
term_gettitle() eval.txt /*term_gettitle()*
|
||||
term_gettty() eval.txt /*term_gettty()*
|
||||
term_list() eval.txt /*term_list()*
|
||||
term_scrape() eval.txt /*term_scrape()*
|
||||
term_sendkeys() eval.txt /*term_sendkeys()*
|
||||
term_setansicolors() eval.txt /*term_setansicolors()*
|
||||
term_setkill() eval.txt /*term_setkill()*
|
||||
term_setrestore() eval.txt /*term_setrestore()*
|
||||
term_setsize() eval.txt /*term_setsize()*
|
||||
term_start() eval.txt /*term_start()*
|
||||
term_wait() eval.txt /*term_wait()*
|
||||
term_dumpdiff() terminal.txt /*term_dumpdiff()*
|
||||
term_dumpload() terminal.txt /*term_dumpload()*
|
||||
term_dumpwrite() terminal.txt /*term_dumpwrite()*
|
||||
term_getaltscreen() terminal.txt /*term_getaltscreen()*
|
||||
term_getansicolors() terminal.txt /*term_getansicolors()*
|
||||
term_getattr() terminal.txt /*term_getattr()*
|
||||
term_getcursor() terminal.txt /*term_getcursor()*
|
||||
term_getjob() terminal.txt /*term_getjob()*
|
||||
term_getline() terminal.txt /*term_getline()*
|
||||
term_getscrolled() terminal.txt /*term_getscrolled()*
|
||||
term_getsize() terminal.txt /*term_getsize()*
|
||||
term_getstatus() terminal.txt /*term_getstatus()*
|
||||
term_gettitle() terminal.txt /*term_gettitle()*
|
||||
term_gettty() terminal.txt /*term_gettty()*
|
||||
term_list() terminal.txt /*term_list()*
|
||||
term_scrape() terminal.txt /*term_scrape()*
|
||||
term_sendkeys() terminal.txt /*term_sendkeys()*
|
||||
term_setansicolors() terminal.txt /*term_setansicolors()*
|
||||
term_setkill() terminal.txt /*term_setkill()*
|
||||
term_setrestore() terminal.txt /*term_setrestore()*
|
||||
term_setsize() terminal.txt /*term_setsize()*
|
||||
term_start() terminal.txt /*term_start()*
|
||||
term_wait() terminal.txt /*term_wait()*
|
||||
termcap term.txt /*termcap*
|
||||
termcap-changed version4.txt /*termcap-changed*
|
||||
termcap-colors term.txt /*termcap-colors*
|
||||
@@ -9429,6 +9458,7 @@ terminal-debugger terminal.txt /*terminal-debugger*
|
||||
terminal-diff terminal.txt /*terminal-diff*
|
||||
terminal-diffscreendump terminal.txt /*terminal-diffscreendump*
|
||||
terminal-dumptest terminal.txt /*terminal-dumptest*
|
||||
terminal-function-details terminal.txt /*terminal-function-details*
|
||||
terminal-functions usr_41.txt /*terminal-functions*
|
||||
terminal-info term.txt /*terminal-info*
|
||||
terminal-job-index index.txt /*terminal-job-index*
|
||||
@@ -9455,6 +9485,7 @@ test_alloc_fail() eval.txt /*test_alloc_fail()*
|
||||
test_autochdir() eval.txt /*test_autochdir()*
|
||||
test_feedinput() eval.txt /*test_feedinput()*
|
||||
test_garbagecollect_now() eval.txt /*test_garbagecollect_now()*
|
||||
test_garbagecollect_soon() eval.txt /*test_garbagecollect_soon()*
|
||||
test_getvalue() eval.txt /*test_getvalue()*
|
||||
test_ignore_error() eval.txt /*test_ignore_error()*
|
||||
test_null_blob() eval.txt /*test_null_blob()*
|
||||
@@ -9667,8 +9698,11 @@ v:none eval.txt /*v:none*
|
||||
v:null eval.txt /*v:null*
|
||||
v:oldfiles eval.txt /*v:oldfiles*
|
||||
v:operator eval.txt /*v:operator*
|
||||
v:option_command eval.txt /*v:option_command*
|
||||
v:option_new eval.txt /*v:option_new*
|
||||
v:option_old eval.txt /*v:option_old*
|
||||
v:option_oldglobal eval.txt /*v:option_oldglobal*
|
||||
v:option_oldlocal eval.txt /*v:option_oldlocal*
|
||||
v:option_type eval.txt /*v:option_type*
|
||||
v:prevcount eval.txt /*v:prevcount*
|
||||
v:profiling eval.txt /*v:profiling*
|
||||
@@ -9708,6 +9742,7 @@ v:true eval.txt /*v:true*
|
||||
v:val eval.txt /*v:val*
|
||||
v:var eval.txt /*v:var*
|
||||
v:version eval.txt /*v:version*
|
||||
v:versionlong eval.txt /*v:versionlong*
|
||||
v:vim_did_enter eval.txt /*v:vim_did_enter*
|
||||
v:warningmsg eval.txt /*v:warningmsg*
|
||||
v:windowid eval.txt /*v:windowid*
|
||||
@@ -9866,6 +9901,7 @@ version7.txt version7.txt /*version7.txt*
|
||||
version8.0 version8.txt /*version8.0*
|
||||
version8.1 version8.txt /*version8.1*
|
||||
version8.txt version8.txt /*version8.txt*
|
||||
versionlong-variable eval.txt /*versionlong-variable*
|
||||
vi intro.txt /*vi*
|
||||
vi-differences vi_diff.txt /*vi-differences*
|
||||
vi-features vi_diff.txt /*vi-features*
|
||||
|
||||
+399
-35
@@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 8.1. Last change: 2019 May 29
|
||||
*terminal.txt* For Vim version 8.1. Last change: 2019 Jul 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -12,35 +12,36 @@ The terminal feature is optional, use this to check if your Vim has it: >
|
||||
If the result is "1" you have it.
|
||||
|
||||
|
||||
1. Basic use |terminal-use|
|
||||
Typing |terminal-typing|
|
||||
Size and color |terminal-size-color|
|
||||
Syntax |:terminal|
|
||||
Resizing |terminal-resizing|
|
||||
Terminal Modes |Terminal-mode|
|
||||
Cursor style |terminal-cursor-style|
|
||||
Session |terminal-session|
|
||||
Special keys |terminal-special-keys|
|
||||
Unix |terminal-unix|
|
||||
MS-Windows |terminal-ms-windows|
|
||||
2. Terminal communication |terminal-communication|
|
||||
Vim to job: term_sendkeys() |terminal-to-job|
|
||||
Job to Vim: JSON API |terminal-api|
|
||||
Using the client-server feature |terminal-client-server|
|
||||
3. Remote testing |terminal-testing|
|
||||
4. Diffing screen dumps |terminal-diff|
|
||||
Writing a screen dump test for Vim |terminal-dumptest|
|
||||
Creating a screen dump |terminal-screendump|
|
||||
Comparing screen dumps |terminal-diffscreendump|
|
||||
5. Debugging |terminal-debug|
|
||||
Starting |termdebug-starting|
|
||||
Example session |termdebug-example|
|
||||
Stepping through code |termdebug-stepping|
|
||||
Inspecting variables |termdebug-variables|
|
||||
Other commands |termdebug-commands|
|
||||
Prompt mode |termdebug-prompt|
|
||||
Communication |termdebug-communication|
|
||||
Customizing |termdebug-customizing|
|
||||
1. Basic use |terminal-use|
|
||||
Typing |terminal-typing|
|
||||
Size and color |terminal-size-color|
|
||||
Command syntax |:terminal|
|
||||
Resizing |terminal-resizing|
|
||||
Terminal Modes |Terminal-mode|
|
||||
Cursor style |terminal-cursor-style|
|
||||
Session |terminal-session|
|
||||
Special keys |terminal-special-keys|
|
||||
Unix |terminal-unix|
|
||||
MS-Windows |terminal-ms-windows|
|
||||
2. Terminal functions |terminal-function-details|
|
||||
3. Terminal communication |terminal-communication|
|
||||
Vim to job: term_sendkeys() |terminal-to-job|
|
||||
Job to Vim: JSON API |terminal-api|
|
||||
Using the client-server feature |terminal-client-server|
|
||||
4. Remote testing |terminal-testing|
|
||||
5. Diffing screen dumps |terminal-diff|
|
||||
Writing a screen dump test for Vim |terminal-dumptest|
|
||||
Creating a screen dump |terminal-screendump|
|
||||
Comparing screen dumps |terminal-diffscreendump|
|
||||
6. Debugging |terminal-debug|
|
||||
Starting |termdebug-starting|
|
||||
Example session |termdebug-example|
|
||||
Stepping through code |termdebug-stepping|
|
||||
Inspecting variables |termdebug-variables|
|
||||
Other commands |termdebug-commands|
|
||||
Prompt mode |termdebug-prompt|
|
||||
Communication |termdebug-communication|
|
||||
Customizing |termdebug-customizing|
|
||||
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
The terminal feature requires the |+job| and |+channel| features.
|
||||
@@ -159,7 +160,7 @@ The |term_setansicolors()| function can be used to change the colors, and
|
||||
|term_getansicolors()| to get the currently used colors.
|
||||
|
||||
|
||||
Syntax ~
|
||||
Command syntax ~
|
||||
|
||||
:[range]ter[minal] [options] [command] *:ter* *:terminal*
|
||||
Open a new terminal window.
|
||||
@@ -426,8 +427,371 @@ ConPTY problems have been fixed "winpty" will be preferred.
|
||||
Environment variables are used to pass information to the running job:
|
||||
VIM_SERVERNAME v:servername
|
||||
|
||||
|
||||
==============================================================================
|
||||
2. Terminal communication *terminal-communication*
|
||||
2. Terminal functions *terminal-function-details*
|
||||
|
||||
*term_dumpdiff()*
|
||||
term_dumpdiff({filename}, {filename} [, {options}])
|
||||
Open a new window displaying the difference between the two
|
||||
files. The files must have been created with
|
||||
|term_dumpwrite()|.
|
||||
Returns the buffer number or zero when the diff fails.
|
||||
Also see |terminal-diff|.
|
||||
NOTE: this does not work with double-width characters yet.
|
||||
|
||||
The top part of the buffer contains the contents of the first
|
||||
file, the bottom part of the buffer contains the contents of
|
||||
the second file. The middle part shows the differences.
|
||||
The parts are separated by a line of equals.
|
||||
|
||||
If the {options} argument is present, it must be a Dict with
|
||||
these possible members:
|
||||
"term_name" name to use for the buffer name, instead
|
||||
of the first file name.
|
||||
"term_rows" vertical size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"term_cols" horizontal size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"vertical" split the window vertically
|
||||
"curwin" use the current window, do not split the
|
||||
window; fails if the current buffer
|
||||
cannot be |abandon|ed
|
||||
"bufnr" do not create a new buffer, use the
|
||||
existing buffer "bufnr". This buffer
|
||||
must have been previously created with
|
||||
term_dumpdiff() or term_dumpload() and
|
||||
visible in a window.
|
||||
"norestore" do not add the terminal window to a
|
||||
session file
|
||||
|
||||
Each character in the middle part indicates a difference. If
|
||||
there are multiple differences only the first in this list is
|
||||
used:
|
||||
X different character
|
||||
w different width
|
||||
f different foreground color
|
||||
b different background color
|
||||
a different attribute
|
||||
+ missing position in first file
|
||||
- missing position in second file
|
||||
|
||||
Using the "s" key the top and bottom parts are swapped. This
|
||||
makes it easy to spot a difference.
|
||||
|
||||
*term_dumpload()*
|
||||
term_dumpload({filename} [, {options}])
|
||||
Open a new window displaying the contents of {filename}
|
||||
The file must have been created with |term_dumpwrite()|.
|
||||
Returns the buffer number or zero when it fails.
|
||||
Also see |terminal-diff|.
|
||||
|
||||
For {options} see |term_dumpdiff()|.
|
||||
|
||||
*term_dumpwrite()*
|
||||
term_dumpwrite({buf}, {filename} [, {options}])
|
||||
Dump the contents of the terminal screen of {buf} in the file
|
||||
{filename}. This uses a format that can be used with
|
||||
|term_dumpload()| and |term_dumpdiff()|.
|
||||
If the job in the terminal already finished an error is given:
|
||||
*E958*
|
||||
If {filename} already exists an error is given: *E953*
|
||||
Also see |terminal-diff|.
|
||||
|
||||
{options} is a dictionary with these optional entries:
|
||||
"rows" maximum number of rows to dump
|
||||
"columns" maximum number of columns to dump
|
||||
|
||||
term_getaltscreen({buf}) *term_getaltscreen()*
|
||||
Returns 1 if the terminal of {buf} is using the alternate
|
||||
screen.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getansicolors({buf}) *term_getansicolors()*
|
||||
Get the ANSI color palette in use by terminal {buf}.
|
||||
Returns a List of length 16 where each element is a String
|
||||
representing a color in hexadecimal "#rrggbb" format.
|
||||
Also see |term_setansicolors()| and |g:terminal_ansi_colors|.
|
||||
If neither was used returns the default colors.
|
||||
|
||||
{buf} is used as with |term_getsize()|. If the buffer does not
|
||||
exist or is not a terminal window, an empty list is returned.
|
||||
{only available when compiled with the |+terminal| feature and
|
||||
with GUI enabled and/or the |+termguicolors| feature}
|
||||
|
||||
term_getattr({attr}, {what}) *term_getattr()*
|
||||
Given {attr}, a value returned by term_scrape() in the "attr"
|
||||
item, return whether {what} is on. {what} can be one of:
|
||||
bold
|
||||
italic
|
||||
underline
|
||||
strike
|
||||
reverse
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getcursor({buf}) *term_getcursor()*
|
||||
Get the cursor position of terminal {buf}. Returns a list with
|
||||
two numbers and a dictionary: [row, col, dict].
|
||||
|
||||
"row" and "col" are one based, the first screen cell is row
|
||||
1, column 1. This is the cursor position of the terminal
|
||||
itself, not of the Vim window.
|
||||
|
||||
"dict" can have these members:
|
||||
"visible" one when the cursor is visible, zero when it
|
||||
is hidden.
|
||||
"blink" one when the cursor is blinking, zero when it
|
||||
is not blinking.
|
||||
"shape" 1 for a block cursor, 2 for underline and 3
|
||||
for a vertical bar.
|
||||
"color" color of the cursor, e.g. "green"
|
||||
|
||||
{buf} must be the buffer number of a terminal window. If the
|
||||
buffer does not exist or is not a terminal window, an empty
|
||||
list is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getjob({buf}) *term_getjob()*
|
||||
Get the Job associated with terminal window {buf}.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
Returns |v:null| when there is no job.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getline({buf}, {row}) *term_getline()*
|
||||
Get a line of text from the terminal window of {buf}.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
|
||||
The first line has {row} one. When {row} is "." the cursor
|
||||
line is used. When {row} is invalid an empty string is
|
||||
returned.
|
||||
|
||||
To get attributes of each character use |term_scrape()|.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getscrolled({buf}) *term_getscrolled()*
|
||||
Return the number of lines that scrolled to above the top of
|
||||
terminal {buf}. This is the offset between the row number
|
||||
used for |term_getline()| and |getline()|, so that: >
|
||||
term_getline(buf, N)
|
||||
< is equal to: >
|
||||
getline(N + term_getscrolled(buf))
|
||||
< (if that line exists).
|
||||
|
||||
{buf} is used as with |term_getsize()|.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getsize({buf}) *term_getsize()*
|
||||
Get the size of terminal {buf}. Returns a list with two
|
||||
numbers: [rows, cols]. This is the size of the terminal, not
|
||||
the window containing the terminal.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. Use an
|
||||
empty string for the current buffer. If the buffer does not
|
||||
exist or is not a terminal window, an empty list is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_getstatus({buf}) *term_getstatus()*
|
||||
Get the status of terminal {buf}. This returns a comma
|
||||
separated list of these items:
|
||||
running job is running
|
||||
finished job has finished
|
||||
normal in Terminal-Normal mode
|
||||
One of "running" or "finished" is always present.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. If the
|
||||
buffer does not exist or is not a terminal window, an empty
|
||||
string is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_gettitle({buf}) *term_gettitle()*
|
||||
Get the title of terminal {buf}. This is the title that the
|
||||
job in the terminal has set.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. If the
|
||||
buffer does not exist or is not a terminal window, an empty
|
||||
string is returned.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_gettty({buf} [, {input}]) *term_gettty()*
|
||||
Get the name of the controlling terminal associated with
|
||||
terminal window {buf}. {buf} is used as with |term_getsize()|.
|
||||
|
||||
When {input} is omitted or 0, return the name for writing
|
||||
(stdout). When {input} is 1 return the name for reading
|
||||
(stdin). On UNIX, both return same name.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_list() *term_list()*
|
||||
Return a list with the buffer numbers of all buffers for
|
||||
terminal windows.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_scrape({buf}, {row}) *term_scrape()*
|
||||
Get the contents of {row} of terminal screen of {buf}.
|
||||
For {buf} see |term_getsize()|.
|
||||
|
||||
The first line has {row} one. When {row} is "." the cursor
|
||||
line is used. When {row} is invalid an empty string is
|
||||
returned.
|
||||
|
||||
Return a List containing a Dict for each screen cell:
|
||||
"chars" character(s) at the cell
|
||||
"fg" foreground color as #rrggbb
|
||||
"bg" background color as #rrggbb
|
||||
"attr" attributes of the cell, use |term_getattr()|
|
||||
to get the individual flags
|
||||
"width" cell width: 1 or 2
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_sendkeys({buf}, {keys}) *term_sendkeys()*
|
||||
Send keystrokes {keys} to terminal {buf}.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
|
||||
{keys} are translated as key sequences. For example, "\<c-x>"
|
||||
means the character CTRL-X.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_setansicolors({buf}, {colors}) *term_setansicolors()*
|
||||
Set the ANSI color palette used by terminal {buf}.
|
||||
{colors} must be a List of 16 valid color names or hexadecimal
|
||||
color codes, like those accepted by |highlight-guifg|.
|
||||
Also see |term_getansicolors()| and |g:terminal_ansi_colors|.
|
||||
|
||||
The colors normally are:
|
||||
0 black
|
||||
1 dark red
|
||||
2 dark green
|
||||
3 brown
|
||||
4 dark blue
|
||||
5 dark magenta
|
||||
6 dark cyan
|
||||
7 light grey
|
||||
8 dark grey
|
||||
9 red
|
||||
10 green
|
||||
11 yellow
|
||||
12 blue
|
||||
13 magenta
|
||||
14 cyan
|
||||
15 white
|
||||
|
||||
These colors are used in the GUI and in the terminal when
|
||||
'termguicolors' is set. When not using GUI colors (GUI mode
|
||||
or 'termguicolors'), the terminal window always uses the 16
|
||||
ANSI colors of the underlying terminal.
|
||||
{only available when compiled with the |+terminal| feature and
|
||||
with GUI enabled and/or the |+termguicolors| feature}
|
||||
|
||||
term_setkill({buf}, {how}) *term_setkill()*
|
||||
When exiting Vim or trying to close the terminal window in
|
||||
another way, {how} defines whether the job in the terminal can
|
||||
be stopped.
|
||||
When {how} is empty (the default), the job will not be
|
||||
stopped, trying to exit will result in |E947|.
|
||||
Otherwise, {how} specifies what signal to send to the job.
|
||||
See |job_stop()| for the values.
|
||||
|
||||
After sending the signal Vim will wait for up to a second to
|
||||
check that the job actually stopped.
|
||||
|
||||
term_setrestore({buf}, {command}) *term_setrestore()*
|
||||
Set the command to write in a session file to restore the job
|
||||
in this terminal. The line written in the session file is: >
|
||||
terminal ++curwin ++cols=%d ++rows=%d {command}
|
||||
< Make sure to escape the command properly.
|
||||
|
||||
Use an empty {command} to run 'shell'.
|
||||
Use "NONE" to not restore this window.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_setsize({buf}, {rows}, {cols}) *term_setsize()* *E955*
|
||||
Set the size of terminal {buf}. The size of the window
|
||||
containing the terminal will also be adjusted, if possible.
|
||||
If {rows} or {cols} is zero or negative, that dimension is not
|
||||
changed.
|
||||
|
||||
{buf} must be the buffer number of a terminal window. Use an
|
||||
empty string for the current buffer. If the buffer does not
|
||||
exist or is not a terminal window, an error is given.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_start({cmd} [, {options}]) *term_start()*
|
||||
Open a terminal window and run {cmd} in it.
|
||||
|
||||
{cmd} can be a string or a List, like with |job_start()|. The
|
||||
string "NONE" can be used to open a terminal window without
|
||||
starting a job, the pty of the terminal can be used by a
|
||||
command like gdb.
|
||||
|
||||
Returns the buffer number of the terminal window. If {cmd}
|
||||
cannot be executed the window does open and shows an error
|
||||
message.
|
||||
If opening the window fails zero is returned.
|
||||
|
||||
{options} are similar to what is used for |job_start()|, see
|
||||
|job-options|. However, not all options can be used. These
|
||||
are supported:
|
||||
all timeout options
|
||||
"stoponexit", "cwd", "env"
|
||||
"callback", "out_cb", "err_cb", "exit_cb", "close_cb"
|
||||
"in_io", "in_top", "in_bot", "in_name", "in_buf"
|
||||
"out_io", "out_name", "out_buf", "out_modifiable", "out_msg"
|
||||
"err_io", "err_name", "err_buf", "err_modifiable", "err_msg"
|
||||
However, at least one of stdin, stdout or stderr must be
|
||||
connected to the terminal. When I/O is connected to the
|
||||
terminal then the callback function for that part is not used.
|
||||
|
||||
There are extra options:
|
||||
"term_name" name to use for the buffer name, instead
|
||||
of the command name.
|
||||
"term_rows" vertical size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"term_cols" horizontal size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
"vertical" split the window vertically; note that
|
||||
other window position can be defined with
|
||||
command modifiers, such as |:belowright|.
|
||||
"curwin" use the current window, do not split the
|
||||
window; fails if the current buffer
|
||||
cannot be |abandon|ed
|
||||
"hidden" do not open a window
|
||||
"norestore" do not add the terminal window to a
|
||||
session file
|
||||
"term_kill" what to do when trying to close the
|
||||
terminal window, see |term_setkill()|
|
||||
"term_finish" What to do when the job is finished:
|
||||
"close": close any windows
|
||||
"open": open window if needed
|
||||
Note that "open" can be interruptive.
|
||||
See |term++close| and |term++open|.
|
||||
"term_opencmd" command to use for opening the window when
|
||||
"open" is used for "term_finish"; must
|
||||
have "%d" where the buffer number goes,
|
||||
e.g. "10split|buffer %d"; when not
|
||||
specified "botright sbuf %d" is used
|
||||
"eof_chars" Text to send after all buffer lines were
|
||||
written to the terminal. When not set
|
||||
CTRL-D is used on MS-Windows. For Python
|
||||
use CTRL-Z or "exit()". For a shell use
|
||||
"exit". A CR is always added.
|
||||
"ansi_colors" A list of 16 color names or hex codes
|
||||
defining the ANSI palette used in GUI
|
||||
color modes. See |g:terminal_ansi_colors|.
|
||||
"tty_type" (MS-Windows only): Specify which pty to
|
||||
use. See 'termwintype' for the values.
|
||||
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
term_wait({buf} [, {time}]) *term_wait()*
|
||||
Wait for pending updates of {buf} to be handled.
|
||||
{buf} is used as with |term_getsize()|.
|
||||
{time} is how long to wait for updates to arrive in msec. If
|
||||
not set then 10 msec will be used.
|
||||
{only available when compiled with the |+terminal| feature}
|
||||
|
||||
==============================================================================
|
||||
3. Terminal communication *terminal-communication*
|
||||
|
||||
There are several ways to communicate with the job running in a terminal:
|
||||
- Use |term_sendkeys()| to send text and escape sequences from Vim to the job.
|
||||
@@ -534,7 +898,7 @@ In the job you can then do something like: >
|
||||
This will open the file "some_file.c" and put the cursor on line 123.
|
||||
|
||||
==============================================================================
|
||||
3. Remote testing *terminal-testing*
|
||||
4. Remote testing *terminal-testing*
|
||||
|
||||
Most Vim tests execute a script inside Vim. For some tests this does not
|
||||
work, running the test interferes with the code being tested. To avoid this
|
||||
@@ -549,7 +913,7 @@ Functions ~
|
||||
|
||||
|
||||
==============================================================================
|
||||
4. Diffing screen dumps *terminal-diff*
|
||||
5. Diffing screen dumps *terminal-diff*
|
||||
|
||||
In some cases it can be bothersome to test that Vim displays the right
|
||||
characters on the screen. E.g. with syntax highlighting. To make this
|
||||
@@ -650,7 +1014,7 @@ Alternatively, press "s" to swap the first and second dump. Do this several
|
||||
times so that you can spot the difference in the context of the text.
|
||||
|
||||
==============================================================================
|
||||
5. Debugging *terminal-debug* *terminal-debugger*
|
||||
6. Debugging *terminal-debug* *terminal-debugger*
|
||||
|
||||
The Terminal debugging plugin can be used to debug a program with gdb and view
|
||||
the source code in a Vim window. Since this is completely contained inside
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*textprop.txt* For Vim version 8.1. Last change: 2019 May 12
|
||||
*textprop.txt* For Vim version 8.1. Last change: 2019 Jun 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -56,7 +56,7 @@ A text property normally has the name of a property type, which defines
|
||||
how to highlight the text. The property type can have these entries:
|
||||
"highlight" name of the highlight group to use
|
||||
"combine" when TRUE the text property highlighting is combined
|
||||
with any syntax highligting, when omitted or FALSE the
|
||||
with any syntax highlighting, when omitted or FALSE the
|
||||
text property highlighting replaces the syntax
|
||||
highlighting
|
||||
"priority" when properties overlap, the one with the highest
|
||||
|
||||
+112
-49
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.1. Last change: 2019 Jun 10
|
||||
*todo.txt* For Vim version 8.1. Last change: 2019 Jul 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -38,26 +38,47 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Ongoing work on text properties, see src/textprop.c
|
||||
|
||||
Popup windows are being implemented, see |popup-window|.
|
||||
|
||||
Include tests:
|
||||
test_assert.vim
|
||||
test_paste.vim
|
||||
shared.vim
|
||||
|
||||
Patch to fix session file when using multiple tabs. (Jason Franklin, 2019 May
|
||||
20)
|
||||
Also put :argadd commands at the start for all buffers, so that their order
|
||||
remains equal? Then %argdel to clean it up. Do try this with 'hidden' set.
|
||||
|
||||
Patch to add v:searchstat. (Takuya Fujiwara, #4446) Should be independent of
|
||||
'shortmess', filled on demand and cached until search changes.
|
||||
Refactor: Move common things out of evalfunc.c, it's too big.
|
||||
Move function specs out of eval.txt, it's too big.
|
||||
|
||||
Listener causes extra } to be inserted. (Paul Jolly, #4455)
|
||||
Convert comments in option.h
|
||||
|
||||
Improvement to Travis config: Ozaki Kiichi, #4521
|
||||
Patch to convert encoding of strftime(). (Ken Takata, #4685, fixes #4681)
|
||||
|
||||
Patch to Move viminfo related functions to a separate file: #4686
|
||||
|
||||
Popup windows:
|
||||
- avoid preview popup going outside of the screen
|
||||
- add popup_getpreview() - get ID of preview window
|
||||
- bug: double click in scrollbar starts selection
|
||||
- Allow resizing from the bottom-right corner
|
||||
- Implement flip option
|
||||
- Have a way to scroll to the bottom, e.g. set 'firstline' to -1? (#4577)
|
||||
- Why does 'nrformats' leak from the popup window buffer???
|
||||
Happens in Test_simple_popup() at the second screendump.
|
||||
- Disable commands, feedkeys(), CTRL-W, etc. in a popup window.
|
||||
Use ERROR_IF_POPUP_WINDOW for more commands.
|
||||
- For the "moved" property also include mouse movement?
|
||||
- Can the buffer be re-used if it was the last one, to avoid using up lots of
|
||||
buffer numbers?
|
||||
- Have an option to attach the popup to a text position, like text properties
|
||||
do. (#4560)
|
||||
- Make redrawing more efficient and avoid flicker:
|
||||
- put popup menu also put in popup_mask?
|
||||
- Invoke filter with character before mapping?
|
||||
- Figure out the size and position better.
|
||||
if wrapping splits a double-wide character
|
||||
if wrapping inserts indent
|
||||
- When drawing on top half a double-wide character, display ">" or "<" in the
|
||||
incomplete cell.
|
||||
- Use a popup window for the "info" item of completion instead of using a
|
||||
preview window. Ideas in issue #4544.
|
||||
How to add highlighting?
|
||||
|
||||
'incsearch' with :s: (#3321)
|
||||
- Get E20 when using command history to get "'<,'>s/a/b" and no Visual area
|
||||
@@ -93,6 +114,8 @@ Terminal debugger:
|
||||
with another Vim instance.
|
||||
|
||||
Terminal emulator window:
|
||||
- When typing "exit" in a terminal window with a shell and it's the only
|
||||
window, should exit Vim instead of editing another buffer. (#4539)
|
||||
- When the job in the terminal doesn't use mouse events, let the scroll wheel
|
||||
scroll the scrollback, like a terminal does at the shell prompt. #2490
|
||||
And use modeless selection. #2962
|
||||
@@ -125,30 +148,53 @@ Terminal emulator window:
|
||||
- When 'encoding' is not utf-8, or the job is using another encoding, setup
|
||||
conversions.
|
||||
|
||||
Add a way to play simple sounds? libcanberra appears to be widely spread.
|
||||
Error numbers available: E172, E221, E242, E249, E260, E274, E275, E276,
|
||||
E278, E279, E281, E290, E291, E292, E361, E362, E366, E396, E450, E451, E452,
|
||||
E453, E454, E460, E489, E491, E56, E57, E565, E569, E578, E610, E611, E653,
|
||||
E654, E693, E706, E856, E857, E860, E861, E863, E889, E900, E959
|
||||
|
||||
Problem with German spell file. Hint for solution by Klaus-Peter Schreiner in
|
||||
#4314, solves the Rasenmäher problem.
|
||||
|
||||
Sound: support on Mac? Or does libcanberra work there?
|
||||
|
||||
Patch to use forward slash for completion even when 'shellslash' is set.
|
||||
Adds 'completepathslash'. (Yasuhiro Matsumoto, 2018 Nov 15, #3612)
|
||||
|
||||
Patch to add win_splitmove() function. (Andy Massimino, #4561)
|
||||
|
||||
Resolve() works incorrectly under windows. (#4661)
|
||||
|
||||
Completion mixes results from the current buffer with tags and other files.
|
||||
Happens when typing CTRL-N while still search for results. E.g., type "b_" in
|
||||
terminal.c and then CTRL-N twice.
|
||||
Should do current file first and not split it up when more results are found.
|
||||
(Also #1890)
|
||||
|
||||
Patch to use timers in matchparen. (Daniel Hahler, #1338)
|
||||
Ready to include now?
|
||||
|
||||
Adding "10" to 'spellsuggest' causes spell suggestions to become very slow.
|
||||
(#4087)
|
||||
|
||||
Patch to support 'cursorlineopt' - only highlight the line number of the
|
||||
cursor line: #4693
|
||||
|
||||
Patch for Template string: #4491 Not ready yet. New pull: #4634
|
||||
|
||||
":bnext" in a help buffer is supposed to go to the next help buffer, but it
|
||||
goes to any buffer, and then :bnext skips help buffers, since they are
|
||||
unlisted. (#4478)
|
||||
|
||||
Problem with German spell file. Hint for solution by Klaus-Peter Schreiner in
|
||||
#4314, solves the Rasenmäher problem.
|
||||
|
||||
Problem showing a line if the number column width changes when using "o".
|
||||
(Mateusz Morusiewicz, #4245)
|
||||
|
||||
When using :packadd for a replacement language plugin, it is loaded after the
|
||||
default one. #4698
|
||||
|
||||
When using :packadd files under "later" are not used, which is inconsistent
|
||||
with packages under "start". (xtal8, #1994)
|
||||
|
||||
Visual highlight not removed when 'dipslay' is "lastline" and line doesn't
|
||||
fit. (Kevin Lawler, #4457)
|
||||
|
||||
@@ -159,6 +205,8 @@ Does not build with MinGW out of the box:
|
||||
Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
|
||||
13, #2910) Can't reproduce?
|
||||
|
||||
Columns and Rows are long, they should be int.
|
||||
|
||||
Errors found with random data:
|
||||
heap-buffer-overflow in alist_add (#2472)
|
||||
|
||||
@@ -169,32 +217,63 @@ Include part of #3242?
|
||||
When a terminal exit_cb closes the window, a following typed key is lost, if
|
||||
it's in a mapping. (2018 Oct 6, #2302, #3522)
|
||||
|
||||
Patch for Inno Setup: #2739
|
||||
|
||||
Internal diff doesn't handle binary file like external diff does. (Mike
|
||||
Williams, 2018 Oct 30)
|
||||
|
||||
Add "number" to 'signcolumn': Put signs in the number column if it exists.
|
||||
Otherwise behave like "yes". (Adam Stankiewicz, #4515)
|
||||
|
||||
Problem with :tlmenu: Detach item added with all modes? Issue #3563.
|
||||
|
||||
Patch to use timers in matchparen. (Daniel Hahler, #1338)
|
||||
Ready to include now?
|
||||
|
||||
The quoting of the [command] argument of :terminal is not clearly documented.
|
||||
Give a few examples. (#4288)
|
||||
|
||||
Opening a file with --remote-tab-silent that matches 'wildignore' does not
|
||||
work, results in (E479: No match". (#4610)
|
||||
|
||||
Bug: script written with "-W scriptout" contains Key codes, while the script
|
||||
read with "-s scriptin" expects escape codes. Probably "scriptout" needs to
|
||||
be adjusted. (Daniel Steinberg, 2019 Feb 24, #4041)
|
||||
|
||||
":registers" should indicate char/block/linewise. (Ayberk Aydin, #4546)
|
||||
|
||||
Patch for ambiguous width characters in libvterm on MS-Windows 10.
|
||||
(Nobuhiro Takasaki, #4411)
|
||||
|
||||
Problem with colors in terminal window. (Jason Franklin, 2019 May 12)
|
||||
|
||||
Lifepillar: Updated/cleaned up color schemes:
|
||||
https://github.com/lifepillar/vim8-colorschemes.
|
||||
|
||||
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) (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.
|
||||
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
|
||||
|
||||
Bug: "vipgw" does not put cursor back where it belongs. (Jason Franklin, 2019
|
||||
Mar 5)
|
||||
|
||||
Many users don't like 'thesaurus' to match so many words. (#4667, #1611)
|
||||
- when the match with the first word is partial, don't add other words on that
|
||||
line.
|
||||
- support other file formats, such as comma separated. Indicate by a prefix
|
||||
to the file in the 'thesaurus' option.
|
||||
- 'threglookexp' option: only match with first word in thesaurus file.
|
||||
(Jakson A. Aquino, 2006 Jun 14)
|
||||
|
||||
Some composing characters actually add a cell width to the character they are
|
||||
on top off, making the whole thing two characters wide. (#4526)
|
||||
|
||||
Should we include some part of pull request #4505, not increment changedtick
|
||||
in some cases? E.g. for ":write" when the changed flag was already off, the
|
||||
buffer didn't change at all.
|
||||
@@ -256,6 +335,8 @@ https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
|
||||
|
||||
Still a E315 error when using terminal. (Masato Nishihata, #3959)
|
||||
|
||||
Not existing directory in CDPATH leads to two shell calls. (#4525)
|
||||
|
||||
Use dict_iterate_start() / dict_iterate_next() instead of relying on the
|
||||
internals of the dict structure.
|
||||
|
||||
@@ -269,6 +350,10 @@ nvo-mode mapping works on Windows, not on Linux. (#3678)
|
||||
Missing tests for:
|
||||
- add_termcap_entry()
|
||||
|
||||
Redo only remembers the last change. Could use "{count}g." to redo an older
|
||||
change. How does the user know which change? At least have a way to list
|
||||
them: ":repeats". Add to history, like search history and command line history.
|
||||
|
||||
When using exclusive selection and vi" that fails, cursor moves to the left.
|
||||
Cursor should not move. (#4024)
|
||||
|
||||
@@ -431,6 +516,9 @@ MS-Windows: .lnk file not resolved properly when 'encoding' is set.
|
||||
|
||||
Merge checking for 'cursorline' and 'concealcursor', see neovim #9492.
|
||||
|
||||
Request to add sign_setlist() to make it faster to add a lot of signs, e.g.
|
||||
when adding a sign for every quickfix entry. (#4557)
|
||||
|
||||
Win32 key codes are messy. Mike Williams tried to fix that, but now old
|
||||
mappings no longer work. Create a new terminal for the better solution?
|
||||
|
||||
@@ -536,9 +624,6 @@ With 'foldmethod' "indent" and appending an empty line, what follows isn't
|
||||
included in the existing fold. Deleting the empty line and undo fixes it.
|
||||
(Oleg Koshovetc, 2018 Jul 15, #3214)
|
||||
|
||||
When using :packadd files under "later" are not used, which is inconsistent
|
||||
with packages under "start". (xtal8, #1994)
|
||||
|
||||
Patch to support "xxd -ps". (Erik Auerswald, 2018 May 1)
|
||||
Lacks a test.
|
||||
|
||||
@@ -748,22 +833,6 @@ Seems to happen when the selection is requested the second time, but before
|
||||
clip_x11_convert_selection_cb() is invoked, thus in X library code.
|
||||
Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)
|
||||
|
||||
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) (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.
|
||||
- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
|
||||
|
||||
Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
|
||||
|
||||
Creating a partial with an autoload function is confused about the "self"
|
||||
@@ -1478,10 +1547,6 @@ Patch for building a 32bit Vim with 64bit MingW compiler.
|
||||
Patch: On MS-Windows shellescape() may have to triple double quotes.
|
||||
(Ingo Karkat, 2015 Jan 16)
|
||||
|
||||
Redo only remembers the last change. Could use "{count}g." to redo an older
|
||||
change. How does the user know which change? At least have a way to list
|
||||
them: ":repeats".
|
||||
|
||||
Patch for glob(), adding slash to normal files. (Ingo Karkat, 2014 Dec 22)
|
||||
|
||||
When entering and leaving the preview window autocommands are triggered, but
|
||||
@@ -2970,8 +3035,6 @@ More patches:
|
||||
- Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3)
|
||||
- Extra argument to strtrans() to translate special keys to their name (Eric
|
||||
Arnold, 2006 May 22)
|
||||
- 'threglookexp' option: only match with first word in thesaurus file.
|
||||
(Jakson A. Aquino, 2006 Jun 14)
|
||||
- Mac: indicate whether a buffer was modified. (Nicolas Weber, 2006 Jun 30)
|
||||
- Allow negative 'nrwidth' for left aligning. (Nathan Laredo, 2006 Aug 16)
|
||||
- ml_append_string(): efficiently append to an existing line. (Brad
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*usr_27.txt* For Vim version 8.1. Last change: 2018 Jan 26
|
||||
*usr_27.txt* For Vim version 8.1. Last change: 2019 Jul 14
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -474,19 +474,19 @@ the line break happens, because all items mentioned so far don't match a line
|
||||
break.
|
||||
To check for a line break in a specific place, use the "\n" item: >
|
||||
|
||||
/the\nword
|
||||
/one\ntwo
|
||||
|
||||
This will match at a line that ends in "the" and the next line starts with
|
||||
"word". To match "the word" as well, you need to match a space or a line
|
||||
This will match at a line that ends in "one" and the next line starts with
|
||||
"two". To match "one two" as well, you need to match a space or a line
|
||||
break. The item to use for it is "\_s": >
|
||||
|
||||
/the\_sword
|
||||
/one\_stwo
|
||||
|
||||
To allow any amount of white space: >
|
||||
|
||||
/the\_s\+word
|
||||
/one\_s\+two
|
||||
|
||||
This also matches when "the " is at the end of a line and " word" at the
|
||||
This also matches when "one " is at the end of a line and " two" at the
|
||||
start of the next one.
|
||||
|
||||
"\s" matches white space, "\_s" matches white space or a line break.
|
||||
|
||||
+33
-5
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 8.1. Last change: 2019 Jun 09
|
||||
*usr_41.txt* For Vim version 8.1. Last change: 2019 Jul 06
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -720,6 +720,7 @@ Cursor and mark position: *cursor-functions* *mark-functions*
|
||||
cursor() position the cursor at a line/column
|
||||
screencol() get screen column of the cursor
|
||||
screenrow() get screen row of the cursor
|
||||
screenpos() screen row and col of a text character
|
||||
getcurpos() get position of the cursor
|
||||
getpos() get position of cursor, mark, etc.
|
||||
setpos() set position of cursor, mark, etc.
|
||||
@@ -748,6 +749,12 @@ Working with text in the current buffer: *text-functions*
|
||||
getcharsearch() return character search information
|
||||
setcharsearch() set character search information
|
||||
|
||||
Working with text in another buffer:
|
||||
getbufline() get a list of lines from the specified buffer
|
||||
setbufline() replace a line in the specified buffer
|
||||
appendbufline() append a list of lines in the specified buffer
|
||||
deletebufline() delete lines from a specified buffer
|
||||
|
||||
*system-functions* *file-functions*
|
||||
System functions and manipulation of files:
|
||||
glob() expand wildcards
|
||||
@@ -799,8 +806,10 @@ Buffers, windows and the argument list:
|
||||
argidx() current position in the argument list
|
||||
arglistid() get id of the argument list
|
||||
argv() get one entry from the argument list
|
||||
bufadd() add a file to the list of buffers
|
||||
bufexists() check if a buffer exists
|
||||
buflisted() check if a buffer exists and is listed
|
||||
bufload() ensure a buffer is loaded
|
||||
bufloaded() check if a buffer exists and is loaded
|
||||
bufname() get the name of a specific buffer
|
||||
bufnr() get the buffer number of a specific buffer
|
||||
@@ -811,10 +820,6 @@ Buffers, windows and the argument list:
|
||||
bufwinid() get the window ID of a specific buffer
|
||||
bufwinnr() get the window number of a specific buffer
|
||||
winbufnr() get the buffer number of a specific window
|
||||
getbufline() get a list of lines from the specified buffer
|
||||
setbufline() replace a line in the specified buffer
|
||||
appendbufline() append a list of lines in the specified buffer
|
||||
deletebufline() delete lines from a specified buffer
|
||||
listener_add() add a callback to listen to changes
|
||||
listener_flush() invoke listener callbacks
|
||||
listener_remove() remove a listener callback
|
||||
@@ -1010,8 +1015,10 @@ Signs: *sign-functions*
|
||||
sign_getplaced() get a list of placed signs
|
||||
sign_jump() jump to a sign
|
||||
sign_place() place a sign
|
||||
sign_placelist() place a list of signs
|
||||
sign_undefine() undefine a sign
|
||||
sign_unplace() unplace a sign
|
||||
sign_unplacelist() unplace a list of signs
|
||||
|
||||
Terminal window: *terminal-functions*
|
||||
term_start() open a terminal window and run a job
|
||||
@@ -1038,6 +1045,27 @@ Terminal window: *terminal-functions*
|
||||
term_setrestore() set command to restore a terminal
|
||||
term_setsize() set the size of a terminal
|
||||
|
||||
Popup window: *popup-window-functions*
|
||||
popup_create() create popup centered in the screen
|
||||
popup_atcursor() create popup just above the cursor position,
|
||||
closes when the cursor moves away
|
||||
popup_beval() at the position indicated by v:beval_
|
||||
variables, closes when the mouse moves away
|
||||
popup_notification() show a notification for three seconds
|
||||
popup_dialog() create popup centered with padding and border
|
||||
popup_menu() prompt for selecting an item from a list
|
||||
popup_hide() hide a popup temporarily
|
||||
popup_show() show a previously hidden popup
|
||||
popup_move() change the position and size of a popup
|
||||
popup_setoptions() override options of a popup
|
||||
popup_settext() replace the popup buffer contents
|
||||
popup_close() close one popup
|
||||
popup_clear() close all popups
|
||||
popup_filter_menu() select from a list of items
|
||||
popup_filter_yesno() blocks until 'y' or 'n' is pressed
|
||||
popup_getoptions() get current options for a popup
|
||||
popup_getpos() get actual position and size of a popup
|
||||
|
||||
Timers: *timer-functions*
|
||||
timer_start() create a timer
|
||||
timer_pause() pause or unpause a timer
|
||||
|
||||
+15
-12
@@ -336,7 +336,10 @@ New Vim variables: ~
|
||||
|v:null| an empty String, used for JSON
|
||||
|v:option_new| new value of the option, used by |OptionSet|
|
||||
|v:option_old| old value of the option, used by |OptionSet|
|
||||
|v:option_oldlocal| old local value of the option, used by |OptionSet|
|
||||
|v:option_oldglobal| old global value of the option, used by |OptionSet|
|
||||
|v:option_type| scope of the set command, used by |OptionSet|
|
||||
|v:option_command| command used to set the option, used by |OptionSet|
|
||||
|v:progpath| the command with which Vim was invoked
|
||||
|v:t_bool| value of Boolean type
|
||||
|v:t_channel| value of Channel type
|
||||
@@ -7622,8 +7625,8 @@ Problem: Still using __ARGS.
|
||||
Solution: Remove __ARGS in several files. (script by Hirohito Higashi)
|
||||
Files: src/ex_eval.c, src/ex_getln.c, src/farsi.c, src/fileio.c,
|
||||
src/fold.c, src/getchar.c, src/gui.c, src/gui_at_fs.c,
|
||||
gui_at_sb.c, src/gui_athena.c, src/gui_beval.c, src/gui_motif.c,
|
||||
src/gui_w32.c, src/gui_w48.c
|
||||
src/gui_at_sb.c, src/gui_athena.c, src/gui_beval.c,
|
||||
src/gui_motif.c, src/gui_w32.c, src/gui_w48.c
|
||||
|
||||
Patch 7.4.1198
|
||||
Problem: Still using __ARGS.
|
||||
@@ -8042,7 +8045,7 @@ Patch 7.4.1264
|
||||
Problem: Crash when receiving an empty array.
|
||||
Solution: Check for array with wrong number of arguments. (Damien)
|
||||
Files: src/channel.c, src/eval.c, src/testdir/test_channel.py,
|
||||
src/testdir.test_channel.vim
|
||||
src/testdir/test_channel.vim
|
||||
|
||||
Patch 7.4.1265
|
||||
Problem: Not all channel commands are tested.
|
||||
@@ -8451,8 +8454,8 @@ Files: src/os_win32.c
|
||||
Patch 7.4.1336
|
||||
Problem: Channel NL mode is not supported yet.
|
||||
Solution: Add NL mode support to channels.
|
||||
Files: src/channel.c, src/netbeans.c, src/structs.h, src/os_unix.d,
|
||||
src/os_win32.c, src/proto/channel.pro, src/proto/os_unix.pro,
|
||||
Files: src/channel.c, src/netbeans.c, src/structs.h, src/os_win32.c,
|
||||
src/proto/channel.pro, src/proto/os_unix.pro,
|
||||
src/proto/os_win32.pro, src/testdir/test_channel.vim,
|
||||
src/testdir/test_channel_pipe.py
|
||||
|
||||
@@ -13901,7 +13904,7 @@ Problem: Using 'hlsearch' highlighting instead of matchpos if there is no
|
||||
search match.
|
||||
Solution: Pass NULL as last item to next_search_hl() when searching for
|
||||
'hlsearch' match. (Shane Harper, closes #1013)
|
||||
Files: src/screen.c, src/testdir/test_match.vim.
|
||||
Files: src/screen.c, src/testdir/test_match.vim
|
||||
|
||||
Patch 7.4.2270
|
||||
Problem: Insufficient testing for NUL bytes on a raw channel.
|
||||
@@ -18303,13 +18306,13 @@ Patch 8.0.0610
|
||||
Problem: The screen is redrawn when t_BG is set and used to detect the
|
||||
value for 'background'.
|
||||
Solution: Don't redraw when the value of 'background' didn't change.
|
||||
Files: src/term.c.
|
||||
Files: src/term.c
|
||||
|
||||
Patch 8.0.0611
|
||||
Problem: When t_u7 is sent a few characters in the second screen line are
|
||||
overwritten and not redrawn later. (Rastislav Barlik)
|
||||
Solution: Move redrawing the screen to after overwriting the characters.
|
||||
Files: src/main.c, src/term.c.
|
||||
Files: src/main.c, src/term.c
|
||||
|
||||
Patch 8.0.0612
|
||||
Problem: Package directories are added to 'runtimepath' only after loading
|
||||
@@ -27635,7 +27638,7 @@ Files: src/terminal.c, src/testdir/dumps/Test_syntax_c_01.dump
|
||||
Patch 8.1.0327
|
||||
Problem: The "g CTRL-G" command isn't tested much.
|
||||
Solution: Add more tests. (Dominique Pelle, closes #3369)
|
||||
Files: src/testdir/test_normal.c
|
||||
Files: src/testdir/test_normal.vim
|
||||
|
||||
Patch 8.1.0328
|
||||
Problem: inputlist() doesn't work with a timer. (Dominique Pelle)
|
||||
@@ -29421,7 +29424,7 @@ Patch 8.1.0629
|
||||
Problem: "gn" selects the wrong text with a multi-line match.
|
||||
Solution: Get the end position from searchit() directly. (closes #3695)
|
||||
Files: src/testdir/test_gn.vim, src/search.c, src/proto/search.pro,
|
||||
src/edit.c, src/evalfunc.c, src/ex_docmd.c, ex_getln.c,
|
||||
src/edit.c, src/evalfunc.c, src/ex_docmd.c, src/ex_getln.c,
|
||||
src/normal.c
|
||||
|
||||
Patch 8.1.0630
|
||||
@@ -30856,7 +30859,7 @@ Patch 8.1.0849
|
||||
Problem: Cursorline highlight is not always updated.
|
||||
Solution: Set w_last_cursorline when redrawing. Fix resetting cursor flags
|
||||
when using the popup menu.
|
||||
Files: src/screen.c, src/popupmenu.c, src/testdir/test_highlight.vim,
|
||||
Files: src/screen.c, src/popupmnu.c, src/testdir/test_highlight.vim,
|
||||
src/testdir/dumps/Test_cursorline_yank_01.dump
|
||||
|
||||
Patch 8.1.0850
|
||||
@@ -33444,7 +33447,7 @@ Patch 8.1.1276
|
||||
Problem: Cannot combine text properties with syntax highlighting.
|
||||
Solution: Add the "combine" field to prop_type_add(). (closes #4343)
|
||||
Files: runtime/doc/eval.txt, runtime/doc/textprop.txt, src/screen.c,
|
||||
src/testprop.c, src/structs.h, src/testdir/test_textprop.vim
|
||||
src/structs.h, src/testdir/test_textprop.vim
|
||||
|
||||
Patch 8.1.1277 (after 8.1.1276)
|
||||
Problem: Missing screenshot update.
|
||||
|
||||
+10
-2
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
||||
*windows.txt* For Vim version 8.1. Last change: 2019 Jul 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -864,7 +864,15 @@ height of the preview window when it's opened. The 'previewwindow' option is
|
||||
set in the preview window to be able to recognize it. The 'winfixheight'
|
||||
option is set to have it keep the same height when opening/closing other
|
||||
windows.
|
||||
|
||||
*preview-popup*
|
||||
Alternatively, a popup window can be used by setting the 'previewpopup'
|
||||
option. When set, it overrules the 'previewwindow' and 'previewheight'
|
||||
settings. The option is a comma separated list of values:
|
||||
height maximum height of the popup
|
||||
width maximum width of the popup
|
||||
Example: >
|
||||
:set previewpopup=height:10,width:60
|
||||
<
|
||||
*:pta* *:ptag*
|
||||
:pta[g][!] [tagname]
|
||||
Does ":tag[!] [tagname]" and shows the found tag in a
|
||||
|
||||
@@ -707,6 +707,9 @@ au BufNewFile,BufRead *.t.html setf tilde
|
||||
" HTML (.shtml and .stm for server side)
|
||||
au BufNewFile,BufRead *.html,*.htm,*.shtml,*.stm call dist#ft#FThtml()
|
||||
|
||||
" Vue.js Single File Component
|
||||
au BufNewFile,BufRead *.vue setf vuejs
|
||||
|
||||
" HTML with Ruby - eRuby
|
||||
au BufNewFile,BufRead *.erb,*.rhtml setf eruby
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
" Language: Dune buildsystem
|
||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||
" Anton Kochkov <anton.kochkov@gmail.com>
|
||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
||||
" Last Change:
|
||||
" 2018 Nov 3 - Added commentstring (Markus Mottl)
|
||||
" 2017 Sep 6 - Initial version (Etienne Millon)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin=1
|
||||
|
||||
set lisp
|
||||
|
||||
" Comment string
|
||||
setl commentstring=;\ %s
|
||||
setl comments=:;
|
||||
|
||||
setl iskeyword+=#,?,.,/
|
||||
+36
-16
@@ -5,12 +5,12 @@
|
||||
" Pierre Vittet <pierre-vittet@pvittet.com>
|
||||
" Stefano Zacchiroli <zack@bononia.it>
|
||||
" Vincent Aravantinos <firstname.name@imag.fr>
|
||||
" URL: http://www.ocaml.info/vim/ftplugin/ocaml.vim
|
||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
||||
" Last Change:
|
||||
" 2013 Oct 27 - Added commentstring (MM)
|
||||
" 2013 Jul 26 - load default compiler settings (MM)
|
||||
" 2013 Jul 24 - removed superfluous efm-setting (MM)
|
||||
" 2013 Jul 22 - applied fixes supplied by Hirotaka Hamada (MM)
|
||||
" 2013 Mar 15 - Improved error format (MM)
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -37,6 +37,10 @@ endif
|
||||
let s:cposet=&cpoptions
|
||||
set cpo&vim
|
||||
|
||||
" Comment string
|
||||
setlocal comments=
|
||||
setlocal commentstring=(*%s*)
|
||||
|
||||
" Add mappings, unless the user didn't want this.
|
||||
if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
|
||||
" (un)commenting
|
||||
@@ -60,16 +64,39 @@ if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
|
||||
endif
|
||||
|
||||
" Let % jump between structure elements (due to Issac Trotts)
|
||||
let b:mw = ''
|
||||
let b:mw = b:mw . ',\<let\>:\<and\>:\(\<in\>\|;;\)'
|
||||
let b:mw = '\<let\>:\<and\>:\(\<in\>\|;;\)'
|
||||
let b:mw = b:mw . ',\<if\>:\<then\>:\<else\>'
|
||||
let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>,'
|
||||
let b:mw = b:mw . ',\<\(for\|while\)\>:\<do\>:\<done\>'
|
||||
let b:mw = b:mw . ',\<\(object\|sig\|struct\|begin\)\>:\<end\>'
|
||||
let b:mw = b:mw . ',\<\(match\|try\)\>:\<with\>'
|
||||
let b:match_words = b:mw
|
||||
|
||||
let b:match_ignorecase=0
|
||||
|
||||
function! s:OcpGrep(bang,args) abort
|
||||
let grepprg = &l:grepprg
|
||||
let grepformat = &l:grepformat
|
||||
let shellpipe = &shellpipe
|
||||
try
|
||||
let &l:grepprg = "ocp-grep -c never"
|
||||
setlocal grepformat=%f:%l:%m
|
||||
if &shellpipe ==# '2>&1| tee' || &shellpipe ==# '|& tee'
|
||||
let &shellpipe = "| tee"
|
||||
endif
|
||||
execute 'grep! '.a:args
|
||||
if empty(a:bang) && !empty(getqflist())
|
||||
return 'cfirst'
|
||||
else
|
||||
return ''
|
||||
endif
|
||||
finally
|
||||
let &l:grepprg = grepprg
|
||||
let &l:grepformat = grepformat
|
||||
let &shellpipe = shellpipe
|
||||
endtry
|
||||
endfunction
|
||||
command! -bar -bang -complete=file -nargs=+ Ocpgrep exe s:OcpGrep(<q-bang>, <q-args>)
|
||||
|
||||
" switching between interfaces (.mli) and implementations (.ml)
|
||||
if !exists("g:did_ocaml_switch")
|
||||
let g:did_ocaml_switch = 1
|
||||
@@ -97,15 +124,8 @@ endif
|
||||
" Folding support
|
||||
|
||||
" Get the modeline because folding depends on indentation
|
||||
let s:s = line2byte(line('.'))+col('.')-1
|
||||
if search('^\s*(\*:o\?caml:')
|
||||
let s:modeline = getline(".")
|
||||
else
|
||||
let s:modeline = ""
|
||||
endif
|
||||
if s:s > 0
|
||||
exe 'goto' s:s
|
||||
endif
|
||||
let lnum = search('^\s*(\*:o\?caml:', 'n')
|
||||
let s:modeline = lnum? getline(lnum): ""
|
||||
|
||||
" Get the indentation params
|
||||
let s:m = matchstr(s:modeline,'default\s*=\s*\d\+')
|
||||
@@ -372,8 +392,8 @@ endfunction
|
||||
endfun
|
||||
|
||||
" This variable contain a dictionnary of list. Each element of the dictionnary
|
||||
" represent an annotation system. An annotation system is a list with:
|
||||
" - annotation file name as its key
|
||||
" represent an annotation system. An annotation system is a list with :
|
||||
" - annotation file name as it's key
|
||||
" - annotation file path as first element of the contained list
|
||||
" - build path as second element of the contained list
|
||||
" - annot_file_last_mod (contain the date of .annot file) as third element
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Vim's quickfix window
|
||||
" Maintainer: Lech Lorens <Lech.Lorens@gmail.com>
|
||||
" Last Changed: 30 Apr 2012
|
||||
" Last Change: 2019 Jul 15
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -10,7 +10,9 @@ endif
|
||||
" Don't load another plugin for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "set stl<"
|
||||
if !get(g:, 'qf_disable_statusline')
|
||||
let b:undo_ftplugin = "set stl<"
|
||||
|
||||
" Display the command that produced the list in the quickfix window:
|
||||
setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}\ %=%-15(%l,%c%V%)\ %P
|
||||
" Display the command that produced the list in the quickfix window:
|
||||
setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}\ %=%-15(%l,%c%V%)\ %P
|
||||
endif
|
||||
|
||||
@@ -27,11 +27,11 @@ menutrans &Version &Верзија
|
||||
menutrans &About &О\ програму
|
||||
|
||||
" File menu
|
||||
menutrans &File &Датотека
|
||||
menutrans &File &Фајл
|
||||
menutrans &Open\.\.\.<Tab>:e &Отвори\.\.\.<Tab>:e
|
||||
menutrans Sp&lit-Open\.\.\.<Tab>:sp &Подели-отвори\.\.\.<Tab>:sp
|
||||
menutrans Open\ Tab\.\.\.<Tab>:tabnew Отвори\ картицу\.\.\.<Tab>:tabnew
|
||||
menutrans &New<Tab>:enew &Нова<Tab>:enew
|
||||
menutrans &New<Tab>:enew &Нов<Tab>:enew
|
||||
menutrans &Close<Tab>:close &Затвори<Tab>:close
|
||||
menutrans &Save<Tab>:w &Сачувај<Tab>:w
|
||||
menutrans Save\ &As\.\.\.<Tab>:sav Сачувај\ &као\.\.\.<Tab>:sav
|
||||
@@ -43,14 +43,14 @@ menutrans E&xit<Tab>:qa К&рај<Tab>:qa
|
||||
|
||||
" Edit menu
|
||||
menutrans &Edit &Уређивање
|
||||
menutrans &Undo<Tab>u &Врати<Tab>u
|
||||
menutrans &Redo<Tab>^R &Поврати<Tab>^R
|
||||
menutrans &Undo<Tab>u &Поништи<Tab>u
|
||||
menutrans &Redo<Tab>^R &Врати\ измену<Tab>^R
|
||||
menutrans Rep&eat<Tab>\. П&онови<Tab>\.
|
||||
menutrans Cu&t<Tab>"+x Исе&ци<Tab>"+x
|
||||
menutrans &Copy<Tab>"+y &Копирај<Tab>"+y
|
||||
menutrans &Paste<Tab>"+gP &Убаци<Tab>"+gP
|
||||
menutrans &Paste<Tab>"+P &Убаци<Tab>"+gP
|
||||
menutrans Put\ &Before<Tab>[p Стави\ пре&д<Tab>[p
|
||||
menutrans &Paste<Tab>"+P &Убаци<Tab>"+P
|
||||
menutrans Put\ &Before<Tab>[p Стави\ испре&д<Tab>[p
|
||||
menutrans Put\ &After<Tab>]p Стави\ &иза<Tab>]p
|
||||
menutrans &Delete<Tab>x Из&бриши<Tab>x
|
||||
menutrans &Select\ all<Tab>ggVG Изабери\ св&е<Tab>ggVG
|
||||
@@ -59,11 +59,11 @@ menutrans Find\ and\ Rep&lace\.\.\. Нађи\ и\ &замени\.\.\.
|
||||
menutrans Settings\ &Window П&розор\ подешавања
|
||||
menutrans Startup\ &Settings По&дешавања\ при\ покретању
|
||||
menutrans &Global\ Settings Оп&шта\ подешавања
|
||||
menutrans F&ile\ Settings Подешавања\ за\ да&тотеке
|
||||
menutrans &Shiftwidth &Померај
|
||||
menutrans F&ile\ Settings Подешавања\ за\ фај&лове
|
||||
menutrans &Shiftwidth &Корак\ увлачења
|
||||
menutrans Soft\ &Tabstop &Мека\ табулација
|
||||
menutrans Te&xt\ Width\.\.\. &Ширина\ текста\.\.\.
|
||||
menutrans &File\ Format\.\.\. &Врста\ датотеке\.\.\.
|
||||
menutrans &File\ Format\.\.\. &Врста\ фајла\.\.\.
|
||||
menutrans Show\ C&olor\ Schemes\ in\ Menu Прикажи\ шеме\ бо&ја\ у\ менију
|
||||
menutrans C&olor\ Scheme \Шеме\ бо&ја
|
||||
menutrans Show\ &Keymaps\ in\ Menu Прикажи\ прес&ликавања\ тастатуре\ у\ менију
|
||||
@@ -71,15 +71,15 @@ menutrans &Keymap Прес&ликавања\ тастатуре
|
||||
menutrans Select\ Fo&nt\.\.\. Избор\ &фонта\.\.\.
|
||||
|
||||
" Edit/Global Settings
|
||||
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Нагласи\ &образце\ (да/не)<Tab>:set\ hls!
|
||||
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Истицање\ &шаблона\ (да/не)<Tab>:set\ hls!
|
||||
menutrans Toggle\ &Ignoring\ Case<Tab>:set\ ic! Занемари\ величину\ &слова\ (да/не)<Tab>:set\ ic!
|
||||
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Провери\ пратећу\ &заграду\ (да/не)<Tab>:set\ sm!
|
||||
menutrans Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Прикажи\ упарену\ &заграду\ (да/не)<Tab>:set\ sm!
|
||||
menutrans &Context\ lines Видљиви\ &редови
|
||||
menutrans &Virtual\ Edit Виртуелно\ &уређивање
|
||||
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Режим\ у&носа\ (да/не)<Tab>:set\ im!
|
||||
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! Режим\ У&метање\ (да/не)<Tab>:set\ im!
|
||||
menutrans Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! '&Vi'\ сагласно\ (да/не)<Tab>:set\ cp!
|
||||
menutrans Search\ &Path\.\.\. Путања\ &претраге\.\.\.
|
||||
menutrans Ta&g\ Files\.\.\. &Датотеке\ ознака\.\.\.
|
||||
menutrans Ta&g\ Files\.\.\. &Фајлови\ ознака\.\.\.
|
||||
menutrans Toggle\ &Toolbar Линија\ са\ &алаткама\ (да/не)
|
||||
menutrans Toggle\ &Bottom\ Scrollbar Доња\ л&инија\ клизања\ (да/не)
|
||||
menutrans Toggle\ &Left\ Scrollbar &Лева\ линија\ клизања\ (да/не)
|
||||
@@ -88,8 +88,8 @@ menutrans Toggle\ &Right\ Scrollbar &Десна\ линија\ клизања\ (
|
||||
" Edit/Global Settings/Virtual Edit
|
||||
menutrans Never Никад
|
||||
menutrans Block\ Selection Избор\ блока
|
||||
menutrans Insert\ mode Режим\ уноса
|
||||
menutrans Block\ and\ Insert Блок\ и\ унос
|
||||
menutrans Insert\ mode Режим\ Уметање
|
||||
menutrans Block\ and\ Insert Блок\ и\ Уметање
|
||||
menutrans Always Увек
|
||||
|
||||
" Edit/File Settings
|
||||
@@ -109,13 +109,13 @@ menutrans None Без\ пресликавања
|
||||
menutrans &Tools &Алатке
|
||||
menutrans &Jump\ to\ this\ tag<Tab>g^] Скочи\ на\ &ову\ ознаку<Tab>g^]
|
||||
menutrans Jump\ &back<Tab>^T Скочи\ &натраг<Tab>^T
|
||||
menutrans Build\ &Tags\ File Изгради\ &датотеку\ ознака
|
||||
menutrans Build\ &Tags\ File Изгради\ &фајл\ ознака
|
||||
menutrans &Spelling Пра&вопис
|
||||
menutrans &Folding &Подвијање
|
||||
menutrans Create\ &Fold<Tab>zf С&твори\ подвијутак<Tab>zf
|
||||
menutrans &Delete\ Fold<Tab>zd О&бриши\ подвијутак<Tab>zd
|
||||
menutrans Delete\ &All\ Folds<Tab>zD Обриши\ све\ по&двијутке<Tab>zD
|
||||
menutrans Fold\ column\ &width Ширина\ &реда\ подвијутка
|
||||
menutrans Create\ &Fold<Tab>zf С&твори\ свијутак<Tab>zf
|
||||
menutrans &Delete\ Fold<Tab>zd О&бриши\ свијутак<Tab>zd
|
||||
menutrans Delete\ &All\ Folds<Tab>zD Обриши\ све\ св&ијутке<Tab>zD
|
||||
menutrans Fold\ column\ &width Ширина\ &реда\ цвијутка
|
||||
"menutrans &Diff &Упоређивање
|
||||
menutrans &Make<Tab>:make 'mak&е'<Tab>:make
|
||||
menutrans &List\ Errors<Tab>:cl Списак\ &грешака<Tab>:cl
|
||||
@@ -146,15 +146,15 @@ menutrans Set\ Language\ to\ "en_us" Постави\ језик\ на\ "en_us"
|
||||
menutrans &Find\ More\ Languages Пронађи\ још\ језика
|
||||
|
||||
" Tools/Folding
|
||||
menutrans &Enable/Disable\ folds<Tab>zi &Омогући/прекини\ подвијање<Tab>zi
|
||||
menutrans &Enable/Disable\ folds<Tab>zi &Омогући/прекини\ свијање<Tab>zi
|
||||
menutrans &View\ Cursor\ Line<Tab>zv &Покажи\ ред\ са\ курсором<Tab>zv
|
||||
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx Покажи\ &само\ ред\ са\ курсором<Tab>zMzx
|
||||
menutrans C&lose\ more\ folds<Tab>zm &Затвори\ више\ подвијутака<Tab>zm
|
||||
menutrans &Close\ all\ folds<Tab>zM Затвори\ с&ве\ подвијутке<Tab>zM
|
||||
menutrans O&pen\ more\ folds<Tab>zr Отвори\ виш&е\ подвијутака<Tab>zr
|
||||
menutrans &Open\ all\ folds<Tab>zR О&твори\ све\ подвијутке<Tab>zR
|
||||
menutrans C&lose\ more\ folds<Tab>zm &Затвори\ више\ свијутака<Tab>zm
|
||||
menutrans &Close\ all\ folds<Tab>zM Затвори\ с&ве\ свијутке<Tab>zM
|
||||
menutrans O&pen\ more\ folds<Tab>zr Отвори\ виш&е\ свијутака<Tab>zr
|
||||
menutrans &Open\ all\ folds<Tab>zR О&твори\ све\ свијутке<Tab>zR
|
||||
menutrans Fold\ Met&hod &Начин\ подвијања
|
||||
menutrans Fold\ Col&umn\ Width Ширина\ колоне\ испред\ подвијутака
|
||||
menutrans Fold\ Col&umn\ Width Ширина\ колоне\ испред\ свијутака
|
||||
|
||||
" Tools/Folding/Fold Method
|
||||
menutrans M&anual &Ручно
|
||||
@@ -181,7 +181,7 @@ menutrans Delete &Обриши
|
||||
menutrans &Alternate А&лтернативни
|
||||
menutrans &Next &Следећи
|
||||
menutrans &Previous &Претходни
|
||||
menutrans [No\ File] [Нема\ датотеке]
|
||||
menutrans [No\ File] [Нема\ фајла]
|
||||
|
||||
" Window menu
|
||||
menutrans &Window &Прозор
|
||||
@@ -189,7 +189,7 @@ menutrans &New<Tab>^Wn &Нови<Tab>^Wn
|
||||
menutrans S&plit<Tab>^Ws &Подели<Tab>^Ws
|
||||
menutrans Sp&lit\ To\ #<Tab>^W^^ Подели\ са\ &алтернативним<Tab>^W^^
|
||||
menutrans Split\ &Vertically<Tab>^Wv Подели\ &усправно<Tab>^Wv
|
||||
menutrans Split\ File\ E&xplorer Подели\ за\ преглед\ &датотека
|
||||
menutrans Split\ File\ E&xplorer Подели\ за\ преглед\ &фајлова
|
||||
menutrans &Close<Tab>^Wc &Затвори<Tab>^Wc
|
||||
menutrans Close\ &Other(s)<Tab>^Wo Затвори\ &остале<Tab>^Wo
|
||||
"menutrans Ne&xt<Tab>^Ww &Следећи<Tab>^Ww
|
||||
@@ -210,7 +210,7 @@ menutrans &Left\ side<Tab>^WH У&лево<Tab>^WH
|
||||
menutrans &Right\ side<Tab>^WL У&десно<Tab>^WL
|
||||
|
||||
" The popup menu
|
||||
menutrans &Undo &Врати
|
||||
menutrans &Undo &Поништи
|
||||
menutrans Cu&t &Исеци
|
||||
menutrans &Copy &Копирај
|
||||
menutrans &Paste &Убаци
|
||||
@@ -218,7 +218,7 @@ menutrans &Delete И&збриши
|
||||
menutrans Select\ Blockwise Бирај\ б&локовски
|
||||
menutrans Select\ &Word Изабери\ &реч
|
||||
menutrans Select\ &Sentence Изабери\ р&еченицу
|
||||
menutrans Select\ Pa&ragraph Изабери\ &параграф
|
||||
menutrans Select\ Pa&ragraph Изабери\ &пасус
|
||||
menutrans Select\ &Line Изабери\ р&ед
|
||||
menutrans Select\ &Block Изабери\ &блок
|
||||
menutrans Select\ &All Изабери\ &све
|
||||
@@ -264,13 +264,13 @@ endif
|
||||
|
||||
" Syntax menu
|
||||
menutrans &Syntax &Синтакса
|
||||
menutrans &Show\ File\ Types\ in\ Menu Прикажи\ типове\ датотека\ у\ &менију
|
||||
menutrans &Show\ File\ Types\ in\ Menu Прикажи\ типове\ фајлова\ у\ &менију
|
||||
menutrans Set\ '&syntax'\ only Поде&си\ само\ 'syntax'
|
||||
menutrans Set\ '&filetype'\ too Подеси\ &такође\ и\ 'filetype'
|
||||
menutrans &Off &Искључено
|
||||
menutrans &Manual &Ручно
|
||||
menutrans A&utomatic &Аутоматски
|
||||
menutrans on/off\ for\ &This\ file Да/не\ за\ ову\ &датотеку
|
||||
menutrans on/off\ for\ &This\ file Да/не\ за\ овај\ &фајл
|
||||
menutrans Co&lor\ test Провера\ &боја
|
||||
menutrans &Highlight\ test Провера\ исти&цања
|
||||
menutrans &Convert\ to\ HTML Претвори\ &у\ HTML
|
||||
@@ -278,17 +278,17 @@ menutrans &Convert\ to\ HTML Претвори\ &у\ HTML
|
||||
" dialog texts
|
||||
let menutrans_help_dialog = "Унесите наредбу или реч чије појашњење тражите:\n\nДодајте i_ за наредбе уноса (нпр. i_CTRL-X)\nДодајте c_ за наредбе командног режима (нпр. с_<Del>)\nДодајте ' за имена опција (нпр. 'shiftwidth')"
|
||||
|
||||
let g:menutrans_path_dialog = "Унесите пут претраге за датотеке\nРаздвојите зарезима имена директоријума."
|
||||
let g:menutrans_path_dialog = "Унесите путању претраге за фајлове\nРаздвојите зарезима имена директоријума."
|
||||
|
||||
let g:menutrans_tags_dialog = "Унесите имена датотека са ознакама\nРаздвојите зарезима имена."
|
||||
let g:menutrans_tags_dialog = "Унесите имена фајлова са ознакама\nРаздвојите зарезима имена."
|
||||
|
||||
let g:menutrans_textwidth_dialog = "Унесите нову ширину текста (0 спречава прелом)"
|
||||
|
||||
let g:menutrans_fileformat_dialog = "Изаберите формат записа датотеке"
|
||||
let g:menutrans_fileformat_dialog = "Изаберите формат записа фајла"
|
||||
|
||||
let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Откажи"
|
||||
|
||||
let menutrans_no_file = "[Нема датотеке]"
|
||||
let menutrans_no_file = "[Нема фајла]"
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -272,6 +272,7 @@ SynMenu HIJK.HTML.HTML\ with\ M4:htmlm4
|
||||
SynMenu HIJK.HTML.HTML\ with\ Ruby\ (eRuby):eruby
|
||||
SynMenu HIJK.HTML.Cheetah\ HTML\ template:htmlcheetah
|
||||
SynMenu HIJK.HTML.Django\ HTML\ template:htmldjango
|
||||
SynMenu HIJK.HTML.Vue.js\ HTML\ template:vuejs
|
||||
SynMenu HIJK.HTML.HTML/OS:htmlos
|
||||
SynMenu HIJK.HTML.XHTML:xhtml
|
||||
SynMenu HIJK.Host\.conf:hostconf
|
||||
|
||||
+3
-1
@@ -1,7 +1,7 @@
|
||||
" These commands create the option window.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 May 25
|
||||
" Last Change: 2019 Jul 18
|
||||
|
||||
" If there already is an option window, jump to that one.
|
||||
let buf = bufnr('option-window')
|
||||
@@ -479,6 +479,8 @@ call append("$", " \tset wmw=" . &wmw)
|
||||
call append("$", "helpheight\tinitial height of the help window")
|
||||
call append("$", " \tset hh=" . &hh)
|
||||
if has("quickfix")
|
||||
call append("$", "previewpopup\tuse a popup window for preview")
|
||||
call append("$", " \tset pvp=" . &pvp)
|
||||
call append("$", "previewheight\tdefault height for the preview window")
|
||||
call append("$", " \tset pvh=" . &pvh)
|
||||
call append("$", "previewwindow\tidentifies the preview window")
|
||||
|
||||
+2
-2
@@ -838,12 +838,12 @@ endfunc
|
||||
" if there is any.
|
||||
func TermDebugBalloonExpr()
|
||||
if v:beval_winid != s:sourcewin
|
||||
return
|
||||
return ''
|
||||
endif
|
||||
if !s:stopped
|
||||
" Only evaluate when stopped, otherwise setting a breakpoint using the
|
||||
" mouse triggers a balloon.
|
||||
return
|
||||
return ''
|
||||
endif
|
||||
let s:evalFromBalloonExpr = 1
|
||||
let s:evalFromBalloonExprResult = ''
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
if &cp || exists("g:loaded_netrwPlugin")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwPlugin = "v156"
|
||||
let g:loaded_netrwPlugin = "v165"
|
||||
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#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 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 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(<q-args>)
|
||||
com! -nargs=? Ntree call netrw#SetTreetop(1,<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(expand((exists("g:netrw_gx")? g:netrw_gx : '<cfile>')),netrw#CheckIfRemote())<cr>
|
||||
nno <silent> <Plug>NetrwBrowseX :call netrw#BrowseX(netrw#GX(),netrw#CheckIfRemote(netrw#GX()))<cr>
|
||||
endif
|
||||
if maparg('gx','v') == ""
|
||||
if !hasmapto('<Plug>NetrwBrowseXVis')
|
||||
@@ -129,19 +129,15 @@ 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
|
||||
|
||||
+10
-5
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types in scripts
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2018 Feb 03
|
||||
" Last change: 2019 Jun 25
|
||||
|
||||
" 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
|
||||
@@ -195,7 +195,7 @@ else
|
||||
if s:line1 =~# '^:$'
|
||||
call dist#ft#SetFileTypeSH(s:line1) " defined in filetype.vim
|
||||
|
||||
" Z shell scripts
|
||||
" Z shell scripts
|
||||
elseif s:line1 =~# '^#compdef\>' || s:line1 =~# '^#autoload\>' ||
|
||||
\ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~# '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
|
||||
set ft=zsh
|
||||
@@ -204,15 +204,20 @@ else
|
||||
elseif s:line1 =~# '^From \([a-zA-Z][a-zA-Z_0-9\.=-]*\(@[^ ]*\)\=\|-\) .* \(19\|20\)\d\d$'
|
||||
set ft=mail
|
||||
|
||||
" Mason
|
||||
" Mason
|
||||
elseif s:line1 =~# '^<[%&].*>'
|
||||
set ft=mason
|
||||
|
||||
" Vim scripts (must have '" vim' as the first line to trigger this)
|
||||
" Vim scripts (must have '" vim' as the first line to trigger this)
|
||||
elseif s:line1 =~# '^" *[vV]im$'
|
||||
set ft=vim
|
||||
|
||||
" MOO
|
||||
" libcxx and libstdc++ standard library headers like "iostream" do not have
|
||||
" an extension, recognize the Emacs file mode.
|
||||
elseif s:line1 =~? '-\*-.*C++.*-\*-'
|
||||
set ft=cpp
|
||||
|
||||
" MOO
|
||||
elseif s:line1 =~# '^\*\* LambdaMOO Database, Format Version \%([1-3]\>\)\@!\d\+ \*\*$'
|
||||
set ft=moo
|
||||
|
||||
|
||||
+43
-42
@@ -252,48 +252,49 @@ an 50.50.220 &Syntax.HIJK.HTML.HTML\ with\ M4 :cal SetSyn("htmlm4")<CR>
|
||||
an 50.50.230 &Syntax.HIJK.HTML.HTML\ with\ Ruby\ (eRuby) :cal SetSyn("eruby")<CR>
|
||||
an 50.50.240 &Syntax.HIJK.HTML.Cheetah\ HTML\ template :cal SetSyn("htmlcheetah")<CR>
|
||||
an 50.50.250 &Syntax.HIJK.HTML.Django\ HTML\ template :cal SetSyn("htmldjango")<CR>
|
||||
an 50.50.260 &Syntax.HIJK.HTML.HTML/OS :cal SetSyn("htmlos")<CR>
|
||||
an 50.50.270 &Syntax.HIJK.HTML.XHTML :cal SetSyn("xhtml")<CR>
|
||||
an 50.50.280 &Syntax.HIJK.Host\.conf :cal SetSyn("hostconf")<CR>
|
||||
an 50.50.290 &Syntax.HIJK.Hosts\ access :cal SetSyn("hostsaccess")<CR>
|
||||
an 50.50.300 &Syntax.HIJK.Hyper\ Builder :cal SetSyn("hb")<CR>
|
||||
an 50.50.320 &Syntax.HIJK.Icewm\ menu :cal SetSyn("icemenu")<CR>
|
||||
an 50.50.330 &Syntax.HIJK.Icon :cal SetSyn("icon")<CR>
|
||||
an 50.50.340 &Syntax.HIJK.IDL\Generic\ IDL :cal SetSyn("idl")<CR>
|
||||
an 50.50.350 &Syntax.HIJK.IDL\Microsoft\ IDL :cal SetSyn("msidl")<CR>
|
||||
an 50.50.360 &Syntax.HIJK.Indent\ profile :cal SetSyn("indent")<CR>
|
||||
an 50.50.370 &Syntax.HIJK.Inform :cal SetSyn("inform")<CR>
|
||||
an 50.50.380 &Syntax.HIJK.Informix\ 4GL :cal SetSyn("fgl")<CR>
|
||||
an 50.50.390 &Syntax.HIJK.Initng :cal SetSyn("initng")<CR>
|
||||
an 50.50.400 &Syntax.HIJK.Inittab :cal SetSyn("inittab")<CR>
|
||||
an 50.50.410 &Syntax.HIJK.Inno\ setup :cal SetSyn("iss")<CR>
|
||||
an 50.50.420 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ dat :cal SetSyn("upstreamdat")<CR>
|
||||
an 50.50.430 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ log :cal SetSyn("upstreamlog")<CR>
|
||||
an 50.50.440 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ rpt :cal SetSyn("upstreamrpt")<CR>
|
||||
an 50.50.450 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ Install\ log :cal SetSyn("upstreaminstalllog")<CR>
|
||||
an 50.50.460 &Syntax.HIJK.Innovation\ Data\ Processing.Usserver\ log :cal SetSyn("usserverlog")<CR>
|
||||
an 50.50.470 &Syntax.HIJK.Innovation\ Data\ Processing.USW2KAgt\ log :cal SetSyn("usw2kagtlog")<CR>
|
||||
an 50.50.480 &Syntax.HIJK.InstallShield\ script :cal SetSyn("ishd")<CR>
|
||||
an 50.50.490 &Syntax.HIJK.Interactive\ Data\ Lang :cal SetSyn("idlang")<CR>
|
||||
an 50.50.500 &Syntax.HIJK.IPfilter :cal SetSyn("ipfilter")<CR>
|
||||
an 50.50.520 &Syntax.HIJK.J :cal SetSyn("j")<CR>
|
||||
an 50.50.530 &Syntax.HIJK.JAL :cal SetSyn("jal")<CR>
|
||||
an 50.50.540 &Syntax.HIJK.JAM :cal SetSyn("jam")<CR>
|
||||
an 50.50.550 &Syntax.HIJK.Jargon :cal SetSyn("jargon")<CR>
|
||||
an 50.50.560 &Syntax.HIJK.Java.Java :cal SetSyn("java")<CR>
|
||||
an 50.50.570 &Syntax.HIJK.Java.JavaCC :cal SetSyn("javacc")<CR>
|
||||
an 50.50.580 &Syntax.HIJK.Java.Java\ Server\ Pages :cal SetSyn("jsp")<CR>
|
||||
an 50.50.590 &Syntax.HIJK.Java.Java\ Properties :cal SetSyn("jproperties")<CR>
|
||||
an 50.50.600 &Syntax.HIJK.JavaScript :cal SetSyn("javascript")<CR>
|
||||
an 50.50.610 &Syntax.HIJK.Jess :cal SetSyn("jess")<CR>
|
||||
an 50.50.620 &Syntax.HIJK.Jgraph :cal SetSyn("jgraph")<CR>
|
||||
an 50.50.630 &Syntax.HIJK.Jovial :cal SetSyn("jovial")<CR>
|
||||
an 50.50.640 &Syntax.HIJK.JSON :cal SetSyn("json")<CR>
|
||||
an 50.50.660 &Syntax.HIJK.Kconfig :cal SetSyn("kconfig")<CR>
|
||||
an 50.50.670 &Syntax.HIJK.KDE\ script :cal SetSyn("kscript")<CR>
|
||||
an 50.50.680 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR>
|
||||
an 50.50.690 &Syntax.HIJK.Kivy :cal SetSyn("kivy")<CR>
|
||||
an 50.50.700 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR>
|
||||
an 50.50.260 &Syntax.HIJK.HTML.Vue.js\ HTML\ template :cal SetSyn("vuejs")<CR>
|
||||
an 50.50.270 &Syntax.HIJK.HTML.HTML/OS :cal SetSyn("htmlos")<CR>
|
||||
an 50.50.280 &Syntax.HIJK.HTML.XHTML :cal SetSyn("xhtml")<CR>
|
||||
an 50.50.290 &Syntax.HIJK.Host\.conf :cal SetSyn("hostconf")<CR>
|
||||
an 50.50.300 &Syntax.HIJK.Hosts\ access :cal SetSyn("hostsaccess")<CR>
|
||||
an 50.50.310 &Syntax.HIJK.Hyper\ Builder :cal SetSyn("hb")<CR>
|
||||
an 50.50.330 &Syntax.HIJK.Icewm\ menu :cal SetSyn("icemenu")<CR>
|
||||
an 50.50.340 &Syntax.HIJK.Icon :cal SetSyn("icon")<CR>
|
||||
an 50.50.350 &Syntax.HIJK.IDL\Generic\ IDL :cal SetSyn("idl")<CR>
|
||||
an 50.50.360 &Syntax.HIJK.IDL\Microsoft\ IDL :cal SetSyn("msidl")<CR>
|
||||
an 50.50.370 &Syntax.HIJK.Indent\ profile :cal SetSyn("indent")<CR>
|
||||
an 50.50.380 &Syntax.HIJK.Inform :cal SetSyn("inform")<CR>
|
||||
an 50.50.390 &Syntax.HIJK.Informix\ 4GL :cal SetSyn("fgl")<CR>
|
||||
an 50.50.400 &Syntax.HIJK.Initng :cal SetSyn("initng")<CR>
|
||||
an 50.50.410 &Syntax.HIJK.Inittab :cal SetSyn("inittab")<CR>
|
||||
an 50.50.420 &Syntax.HIJK.Inno\ setup :cal SetSyn("iss")<CR>
|
||||
an 50.50.430 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ dat :cal SetSyn("upstreamdat")<CR>
|
||||
an 50.50.440 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ log :cal SetSyn("upstreamlog")<CR>
|
||||
an 50.50.450 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ rpt :cal SetSyn("upstreamrpt")<CR>
|
||||
an 50.50.460 &Syntax.HIJK.Innovation\ Data\ Processing.Upstream\ Install\ log :cal SetSyn("upstreaminstalllog")<CR>
|
||||
an 50.50.470 &Syntax.HIJK.Innovation\ Data\ Processing.Usserver\ log :cal SetSyn("usserverlog")<CR>
|
||||
an 50.50.480 &Syntax.HIJK.Innovation\ Data\ Processing.USW2KAgt\ log :cal SetSyn("usw2kagtlog")<CR>
|
||||
an 50.50.490 &Syntax.HIJK.InstallShield\ script :cal SetSyn("ishd")<CR>
|
||||
an 50.50.500 &Syntax.HIJK.Interactive\ Data\ Lang :cal SetSyn("idlang")<CR>
|
||||
an 50.50.510 &Syntax.HIJK.IPfilter :cal SetSyn("ipfilter")<CR>
|
||||
an 50.50.530 &Syntax.HIJK.J :cal SetSyn("j")<CR>
|
||||
an 50.50.540 &Syntax.HIJK.JAL :cal SetSyn("jal")<CR>
|
||||
an 50.50.550 &Syntax.HIJK.JAM :cal SetSyn("jam")<CR>
|
||||
an 50.50.560 &Syntax.HIJK.Jargon :cal SetSyn("jargon")<CR>
|
||||
an 50.50.570 &Syntax.HIJK.Java.Java :cal SetSyn("java")<CR>
|
||||
an 50.50.580 &Syntax.HIJK.Java.JavaCC :cal SetSyn("javacc")<CR>
|
||||
an 50.50.590 &Syntax.HIJK.Java.Java\ Server\ Pages :cal SetSyn("jsp")<CR>
|
||||
an 50.50.600 &Syntax.HIJK.Java.Java\ Properties :cal SetSyn("jproperties")<CR>
|
||||
an 50.50.610 &Syntax.HIJK.JavaScript :cal SetSyn("javascript")<CR>
|
||||
an 50.50.620 &Syntax.HIJK.Jess :cal SetSyn("jess")<CR>
|
||||
an 50.50.630 &Syntax.HIJK.Jgraph :cal SetSyn("jgraph")<CR>
|
||||
an 50.50.640 &Syntax.HIJK.Jovial :cal SetSyn("jovial")<CR>
|
||||
an 50.50.650 &Syntax.HIJK.JSON :cal SetSyn("json")<CR>
|
||||
an 50.50.670 &Syntax.HIJK.Kconfig :cal SetSyn("kconfig")<CR>
|
||||
an 50.50.680 &Syntax.HIJK.KDE\ script :cal SetSyn("kscript")<CR>
|
||||
an 50.50.690 &Syntax.HIJK.Kimwitu++ :cal SetSyn("kwt")<CR>
|
||||
an 50.50.700 &Syntax.HIJK.Kivy :cal SetSyn("kivy")<CR>
|
||||
an 50.50.710 &Syntax.HIJK.KixTart :cal SetSyn("kix")<CR>
|
||||
an 50.60.100 &Syntax.L.Lace :cal SetSyn("lace")<CR>
|
||||
an 50.60.110 &Syntax.L.LamdaProlog :cal SetSyn("lprolog")<CR>
|
||||
an 50.60.120 &Syntax.L.Latte :cal SetSyn("latte")<CR>
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
" Language: Dune buildsystem
|
||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||
" Anton Kochkov <anton.kochkov@gmail.com>
|
||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
||||
" Last Change:
|
||||
" 2019 Feb 27 - Add newer keywords to the syntax (Simon Cruanes)
|
||||
" 2018 May 8 - Check current_syntax (Kawahara Satoru)
|
||||
" 2018 Mar 29 - Extend jbuild syntax with more keywords (Petter A. Urkedal)
|
||||
" 2017 Sep 6 - Initial version (Etienne Millon)
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
set syntax=lisp
|
||||
syn case match
|
||||
|
||||
" The syn-iskeyword setting lacks #,? from the iskeyword setting here.
|
||||
" Clearing it avoids maintaining keyword characters in multiple places.
|
||||
syn iskeyword clear
|
||||
|
||||
syn keyword lispDecl jbuild_version library executable executables rule ocamllex ocamlyacc menhir alias install
|
||||
|
||||
syn keyword lispKey name public_name synopsis modules libraries wrapped
|
||||
syn keyword lispKey preprocess preprocessor_deps optional c_names cxx_names
|
||||
syn keyword lispKey install_c_headers modes no_dynlink self_build_stubs_archive
|
||||
syn keyword lispKey ppx_runtime_libraries virtual_deps js_of_ocaml link_flags
|
||||
syn keyword lispKey javascript_files flags ocamlc_flags ocamlopt_flags pps staged_pps
|
||||
syn keyword lispKey library_flags c_flags c_library_flags kind package action
|
||||
syn keyword lispKey deps targets locks fallback
|
||||
syn keyword lispKey inline_tests tests names
|
||||
|
||||
syn keyword lispAtom true false
|
||||
|
||||
syn keyword lispFunc cat chdir copy# diff? echo run setenv
|
||||
syn keyword lispFunc ignore-stdout ignore-stderr ignore-outputs
|
||||
syn keyword lispFunc with-stdout-to with-stderr-to with-outputs-to
|
||||
syn keyword lispFunc write-file system bash
|
||||
|
||||
syn cluster lispBaseListCluster add=duneVar
|
||||
syn match duneVar '\${[@<^]}' containedin=lispSymbol
|
||||
syn match duneVar '\${\k\+\(:\k\+\)\?}' containedin=lispSymbol
|
||||
|
||||
hi def link duneVar Identifier
|
||||
|
||||
let b:current_syntax = "dune"
|
||||
+14
-10
@@ -1,7 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: JSON
|
||||
" Maintainer: Eli Parra <eli@elzr.com>
|
||||
" Last Change: 2014 Aug 23
|
||||
" Maintainer: vacancy
|
||||
" Previous Maintainer: Eli Parra <eli@elzr.com>
|
||||
" Last Change: 2019 Jul 08
|
||||
" Version: 0.12
|
||||
|
||||
if !exists("main_syntax")
|
||||
@@ -16,8 +17,19 @@ syntax match jsonNoise /\%(:\|,\)/
|
||||
|
||||
" NOTE that for the concealing to work your conceallevel should be set to 2
|
||||
|
||||
" Syntax: JSON Keywords
|
||||
" Separated into a match and region because a region by itself is always greedy
|
||||
syn match jsonKeywordMatch /"\([^"]\|\\\"\)\+"[[:blank:]\r\n]*\:/ contains=jsonKeyword
|
||||
if has('conceal')
|
||||
syn region jsonKeyword matchgroup=jsonQuote start=/"/ end=/"\ze[[:blank:]\r\n]*\:/ concealends contained
|
||||
else
|
||||
syn region jsonKeyword matchgroup=jsonQuote start=/"/ end=/"\ze[[:blank:]\r\n]*\:/ contained
|
||||
endif
|
||||
|
||||
" Syntax: Strings
|
||||
" Separated into a match and region because a region by itself is always greedy
|
||||
" Needs to come after keywords or else a json encoded string will break the
|
||||
" syntax
|
||||
syn match jsonStringMatch /"\([^"]\|\\\"\)\+"\ze[[:blank:]\r\n]*[,}\]]/ contains=jsonString
|
||||
if has('conceal')
|
||||
syn region jsonString oneline matchgroup=jsonQuote start=/"/ skip=/\\\\\|\\"/ end=/"/ concealends contains=jsonEscape contained
|
||||
@@ -28,14 +40,6 @@ endif
|
||||
" Syntax: JSON does not allow strings with single quotes, unlike JavaScript.
|
||||
syn region jsonStringSQError oneline start=+'+ skip=+\\\\\|\\"+ end=+'+
|
||||
|
||||
" Syntax: JSON Keywords
|
||||
" Separated into a match and region because a region by itself is always greedy
|
||||
syn match jsonKeywordMatch /"\([^"]\|\\\"\)\+"[[:blank:]\r\n]*\:/ contains=jsonKeyword
|
||||
if has('conceal')
|
||||
syn region jsonKeyword matchgroup=jsonQuote start=/"/ end=/"\ze[[:blank:]\r\n]*\:/ concealends contained
|
||||
else
|
||||
syn region jsonKeyword matchgroup=jsonQuote start=/"/ end=/"\ze[[:blank:]\r\n]*\:/ contained
|
||||
endif
|
||||
|
||||
" Syntax: Escape sequences
|
||||
syn match jsonEscape "\\["\\/bfnrt]" contained
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Lisp
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Mar 26, 2019
|
||||
" Version: 28
|
||||
" Last Change: Jul 11, 2019
|
||||
" Version: 29
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP
|
||||
"
|
||||
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec
|
||||
@@ -54,7 +54,7 @@ if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
|
||||
syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9
|
||||
syn region lispParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen0
|
||||
else
|
||||
syn region lispList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@lispListCluster
|
||||
syn region lispList matchgroup=lispParen start="(" skip="|.\{-}|" matchgroup=lispParen end=")" contains=@lispListCluster
|
||||
syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster
|
||||
endif
|
||||
|
||||
@@ -608,6 +608,8 @@ if !exists("skip_lisp_syntax_inits")
|
||||
hi def hlLevel8 ctermfg=blue guifg=darkslateblue
|
||||
hi def hlLevel9 ctermfg=darkmagenta guifg=darkviolet
|
||||
endif
|
||||
else
|
||||
hi def link lispParen Delimiter
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
|
||||
" Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de>
|
||||
" Issac Trotts <ijtrotts@ucdavis.edu>
|
||||
" URL: http://www.ocaml.info/vim/syntax/ocaml.vim
|
||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
||||
" Last Change:
|
||||
" 2018 Nov 08 - Improved highlighting of operators (Maëlan)
|
||||
" 2018 Apr 22 - Improved support for PPX (Andrey Popp)
|
||||
|
||||
+10
-9
@@ -2,8 +2,8 @@
|
||||
" Language: shell (sh) Korn shell (ksh) bash (sh)
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int>
|
||||
" Last Change: Mar 26, 2019
|
||||
" Version: 186
|
||||
" Last Change: Jun 16, 2019
|
||||
" Version: 188
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
|
||||
" For options and settings, please use: :help ft-sh-syntax
|
||||
" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr)
|
||||
@@ -381,22 +381,23 @@ syn match shBQComment contained "#.\{-}\ze`" contains=@shCommentGroup
|
||||
|
||||
" Here Documents: {{{1
|
||||
" =========================================
|
||||
" Note : shHereDoc0[137] only had shDblQuoteList contained
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t|>]\+\)" matchgroup=shHereDoc01 end="^\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^"]\+\)\"" matchgroup=shHereDoc02 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t|>]\+\)" matchgroup=shHereDoc03 end="^\s*\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^']\+\)'" matchgroup=shHereDoc04 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^']\+\)'" matchgroup=shHereDoc05 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^"]\+\)\"" matchgroup=shHereDoc06 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t'"|>]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^\t|>]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^\t|>]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^']\+\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^"]\+\)\"" matchgroup=shHereDoc13 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|>]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc16 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$"
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|>]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$" contains=@shDblQuoteList
|
||||
ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc16 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$" contains=@shDblQuoteList
|
||||
|
||||
" Here Strings: {{{1
|
||||
" =============
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: TeX
|
||||
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
|
||||
" Last Change: Apr 01, 2019
|
||||
" Version: 113
|
||||
" Last Change: May 14, 2019
|
||||
" Version: 114
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
|
||||
"
|
||||
" Notes: {{{1
|
||||
@@ -947,6 +947,7 @@ if has("conceal") && &enc == 'utf-8'
|
||||
call s:Greek('texGreek','\\eta\>' ,'η')
|
||||
call s:Greek('texGreek','\\theta\>' ,'θ')
|
||||
call s:Greek('texGreek','\\vartheta\>' ,'ϑ')
|
||||
call s:Greek('texGreek','\\iota\>' ,'ι')
|
||||
call s:Greek('texGreek','\\kappa\>' ,'κ')
|
||||
call s:Greek('texGreek','\\lambda\>' ,'λ')
|
||||
call s:Greek('texGreek','\\mu\>' ,'μ')
|
||||
@@ -969,11 +970,12 @@ if has("conceal") && &enc == 'utf-8'
|
||||
call s:Greek('texGreek','\\Delta\>' ,'Δ')
|
||||
call s:Greek('texGreek','\\Theta\>' ,'Θ')
|
||||
call s:Greek('texGreek','\\Lambda\>' ,'Λ')
|
||||
call s:Greek('texGreek','\\Xi\>' ,'Χ')
|
||||
call s:Greek('texGreek','\\Xi\>' ,'Ξ')
|
||||
call s:Greek('texGreek','\\Pi\>' ,'Π')
|
||||
call s:Greek('texGreek','\\Sigma\>' ,'Σ')
|
||||
call s:Greek('texGreek','\\Upsilon\>' ,'Υ')
|
||||
call s:Greek('texGreek','\\Phi\>' ,'Φ')
|
||||
call s:Greek('texGreek','\\Chi\>' ,'Χ')
|
||||
call s:Greek('texGreek','\\Psi\>' ,'Ψ')
|
||||
call s:Greek('texGreek','\\Omega\>' ,'Ω')
|
||||
delfun s:Greek
|
||||
|
||||
+51
-47
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 8.0 script
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Mar 08, 2019
|
||||
" Version: 8.0-21
|
||||
" Last Change: July 18, 2019
|
||||
" Version: 8.0-23
|
||||
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
@@ -19,38 +19,38 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
|
||||
syn cluster vimCommentGroup contains=vimTodo,@Spell
|
||||
|
||||
" regular vim commands {{{2
|
||||
syn keyword vimCommand contained a arga[dd] argu[ment] bad[d] bn[ext] breakd[el] bw[ipeout] cadde[xpr] cc cf[ile] changes cla[st] cnf[ile] comp[iler] cq[uit] cw[indow] delep dell diffg[et] dig[raphs] doau ea el[se] endt[ry] f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] isp[lit] keepa l[ist] lat lcl[ose] lex[pr] lgete[xpr] lla[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkv[imrc] nb[key] noa nos[wapfile] on[ly] packl[oadall] po[p] pro ps[earch] ptl[ast] pu[t] pydo pyxdo r[ead] redraws[tatus] rew[ind] rubyd[o] sIc sIp san[dbox] sbf[irst] sbr[ewind] sci scs setl[ocal] sgc sgp sie sin sm[agic] sn[ext] sor[t] spellr[epall] srI srl star[tinsert] sts[elect] sv[iew] syncbind tab tabf[ind] tabnew tags ter[minal] tm[enu] to[pleft] tu[nmenu] undol[ist] up[date] vi[sual] vmapc[lear] wa[ll] winp[os] ws[verb] xmapc[lear] xprop
|
||||
syn keyword vimCommand contained ab argd[elete] as[cii] bd[elete] bo[tright] breakl[ist] cN[ext] caddf[ile] ccl[ose] cfdo chd[ir] cle[arjumps] co[py] con[tinue] cr[ewind] d[elete] deletel delm[arks] diffo[ff] dir dp earlier elsei[f] endw[hile] files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] iuna[bbrev] keepalt la[st] later lcs lf[ile] lgr[ep] lli[st] lo[adview] lop[en] lua m[ove] mes mkvie[w] nbc[lose] noautocmd nu[mber] opt[ions] pc[lose] popu[p] prof[ile] ptN[ext] ptn[ext] pw[d] pyf[ile] pyxfile rec[over] reg[isters] ri[ght] rubyf[ile] sIe sIr sav[eas] sbl[ast] sc scl scscope sf[ind] sge sgr sig sip sm[ap] sno[magic] sp[lit] spellu[ndo] src srn startg[replace] sun[hide] sw[apname] syntime tabN[ext] tabfir[st] tabo[nly] tc[l] tf[irst] tma[p] tp[revious] tunma[p] unh[ide] v vie[w] vne[w] wh[ile] wn[ext] wundo xme xunme
|
||||
syn keyword vimCommand contained abc[lear] argdo au bel[owright] bp[revious] bro[wse] cNf[ile] cal[l] cd cfir[st] che[ckpath] clo[se] col[der] conf[irm] cs debug deletep delp diffp[atch] dj[ump] dr[op] ec em[enu] ene[w] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] j[oin] keepj[umps] lad[dexpr] lb[uffer] lcscope lfdo lgrepa[dd] lmak[e] loadk lp[revious] luado ma[rk] messages mod[e] nbs[tart] noh[lsearch] o[pen] ownsyntax pe[rl] pp[op] profd[el] pta[g] ptp[revious] py3 python3 q[uit] red[o] res[ize] rightb[elow] rundo sIg sN[ext] sbN[ext] sbm[odified] scI scp se[t] sfir[st] sgi sh[ell] sign sir sme snoreme spe[llgood] spellw[rong] sre[wind] srp startr[eplace] sunme sy t tabc[lose] tabl[ast] tabp[revious] tcld[o] th[row] tmapc[lear] tr[ewind] u[ndo] unl ve[rsion] vim[grep] vs[plit] win[size] wp[revious] wv[iminfo] xmenu xunmenu
|
||||
syn keyword vimCommand contained abo[veleft] arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] cat[ch] cdo cg[etfile] checkt[ime] cmapc[lear] colo[rscheme] cope[n] cscope debugg[reedy] deletl dep diffpu[t] dl ds[earch] echoe[rr] en[dif] ex filetype fix[del] for gui helpg[rep] ia in ju[mps] keepp[atterns] laddb[uffer] lbo[ttom] ld[o] lfir[st] lh[elpgrep] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mk[exrc] mz[scheme] new nor ol[dfiles] p[rint] ped[it] pre[serve] promptf[ind] ptf[irst] ptr[ewind] py3do pythonx qa[ll] redi[r] ret[ab] ru[ntime] rv[iminfo] sIl sa[rgument] sb[uffer] sbn[ext] sce scr[iptnames] setf[iletype] sg sgl si sil[ent] sl[eep] smenu snoremenu spelld[ump] spr[evious] srg st[op] stj[ump] sunmenu syn tN[ext] tabd[o] tabm[ove] tabr[ewind] tclf[ile] tj[ump] tn[ext] try una[bbreviate] unlo[ckvar] verb[ose] vimgrepa[dd] wN[ext] winc[md] wq x[it] xnoreme xwininfo
|
||||
syn keyword vimCommand contained al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers cabc[lear] cb[uffer] ce[nter] cgetb[uffer] chi[story] cn[ext] com cp[revious] cstag delc[ommand] deletp di[splay] diffs[plit] dli[st] dsp[lit] echom[sg] endf[unction] exi[t] filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] intro k lN[ext] laddf[ile] lc[d] le[ft] lg[etfile] lhi[story] lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mks[ession] mzf[ile] nmapc[lear] nore omapc[lear] pa[ckadd] perld[o] prev[ious] promptr[epl] ptj[ump] pts[elect] py[thon] pyx quita[ll] redr[aw] retu[rn] rub[y] sI sIn sal[l] sba[ll] sbp[revious] scg scripte[ncoding] setg[lobal] sgI sgn sic sim[alt] sla[st] smile so[urce] spelli[nfo] sr sri sta[g] stopi[nsert] sus[pend] sync ta[g] tabe[dit] tabn[ext] tabs tcd te[aroff] tl[ast] tno[remap] ts[elect] undoj[oin] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xa[ll] xnoremenu y[ank]
|
||||
syn keyword vimCommand contained ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cad[dbuffer] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cnew[er] comc[lear] cpf[ile] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do e[dit] echon endfo[r] exu[sage] fin[d] foldc[lose] g h[elp] hi if is[earch] kee[pmarks] lNf[ile] lan[guage] lch[dir] lefta[bove] lgetb[uffer] ll lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mksp[ell] n[ext] tch[dir]
|
||||
syn keyword vimCommand contained a ar[gs] argl[ocal] ba[ll] bm[odified] breaka[dd] bun[load] cabc[lear] cal[l] cc cf[ile] changes cla[st] cnf[ile] comc[lear] cp[revious] cstag debugg[reedy] deletl dep diffpu[t] dl dr[op] ec em[enu] ene[w] filet fir[st] foldo[pen] grepa[dd] helpf[ind] i imapc[lear] iuna[bbrev] keepalt la[st] lan[guage] lbo[ttom] ld[o] lfir[st] lh[elpgrep] lmak[e] loadk lp[revious] luado ma[rk] messages mod[e] nbs[tart] nor omapc[lear] packl[oadall] popu[p] profd[el] ptf[irst] pts[elect] pydo pyxfile red[o] res[ize] ru[ntime] sI sIp sav[eas] sbm[odified] sce scripte[ncoding] setg[lobal] sgc sgr sign sl[eep] smenu snoremenu spelld[ump] spr[evious] srg st[op] stj[ump] sunmenu syn tN[ext] tabd[o] tabm[ove] tabr[ewind] tch[dir] tf[irst] tlmenu tm[enu] to[pleft] tu[nmenu] undol[ist] up[date] vi[sual] vmapc[lear] wa[ll] winp[os] wundo xme xr[estore]
|
||||
syn keyword vimCommand contained ab arga[dd] argu[ment] bad[d] bn[ext] breakd[el] bw[ipeout] cabo[ve] cat[ch] ccl[ose] cfdo chd[ir] cle[arjumps] cnor comp[iler] cpf[ile] cun delc[ommand] deletp di[splay] diffs[plit] dli[st] ds[earch] echoe[rr] en[dif] ex filetype fix[del] for gui helpg[rep] ia in j[oin] keepj[umps] lab[ove] lat lc[d] le[ft] lg[etfile] lhi[story] lmapc[lear] loadkeymap lpf[ile] luafile mak[e] mk[exrc] mz[scheme] new nore on[ly] pc[lose] pp[op] promptf[ind] ptj[ump] pu[t] pyf[ile] q[uit] redi[r] ret[ab] rub[y] sIc sIr sbN[ext] sbn[ext] scg scriptv[ersion] setl[ocal] sge sh[ell] sil[ent] sla[st] smile so[urce] spelli[nfo] sr sri sta[g] stopi[nsert] sus[pend] sync ta[g] tabe[dit] tabn[ext] tabs tcld[o] th[row] tln tma[p] tp[revious] tunma[p] unh[ide] v vie[w] vne[w] wh[ile] wn[ext] wv[iminfo] xmenu xunme
|
||||
syn keyword vimCommand contained abc[lear] argd[elete] as[cii] bd[elete] bo[tright] breakl[ist] cN[ext] cad[dbuffer] cb[uffer] cd cfir[st] che[ckpath] clo[se] co[py] con[tinue] cq[uit] cuna[bbrev] delel delf[unction] dif[fupdate] difft[his] do dsp[lit] echom[sg] endf[unction] exi[t] filt[er] fo[ld] fu[nction] gvim helpt[ags] iabc[lear] inor ju[mps] keepp[atterns] lad[dexpr] later lch[dir] lefta[bove] lgetb[uffer] ll lne[xt] loc[kmarks] lr[ewind] lv[imgrep] marks mks[ession] mzf[ile] nmapc[lear] nos[wapfile] opt[ions] pe[rl] pre[serve] promptr[epl] ptl[ast] pw[d] python3 qa[ll] redr[aw] retu[rn] rubyd[o] sIe sN[ext] sb[uffer] sbp[revious] sci scs sf[ind] sgi si sim[alt] sm[agic] sn[ext] sor[t] spellr[epall] srI srl star[tinsert] sts[elect] sv[iew] syncbind tab tabf[ind] tabnew tags tclf[ile] tj[ump] tlnoremenu tmapc[lear] tr[ewind] u[ndo] unl ve[rsion] vim[grep] vs[plit] win[size] wp[revious] x[it] xnoreme xunmenu
|
||||
syn keyword vimCommand contained abo[veleft] argdo au bel[owright] bp[revious] bro[wse] cNf[ile] cadde[xpr] cbe[fore] cdo cg[etfile] checkt[ime] cmapc[lear] col[der] conf[irm] cr[ewind] cw[indow] delep dell diffg[et] dig[raphs] doau e[dit] echon endfo[r] exu[sage] fin[d] foldc[lose] g h[elp] hi if intro k lN[ext] laddb[uffer] lb[uffer] lcl[ose] lex[pr] lgete[xpr] lla[st] lnew[er] lockv[ar] ls lvimgrepa[dd] mat[ch] mksp[ell] n[ext] noa nu[mber] ownsyntax ped[it] prev[ious] ps[earch] ptn[ext] py3 pythonx quita[ll] redraws[tatus] rew[ind] rubyf[ile] sIg sa[rgument] sba[ll] sbr[ewind] scl scscope sfir[st] sgl sic sin sm[ap] sno[magic] sp[lit] spellu[ndo] src srn startg[replace] sun[hide] sw[apname] syntime tabN[ext] tabfir[st] tabo[nly] tc[l] te[aroff] tl[ast] tlu tn[ext] try una[bbreviate] unlo[ckvar] verb[ose] vimgrepa[dd] wN[ext] winc[md] wq xa[ll] xnoremenu xwininfo
|
||||
syn keyword vimCommand contained addd arge[dit] bN[ext] bf[irst] br[ewind] bufdo c[hange] caddf[ile] cbel[ow] ce[nter] cgetb[uffer] chi[story] cn[ext] colo[rscheme] cons[t] cs d[elete] deletel delm[arks] diffo[ff] dir doaut ea el[se] endt[ry] f[ile] fina[lly] foldd[oopen] go[to] ha[rdcopy] hid[e] ij[ump] is[earch] kee[pmarks] lNf[ile] laddf[ile] lbe[fore] lcs lf[ile] lgr[ep] lli[st] lnf[ile] lol[der] lt[ag] lw[indow] menut[ranslate] mkv[imrc] nb[key] noautocmd o[pen] p[rint] perld[o] pro ptN[ext] ptp[revious] py3do pyx r[ead] redrawt[abline] ri[ght] rundo sIl sal[l] sbf[irst] sc scp se[t] sg sgn sie sip sme snoreme spe[llgood] spellw[rong] sre[wind] srp startr[eplace] sunme sy t tabc[lose] tabl[ast] tabp[revious] tcd ter[minal] tlm tlunmenu tno[remap] ts[elect] undoj[oin] uns[ilent] vert[ical] viu[sage] w[rite] windo wqa[ll] xmapc[lear] xprop y[ank]
|
||||
syn keyword vimCommand contained al[l] argg[lobal] b[uffer] bl[ast] brea[k] buffers ca caf[ter] cbo[ttom] cex[pr] cgete[xpr] cl[ist] cnew[er] com cope[n] cscope debug deletep delp diffp[atch] dj[ump] dp earlier elsei[f] endw[hile] files fini[sh] folddoc[losed] gr[ep] helpc[lose] his[tory] il[ist] isp[lit] keepa l[ist] laf[ter] lbel[ow] lcscope lfdo lgrepa[dd] lma lo[adview] lop[en] lua m[ove] mes mkvie[w] nbc[lose] noh[lsearch] ol[dfiles] pa[ckadd] po[p] prof[ile] pta[g] ptr[ewind] py[thon] pyxdo rec[over] reg[isters] rightb[elow] rv[iminfo] sIn san[dbox] sbl[ast] scI scr[iptnames] setf[iletype] sgI sgp sig sir
|
||||
syn match vimCommand contained "\<z[-+^.=]\=\>"
|
||||
syn keyword vimStdPlugin contained Arguments Break Clear Continue DiffOrig Evaluate Finish Gdb Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Winbar XMLent XMLns
|
||||
syn keyword vimStdPlugin contained Arguments Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Winbar XMLent XMLns
|
||||
|
||||
" vimOptions are caught only when contained in a vimSet {{{2
|
||||
syn keyword vimOption contained acd ambw arshape background ballooneval bex bl brk buftype cf cinkeys cmdwinheight com conceallevel crb cscopeverbose cuc def diffexpr ea ei ep eventignore fdi fenc fileformat fkmap foldexpr foldopen fsync gfw guicursor guitabtooltip hidden hlg imactivatefunc imi inc inex isident keymap langnoremap linespace loadplugins ma matchtime mef ml modeline mousefocus mousetime mzschemegcdll odev osfiletype patchexpr pexpr pmbfn printencoding prompt pythondll quoteescape remap rightleftcmd rtp sb scroll sections sh shellslash shm showmode siso smc spc spl ss statusline suffixesadd sws tabline tagrelative tbis termencoding textmode timeout tm ts ttybuiltin twk ul ur ve vif vts wd wic wildmode winheight wm wrapscan
|
||||
syn keyword vimOption contained ai anti autochdir backspace balloonevalterm bexpr bo browsedir casemap cfu cino cmp comments confirm cryptmethod cspc cul define diffopt ead ek equalalways ex fdl fencs fileformats flp foldignore foldtext ft ghr guifont helpfile highlight hls imactivatekey iminsert include inf isk keymodel langremap lisp lpl macatsui maxcombine menc mls modelines mousehide mp nf oft pa patchmode pfn popt printexpr pt pythonhome rdt renderoptions rl ru sbo scrollbind secure shcf shelltemp shortmess showtabline sj smd spell splitbelow ssl stl sw sxe tabpagemax tags tbs termguicolors textwidth timeoutlen to tsl ttyfast tws undodir ut verbose viminfo wa weirdinvert wig wildoptions winminheight wmh write
|
||||
syn keyword vimOption contained akm antialias autoindent backup balloonexpr bg bomb bs cb ch cinoptions cms commentstring copyindent cscopepathcomp csprg cursorbind delcombine digraph eadirection emo equalprg expandtab fdls fex fileignorecase fml foldlevel formatexpr gcr go guifontset helpheight history hlsearch imaf ims includeexpr infercase iskeyword keywordprg laststatus lispwords lrm magic maxfuncdepth menuitems mm modifiable mousem mps nrformats ofu packpath path ph pp printfont pumheight pythonthreedll re report rlc rubydll sbr scrolljump sel shell shelltype shortname shq slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tagstack tc termwinkey tf title toolbar tsr ttym twsl undofile varsofttabstop verbosefile viminfofile wak wfh wildchar wim winminwidth wmnu writeany
|
||||
syn keyword vimOption contained al ar autoread backupcopy bdir bh breakat bsdir cc charconvert cinw co compatible cot cscopeprg csqf cursorcolumn dex dip eb emoji errorbells exrc fdm ff filetype fmr foldlevelstart formatlistpat gd gp guifontwide helplang hk ic imak imsearch incsearch insertmode isp km lazyredraw list ls makeef maxmapdepth mfd mmd modified mousemodel msm nu omnifunc para pdev pheader preserveindent printheader pumwidth pythonthreehome readonly restorescreen rnu ruf sc scrolloff selection shellcmdflag shellxescape showbreak si sm so spellfile spr st sts swapsync syn tag tal tcldll termwinscroll tgc titlelen toolbariconsize ttimeout ttymouse tx undolevels vartabstop vfile virtualedit warn wfw wildcharm winaltkeys winptydll wmw writebackup
|
||||
syn keyword vimOption contained aleph arab autowrite backupdir bdlay bin breakindent bsk ccv ci cinwords cocu complete cp cscopequickfix csre cursorline dg dir ed enc errorfile fcl fdn ffs fillchars fo foldmarker formatoptions gdefault grepformat guiheadroom hf hkmap icon imc imsf inde is isprint kmp lbr listchars lsp makeencoding maxmem mh mmp more mouses mzq number opendevice paragraphs penc pi previewheight printmbcharset pvh pyx redrawtime revins ro ruler scb scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tb tenc termwinsize tgst titleold top ttimeoutlen ttyscroll uc undoreload vb vi visualbell wb wh wildignore window winwidth wop writedelay
|
||||
syn keyword vimOption contained allowrevins arabic autowriteall backupext belloff binary breakindentopt bt cd cin clipboard cole completefunc cpo cscoperelative cst cwh dict directory edcompatible encoding errorformat fcs fdo fic fixendofline foldclose foldmethod formatprg gfm grepprg guioptions hh hkmapp iconstring imcmdline imst indentexpr isf joinspaces kp lcs lm luadll makeprg maxmempattern mis mmt mouse mouseshape mzquantum numberwidth operatorfunc paste perldll pm previewwindow printmbfont pvw pyxversion regexpengine ri rop rulerformat scl scs sessionoptions shellquote shiftround showfulltag sidescrolloff smartindent sol spellsuggest sr stal sua swf syntax tagcase tbi term terse thesaurus titlestring tpm ttm ttytype udf updatecount vbs viewdir vop wc whichwrap wildignorecase winfixheight wiv wrap ws
|
||||
syn keyword vimOption contained altkeymap arabicshape aw backupskip beval bk bri bufhidden cdpath cindent cm colorcolumn completeopt cpoptions cscopetag csto debug dictionary display ef endofline esckeys fdc fdt fileencoding fixeol foldcolumn foldminlines fp gfn gtl guipty hi hkp ignorecase imd imstatusfunc indentkeys isfname js langmap linebreak lmap lw mat maxmemtot mkspellmem mod mousef mouset mzschemedll nuw opfunc pastetoggle pex pmbcs printdevice printoptions pw qe relativenumber rightleft rs runtimepath scr sect sft shellredir shiftwidth showmatch signcolumn smarttab sp spf srr startofline suffixes switchbuf ta taglength tbidi termbidi textauto tildeop tl tr tty tw udir updatetime vdir viewoptions vsts wcm wi wildmenu winfixwidth wiw wrapmargin ww
|
||||
syn keyword vimOption contained ambiwidth ari awa balloondelay bevalterm bkc briopt buflisted cedit cink cmdheight columns concealcursor cpt cscopetagorder csverb deco diff dy efm eol et fde fen fileencodings fk foldenable foldnestmax fs gfs gtt guitablabel hid hl im imdisable imstyle indk isi key langmenu lines lnr lz matchpairs mco
|
||||
syn keyword vimOption contained acd ambw arshape background ballooneval bex bl brk buftype cf cinkeys cmdwinheight com conceallevel crb cscopeverbose cuc def diffexpr ea ei ep eventignore fdi fenc fileformat fkmap foldexpr foldopen fsync gfw guicursor guitabtooltip hidden hlg imactivatefunc imi inc inex isident keymap langnoremap linespace loadplugins ma matchtime mef mle modelineexpr mousehide mps nu opendevice paste pex pmbcs printdevice printoptions pw qe relativenumber rightleft rs runtimepath scr sect sft shellredir shiftwidth showmatch signcolumn smarttab sp spf srr startofline suffixes switchbuf ta tagfunc tbi term termwintype tgc titlelen toolbariconsize ttimeout ttymouse twt undofile varsofttabstop verbosefile viminfofile wak weirdinvert wig wildoptions winheight wm wrapscan
|
||||
syn keyword vimOption contained ai anti autochdir backspace balloonevalterm bexpr bo browsedir casemap cfu cino cmp comments confirm cryptmethod cspc cul define diffopt ead ek equalalways ex fdl fencs fileformats flp foldignore foldtext ft ghr guifont helpfile highlight hls imactivatekey iminsert include inf isk keymodel langremap lisp lpl macatsui maxcombine menc mls modelines mousem msm number operatorfunc pastetoggle pexpr pmbfn printencoding prompt pythondll quoteescape remap rightleftcmd rtp sb scroll sections sh shellslash shm showmode siso smc spc spl ss statusline suffixesadd sws tabline taglength tbidi termbidi terse tgst titleold top ttimeoutlen ttyscroll tx undolevels vartabstop vfile virtualedit warn wfh wildchar wim winminheight wmh write
|
||||
syn keyword vimOption contained akm antialias autoindent backup balloonexpr bg bomb bs cb ch cinoptions cms commentstring copyindent cscopepathcomp csprg cursorbind delcombine digraph eadirection emo equalprg expandtab fdls fex fileignorecase fml foldlevel formatexpr gcr go guifontset helpheight history hlsearch imaf ims includeexpr infercase iskeyword keywordprg laststatus lispwords lrm magic maxfuncdepth menuitems mm modifiable mousemodel mzq numberwidth opfunc patchexpr pfn popt printexpr pt pythonhome rdt renderoptions rl ru sbo scrollbind secure shcf shelltemp shortmess showtabline sj smd spell splitbelow ssl stl sw sxe tabpagemax tagrelative tbis termencoding textauto thesaurus titlestring tpm ttm ttytype uc undoreload vb vi visualbell wb wfw wildcharm winaltkeys winminwidth wmnu writeany
|
||||
syn keyword vimOption contained al ar autoread backupcopy bdir bh breakat bsdir cc charconvert cinw co compatible cot cscopeprg csqf cursorcolumn dex dip eb emoji errorbells exrc fdm ff filetype fmr foldlevelstart formatlistpat gd gp guifontwide helplang hk ic imak imsearch incsearch insertmode isp km lazyredraw list ls makeef maxmapdepth mfd mmd modified mouses mzquantum nuw osfiletype patchmode ph pp printfont pumheight pythonthreedll re report rlc rubydll sbr scrolljump sel shell shelltype shortname shq slm sn spellcapcheck splitright ssop stmp swapfile sxq tabstop tags tbs termguicolors textmode tildeop tl tr tty tw udf updatecount vbs viewdir vop wc wh wildignore wincolor winptydll wmw writebackup
|
||||
syn keyword vimOption contained aleph arab autowrite backupdir bdlay bin breakindent bsk ccv ci cinwords cocu complete cp cscopequickfix csre cursorline dg dir ed enc errorfile fcl fdn ffs fillchars fo foldmarker formatoptions gdefault grepformat guiheadroom hf hkmap icon imc imsf inde is isprint kmp lbr listchars lsp makeencoding maxmem mh mmp more mouseshape mzschemedll odev pa path pheader preserveindent printheader pumwidth pythonthreehome readonly restorescreen rnu ruf sc scrolloff selection shellcmdflag shellxescape showbreak si sm so spellfile spr st sts swapsync syn tag tagstack tc termwinkey textwidth timeout tm ts ttybuiltin twk udir updatetime vdir viewoptions vsts wcm whichwrap wildignorecase window winwidth wop writedelay
|
||||
syn keyword vimOption contained allowrevins arabic autowriteall backupext belloff binary breakindentopt bt cd cin clipboard cole completefunc cpo cscoperelative cst cwh dict directory edcompatible encoding errorformat fcs fdo fic fixendofline foldclose foldmethod formatprg gfm grepprg guioptions hh hkmapp iconstring imcmdline imst indentexpr isf joinspaces kp lcs lm luadll makeprg maxmempattern mis mmt mouse mouset mzschemegcdll oft packpath pdev pi previewheight printmbcharset pvh pyx redrawtime revins ro ruler scb scrollopt selectmode shellpipe shellxquote showcmd sidescroll smartcase softtabstop spelllang sps sta su swb synmaxcol tagbsearch tal tcldll termwinscroll tf timeoutlen to tsl ttyfast tws ul ur ve vif vts wcr wi wildmenu winfixheight wiv wrap ws
|
||||
syn keyword vimOption contained altkeymap arabicshape aw backupskip beval bk bri bufhidden cdpath cindent cm colorcolumn completeopt cpoptions cscopetag csto debug dictionary display ef endofline esckeys fdc fdt fileencoding fixeol foldcolumn foldminlines fp gfn gtl guipty hi hkp ignorecase imd imstatusfunc indentkeys isfname js langmap linebreak lmap lw mat maxmemtot mkspellmem mod mousef mousetime nf ofu para penc pm previewwindow printmbfont pvw pyxversion regexpengine ri rop rulerformat scl scs sessionoptions shellquote shiftround showfulltag sidescrolloff smartindent sol spellsuggest sr stal sua swf syntax tagcase tb tenc termwinsize tfu title toolbar tsr ttym twsl undodir ut verbose viminfo wa wd wic wildmode winfixwidth wiw wrapmargin ww
|
||||
syn keyword vimOption contained ambiwidth ari awa balloondelay bevalterm bkc briopt buflisted cedit cink cmdheight columns concealcursor cpt cscopetagorder csverb deco diff dy efm eol et fde fen fileencodings fk foldenable foldnestmax fs gfs gtt guitablabel hid hl im imdisable imstyle indk isi key langmenu lines lnr lz matchpairs mco ml modeline mousefocus mp nrformats omnifunc paragraphs perldll
|
||||
|
||||
" vimOptions: These are the turn-off setting variants {{{2
|
||||
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobevalterm nobk nobreakindent nocf nocindent nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noemo noeol noesckeys noexpandtab nofic nofixeol nofoldenable nogd nohid nohkmap nohls noicon noimc noimdisable noinfercase nojoinspaces nolangremap nolinebreak nolist noloadplugins nolrm noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx noundofile novisualbell nowarn noweirdinvert nowfw nowildignorecase nowinfixheight nowiv nowrap nowrite nowritebackup
|
||||
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa noballoonevalterm nobin nobl nobri noci nocompatible nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noemoji noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noincsearch noinsertmode nojs nolazyredraw nolisp nolnr nolpl nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast noudf novb nowa nowb nowfh nowic nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
|
||||
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobeval nobinary nobomb nobuflisted nocin noconfirm nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noendofline noerrorbells noex nofen nofixendofline nofkmap nofsync noguipty nohk nohkp noic noim noimd noinf nois nolangnoremap nolbr
|
||||
syn keyword vimOption contained noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobevalterm nobk nobreakindent nocf nocindent nocopyindent nocscoperelative nocsre nocuc nocursorcolumn nodelcombine nodigraph noed noemo noeol noesckeys noexpandtab nofic nofixeol nofoldenable nogd nohid nohkmap nohls noicon noimc noimdisable noinfercase nojoinspaces nolangremap nolinebreak nolnr nolrm noma nomagic noml nomod nomodelineexpr nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw norelativenumber norestorescreen nori norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx noundofile novisualbell nowarn noweirdinvert nowfw nowildignorecase nowinfixheight nowiv nowrap nowrite nowritebackup
|
||||
syn keyword vimOption contained noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa noballoonevalterm nobin nobl nobri noci nocompatible nocp nocscopetag nocst nocul nocursorline nodg noea noedcompatible noemoji noequalalways noet noexrc nofileignorecase nofk nofs nogdefault nohidden nohkmapp nohlsearch noignorecase noimcmdline noincsearch noinsertmode nojs nolazyredraw nolisp noloadplugins nolz nomacatsui nomh nomle nomodeline nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly noremap norevins norightleft nornu nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast noudf novb nowa nowb nowfh nowic nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
|
||||
syn keyword vimOption contained noakm noanti noarab noari noautoindent noautowriteall nobackup nobeval nobinary nobomb nobuflisted nocin noconfirm nocrb nocscopeverbose nocsverb nocursorbind nodeco nodiff noeb noek noendofline noerrorbells noex nofen nofixendofline nofkmap nofsync noguipty nohk nohkp noic noim noimd noinf nois nolangnoremap nolbr nolist nolpl
|
||||
|
||||
" vimOptions: These are the invertible variants {{{2
|
||||
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbevalterm invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invemo inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc invimdisable invinfercase invjoinspaces invlangremap invlinebreak invlist invloadplugins invlrm invma invmagic invml invmodeline invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invundofile invvisualbell invwarn invweirdinvert invwfw invwildignorecase invwinfixheight invwiv invwrap invwrite invwritebackup
|
||||
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invballoonevalterm invbin invbl invbri invci invcompatible invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible invemoji invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs invlazyredraw invlisp invlnr invlpl invlz invmacatsui invmh invmod invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invudf invvb invwa invwb invwfh invwic invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
|
||||
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbeval invbinary invbomb invbuflisted invcin invconfirm invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invendofline inverrorbells invex invfen invfixendofline invfkmap invfsync invguipty invhk invhkp invic invim invimd invinf invis invlangnoremap invlbr
|
||||
syn keyword vimOption contained invacd invallowrevins invantialias invarabic invarshape invautoread invaw invballooneval invbevalterm invbk invbreakindent invcf invcindent invcopyindent invcscoperelative invcsre invcuc invcursorcolumn invdelcombine invdigraph inved invemo inveol invesckeys invexpandtab invfic invfixeol invfoldenable invgd invhid invhkmap invhls invicon invimc invimdisable invinfercase invjoinspaces invlangremap invlinebreak invlnr invlrm invma invmagic invml invmod invmodelineexpr invmodified invmousef invmousehide invnumber invopendevice invpi invpreviewwindow invpvw invrelativenumber invrestorescreen invri invrl invro invru invsb invscb invscs invsft invshelltemp invshortname invshowfulltag invshowmode invsm invsmartindent invsmd invsol invsplitbelow invspr invssl invstartofline invswapfile invta invtagrelative invtbi invtbs invterse invtextmode invtgst invtimeout invto invtr invttybuiltin invtx invundofile invvisualbell invwarn invweirdinvert invwfw invwildignorecase invwinfixheight invwiv invwrap invwrite invwritebackup
|
||||
syn keyword vimOption contained invai invaltkeymap invar invarabicshape invautochdir invautowrite invawa invballoonevalterm invbin invbl invbri invci invcompatible invcp invcscopetag invcst invcul invcursorline invdg invea invedcompatible invemoji invequalalways invet invexrc invfileignorecase invfk invfs invgdefault invhidden invhkmapp invhlsearch invignorecase invimcmdline invincsearch invinsertmode invjs invlazyredraw invlisp invloadplugins invlz invmacatsui invmh invmle invmodeline invmodifiable invmore invmousefocus invnu invodev invpaste invpreserveindent invprompt invreadonly invremap invrevins invrightleft invrnu invrs invruler invsc invscrollbind invsecure invshellslash invshiftround invshowcmd invshowmatch invsi invsmartcase invsmarttab invsn invspell invsplitright invsr invsta invstmp invswf invtagbsearch invtagstack invtbidi invtermbidi invtextauto invtf invtildeop invtitle invtop invttimeout invttyfast invudf invvb invwa invwb invwfh invwic invwildmenu invwinfixwidth invwmnu invwrapscan invwriteany invws
|
||||
syn keyword vimOption contained invakm invanti invarab invari invautoindent invautowriteall invbackup invbeval invbinary invbomb invbuflisted invcin invconfirm invcrb invcscopeverbose invcsverb invcursorbind invdeco invdiff inveb invek invendofline inverrorbells invex invfen invfixendofline invfkmap invfsync invguipty invhk invhkp invic invim invimd invinf invis invlangnoremap invlbr invlist invlpl
|
||||
|
||||
" termcap codes (which can also be set) {{{2
|
||||
syn keyword vimOption contained t_8b t_AB t_al t_bc t_BE t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_EI t_F2 t_F4 t_F6 t_F8 t_fs t_IE t_k1 t_k2 t_K3 t_K4 t_K5 t_K6 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_PE t_PS t_RB t_RC t_RF t_RI t_RS t_RV t_Sb t_SC t_se t_Sf t_SH t_SI t_so t_sr t_SR t_te t_Te t_ti t_ts t_Ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_VS t_WP t_WS t_xn t_xs t_ZH t_ZR
|
||||
syn keyword vimOption contained t_8f t_AF t_AL t_BD t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_EC t_F1 t_F3 t_F5 t_F7 t_F9 t_GP t_IS t_K1 t_k3 t_k4 t_k5 t_k6 t_k7
|
||||
syn keyword vimOption contained t_8b t_AB t_al t_bc t_BE t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_EI t_F2 t_F4 t_F6 t_F8 t_fs t_IE t_k1 t_k2 t_K3 t_K4 t_K5 t_K6 t_K7 t_K8 t_K9 t_kb t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_PE t_PS t_RB t_RC t_RF t_Ri t_RI t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH t_Si t_SI t_so t_sr t_SR t_ST t_te t_Te t_ti t_ts t_Ts t_u7 t_ue t_us t_ut t_vb t_ve t_vi t_vs t_VS t_WP t_WS t_xn t_xs t_ZH t_ZR
|
||||
syn keyword vimOption contained t_8f t_AF t_AL t_BD t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_EC t_F1 t_F3 t_F5 t_F7 t_F9 t_GP t_IS t_K1 t_k3 t_k4 t_k5 t_k6 t_k7 t_k8 t_k9 t_KA t_kB
|
||||
syn match vimOption contained "t_%1"
|
||||
syn match vimOption contained "t_#2"
|
||||
syn match vimOption contained "t_#4"
|
||||
@@ -66,7 +66,8 @@ syn keyword vimErrSetting contained bioskey biosk conskey consk autoprint beauti
|
||||
|
||||
" AutoCmd Events {{{2
|
||||
syn case ignore
|
||||
syn keyword vimAutoEvent contained BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre CmdlineChanged CmdlineEnter CmdlineLeave CmdUndefined CmdwinEnter CmdwinLeave ColorScheme ColorSchemePre CompleteDone CursorHold CursorHoldI CursorMoved CursorMovedI DirChanged EncodingChanged ExitPre FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave MenuPopup OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabEnter TabLeave TabNew TermChanged TerminalOpen TermResponse TextChanged TextChangedI TextChangedP TextYankPost User VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave WinNew
|
||||
syn keyword vimAutoEvent contained BufAdd BufDelete BufFilePost BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre CmdlineChanged CmdlineEnter CmdlineLeave CmdUndefined CmdwinEnter CmdwinLeave ColorScheme ColorSchemePre CompleteChanged CompleteDone CursorHold CursorHoldI CursorMoved CursorMovedI DiffUpdated DirChanged EncodingChanged ExitPre FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertCharPre InsertEnter InsertLeave MenuPopup OptionSet QuickFixCmdPost QuickFixCmdPre QuitPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePost SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabClosed TabEnter TabLeave TabNew TermChanged TerminalOpen TermResponse TextChanged TextChangedI TextChangedP TextYankPost User VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave WinNew
|
||||
syn keyword vimAutoEvent contained BufCreate BufEnter BufFilePre
|
||||
|
||||
" Highlight commonly used Groupnames {{{2
|
||||
syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo
|
||||
@@ -77,10 +78,11 @@ syn match vimHLGroup contained "Conceal"
|
||||
syn case match
|
||||
|
||||
" Function Names {{{2
|
||||
syn keyword vimFuncName contained abs append arglistid assert_equal assert_false assert_notmatch atan2 browsedir bufname byte2line ceil ch_close ch_getbufnr ch_logfile ch_sendexpr cindent complete_add cos cursor deletebufline empty executable exp filereadable findfile fnameescape foldlevel funcref getbufinfo getchar getcmdpos getcurpos getfsize getline getpos gettabinfo getwinpos glob has_key histdel hlID index inputrestore invert items job_start js_decode keys line log maparg matchaddpos matchlist min nextnonblank perleval prompt_addtext pumvisible range reltime remote_foreground remote_startserver resolve screenchar searchdecl server2client setcharsearch setloclist setreg sha256 sin spellbadword str2float strdisplaywidth string strtrans synconcealed synstack tabpagenr tan term_dumpload term_getattr term_getscrolled term_gettty term_setansicolors term_start test_feedinput test_null_dict test_null_string timer_pause tolower trunc undotree virtcol winbufnr win_getid win_id2tabwin winnr winsaveview wordcount
|
||||
syn keyword vimFuncName contained acos appendbufline argv assert_equalfile assert_inrange assert_report balloon_show bufexists bufnr byteidx changenr ch_close_in ch_getjob ch_open ch_sendraw clearmatches complete_check cosh debugbreak did_filetype escape execute expand filewritable float2nr fnamemodify foldtext function getbufline getcharmod getcmdtype getcwd getftime getloclist getqflist gettabvar getwinposx glob2regpat haslocaldir histget hostname input inputsave isdirectory job_getchannel job_status js_encode len line2byte log10 mapcheck matcharg matchstr mkdir nr2char pow prompt_setcallback py3eval readfile reltimefloat remote_peek remove reverse screencol searchpair serverlist setcmdpos setmatches settabvar shellescape sinh spellsuggest str2nr strftime strlen strwidth synID system tabpagewinnr tanh term_dumpwrite term_getcursor term_getsize term_list term_setkill term_wait test_garbagecollect_now test_null_job test_override timer_start toupper type uniq visualmode wincol win_gotoid win_id2win winrestcmd win_screenpos writefile
|
||||
syn keyword vimFuncName contained add argc asin assert_exception assert_match assert_true balloon_split buflisted bufwinid byteidxcomp char2nr ch_evalexpr ch_info ch_read ch_setoptions col confirm count deepcopy diff_filler eval exepath extend filter floor foldclosed foldtextresult garbagecollect getbufvar getcharsearch getcmdwintype getfontname getftype getmatches getreg gettabwinvar getwinposy globpath hasmapto histnr iconv inputdialog inputsecret islocked job_info job_stop json_decode libcall lispindent luaeval match matchdelete matchstrpos mode or prevnonblank prompt_setinterrupt pyeval reg_executing reltimestr remote_read rename round screenrow searchpairpos setbufline setfperm setpos settabwinvar shiftwidth sort split strcharpart strgetchar strpart submatch synIDattr systemlist tagfiles tempname term_getaltscreen term_getjob term_getstatus term_scrape term_setrestore test_alloc_fail test_ignore_error test_null_list test_settime timer_stop tr undofile values wildmenumode win_findbuf winheight winline winrestview winwidth xor
|
||||
syn keyword vimFuncName contained and argidx assert_beeps assert_fails assert_notequal atan browse bufloaded bufwinnr call ch_canread ch_evalraw ch_log ch_readraw ch_status complete copy cscope_connection delete diff_hlID eventhandler exists feedkeys finddir fmod foldclosedend foreground get getchangelist getcmdline getcompletion getfperm getjumplist getpid getregtype getwininfo getwinvar has histadd hlexists indent inputlist insert isnan job_setoptions join json_encode libcallnr localtime map matchadd matchend max mzeval pathshorten printf prompt_setprompt pyxeval reg_recording remote_expr remote_send repeat screenattr search searchpos setbufvar setline setqflist setwinvar simplify soundfold sqrt strchars stridx strridx substitute synIDtrans tabpagebuflist taglist term_dumpdiff term_getansicolors term_getline term_gettitle term_sendkeys term_setsize test_autochdir test_null_channel test_null_partial timer_info timer_stopall trim
|
||||
syn keyword vimFuncName contained abs appendbufline asin assert_fails assert_notmatch balloon_gettext bufadd bufname byteidx char2nr ch_evalexpr ch_log ch_readraw cindent complete_check cosh deepcopy diff_hlID eventhandler exp filereadable float2nr foldclosed foreground getbufinfo getcharmod getcmdwintype getfontname getjumplist getpos gettabvar getwinposx globpath histadd hlID input inputsecret islocked job_setoptions js_decode len lispindent localtime maparg matcharg matchstrpos mzeval perleval popup_create popup_getpos popup_setoptions printf prop_clear prop_type_change py3eval readfile reltimestr remote_send resolve screenchar screenstring searchpos setcharsearch setloclist settabvar sha256 sign_getdefined sign_placelist simplify sound_clear sound_stop sqrt strcharpart strgetchar strpart submatch synconcealed synstack tabpagenr tan term_dumpload term_getattr term_getscrolled term_gettty term_setansicolors term_start test_feedinput test_ignore_error test_null_job test_option_not_set test_setmouse timer_start toupper type values winbufnr win_getid win_id2win winrestcmd winwidth
|
||||
syn keyword vimFuncName contained acos argc assert_beeps assert_false assert_report balloon_show bufexists bufnr byteidxcomp ch_canread ch_evalraw ch_logfile ch_sendexpr clearmatches complete_info count delete empty executable expand filewritable floor foldclosedend funcref getbufline getcharsearch getcompletion getfperm getline getqflist gettabwinvar getwinposy has histdel hostname inputdialog insert isnan job_start js_encode libcall list2str log mapcheck matchdelete max nextnonblank popup_atcursor popup_dialog popup_hide popup_settext prompt_setcallback prop_find prop_type_delete pyeval reg_executing remote_expr remote_startserver reverse screenchars search server2client setcmdpos setmatches settabwinvar shellescape sign_getplaced sign_undefine sin soundfold spellbadword str2float strchars stridx strridx substitute synID system tabpagewinnr tanh term_dumpwrite term_getcursor term_getsize term_list term_setkill term_wait test_garbagecollect_now test_null_blob test_null_list test_override test_settime timer_stop tr undofile virtcol wincol win_gotoid winlayout winrestview wordcount
|
||||
syn keyword vimFuncName contained add argidx assert_equal assert_inrange assert_true balloon_split buflisted bufwinid call ch_close ch_getbufnr ch_open ch_sendraw col confirm cscope_connection deletebufline environ execute expandcmd filter fmod foldlevel function getbufvar getcmdline getcurpos getfsize getloclist getreg gettagstack getwinvar has_key histget iconv inputlist invert items job_status json_decode libcallnr listener_add log10 match matchend min nr2char popup_beval popup_filter_menu popup_menu popup_show prompt_setinterrupt prop_list prop_type_get pyxeval reg_recording remote_foreground remove round screencol searchdecl serverlist setenv setpos settagstack shiftwidth sign_jump sign_unplace sinh sound_playevent spellsuggest str2list strdisplaywidth string strtrans swapinfo synIDattr systemlist tagfiles tempname term_getaltscreen term_getjob term_getstatus term_scrape term_setrestore test_alloc_fail test_garbagecollect_soon test_null_channel test_null_partial test_refcount timer_info timer_stopall trim undotree visualmode win_execute winheight winline winsaveview writefile
|
||||
syn keyword vimFuncName contained and arglistid assert_equalfile assert_match atan browse bufload bufwinnr ceil ch_close_in ch_getjob ch_read ch_setoptions complete copy cursor did_filetype escape exepath extend finddir fnameescape foldtext garbagecollect getchangelist getcmdpos getcwd getftime getmatches getregtype getwininfo glob haslocaldir histnr indent inputrestore isdirectory job_getchannel job_stop json_encode line listener_flush luaeval matchadd matchlist mkdir or popup_clear popup_filter_yesno popup_move pow prompt_setprompt prop_remove prop_type_list range reltime remote_peek rename rubyeval screenpos searchpair setbufline setfperm setqflist setwinvar sign_define sign_place sign_unplacelist sort sound_playfile split str2nr strftime strlen strwidth swapname synIDtrans tabpagebuflist taglist term_dumpdiff term_getansicolors term_getline term_gettitle term_sendkeys term_setsize test_autochdir test_getvalue test_null_dict test_null_string test_scrollbar timer_pause tolower trunc uniq wildmenumode win_findbuf win_id2tabwin winnr win_screenpos xor
|
||||
syn keyword vimFuncName contained append argv assert_exception assert_notequal atan2 browsedir bufloaded byte2line changenr chdir ch_info ch_readblob ch_status complete_add cos debugbreak diff_filler eval exists feedkeys findfile fnamemodify foldtextresult get getchar getcmdtype getenv getftype getpid gettabinfo getwinpos glob2regpat hasmapto hlexists index inputsave isinf job_info join keys line2byte listener_remove map matchaddpos matchstr mode pathshorten popup_close popup_getoptions popup_notification prevnonblank prop_add prop_type_add pumvisible readdir reltimefloat remote_read repeat screenattr screenrow searchpairpos setbufvar setline setreg
|
||||
|
||||
"--- syntax here and above generated by mkvimvim ---
|
||||
" Special Vim Highlighting (not automatic) {{{1
|
||||
@@ -166,7 +168,7 @@ syn match vimNumber "-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgro
|
||||
syn match vimNumber "\<0[xX]\x\+" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment
|
||||
syn match vimNumber "\%(^\|\A\)\zs#\x\{6}" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment
|
||||
|
||||
" All vimCommands are contained by vimIsCommands. {{{2
|
||||
" All vimCommands are contained by vimIsCommand. {{{2
|
||||
syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimEcho,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
|
||||
syn match vimIsCommand "\<\h\w*\>" contains=vimCommand
|
||||
syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>"
|
||||
@@ -201,7 +203,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,vimSetEqual,vimOption
|
||||
syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimNotFunc,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
|
||||
@@ -217,8 +219,8 @@ syn keyword vimAugroupKey contained aug[roup]
|
||||
" =========
|
||||
syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
|
||||
syn match vimOper "\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile
|
||||
syn match vimOper "\(\<is\|\<isnot\)[?#]\{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")
|
||||
@@ -255,7 +257,7 @@ syn match vimSpecFileMod "\(:[phtre]\)\+" contained
|
||||
|
||||
" User-Specified Commands: {{{2
|
||||
" =======================
|
||||
syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
|
||||
syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
|
||||
syn keyword vimUserCommand contained com[mand]
|
||||
syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList
|
||||
syn match vimUserAttrbError contained "-\a\+\ze\s"
|
||||
@@ -334,13 +336,14 @@ syn match vimSubstFlags contained "[&cegiIpr]\+"
|
||||
syn match vimString "[^(,]'[^']\{-}\zs'"
|
||||
|
||||
" Marks, Registers, Addresses, Filters: {{{2
|
||||
syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||
syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||
syn match vimMark ",\zs'[<>]\ze" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||
syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||
syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimOper,vimMarkNumber,vimSubst
|
||||
syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst
|
||||
syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst
|
||||
syn match vimMark ",\zs'[<>]\ze" nextgroup=vimFilter,vimMarkNumber,vimSubst
|
||||
syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimFilter,vimMarkNumber,vimSubst
|
||||
syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimFilter,vimMarkNumber,vimSubst
|
||||
syn match vimMarkNumber "[-+]\d\+" contained contains=vimOper nextgroup=vimSubst2
|
||||
syn match vimPlainMark contained "'[a-zA-Z0-9]"
|
||||
syn match vimRange "[`'][a-zA-Z0-9],[`'][a-zA-Z0-9]" contains=vimMark skipwhite nextgroup=vimFilter
|
||||
|
||||
syn match vimRegister '[^,;[{: \t]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]'
|
||||
syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]'
|
||||
@@ -351,8 +354,8 @@ syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]'
|
||||
syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1
|
||||
syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1
|
||||
|
||||
syn match vimFilter contained "^!.\{-}\(|\|$\)" contains=vimSpecFile
|
||||
syn match vimFilter contained "\A!.\{-}\(|\|$\)"ms=s+1 contains=vimSpecFile,vimFunction,vimFuncName,vimOperParen
|
||||
syn match vimFilter "^!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper,vimSpecFile
|
||||
syn match vimFilter contained "!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper,vimSpecFile
|
||||
|
||||
" Complex repeats (:h complex-repeat) {{{2
|
||||
syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1
|
||||
@@ -392,9 +395,9 @@ syn case match
|
||||
" Maps {{{2
|
||||
" ====
|
||||
syn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs
|
||||
syn keyword vimMap cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] vm[ap] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
|
||||
syn keyword vimMap cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] tno[remap] tm[ap] vm[ap] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
|
||||
syn keyword vimMap mapc[lear] smapc[lear]
|
||||
syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
|
||||
syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] tunma[p] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
|
||||
syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
|
||||
syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs
|
||||
syn match vimMapMod contained "\%#=1\c<\(buffer\|expr\|\(local\)\=leader\|nowait\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
|
||||
@@ -433,17 +436,18 @@ syn case match
|
||||
" ==========================
|
||||
syn match vimFunc "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*(" contains=vimFuncName,vimUserFunc,vimExecute
|
||||
syn match vimUserFunc contained "\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>" contains=vimNotation
|
||||
syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>"
|
||||
|
||||
" Errors And Warnings: {{{2
|
||||
" ====================
|
||||
if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")
|
||||
syn match vimFunctionError "\s\zs[a-z0-9]\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
|
||||
" syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\d\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
|
||||
syn match vimFunctionError "\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\d\i\{-}\ze\s*(" contained contains=vimFuncKey,vimFuncBlank
|
||||
syn match vimElseIfErr "\<else\s\+if\>"
|
||||
syn match vimBufnrWarn /\<bufnr\s*(\s*["']\.['"]\s*)/
|
||||
endif
|
||||
|
||||
syn match vimNotFunc "\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>" skipwhite nextgroup=vimOper,vimOperParen,vimVar,vimFunc,vimNotation
|
||||
|
||||
" Norm {{{2
|
||||
" ====
|
||||
syn match vimNorm "\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds
|
||||
@@ -653,7 +657,7 @@ if (g:vimsyn_embed =~# 'l' && has("lua")) && filereadable(s:luapath)
|
||||
syn cluster vimFuncBodyList add=vimLuaRegion
|
||||
exe "syn include @vimLuaScript ".s:luapath
|
||||
VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimLuaScript
|
||||
VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript
|
||||
VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+ contains=@vimLuaScript
|
||||
syn cluster vimFuncBodyList add=vimLuaRegion
|
||||
else
|
||||
syn region vimEmbedError start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
" Vim syntax file
|
||||
" Language: Vue.js Single File Component
|
||||
" Maintainer: Ralph Giles <giles@thaumas.net>
|
||||
" URL: https://vuejs.org/v2/guide/single-file-components.html
|
||||
" Last Change: 2019 Jul 8
|
||||
|
||||
" Quit if a syntax file was already loaded.
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" We have a collection of html, css and javascript wrapped in
|
||||
" tags. The default HTML syntax highlight works well enough.
|
||||
runtime! syntax/html.vim
|
||||
@@ -24,7 +24,7 @@ Translation
|
||||
-----------
|
||||
|
||||
The tutor.xx and tutor.xx.utf-8 files are translated files (where xx is the
|
||||
langage code). The encoding of tutor.xx might be latin1 or other traditional
|
||||
language code). The encoding of tutor.xx might be latin1 or other traditional
|
||||
encoding. If you don't need a translation with such traditional encoding,
|
||||
you just need to prepare the tutor.xx.utf-8 file.
|
||||
If you need another encoding, you can also prepare a file named tutor.xx.enc
|
||||
|
||||
@@ -1255,7 +1255,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>156</string>
|
||||
<string>157</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
|
||||
+7
-11
@@ -636,10 +636,12 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
|
||||
|
||||
- (void)flushQueue:(BOOL)force
|
||||
{
|
||||
// NOTE: This variable allows for better control over when the queue is
|
||||
// flushed. It can be set to YES at the beginning of a sequence of calls
|
||||
// that may potentially add items to the queue, and then restored back to
|
||||
// NO.
|
||||
// TODO: "force" is currently unused. When flushDisabled is set, it will
|
||||
// always disable flushing. Consider fixing it so that force will actually
|
||||
// forcefully flush (i.e. ignore flushDisabled), and change
|
||||
// gui_macvim_flush() to call flushQueue with
|
||||
// force set to NO.
|
||||
|
||||
if (flushDisabled) return;
|
||||
|
||||
if ([drawData length] > 0) {
|
||||
@@ -1793,7 +1795,7 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
|
||||
if (count%2 == 0) {
|
||||
for (i = count-2; i >= 0; i -= 2) {
|
||||
int msgid = [[inputQueue objectAtIndex:i] intValue];
|
||||
if (SetTextDimensionsMsgID == msgid) {
|
||||
if (SetTextDimensionsMsgID == msgid || SetTextDimensionsNoResizeWindowMsgID == msgid) {
|
||||
textDimData = [[inputQueue objectAtIndex:i+1] retain];
|
||||
break;
|
||||
}
|
||||
@@ -2716,10 +2718,6 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
|
||||
bufHasFilename = curbuf->b_ffname != NULL;
|
||||
}
|
||||
|
||||
// Temporarily disable flushing since the following code may
|
||||
// potentially cause multiple redraws.
|
||||
flushDisabled = YES;
|
||||
|
||||
// Make sure we're in normal mode first.
|
||||
// TODO: The mixing of addInput and Ex commands is a little
|
||||
// problematic because addInput is asynchronous and will therefore
|
||||
@@ -2959,8 +2957,6 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
|
||||
out_flush();
|
||||
gui_update_cursor(FALSE, FALSE);
|
||||
maketitle();
|
||||
|
||||
flushDisabled = NO;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,6 +42,8 @@ static int MMAlertTextFieldHeight = 22;
|
||||
|
||||
static const NSString * const MMToolbarMenuName = @"ToolBar";
|
||||
static const NSString * const MMTouchbarMenuName = @"TouchBar";
|
||||
static const NSString * const MMPopUpMenuPrefix = @"PopUp";
|
||||
static const NSString * const MMUserPopUpMenuPrefix = @"]";
|
||||
|
||||
// NOTE: By default a message sent to the backend will be dropped if it cannot
|
||||
// be delivered instantly; otherwise there is a possibility that MacVim will
|
||||
@@ -1056,14 +1058,18 @@ static BOOL isUnsafeMessage(int msgid);
|
||||
pid, identifier, ex);
|
||||
}
|
||||
}
|
||||
|
||||
+ (bool) hasPopupPrefix: (NSString *) menuName
|
||||
{
|
||||
return [menuName hasPrefix:MMPopUpMenuPrefix] || [menuName hasPrefix:MMUserPopUpMenuPrefix];
|
||||
}
|
||||
- (NSMenuItem *)menuItemForDescriptor:(NSArray *)desc
|
||||
{
|
||||
if (!(desc && [desc count] > 0)) return nil;
|
||||
|
||||
NSString *rootName = [desc objectAtIndex:0];
|
||||
NSArray *rootItems = [rootName hasPrefix:@"PopUp"] ? popupMenuItems
|
||||
: [mainMenu itemArray];
|
||||
bool popup = [MMVimController hasPopupPrefix:rootName];
|
||||
NSArray *rootItems = popup ? popupMenuItems
|
||||
: [mainMenu itemArray];
|
||||
|
||||
NSMenuItem *item = nil;
|
||||
int i, count = [rootItems count];
|
||||
@@ -1089,8 +1095,9 @@ static BOOL isUnsafeMessage(int msgid);
|
||||
if (!(desc && [desc count] > 0)) return nil;
|
||||
|
||||
NSString *rootName = [desc objectAtIndex:0];
|
||||
NSArray *rootItems = [rootName hasPrefix:@"PopUp"] ? popupMenuItems
|
||||
: [mainMenu itemArray];
|
||||
bool popup = [MMVimController hasPopupPrefix:rootName];
|
||||
NSArray *rootItems = popup ? popupMenuItems
|
||||
: [mainMenu itemArray];
|
||||
|
||||
NSMenu *menu = nil;
|
||||
int i, count = [rootItems count];
|
||||
@@ -1172,7 +1179,7 @@ static BOOL isUnsafeMessage(int msgid);
|
||||
[item setSubmenu:menu];
|
||||
|
||||
NSMenu *parent = [self parentMenuForDescriptor:desc];
|
||||
if (!parent && [rootName hasPrefix:@"PopUp"]) {
|
||||
if (!parent && [MMVimController hasPopupPrefix:rootName]) {
|
||||
if ([popupMenuItems count] <= idx) {
|
||||
[popupMenuItems addObject:item];
|
||||
} else {
|
||||
|
||||
@@ -224,8 +224,12 @@
|
||||
[win setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
|
||||
|
||||
// This makes windows animate when opened
|
||||
if ([win respondsToSelector:@selector(setAnimationBehavior:)])
|
||||
[win setAnimationBehavior:NSWindowAnimationBehaviorDocumentWindow];
|
||||
if ([win respondsToSelector:@selector(setAnimationBehavior:)]) {
|
||||
if (![[NSUserDefaults standardUserDefaults]
|
||||
boolForKey:MMDisableLaunchAnimation]) {
|
||||
[win setAnimationBehavior:NSWindowAnimationBehaviorDocumentWindow];
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
@@ -591,7 +595,26 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
// 10.13 or below. As noted above, the window flag
|
||||
// NSWindowStyleMaskTexturedBackground doesn't play well with window color,
|
||||
// but if we are toggling the titlebar transparent option, we need to set
|
||||
// the window background color in order the title bar to be tinted correctly.
|
||||
if ([[NSUserDefaults standardUserDefaults]
|
||||
boolForKey:MMTitlebarAppearsTransparentKey]) {
|
||||
if ([back alphaComponent] != 0) {
|
||||
[decoratedWindow setBackgroundColor:back];
|
||||
} else {
|
||||
// See above HACK for more details. Basically we cannot set a
|
||||
// color with 0 alpha or the window manager will give it a
|
||||
// different treatment.
|
||||
NSColor *clearColor = [back colorWithAlphaComponent:0.001];
|
||||
[decoratedWindow setBackgroundColor:clearColor];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[vimView setDefaultColorsBackground:back foreground:fore];
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ extern NSString *MMOpenInCurrentWindowKey;
|
||||
extern NSString *MMNoFontSubstitutionKey;
|
||||
extern NSString *MMNoTitleBarWindowKey;
|
||||
extern NSString *MMTitlebarAppearsTransparentKey;
|
||||
extern NSString *MMDisableLaunchAnimation;
|
||||
extern NSString *MMLoginShellKey;
|
||||
extern NSString *MMUntitledWindowKey;
|
||||
extern NSString *MMZoomBothKey;
|
||||
|
||||
@@ -31,6 +31,7 @@ NSString *MMOpenInCurrentWindowKey = @"MMOpenInCurrentWindow";
|
||||
NSString *MMNoFontSubstitutionKey = @"MMNoFontSubstitution";
|
||||
NSString *MMNoTitleBarWindowKey = @"MMNoTitleBarWindow";
|
||||
NSString *MMTitlebarAppearsTransparentKey = @"MMTitlebarAppearsTransparent";
|
||||
NSString *MMDisableLaunchAnimation = @"MMDisableLaunchAnimation";
|
||||
NSString *MMLoginShellKey = @"MMLoginShell";
|
||||
NSString *MMUntitledWindowKey = @"MMUntitledWindow";
|
||||
NSString *MMZoomBothKey = @"MMZoomBoth";
|
||||
|
||||
@@ -2369,8 +2369,7 @@ gui_mch_drawsign(int row, int col, int typenr)
|
||||
if (!imgName)
|
||||
return;
|
||||
|
||||
char_u *txt = sign_get_text(typenr);
|
||||
int txtSize = txt ? strlen((char*)txt) : 2;
|
||||
const int txtSize = 2; // This is specified in the docs, and is expected to always be the case.
|
||||
|
||||
[[MMBackend sharedInstance] drawSign:imgName
|
||||
atRow:row
|
||||
|
||||
+48
-21
@@ -106,6 +106,13 @@ else
|
||||
TERMINAL=no
|
||||
endif
|
||||
|
||||
# Set to yes to enable sound support.
|
||||
ifneq ($(findstring $(FEATURES),BIG HUGE),)
|
||||
SOUND=yes
|
||||
else
|
||||
SOUND=no
|
||||
endif
|
||||
|
||||
ifndef CTAGS
|
||||
# this assumes ctags is Exuberant ctags
|
||||
CTAGS = ctags -I INIT+ --fields=+S
|
||||
@@ -633,6 +640,10 @@ TERM_DEPS = \
|
||||
libvterm/src/vterm_internal.h
|
||||
endif
|
||||
|
||||
ifeq ($(SOUND),yes)
|
||||
DEFINES += -DFEAT_SOUND
|
||||
endif
|
||||
|
||||
# DirectWrite (DirectX)
|
||||
ifeq ($(DIRECTX),yes)
|
||||
# Only allow DirectWrite for a GUI build.
|
||||
@@ -719,6 +730,7 @@ OBJ = \
|
||||
$(OUTDIR)/getchar.o \
|
||||
$(OUTDIR)/hardcopy.o \
|
||||
$(OUTDIR)/hashtab.o \
|
||||
$(OUTDIR)/highlight.o \
|
||||
$(OUTDIR)/indent.o \
|
||||
$(OUTDIR)/insexpand.o \
|
||||
$(OUTDIR)/json.o \
|
||||
@@ -741,6 +753,7 @@ OBJ = \
|
||||
$(OUTDIR)/pathdef.o \
|
||||
$(OUTDIR)/popupmnu.o \
|
||||
$(OUTDIR)/popupwin.o \
|
||||
$(OUTDIR)/profiler.o \
|
||||
$(OUTDIR)/quickfix.o \
|
||||
$(OUTDIR)/regexp.o \
|
||||
$(OUTDIR)/screen.o \
|
||||
@@ -752,6 +765,7 @@ OBJ = \
|
||||
$(OUTDIR)/syntax.o \
|
||||
$(OUTDIR)/tag.o \
|
||||
$(OUTDIR)/term.o \
|
||||
$(OUTDIR)/testing.o \
|
||||
$(OUTDIR)/textprop.o \
|
||||
$(OUTDIR)/ui.o \
|
||||
$(OUTDIR)/undo.o \
|
||||
@@ -849,6 +863,10 @@ OBJ += $(OUTDIR)/terminal.o \
|
||||
$(OUTDIR)/vterm.o
|
||||
endif
|
||||
|
||||
ifeq ($(SOUND),yes)
|
||||
OBJ += $(OUTDIR)/sound.o
|
||||
endif
|
||||
|
||||
# Include xdiff
|
||||
OBJ += $(OUTDIR)/xdiffi.o \
|
||||
$(OUTDIR)/xemit.o \
|
||||
@@ -957,6 +975,10 @@ CFLAGS += -I$(ICONV)
|
||||
DEFINES+=-DDYNAMIC_ICONV
|
||||
endif
|
||||
|
||||
ifeq (yes, $(SOUND))
|
||||
LIB += -lwinmm
|
||||
endif
|
||||
|
||||
ifeq (yes, $(USE_STDCPLUS))
|
||||
LINK = $(CXX)
|
||||
ifeq (yes, $(STATIC_STDCPLUS))
|
||||
@@ -987,7 +1009,7 @@ install.exe: dosinst.c
|
||||
$(CC) $(CFLAGS) -o install.exe dosinst.c $(LIB) -lole32 -luuid
|
||||
|
||||
uninstal.exe: uninstal.c
|
||||
$(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB)
|
||||
$(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB) -lole32
|
||||
|
||||
ifeq ($(VIMDLL),yes)
|
||||
$(TARGET): $(OUTDIR) $(OBJ)
|
||||
@@ -1029,9 +1051,9 @@ notags:
|
||||
clean:
|
||||
-$(DEL) $(OUTDIR)$(DIRSLASH)*.o
|
||||
-$(DEL) $(OUTDIR)$(DIRSLASH)*.res
|
||||
-$(DEL) $(OUTDIR)$(DIRSLASH)pathdef.c
|
||||
-rmdir $(OUTDIR)
|
||||
-$(DEL) $(MAIN_TARGET) vimrun.exe install.exe uninstal.exe
|
||||
-$(DEL) pathdef.c
|
||||
ifdef PERL
|
||||
-$(DEL) if_perl.c
|
||||
-$(DEL) auto$(DIRSLASH)if_perl.c
|
||||
@@ -1053,6 +1075,8 @@ GUI_INCL += gui_dwrite.h
|
||||
endif
|
||||
CUI_INCL = iscygpty.h
|
||||
|
||||
PATHDEF_SRC = $(OUTDIR)/pathdef.c
|
||||
|
||||
$(OUTDIR)/if_python.o: if_python.c if_py_both.h $(INCL)
|
||||
$(CC) -c $(CFLAGS) $(PYTHONINC) $(PYTHON_HOME_DEF) $< -o $@
|
||||
|
||||
@@ -1152,6 +1176,9 @@ $(OUTDIR)/regexp.o: regexp.c regexp_nfa.c $(INCL)
|
||||
$(OUTDIR)/terminal.o: terminal.c $(INCL) $(TERM_DEPS)
|
||||
$(CC) -c $(CFLAGS) terminal.c -o $@
|
||||
|
||||
$(OUTDIR)/pathdef.o: $(PATHDEF_SRC) $(INCL)
|
||||
$(CC) -c $(CFLAGS) $(PATHDEF_SRC) -o $@
|
||||
|
||||
|
||||
CCCTERM = $(CC) -c $(CFLAGS) -Ilibvterm/include -DINLINE="" \
|
||||
-DVSNPRINTF=vim_vsnprintf \
|
||||
@@ -1166,27 +1193,27 @@ $(OUTDIR)/%.o : xdiff/%.c $(XDIFF_DEPS)
|
||||
$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
|
||||
pathdef.c: $(INCL)
|
||||
$(PATHDEF_SRC): Make_cyg_ming.mak Make_cyg.mak Make_ming.mak
|
||||
ifneq (sh.exe, $(SHELL))
|
||||
@echo creating pathdef.c
|
||||
@echo '/* pathdef.c */' > pathdef.c
|
||||
@echo '#include "vim.h"' >> pathdef.c
|
||||
@echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> pathdef.c
|
||||
@echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> pathdef.c
|
||||
@echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> pathdef.c
|
||||
@echo 'char_u *all_lflags = (char_u *)"$(LINK) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)";' >> pathdef.c
|
||||
@echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> pathdef.c
|
||||
@echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> pathdef.c
|
||||
@echo creating $(PATHDEF_SRC)
|
||||
@echo '/* pathdef.c */' > $(PATHDEF_SRC)
|
||||
@echo '#include "vim.h"' >> $(PATHDEF_SRC)
|
||||
@echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> $(PATHDEF_SRC)
|
||||
@echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> $(PATHDEF_SRC)
|
||||
@echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> $(PATHDEF_SRC)
|
||||
@echo 'char_u *all_lflags = (char_u *)"$(LINK) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)";' >> $(PATHDEF_SRC)
|
||||
@echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> $(PATHDEF_SRC)
|
||||
@echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> $(PATHDEF_SRC)
|
||||
else
|
||||
@echo creating pathdef.c
|
||||
@echo /* pathdef.c */ > pathdef.c
|
||||
@echo #include "vim.h" >> pathdef.c
|
||||
@echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> pathdef.c
|
||||
@echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> pathdef.c
|
||||
@echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> pathdef.c
|
||||
@echo char_u *all_lflags = (char_u *)"$(CC) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)"; >> pathdef.c
|
||||
@echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c
|
||||
@echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c
|
||||
@echo creating $(PATHDEF_SRC)
|
||||
@echo /* pathdef.c */ > $(PATHDEF_SRC)
|
||||
@echo #include "vim.h" >> $(PATHDEF_SRC)
|
||||
@echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> $(PATHDEF_SRC)
|
||||
@echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> $(PATHDEF_SRC)
|
||||
@echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> $(PATHDEF_SRC)
|
||||
@echo char_u *all_lflags = (char_u *)"$(CC) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)"; >> $(PATHDEF_SRC)
|
||||
@echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
|
||||
@echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
|
||||
endif
|
||||
|
||||
# vim: set noet sw=8 ts=8 sts=0 wm=0 tw=0:
|
||||
|
||||
@@ -1,301 +0,0 @@
|
||||
#
|
||||
# Makefile for VIM, using DICE 3
|
||||
#
|
||||
|
||||
#>>>>> choose options:
|
||||
### See feature.h for a list of optionals.
|
||||
### Any other defines can be included here.
|
||||
DEFINES = -DHAVE_TGETENT -DUP_BC_PC_EXTERN -DOSPEED_EXTERN
|
||||
|
||||
#>>>>> if HAVE_TGETENT is defined o/termlib.o has to be used
|
||||
TERMLIB = o/termlib.o
|
||||
#TERMLIB =
|
||||
|
||||
#>>>>> end of choices
|
||||
###########################################################################
|
||||
|
||||
CFLAGS = -c -DAMIGA -Iproto $(DEFINES)
|
||||
|
||||
SYMS = vim.syms
|
||||
PRE = -H${SYMS}=vim.h
|
||||
LIBS = -la
|
||||
CC = dcc
|
||||
LD = dcc
|
||||
|
||||
.c.o:
|
||||
${CC} ${PRE} ${CFLAGS} $< -o $@
|
||||
|
||||
SRC = \
|
||||
arabic.c \
|
||||
autocmd.c \
|
||||
blowfish.c \
|
||||
buffer.c \
|
||||
change.c \
|
||||
charset.c \
|
||||
crypt.c \
|
||||
crypt_zip.c \
|
||||
debugger.c \
|
||||
dict.c \
|
||||
diff.c \
|
||||
digraph.c \
|
||||
edit.c \
|
||||
eval.c \
|
||||
evalfunc.c \
|
||||
ex_cmds.c \
|
||||
ex_cmds2.c \
|
||||
ex_docmd.c \
|
||||
ex_eval.c \
|
||||
ex_getln.c \
|
||||
fileio.c \
|
||||
findfile.c \
|
||||
fold.c \
|
||||
getchar.c \
|
||||
hardcopy.c \
|
||||
hashtab.c \
|
||||
indent.c \
|
||||
insexpand.c \
|
||||
json.c \
|
||||
list.c \
|
||||
main.c \
|
||||
mark.c \
|
||||
memfile.c \
|
||||
memline.c \
|
||||
menu.c \
|
||||
message.c \
|
||||
misc1.c \
|
||||
misc2.c \
|
||||
move.c \
|
||||
mbyte.c \
|
||||
normal.c \
|
||||
ops.c \
|
||||
option.c \
|
||||
os_amiga.c \
|
||||
popupmnu.c \
|
||||
quickfix.c \
|
||||
regexp.c \
|
||||
screen.c \
|
||||
search.c \
|
||||
sha256.c \
|
||||
sign.c \
|
||||
spell.c \
|
||||
spellfile.c \
|
||||
syntax.c \
|
||||
tag.c \
|
||||
term.c \
|
||||
ui.c \
|
||||
undo.c \
|
||||
usercmd.c \
|
||||
userfunc.c \
|
||||
window.c \
|
||||
version.c
|
||||
|
||||
OBJ = o/arabic.o \
|
||||
o/autocmd.o \
|
||||
o/blowfish.o \
|
||||
o/buffer.o \
|
||||
o/change.o \
|
||||
o/charset.o \
|
||||
o/crypt.o \
|
||||
o/crypt_zip.o \
|
||||
o/debugger.o \
|
||||
o/dict.o \
|
||||
o/diff.o \
|
||||
o/digraph.o \
|
||||
o/edit.o \
|
||||
o/eval.o \
|
||||
o/evalfunc.o \
|
||||
o/ex_cmds.o \
|
||||
o/ex_cmds2.o \
|
||||
o/ex_docmd.o \
|
||||
o/ex_eval.o \
|
||||
o/ex_getln.o \
|
||||
o/fileio.o \
|
||||
o/findfile.o \
|
||||
o/fold.o \
|
||||
o/getchar.o \
|
||||
o/hardcopy.o \
|
||||
o/hashtab.o \
|
||||
o/indent.o \
|
||||
o/insexpand.o \
|
||||
o/json.o \
|
||||
o/list.o \
|
||||
o/main.o \
|
||||
o/mark.o \
|
||||
o/memfile.o \
|
||||
o/memline.o \
|
||||
o/menu.o \
|
||||
o/message.o \
|
||||
o/misc1.o \
|
||||
o/misc2.o \
|
||||
o/move.o \
|
||||
o/mbyte.o \
|
||||
o/normal.o \
|
||||
o/ops.o \
|
||||
o/option.o \
|
||||
o/os_amiga.o \
|
||||
o/popupmnu.o \
|
||||
o/quickfix.o \
|
||||
o/regexp.o \
|
||||
o/screen.o \
|
||||
o/search.o \
|
||||
o/sha256.o \
|
||||
o/sign.o \
|
||||
o/spell.o \
|
||||
o/spellfile.o \
|
||||
o/syntax.o \
|
||||
o/tag.o \
|
||||
o/term.o \
|
||||
o/ui.o \
|
||||
o/undo.o \
|
||||
o/usercmd.o \
|
||||
o/userfunc.o \
|
||||
o/window.o \
|
||||
$(TERMLIB)
|
||||
|
||||
Vim: $(OBJ) version.c version.h
|
||||
${CC} $(CFLAGS) version.c -o o/version.o
|
||||
${LD} -o Vim $(OBJ) o/version.o $(LIBS)
|
||||
|
||||
debug: $(OBJ) version.c version.h
|
||||
${CC} $(CFLAGS) version.c -o o/version.o
|
||||
${LD} -s -o Vim $(OBJ) o/version.o $(LIBS)
|
||||
|
||||
tags:
|
||||
csh -c ctags $(SRC) *.h
|
||||
|
||||
clean:
|
||||
delete o/*.o Vim $(SYMS)
|
||||
|
||||
$(SYMS) : vim.h globals.h keymap.h macros.h ascii.h term.h os_amiga.h structs.h
|
||||
delete $(SYMS)
|
||||
|
||||
###########################################################################
|
||||
|
||||
o/arabic.o: arabic.c $(SYMS)
|
||||
|
||||
o/autocmd.o: autocmd.c $(SYMS)
|
||||
|
||||
o/blowfish.o: blowfish.c $(SYMS)
|
||||
|
||||
o/buffer.o: buffer.c $(SYMS)
|
||||
|
||||
o/change.o: change.c $(SYMS)
|
||||
|
||||
o/charset.o: charset.c $(SYMS)
|
||||
|
||||
o/crypt.o: crypt.c $(SYMS)
|
||||
|
||||
o/crypt_zip.o: crypt_zip.c $(SYMS)
|
||||
|
||||
o/debugger.o: debugger.c $(SYMS)
|
||||
|
||||
o/dict.o: dict.c $(SYMS)
|
||||
|
||||
o/diff.o: diff.c $(SYMS)
|
||||
|
||||
o/digraph.o: digraph.c $(SYMS)
|
||||
|
||||
o/edit.o: edit.c $(SYMS)
|
||||
|
||||
o/eval.o: eval.c $(SYMS)
|
||||
|
||||
o/evalfunc.o: evalfunc.c $(SYMS)
|
||||
|
||||
o/ex_cmds.o: ex_cmds.c $(SYMS)
|
||||
|
||||
o/ex_cmds2.o: ex_cmds2.c $(SYMS)
|
||||
|
||||
o/ex_docmd.o: ex_docmd.c $(SYMS) ex_cmds.h
|
||||
|
||||
o/ex_eval.o: ex_eval.c $(SYMS) ex_cmds.h
|
||||
|
||||
o/ex_getln.o: ex_getln.c $(SYMS)
|
||||
|
||||
o/fileio.o: fileio.c $(SYMS)
|
||||
|
||||
o/findfile.o: findfile.c $(SYMS)
|
||||
|
||||
o/fold.o: fold.c $(SYMS)
|
||||
|
||||
o/getchar.o: getchar.c $(SYMS)
|
||||
|
||||
o/hardcopy.o: hardcopy.c $(SYMS)
|
||||
|
||||
o/hashtab.o: hashtab.c $(SYMS)
|
||||
|
||||
o/indent.o: indent.c $(SYMS)
|
||||
|
||||
o/insexpand.o: insexpand.c $(SYMS)
|
||||
|
||||
o/json.o: json.c $(SYMS)
|
||||
|
||||
o/list.o: list.c $(SYMS)
|
||||
|
||||
o/main.o: main.c $(SYMS)
|
||||
|
||||
o/mark.o: mark.c $(SYMS)
|
||||
|
||||
o/memfile.o: memfile.c $(SYMS)
|
||||
|
||||
o/memline.o: memline.c $(SYMS)
|
||||
|
||||
o/menu.o: menu.c $(SYMS)
|
||||
|
||||
o/message.o: message.c $(SYMS)
|
||||
|
||||
o/misc1.o: misc1.c $(SYMS)
|
||||
|
||||
o/misc2.o: misc2.c $(SYMS)
|
||||
|
||||
o/move.o: move.c $(SYMS)
|
||||
|
||||
o/mbyte.o: mbyte.c $(SYMS)
|
||||
|
||||
o/normal.o: normal.c $(SYMS)
|
||||
|
||||
o/ops.o: ops.c $(SYMS)
|
||||
|
||||
o/option.o: option.c $(SYMS)
|
||||
# Because of a bug in DC1 2.06.40, initialisation of unions does not
|
||||
# work correctly. dc1-21 is DC1 2.06.21 which does work.
|
||||
# rename dc1-21 dc1
|
||||
${CC} ${CFLAGS} option.c -o o/option.o
|
||||
# rename dc1 dc1-21
|
||||
|
||||
o/os_amiga.o: os_amiga.c $(SYMS) os_amiga.h
|
||||
|
||||
o/popupmnu.o: popupmnu.c $(SYMS)
|
||||
|
||||
o/quickfix.o: quickfix.c $(SYMS)
|
||||
|
||||
o/regexp.o: regexp.c $(SYMS) regexp.h
|
||||
|
||||
o/screen.o: screen.c $(SYMS)
|
||||
|
||||
o/search.o: search.c $(SYMS) regexp.h
|
||||
|
||||
o/sha256.o: sha256.c $(SYMS)
|
||||
|
||||
o/sign.o: sign.c $(SYMS)
|
||||
|
||||
o/spell.o: spell.c $(SYMS) spell.h
|
||||
|
||||
o/spellfile.o: spellfile.c $(SYMS) spell.h
|
||||
|
||||
o/syntax.o: syntax.c $(SYMS)
|
||||
|
||||
o/tag.o: tag.c $(SYMS)
|
||||
|
||||
o/term.o: term.c $(SYMS) term.h
|
||||
|
||||
o/termlib.o: termlib.c $(SYMS)
|
||||
|
||||
o/ui.o: ui.c $(SYMS)
|
||||
|
||||
o/undo.o: undo.c $(SYMS)
|
||||
|
||||
o/usercmd.o: usercmd.c $(SYMS)
|
||||
|
||||
o/userfunc.o: userfunc.c $(SYMS)
|
||||
|
||||
o/window.o: window.c $(SYMS)
|
||||
@@ -1,462 +0,0 @@
|
||||
#
|
||||
# Makefile for VIM on the Amiga, using Aztec/Manx C 5.0 or later
|
||||
#
|
||||
# NOTE: THIS IS OLD AND PROBABLY NO LONGER WORKS.
|
||||
#
|
||||
# Note: Not all dependencies are included. This was done to avoid having
|
||||
# to compile everything when a global variable or function is added.
|
||||
# Careful when changing a global struct or variable!
|
||||
#
|
||||
|
||||
#>>>>> choose options:
|
||||
|
||||
### See feature.h for a list of optionals.
|
||||
### Any other defines can be included here.
|
||||
DEFINES =
|
||||
|
||||
#>>>>> if HAVE_TGETENT is defined obj/termlib.o has to be used
|
||||
#TERMLIB = obj/termlib.o
|
||||
TERMLIB =
|
||||
|
||||
#>>>>> choose between debugging (-bs) or optimizing (-so)
|
||||
OPTIONS = -so
|
||||
#OPTIONS = -bs
|
||||
|
||||
#>>>>> end of choices
|
||||
###########################################################################
|
||||
|
||||
CFLAGS = $(OPTIONS) -wapruq -ps -qf -Iproto $(DEFINES) -DAMIGA
|
||||
|
||||
LIBS = -lc16
|
||||
SYMS = vim.syms
|
||||
CC = cc
|
||||
LN = ln
|
||||
LNFLAGS = +q
|
||||
SHELL = csh
|
||||
REN = $(SHELL) -c mv -f
|
||||
DEL = $(SHELL) -c rm -f
|
||||
|
||||
SRC = arabic.c \
|
||||
autocmd.c \
|
||||
blowfish.c \
|
||||
buffer.c \
|
||||
change.c \
|
||||
charset.c \
|
||||
crypt.c \
|
||||
crypt_zip.c \
|
||||
debugger.c \
|
||||
dict.c \
|
||||
diff.c \
|
||||
digraph.c \
|
||||
edit.c \
|
||||
eval.c \
|
||||
evalfunc.c \
|
||||
ex_cmds.c \
|
||||
ex_cmds2.c \
|
||||
ex_docmd.c \
|
||||
ex_eval.c \
|
||||
ex_getln.c \
|
||||
fileio.c \
|
||||
findfile.c \
|
||||
fold.c \
|
||||
getchar.c \
|
||||
hardcopy.c \
|
||||
hashtab.c \
|
||||
indent.c \
|
||||
insexpand.c \
|
||||
json.c \
|
||||
list.c \
|
||||
main.c \
|
||||
mark.c \
|
||||
memfile.c \
|
||||
memline.c \
|
||||
menu.c \
|
||||
message.c \
|
||||
misc1.c \
|
||||
misc2.c \
|
||||
move.c \
|
||||
mbyte.c \
|
||||
normal.c \
|
||||
ops.c \
|
||||
option.c \
|
||||
os_amiga.c \
|
||||
popupmnu.c \
|
||||
quickfix.c \
|
||||
regexp.c \
|
||||
screen.c \
|
||||
search.c \
|
||||
sha256.c \
|
||||
sign.c \
|
||||
spell.c \
|
||||
spellfile.c \
|
||||
syntax.c \
|
||||
tag.c \
|
||||
term.c \
|
||||
ui.c \
|
||||
undo.c \
|
||||
usercmd.c \
|
||||
userfunc.c \
|
||||
window.c \
|
||||
version.c
|
||||
|
||||
INCL = vim.h feature.h keymap.h macros.h ascii.h term.h structs.h os_amiga.h
|
||||
|
||||
OBJ = obj/arabic.o \
|
||||
obj/autocmd.o \
|
||||
obj/blowfish.o \
|
||||
obj/buffer.o \
|
||||
obj/change.o \
|
||||
obj/charset.o \
|
||||
obj/crypt.o \
|
||||
obj/crypt_zip.o \
|
||||
obj/debugger.o \
|
||||
obj/dict.o \
|
||||
obj/diff.o \
|
||||
obj/digraph.o \
|
||||
obj/edit.o \
|
||||
obj/eval.o \
|
||||
obj/evalfunc.o \
|
||||
obj/ex_cmds.o \
|
||||
obj/ex_cmds2.o \
|
||||
obj/ex_docmd.o \
|
||||
obj/ex_eval.o \
|
||||
obj/ex_getln.o \
|
||||
obj/fileio.o \
|
||||
obj/findfile.o \
|
||||
obj/fold.o \
|
||||
obj/getchar.o \
|
||||
obj/hardcopy.o \
|
||||
obj/hashtab.o \
|
||||
obj/indent.o \
|
||||
obj/insexpand.o \
|
||||
obj/json.o \
|
||||
obj/list.o \
|
||||
obj/main.o \
|
||||
obj/mark.o \
|
||||
obj/memfile.o \
|
||||
obj/memline.o \
|
||||
obj/menu.o \
|
||||
obj/message.o \
|
||||
obj/misc1.o \
|
||||
obj/misc2.o \
|
||||
obj/move.o \
|
||||
obj/mbyte.o \
|
||||
obj/normal.o \
|
||||
obj/ops.o \
|
||||
obj/option.o \
|
||||
obj/os_amiga.o \
|
||||
obj/popupmnu.o \
|
||||
obj/quickfix.o \
|
||||
obj/regexp.o \
|
||||
obj/screen.o \
|
||||
obj/search.o \
|
||||
obj/sha256.o \
|
||||
obj/sign.o \
|
||||
obj/spell.o \
|
||||
obj/spellfile.o \
|
||||
obj/syntax.o \
|
||||
obj/tag.o \
|
||||
obj/term.o \
|
||||
obj/ui.o \
|
||||
obj/undo.o \
|
||||
obj/usercmd.o \
|
||||
obj/userfunc.o \
|
||||
obj/window.o \
|
||||
$(TERMLIB)
|
||||
|
||||
PRO = proto/arabic.pro \
|
||||
proto/autocmd.pro \
|
||||
proto/blowfish.pro \
|
||||
proto/buffer.pro \
|
||||
proto/change.pro \
|
||||
proto/charset.pro \
|
||||
proto/crypt.pro \
|
||||
proto/crypt_zip.pro \
|
||||
proto/debugger.pro \
|
||||
proto/dict.pro \
|
||||
proto/diff.pro \
|
||||
proto/digraph.pro \
|
||||
proto/edit.pro \
|
||||
proto/eval.pro \
|
||||
proto/evalfunc.pro \
|
||||
proto/ex_cmds.pro \
|
||||
proto/ex_cmds2.pro \
|
||||
proto/ex_docmd.pro \
|
||||
proto/ex_eval.pro \
|
||||
proto/ex_getln.pro \
|
||||
proto/fileio.pro \
|
||||
proto/findfile.pro \
|
||||
proto/fold.pro \
|
||||
proto/getchar.pro \
|
||||
proto/hardcopy.pro \
|
||||
proto/hashtab.pro \
|
||||
proto/indent.pro \
|
||||
proto/insexpand.pro \
|
||||
proto/json.pro \
|
||||
proto/list.pro \
|
||||
proto/main.pro \
|
||||
proto/mark.pro \
|
||||
proto/memfile.pro \
|
||||
proto/memline.pro \
|
||||
proto/menu.pro \
|
||||
proto/message.pro \
|
||||
proto/misc1.pro \
|
||||
proto/misc2.pro \
|
||||
proto/move.pro \
|
||||
proto/mbyte.pro \
|
||||
proto/normal.pro \
|
||||
proto/ops.pro \
|
||||
proto/option.pro \
|
||||
proto/os_amiga.pro \
|
||||
proto/popupmnu.pro \
|
||||
proto/quickfix.pro \
|
||||
proto/regexp.pro \
|
||||
proto/screen.pro \
|
||||
proto/search.pro \
|
||||
proto/sha256.pro \
|
||||
proto/sign.pro \
|
||||
proto/spell.pro \
|
||||
proto/spellfile.pro \
|
||||
proto/syntax.pro \
|
||||
proto/tag.pro \
|
||||
proto/term.pro \
|
||||
proto/termlib.pro \
|
||||
proto/ui.pro \
|
||||
proto/undo.pro \
|
||||
proto/usercmd.pro \
|
||||
proto/userfunc.pro \
|
||||
proto/window.pro
|
||||
|
||||
all: Vim xxd/Xxd
|
||||
|
||||
Vim: obj $(OBJ) version.c version.h
|
||||
$(CC) $(CFLAGS) version.c -o obj/version.o
|
||||
$(LN) $(LNFLAGS) -m -o Vim $(OBJ) obj/version.o $(LIBS)
|
||||
|
||||
debug: obj $(OBJ) version.c version.h
|
||||
$(CC) $(CFLAGS) version.c -o obj/version.o
|
||||
$(LN) $(LNFLAGS) -m -g -o Vim $(OBJ) obj/version.o $(LIBS)
|
||||
|
||||
xxd/Xxd: xxd/xxd.c
|
||||
$(SHELL) -c cd xxd; make -f Make_amiga.mak; cd ..
|
||||
|
||||
# Making prototypes with Manx has been removed, because it caused too many
|
||||
# problems.
|
||||
#proto: $(SYMS) $(PRO)
|
||||
|
||||
obj:
|
||||
makedir obj
|
||||
|
||||
tags: $(SRC) $(INCL)
|
||||
$(SHELL) -c ctags $(SRC) *.h
|
||||
|
||||
# can't use delete here, too many file names
|
||||
clean:
|
||||
$(DEL) $(OBJ) obj/version.o \
|
||||
obj/termlib.o Vim $(SYMS) xxd/Xxd
|
||||
|
||||
test:
|
||||
$(SHELL) -c cd testdir; make -f Make_amiga.mak; cd ..
|
||||
|
||||
$(SYMS): $(INCL) $(PRO)
|
||||
$(CC) $(CFLAGS) -ho$(SYMS) vim.h
|
||||
|
||||
###########################################################################
|
||||
|
||||
# Unfortunately, Manx's make doesn't understand a .c.o rule, so each
|
||||
# compilation command has to be given explicitly.
|
||||
|
||||
CCSYM = $(CC) $(CFLAGS) -hi$(SYMS) -o
|
||||
CCNOSYM = $(CC) $(CFLAGS) -o
|
||||
|
||||
$(OBJ): $(SYMS)
|
||||
|
||||
obj/arabic.o: arabic.c
|
||||
$(CCSYM) $@ arabic.c
|
||||
|
||||
obj/autocmd.o: autocmd.c
|
||||
$(CCSYM) $@ autocmd.c
|
||||
|
||||
obj/blowfish.o: blowfish.c
|
||||
$(CCSYM) $@ blowfish.c
|
||||
|
||||
obj/buffer.o: buffer.c
|
||||
$(CCSYM) $@ buffer.c
|
||||
|
||||
obj/change.o: change.c
|
||||
$(CCSYM) $@ change.c
|
||||
|
||||
obj/charset.o: charset.c
|
||||
$(CCSYM) $@ charset.c
|
||||
|
||||
obj/crypt.o: crypt.c
|
||||
$(CCSYM) $@ crypt.c
|
||||
|
||||
obj/crypt_zip.o: crypt_zip.c
|
||||
$(CCSYM) $@ crypt_zip.c
|
||||
|
||||
obj/debugger.o: debugger.c
|
||||
$(CCSYM) $@ debugger.c
|
||||
|
||||
obj/dict.o: dict.c
|
||||
$(CCSYM) $@ dict.c
|
||||
|
||||
obj/diff.o: diff.c
|
||||
$(CCSYM) $@ diff.c
|
||||
|
||||
obj/digraph.o: digraph.c
|
||||
$(CCSYM) $@ digraph.c
|
||||
|
||||
obj/edit.o: edit.c
|
||||
$(CCSYM) $@ edit.c
|
||||
|
||||
obj/eval.o: eval.c
|
||||
$(CCSYM) $@ eval.c
|
||||
|
||||
obj/evalfunc.o: evalfunc.c
|
||||
$(CCSYM) $@ evalfunc.c
|
||||
|
||||
obj/ex_cmds.o: ex_cmds.c
|
||||
$(CCSYM) $@ ex_cmds.c
|
||||
|
||||
obj/ex_cmds2.o: ex_cmds2.c
|
||||
$(CCSYM) $@ ex_cmds2.c
|
||||
|
||||
# Don't use $(SYMS) here, because ex_docmd.c defines DO_DECLARE_EXCMD
|
||||
obj/ex_docmd.o: ex_docmd.c ex_cmds.h
|
||||
$(CCNOSYM) $@ ex_docmd.c
|
||||
|
||||
obj/ex_eval.o: ex_eval.c ex_cmds.h
|
||||
$(CCSYM) $@ ex_eval.c
|
||||
|
||||
obj/ex_getln.o: ex_getln.c
|
||||
$(CCSYM) $@ ex_getln.c
|
||||
|
||||
obj/fileio.o: fileio.c
|
||||
$(CCSYM) $@ fileio.c
|
||||
|
||||
obj/findfile.o: findfile.c
|
||||
$(CCSYM) $@ findfile.c
|
||||
|
||||
obj/fold.o: fold.c
|
||||
$(CCSYM) $@ fold.c
|
||||
|
||||
obj/getchar.o: getchar.c
|
||||
$(CCSYM) $@ getchar.c
|
||||
|
||||
obj/hardcopy.o: hardcopy.c
|
||||
$(CCSYM) $@ hardcopy.c
|
||||
|
||||
obj/hashtab.o: hashtab.c
|
||||
$(CCSYM) $@ hashtab.c
|
||||
|
||||
obj/indent.o: indent.c
|
||||
$(CCSYM) $@ indent.c
|
||||
|
||||
obj/insexpand.o: insexpand.c
|
||||
$(CCSYM) $@ insexpand.c
|
||||
|
||||
obj/json.o: json.c
|
||||
$(CCSYM) $@ json.c
|
||||
|
||||
obj/list.o: list.c
|
||||
$(CCSYM) $@ list.c
|
||||
|
||||
# Don't use $(SYMS) here, because main.c defines EXTERN
|
||||
obj/main.o: main.c option.h globals.h
|
||||
$(CCNOSYM) $@ main.c
|
||||
|
||||
obj/mark.o: mark.c
|
||||
$(CCSYM) $@ mark.c
|
||||
|
||||
obj/memfile.o: memfile.c
|
||||
$(CCSYM) $@ memfile.c
|
||||
|
||||
obj/memline.o: memline.c
|
||||
$(CCSYM) $@ memline.c
|
||||
|
||||
obj/menu.o: menu.c
|
||||
$(CCSYM) $@ menu.c
|
||||
|
||||
# Don't use $(SYMS) here, because message.c defines MESSAGE_FILE
|
||||
obj/message.o: message.c
|
||||
$(CCNOSYM) $@ message.c
|
||||
|
||||
obj/misc1.o: misc1.c
|
||||
$(CCSYM) $@ misc1.c
|
||||
|
||||
obj/misc2.o: misc2.c
|
||||
$(CCSYM) $@ misc2.c
|
||||
|
||||
obj/move.o: move.c
|
||||
$(CCSYM) $@ move.c
|
||||
|
||||
obj/mbyte.o: mbyte.c
|
||||
$(CCSYM) $@ mbyte.c
|
||||
|
||||
obj/normal.o: normal.c
|
||||
$(CCSYM) $@ normal.c
|
||||
|
||||
obj/ops.o: ops.c
|
||||
$(CCSYM) $@ ops.c
|
||||
|
||||
# Don't use $(SYMS) here, because option.h defines variables here
|
||||
obj/option.o: option.c
|
||||
$(CCNOSYM) $@ option.c
|
||||
|
||||
obj/os_amiga.o: os_amiga.c
|
||||
$(CCSYM) $@ os_amiga.c
|
||||
|
||||
obj/popupmnu.o: popupmnu.c
|
||||
$(CCSYM) $@ popupmnu.c
|
||||
|
||||
obj/quickfix.o: quickfix.c
|
||||
$(CCSYM) $@ quickfix.c
|
||||
|
||||
obj/regexp.o: regexp.c
|
||||
$(CCSYM) $@ regexp.c
|
||||
|
||||
obj/screen.o: screen.c
|
||||
$(CCSYM) $@ screen.c
|
||||
|
||||
obj/search.o: search.c
|
||||
$(CCSYM) $@ search.c
|
||||
|
||||
obj/sha256.o: sha256.c
|
||||
$(CCSYM) $@ sha256.c
|
||||
|
||||
obj/sign.o: sign.c
|
||||
$(CCSYM) $@ sign.c
|
||||
|
||||
obj/spell.o: spell.c
|
||||
$(CCSYM) $@ spell.c
|
||||
|
||||
obj/spellfile.o: spellfile.c
|
||||
$(CCSYM) $@ spellfile.c
|
||||
|
||||
obj/syntax.o: syntax.c
|
||||
$(CCSYM) $@ syntax.c
|
||||
|
||||
obj/tag.o: tag.c
|
||||
$(CCSYM) $@ tag.c
|
||||
|
||||
obj/term.o: term.c term.h
|
||||
$(CCSYM) $@ term.c
|
||||
|
||||
obj/termlib.o: termlib.c
|
||||
$(CCSYM) $@ termlib.c
|
||||
|
||||
obj/ui.o: ui.c
|
||||
$(CCSYM) $@ ui.c
|
||||
|
||||
obj/undo.o: undo.c
|
||||
$(CCSYM) $@ undo.c
|
||||
|
||||
obj/usercmd.o: usercmd.c
|
||||
$(CCSYM) $@ usercmd.c
|
||||
|
||||
obj/userfunc.o: userfunc.c
|
||||
$(CCSYM) $@ userfunc.c
|
||||
|
||||
obj/window.o: window.c
|
||||
$(CCSYM) $@ window.c
|
||||
@@ -50,6 +50,7 @@ SRC = arabic.c \
|
||||
getchar.c \
|
||||
hardcopy.c \
|
||||
hashtab.c \
|
||||
highlight.c \
|
||||
indent.c \
|
||||
insexpand.c \
|
||||
json.c \
|
||||
@@ -69,6 +70,7 @@ SRC = arabic.c \
|
||||
option.c \
|
||||
os_amiga.c \
|
||||
popupmnu.c \
|
||||
profiler.c \
|
||||
quickfix.c \
|
||||
regexp.c \
|
||||
screen.c \
|
||||
@@ -80,6 +82,8 @@ SRC = arabic.c \
|
||||
syntax.c \
|
||||
tag.c \
|
||||
term.c \
|
||||
testing.c \
|
||||
textprop.c \
|
||||
ui.c \
|
||||
undo.c \
|
||||
usercmd.c \
|
||||
|
||||
+51
-17
@@ -38,7 +38,9 @@
|
||||
# is yes)
|
||||
# Global IME support: GIME=yes (requires GUI=yes)
|
||||
#
|
||||
# Terminal support: TERMINAL=yes (default is yes)
|
||||
# Terminal support: TERMINAL=yes (default is yes)
|
||||
#
|
||||
# Sound support: SOUND=yes (default is yes)
|
||||
#
|
||||
# DLL support (EXPERIMENTAL): VIMDLL=yes (default is no)
|
||||
# Creates vim{32,64}.dll, and stub gvim.exe and vim.exe.
|
||||
@@ -381,6 +383,14 @@ TERM_DEPS = \
|
||||
libvterm/src/vterm_internal.h
|
||||
!endif
|
||||
|
||||
!ifndef SOUND
|
||||
! if "$(FEATURES)"=="HUGE" || "$(FEATURES)"=="BIG"
|
||||
SOUND = yes
|
||||
! else
|
||||
SOUND = no
|
||||
! endif
|
||||
!endif
|
||||
|
||||
!ifndef NETBEANS
|
||||
NETBEANS = $(GUI)
|
||||
!endif
|
||||
@@ -454,6 +464,13 @@ XPM_INC = -I $(XPM)\include -I $(XPM)\..\include
|
||||
! endif
|
||||
!endif # GUI
|
||||
|
||||
!if "$(SOUND)" == "yes"
|
||||
SOUND_PRO = proto/sound.pro
|
||||
SOUND_OBJ = $(OBJDIR)/sound.obj
|
||||
SOUND_DEFS = -DFEAT_SOUND
|
||||
SOUND_LIB = winmm.lib
|
||||
!endif
|
||||
|
||||
!if "$(CHANNEL)" == "yes"
|
||||
CHANNEL_PRO = proto/channel.pro
|
||||
CHANNEL_OBJ = $(OBJDIR)/channel.obj
|
||||
@@ -494,7 +511,7 @@ WINVER = 0x0501
|
||||
#VIMRUNTIMEDIR = somewhere
|
||||
|
||||
CFLAGS = -c /W3 /nologo $(CVARS) -I. -Iproto -DHAVE_PATHDEF -DWIN32 \
|
||||
$(CSCOPE_DEFS) $(TERM_DEFS) $(NETBEANS_DEFS) $(CHANNEL_DEFS) \
|
||||
$(CSCOPE_DEFS) $(TERM_DEFS) $(SOUND_DEFS) $(NETBEANS_DEFS) $(CHANNEL_DEFS) \
|
||||
$(NBDEBUG_DEFS) $(XPM_DEFS) \
|
||||
$(DEFINES) -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER)
|
||||
|
||||
@@ -722,6 +739,7 @@ OBJ = \
|
||||
$(OUTDIR)\getchar.obj \
|
||||
$(OUTDIR)\hardcopy.obj \
|
||||
$(OUTDIR)\hashtab.obj \
|
||||
$(OUTDIR)\highlight.obj \
|
||||
$(OUTDIR)\indent.obj \
|
||||
$(OUTDIR)\insexpand.obj \
|
||||
$(OUTDIR)\json.obj \
|
||||
@@ -744,6 +762,7 @@ OBJ = \
|
||||
$(OUTDIR)\pathdef.obj \
|
||||
$(OUTDIR)\popupmnu.obj \
|
||||
$(OUTDIR)\popupwin.obj \
|
||||
$(OUTDIR)\profiler.obj \
|
||||
$(OUTDIR)\quickfix.obj \
|
||||
$(OUTDIR)\regexp.obj \
|
||||
$(OUTDIR)\screen.obj \
|
||||
@@ -755,6 +774,7 @@ OBJ = \
|
||||
$(OUTDIR)\syntax.obj \
|
||||
$(OUTDIR)\tag.obj \
|
||||
$(OUTDIR)\term.obj \
|
||||
$(OUTDIR)\testing.obj \
|
||||
$(OUTDIR)\textprop.obj \
|
||||
$(OUTDIR)\ui.obj \
|
||||
$(OUTDIR)\undo.obj \
|
||||
@@ -1217,7 +1237,7 @@ conflags = $(conflags) /map /mapinfo:lines
|
||||
LINKARGS1 = $(linkdebug) $(conflags)
|
||||
LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(NODEFAULTLIB) $(LIBC) $(OLE_LIB) user32.lib \
|
||||
$(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(PYTHON3_LIB) $(RUBY_LIB) \
|
||||
$(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)
|
||||
$(TCL_LIB) $(SOUND_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)
|
||||
|
||||
# Report link time code generation progress if used.
|
||||
!ifdef NODEBUG
|
||||
@@ -1249,17 +1269,22 @@ all: $(MAIN_TARGET) \
|
||||
tee/tee.exe \
|
||||
GvimExt/gvimext.dll
|
||||
|
||||
# To get around the command line limit: Make use of nmake's response files to
|
||||
# capture the arguments for $(link) in a file using the @<<ARGS<< syntax.
|
||||
|
||||
!if "$(VIMDLL)" == "yes"
|
||||
|
||||
$(VIMDLLBASE).dll: $(OUTDIR) $(OBJ) $(XDIFF_OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) \
|
||||
$(LUA_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) $(TCL_OBJ) \
|
||||
$(CSCOPE_OBJ) $(TERM_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) $(XPM_OBJ) \
|
||||
$(CSCOPE_OBJ) $(TERM_OBJ) $(SOUND_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) $(XPM_OBJ) \
|
||||
version.c version.h
|
||||
$(CC) $(CFLAGS_OUTDIR) version.c
|
||||
$(link) $(LINKARGS1) /dll -out:$(VIMDLLBASE).dll $(OBJ) $(XDIFF_OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ) \
|
||||
$(LUA_OBJ) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) \
|
||||
$(TCL_OBJ) $(CSCOPE_OBJ) $(TERM_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) \
|
||||
$(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
|
||||
$(link) @<<
|
||||
$(LINKARGS1) /dll -out:$(VIMDLLBASE).dll $(OBJ) $(XDIFF_OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ)
|
||||
$(LUA_OBJ) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ)
|
||||
$(TCL_OBJ) $(CSCOPE_OBJ) $(TERM_OBJ) $(SOUND_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ)
|
||||
$(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
|
||||
<<
|
||||
|
||||
$(GVIM).exe: $(OUTDIR) $(EXEOBJG) $(VIMDLLBASE).dll
|
||||
$(link) $(LINKARGS1) /subsystem:$(SUBSYSTEM) -out:$(GVIM).exe $(EXEOBJG) $(VIMDLLBASE).lib $(LIBC)
|
||||
@@ -1273,13 +1298,15 @@ $(VIM).exe: $(OUTDIR) $(EXEOBJC) $(VIMDLLBASE).dll
|
||||
|
||||
$(VIM).exe: $(OUTDIR) $(OBJ) $(XDIFF_OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) \
|
||||
$(LUA_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) $(TCL_OBJ) \
|
||||
$(CSCOPE_OBJ) $(TERM_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) $(XPM_OBJ) \
|
||||
$(CSCOPE_OBJ) $(TERM_OBJ) $(SOUND_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) $(XPM_OBJ) \
|
||||
version.c version.h
|
||||
$(CC) $(CFLAGS_OUTDIR) version.c
|
||||
$(link) $(LINKARGS1) /subsystem:$(SUBSYSTEM) -out:$(VIM).exe $(OBJ) $(XDIFF_OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ) \
|
||||
$(LUA_OBJ) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ) \
|
||||
$(TCL_OBJ) $(CSCOPE_OBJ) $(TERM_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ) \
|
||||
$(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
|
||||
$(link) @<<
|
||||
$(LINKARGS1) /subsystem:$(SUBSYSTEM) -out:$(VIM).exe $(OBJ) $(XDIFF_OBJ) $(GUI_OBJ) $(CUI_OBJ) $(OLE_OBJ)
|
||||
$(LUA_OBJ) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(PYTHON3_OBJ) $(RUBY_OBJ)
|
||||
$(TCL_OBJ) $(CSCOPE_OBJ) $(TERM_OBJ) $(SOUND_OBJ) $(NETBEANS_OBJ) $(CHANNEL_OBJ)
|
||||
$(XPM_OBJ) $(OUTDIR)\version.obj $(LINKARGS2)
|
||||
<<
|
||||
if exist $(VIM).exe.manifest mt.exe -nologo -manifest $(VIM).exe.manifest -updateresource:$(VIM).exe;1
|
||||
|
||||
!endif
|
||||
@@ -1468,6 +1495,8 @@ $(OUTDIR)/hardcopy.obj: $(OUTDIR) hardcopy.c $(INCL)
|
||||
|
||||
$(OUTDIR)/hashtab.obj: $(OUTDIR) hashtab.c $(INCL)
|
||||
|
||||
$(OUTDIR)/highlight.obj: $(OUTDIR) highlight.c $(INCL)
|
||||
|
||||
$(OUTDIR)/indent.obj: $(OUTDIR) indent.c $(INCL)
|
||||
|
||||
$(OUTDIR)/insexpand.obj: $(OUTDIR) insexpand.c $(INCL)
|
||||
@@ -1578,6 +1607,8 @@ $(OUTDIR)/popupmnu.obj: $(OUTDIR) popupmnu.c $(INCL)
|
||||
|
||||
$(OUTDIR)/popupwin.obj: $(OUTDIR) popupwin.c $(INCL)
|
||||
|
||||
$(OUTDIR)/profiler.obj: $(OUTDIR) profiler.c $(INCL)
|
||||
|
||||
$(OUTDIR)/quickfix.obj: $(OUTDIR) quickfix.c $(INCL)
|
||||
|
||||
$(OUTDIR)/regexp.obj: $(OUTDIR) regexp.c regexp_nfa.c $(INCL)
|
||||
@@ -1600,6 +1631,8 @@ $(OUTDIR)/tag.obj: $(OUTDIR) tag.c $(INCL)
|
||||
|
||||
$(OUTDIR)/term.obj: $(OUTDIR) term.c $(INCL)
|
||||
|
||||
$(OUTDIR)/term.obj: $(OUTDIR) testing.c $(INCL)
|
||||
|
||||
$(OUTDIR)/textprop.obj: $(OUTDIR) textprop.c $(INCL)
|
||||
|
||||
$(OUTDIR)/ui.obj: $(OUTDIR) ui.c $(INCL)
|
||||
@@ -1685,7 +1718,7 @@ E0_LINKARGS2 = $(LINKARGS2:\=\\)
|
||||
E_LINKARGS2 = $(E0_LINKARGS2:"=\")
|
||||
# ") stop the string
|
||||
|
||||
$(PATHDEF_SRC): auto
|
||||
$(PATHDEF_SRC): Make_mvc.mak
|
||||
@echo creating $(PATHDEF_SRC)
|
||||
@echo /* pathdef.c */ > $(PATHDEF_SRC)
|
||||
@echo #include "vim.h" >> $(PATHDEF_SRC)
|
||||
@@ -1696,9 +1729,6 @@ $(PATHDEF_SRC): auto
|
||||
@echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
|
||||
@echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
|
||||
|
||||
auto:
|
||||
if not exist auto/nul mkdir auto
|
||||
|
||||
# End Custom Build
|
||||
proto.h: \
|
||||
proto/arabic.pro \
|
||||
@@ -1727,6 +1757,7 @@ proto.h: \
|
||||
proto/getchar.pro \
|
||||
proto/hardcopy.pro \
|
||||
proto/hashtab.pro \
|
||||
proto/highlight.pro \
|
||||
proto/indent.pro \
|
||||
proto/insexpand.pro \
|
||||
proto/json.pro \
|
||||
@@ -1749,6 +1780,7 @@ proto.h: \
|
||||
proto/os_win32.pro \
|
||||
proto/popupmnu.pro \
|
||||
proto/popupwin.pro \
|
||||
proto/profiler.pro \
|
||||
proto/quickfix.pro \
|
||||
proto/regexp.pro \
|
||||
proto/screen.pro \
|
||||
@@ -1760,12 +1792,14 @@ proto.h: \
|
||||
proto/syntax.pro \
|
||||
proto/tag.pro \
|
||||
proto/term.pro \
|
||||
proto/testing.pro \
|
||||
proto/textprop.pro \
|
||||
proto/ui.pro \
|
||||
proto/undo.pro \
|
||||
proto/usercmd.pro \
|
||||
proto/userfunc.pro \
|
||||
proto/window.pro \
|
||||
$(SOUND_PRO) \
|
||||
$(NETBEANS_PRO) \
|
||||
$(CHANNEL_PRO)
|
||||
|
||||
|
||||
@@ -1,460 +0,0 @@
|
||||
# vim: set ft=make :
|
||||
# Makefile for VIM on the Amiga, using SAS/Lattice C 6.0 to 6.58
|
||||
#
|
||||
# Do NOT use the peephole optimizer with a version before 6.56!
|
||||
# It messes up all kinds of things:
|
||||
# For 6.0 and 6.1, expand_env() will not work correctly.
|
||||
# For 6.2 and 6.3 the call to free_line in u_freeentry is wrong.
|
||||
# The "read.me" file for version 6.56 includes a remark about a fix for the
|
||||
# peephole optimizer. Everything before 6.56 will probably fail.
|
||||
#
|
||||
# You should use Manx Aztec C whenever possible, because it has been tested.
|
||||
#
|
||||
# The prototypes from Manx and SAS are incompatible. If the prototypes
|
||||
# were generated by Manx, first do "touch *.c; make proto" before "make".
|
||||
# The prototypes generated on Unix work for both.
|
||||
#
|
||||
# Note: Not all dependencies are included. This was done to avoid having
|
||||
# to compile everything when a global variable or function is added.
|
||||
|
||||
#>>>>> choose options:
|
||||
|
||||
### See feature.h for a list of optionals.
|
||||
### Any other defines can be included here.
|
||||
|
||||
# NO_ARP Don't include ARP functions
|
||||
# SASC=658 Sas/C version number
|
||||
# NEWSASC fixes a bug in the syntax highlighting?
|
||||
DEFINES = DEF=NO_ARP DEF=NEWSASC DEF="SASC=658"
|
||||
|
||||
#>>>>> if HAVE_TGETENT is defined termlib.o has to be used
|
||||
#TERMLIB = termlib.o
|
||||
TERMLIB =
|
||||
|
||||
#>>>>> choose NODEBUG for normal compiling, the other for debugging and
|
||||
# profiling
|
||||
# don't switch on debugging when generating proto files, it crashes the
|
||||
# compiler.
|
||||
DBG = NODEBUG
|
||||
#DBG = DBG=SF
|
||||
|
||||
#>>>>> choose NOOPTPEEP for 6.0 to 6.3, NOOPT for debugging
|
||||
# with version 6.56 and later you can probably use OPT
|
||||
OPTIMIZE = OPT
|
||||
#OPTIMIZE = NOOPTPEEP
|
||||
#OPTIMIZE = NOOPT
|
||||
|
||||
# for 6.58 you can use the line below, but be warned it takes a loooonnnggg time
|
||||
#OPTIMIZE=OPT OPTIMIZERSCHEDULER OPTIMIZERTIME NoOPTIMIZERALIAS \
|
||||
OptimizerComplexity=10 OptimizerDepth=10 OptimizerRecurDepth=10 \
|
||||
OptimizerInLocal OPTPEEP
|
||||
|
||||
#generate code for your processor - 68060 will work for 040's as well.
|
||||
CPU=68000
|
||||
#CPU=68020
|
||||
#CPU=68030
|
||||
#CPU=68040
|
||||
#CPU=68060
|
||||
|
||||
#Error reporting - rexx or console
|
||||
ERROR = ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT
|
||||
#ERROR = ERRORREXX ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT
|
||||
|
||||
#memory types, if you have fast use it :->,
|
||||
# ANY = will work on all machines
|
||||
# FAST = this is the best option, for speed
|
||||
#MEMORYTYPE=FAST
|
||||
MEMORYTYPE=ANY
|
||||
|
||||
#MEMSIZE - this is for compile time only for speed of compilation
|
||||
#MEMSIZE=HUGE
|
||||
MEMSIZE=LARGE
|
||||
#MEMSIZE=SMALL
|
||||
|
||||
#>>>>> end of choices
|
||||
###########################################################################
|
||||
|
||||
CC = sc
|
||||
GST = vim.gst
|
||||
COPTS = SINT SCODE SDATA
|
||||
SHELL = csh
|
||||
DEL = $(SHELL) -c rm -f
|
||||
|
||||
# ignore error messages for uninitialized variables, they are mostly not correct
|
||||
CFLAGS = NOLINK $(DBG) CPU=$(CPU) NOSTACKCHECK DEF=AMIGA CODE=FAR idir=proto ignore=317
|
||||
CFLAGS2 = $(OPTIMIZE) $(ERROR) GSTIMMEDIATE GST=$(GST)
|
||||
CFLAGS3 = $(COPTS) STRINGMERGE MEMSIZE=$(MEMSIZE)
|
||||
CFLAGS4 = $(DEFINES) DATAMEMORY=$(MEMORYTYPE)
|
||||
|
||||
PROPT = DEF=PROTO GPROTO GPPARM MAXIMUMERRORS=999 GENPROTOSTATICS GENPROTOPARAMETERS
|
||||
|
||||
SRC = \
|
||||
arabic.c \
|
||||
autocmd.c \
|
||||
blowfish.c \
|
||||
buffer.c \
|
||||
change.c \
|
||||
charset.c \
|
||||
crypt.c \
|
||||
crypt_zip.c \
|
||||
debugger.c \
|
||||
dict.c \
|
||||
diff.c \
|
||||
digraph.c \
|
||||
edit.c \
|
||||
eval.c \
|
||||
evalfunc.c \
|
||||
ex_cmds.c \
|
||||
ex_cmds2.c \
|
||||
ex_docmd.c \
|
||||
ex_eval.c \
|
||||
ex_getln.c \
|
||||
fileio.c \
|
||||
findfile.c \
|
||||
fold.c \
|
||||
getchar.c \
|
||||
hardcopy.c \
|
||||
hashtab.c \
|
||||
indent.c \
|
||||
insexpand.c \
|
||||
json.c \
|
||||
list.c \
|
||||
main.c \
|
||||
mark.c \
|
||||
memfile.c \
|
||||
memline.c \
|
||||
menu.c \
|
||||
message.c \
|
||||
misc1.c \
|
||||
misc2.c \
|
||||
move.c \
|
||||
mbyte.c \
|
||||
normal.c \
|
||||
ops.c \
|
||||
option.c \
|
||||
os_amiga.c \
|
||||
popupmnu.c \
|
||||
quickfix.c \
|
||||
regexp.c \
|
||||
screen.c \
|
||||
search.c \
|
||||
sha256.c \
|
||||
sign.c \
|
||||
spell.c \
|
||||
spellfile.c \
|
||||
syntax.c \
|
||||
tag.c \
|
||||
term.c \
|
||||
ui.c \
|
||||
undo.c \
|
||||
usercmd.c \
|
||||
userfunc.c \
|
||||
window.c \
|
||||
version.c
|
||||
|
||||
OBJ = \
|
||||
arabic.o \
|
||||
autocmd.o \
|
||||
blowfish.o \
|
||||
buffer.o \
|
||||
change.o \
|
||||
charset.o \
|
||||
crypt.o \
|
||||
crypt_zip.o \
|
||||
debugger.o \
|
||||
dict.o \
|
||||
diff.o \
|
||||
digraph.o \
|
||||
edit.o \
|
||||
eval.o \
|
||||
evalfunc.o \
|
||||
ex_cmds.o \
|
||||
ex_cmds2.o \
|
||||
ex_docmd.o \
|
||||
ex_eval.o \
|
||||
ex_getln.o \
|
||||
fileio.o \
|
||||
findfile.o \
|
||||
fold.o \
|
||||
getchar.o \
|
||||
hardcopy.o \
|
||||
hashtab.o \
|
||||
indent.o \
|
||||
insexpand.o \
|
||||
json.o \
|
||||
list.o \
|
||||
main.o \
|
||||
mark.o \
|
||||
memfile.o \
|
||||
memline.o \
|
||||
menu.o \
|
||||
message.o \
|
||||
misc1.o \
|
||||
misc2.o \
|
||||
move.o \
|
||||
mbyte.o \
|
||||
normal.o \
|
||||
ops.o \
|
||||
option.o \
|
||||
os_amiga.o \
|
||||
popupmnu.o \
|
||||
quickfix.o \
|
||||
regexp.o \
|
||||
screen.o \
|
||||
search.o \
|
||||
sha256.o \
|
||||
sign.o \
|
||||
spell.o \
|
||||
spellfile.o \
|
||||
syntax.o \
|
||||
tag.o \
|
||||
term.o \
|
||||
ui.o \
|
||||
undo.o \
|
||||
usercmd.o \
|
||||
userfunc.o \
|
||||
window.o \
|
||||
$(TERMLIB)
|
||||
|
||||
PRO = \
|
||||
proto/arabic.pro \
|
||||
proto/autocmd.pro \
|
||||
proto/blowfish.pro \
|
||||
proto/buffer.pro \
|
||||
proto/change.pro \
|
||||
proto/charset.pro \
|
||||
proto/crypt.pro \
|
||||
proto/crypt_zip.pro \
|
||||
proto/debugger.pro \
|
||||
proto/dict.pro \
|
||||
proto/diff.pro \
|
||||
proto/digraph.pro \
|
||||
proto/edit.pro \
|
||||
proto/eval.pro \
|
||||
proto/evalfunc.pro \
|
||||
proto/ex_cmds.pro \
|
||||
proto/ex_cmds2.pro \
|
||||
proto/ex_docmd.pro \
|
||||
proto/ex_eval.pro \
|
||||
proto/ex_getln.pro \
|
||||
proto/fileio.pro \
|
||||
proto/findfile.pro \
|
||||
proto/fold.pro \
|
||||
proto/getchar.pro \
|
||||
proto/hardcopy.pro \
|
||||
proto/hashtab.pro \
|
||||
proto/indent.pro \
|
||||
proto/insexpand.pro \
|
||||
proto/json.pro \
|
||||
proto/list.pro \
|
||||
proto/main.pro \
|
||||
proto/mark.pro \
|
||||
proto/memfile.pro \
|
||||
proto/memline.pro \
|
||||
proto/menu.pro \
|
||||
proto/message.pro \
|
||||
proto/misc1.pro \
|
||||
proto/misc2.pro \
|
||||
proto/move.pro \
|
||||
proto/mbyte.pro \
|
||||
proto/normal.pro \
|
||||
proto/ops.pro \
|
||||
proto/option.pro \
|
||||
proto/os_amiga.pro \
|
||||
proto/popupmnu.pro \
|
||||
proto/quickfix.pro \
|
||||
proto/regexp.pro \
|
||||
proto/screen.pro \
|
||||
proto/search.pro \
|
||||
proto/sha256.pro \
|
||||
proto/sign.pro \
|
||||
proto/spell.pro \
|
||||
proto/spellfile.pro \
|
||||
proto/syntax.pro \
|
||||
proto/tag.pro \
|
||||
proto/term.pro \
|
||||
proto/termlib.pro \
|
||||
proto/ui.pro \
|
||||
proto/undo.pro \
|
||||
proto/usercmd.pro \
|
||||
proto/userfunc.pro \
|
||||
proto/window.pro
|
||||
|
||||
all: proto Vim
|
||||
|
||||
Vim: scoptions $(OBJ) version.c version.h
|
||||
$(CC) $(CFLAGS) version.c
|
||||
$(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim
|
||||
|
||||
debug: scoptions $(OBJ) version.c version.h
|
||||
$(CC) $(CFLAGS) version.c
|
||||
$(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim
|
||||
|
||||
proto: $(GST) $(PRO)
|
||||
|
||||
tags:
|
||||
spat ctags $(SRC) *.h
|
||||
# csh -c ctags $(SRC) *.h
|
||||
|
||||
# can't use delete here, too many file names
|
||||
clean:
|
||||
$(DEL) *.o Vim $(GST)
|
||||
|
||||
# generate GlobalSymbolTable, which speeds up the compile time.
|
||||
#
|
||||
# A preprocessing stage is used to work around a bug in the GST generator, in
|
||||
# that it does not handle nested makefiles properly in this stage.
|
||||
# Ignore error message for not producing any code (105).
|
||||
$(GST): scoptions vim.h keymap.h macros.h ascii.h term.h structs.h
|
||||
$(CC) $(CFLAGS) PREPROCESSORONLY vim.h objectname pre.h
|
||||
$(CC) MGST=$(GST) pre.h ignore=105
|
||||
$(DEL) pre.h
|
||||
|
||||
# generate an options file, because SAS/C smake can't handle the amiga command
|
||||
# line can handle the lengths that this makefile will impose on the shell.
|
||||
# (Manx's make can do this).
|
||||
scoptions: Make_sas.mak
|
||||
@echo "Generating - $@ ..."
|
||||
@echo $(CFLAGS) > scoptions
|
||||
@echo $(CFLAGS1) >> scoptions
|
||||
@echo $(CFLAGS2) >> scoptions
|
||||
@echo $(CFLAGS3) >> scoptions
|
||||
@echo $(CFLAGS4) >> scoptions
|
||||
@echo $(COPTS) >>scoptions
|
||||
@echo done
|
||||
|
||||
###########################################################################
|
||||
|
||||
$(OBJ): $(GST) vim.h
|
||||
$(PRO): $(GST) vim.h
|
||||
|
||||
.c.o:
|
||||
$(CC) $(CFLAGS) $*.c
|
||||
|
||||
.c.pro:
|
||||
$(CC) $(CFLAGS) GPFILE=proto/$*.pro $(PROPT) $*.c
|
||||
|
||||
# dependencies
|
||||
arabic.o: arabic.c
|
||||
proto/arabic.pro: arabic.c
|
||||
autocmd.o: autocmd.c
|
||||
proto/autocmd.pro: autocmd.c
|
||||
blowfish.o: blowfish.c
|
||||
proto/blowfish.pro: blowfish.c
|
||||
buffer.o: buffer.c
|
||||
proto/buffer.pro: buffer.c
|
||||
change.o: change.c
|
||||
proto/change.pro: change.c
|
||||
charset.o: charset.c
|
||||
proto/charset.pro: charset.c
|
||||
crypt.o: crypt.c
|
||||
proto/crypt.pro: crypt.c
|
||||
crypt_zip.o: crypt_zip.c
|
||||
proto/crypt_zip.pro: crypt_zip.c
|
||||
debugger.o: debugger.c
|
||||
proto/debugger.pro: debugger.c
|
||||
dict.o: dict.c
|
||||
proto/dict.pro: dict.c
|
||||
diff.o: diff.c
|
||||
proto/diff.pro: diff.c
|
||||
digraph.o: digraph.c
|
||||
proto/digraph.pro: digraph.c
|
||||
edit.o: edit.c
|
||||
proto/edit.pro: edit.c
|
||||
eval.o: eval.c
|
||||
proto/eval.pro: eval.c
|
||||
evalfunc.o: evalfunc.c
|
||||
proto/evalfunc.pro: evalfunc.c
|
||||
ex_cmds.o: ex_cmds.c
|
||||
proto/ex_cmds.pro: ex_cmds.c
|
||||
ex_cmds2.o: ex_cmds2.c
|
||||
proto/ex_cmds2.pro: ex_cmds2.c
|
||||
ex_docmd.o: ex_docmd.c ex_cmds.h
|
||||
proto/ex_docmd.pro: ex_docmd.c ex_cmds.h
|
||||
ex_eval.o: ex_eval.c ex_cmds.h
|
||||
proto/ex_eval.pro: ex_eval.c ex_cmds.h
|
||||
ex_getln.o: ex_getln.c
|
||||
proto/ex_getln.pro: ex_getln.c
|
||||
fileio.o: fileio.c
|
||||
proto/fileio.pro: fileio.c
|
||||
findfile.o: findfile.c
|
||||
proto/findfile.pro: findfile.c
|
||||
fold.o: fold.c
|
||||
proto/fold.pro: fold.c
|
||||
getchar.o: getchar.c
|
||||
proto/getchar.pro: getchar.c
|
||||
hardcopy.o: hardcopy.c
|
||||
proto/hardcopy.pro: hardcopy.c
|
||||
hashtab.o: hashtab.c
|
||||
proto/hashtab.pro: hashtab.c
|
||||
indent.o: indent.c
|
||||
proto/indent.pro: indent.c
|
||||
insexpand.o: insexpand.c
|
||||
proto/insexpand.pro: insexpand.c
|
||||
json.o: json.c
|
||||
proto/json.pro: json.c
|
||||
list.o: list.c
|
||||
proto/list.pro: list.c
|
||||
main.o: main.c
|
||||
proto/main.pro: main.c
|
||||
mark.o: mark.c
|
||||
proto/mark.pro: mark.c
|
||||
memfile.o: memfile.c
|
||||
proto/memfile.pro: memfile.c
|
||||
memline.o: memline.c
|
||||
proto/memline.pro: memline.c
|
||||
menu.o: menu.c
|
||||
proto/menu.pro: menu.c
|
||||
message.o: message.c
|
||||
proto/message.pro: message.c
|
||||
misc1.o: misc1.c
|
||||
proto/misc1.pro: misc1.c
|
||||
misc2.o: misc2.c
|
||||
proto/misc2.pro: misc2.c
|
||||
move.o: move.c
|
||||
proto/move.pro: move.c
|
||||
mbyte.o: mbyte.c
|
||||
proto/mbyte.pro: mbyte.c
|
||||
normal.o: normal.c
|
||||
proto/normal.pro: normal.c
|
||||
ops.o: ops.c
|
||||
proto/ops.pro: ops.c
|
||||
option.o: option.c
|
||||
proto/option.pro: option.c
|
||||
os_amiga.o: os_amiga.c
|
||||
proto/os_amiga.pro: os_amiga.c
|
||||
popupmnu.o: popupmnu.c
|
||||
proto/popupmnu.pro: popupmnu.c
|
||||
quickfix.o: quickfix.c
|
||||
proto/quickfix.pro: quickfix.c
|
||||
regexp.o: regexp.c
|
||||
proto/regexp.pro: regexp.c
|
||||
screen.o: screen.c
|
||||
proto/screen.pro: screen.c
|
||||
search.o: search.c
|
||||
proto/search.pro: search.c
|
||||
sha256.o: sha256.c
|
||||
proto/sha256.pro: sha256.c
|
||||
sign.o: sign.c
|
||||
proto/sign.pro: sign.c
|
||||
spell.o: spell.c
|
||||
proto/spell.pro: spell.c
|
||||
spellfile.o: spellfile.c
|
||||
proto/spellfile.pro: spellfile.c
|
||||
syntax.o: syntax.c
|
||||
proto/syntax.pro: syntax.c
|
||||
tag.o: tag.c
|
||||
proto/tag.pro: tag.c
|
||||
term.o: term.c
|
||||
proto/term.pro: term.c
|
||||
termlib.o: termlib.c
|
||||
proto/termlib.pro: termlib.c
|
||||
ui.o: ui.c
|
||||
proto/ui.pro: ui.c
|
||||
undo.o: undo.c
|
||||
proto/undo.pro: undo.c
|
||||
usercmd.o: usercmd.c
|
||||
proto/usercmd.pro: usercmd.c
|
||||
userfunc.o: userfunc.c
|
||||
proto/userfunc.pro: userfunc.c
|
||||
window.o: window.c
|
||||
+28
-14
@@ -2,7 +2,7 @@
|
||||
# Makefile for Vim on OpenVMS
|
||||
#
|
||||
# Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
|
||||
# Last change: 2019 May 24
|
||||
# Last change: 2019 Jul 14
|
||||
#
|
||||
# This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64
|
||||
# with MMS and MMK
|
||||
@@ -311,12 +311,13 @@ SRC = arabic.c autocmd.c beval.c blob.c blowfish.c buffer.c change.c charset.c \
|
||||
crypt.c crypt_zip.c debugger.c dict.c diff.c digraph.c edit.c eval.c \
|
||||
evalfunc.c ex_cmds.c ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c \
|
||||
if_cscope.c if_xcmdsrv.c fileio.c findfile.c fold.c getchar.c \
|
||||
hardcopy.c hashtab.c indent.c insexpand.c json.c list.c main.c mark.c \
|
||||
menu.c mbyte.c memfile.c memline.c message.c misc1.c misc2.c move.c \
|
||||
normal.c ops.c option.c popupmnu.c popupwin.c, quickfix.c regexp.c search.c \
|
||||
sha256.c sign.c spell.c spellfile.c syntax.c tag.c term.c termlib.c \
|
||||
textprop.c ui.c undo.c usercmd.c userfunc.c version.c screen.c \
|
||||
window.c os_unix.c os_vms.c pathdef.c \
|
||||
hardcopy.c hashtab.c highlight.c indent.c insexpand.c json.c list.c \
|
||||
main.c mark.c menu.c mbyte.c memfile.c memline.c message.c misc1.c \
|
||||
misc2.c move.c normal.c ops.c option.c popupmnu.c popupwin.c \
|
||||
profiler.c quickfix.c regexp.c search.c sha256.c sign.c spell.c \
|
||||
spellfile.c syntax.c tag.c term.c termlib.c testing.c textprop.c ui.c \
|
||||
undo.c usercmd.c userfunc.c version.c screen.c window.c os_unix.c \
|
||||
os_vms.c pathdef.c \
|
||||
$(GUI_SRC) $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) \
|
||||
$(RUBY_SRC) $(HANGULIN_SRC) $(MZSCH_SRC) $(XDIFF_SRC)
|
||||
|
||||
@@ -325,13 +326,14 @@ OBJ = arabic.obj autocmd.obj beval.obj blob.obj blowfish.obj buffer.obj change.
|
||||
digraph.obj edit.obj eval.obj evalfunc.obj ex_cmds.obj ex_cmds2.obj \
|
||||
ex_docmd.obj ex_eval.obj ex_getln.obj if_cscope.obj if_xcmdsrv.obj \
|
||||
fileio.obj findfile.obj fold.obj getchar.obj hardcopy.obj hashtab.obj \
|
||||
indent.obj insexpand.obj json.obj list.obj main.obj mark.obj \
|
||||
menu.obj memfile.obj memline.obj message.obj misc1.obj misc2.obj \
|
||||
move.obj mbyte.obj normal.obj ops.obj option.obj popupmnu.obj popupwin.obj\
|
||||
quickfix.obj regexp.obj search.obj sha256.obj sign.obj spell.obj \
|
||||
spellfile.obj syntax.obj tag.obj term.obj termlib.obj textprop.obj \
|
||||
ui.obj undo.obj usercmd.obj userfunc.obj screen.obj version.obj \
|
||||
window.obj os_unix.obj os_vms.obj pathdef.obj if_mzsch.obj \
|
||||
highlight.obj indent.obj insexpand.obj json.obj list.obj main.obj \
|
||||
mark.obj menu.obj memfile.obj memline.obj message.obj misc1.obj \
|
||||
misc2.obj move.obj mbyte.obj normal.obj ops.obj option.obj \
|
||||
popupmnu.obj popupwin.obj profiler.obj quickfix.obj regexp.obj \
|
||||
search.obj sha256.obj sign.obj spell.obj spellfile.obj syntax.obj \
|
||||
tag.obj term.obj termlib.obj testing.obj textprop.obj ui.obj undo.obj \
|
||||
usercmd.obj userfunc.obj screen.obj version.obj window.obj \
|
||||
os_unix.obj os_vms.obj pathdef.obj if_mzsch.obj \
|
||||
$(GUI_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(TCL_OBJ) \
|
||||
$(RUBY_OBJ) $(HANGULIN_OBJ) $(MZSCH_OBJ) $(XDIFF_OBJ)
|
||||
|
||||
@@ -598,6 +600,10 @@ hashtab.obj : hashtab.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h
|
||||
highlight.obj : highlight.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h
|
||||
if_cscope.obj : if_cscope.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
@@ -692,6 +698,10 @@ popupwin.obj : popupwin.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h
|
||||
profiler.obj : profiler.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
globals.h
|
||||
quickfix.obj : quickfix.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h \
|
||||
gui.h beval.h [.proto]gui_beval.pro option.h ex_cmds.h proto.h \
|
||||
@@ -740,6 +750,10 @@ termlib.obj : termlib.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
|
||||
testing.obj : testing.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
|
||||
textprop.obj : textprop.c vim.h [.auto]config.h feature.h os_unix.h \
|
||||
ascii.h keymap.h term.h macros.h structs.h regexp.h gui.h beval.h \
|
||||
[.proto]gui_beval.pro option.h ex_cmds.h proto.h globals.h \
|
||||
|
||||
+37
-1
@@ -521,6 +521,7 @@ CClink = $(CC)
|
||||
# gpm - For mouse support on Linux console via gpm
|
||||
# Uncomment this when you do not want to include gpm support, even
|
||||
# though you have gpm libraries and includes.
|
||||
# For Debian/Ubuntu gpm support requires the libgpm-dev package.
|
||||
#CONF_OPT_GPM = --disable-gpm
|
||||
|
||||
# sysmouse - For mouse support on FreeBSD and DragonFly console via sysmouse
|
||||
@@ -528,6 +529,11 @@ CClink = $(CC)
|
||||
# though you have /dev/sysmouse and includes.
|
||||
#CONF_OPT_SYSMOUSE = --disable-sysmouse
|
||||
|
||||
# libcanberra - For sound support. Default is on for big features.
|
||||
# Uncomment one of the two to chose otherwise.
|
||||
# CONF_OPT_CANBERRA = --enable-canberra
|
||||
# CONF_OPT_CANBERRA = --disable-canberra
|
||||
|
||||
# FEATURES - For creating Vim with more or less features
|
||||
# Uncomment one of these lines when you want to include few to many features.
|
||||
# The default is "huge" for most systems.
|
||||
@@ -1615,6 +1621,7 @@ BASIC_SRC = \
|
||||
getchar.c \
|
||||
hardcopy.c \
|
||||
hashtab.c \
|
||||
highlight.c \
|
||||
if_cscope.c \
|
||||
if_xcmdsrv.c \
|
||||
indent.c \
|
||||
@@ -1638,6 +1645,7 @@ BASIC_SRC = \
|
||||
auto/pathdef.c \
|
||||
popupmnu.c \
|
||||
popupwin.c \
|
||||
profiler.c \
|
||||
pty.c \
|
||||
quickfix.c \
|
||||
regexp.c \
|
||||
@@ -1652,6 +1660,7 @@ BASIC_SRC = \
|
||||
tag.c \
|
||||
term.c \
|
||||
terminal.c \
|
||||
testing.c \
|
||||
textprop.c \
|
||||
ui.c \
|
||||
undo.c \
|
||||
@@ -1734,6 +1743,7 @@ OBJ_COMMON = \
|
||||
objects/getchar.o \
|
||||
objects/hardcopy.o \
|
||||
objects/hashtab.o \
|
||||
objects/highlight.o \
|
||||
$(HANGULIN_OBJ) \
|
||||
objects/if_cscope.o \
|
||||
objects/if_xcmdsrv.o \
|
||||
@@ -1754,6 +1764,7 @@ OBJ_COMMON = \
|
||||
objects/pathdef.o \
|
||||
objects/popupmnu.o \
|
||||
objects/popupwin.o \
|
||||
objects/profiler.o \
|
||||
objects/pty.o \
|
||||
objects/quickfix.o \
|
||||
objects/regexp.o \
|
||||
@@ -1768,6 +1779,7 @@ OBJ_COMMON = \
|
||||
objects/tag.o \
|
||||
objects/term.o \
|
||||
objects/terminal.o \
|
||||
objects/testing.o \
|
||||
objects/textprop.o \
|
||||
objects/ui.o \
|
||||
objects/undo.o \
|
||||
@@ -1867,6 +1879,7 @@ PRO_AUTO = \
|
||||
hardcopy.pro \
|
||||
hashtab.pro \
|
||||
hangulin.pro \
|
||||
highlight.pro \
|
||||
if_cscope.pro \
|
||||
if_lua.pro \
|
||||
if_mzsch.pro \
|
||||
@@ -1895,6 +1908,7 @@ PRO_AUTO = \
|
||||
os_unix.pro \
|
||||
popupmnu.pro \
|
||||
popupwin.pro \
|
||||
profiler.pro \
|
||||
pty.pro \
|
||||
quickfix.pro \
|
||||
regexp.pro \
|
||||
@@ -1910,6 +1924,7 @@ PRO_AUTO = \
|
||||
term.pro \
|
||||
terminal.pro \
|
||||
termlib.pro \
|
||||
testing.pro \
|
||||
textprop.pro \
|
||||
ui.pro \
|
||||
undo.pro \
|
||||
@@ -1969,7 +1984,7 @@ config auto/config.mk: auto/configure config.mk.in config.h.in
|
||||
$(CONF_ARGS4) $(CONF_ARGS5) $(CONF_ARGS6) \
|
||||
$(CONF_OPT_MZSCHEME) $(CONF_OPT_PLTHOME) \
|
||||
$(CONF_OPT_LUA) $(CONF_OPT_LUA_PREFIX) \
|
||||
$(CONF_OPT_SYSMOUSE); \
|
||||
$(CONF_OPT_SYSMOUSE) $(CONF_OPT_CANBERRA); \
|
||||
fi
|
||||
|
||||
# Use "make reconfig" to rerun configure without cached values.
|
||||
@@ -3117,6 +3132,9 @@ objects/gui_macvim.o: MacVim/gui_macvim.m
|
||||
objects/hangulin.o: hangulin.c
|
||||
$(CCC) -o $@ hangulin.c
|
||||
|
||||
objects/highlight.o: highlight.c
|
||||
$(CCC) -o $@ highlight.c
|
||||
|
||||
objects/if_cscope.o: if_cscope.c
|
||||
$(CCC) -o $@ if_cscope.c
|
||||
|
||||
@@ -3243,6 +3261,9 @@ objects/popupmnu.o: popupmnu.c
|
||||
objects/popupwin.o: popupwin.c
|
||||
$(CCC) -o $@ popupwin.c
|
||||
|
||||
objects/profiler.o: profiler.c
|
||||
$(CCC) -o $@ profiler.c
|
||||
|
||||
objects/pty.o: pty.c
|
||||
$(CCC) -o $@ pty.c
|
||||
|
||||
@@ -3285,6 +3306,9 @@ objects/term.o: term.c
|
||||
objects/terminal.o: terminal.c $(TERM_DEPS)
|
||||
$(CCC) -o $@ terminal.c
|
||||
|
||||
objects/testing.o: testing.c
|
||||
$(CCC) -o $@ testing.c
|
||||
|
||||
objects/textprop.o: textprop.c
|
||||
$(CCC) -o $@ textprop.c
|
||||
|
||||
@@ -3593,6 +3617,10 @@ objects/hashtab.o: hashtab.c vim.h protodef.h auto/config.h feature.h os_unix.h
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/highlight.o: highlight.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/if_cscope.o: if_cscope.c vim.h protodef.h auto/config.h feature.h \
|
||||
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
@@ -3685,6 +3713,10 @@ objects/popupwin.o: popupwin.c vim.h protodef.h auto/config.h feature.h os_unix.
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/profiler.o: profiler.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/pty.o: pty.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
@@ -3743,6 +3775,10 @@ objects/terminal.o: terminal.c vim.h protodef.h auto/config.h feature.h os_unix.
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h libvterm/include/vterm.h \
|
||||
libvterm/include/vterm_keycodes.h
|
||||
objects/testing.o: testing.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
proto.h globals.h
|
||||
objects/textprop.o: textprop.c vim.h protodef.h auto/config.h feature.h os_unix.h \
|
||||
auto/osdef.h ascii.h keymap.h term.h macros.h option.h beval.h \
|
||||
proto/gui_beval.pro structs.h regexp.h gui.h alloc.h ex_cmds.h spell.h \
|
||||
|
||||
+9
-3
@@ -21,8 +21,8 @@ To jump to a file, move the cursor on its name and use the `gf` command.
|
||||
|
||||
Most code can be found in a file with an obvious name (incomplete list):
|
||||
|
||||
File name | Description
|
||||
--------- | -----------
|
||||
File name | Description
|
||||
--------------- | -----------
|
||||
autocmd.c | autocommands
|
||||
buffer.c | manipulating buffers (loaded files)
|
||||
change.c | handling changes to text
|
||||
@@ -34,6 +34,7 @@ fileio.c | reading and writing files
|
||||
findfile.c | search for files in 'path'
|
||||
fold.c | folding
|
||||
getchar.c | getting characters and key mapping
|
||||
highlight.c | syntax highlighting
|
||||
indent.c | C and Lisp indentation
|
||||
insexpand.c | Insert mode completion
|
||||
mark.c | marks
|
||||
@@ -44,15 +45,20 @@ menu.c | menus
|
||||
message.c | (error) messages
|
||||
ops.c | handling operators ("d", "y", "p")
|
||||
option.c | options
|
||||
popupmnu.c | popup menu
|
||||
popupwin.c | popup window
|
||||
profiler.c | vim script profiler
|
||||
quickfix.c | quickfix commands (":make", ":cn")
|
||||
regexp.c | pattern matching
|
||||
screen.c | updating the windows
|
||||
search.c | pattern searching
|
||||
sign.c | signs
|
||||
spell.c | spell checking
|
||||
syntax.c | syntax and other highlighting
|
||||
syntax.c | syntax and other highlighting
|
||||
tag.c | tags
|
||||
term.c | terminal handling, termcap codes
|
||||
testing.c | testing: assert and test functions
|
||||
textprop.c | text properties
|
||||
undo.c | undo and redo
|
||||
usercmd.c | user defined commands
|
||||
userfunc.c | user defined functions
|
||||
|
||||
Vendored
+44
-25
@@ -844,6 +844,7 @@ enable_desktop_database_update
|
||||
with_motif_lib
|
||||
with_tlib
|
||||
enable_largefile
|
||||
enable_canberra
|
||||
enable_acl
|
||||
enable_gpm
|
||||
enable_sysmouse
|
||||
@@ -1510,6 +1511,7 @@ Optional Features:
|
||||
--disable-icon-cache-update update disabled
|
||||
--disable-desktop-database-update update disabled
|
||||
--disable-largefile omit support for large files
|
||||
--disable-canberra Do not use libcanberra.
|
||||
--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).
|
||||
@@ -12678,7 +12680,7 @@ for ac_func in fchdir fchown fchmod fsync getcwd getpseudotty \
|
||||
memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
|
||||
getpgid setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
||||
sigprocmask sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
|
||||
strnicmp strpbrk strtol tgetent towlower towupper iswupper tzset \
|
||||
usleep utime utimes mblen ftruncate unsetenv posix_openpt
|
||||
do :
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
@@ -13036,40 +13038,56 @@ rm -rf conftest*
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-canberra argument" >&5
|
||||
$as_echo_n "checking --enable-canberra argument... " >&6; }
|
||||
# Check whether --enable-canberra was given.
|
||||
if test "${enable_canberra+set}" = set; then :
|
||||
enableval=$enable_canberra;
|
||||
else
|
||||
enable_canberra="maybe"
|
||||
fi
|
||||
|
||||
if test "x$PKG_CONFIG" != "xno"; then
|
||||
canberra_lib=`$PKG_CONFIG --libs libcanberrax 2>/dev/null`
|
||||
canberra_cflags=`$PKG_CONFIG --cflags libcanberrax 2>/dev/null`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: canberra_lib: $canberra_lib" >&5
|
||||
$as_echo "canberra_lib: $canberra_lib" >&6; }
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: canberra_cflags: $canberra_cflags" >&5
|
||||
$as_echo "canberra_cflags: $canberra_cflags" >&6; }
|
||||
|
||||
if test "$enable_canberra" = "maybe"; then
|
||||
if test "$features" = "big" -o "$features" = "huge"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Defaulting to yes" >&5
|
||||
$as_echo "Defaulting to yes" >&6; }
|
||||
enable_canberra="yes"
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Defaulting to no" >&5
|
||||
$as_echo "Defaulting to no" >&6; }
|
||||
enable_canberra="no"
|
||||
fi
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_canberra" >&5
|
||||
$as_echo "$enable_canberra" >&6; }
|
||||
fi
|
||||
if test "x$canberra_lib" = "x"; then
|
||||
canberra_lib=-lcanberra
|
||||
canberra_cflags=-D_REENTRANT
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: canberra_lib: $canberra_lib" >&5
|
||||
$as_echo "canberra_lib: $canberra_lib" >&6; }
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: canberra_cflags: $canberra_cflags" >&5
|
||||
$as_echo "canberra_cflags: $canberra_cflags" >&6; }
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcanberra" >&5
|
||||
if test "$enable_canberra" = "yes"; then
|
||||
if test "x$PKG_CONFIG" != "xno"; then
|
||||
canberra_lib=`$PKG_CONFIG --libs libcanberra 2>/dev/null`
|
||||
canberra_cflags=`$PKG_CONFIG --cflags libcanberra 2>/dev/null`
|
||||
fi
|
||||
if test "x$canberra_lib" = "x"; then
|
||||
canberra_lib=-lcanberra
|
||||
canberra_cflags=-D_REENTRANT
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcanberra" >&5
|
||||
$as_echo_n "checking for libcanberra... " >&6; }
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $canberra_cflags"
|
||||
LIBS="$LIBS $canberra_lib"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $canberra_cflags"
|
||||
LIBS="$LIBS $canberra_lib"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
# include <canberra.h>
|
||||
# include <canberra.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
ca_context *hello;
|
||||
ca_context_create(&hello);
|
||||
ca_context *hello;
|
||||
ca_context_create(&hello);
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
@@ -13084,6 +13102,7 @@ $as_echo "no" >&6; }; CFLAGS="$ac_save_CFLAGS"; LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_blksize" >&5
|
||||
|
||||
+1
-1
@@ -2329,7 +2329,7 @@ auto_next_pat(
|
||||
* Returns allocated string, or NULL for end of autocommands.
|
||||
*/
|
||||
char_u *
|
||||
getnextac(int c UNUSED, void *cookie, int indent UNUSED)
|
||||
getnextac(int c UNUSED, void *cookie, int indent UNUSED, int do_concat UNUSED)
|
||||
{
|
||||
AutoPatCmd *acp = (AutoPatCmd *)cookie;
|
||||
char_u *retval;
|
||||
|
||||
+100
-58
@@ -10,61 +10,50 @@
|
||||
|
||||
#include "vim.h"
|
||||
|
||||
#if defined(FEAT_BEVAL) || defined(PROTO)
|
||||
|
||||
#if defined(FEAT_BEVAL) || defined(FEAT_TEXT_PROP) || defined(PROTO)
|
||||
/*
|
||||
* Get the text and position to be evaluated for "beval".
|
||||
* If "getword" is true the returned text is not the whole line but the
|
||||
* relevant word in allocated memory.
|
||||
* Returns OK or FAIL.
|
||||
* Find text under the mouse position "row" / "col".
|
||||
* If "getword" is TRUE the returned text in "*textp" is not the whole line but
|
||||
* the relevant word in allocated memory.
|
||||
* Return OK if found.
|
||||
* Return FAIL if not found, no text at the mouse position.
|
||||
*/
|
||||
int
|
||||
get_beval_info(
|
||||
BalloonEval *beval,
|
||||
int getword,
|
||||
win_T **winp,
|
||||
linenr_T *lnump,
|
||||
char_u **textp,
|
||||
int *colp)
|
||||
find_word_under_cursor(
|
||||
int mouserow,
|
||||
int mousecol,
|
||||
int getword,
|
||||
int flags, // flags for find_ident_at_pos()
|
||||
win_T **winp, // can be NULL
|
||||
linenr_T *lnump, // can be NULL
|
||||
char_u **textp,
|
||||
int *colp, // column where mouse hovers, can be NULL
|
||||
int *startcolp) // column where text starts, can be NULL
|
||||
{
|
||||
int row = mouserow;
|
||||
int col = mousecol;
|
||||
int scol;
|
||||
win_T *wp;
|
||||
int row, col;
|
||||
char_u *lbuf;
|
||||
linenr_T lnum;
|
||||
|
||||
*textp = NULL;
|
||||
# ifdef FEAT_BEVAL_TERM
|
||||
# ifdef FEAT_GUI
|
||||
if (!gui.in_use)
|
||||
# endif
|
||||
{
|
||||
row = mouse_row;
|
||||
col = mouse_col;
|
||||
}
|
||||
# endif
|
||||
# ifdef FEAT_GUI
|
||||
if (gui.in_use)
|
||||
{
|
||||
row = Y_2_ROW(beval->y);
|
||||
col = X_2_COL(beval->x);
|
||||
}
|
||||
#endif
|
||||
wp = mouse_find_win(&row, &col);
|
||||
wp = mouse_find_win(&row, &col, FAIL_POPUP);
|
||||
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. */
|
||||
// Found a window and the cursor is in the text. Now find the line
|
||||
// number.
|
||||
if (!mouse_comp_pos(wp, &row, &col, &lnum))
|
||||
{
|
||||
/* Not past end of the file. */
|
||||
// Not past end of the file.
|
||||
lbuf = ml_get_buf(wp->w_buffer, lnum, FALSE);
|
||||
if (col <= win_linetabsize(wp, lbuf, (colnr_T)MAXCOL))
|
||||
{
|
||||
/* Not past end of line. */
|
||||
// Not past end of line.
|
||||
if (getword)
|
||||
{
|
||||
/* For Netbeans we get the relevant part of the line
|
||||
* instead of the whole line. */
|
||||
// For Netbeans we get the relevant part of the line
|
||||
// instead of the whole line.
|
||||
int len;
|
||||
pos_T *spos = NULL, *epos = NULL;
|
||||
|
||||
@@ -83,6 +72,7 @@ get_beval_info(
|
||||
}
|
||||
|
||||
col = vcol2col(wp, lnum, col);
|
||||
scol = col;
|
||||
|
||||
if (VIsual_active
|
||||
&& wp->w_buffer == curwin->w_buffer
|
||||
@@ -93,9 +83,9 @@ get_beval_info(
|
||||
? col <= (int)epos->col
|
||||
: lnum < epos->lnum))
|
||||
{
|
||||
/* Visual mode and pointing to the line with the
|
||||
* Visual selection: return selected text, with a
|
||||
* maximum of one line. */
|
||||
// Visual mode and pointing to the line with the
|
||||
// Visual selection: return selected text, with a
|
||||
// maximum of one line.
|
||||
if (spos->lnum != epos->lnum || spos->col == epos->col)
|
||||
return FAIL;
|
||||
|
||||
@@ -106,13 +96,14 @@ get_beval_info(
|
||||
lbuf = vim_strnsave(lbuf + spos->col, len);
|
||||
lnum = spos->lnum;
|
||||
col = spos->col;
|
||||
scol = col;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Find the word under the cursor. */
|
||||
// Find the word under the cursor.
|
||||
++emsg_off;
|
||||
len = find_ident_at_pos(wp, lnum, (colnr_T)col, &lbuf,
|
||||
FIND_IDENT + FIND_STRING + FIND_EVAL);
|
||||
len = find_ident_at_pos(wp, lnum, (colnr_T)col,
|
||||
&lbuf, &scol, flags);
|
||||
--emsg_off;
|
||||
if (len == 0)
|
||||
return FAIL;
|
||||
@@ -120,27 +111,74 @@ get_beval_info(
|
||||
}
|
||||
}
|
||||
|
||||
*winp = wp;
|
||||
*lnump = lnum;
|
||||
if (winp != NULL)
|
||||
*winp = wp;
|
||||
if (lnump != NULL)
|
||||
*lnump = lnum;
|
||||
*textp = lbuf;
|
||||
*colp = col;
|
||||
#ifdef FEAT_VARTABS
|
||||
vim_free(beval->vts);
|
||||
beval->vts = tabstop_copy(wp->w_buffer->b_p_vts_array);
|
||||
if (wp->w_buffer->b_p_vts_array != NULL && beval->vts == NULL)
|
||||
return FAIL;
|
||||
#endif
|
||||
beval->ts = wp->w_buffer->b_p_ts;
|
||||
if (colp != NULL)
|
||||
*colp = col;
|
||||
if (startcolp != NULL)
|
||||
*startcolp = scol;
|
||||
return OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
return FAIL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_BEVAL) || defined(PROTO)
|
||||
|
||||
/*
|
||||
* Get the text and position to be evaluated for "beval".
|
||||
* If "getword" is TRUE the returned text is not the whole line but the
|
||||
* relevant word in allocated memory.
|
||||
* Returns OK or FAIL.
|
||||
*/
|
||||
int
|
||||
get_beval_info(
|
||||
BalloonEval *beval,
|
||||
int getword,
|
||||
win_T **winp,
|
||||
linenr_T *lnump,
|
||||
char_u **textp,
|
||||
int *colp)
|
||||
{
|
||||
int row = mouse_row;
|
||||
int col = mouse_col;
|
||||
|
||||
# ifdef FEAT_GUI
|
||||
if (gui.in_use)
|
||||
{
|
||||
row = Y_2_ROW(beval->y);
|
||||
col = X_2_COL(beval->x);
|
||||
}
|
||||
#endif
|
||||
if (find_word_under_cursor(row, col, getword,
|
||||
FIND_IDENT + FIND_STRING + FIND_EVAL,
|
||||
winp, lnump, textp, colp, NULL) == OK)
|
||||
{
|
||||
#ifdef FEAT_VARTABS
|
||||
vim_free(beval->vts);
|
||||
beval->vts = tabstop_copy((*winp)->w_buffer->b_p_vts_array);
|
||||
if ((*winp)->w_buffer->b_p_vts_array != NULL && beval->vts == NULL)
|
||||
{
|
||||
if (getword)
|
||||
vim_free(*textp);
|
||||
return FAIL;
|
||||
}
|
||||
#endif
|
||||
beval->ts = (*winp)->w_buffer->b_p_ts;
|
||||
return OK;
|
||||
}
|
||||
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Show a balloon with "mesg" or "list".
|
||||
* Hide the balloon when both are NULL.
|
||||
*/
|
||||
void
|
||||
post_balloon(BalloonEval *beval UNUSED, char_u *mesg, list_T *list UNUSED)
|
||||
@@ -153,7 +191,7 @@ post_balloon(BalloonEval *beval UNUSED, char_u *mesg, list_T *list UNUSED)
|
||||
# endif
|
||||
# ifdef FEAT_BEVAL_GUI
|
||||
if (gui.in_use)
|
||||
/* GUI can't handle a list */
|
||||
// GUI can't handle a list
|
||||
gui_mch_post_balloon(beval, mesg);
|
||||
# endif
|
||||
}
|
||||
@@ -263,11 +301,15 @@ general_beval_cb(BalloonEval *beval, int state UNUSED)
|
||||
|
||||
set_vim_var_string(VV_BEVAL_TEXT, NULL, -1);
|
||||
if (result != NULL && result[0] != NUL)
|
||||
{
|
||||
post_balloon(beval, result, NULL);
|
||||
recursive = FALSE;
|
||||
return;
|
||||
}
|
||||
|
||||
// The 'balloonexpr' evaluation may show something on the screen
|
||||
// that requires a screen update.
|
||||
if (must_redraw)
|
||||
redraw_after_callback(FALSE);
|
||||
|
||||
recursive = FALSE;
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -63,6 +63,7 @@ blob_copy(typval_T *from, typval_T *to)
|
||||
int ret = OK;
|
||||
|
||||
to->v_type = VAR_BLOB;
|
||||
to->v_lock = 0;
|
||||
if (from->vval.v_blob == NULL)
|
||||
to->vval.v_blob = NULL;
|
||||
else if (rettv_blob_alloc(to) == FAIL)
|
||||
|
||||
+73
-2
@@ -121,6 +121,23 @@ read_buffer(
|
||||
return retval;
|
||||
}
|
||||
|
||||
/*
|
||||
* Ensure buffer "buf" is loaded. Does not trigger the swap-exists action.
|
||||
*/
|
||||
void
|
||||
buffer_ensure_loaded(buf_T *buf)
|
||||
{
|
||||
if (buf->b_ml.ml_mfp == NULL)
|
||||
{
|
||||
aco_save_T aco;
|
||||
|
||||
aucmd_prepbuf(&aco, buf);
|
||||
swap_exists_action = SEA_NONE;
|
||||
open_buffer(FALSE, NULL, 0);
|
||||
aucmd_restbuf(&aco);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Open current buffer, that is: open the memfile and read the file into
|
||||
* memory.
|
||||
@@ -5708,7 +5725,7 @@ bt_popup(buf_T *buf)
|
||||
* buffer. This means the buffer name is not a file name.
|
||||
*/
|
||||
int
|
||||
bt_nofile(buf_T *buf)
|
||||
bt_nofilename(buf_T *buf)
|
||||
{
|
||||
return buf != NULL && ((buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
|
||||
|| buf->b_p_bt[0] == 'a'
|
||||
@@ -5716,6 +5733,15 @@ bt_nofile(buf_T *buf)
|
||||
|| buf->b_p_bt[0] == 'p');
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if "buf" has 'buftype' set to "nofile".
|
||||
*/
|
||||
int
|
||||
bt_nofile(buf_T *buf)
|
||||
{
|
||||
return buf != NULL && buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f';
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if "buf" is a "nowrite", "nofile", "terminal" or "prompt"
|
||||
* buffer.
|
||||
@@ -5782,7 +5808,7 @@ buf_spname(buf_T *buf)
|
||||
|
||||
/* There is no _file_ when 'buftype' is "nofile", b_sfname
|
||||
* contains the name as specified by the user. */
|
||||
if (bt_nofile(buf))
|
||||
if (bt_nofilename(buf))
|
||||
{
|
||||
#ifdef FEAT_TERMINAL
|
||||
if (buf->b_term != NULL)
|
||||
@@ -5963,3 +5989,48 @@ wipe_buffer(
|
||||
if (!aucmd)
|
||||
unblock_autocmds();
|
||||
}
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
/*
|
||||
* Mark references in functions of buffers.
|
||||
*/
|
||||
int
|
||||
set_ref_in_buffers(int copyID)
|
||||
{
|
||||
int abort = FALSE;
|
||||
buf_T *bp;
|
||||
|
||||
FOR_ALL_BUFFERS(bp)
|
||||
{
|
||||
listener_T *lnr;
|
||||
typval_T tv;
|
||||
|
||||
for (lnr = bp->b_listener; !abort && lnr != NULL; lnr = lnr->lr_next)
|
||||
{
|
||||
if (lnr->lr_callback.cb_partial != NULL)
|
||||
{
|
||||
tv.v_type = VAR_PARTIAL;
|
||||
tv.vval.v_partial = lnr->lr_callback.cb_partial;
|
||||
abort = abort || set_ref_in_item(&tv, copyID, NULL, NULL);
|
||||
}
|
||||
}
|
||||
# ifdef FEAT_JOB_CHANNEL
|
||||
if (!abort && bp->b_prompt_callback.cb_partial != NULL)
|
||||
{
|
||||
tv.v_type = VAR_PARTIAL;
|
||||
tv.vval.v_partial = bp->b_prompt_callback.cb_partial;
|
||||
abort = abort || set_ref_in_item(&tv, copyID, NULL, NULL);
|
||||
}
|
||||
if (!abort && bp->b_prompt_interrupt.cb_partial != NULL)
|
||||
{
|
||||
tv.v_type = VAR_PARTIAL;
|
||||
tv.vval.v_partial = bp->b_prompt_interrupt.cb_partial;
|
||||
abort = abort || set_ref_in_item(&tv, copyID, NULL, NULL);
|
||||
}
|
||||
# endif
|
||||
if (abort)
|
||||
break;
|
||||
}
|
||||
return abort;
|
||||
}
|
||||
#endif
|
||||
|
||||
+17
-45
@@ -155,19 +155,16 @@ changed_internal(void)
|
||||
static long next_listener_id = 0;
|
||||
|
||||
/*
|
||||
* Check if the change at "lnum" / "col" is above or overlaps with an existing
|
||||
* changed. If above then flush changes and invoke listeners.
|
||||
* If "merge" is TRUE do the merge.
|
||||
* Check if the change at "lnum" is above or overlaps with an existing
|
||||
* change. If above then flush changes and invoke listeners.
|
||||
* Returns TRUE if the change was merged.
|
||||
*/
|
||||
static int
|
||||
check_recorded_changes(
|
||||
buf_T *buf,
|
||||
linenr_T lnum,
|
||||
colnr_T col,
|
||||
linenr_T lnume,
|
||||
long xtra,
|
||||
int merge)
|
||||
long xtra)
|
||||
{
|
||||
if (buf->b_recorded_changes != NULL && xtra != 0)
|
||||
{
|
||||
@@ -182,42 +179,12 @@ check_recorded_changes(
|
||||
li->li_tv.vval.v_dict, (char_u *)"lnum");
|
||||
prev_lnume = (linenr_T)dict_get_number(
|
||||
li->li_tv.vval.v_dict, (char_u *)"end");
|
||||
if (prev_lnum >= lnum || prev_lnum > lnume
|
||||
|| (prev_lnume >= lnum && xtra != 0))
|
||||
if (prev_lnum >= lnum || prev_lnum > lnume || prev_lnume >= lnum)
|
||||
{
|
||||
if (li->li_next == NULL && lnum == prev_lnum
|
||||
&& xtra == 0
|
||||
&& col + 1 == (colnr_T)dict_get_number(
|
||||
li->li_tv.vval.v_dict, (char_u *)"col"))
|
||||
{
|
||||
if (merge)
|
||||
{
|
||||
dictitem_T *di;
|
||||
|
||||
// Same start point and nothing is following, entries
|
||||
// can be merged.
|
||||
di = dict_find(li->li_tv.vval.v_dict,
|
||||
(char_u *)"end", -1);
|
||||
if (di != NULL)
|
||||
{
|
||||
prev_lnum = tv_get_number(&di->di_tv);
|
||||
if (lnume > prev_lnum)
|
||||
di->di_tv.vval.v_number = lnume;
|
||||
}
|
||||
di = dict_find(li->li_tv.vval.v_dict,
|
||||
(char_u *)"added", -1);
|
||||
if (di != NULL)
|
||||
di->di_tv.vval.v_number += xtra;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// the current change is going to make the line number in
|
||||
// the older change invalid, flush now
|
||||
invoke_listeners(curbuf);
|
||||
break;
|
||||
}
|
||||
// the current change is going to make the line number in
|
||||
// the older change invalid, flush now
|
||||
invoke_listeners(curbuf);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -242,7 +209,7 @@ may_record_change(
|
||||
|
||||
// If the new change is going to change the line numbers in already listed
|
||||
// changes, then flush.
|
||||
if (check_recorded_changes(curbuf, lnum, col, lnume, xtra, TRUE))
|
||||
if (check_recorded_changes(curbuf, lnum, lnume, xtra))
|
||||
return;
|
||||
|
||||
if (curbuf->b_recorded_changes == NULL)
|
||||
@@ -325,15 +292,17 @@ f_listener_flush(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
* listener_remove() function
|
||||
*/
|
||||
void
|
||||
f_listener_remove(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
f_listener_remove(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
listener_T *lnr;
|
||||
listener_T *next;
|
||||
listener_T *prev = NULL;
|
||||
listener_T *prev;
|
||||
int id = tv_get_number(argvars);
|
||||
buf_T *buf;
|
||||
|
||||
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
|
||||
{
|
||||
prev = NULL;
|
||||
for (lnr = buf->b_listener; lnr != NULL; lnr = next)
|
||||
{
|
||||
next = lnr->lr_next;
|
||||
@@ -345,9 +314,12 @@ f_listener_remove(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
buf->b_listener = lnr->lr_next;
|
||||
free_callback(&lnr->lr_callback);
|
||||
vim_free(lnr);
|
||||
rettv->vval.v_number = 1;
|
||||
return;
|
||||
}
|
||||
prev = lnr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -357,7 +329,7 @@ f_listener_remove(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
void
|
||||
may_invoke_listeners(buf_T *buf, linenr_T lnum, linenr_T lnume, int added)
|
||||
{
|
||||
check_recorded_changes(buf, lnum, 0, lnume, added, FALSE);
|
||||
check_recorded_changes(buf, lnum, lnume, added);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+774
-338
File diff suppressed because it is too large
Load Diff
@@ -217,6 +217,7 @@
|
||||
#undef HAVE_TOWLOWER
|
||||
#undef HAVE_TOWUPPER
|
||||
#undef HAVE_ISWUPPER
|
||||
#undef HAVE_TZSET
|
||||
#undef HAVE_UNSETENV
|
||||
#undef HAVE_USLEEP
|
||||
#undef HAVE_UTIME
|
||||
|
||||
+36
-19
@@ -3827,7 +3827,7 @@ AC_CHECK_FUNCS(fchdir fchown fchmod fsync getcwd getpseudotty \
|
||||
memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
|
||||
getpgid setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
|
||||
sigprocmask sigvec strcasecmp strerror strftime stricmp strncasecmp \
|
||||
strnicmp strpbrk strtol tgetent towlower towupper iswupper \
|
||||
strnicmp strpbrk strtol tgetent towlower towupper iswupper tzset \
|
||||
usleep utime utimes mblen ftruncate unsetenv posix_openpt)
|
||||
AC_FUNC_SELECT_ARGTYPES
|
||||
AC_FUNC_FSEEKO
|
||||
@@ -3836,27 +3836,44 @@ dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
|
||||
dnl appropriate, so that off_t is 64 bits when needed.
|
||||
AC_SYS_LARGEFILE
|
||||
|
||||
AC_MSG_CHECKING(--enable-canberra argument)
|
||||
AC_ARG_ENABLE(canberra,
|
||||
[ --disable-canberra Do not use libcanberra.],
|
||||
, [enable_canberra="maybe"])
|
||||
|
||||
if test "x$PKG_CONFIG" != "xno"; then
|
||||
canberra_lib=`$PKG_CONFIG --libs libcanberra 2>/dev/null`
|
||||
canberra_cflags=`$PKG_CONFIG --cflags libcanberra 2>/dev/null`
|
||||
if test "$enable_canberra" = "maybe"; then
|
||||
if test "$features" = "big" -o "$features" = "huge"; then
|
||||
AC_MSG_RESULT(Defaulting to yes)
|
||||
enable_canberra="yes"
|
||||
else
|
||||
AC_MSG_RESULT(Defaulting to no)
|
||||
enable_canberra="no"
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT($enable_canberra)
|
||||
fi
|
||||
if test "x$canberra_lib" = "x"; then
|
||||
canberra_lib=-lcanberra
|
||||
canberra_cflags=-D_REENTRANT
|
||||
if test "$enable_canberra" = "yes"; then
|
||||
if test "x$PKG_CONFIG" != "xno"; then
|
||||
canberra_lib=`$PKG_CONFIG --libs libcanberra 2>/dev/null`
|
||||
canberra_cflags=`$PKG_CONFIG --cflags libcanberra 2>/dev/null`
|
||||
fi
|
||||
if test "x$canberra_lib" = "x"; then
|
||||
canberra_lib=-lcanberra
|
||||
canberra_cflags=-D_REENTRANT
|
||||
fi
|
||||
AC_MSG_CHECKING(for libcanberra)
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $canberra_cflags"
|
||||
LIBS="$LIBS $canberra_lib"
|
||||
AC_TRY_LINK([
|
||||
# include <canberra.h>
|
||||
], [
|
||||
ca_context *hello;
|
||||
ca_context_create(&hello);],
|
||||
AC_MSG_RESULT(yes); AC_DEFINE(HAVE_CANBERRA),
|
||||
AC_MSG_RESULT(no); CFLAGS="$ac_save_CFLAGS"; LIBS="$ac_save_LIBS")
|
||||
fi
|
||||
AC_MSG_CHECKING(for libcanberra)
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $canberra_cflags"
|
||||
LIBS="$LIBS $canberra_lib"
|
||||
AC_TRY_LINK([
|
||||
# include <canberra.h>
|
||||
], [
|
||||
ca_context *hello;
|
||||
ca_context_create(&hello);],
|
||||
AC_MSG_RESULT(yes); AC_DEFINE(HAVE_CANBERRA),
|
||||
AC_MSG_RESULT(no); CFLAGS="$ac_save_CFLAGS"; LIBS="$ac_save_LIBS")
|
||||
|
||||
|
||||
dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
|
||||
|
||||
@@ -14,8 +14,8 @@ let lines = readfile('ex_cmds.h')
|
||||
let idx = 0
|
||||
while idx < len(lines)
|
||||
let line = lines[idx]
|
||||
if line =~ '^EX(CMD_'
|
||||
let m = matchlist(line, '^EX(CMD_\S*,\s*"\([a-z][^"]*\)"')
|
||||
if line =~ '^EXCMD(CMD_'
|
||||
let m = matchlist(line, '^EXCMD(CMD_\S*,\s*"\([a-z][^"]*\)"')
|
||||
if len(m) >= 2
|
||||
let cmds += [ m[1] ]
|
||||
else
|
||||
@@ -27,18 +27,18 @@ while idx < len(lines)
|
||||
let idx += 1
|
||||
let addr_type = lines[idx]
|
||||
|
||||
if flags =~ '\<RANGE\>'
|
||||
if flags =~ '\<EX_RANGE\>'
|
||||
if addr_type =~ 'ADDR_NONE'
|
||||
echoerr 'ex_cmds.h:' .. (idx - 1) .. ': Using RANGE with ADDR_NONE: ' .. line
|
||||
echoerr 'ex_cmds.h:' .. (idx - 1) .. ': Using EX_RANGE with ADDR_NONE: ' .. line
|
||||
endif
|
||||
else
|
||||
if addr_type !~ 'ADDR_NONE'
|
||||
echoerr 'ex_cmds.h:' .. (idx - 1) .. ': Missing ADDR_NONE: ' .. line
|
||||
echoerr 'ex_cmds.h:' .. (idx - 1) .. ': Missing ADDR_NONE: ' .. line
|
||||
endif
|
||||
endif
|
||||
|
||||
if flags =~ '\<DFLALL\>' && (addr_type =~ 'ADDR_OTHER' || addr_type =~ 'ADDR_NONE')
|
||||
echoerr 'ex_cmds.h:' .. (idx - 1) .. ': Missing misplaced DFLALL: ' .. line
|
||||
if flags =~ '\<EX_DFLALL\>' && (addr_type =~ 'ADDR_OTHER' || addr_type =~ 'ADDR_NONE')
|
||||
echoerr 'ex_cmds.h:' .. (idx - 1) .. ': Missing misplaced EX_DFLALL: ' .. line
|
||||
endif
|
||||
endif
|
||||
let idx += 1
|
||||
|
||||
+50
-4
@@ -28,7 +28,7 @@ dict_alloc(void)
|
||||
{
|
||||
dict_T *d;
|
||||
|
||||
d = ALLOC_ONE(dict_T);
|
||||
d = ALLOC_CLEAR_ONE(dict_T);
|
||||
if (d != NULL)
|
||||
{
|
||||
/* Add the dict to the list of dicts for garbage collection. */
|
||||
@@ -447,6 +447,27 @@ dict_add_list(dict_T *d, char *key, list_T *list)
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Add a callback to dictionary "d".
|
||||
* Returns FAIL when out of memory and when key already exists.
|
||||
*/
|
||||
int
|
||||
dict_add_callback(dict_T *d, char *key, callback_T *cb)
|
||||
{
|
||||
dictitem_T *item;
|
||||
|
||||
item = dictitem_alloc((char_u *)key);
|
||||
if (item == NULL)
|
||||
return FAIL;
|
||||
put_callback(cb, &item->di_tv);
|
||||
if (dict_add(d, item) == FAIL)
|
||||
{
|
||||
dictitem_free(item);
|
||||
return FAIL;
|
||||
}
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initializes "iter" for iterating over dictionary items with
|
||||
* dict_iterate_next().
|
||||
@@ -687,12 +708,34 @@ dict2string(typval_T *tv, int copyID, int restore_copyID)
|
||||
return (char_u *)ga.ga_data;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the key for *{key: val} into "tv" and advance "arg".
|
||||
* Return FAIL when there is no valid key.
|
||||
*/
|
||||
static int
|
||||
get_literal_key(char_u **arg, typval_T *tv)
|
||||
{
|
||||
char_u *p;
|
||||
|
||||
if (!ASCII_ISALNUM(**arg) && **arg != '_' && **arg != '-')
|
||||
return FAIL;
|
||||
|
||||
for (p = *arg; ASCII_ISALNUM(*p) || *p == '_' || *p == '-'; ++p)
|
||||
;
|
||||
tv->v_type = VAR_STRING;
|
||||
tv->vval.v_string = vim_strnsave(*arg, (int)(p - *arg));
|
||||
|
||||
*arg = skipwhite(p);
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate a variable for a Dictionary and fill it from "*arg".
|
||||
* "literal" is TRUE for *{key: val}
|
||||
* Return OK or FAIL. Returns NOTDONE for {expr}.
|
||||
*/
|
||||
int
|
||||
dict_get_tv(char_u **arg, typval_T *rettv, int evaluate)
|
||||
dict_get_tv(char_u **arg, typval_T *rettv, int evaluate, int literal)
|
||||
{
|
||||
dict_T *d = NULL;
|
||||
typval_T tvkey;
|
||||
@@ -729,8 +772,11 @@ dict_get_tv(char_u **arg, typval_T *rettv, int evaluate)
|
||||
*arg = skipwhite(*arg + 1);
|
||||
while (**arg != '}' && **arg != NUL)
|
||||
{
|
||||
if (eval1(arg, &tvkey, evaluate) == FAIL) /* recursive! */
|
||||
if ((literal
|
||||
? get_literal_key(arg, &tvkey)
|
||||
: eval1(arg, &tvkey, evaluate)) == FAIL) // recursive!
|
||||
goto failret;
|
||||
|
||||
if (**arg != ':')
|
||||
{
|
||||
semsg(_("E720: Missing colon in Dictionary: %s"), *arg);
|
||||
@@ -790,7 +836,7 @@ dict_get_tv(char_u **arg, typval_T *rettv, int evaluate)
|
||||
{
|
||||
semsg(_("E723: Missing end of Dictionary '}': %s"), *arg);
|
||||
failret:
|
||||
if (evaluate)
|
||||
if (d != NULL)
|
||||
dict_free(d);
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
+1
-1
@@ -2378,7 +2378,7 @@ ex_loadkeymap(exarg_T *eap)
|
||||
*/
|
||||
for (;;)
|
||||
{
|
||||
line = eap->getline(0, eap->cookie, 0);
|
||||
line = eap->getline(0, eap->cookie, 0, TRUE);
|
||||
if (line == NULL)
|
||||
break;
|
||||
|
||||
|
||||
+1
-1
@@ -5280,7 +5280,7 @@ ins_mousescroll(int dir)
|
||||
col = mouse_col;
|
||||
|
||||
/* find the window at the pointer coordinates */
|
||||
wp = mouse_find_win(&row, &col);
|
||||
wp = mouse_find_win(&row, &col, FAIL_POPUP);
|
||||
if (wp == NULL)
|
||||
return;
|
||||
curwin = wp;
|
||||
|
||||
+244
-553
File diff suppressed because it is too large
Load Diff
+75
-1334
File diff suppressed because it is too large
Load Diff
+25
-25
@@ -8,29 +8,29 @@ static const unsigned short cmdidxs1[26] =
|
||||
/* a */ 0,
|
||||
/* b */ 19,
|
||||
/* c */ 42,
|
||||
/* d */ 107,
|
||||
/* e */ 129,
|
||||
/* f */ 149,
|
||||
/* g */ 165,
|
||||
/* h */ 171,
|
||||
/* i */ 180,
|
||||
/* j */ 198,
|
||||
/* k */ 200,
|
||||
/* l */ 205,
|
||||
/* m */ 267,
|
||||
/* n */ 287,
|
||||
/* o */ 307,
|
||||
/* p */ 319,
|
||||
/* q */ 358,
|
||||
/* r */ 361,
|
||||
/* s */ 381,
|
||||
/* t */ 449,
|
||||
/* u */ 494,
|
||||
/* v */ 505,
|
||||
/* w */ 523,
|
||||
/* x */ 537,
|
||||
/* y */ 547,
|
||||
/* z */ 548
|
||||
/* d */ 108,
|
||||
/* e */ 130,
|
||||
/* f */ 150,
|
||||
/* g */ 166,
|
||||
/* h */ 172,
|
||||
/* i */ 181,
|
||||
/* j */ 199,
|
||||
/* k */ 201,
|
||||
/* l */ 206,
|
||||
/* m */ 268,
|
||||
/* n */ 288,
|
||||
/* o */ 308,
|
||||
/* p */ 320,
|
||||
/* q */ 359,
|
||||
/* r */ 362,
|
||||
/* s */ 382,
|
||||
/* t */ 450,
|
||||
/* u */ 495,
|
||||
/* v */ 506,
|
||||
/* w */ 524,
|
||||
/* x */ 538,
|
||||
/* y */ 548,
|
||||
/* z */ 549
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -43,7 +43,7 @@ static const unsigned char cmdidxs2[26][26] =
|
||||
{ /* a b c d e f g h i j k l m n o p q r s t u v w x y z */
|
||||
/* a */ { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 0, 0, 0, 7, 15, 0, 16, 0, 0, 0, 0, 0 },
|
||||
/* b */ { 2, 0, 0, 4, 5, 7, 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 0, 13, 0, 0, 0, 0, 22, 0, 0, 0 },
|
||||
/* c */ { 3, 12, 16, 18, 20, 22, 25, 0, 0, 0, 0, 33, 37, 40, 46, 55, 57, 58, 59, 0, 61, 0, 64, 0, 0, 0 },
|
||||
/* c */ { 3, 12, 16, 18, 20, 22, 25, 0, 0, 0, 0, 33, 37, 40, 46, 56, 58, 59, 60, 0, 62, 0, 65, 0, 0, 0 },
|
||||
/* d */ { 0, 0, 0, 0, 0, 0, 0, 0, 6, 15, 0, 16, 0, 0, 17, 0, 0, 19, 20, 0, 0, 0, 0, 0, 0, 0 },
|
||||
/* e */ { 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0 },
|
||||
/* f */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0 },
|
||||
@@ -69,4 +69,4 @@ static const unsigned char cmdidxs2[26][26] =
|
||||
/* z */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
static const int command_count = 561;
|
||||
static const int command_count = 562;
|
||||
|
||||
+28
-14
@@ -3186,7 +3186,7 @@ do_write(exarg_T *eap)
|
||||
|
||||
ffname = eap->arg;
|
||||
#ifdef FEAT_BROWSE
|
||||
if (cmdmod.browse)
|
||||
if (cmdmod.browse && !exiting)
|
||||
{
|
||||
browse_file = do_browse(BROWSE_SAVE, (char_u *)_("Save As"), ffname,
|
||||
NULL, NULL, NULL, curbuf);
|
||||
@@ -3399,7 +3399,7 @@ check_overwrite(
|
||||
|| (buf->b_flags & BF_READERR))
|
||||
&& !p_wa
|
||||
#ifdef FEAT_QUICKFIX
|
||||
&& !bt_nofile(buf)
|
||||
&& !bt_nofilename(buf)
|
||||
#endif
|
||||
&& vim_fexists(ffname))
|
||||
{
|
||||
@@ -3818,7 +3818,7 @@ do_ecmd(
|
||||
else
|
||||
{
|
||||
#ifdef FEAT_BROWSE
|
||||
if (cmdmod.browse)
|
||||
if (cmdmod.browse && !exiting)
|
||||
{
|
||||
if (
|
||||
# ifdef FEAT_GUI
|
||||
@@ -4540,7 +4540,7 @@ ex_append(exarg_T *eap)
|
||||
#ifdef FEAT_EVAL
|
||||
eap->cstack->cs_looplevel > 0 ? -1 :
|
||||
#endif
|
||||
NUL, eap->cookie, indent);
|
||||
NUL, eap->cookie, indent, TRUE);
|
||||
State = save_State;
|
||||
}
|
||||
lines_left = Rows - 1;
|
||||
@@ -5388,7 +5388,7 @@ do_sub(exarg_T *eap)
|
||||
for ( ; i <= (long)ec; ++i)
|
||||
msg_putchar('^');
|
||||
|
||||
resp = getexmodeline('?', NULL, 0);
|
||||
resp = getexmodeline('?', NULL, 0, TRUE);
|
||||
if (resp != NULL)
|
||||
{
|
||||
typed = *resp;
|
||||
@@ -6270,9 +6270,20 @@ prepare_tagpreview(
|
||||
*/
|
||||
if (!curwin->w_p_pvw)
|
||||
{
|
||||
FOR_ALL_WINDOWS(wp)
|
||||
if (wp->w_p_pvw)
|
||||
break;
|
||||
# ifdef FEAT_TEXT_PROP
|
||||
if (*p_pvp != NUL)
|
||||
{
|
||||
wp = popup_find_preview_window();
|
||||
if (wp != NULL)
|
||||
popup_set_wantpos(wp);
|
||||
}
|
||||
else
|
||||
# endif
|
||||
{
|
||||
FOR_ALL_WINDOWS(wp)
|
||||
if (wp->w_p_pvw)
|
||||
break;
|
||||
}
|
||||
if (wp != NULL)
|
||||
win_enter(wp, undo_sync);
|
||||
else
|
||||
@@ -6280,18 +6291,21 @@ prepare_tagpreview(
|
||||
/*
|
||||
* There is no preview window open yet. Create one.
|
||||
*/
|
||||
if (win_split(g_do_tagpreview > 0 ? g_do_tagpreview : 0, 0)
|
||||
== FAIL)
|
||||
# ifdef FEAT_TEXT_PROP
|
||||
if (*p_pvp != NUL)
|
||||
return popup_create_preview_window();
|
||||
# endif
|
||||
if (win_split(g_do_tagpreview > 0 ? g_do_tagpreview : 0, 0) == FAIL)
|
||||
return FALSE;
|
||||
curwin->w_p_pvw = TRUE;
|
||||
curwin->w_p_wfh = TRUE;
|
||||
RESET_BINDING(curwin); /* don't take over 'scrollbind'
|
||||
and 'cursorbind' */
|
||||
RESET_BINDING(curwin); // don't take over 'scrollbind'
|
||||
// and 'cursorbind'
|
||||
# ifdef FEAT_DIFF
|
||||
curwin->w_p_diff = FALSE; /* no 'diff' */
|
||||
curwin->w_p_diff = FALSE; // no 'diff'
|
||||
# endif
|
||||
# ifdef FEAT_FOLDING
|
||||
curwin->w_p_fdc = 0; /* no 'foldcolumn' */
|
||||
curwin->w_p_fdc = 0; // no 'foldcolumn'
|
||||
# endif
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+1756
-1758
File diff suppressed because it is too large
Load Diff
+40
-743
@@ -16,215 +16,7 @@
|
||||
|
||||
static void cmd_source(char_u *fname, exarg_T *eap);
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
/* Growarray to store info about already sourced scripts.
|
||||
* For Unix also store the dev/ino, so that we don't have to stat() each
|
||||
* script when going through the list. */
|
||||
typedef struct scriptitem_S
|
||||
{
|
||||
char_u *sn_name;
|
||||
# ifdef UNIX
|
||||
int sn_dev_valid;
|
||||
dev_t sn_dev;
|
||||
ino_t sn_ino;
|
||||
# endif
|
||||
# ifdef FEAT_PROFILE
|
||||
int sn_prof_on; /* TRUE when script is/was profiled */
|
||||
int sn_pr_force; /* forceit: profile functions in this script */
|
||||
proftime_T sn_pr_child; /* time set when going into first child */
|
||||
int sn_pr_nest; /* nesting for sn_pr_child */
|
||||
/* profiling the script as a whole */
|
||||
int sn_pr_count; /* nr of times sourced */
|
||||
proftime_T sn_pr_total; /* time spent in script + children */
|
||||
proftime_T sn_pr_self; /* time spent in script itself */
|
||||
proftime_T sn_pr_start; /* time at script start */
|
||||
proftime_T sn_pr_children; /* time in children after script start */
|
||||
/* profiling the script per line */
|
||||
garray_T sn_prl_ga; /* things stored for every line */
|
||||
proftime_T sn_prl_start; /* start time for current line */
|
||||
proftime_T sn_prl_children; /* time spent in children for this line */
|
||||
proftime_T sn_prl_wait; /* wait start time for current line */
|
||||
int sn_prl_idx; /* index of line being timed; -1 if none */
|
||||
int sn_prl_execed; /* line being timed was executed */
|
||||
# endif
|
||||
} scriptitem_T;
|
||||
|
||||
static garray_T script_items = {0, 0, sizeof(scriptitem_T), 4, NULL};
|
||||
#define SCRIPT_ITEM(id) (((scriptitem_T *)script_items.ga_data)[(id) - 1])
|
||||
|
||||
# ifdef FEAT_PROFILE
|
||||
/* Struct used in sn_prl_ga for every line of a script. */
|
||||
typedef struct sn_prl_S
|
||||
{
|
||||
int snp_count; /* nr of times line was executed */
|
||||
proftime_T sn_prl_total; /* time spent in a line + children */
|
||||
proftime_T sn_prl_self; /* time spent in a line itself */
|
||||
} sn_prl_T;
|
||||
|
||||
# define PRL_ITEM(si, idx) (((sn_prl_T *)(si)->sn_prl_ga.ga_data)[(idx)])
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_EVAL) || defined(PROTO)
|
||||
# if defined(FEAT_PROFILE) || defined(FEAT_RELTIME) || defined(PROTO)
|
||||
/*
|
||||
* Store the current time in "tm".
|
||||
*/
|
||||
void
|
||||
profile_start(proftime_T *tm)
|
||||
{
|
||||
# ifdef MSWIN
|
||||
QueryPerformanceCounter(tm);
|
||||
# else
|
||||
gettimeofday(tm, NULL);
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Compute the elapsed time from "tm" till now and store in "tm".
|
||||
*/
|
||||
void
|
||||
profile_end(proftime_T *tm)
|
||||
{
|
||||
proftime_T now;
|
||||
|
||||
# ifdef MSWIN
|
||||
QueryPerformanceCounter(&now);
|
||||
tm->QuadPart = now.QuadPart - tm->QuadPart;
|
||||
# else
|
||||
gettimeofday(&now, NULL);
|
||||
tm->tv_usec = now.tv_usec - tm->tv_usec;
|
||||
tm->tv_sec = now.tv_sec - tm->tv_sec;
|
||||
if (tm->tv_usec < 0)
|
||||
{
|
||||
tm->tv_usec += 1000000;
|
||||
--tm->tv_sec;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Subtract the time "tm2" from "tm".
|
||||
*/
|
||||
void
|
||||
profile_sub(proftime_T *tm, proftime_T *tm2)
|
||||
{
|
||||
# ifdef MSWIN
|
||||
tm->QuadPart -= tm2->QuadPart;
|
||||
# else
|
||||
tm->tv_usec -= tm2->tv_usec;
|
||||
tm->tv_sec -= tm2->tv_sec;
|
||||
if (tm->tv_usec < 0)
|
||||
{
|
||||
tm->tv_usec += 1000000;
|
||||
--tm->tv_sec;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a string that represents the time in "tm".
|
||||
* Uses a static buffer!
|
||||
*/
|
||||
char *
|
||||
profile_msg(proftime_T *tm)
|
||||
{
|
||||
static char buf[50];
|
||||
|
||||
# ifdef MSWIN
|
||||
LARGE_INTEGER fr;
|
||||
|
||||
QueryPerformanceFrequency(&fr);
|
||||
sprintf(buf, "%10.6lf", (double)tm->QuadPart / (double)fr.QuadPart);
|
||||
# else
|
||||
sprintf(buf, "%3ld.%06ld", (long)tm->tv_sec, (long)tm->tv_usec);
|
||||
# endif
|
||||
return buf;
|
||||
}
|
||||
|
||||
# if defined(FEAT_FLOAT) || defined(PROTO)
|
||||
/*
|
||||
* Return a float that represents the time in "tm".
|
||||
*/
|
||||
float_T
|
||||
profile_float(proftime_T *tm)
|
||||
{
|
||||
# ifdef MSWIN
|
||||
LARGE_INTEGER fr;
|
||||
|
||||
QueryPerformanceFrequency(&fr);
|
||||
return (float_T)tm->QuadPart / (float_T)fr.QuadPart;
|
||||
# else
|
||||
return (float_T)tm->tv_sec + (float_T)tm->tv_usec / 1000000.0;
|
||||
# endif
|
||||
}
|
||||
# endif
|
||||
|
||||
/*
|
||||
* Put the time "msec" past now in "tm".
|
||||
*/
|
||||
void
|
||||
profile_setlimit(long msec, proftime_T *tm)
|
||||
{
|
||||
if (msec <= 0) /* no limit */
|
||||
profile_zero(tm);
|
||||
else
|
||||
{
|
||||
# ifdef MSWIN
|
||||
LARGE_INTEGER fr;
|
||||
|
||||
QueryPerformanceCounter(tm);
|
||||
QueryPerformanceFrequency(&fr);
|
||||
tm->QuadPart += (LONGLONG)((double)msec / 1000.0 * (double)fr.QuadPart);
|
||||
# else
|
||||
long usec;
|
||||
|
||||
gettimeofday(tm, NULL);
|
||||
usec = (long)tm->tv_usec + (long)msec * 1000;
|
||||
tm->tv_usec = usec % 1000000L;
|
||||
tm->tv_sec += usec / 1000000L;
|
||||
# endif
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if the current time is past "tm".
|
||||
*/
|
||||
int
|
||||
profile_passed_limit(proftime_T *tm)
|
||||
{
|
||||
proftime_T now;
|
||||
|
||||
# ifdef MSWIN
|
||||
if (tm->QuadPart == 0) /* timer was not set */
|
||||
return FALSE;
|
||||
QueryPerformanceCounter(&now);
|
||||
return (now.QuadPart > tm->QuadPart);
|
||||
# else
|
||||
if (tm->tv_sec == 0) /* timer was not set */
|
||||
return FALSE;
|
||||
gettimeofday(&now, NULL);
|
||||
return (now.tv_sec > tm->tv_sec
|
||||
|| (now.tv_sec == tm->tv_sec && now.tv_usec > tm->tv_usec));
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Set the time in "tm" to zero.
|
||||
*/
|
||||
void
|
||||
profile_zero(proftime_T *tm)
|
||||
{
|
||||
# ifdef MSWIN
|
||||
tm->QuadPart = 0;
|
||||
# else
|
||||
tm->tv_usec = 0;
|
||||
tm->tv_sec = 0;
|
||||
# endif
|
||||
}
|
||||
|
||||
# endif /* FEAT_PROFILE || FEAT_RELTIME */
|
||||
|
||||
# if defined(FEAT_TIMERS) || defined(PROTO)
|
||||
static timer_T *first_timer = NULL;
|
||||
static long last_timer_id = 0;
|
||||
@@ -367,10 +159,11 @@ check_due_timer(void)
|
||||
int save_vgetc_busy = vgetc_busy;
|
||||
int save_did_emsg = did_emsg;
|
||||
int save_called_emsg = called_emsg;
|
||||
int save_must_redraw = must_redraw;
|
||||
int save_trylevel = trylevel;
|
||||
int save_must_redraw = must_redraw;
|
||||
int save_trylevel = trylevel;
|
||||
int save_did_throw = did_throw;
|
||||
int save_ex_pressedreturn = get_pressedreturn();
|
||||
int save_may_garbage_collect = may_garbage_collect;
|
||||
except_T *save_current_exception = current_exception;
|
||||
vimvars_save_T vvsave;
|
||||
|
||||
@@ -385,7 +178,9 @@ check_due_timer(void)
|
||||
trylevel = 0;
|
||||
did_throw = FALSE;
|
||||
current_exception = NULL;
|
||||
may_garbage_collect = FALSE;
|
||||
save_vimvars(&vvsave);
|
||||
|
||||
timer->tr_firing = TRUE;
|
||||
timer_callback(timer);
|
||||
timer->tr_firing = FALSE;
|
||||
@@ -407,6 +202,7 @@ check_due_timer(void)
|
||||
must_redraw = must_redraw > save_must_redraw
|
||||
? must_redraw : save_must_redraw;
|
||||
set_pressedreturn(save_ex_pressedreturn);
|
||||
may_garbage_collect = save_may_garbage_collect;
|
||||
|
||||
/* Only fire the timer again if it repeats and stop_timer() wasn't
|
||||
* called while inside the callback (tr_id == -1). */
|
||||
@@ -566,7 +362,7 @@ set_ref_in_timer(int copyID)
|
||||
timer_T *timer;
|
||||
typval_T tv;
|
||||
|
||||
for (timer = first_timer; timer != NULL; timer = timer->tr_next)
|
||||
for (timer = first_timer; !abort && timer != NULL; timer = timer->tr_next)
|
||||
{
|
||||
if (timer->tr_callback.cb_partial != NULL)
|
||||
{
|
||||
@@ -599,433 +395,6 @@ timer_free_all()
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#if defined(FEAT_SYN_HL) && defined(FEAT_RELTIME) && defined(FEAT_FLOAT) && defined(FEAT_PROFILE)
|
||||
# if defined(HAVE_MATH_H)
|
||||
# include <math.h>
|
||||
# endif
|
||||
|
||||
/*
|
||||
* Divide the time "tm" by "count" and store in "tm2".
|
||||
*/
|
||||
void
|
||||
profile_divide(proftime_T *tm, int count, proftime_T *tm2)
|
||||
{
|
||||
if (count == 0)
|
||||
profile_zero(tm2);
|
||||
else
|
||||
{
|
||||
# ifdef MSWIN
|
||||
tm2->QuadPart = tm->QuadPart / count;
|
||||
# else
|
||||
double usec = (tm->tv_sec * 1000000.0 + tm->tv_usec) / count;
|
||||
|
||||
tm2->tv_sec = floor(usec / 1000000.0);
|
||||
tm2->tv_usec = vim_round(usec - (tm2->tv_sec * 1000000.0));
|
||||
# endif
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
# if defined(FEAT_PROFILE) || defined(PROTO)
|
||||
/*
|
||||
* Functions for profiling.
|
||||
*/
|
||||
static void script_dump_profile(FILE *fd);
|
||||
static proftime_T prof_wait_time;
|
||||
|
||||
/*
|
||||
* Add the time "tm2" to "tm".
|
||||
*/
|
||||
void
|
||||
profile_add(proftime_T *tm, proftime_T *tm2)
|
||||
{
|
||||
# ifdef MSWIN
|
||||
tm->QuadPart += tm2->QuadPart;
|
||||
# else
|
||||
tm->tv_usec += tm2->tv_usec;
|
||||
tm->tv_sec += tm2->tv_sec;
|
||||
if (tm->tv_usec >= 1000000)
|
||||
{
|
||||
tm->tv_usec -= 1000000;
|
||||
++tm->tv_sec;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Add the "self" time from the total time and the children's time.
|
||||
*/
|
||||
void
|
||||
profile_self(proftime_T *self, proftime_T *total, proftime_T *children)
|
||||
{
|
||||
/* Check that the result won't be negative. Can happen with recursive
|
||||
* calls. */
|
||||
#ifdef MSWIN
|
||||
if (total->QuadPart <= children->QuadPart)
|
||||
return;
|
||||
#else
|
||||
if (total->tv_sec < children->tv_sec
|
||||
|| (total->tv_sec == children->tv_sec
|
||||
&& total->tv_usec <= children->tv_usec))
|
||||
return;
|
||||
#endif
|
||||
profile_add(self, total);
|
||||
profile_sub(self, children);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the current waittime.
|
||||
*/
|
||||
void
|
||||
profile_get_wait(proftime_T *tm)
|
||||
{
|
||||
*tm = prof_wait_time;
|
||||
}
|
||||
|
||||
/*
|
||||
* Subtract the passed waittime since "tm" from "tma".
|
||||
*/
|
||||
void
|
||||
profile_sub_wait(proftime_T *tm, proftime_T *tma)
|
||||
{
|
||||
proftime_T tm3 = prof_wait_time;
|
||||
|
||||
profile_sub(&tm3, tm);
|
||||
profile_sub(tma, &tm3);
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE if "tm1" and "tm2" are equal.
|
||||
*/
|
||||
int
|
||||
profile_equal(proftime_T *tm1, proftime_T *tm2)
|
||||
{
|
||||
# ifdef MSWIN
|
||||
return (tm1->QuadPart == tm2->QuadPart);
|
||||
# else
|
||||
return (tm1->tv_usec == tm2->tv_usec && tm1->tv_sec == tm2->tv_sec);
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Return <0, 0 or >0 if "tm1" < "tm2", "tm1" == "tm2" or "tm1" > "tm2"
|
||||
*/
|
||||
int
|
||||
profile_cmp(const proftime_T *tm1, const proftime_T *tm2)
|
||||
{
|
||||
# ifdef MSWIN
|
||||
return (int)(tm2->QuadPart - tm1->QuadPart);
|
||||
# else
|
||||
if (tm1->tv_sec == tm2->tv_sec)
|
||||
return tm2->tv_usec - tm1->tv_usec;
|
||||
return tm2->tv_sec - tm1->tv_sec;
|
||||
# endif
|
||||
}
|
||||
|
||||
static char_u *profile_fname = NULL;
|
||||
static proftime_T pause_time;
|
||||
|
||||
/*
|
||||
* ":profile cmd args"
|
||||
*/
|
||||
void
|
||||
ex_profile(exarg_T *eap)
|
||||
{
|
||||
char_u *e;
|
||||
int len;
|
||||
|
||||
e = skiptowhite(eap->arg);
|
||||
len = (int)(e - eap->arg);
|
||||
e = skipwhite(e);
|
||||
|
||||
if (len == 5 && STRNCMP(eap->arg, "start", 5) == 0 && *e != NUL)
|
||||
{
|
||||
vim_free(profile_fname);
|
||||
profile_fname = expand_env_save_opt(e, TRUE);
|
||||
do_profiling = PROF_YES;
|
||||
profile_zero(&prof_wait_time);
|
||||
set_vim_var_nr(VV_PROFILING, 1L);
|
||||
}
|
||||
else if (do_profiling == PROF_NONE)
|
||||
emsg(_("E750: First use \":profile start {fname}\""));
|
||||
else if (STRCMP(eap->arg, "pause") == 0)
|
||||
{
|
||||
if (do_profiling == PROF_YES)
|
||||
profile_start(&pause_time);
|
||||
do_profiling = PROF_PAUSED;
|
||||
}
|
||||
else if (STRCMP(eap->arg, "continue") == 0)
|
||||
{
|
||||
if (do_profiling == PROF_PAUSED)
|
||||
{
|
||||
profile_end(&pause_time);
|
||||
profile_add(&prof_wait_time, &pause_time);
|
||||
}
|
||||
do_profiling = PROF_YES;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The rest is similar to ":breakadd". */
|
||||
ex_breakadd(eap);
|
||||
}
|
||||
}
|
||||
|
||||
/* Command line expansion for :profile. */
|
||||
static enum
|
||||
{
|
||||
PEXP_SUBCMD, /* expand :profile sub-commands */
|
||||
PEXP_FUNC /* expand :profile func {funcname} */
|
||||
} pexpand_what;
|
||||
|
||||
static char *pexpand_cmds[] = {
|
||||
"start",
|
||||
#define PROFCMD_START 0
|
||||
"pause",
|
||||
#define PROFCMD_PAUSE 1
|
||||
"continue",
|
||||
#define PROFCMD_CONTINUE 2
|
||||
"func",
|
||||
#define PROFCMD_FUNC 3
|
||||
"file",
|
||||
#define PROFCMD_FILE 4
|
||||
NULL
|
||||
#define PROFCMD_LAST 5
|
||||
};
|
||||
|
||||
/*
|
||||
* Function given to ExpandGeneric() to obtain the profile command
|
||||
* specific expansion.
|
||||
*/
|
||||
char_u *
|
||||
get_profile_name(expand_T *xp UNUSED, int idx)
|
||||
{
|
||||
switch (pexpand_what)
|
||||
{
|
||||
case PEXP_SUBCMD:
|
||||
return (char_u *)pexpand_cmds[idx];
|
||||
/* case PEXP_FUNC: TODO */
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle command line completion for :profile command.
|
||||
*/
|
||||
void
|
||||
set_context_in_profile_cmd(expand_T *xp, char_u *arg)
|
||||
{
|
||||
char_u *end_subcmd;
|
||||
|
||||
/* Default: expand subcommands. */
|
||||
xp->xp_context = EXPAND_PROFILE;
|
||||
pexpand_what = PEXP_SUBCMD;
|
||||
xp->xp_pattern = arg;
|
||||
|
||||
end_subcmd = skiptowhite(arg);
|
||||
if (*end_subcmd == NUL)
|
||||
return;
|
||||
|
||||
if (end_subcmd - arg == 5 && STRNCMP(arg, "start", 5) == 0)
|
||||
{
|
||||
xp->xp_context = EXPAND_FILES;
|
||||
xp->xp_pattern = skipwhite(end_subcmd);
|
||||
return;
|
||||
}
|
||||
|
||||
/* TODO: expand function names after "func" */
|
||||
xp->xp_context = EXPAND_NOTHING;
|
||||
}
|
||||
|
||||
/*
|
||||
* Dump the profiling info.
|
||||
*/
|
||||
void
|
||||
profile_dump(void)
|
||||
{
|
||||
FILE *fd;
|
||||
|
||||
if (profile_fname != NULL)
|
||||
{
|
||||
fd = mch_fopen((char *)profile_fname, "w");
|
||||
if (fd == NULL)
|
||||
semsg(_(e_notopen), profile_fname);
|
||||
else
|
||||
{
|
||||
script_dump_profile(fd);
|
||||
func_dump_profile(fd);
|
||||
fclose(fd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Start profiling script "fp".
|
||||
*/
|
||||
static void
|
||||
script_do_profile(scriptitem_T *si)
|
||||
{
|
||||
si->sn_pr_count = 0;
|
||||
profile_zero(&si->sn_pr_total);
|
||||
profile_zero(&si->sn_pr_self);
|
||||
|
||||
ga_init2(&si->sn_prl_ga, sizeof(sn_prl_T), 100);
|
||||
si->sn_prl_idx = -1;
|
||||
si->sn_prof_on = TRUE;
|
||||
si->sn_pr_nest = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Save time when starting to invoke another script or function.
|
||||
*/
|
||||
void
|
||||
script_prof_save(
|
||||
proftime_T *tm) /* place to store wait time */
|
||||
{
|
||||
scriptitem_T *si;
|
||||
|
||||
if (current_sctx.sc_sid > 0 && current_sctx.sc_sid <= script_items.ga_len)
|
||||
{
|
||||
si = &SCRIPT_ITEM(current_sctx.sc_sid);
|
||||
if (si->sn_prof_on && si->sn_pr_nest++ == 0)
|
||||
profile_start(&si->sn_pr_child);
|
||||
}
|
||||
profile_get_wait(tm);
|
||||
}
|
||||
|
||||
/*
|
||||
* Count time spent in children after invoking another script or function.
|
||||
*/
|
||||
void
|
||||
script_prof_restore(proftime_T *tm)
|
||||
{
|
||||
scriptitem_T *si;
|
||||
|
||||
if (current_sctx.sc_sid > 0 && current_sctx.sc_sid <= script_items.ga_len)
|
||||
{
|
||||
si = &SCRIPT_ITEM(current_sctx.sc_sid);
|
||||
if (si->sn_prof_on && --si->sn_pr_nest == 0)
|
||||
{
|
||||
profile_end(&si->sn_pr_child);
|
||||
profile_sub_wait(tm, &si->sn_pr_child); /* don't count wait time */
|
||||
profile_add(&si->sn_pr_children, &si->sn_pr_child);
|
||||
profile_add(&si->sn_prl_children, &si->sn_pr_child);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static proftime_T inchar_time;
|
||||
|
||||
/*
|
||||
* Called when starting to wait for the user to type a character.
|
||||
*/
|
||||
void
|
||||
prof_inchar_enter(void)
|
||||
{
|
||||
profile_start(&inchar_time);
|
||||
}
|
||||
|
||||
/*
|
||||
* Called when finished waiting for the user to type a character.
|
||||
*/
|
||||
void
|
||||
prof_inchar_exit(void)
|
||||
{
|
||||
profile_end(&inchar_time);
|
||||
profile_add(&prof_wait_time, &inchar_time);
|
||||
}
|
||||
|
||||
/*
|
||||
* Dump the profiling results for all scripts in file "fd".
|
||||
*/
|
||||
static void
|
||||
script_dump_profile(FILE *fd)
|
||||
{
|
||||
int id;
|
||||
scriptitem_T *si;
|
||||
int i;
|
||||
FILE *sfd;
|
||||
sn_prl_T *pp;
|
||||
|
||||
for (id = 1; id <= script_items.ga_len; ++id)
|
||||
{
|
||||
si = &SCRIPT_ITEM(id);
|
||||
if (si->sn_prof_on)
|
||||
{
|
||||
fprintf(fd, "SCRIPT %s\n", si->sn_name);
|
||||
if (si->sn_pr_count == 1)
|
||||
fprintf(fd, "Sourced 1 time\n");
|
||||
else
|
||||
fprintf(fd, "Sourced %d times\n", si->sn_pr_count);
|
||||
fprintf(fd, "Total time: %s\n", profile_msg(&si->sn_pr_total));
|
||||
fprintf(fd, " Self time: %s\n", profile_msg(&si->sn_pr_self));
|
||||
fprintf(fd, "\n");
|
||||
fprintf(fd, "count total (s) self (s)\n");
|
||||
|
||||
sfd = mch_fopen((char *)si->sn_name, "r");
|
||||
if (sfd == NULL)
|
||||
fprintf(fd, "Cannot open file!\n");
|
||||
else
|
||||
{
|
||||
/* Keep going till the end of file, so that trailing
|
||||
* continuation lines are listed. */
|
||||
for (i = 0; ; ++i)
|
||||
{
|
||||
if (vim_fgets(IObuff, IOSIZE, sfd))
|
||||
break;
|
||||
/* When a line has been truncated, append NL, taking care
|
||||
* of multi-byte characters . */
|
||||
if (IObuff[IOSIZE - 2] != NUL && IObuff[IOSIZE - 2] != NL)
|
||||
{
|
||||
int n = IOSIZE - 2;
|
||||
|
||||
if (enc_utf8)
|
||||
{
|
||||
/* Move to the first byte of this char.
|
||||
* utf_head_off() doesn't work, because it checks
|
||||
* for a truncated character. */
|
||||
while (n > 0 && (IObuff[n] & 0xc0) == 0x80)
|
||||
--n;
|
||||
}
|
||||
else if (has_mbyte)
|
||||
n -= mb_head_off(IObuff, IObuff + n);
|
||||
IObuff[n] = NL;
|
||||
IObuff[n + 1] = NUL;
|
||||
}
|
||||
if (i < si->sn_prl_ga.ga_len
|
||||
&& (pp = &PRL_ITEM(si, i))->snp_count > 0)
|
||||
{
|
||||
fprintf(fd, "%5d ", pp->snp_count);
|
||||
if (profile_equal(&pp->sn_prl_total, &pp->sn_prl_self))
|
||||
fprintf(fd, " ");
|
||||
else
|
||||
fprintf(fd, "%s ", profile_msg(&pp->sn_prl_total));
|
||||
fprintf(fd, "%s ", profile_msg(&pp->sn_prl_self));
|
||||
}
|
||||
else
|
||||
fprintf(fd, " ");
|
||||
fprintf(fd, "%s", IObuff);
|
||||
}
|
||||
fclose(sfd);
|
||||
}
|
||||
fprintf(fd, "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE when a function defined in the current script should be
|
||||
* profiled.
|
||||
*/
|
||||
int
|
||||
prof_def_func(void)
|
||||
{
|
||||
if (current_sctx.sc_sid > 0)
|
||||
return SCRIPT_ITEM(current_sctx.sc_sid).sn_pr_force;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -1937,7 +1306,7 @@ do_argfile(exarg_T *eap, int argn)
|
||||
char_u *p;
|
||||
int old_arg_idx = curwin->w_arg_idx;
|
||||
|
||||
if (NOT_IN_POPUP_WINDOW)
|
||||
if (ERROR_IF_POPUP_WINDOW)
|
||||
return;
|
||||
if (argn < 0 || argn >= ARGCOUNT)
|
||||
{
|
||||
@@ -3338,20 +2707,21 @@ cmd_source(char_u *fname, exarg_T *eap)
|
||||
*/
|
||||
struct source_cookie
|
||||
{
|
||||
FILE *fp; /* opened file for sourcing */
|
||||
char_u *nextline; /* if not NULL: line that was read ahead */
|
||||
int finished; /* ":finish" used */
|
||||
FILE *fp; // opened file for sourcing
|
||||
char_u *nextline; // if not NULL: line that was read ahead
|
||||
linenr_T sourcing_lnum; // line number of the source file
|
||||
int finished; // ":finish" used
|
||||
#ifdef USE_CRNL
|
||||
int fileformat; /* EOL_UNKNOWN, EOL_UNIX or EOL_DOS */
|
||||
int error; /* TRUE if LF found after CR-LF */
|
||||
int fileformat; // EOL_UNKNOWN, EOL_UNIX or EOL_DOS
|
||||
int error; // TRUE if LF found after CR-LF
|
||||
#endif
|
||||
#ifdef FEAT_EVAL
|
||||
linenr_T breakpoint; /* next line with breakpoint or zero */
|
||||
char_u *fname; /* name of sourced file */
|
||||
int dbg_tick; /* debug_tick when breakpoint was set */
|
||||
int level; /* top nesting level of sourced file */
|
||||
linenr_T breakpoint; // next line with breakpoint or zero
|
||||
char_u *fname; // name of sourced file
|
||||
int dbg_tick; // debug_tick when breakpoint was set
|
||||
int level; // top nesting level of sourced file
|
||||
#endif
|
||||
vimconv_T conv; /* type of conversion */
|
||||
vimconv_T conv; // type of conversion
|
||||
};
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
@@ -3415,7 +2785,6 @@ fopen_noinh_readbin(char *filename)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* do_source: Read the file "fname" and execute its lines as EX commands.
|
||||
*
|
||||
@@ -3564,6 +2933,7 @@ do_source(
|
||||
#endif
|
||||
|
||||
cookie.nextline = NULL;
|
||||
cookie.sourcing_lnum = 0;
|
||||
cookie.finished = FALSE;
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
@@ -3684,7 +3054,7 @@ do_source(
|
||||
cookie.conv.vc_type = CONV_NONE; /* no conversion */
|
||||
|
||||
/* Read the first line so we can check for a UTF-8 BOM. */
|
||||
firstline = getsourceline(0, (void *)&cookie, 0);
|
||||
firstline = getsourceline(0, (void *)&cookie, 0, TRUE);
|
||||
if (firstline != NULL && STRLEN(firstline) >= 3 && firstline[0] == 0xef
|
||||
&& firstline[1] == 0xbb && firstline[2] == 0xbf)
|
||||
{
|
||||
@@ -3859,6 +3229,14 @@ free_scriptnames(void)
|
||||
|
||||
#endif
|
||||
|
||||
linenr_T
|
||||
get_sourced_lnum(char_u *(*fgetline)(int, void *, int, int), void *cookie)
|
||||
{
|
||||
return fgetline == getsourceline
|
||||
? ((struct source_cookie *)cookie)->sourcing_lnum
|
||||
: sourcing_lnum;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get one full line from a sourced file.
|
||||
* Called by do_cmdline() when it's called from do_source().
|
||||
@@ -3867,7 +3245,7 @@ free_scriptnames(void)
|
||||
* Return NULL for end-of-file or some error.
|
||||
*/
|
||||
char_u *
|
||||
getsourceline(int c UNUSED, void *cookie, int indent UNUSED)
|
||||
getsourceline(int c UNUSED, void *cookie, int indent UNUSED, int do_concat)
|
||||
{
|
||||
struct source_cookie *sp = (struct source_cookie *)cookie;
|
||||
char_u *line;
|
||||
@@ -3885,6 +3263,10 @@ getsourceline(int c UNUSED, void *cookie, int indent UNUSED)
|
||||
script_line_end();
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Set the current sourcing line number.
|
||||
sourcing_lnum = sp->sourcing_lnum + 1;
|
||||
|
||||
/*
|
||||
* Get current line. If there is a read-ahead line, use it, otherwise get
|
||||
* one now.
|
||||
@@ -3897,7 +3279,7 @@ getsourceline(int c UNUSED, void *cookie, int indent UNUSED)
|
||||
{
|
||||
line = sp->nextline;
|
||||
sp->nextline = NULL;
|
||||
++sourcing_lnum;
|
||||
++sp->sourcing_lnum;
|
||||
}
|
||||
#ifdef FEAT_PROFILE
|
||||
if (line != NULL && do_profiling == PROF_YES)
|
||||
@@ -3906,10 +3288,10 @@ getsourceline(int c UNUSED, void *cookie, int indent UNUSED)
|
||||
|
||||
/* Only concatenate lines starting with a \ when 'cpoptions' doesn't
|
||||
* contain the 'C' flag. */
|
||||
if (line != NULL && (vim_strchr(p_cpo, CPO_CONCAT) == NULL))
|
||||
if (line != NULL && do_concat && vim_strchr(p_cpo, CPO_CONCAT) == NULL)
|
||||
{
|
||||
/* compensate for the one line read-ahead */
|
||||
--sourcing_lnum;
|
||||
--sp->sourcing_lnum;
|
||||
|
||||
// Get the next line and concatenate it when it starts with a
|
||||
// backslash. We always need to read the next line, keep it in
|
||||
@@ -4000,7 +3382,7 @@ get_one_sourceline(struct source_cookie *sp)
|
||||
/*
|
||||
* Loop until there is a finished line (or end-of-file).
|
||||
*/
|
||||
sourcing_lnum++;
|
||||
++sp->sourcing_lnum;
|
||||
for (;;)
|
||||
{
|
||||
/* make room to read at least 120 (more) characters */
|
||||
@@ -4070,7 +3452,7 @@ get_one_sourceline(struct source_cookie *sp)
|
||||
;
|
||||
if ((len & 1) != (c & 1)) /* escaped NL, read more */
|
||||
{
|
||||
sourcing_lnum++;
|
||||
++sp->sourcing_lnum;
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -4091,91 +3473,6 @@ get_one_sourceline(struct source_cookie *sp)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#if defined(FEAT_PROFILE) || defined(PROTO)
|
||||
/*
|
||||
* Called when starting to read a script line.
|
||||
* "sourcing_lnum" must be correct!
|
||||
* When skipping lines it may not actually be executed, but we won't find out
|
||||
* until later and we need to store the time now.
|
||||
*/
|
||||
void
|
||||
script_line_start(void)
|
||||
{
|
||||
scriptitem_T *si;
|
||||
sn_prl_T *pp;
|
||||
|
||||
if (current_sctx.sc_sid <= 0 || current_sctx.sc_sid > script_items.ga_len)
|
||||
return;
|
||||
si = &SCRIPT_ITEM(current_sctx.sc_sid);
|
||||
if (si->sn_prof_on && sourcing_lnum >= 1)
|
||||
{
|
||||
/* Grow the array before starting the timer, so that the time spent
|
||||
* here isn't counted. */
|
||||
(void)ga_grow(&si->sn_prl_ga,
|
||||
(int)(sourcing_lnum - si->sn_prl_ga.ga_len));
|
||||
si->sn_prl_idx = sourcing_lnum - 1;
|
||||
while (si->sn_prl_ga.ga_len <= si->sn_prl_idx
|
||||
&& si->sn_prl_ga.ga_len < si->sn_prl_ga.ga_maxlen)
|
||||
{
|
||||
/* Zero counters for a line that was not used before. */
|
||||
pp = &PRL_ITEM(si, si->sn_prl_ga.ga_len);
|
||||
pp->snp_count = 0;
|
||||
profile_zero(&pp->sn_prl_total);
|
||||
profile_zero(&pp->sn_prl_self);
|
||||
++si->sn_prl_ga.ga_len;
|
||||
}
|
||||
si->sn_prl_execed = FALSE;
|
||||
profile_start(&si->sn_prl_start);
|
||||
profile_zero(&si->sn_prl_children);
|
||||
profile_get_wait(&si->sn_prl_wait);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Called when actually executing a function line.
|
||||
*/
|
||||
void
|
||||
script_line_exec(void)
|
||||
{
|
||||
scriptitem_T *si;
|
||||
|
||||
if (current_sctx.sc_sid <= 0 || current_sctx.sc_sid > script_items.ga_len)
|
||||
return;
|
||||
si = &SCRIPT_ITEM(current_sctx.sc_sid);
|
||||
if (si->sn_prof_on && si->sn_prl_idx >= 0)
|
||||
si->sn_prl_execed = TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Called when done with a script line.
|
||||
*/
|
||||
void
|
||||
script_line_end(void)
|
||||
{
|
||||
scriptitem_T *si;
|
||||
sn_prl_T *pp;
|
||||
|
||||
if (current_sctx.sc_sid <= 0 || current_sctx.sc_sid > script_items.ga_len)
|
||||
return;
|
||||
si = &SCRIPT_ITEM(current_sctx.sc_sid);
|
||||
if (si->sn_prof_on && si->sn_prl_idx >= 0
|
||||
&& si->sn_prl_idx < si->sn_prl_ga.ga_len)
|
||||
{
|
||||
if (si->sn_prl_execed)
|
||||
{
|
||||
pp = &PRL_ITEM(si, si->sn_prl_idx);
|
||||
++pp->snp_count;
|
||||
profile_end(&si->sn_prl_start);
|
||||
profile_sub_wait(&si->sn_prl_wait, &si->sn_prl_start);
|
||||
profile_add(&pp->sn_prl_total, &si->sn_prl_start);
|
||||
profile_self(&pp->sn_prl_self, &si->sn_prl_start,
|
||||
&si->sn_prl_children);
|
||||
}
|
||||
si->sn_prl_idx = -1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ":scriptencoding": Set encoding conversion for a sourced script.
|
||||
*/
|
||||
@@ -4285,7 +3582,7 @@ do_finish(exarg_T *eap, int reanimate)
|
||||
*/
|
||||
int
|
||||
source_finished(
|
||||
char_u *(*fgetline)(int, void *, int),
|
||||
char_u *(*fgetline)(int, void *, int, int),
|
||||
void *cookie)
|
||||
{
|
||||
return (getline_equal(fgetline, cookie, getsourceline)
|
||||
|
||||
+83
-75
@@ -20,9 +20,9 @@ static int ex_pressedreturn = FALSE;
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
static char_u *do_one_cmd(char_u **, int, struct condstack *, char_u *(*fgetline)(int, void *, int), void *cookie);
|
||||
static char_u *do_one_cmd(char_u **, int, struct condstack *, char_u *(*fgetline)(int, void *, int, int), void *cookie);
|
||||
#else
|
||||
static char_u *do_one_cmd(char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie);
|
||||
static char_u *do_one_cmd(char_u **, int, char_u *(*fgetline)(int, void *, int, int), void *cookie);
|
||||
static int if_level = 0; /* depth in :if */
|
||||
#endif
|
||||
static void free_cmdmod(void);
|
||||
@@ -297,6 +297,7 @@ static void ex_tag_cmd(exarg_T *eap, char_u *name);
|
||||
# define ex_endtry ex_ni
|
||||
# define ex_endfunction ex_ni
|
||||
# define ex_let ex_ni
|
||||
# define ex_const ex_ni
|
||||
# define ex_unlet ex_ni
|
||||
# define ex_lockvar ex_ni
|
||||
# define ex_unlockvar ex_ni
|
||||
@@ -436,11 +437,11 @@ struct loop_cookie
|
||||
int current_line; /* last read line from growarray */
|
||||
int repeating; /* TRUE when looping a second time */
|
||||
/* When "repeating" is FALSE use "getline" and "cookie" to get lines */
|
||||
char_u *(*getline)(int, void *, int);
|
||||
char_u *(*getline)(int, void *, int, int);
|
||||
void *cookie;
|
||||
};
|
||||
|
||||
static char_u *get_loop_line(int c, void *cookie, int indent);
|
||||
static char_u *get_loop_line(int c, void *cookie, int indent, int do_concat);
|
||||
static int store_loop_line(garray_T *gap, char_u *line);
|
||||
static void free_cmdlines(garray_T *gap);
|
||||
|
||||
@@ -624,7 +625,7 @@ do_cmdline_cmd(char_u *cmd)
|
||||
int
|
||||
do_cmdline(
|
||||
char_u *cmdline,
|
||||
char_u *(*fgetline)(int, void *, int),
|
||||
char_u *(*fgetline)(int, void *, int, int),
|
||||
void *cookie, /* argument for fgetline() */
|
||||
int flags)
|
||||
{
|
||||
@@ -649,7 +650,7 @@ do_cmdline(
|
||||
struct msglist *private_msg_list;
|
||||
|
||||
/* "fgetline" and "cookie" passed to do_one_cmd() */
|
||||
char_u *(*cmd_getline)(int, void *, int);
|
||||
char_u *(*cmd_getline)(int, void *, int, int);
|
||||
void *cmd_cookie;
|
||||
struct loop_cookie cmd_loop_cookie;
|
||||
void *real_cookie;
|
||||
@@ -899,7 +900,7 @@ do_cmdline(
|
||||
#else
|
||||
0
|
||||
#endif
|
||||
)) == NULL)
|
||||
, TRUE)) == NULL)
|
||||
{
|
||||
/* Don't call wait_return for aborted command line. The NULL
|
||||
* returned for the end of a sourced file or executed function
|
||||
@@ -1429,7 +1430,7 @@ do_cmdline(
|
||||
* Obtain a line when inside a ":while" or ":for" loop.
|
||||
*/
|
||||
static char_u *
|
||||
get_loop_line(int c, void *cookie, int indent)
|
||||
get_loop_line(int c, void *cookie, int indent, int do_concat)
|
||||
{
|
||||
struct loop_cookie *cp = (struct loop_cookie *)cookie;
|
||||
wcmd_T *wp;
|
||||
@@ -1442,9 +1443,9 @@ get_loop_line(int c, void *cookie, int indent)
|
||||
|
||||
/* First time inside the ":while"/":for": get line normally. */
|
||||
if (cp->getline == NULL)
|
||||
line = getcmdline(c, 0L, indent);
|
||||
line = getcmdline(c, 0L, indent, do_concat);
|
||||
else
|
||||
line = cp->getline(c, cp->cookie, indent);
|
||||
line = cp->getline(c, cp->cookie, indent, do_concat);
|
||||
if (line != NULL && store_loop_line(cp->lines_gap, line) == OK)
|
||||
++cp->current_line;
|
||||
|
||||
@@ -1492,12 +1493,12 @@ free_cmdlines(garray_T *gap)
|
||||
*/
|
||||
int
|
||||
getline_equal(
|
||||
char_u *(*fgetline)(int, void *, int),
|
||||
char_u *(*fgetline)(int, void *, int, int),
|
||||
void *cookie UNUSED, /* argument for fgetline() */
|
||||
char_u *(*func)(int, void *, int))
|
||||
char_u *(*func)(int, void *, int, int))
|
||||
{
|
||||
#ifdef FEAT_EVAL
|
||||
char_u *(*gp)(int, void *, int);
|
||||
char_u *(*gp)(int, void *, int, int);
|
||||
struct loop_cookie *cp;
|
||||
|
||||
/* When "fgetline" is "get_loop_line()" use the "cookie" to find the
|
||||
@@ -1522,11 +1523,11 @@ getline_equal(
|
||||
*/
|
||||
void *
|
||||
getline_cookie(
|
||||
char_u *(*fgetline)(int, void *, int) UNUSED,
|
||||
char_u *(*fgetline)(int, void *, int, int) UNUSED,
|
||||
void *cookie) /* argument for fgetline() */
|
||||
{
|
||||
#ifdef FEAT_EVAL
|
||||
char_u *(*gp)(int, void *, int);
|
||||
char_u *(*gp)(int, void *, int, int);
|
||||
struct loop_cookie *cp;
|
||||
|
||||
/* When "fgetline" is "get_loop_line()" use the "cookie" to find the
|
||||
@@ -1659,7 +1660,7 @@ do_one_cmd(
|
||||
#ifdef FEAT_EVAL
|
||||
struct condstack *cstack,
|
||||
#endif
|
||||
char_u *(*fgetline)(int, void *, int),
|
||||
char_u *(*fgetline)(int, void *, int, int),
|
||||
void *cookie) /* argument for fgetline() */
|
||||
{
|
||||
char_u *p;
|
||||
@@ -1849,7 +1850,7 @@ do_one_cmd(
|
||||
if (*ea.cmd == '|' || (exmode_active && ea.line1 != ea.line2))
|
||||
{
|
||||
ea.cmdidx = CMD_print;
|
||||
ea.argt = RANGE+COUNT+TRLBAR;
|
||||
ea.argt = EX_RANGE+EX_COUNT+EX_TRLBAR;
|
||||
if ((errormsg = invalid_range(&ea)) == NULL)
|
||||
{
|
||||
correct_range(&ea);
|
||||
@@ -1981,26 +1982,26 @@ do_one_cmd(
|
||||
if (!ea.skip)
|
||||
{
|
||||
#ifdef HAVE_SANDBOX
|
||||
if (sandbox != 0 && !(ea.argt & SBOXOK))
|
||||
if (sandbox != 0 && !(ea.argt & EX_SBOXOK))
|
||||
{
|
||||
// Command not allowed in sandbox.
|
||||
errormsg = _(e_sandbox);
|
||||
goto doend;
|
||||
}
|
||||
#endif
|
||||
if (restricted != 0 && (ea.argt & RESTRICT))
|
||||
if (restricted != 0 && (ea.argt & EX_RESTRICT))
|
||||
{
|
||||
errormsg = _("E981: Command not allowed in rvim");
|
||||
goto doend;
|
||||
}
|
||||
if (!curbuf->b_p_ma && (ea.argt & MODIFY))
|
||||
if (!curbuf->b_p_ma && (ea.argt & EX_MODIFY))
|
||||
{
|
||||
/* Command not allowed in non-'modifiable' buffer */
|
||||
errormsg = _(e_modifiable);
|
||||
goto doend;
|
||||
}
|
||||
|
||||
if (text_locked() && !(ea.argt & CMDWIN)
|
||||
if (text_locked() && !(ea.argt & EX_CMDWIN)
|
||||
&& !IS_USER_CMDIDX(ea.cmdidx))
|
||||
{
|
||||
/* Command not allowed when editing the command line. */
|
||||
@@ -2012,7 +2013,7 @@ do_one_cmd(
|
||||
* Do allow ":checktime" (it is postponed).
|
||||
* Do allow ":edit" (check for an argument later).
|
||||
* Do allow ":file" with no arguments (check for an argument later). */
|
||||
if (!(ea.argt & CMDWIN)
|
||||
if (!(ea.argt & EX_CMDWIN)
|
||||
&& ea.cmdidx != CMD_checktime
|
||||
&& ea.cmdidx != CMD_edit
|
||||
&& ea.cmdidx != CMD_file
|
||||
@@ -2020,7 +2021,7 @@ do_one_cmd(
|
||||
&& curbuf_locked())
|
||||
goto doend;
|
||||
|
||||
if (!ni && !(ea.argt & RANGE) && ea.addr_count > 0)
|
||||
if (!ni && !(ea.argt & EX_RANGE) && ea.addr_count > 0)
|
||||
{
|
||||
/* no range allowed */
|
||||
errormsg = _(e_norange);
|
||||
@@ -2028,7 +2029,7 @@ do_one_cmd(
|
||||
}
|
||||
}
|
||||
|
||||
if (!ni && !(ea.argt & BANG) && ea.forceit) /* no <!> allowed */
|
||||
if (!ni && !(ea.argt & EX_BANG) && ea.forceit) // no <!> allowed
|
||||
{
|
||||
errormsg = _(e_nobang);
|
||||
goto doend;
|
||||
@@ -2038,7 +2039,7 @@ do_one_cmd(
|
||||
* Don't complain about the range if it is not used
|
||||
* (could happen if line_count is accidentally set to 0).
|
||||
*/
|
||||
if (!ea.skip && !ni && (ea.argt & RANGE))
|
||||
if (!ea.skip && !ni && (ea.argt & EX_RANGE))
|
||||
{
|
||||
/*
|
||||
* If the range is backwards, ask for confirmation and, if given, swap
|
||||
@@ -2073,7 +2074,7 @@ do_one_cmd(
|
||||
correct_range(&ea);
|
||||
|
||||
#ifdef FEAT_FOLDING
|
||||
if (((ea.argt & WHOLEFOLD) || ea.addr_count >= 2) && !global_busy
|
||||
if (((ea.argt & EX_WHOLEFOLD) || ea.addr_count >= 2) && !global_busy
|
||||
&& ea.addr_type == ADDR_LINES)
|
||||
{
|
||||
/* Put the first line at the start of a closed fold, put the last line
|
||||
@@ -2110,7 +2111,7 @@ do_one_cmd(
|
||||
* Check for "++opt=val" argument.
|
||||
* Must be first, allow ":w ++enc=utf8 !cmd"
|
||||
*/
|
||||
if (ea.argt & ARGOPT)
|
||||
if (ea.argt & EX_ARGOPT)
|
||||
while (ea.arg[0] == '+' && ea.arg[1] == '+')
|
||||
if (getargopt(&ea) == FAIL && !ni)
|
||||
{
|
||||
@@ -2166,14 +2167,14 @@ do_one_cmd(
|
||||
* Check for "+command" argument, before checking for next command.
|
||||
* Don't do this for ":read !cmd" and ":write !cmd".
|
||||
*/
|
||||
if ((ea.argt & EDITCMD) && !ea.usefilter)
|
||||
if ((ea.argt & EX_CMDARG) && !ea.usefilter)
|
||||
ea.do_ecmd_cmd = getargcmd(&ea.arg);
|
||||
|
||||
/*
|
||||
* Check for '|' to separate commands and '"' to start comments.
|
||||
* Don't do this for ":read !cmd" and ":write !cmd".
|
||||
*/
|
||||
if ((ea.argt & TRLBAR) && !ea.usefilter)
|
||||
if ((ea.argt & EX_TRLBAR) && !ea.usefilter)
|
||||
separate_nextcmd(&ea);
|
||||
|
||||
/*
|
||||
@@ -2206,7 +2207,7 @@ do_one_cmd(
|
||||
}
|
||||
}
|
||||
|
||||
if ((ea.argt & DFLALL) && ea.addr_count == 0)
|
||||
if ((ea.argt & EX_DFLALL) && ea.addr_count == 0)
|
||||
{
|
||||
buf_T *buf;
|
||||
|
||||
@@ -2256,17 +2257,17 @@ do_one_cmd(
|
||||
case ADDR_NONE:
|
||||
case ADDR_UNSIGNED:
|
||||
case ADDR_QUICKFIX:
|
||||
iemsg(_("INTERNAL: Cannot use DFLALL with ADDR_NONE, ADDR_UNSIGNED or ADDR_QUICKFIX"));
|
||||
iemsg(_("INTERNAL: Cannot use EX_DFLALL with ADDR_NONE, ADDR_UNSIGNED or ADDR_QUICKFIX"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* accept numbered register only when no count allowed (:put) */
|
||||
if ( (ea.argt & REGSTR)
|
||||
if ( (ea.argt & EX_REGSTR)
|
||||
&& *ea.arg != NUL
|
||||
/* Do not allow register = for user commands */
|
||||
&& (!IS_USER_CMDIDX(ea.cmdidx) || *ea.arg != '=')
|
||||
&& !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)))
|
||||
&& !((ea.argt & EX_COUNT) && VIM_ISDIGIT(*ea.arg)))
|
||||
{
|
||||
#ifndef FEAT_CLIPBOARD
|
||||
/* check these explicitly for a more specific error message */
|
||||
@@ -2293,16 +2294,16 @@ do_one_cmd(
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for a count. When accepting a BUFNAME, don't use "123foo" as a
|
||||
* Check for a count. When accepting a EX_BUFNAME, don't use "123foo" as a
|
||||
* count, it's a buffer name.
|
||||
*/
|
||||
if ((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)
|
||||
&& (!(ea.argt & BUFNAME) || *(p = skipdigits(ea.arg)) == NUL
|
||||
if ((ea.argt & EX_COUNT) && VIM_ISDIGIT(*ea.arg)
|
||||
&& (!(ea.argt & EX_BUFNAME) || *(p = skipdigits(ea.arg)) == NUL
|
||||
|| VIM_ISWHITE(*p)))
|
||||
{
|
||||
n = getdigits(&ea.arg);
|
||||
ea.arg = skipwhite(ea.arg);
|
||||
if (n <= 0 && !ni && (ea.argt & ZEROR) == 0)
|
||||
if (n <= 0 && !ni && (ea.argt & EX_ZEROR) == 0)
|
||||
{
|
||||
errormsg = _(e_zerocount);
|
||||
goto doend;
|
||||
@@ -2329,17 +2330,17 @@ do_one_cmd(
|
||||
/*
|
||||
* Check for flags: 'l', 'p' and '#'.
|
||||
*/
|
||||
if (ea.argt & EXFLAGS)
|
||||
if (ea.argt & EX_FLAGS)
|
||||
get_flags(&ea);
|
||||
/* no arguments allowed */
|
||||
if (!ni && !(ea.argt & EXTRA) && *ea.arg != NUL
|
||||
&& *ea.arg != '"' && (*ea.arg != '|' || (ea.argt & TRLBAR) == 0))
|
||||
if (!ni && !(ea.argt & EX_EXTRA) && *ea.arg != NUL
|
||||
&& *ea.arg != '"' && (*ea.arg != '|' || (ea.argt & EX_TRLBAR) == 0))
|
||||
{
|
||||
// no arguments allowed but there is something
|
||||
errormsg = _(e_trailing);
|
||||
goto doend;
|
||||
}
|
||||
|
||||
if (!ni && (ea.argt & NEEDARG) && *ea.arg == NUL)
|
||||
if (!ni && (ea.argt & EX_NEEDARG) && *ea.arg == NUL)
|
||||
{
|
||||
errormsg = _(e_argreq);
|
||||
goto doend;
|
||||
@@ -2373,7 +2374,7 @@ do_one_cmd(
|
||||
break;
|
||||
|
||||
/* Commands that handle '|' themselves. Check: A command should
|
||||
* either have the TRLBAR flag, appear in this list or appear in
|
||||
* either have the EX_TRLBAR flag, appear in this list or appear in
|
||||
* the list at ":help :bar". */
|
||||
case CMD_aboveleft:
|
||||
case CMD_and:
|
||||
@@ -2440,7 +2441,7 @@ do_one_cmd(
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ea.argt & XFILE)
|
||||
if (ea.argt & EX_XFILE)
|
||||
{
|
||||
if (expand_filename(&ea, cmdlinep, &errormsg) == FAIL)
|
||||
goto doend;
|
||||
@@ -2450,7 +2451,7 @@ do_one_cmd(
|
||||
* Accept buffer name. Cannot be used at the same time with a buffer
|
||||
* number. Don't do this for a user command.
|
||||
*/
|
||||
if ((ea.argt & BUFNAME) && *ea.arg != NUL && ea.addr_count == 0
|
||||
if ((ea.argt & EX_BUFNAME) && *ea.arg != NUL && ea.addr_count == 0
|
||||
&& !IS_USER_CMDIDX(ea.cmdidx))
|
||||
{
|
||||
/*
|
||||
@@ -2467,7 +2468,7 @@ do_one_cmd(
|
||||
while (p > ea.arg && VIM_ISWHITE(p[-1]))
|
||||
--p;
|
||||
}
|
||||
ea.line2 = buflist_findpat(ea.arg, p, (ea.argt & BUFUNL) != 0,
|
||||
ea.line2 = buflist_findpat(ea.arg, p, (ea.argt & EX_BUFUNL) != 0,
|
||||
FALSE, FALSE);
|
||||
if (ea.line2 < 0) /* failed */
|
||||
goto doend;
|
||||
@@ -3533,7 +3534,7 @@ set_one_cmd_context(
|
||||
}
|
||||
|
||||
/* Does command allow "+command"? */
|
||||
if ((ea.argt & EDITCMD) && !usefilter && *arg == '+')
|
||||
if ((ea.argt & EX_CMDARG) && !usefilter && *arg == '+')
|
||||
{
|
||||
/* Check if we're in the +command */
|
||||
p = arg + 1;
|
||||
@@ -3551,7 +3552,7 @@ set_one_cmd_context(
|
||||
* Check for '|' to separate commands and '"' to start comments.
|
||||
* Don't do this for ":read !cmd" and ":write !cmd".
|
||||
*/
|
||||
if ((ea.argt & TRLBAR) && !usefilter)
|
||||
if ((ea.argt & EX_TRLBAR) && !usefilter)
|
||||
{
|
||||
p = arg;
|
||||
/* ":redir @" is not the start of a comment */
|
||||
@@ -3564,7 +3565,7 @@ set_one_cmd_context(
|
||||
if (p[1] != NUL)
|
||||
++p;
|
||||
}
|
||||
else if ( (*p == '"' && !(ea.argt & NOTRLCOM))
|
||||
else if ( (*p == '"' && !(ea.argt & EX_NOTRLCOM))
|
||||
|| *p == '|' || *p == '\n')
|
||||
{
|
||||
if (*(p - 1) != '\\')
|
||||
@@ -3578,9 +3579,9 @@ set_one_cmd_context(
|
||||
}
|
||||
}
|
||||
|
||||
/* no arguments allowed */
|
||||
if (!(ea.argt & EXTRA) && *arg != NUL &&
|
||||
vim_strchr((char_u *)"|\"", *arg) == NULL)
|
||||
if (!(ea.argt & EX_EXTRA) && *arg != NUL
|
||||
&& vim_strchr((char_u *)"|\"", *arg) == NULL)
|
||||
// no arguments allowed but there is something
|
||||
return NULL;
|
||||
|
||||
/* Find start of last argument (argument just before cursor): */
|
||||
@@ -3602,7 +3603,7 @@ set_one_cmd_context(
|
||||
}
|
||||
}
|
||||
|
||||
if (ea.argt & XFILE)
|
||||
if (ea.argt & EX_XFILE)
|
||||
{
|
||||
int c;
|
||||
int in_quote = FALSE;
|
||||
@@ -3635,7 +3636,7 @@ set_one_cmd_context(
|
||||
* characters that end the command and white space. */
|
||||
else if (c == '|' || c == '\n' || c == '"' || (VIM_ISWHITE(c)
|
||||
#ifdef SPACE_IN_FILENAME
|
||||
&& (!(ea.argt & NOSPC) || usefilter)
|
||||
&& (!(ea.argt & EX_NOSPC) || usefilter)
|
||||
#endif
|
||||
))
|
||||
{
|
||||
@@ -4006,8 +4007,8 @@ set_one_cmd_context(
|
||||
case CMD_USER_BUF:
|
||||
if (compl != EXPAND_NOTHING)
|
||||
{
|
||||
// XFILE: file names are handled above
|
||||
if (!(ea.argt & XFILE))
|
||||
// EX_XFILE: file names are handled above
|
||||
if (!(ea.argt & EX_XFILE))
|
||||
{
|
||||
#ifdef FEAT_MENU
|
||||
if (compl == EXPAND_MENUS)
|
||||
@@ -4666,7 +4667,7 @@ invalid_range(exarg_T *eap)
|
||||
|| eap->line1 > eap->line2)
|
||||
return _(e_invrange);
|
||||
|
||||
if (eap->argt & RANGE)
|
||||
if (eap->argt & EX_RANGE)
|
||||
{
|
||||
switch (eap->addr_type)
|
||||
{
|
||||
@@ -4752,7 +4753,7 @@ invalid_range(exarg_T *eap)
|
||||
static void
|
||||
correct_range(exarg_T *eap)
|
||||
{
|
||||
if (!(eap->argt & ZEROR)) /* zero in range not allowed */
|
||||
if (!(eap->argt & EX_ZEROR)) // zero in range not allowed
|
||||
{
|
||||
if (eap->line1 == 0)
|
||||
eap->line1 = 1;
|
||||
@@ -4867,6 +4868,7 @@ replace_makeprg(exarg_T *eap, char_u *p, char_u **cmdlinep)
|
||||
|
||||
/*
|
||||
* Expand file name in Ex command argument.
|
||||
* When an error is detected, "errormsgp" is set to a non-NULL pointer.
|
||||
* Return FAIL for failure, OK otherwise.
|
||||
*/
|
||||
int
|
||||
@@ -4960,7 +4962,7 @@ expand_filename(
|
||||
&& eap->cmdidx != CMD_make
|
||||
&& eap->cmdidx != CMD_terminal
|
||||
#ifndef UNIX
|
||||
&& !(eap->argt & NOSPC)
|
||||
&& !(eap->argt & EX_NOSPC)
|
||||
#endif
|
||||
)
|
||||
{
|
||||
@@ -5012,7 +5014,7 @@ expand_filename(
|
||||
* One file argument: Expand wildcards.
|
||||
* Don't do this with ":r !command" or ":w !command".
|
||||
*/
|
||||
if ((eap->argt & NOSPC) && !eap->usefilter)
|
||||
if ((eap->argt & EX_NOSPC) && !eap->usefilter)
|
||||
{
|
||||
/*
|
||||
* May do this twice:
|
||||
@@ -5163,7 +5165,7 @@ separate_nextcmd(exarg_T *eap)
|
||||
{
|
||||
if (*p == Ctrl_V)
|
||||
{
|
||||
if (eap->argt & (USECTRLV | XFILE))
|
||||
if (eap->argt & (EX_CTRLV | EX_XFILE))
|
||||
++p; /* skip CTRL-V and next char */
|
||||
else
|
||||
/* remove CTRL-V and skip next char */
|
||||
@@ -5174,7 +5176,7 @@ separate_nextcmd(exarg_T *eap)
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
/* Skip over `=expr` when wildcards are expanded. */
|
||||
else if (p[0] == '`' && p[1] == '=' && (eap->argt & XFILE))
|
||||
else if (p[0] == '`' && p[1] == '=' && (eap->argt & EX_XFILE))
|
||||
{
|
||||
p += 2;
|
||||
(void)skip_expr(&p);
|
||||
@@ -5184,7 +5186,7 @@ separate_nextcmd(exarg_T *eap)
|
||||
/* Check for '"': start of comment or '|': next command */
|
||||
/* :@" and :*" do not start a comment!
|
||||
* :redir @" doesn't either. */
|
||||
else if ((*p == '"' && !(eap->argt & NOTRLCOM)
|
||||
else if ((*p == '"' && !(eap->argt & EX_NOTRLCOM)
|
||||
&& ((eap->cmdidx != CMD_at && eap->cmdidx != CMD_star)
|
||||
|| p != eap->arg)
|
||||
&& (eap->cmdidx != CMD_redir
|
||||
@@ -5192,11 +5194,11 @@ separate_nextcmd(exarg_T *eap)
|
||||
|| *p == '|' || *p == '\n')
|
||||
{
|
||||
/*
|
||||
* We remove the '\' before the '|', unless USECTRLV is used
|
||||
* We remove the '\' before the '|', unless EX_CTRLV is used
|
||||
* AND 'b' is present in 'cpoptions'.
|
||||
*/
|
||||
if ((vim_strchr(p_cpo, CPO_BAR) == NULL
|
||||
|| !(eap->argt & USECTRLV)) && *(p - 1) == '\\')
|
||||
|| !(eap->argt & EX_CTRLV)) && *(p - 1) == '\\')
|
||||
{
|
||||
STRMOVE(p - 1, p); /* remove the '\' */
|
||||
--p;
|
||||
@@ -5210,7 +5212,7 @@ separate_nextcmd(exarg_T *eap)
|
||||
}
|
||||
}
|
||||
|
||||
if (!(eap->argt & NOTRLCOM)) /* remove trailing spaces */
|
||||
if (!(eap->argt & EX_NOTRLCOM)) /* remove trailing spaces */
|
||||
del_trailing_spaces(eap->arg);
|
||||
}
|
||||
|
||||
@@ -5467,7 +5469,7 @@ ex_doautocmd(exarg_T *eap)
|
||||
static void
|
||||
ex_bunload(exarg_T *eap)
|
||||
{
|
||||
if (NOT_IN_POPUP_WINDOW)
|
||||
if (ERROR_IF_POPUP_WINDOW)
|
||||
return;
|
||||
eap->errmsg = do_bufdel(
|
||||
eap->cmdidx == CMD_bdelete ? DOBUF_DEL
|
||||
@@ -5483,7 +5485,7 @@ ex_bunload(exarg_T *eap)
|
||||
static void
|
||||
ex_buffer(exarg_T *eap)
|
||||
{
|
||||
if (NOT_IN_POPUP_WINDOW)
|
||||
if (ERROR_IF_POPUP_WINDOW)
|
||||
return;
|
||||
if (*eap->arg)
|
||||
eap->errmsg = e_trailing;
|
||||
@@ -5906,12 +5908,17 @@ ex_pclose(exarg_T *eap)
|
||||
{
|
||||
win_T *win;
|
||||
|
||||
// First close any normal window.
|
||||
FOR_ALL_WINDOWS(win)
|
||||
if (win->w_p_pvw)
|
||||
{
|
||||
ex_win_close(eap->forceit, win, NULL);
|
||||
break;
|
||||
return;
|
||||
}
|
||||
# ifdef FEAT_TEXT_PROP
|
||||
// Also when 'previewpopup' is empty, it might have been cleared.
|
||||
popup_close_preview();
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -6787,7 +6794,7 @@ ex_splitview(exarg_T *eap)
|
||||
|| eap->cmdidx == CMD_tabfind
|
||||
|| eap->cmdidx == CMD_tabnew;
|
||||
|
||||
if (NOT_IN_POPUP_WINDOW)
|
||||
if (ERROR_IF_POPUP_WINDOW)
|
||||
return;
|
||||
|
||||
#ifdef FEAT_GUI
|
||||
@@ -6917,7 +6924,7 @@ ex_tabnext(exarg_T *eap)
|
||||
{
|
||||
int tab_number;
|
||||
|
||||
if (NOT_IN_POPUP_WINDOW)
|
||||
if (ERROR_IF_POPUP_WINDOW)
|
||||
return;
|
||||
switch (eap->cmdidx)
|
||||
{
|
||||
@@ -7170,7 +7177,7 @@ do_exedit(
|
||||
int need_hide;
|
||||
int exmode_was = exmode_active;
|
||||
|
||||
if (NOT_IN_POPUP_WINDOW)
|
||||
if (ERROR_IF_POPUP_WINDOW)
|
||||
return;
|
||||
/*
|
||||
* ":vi" command ends Ex mode.
|
||||
@@ -9299,6 +9306,7 @@ find_cmdline_var(char_u *src, int *usedlen)
|
||||
* '#' to curwin->w_altfile
|
||||
* '<cword>' to word under the cursor
|
||||
* '<cWORD>' to WORD under the cursor
|
||||
* '<cexpr>' to C-expression under the cursor
|
||||
* '<cfile>' to path name under the cursor
|
||||
* '<sfile>' to sourced file name
|
||||
* '<slnum>' to sourced file line number
|
||||
@@ -9940,7 +9948,7 @@ makeopens(
|
||||
&& wp->w_buffer->b_ffname != NULL
|
||||
&& !bt_help(wp->w_buffer)
|
||||
#ifdef FEAT_QUICKFIX
|
||||
&& !bt_nofile(wp->w_buffer)
|
||||
&& !bt_nofilename(wp->w_buffer)
|
||||
#endif
|
||||
)
|
||||
{
|
||||
@@ -10267,7 +10275,7 @@ ses_do_win(win_T *wp)
|
||||
if (wp->w_buffer->b_fname == NULL
|
||||
#ifdef FEAT_QUICKFIX
|
||||
/* When 'buftype' is "nofile" can't restore the window contents. */
|
||||
|| bt_nofile(wp->w_buffer)
|
||||
|| bt_nofilename(wp->w_buffer)
|
||||
#endif
|
||||
)
|
||||
return (ssop_flags & SSOP_BLANK);
|
||||
@@ -10354,7 +10362,7 @@ put_view(
|
||||
*/
|
||||
if (wp->w_buffer->b_ffname != NULL
|
||||
# ifdef FEAT_QUICKFIX
|
||||
&& !bt_nofile(wp->w_buffer)
|
||||
&& !bt_nofilename(wp->w_buffer)
|
||||
# endif
|
||||
)
|
||||
{
|
||||
|
||||
+47
-9
@@ -450,6 +450,7 @@ may_do_incsearch_highlighting(
|
||||
#endif
|
||||
int next_char;
|
||||
int use_last_pat;
|
||||
int did_do_incsearch = is_state->did_incsearch;
|
||||
|
||||
// Parsing range may already set the last search pattern.
|
||||
// NOTE: must call restore_last_search_pattern() before returning!
|
||||
@@ -459,6 +460,9 @@ may_do_incsearch_highlighting(
|
||||
{
|
||||
restore_last_search_pattern();
|
||||
finish_incsearch_highlighting(FALSE, is_state, TRUE);
|
||||
if (did_do_incsearch && vpeekc() == NUL)
|
||||
// may have skipped a redraw, do it now
|
||||
redrawcmd();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -709,6 +713,7 @@ may_adjust_incsearch_highlighting(
|
||||
save_viewstate(&is_state->old_viewstate);
|
||||
update_screen(NOT_VALID);
|
||||
redrawcmdline();
|
||||
curwin->w_cursor = is_state->match_end;
|
||||
}
|
||||
else
|
||||
vim_beep(BO_ERROR);
|
||||
@@ -774,6 +779,35 @@ may_add_char_to_search(int firstc, int *c, incsearch_state_T *is_state)
|
||||
}
|
||||
return OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_ARABIC
|
||||
/*
|
||||
* Return TRUE if the command line has an Arabic character at or after "start"
|
||||
* for "len" bytes.
|
||||
*/
|
||||
static int
|
||||
cmdline_has_arabic(int start, int len)
|
||||
{
|
||||
int j;
|
||||
int mb_l;
|
||||
int u8c;
|
||||
char_u *p;
|
||||
int u8cc[MAX_MCO];
|
||||
|
||||
if (!enc_utf8)
|
||||
return FALSE;
|
||||
|
||||
for (j = start; j < start + len; j += mb_l)
|
||||
{
|
||||
p = ccline.cmdbuff + j;
|
||||
u8c = utfc_ptr2char_len(p, u8cc, start + len - j);
|
||||
mb_l = utfc_ptr2len_len(p, start + len - j);
|
||||
if (ARABIC_CHAR(u8c))
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
@@ -805,7 +839,8 @@ cmdline_init(void)
|
||||
getcmdline(
|
||||
int firstc,
|
||||
long count, // only used for incremental search
|
||||
int indent) // indent for inside conditionals
|
||||
int indent, // indent for inside conditionals
|
||||
int do_concat UNUSED)
|
||||
{
|
||||
return getcmdline_int(firstc, count, indent, TRUE);
|
||||
}
|
||||
@@ -2375,7 +2410,8 @@ cmdline_changed:
|
||||
#ifdef FEAT_RIGHTLEFT
|
||||
if (cmdmsg_rl
|
||||
# ifdef FEAT_ARABIC
|
||||
|| (p_arshape && !p_tbidi && enc_utf8)
|
||||
|| (p_arshape && !p_tbidi
|
||||
&& cmdline_has_arabic(0, ccline.cmdlen))
|
||||
# endif
|
||||
)
|
||||
/* Always redraw the whole command line to fix shaping and
|
||||
@@ -2662,12 +2698,13 @@ correct_cmdspos(int idx, int cells)
|
||||
getexline(
|
||||
int c, /* normally ':', NUL for ":append" */
|
||||
void *cookie UNUSED,
|
||||
int indent) /* indent for inside conditionals */
|
||||
int indent, /* indent for inside conditionals */
|
||||
int do_concat)
|
||||
{
|
||||
/* When executing a register, remove ':' that's in front of each line. */
|
||||
if (exec_from_reg && vpeekc() == ':')
|
||||
(void)vgetc();
|
||||
return getcmdline(c, 1L, indent);
|
||||
return getcmdline(c, 1L, indent, do_concat);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2681,7 +2718,8 @@ getexmodeline(
|
||||
int promptc, /* normally ':', NUL for ":append" and '?' for
|
||||
:s prompt */
|
||||
void *cookie UNUSED,
|
||||
int indent) /* indent for inside conditionals */
|
||||
int indent, /* indent for inside conditionals */
|
||||
int do_concat UNUSED)
|
||||
{
|
||||
garray_T line_ga;
|
||||
char_u *pend;
|
||||
@@ -3149,7 +3187,7 @@ static char_u *arshape_buf = NULL;
|
||||
|
||||
# if defined(EXITFREE) || defined(PROTO)
|
||||
void
|
||||
free_cmdline_buf(void)
|
||||
free_arshape_buf(void)
|
||||
{
|
||||
vim_free(arshape_buf);
|
||||
}
|
||||
@@ -3176,7 +3214,7 @@ draw_cmdline(int start, int len)
|
||||
else
|
||||
#endif
|
||||
#ifdef FEAT_ARABIC
|
||||
if (p_arshape && !p_tbidi && enc_utf8 && len > 0)
|
||||
if (p_arshape && !p_tbidi && cmdline_has_arabic(start, len))
|
||||
{
|
||||
static int buflen = 0;
|
||||
char_u *p;
|
||||
@@ -4809,7 +4847,7 @@ addstar(
|
||||
* EXPAND_COMMANDS Cursor is still touching the command, so complete
|
||||
* it.
|
||||
* EXPAND_BUFFERS Complete file names for :buf and :sbuf commands.
|
||||
* EXPAND_FILES After command with XFILE set, or after setting
|
||||
* EXPAND_FILES After command with EX_XFILE set, or after setting
|
||||
* with P_EXPAND set. eg :e ^I, :w>>^I
|
||||
* EXPAND_DIRECTORIES In some cases this is used instead of the latter
|
||||
* when we know only directories are of interest. eg
|
||||
@@ -7390,7 +7428,7 @@ script_get(exarg_T *eap, char_u *cmd)
|
||||
#ifdef FEAT_EVAL
|
||||
eap->cstack->cs_looplevel > 0 ? -1 :
|
||||
#endif
|
||||
NUL, eap->cookie, 0);
|
||||
NUL, eap->cookie, 0, TRUE);
|
||||
|
||||
if (theline == NULL || STRCMP(end_pattern, theline) == 0)
|
||||
{
|
||||
|
||||
+2
-2
@@ -666,7 +666,7 @@
|
||||
/*
|
||||
* sound - currently only with libcanberra
|
||||
*/
|
||||
#if !defined(FEAT_SOUND) && defined(FEAT_BIG) && defined(HAVE_CANBERRA)
|
||||
#if !defined(FEAT_SOUND) && defined(HAVE_CANBERRA)
|
||||
# define FEAT_SOUND
|
||||
#endif
|
||||
|
||||
@@ -1253,7 +1253,7 @@
|
||||
* +signs Allow signs to be displayed to the left of text lines.
|
||||
* Adds the ":sign" command.
|
||||
*/
|
||||
#if defined(FEAT_BIG) || defined(FEAT_NETBEANS_INTG)
|
||||
#if defined(FEAT_BIG) || defined(FEAT_NETBEANS_INTG) || defined(FEAT_TEXT_PROP)
|
||||
# define FEAT_SIGNS
|
||||
# if ((defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) \
|
||||
&& defined(HAVE_X11_XPM_H)) \
|
||||
|
||||
+5
-5
@@ -3160,7 +3160,7 @@ buf_write(
|
||||
&& whole
|
||||
&& buf == curbuf
|
||||
#ifdef FEAT_QUICKFIX
|
||||
&& !bt_nofile(buf)
|
||||
&& !bt_nofilename(buf)
|
||||
#endif
|
||||
&& !filtering
|
||||
&& (!append || vim_strchr(p_cpo, CPO_FNAMEAPP) != NULL)
|
||||
@@ -3237,7 +3237,7 @@ buf_write(
|
||||
sfname, sfname, FALSE, curbuf, eap)))
|
||||
{
|
||||
#ifdef FEAT_QUICKFIX
|
||||
if (overwriting && bt_nofile(curbuf))
|
||||
if (overwriting && bt_nofilename(curbuf))
|
||||
nofile_err = TRUE;
|
||||
else
|
||||
#endif
|
||||
@@ -3270,7 +3270,7 @@ buf_write(
|
||||
else
|
||||
{
|
||||
#ifdef FEAT_QUICKFIX
|
||||
if (overwriting && bt_nofile(curbuf))
|
||||
if (overwriting && bt_nofilename(curbuf))
|
||||
nofile_err = TRUE;
|
||||
else
|
||||
#endif
|
||||
@@ -3284,7 +3284,7 @@ buf_write(
|
||||
sfname, sfname, FALSE, curbuf, eap)))
|
||||
{
|
||||
#ifdef FEAT_QUICKFIX
|
||||
if (overwriting && bt_nofile(curbuf))
|
||||
if (overwriting && bt_nofilename(curbuf))
|
||||
nofile_err = TRUE;
|
||||
else
|
||||
#endif
|
||||
@@ -6087,7 +6087,7 @@ shorten_buf_fname(buf_T *buf, char_u *dirname, int force)
|
||||
|
||||
if (buf->b_fname != NULL
|
||||
#ifdef FEAT_QUICKFIX
|
||||
&& !bt_nofile(buf)
|
||||
&& !bt_nofilename(buf)
|
||||
#endif
|
||||
&& !path_with_url(buf->b_fname)
|
||||
&& (force
|
||||
|
||||
+7
-2
@@ -1794,7 +1794,7 @@ vgetc(void)
|
||||
may_garbage_collect = FALSE;
|
||||
#endif
|
||||
#ifdef FEAT_BEVAL_TERM
|
||||
if (c != K_MOUSEMOVE && c != K_IGNORE)
|
||||
if (c != K_MOUSEMOVE && c != K_IGNORE && c != K_CURSORHOLD)
|
||||
{
|
||||
/* Don't trigger 'balloonexpr' unless only the mouse was moved. */
|
||||
bevalexpr_due_set = FALSE;
|
||||
@@ -2540,13 +2540,18 @@ vgetorpeek(int advance)
|
||||
*/
|
||||
if (mp->m_expr)
|
||||
{
|
||||
int save_vgetc_busy = vgetc_busy;
|
||||
int save_vgetc_busy = vgetc_busy;
|
||||
int save_may_garbage_collect = may_garbage_collect;
|
||||
|
||||
vgetc_busy = 0;
|
||||
may_garbage_collect = FALSE;
|
||||
|
||||
save_m_keys = vim_strsave(mp->m_keys);
|
||||
save_m_str = vim_strsave(mp->m_str);
|
||||
s = eval_map_expr(save_m_str, NUL);
|
||||
|
||||
vgetc_busy = save_vgetc_busy;
|
||||
may_garbage_collect = save_may_garbage_collect;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
||||
+22
-9
@@ -74,6 +74,8 @@ EXTERN short *TabPageIdxs INIT(= NULL);
|
||||
// Array with size Rows x Columns containing zindex of popups.
|
||||
EXTERN short *popup_mask INIT(= NULL);
|
||||
EXTERN short *popup_mask_next INIT(= NULL);
|
||||
// Array with flags for tansparent cells of current popup.
|
||||
EXTERN char *popup_transparent INIT(= NULL);
|
||||
|
||||
// Flag set to TRUE when popup_mask needs to be updated.
|
||||
EXTERN int popup_mask_refresh INIT(= TRUE);
|
||||
@@ -250,6 +252,9 @@ EXTERN int debug_backtrace_level INIT(= 0); /* breakpoint backtrace level */
|
||||
# ifdef FEAT_PROFILE
|
||||
EXTERN int do_profiling INIT(= PROF_NONE); /* PROF_ values */
|
||||
# endif
|
||||
EXTERN garray_T script_items INIT(= {0 COMMA 0 COMMA sizeof(scriptitem_T) COMMA 4 COMMA NULL});
|
||||
#define SCRIPT_ITEM(id) (((scriptitem_T *)script_items.ga_data)[(id) - 1])
|
||||
#define FUNCLINE(fp, j) ((char_u **)(fp->uf_lines.ga_data))[j]
|
||||
|
||||
/*
|
||||
* The exception currently being thrown. Used to pass an exception to
|
||||
@@ -350,6 +355,13 @@ EXTERN char_u hash_removed;
|
||||
EXTERN int scroll_region INIT(= FALSE); /* term supports scroll region */
|
||||
EXTERN int t_colors INIT(= 0); /* int value of T_CCO */
|
||||
|
||||
#ifdef FEAT_CMDL_COMPL
|
||||
// Flags to indicate an additional string for highlight name completion.
|
||||
EXTERN int include_none INIT(= 0); // when 1 include "None"
|
||||
EXTERN int include_default INIT(= 0); // when 1 include "default"
|
||||
EXTERN int include_link INIT(= 0); // when 2 include "link" and "clear"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* When highlight_match is TRUE, highlight a match, starting at the cursor
|
||||
* position. Search_match_lines is the number of lines after the match (0 for
|
||||
@@ -545,11 +557,11 @@ EXTERN int gui_win_y INIT(= -1);
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_CLIPBOARD
|
||||
EXTERN VimClipboard clip_star; /* PRIMARY selection in X11 */
|
||||
EXTERN Clipboard_T clip_star; // PRIMARY selection in X11
|
||||
# ifdef FEAT_X11
|
||||
EXTERN VimClipboard clip_plus; /* CLIPBOARD selection in X11 */
|
||||
EXTERN Clipboard_T clip_plus; // CLIPBOARD selection in X11
|
||||
# else
|
||||
# define clip_plus clip_star /* there is only one clipboard */
|
||||
# define clip_plus clip_star // there is only one clipboard
|
||||
# define ONE_CLIPBOARD
|
||||
# endif
|
||||
|
||||
@@ -599,7 +611,13 @@ EXTERN win_T *aucmd_win; /* window used in aucmd_prepbuf() */
|
||||
EXTERN int aucmd_win_used INIT(= FALSE); /* aucmd_win is being used */
|
||||
|
||||
#ifdef FEAT_TEXT_PROP
|
||||
EXTERN win_T *first_popupwin; // first global popup window
|
||||
EXTERN win_T *first_popupwin; // first global popup window
|
||||
EXTERN win_T *popup_dragwin INIT(= NULL); // popup window being dragged
|
||||
|
||||
// Set to TRUE if there is any visible popup.
|
||||
EXTERN int popup_visible INIT(= FALSE);
|
||||
|
||||
EXTERN int text_prop_frozen INIT(= 0);
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -1682,8 +1700,3 @@ typedef int HINSTANCE;
|
||||
EXTERN int ctrl_break_was_pressed INIT(= FALSE);
|
||||
EXTERN HINSTANCE g_hinst INIT(= NULL);
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_TEXT_PROP
|
||||
EXTERN int text_prop_frozen INIT(= 0);
|
||||
EXTERN int popup_visible INIT(= FALSE);
|
||||
#endif
|
||||
|
||||
@@ -2285,6 +2285,8 @@ gui_outstr_nowrap(
|
||||
int col = gui.col;
|
||||
#ifdef FEAT_SIGN_ICONS
|
||||
int draw_sign = FALSE;
|
||||
int signcol = 0;
|
||||
char_u extra[18];
|
||||
# ifdef FEAT_NETBEANS_INTG
|
||||
int multi_sign = FALSE;
|
||||
# endif
|
||||
@@ -2300,17 +2302,29 @@ gui_outstr_nowrap(
|
||||
# ifdef FEAT_NETBEANS_INTG
|
||||
|| *s == MULTISIGN_BYTE
|
||||
# endif
|
||||
)
|
||||
)
|
||||
{
|
||||
# ifdef FEAT_NETBEANS_INTG
|
||||
if (*s == MULTISIGN_BYTE)
|
||||
multi_sign = TRUE;
|
||||
# endif
|
||||
/* draw spaces instead */
|
||||
s = (char_u *)" ";
|
||||
if (*curwin->w_p_scl == 'n' && *(curwin->w_p_scl + 1) == 'u' &&
|
||||
(curwin->w_p_nu || curwin->w_p_rnu))
|
||||
{
|
||||
sprintf((char *)extra, "%*c ", number_width(curwin), ' ');
|
||||
s = extra;
|
||||
}
|
||||
else
|
||||
s = (char_u *)" ";
|
||||
if (len == 1 && col > 0)
|
||||
--col;
|
||||
len = 2;
|
||||
len = (int)STRLEN(s);
|
||||
if (len > 2)
|
||||
// right align sign icon in the number column
|
||||
signcol = col + len - 3;
|
||||
else
|
||||
signcol = col;
|
||||
draw_sign = TRUE;
|
||||
highlight_mask = 0;
|
||||
}
|
||||
@@ -2639,7 +2653,7 @@ gui_outstr_nowrap(
|
||||
#ifdef FEAT_SIGN_ICONS
|
||||
if (draw_sign)
|
||||
/* Draw the sign on top of the spaces. */
|
||||
gui_mch_drawsign(gui.row, col, gui.highlight_mask);
|
||||
gui_mch_drawsign(gui.row, signcol, gui.highlight_mask);
|
||||
# if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_X11) \
|
||||
|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN))
|
||||
if (multi_sign)
|
||||
@@ -4853,18 +4867,15 @@ gui_focus_change(int in_focus)
|
||||
}
|
||||
|
||||
/*
|
||||
* Called when the mouse moved (but not when dragging).
|
||||
* When mouse moved: apply 'mousefocus'.
|
||||
* Also updates the mouse pointer shape.
|
||||
*/
|
||||
void
|
||||
gui_mouse_moved(int x, int y)
|
||||
static void
|
||||
gui_mouse_focus(int x, int y)
|
||||
{
|
||||
win_T *wp;
|
||||
char_u st[8];
|
||||
|
||||
/* Ignore this while still starting up. */
|
||||
if (!gui.in_use || gui.starting)
|
||||
return;
|
||||
|
||||
#ifdef FEAT_MOUSESHAPE
|
||||
/* Get window pointer, and update mouse shape as well. */
|
||||
wp = xy2win(x, y);
|
||||
@@ -4923,6 +4934,27 @@ gui_mouse_moved(int x, int y)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Called when the mouse moved (but not when dragging).
|
||||
*/
|
||||
void
|
||||
gui_mouse_moved(int x, int y)
|
||||
{
|
||||
// Ignore this while still starting up.
|
||||
if (!gui.in_use || gui.starting)
|
||||
return;
|
||||
|
||||
// apply 'mousefocus' and pointer shape
|
||||
gui_mouse_focus(x, y);
|
||||
|
||||
#ifdef FEAT_TEXT_PROP
|
||||
if (popup_visible)
|
||||
// Generate a mouse-moved event, so that the popup can perhaps be
|
||||
// closed, just like in the terminal.
|
||||
gui_send_mouse_event(MOUSE_DRAG, x, y, FALSE, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Called when mouse should be moved to window with focus.
|
||||
*/
|
||||
@@ -4976,7 +5008,7 @@ xy2win(int x, int y)
|
||||
if (row < 0 || col < 0) /* before first window */
|
||||
return NULL;
|
||||
# endif
|
||||
wp = mouse_find_win(&row, &col);
|
||||
wp = mouse_find_win(&row, &col, FALSE);
|
||||
if (wp == NULL)
|
||||
return NULL;
|
||||
#ifdef FEAT_MOUSESHAPE
|
||||
@@ -5435,7 +5467,7 @@ gui_wingoto_xy(int x, int y)
|
||||
|
||||
if (row >= 0 && col >= 0)
|
||||
{
|
||||
wp = mouse_find_win(&row, &col);
|
||||
wp = mouse_find_win(&row, &col, FAIL_POPUP);
|
||||
if (wp != NULL && wp != curwin)
|
||||
win_goto(wp);
|
||||
}
|
||||
|
||||
@@ -29,6 +29,12 @@
|
||||
# include <gtk/gtk.h>
|
||||
#endif
|
||||
|
||||
// Needed when generating prototypes, since FEAT_GUI is always defined then.
|
||||
#if defined(FEAT_XCLIPBOARD) && !defined(FEAT_GUI_MOTIF) \
|
||||
&& !defined(FEAT_GUI_ATHENA) && !defined(FEAT_GUI_GTK)
|
||||
# include <X11/Intrinsic.h>
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_GUI_MAC
|
||||
# include <Types.h>
|
||||
/*# include <Memory.h>*/
|
||||
|
||||
+1
-1
@@ -107,7 +107,7 @@ gui_mch_create_beval_area(
|
||||
return NULL;
|
||||
}
|
||||
|
||||
beval = (BalloonEval *)alloc_clear(sizeof(BalloonEval));
|
||||
beval = ALLOC_CLEAR_ONE(BalloonEval);
|
||||
if (beval != NULL)
|
||||
{
|
||||
#ifdef FEAT_GUI_GTK
|
||||
|
||||
+7
-7
@@ -1394,7 +1394,7 @@ selection_received_cb(GtkWidget *widget UNUSED,
|
||||
guint time_ UNUSED,
|
||||
gpointer user_data UNUSED)
|
||||
{
|
||||
VimClipboard *cbd;
|
||||
Clipboard_T *cbd;
|
||||
char_u *text;
|
||||
char_u *tmpbuf = NULL;
|
||||
guchar *tmpbuf_utf8 = NULL;
|
||||
@@ -1511,7 +1511,7 @@ selection_get_cb(GtkWidget *widget UNUSED,
|
||||
int length;
|
||||
int motion_type;
|
||||
GdkAtom type;
|
||||
VimClipboard *cbd;
|
||||
Clipboard_T *cbd;
|
||||
|
||||
if (gtk_selection_data_get_selection(selection_data)
|
||||
== clip_plus.gtk_sel_atom)
|
||||
@@ -6602,7 +6602,7 @@ gui_mch_insert_lines(int row, int num_lines)
|
||||
* X Selection stuff, for cutting and pasting text to other windows.
|
||||
*/
|
||||
void
|
||||
clip_mch_request_selection(VimClipboard *cbd)
|
||||
clip_mch_request_selection(Clipboard_T *cbd)
|
||||
{
|
||||
GdkAtom target;
|
||||
unsigned i;
|
||||
@@ -6639,7 +6639,7 @@ clip_mch_request_selection(VimClipboard *cbd)
|
||||
* Disown the selection.
|
||||
*/
|
||||
void
|
||||
clip_mch_lose_selection(VimClipboard *cbd UNUSED)
|
||||
clip_mch_lose_selection(Clipboard_T *cbd UNUSED)
|
||||
{
|
||||
if (!in_selection_clear_event)
|
||||
{
|
||||
@@ -6652,7 +6652,7 @@ clip_mch_lose_selection(VimClipboard *cbd UNUSED)
|
||||
* Own the selection and return OK if it worked.
|
||||
*/
|
||||
int
|
||||
clip_mch_own_selection(VimClipboard *cbd)
|
||||
clip_mch_own_selection(Clipboard_T *cbd)
|
||||
{
|
||||
int success;
|
||||
|
||||
@@ -6667,13 +6667,13 @@ clip_mch_own_selection(VimClipboard *cbd)
|
||||
* will fill in the selection only when requested by another app.
|
||||
*/
|
||||
void
|
||||
clip_mch_set_selection(VimClipboard *cbd UNUSED)
|
||||
clip_mch_set_selection(Clipboard_T *cbd UNUSED)
|
||||
{
|
||||
}
|
||||
|
||||
#if (defined(FEAT_XCLIPBOARD) && defined(USE_SYSTEM)) || defined(PROTO)
|
||||
int
|
||||
clip_gtk_owner_exists(VimClipboard *cbd)
|
||||
clip_gtk_owner_exists(Clipboard_T *cbd)
|
||||
{
|
||||
return gdk_selection_owner_get(cbd->gtk_sel_atom) != NULL;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user