From 5805716ca4dac8f214ed5fd8c3f0a5905a394e8c Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 8 Oct 2024 06:51:57 +0800 Subject: vim-patch:9.1.0765: No test for patches 6.2.418 and 7.3.489 (#30713) Problem: No test for patches 6.2.418 and 7.3.489 Solution: Add a test. Fix some whitespace problems in test_mapping.vim. Document the behavior (zeertzjq). closes: vim/vim#15815 https://github.com/vim/vim/commit/5df3cb2898d8b4ad42ac367a436afc79bffecfb4 --- runtime/doc/map.txt | 2 ++ 1 file changed, 2 insertions(+) (limited to 'runtime') diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt index 7fd1f3bfbb..4a4e34661f 100644 --- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -66,6 +66,8 @@ modes. where the map command applies. Disallow mapping of {rhs}, to avoid nested and recursive mappings. Often used to redefine a command. + Note: Keys in {rhs} also won't trigger abbreviation, + with the exception of |i_CTRL-]| and |c_CTRL-]|. Note: When appears in the {rhs} this part is always applied even if remapping is disallowed. -- cgit From 7de8bdaeb8792dd7a2c6f57a2181d72a95707ef0 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Mon, 7 Oct 2024 22:10:19 +0200 Subject: vim-patch:4f51f3a: runtime(spec): set comments and commentstring options closes: vim/vim#15817 https://github.com/vim/vim/commit/4f51f3a5732725a25ff64f509506c9c81b1c96a5 Co-authored-by: Andreas Schneider --- runtime/ftplugin/spec.vim | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'runtime') diff --git a/runtime/ftplugin/spec.vim b/runtime/ftplugin/spec.vim index fa125be52c..dcf2908911 100644 --- a/runtime/ftplugin/spec.vim +++ b/runtime/ftplugin/spec.vim @@ -5,6 +5,7 @@ " Last Change: 2015 Jun 01 " Update by Zdenek Dohnal, 2022 May 17 " 2024 Sep 10 by Vim Project: add epoch support for spec changelog, #15537 +" 2024 Oct 07 by Vim Project: add comment support, #15817 if exists("b:did_ftplugin") finish @@ -14,6 +15,11 @@ let b:did_ftplugin = 1 let s:cpo_save = &cpo set cpo&vim +setlocal comments=b:# +setlocal commentstring=#\ %s + +let b:undo_ftplugin = "setlocal comments< commentstring<" + if !exists("no_plugin_maps") && !exists("no_spec_maps") if !hasmapto("SpecChangelog") map c SpecChangelog @@ -216,4 +222,4 @@ let b:match_words = let &cpo = s:cpo_save unlet s:cpo_save -let b:undo_ftplugin = "unlet! b:match_ignorecase b:match_words" +let b:undo_ftplugin ..= " | unlet! b:match_ignorecase b:match_words" -- cgit From 214ce8d33c11f75b3500212258f09b58b3d42e80 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 8 Oct 2024 07:42:20 -0700 Subject: fix(gen_help_html): first tag in h2 is broken #30720 Problem: In h2 headings, the first tag points to an invalid anchor. This used to work but regressed a few months ago, possibly related to ceea6898a8bdcb6c4cfe06b8dc4739c144e6b1f8. Solution: - Simplify the logic, don't try to be clever: - Always use to_heading_tag() for the h2 `id`. - Also: - Render tags as ``, because `` is unnecessary and doesn't look great in headings. - In the main h1, use "foo.txt" as the anchor `name` (rarely used), prefer the next found tag for the `href`. --- runtime/doc/nvim.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime') diff --git a/runtime/doc/nvim.txt b/runtime/doc/nvim.txt index f8eba3f7f8..86e344c654 100644 --- a/runtime/doc/nvim.txt +++ b/runtime/doc/nvim.txt @@ -4,7 +4,7 @@ NVIM REFERENCE MANUAL -Nvim *neovim* *nvim* *nvim-intro* +Nvim *nvim* *neovim* *nvim-intro* Nvim is based on Vim by Bram Moolenaar. -- cgit From 5f04e4ac4fd0d5058cf339b8824eed41b6981e85 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 9 Oct 2024 07:15:52 +0800 Subject: vim-patch:d3b55d7: runtime(help): highlight CTRL- correctly (#30727) https://github.com/vim/vim/commit/d3b55d7f76e32e9b7f895fe43f37435ce7bf782e Co-authored-by: Christian Brabandt --- runtime/syntax/help.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'runtime') diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim index fd128bb0b5..bccbacaeec 100644 --- a/runtime/syntax/help.vim +++ b/runtime/syntax/help.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Vim help file " Maintainer: The Vim Project -" Last Change: 2024 Oct 05 +" Last Change: 2024 Oct 08 " Former Maintainer: Bram Moolenaar " Quit when a (custom) syntax file was already loaded @@ -92,6 +92,7 @@ syn match helpSpecial "\[group]" syn match helpNormal "\[\(readonly\|fifo\|socket\|converted\|crypted\)]" syn match helpSpecial "CTRL-." +syn match helpSpecial "CTRL-<\a\+>" syn match helpSpecial "CTRL-SHIFT-." syn match helpSpecial "CTRL-Break" syn match helpSpecial "CTRL-PageUp" -- cgit From f449a38f6a47bee30f0d4e291d8234d1ac8288a7 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 9 Oct 2024 08:14:18 +0800 Subject: vim-patch:9.1.0770: current command line completion is a bit limited (#30728) Problem: current command completion is a bit limited Solution: Add the shellcmdline completion type and getmdcomplpat() function (Ruslan Russkikh). closes: vim/vim#15823 https://github.com/vim/vim/commit/0407d621bbad020b840ffbbbd25ba023bbc05edd Co-authored-by: Ruslan Russkikh --- runtime/doc/builtin.txt | 13 ++++++++++++- runtime/doc/map.txt | 2 ++ runtime/doc/usr_41.txt | 2 ++ runtime/lua/vim/_meta/vimfn.lua | 12 +++++++++++- runtime/syntax/vim.vim | 2 +- 5 files changed, 28 insertions(+), 3 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 4c726f86d2..617fd87553 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -3224,13 +3224,24 @@ getcharstr([{expr}]) *getcharstr()* Return: ~ (`string`) +getcmdcomplpat() *getcmdcomplpat()* + Return completion pattern of the current command-line. + Only works when the command line is being edited, thus + requires use of |c_CTRL-\_e| or |c_CTRL-R_=|. + Also see |getcmdtype()|, |setcmdpos()|, |getcmdline()|, + |getcmdprompt()|, |getcmdcompltype()| and |setcmdline()|. + Returns an empty string when completion is not defined. + + Return: ~ + (`string`) + getcmdcompltype() *getcmdcompltype()* Return the type of the current command-line completion. Only works when the command line is being edited, thus requires use of |c_CTRL-\_e| or |c_CTRL-R_=|. See |:command-completion| for the return string. Also see |getcmdtype()|, |setcmdpos()|, |getcmdline()|, - |getcmdprompt()| and |setcmdline()|. + |getcmdprompt()|, |getcmdcomplpat()| and |setcmdline()|. Returns an empty string when completion is not defined. Return: ~ diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt index 4a4e34661f..11048aee30 100644 --- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -1413,6 +1413,8 @@ completion can be enabled: -complete=runtime file and directory names in |'runtimepath'| -complete=scriptnames sourced script names -complete=shellcmd Shell command + -complete=shellcmdline First is a shell command and subsequent ones + are filenames. The same behavior as |:!cmd| -complete=sign |:sign| suboptions -complete=syntax syntax file names |'syntax'| -complete=syntime |:syntime| suboptions diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt index 8c7ed875cf..3202a70b76 100644 --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -906,6 +906,8 @@ Buffers, windows and the argument list: swapname() get the swap file path of a buffer Command line: *command-line-functions* + getcmdcomplpat() get completion pattern of the current command + line getcmdcompltype() get the type of the current command line completion getcmdline() get the current command line input diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index 3f6deba092..1e1e87fca8 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -2879,12 +2879,22 @@ function vim.fn.getcharsearch() end --- @return string function vim.fn.getcharstr(expr) end +--- Return completion pattern of the current command-line. +--- Only works when the command line is being edited, thus +--- requires use of |c_CTRL-\_e| or |c_CTRL-R_=|. +--- Also see |getcmdtype()|, |setcmdpos()|, |getcmdline()|, +--- |getcmdprompt()|, |getcmdcompltype()| and |setcmdline()|. +--- Returns an empty string when completion is not defined. +--- +--- @return string +function vim.fn.getcmdcomplpat() end + --- Return the type of the current command-line completion. --- Only works when the command line is being edited, thus --- requires use of |c_CTRL-\_e| or |c_CTRL-R_=|. --- See |:command-completion| for the return string. --- Also see |getcmdtype()|, |setcmdpos()|, |getcmdline()|, ---- |getcmdprompt()| and |setcmdline()|. +--- |getcmdprompt()|, |getcmdcomplpat()| and |setcmdline()|. --- Returns an empty string when completion is not defined. --- --- @return string diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 9073c6e7bf..6e38076d35 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -381,7 +381,7 @@ endif syn case ignore syn keyword vimUserCmdAttrKey contained a[ddr] ban[g] bar bu[ffer] com[plete] cou[nt] k[eepscript] n[args] ra[nge] re[gister] " GEN_SYN_VIM: vimUserCmdAttrCmplt, START_STR='syn keyword vimUserCmdAttrCmplt contained', END_STR='' -syn keyword vimUserCmdAttrCmplt contained arglist augroup behave breakpoint buffer color command compiler cscope diff_buffer dir dir_in_path environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages option packadd runtime scriptnames shellcmd sign syntax syntime tag tag_listfiles user var +syn keyword vimUserCmdAttrCmplt contained arglist augroup behave breakpoint buffer color command compiler cscope diff_buffer dir dir_in_path environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages option packadd runtime scriptnames shellcmd shellcmdline sign syntax syntime tag tag_listfiles user var syn keyword vimUserCmdAttrCmplt contained custom customlist nextgroup=vimUserCmdAttrCmpltFunc,vimUserCmdError syn match vimUserCmdAttrCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError " GEN_SYN_VIM: vimUserCmdAttrAddr, START_STR='syn keyword vimUserCmdAttrAddr contained', END_STR='' -- cgit From 525352117b489a73e686a0343ec8b68babc9c921 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 9 Oct 2024 09:43:14 +0200 Subject: vim-patch:cb1d1dc: runtime(skill): Update syntax file to fix string escapes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The syntax script allowed for single backslash escapes like this "string\"" But did not accommodate for the uncommon case: "\\" Let's fix this by also skipping over double backslashes in the skillString region. closes: vim/vim#15832 https://github.com/vim/vim/commit/cb1d1dcc879cadfe81ca0088b7e7ebbcd92a9ff3 Co-authored-by: Simão Afonso @ Powertools Tech --- runtime/syntax/skill.vim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'runtime') diff --git a/runtime/syntax/skill.vim b/runtime/syntax/skill.vim index 47afffc0a9..dd4c191b6f 100644 --- a/runtime/syntax/skill.vim +++ b/runtime/syntax/skill.vim @@ -1,13 +1,14 @@ " Vim syntax file " Language: SKILL " Maintainer: Toby Schaffer -" Last Change: 2003 May 11 " Comments: SKILL is a Lisp-like programming language for use in EDA " tools from Cadence Design Systems. It allows you to have " a programming environment within the Cadence environment " that gives you access to the complete tool set and design " database. This file also defines syntax highlighting for " certain Design Framework II interface functions. +" Last Change: 2003 May 11 +" 2024 Oct 08 by Vim Project: allow double backslashes in skillString " quit when a syntax file was already loaded if exists("b:current_syntax") @@ -509,7 +510,7 @@ syn match skilltechFunctions "(\(tech\|tc\)\u\a\+\>"hs=s+1 syn match skilltechFunctions "\<\(tech\|tc\)\u\a\+("he=e-1 " strings -syn region skillString start=+"+ skip=+\\"+ end=+"+ +syn region skillString start=+"+ skip=+\\\@ Date: Wed, 9 Oct 2024 09:43:26 +0200 Subject: vim-patch:830a802: runtime(nasm): Update nasm syntax script https://github.com/vim/vim/commit/830a802f9176ad38f115c18015987a871c99f3a4 Co-authored-by: Andrii Sokolov Co-authored-by: sarvel --- runtime/syntax/nasm.vim | 1009 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 806 insertions(+), 203 deletions(-) (limited to 'runtime') diff --git a/runtime/syntax/nasm.vim b/runtime/syntax/nasm.vim index e1dfc1db12..22d7c2729a 100644 --- a/runtime/syntax/nasm.vim +++ b/runtime/syntax/nasm.vim @@ -3,16 +3,16 @@ " Maintainer: Andrii Sokolov " Original Author: Manuel M.H. Stol " Former Maintainer: Manuel M.H. Stol -" Contributors: +" Contributors: " Leonard König (C string highlighting), " Peter Stanhope (Add missing 64-bit mode registers) -" Frédéric Hamel (F16c support, partial AVX +" Frédéric Hamel (F16c support, partial AVX " support, other) -" Last Change: 2023 Sep 7 +" sarvel (Complete set of supported instructions) +" Last Change: 2024 Oct 8 " NASM Home: http://www.nasm.us/ - " Setup Syntax: " quit when a syntax file was already loaded if exists("b:current_syntax") @@ -22,7 +22,6 @@ endif syn case ignore - " Vim search and movement commands on identifers " Comments at start of a line inside which to skip search for indentifiers setlocal comments=:; @@ -89,16 +88,20 @@ syn match nasmString +\("[^"]\{-}"\|'[^']\{-}'\)+ " Highlight C escape- and format-sequences within ``-strings syn match nasmCString +\(`[^`]\{-}`\)+ contains=nasmCStringEscape,nasmCStringFormat extend syn case ignore -syn match nasmBinNumber "\<[0-1]\+b\>" -syn match nasmBinNumber "\<\~[0-1]\+b\>"lc=1 -syn match nasmOctNumber "\<\o\+q\>" -syn match nasmOctNumber "\<\~\o\+q\>"lc=1 -syn match nasmDecNumber "\<\d\+\>" -syn match nasmDecNumber "\<\~\d\+\>"lc=1 -syn match nasmHexNumber "\<\(\d\x*h\|0x\x\+\|\$\d\x*\)\>" -syn match nasmHexNumber "\<\~\(\d\x*h\|0x\x\+\|\$\d\x*\)\>"lc=1 -syn match nasmFltNumber "\<\d\+\.\d*\(e[+-]\=\d\+\)\=\>" -syn keyword nasmFltNumber Inf Infinity Indefinite NaN SNaN QNaN +syn match nasmBinNumber "\<\([01][01_]*[by]\|0[by][01_]\+\)\>" +syn match nasmBinNumber "\<\~\([01][01_]*[by]\|0[by][01_]\+\)\>"lc=1 +syn match nasmOctNumber "\<\(\o[0-7_]*[qo]\|0[qo][0-7_]\+\)\>" +syn match nasmOctNumber "\<\~\(\o[0-7_]*[qo]\|0[qo][0-7_]\+\)\>"lc=1 +syn match nasmDecNumber "\<\(\d[0-9_]*\|\d[0-9_]*d\|0d[0-9_]\+\)\>" +syn match nasmDecNumber "\<\~\(\d[0-9_]*\|\d[0-9_]*d\|0d[0-9_]\+\)\>"lc=1 +syn match nasmHexNumber "\<\(\d[0-9a-f_]*h\|0[xh][0-9a-f_]\+\|\$\d[0-9a-f_]*\)\>" +syn match nasmHexNumber "\<\~\(\d[0-9a-f_]*h\|0[xh][0-9a-f_]\+\|\$\d[0-9a-f_]*\)\>"lc=1 +syn match nasmBinFloat "\<\(0[by][01_]*\.[01_]*\(p[+-]\=[0-9_]*\)\=\)\|\(0[by][01_]*p[+-]\=[0-9_]*\)\>" +syn match nasmOctFloat "\<\(0[qo][0-7_]*\.[0-7_]*\(p[+-]\=[0-9_]*\)\=\)\|\(0[qo][0-7_]*p[+-]\=[0-9_]*\)\>" +syn match nasmDecFloat "\<\(\d[0-9_]*\.[0-9_]*\(e[+-]\=[0-9_]*\)\=\)\|\(\d[0-9_]*e[+-]\=[0-9_]*\)\>" +syn match nasmHexFloat "\<\(0[xh][0-9a-f_]\+\.[0-9a-f_]*\(p[+-]\=[0-9_]*\)\=\)\|\(0[xh][0-9a-f_]\+p[+-]\=[0-9_]*\)\>" +syn keyword nasmSpecFloat Inf NaN SNaN QNaN __?Infinity?__ __?NaN?__ __?SNaN?__ __?QNaN?__ +syn match nasmBcdConst "\<\(\d[0-9_]*p\|0p[0-9_]\+\)\>" syn match nasmNumberError "\<\~\s*\d\+\.\d*\(e[+-]\=\d\+\)\=\>" @@ -108,8 +111,8 @@ syn keyword nasmTypeError DF EXTRN FWORD RESF TBYTE syn keyword nasmType FAR NEAR SHORT syn keyword nasmType BYTE WORD DWORD QWORD DQWORD HWORD DHWORD TWORD syn keyword nasmType CDECL FASTCALL NONE PASCAL STDCALL -syn keyword nasmStorage DB DW DD DQ DDQ DT -syn keyword nasmStorage RESB RESW RESD RESQ RESDQ REST +syn keyword nasmStorage DB DW DD DQ DT DO DY DZ +syn keyword nasmStorage RESB RESW RESD RESQ REST RESO RESY RESZ syn keyword nasmStorage EXTERN GLOBAL COMMON " Structured storage types syn match nasmTypeError "\<\(AT\|I\=\(END\)\=\(STRUCT\=\|UNION\)\|I\=END\)\>" @@ -272,7 +275,6 @@ syn keyword nasmConstant __BITS__ __DATE__ __FILE__ __FORMAT__ __LINE__ syn keyword nasmConstant __NASM_MAJOR__ __NASM_MINOR__ __NASM_VERSION__ syn keyword nasmConstant __TIME__ " Instruction modifiers -syn match nasmInstructnError "\" syn match nasmInstrModifier "\(^\|:\)\s*[C-GS]S\>"ms=e-1 syn keyword nasmInstrModifier A16 A32 O16 O32 syn match nasmInstrModifier "\"lc=5,ms=e-1 @@ -290,7 +292,7 @@ syn keyword nasmStdDirective ENDPROC EPILOGUE LOCALS PROC PROLOGUE USES syn keyword nasmStdDirective ENDIF ELSE ELIF ELSIF IF "syn keyword nasmStdDirective BREAK CASE DEFAULT ENDSWITCH SWITCH "syn keyword nasmStdDirective CASE OF ENDCASE -syn keyword nasmStdDirective DO ENDFOR ENDWHILE FOR REPEAT UNTIL WHILE EXIT +syn keyword nasmStdDirective ENDFOR ENDWHILE FOR REPEAT UNTIL WHILE EXIT syn case ignore " Format specific directives: (all formats) " (excluded: extension directives to section, global, common and extern) @@ -302,193 +304,726 @@ syn keyword nasmFmtDirective _GLOBAL_OFFSET_TABLE_ __GLOBAL_OFFSET_TABLE_ syn keyword nasmFmtDirective ..start ..got ..gotoff ..gotpc ..plt ..sym syn case ignore - - +" Instruction errors: +" Instruction modifiers +syn match nasmInstructnError "\" " Standard Instructions: -syn match nasmInstructnError "\<\(F\=CMOV\|SET\)N\=\a\{0,2}\>" +syn match nasmInstructnError "\<\(F\=CMOV\|SET\|J\)N\=\a\{0,2}\>" +syn match nasmInstructnError "\" syn keyword nasmInstructnError CMPS MOVS LCS LODS STOS XLAT -syn match nasmStdInstruction "\" syn match nasmInstructnError "\\s*[^:]"he=e-1 -syn match nasmStdInstruction "\<\(CMOV\|J\|SET\)\(N\=\([ABGL]E\=\|[CEOSZ]\)\|P[EO]\=\)\>" -syn match nasmStdInstruction "\" -syn keyword nasmStdInstruction AAA AAD AAM AAS ADC ADD AND -syn keyword nasmStdInstruction BOUND BSF BSR BSWAP BT[C] BTR BTS -syn keyword nasmStdInstruction CALL CBW CDQ CDQE CLC CLD CMC CMP CMPSB CMPSD CMPSW CMPSQ -syn keyword nasmStdInstruction CMPXCHG CMPXCHG8B CPUID CWD[E] CQO -syn keyword nasmStdInstruction DAA DAS DEC DIV ENTER -syn keyword nasmStdInstruction IDIV IMUL INC INT[O] IRET[D] IRETW IRETQ -syn keyword nasmStdInstruction JCXZ JECXZ JMP -syn keyword nasmStdInstruction LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD LODSQ -syn keyword nasmStdInstruction LODSW LOOP[E] LOOPNE LOOPNZ LOOPZ LSS -syn keyword nasmStdInstruction MOVSB MOVSD MOVSW MOVSX MOVSQ MOVZX MUL NEG NOP NOT -syn keyword nasmStdInstruction OR POPA[D] POPAW POPF[D] POPFW POPFQ -syn keyword nasmStdInstruction PUSH[AD] PUSHAW PUSHF[D] PUSHFW PUSHFQ -syn keyword nasmStdInstruction PAUSE -syn keyword nasmStdInstruction RCL RCR RETF RET[N] ROL ROR -syn keyword nasmStdInstruction SAHF SAL SAR SBB SCASB SCASD SCASW -syn keyword nasmStdInstruction SHL[D] SHR[D] STC STD STOSB STOSD STOSW STOSQ SUB -syn keyword nasmStdInstruction TEST XADD XCHG XLATB XOR -syn keyword nasmStdInstruction LFENCE MFENCE SFENCE - - -" System Instructions: (usually privileged) -" Verification of pointer parameters -syn keyword nasmSysInstruction ARPL LAR LSL VERR VERW -" Addressing descriptor tables -syn keyword nasmSysInstruction LLDT SLDT LGDT SGDT -" Multitasking -syn keyword nasmSysInstruction LTR STR -" Coprocessing and Multiprocessing (requires fpu and multiple cpu's resp.) -syn keyword nasmSysInstruction CLTS LOCK WAIT " Input and Output syn keyword nasmInstructnError INS OUTS -syn keyword nasmSysInstruction IN INSB INSW INSD OUT OUTSB OUTSB OUTSW OUTSD -" Interrupt control -syn keyword nasmSysInstruction CLI STI LIDT SIDT -" System control -syn match nasmSysInstruction "\"me=s+3 -syn keyword nasmSysInstruction HLT INVD LMSW -syn keyword nasmSseInstruction PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHNTA -syn keyword nasmSseInstruction RSM SFENCE SMSW SYSENTER SYSEXIT UD2 WBINVD -" TLB (Translation Lookahead Buffer) testing -syn match nasmSysInstruction "\"me=s+3 -syn keyword nasmSysInstruction INVLPG - -" Debugging Instructions: (privileged) -syn match nasmDbgInstruction "\"me=s+3 -syn keyword nasmDbgInstruction INT1 INT3 RDMSR RDTSC RDPMC WRMSR - - -" Floating Point Instructions: (requires FPU) -syn match nasmFpuInstruction "\" -syn keyword nasmFpuInstruction F2XM1 FABS FADD[P] FBLD FBSTP -syn keyword nasmFpuInstruction FCHS FCLEX FCOM[IP] FCOMP[P] FCOS -syn keyword nasmFpuInstruction FDECSTP FDISI FDIV[P] FDIVR[P] FENI FFREE -syn keyword nasmFpuInstruction FIADD FICOM[P] FIDIV[R] FILD -syn keyword nasmFpuInstruction FIMUL FINCSTP FINIT FIST[P] FISUB[R] -syn keyword nasmFpuInstruction FLD[1] FLDCW FLDENV FLDL2E FLDL2T FLDLG2 -syn keyword nasmFpuInstruction FLDLN2 FLDPI FLDZ FMUL[P] -syn keyword nasmFpuInstruction FNCLEX FNDISI FNENI FNINIT FNOP FNSAVE -syn keyword nasmFpuInstruction FNSTCW FNSTENV FNSTSW FNSTSW -syn keyword nasmFpuInstruction FPATAN FPREM[1] FPTAN FRNDINT FRSTOR -syn keyword nasmFpuInstruction FSAVE FSCALE FSETPM FSIN FSINCOS FSQRT -syn keyword nasmFpuInstruction FSTCW FSTENV FST[P] FSTSW FSUB[P] FSUBR[P] -syn keyword nasmFpuInstruction FTST FUCOM[IP] FUCOMP[P] -syn keyword nasmFpuInstruction FXAM FXCH FXTRACT FYL2X FYL2XP1 - - -" Multi Media Xtension Packed Instructions: (requires MMX unit) " Standard MMX instructions: (requires MMX1 unit) syn match nasmInstructnError "\" syn match nasmInstructnError "\" -syn keyword nasmMmxInstruction EMMS MOVD MOVQ -syn keyword nasmMmxInstruction PACKSSDW PACKSSWB PACKUSWB PADDB PADDD PADDW -syn keyword nasmMmxInstruction PADDSB PADDSW PADDUSB PADDUSW PAND[N] -syn keyword nasmMmxInstruction PCMPEQB PCMPEQD PCMPEQW PCMPGTB PCMPGTD PCMPGTW -syn keyword nasmMmxInstruction PMACHRIW PMADDWD PMULHW PMULLW POR -syn keyword nasmMmxInstruction PSLLD PSLLQ PSLLW PSRAD PSRAW PSRLD PSRLQ PSRLW -syn keyword nasmMmxInstruction PSUBB PSUBD PSUBW PSUBSB PSUBSW PSUBUSB PSUBUSW -syn keyword nasmMmxInstruction PUNPCKHBW PUNPCKHDQ PUNPCKHWD -syn keyword nasmMmxInstruction PUNPCKLBW PUNPCKLDQ PUNPCKLWD PXOR -" Extended MMX instructions: (requires MMX2/SSE unit) -syn keyword nasmMmxInstruction MASKMOVQ MOVNTQ -syn keyword nasmMmxInstruction PAVGB PAVGW PEXTRW PINSRW PMAXSW PMAXUB -syn keyword nasmMmxInstruction PMINSW PMINUB PMOVMSKB PMULHUW PSADBW PSHUFW - - " Streaming SIMD Extension Packed Instructions: (requires SSE unit) syn match nasmInstructnError "\" -syn match nasmSseInstruction "\" -syn keyword nasmSseInstruction ADDPS ADDSS ANDNPS ANDPS -syn keyword nasmSseInstruction COMISS CVTPI2PS CVTPS2PI -syn keyword nasmSseInstruction CVTSI2SS CVTSS2SI CVTTPS2PI CVTTSS2SI -syn keyword nasmSseInstruction DIVPS DIVSS FXRSTOR FXSAVE LDMXCSR -syn keyword nasmSseInstruction MAXPS MAXSS MINPS MINSS MOVAPS MOVHLPS MOVHPS -syn keyword nasmSseInstruction MOVLHPS MOVLPS MOVMSKPS MOVNTPS MOVSS MOVUPS -syn keyword nasmSseInstruction MULPS MULSS -syn keyword nasmSseInstruction ORPS RCPPS RCPSS RSQRTPS RSQRTSS -syn keyword nasmSseInstruction SHUFPS SQRTPS SQRTSS STMXCSR SUBPS SUBSS -syn keyword nasmSseInstruction UCOMISS UNPCKHPS UNPCKLPS XORPS - -" F16c Instructions -syn keyword nasmF16CInstruction VCVTPH2PS VCVTPS2PH - " AVX Instructions -syn keyword nasmAVXInstruction VCVTDQ2PD VCVTDQ2PS VCVTPD2DQ VCVTPD2P VCVTPD2PS -syn keyword nasmAVXInstruction VCVTPS2DQ VCVTPS2PD -syn keyword nasmAVXInstruction VCVTSD2SI VCVTSD2SS VCVTSI2SD VCVTSI2SS VCVTSS2SD VCVTSS2SI -syn keyword nasmAVXInstruction VMAXPS VMAXSS VMINPS VMINSS VMOVAPS VMOVHLPS VMOVHPS -syn keyword nasmAVXInstruction VMAXPD VMAXSD VMINPD VMINSD VMOVAPD VMOVHLPD VMOVHPD -syn keyword nasmAVXInstruction VMOVLHPS VMOVLPS VMOVMSKPS VMOVNTPS VMOVSS VMOVUPS -syn keyword nasmAVXInstruction VMULPS VMULSS VPXOR - syn match nasmInstructnError "\" -syn match nasmAVXInstruction "\" - -syn keyword nasmAVXInstruction VORPS VPABSB VPABSD VPABSW -syn keyword nasmAVXInstruction PACKSSDW VPACKSSWB VPACKUSDW VPACKUSWB VPADDD -syn keyword nasmAVXInstruction PADDQ VPADDSB VPADDSW VPADDUSB VPADDUSW -syn keyword nasmAVXInstruction PADDW VPALIGNR VPAND VPANDN VPAVGB -syn keyword nasmAVXInstruction PAVGW VPBLENDD VPBLENDVB VPBLENDW VPBROADCASTB -syn keyword nasmAVXInstruction PBROADCASTD VPBROADCASTQ VPBROADCASTW VPCLMULQDQ VPCMOV -syn keyword nasmAVXInstruction PCMPEQB VPCMPEQD VPCMPEQQ VPCMPEQW VPCMPESTRI -syn keyword nasmAVXInstruction PCMPESTRM VPCMPGTB VPCMPGTD VPCMPGTQ VPCMPGTW -syn keyword nasmAVXInstruction PCMPISTRI VPCMPISTRM VPCOMB VPCOMD VPCOMQ -syn keyword nasmAVXInstruction PCOMUB VPCOMUD VPCOMUQ VPCOMUW VPCOMW -syn keyword nasmAVXInstruction PERM2FVPERM2IVPERMD VPERMIL2PD VPERMIL2PS VPERMILPD VPERMILPS -syn keyword nasmAVXInstruction PERMPD VPERMPS VPERMQ VPEXTRB VPEXTRD -syn keyword nasmAVXInstruction PEXTRQ VPEXTRW VPGATHERDD VPGATHERDQ VPGATHERQD -syn keyword nasmAVXInstruction PGATHERQQ VPHADDBD VPHADDBQ VPHADDBW VPHADDD -syn keyword nasmAVXInstruction PHADDDQ VPHADDSW VPHADDUBQ VPHADDUBW VPHADDUDQ -syn keyword nasmAVXInstruction PHADDUWD VPHADDUWQ VPHADDW VPHADDWD VPHADDWQ -syn keyword nasmAVXInstruction PHMINPOSUW VPHSUBBW VPHSUBD VPHSUBDQ VPHSUBSW -syn keyword nasmAVXInstruction PHSUBW VPHSUBWD VPINSRB VPINSRD VPINSRQ -syn keyword nasmAVXInstruction PINSRW VPMACSDD VPMACSDQH -syn keyword nasmAVXInstruction VPMACSDQL VPMACSSDD VPMACSSDQL VPMACSSQH VPMACSSWD -syn keyword nasmAVXInstruction VPMACSSWW VPMACSWD VPMACSWW VPMADCSSWD VPMADCSWD -syn keyword nasmAVXInstruction VPMADDUBSW VPMADDWD VPMASKMOVD VPMASKMOVQ VPMAXSB -syn keyword nasmAVXInstruction VPMAXSD VPMAXSW VPMAXUB VPMAXUD VPMAXUW -syn keyword nasmAVXInstruction VPMINSB VPMINSD VPMINSW VPMINUB VPMINUD -syn keyword nasmAVXInstruction VPMINUW VPMOVMSKB VPMOVSXBD VPMOVSXBQ VPMOVSXBW -syn keyword nasmAVXInstruction VPMOVSXDQ VPMOVSXWD VPMOVSXWQ VPMOVZXBD VPMOVZXBQ -syn keyword nasmAVXInstruction VPMOVZXBW VPMOVZXDQ VPMOVZXWD VPMOVZXWQ VPMULDQ -syn keyword nasmAVXInstruction VPMULHRSW VPMULHUW VPMULHW VPMULLD VPMULLW -syn keyword nasmAVXInstruction VPMULUDQ VPOR VPPERM VPROTB VPROTD -syn keyword nasmAVXInstruction VPROTQ VPROTW VPSADBW VPSHAB VPSHAD -syn keyword nasmAVXInstruction VPSHAQ VPSHAW VPSHLB VPSHLD VPSHLQ -syn keyword nasmAVXInstruction VPSHLW VPSHUFB VPSHUFD VPSHUFHW VPSHUFLW -syn keyword nasmAVXInstruction VPSIGNB VPSIGND VPSIGNW VPSLLD VPSLLDQ -syn keyword nasmAVXInstruction VPSLLQ VPSLLVD VPSLLVQ VPSLLW VPSRAD -syn keyword nasmAVXInstruction VPSRAVD VPSRAW VPSRLD VPSRLDQ VPSRLQ -syn keyword nasmAVXInstruction VPSRLVD VPSRLVQ VPSRLW VPSUBB VPSUBD -syn keyword nasmAVXInstruction VPSUBQ VPSUBSB VPSUBSW VPSUBUSB VPSUBUSW -syn keyword nasmAVXInstruction VPSUBW VPTEST VPUNPCKHBW VPUNPCKHDQ VPUNPCKHQDQ -syn keyword nasmAVXInstruction VPUNPCKHWD VPUNPCKLBW VPUNPCKLDQ VPUNPCKLQDQ VPUNPCKLWD -syn keyword nasmAVXInstruction VPXOR VRCPPS - - -" Three Dimensional Now Packed Instructions: (requires 3DNow! unit) -syn keyword nasmNowInstruction FEMMS PAVGUSB PF2ID PFACC PFADD PFCMPEQ PFCMPGE -syn keyword nasmNowInstruction PFCMPGT PFMAX PFMIN PFMUL PFRCP PFRCPIT1 -syn keyword nasmNowInstruction PFRCPIT2 PFRSQIT1 PFRSQRT PFSUB[R] PI2FD -syn keyword nasmNowInstruction PMULHRWA PREFETCH[W] - - -" Vendor Specific Instructions: + + +" Instructions: +" Standard +syn keyword nasmInstructionStandard AAA AAD AAM AAS ADC +syn keyword nasmInstructionStandard ADD AND ARPL +syn keyword nasmInstructionStandard BOUND BSF BSR BSWAP BT +syn keyword nasmInstructionStandard BTC BTR BTS CALL CBW +syn keyword nasmInstructionStandard CDQ CDQE CLC CLD CLI +syn keyword nasmInstructionStandard CLTS CMC CMP CMPSB CMPSD +syn keyword nasmInstructionStandard CMPSQ CMPSW CMPXCHG CMPXCHG486 CMPXCHG8B +syn keyword nasmInstructionStandard CMPXCHG16B CPUID CQO +syn keyword nasmInstructionStandard CWD CWDE DAA DAS DEC +syn keyword nasmInstructionStandard DIV EMMS ENTER EQU +syn keyword nasmInstructionStandard F2XM1 FABS FADD FADDP FBLD +syn keyword nasmInstructionStandard FBSTP FCHS FCLEX FCMOVB FCMOVBE +syn keyword nasmInstructionStandard FCMOVE FCMOVNB FCMOVNBE FCMOVNE FCMOVNU +syn keyword nasmInstructionStandard FCMOVU FCOM FCOMI FCOMIP FCOMP +syn keyword nasmInstructionStandard FCOMPP FCOS FDECSTP FDISI FDIV +syn keyword nasmInstructionStandard FDIVP FDIVR FDIVRP FEMMS FENI +syn keyword nasmInstructionStandard FFREE FFREEP FIADD FICOM FICOMP +syn keyword nasmInstructionStandard FIDIV FIDIVR FILD FIMUL FINCSTP +syn keyword nasmInstructionStandard FINIT FIST FISTP FISTTP FISUB +syn keyword nasmInstructionStandard FISUBR FLD FLD1 FLDCW FLDENV +syn keyword nasmInstructionStandard FLDL2E FLDL2T FLDLG2 FLDLN2 FLDPI +syn keyword nasmInstructionStandard FLDZ FMUL FMULP FNCLEX FNDISI +syn keyword nasmInstructionStandard FNENI FNINIT FNOP FNSAVE FNSTCW +syn keyword nasmInstructionStandard FNSTENV FNSTSW FPATAN FPREM FPREM1 +syn keyword nasmInstructionStandard FPTAN FRNDINT FRSTOR FSAVE FSCALE +syn keyword nasmInstructionStandard FSETPM FSIN FSINCOS FSQRT FST +syn keyword nasmInstructionStandard FSTCW FSTENV FSTP FSTSW FSUB +syn keyword nasmInstructionStandard FSUBP FSUBR FSUBRP FTST FUCOM +syn keyword nasmInstructionStandard FUCOMI FUCOMIP FUCOMP FUCOMPP FXAM +syn keyword nasmInstructionStandard FXCH FXTRACT FYL2X FYL2XP1 HLT +syn keyword nasmInstructionStandard IBTS ICEBP IDIV IMUL IN +syn keyword nasmInstructionStandard INC INSB INSD INSW INT +syn keyword nasmInstructionStandard INTO +syn keyword nasmInstructionStandard INVD INVPCID INVLPG INVLPGA IRET +syn keyword nasmInstructionStandard IRETD IRETQ IRETW JCXZ JECXZ +syn keyword nasmInstructionStandard JRCXZ JMP JMPE LAHF LAR +syn keyword nasmInstructionStandard LDS LEA LEAVE LES LFENCE +syn keyword nasmInstructionStandard LFS LGDT LGS LIDT LLDT +syn keyword nasmInstructionStandard LMSW LOADALL LOADALL286 LODSB LODSD +syn keyword nasmInstructionStandard LODSQ LODSW LOOP LOOPE LOOPNE +syn keyword nasmInstructionStandard LOOPNZ LOOPZ LSL LSS LTR +syn keyword nasmInstructionStandard MFENCE MONITOR MONITORX MOV MOVD +syn keyword nasmInstructionStandard MOVQ MOVSB MOVSD MOVSQ MOVSW +syn keyword nasmInstructionStandard MOVSX MOVSXD MOVSX MOVZX MUL +syn keyword nasmInstructionStandard MWAIT MWAITX NEG NOP NOT +syn keyword nasmInstructionStandard OR OUT OUTSB OUTSD OUTSW +syn keyword nasmInstructionStandard PACKSSDW PACKSSWB PACKUSWB PADDB PADDD +syn keyword nasmInstructionStandard PADDSB PADDSW PADDUSB PADDUSW +syn keyword nasmInstructionStandard PADDW PAND PANDN PAUSE +syn keyword nasmInstructionStandard PAVGUSB PCMPEQB PCMPEQD PCMPEQW PCMPGTB +syn keyword nasmInstructionStandard PCMPGTD PCMPGTW PF2ID PFACC +syn keyword nasmInstructionStandard PFADD PFCMPEQ PFCMPGE PFCMPGT PFMAX +syn keyword nasmInstructionStandard PFMIN PFMUL PFRCP PFRCPIT1 PFRCPIT2 +syn keyword nasmInstructionStandard PFRSQIT1 PFRSQRT PFSUB PFSUBR PI2FD +syn keyword nasmInstructionStandard PMADDWD PMULHRWA +syn keyword nasmInstructionStandard PMULHW PMULLW +syn keyword nasmInstructionStandard POP POPA POPAD +syn keyword nasmInstructionStandard POPAW POPF POPFD POPFQ POPFW +syn keyword nasmInstructionStandard POR PREFETCH PREFETCHW PSLLD PSLLQ +syn keyword nasmInstructionStandard PSLLW PSRAD PSRAW PSRLD PSRLQ +syn keyword nasmInstructionStandard PSRLW PSUBB PSUBD PSUBSB +syn keyword nasmInstructionStandard PSUBSW PSUBUSB PSUBUSW PSUBW PUNPCKHBW +syn keyword nasmInstructionStandard PUNPCKHDQ PUNPCKHWD PUNPCKLBW PUNPCKLDQ PUNPCKLWD +syn keyword nasmInstructionStandard PUSH PUSHA PUSHAD PUSHAW PUSHF +syn keyword nasmInstructionStandard PUSHFD PUSHFQ PUSHFW PXOR RCL +syn keyword nasmInstructionStandard RCR +syn keyword nasmInstructionStandard RDTSCP RET RETF RETN RETW +syn keyword nasmInstructionStandard RETFW RETNW RETD RETFD RETND +syn keyword nasmInstructionStandard RETQ RETFQ RETNQ ROL ROR +syn keyword nasmInstructionStandard RSM RSTS +syn keyword nasmInstructionStandard SAHF SAL SALC SAR SBB +syn keyword nasmInstructionStandard SCASB SCASD SCASQ SCASW SFENCE +syn keyword nasmInstructionStandard SGDT SHL SHLD SHR SHRD +syn keyword nasmInstructionStandard SIDT SLDT SKINIT SMI +syn keyword nasmInstructionStandard SMSW STC STD STI +syn keyword nasmInstructionStandard STOSB STOSD STOSQ STOSW STR +syn keyword nasmInstructionStandard SUB SWAPGS +syn keyword nasmInstructionStandard SYSCALL SYSENTER SYSEXIT SYSRET TEST +syn keyword nasmInstructionStandard UD0 UD1 UD2B UD2 UD2A +syn keyword nasmInstructionStandard UMOV VERR VERW FWAIT WBINVD +syn keyword nasmInstructionStandard XADD XBTS XCHG +syn keyword nasmInstructionStandard XLATB XLAT XOR CMOVA CMOVAE +syn keyword nasmInstructionStandard CMOVB CMOVBE CMOVC CMOVE CMOVG +syn keyword nasmInstructionStandard CMOVGE CMOVL CMOVLE CMOVNA CMOVNAE +syn keyword nasmInstructionStandard CMOVNB CMOVNBE CMOVNC CMOVNE CMOVNG +syn keyword nasmInstructionStandard CMOVNGE CMOVNL CMOVNLE CMOVNO CMOVNP +syn keyword nasmInstructionStandard CMOVNS CMOVNZ CMOVO CMOVP CMOVPE +syn keyword nasmInstructionStandard CMOVPO CMOVS CMOVZ JA JAE +syn keyword nasmInstructionStandard JB JBE JC JCXZ JE +syn keyword nasmInstructionStandard JECXZ JG JGE JL JLE +syn keyword nasmInstructionStandard JNA JNAE JNB JNBE JNC +syn keyword nasmInstructionStandard JNE JNG JNGE JNL JNLE +syn keyword nasmInstructionStandard JNO JNP JNS JNZ JO +syn keyword nasmInstructionStandard JP JPE JPO JRCXZ JS +syn keyword nasmInstructionStandard JZ SETA SETAE SETB SETBE +syn keyword nasmInstructionStandard SETC SETE SETG SETGE SETL +syn keyword nasmInstructionStandard SETLE SETNA SETNAE SETNB SETNBE +syn keyword nasmInstructionStandard SETNC SETNE SETNG SETNGE SETNL +syn keyword nasmInstructionStandard SETNLE SETNO SETNP SETNS SETNZ +syn keyword nasmInstructionStandard SETO SETP SETPE SETPO SETS +syn keyword nasmInstructionStandard SETZ +" SIMD +syn keyword nasmInstructionSIMD ADDPS ADDSS ANDNPS ANDPS CMPEQPS +syn keyword nasmInstructionSIMD CMPEQSS CMPLEPS CMPLESS CMPLTPS CMPLTSS +syn keyword nasmInstructionSIMD CMPNEQPS CMPNEQSS CMPNLEPS CMPNLESS CMPNLTPS +syn keyword nasmInstructionSIMD CMPNLTSS CMPORDPS CMPORDSS CMPUNORDPS CMPUNORDSS +syn keyword nasmInstructionSIMD CMPPS CMPSS COMISS CVTPI2PS CVTPS2PI +syn keyword nasmInstructionSIMD CVTSI2SS CVTSS2SI CVTTPS2PI CVTTSS2SI DIVPS +syn keyword nasmInstructionSIMD DIVSS LDMXCSR MAXPS MAXSS MINPS +syn keyword nasmInstructionSIMD MINSS MOVAPS MOVHPS MOVLHPS MOVLPS +syn keyword nasmInstructionSIMD MOVHLPS MOVMSKPS MOVNTPS MOVSS MOVUPS +syn keyword nasmInstructionSIMD MULPS MULSS ORPS RCPPS RCPSS +syn keyword nasmInstructionSIMD RSQRTPS RSQRTSS SHUFPS SQRTPS SQRTSS +syn keyword nasmInstructionSIMD STMXCSR SUBPS SUBSS UCOMISS UNPCKHPS +syn keyword nasmInstructionSIMD UNPCKLPS XORPS +" SSE +syn keyword nasmInstructionSSE FXRSTOR FXRSTOR64 FXSAVE FXSAVE64 +" XSAVE +syn keyword nasmInstructionXSAVE XGETBV XSETBV XSAVE XSAVE64 XSAVEC +syn keyword nasmInstructionXSAVE XSAVEC64 XSAVEOPT XSAVEOPT64 XSAVES XSAVES64 +syn keyword nasmInstructionXSAVE XRSTOR XRSTOR64 XRSTORS XRSTORS64 +" MEM +syn keyword nasmInstructionMEM PREFETCHNTA PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHIT0 +syn keyword nasmInstructionMEM PREFETCHIT1 SFENCE +" MMX +syn keyword nasmInstructionMMX MASKMOVQ MOVNTQ PAVGB PAVGW PEXTRW +syn keyword nasmInstructionMMX PINSRW PMAXSW PMAXUB PMINSW PMINUB +syn keyword nasmInstructionMMX PMOVMSKB PMULHUW PSADBW PSHUFW +" 3DNOW +syn keyword nasmInstruction3DNOW PF2IW PFNACC PFPNACC PI2FW PSWAPD +" SSE2 +syn keyword nasmInstructionSSE2 MASKMOVDQU CLFLUSH MOVNTDQ MOVNTI MOVNTPD +syn keyword nasmInstructionSSE2 LFENCE MFENCE +" WMMX +syn keyword nasmInstructionWMMX MOVD MOVDQA MOVDQU MOVDQ2Q MOVQ +syn keyword nasmInstructionWMMX MOVQ2DQ PACKSSWB PACKSSDW PACKUSWB PADDB +syn keyword nasmInstructionWMMX PADDW PADDD PADDQ PADDSB PADDSW +syn keyword nasmInstructionWMMX PADDUSB PADDUSW PAND PANDN PAVGB +syn keyword nasmInstructionWMMX PAVGW PCMPEQB PCMPEQW PCMPEQD PCMPGTB +syn keyword nasmInstructionWMMX PCMPGTW PCMPGTD PEXTRW PINSRW PMADDWD +syn keyword nasmInstructionWMMX PMAXSW PMAXUB PMINSW PMINUB PMOVMSKB +syn keyword nasmInstructionWMMX PMULHUW PMULHW PMULLW PMULUDQ POR +syn keyword nasmInstructionWMMX PSADBW PSHUFD PSHUFHW PSHUFLW PSLLDQ +syn keyword nasmInstructionWMMX PSLLW PSLLD PSLLQ PSRAW PSRAD +syn keyword nasmInstructionWMMX PSRLDQ PSRLW PSRLD PSRLQ PSUBB +syn keyword nasmInstructionWMMX PSUBW PSUBD PSUBQ PSUBSB PSUBSW +syn keyword nasmInstructionWMMX PSUBUSB PSUBUSW PUNPCKHBW PUNPCKHWD PUNPCKHDQ +syn keyword nasmInstructionWMMX PUNPCKHQDQ PUNPCKLBW PUNPCKLWD PUNPCKLDQ PUNPCKLQDQ +syn keyword nasmInstructionWMMX PXOR +" WSSD +syn keyword nasmInstructionWSSD ADDPD ADDSD ANDNPD ANDPD CMPEQPD +syn keyword nasmInstructionWSSD CMPEQSD CMPLEPD CMPLESD CMPLTPD CMPLTSD +syn keyword nasmInstructionWSSD CMPNEQPD CMPNEQSD CMPNLEPD CMPNLESD CMPNLTPD +syn keyword nasmInstructionWSSD CMPNLTSD CMPORDPD CMPORDSD CMPUNORDPD CMPUNORDSD +syn keyword nasmInstructionWSSD CMPPD CMPSD COMISD CVTDQ2PD CVTDQ2PS +syn keyword nasmInstructionWSSD CVTPD2DQ CVTPD2PI CVTPD2PS CVTPI2PD CVTPS2DQ +syn keyword nasmInstructionWSSD CVTPS2PD CVTSD2SI CVTSD2SS CVTSI2SD CVTSS2SD +syn keyword nasmInstructionWSSD CVTTPD2PI CVTTPD2DQ CVTTPS2DQ CVTTSD2SI DIVPD +syn keyword nasmInstructionWSSD DIVSD MAXPD MAXSD MINPD MINSD +syn keyword nasmInstructionWSSD MOVAPD MOVHPD MOVLPD MOVMSKPD MOVSD +syn keyword nasmInstructionWSSD MOVUPD MULPD MULSD ORPD SHUFPD +syn keyword nasmInstructionWSSD SQRTPD SQRTSD SUBPD SUBSD UCOMISD +syn keyword nasmInstructionWSSD UNPCKHPD UNPCKLPD XORPD +" PRESSCOT +syn keyword nasmInstructionPRESSCOT ADDSUBPD ADDSUBPS HADDPD HADDPS HSUBPD +syn keyword nasmInstructionPRESSCOT HSUBPS LDDQU MOVDDUP MOVSHDUP MOVSLDUP +" VMXSVM +syn keyword nasmInstructionVMXSVM CLGI STGI VMCALL VMCLEAR VMFUNC +syn keyword nasmInstructionVMXSVM VMLAUNCH VMLOAD VMMCALL VMPTRLD VMPTRST +syn keyword nasmInstructionVMXSVM VMREAD VMRESUME VMRUN VMSAVE VMWRITE +syn keyword nasmInstructionVMXSVM VMXOFF VMXON +" PTVMX +syn keyword nasmInstructionPTVMX INVEPT INVVPID +" SEVSNPAMD +syn keyword nasmInstructionSEVSNPAMD PVALIDATE RMPADJUST VMGEXIT +" TEJAS +syn keyword nasmInstructionTEJAS PABSB PABSW PABSD PALIGNR PHADDW +syn keyword nasmInstructionTEJAS PHADDD PHADDSW PHSUBW PHSUBD PHSUBSW +syn keyword nasmInstructionTEJAS PMADDUBSW PMULHRSW PSHUFB PSIGNB PSIGNW +syn keyword nasmInstructionTEJAS PSIGND +" AMD_SSE4A +syn keyword nasmInstructionAMD_SSE4A EXTRQ INSERTQ MOVNTSD MOVNTSS +" BARCELONA +syn keyword nasmInstructionBARCELONA LZCNT +" PENRY +syn keyword nasmInstructionPENRY BLENDPD BLENDPS BLENDVPD BLENDVPS DPPD +syn keyword nasmInstructionPENRY DPPS EXTRACTPS INSERTPS MOVNTDQA MPSADBW +syn keyword nasmInstructionPENRY PACKUSDW PBLENDVB PBLENDW PCMPEQQ PEXTRB +syn keyword nasmInstructionPENRY PEXTRD PEXTRQ PEXTRW PHMINPOSUW PINSRB +syn keyword nasmInstructionPENRY PINSRD PINSRQ PMAXSB PMAXSD PMAXUD +syn keyword nasmInstructionPENRY PMAXUW PMINSB PMINSD PMINUD PMINUW +syn keyword nasmInstructionPENRY PMOVSXBW PMOVSXBD PMOVSXBQ PMOVSXWD PMOVSXWQ +syn keyword nasmInstructionPENRY PMOVSXDQ PMOVZXBW PMOVZXBD PMOVZXBQ PMOVZXWD +syn keyword nasmInstructionPENRY PMOVZXWQ PMOVZXDQ PMULDQ PMULLD PTEST +syn keyword nasmInstructionPENRY ROUNDPD ROUNDPS ROUNDSD ROUNDSS +" NEHALEM +syn keyword nasmInstructionNEHALEM CRC32 PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM +syn keyword nasmInstructionNEHALEM PCMPGTQ POPCNT +" SMX +syn keyword nasmInstructionSMX GETSEC +" GEODE_3DNOW +syn keyword nasmInstructionGEODE_3DNOW PFRCPV PFRSQRTV +" INTEL_NEW +syn keyword nasmInstructionINTEL_NEW MOVBE +" AES +syn keyword nasmInstructionAES AESENC AESENCLAST AESDEC AESDECLAST AESIMC +syn keyword nasmInstructionAES AESKEYGENASSIST +" AVX_AES +syn keyword nasmInstructionAVX_AES VAESENC VAESENCLAST VAESDEC VAESDECLAST VAESIMC +syn keyword nasmInstructionAVX_AES VAESKEYGENASSIST +" INTEL_PUB +syn keyword nasmInstructionINTEL_PUB VAESENC VAESENCLAST VAESDEC VAESDECLAST VAESENC +syn keyword nasmInstructionINTEL_PUB VAESENCLAST VAESDEC VAESDECLAST VAESENC VAESENCLAST +syn keyword nasmInstructionINTEL_PUB VAESDEC VAESDECLAST +" AVX +syn keyword nasmInstructionAVX VADDPD VADDPS VADDSD VADDSS VADDSUBPD +syn keyword nasmInstructionAVX VADDSUBPS VANDPD VANDPS VANDNPD VANDNPS +syn keyword nasmInstructionAVX VBLENDPD VBLENDPS VBLENDVPD VBLENDVPS VBROADCASTSS +syn keyword nasmInstructionAVX VBROADCASTSD VBROADCASTF128 VCMPEQ_OSPD VCMPEQPD VCMPLT_OSPD +syn keyword nasmInstructionAVX VCMPLTPD VCMPLE_OSPD VCMPLEPD VCMPUNORD_QPD VCMPUNORDPD +syn keyword nasmInstructionAVX VCMPNEQ_UQPD VCMPNEQPD VCMPNLT_USPD VCMPNLTPD VCMPNLE_USPD +syn keyword nasmInstructionAVX VCMPNLEPD VCMPORD_QPD VCMPORDPD VCMPEQ_UQPD VCMPNGE_USPD +syn keyword nasmInstructionAVX VCMPNGEPD VCMPNGT_USPD VCMPNGTPD VCMPFALSE_OQPD VCMPFALSEPD +syn keyword nasmInstructionAVX VCMPNEQ_OQPD VCMPGE_OSPD VCMPGEPD VCMPGT_OSPD VCMPGTPD +syn keyword nasmInstructionAVX VCMPTRUE_UQPD VCMPTRUEPD VCMPEQ_OSPD VCMPLT_OQPD VCMPLE_OQPD +syn keyword nasmInstructionAVX VCMPUNORD_SPD VCMPNEQ_USPD VCMPNLT_UQPD VCMPNLE_UQPD VCMPORD_SPD +syn keyword nasmInstructionAVX VCMPEQ_USPD VCMPNGE_UQPD VCMPNGT_UQPD VCMPFALSE_OSPD VCMPNEQ_OSPD +syn keyword nasmInstructionAVX VCMPGE_OQPD VCMPGT_OQPD VCMPTRUE_USPD VCMPPD VCMPEQ_OSPS +syn keyword nasmInstructionAVX VCMPEQPS VCMPLT_OSPS VCMPLTPS VCMPLE_OSPS VCMPLEPS +syn keyword nasmInstructionAVX VCMPUNORD_QPS VCMPUNORDPS VCMPNEQ_UQPS VCMPNEQPS VCMPNLT_USPS +syn keyword nasmInstructionAVX VCMPNLTPS VCMPNLE_USPS VCMPNLEPS VCMPORD_QPS VCMPORDPS +syn keyword nasmInstructionAVX VCMPEQ_UQPS VCMPNGE_USPS VCMPNGEPS VCMPNGT_USPS VCMPNGTPS +syn keyword nasmInstructionAVX VCMPFALSE_OQPS VCMPFALSEPS VCMPNEQ_OQPS VCMPGE_OSPS VCMPGEPS +syn keyword nasmInstructionAVX VCMPGT_OSPS VCMPGTPS VCMPTRUE_UQPS VCMPTRUEPS VCMPEQ_OSPS +syn keyword nasmInstructionAVX VCMPLT_OQPS VCMPLE_OQPS VCMPUNORD_SPS VCMPNEQ_USPS VCMPNLT_UQPS +syn keyword nasmInstructionAVX VCMPNLE_UQPS VCMPORD_SPS VCMPEQ_USPS VCMPNGE_UQPS VCMPNGT_UQPS +syn keyword nasmInstructionAVX VCMPFALSE_OSPS VCMPNEQ_OSPS VCMPGE_OQPS VCMPGT_OQPS VCMPTRUE_USPS +syn keyword nasmInstructionAVX VCMPPS VCMPEQ_OSSD VCMPEQSD VCMPLT_OSSD VCMPLTSD +syn keyword nasmInstructionAVX VCMPLE_OSSD VCMPLESD VCMPUNORD_QSD VCMPUNORDSD VCMPNEQ_UQSD +syn keyword nasmInstructionAVX VCMPNEQSD VCMPNLT_USSD VCMPNLTSD VCMPNLE_USSD VCMPNLESD +syn keyword nasmInstructionAVX VCMPORD_QSD VCMPORDSD VCMPEQ_UQSD VCMPNGE_USSD VCMPNGESD +syn keyword nasmInstructionAVX VCMPNGT_USSD VCMPNGTSD VCMPFALSE_OQSD VCMPFALSESD VCMPNEQ_OQSD +syn keyword nasmInstructionAVX VCMPGE_OSSD VCMPGESD VCMPGT_OSSD VCMPGTSD VCMPTRUE_UQSD +syn keyword nasmInstructionAVX VCMPTRUESD VCMPEQ_OSSD VCMPLT_OQSD VCMPLE_OQSD VCMPUNORD_SSD +syn keyword nasmInstructionAVX VCMPNEQ_USSD VCMPNLT_UQSD VCMPNLE_UQSD VCMPORD_SSD VCMPEQ_USSD +syn keyword nasmInstructionAVX VCMPNGE_UQSD VCMPNGT_UQSD VCMPFALSE_OSSD VCMPNEQ_OSSD VCMPGE_OQSD +syn keyword nasmInstructionAVX VCMPGT_OQSD VCMPTRUE_USSD VCMPSD VCMPEQ_OSSS VCMPEQSS +syn keyword nasmInstructionAVX VCMPLT_OSSS VCMPLTSS VCMPLE_OSSS VCMPLESS VCMPUNORD_QSS +syn keyword nasmInstructionAVX VCMPUNORDSS VCMPNEQ_UQSS VCMPNEQSS VCMPNLT_USSS VCMPNLTSS +syn keyword nasmInstructionAVX VCMPNLE_USSS VCMPNLESS VCMPORD_QSS VCMPORDSS VCMPEQ_UQSS +syn keyword nasmInstructionAVX VCMPNGE_USSS VCMPNGESS VCMPNGT_USSS VCMPNGTSS VCMPFALSE_OQSS +syn keyword nasmInstructionAVX VCMPFALSESS VCMPNEQ_OQSS VCMPGE_OSSS VCMPGESS VCMPGT_OSSS +syn keyword nasmInstructionAVX VCMPGTSS VCMPTRUE_UQSS VCMPTRUESS VCMPEQ_OSSS VCMPLT_OQSS +syn keyword nasmInstructionAVX VCMPLE_OQSS VCMPUNORD_SSS VCMPNEQ_USSS VCMPNLT_UQSS VCMPNLE_UQSS +syn keyword nasmInstructionAVX VCMPORD_SSS VCMPEQ_USSS VCMPNGE_UQSS VCMPNGT_UQSS VCMPFALSE_OSSS +syn keyword nasmInstructionAVX VCMPNEQ_OSSS VCMPGE_OQSS VCMPGT_OQSS VCMPTRUE_USSS VCMPSS +syn keyword nasmInstructionAVX VCOMISD VCOMISS VCVTDQ2PD VCVTDQ2PS VCVTPD2DQ +syn keyword nasmInstructionAVX VCVTPD2PS VCVTPS2DQ VCVTPS2PD VCVTSD2SI VCVTSD2SS +syn keyword nasmInstructionAVX VCVTSI2SD VCVTSI2SS VCVTSS2SD VCVTSS2SI VCVTTPD2DQ +syn keyword nasmInstructionAVX VCVTTPS2DQ VCVTTSD2SI VCVTTSS2SI VDIVPD VDIVPS +syn keyword nasmInstructionAVX VDIVSD VDIVSS VDPPD VDPPS VEXTRACTF128 +syn keyword nasmInstructionAVX VEXTRACTPS VHADDPD VHADDPS VHSUBPD VHSUBPS +syn keyword nasmInstructionAVX VINSERTF128 VINSERTPS VLDDQU VLDQQU VLDDQU +syn keyword nasmInstructionAVX VLDMXCSR VMASKMOVDQU VMASKMOVPS VMASKMOVPD VMAXPD +syn keyword nasmInstructionAVX VMAXPS VMAXSD VMAXSS VMINPD VMINPS +syn keyword nasmInstructionAVX VMINSD VMINSS VMOVAPD VMOVAPS VMOVD +syn keyword nasmInstructionAVX VMOVQ VMOVDDUP VMOVDQA VMOVQQA VMOVDQA +syn keyword nasmInstructionAVX VMOVDQU VMOVQQU VMOVDQU VMOVHLPS VMOVHPD +syn keyword nasmInstructionAVX VMOVHPS VMOVLHPS VMOVLPD VMOVLPS VMOVMSKPD +syn keyword nasmInstructionAVX VMOVMSKPS VMOVNTDQ VMOVNTQQ VMOVNTDQ VMOVNTDQA +syn keyword nasmInstructionAVX VMOVNTPD VMOVNTPS VMOVSD VMOVSHDUP VMOVSLDUP +syn keyword nasmInstructionAVX VMOVSS VMOVUPD VMOVUPS VMPSADBW VMULPD +syn keyword nasmInstructionAVX VMULPS VMULSD VMULSS VORPD VORPS +syn keyword nasmInstructionAVX VPABSB VPABSW VPABSD VPACKSSWB VPACKSSDW +syn keyword nasmInstructionAVX VPACKUSWB VPACKUSDW VPADDB VPADDW VPADDD +syn keyword nasmInstructionAVX VPADDQ VPADDSB VPADDSW VPADDUSB VPADDUSW +syn keyword nasmInstructionAVX VPALIGNR VPAND VPANDN VPAVGB VPAVGW +syn keyword nasmInstructionAVX VPBLENDVB VPBLENDW VPCMPESTRI VPCMPESTRM VPCMPISTRI +syn keyword nasmInstructionAVX VPCMPISTRM VPCMPEQB VPCMPEQW VPCMPEQD VPCMPEQQ +syn keyword nasmInstructionAVX VPCMPGTB VPCMPGTW VPCMPGTD VPCMPGTQ VPERMILPD +syn keyword nasmInstructionAVX VPERMILPS VPERM2F128 VPEXTRB VPEXTRW VPEXTRD +syn keyword nasmInstructionAVX VPEXTRQ VPHADDW VPHADDD VPHADDSW VPHMINPOSUW +syn keyword nasmInstructionAVX VPHSUBW VPHSUBD VPHSUBSW VPINSRB VPINSRW +syn keyword nasmInstructionAVX VPINSRD VPINSRQ VPMADDWD VPMADDUBSW VPMAXSB +syn keyword nasmInstructionAVX VPMAXSW VPMAXSD VPMAXUB VPMAXUW VPMAXUD +syn keyword nasmInstructionAVX VPMINSB VPMINSW VPMINSD VPMINUB VPMINUW +syn keyword nasmInstructionAVX VPMINUD VPMOVMSKB VPMOVSXBW VPMOVSXBD VPMOVSXBQ +syn keyword nasmInstructionAVX VPMOVSXWD VPMOVSXWQ VPMOVSXDQ VPMOVZXBW VPMOVZXBD +syn keyword nasmInstructionAVX VPMOVZXBQ VPMOVZXWD VPMOVZXWQ VPMOVZXDQ VPMULHUW +syn keyword nasmInstructionAVX VPMULHRSW VPMULHW VPMULLW VPMULLD VPMULUDQ +syn keyword nasmInstructionAVX VPMULDQ VPOR VPSADBW VPSHUFB VPSHUFD +syn keyword nasmInstructionAVX VPSHUFHW VPSHUFLW VPSIGNB VPSIGNW VPSIGND +syn keyword nasmInstructionAVX VPSLLDQ VPSRLDQ VPSLLW VPSLLD VPSLLQ +syn keyword nasmInstructionAVX VPSRAW VPSRAD VPSRLW VPSRLD VPSRLQ +syn keyword nasmInstructionAVX VPTEST VPSUBB VPSUBW VPSUBD VPSUBQ +syn keyword nasmInstructionAVX VPSUBSB VPSUBSW VPSUBUSB VPSUBUSW VPUNPCKHBW +syn keyword nasmInstructionAVX VPUNPCKHWD VPUNPCKHDQ VPUNPCKHQDQ VPUNPCKLBW VPUNPCKLWD +syn keyword nasmInstructionAVX VPUNPCKLDQ VPUNPCKLQDQ VPXOR VRCPPS VRCPSS +syn keyword nasmInstructionAVX VRSQRTPS VRSQRTSS VROUNDPD VROUNDPS VROUNDSD +syn keyword nasmInstructionAVX VROUNDSS VSHUFPD VSHUFPS VSQRTPD VSQRTPS +syn keyword nasmInstructionAVX VSQRTSD VSQRTSS VSTMXCSR VSUBPD VSUBPS +syn keyword nasmInstructionAVX VSUBSD VSUBSS VTESTPS VTESTPD VUCOMISD +syn keyword nasmInstructionAVX VUCOMISS VUNPCKHPD VUNPCKHPS VUNPCKLPD VUNPCKLPS +syn keyword nasmInstructionAVX VXORPD VXORPS VZEROALL VZEROUPPER +" INTEL_CMUL +syn keyword nasmInstructionINTEL_CMUL PCLMULLQLQDQ PCLMULHQLQDQ PCLMULLQHQDQ PCLMULHQHQDQ PCLMULQDQ +" INTEL_AVX_CMUL +syn keyword nasmInstructionINTEL_AVX_CMUL VPCLMULLQLQDQ VPCLMULHQLQDQ VPCLMULLQHQDQ VPCLMULHQHQDQ VPCLMULQDQ +syn keyword nasmInstructionINTEL_AVX_CMUL VPCLMULLQLQDQ VPCLMULHQLQDQ VPCLMULLQHQDQ VPCLMULHQHQDQ VPCLMULQDQ +syn keyword nasmInstructionINTEL_AVX_CMUL VPCLMULLQLQDQ VPCLMULHQLQDQ VPCLMULLQHQDQ VPCLMULHQHQDQ VPCLMULQDQ +syn keyword nasmInstructionINTEL_AVX_CMUL VPCLMULLQLQDQ VPCLMULHQLQDQ VPCLMULLQHQDQ VPCLMULHQHQDQ VPCLMULQDQ +syn keyword nasmInstructionINTEL_AVX_CMUL VPCLMULLQLQDQ VPCLMULHQLQDQ VPCLMULLQHQDQ VPCLMULHQHQDQ VPCLMULQDQ +" INTEL_FMA +syn keyword nasmInstructionINTEL_FMA VFMADD132PS VFMADD132PD VFMADD312PS VFMADD312PD VFMADD213PS +syn keyword nasmInstructionINTEL_FMA VFMADD213PD VFMADD123PS VFMADD123PD VFMADD231PS VFMADD231PD +syn keyword nasmInstructionINTEL_FMA VFMADD321PS VFMADD321PD VFMADDSUB132PS VFMADDSUB132PD VFMADDSUB312PS +syn keyword nasmInstructionINTEL_FMA VFMADDSUB312PD VFMADDSUB213PS VFMADDSUB213PD VFMADDSUB123PS VFMADDSUB123PD +syn keyword nasmInstructionINTEL_FMA VFMADDSUB231PS VFMADDSUB231PD VFMADDSUB321PS VFMADDSUB321PD VFMSUB132PS +syn keyword nasmInstructionINTEL_FMA VFMSUB132PD VFMSUB312PS VFMSUB312PD VFMSUB213PS VFMSUB213PD +syn keyword nasmInstructionINTEL_FMA VFMSUB123PS VFMSUB123PD VFMSUB231PS VFMSUB231PD VFMSUB321PS +syn keyword nasmInstructionINTEL_FMA VFMSUB321PD VFMSUBADD132PS VFMSUBADD132PD VFMSUBADD312PS VFMSUBADD312PD +syn keyword nasmInstructionINTEL_FMA VFMSUBADD213PS VFMSUBADD213PD VFMSUBADD123PS VFMSUBADD123PD VFMSUBADD231PS +syn keyword nasmInstructionINTEL_FMA VFMSUBADD231PD VFMSUBADD321PS VFMSUBADD321PD VFNMADD132PS VFNMADD132PD +syn keyword nasmInstructionINTEL_FMA VFNMADD312PS VFNMADD312PD VFNMADD213PS VFNMADD213PD VFNMADD123PS +syn keyword nasmInstructionINTEL_FMA VFNMADD123PD VFNMADD231PS VFNMADD231PD VFNMADD321PS VFNMADD321PD +syn keyword nasmInstructionINTEL_FMA VFNMSUB132PS VFNMSUB132PD VFNMSUB312PS VFNMSUB312PD VFNMSUB213PS +syn keyword nasmInstructionINTEL_FMA VFNMSUB213PD VFNMSUB123PS VFNMSUB123PD VFNMSUB231PS VFNMSUB231PD +syn keyword nasmInstructionINTEL_FMA VFNMSUB321PS VFNMSUB321PD VFMADD132SS VFMADD132SD VFMADD312SS +syn keyword nasmInstructionINTEL_FMA VFMADD312SD VFMADD213SS VFMADD213SD VFMADD123SS VFMADD123SD +syn keyword nasmInstructionINTEL_FMA VFMADD231SS VFMADD231SD VFMADD321SS VFMADD321SD VFMSUB132SS +syn keyword nasmInstructionINTEL_FMA VFMSUB132SD VFMSUB312SS VFMSUB312SD VFMSUB213SS VFMSUB213SD +syn keyword nasmInstructionINTEL_FMA VFMSUB123SS VFMSUB123SD VFMSUB231SS VFMSUB231SD VFMSUB321SS +syn keyword nasmInstructionINTEL_FMA VFMSUB321SD VFNMADD132SS VFNMADD132SD VFNMADD312SS VFNMADD312SD +syn keyword nasmInstructionINTEL_FMA VFNMADD213SS VFNMADD213SD VFNMADD123SS VFNMADD123SD VFNMADD231SS +syn keyword nasmInstructionINTEL_FMA VFNMADD231SD VFNMADD321SS VFNMADD321SD VFNMSUB132SS VFNMSUB132SD +syn keyword nasmInstructionINTEL_FMA VFNMSUB312SS VFNMSUB312SD VFNMSUB213SS VFNMSUB213SD VFNMSUB123SS +syn keyword nasmInstructionINTEL_FMA VFNMSUB123SD VFNMSUB231SS VFNMSUB231SD VFNMSUB321SS VFNMSUB321SD +" INTEL_POST32 +syn keyword nasmInstructionINTEL_POST32 RDFSBASE RDGSBASE RDRAND WRFSBASE WRGSBASE +syn keyword nasmInstructionINTEL_POST32 VCVTPH2PS VCVTPS2PH ADCX ADOX RDSEED +" SUPERVISOR +syn keyword nasmInstructionSUPERVISOR CLAC STAC +" VIA_SECURITY +syn keyword nasmInstructionVIA_SECURITY XSTORE XCRYPTECB XCRYPTCBC XCRYPTCTR XCRYPTCFB +syn keyword nasmInstructionVIA_SECURITY XCRYPTOFB MONTMUL XSHA1 XSHA256 +" AMD_PROFILING +syn keyword nasmInstructionAMD_PROFILING LLWPCB SLWPCB LWPVAL LWPINS +" XOP_FMA4 +syn keyword nasmInstructionXOP_FMA4 VFMADDPD VFMADDPS VFMADDSD VFMADDSS VFMADDSUBPD +syn keyword nasmInstructionXOP_FMA4 VFMADDSUBPS VFMSUBADDPD VFMSUBADDPS VFMSUBPD VFMSUBPS +syn keyword nasmInstructionXOP_FMA4 VFMSUBSD VFMSUBSS VFNMADDPD VFNMADDPS VFNMADDSD +syn keyword nasmInstructionXOP_FMA4 VFNMADDSS VFNMSUBPD VFNMSUBPS VFNMSUBSD VFNMSUBSS +syn keyword nasmInstructionXOP_FMA4 VFRCZPD VFRCZPS VFRCZSD VFRCZSS VPCMOV +syn keyword nasmInstructionXOP_FMA4 VPCOMB VPCOMD VPCOMQ VPCOMUB VPCOMUD +syn keyword nasmInstructionXOP_FMA4 VPCOMUQ VPCOMUW VPCOMW VPHADDBD VPHADDBQ +syn keyword nasmInstructionXOP_FMA4 VPHADDBW VPHADDDQ VPHADDUBD VPHADDUBQ VPHADDUBW +syn keyword nasmInstructionXOP_FMA4 VPHADDUDQ VPHADDUWD VPHADDUWQ VPHADDWD VPHADDWQ +syn keyword nasmInstructionXOP_FMA4 VPHSUBBW VPHSUBDQ VPHSUBWD VPMACSDD VPMACSDQH +syn keyword nasmInstructionXOP_FMA4 VPMACSDQL VPMACSSDD VPMACSSDQH VPMACSSDQL VPMACSSWD +syn keyword nasmInstructionXOP_FMA4 VPMACSSWW VPMACSWD VPMACSWW VPMADCSSWD VPMADCSWD +syn keyword nasmInstructionXOP_FMA4 VPPERM VPROTB VPROTD VPROTQ VPROTW +syn keyword nasmInstructionXOP_FMA4 VPSHAB VPSHAD VPSHAQ VPSHAW VPSHLB +syn keyword nasmInstructionXOP_FMA4 VPSHLD VPSHLQ VPSHLW +" AVX2 +syn keyword nasmInstructionAVX2 VMPSADBW VPABSB VPABSW VPABSD VPACKSSWB +syn keyword nasmInstructionAVX2 VPACKSSDW VPACKUSDW VPACKUSWB VPADDB VPADDW +syn keyword nasmInstructionAVX2 VPADDD VPADDQ VPADDSB VPADDSW VPADDUSB +syn keyword nasmInstructionAVX2 VPADDUSW VPALIGNR VPAND VPANDN VPAVGB +syn keyword nasmInstructionAVX2 VPAVGW VPBLENDVB VPBLENDW VPCMPEQB VPCMPEQW +syn keyword nasmInstructionAVX2 VPCMPEQD VPCMPEQQ VPCMPGTB VPCMPGTW VPCMPGTD +syn keyword nasmInstructionAVX2 VPCMPGTQ VPHADDW VPHADDD VPHADDSW VPHSUBW +syn keyword nasmInstructionAVX2 VPHSUBD VPHSUBSW VPMADDUBSW VPMADDWD VPMAXSB +syn keyword nasmInstructionAVX2 VPMAXSW VPMAXSD VPMAXUB VPMAXUW VPMAXUD +syn keyword nasmInstructionAVX2 VPMINSB VPMINSW VPMINSD VPMINUB VPMINUW +syn keyword nasmInstructionAVX2 VPMINUD VPMOVMSKB VPMOVSXBW VPMOVSXBD VPMOVSXBQ +syn keyword nasmInstructionAVX2 VPMOVSXWD VPMOVSXWQ VPMOVSXDQ VPMOVZXBW VPMOVZXBD +syn keyword nasmInstructionAVX2 VPMOVZXBQ VPMOVZXWD VPMOVZXWQ VPMOVZXDQ VPMULDQ +syn keyword nasmInstructionAVX2 VPMULHRSW VPMULHUW VPMULHW VPMULLW VPMULLD +syn keyword nasmInstructionAVX2 VPMULUDQ VPOR VPSADBW VPSHUFB VPSHUFD +syn keyword nasmInstructionAVX2 VPSHUFHW VPSHUFLW VPSIGNB VPSIGNW VPSIGND +syn keyword nasmInstructionAVX2 VPSLLDQ VPSLLW VPSLLD VPSLLQ VPSRAW +syn keyword nasmInstructionAVX2 VPSRAD VPSRLDQ VPSRLW VPSRLD VPSRLQ +syn keyword nasmInstructionAVX2 VPSUBB VPSUBW VPSUBD VPSUBQ VPSUBSB +syn keyword nasmInstructionAVX2 VPSUBSW VPSUBUSB VPSUBUSW VPUNPCKHBW VPUNPCKHWD +syn keyword nasmInstructionAVX2 VPUNPCKHDQ VPUNPCKHQDQ VPUNPCKLBW VPUNPCKLWD VPUNPCKLDQ +syn keyword nasmInstructionAVX2 VPUNPCKLQDQ VPXOR VMOVNTDQA VBROADCASTSS VBROADCASTSD +syn keyword nasmInstructionAVX2 VBROADCASTI128 VPBLENDD VPBROADCASTB VPBROADCASTW VPBROADCASTD +syn keyword nasmInstructionAVX2 VPBROADCASTQ VPERMD VPERMPD VPERMPS VPERMQ +syn keyword nasmInstructionAVX2 VPERM2I128 VEXTRACTI128 VINSERTI128 VPMASKMOVD VPMASKMOVQ +syn keyword nasmInstructionAVX2 VPMASKMOVD VPMASKMOVQ VPSLLVD VPSLLVQ VPSLLVD +syn keyword nasmInstructionAVX2 VPSLLVQ VPSRAVD VPSRLVD VPSRLVQ VPSRLVD +syn keyword nasmInstructionAVX2 VPSRLVQ VGATHERDPD VGATHERQPD VGATHERDPD VGATHERQPD +syn keyword nasmInstructionAVX2 VGATHERDPS VGATHERQPS VGATHERDPS VGATHERQPS VPGATHERDD +syn keyword nasmInstructionAVX2 VPGATHERQD VPGATHERDD VPGATHERQD VPGATHERDQ VPGATHERQQ +syn keyword nasmInstructionAVX2 VPGATHERDQ VPGATHERQQ +" TRANSACTIONS +syn keyword nasmInstructionTRANSACTIONS XABORT XBEGIN XEND XTEST +" BMI_ABM +syn keyword nasmInstructionBMI_ABM ANDN BEXTR BLCI BLCIC BLSI +syn keyword nasmInstructionBMI_ABM BLSIC BLCFILL BLSFILL BLCMSK BLSMSK +syn keyword nasmInstructionBMI_ABM BLSR BLCS BZHI MULX PDEP +syn keyword nasmInstructionBMI_ABM PEXT RORX SARX SHLX SHRX +syn keyword nasmInstructionBMI_ABM TZCNT TZMSK T1MSKC PREFETCHWT1 +" MPE +syn keyword nasmInstructionMPE BNDMK BNDCL BNDCU BNDCN BNDMOV +syn keyword nasmInstructionMPE BNDLDX BNDSTX +" SHA +syn keyword nasmInstructionSHA SHA1MSG1 SHA1MSG2 SHA1NEXTE SHA1RNDS4 SHA256MSG1 +syn keyword nasmInstructionSHA SHA256MSG2 SHA256RNDS2 VSHA512MSG1 VSHA512MSG2 VSHA512RNDS2 +" SM3 +syn keyword nasmInstructionSM3 VSM3MSG1 VSM3MSG2 VSM3RNDS2 +" SM4 +syn keyword nasmInstructionSM4 VSM4KEY4 VSM4RNDS4 +" AVX_NOEXCEPT +syn keyword nasmInstructionAVX_NOEXCEPT VBCSTNEBF16PS VBCSTNESH2PS VCVTNEEBF162PS VCVTNEEPH2PS VCVTNEOBF162PS +syn keyword nasmInstructionAVX_NOEXCEPT VCVTNEOPH2PS VCVTNEPS2BF16 +" AVX_VECTOR_NN +syn keyword nasmInstructionAVX_VECTOR_NN VPDPBSSD VPDPBSSDS VPDPBSUD VPDPBSUDS VPDPBUUD +syn keyword nasmInstructionAVX_VECTOR_NN VPDPBUUDS +" AVX_IFMA +syn keyword nasmInstructionAVX_IFMA VPMADD52HUQ VPMADD52LUQ +" AVX512_MASK +syn keyword nasmInstructionAVX512_MASK KADDB KADDD KADDQ KADDW KANDB +syn keyword nasmInstructionAVX512_MASK KANDD KANDNB KANDND KANDNQ KANDNW +syn keyword nasmInstructionAVX512_MASK KANDQ KANDW KMOVB KMOVD KMOVQ +syn keyword nasmInstructionAVX512_MASK KMOVW KNOTB KNOTD KNOTQ KNOTW +syn keyword nasmInstructionAVX512_MASK KORB KORD KORQ KORW KORTESTB +syn keyword nasmInstructionAVX512_MASK KORTESTD KORTESTQ KORTESTW KSHIFTLB KSHIFTLD +syn keyword nasmInstructionAVX512_MASK KSHIFTLQ KSHIFTLW KSHIFTRB KSHIFTRD KSHIFTRQ +syn keyword nasmInstructionAVX512_MASK KSHIFTRW KTESTB KTESTD KTESTQ KTESTW +syn keyword nasmInstructionAVX512_MASK KUNPCKBW KUNPCKDQ KUNPCKWD KXNORB KXNORD +syn keyword nasmInstructionAVX512_MASK KXNORQ KXNORW KXORB KXORD KXORQ +syn keyword nasmInstructionAVX512_MASK KXORW +" AVX512_MASK_REG +syn keyword nasmInstructionAVX512_MASK_REG KADD KAND KANDN KAND KMOV +syn keyword nasmInstructionAVX512_MASK_REG KNOT KOR KORTEST KSHIFTL KSHIFTR +syn keyword nasmInstructionAVX512_MASK_REG KTEST KUNPCK KXNOR KXOR +" AVX512 +syn keyword nasmInstructionAVX512 VADDPD VADDPS VADDSD VADDSS VALIGND +syn keyword nasmInstructionAVX512 VALIGNQ VANDNPD VANDNPS VANDPD VANDPS +syn keyword nasmInstructionAVX512 VBLENDMPD VBLENDMPS VBROADCASTF32X2 VBROADCASTF32X4 VBROADCASTF32X8 +syn keyword nasmInstructionAVX512 VBROADCASTF64X2 VBROADCASTF64X4 VBROADCASTI32X2 VBROADCASTI32X4 VBROADCASTI32X8 +syn keyword nasmInstructionAVX512 VBROADCASTI64X2 VBROADCASTI64X4 VBROADCASTSD VBROADCASTSS VCMPEQPD +syn keyword nasmInstructionAVX512 VCMPEQPS VCMPEQSD VCMPEQSS VCMPEQ_OQPD VCMPEQ_OQPS +syn keyword nasmInstructionAVX512 VCMPEQ_OQSD VCMPEQ_OQSS VCMPLTPD VCMPLTPS VCMPLTSD +syn keyword nasmInstructionAVX512 VCMPLTSS VCMPLT_OSPD VCMPLT_OSPS VCMPLT_OSSD VCMPLT_OSSS +syn keyword nasmInstructionAVX512 VCMPLEPD VCMPLEPS VCMPLESD VCMPLESS VCMPLE_OSPD +syn keyword nasmInstructionAVX512 VCMPLE_OSPS VCMPLE_OSSD VCMPLE_OSSS VCMPUNORDPD VCMPUNORDPS +syn keyword nasmInstructionAVX512 VCMPUNORDSD VCMPUNORDSS VCMPUNORD_QPD VCMPUNORD_QPS VCMPUNORD_QSD +syn keyword nasmInstructionAVX512 VCMPUNORD_QSS VCMPNEQPD VCMPNEQPS VCMPNEQSD VCMPNEQSS +syn keyword nasmInstructionAVX512 VCMPNEQ_UQPD VCMPNEQ_UQPS VCMPNEQ_UQSD VCMPNEQ_UQSS VCMPNLTPD +syn keyword nasmInstructionAVX512 VCMPNLTPS VCMPNLTSD VCMPNLTSS VCMPNLT_USPD VCMPNLT_USPS +syn keyword nasmInstructionAVX512 VCMPNLT_USSD VCMPNLT_USSS VCMPNLEPD VCMPNLEPS VCMPNLESD +syn keyword nasmInstructionAVX512 VCMPNLESS VCMPNLE_USPD VCMPNLE_USPS VCMPNLE_USSD VCMPNLE_USSS +syn keyword nasmInstructionAVX512 VCMPORDPD VCMPORDPS VCMPORDSD VCMPORDSS VCMPORD_QPD +syn keyword nasmInstructionAVX512 VCMPORD_QPS VCMPORD_QSD VCMPORD_QSS VCMPEQ_UQPD VCMPEQ_UQPS +syn keyword nasmInstructionAVX512 VCMPEQ_UQSD VCMPEQ_UQSS VCMPNGEPD VCMPNGEPS VCMPNGESD +syn keyword nasmInstructionAVX512 VCMPNGESS VCMPNGE_USPD VCMPNGE_USPS VCMPNGE_USSD VCMPNGE_USSS +syn keyword nasmInstructionAVX512 VCMPNGTPD VCMPNGTPS VCMPNGTSD VCMPNGTSS VCMPNGT_USPD +syn keyword nasmInstructionAVX512 VCMPNGT_USPS VCMPNGT_USSD VCMPNGT_USSS VCMPFALSEPD VCMPFALSEPS +syn keyword nasmInstructionAVX512 VCMPFALSESD VCMPFALSESS VCMPFALSE_OQPD VCMPFALSE_OQPS VCMPFALSE_OQSD +syn keyword nasmInstructionAVX512 VCMPFALSE_OQSS VCMPNEQ_OQPD VCMPNEQ_OQPS VCMPNEQ_OQSD VCMPNEQ_OQSS +syn keyword nasmInstructionAVX512 VCMPGEPD VCMPGEPS VCMPGESD VCMPGESS VCMPGE_OSPD +syn keyword nasmInstructionAVX512 VCMPGE_OSPS VCMPGE_OSSD VCMPGE_OSSS VCMPGTPD VCMPGTPS +syn keyword nasmInstructionAVX512 VCMPGTSD VCMPGTSS VCMPGT_OSPD VCMPGT_OSPS VCMPGT_OSSD +syn keyword nasmInstructionAVX512 VCMPGT_OSSS VCMPTRUEPD VCMPTRUEPS VCMPTRUESD VCMPTRUESS +syn keyword nasmInstructionAVX512 VCMPTRUE_UQPD VCMPTRUE_UQPS VCMPTRUE_UQSD VCMPTRUE_UQSS VCMPEQ_OSPD +syn keyword nasmInstructionAVX512 VCMPEQ_OSPS VCMPEQ_OSSD VCMPEQ_OSSS VCMPLT_OQPD VCMPLT_OQPS +syn keyword nasmInstructionAVX512 VCMPLT_OQSD VCMPLT_OQSS VCMPLE_OQPD VCMPLE_OQPS VCMPLE_OQSD +syn keyword nasmInstructionAVX512 VCMPLE_OQSS VCMPUNORD_SPD VCMPUNORD_SPS VCMPUNORD_SSD VCMPUNORD_SSS +syn keyword nasmInstructionAVX512 VCMPNEQ_USPD VCMPNEQ_USPS VCMPNEQ_USSD VCMPNEQ_USSS VCMPNLT_UQPD +syn keyword nasmInstructionAVX512 VCMPNLT_UQPS VCMPNLT_UQSD VCMPNLT_UQSS VCMPNLE_UQPD VCMPNLE_UQPS +syn keyword nasmInstructionAVX512 VCMPNLE_UQSD VCMPNLE_UQSS VCMPORD_SPD VCMPORD_SPS VCMPORD_SSD +syn keyword nasmInstructionAVX512 VCMPORD_SSS VCMPEQ_USPD VCMPEQ_USPS VCMPEQ_USSD VCMPEQ_USSS +syn keyword nasmInstructionAVX512 VCMPNGE_UQPD VCMPNGE_UQPS VCMPNGE_UQSD VCMPNGE_UQSS VCMPNGT_UQPD +syn keyword nasmInstructionAVX512 VCMPNGT_UQPS VCMPNGT_UQSD VCMPNGT_UQSS VCMPFALSE_OSPD VCMPFALSE_OSPS +syn keyword nasmInstructionAVX512 VCMPFALSE_OSSD VCMPFALSE_OSSS VCMPNEQ_OSPD VCMPNEQ_OSPS VCMPNEQ_OSSD +syn keyword nasmInstructionAVX512 VCMPNEQ_OSSS VCMPGE_OQPD VCMPGE_OQPS VCMPGE_OQSD VCMPGE_OQSS +syn keyword nasmInstructionAVX512 VCMPGT_OQPD VCMPGT_OQPS VCMPGT_OQSD VCMPGT_OQSS VCMPTRUE_USPD +syn keyword nasmInstructionAVX512 VCMPTRUE_USPS VCMPTRUE_USSD VCMPTRUE_USSS VCMPPD VCMPPS +syn keyword nasmInstructionAVX512 VCMPSD VCMPSS VCOMISD VCOMISS VCOMPRESSPD +syn keyword nasmInstructionAVX512 VCOMPRESSPS VCVTDQ2PD VCVTDQ2PS VCVTPD2DQ VCVTPD2PS +syn keyword nasmInstructionAVX512 VCVTPD2QQ VCVTPD2UDQ VCVTPD2UQQ VCVTPH2PS VCVTPS2DQ +syn keyword nasmInstructionAVX512 VCVTPS2PD VCVTPS2PH VCVTPS2QQ VCVTPS2UDQ VCVTPS2UQQ +syn keyword nasmInstructionAVX512 VCVTQQ2PD VCVTQQ2PS VCVTSD2SI VCVTSD2SS VCVTSD2USI +syn keyword nasmInstructionAVX512 VCVTSI2SD VCVTSI2SS VCVTSS2SD VCVTSS2SI VCVTSS2USI +syn keyword nasmInstructionAVX512 VCVTTPD2DQ VCVTTPD2QQ VCVTTPD2UDQ VCVTTPD2UQQ VCVTTPS2DQ +syn keyword nasmInstructionAVX512 VCVTTPS2QQ VCVTTPS2UDQ VCVTTPS2UQQ VCVTTSD2SI VCVTTSD2USI +syn keyword nasmInstructionAVX512 VCVTTSS2SI VCVTTSS2USI VCVTUDQ2PD VCVTUDQ2PS VCVTUQQ2PD +syn keyword nasmInstructionAVX512 VCVTUQQ2PS VCVTUSI2SD VCVTUSI2SS VDBPSADBW VDIVPD +syn keyword nasmInstructionAVX512 VDIVPS VDIVSD VDIVSS VEXP2PD VEXP2PS +syn keyword nasmInstructionAVX512 VEXPANDPD VEXPANDPS VEXTRACTF32X4 VEXTRACTF32X8 VEXTRACTF64X2 +syn keyword nasmInstructionAVX512 VEXTRACTF64X4 VEXTRACTI32X4 VEXTRACTI32X8 VEXTRACTI64X2 VEXTRACTI64X4 +syn keyword nasmInstructionAVX512 VEXTRACTPS VFIXUPIMMPD VFIXUPIMMPS VFIXUPIMMSD VFIXUPIMMSS +syn keyword nasmInstructionAVX512 VFMADD132PD VFMADD132PS VFMADD132SD VFMADD132SS VFMADD213PD +syn keyword nasmInstructionAVX512 VFMADD213PS VFMADD213SD VFMADD213SS VFMADD231PD VFMADD231PS +syn keyword nasmInstructionAVX512 VFMADD231SD VFMADD231SS VFMADDSUB132PD VFMADDSUB132PS VFMADDSUB213PD +syn keyword nasmInstructionAVX512 VFMADDSUB213PS VFMADDSUB231PD VFMADDSUB231PS VFMSUB132PD VFMSUB132PS +syn keyword nasmInstructionAVX512 VFMSUB132SD VFMSUB132SS VFMSUB213PD VFMSUB213PS VFMSUB213SD +syn keyword nasmInstructionAVX512 VFMSUB213SS VFMSUB231PD VFMSUB231PS VFMSUB231SD VFMSUB231SS +syn keyword nasmInstructionAVX512 VFMSUBADD132PD VFMSUBADD132PS VFMSUBADD213PD VFMSUBADD213PS VFMSUBADD231PD +syn keyword nasmInstructionAVX512 VFMSUBADD231PS VFNMADD132PD VFNMADD132PS VFNMADD132SD VFNMADD132SS +syn keyword nasmInstructionAVX512 VFNMADD213PD VFNMADD213PS VFNMADD213SD VFNMADD213SS VFNMADD231PD +syn keyword nasmInstructionAVX512 VFNMADD231PS VFNMADD231SD VFNMADD231SS VFNMSUB132PD VFNMSUB132PS +syn keyword nasmInstructionAVX512 VFNMSUB132SD VFNMSUB132SS VFNMSUB213PD VFNMSUB213PS VFNMSUB213SD +syn keyword nasmInstructionAVX512 VFNMSUB213SS VFNMSUB231PD VFNMSUB231PS VFNMSUB231SD VFNMSUB231SS +syn keyword nasmInstructionAVX512 VFPCLASSPD VFPCLASSPS VFPCLASSSD VFPCLASSSS VGATHERDPD +syn keyword nasmInstructionAVX512 VGATHERDPS VGATHERPF0DPD VGATHERPF0DPS VGATHERPF0QPD VGATHERPF0QPS +syn keyword nasmInstructionAVX512 VGATHERPF1DPD VGATHERPF1DPS VGATHERPF1QPD VGATHERPF1QPS VGATHERQPD +syn keyword nasmInstructionAVX512 VGATHERQPS VGETEXPPD VGETEXPPS VGETEXPSD VGETEXPSS +syn keyword nasmInstructionAVX512 VGETMANTPD VGETMANTPS VGETMANTSD VGETMANTSS VINSERTF32X4 +syn keyword nasmInstructionAVX512 VINSERTF32X8 VINSERTF64X2 VINSERTF64X4 VINSERTI32X4 VINSERTI32X8 +syn keyword nasmInstructionAVX512 VINSERTI64X2 VINSERTI64X4 VINSERTPS VMAXPD VMAXPS +syn keyword nasmInstructionAVX512 VMAXSD VMAXSS VMINPD VMINPS VMINSD +syn keyword nasmInstructionAVX512 VMINSS VMOVAPD VMOVAPS VMOVD VMOVDDUP +syn keyword nasmInstructionAVX512 VMOVDQA32 VMOVDQA64 VMOVDQU16 VMOVDQU32 VMOVDQU64 +syn keyword nasmInstructionAVX512 VMOVDQU8 VMOVHLPS VMOVHPD VMOVHPS VMOVLHPS +syn keyword nasmInstructionAVX512 VMOVLPD VMOVLPS VMOVNTDQ VMOVNTDQA VMOVNTPD +syn keyword nasmInstructionAVX512 VMOVNTPS VMOVQ VMOVSD VMOVSHDUP VMOVSLDUP +syn keyword nasmInstructionAVX512 VMOVSS VMOVUPD VMOVUPS VMULPD VMULPS +syn keyword nasmInstructionAVX512 VMULSD VMULSS VORPD VORPS VPABSB +syn keyword nasmInstructionAVX512 VPABSD VPABSQ VPABSW VPACKSSDW VPACKSSWB +syn keyword nasmInstructionAVX512 VPACKUSDW VPACKUSWB VPADDB VPADDD VPADDQ +syn keyword nasmInstructionAVX512 VPADDSB VPADDSW VPADDUSB VPADDUSW VPADDW +syn keyword nasmInstructionAVX512 VPALIGNR VPANDD VPANDND VPANDNQ VPANDQ +syn keyword nasmInstructionAVX512 VPAVGB VPAVGW VPBLENDMB VPBLENDMD VPBLENDMQ +syn keyword nasmInstructionAVX512 VPBLENDMW VPBROADCASTB VPBROADCASTD VPBROADCASTMB2Q VPBROADCASTMW2D +syn keyword nasmInstructionAVX512 VPBROADCASTQ VPBROADCASTW VPCMPEQB VPCMPEQD VPCMPEQQ +syn keyword nasmInstructionAVX512 VPCMPEQW VPCMPGTB VPCMPGTD VPCMPGTQ VPCMPGTW +syn keyword nasmInstructionAVX512 VPCMPEQB VPCMPEQD VPCMPEQQ VPCMPEQUB VPCMPEQUD +syn keyword nasmInstructionAVX512 VPCMPEQUQ VPCMPEQUW VPCMPEQW VPCMPGEB VPCMPGED +syn keyword nasmInstructionAVX512 VPCMPGEQ VPCMPGEUB VPCMPGEUD VPCMPGEUQ VPCMPGEUW +syn keyword nasmInstructionAVX512 VPCMPGEW VPCMPGTB VPCMPGTD VPCMPGTQ VPCMPGTUB +syn keyword nasmInstructionAVX512 VPCMPGTUD VPCMPGTUQ VPCMPGTUW VPCMPGTW VPCMPLEB +syn keyword nasmInstructionAVX512 VPCMPLED VPCMPLEQ VPCMPLEUB VPCMPLEUD VPCMPLEUQ +syn keyword nasmInstructionAVX512 VPCMPLEUW VPCMPLEW VPCMPLTB VPCMPLTD VPCMPLTQ +syn keyword nasmInstructionAVX512 VPCMPLTUB VPCMPLTUD VPCMPLTUQ VPCMPLTUW VPCMPLTW +syn keyword nasmInstructionAVX512 VPCMPNEQB VPCMPNEQD VPCMPNEQQ VPCMPNEQUB VPCMPNEQUD +syn keyword nasmInstructionAVX512 VPCMPNEQUQ VPCMPNEQUW VPCMPNEQW VPCMPNGTB VPCMPNGTD +syn keyword nasmInstructionAVX512 VPCMPNGTQ VPCMPNGTUB VPCMPNGTUD VPCMPNGTUQ VPCMPNGTUW +syn keyword nasmInstructionAVX512 VPCMPNGTW VPCMPNLEB VPCMPNLED VPCMPNLEQ VPCMPNLEUB +syn keyword nasmInstructionAVX512 VPCMPNLEUD VPCMPNLEUQ VPCMPNLEUW VPCMPNLEW VPCMPNLTB +syn keyword nasmInstructionAVX512 VPCMPNLTD VPCMPNLTQ VPCMPNLTUB VPCMPNLTUD VPCMPNLTUQ +syn keyword nasmInstructionAVX512 VPCMPNLTUW VPCMPNLTW VPCMPB VPCMPD VPCMPQ +syn keyword nasmInstructionAVX512 VPCMPUB VPCMPUD VPCMPUQ VPCMPUW VPCMPW +syn keyword nasmInstructionAVX512 VPCOMPRESSD VPCOMPRESSQ VPCONFLICTD VPCONFLICTQ VPERMB +syn keyword nasmInstructionAVX512 VPERMD VPERMI2B VPERMI2D VPERMI2PD VPERMI2PS +syn keyword nasmInstructionAVX512 VPERMI2Q VPERMI2W VPERMILPD VPERMILPS VPERMPD +syn keyword nasmInstructionAVX512 VPERMPS VPERMQ VPERMT2B VPERMT2D VPERMT2PD +syn keyword nasmInstructionAVX512 VPERMT2PS VPERMT2Q VPERMT2W VPERMW VPEXPANDD +syn keyword nasmInstructionAVX512 VPEXPANDQ VPEXTRB VPEXTRD VPEXTRQ VPEXTRW +syn keyword nasmInstructionAVX512 VPGATHERDD VPGATHERDQ VPGATHERQD VPGATHERQQ VPINSRB +syn keyword nasmInstructionAVX512 VPINSRD VPINSRQ VPINSRW VPLZCNTD VPLZCNTQ +syn keyword nasmInstructionAVX512 VPMADD52HUQ VPMADD52LUQ VPMADDUBSW VPMADDWD VPMAXSB +syn keyword nasmInstructionAVX512 VPMAXSD VPMAXSQ VPMAXSW VPMAXUB VPMAXUD +syn keyword nasmInstructionAVX512 VPMAXUQ VPMAXUW VPMINSB VPMINSD VPMINSQ +syn keyword nasmInstructionAVX512 VPMINSW VPMINUB VPMINUD VPMINUQ VPMINUW +syn keyword nasmInstructionAVX512 VPMOVB2M VPMOVD2M VPMOVDB VPMOVDW VPMOVM2B +syn keyword nasmInstructionAVX512 VPMOVM2D VPMOVM2Q VPMOVM2W VPMOVQ2M VPMOVQB +syn keyword nasmInstructionAVX512 VPMOVQD VPMOVQW VPMOVSDB VPMOVSDW VPMOVSQB +syn keyword nasmInstructionAVX512 VPMOVSQD VPMOVSQW VPMOVSWB VPMOVSXBD VPMOVSXBQ +syn keyword nasmInstructionAVX512 VPMOVSXBW VPMOVSXDQ VPMOVSXWD VPMOVSXWQ VPMOVUSDB +syn keyword nasmInstructionAVX512 VPMOVUSDW VPMOVUSQB VPMOVUSQD VPMOVUSQW VPMOVUSWB +syn keyword nasmInstructionAVX512 VPMOVW2M VPMOVWB VPMOVZXBD VPMOVZXBQ VPMOVZXBW +syn keyword nasmInstructionAVX512 VPMOVZXDQ VPMOVZXWD VPMOVZXWQ VPMULDQ VPMULHRSW +syn keyword nasmInstructionAVX512 VPMULHUW VPMULHW VPMULLD VPMULLQ VPMULLW +syn keyword nasmInstructionAVX512 VPMULTISHIFTQB VPMULUDQ VPORD VPORQ VPROLD +syn keyword nasmInstructionAVX512 VPROLQ VPROLVD VPROLVQ VPRORD VPRORQ +syn keyword nasmInstructionAVX512 VPRORVD VPRORVQ VPSADBW VPSCATTERDD VPSCATTERDQ +syn keyword nasmInstructionAVX512 VPSCATTERQD VPSCATTERQQ VPSHUFB VPSHUFD VPSHUFHW +syn keyword nasmInstructionAVX512 VPSHUFLW VPSLLD VPSLLDQ VPSLLQ VPSLLVD +syn keyword nasmInstructionAVX512 VPSLLVQ VPSLLVW VPSLLW VPSRAD VPSRAQ +syn keyword nasmInstructionAVX512 VPSRAVD VPSRAVQ VPSRAVW VPSRAW VPSRLD +syn keyword nasmInstructionAVX512 VPSRLDQ VPSRLQ VPSRLVD VPSRLVQ VPSRLVW +syn keyword nasmInstructionAVX512 VPSRLW VPSUBB VPSUBD VPSUBQ VPSUBSB +syn keyword nasmInstructionAVX512 VPSUBSW VPSUBUSB VPSUBUSW VPSUBW VPTERNLOGD +syn keyword nasmInstructionAVX512 VPTERNLOGQ VPTESTMB VPTESTMD VPTESTMQ VPTESTMW +syn keyword nasmInstructionAVX512 VPTESTNMB VPTESTNMD VPTESTNMQ VPTESTNMW VPUNPCKHBW +syn keyword nasmInstructionAVX512 VPUNPCKHDQ VPUNPCKHQDQ VPUNPCKHWD VPUNPCKLBW VPUNPCKLDQ +syn keyword nasmInstructionAVX512 VPUNPCKLQDQ VPUNPCKLWD VPXORD VPXORQ VRANGEPD +syn keyword nasmInstructionAVX512 VRANGEPS VRANGESD VRANGESS VRCP14PD VRCP14PS +syn keyword nasmInstructionAVX512 VRCP14SD VRCP14SS VRCP28PD VRCP28PS VRCP28SD +syn keyword nasmInstructionAVX512 VRCP28SS VREDUCEPD VREDUCEPS VREDUCESD VREDUCESS +syn keyword nasmInstructionAVX512 VRNDSCALEPD VRNDSCALEPS VRNDSCALESD VRNDSCALESS VRSQRT14PD +syn keyword nasmInstructionAVX512 VRSQRT14PS VRSQRT14SD VRSQRT14SS VRSQRT28PD VRSQRT28PS +syn keyword nasmInstructionAVX512 VRSQRT28SD VRSQRT28SS VSCALEFPD VSCALEFPS VSCALEFSD +syn keyword nasmInstructionAVX512 VSCALEFSS VSCATTERDPD VSCATTERDPS VSCATTERPF0DPD VSCATTERPF0DPS +syn keyword nasmInstructionAVX512 VSCATTERPF0QPD VSCATTERPF0QPS VSCATTERPF1DPD VSCATTERPF1DPS VSCATTERPF1QPD +syn keyword nasmInstructionAVX512 VSCATTERPF1QPS VSCATTERQPD VSCATTERQPS VSHUFF32X4 VSHUFF64X2 +syn keyword nasmInstructionAVX512 VSHUFI32X4 VSHUFI64X2 VSHUFPD VSHUFPS VSQRTPD +syn keyword nasmInstructionAVX512 VSQRTPS VSQRTSD VSQRTSS VSUBPD VSUBPS +syn keyword nasmInstructionAVX512 VSUBSD VSUBSS VUCOMISD VUCOMISS VUNPCKHPD +syn keyword nasmInstructionAVX512 VUNPCKHPS VUNPCKLPD VUNPCKLPS VXORPD VXORPS +" PROTECTION +syn keyword nasmInstructionPROTECTION RDPKRU WRPKRU +" RDPID +syn keyword nasmInstructionRDPID RDPID +" NMEM +syn keyword nasmInstructionNMEM CLFLUSHOPT CLWB PCOMMIT +syn keyword nasmInstructionNMEM CLZERO +" INTEL_EXTENSIONS +syn keyword nasmInstructionINTEL_EXTENSIONS CLDEMOTE MOVDIRI MOVDIR64B PCONFIG TPAUSE +syn keyword nasmInstructionINTEL_EXTENSIONS UMONITOR UMWAIT WBNOINVD +" GALOISFIELD +syn keyword nasmInstructionGALOISFIELD GF2P8AFFINEINVQB VGF2P8AFFINEINVQB GF2P8AFFINEQB VGF2P8AFFINEQB GF2P8MULB +syn keyword nasmInstructionGALOISFIELD VGF2P8MULB +" AVX512_BMI +syn keyword nasmInstructionAVX512_BMI VPCOMPRESSB VPCOMPRESSW VPEXPANDB VPEXPANDW VPSHLDW +syn keyword nasmInstructionAVX512_BMI VPSHLDD VPSHLDQ VPSHLDVW VPSHLDVD VPSHLDVQ +syn keyword nasmInstructionAVX512_BMI VPSHRDW VPSHRDD VPSHRDQ VPSHRDVW VPSHRDVD +syn keyword nasmInstructionAVX512_BMI VPSHRDVQ +" AVX512_VNNI +syn keyword nasmInstructionAVX512_VNNI VPDPBUSD VPDPBUSDS VPDPWSSD VPDPWSSDS +" AVX512_BITALG +syn keyword nasmInstructionAVX512_BITALG VPOPCNTB VPOPCNTW VPOPCNTD VPOPCNTQ VPSHUFBITQMB +" AVX512_FMA +syn keyword nasmInstructionAVX512_FMA V4FMADDPS V4FNMADDPS V4FMADDSS V4FNMADDSS +" AVX512_DP +syn keyword nasmInstructionAVX512_DP V4DPWSSDS V4DPWSSD +" SGX +syn keyword nasmInstructionSGX ENCLS ENCLU ENCLV +" CET +syn keyword nasmInstructionCET CLRSSBSY ENDBR32 ENDBR64 INCSSPD INCSSPQ +syn keyword nasmInstructionCET RDSSPD RDSSPQ RSTORSSP SAVEPREVSSP SETSSBSY +syn keyword nasmInstructionCET WRUSSD WRUSSQ WRSSD WRSSQ +" INTEL_EXTENSION +syn keyword nasmInstructionINTEL_EXTENSION ENQCMD ENQCMDS PCONFIG SERIALIZE WBNOINVD +syn keyword nasmInstructionINTEL_EXTENSION XRESLDTRK XSUSLDTRK +" AVX512_BF16 +syn keyword nasmInstructionAVX512_BF16 VCVTNE2PS2BF16 VCVTNEPS2BF16 VDPBF16PS +" AVX512_MASK_INTERSECT +syn keyword nasmInstructionAVX512_MASK_INTERSECT VP2INTERSECTD +" AMX +syn keyword nasmInstructionAMX LDTILECFG STTILECFG TDPBF16PS TDPBSSD TDPBSUD +syn keyword nasmInstructionAMX TDPBUSD TDPBUUD TILELOADD TILELOADDT1 TILERELEASE +syn keyword nasmInstructionAMX TILESTORED TILEZERO +" AVX512_FP16 +syn keyword nasmInstructionAVX512_FP16 VADDPH VADDSH VCMPPH VCMPSH VCOMISH +syn keyword nasmInstructionAVX512_FP16 VCVTDQ2PH VCVTPD2PH VCVTPH2DQ VCVTPH2PD VCVTPH2PS +syn keyword nasmInstructionAVX512_FP16 VCVTPH2PSX VCVTPH2QQ VCVTPH2UDQ VCVTPH2UQQ VCVTPH2UW +syn keyword nasmInstructionAVX512_FP16 VCVTPH2W VCVTPS2PH VCVTQQ2PH VCVTSD2SH VCVTSH2SD +syn keyword nasmInstructionAVX512_FP16 VCVTSH2SI VCVTSH2SS VCVTSH2USI VCVTSI2SH VCVTSS2SH +syn keyword nasmInstructionAVX512_FP16 VCVTTPH2DQ VCVTTPH2QQ VCVTTPH2UDQ VCVTTPH2UQQ VCVTTPH2UW +syn keyword nasmInstructionAVX512_FP16 VCVTTPH2W VCVTTSH2SI VCVTTSH2USI VCVTUDQ2PH VCVTUQQ2PH +syn keyword nasmInstructionAVX512_FP16 VCVTUSI2SH VCVTUSI2SS VCVTUW2PH VCVTW2PH VDIVPH +syn keyword nasmInstructionAVX512_FP16 VDIVSH VFCMADDCPH VFMADDCPH VFCMADDCSH VFMADDCSH +syn keyword nasmInstructionAVX512_FP16 VFCMULCPCH VFMULCPCH VFCMULCSH VFMULCSH VFMADDSUB132PH +syn keyword nasmInstructionAVX512_FP16 VFMADDSUB213PH VFMADDSUB231PH VFMSUBADD132PH VFMSUBADD213PH VFMSUBADD231PH +syn keyword nasmInstructionAVX512_FP16 VPMADD132PH VPMADD213PH VPMADD231PH VFMADD132PH VFMADD213PH +syn keyword nasmInstructionAVX512_FP16 VFMADD231PH VPMADD132SH VPMADD213SH VPMADD231SH VPNMADD132SH +syn keyword nasmInstructionAVX512_FP16 VPNMADD213SH VPNMADD231SH VPMSUB132PH VPMSUB213PH VPMSUB231PH +syn keyword nasmInstructionAVX512_FP16 VFMSUB132PH VFMSUB213PH VFMSUB231PH VPMSUB132SH VPMSUB213SH +syn keyword nasmInstructionAVX512_FP16 VPMSUB231SH VPNMSUB132SH VPNMSUB213SH VPNMSUB231SH VFPCLASSPH +syn keyword nasmInstructionAVX512_FP16 VFPCLASSSH VGETEXPPH VGETEXPSH VGETMANTPH VGETMANTSH +syn keyword nasmInstructionAVX512_FP16 VGETMAXPH VGETMAXSH VGETMINPH VGETMINSH VMOVSH +syn keyword nasmInstructionAVX512_FP16 VMOVW VMULPH VMULSH VRCPPH VRCPSH +syn keyword nasmInstructionAVX512_FP16 VREDUCEPH VREDUCESH VENDSCALEPH VENDSCALESH VRSQRTPH +syn keyword nasmInstructionAVX512_FP16 VRSQRTSH VSCALEFPH VSCALEFSH VSQRTPH VSQRTSH +syn keyword nasmInstructionAVX512_FP16 VSUBPH VSUBSH VUCOMISH +" RAO-INT +syn keyword nasmInstructionRAO_INT AADD AAND AXOR +" USERINT +syn keyword nasmInstructionUSERINT CLUI SENDUIPI STUI TESTUI UIRET +" CMPCCXADD +syn keyword nasmInstructionCMPCCXADD CMPOXADD CMPNOXADD CMPBXADD CMPNBXADD CMPZXADD +syn keyword nasmInstructionCMPCCXADD CMPNZXADD CMPBEXADD CMPNBEXADD CMPSXADD CMPNSXADD +syn keyword nasmInstructionCMPCCXADD CMPPXADD CMPNPXADD CMPLXADD CMPNLXADD CMPLEXADD +syn keyword nasmInstructionCMPCCXADD CMPNLEXADD +" FRET +syn keyword nasmInstructionFRET ERETS ERETU LKGS +" WRMSRNS_MSRLIST +syn keyword nasmInstructionWRMSRNS_MSRLIST WRMSRNS RDMSRLIST WRMSRLIST +" HRESET +syn keyword nasmInstructionHRESET HRESET +" PTWRITE +syn keyword nasmInstructionPTWRITE PTWRITE +" HINTNOP +syn keyword nasmInstructionHINTNOP HINT_NOP0 HINT_NOP1 HINT_NOP2 HINT_NOP3 HINT_NOP4 +syn keyword nasmInstructionHINTNOP HINT_NOP5 HINT_NOP6 HINT_NOP7 HINT_NOP8 HINT_NOP9 +syn keyword nasmInstructionHINTNOP HINT_NOP10 HINT_NOP11 HINT_NOP12 HINT_NOP13 HINT_NOP14 +syn keyword nasmInstructionHINTNOP HINT_NOP15 HINT_NOP16 HINT_NOP17 HINT_NOP18 HINT_NOP19 +syn keyword nasmInstructionHINTNOP HINT_NOP20 HINT_NOP21 HINT_NOP22 HINT_NOP23 HINT_NOP24 +syn keyword nasmInstructionHINTNOP HINT_NOP25 HINT_NOP26 HINT_NOP27 HINT_NOP28 HINT_NOP29 +syn keyword nasmInstructionHINTNOP HINT_NOP30 HINT_NOP31 HINT_NOP32 HINT_NOP33 HINT_NOP34 +syn keyword nasmInstructionHINTNOP HINT_NOP35 HINT_NOP36 HINT_NOP37 HINT_NOP38 HINT_NOP39 +syn keyword nasmInstructionHINTNOP HINT_NOP40 HINT_NOP41 HINT_NOP42 HINT_NOP43 HINT_NOP44 +syn keyword nasmInstructionHINTNOP HINT_NOP45 HINT_NOP46 HINT_NOP47 HINT_NOP48 HINT_NOP49 +syn keyword nasmInstructionHINTNOP HINT_NOP50 HINT_NOP51 HINT_NOP52 HINT_NOP53 HINT_NOP54 +syn keyword nasmInstructionHINTNOP HINT_NOP55 HINT_NOP56 HINT_NOP57 HINT_NOP58 HINT_NOP59 +syn keyword nasmInstructionHINTNOP HINT_NOP60 HINT_NOP61 HINT_NOP62 HINT_NOP63 " Cyrix instructions (requires Cyrix processor) -syn keyword nasmCrxInstruction PADDSIW PAVEB PDISTIB PMAGW PMULHRW[C] PMULHRIW +syn keyword nasmCrxInstruction PADDSIW PAVEB PDISTIB PMAGW PMULHRWC PMULHRIW syn keyword nasmCrxInstruction PMVGEZB PMVLZB PMVNZB PMVZB PSUBSIW syn keyword nasmCrxInstruction RDSHR RSDC RSLDT SMINT SMINTOLD SVDC SVLDT SVTS -syn keyword nasmCrxInstruction WRSHR -" AMD instructions (requires AMD processor) -syn keyword nasmAmdInstruction SYSCALL SYSRET - - -" Undocumented Instructions: -syn match nasmUndInstruction "\"me=s+3 -syn keyword nasmUndInstruction CMPXCHG486 IBTS ICEBP INT01 INT03 LOADALL -syn keyword nasmUndInstruction LOADALL286 LOADALL386 SALC SMI UD1 UMOV XBTS +syn keyword nasmCrxInstruction WRSHR BB0_RESET BB1_RESET +syn keyword nasmCrxInstruction CPU_WRITE CPU_READ DMINT RDM PMACHRIW +" Debugging Instructions: (privileged) +syn keyword nasmDbgInstruction INT1 INT3 RDMSR RDTSC RDPMC WRMSR INT01 INT03 " Synchronize Syntax: @@ -529,7 +1064,12 @@ hi def link nasmBinNumber Number hi def link nasmOctNumber Number hi def link nasmDecNumber Number hi def link nasmHexNumber Number -hi def link nasmFltNumber Float +hi def link nasmBinFloat Float +hi def link nasmOctFloat Float +hi def link nasmDecFloat Float +hi def link nasmHexFloat Float +hi def link nasmSpecFloat Float +hi def link nasmBcdConst Float hi def link nasmNumberError Error " Identifier Group: @@ -563,6 +1103,7 @@ hi def link nasmStdDirective Operator hi def link nasmFmtDirective Keyword " Register Group: +hi def link nasmRegisterError Error hi def link nasmCtrlRegister Special hi def link nasmDebugRegister Debug hi def link nasmTestRegister Special @@ -570,19 +1111,81 @@ hi def link nasmRegisterError Error hi def link nasmMemRefError Error " Instruction Group: -hi def link nasmStdInstruction Statement -hi def link nasmSysInstruction Statement -hi def link nasmDbgInstruction Debug -hi def link nasmFpuInstruction Statement -hi def link nasmMmxInstruction Statement -hi def link nasmSseInstruction Statement -hi def link nasmF16cInstruction Statement -hi def link nasmAVXInstruction Statement -hi def link nasmNowInstruction Statement -hi def link nasmAmdInstruction Special -hi def link nasmCrxInstruction Special -hi def link nasmUndInstruction Todo hi def link nasmInstructnError Error +hi def link nasmCrxInstruction Special +hi def link nasmDbgInstruction Debug +hi def link nasmInstructionStandard Statement +hi def link nasmInstructionSIMD Statement +hi def link nasmInstructionSSE Statement +hi def link nasmInstructionXSAVE Statement +hi def link nasmInstructionMEM Statement +hi def link nasmInstructionMMX Statement +hi def link nasmInstruction3DNOW Statement +hi def link nasmInstructionSSE2 Statement +hi def link nasmInstructionWMMX Statement +hi def link nasmInstructionWSSD Statement +hi def link nasmInstructionPRESSCOT Statement +hi def link nasmInstructionVMXSVM Statement +hi def link nasmInstructionPTVMX Statement +hi def link nasmInstructionSEVSNPAMD Statement +hi def link nasmInstructionTEJAS Statement +hi def link nasmInstructionAMD_SSE4A Statement +hi def link nasmInstructionBARCELONA Statement +hi def link nasmInstructionPENRY Statement +hi def link nasmInstructionNEHALEM Statement +hi def link nasmInstructionSMX Statement +hi def link nasmInstructionGEODE_3DNOW Statement +hi def link nasmInstructionINTEL_NEW Statement +hi def link nasmInstructionAES Statement +hi def link nasmInstructionAVX_AES Statement +hi def link nasmInstructionINTEL_PUB Statement +hi def link nasmInstructionAVX Statement +hi def link nasmInstructionINTEL_CMUL Statement +hi def link nasmInstructionINTEL_AVX_CMUL Statement +hi def link nasmInstructionINTEL_FMA Statement +hi def link nasmInstructionINTEL_POST32 Statement +hi def link nasmInstructionSUPERVISOR Statement +hi def link nasmInstructionVIA_SECURITY Statement +hi def link nasmInstructionAMD_PROFILING Statement +hi def link nasmInstructionXOP_FMA4 Statement +hi def link nasmInstructionAVX2 Statement +hi def link nasmInstructionTRANSACTIONS Statement +hi def link nasmInstructionBMI_ABM Statement +hi def link nasmInstructionMPE Statement +hi def link nasmInstructionSHA Statement +hi def link nasmInstructionSM3 Statement +hi def link nasmInstructionSM4 Statement +hi def link nasmInstructionAVX_NOEXCEPT Statement +hi def link nasmInstructionAVX_VECTOR_NN Statement +hi def link nasmInstructionAVX_IFMA Statement +hi def link nasmInstructionAVX512_MASK Statement +hi def link nasmInstructionAVX512_MASK_REG Statement +hi def link nasmInstructionAVX512 Statement +hi def link nasmInstructionPROTECTION Statement +hi def link nasmInstructionRDPID Statement +hi def link nasmInstructionNMEM Statement +hi def link nasmInstructionINTEL_EXTENSIONS Statement +hi def link nasmInstructionGALOISFIELD Statement +hi def link nasmInstructionAVX512_BMI Statement +hi def link nasmInstructionAVX512_VNNI Statement +hi def link nasmInstructionAVX512_BITALG Statement +hi def link nasmInstructionAVX512_FMA Statement +hi def link nasmInstructionAVX512_DP Statement +hi def link nasmInstructionSGX Statement +hi def link nasmInstructionCET Statement +hi def link nasmInstructionINTEL_EXTENSION Statement +hi def link nasmInstructionAVX512_BF16 Statement +hi def link nasmInstructionAVX512_MASK_INTERSECT Statement +hi def link nasmInstructionAMX Statement +hi def link nasmInstructionAVX512_FP16 Statement +hi def link nasmInstructionRAO_INT Statement +hi def link nasmInstructionUSERINT Statement +hi def link nasmInstructionCMPCCXADD Statement +hi def link nasmInstructionFRET Statement +hi def link nasmInstructionWRMSRNS_MSRLIST Statement +hi def link nasmInstructionHRESET Statement +hi def link nasmInstructionHINTNOP Statement +hi def link nasmInstructionPTWRITE Statement let b:current_syntax = "nasm" -- cgit From 0264870c0aa50fd4e34fb8a6b3c3c3cd88a22db7 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 9 Oct 2024 09:44:15 +0200 Subject: vim-patch:9.1.0769: filetype: MLIR files are not recognized Problem: filetype: MLIR files are not recognized Solution: Detect '*.mlir' files as mlir filetype, include a mlir filetype plugin (Wu, Zhenyu) closes: vim/vim#15826 https://github.com/vim/vim/commit/347d43bd33519ab537f77d1a8fa8ab8f9196bcb9 Co-authored-by: Wu, Zhenyu --- runtime/ftplugin/mlir.vim | 10 ++++++++++ runtime/lua/vim/filetype.lua | 1 + 2 files changed, 11 insertions(+) create mode 100644 runtime/ftplugin/mlir.vim (limited to 'runtime') diff --git a/runtime/ftplugin/mlir.vim b/runtime/ftplugin/mlir.vim new file mode 100644 index 0000000000..c6a9dc341f --- /dev/null +++ b/runtime/ftplugin/mlir.vim @@ -0,0 +1,10 @@ +" Vim filetype plugin file +" Language: MLIR + +if exists("b:did_ftplugin") | finish | endif +let b:did_ftplugin = 1 + +setl comments=:///,:// +setl commentstring=//\ %s + +let b:undo_ftplugin = "setl commentstring< comments<" diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index d3910e26eb..3d3b2a2ea1 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -752,6 +752,7 @@ local extension = { mib = 'mib', mix = 'mix', mixal = 'mix', + mlir = 'mlir', mm = detect.mm, nb = 'mma', wl = 'mma', -- cgit From 8ef3dd3afa20024f439d8b7a69f316069c1909d3 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 9 Oct 2024 19:31:14 +0800 Subject: docs(lua): "vim.bo" is always equivalent to :setlocal (#30733) vim.bo :lua vim.bo.textwidth = 80 :setglobal textwidth? textwidth=0 :setlocal :setlocal textwidth=80 :setglobal textwidth? textwidth=0 :set :set textwidth=80 :setglobal textwidth? textwidth=80 --- runtime/doc/lua.txt | 9 +++------ runtime/lua/vim/_options.lua | 4 +--- 2 files changed, 4 insertions(+), 9 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt index 396f24a1aa..3e8d8bb62c 100644 --- a/runtime/doc/lua.txt +++ b/runtime/doc/lua.txt @@ -1464,12 +1464,9 @@ Option:remove({value}) *vim.opt:remove()* • {value} (`string`) Value to remove vim.bo[{bufnr}] *vim.bo* - Get or set buffer-scoped |options| for the buffer with number {bufnr}. If - {bufnr} is omitted then the current buffer is used. Invalid {bufnr} or key - is an error. - - Note: this is equivalent to `:setlocal` for |global-local| options and - `:set` otherwise. + Get or set buffer-scoped |options| for the buffer with number {bufnr}. + Like `:setlocal`. If {bufnr} is omitted then the current buffer is used. + Invalid {bufnr} or key is an error. Example: >lua local bufnr = vim.api.nvim_get_current_buf() diff --git a/runtime/lua/vim/_options.lua b/runtime/lua/vim/_options.lua index a61fa61256..77d7054626 100644 --- a/runtime/lua/vim/_options.lua +++ b/runtime/lua/vim/_options.lua @@ -274,11 +274,9 @@ vim.go = setmetatable({}, { }) --- Get or set buffer-scoped |options| for the buffer with number {bufnr}. ---- If {bufnr} is omitted then the current buffer is used. +--- Like `:setlocal`. If {bufnr} is omitted then the current buffer is used. --- Invalid {bufnr} or key is an error. --- ---- Note: this is equivalent to `:setlocal` for |global-local| options and `:set` otherwise. ---- --- Example: --- --- ```lua -- cgit From 8450752f46e1482bf34b7f05e484cca740f61075 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 9 Oct 2024 08:15:14 +0800 Subject: vim-patch:9.1.0771: completion attribute hl_group is confusing Problem: Currently completion attribute hl_group is combined with all items, which is redundant and confusing with kind_hlgroup Solution: Renamed to abbr_hlgroup and combine it only with the abbr item (glepnir). closes: vim/vim#15818 https://github.com/vim/vim/commit/0fe17f8ffbd2588ecd2bf42dced556897bc64f89 Co-authored-by: glepnir --- runtime/doc/insert.txt | 4 ++-- runtime/lua/vim/lsp/completion.lua | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt index d7cbb7c78e..27b28624f8 100644 --- a/runtime/doc/insert.txt +++ b/runtime/doc/insert.txt @@ -1177,12 +1177,12 @@ items: user_data custom data which is associated with the item and available in |v:completed_item|; it can be any type; defaults to an empty string - hl_group an additional highlight group whose attributes are + abbr_hlgroup an additional highlight group whose attributes are combined with |hl-PmenuSel| and |hl-Pmenu| or |hl-PmenuMatchSel| and |hl-PmenuMatch| highlight attributes in the popup menu to apply cterm and gui properties (with higher priority) like strikethrough - to the completion items + to the completion items abbreviation kind_hlgroup an additional highlight group specifically for setting the highlight attributes of the completion kind. When this field is present, it will override the diff --git a/runtime/lua/vim/lsp/completion.lua b/runtime/lua/vim/lsp/completion.lua index 71ea2df100..e74f993356 100644 --- a/runtime/lua/vim/lsp/completion.lua +++ b/runtime/lua/vim/lsp/completion.lua @@ -272,7 +272,7 @@ function M._lsp_to_complete_items(result, prefix, client_id) icase = 1, dup = 1, empty = 1, - hl_group = hl_group, + abbr_hlgroup = hl_group, user_data = { nvim = { lsp = { -- cgit From b3109084c2c3675aa886bf16ff15f50025f30096 Mon Sep 17 00:00:00 2001 From: Tomasz N Date: Thu, 10 Oct 2024 11:40:03 +0200 Subject: fix(lsp): fix cursor position after snippet expansion (#30659) Problem: on `CompleteDone` cursor can jump to the end of line instead of the end of the completed word. Solution: remove only inserted word for snippet expansion instead of everything until eol. Fixes #30656 Co-authored-by: Mathias Fussenegger Co-authored-by: Justin M. Keyes --- runtime/lua/vim/lsp/completion.lua | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) (limited to 'runtime') diff --git a/runtime/lua/vim/lsp/completion.lua b/runtime/lua/vim/lsp/completion.lua index e74f993356..14fad987e0 100644 --- a/runtime/lua/vim/lsp/completion.lua +++ b/runtime/lua/vim/lsp/completion.lua @@ -113,12 +113,11 @@ local function parse_snippet(input) end --- @param item lsp.CompletionItem ---- @param suffix? string -local function apply_snippet(item, suffix) +local function apply_snippet(item) if item.textEdit then - vim.snippet.expand(item.textEdit.newText .. suffix) + vim.snippet.expand(item.textEdit.newText) elseif item.insertText then - vim.snippet.expand(item.insertText .. suffix) + vim.snippet.expand(item.insertText) end end @@ -539,15 +538,12 @@ local function on_complete_done() -- Remove the already inserted word. local start_char = cursor_col - #completed_item.word - local line = api.nvim_buf_get_lines(bufnr, cursor_row, cursor_row + 1, true)[1] - api.nvim_buf_set_text(bufnr, cursor_row, start_char, cursor_row, #line, { '' }) - return line:sub(cursor_col + 1) + api.nvim_buf_set_text(bufnr, cursor_row, start_char, cursor_row, cursor_col, { '' }) end - --- @param suffix? string - local function apply_snippet_and_command(suffix) + local function apply_snippet_and_command() if expand_snippet then - apply_snippet(completion_item, suffix) + apply_snippet(completion_item) end local command = completion_item.command @@ -565,9 +561,9 @@ local function on_complete_done() end if completion_item.additionalTextEdits and next(completion_item.additionalTextEdits) then - local suffix = clear_word() + clear_word() lsp.util.apply_text_edits(completion_item.additionalTextEdits, bufnr, offset_encoding) - apply_snippet_and_command(suffix) + apply_snippet_and_command() elseif resolve_provider and type(completion_item) == 'table' then local changedtick = vim.b[bufnr].changedtick @@ -577,7 +573,7 @@ local function on_complete_done() return end - local suffix = clear_word() + clear_word() if err then vim.notify_once(err.message, vim.log.levels.WARN) elseif result and result.additionalTextEdits then @@ -587,11 +583,11 @@ local function on_complete_done() end end - apply_snippet_and_command(suffix) + apply_snippet_and_command() end, bufnr) else - local suffix = clear_word() - apply_snippet_and_command(suffix) + clear_word() + apply_snippet_and_command() end end -- cgit From 6f1601a1b94e6ea724d8436600c64760525d1d2b Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 11 Oct 2024 06:48:45 +0800 Subject: vim-patch:9.1.0774: "shellcmdline" doesn't work with getcompletion() (#30750) Problem: "shellcmdline" doesn't work with getcompletion(). Solution: Use set_context_for_wildcard_arg() (zeertzjq). closes: vim/vim#15834 https://github.com/vim/vim/commit/85f36d61e09b12d6f1c60201129823371daa4a84 --- runtime/doc/builtin.txt | 1 + runtime/lua/vim/_meta/vimfn.lua | 1 + 2 files changed, 2 insertions(+) (limited to 'runtime') diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 617fd87553..aa31c59ab2 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -3362,6 +3362,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()* runtime |:runtime| completion scriptnames sourced script names |:scriptnames| shellcmd Shell command + shellcmdline Shell command line with filename arguments sign |:sign| suboptions syntax syntax file names |'syntax'| syntime |:syntime| suboptions diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index 1e1e87fca8..81e7070ac0 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -3008,6 +3008,7 @@ function vim.fn.getcmdwintype() end --- runtime |:runtime| completion --- scriptnames sourced script names |:scriptnames| --- shellcmd Shell command +--- shellcmdline Shell command line with filename arguments --- sign |:sign| suboptions --- syntax syntax file names |'syntax'| --- syntime |:syntime| suboptions -- cgit From a0e3fe57417f0b7c8de60dcebe44d0cf034c4b9a Mon Sep 17 00:00:00 2001 From: Riley Bruins Date: Thu, 10 Oct 2024 23:26:25 -0700 Subject: feat(ui): cascading style inheritance for Pmenu* highlights #29980 - `PmenuSel` and `PmenuMatch` inherit from `Pmenu` - `PmenuMatchSel` inherits from both `PmenuSel` and `PmenuMatch` --- runtime/doc/news.txt | 4 ++++ runtime/doc/syntax.txt | 8 +++++--- runtime/doc/vim_diff.txt | 3 +++ 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index ed5bd973be..9bc20c3827 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -234,6 +234,10 @@ UI which controls the tool used to open the given path or URL. If you want to globally set this, you can override vim.ui.open using the same approach described at |vim.paste()|. +• The |ins-completion-menu| now supports cascading highlight styles. + |hl-PmenuSel| and |hl-PmenuMatch| both inherit from |hl-Pmenu|, and + |hl-PmenuMatchSel| inherits highlights from both |hl-PmenuSel| and + |hl-PmenuMatch|. ============================================================================== CHANGED FEATURES *news-changed* diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 219be92c58..5cdcf564c9 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -5202,7 +5202,7 @@ NormalNC Normal text in non-current windows. *hl-Pmenu* Pmenu Popup menu: Normal item. *hl-PmenuSel* -PmenuSel Popup menu: Selected item. +PmenuSel Popup menu: Selected item. Combined with |hl-Pmenu|. *hl-PmenuKind* PmenuKind Popup menu: Normal item "kind". *hl-PmenuKindSel* @@ -5216,9 +5216,11 @@ PmenuSbar Popup menu: Scrollbar. *hl-PmenuThumb* PmenuThumb Popup menu: Thumb of the scrollbar. *hl-PmenuMatch* -PmenuMatch Popup menu: Matched text in normal item. +PmenuMatch Popup menu: Matched text in normal item. Combined with + |hl-Pmenu|. *hl-PmenuMatchSel* -PmenuMatchSel Popup menu: Matched text in selected item. +PmenuMatchSel Popup menu: Matched text in selected item. Combined with + |hl-PmenuMatch| and |hl-PmenuSel|. *hl-Question* Question |hit-enter| prompt and yes/no questions. *hl-QuickFixLine* diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index e069678b30..0a42acffb9 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -561,6 +561,9 @@ Highlight groups: the regexp `[a-zA-Z0-9_.@-]*` (see |group-name|). - |hl-StatusLineTerm| |hl-StatusLineTermNC| are implemented as 'winhighlight' window-local highlights which are set by the default |TermOpen| handler. +- The |ins-completion-menu| has cascading highlight styles. |hl-PmenuSel| and + |hl-PmenuMatch| both inherit from |hl-Pmenu|, and |hl-PmenuMatchSel| + inherits highlights from both |hl-PmenuSel| and |hl-PmenuMatch|. Macro (|recording|) behavior: - Replay of a macro recorded during :lmap produces the same actions as when it -- cgit From 79c036747a6cde1e38adcd19ed89b9295b2af1e3 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 11 Oct 2024 08:31:06 +0200 Subject: vim-patch:9.1.0773: filetype: some Apache files are not recognized Problem: filetype: some Apache files are not recognized Solution: Detect more config files from the Apache source distribution as filetype apache (nisbet-hubbard) closes: vim/vim#15810 https://github.com/vim/vim/commit/e58e9015cc431b79d88af4daec838519a8e296d6 Co-authored-by: nisbet-hubbard <87453615+nisbet-hubbard@users.noreply.github.com> --- runtime/lua/vim/filetype.lua | 2 ++ 1 file changed, 2 insertions(+) (limited to 'runtime') diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index 3d3b2a2ea1..445281deca 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -2185,6 +2185,8 @@ local pattern = { ['^apache%.conf'] = detect_apache_dotconf, ['^apache2%.conf'] = detect_apache_dotconf, ['^httpd%.conf'] = detect_apache_dotconf, + ['^httpd%-.*%.conf'] = detect_apache_dotconf, + ['^proxy%-html%.conf'] = detect_apache_dotconf, ['^srm%.conf'] = detect_apache_dotconf, ['asterisk/.*%.conf'] = starsetf('asterisk'), ['asterisk.*/.*voicemail%.conf'] = starsetf('asteriskvm'), -- cgit From c3cb702ac7a5d6a1515129c80ce143e3bdf5d739 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 11 Oct 2024 00:50:09 -0700 Subject: fix(lsp): set 'smoothscroll' in docs hover #30748 --- runtime/lua/vim/lsp/util.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'runtime') diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua index 882ec22ca6..ebc3f7c55e 100644 --- a/runtime/lua/vim/lsp/util.lua +++ b/runtime/lua/vim/lsp/util.lua @@ -1656,6 +1656,7 @@ function M.open_floating_preview(contents, syntax, opts) vim.wo[floating_winnr].foldenable = false -- Disable folding. vim.wo[floating_winnr].wrap = opts.wrap -- Soft wrapping. vim.wo[floating_winnr].breakindent = true -- Slightly better list presentation. + vim.wo[floating_winnr].smoothscroll = true -- Scroll by screen-line instead of buffer-line. vim.bo[floating_bufnr].modifiable = false vim.bo[floating_bufnr].bufhidden = 'wipe' -- cgit From 267c7525f738cdd6024c39da758e885c026ffaaa Mon Sep 17 00:00:00 2001 From: Riley Bruins Date: Wed, 2 Oct 2024 10:34:14 -0700 Subject: feat(treesitter): introduce child_with_descendant() This commit also marks `child_containing_descendant()` as deprecated (per upstream's documentation), and uses `child_with_descendant()` in its place. Minimum required tree-sitter version will now be `0.24`. --- runtime/doc/deprecated.txt | 5 +++++ runtime/doc/news.txt | 3 +++ runtime/doc/treesitter.txt | 31 ++++++++++++++++++----------- runtime/lua/vim/treesitter.lua | 3 +-- runtime/lua/vim/treesitter/_meta/tsnode.lua | 18 ++++++++++++++++- 5 files changed, 45 insertions(+), 15 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt index 72d2faca02..6895348d05 100644 --- a/runtime/doc/deprecated.txt +++ b/runtime/doc/deprecated.txt @@ -36,6 +36,11 @@ DIAGNOSTICS - The "cursor_position" parameter of |vim.diagnostic.JumpOpts| is renamed to "pos" +TREESITTER +• *TSNode:child_containing_descendant()* Use + |TSNode:child_with_descendant()| instead; it is identical except that it can + return the descendant itself. + ------------------------------------------------------------------------------ DEPRECATED IN 0.10 *deprecated-0.10* diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 9bc20c3827..1d364ba29a 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -108,6 +108,9 @@ TREESITTER if no languages are explicitly registered. • |vim.treesitter.language.add()| returns `true` if a parser was loaded successfully and `nil,errmsg` otherwise instead of throwing an error. +• New |TSNode:child_with_descendant()|, which is nearly identical to + |TSNode:child_containing_descendant()| except that it can return the + descendant itself. TUI diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt index 35192cc43d..805876172d 100644 --- a/runtime/doc/treesitter.txt +++ b/runtime/doc/treesitter.txt @@ -622,9 +622,23 @@ TSNode:child({index}) *TSNode:child()* Return: ~ (`TSNode?`) - *TSNode:child_containing_descendant()* -TSNode:child_containing_descendant({descendant}) - Get the node's child that contains {descendant}. +TSNode:child_count() *TSNode:child_count()* + Get the node's number of children. + + Return: ~ + (`integer`) + + *TSNode:child_with_descendant()* +TSNode:child_with_descendant({descendant}) + Get the node's child that contains {descendant} (includes {descendant}). + + For example, with the following node hierarchy: > + a -> b -> c + + a:child_with_descendant(c) == b + a:child_with_descendant(b) == b + a:child_with_descendant(a) == nil +< Parameters: ~ • {descendant} (`TSNode`) @@ -632,12 +646,6 @@ TSNode:child_containing_descendant({descendant}) Return: ~ (`TSNode?`) -TSNode:child_count() *TSNode:child_count()* - Get the node's number of children. - - Return: ~ - (`integer`) - *TSNode:descendant_for_range()* TSNode:descendant_for_range({start_row}, {start_col}, {end_row}, {end_col}) Get the smallest node within this node that spans the given range of (row, @@ -778,9 +786,8 @@ TSNode:next_sibling() *TSNode:next_sibling()* (`TSNode?`) TSNode:parent() *TSNode:parent()* - Get the node's immediate parent. Prefer - |TSNode:child_containing_descendant()| for iterating over the node's - ancestors. + Get the node's immediate parent. Prefer |TSNode:child_with_descendant()| + for iterating over the node's ancestors. Return: ~ (`TSNode?`) diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua index ed7d31e1f7..4727c0d61d 100644 --- a/runtime/lua/vim/treesitter.lua +++ b/runtime/lua/vim/treesitter.lua @@ -152,8 +152,7 @@ function M.is_ancestor(dest, source) return false end - -- child_containing_descendant returns nil if dest is a direct parent - return source:parent() == dest or dest:child_containing_descendant(source) ~= nil + return dest:child_with_descendant(source) ~= nil end --- Returns the node's range or an unpacked range table diff --git a/runtime/lua/vim/treesitter/_meta/tsnode.lua b/runtime/lua/vim/treesitter/_meta/tsnode.lua index acc9f8d24e..d982b6a505 100644 --- a/runtime/lua/vim/treesitter/_meta/tsnode.lua +++ b/runtime/lua/vim/treesitter/_meta/tsnode.lua @@ -15,7 +15,7 @@ error('Cannot require a meta file') local TSNode = {} -- luacheck: no unused --- Get the node's immediate parent. ---- Prefer |TSNode:child_containing_descendant()| +--- Prefer |TSNode:child_with_descendant()| --- for iterating over the node's ancestors. --- @return TSNode? function TSNode:parent() end @@ -71,8 +71,24 @@ function TSNode:named_child(index) end --- Get the node's child that contains {descendant}. --- @param descendant TSNode --- @return TSNode? +--- @deprecated function TSNode:child_containing_descendant(descendant) end +--- Get the node's child that contains {descendant} (includes {descendant}). +--- +--- For example, with the following node hierarchy: +--- +--- ``` +--- a -> b -> c +--- +--- a:child_with_descendant(c) == b +--- a:child_with_descendant(b) == b +--- a:child_with_descendant(a) == nil +--- ``` +--- @param descendant TSNode +--- @return TSNode? +function TSNode:child_with_descendant(descendant) end + --- Get the node's start position. Return three values: the row, column and --- total byte count (all zero-based). --- @return integer, integer, integer -- cgit From d3193afc2559e7d84ed2d76664a650dc03b4c6ef Mon Sep 17 00:00:00 2001 From: Riley Bruins Date: Thu, 19 Sep 2024 13:08:22 -0700 Subject: fix(treesitter): remove duplicate symbol names in language.inspect() **Problems:** - `vim.treesitter.language.inspect()` returns duplicate symbol names, sometimes up to 6 of one kind in the case of `markdown` - The list-like `symbols` table can have holes and is thus not even a valid msgpack table anyway, mentioned in a test **Solution:** Return symbols as a map, rather than a list, where field names are the names of the symbol. The boolean value associated with the field encodes whether or not the symbol is named. Note that anonymous nodes are surrounded with double quotes (`"`) to prevent potential collisions with named counterparts that have the same identifier. --- runtime/doc/treesitter.txt | 9 +++++++-- runtime/lua/vim/treesitter/_query_linter.lua | 8 ++++++-- runtime/lua/vim/treesitter/language.lua | 7 ++++++- 3 files changed, 19 insertions(+), 5 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/treesitter.txt b/runtime/doc/treesitter.txt index 805876172d..f9a98250ea 100644 --- a/runtime/doc/treesitter.txt +++ b/runtime/doc/treesitter.txt @@ -1150,8 +1150,13 @@ get_lang({filetype}) *vim.treesitter.language.get_lang()* inspect({lang}) *vim.treesitter.language.inspect()* Inspects the provided language. - Inspecting provides some useful information on the language like node - names, ... + Inspecting provides some useful information on the language like node and + field names, ABI version, and whether the language came from a WASM + module. + + Node names are returned in a table mapping each node name to a `boolean` + indicating whether or not the node is named (i.e., not anonymous). + Anonymous nodes are surrounded with double quotes (`"`). Parameters: ~ • {lang} (`string`) Language diff --git a/runtime/lua/vim/treesitter/_query_linter.lua b/runtime/lua/vim/treesitter/_query_linter.lua index c5e4b86e1e..a825505378 100644 --- a/runtime/lua/vim/treesitter/_query_linter.lua +++ b/runtime/lua/vim/treesitter/_query_linter.lua @@ -240,8 +240,12 @@ function M.omnifunc(findstart, base) table.insert(items, text) end end - for _, s in pairs(parser_info.symbols) do - local text = s[2] and s[1] or string.format('%q', s[1]):gsub('\n', 'n') ---@type string + for text, named in + pairs(parser_info.symbols --[[@as table]]) + do + if not named then + text = string.format('%q', text:sub(2, -2)):gsub('\n', 'n') ---@type string + end if text:find(base, 1, true) then table.insert(items, text) end diff --git a/runtime/lua/vim/treesitter/language.lua b/runtime/lua/vim/treesitter/language.lua index 9f7807e036..aa1d38df97 100644 --- a/runtime/lua/vim/treesitter/language.lua +++ b/runtime/lua/vim/treesitter/language.lua @@ -170,7 +170,12 @@ end --- Inspects the provided language. --- ---- Inspecting provides some useful information on the language like node names, ... +--- Inspecting provides some useful information on the language like node and field names, ABI +--- version, and whether the language came from a WASM module. +--- +--- Node names are returned in a table mapping each node name to a `boolean` indicating whether or +--- not the node is named (i.e., not anonymous). Anonymous nodes are surrounded with double quotes +--- (`"`). --- ---@param lang string Language ---@return table -- cgit From 26e765f905cbf1df18cfc825bad9b1b982f517ea Mon Sep 17 00:00:00 2001 From: Gregory Anders <8965202+gpanders@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:56:21 -0500 Subject: feat(defaults): map gri to vim.lsp.buf.implementation() (#30764) Continuing the default LSP maps under the "gr" prefix. Mnemonic: "i" for "implementation". --- runtime/doc/lsp.txt | 3 ++- runtime/doc/news.txt | 1 + runtime/doc/vim_diff.txt | 1 + runtime/lua/vim/_defaults.lua | 6 +++++- 4 files changed, 9 insertions(+), 2 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt index 419f583c36..20503d46b8 100644 --- a/runtime/doc/lsp.txt +++ b/runtime/doc/lsp.txt @@ -71,11 +71,12 @@ options are not restored when the LSP client is stopped or detached. - |K| is mapped to |vim.lsp.buf.hover()| unless |'keywordprg'| is customized or a custom keymap for `K` exists. - *grr* *gra* *grn* *i_CTRL-S* + *grr* *gra* *grn* *gri* *i_CTRL-S* Some keymaps are created unconditionally when Nvim starts: - "grn" is mapped in Normal mode to |vim.lsp.buf.rename()| - "gra" is mapped in Normal and Visual mode to |vim.lsp.buf.code_action()| - "grr" is mapped in Normal mode to |vim.lsp.buf.references()| +- "gri" is mapped in Normal mode to |vim.lsp.buf.implementation()| - CTRL-S is mapped in Insert mode to |vim.lsp.buf.signature_help()| If not wanted, these keymaps can be removed at any time using diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 1d364ba29a..1b311330b0 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -139,6 +139,7 @@ DEFAULTS • Mappings: • |grn| in Normal mode maps to |vim.lsp.buf.rename()| • |grr| in Normal mode maps to |vim.lsp.buf.references()| + • |gri| in Normal mode maps to |vim.lsp.buf.implementation()| • |gra| in Normal and Visual mode maps to |vim.lsp.buf.code_action()| • CTRL-S in Insert mode maps to |vim.lsp.buf.signature_help()| • Mouse |popup-menu| includes an "Open in web browser" item when you right-click diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 0a42acffb9..137e78801b 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -150,6 +150,7 @@ of these in your config by simply removing the mapping, e.g. ":unmap Y". - |grn| - |grr| - |gra| + - |gri| - |i_CTRL-S| - ]d |]d-default| - [d |[d-default| diff --git a/runtime/lua/vim/_defaults.lua b/runtime/lua/vim/_defaults.lua index 6cad1dbca9..8e850f4cd3 100644 --- a/runtime/lua/vim/_defaults.lua +++ b/runtime/lua/vim/_defaults.lua @@ -157,7 +157,7 @@ do --- client is attached. If no client is attached, or if a server does not support a capability, an --- error message is displayed rather than exhibiting different behavior. --- - --- See |grr|, |grn|, |gra|, |i_CTRL-S|. + --- See |grr|, |grn|, |gra|, |gri|, |i_CTRL-S|. do vim.keymap.set('n', 'grn', function() vim.lsp.buf.rename() @@ -171,6 +171,10 @@ do vim.lsp.buf.references() end, { desc = 'vim.lsp.buf.references()' }) + vim.keymap.set('n', 'gri', function() + vim.lsp.buf.implementation() + end, { desc = 'vim.lsp.buf.implementation()' }) + vim.keymap.set('i', '', function() vim.lsp.buf.signature_help() end, { desc = 'vim.lsp.buf.signature_help()' }) -- cgit From 0e42c81c7fd429529d89458349c7cdde254d5406 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 12 Oct 2024 08:07:05 +0800 Subject: fix(lua): avoid recursive vim.on_key() callback (#30753) --- runtime/doc/lua.txt | 2 ++ runtime/doc/news.txt | 3 +++ runtime/lua/vim/_editor.lua | 2 ++ 3 files changed, 7 insertions(+) (limited to 'runtime') diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt index 3e8d8bb62c..4acf8dc0af 100644 --- a/runtime/doc/lua.txt +++ b/runtime/doc/lua.txt @@ -1678,6 +1678,8 @@ vim.on_key({fn}, {ns_id}) *vim.on_key()* Note: ~ • {fn} will be removed on error. + • {fn} won't be invoked recursively, i.e. if {fn} itself consumes input, + it won't be invoked for those keys. • {fn} will not be cleared by |nvim_buf_clear_namespace()| Parameters: ~ diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 1b311330b0..6af136bb5a 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -262,6 +262,9 @@ These existing features changed their behavior. more emoji characters than before, including those encoded with multiple emoji codepoints combined with ZWJ (zero width joiner) codepoints. +• |vim.on_key()| callbacks won't be invoked recursively when a callback itself + consumes input. + ============================================================================== REMOVED FEATURES *news-removed* diff --git a/runtime/lua/vim/_editor.lua b/runtime/lua/vim/_editor.lua index 2e829578a7..17a87dd9fd 100644 --- a/runtime/lua/vim/_editor.lua +++ b/runtime/lua/vim/_editor.lua @@ -658,6 +658,8 @@ local on_key_cbs = {} --- @type table --- and cannot be toggled dynamically. --- ---@note {fn} will be removed on error. +---@note {fn} won't be invoked recursively, i.e. if {fn} itself consumes input, +--- it won't be invoked for those keys. ---@note {fn} will not be cleared by |nvim_buf_clear_namespace()| --- ---@param fn fun(key: string, typed: string)? -- cgit From 45f8f957c05ca18ea86b8b6bb6c0a903c9140b7b Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 12 Oct 2024 12:20:06 +0800 Subject: docs(lua): clarify when on_key "typed" will be empty (#30774) --- runtime/doc/lua.txt | 18 ++++++++++++------ runtime/lua/vim/_editor.lua | 19 +++++++++++-------- 2 files changed, 23 insertions(+), 14 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt index 4acf8dc0af..aba1ef476b 100644 --- a/runtime/doc/lua.txt +++ b/runtime/doc/lua.txt @@ -1683,12 +1683,15 @@ vim.on_key({fn}, {ns_id}) *vim.on_key()* • {fn} will not be cleared by |nvim_buf_clear_namespace()| Parameters: ~ - • {fn} (`fun(key: string, typed: string)?`) Function invoked on - every key press. |i_CTRL-V| {key} is the key after mappings - have been applied, and {typed} is the key(s) before mappings - are applied, which may be empty if {key} is produced by - non-typed keys. When {fn} is nil and {ns_id} is specified, - the callback associated with namespace {ns_id} is removed. + • {fn} (`fun(key: string, typed: string)?`) Function invoked for + every input key, after mappings have been applied but before + further processing. Arguments {key} and {typed} are raw + keycodes, where {key} is the key after mappings are applied, + and {typed} is the key(s) before mappings are applied. + {typed} may be empty if {key} is produced by non-typed key(s) + or by the same typed key(s) that produced a previous {key}. + When {fn} is `nil` and {ns_id} is specified, the callback + associated with namespace {ns_id} is removed. • {ns_id} (`integer?`) Namespace ID. If nil or 0, generates and returns a new |nvim_create_namespace()| id. @@ -1696,6 +1699,9 @@ vim.on_key({fn}, {ns_id}) *vim.on_key()* (`integer`) Namespace id associated with {fn}. Or count of all callbacks if on_key() is called without arguments. + See also: ~ + • |keytrans()| + vim.paste({lines}, {phase}) *vim.paste()* Paste handler, invoked by |nvim_paste()|. diff --git a/runtime/lua/vim/_editor.lua b/runtime/lua/vim/_editor.lua index 17a87dd9fd..ce269f087d 100644 --- a/runtime/lua/vim/_editor.lua +++ b/runtime/lua/vim/_editor.lua @@ -662,15 +662,18 @@ local on_key_cbs = {} --- @type table --- it won't be invoked for those keys. ---@note {fn} will not be cleared by |nvim_buf_clear_namespace()| --- ----@param fn fun(key: string, typed: string)? ---- Function invoked on every key press. |i_CTRL-V| ---- {key} is the key after mappings have been applied, and ---- {typed} is the key(s) before mappings are applied, which ---- may be empty if {key} is produced by non-typed keys. ---- When {fn} is nil and {ns_id} is specified, the callback ---- associated with namespace {ns_id} is removed. +---@param fn fun(key: string, typed: string)? Function invoked for every input key, +--- after mappings have been applied but before further processing. Arguments +--- {key} and {typed} are raw keycodes, where {key} is the key after mappings +--- are applied, and {typed} is the key(s) before mappings are applied. +--- {typed} may be empty if {key} is produced by non-typed key(s) or by the +--- same typed key(s) that produced a previous {key}. +--- When {fn} is `nil` and {ns_id} is specified, the callback associated with +--- namespace {ns_id} is removed. ---@param ns_id integer? Namespace ID. If nil or 0, generates and returns a ---- new |nvim_create_namespace()| id. +--- new |nvim_create_namespace()| id. +--- +---@see |keytrans()| --- ---@return integer Namespace id associated with {fn}. Or count of all callbacks ---if on_key() is called without arguments. -- cgit From e049c6e4c08a141c94218672e770f86f91c27a11 Mon Sep 17 00:00:00 2001 From: Riley Bruins Date: Sat, 12 Oct 2024 10:57:31 -0700 Subject: feat(ui): statusline text inherits highlights #29976 Changes apply to the winbar, statusline, and tabline text. --- runtime/doc/news.txt | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'runtime') diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 6af136bb5a..5c93128f25 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -262,6 +262,10 @@ These existing features changed their behavior. more emoji characters than before, including those encoded with multiple emoji codepoints combined with ZWJ (zero width joiner) codepoints. +• Text in the 'statusline', 'tabline', and 'winbar' now inherits highlights + from the respective |hl-StatusLine|, |hl-TabLine|, and |hl-WinBar| highlight + groups. + • |vim.on_key()| callbacks won't be invoked recursively when a callback itself consumes input. -- cgit From 5c2f2a0c65dfe7bbab0ae0a75293f3bcbd04f7ff Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 12 Oct 2024 17:19:27 +0200 Subject: vim-patch:05d0893: runtime(java): Define javaBlockStart and javaBlockOtherStart hl groups And do not link either to any group. Resolves zzzyxwvut/java-vim#2. https://github.com/vim/vim/commit/05d0893ed8d991ed3fa23da7c7d4efe6ffd58798 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com> --- runtime/syntax/java.vim | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'runtime') diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index 307fc26349..b3e17b55f6 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -3,7 +3,7 @@ " Maintainer: Aliaksei Budavei <0x000c70 AT gmail DOT com> " Former Maintainer: Claudio Fleiner " Repository: https://github.com/zzzyxwvut/java-vim.git -" Last Change: 2024 Oct 03 +" Last Change: 2024 Oct 10 " Please check ":help java.vim" for comments on some of the options " available. @@ -724,10 +724,15 @@ if exists("g:java_highlight_debug") hi def link DebugType Type endif +" Complement javaBlock and javaInParen for highlighting. +syn region javaBlockOther transparent matchgroup=javaBlockOtherStart start="{" end="}" + " Try not to fold top-level-type bodies under assumption that there is " but one such body. -exec 'syn region javaBlock transparent start="\%(^\|^\S[^:]\+\)\@' . s:ff.Peek('120', '') . ' Date: Sat, 12 Oct 2024 17:28:56 +0200 Subject: vim-patch:9.1.0777: filetype: Some upstream php files are not recognized Problem: filetype: Some upstream php files are not recognized Solution: Detect more config files from the PHP source distribution as filetype ini (nisbet-hubbard). closes: vim/vim#15840 https://github.com/vim/vim/commit/367499c5c39057bca267716d9aad20554d4d83fd Co-authored-by: nisbet-hubbard <87453615+nisbet-hubbard@users.noreply.github.com> --- runtime/lua/vim/filetype.lua | 2 ++ 1 file changed, 2 insertions(+) (limited to 'runtime') diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index 445281deca..25e4dd33f7 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -2296,6 +2296,8 @@ local pattern = { ['^crontab%.'] = starsetf('crontab'), ['^cvs%d+$'] = 'cvs', ['^php%.ini%-'] = 'dosini', + ['^php%-fpm%.conf'] = 'dosini', + ['^www%.conf'] = 'dosini', ['^drac%.'] = starsetf('dracula'), ['/dtrace/.*%.d$'] = 'dtrace', ['esmtprc$'] = 'esmtprc', -- cgit From 2d24558c285198d2e725c83a8c4ad4d90797c950 Mon Sep 17 00:00:00 2001 From: glepnir Date: Sun, 13 Oct 2024 18:44:05 +0800 Subject: docs: update autotrigger description of vim.lsp.compleiton.BufferOpts (#30796) Currently the behavior of autotrigger is not well documented. --- runtime/doc/lsp.txt | 5 +++-- runtime/lua/vim/lsp/completion.lua | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt index 20503d46b8..addc093a3e 100644 --- a/runtime/doc/lsp.txt +++ b/runtime/doc/lsp.txt @@ -1639,8 +1639,9 @@ Lua module: vim.lsp.completion *lsp-completion* *vim.lsp.completion.BufferOpts* Fields: ~ - • {autotrigger}? (`boolean`) Whether to trigger completion - automatically. Default: false + • {autotrigger}? (`boolean`) Default: false When true, completion + triggers automatically based on the server's + `triggerCharacters`. • {convert}? (`fun(item: lsp.CompletionItem): table`) Transforms an LSP CompletionItem to |complete-items|. diff --git a/runtime/lua/vim/lsp/completion.lua b/runtime/lua/vim/lsp/completion.lua index 14fad987e0..3df506d23a 100644 --- a/runtime/lua/vim/lsp/completion.lua +++ b/runtime/lua/vim/lsp/completion.lua @@ -592,7 +592,7 @@ local function on_complete_done() end --- @class vim.lsp.completion.BufferOpts ---- @field autotrigger? boolean Whether to trigger completion automatically. Default: false +--- @field autotrigger? boolean Default: false When true, completion triggers automatically based on the server's `triggerCharacters`. --- @field convert? fun(item: lsp.CompletionItem): table Transforms an LSP CompletionItem to |complete-items|. ---@param client_id integer -- cgit From a6d5e6b105a6b4d499e8b288f660afecf62356fd Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 14 Oct 2024 09:27:29 +0800 Subject: vim-patch:a420547: runtime(misc): Use consistent "Vim script" spelling (#30805) References: https://groups.google.com/g/vim_dev/c/3Z5yM8KER2w/m/wAqws0QSEAAJ closes: vim/vim#15863 https://github.com/vim/vim/commit/a4205471adae39c80fb7f151a4f33051fcb80001 Co-authored-by: h-east --- runtime/doc/editing.txt | 2 +- runtime/menu.vim | 2 +- runtime/syntax/modula2/opt/r10.vim | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt index 0008713025..91c9554d63 100644 --- a/runtime/doc/editing.txt +++ b/runtime/doc/editing.txt @@ -1287,7 +1287,7 @@ separated by ';'. For example, to have only Vim files in the dialog, you could use the following command: > - let g:browsefilter = "Vim Scripts\t*.vim\nVim Startup Files\t*vimrc\n" + let g:browsefilter = "Vim scripts\t*.vim\nVim Startup Files\t*vimrc\n" You can override the filter setting on a per-buffer basis by setting the b:browsefilter variable. You would most likely set b:browsefilter in a diff --git a/runtime/menu.vim b/runtime/menu.vim index 4576ca0ab7..662eea9403 100644 --- a/runtime/menu.vim +++ b/runtime/menu.vim @@ -1130,7 +1130,7 @@ else endif tmenu ToolBar.LoadSesn Choose a session to load tmenu ToolBar.SaveSesn Save current session - tmenu ToolBar.RunScript Choose a Vim Script to run + tmenu ToolBar.RunScript Choose a Vim script to run tmenu ToolBar.Make Make current project (:make) tmenu ToolBar.RunCtags Build tags in current directory tree (!ctags -R .) tmenu ToolBar.TagJump Jump to tag under cursor diff --git a/runtime/syntax/modula2/opt/r10.vim b/runtime/syntax/modula2/opt/r10.vim index 775f498dfb..5172be54c6 100644 --- a/runtime/syntax/modula2/opt/r10.vim +++ b/runtime/syntax/modula2/opt/r10.vim @@ -157,7 +157,7 @@ syn match modula2Base16Num "0[ux][0-9A-F]\+\('[0-9A-F]\+\)*" "| which greatly diminishes readability and thereby increases the opportunity "| for error during maintenance. Ideally, regular expressions should be split "| into small human readable pieces with interleaved comments that explain -"| precisely what each piece is doing. Vimscript imposes poor design. :-( +"| precisely what each piece is doing. Vim script imposes poor design. :-( syn match modula2Base10Num \ "\(\(0[bux]\@!\|[1-9]\)[0-9]*\('[0-9]\+\)*\)\(\.[0-9]\+\('[0-9]\+\)*\(e[+-]\?[0-9]\+\('[0-9]\+\)*\)\?\)\?" -- cgit From 15aa27bc1f999adac3f4d69742ca31992fb5f837 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 13 Oct 2024 19:33:25 +0200 Subject: vim-patch:9.1.0778: filetype: lf config files are not recognized MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: filetype: lf config files are not recognized Solution: detect lfrc files as lf filetype, include a syntax script for lf files (Andis Spriņķis). References: - https://github.com/gokcehan/lf closes: vim/vim#15859 https://github.com/vim/vim/commit/0f146b7925178a5bdfdc8e07642976f0b76d9612 Co-authored-by: Andis Spriņķis --- runtime/doc/syntax.txt | 14 +++ runtime/lua/vim/filetype.lua | 1 + runtime/syntax/lf.vim | 236 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 251 insertions(+) create mode 100644 runtime/syntax/lf.vim (limited to 'runtime') diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 5cdcf564c9..19991f0761 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1750,6 +1750,20 @@ define the vim variable 'lace_case_insensitive' in your startup file: > :let lace_case_insensitive=1 +LF (LFRC) *lf.vim* *ft-lf-syntax* *g:lf_shell_syntax* + *b:lf_shell_syntax* + +For the lf file manager configuration files (lfrc) the shell commands +syntax highlighting can be changed globally and per buffer by setting +a different 'include' command search pattern using these variables: + let g:lf_shell_syntax = "syntax/dosbatch.vim" + let b:lf_shell_syntax = "syntax/zsh.vim" + +These variables are unset by default. + +The default 'include' command search pattern is 'syntax/sh.vim'. + + LEX *lex.vim* *ft-lex-syntax* Lex uses brute-force synchronizing as the "^%%$" section delimiter diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index 25e4dd33f7..3b641898a3 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -1611,6 +1611,7 @@ local filename = { ['ldaprc'] = 'ldapconf', ['.ldaprc'] = 'ldapconf', ['ldap.conf'] = 'ldapconf', + ['lfrc'] = 'lf', ['lftp.conf'] = 'lftp', ['.lftprc'] = 'lftp', ['/.libao'] = 'libao', diff --git a/runtime/syntax/lf.vim b/runtime/syntax/lf.vim new file mode 100644 index 0000000000..e4cf014865 --- /dev/null +++ b/runtime/syntax/lf.vim @@ -0,0 +1,236 @@ +" Vim syntax file +" Language: lf file manager configuration file (lfrc) +" Maintainer: Andis Sprinkis +" Former Maintainer: Cameron Wright +" Former URL: https://github.com/andis-sprinkis/lf-vim +" Last Change: 13 October 2024 +" +" The shell syntax highlighting is configurable. See $VIMRUNTIME/doc/syntax.txt +" lf version: 32 + +if exists("b:current_syntax") + finish +endif + +let b:current_syntax = "lf" + +"{{{ Comment Matching +syn match lfComment '#.*$' +"}}} + +"{{{ String Matching +syn match lfString "'.*'" +syn match lfString '".*"' contains=lfVar,lfSpecial +"}}} + +"{{{ Match lf Variables +syn match lfVar '\$f\|\$fx\|\$fs\|\$id' +"}}} + +"{{{ Keywords +syn keyword lfKeyword set setlocal cmd map cmap skipwhite +"}}} + +"{{{ Options Keywords +syn keyword lfOptions + \ quit + \ up + \ half-up + \ page-up + \ scroll-up + \ down + \ half-down + \ page-down + \ scroll-down + \ updir + \ open + \ jump-next + \ jump-prev + \ top + \ bottom + \ high + \ middle + \ low + \ toggle + \ invert + \ invert-below + \ unselect + \ glob-select + \ glob-unselect + \ calcdirsize + \ clearmaps + \ copy + \ cut + \ paste + \ clear + \ sync + \ draw + \ redraw + \ load + \ reload + \ echo + \ echomsg + \ echoerr + \ cd + \ select + \ delete + \ rename + \ source + \ push + \ read + \ shell + \ shell-pipe + \ shell-wait + \ shell-async + \ find + \ find-back + \ find-next + \ find-prev + \ search + \ search-back + \ search-next + \ search-prev + \ filter + \ setfilter + \ mark-save + \ mark-load + \ mark-remove + \ tag + \ tag-toggle + \ cmd-escape + \ cmd-complete + \ cmd-menu-complete + \ cmd-menu-complete-back + \ cmd-menu-accept + \ cmd-enter + \ cmd-interrupt + \ cmd-history-next + \ cmd-history-prev + \ cmd-left + \ cmd-right + \ cmd-home + \ cmd-end + \ cmd-delete + \ cmd-delete-back + \ cmd-delete-home + \ cmd-delete-end + \ cmd-delete-unix-word + \ cmd-yank + \ cmd-transpose + \ cmd-transpose-word + \ cmd-word + \ cmd-word-back + \ cmd-delete-word + \ cmd-delete-word-back + \ cmd-capitalize-word + \ cmd-uppercase-word + \ cmd-lowercase-word + \ anchorfind + \ autoquit + \ borderfmt + \ cleaner + \ copyfmt + \ cursoractivefmt + \ cursorparentfmt + \ cursorpreviewfmt + \ cutfmt + \ dircache + \ dircounts + \ dirfirst + \ dironly + \ dirpreviews + \ drawbox + \ dupfilefmt + \ errorfmt + \ filesep + \ findlen + \ globfilter + \ globsearch + \ hidden + \ hiddenfiles + \ hidecursorinactive + \ history + \ icons + \ ifs + \ ignorecase + \ ignoredia + \ incfilter + \ incsearch + \ info + \ infotimefmtnew + \ infotimefmtold + \ mouse + \ number + \ numberfmt + \ period + \ preserve + \ preview + \ previewer + \ promptfmt + \ ratios + \ relativenumber + \ reverse + \ roundbox + \ ruler + \ rulerfmt + \ scrolloff + \ selectfmt + \ selmode + \ shell + \ shellflag + \ shellopts + \ sixel + \ smartcase + \ smartdia + \ sortby + \ statfmt + \ tabstop + \ tagfmt + \ tempmarks + \ timefmt + \ truncatechar + \ truncatepct + \ waitmsg + \ wrapscan + \ wrapscroll + \ pre-cd + \ on-cd + \ on-select + \ on-redraw + \ on-quit +"}}} + +"{{{ Special Matching +syn match lfSpecial '<.*>\|\\.' +"}}} + +"{{{ Shell Script Matching for cmd +let s:shell_syntax = get(g:, 'lf_shell_syntax', "syntax/sh.vim") +let s:shell_syntax = get(b:, 'lf_shell_syntax', s:shell_syntax) +unlet b:current_syntax +exe 'syn include @Shell '.s:shell_syntax +let b:current_syntax = "lf" +syn region lfIgnore start=".{{\n" end="^}}" + \ keepend contains=lfExternalShell,lfExternalPatch +syn match lfShell '\$[a-zA-Z].*$ + \\|:[a-zA-Z].*$ + \\|%[a-zA-Z].*$ + \\|![a-zA-Z].*$ + \\|&[a-zA-Z].*$' + \ transparent contains=@Shell,lfExternalPatch +syn match lfExternalShell "^.*$" transparent contained contains=@Shell +syn match lfExternalPatch "^\s*cmd\ .*\ .{{$\|^}}$" contained +"}}} + +"{{{ Link Highlighting +hi def link lfComment Comment +hi def link lfVar Type +hi def link lfSpecial Special +hi def link lfString String +hi def link lfKeyword Statement +hi def link lfOptions Constant +hi def link lfConstant Constant +hi def link lfExternalShell Normal +hi def link lfExternalPatch Special +hi def link lfIgnore Special +"}}} -- cgit From b3cb0f6beacb69a4399b2e22ce3464602c6cd1bb Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 13 Oct 2024 19:29:43 +0200 Subject: vim-patch:6e91853: runtime(gleam): add ftplugin for gleam files fixes: vim/vim#15864 closes: vim/vim#15866 https://github.com/vim/vim/commit/6e918538b117c8c0b87a3d30300e8bbd073d652c Co-authored-by: Trilowy <49493635+trilowy@users.noreply.github.com> --- runtime/ftplugin/gleam.vim | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 runtime/ftplugin/gleam.vim (limited to 'runtime') diff --git a/runtime/ftplugin/gleam.vim b/runtime/ftplugin/gleam.vim new file mode 100644 index 0000000000..9ed607c4b3 --- /dev/null +++ b/runtime/ftplugin/gleam.vim @@ -0,0 +1,16 @@ +" Vim filetype plugin file +" Language: Gleam +" Maintainer: Trilowy (https://github.com/trilowy) +" Last Change: 2024 Oct 13 + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +setlocal comments=://,:///,://// +setlocal commentstring=//\ %s + +let b:undo_ftplugin = "setlocal comments< commentstring<" + +" vim: sw=2 sts=2 et -- cgit From d04d7bf65de8e77a8ea3aea59506abc328d77cd1 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 13 Oct 2024 19:43:04 +0200 Subject: vim-patch:9.1.0779: filetype: neomuttlog files are not recognized Problem: filetype: neomuttlog files are not recognized Solution: detect '*.neomuttdebug' file as neomuttlog filetype, include neomuttlog syntax script (Richard Russon) closes: vim/vim#15858 https://github.com/vim/vim/commit/a2aa921f767da17d4b619f41b7a1210c762c91e2 Co-authored-by: Richard Russon Co-authored-by: AvidSeeker --- runtime/doc/syntax.txt | 6 + runtime/lua/vim/filetype.lua | 1 + runtime/syntax/neomuttlog.vim | 69 +++++ runtime/syntax/neomuttrc.vim | 701 ++++++++++++++++++++++-------------------- 4 files changed, 442 insertions(+), 335 deletions(-) create mode 100644 runtime/syntax/neomuttlog.vim (limited to 'runtime') diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 19991f0761..c1b762a52f 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -2065,6 +2065,12 @@ set "msql_minlines" to the value you desire. Example: > :let msql_minlines = 200 +NEOMUTT *neomutt.vim* *ft-neomuttrc-syntax* *ft-neomuttlog-syntax* + +To disable the default NeoMutt log colors > + + :let g:neolog_disable_default_colors = 1 + N1QL *n1ql.vim* *ft-n1ql-syntax* N1QL is a SQL-like declarative language for manipulating JSON documents in diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index 3b641898a3..a166397bfd 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -2264,6 +2264,7 @@ local pattern = { ['^%.?neomuttrc'] = detect_neomuttrc, ['/%.neomutt/neomuttrc'] = detect_neomuttrc, ['^Neomuttrc'] = detect_neomuttrc, + ['%.neomuttdebug'] = 'neomuttlog', }, ['^%.'] = { ['^%.cshrc'] = detect.csh, diff --git a/runtime/syntax/neomuttlog.vim b/runtime/syntax/neomuttlog.vim new file mode 100644 index 0000000000..27f73493bd --- /dev/null +++ b/runtime/syntax/neomuttlog.vim @@ -0,0 +1,69 @@ +" Vim syntax file +" Language: NeoMutt log files +" Maintainer: Richard Russon +" Last Change: 2024 Oct 12 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax match neolog_date "\v^\[\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\] *" conceal +syntax match neolog_version "\v" +syntax match neolog_banner "\v^\[\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\] .*" contains=neolog_date,neolog_version +syntax match neolog_function "\v%26v\i+\(\)" + +syntax match neolog_perror_key "\v%22v\ " conceal transparent +syntax match neolog_error_key "\v%22v\ " conceal transparent +syntax match neolog_warning_key "\v%22v\ " conceal transparent +syntax match neolog_message_key "\v%22v\ " conceal transparent +syntax match neolog_debug1_key "\v%22v\<1\> " conceal transparent +syntax match neolog_debug2_key "\v%22v\<2\> " conceal transparent +syntax match neolog_debug3_key "\v%22v\<3\> " conceal transparent +syntax match neolog_debug4_key "\v%22v\<4\> " conceal transparent +syntax match neolog_debug5_key "\v%22v\<5\> " conceal transparent +syntax match neolog_notify_key "\v%22v\ " conceal transparent + +syntax match neolog_perror "\v%22v\ .*" contains=neolog_perror_key,neolog_function +syntax match neolog_error "\v%22v\ .*" contains=neolog_error_key,neolog_function +syntax match neolog_warning "\v%22v\ .*" contains=neolog_warning_key,neolog_function +syntax match neolog_message "\v%22v\ .*" contains=neolog_message_key,neolog_function +syntax match neolog_debug1 "\v%22v\<1\> .*" contains=neolog_debug1_key,neolog_function +syntax match neolog_debug2 "\v%22v\<2\> .*" contains=neolog_debug2_key,neolog_function +syntax match neolog_debug3 "\v%22v\<3\> .*" contains=neolog_debug3_key,neolog_function +syntax match neolog_debug4 "\v%22v\<4\> .*" contains=neolog_debug4_key,neolog_function +syntax match neolog_debug5 "\v%22v\<5\> .*" contains=neolog_debug5_key,neolog_function +syntax match neolog_notify "\v%22v\ .*" contains=neolog_notify_key,neolog_function + +if !exists('g:neolog_disable_default_colors') + highlight neolog_date ctermfg=cyan guifg=#40ffff + highlight neolog_banner ctermfg=magenta guifg=#ff00ff + highlight neolog_version cterm=reverse gui=reverse + highlight neolog_function guibg=#282828 + + highlight neolog_perror ctermfg=red guifg=#ff8080 + highlight neolog_error ctermfg=red guifg=#ff8080 + highlight neolog_warning ctermfg=yellow guifg=#ffff80 + highlight neolog_message ctermfg=green guifg=#80ff80 + highlight neolog_debug1 ctermfg=white guifg=#ffffff + highlight neolog_debug2 ctermfg=white guifg=#ffffff + highlight neolog_debug3 ctermfg=grey guifg=#c0c0c0 + highlight neolog_debug4 ctermfg=grey guifg=#c0c0c0 + highlight neolog_debug5 ctermfg=grey guifg=#c0c0c0 + highlight neolog_notify ctermfg=grey guifg=#c0c0c0 +endif + +highlight link neolog_perror_key neolog_perror +highlight link neolog_error_key neolog_error +highlight link neolog_warning_key neolog_warning +highlight link neolog_message_key neolog_message +highlight link neolog_debug1_key neolog_debug1 +highlight link neolog_debug2_key neolog_debug2 +highlight link neolog_debug3_key neolog_debug3 +highlight link neolog_debug4_key neolog_debug4 +highlight link neolog_debug5_key neolog_debug5 +highlight link neolog_notify_key neolog_notify + +let b:current_syntax = "neomuttlog" + +" vim: ts=2 et tw=100 sw=2 sts=0 ft=vim diff --git a/runtime/syntax/neomuttrc.vim b/runtime/syntax/neomuttrc.vim index 421b11ffa3..815e160bbb 100644 --- a/runtime/syntax/neomuttrc.vim +++ b/runtime/syntax/neomuttrc.vim @@ -2,10 +2,10 @@ " Language: NeoMutt setup files " Maintainer: Richard Russon " Previous Maintainer: Guillaume Brogi -" Last Change: 2022-04-08 +" Last Change: 2024 Oct 12 " Original version based on syntax/muttrc.vim -" This file covers NeoMutt 2022-04-08 +" This file covers NeoMutt 2024-10-02 " quit when a syntax file was already loaded if exists("b:current_syntax") @@ -22,7 +22,7 @@ setlocal isk=@,48-57,_,- syntax match muttrcComment "^# .*$" contains=@Spell syntax match muttrcComment "^#[^ ].*$" syntax match muttrcComment "^#$" -syntax match muttrcComment "[^\\]#.*$"lc=1 +syntax match muttrcComment "[^\\]#.*$"lc=1 contains=@Spell " Escape sequences (back-tick and pipe goes here too) syntax match muttrcEscape +\\[#tnr"'Cc ]+ @@ -34,7 +34,7 @@ syntax region muttrcString contained keepend start=+"+ms=e skip=+\\"+ end=+"+ co syntax region muttrcString contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction syntax match muttrcStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL -syntax region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand +syntax region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarString,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand syntax match muttrcRXChars contained /[^\\][][.*?+]\+/hs=s+1 syntax match muttrcRXChars contained /[][|()][.*?+]*/ @@ -67,21 +67,21 @@ syntax match muttrcRXDef contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat syntax match muttrcSpecial +\(['"]\)!\1+ -syntax match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable -syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString -syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString -syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable -syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable -syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable -syntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcVariable,muttrcEscapedVariable +syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcString +syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcString +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcVariable,muttrcEscapedVariable +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcVariable,muttrcEscapedVariable +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString contains=muttrcVariable,muttrcEscapedVariable +syntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString " Now catch some email addresses and headers (purified version from mail.vim) syntax match muttrcEmail "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+" @@ -101,38 +101,9 @@ syntax match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVv syntax match muttrcStrftimeEscapes contained /%E[cCxXyY]/ syntax match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/ -syntax region muttrcAliasFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcAliasFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcAttachFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcAttachFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcComposeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcComposeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcFolderFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcFolderFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcMixFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcMixFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPatternFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPatternFormatEscapes,muttrcPatternFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPatternFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPatternFormatEscapes,muttrcPatternFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPGPFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcPGPFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcQueryFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcStatusFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcStatusFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr - -" Format escapes and conditionals +" Defines syntax matches for muttrc[baseName]Escapes, muttrc[baseName]Conditionals +" If padding==1, also match `%>` `%|` `%*` expandos +" If conditional==1, some expandos support %X? format syntax match muttrcFormatConditionals2 contained /[^?]*?/ function! s:escapesConditionals(baseName, sequence, padding, conditional) exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?\%(' . a:sequence . '\|%\)/' @@ -146,65 +117,107 @@ function! s:escapesConditionals(baseName, sequence, padding, conditional) endif endfunction -" CHECKED 2022-04-08 -" Ref: alias_format_str() in alias/dlg_alias.c -call s:escapesConditionals('AliasFormat', '[acfnrt]', 1, 0) -" Ref: attach_format_str() in attach/dlg_attach.c +" CHECKED 2024 Oct 12 +" Ref: AliasFormatDef in alias/config.c +call s:escapesConditionals('AliasFormat', '[acfnrtY]', 1, 0) +" Ref: AttachFormatDef in mutt_config.c call s:escapesConditionals('AttachFormat', '[CcDdeFfIMmnQsTtuX]', 1, 1) -" Ref: compose_format_str() in compose/cbar.c +" Ref: AutocryptFormatDef in autocrypt/config.c +call s:escapesConditionals('AutocryptFormat', '[aknps]', 1, 0) +" Ref: ComposeFormatDef in compose/config.c call s:escapesConditionals('ComposeFormat', '[ahlv]', 1, 1) -" Ref: folder_format_str() in browser/browser.c -call s:escapesConditionals('FolderFormat', '[CDdFfgilmNnstu]', 1, 0) -" Ref: group_index_format_str() in nntp/browse.c -call s:escapesConditionals('GroupIndexFormat', '[CdfMNns]', 1, 1) -" Ref: index_format_str() in hdrline.c +" Ref: FolderFormatDef in browser/config.c +call s:escapesConditionals('FolderFormat', '[aCDdFfgilmNnpstu[]', 1, 1) +" Ref: GreetingFormatDef in send/config.c +call s:escapesConditionals('GreetingFormat', '[nuv]', 0, 0) +" Ref: GroupIndexFormatDef in browser/config.c +call s:escapesConditionals('GroupIndexFormat', '[aCdfMNnps]', 1, 0) +" Ref: HistoryFormatDef in history/config.c +call s:escapesConditionals('HistoryFormat', '[Cs]', 1, 0) +" Ref: IndexFormatDef in mutt_config.c call s:escapesConditionals('IndexFormat', '[AaBbCDdEefgHIiJKLlMmNnOPqRrSsTtuvWXxYyZ(<[{]\|@\i\+@\|G[a-zA-Z]\+\|Fp\=\|z[cst]\|cr\=', 1, 1) -" Ref: mix_format_str() in remailer.c -call s:escapesConditionals('MixFormat', '[acns]', 1, 0) -" Ref: pattern_format_str() in pattern/dlg_pattern.c +" Ref: PatternFormatDef in pattern/config.c call s:escapesConditionals('PatternFormat', '[den]', 1, 0) -" Ref: pgp_command_format_str() in ncrypt/pgpinvoke.c -call s:escapesConditionals('PGPCmdFormat', '[afprs]', 0, 1) -" Ref: crypt_format_str() in ncrypt/dlg_gpgme.c -" Ref: pgp_entry_format_str() in ncrypt/dlg_pgp.c -" Note: crypt_format_str() supports 'p', but pgp_entry_fmt() does not -call s:escapesConditionals('PGPFormat', '[AaCcFfKkLlnptu[]', 0, 0) -" Ref: query_format_str() in alias/dlg_query.c -call s:escapesConditionals('QueryFormat', '[acent]', 1, 1) -" Ref: sidebar_format_str() in sidebar/window.c -call s:escapesConditionals('SidebarFormat', '[!BDdFLNnorStZ]', 1, 1) -" Ref: smime_command_format_str() in ncrypt/smime.c -call s:escapesConditionals('SmimeFormat', '[aCcdfiks]', 0, 1) -" Ref: status_format_str() in status.c +" Ref: PgpCommandFormatDef in ncrypt/config.c +call s:escapesConditionals('PgpCommandFormat', '[afprs]', 0, 1) +" Ref: PgpEntryFormatDef in ncrypt/config.c +call s:escapesConditionals('PgpEntryFormat', '[AaCcFfIiKkLlnptu[]', 1, 1) +" Ref: QueryFormatDef in alias/config.c +call s:escapesConditionals('QueryFormat', '[acentY]', 1, 1) +" Ref: SidebarFormatDef in sidebar/config.c +call s:escapesConditionals('SidebarFormat', '[!aBDdFLNnoprStZ]', 1, 1) +" Ref: SmimeCommandFormatDef in ncrypt/config.c +call s:escapesConditionals('SmimeCommandFormat', '[aCcdfiks]', 0, 1) +" Ref: StatusFormatDef in mutt_config.c call s:escapesConditionals('StatusFormat', '[bDdFfhLlMmnoPpRrSsTtuVv]', 1, 1) -syntax region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes +syntax region muttrcAliasFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcAliasFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcAttachFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcAttachFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcAutocryptFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAutocryptFormatEscapes,muttrcAutocryptFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcAutocryptFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAutocryptFormatEscapes,muttrcAutocryptFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcComposeFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcComposeFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcFolderFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcFolderFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcGreetingFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGreetingFormatEscapes,muttrcGreetingFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcGreetingFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGreetingFormatEscapes,muttrcGreetingFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcGroupIndexFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcGroupIndexFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcHistoryFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcHistoryFormatEscapes,muttrcHistoryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcHistoryFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcHistoryFormatEscapes,muttrcHistoryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcIndexFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcIndexFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPatternFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPatternFormatEscapes,muttrcPatternFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPatternFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPatternFormatEscapes,muttrcPatternFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPgpCommandFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPgpCommandFormatEscapes,muttrcPgpCommandFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPgpCommandFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPgpCommandFormatEscapes,muttrcPgpCommandFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPgpEntryFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPgpEntryFormatEscapes,muttrcPgpEntryFormatConditionals,muttrcFormatErrors,muttrcPgpTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcPgpEntryFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPgpEntryFormatEscapes,muttrcPgpEntryFormatConditionals,muttrcFormatErrors,muttrcPgpTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcQueryFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcQueryFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcSidebarFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcSidebarFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcSmimeCommandFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeCommandFormatEscapes,muttrcSmimeCommandFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcSmimeCommandFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeCommandFormatEscapes,muttrcSmimeCommandFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcStatusFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcStatusFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcStrftimeFormatString contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax region muttrcStrftimeFormatString contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString + +" Format escapes and conditionals +syntax match muttrcFormatConditionals2 contained /[^?]*?/ + +syntax region muttrcPgpTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes syntax region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes syntax region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes syntax region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes syntax region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes -syntax match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr -syntax match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr -syntax match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr -syntax match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr -syntax match muttrcVarEqualsGrpIdxFmt contained skipwhite "=" nextgroup=muttrcGroupIndexFormatStr -syntax match muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr -syntax match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr -syntax match muttrcVarEqualsPatternFmt contained skipwhite "=" nextgroup=muttrcPatternFormatStr -syntax match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr -syntax match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr -syntax match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr -syntax match muttrcVarEqualsSdbFmt contained skipwhite "=" nextgroup=muttrcSidebarFormatStr -syntax match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr -syntax match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr -syntax match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr - -syntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr - -" CHECKED 2022-04-08 +syntax match muttrcVarEqualsAliasFormat contained skipwhite "=" nextgroup=muttrcAliasFormatString +syntax match muttrcVarEqualsAttachFormat contained skipwhite "=" nextgroup=muttrcAttachFormatString +syntax match muttrcVarEqualsAutocryptFormat contained skipwhite "=" nextgroup=muttrcAutocryptFormatString +syntax match muttrcVarEqualsComposeFormat contained skipwhite "=" nextgroup=muttrcComposeFormatString +syntax match muttrcVarEqualsFolderFormat contained skipwhite "=" nextgroup=muttrcFolderFormatString +syntax match muttrcVarEqualsGreetingFormat contained skipwhite "=" nextgroup=muttrcGreetingFormatString +syntax match muttrcVarEqualsGroupIndexFormat contained skipwhite "=" nextgroup=muttrcGroupIndexFormatString +syntax match muttrcVarEqualsHistoryFormat contained skipwhite "=" nextgroup=muttrcHistoryFormatString +syntax match muttrcVarEqualsIndexFormat contained skipwhite "=" nextgroup=muttrcIndexFormatString +syntax match muttrcVarEqualsPatternFormat contained skipwhite "=" nextgroup=muttrcPatternFormatString +syntax match muttrcVarEqualsPgpCommandFormat contained skipwhite "=" nextgroup=muttrcPgpCommandFormatString +syntax match muttrcVarEqualsPgpEntryFormat contained skipwhite "=" nextgroup=muttrcPgpEntryFormatString +syntax match muttrcVarEqualsQueryFormat contained skipwhite "=" nextgroup=muttrcQueryFormatString +syntax match muttrcVarEqualsSidebarFormat contained skipwhite "=" nextgroup=muttrcSidebarFormatString +syntax match muttrcVarEqualsSmimeCommandFormat contained skipwhite "=" nextgroup=muttrcSmimeCommandFormatString +syntax match muttrcVarEqualsStatusFormat contained skipwhite "=" nextgroup=muttrcStatusFormatString +syntax match muttrcVarEqualsStrftimeFormat contained skipwhite "=" nextgroup=muttrcStrftimeFormatString + +syntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString + +" CHECKED 2024 Oct 12 " List of the different screens in NeoMutt (see MenuNames in menu/type.c) -syntax keyword muttrcMenu contained alias attach autocrypt browser compose editor generic index key_select_pgp key_select_smime mix pager pgp postpone query smime +syntax keyword muttrcMenu contained alias attach autocrypt browser compose dialog editor generic index key_select_pgp key_select_smime pager pgp postpone query smime syntax match muttrcMenuList "\S\+" contained contains=muttrcMenu syntax match muttrcMenuCommas /,/ contained @@ -239,10 +252,12 @@ syntax match muttrcEscapedVariable contained "\\\$[a-zA-Z_-]\+" syntax match muttrcBadAction contained "[^<>]\+" contains=muttrcEmail syntax match muttrcAction contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " First, hooks that take regular expressions: -syntax match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL -syntax match muttrcRXHooks /\<\%(account\|append\|close\|crypt\|folder\|mbox\|open\|pgp\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL +syntax match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL +syntax match muttrcRXHookNoRegex contained /-noregex/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL +syntax match muttrcRXHooks /\<\%(account\|append\|close\|crypt\|open\|pgp\|shutdown\|startup\|timeout\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL +syntax match muttrcRXHooks /\<\%(folder\|mbox\)-hook\>/ skipwhite nextgroup=muttrcRXHookNoRegex,muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL " Now, hooks that take patterns syntax match muttrcPatHookNot contained /!\s*/ skipwhite nextgroup=muttrcPattern @@ -252,11 +267,11 @@ syntax match muttrcPatHooks /\<\%(message\|reply\|send\|send2\|save\|fcc\|fcc-sa " Global hooks that take a command syntax keyword muttrcHooks skipwhite shutdown-hook startup-hook timeout-hook nextgroup=muttrcCommand -syntax match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction +syntax match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction syntax match muttrcBindFunctionNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL -syntax match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL -syntax match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL -syntax match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL +syntax match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL +syntax match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL +syntax match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL syntax match muttrcBindMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL syntax region muttrcMacroDescr contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s @@ -300,7 +315,7 @@ syntax match muttrcAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrc syntax match muttrcUnAliasKey contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL syntax match muttrcUnAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of letters in Flags in pattern/flags.c " Parameter: none syntax match muttrcSimplePat contained "!\?\^\?[~][ADEFGgklNOPpQRSTUuVv#$=]" @@ -309,7 +324,7 @@ syntax match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\? " Parameter: date syntax match muttrcSimplePat contained "!\?\^\?[~][dr]\s*\%(\%(-\?[0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)\|\%(\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)-\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)\?\)\?\)\|\%([<>=][0-9]\+[ymwd]\)\|\%(`[^`]\+`\)\|\%(\$[a-zA-Z0-9_-]\+\)\)" contains=muttrcShellString,muttrcVariable " Parameter: regex -syntax match muttrcSimplePat contained "!\?\^\?[~][BbCcefHhIiLMstwxYy]\s*" nextgroup=muttrcSimplePatRXContainer +syntax match muttrcSimplePat contained "!\?\^\?[~][BbCcefHhIiKLMstwxYy]\s*" nextgroup=muttrcSimplePatRXContainer " Parameter: pattern syntax match muttrcSimplePat contained "!\?\^\?[%][BbCcefHhiLstxy]\s*" nextgroup=muttrcSimplePatString " Parameter: pattern @@ -341,21 +356,25 @@ syntax match muttrcPattern contained skipwhite /[.]/ syntax region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas syntax region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas -" Colour definitions takes object, foreground and background arguments (regexps excluded). +" Colour definitions takes object, foreground and background arguments (regexes excluded). syntax match muttrcColorMatchCount contained "[0-9]\+" syntax match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL syntax region muttrcColorRXPat contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL syntax region muttrcColorRXPat contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL syntax keyword muttrcColor contained black blue cyan default green magenta red white yellow syntax keyword muttrcColor contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow +syntax keyword muttrcColor contained lightblack lightblue lightcyan lightdefault lightgreen lightmagenta lightred lightwhite lightyellow +syntax keyword muttrcColor contained alertblack alertblue alertcyan alertdefault alertgreen alertmagenta alertred alertwhite alertyellow syntax match muttrcColor contained "\<\%(bright\)\=color\d\{1,3}\>" +syntax match muttrcColor contained "#[0-9a-fA-F]\{6}\>" + " Now for the structure of the color line syntax match muttrcColorRXNL contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL -syntax match muttrcColorBG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL +syntax match muttrcColorBG contained /\s*[#$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL syntax match muttrcColorBGNL contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL -syntax match muttrcColorFG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL +syntax match muttrcColorFG contained /\s*[#$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL syntax match muttrcColorFGNL contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL -syntax match muttrcColorContext contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace,muttrcColorCompose nextgroup=muttrcColorFG,muttrcColorFGNL +syntax match muttrcColorContext contained /\s*[#$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace,muttrcColorCompose nextgroup=muttrcColorFG,muttrcColorFGNL syntax match muttrcColorNL contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose syntax match muttrcColorKeyword contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose " And now color's brother: @@ -370,25 +389,26 @@ syntax match muttrcUnColorIndexNL contained skipwhite skipnl /\s*\\$/ nextgroup= syntax match muttrcUnColorKeyword contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL syntax region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace -syntax keyword muttrcMonoAttrib contained bold none normal reverse standout underline +syntax keyword muttrcMonoAttrib contained bold italic none normal reverse standout underline syntax keyword muttrcMono contained mono skipwhite nextgroup=muttrcColorField,muttrcColorCompose syntax match muttrcMonoLine "^\s*mono\s\+\S\+" skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono -" CHECKED 2022-04-08 -" List of fields in ColorFields in color/commmand.c +" CHECKED 2024 Oct 12 +" List of fields in ColorFields in color/command.c syntax keyword muttrcColorField skipwhite contained \ attachment attach_headers body bold error hdrdefault header index index_author \ index_collapsed index_date index_flags index_label index_number index_size index_subject - \ index_tag index_tags indicator markers message normal options progress prompt quoted - \ search sidebar_divider sidebar_flagged sidebar_highlight sidebar_indicator sidebar_new - \ sidebar_ordinary sidebar_spoolfile sidebar_unread signature status tilde tree underline - \ warning nextgroup=muttrcColor + \ index_tag index_tags indicator italic markers message normal options progress prompt + \ search sidebar_background sidebar_divider sidebar_flagged sidebar_highlight + \ sidebar_indicator sidebar_new sidebar_ordinary sidebar_spool_file sidebar_unread signature + \ status stripe_even stripe_odd tilde tree underline warning + \ nextgroup=muttrcColor syntax match muttrcColorField contained "\" syntax match muttrcColorCompose skipwhite contained /\s*compose\s*/ nextgroup=muttrcColorComposeField -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of fields in ComposeColorFields in color/command.c syntax keyword muttrcColorComposeField skipwhite contained \ header security_both security_encrypt security_none security_sign @@ -409,37 +429,39 @@ function! s:boolQuadGen(type, vars, deprecated) exec 'syntax keyword muttrcVar' . l:type . ' ' . join(l:invvars) else let l:type = a:type - exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr' - exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr' - exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr' + exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString' + exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString' + exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString' endif endfunction -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of DT_BOOL in MuttVars in mutt_config.c call s:boolQuadGen('Bool', [ \ 'abort_backspace', 'allow_8bit', 'allow_ansi', 'arrow_cursor', 'ascii_chars', 'ask_bcc', - \ 'ask_cc', 'ask_follow_up', 'ask_x_comment_to', 'attach_save_without_prompting', + \ 'ask_cc', 'ask_followup_to', 'ask_x_comment_to', 'attach_save_without_prompting', \ 'attach_split', 'autocrypt', 'autocrypt_reply', 'auto_edit', 'auto_subscribe', 'auto_tag', \ 'beep', 'beep_new', 'bounce_delivered', 'braille_friendly', - \ 'browser_abbreviate_mailboxes', 'change_folder_next', 'check_mbox_size', 'check_new', - \ 'collapse_all', 'collapse_flagged', 'collapse_unread', 'compose_show_user_headers', + \ 'browser_abbreviate_mailboxes', 'browser_sort_dirs_first', 'change_folder_next', + \ 'check_mbox_size', 'check_new', 'collapse_all', 'collapse_flagged', 'collapse_unread', + \ 'color_directcolor', 'compose_confirm_detach_first', 'compose_show_user_headers', \ 'confirm_append', 'confirm_create', 'copy_decode_weed', 'count_alternatives', \ 'crypt_auto_encrypt', 'crypt_auto_pgp', 'crypt_auto_sign', 'crypt_auto_smime', - \ 'crypt_confirm_hook', 'crypt_opportunistic_encrypt', + \ 'crypt_confirm_hook', 'crypt_encryption_info', 'crypt_opportunistic_encrypt', \ 'crypt_opportunistic_encrypt_strong_keys', 'crypt_protected_headers_read', - \ 'crypt_protected_headers_save', 'crypt_protected_headers_write', 'crypt_reply_encrypt', - \ 'crypt_reply_sign', 'crypt_reply_sign_encrypted', 'crypt_timestamp', 'crypt_use_gpgme', - \ 'crypt_use_pka', 'delete_untag', 'digest_collapse', 'duplicate_threads', 'edit_headers', - \ 'encode_from', 'fast_reply', 'fcc_before_send', 'fcc_clear', 'flag_safe', 'followup_to', - \ 'force_name', 'forward_decode', 'forward_decrypt', 'forward_quote', 'forward_references', - \ 'hdrs', 'header', 'header_color_partial', 'help', 'hidden_host', 'hide_limited', - \ 'hide_missing', 'hide_thread_subject', 'hide_top_limited', 'hide_top_missing', - \ 'history_remove_dups', 'honor_disposition', 'idn_decode', 'idn_encode', - \ 'ignore_list_reply_to', 'imap_check_subscribed', 'imap_condstore', 'imap_deflate', - \ 'imap_idle', 'imap_list_subscribed', 'imap_passive', 'imap_peek', 'imap_qresync', - \ 'imap_rfc5161', 'imap_server_noise', 'implicit_autoview', 'include_encrypted', + \ 'crypt_protected_headers_save', 'crypt_protected_headers_weed', + \ 'crypt_protected_headers_write', 'crypt_reply_encrypt', 'crypt_reply_sign', + \ 'crypt_reply_sign_encrypted', 'crypt_timestamp', 'crypt_use_gpgme', 'crypt_use_pka', + \ 'delete_untag', 'digest_collapse', 'duplicate_threads', 'edit_headers', 'encode_from', + \ 'fast_reply', 'fcc_before_send', 'fcc_clear', 'flag_safe', 'followup_to', 'force_name', + \ 'forward_decode', 'forward_decrypt', 'forward_quote', 'forward_references', 'hdrs', + \ 'header', 'header_color_partial', 'help', 'hidden_host', 'hide_limited', 'hide_missing', + \ 'hide_thread_subject', 'hide_top_limited', 'hide_top_missing', 'history_remove_dups', + \ 'honor_disposition', 'idn_decode', 'idn_encode', 'ignore_list_reply_to', + \ 'imap_check_subscribed', 'imap_condstore', 'imap_deflate', 'imap_idle', + \ 'imap_list_subscribed', 'imap_passive', 'imap_peek', 'imap_qresync', 'imap_rfc5161', + \ 'imap_send_id', 'imap_server_noise', 'implicit_auto_view', 'include_encrypted', \ 'include_only_first', 'keep_flagged', 'local_date_header', 'mailcap_sanitize', \ 'maildir_check_cur', 'maildir_header_cache_verify', 'maildir_trash', 'mail_check_recent', \ 'mail_check_stats', 'markers', 'mark_old', 'menu_move_off', 'menu_scroll', @@ -469,166 +491,175 @@ call s:boolQuadGen('Bool', [ \ 'virtual_spool_file', 'wait_key', 'weed', 'wrap_search', 'write_bcc', 'x_comment_to' \ ], 0) -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " Deprecated Bools " List of DT_SYNONYM or DT_DEPRECATED Bools in MuttVars in mutt_config.c call s:boolQuadGen('Bool', [ - \ 'askbcc', 'askcc', 'autoedit', 'confirmappend', 'confirmcreate', 'crypt_autoencrypt', - \ 'crypt_autopgp', 'crypt_autosign', 'crypt_autosmime', 'crypt_confirmhook', - \ 'crypt_replyencrypt', 'crypt_replysign', 'crypt_replysignencrypted', 'edit_hdrs', - \ 'envelope_from', 'forw_decode', 'forw_decrypt', 'forw_quote', 'header_cache_compress', - \ 'ignore_linear_white_space', 'imap_servernoise', 'include_onlyfirst', 'metoo', - \ 'mime_subject', 'pgp_autoencrypt', 'pgp_autoinline', 'pgp_autosign', - \ 'pgp_auto_traditional', 'pgp_create_traditional', 'pgp_replyencrypt', 'pgp_replyinline', - \ 'pgp_replysign', 'pgp_replysignencrypted', 'reverse_realname', 'ssl_usesystemcerts', + \ 'askbcc', 'askcc', 'ask_follow_up', 'autoedit', 'confirmappend', 'confirmcreate', + \ 'crypt_autoencrypt', 'crypt_autopgp', 'crypt_autosign', 'crypt_autosmime', + \ 'crypt_confirmhook', 'crypt_replyencrypt', 'crypt_replysign', 'crypt_replysignencrypted', + \ 'cursor_overlay', 'edit_hdrs', 'envelope_from', 'forw_decode', 'forw_decrypt', + \ 'forw_quote', 'header_cache_compress', 'ignore_linear_white_space', 'imap_servernoise', + \ 'implicit_autoview', 'include_onlyfirst', 'metoo', 'mime_subject', 'pgp_autoencrypt', + \ 'pgp_autoinline', 'pgp_autosign', 'pgp_auto_traditional', 'pgp_create_traditional', + \ 'pgp_replyencrypt', 'pgp_replyinline', 'pgp_replysign', 'pgp_replysignencrypted', + \ 'pgp_self_encrypt_as', 'reverse_realname', 'smime_self_encrypt_as', 'ssl_usesystemcerts', \ 'use_8bitmime', 'virtual_spoolfile', 'xterm_set_titles' \ ], 1) -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of DT_QUAD in MuttVars in mutt_config.c call s:boolQuadGen('Quad', [ \ 'abort_noattach', 'abort_nosubject', 'abort_unmodified', 'bounce', 'catchup_newsgroup', \ 'copy', 'crypt_verify_sig', 'delete', 'fcc_attach', 'followup_to_poster', \ 'forward_attachments', 'forward_edit', 'honor_followup_to', 'include', 'mime_forward', \ 'mime_forward_rest', 'move', 'pgp_mime_auto', 'pop_delete', 'pop_reconnect', 'postpone', - \ 'post_moderated', 'print', 'quit', 'recall', 'reply_to', 'ssl_starttls', + \ 'post_moderated', 'print', 'quit', 'recall', 'reply_to', 'ssl_starttls' \ ], 0) -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " Deprecated Quads " List of DT_SYNONYM or DT_DEPRECATED Quads in MuttVars in mutt_config.c call s:boolQuadGen('Quad', [ \ 'mime_fwd', 'pgp_encrypt_self', 'pgp_verify_sig', 'smime_encrypt_self' \ ], 1) -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of DT_NUMBER or DT_LONG in MuttVars in mutt_config.c syntax keyword muttrcVarNum skipwhite contained - \ connect_timeout debug_level header_cache_compress_level history imap_fetch_chunk_size - \ imap_keepalive imap_pipeline_depth imap_poll_timeout mail_check mail_check_stats_interval - \ menu_context net_inc nm_db_limit nm_open_timeout nm_query_window_current_position + \ debug_level header_cache_compress_level history imap_fetch_chunk_size imap_keep_alive + \ imap_pipeline_depth imap_poll_timeout mail_check mail_check_stats_interval menu_context + \ net_inc nm_db_limit nm_open_timeout nm_query_window_current_position \ nm_query_window_duration nntp_context nntp_poll pager_context pager_index_lines \ pager_read_delay pager_skip_quoted_context pgp_timeout pop_check_interval read_inc \ reflow_wrap save_history score_threshold_delete score_threshold_flag score_threshold_read \ search_context sendmail_wait sidebar_component_depth sidebar_width sleep_time - \ smime_timeout ssl_min_dh_prime_bits timeout time_inc toggle_quoted_show_levels wrap - \ wrap_headers write_inc - \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -" CHECKED 2022-04-08 + \ smime_timeout socket_timeout ssl_min_dh_prime_bits timeout time_inc + \ toggle_quoted_show_levels wrap wrap_headers write_inc + \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +" CHECKED 2024 Oct 12 " Deprecated Numbers -syntax keyword muttrcVarDeprecatedNum contained skipwhite - \ header_cache_pagesize pop_checkinterval skip_quoted_offset +syntax keyword muttrcVarDeprecatedNum + \ connect_timeout header_cache_pagesize imap_keepalive pop_checkinterval skip_quoted_offset -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of DT_STRING in MuttVars in mutt_config.c " Special cases first, and all the rest at the end " Formats themselves must be updated in their respective groups " See s:escapesConditionals -syntax match muttrcVarStr contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr -syntax keyword muttrcVarStr contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt -syntax keyword muttrcVarStr contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt -syntax keyword muttrcVarStr contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt -syntax keyword muttrcVarStr contained skipwhite folder_format vfolder_format nextgroup=muttrcVarEqualsFolderFmt -syntax keyword muttrcVarStr contained skipwhite attribution forward_format index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt -syntax keyword muttrcVarStr contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt -syntax keyword muttrcVarStr contained skipwhite pattern_format nextgroup=muttrcVarEqualsPatternFmt -syntax keyword muttrcVarStr contained skipwhite +syntax match muttrcVarString contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString +syntax keyword muttrcVarString contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFormat +syntax keyword muttrcVarString contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFormat +syntax keyword muttrcVarString contained skipwhite autocrypt_acct_format nextgroup=muttrcVarEqualsAutocryptFormat +syntax keyword muttrcVarString contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFormat +syntax keyword muttrcVarString contained skipwhite folder_format mailbox_folder_format nextgroup=muttrcVarEqualsFolderFormat +syntax keyword muttrcVarString contained skipwhite greeting nextgroup=muttrcVarEqualsGreetingFormat +syntax keyword muttrcVarString contained skipwhite history_format nextgroup=muttrcVarEqualsHistoryFormat +syntax keyword muttrcVarString contained skipwhite + \ attribution_intro attribution_trailer forward_attribution_intro forward_attribution_trailer + \ forward_format indent_string index_format message_format pager_format + \ nextgroup=muttrcVarEqualsIndexFormat +syntax keyword muttrcVarString contained skipwhite pattern_format nextgroup=muttrcVarEqualsPatternFormat +syntax keyword muttrcVarString contained skipwhite \ pgp_clear_sign_command pgp_decode_command pgp_decrypt_command pgp_encrypt_only_command \ pgp_encrypt_sign_command pgp_export_command pgp_get_keys_command pgp_import_command \ pgp_list_pubring_command pgp_list_secring_command pgp_sign_command pgp_verify_command \ pgp_verify_key_command - \ nextgroup=muttrcVarEqualsPGPCmdFmt -syntax keyword muttrcVarStr contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt -syntax keyword muttrcVarStr contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt -syntax keyword muttrcVarStr contained skipwhite + \ nextgroup=muttrcVarEqualsPgpCommandFormat +syntax keyword muttrcVarString contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPgpEntryFormat +syntax keyword muttrcVarString contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFormat +syntax keyword muttrcVarString contained skipwhite \ smime_decrypt_command smime_encrypt_command smime_get_cert_command \ smime_get_cert_email_command smime_get_signer_cert_command smime_import_cert_command \ smime_pk7out_command smime_sign_command smime_verify_command smime_verify_opaque_command - \ nextgroup=muttrcVarEqualsSmimeFmt -syntax keyword muttrcVarStr contained skipwhite status_format ts_icon_format ts_status_format nextgroup=muttrcVarEqualsStatusFmt -syntax keyword muttrcVarStr contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt -syntax keyword muttrcVarStr contained skipwhite group_index_format nextgroup=muttrcVarEqualsGrpIdxFmt -syntax keyword muttrcVarStr contained skipwhite sidebar_format nextgroup=muttrcVarEqualsSdbFmt -syntax keyword muttrcVarStr contained skipwhite + \ nextgroup=muttrcVarEqualsSmimeCommandFormat +syntax keyword muttrcVarString contained skipwhite status_format ts_icon_format ts_status_format nextgroup=muttrcVarEqualsStatusFormat +syntax keyword muttrcVarString contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFormat +syntax keyword muttrcVarString contained skipwhite group_index_format nextgroup=muttrcVarEqualsGroupIndexFormat +syntax keyword muttrcVarString contained skipwhite sidebar_format nextgroup=muttrcVarEqualsSidebarFormat +syntax keyword muttrcVarString contained skipwhite \ abort_key arrow_string assumed_charset attach_charset attach_sep attribution_locale - \ autocrypt_acct_format charset config_charset content_type crypt_protected_headers_subject - \ default_hook dsn_notify dsn_return empty_subject forward_attribution_intro - \ forward_attribution_trailer greeting header_cache_backend header_cache_compress_method + \ charset config_charset content_type crypt_protected_headers_subject default_hook + \ dsn_notify dsn_return empty_subject header_cache_backend header_cache_compress_method \ hidden_tags hostname imap_authenticators imap_delim_chars imap_headers imap_login - \ imap_pass imap_user indent_string mailcap_path mark_macro_prefix mh_seq_flagged - \ mh_seq_replied mh_seq_unseen newsgroups_charset news_server nm_default_url nm_exclude_tags - \ nm_flagged_tag nm_query_type nm_query_window_current_search nm_query_window_or_terms - \ nm_query_window_timebase nm_record_tags nm_replied_tag nm_unread_tag nntp_authenticators - \ nntp_pass nntp_user pgp_default_key pgp_sign_as pipe_sep pop_authenticators pop_host - \ pop_pass pop_user postpone_encrypt_as post_indent_string preconnect preferred_languages - \ real_name send_charset show_multipart_alternative sidebar_delim_chars sidebar_divider_char - \ sidebar_indent_string simple_search smime_default_key smime_encrypt_with smime_sign_as - \ smime_sign_digest_alg smtp_authenticators smtp_pass smtp_url smtp_user spam_separator - \ ssl_ciphers - \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + \ imap_pass imap_user mailcap_path maildir_field_delimiter mark_macro_prefix mh_seq_flagged + \ mh_seq_replied mh_seq_unseen newsgroups_charset newsrc news_server nm_config_profile + \ nm_default_url nm_exclude_tags nm_flagged_tag nm_query_type nm_query_window_current_search + \ nm_query_window_or_terms nm_query_window_timebase nm_record_tags nm_replied_tag + \ nm_unread_tag nntp_authenticators nntp_pass nntp_user pgp_default_key pgp_sign_as pipe_sep + \ pop_authenticators pop_host pop_pass pop_user postpone_encrypt_as preconnect + \ preferred_languages real_name send_charset show_multipart_alternative sidebar_delim_chars + \ sidebar_divider_char sidebar_indent_string simple_search smime_default_key + \ smime_encrypt_with smime_sign_as smime_sign_digest_alg smtp_authenticators smtp_pass + \ smtp_url smtp_user spam_separator ssl_ciphers + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString " Deprecated strings -syntax keyword muttrcVarDeprecatedStr - \ abort_noattach_regexp attach_keyword escape forw_format hdr_format indent_str msg_format - \ nm_default_uri pgp_clearsign_command pgp_getkeys_command pgp_self_encrypt_as - \ post_indent_str print_cmd quote_regexp realname reply_regexp smime_self_encrypt_as - \ spoolfile visual xterm_icon xterm_title - -" CHECKED 2022-04-08 +syntax keyword muttrcVarDeprecatedString + \ abort_noattach_regexp attach_keyword attribution escape forw_format hdr_format indent_str + \ message_cachedir mixmaster mix_entry_format msg_format nm_default_uri + \ pgp_clearsign_command pgp_getkeys_command pgp_self_encrypt_as post_indent_str + \ post_indent_string print_cmd quote_regexp realname reply_regexp smime_self_encrypt_as + \ spoolfile tmpdir vfolder_format visual xterm_icon xterm_title + +" CHECKED 2024 Oct 12 " List of DT_ADDRESS -syntax keyword muttrcVarStr contained skipwhite envelope_from_address from nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax keyword muttrcVarString contained skipwhite envelope_from_address from nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString " List of DT_ENUM -syntax keyword muttrcVarStr contained skipwhite mbox_type use_threads nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax keyword muttrcVarString contained skipwhite mbox_type use_threads nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString " List of DT_MBTABLE -syntax keyword muttrcVarStr contained skipwhite crypt_chars flag_chars from_chars status_chars to_chars nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr - -" CHECKED 2022-04-08 -" List of DT_PATH or DT_MAILBOX -syntax keyword muttrcVarStr contained skipwhite - \ alias_file attach_save_dir autocrypt_dir certificate_file debug_file - \ entropy_file folder header_cache history_file mbox message_cachedir newsrc - \ news_cache_dir postponed record signature smime_ca_location - \ smime_certificates smime_keys spool_file ssl_ca_certificates_file ssl_client_cert - \ tmpdir trash - \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax keyword muttrcVarString contained skipwhite crypt_chars flag_chars from_chars status_chars to_chars nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString + +" CHECKED 2024 Oct 12 +" List of DT_PATH or D_STRING_MAILBOX +syntax keyword muttrcVarString contained skipwhite + \ alias_file attach_save_dir autocrypt_dir certificate_file debug_file entropy_file folder + \ header_cache history_file mbox message_cache_dir news_cache_dir nm_config_file postponed + \ record signature smime_ca_location smime_certificates smime_keys spool_file + \ ssl_ca_certificates_file ssl_client_cert tmp_dir trash + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString " List of DT_COMMAND (excluding pgp_*_command and smime_*_command) -syntax keyword muttrcVarStr contained skipwhite - \ display_filter editor inews ispell mixmaster new_mail_command pager - \ print_command query_command sendmail shell external_search_command - \ imap_oauth_refresh_command pop_oauth_refresh_command - \ mime_type_query_command smtp_oauth_refresh_command tunnel - \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr - -" CHECKED 2022-04-08 +syntax keyword muttrcVarString contained skipwhite + \ account_command display_filter editor external_search_command imap_oauth_refresh_command + \ inews ispell mime_type_query_command new_mail_command pager pop_oauth_refresh_command + \ print_command query_command sendmail shell smtp_oauth_refresh_command tunnel + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString + +" CHECKED 2024 Oct 12 " List of DT_REGEX -syntax keyword muttrcVarStr contained skipwhite - \ abort_noattach_regex gecos_mask mask pgp_decryption_okay pgp_good_sign quote_regex +syntax keyword muttrcVarString contained skipwhite + \ abort_noattach_regex gecos_mask mask pgp_decryption_okay pgp_good_sign quote_regex \ reply_regex smileys - \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString " List of DT_SORT -syntax keyword muttrcVarStr contained skipwhite +syntax keyword muttrcVarString contained skipwhite \ pgp_sort_keys sidebar_sort_method sort sort_alias sort_aux sort_browser - \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString -" CHECKED 2022-04-08 -" List of commands in mutt_commands in mutt_commands.c +" CHECKED 2024 Oct 12 +" List of commands in mutt_commands in commands.c " Remember to remove hooks, they have already been dealt with syntax keyword muttrcCommand skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL syntax keyword muttrcCommand skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL syntax keyword muttrcCommand skipwhite exec nextgroup=muttrcFunction syntax keyword muttrcCommand skipwhite macro nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL syntax keyword muttrcCommand skipwhite nospam nextgroup=muttrcNoSpamPattern -syntax keyword muttrcCommand skipwhite set unset reset toggle nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax keyword muttrcCommand skipwhite set unset reset toggle nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarString syntax keyword muttrcCommand skipwhite spam nextgroup=muttrcSpamPattern syntax keyword muttrcCommand skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL syntax keyword muttrcCommand skipwhite unhook nextgroup=muttrcHooks syntax keyword muttrcCommand skipwhite \ alternative_order attachments auto_view cd echo finish hdr_order ifdef ifndef ignore lua \ lua-source mailboxes mailto_allow mime_lookup my_hdr named-mailboxes push score setenv - \ sidebar_whitelist source subjectrx subscribe-to tag-formats tag-transforms + \ sidebar_pin sidebar_unpin source subjectrx subscribe-to tag-formats tag-transforms \ unalternative_order unattachments unauto_view unbind uncolor unhdr_order unignore unmacro - \ unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore unsetenv - \ unsidebar_whitelist unsubjectrx unsubscribe-from unvirtual-mailboxes virtual-mailboxes + \ unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore unsetenv unsubjectrx + \ unsubscribe-from unvirtual-mailboxes version virtual-mailboxes + +" CHECKED 2024 Oct 12 +" Deprecated commands +syntax keyword muttrcDeprecatedCommand skipwhite + \ sidebar_whitelist unsidebar_whitelist function! s:genFunctions(functions) for f in a:functions @@ -636,68 +667,67 @@ function! s:genFunctions(functions) endfor endfunction -" CHECKED 2022-04-08 +" CHECKED 2024 Oct 12 " List of functions in functions.c " Note: 'noop' is included but is elsewhere in the source call s:genFunctions(['noop', - \ 'accept', 'alias-dialog', 'append', 'attach-file', 'attach-key', 'attach-message', - \ 'attach-news-message', 'autocrypt-acct-menu', 'autocrypt-menu', 'backspace', - \ 'backward-char', 'backward-word', 'bol', 'bottom', 'bottom-page', 'bounce-message', - \ 'break-thread', 'buffy-cycle', 'buffy-list', 'capitalize-word', 'catchup', 'chain-next', - \ 'chain-prev', 'change-dir', 'change-folder', 'change-folder-readonly', 'change-newsgroup', - \ 'change-newsgroup-readonly', 'change-vfolder', 'check-new', 'check-stats', - \ 'check-traditional-pgp', 'clear-flag', 'collapse-all', 'collapse-parts', - \ 'collapse-thread', 'complete', 'complete-query', 'compose-to-sender', 'copy-file', - \ 'copy-message', 'create-account', 'create-alias', 'create-mailbox', 'current-bottom', - \ 'current-middle', 'current-top', 'decode-copy', 'decode-save', 'decrypt-copy', - \ 'decrypt-save', 'delete', 'delete-account', 'delete-char', 'delete-entry', - \ 'delete-mailbox', 'delete-message', 'delete-pattern', 'delete-subthread', 'delete-thread', - \ 'descend-directory', 'detach-file', 'display-address', 'display-filename', - \ 'display-message', 'display-toggle-weed', 'downcase-word', 'edit', 'edit-bcc', 'edit-cc', - \ 'edit-content-id', 'edit-description', 'edit-encoding', 'edit-fcc', 'edit-file', - \ 'edit-followup-to', 'edit-from', 'edit-headers', 'edit-label', 'edit-language', - \ 'edit-message', 'edit-mime', 'edit-newsgroups', 'edit-or-view-raw-message', - \ 'edit-raw-message', 'edit-reply-to', 'edit-subject', 'edit-to', 'edit-type', - \ 'edit-x-comment-to', 'end-cond', 'enter-command', 'enter-mask', 'entire-thread', 'eol', - \ 'error-history', 'exit', 'extract-keys', 'fetch-mail', 'filter-entry', 'first-entry', - \ 'flag-message', 'followup-message', 'forget-passphrase', 'forward-char', - \ 'forward-message', 'forward-to-group', 'forward-word', 'get-attachment', 'get-children', - \ 'get-message', 'get-parent', 'goto-folder', 'goto-parent', 'group-alternatives', - \ 'group-chat-reply', 'group-multilingual', 'group-related', 'group-reply', 'half-down', - \ 'half-up', 'help', 'history-down', 'history-search', 'history-up', 'imap-fetch-mail', - \ 'imap-logout-all', 'insert', 'ispell', 'jump', 'kill-eol', 'kill-eow', 'kill-line', - \ 'kill-word', 'last-entry', 'limit', 'limit-current-thread', 'link-threads', 'list-reply', - \ 'list-subscribe', 'list-unsubscribe', 'mail', 'mail-key', 'mailbox-cycle', 'mailbox-list', - \ 'mark-as-new', 'mark-message', 'middle-page', 'mix', 'modify-labels', - \ 'modify-labels-then-hide', 'modify-tags', 'modify-tags-then-hide', 'move-down', 'move-up', - \ 'new-mime', 'next-entry', 'next-line', 'next-new', 'next-new-then-unread', 'next-page', - \ 'next-subthread', 'next-thread', 'next-undeleted', 'next-unread', 'next-unread-mailbox', - \ 'parent-message', 'pgp-menu', 'pipe-entry', 'pipe-message', 'post-message', - \ 'postpone-message', 'previous-entry', 'previous-line', 'previous-new', - \ 'previous-new-then-unread', 'previous-page', 'previous-subthread', 'previous-thread', - \ 'previous-undeleted', 'previous-unread', 'print-entry', 'print-message', 'purge-message', - \ 'purge-thread', 'quasi-delete', 'query', 'query-append', 'quit', 'quote-char', - \ 'read-subthread', 'read-thread', 'recall-message', 'reconstruct-thread', 'redraw-screen', - \ 'refresh', 'reload-active', 'rename-attachment', 'rename-file', 'rename-mailbox', 'reply', - \ 'resend-message', 'root-message', 'save-entry', 'save-message', 'search', 'search-next', - \ 'search-opposite', 'search-reverse', 'search-toggle', 'select-entry', 'select-new', - \ 'send-message', 'set-flag', 'shell-escape', 'show-limit', 'show-log-messages', - \ 'show-version', 'sidebar-first', 'sidebar-last', 'sidebar-next', 'sidebar-next-new', - \ 'sidebar-open', 'sidebar-page-down', 'sidebar-page-up', 'sidebar-prev', - \ 'sidebar-prev-new', 'sidebar-toggle-virtual', 'sidebar-toggle-visible', 'skip-headers', - \ 'skip-quoted', 'smime-menu', 'sort', 'sort-alias', 'sort-alias-reverse', 'sort-mailbox', - \ 'sort-reverse', 'subscribe', 'subscribe-pattern', 'sync-mailbox', 'tag-entry', - \ 'tag-message', 'tag-pattern', 'tag-prefix', 'tag-prefix-cond', 'tag-subthread', - \ 'tag-thread', 'toggle-active', 'toggle-disposition', 'toggle-mailboxes', 'toggle-new', - \ 'toggle-prefer-encrypt', 'toggle-quoted', 'toggle-read', 'toggle-recode', - \ 'toggle-subscribed', 'toggle-unlink', 'toggle-write', 'top', 'top-page', - \ 'transpose-chars', 'uncatchup', 'undelete-entry', 'undelete-message', 'undelete-pattern', - \ 'undelete-subthread', 'undelete-thread', 'ungroup-attachment', 'unsubscribe', - \ 'unsubscribe-pattern', 'untag-pattern', 'upcase-word', 'update-encoding', 'verify-key', - \ 'vfolder-from-query', 'vfolder-from-query-readonly', 'vfolder-window-backward', - \ 'vfolder-window-forward', 'vfolder-window-reset', 'view-attach', 'view-attachments', - \ 'view-file', 'view-mailcap', 'view-name', 'view-pager', 'view-raw-message', 'view-text', - \ 'what-key', 'write-fcc' + \ 'alias-dialog', 'attach-file', 'attach-key', 'attach-message', 'attach-news-message', + \ 'autocrypt-acct-menu', 'autocrypt-menu', 'backspace', 'backward-char', 'backward-word', + \ 'bol', 'bottom', 'bottom-page', 'bounce-message', 'break-thread', 'buffy-cycle', + \ 'buffy-list', 'capitalize-word', 'catchup', 'change-dir', 'change-folder', + \ 'change-folder-readonly', 'change-newsgroup', 'change-newsgroup-readonly', + \ 'change-vfolder', 'check-new', 'check-stats', 'check-traditional-pgp', 'clear-flag', + \ 'collapse-all', 'collapse-parts', 'collapse-thread', 'complete', 'complete-query', + \ 'compose-to-sender', 'copy-file', 'copy-message', 'create-account', 'create-alias', + \ 'create-mailbox', 'current-bottom', 'current-middle', 'current-top', 'decode-copy', + \ 'decode-save', 'decrypt-copy', 'decrypt-save', 'delete-account', 'delete-char', + \ 'delete-entry', 'delete-mailbox', 'delete-message', 'delete-pattern', 'delete-subthread', + \ 'delete-thread', 'descend-directory', 'detach-file', 'display-address', + \ 'display-filename', 'display-message', 'display-toggle-weed', 'downcase-word', 'edit', + \ 'edit-bcc', 'edit-cc', 'edit-content-id', 'edit-description', 'edit-encoding', 'edit-fcc', + \ 'edit-file', 'edit-followup-to', 'edit-from', 'edit-headers', 'edit-label', + \ 'edit-language', 'edit-message', 'edit-mime', 'edit-newsgroups', + \ 'edit-or-view-raw-message', 'edit-raw-message', 'edit-reply-to', 'edit-subject', + \ 'edit-to', 'edit-type', 'edit-x-comment-to', 'end-cond', 'enter-command', 'enter-mask', + \ 'entire-thread', 'eol', 'error-history', 'exit', 'extract-keys', 'fetch-mail', + \ 'filter-entry', 'first-entry', 'flag-message', 'followup-message', 'forget-passphrase', + \ 'forward-char', 'forward-message', 'forward-to-group', 'forward-word', 'get-attachment', + \ 'get-children', 'get-message', 'get-parent', 'goto-folder', 'goto-parent', + \ 'group-alternatives', 'group-chat-reply', 'group-multilingual', 'group-related', + \ 'group-reply', 'half-down', 'half-up', 'help', 'history-down', 'history-search', + \ 'history-up', 'imap-fetch-mail', 'imap-logout-all', 'ispell', 'jump', 'kill-eol', + \ 'kill-eow', 'kill-line', 'kill-whole-line', 'kill-word', 'last-entry', 'limit', + \ 'limit-current-thread', 'link-threads', 'list-reply', 'list-subscribe', + \ 'list-unsubscribe', 'mail', 'mail-key', 'mailbox-cycle', 'mailbox-list', 'mark-as-new', + \ 'mark-message', 'middle-page', 'modify-labels', 'modify-labels-then-hide', 'modify-tags', + \ 'modify-tags-then-hide', 'move-down', 'move-up', 'new-mime', 'next-entry', 'next-line', + \ 'next-new', 'next-new-then-unread', 'next-page', 'next-subthread', 'next-thread', + \ 'next-undeleted', 'next-unread', 'next-unread-mailbox', 'parent-message', 'pgp-menu', + \ 'pipe-entry', 'pipe-message', 'post-message', 'postpone-message', 'previous-entry', + \ 'previous-line', 'previous-new', 'previous-new-then-unread', 'previous-page', + \ 'previous-subthread', 'previous-thread', 'previous-undeleted', 'previous-unread', + \ 'print-entry', 'print-message', 'purge-message', 'purge-thread', 'quasi-delete', 'query', + \ 'query-append', 'quit', 'quote-char', 'read-subthread', 'read-thread', 'recall-message', + \ 'reconstruct-thread', 'redraw-screen', 'refresh', 'reload-active', 'rename-attachment', + \ 'rename-file', 'rename-mailbox', 'reply', 'resend-message', 'root-message', 'save-entry', + \ 'save-message', 'search', 'search-next', 'search-opposite', 'search-reverse', + \ 'search-toggle', 'select-entry', 'select-new', 'send-message', 'set-flag', 'shell-escape', + \ 'show-limit', 'show-log-messages', 'show-version', 'sidebar-first', 'sidebar-last', + \ 'sidebar-next', 'sidebar-next-new', 'sidebar-open', 'sidebar-page-down', + \ 'sidebar-page-up', 'sidebar-prev', 'sidebar-prev-new', 'sidebar-toggle-virtual', + \ 'sidebar-toggle-visible', 'skip-headers', 'skip-quoted', 'smime-menu', 'sort', + \ 'sort-alias', 'sort-alias-reverse', 'sort-mailbox', 'sort-reverse', 'subscribe', + \ 'subscribe-pattern', 'sync-mailbox', 'tag-entry', 'tag-message', 'tag-pattern', + \ 'tag-prefix', 'tag-prefix-cond', 'tag-subthread', 'tag-thread', 'toggle-active', + \ 'toggle-disposition', 'toggle-mailboxes', 'toggle-new', 'toggle-prefer-encrypt', + \ 'toggle-quoted', 'toggle-read', 'toggle-recode', 'toggle-subscribed', 'toggle-unlink', + \ 'toggle-write', 'top', 'top-page', 'transpose-chars', 'uncatchup', 'undelete-entry', + \ 'undelete-message', 'undelete-pattern', 'undelete-subthread', 'undelete-thread', + \ 'ungroup-attachment', 'unsubscribe', 'unsubscribe-pattern', 'untag-pattern', + \ 'upcase-word', 'update-encoding', 'verify-key', 'vfolder-from-query', + \ 'vfolder-from-query-readonly', 'vfolder-window-backward', 'vfolder-window-forward', + \ 'vfolder-window-reset', 'view-attach', 'view-attachments', 'view-file', 'view-mailcap', + \ 'view-name', 'view-pager', 'view-raw-message', 'view-text', 'what-key', 'write-fcc' \ ]) " Define the default highlighting. @@ -713,29 +743,23 @@ highlight def link muttrcBadAction Error highlight def link muttrcBindFunction Error highlight def link muttrcBindMenuList Error highlight def link muttrcColorBG Error -highlight def link muttrcColorBGH Error -highlight def link muttrcColorBGI Error highlight def link muttrcColorContext Error highlight def link muttrcColorFG Error -highlight def link muttrcColorFGH Error -highlight def link muttrcColorFGI Error highlight def link muttrcColorLine Error +highlight def link muttrcDeprecatedCommand Error highlight def link muttrcFormatErrors Error highlight def link muttrcGroupLine Error -highlight def link muttrcListsLine Error highlight def link muttrcPattern Error -highlight def link muttrcSubscribeLine Error highlight def link muttrcUnColorLine Error highlight def link muttrcVarDeprecatedBool Error +highlight def link muttrcVarDeprecatedNum Error highlight def link muttrcVarDeprecatedQuad Error -highlight def link muttrcVarDeprecatedStr Error +highlight def link muttrcVarDeprecatedString Error highlight def link muttrcAliasEncEmail Identifier highlight def link muttrcAliasKey Identifier highlight def link muttrcColorCompose Identifier highlight def link muttrcColorComposeField Identifier -highlight def link muttrcColorContextH Identifier -highlight def link muttrcColorContextI Identifier highlight def link muttrcColorField Identifier highlight def link muttrcMenu Identifier highlight def link muttrcSimplePat Identifier @@ -744,7 +768,7 @@ highlight def link muttrcUnColorIndex Identifier highlight def link muttrcVarBool Identifier highlight def link muttrcVarNum Identifier highlight def link muttrcVarQuad Identifier -highlight def link muttrcVarStr Identifier +highlight def link muttrcVarString Identifier highlight def link muttrcCommand Keyword @@ -769,52 +793,61 @@ highlight def link muttrcUnColorKeyword muttrcCommand highlight def link muttrcAliasFormatEscapes muttrcEscape highlight def link muttrcAttachFormatEscapes muttrcEscape +highlight def link muttrcAutocryptFormatEscapes muttrcEscape highlight def link muttrcComposeFormatEscapes muttrcEscape highlight def link muttrcFolderFormatEscapes muttrcEscape +highlight def link muttrcGreetingFormatEscapes muttrcEscape highlight def link muttrcGroupIndexFormatEscapes muttrcEscape +highlight def link muttrcHistoryFormatEscapes muttrcEscape highlight def link muttrcIndexFormatEscapes muttrcEscape -highlight def link muttrcMixFormatEscapes muttrcEscape highlight def link muttrcPatternFormatEscapes muttrcEscape -highlight def link muttrcPGPCmdFormatEscapes muttrcEscape -highlight def link muttrcPGPFormatEscapes muttrcEscape -highlight def link muttrcPGPTimeEscapes muttrcEscape +highlight def link muttrcPgpCommandFormatEscapes muttrcEscape +highlight def link muttrcPgpEntryFormatEscapes muttrcEscape +highlight def link muttrcPgpTimeEscapes muttrcEscape highlight def link muttrcQueryFormatEscapes muttrcEscape highlight def link muttrcShellString muttrcEscape highlight def link muttrcSidebarFormatEscapes muttrcEscape -highlight def link muttrcSmimeFormatEscapes muttrcEscape +highlight def link muttrcSmimeCommandFormatEscapes muttrcEscape highlight def link muttrcStatusFormatEscapes muttrcEscape highlight def link muttrcTimeEscapes muttrcEscape -highlight def link muttrcAliasFormatConditionals muttrcFormatConditionals2 -highlight def link muttrcAttachFormatConditionals muttrcFormatConditionals2 -highlight def link muttrcComposeFormatConditionals muttrcFormatConditionals2 -highlight def link muttrcFolderFormatConditionals muttrcFormatConditionals2 -highlight def link muttrcIndexFormatConditionals muttrcFormatConditionals2 -highlight def link muttrcMixFormatConditionals muttrcFormatConditionals2 -highlight def link muttrcPatternFormatConditionals muttrcFormatConditionals2 -highlight def link muttrcPGPCmdFormatConditionals muttrcFormatConditionals2 -highlight def link muttrcPGPFormatConditionals muttrcFormatConditionals2 -highlight def link muttrcSmimeFormatConditionals muttrcFormatConditionals2 -highlight def link muttrcStatusFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcAliasFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcAttachFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcAutocryptFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcComposeFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcFolderFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcGreetingFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcGroupIndexFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcHistoryFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcIndexFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcPatternFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcPgpCommandFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcPgpEntryFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcQueryFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcSidebarFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcSmimeCommandFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcStatusFormatConditionals muttrcFormatConditionals2 highlight def link muttrcAddrDef muttrcGroupFlag highlight def link muttrcRXDef muttrcGroupFlag -highlight def link muttrcAliasFormatStr muttrcString -highlight def link muttrcAttachFormatStr muttrcString -highlight def link muttrcComposeFormatStr muttrcString -highlight def link muttrcFolderFormatStr muttrcString -highlight def link muttrcGroupIndexFormatStr muttrcString -highlight def link muttrcIndexFormatStr muttrcString -highlight def link muttrcMixFormatStr muttrcString -highlight def link muttrcPatternFormatStr muttrcString -highlight def link muttrcPGPCmdFormatStr muttrcString -highlight def link muttrcPGPFormatStr muttrcString -highlight def link muttrcQueryFormatStr muttrcString -highlight def link muttrcSidebarFormatStr muttrcString -highlight def link muttrcSmimeFormatStr muttrcString -highlight def link muttrcStatusFormatStr muttrcString -highlight def link muttrcStrftimeFormatStr muttrcString +highlight def link muttrcAliasFormatString muttrcString +highlight def link muttrcAttachFormatString muttrcString +highlight def link muttrcAutocryptFormatString muttrcString +highlight def link muttrcComposeFormatString muttrcString +highlight def link muttrcFolderFormatString muttrcString +highlight def link muttrcGreetingFormatString muttrcString +highlight def link muttrcGroupIndexFormatString muttrcString +highlight def link muttrcHistoryFormatString muttrcString +highlight def link muttrcIndexFormatString muttrcString +highlight def link muttrcPatternFormatString muttrcString +highlight def link muttrcPgpCommandFormatString muttrcString +highlight def link muttrcPgpEntryFormatString muttrcString +highlight def link muttrcQueryFormatString muttrcString +highlight def link muttrcSidebarFormatString muttrcString +highlight def link muttrcSmimeCommandFormatString muttrcString +highlight def link muttrcStatusFormatString muttrcString +highlight def link muttrcStrftimeFormatString muttrcString highlight def link muttrcSetNumAssignment Number @@ -843,7 +876,6 @@ highlight def link muttrcMacroBodyNL SpecialChar highlight def link muttrcMacroDescrNL SpecialChar highlight def link muttrcMacroKeyNL SpecialChar highlight def link muttrcMacroMenuListNL SpecialChar -highlight def link muttrcPatternNL SpecialChar highlight def link muttrcRXChars SpecialChar highlight def link muttrcStringNL SpecialChar highlight def link muttrcUnAliasNL SpecialChar @@ -860,7 +892,6 @@ highlight def link muttrcRXString2 String highlight def link muttrcSetStrAssignment String highlight def link muttrcString String -highlight def link muttrcAliasParens Type highlight def link muttrcAttachmentsFlag Type highlight def link muttrcColor Type highlight def link muttrcFormatConditionals2 Type -- cgit From 9701cbf036aecf18e7d88681040c07d61c314ca6 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 15 Oct 2024 08:16:56 +0800 Subject: vim-patch:7b5e52d: runtime(doc): add preview flag to statusline example Problem: The standard statusline example is missing the preview flag "%w" Solution: Add the preview flag "%w" closes: vim/vim#15874 https://github.com/vim/vim/commit/7b5e52d16fb457c90cc44340a6190712aab7e03b Co-authored-by: saher --- runtime/doc/options.txt | 2 +- runtime/lua/vim/_meta/options.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 9a6072a23b..739452ab00 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -6275,7 +6275,7 @@ A jump table for the options with a short description can be found at |Q_op|. Examples: Emulate standard status line with 'ruler' set >vim - set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P + set statusline=%<%f\ %h%w%m%r%=%-14.(%l,%c%V%)\ %P < Similar, but add ASCII value of char under the cursor (like "ga") >vim set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P < Display byte count and byte value, modified flag in red. >vim diff --git a/runtime/lua/vim/_meta/options.lua b/runtime/lua/vim/_meta/options.lua index ce3ff4f861..1270ad2519 100644 --- a/runtime/lua/vim/_meta/options.lua +++ b/runtime/lua/vim/_meta/options.lua @@ -6695,7 +6695,7 @@ vim.wo.stc = vim.wo.statuscolumn --- Emulate standard status line with 'ruler' set --- --- ```vim ---- set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P +--- set statusline=%<%f\ %h%w%m%r%=%-14.(%l,%c%V%)\ %P --- ``` --- Similar, but add ASCII value of char under the cursor (like "ga") --- -- cgit From dbd172e7e953bdab7132bd635532295a4dc64af9 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 15 Oct 2024 08:20:09 +0800 Subject: vim-patch:5bcfb5a: runtime(doc): add some docs for file-watcher programs fixes: vim/vim#15733 https://github.com/vim/vim/commit/5bcfb5a30cfd8e8574061bdd82a192f47aae09b5 Co-authored-by: Christian Brabandt --- runtime/doc/editing.txt | 9 +++++++++ runtime/doc/options.txt | 5 +++-- runtime/lua/vim/_meta/options.lua | 5 +++-- 3 files changed, 15 insertions(+), 4 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt index 91c9554d63..4224709a39 100644 --- a/runtime/doc/editing.txt +++ b/runtime/doc/editing.txt @@ -1032,6 +1032,15 @@ explanation of when the copy is made and when the file is renamed. If the creation of a backup file fails, the write is not done. If you want to write anyway add a '!' to the command. + *file-watcher* +When you notice issues with programs, that act upon when a buffer is written +(like inotify, entr or fswatch) or when external applications execute Vim to +edit the file (like git) and those programs do not seem to notice that the +original file has been changed, you may want to consider switching the +'backupcopy' option value to "yes". This makes sure, Vim writes to the same +file, that those watcher programs expect, without creating a new file (which +prevents them from detecting that the file has changed). See also |crontab| + *write-permissions* When writing a new file the permissions are read-write. For unix the mask is 0o666 with additionally umask applied. When writing a file that was read Vim diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 739452ab00..3a6f93ae01 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -897,12 +897,13 @@ A jump table for the options with a short description can be found at |Q_op|. useful for example in source trees where all the files are symbolic or hard links and any changes should stay in the local source tree, not be propagated back to the original source. - *crontab* + *crontab* One situation where "no" and "auto" will cause problems: A program that opens a file, invokes Vim to edit that file, and then tests if the open file was changed (through the file descriptor) will check the backup file instead of the newly created file. "crontab -e" is an - example. + example, as are several |file-watcher| daemons like inotify. In that + case you probably want to switch this option. When a copy is made, the original file is truncated and then filled with the new text. This means that protection bits, owner and diff --git a/runtime/lua/vim/_meta/options.lua b/runtime/lua/vim/_meta/options.lua index 1270ad2519..36c0f583c7 100644 --- a/runtime/lua/vim/_meta/options.lua +++ b/runtime/lua/vim/_meta/options.lua @@ -289,12 +289,13 @@ vim.go.bk = vim.go.backup --- useful for example in source trees where all the files are symbolic or --- hard links and any changes should stay in the local source tree, not --- be propagated back to the original source. ---- *crontab* +--- *crontab* --- One situation where "no" and "auto" will cause problems: A program --- that opens a file, invokes Vim to edit that file, and then tests if --- the open file was changed (through the file descriptor) will check the --- backup file instead of the newly created file. "crontab -e" is an ---- example. +--- example, as are several `file-watcher` daemons like inotify. In that +--- case you probably want to switch this option. --- --- When a copy is made, the original file is truncated and then filled --- with the new text. This means that protection bits, owner and -- cgit From e0a5c3bb581752569df4490b48cb54e7c1ab0613 Mon Sep 17 00:00:00 2001 From: Maria José Solano Date: Tue, 15 Oct 2024 02:36:04 -0700 Subject: fix(lsp): handle multiline signature help labels #30460 --- runtime/doc/lsp.txt | 4 +- runtime/lua/vim/lsp/handlers.lua | 15 +++++-- runtime/lua/vim/lsp/util.lua | 93 +++++++++++++++++++++++++--------------- 3 files changed, 71 insertions(+), 41 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt index addc093a3e..91338f7d3f 100644 --- a/runtime/doc/lsp.txt +++ b/runtime/doc/lsp.txt @@ -1855,7 +1855,7 @@ signature_help({_}, {result}, {ctx}, {config}) < Parameters: ~ - • {result} (`lsp.SignatureHelp`) Response from the language server + • {result} (`lsp.SignatureHelp?`) Response from the language server • {ctx} (`lsp.HandlerContext`) Client context • {config} (`table`) Configuration table. • border: (default=nil) @@ -1973,7 +1973,7 @@ convert_signature_help_to_markdown_lines({signature_help}, {ft}, {triggers}) Return (multiple): ~ (`string[]?`) table list of lines of converted markdown. - (`number[]?`) table of active hl + (`Range4?`) table of active hl See also: ~ • https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_signatureHelp diff --git a/runtime/lua/vim/lsp/handlers.lua b/runtime/lua/vim/lsp/handlers.lua index 44548fec92..8e538242d9 100644 --- a/runtime/lua/vim/lsp/handlers.lua +++ b/runtime/lua/vim/lsp/handlers.lua @@ -462,6 +462,8 @@ M[ms.textDocument_typeDefinition] = location_handler --- @see # https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_implementation M[ms.textDocument_implementation] = location_handler +local sig_help_ns = api.nvim_create_namespace('vim_lsp_signature_help') + --- |lsp-handler| for the method "textDocument/signatureHelp". --- --- The active parameter is highlighted with |hl-LspSignatureActiveParameter|. @@ -476,7 +478,7 @@ M[ms.textDocument_implementation] = location_handler --- ``` --- ---@param _ lsp.ResponseError? ----@param result lsp.SignatureHelp Response from the language server +---@param result lsp.SignatureHelp? Response from the language server ---@param ctx lsp.HandlerContext Client context ---@param config table Configuration table. --- - border: (default=nil) @@ -509,10 +511,15 @@ function M.signature_help(_, result, ctx, config) return end local fbuf, fwin = util.open_floating_preview(lines, 'markdown', config) + -- Highlight the active parameter. if hl then - -- Highlight the second line if the signature is wrapped in a Markdown code block. - local line = vim.startswith(lines[1], '```') and 1 or 0 - api.nvim_buf_add_highlight(fbuf, -1, 'LspSignatureActiveParameter', line, unpack(hl)) + vim.highlight.range( + fbuf, + sig_help_ns, + 'LspSignatureActiveParameter', + { hl[1], hl[2] }, + { hl[3], hl[4] } + ) end return fbuf, fwin end diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua index ebc3f7c55e..fc822f1403 100644 --- a/runtime/lua/vim/lsp/util.lua +++ b/runtime/lua/vim/lsp/util.lua @@ -781,24 +781,37 @@ function M.convert_input_to_markdown_lines(input, contents) return contents end +--- Returns the line/column-based position in `contents` at the given offset. +--- +---@param offset integer +---@param contents string[] +---@return { [1]: integer, [2]: integer } +local function get_pos_from_offset(offset, contents) + local i = 0 + for l, line in ipairs(contents) do + if offset >= i and offset < i + #line then + return { l - 1, offset - i + 1 } + else + i = i + #line + 1 + end + end +end + --- Converts `textDocument/signatureHelp` response to markdown lines. --- ---@param signature_help lsp.SignatureHelp Response of `textDocument/SignatureHelp` ---@param ft string|nil filetype that will be use as the `lang` for the label markdown code block ---@param triggers table|nil list of trigger characters from the lsp server. used to better determine parameter offsets ---@return string[]|nil table list of lines of converted markdown. ----@return number[]|nil table of active hl +---@return Range4|nil table of active hl ---@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_signatureHelp function M.convert_signature_help_to_markdown_lines(signature_help, ft, triggers) - if not signature_help.signatures then - return - end --The active signature. If omitted or the value lies outside the range of --`signatures` the value defaults to zero or is ignored if `signatures.length == 0`. --Whenever possible implementors should make an active decision about --the active signature and shouldn't rely on a default value. local contents = {} - local active_hl + local active_offset ---@type [integer, integer]|nil local active_signature = signature_help.activeSignature or 0 -- If the activeSignature is not inside the valid range, then clip it. -- In 3.15 of the protocol, activeSignature was allowed to be negative @@ -806,9 +819,6 @@ function M.convert_signature_help_to_markdown_lines(signature_help, ft, triggers active_signature = 0 end local signature = signature_help.signatures[active_signature + 1] - if not signature then - return - end local label = signature.label if ft then -- wrap inside a code block for proper rendering @@ -825,6 +835,8 @@ function M.convert_signature_help_to_markdown_lines(signature_help, ft, triggers M.convert_input_to_markdown_lines(signature.documentation, contents) end if signature.parameters and #signature.parameters > 0 then + -- First check if the signature has an activeParameter. If it doesn't check if the response + -- had that property instead. Else just default to 0. local active_parameter = (signature.activeParameter or signature_help.activeParameter or 0) if active_parameter < 0 then active_parameter = 0 @@ -837,8 +849,8 @@ function M.convert_signature_help_to_markdown_lines(signature_help, ft, triggers end local parameter = signature.parameters[active_parameter + 1] - if parameter then - --[=[ + local parameter_label = parameter.label + --[=[ --Represents a parameter of a callable-signature. A parameter can --have a label and a doc-comment. interface ParameterInformation { @@ -856,36 +868,47 @@ function M.convert_signature_help_to_markdown_lines(signature_help, ft, triggers documentation?: string | MarkupContent; } --]=] - if parameter.label then - if type(parameter.label) == 'table' then - active_hl = parameter.label - else - local offset = 1 - -- try to set the initial offset to the first found trigger character - for _, t in ipairs(triggers or {}) do - local trigger_offset = signature.label:find(t, 1, true) - if trigger_offset and (offset == 1 or trigger_offset < offset) then - offset = trigger_offset - end - end - for p, param in pairs(signature.parameters) do - offset = signature.label:find(param.label, offset, true) - if not offset then - break - end - if p == active_parameter + 1 then - active_hl = { offset - 1, offset + #parameter.label - 1 } - break - end - offset = offset + #param.label + 1 - end + if type(parameter_label) == 'table' then + active_offset = parameter_label + else + local offset = 1 ---@type integer|nil + -- try to set the initial offset to the first found trigger character + for _, t in ipairs(triggers or {}) do + local trigger_offset = signature.label:find(t, 1, true) + if trigger_offset and (offset == 1 or trigger_offset < offset) then + offset = trigger_offset end end - if parameter.documentation then - M.convert_input_to_markdown_lines(parameter.documentation, contents) + for p, param in pairs(signature.parameters) do + offset = signature.label:find(param.label, offset, true) + if not offset then + break + end + if p == active_parameter + 1 then + active_offset = { offset - 1, offset + #parameter_label - 1 } + break + end + offset = offset + #param.label + 1 end end + if parameter.documentation then + M.convert_input_to_markdown_lines(parameter.documentation, contents) + end + end + + local active_hl = nil + if active_offset then + active_hl = {} + -- Account for the start of the markdown block. + if ft then + active_offset[1], active_offset[2] = + active_offset[1] + #contents[1], active_offset[2] + #contents[1] + end + + list_extend(active_hl, get_pos_from_offset(active_offset[1], contents)) + list_extend(active_hl, get_pos_from_offset(active_offset[2], contents)) end + return contents, active_hl end -- cgit From 84623dbe93777c0a8e7ddf57470ddeb2ea738069 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 15 Oct 2024 18:53:59 +0800 Subject: vim-patch:9.1.0785: cannot preserve error position when setting quickfix list (#30820) Problem: cannot preserve error position when setting quickfix lists Solution: Add the 'u' action for setqflist()/setloclist() and try to keep the closes target position (Jeremy Fleischman) fixes: vim/vim#15839 closes: vim/vim#15841 https://github.com/vim/vim/commit/27fbf6e5e8bee5c6b61819a5e82a0b50b265f0b0 Co-authored-by: Jeremy Fleischman --- runtime/doc/builtin.txt | 2 ++ runtime/lua/vim/_meta/vimfn.lua | 2 ++ 2 files changed, 4 insertions(+) (limited to 'runtime') diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index aa31c59ab2..8916c434e7 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -9039,6 +9039,8 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()* clear the list: >vim call setqflist([], 'r') < + 'u' Like 'r', but tries to preserve the current selection + in the quickfix list. 'f' All the quickfix lists in the quickfix stack are freed. diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index 81e7070ac0..f588162112 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -8229,6 +8229,8 @@ function vim.fn.setpos(expr, list) end --- clear the list: >vim --- call setqflist([], 'r') --- < +--- 'u' Like 'r', but tries to preserve the current selection +--- in the quickfix list. --- 'f' All the quickfix lists in the quickfix stack are --- freed. --- -- cgit From ea5b748f243883b9890e465d4abef598fe2b07fc Mon Sep 17 00:00:00 2001 From: xudyang1 <61672396+xudyang1@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:34:50 -0400 Subject: feat(man.vim): "q" always closes window #30819 --- runtime/doc/news.txt | 4 ++++ runtime/ftplugin/man.vim | 6 +----- runtime/lua/man.lua | 1 - 3 files changed, 5 insertions(+), 6 deletions(-) (limited to 'runtime') diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 5c93128f25..4db9188f90 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -269,6 +269,10 @@ These existing features changed their behavior. • |vim.on_key()| callbacks won't be invoked recursively when a callback itself consumes input. +• "q" in man pages now uses |CTRL-W_q| instead of |CTRL-W_c| to close the + current window, and it no longer throws |E444| when there is only one window + on the screen. Global variable `vim.g.pager` is removed. + ============================================================================== REMOVED FEATURES *news-removed* diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim index 37667477f3..5ea36c32ce 100644 --- a/runtime/ftplugin/man.vim +++ b/runtime/ftplugin/man.vim @@ -26,11 +26,7 @@ if !exists('g:no_plugin_maps') && !exists('g:no_man_maps') nnoremap k gk nnoremap gO :lua require'man'.show_toc() nnoremap <2-LeftMouse> :Man - if get(g:, 'pager') - nnoremap q :lcloseq - else - nnoremap q :lclosec - endif + nnoremap q :lcloseq endif if get(g:, 'ft_man_folding_enable', 0) diff --git a/runtime/lua/man.lua b/runtime/lua/man.lua index fce8f89be8..6f60bf1cef 100644 --- a/runtime/lua/man.lua +++ b/runtime/lua/man.lua @@ -675,7 +675,6 @@ function M.init_pager() vim.cmd.file({ 'man://' .. fn.fnameescape(ref):lower(), mods = { silent = true } }) end - vim.g.pager = true set_options() end -- cgit From 82b02ae2f2af439a8c678ed6b55a43121055f279 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 12 Oct 2024 11:23:31 +0200 Subject: fix(runtime): clean up one-off scripts Problem: Some runtime files no longer spark joy. Solution: Kondo the place up. Still sparks _some_ joy (moved to new `runtime/scripts` folder): * `macros/less.*` * `mswin.vim` * `tools/emoji_list.lua` No longer sparks joy (removed): * `macmap.vim` (gvimrc file; not useful in Nvim) * `tools/check_colors.vim` (no longer useful with new default colorscheme and treesitter) * `macros/editexisting.vim` (throws error on current Nvim) * `macros/justify.vim` (obsolete shim for `packadd! justify`) * `macros/matchit.vim` (same) * `macros/shellmenu.vim` (same) * `macros/swapmous.vim` (same) --- runtime/CMakeLists.txt | 2 +- runtime/autoload/README.txt | 2 +- runtime/autoload/paste.vim | 2 +- runtime/colors/README.txt | 3 - runtime/doc/builtin.txt | 2 +- runtime/doc/various.txt | 4 +- runtime/doc/vim_diff.txt | 4 + runtime/ftplugin/ada.vim | 2 +- runtime/ftplugin/erlang.vim | 2 +- runtime/ftplugin/plaintex.vim | 2 +- runtime/ftplugin/spec.vim | 2 +- runtime/ftplugin/tex.vim | 2 +- runtime/lua/vim/_meta/vimfn.lua | 2 +- runtime/macmap.vim | 75 -------- runtime/macros/editexisting.vim | 119 ------------ runtime/macros/justify.vim | 3 - runtime/macros/less.bat | 10 - runtime/macros/less.sh | 26 --- runtime/macros/less.vim | 407 ---------------------------------------- runtime/macros/matchit.vim | 2 - runtime/macros/shellmenu.vim | 3 - runtime/macros/swapmous.vim | 3 - runtime/mswin.vim | 149 --------------- runtime/scripts/emoji_list.lua | 19 ++ runtime/scripts/less.bat | 10 + runtime/scripts/less.sh | 26 +++ runtime/scripts/less.vim | 407 ++++++++++++++++++++++++++++++++++++++++ runtime/scripts/mswin.vim | 149 +++++++++++++++ runtime/tools/check_colors.vim | 252 ------------------------- runtime/tools/emoji_list.lua | 19 -- 30 files changed, 627 insertions(+), 1083 deletions(-) delete mode 100644 runtime/macmap.vim delete mode 100644 runtime/macros/editexisting.vim delete mode 100644 runtime/macros/justify.vim delete mode 100644 runtime/macros/less.bat delete mode 100755 runtime/macros/less.sh delete mode 100644 runtime/macros/less.vim delete mode 100644 runtime/macros/matchit.vim delete mode 100644 runtime/macros/shellmenu.vim delete mode 100644 runtime/macros/swapmous.vim delete mode 100644 runtime/mswin.vim create mode 100644 runtime/scripts/emoji_list.lua create mode 100644 runtime/scripts/less.bat create mode 100755 runtime/scripts/less.sh create mode 100644 runtime/scripts/less.vim create mode 100644 runtime/scripts/mswin.vim delete mode 100644 runtime/tools/check_colors.vim delete mode 100644 runtime/tools/emoji_list.lua (limited to 'runtime') 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 " 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()"} let paste#paste_cmd['v'] = '"-c' . 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 = '\%(\vim --- call setcellwidths([]) --- ---- -" 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 -" in mappings. - -nnoremap :confirm enew -vmap gv -imap -cmap -omap - -nnoremap :browse confirm e -vmap gv -imap -cmap -omap - -nnoremap :if winheight(2) < 0 confirm enew else confirm close endif -vmap gv -imap -cmap -omap - -nnoremap :if expand("%") == ""browse confirm w elseconfirm wendif -vmap gv -imap -cmap -omap - -nnoremap :browse confirm saveas -vmap gv -imap -cmap -omap - -" From the Edit menu of SimpleText: -nnoremap u -vmap gv -imap -cmap -omap - -vnoremap "+x - -vnoremap "+y - -cnoremap - -nnoremap "+gP -cnoremap + -execute 'vnoremap