diff options
26 files changed, 21 insertions, 477 deletions
diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index c171fab9e9..9f108b4df4 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -118,4 +118,4 @@ foreach(D ${RUNTIME_DIRS}) endforeach() # only foo.sh script in runtime/ -install_helper(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/macros/less.sh DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/macros/) +install_helper(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/less.sh DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/scripts/) diff --git a/runtime/autoload/README.txt b/runtime/autoload/README.txt index 3b18d3dde5..bca86a2a4c 100644 --- a/runtime/autoload/README.txt +++ b/runtime/autoload/README.txt @@ -7,7 +7,7 @@ gzip.vim for editing compressed files netrw*.vim browsing (remote) directories and editing remote files tar.vim browsing tar files zip.vim browsing zip files -paste.vim common code for mswin.vim, menu.vim and macmap.vim +paste.vim common code for mswin.vim and menu.vim spellfile.vim downloading of a missing spell file Omni completion files: diff --git a/runtime/autoload/paste.vim b/runtime/autoload/paste.vim index 1ba336c2b3..84d4d77401 100644 --- a/runtime/autoload/paste.vim +++ b/runtime/autoload/paste.vim @@ -4,7 +4,7 @@ " Former Maintainer: Bram Moolenaar <Bram@vim.org> " Define the string to use for items that are present both in Edit, Popup and -" Toolbar menu. Also used in mswin.vim and macmap.vim. +" Toolbar menu. Also used in mswin.vim. let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"} let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n'] diff --git a/runtime/colors/README.txt b/runtime/colors/README.txt index bc6b8f0965..7a13312ed2 100644 --- a/runtime/colors/README.txt +++ b/runtime/colors/README.txt @@ -84,9 +84,6 @@ The default color settings can be found in the source file If you think you have a color scheme that is good enough to be used by others, please check the following items: -- Source the $VIMRUNTIME/colors/tools/check_colors.vim script to check for - common mistakes. - - Does it work in a color terminal as well as in the GUI? Is it consistent? - Is "g:colors_name" set to a meaningful value? In case of doubt you can do diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 8916c434e7..1022565b87 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -8702,7 +8702,7 @@ setcellwidths({list}) *setcellwidths()* To clear the overrides pass an empty {list}: >vim call setcellwidths([]) -< You can use the script $VIMRUNTIME/tools/emoji_list.lua to see +< You can use the script $VIMRUNTIME/scripts/emoji_list.lua to see the effect for known emoji characters. Move the cursor through the text to check if the cell widths of your terminal match with what Vim knows about each emoji. If it doesn't diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index 33da539c66..52e38a9872 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -548,9 +548,9 @@ gO Show a filetype-specific, navigable "outline" of the If you use the less or more program to view a file, you don't get syntax highlighting. Thus you would like to use Vim instead. You can do this by -using the shell script "$VIMRUNTIME/macros/less.sh". +using the shell script "$VIMRUNTIME/scripts/less.sh". -This shell script uses the Vim script "$VIMRUNTIME/macros/less.vim". It sets +This shell script uses the Vim script "$VIMRUNTIME/scripts/less.vim". It sets up mappings to simulate the commands that less supports. Otherwise, you can still use the Vim commands. diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 137e78801b..d032baf55c 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -801,6 +801,10 @@ Plugins: - logiPat - rrhelper - *vimball* +- macmap.vim +- tools/check_colors.vim +- macros/{justify,matchit,shellmenu,swapmous}.vim: use `packadd! justify` etc. + directly Providers: diff --git a/runtime/ftplugin/ada.vim b/runtime/ftplugin/ada.vim index 688d912126..50e1388c80 100644 --- a/runtime/ftplugin/ada.vim +++ b/runtime/ftplugin/ada.vim @@ -103,7 +103,7 @@ endif if !exists ("b:match_words") && \ exists ("loaded_matchit") " - " The following lines enable the macros/matchit.vim plugin for + " The following lines enable the matchit.vim plugin for " Ada-specific extended matching with the % key. " let s:notend = '\%(\<end\s\+\)\@<!' diff --git a/runtime/ftplugin/erlang.vim b/runtime/ftplugin/erlang.vim index 5a3ab717d9..e82263d300 100644 --- a/runtime/ftplugin/erlang.vim +++ b/runtime/ftplugin/erlang.vim @@ -97,7 +97,7 @@ if !exists('*ErlangFoldText') endfunction endif -" The following lines enable the macros/matchit.vim plugin for extended +" The following lines enable the matchit.vim plugin for extended " matching with the % key. let b:match_ignorecase = 0 let b:match_words = diff --git a/runtime/ftplugin/plaintex.vim b/runtime/ftplugin/plaintex.vim index 9e0e402680..17c1f5672f 100644 --- a/runtime/ftplugin/plaintex.vim +++ b/runtime/ftplugin/plaintex.vim @@ -22,7 +22,7 @@ let b:undo_ftplugin .= "| unlet! b:match_ignorecase b:match_skip b:match_words" let &l:define .= '\|\\new\(count\|dimen\|skip\|muskip\|box\|toks\|read\|write' \ . '\|fam\|insert\)' -" The following lines enable the macros/matchit.vim plugin for +" The following lines enable the matchit.vim plugin for " extended matching with the % key. " There is no default meaning for \(...\) etc., but many users define one. if exists("loaded_matchit") diff --git a/runtime/ftplugin/spec.vim b/runtime/ftplugin/spec.vim index dcf2908911..4aaef26a2e 100644 --- a/runtime/ftplugin/spec.vim +++ b/runtime/ftplugin/spec.vim @@ -210,7 +210,7 @@ if !exists("*s:ParseRpmVars") endfunction endif -" The following lines, along with the macros/matchit.vim plugin, +" The following lines, along with the matchit.vim plugin, " make it easy to navigate the different sections of a spec file " with the % key (thanks to Max Ischenko). diff --git a/runtime/ftplugin/tex.vim b/runtime/ftplugin/tex.vim index 0d68b51d46..7b58f67863 100644 --- a/runtime/ftplugin/tex.vim +++ b/runtime/ftplugin/tex.vim @@ -32,7 +32,7 @@ let &l:include .= '\|\\include{' " TeX file has \include{fname} (LaTeX only), strip everything except "fname". let &l:includeexpr = "substitute(v:fname, '^.\\{-}{\\|}.*', '', 'g')" -" The following lines enable the macros/matchit.vim plugin for +" The following lines enable the matchit.vim plugin for " extended matching with the % key. " ftplugin/plaintex.vim already defines b:match_skip and b:match_ignorecase " and matches \(, \), \[, \], \{, and \} . diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index f588162112..de1937f620 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -7923,7 +7923,7 @@ function vim.fn.setbufvar(buf, varname, val) end --- To clear the overrides pass an empty {list}: >vim --- call setcellwidths([]) --- ---- <You can use the script $VIMRUNTIME/tools/emoji_list.lua to see +--- <You can use the script $VIMRUNTIME/scripts/emoji_list.lua to see --- the effect for known emoji characters. Move the cursor --- through the text to check if the cell widths of your terminal --- match with what Vim knows about each emoji. If it doesn't diff --git a/runtime/macmap.vim b/runtime/macmap.vim deleted file mode 100644 index dc76f15f96..0000000000 --- a/runtime/macmap.vim +++ /dev/null @@ -1,75 +0,0 @@ -" System gvimrc file for Mac OS X -" Author: Benji Fisher <benji@member.AMS.org> -" Last Change: Thu Mar 09 09:00 AM 2006 EST -" -" Define Mac-standard keyboard shortcuts. - -" We don't change 'cpoptions' here, because it would not be set properly when -" a .vimrc file is found later. Thus don't use line continuation and use -" <special> in mappings. - -nnoremap <special> <D-n> :confirm enew<CR> -vmap <special> <D-n> <Esc><D-n>gv -imap <special> <D-n> <C-O><D-n> -cmap <special> <D-n> <C-C><D-n> -omap <special> <D-n> <Esc><D-n> - -nnoremap <special> <D-o> :browse confirm e<CR> -vmap <special> <D-o> <Esc><D-o>gv -imap <special> <D-o> <C-O><D-o> -cmap <special> <D-o> <C-C><D-o> -omap <special> <D-o> <Esc><D-o> - -nnoremap <silent> <special> <D-w> :if winheight(2) < 0 <Bar> confirm enew <Bar> else <Bar> confirm close <Bar> endif<CR> -vmap <special> <D-w> <Esc><D-w>gv -imap <special> <D-w> <C-O><D-w> -cmap <special> <D-w> <C-C><D-w> -omap <special> <D-w> <Esc><D-w> - -nnoremap <silent> <special> <D-s> :if expand("%") == ""<Bar>browse confirm w<Bar> else<Bar>confirm w<Bar>endif<CR> -vmap <special> <D-s> <Esc><D-s>gv -imap <special> <D-s> <C-O><D-s> -cmap <special> <D-s> <C-C><D-s> -omap <special> <D-s> <Esc><D-s> - -nnoremap <special> <D-S-s> :browse confirm saveas<CR> -vmap <special> <D-S-s> <Esc><D-s>gv -imap <special> <D-S-s> <C-O><D-s> -cmap <special> <D-S-s> <C-C><D-s> -omap <special> <D-S-s> <Esc><D-s> - -" From the Edit menu of SimpleText: -nnoremap <special> <D-z> u -vmap <special> <D-z> <Esc><D-z>gv -imap <special> <D-z> <C-O><D-z> -cmap <special> <D-z> <C-C><D-z> -omap <special> <D-z> <Esc><D-z> - -vnoremap <special> <D-x> "+x - -vnoremap <special> <D-c> "+y - -cnoremap <special> <D-c> <C-Y> - -nnoremap <special> <D-v> "+gP -cnoremap <special> <D-v> <C-R>+ -execute 'vnoremap <script> <special> <D-v>' paste#paste_cmd['v'] -execute 'inoremap <script> <special> <D-v>' paste#paste_cmd['i'] - -nnoremap <silent> <special> <D-a> :if &slm != ""<Bar>exe ":norm gggH<C-O>G"<Bar> else<Bar>exe ":norm ggVG"<Bar>endif<CR> -vmap <special> <D-a> <Esc><D-a> -imap <special> <D-a> <Esc><D-a> -cmap <special> <D-a> <C-C><D-a> -omap <special> <D-a> <Esc><D-a> - -nnoremap <special> <D-f> / -vmap <special> <D-f> <Esc><D-f> -imap <special> <D-f> <Esc><D-f> -cmap <special> <D-f> <C-C><D-f> -omap <special> <D-f> <Esc><D-f> - -nnoremap <special> <D-g> n -vmap <special> <D-g> <Esc><D-g> -imap <special> <D-g> <C-O><D-g> -cmap <special> <D-g> <C-C><D-g> -omap <special> <D-g> <Esc><D-g> diff --git a/runtime/macros/editexisting.vim b/runtime/macros/editexisting.vim deleted file mode 100644 index b21777d861..0000000000 --- a/runtime/macros/editexisting.vim +++ /dev/null @@ -1,119 +0,0 @@ -" Vim Plugin: Edit the file with an existing Vim if possible -" Maintainer: The Vim Project <https://github.com/vim/vim> -" Last Change: 2023 Aug 13 - -" This is a plugin, drop it in your (Unix) ~/.vim/plugin or (Win32) -" $VIM/vimfiles/plugin directory. Or make a symbolic link, so that you -" automatically use the latest version. - -" This plugin serves two purposes: -" 1. On startup, if we were invoked with one file name argument and the file -" is not modified then try to find another Vim instance that is editing -" this file. If there is one then bring it to the foreground and exit. -" 2. When a file is edited and a swap file exists for it, try finding that -" other Vim and bring it to the foreground. Requires Vim 7, because it -" uses the SwapExists autocommand event. -if v:version < 700 - finish -endif - -" Function that finds the Vim instance that is editing "filename" and brings -" it to the foreground. -func s:EditElsewhere(filename) - let fname_esc = substitute(a:filename, "'", "''", "g") - - let servers = serverlist() - while servers != '' - " Get next server name in "servername"; remove it from "servers". - let i = match(servers, "\n") - if i == -1 - let servername = servers - let servers = '' - else - let servername = strpart(servers, 0, i) - let servers = strpart(servers, i + 1) - endif - - " Skip ourselves. - if servername ==? v:servername - continue - endif - - " Check if this server is editing our file. - if remote_expr(servername, "bufloaded('" . fname_esc . "')") - " Yes, bring it to the foreground. - if has("win32") - call remote_foreground(servername) - endif - call remote_expr(servername, "foreground()") - - if remote_expr(servername, "exists('*EditExisting')") - " Make sure the file is visible in a window (not hidden). - " If v:swapcommand exists and is set, send it to the server. - if exists("v:swapcommand") - let c = substitute(v:swapcommand, "'", "''", "g") - call remote_expr(servername, "EditExisting('" . fname_esc . "', '" . c . "')") - else - call remote_expr(servername, "EditExisting('" . fname_esc . "', '')") - endif - endif - - if !(has('vim_starting') && has('gui_running') && has('gui_win32')) - " Tell the user what is happening. Not when the GUI is starting - " though, it would result in a message box. - echomsg "File is being edited by " . servername - sleep 2 - endif - return 'q' - endif - endwhile - return '' -endfunc - -" When the plugin is loaded and there is one file name argument: Find another -" Vim server that is editing this file right now. -if argc() == 1 && !&modified - if s:EditElsewhere(expand("%:p")) == 'q' - quit - endif -endif - -" Setup for handling the situation that an existing swap file is found. -try - au! SwapExists * let v:swapchoice = s:EditElsewhere(expand("<afile>:p")) -catch - " Without SwapExists we don't do anything for ":edit" commands -endtry - -" Function used on the server to make the file visible and possibly execute a -" command. -func! EditExisting(fname, command) - " Get the window number of the file in the current tab page. - let winnr = bufwinnr(a:fname) - if winnr <= 0 - " Not found, look in other tab pages. - let bufnr = bufnr(a:fname) - for i in range(tabpagenr('$')) - if index(tabpagebuflist(i + 1), bufnr) >= 0 - " Make this tab page the current one and find the window number. - exe 'tabnext ' . (i + 1) - let winnr = bufwinnr(a:fname) - break - endif - endfor - endif - - if winnr > 0 - exe winnr . "wincmd w" - elseif exists('*fnameescape') - exe "split " . fnameescape(a:fname) - else - exe "split " . escape(a:fname, " \t\n*?[{`$\\%#'\"|!<") - endif - - if a:command != '' - exe "normal! " . a:command - endif - - redraw -endfunc diff --git a/runtime/macros/justify.vim b/runtime/macros/justify.vim deleted file mode 100644 index 011a911401..0000000000 --- a/runtime/macros/justify.vim +++ /dev/null @@ -1,3 +0,0 @@ -" Load the justify package. -" For those users who were loading the justify plugin from here. -packadd justify diff --git a/runtime/macros/matchit.vim b/runtime/macros/matchit.vim deleted file mode 100644 index d4f8cb22e8..0000000000 --- a/runtime/macros/matchit.vim +++ /dev/null @@ -1,2 +0,0 @@ -" This file is a compatibility stub for any plugins which source it. -" Nvim already loads the matchit plugin by default; see ':help pi_matchit.txt'. diff --git a/runtime/macros/shellmenu.vim b/runtime/macros/shellmenu.vim deleted file mode 100644 index 4eb72a556a..0000000000 --- a/runtime/macros/shellmenu.vim +++ /dev/null @@ -1,3 +0,0 @@ -" Load the shellmenu package. -" For those users who were loading the shellmenu plugin from here. -packadd shellmenu diff --git a/runtime/macros/swapmous.vim b/runtime/macros/swapmous.vim deleted file mode 100644 index 5884d83473..0000000000 --- a/runtime/macros/swapmous.vim +++ /dev/null @@ -1,3 +0,0 @@ -" Load the swapmouse package. -" For those users who were loading the swapmous plugin from here. -packadd swapmouse diff --git a/runtime/tools/emoji_list.lua b/runtime/scripts/emoji_list.lua index 63bbbe4371..63bbbe4371 100644 --- a/runtime/tools/emoji_list.lua +++ b/runtime/scripts/emoji_list.lua diff --git a/runtime/macros/less.bat b/runtime/scripts/less.bat index 7395a70003..f80bf9209e 100644 --- a/runtime/macros/less.bat +++ b/runtime/scripts/less.bat @@ -4,7 +4,7 @@ rem Read stdin if no arguments were given. rem Written by Ken Takata. if "%1"=="" ( - nvim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" - + nvim --cmd "let no_plugin_maps = 1" -c "runtime! scripts/less.vim" - ) else ( - nvim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" %* + nvim --cmd "let no_plugin_maps = 1" -c "runtime! scripts/less.vim" %* ) diff --git a/runtime/macros/less.sh b/runtime/scripts/less.sh index 125162f10a..4ff32b0529 100755 --- a/runtime/macros/less.sh +++ b/runtime/scripts/less.sh @@ -8,9 +8,9 @@ if test -t 1; then echo "Missing filename" 1>&2 exit fi - nvim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' - + nvim --cmd 'let no_plugin_maps = 1' -c 'runtime! scripts/less.vim' - else - nvim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' "$@" + nvim --cmd 'let no_plugin_maps = 1' -c 'runtime! scripts/less.vim' "$@" fi else # Output is not a terminal, cat arguments or stdin diff --git a/runtime/macros/less.vim b/runtime/scripts/less.vim index 8df29d96e6..8df29d96e6 100644 --- a/runtime/macros/less.vim +++ b/runtime/scripts/less.vim diff --git a/runtime/mswin.vim b/runtime/scripts/mswin.vim index 689bc792cf..689bc792cf 100644 --- a/runtime/mswin.vim +++ b/runtime/scripts/mswin.vim diff --git a/runtime/tools/check_colors.vim b/runtime/tools/check_colors.vim deleted file mode 100644 index 035914980d..0000000000 --- a/runtime/tools/check_colors.vim +++ /dev/null @@ -1,252 +0,0 @@ -" This script tests a color scheme for some errors and lists potential errors. -" Load the scheme and source this script, like this: -" :edit colors/desert.vim | :so tools/check_colors.vim - -let s:save_cpo= &cpo -set cpo&vim - -func! Test_check_colors() - let l:savedview = winsaveview() - call cursor(1,1) - - " err is - " { - " colors_name: "message", - " init: "message", - " background: "message", - " ....etc - " highlight: { - " 'Normal': "Missing ...", - " 'Conceal': "Missing ..." - " ....etc - " } - " } - let err = {} - - " 1) Check g:colors_name is existing - if search('\<\%(g:\)\?colors_name\>', 'cnW') == 0 - let err['colors_name'] = 'g:colors_name not set' - else - let err['colors_name'] = 'OK' - endif - - " 2) Check for some well-defined highlighting groups - let hi_groups = [ - \ 'ColorColumn', - \ 'Comment', - \ 'Conceal', - \ 'Constant', - \ 'Cursor', - \ 'CursorColumn', - \ 'CursorLine', - \ 'CursorLineNr', - \ 'DiffAdd', - \ 'DiffChange', - \ 'DiffDelete', - \ 'DiffText', - \ 'Directory', - \ 'EndOfBuffer', - \ 'Error', - \ 'ErrorMsg', - \ 'FoldColumn', - \ 'Folded', - \ 'Identifier', - \ 'Ignore', - \ 'IncSearch', - \ 'LineNr', - \ 'MatchParen', - \ 'ModeMsg', - \ 'MoreMsg', - \ 'NonText', - \ 'Normal', - \ 'Pmenu', - \ 'PmenuSbar', - \ 'PmenuSel', - \ 'PmenuThumb', - \ 'PreProc', - \ 'Question', - \ 'QuickFixLine', - \ 'Search', - \ 'SignColumn', - \ 'Special', - \ 'SpecialKey', - \ 'SpellBad', - \ 'SpellCap', - \ 'SpellLocal', - \ 'SpellRare', - \ 'Statement', - \ 'StatusLine', - \ 'StatusLineNC', - \ 'StatusLineTerm', - \ 'StatusLineTermNC', - \ 'TabLine', - \ 'TabLineFill', - \ 'TabLineSel', - \ 'Title', - \ 'Todo', - \ 'ToolbarButton', - \ 'ToolbarLine', - \ 'Type', - \ 'Underlined', - \ 'VertSplit', - \ 'Visual', - \ 'VisualNOS', - \ 'WarningMsg', - \ 'WildMenu', - \ ] - let groups = {} - for group in hi_groups - if search('\c@suppress\s\+\<' .. group .. '\>', 'cnW') - " skip check, if the script contains a line like - " @suppress Visual: - continue - endif - 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 - continue - endif - 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') - \ && group != 'Cursor' - let groups[group] = 'Missing bg terminal color for ' .. group - continue - endif - 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') - \ && 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 - call cursor(1,1) - endfor - let err['highlight'] = groups - - " 3) Check, that it does not set background highlighting - " Doesn't ':hi Normal ctermfg=253 ctermfg=233' also set the background sometimes? - let bg_set = '\(set\?\|setl\(ocal\)\?\) .*\(background\|bg\)=\(dark\|light\)' - let bg_let = 'let \%([&]\%([lg]:\)\?\)\%(background\|bg\)\s*=\s*\([''"]\?\)\w\+\1' - let bg_pat = '\%(' .. bg_set .. '\|' .. bg_let .. '\)' - let line = search(bg_pat, 'cnW') - if search(bg_pat, 'cnW') - exe line - if search('hi \U\w\+\s\+\S', 'cbnW') - let err['background'] = 'Should not set background option after :hi statement' - endif - else - let err['background'] = 'OK' - endif - call cursor(1,1) - - " 4) Check, that t_Co is checked - let pat = '[&]t_Co\s*[<>=]=\?\s*\d\+' - if !search(pat, 'ncW') - let err['t_Co'] = 'Does not check terminal for capable colors' - endif - - " 5) Initializes correctly, e.g. should have a section like - " hi clear - " if exists("syntax_on") - " syntax reset - " endif - let pat = 'hi\%[ghlight]\s*clear\n\s*if\s*exists(\([''"]\)syntax_on\1)\n\s*syn\%[tax]\s*reset\n\s*endif' - if !search(pat, 'cnW') - let err['init'] = 'No initialization' - endif - - " 6) Does not use :syn on - if search('syn\%[tax]\s\+on', 'cnW') - let err['background'] = 'Should not issue :syn on' - endif - - " 7) Does not define filetype specific groups like vimCommand, htmlTag, - let hi_groups = filter(getcompletion('', 'filetype'), { _,v -> v !~# '\%[no]syn\%(color\|load\|tax\)' }) - 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` - if search(pat, 'cW') - call add(ft_groups, matchstr(getline('.'), pat)) - endif - call cursor(1,1) - endfor - if !empty(ft_groups) - let err['filetype'] = get(err, 'filetype', 'Should not define: ') . join(uniq(sort(ft_groups))) - endif - - " 8) Were debugPC and debugBreakpoint defined? - for group in ['debugPC', 'debugBreakpoint'] - 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). ' ' - endif - call cursor(1,1) - endfor - - " 9) Normal should be defined first, not use reverse, fg or bg - call cursor(1,1) - let pat = 'hi\%[ghlight] \+\%(link\|clear\)\@!\w\+\>' - call search(pat, 'cW') " Look for the first hi def, skipping `hi link` and `hi clear` - if getline('.') !~# '\m\<Normal\>' - let err['highlight']['Normal'] = 'Should be defined first' - elseif getline('.') =~# '\m\%(=\%(fg\|bg\)\)' - let err['highlight']['Normal'] = "Should not use 'fg' or 'bg'" - elseif getline('.') =~# '\m=\%(inv\|rev\)erse' - let err['highlight']['Normal'] = 'Should not use reverse mode' - endif - - call winrestview(l:savedview) - let g:err = err - - " print Result - call Result(err) -endfu - - -fu! Result(err) - let do_groups = 0 - echohl Title|echomsg "---------------"|echohl Normal - for key in sort(keys(a:err)) - if key ==# 'highlight' - let do_groups = !empty(a:err[key]) - continue - else - if a:err[key] !~ 'OK' - echohl Title - endif - echomsg printf("%15s: %s", key, a:err[key]) - echohl Normal - endif - endfor - echohl Title|echomsg "---------------"|echohl Normal - if do_groups - echohl Title | echomsg "Groups" | echohl Normal - for v1 in sort(keys(a:err['highlight'])) - echomsg printf("%25s: %s", v1, a:err['highlight'][v1]) - endfor - endif -endfu - -try - call Test_check_colors() -catch - echohl ErrorMsg - echomsg v:exception - echohl NONE -finally - let &cpo = s:save_cpo - unlet s:save_cpo -endtry diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index f0746e6159..351b9f0510 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -9540,7 +9540,7 @@ M.funcs = { To clear the overrides pass an empty {list}: >vim call setcellwidths([]) - <You can use the script $VIMRUNTIME/tools/emoji_list.lua to see + <You can use the script $VIMRUNTIME/scripts/emoji_list.lua to see the effect for known emoji characters. Move the cursor through the text to check if the cell widths of your terminal match with what Vim knows about each emoji. If it doesn't |