i3-vim-syntax/syntax/i3.vim

127 lines
5.5 KiB
VimL
Raw Normal View History

2012-10-16 14:13:21 -04:00
" Vim syntax file
" Language: i3-wm config file
" Maintainer: Emanuel Guével
" Latest Revision: 16 October 2012
if exists("b:current_syntax")
finish
endif
" Symbols
syn match i3Operators "+\|→"
syn match i3ChainDelimiter ";"
syn match i3Var "\$\w\+"
" Key modifiers
2014-03-11 17:24:11 -04:00
syn keyword i3KeyModifier Shift Control Ctrl Mod1 Mod2 Mod3 Mod4 Mod5 Mode_switch
2012-10-16 14:13:21 -04:00
" Strings
syn region i3SimpleString keepend start='[^ \t]' end='$\|;' contained contains=i3ChainDelimiter,i3Var
syn match i3QuotedString '"[^"]\+"' contained
syn cluster i3String contains=i3SimpleString,i3QuotedString
" Config commands
2014-06-16 15:06:41 -04:00
syn keyword i3ConfigCommand bind bindcode bindsym assign new_window popup_during_fullscreen font floating_modifier default_orientation workspace_layout for_window focus_follows_mouse bar position colors output tray_output workspace_buttons workspace_auto_back_and_forth binding_mode_indicator debuglog floating_minimum_size floating_maximum_size force_focus_wrapping force_xinerama force_display_urgency_hint hidden_state modifier new_float shmlog socket_path verbose mouse_warping strip_workspace_numbers
2014-03-11 17:24:11 -04:00
syn match i3IpcSocket "ipc[-_]socket" nextgroup=@i3String skipwhite
2012-10-16 14:13:21 -04:00
" Command keywords
2014-03-11 17:24:11 -04:00
syn keyword i3Command exit reload restart kill fullscreen global layout border focus move open split append_layout mark unmark resize grow shrink show nop rename
2014-10-19 06:49:51 -04:00
syn keyword i3Param 1pixel default stacked tabbed normal none tiling stacking floating enable disable up down horizontal vertical auto up down left right parent child px or ppt leave_fullscreen toggle mode_toggle scratchpad width height top bottom client hide primary yes all active window container to absolute center on off x ms h v smart ignore pixel splith splitv output true
2014-03-11 17:24:11 -04:00
syn match i3DashedParam '--release' skipwhite
syn match i3NoStartupId '--no-startup-id' contained
syn keyword i3WsSpecialParam next prev next_on_output prev_on_output back_and_forth current number
syn keyword i3BordersSpecialParam none vertical horizontal both
syn keyword i3ModeParam dock hide invisible skipwhite
2012-10-16 14:13:21 -04:00
2014-10-19 06:49:51 -04:00
" these are not keywords but we add them for consistency
syn keyword i3PseudoParam no false inactive
2012-10-16 14:13:21 -04:00
" Exec commands
2014-03-11 17:24:11 -04:00
syn region i3ExecCommand keepend start='[^ \t]' end='$\|;' contained contains=i3ChainDelimiter,i3Var,i3NoStartupId
2012-10-16 14:13:21 -04:00
syn match i3QuotedExecCommand '"[^"]\+"' contained
2014-03-11 17:24:11 -04:00
syn keyword i3ExecKeyword exec exec_always i3bar_command nextgroup=i3QuotedExecCommand,i3ExecCommand skipwhite
2012-10-16 14:13:21 -04:00
" Status command
syn match i3StatusCommand ".*$" contained
syn keyword i3StatusCommandKeyword status_command nextgroup=i3StatusCommand skipwhite
" Font statement
syn keyword i3FontStatement font nextgroup=@i3String skipwhite
" Set statement
syn match i3SetVar "\$\w\+" contained nextgroup=@i3String skipwhite
syn keyword i3SetKeyword set nextgroup=i3SetVar skipwhite
" Workspaces
syn keyword i3WsKeyword workspace nextgroup=i3WsSpecialParam,@i3String skipwhite
2014-03-11 17:24:11 -04:00
" Hide edge borders
syn keyword i3BordersConfigCommand hide_edge_borders nextgroup=i3BordersSpecialParam skipwhite
2012-10-16 14:13:21 -04:00
" Mode
2014-03-11 17:24:11 -04:00
syn keyword i3ModeKeyword mode nextgroup=i3ModeParam,@i3String skipwhite
2012-10-16 14:13:21 -04:00
" Comments
syn keyword i3Todo contained TODO FIXME XXX NOTE
syn match i3Comment "^\s*#.*$" contains=i3Todo
2012-10-16 14:13:21 -04:00
" Error (at end of line)
syn match i3Error ".*$" contained
" Hex color code
syn match i3ColorLast "#[0-9a-fA-F]\{6\}" contained nextgroup=i3Error skipwhite
syn match i3Color2nd "#[0-9a-fA-F]\{6\}" contained nextgroup=i3ColorLast skipwhite
syn match i3Color1st "#[0-9a-fA-F]\{6\}" contained nextgroup=i3Color2nd skipwhite
2014-03-11 17:24:11 -04:00
syn match i3ColorDef1 "client\.background\|statusline\|background\|separator\|statusline" nextgroup=i3ColorLast skipwhite
2012-10-16 14:13:21 -04:00
syn match i3ColorDef3 "client\.\(focused_inactive\|focused\|unfocused\|urgent\)\|inactive_workspace\|urgent_workspace\|focused_workspace\|active_workspace" nextgroup=i3Color1st skipwhite
highlight link i3ChainDelimiter Operator
highlight link i3Operators Operator
highlight link i3ExecCommand Special
highlight link i3QuotedExecCommand Special
highlight link i3StatusCommand Special
highlight link i3Param Constant
2014-10-19 06:49:51 -04:00
highlight link i3PseudoParam Constant
2014-03-11 17:24:11 -04:00
highlight link i3DashedParam Constant
highlight link i3NoStartupId Constant
2012-10-16 14:13:21 -04:00
highlight link i3Color1st Constant
highlight link i3Color2nd Constant
highlight link i3ColorLast Constant
highlight link i3WsSpecialParam Constant
2014-03-11 17:24:11 -04:00
highlight link i3BordersSpecialParam Constant
highlight link i3ModeParam Constant
2012-10-16 14:13:21 -04:00
highlight link i3Var Identifier
highlight link i3SetVar Identifier
highlight link i3KeyModifier Function
highlight link i3SimpleString String
highlight link i3QuotedString String
highlight link i3WsName String
highlight link i3QuotedWsName String
highlight link i3SetValue String
highlight link i3Font String
highlight link i3ExecKeyword Keyword
highlight link i3Command Keyword
highlight link i3WsKeyword Keyword
highlight link i3ColorDef1 Define
highlight link i3ColorDef3 Define
highlight link i3ConfigCommand Define
highlight link i3IpcSocket Define
highlight link i3SetKeyword Define
highlight link i3ModeKeyword Define
highlight link i3FontStatement Define
highlight link i3StatusCommandKeyword Define
2014-03-11 17:24:11 -04:00
highlight link i3BordersConfigCommand Define
2012-10-16 14:13:21 -04:00
highlight link i3Todo Todo
highlight link i3Comment Comment
highlight link i3Error Error