0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

runtime(tmux): Update tmux syntax rules (#13708)

Signed-off-by: Eric Pruitt <eric.pruitt@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Eric Pruitt 2023-12-18 00:03:40 -08:00 committed by GitHub
parent 2f05ad162e
commit b42703a662
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,5 +1,5 @@
" Language: tmux(1) configuration file " Language: tmux(1) configuration file
" Version: 3.3-rc (git-964deae4) " Version: 3.3a (git-e7c829fc)
" URL: https://github.com/ericpruitt/tmux.vim/ " URL: https://github.com/ericpruitt/tmux.vim/
" Maintainer: Eric Pruitt <eric.pruitt@gmail.com> " Maintainer: Eric Pruitt <eric.pruitt@gmail.com>
" License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause) " License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause)
@ -17,8 +17,9 @@ let b:current_syntax = "tmux"
syntax iskeyword @,48-57,_,192-255,- syntax iskeyword @,48-57,_,192-255,-
syntax case match syntax case match
syn keyword tmuxAction none any current other " The values "yes" and "no" are synonyms for "on" and "off", so they do not
syn keyword tmuxBoolean off on yes no " appear in the option table file.
syn keyword tmuxEnums yes no
syn keyword tmuxTodo FIXME NOTE TODO XXX contained syn keyword tmuxTodo FIXME NOTE TODO XXX contained
@ -27,12 +28,20 @@ syn match tmuxKey /\(C-\|M-\|\^\)\+\S\+/ display
syn match tmuxNumber /\<\d\+\>/ display syn match tmuxNumber /\<\d\+\>/ display
syn match tmuxFlags /\s-\a\+/ display syn match tmuxFlags /\s-\a\+/ display
syn match tmuxVariableExpansion /\$\({[A-Za-z_]\w*}\|[A-Za-z_]\w*\)/ display syn match tmuxVariableExpansion /\$\({[A-Za-z_]\w*}\|[A-Za-z_]\w*\)/ display
syn match tmuxControl /^\s*%\(if\|elif\|else\|endif\)\>/ syn match tmuxControl /\(^\|\s\)%\(if\|elif\|else\|endif\)\($\|\s\)/ display
syn match tmuxEscape /\\\(u\x\{4\}\|U\x\{8\}\|\o\{3\}\|[\\ernt$]\)/ display syn match tmuxEscape /\\\(u\x\{4\}\|U\x\{8\}\|\o\{3\}\|[\\ernt$]\)/ display
" Missing closing bracket.
syn match tmuxInvalidVariableExpansion /\${[^}]*$/ display
" Starts with invalid character.
syn match tmuxInvalidVariableExpansion /\${[^A-Za-z_][^}]*}/ display
syn match tmuxInvalidVariableExpansion /\$[^A-Za-z_{ \t]/ display
" Contains invalid character.
syn match tmuxInvalidVariableExpansion /\${[^}]*[^A-Za-z0-9_][^}]*}/ display
syn region tmuxComment start=/#/ skip=/\\\@<!\\$/ end=/$/ contains=tmuxTodo,@Spell syn region tmuxComment start=/#/ skip=/\\\@<!\\$/ end=/$/ contains=tmuxTodo,@Spell
syn region tmuxString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=tmuxFormatString,tmuxEscape,tmuxVariableExpansion,@Spell syn region tmuxString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=tmuxFormatString,tmuxEscape,tmuxVariableExpansion,tmuxInvalidVariableExpansion,@Spell
syn region tmuxUninterpolatedString start=+'+ skip=+\\$+ excludenl end=+'+ end='$' contains=tmuxFormatString,@Spell syn region tmuxUninterpolatedString start=+'+ skip=+\\$+ excludenl end=+'+ end='$' contains=tmuxFormatString,@Spell
" TODO: Figure out how escaping works inside of #(...) and #{...} blocks. " TODO: Figure out how escaping works inside of #(...) and #{...} blocks.
@ -43,7 +52,7 @@ syn region tmuxFormatString start=/#(/ skip=/#(.\{-})/ end=/)/ contained keepend
" At the time of this writing, the latest tmux release will parse a line " At the time of this writing, the latest tmux release will parse a line
" reading "abc=xyz set-option ..." as an assignment followed by a command " reading "abc=xyz set-option ..." as an assignment followed by a command
" hence the presence of "\s" in the "end" argument. " hence the presence of "\s" in the "end" argument.
syn region tmuxAssignment matchgroup=tmuxVariable start=/^\s*[A-Za-z_]\w*=\@=/ skip=/\\$\|\\\s/ end=/\s\|$/ contains=tmuxString,tmuxUninterpolatedString,tmuxVariableExpansion,tmuxControl,tmuxEscape syn region tmuxAssignment matchgroup=tmuxVariable start=/^\s*[A-Za-z_]\w*=\@=/ skip=/\\$\|\\\s/ end=/\s\|$/ contains=tmuxString,tmuxUninterpolatedString,tmuxVariableExpansion,tmuxControl,tmuxEscape,tmuxInvalidVariableExpansion
hi def link tmuxFormatString Identifier hi def link tmuxFormatString Identifier
hi def link tmuxAction Boolean hi def link tmuxAction Boolean
@ -51,8 +60,11 @@ hi def link tmuxBoolean Boolean
hi def link tmuxCommands Keyword hi def link tmuxCommands Keyword
hi def link tmuxControl PreCondit hi def link tmuxControl PreCondit
hi def link tmuxComment Comment hi def link tmuxComment Comment
hi def link tmuxEnums Boolean
hi def link tmuxEscape Special hi def link tmuxEscape Special
hi def link tmuxEscapeUnquoted Special hi def link tmuxEscapeUnquoted Special
hi def link tmuxInvalidVariableExpansion
\ Error
hi def link tmuxKey Special hi def link tmuxKey Special
hi def link tmuxNumber Number hi def link tmuxNumber Number
hi def link tmuxFlags Identifier hi def link tmuxFlags Identifier
@ -77,78 +89,84 @@ endif
syn keyword tmuxOptions syn keyword tmuxOptions
\ activity-action after-bind-key after-capture-pane after-copy-mode \ activity-action after-bind-key after-capture-pane after-copy-mode
\ after-display-message after-display-panes after-kill-pane \ after-display-message after-display-panes after-kill-pane after-list-buffers
\ after-list-buffers after-list-clients after-list-keys after-list-panes \ after-list-clients after-list-keys after-list-panes after-list-sessions
\ after-list-sessions after-list-windows after-load-buffer after-lock-server \ after-list-windows after-load-buffer after-lock-server after-new-session
\ after-new-session after-new-window after-paste-buffer after-pipe-pane \ after-new-window after-paste-buffer after-pipe-pane after-queue
\ after-queue after-refresh-client after-rename-session after-rename-window \ after-refresh-client after-rename-session after-rename-window
\ after-resize-pane after-resize-window after-save-buffer \ after-resize-pane after-resize-window after-save-buffer after-select-layout
\ after-select-layout after-select-pane after-select-window after-send-keys \ after-select-pane after-select-window after-send-keys after-set-buffer
\ after-set-buffer after-set-environment after-set-hook after-set-option \ after-set-environment after-set-hook after-set-option after-show-environment
\ after-show-environment after-show-messages after-show-options \ after-show-messages after-show-options after-split-window after-unbind-key
\ after-split-window after-unbind-key aggressive-resize alert-activity \ aggressive-resize alert-activity alert-bell alert-silence allow-passthrough
\ alert-bell alert-silence allow-passthrough allow-rename alternate-screen \ allow-rename alternate-screen assume-paste-time automatic-rename
\ assume-paste-time automatic-rename automatic-rename-format backspace \ automatic-rename-format backspace base-index bell-action buffer-limit
\ base-index bell-action buffer-limit client-active client-attached \ client-active client-attached client-detached client-focus-in
\ client-detached client-focus-in client-focus-out client-resized \ client-focus-out client-resized client-session-changed clock-mode-color
\ client-session-changed clock-mode-colour clock-mode-style command-alias \ clock-mode-colour clock-mode-style command-alias copy-command
\ copy-command copy-mode-current-match-style copy-mode-mark-style \ copy-mode-current-match-style copy-mode-mark-style copy-mode-match-style
\ copy-mode-match-style cursor-colour cursor-style default-command \ cursor-color cursor-colour cursor-style default-command default-shell
\ default-shell default-size default-terminal destroy-unattached \ default-size default-terminal destroy-unattached detach-on-destroy
\ detach-on-destroy display-panes-active-colour display-panes-colour \ display-panes-active-color display-panes-active-colour display-panes-color
\ display-panes-time display-time editor escape-time exit-empty \ display-panes-colour display-panes-time display-time editor escape-time
\ exit-unattached extended-keys fill-character focus-events history-file \ exit-empty exit-unattached extended-keys fill-character focus-events
\ history-limit key-table lock-after-time lock-command main-pane-height \ history-file history-limit key-table lock-after-time lock-command
\ main-pane-width message-command-style message-limit message-style \ main-pane-height main-pane-width menu-border-lines menu-border-style
\ mode-keys mode-style monitor-activity monitor-bell monitor-silence mouse \ menu-selected-style menu-style message-command-style message-limit
\ other-pane-height other-pane-width pane-active-border-style \ message-line message-style mode-keys mode-style monitor-activity monitor-bell
\ pane-base-index pane-border-format pane-border-indicators \ monitor-silence mouse other-pane-height other-pane-width
\ pane-border-lines pane-border-status pane-border-style pane-colours \ pane-active-border-style pane-base-index pane-border-format
\ pane-died pane-exited pane-focus-in pane-focus-out pane-mode-changed \ pane-border-indicators pane-border-lines pane-border-status pane-border-style
\ pane-set-clipboard pane-title-changed popup-border-lines \ pane-colors pane-colours pane-died pane-exited pane-focus-in pane-focus-out
\ pane-mode-changed pane-set-clipboard pane-title-changed popup-border-lines
\ popup-border-style popup-style prefix prefix2 prompt-history-limit \ popup-border-style popup-style prefix prefix2 prompt-history-limit
\ remain-on-exit remain-on-exit-format renumber-windows repeat-time \ remain-on-exit remain-on-exit-format renumber-windows repeat-time
\ scroll-on-clear session-closed session-created session-renamed \ scroll-on-clear session-closed session-created session-renamed
\ session-window-changed set-clipboard set-titles set-titles-string \ session-window-changed set-clipboard set-titles set-titles-string
\ silence-action status status-bg status-fg status-format status-interval \ silence-action status status-bg status-fg status-format status-interval
\ status-justify status-keys status-left status-left-length \ status-justify status-keys status-left status-left-length status-left-style
\ status-left-style status-position status-right status-right-length \ status-position status-right status-right-length status-right-style
\ status-right-style status-style synchronize-panes terminal-features \ status-style synchronize-panes terminal-features terminal-overrides
\ terminal-overrides update-environment user-keys visual-activity \ update-environment user-keys visual-activity visual-bell visual-silence
\ visual-bell visual-silence window-active-style window-layout-changed \ window-active-style window-layout-changed window-linked window-pane-changed
\ window-linked window-pane-changed window-renamed window-resized \ window-renamed window-resized window-size window-status-activity-style
\ window-size window-status-activity-style window-status-bell-style \ window-status-bell-style window-status-current-format
\ window-status-current-format window-status-current-style \ window-status-current-style window-status-format window-status-last-style
\ window-status-format window-status-last-style window-status-separator \ window-status-separator window-status-style window-style window-unlinked
\ window-status-style window-style window-unlinked word-separators \ word-separators wrap-search xterm-keys
\ wrap-search xterm-keys
syn keyword tmuxCommands syn keyword tmuxCommands
\ attach attach-session bind bind-key break-pane breakp capture-pane \ attach attach-session bind bind-key break-pane breakp capture-pane capturep
\ capturep choose-buffer choose-client choose-session choose-tree \ choose-buffer choose-client choose-session choose-tree choose-window
\ choose-window clear-history clear-prompt-history clearhist clearphist \ clear-history clear-prompt-history clearhist clearphist clock-mode
\ clock-mode command-prompt confirm confirm-before copy-mode customize-mode \ command-prompt confirm confirm-before copy-mode customize-mode delete-buffer
\ delete-buffer deleteb detach detach-client display display-menu \ deleteb detach detach-client display display-menu display-message
\ display-message display-panes display-popup displayp find-window findw has \ display-panes display-popup displayp find-window findw has has-session if
\ has-session if if-shell info join-pane joinp kill-pane kill-server \ if-shell info join-pane joinp kill-pane kill-server kill-session kill-window
\ kill-session kill-window killp killw last last-pane last-window lastp \ killp killw last last-pane last-window lastp link-window linkw list-buffers
\ link-window linkw list-buffers list-clients list-commands list-keys \ list-clients list-commands list-keys list-panes list-sessions list-windows
\ list-panes list-sessions list-windows load-buffer loadb lock lock-client \ load-buffer loadb lock lock-client lock-server lock-session lockc locks ls
\ lock-server lock-session lockc locks ls lsb lsc lscm lsk lsp lsw menu \ lsb lsc lscm lsk lsp lsw menu move-pane move-window movep movew new
\ move-pane move-window movep movew new new-session new-window neww next \ new-session new-window neww next next-layout next-window nextl paste-buffer
\ next-layout next-window nextl paste-buffer pasteb pipe-pane pipep popup \ pasteb pipe-pane pipep popup prev previous-layout previous-window prevl
\ prev previous-layout previous-window prevl refresh refresh-client rename \ refresh refresh-client rename rename-session rename-window renamew
\ rename-session rename-window renamew resize-pane resize-window resizep \ resize-pane resize-window resizep resizew respawn-pane respawn-window
\ resizew respawn-pane respawn-window respawnp respawnw rotate-window \ respawnp respawnw rotate-window rotatew run run-shell save-buffer saveb
\ rotatew run run-shell save-buffer saveb select-layout select-pane \ select-layout select-pane select-window selectl selectp selectw send
\ select-window selectl selectp selectw send send-keys send-prefix \ send-keys send-prefix server-access server-info set set-buffer
\ server-info set set-buffer set-environment set-hook set-option \ set-environment set-hook set-option set-window-option setb setenv setw show
\ set-window-option setb setenv setw show show-buffer show-environment \ show-buffer show-environment show-hooks show-messages show-options
\ show-hooks show-messages show-options show-prompt-history \ show-prompt-history show-window-options showb showenv showmsgs showphist
\ show-window-options showb showenv showmsgs showphist showw source \ showw source source-file split-pane split-window splitp splitw start
\ source-file split-pane split-window splitp splitw start start-server \ start-server suspend-client suspendc swap-pane swap-window swapp swapw
\ suspend-client suspendc swap-pane swap-window swapp swapw switch-client \ switch-client switchc unbind unbind-key unlink-window unlinkw wait wait-for
\ switchc unbind unbind-key unlink-window unlinkw wait wait-for
syn keyword tmuxEnums
\ absolute-centre all always any arrows bar blinking-bar blinking-block
\ blinking-underline block both bottom centre color colour current default
\ double emacs external failed heavy largest latest left manual next
\ no-detached none number off on other padded previous right rounded simple
\ single smallest top underline vi
let &cpo = s:original_cpo let &cpo = s:original_cpo
unlet! s:original_cpo s:bg s:i unlet! s:original_cpo s:bg s:i