blob: 8bc2a6e03c7c6e9a1e529410962a34b43a6552d5 [file] [log] [blame]
Bram Moolenaar0e6adf82021-12-16 14:41:10 +00001" Vim syntax file
2" Language: i3 config file
Bram Moolenaar2f0936c2022-01-08 21:51:59 +00003" Original Author: Mohamed Boughaba <mohamed dot bgb at gmail dot com>
4" Maintainer: Quentin Hibon (github user hiqua)
Josef Litoš62145db2023-09-11 20:12:48 +02005" Version: 0.4.22
6" Reference version (JosefLitos/i3config.vim): 4.22
Josef Litošf5356bf2023-09-12 20:20:25 +02007" Last Change: 2023-09-12
Bram Moolenaar0e6adf82021-12-16 14:41:10 +00008
9" References:
10" http://i3wm.org/docs/userguide.html#configuring
11" http://vimdoc.sourceforge.net/htmldoc/syntax.html
12"
13"
14" Quit when a syntax file was already loaded
15if exists("b:current_syntax")
16 finish
17endif
18
19scriptencoding utf-8
20
Bram Moolenaar2ecbe532022-07-29 21:36:21 +010021" Error
Josef Litoš62145db2023-09-11 20:12:48 +020022syn match i3ConfigError /.\+/
Bram Moolenaar2ecbe532022-07-29 21:36:21 +010023
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000024" Todo
25syn keyword i3ConfigTodo TODO FIXME XXX contained
26
Josef Litošf5356bf2023-09-12 20:20:25 +020027" Helper type definitions
28syn match i3ConfigSeparator /[,;]/ contained
29syn match i3ConfigParen /[{}]/ contained
30syn keyword i3ConfigBoolean yes no enabled disabled on off true false contained
31syn region i3ConfigString start=/\W\@<="/ skip=/\\"/ end=/"/ contained contains=i3ConfigShCommand,i3ConfigShDelim,i3ConfigShOper,i3ConfigShParam,i3ConfigNumber,i3ConfigVariable,i3ConfigExecAction keepend extend
32syn region i3ConfigString start=/\W\@<='/ end=/'/ contained contains=i3ConfigShCommand,i3ConfigShDelim,i3ConfigShOper,i3ConfigShParam,i3ConfigNumber,i3ConfigVariable,i3ConfigExecAction keepend extend
33syn match i3ConfigColor /#\w\{3,8}/ contained
34syn match i3ConfigNumber /[a-zA-Z_$-]\@<!-\?\d\+\w\@!/ contained
35
36" 4.1 Include directive
37syn keyword i3ConfigIncludeKeyword include contained
38syn match i3ConfigIncludeCommand /`[^`]*`/ contained contains=i3ConfigShDelim,i3ConfigShParam,i3ConfigShOper,i3ConfigShCommand
39syn match i3ConfigInclude /^include .*$/ contains=i3ConfigIncludeKeyword,i3ConfigString,i3ConfigVariable,i3ConfigIncludeCommand
40
41" 4.2 Comments
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000042syn match i3ConfigComment /^\s*#.*$/ contains=i3ConfigTodo
43
Josef Litošf5356bf2023-09-12 20:20:25 +020044" 4.3 Fonts
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000045syn keyword i3ConfigFontKeyword font contained
Josef Litošf5356bf2023-09-12 20:20:25 +020046syn match i3ConfigColonOperator /:/ contained
47syn match i3ConfigFontNamespace /\w\+:/ contained contains=i3ConfigColonOperator
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000048syn match i3ConfigFontSize /\s\=\d\+\(px\)\?\s\?$/ contained
Josef Litošf5356bf2023-09-12 20:20:25 +020049syn region i3ConfigFont start=/^\s*font / skip=/\\$/ end=/$/ contains=i3ConfigFontKeyword,i3ConfigFontNamespace,i3ConfigFontSize,i3ConfigSeparator keepend
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000050
Josef Litošf5356bf2023-09-12 20:20:25 +020051" 4.4-4.5 Keyboard/Mouse bindings
Josef Litoš62145db2023-09-11 20:12:48 +020052syn keyword i3ConfigBindKeyword bindsym bindcode contained
53syn match i3ConfigBindArgument /--\(release\|border\|whole-window\|exclude-titlebar\)/ contained
54syn match i3ConfigBindModifier /+/ contained
55syn match i3ConfigBindModkey /Ctrl\|Shift\|Mod[1-5]/ contained
56syn match i3ConfigBindCombo /[$a-zA-Z0-9_+]\+ / contained contains=i3ConfigBindModifier,i3ConfigVariable,i3ConfigBindModkey
57syn match i3ConfigBindComboLine /bind\(sym\|code\)\( --[a-z-]\+\)* [$a-zA-Z0-9_+]\+ / contained contains=i3ConfigBindKeyword,i3ConfigBindArgument,i3ConfigBindCombo
Josef Litošf5356bf2023-09-12 20:20:25 +020058syn region i3ConfigBind start=/^\s*bind\(sym\|code\) / skip=/\\$/ end=/$/ contains=i3ConfigBindComboLine,i3ConfigCriteria,i3ConfigAction,i3ConfigSeparator,i3ConfigActionKeyword,i3ConfigOption,i3ConfigString,i3ConfigNumber,i3ConfigVariable,i3ConfigBoolean keepend
Josef Litoš62145db2023-09-11 20:12:48 +020059
Josef Litošf5356bf2023-09-12 20:20:25 +020060" 4.6 Binding modes
61syn region i3ConfigKeyword start=/^mode\( --pango_markup\)\? \([^'" {]\+\|'[^']\+'\|".\+"\)\s\+{$/ end=/^\s*}$/ contains=i3ConfigShParam,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigNumber,i3ConfigParen,i3ConfigVariable fold keepend extend
Josef Litoš62145db2023-09-11 20:12:48 +020062
Josef Litošf5356bf2023-09-12 20:20:25 +020063" 4.7 Floating modifier
64syn match i3ConfigKeyword /^floating_modifier [$a-zA-Z0-9+]\+$/ contains=i3ConfigVariable,i3ConfigBindModkey
65
66" 4.8 Floating window size
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000067syn keyword i3ConfigSizeSpecial x contained
Josef Litoš62145db2023-09-11 20:12:48 +020068syn match i3ConfigSize / -\?\d\+ x -\?\d\+/ contained contains=i3ConfigSizeSpecial,i3ConfigNumber
Josef Litošf5356bf2023-09-12 20:20:25 +020069syn match i3ConfigKeyword /^floating_\(maximum\|minimum\)_size .*$/ contains=i3ConfigSize
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000070
Josef Litošf5356bf2023-09-12 20:20:25 +020071" 4.9 Orientation
72syn keyword i3ConfigOrientationOpts vertical horizontal auto contained
73syn match i3ConfigKeyword /^default_orientation \w*$/ contains=i3ConfigOrientationOpts
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000074
Josef Litošf5356bf2023-09-12 20:20:25 +020075" 4.10 Layout mode
76syn keyword i3ConfigWorkspaceLayoutOpts default stacking tabbed contained
77syn match i3ConfigKeyword /^workspace_layout \w*$/ contains=i3ConfigWorkspaceLayoutOpts
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000078
Josef Litošf5356bf2023-09-12 20:20:25 +020079" 4.11 Title alignment
80syn keyword i3ConfigTitleAlignOpts left center right contained
81syn match i3ConfigKeyword /^title_align .*$/ contains=i3ConfigTitleAlignOpts
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000082
Josef Litošf5356bf2023-09-12 20:20:25 +020083" 4.12 Border style
84syn keyword i3ConfigBorderOpts none normal pixel contained
85syn match i3ConfigKeyword /^default\(_floating\)\?_border .*$/ contains=i3ConfigBorderOpts,i3ConfigNumber,i3ConfigVariable
Josef Litoš62145db2023-09-11 20:12:48 +020086
Josef Litošf5356bf2023-09-12 20:20:25 +020087" 4.13 Hide edge borders
88syn keyword i3ConfigEdgeOpts none vertical horizontal both smart smart_no_gaps contained
89syn match i3ConfigKeyword /^hide_edge_borders \w\+$/ contains=i3ConfigEdgeOpts
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000090
Josef Litošf5356bf2023-09-12 20:20:25 +020091" 4.14 Smart Borders
92syn keyword i3ConfigSmartBorderOpts no_gaps contained
93syn match i3ConfigKeyword /^smart_borders \(on\|off\|no_gaps\)$/ contains=i3ConfigSmartBorderOpts,i3ConfigBoolean
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000094
Josef Litošf5356bf2023-09-12 20:20:25 +020095" 4.15 Arbitrary commands
96syn keyword i3ConfigForWindowKeyword for_window contained
97syn region i3ConfigForWindow start=/^for_window / end=/$/ contains=i3ConfigForWindowKeyword,i3ConfigCriteria keepend
Bram Moolenaar0e6adf82021-12-16 14:41:10 +000098
Josef Litošf5356bf2023-09-12 20:20:25 +020099" 4.16 No opening focus
100syn match i3ConfigKeyword /^no_focus .*$/ contains=i3ConfigCondition
101
102" 4.17 Variables
103syn match i3ConfigVariable /\$[A-Z0-9a-z_:|[\]-]\+/
104syn keyword i3ConfigSetKeyword set contained
105syn match i3ConfigSet /^set \$.*$/ contains=i3ConfigVariable,i3ConfigSetKeyword,i3ConfigColor,i3ConfigString,i3ConfigNoStartupId,i3ConfigNumber,i3ConfigShCommand,i3ConfigShDelim,i3ConfigShParam,i3ConfigShOper
106
107" 4.18 X resources
108syn keyword i3ConfigResourceKeyword set_from_resource contained
109syn match i3ConfigResource /^set_from_resource\s\+.*$/ contains=i3ConfigResourceKeyword,i3ConfigCondition,i3ConfigColor,i3ConfigVariable,i3ConfigString,i3ConfigNumber
110
111" 4.19 Assign clients to workspaces
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000112syn keyword i3ConfigAssignKeyword assign contained
113syn match i3ConfigAssignSpecial /→/ contained
Josef Litošf5356bf2023-09-12 20:20:25 +0200114syn match i3ConfigAssign /^assign .*$/ contains=i3ConfigAssignKeyword,i3ConfigAssignSpecial,i3ConfigCondition,i3ConfigVariable,i3ConfigString,i3ConfigNumber
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000115
Josef Litošf5356bf2023-09-12 20:20:25 +0200116" 4.20 Executing shell commands
Josef Litoš62145db2023-09-11 20:12:48 +0200117syn keyword i3ConfigExecKeyword exec contained
118syn keyword i3ConfigExecAlwaysKeyword exec_always contained
Josef Litošf5356bf2023-09-12 20:20:25 +0200119syn match i3ConfigShCmdDelim /\$(/ contained
Josef Litoš62145db2023-09-11 20:12:48 +0200120syn region i3ConfigShCommand start=/\$(/ end=/)/ contained contains=i3ConfigShCmdDelim,i3ConfigShCommand,i3ConfigShDelim,i3ConfigShOper,i3ConfigShParam,i3ConfigString,i3ConfigNumber,i3ConfigVariable keepend extend
121syn match i3ConfigShDelim /[[\]{}();`]\+/ contained
122syn match i3ConfigShOper /[<>&|+=~^*!.?]\+/ contained
123syn match i3ConfigShParam /\<-[a-zA-Z0-9_-]\+\>/ contained containedin=i3ConfigVar
Josef Litošf5356bf2023-09-12 20:20:25 +0200124syn region i3ConfigExec start=/^\s*exec\(_always\)\?\( --no-startup-id\)\? [^{]/ skip=/\\$/ end=/$/ contains=i3ConfigExecKeyword,i3ConfigExecAlwaysKeyword,i3ConfigShCommand,i3ConfigShDelim,i3ConfigShOper,i3ConfigShParam,i3ConfigNumber,i3ConfigString,i3ConfigVariable,i3ConfigExecAction keepend
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000125
Josef Litošf5356bf2023-09-12 20:20:25 +0200126" 4.21 Workspaces per output
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000127syn keyword i3ConfigWorkspaceKeyword workspace contained
Josef Litošf5356bf2023-09-12 20:20:25 +0200128syn keyword i3ConfigWorkspaceOutput output contained
129syn keyword i3ConfigWorkspaceDir prev next back_and_forth contained
130syn region i3ConfigWorkspaceLine start=/^workspace / skip=/\\$/ end=/$/ contains=i3ConfigWorkspaceKeyword,i3ConfigNumber,i3ConfigString,i3ConfigGaps,i3ConfigWorkspaceOutput,i3ConfigVariable,i3ConfigBoolean,i3ConfigSeparator keepend
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000131
Josef Litošf5356bf2023-09-12 20:20:25 +0200132" 4.22 Changing colors
133syn match i3ConfigDotOperator /\./ contained
134syn keyword i3ConfigClientOpts focused focused_inactive unfocused urgent placeholder background contained
135syn match i3ConfigKeyword /^client\..*$/ contains=i3ConfigDotOperator,i3ConfigClientOpts,i3ConfigColor,i3ConfigVariable
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000136
Josef Litošf5356bf2023-09-12 20:20:25 +0200137" 4.23 Interprocess communication
138syn match i3ConfigIpcKeyword /ipc-socket/ contained
139syn match i3ConfigIpc /^ipc-socket .*$/ contains=i3ConfigIpcKeyword
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000140
Josef Litošf5356bf2023-09-12 20:20:25 +0200141" 4.24 Focus follows mouse
142syn keyword i3ConfigFocusFollowsMouseOpts always contained
143syn match i3ConfigFocusFollowsMouse /^focus_follows_mouse \(yes\|no\|always\)$/ contains=i3ConfigBoolean,i3ConfigFocusFollowsMouseOpts
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000144
Josef Litošf5356bf2023-09-12 20:20:25 +0200145" 4.25 Mouse warping
146syn keyword i3ConfigMouseWarpingOpts output container none contained
147syn match i3ConfigMouseWarping /^mouse_warping \w*$/ contains=i3ConfigMouseWarpingOpts
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000148
Josef Litošf5356bf2023-09-12 20:20:25 +0200149" 4.26 Popups while fullscreen
150syn keyword i3ConfigPopupFullscreenOpts smart ignore leave_fullscreen contained
151syn match i3ConfigPopupFullscreen /^popup_during_fullscreen \w*$/ contains=i3ConfigPopupFullscreenOpts
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000152
Josef Litošf5356bf2023-09-12 20:20:25 +0200153" 4.27 Focus wrapping
154syn keyword i3ConfigFocusWrappingOpts force workspace contained
155syn match i3ConfigFocusWrapping /^focus_wrapping \(yes\|no\|force\|workspace\)$/ contains=i3ConfigBoolean,i3ConfigFocusWrappingOpts
Josef Litoš62145db2023-09-11 20:12:48 +0200156
Josef Litošf5356bf2023-09-12 20:20:25 +0200157" 4.28 Forcing Xinerama
158syn match i3ConfigForceXinerama /^force_xinerama \(yes\|no\)$/ contains=i3ConfigBoolean
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000159
Josef Litošf5356bf2023-09-12 20:20:25 +0200160" 4.29 Automatic workspace back-and-forth
161syn match i3ConfigAutomaticSwitch /^workspace_auto_back_and_forth \(yes\|no\)$/ contains=i3ConfigBoolean
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000162
Josef Litošf5356bf2023-09-12 20:20:25 +0200163" 4.30 Delay urgency hint
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000164syn keyword i3ConfigTimeUnit ms contained
Josef Litošf5356bf2023-09-12 20:20:25 +0200165syn match i3ConfigDelayUrgency /^force_display_urgency_hint \d\+ ms$/ contains=i3ConfigBoolean,i3ConfigNumber,i3ConfigTimeUnit
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000166
Josef Litošf5356bf2023-09-12 20:20:25 +0200167" 4.31 Focus on window activation
168syn keyword i3ConfigFocusOnActivationOpts smart urgent focus none contained
169syn match i3ConfigFocusOnActivation /^focus_on_window_activation .*$/ contains=i3ConfigFocusOnActivationKeyword
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000170
Josef Litošf5356bf2023-09-12 20:20:25 +0200171" 4.32 Show marks in title
172syn match i3ConfigShowMarks /^show_marks \(yes\|no\)$/ contains=i3ConfigBoolean
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000173
Josef Litošf5356bf2023-09-12 20:20:25 +0200174" 4.34 Tiling drag
175syn keyword i3ConfigTilingDragOpts modifier titlebar contained
176syn match i3ConfigTilingDrag /^tiling_drag\( off\|\( modifier\| titlebar\)\{1,2\}\)$/ contains=i3ConfigTilingOpts,i3ConfigBoolean
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000177
Josef Litošf5356bf2023-09-12 20:20:25 +0200178" 4.35 Gaps
179syn keyword i3ConfigGapsOpts inner outer horizontal vertical left right top bottom current all set plus minus toggle contained
180syn region i3ConfigGaps start=/gaps/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=i3ConfigGapsOpts,i3ConfigNumber,i3ConfigVariable,i3ConfigSeparator keepend
181syn match i3ConfigGapStyleLine /^gaps .*$/ contains=i3ConfigGaps
182syn keyword i3ConfigSmartGapOpts inverse_outer contained
183syn match i3ConfigSmartGap /^smart_gaps \(on\|off\|inverse_outer\)$/ contains=i3ConfigSmartGapOpts,i3ConfigBoolean
Josef Litoš62145db2023-09-11 20:12:48 +0200184
Josef Litošf5356bf2023-09-12 20:20:25 +0200185" 5 Configuring bar
186syn match i3ConfigBarModifier /^\s\+modifier [^ ]\+$/ contained contains=i3ConfigBindModifier,i3ConfigVariable,i3ConfigBindModkey
187syn keyword i3ConfigBarOpts bar i3bar_command status_command mode hidden_state id position output tray_output tray_padding font separator_symbol workspace_buttons workspace_min_width strip_workspace_numbers strip_workspace_name binding_mode_indicator padding contained
188syn region i3ConfigBarBlock start=/^bar {$/ end=/^}$/ contains=i3ConfigBarOpts,i3ConfigBarModifier,i3ConfigBind,i3ConfigString,i3ConfigComment,i3ConfigFont,i3ConfigBoolean,i3ConfigNumber,i3ConfigParen,i3ConfigColor,i3ConfigVariable,i3ConfigColorsBlock fold keepend extend
189
190" 5.16 Color block
191syn match i3ConfigColorsOpts /\(focused_\)\?\(background\|statusline\|separator\)\|\(focused\|active\|inactive\|urgent\)_workspace\|binding_mode/ contained
192syn region i3ConfigColorsBlock start=/^\s\+colors {$/ end=/^\s\+}$/ contained contains=i3ConfigColorsOpts,i3ConfigColor,i3ConfigVariable,i3ConfigComment,i3ConfigParen fold keepend extend
193
194" 6.0 Criteria-based commands
195syn match i3ConfigConditionProp /\w\+\(-\w\+\)*/ contained
196syn match i3ConfigConditionText /[^[ ]\+=/ contained contains=i3ConfigConditionProp,i3ConfigShOper
197syn keyword i3ConfigConditionFocused __focused__ contained
198syn region i3ConfigCondition start=/\[/ end=/\]/ contained contains=i3ConfigConditionText,i3ConfigShDelim,i3ConfigNumber,i3ConfigString,i3ConfigConditionFocused keepend extend
199syn region i3ConfigCriteria start=/\[/ skip=/\\$/ end=/\(;\|$\)/ contained contains=i3ConfigCondition,i3ConfigAction,i3ConfigActionKeyword,i3ConfigOption,i3ConfigBoolean,i3ConfigNumber,i3ConfigVariable,i3ConfigSeparator keepend
200
201" 6.1 Actions through shell
202syn match i3ConfigExecActionKeyword /i3-msg/ contained
203syn region i3ConfigExecAction start=/[a-z3-]\+msg '/ skip=/\\$\| '/ end=/'/ contained contains=i3ConfigExecActionKeyword,i3ConfigShCommand,i3ConfigNumber,i3ConfigShOper,i3ConfigCriteria,i3ConfigAction,i3ConfigActionKeyword,i3ConfigOption,i3ConfigVariable keepend extend
204syn region i3ConfigExecAction start=/[a-z3-]\+msg "/ skip=/\\$\| "/ end=/"/ contained contains=i3ConfigExecActionKeyword,i3ConfigShCommand,i3ConfigNumber,i3ConfigShOper,i3ConfigCriteria,i3ConfigAction,i3ConfigActionKeyword,i3ConfigOption,i3ConfigVariable keepend extend
205syn region i3ConfigExecAction start=/[a-z3-]\+msg\( ['"-]\)\@!/ skip=/\\$/ end=/\([&|;})'"]\|$\)/ contained contains=i3ConfigExecActionKeyword,i3ConfigShCommand,i3ConfigNumber,i3ConfigShOper,i3ConfigCriteria,i3ConfigAction,i3ConfigActionKeyword,i3ConfigOption,i3ConfigVariable keepend
206" 6.1 Executing applications (4.20)
207syn region i3ConfigAction start=/exec/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=i3ConfigExecKeyword,i3ConfigShCommand,i3ConfigShDelim,i3ConfigShOper,i3ConfigShParam,i3ConfigNumber,i3ConfigString,i3ConfigVariable,i3ConfigSeparator keepend
208
209" 6.3 Manipulating layout
210syn keyword i3ConfigLayoutKeyword layout contained
211syn keyword i3ConfigLayoutOpts default tabbed stacking splitv splith toggle split all contained
212syn region i3ConfigAction start=/layout/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=i3ConfigLayoutKeyword,i3ConfigLayoutOpts,i3ConfigSeparator keepend
213
214" 6.4 Focusing containers
215syn keyword i3ConfigFocusKeyword focus contained
216syn keyword i3ConfigFocusOpts left right up down parent child next prev sibling floating tiling mode_toggle contained
217syn keyword i3ConfigFocusOutputOpts left right down up current primary nonprimary next prev contained
218syn region i3ConfigFocusOutput start=/ output / skip=/\\$/ end=/\([,;]\|$\)/ contained contains=i3ConfigMoveType,i3ConfigWorkspaceOutput,i3ConfigFocusOutputOpts,i3ConfigString,i3ConfigNumber,i3ConfigSeparator keepend
219syn match i3ConfigFocusOutputLine /^focus output .*$/ contains=i3ConfigFocusKeyword,i3ConfigFocusOutput
220syn region i3ConfigAction start=/focus/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=i3ConfigFocusKeyword,i3ConfigFocusOpts,i3ConfigFocusOutput,i3ConfigString,i3ConfigSeparator keepend
221
222" 6.8 Focusing workspaces (4.21)
223syn region i3ConfigAction start=/workspace / skip=/\\$/ end=/\([,;]\|$\)/ contained contains=i3ConfigWorkspaceKeyword,i3ConfigWorkspaceDir,i3ConfigNumber,i3ConfigString,i3ConfigGaps,i3ConfigWorkspaceOutput,i3ConfigVariable,i3ConfigBoolean,i3ConfigSeparator keepend
224
225" 6.9-6.11 Moving containers
226syn keyword i3ConfigMoveKeyword move contained
227syn keyword i3ConfigMoveDir left right down up position absolute center to contained
228syn keyword i3ConfigMoveType window container workspace output mark mouse scratchpad contained
229syn match i3ConfigUnit / px\| ppt/ contained
230syn region i3ConfigAction start=/move/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=i3ConfigMoveKeyword,i3ConfigMoveDir,i3ConfigMoveType,i3ConfigWorkspaceDir,i3ConfigUnit,i3ConfigNumber,i3ConfigVariable,i3ConfigSeparator keepend
231
232" 6.12 Resizing containers/windows
233syn keyword i3ConfigResizeKeyword resize contained
234syn keyword i3ConfigResizeOpts grow shrink up down left right set width height or contained
235syn region i3ConfigAction start=/resize/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=i3ConfigResizeKeyword,i3ConfigResizeOpts,i3ConfigNumber,i3ConfigUnit,i3ConfigSeparator keepend
236
237" 6.14 VIM-like marks
238syn keyword i3ConfigMarkKeyword mark contained
239syn match i3ConfigMark /mark\( --\(add\|replace\)\( --toggle\)\?\)\?/ contained contains=i3ConfigMarkKeyword
240syn region i3ConfigAction start=/\<mark/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=i3ConfigMark,i3ConfigNumber,i3ConfigString,i3ConfigSeparator keepend
241
242" 6.24 Changing gaps (4.35)
243syn region i3ConfigAction start=/gaps/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=i3ConfigGaps keepend
244
245" Commands useable in keybinds
246syn keyword i3ConfigActionKeyword mode append_layout kill open fullscreen sticky split floating swap rename unmark show_marks title_window_icon title_format border restart reload exit scratchpad nop bar contained
247syn keyword i3ConfigOption enable disable toggle key restore current horizontal vertical auto none normal pixel show container with id con_id contained
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000248
249" Define the highlighting.
Bram Moolenaar2ecbe532022-07-29 21:36:21 +0100250hi def link i3ConfigError Error
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000251hi def link i3ConfigTodo Todo
Josef Litošf5356bf2023-09-12 20:20:25 +0200252hi def link i3ConfigKeyword Keyword
253hi def link i3ConfigCommand Statement
Josef Litoš62145db2023-09-11 20:12:48 +0200254hi def link i3ConfigOperator Operator
Josef Litošf5356bf2023-09-12 20:20:25 +0200255hi def link i3ConfigSeparator i3ConfigOperator
Josef Litoš62145db2023-09-11 20:12:48 +0200256hi def link i3ConfigParen Delimiter
Josef Litoš62145db2023-09-11 20:12:48 +0200257hi def link i3ConfigBoolean Boolean
Josef Litošf5356bf2023-09-12 20:20:25 +0200258hi def link i3ConfigString String
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000259hi def link i3ConfigColor Constant
Josef Litošf5356bf2023-09-12 20:20:25 +0200260hi def link i3ConfigNumber Number
Josef Litoš62145db2023-09-11 20:12:48 +0200261hi def link i3ConfigIncludeKeyword i3ConfigKeyword
Josef Litošf5356bf2023-09-12 20:20:25 +0200262hi def link i3ConfigInclude i3ConfigString
263hi def link i3ConfigComment Comment
264hi def link i3ConfigFontKeyword i3ConfigKeyword
265hi def link i3ConfigColonOperator i3ConfigOperator
266hi def link i3ConfigFontNamespace i3ConfigOption
267hi def link i3ConfigFontSize i3ConfigNumber
268hi def link i3ConfigFont i3ConfigString
Josef Litoš62145db2023-09-11 20:12:48 +0200269hi def link i3ConfigBindKeyword i3ConfigKeyword
Josef Litošf5356bf2023-09-12 20:20:25 +0200270hi def link i3ConfigBindArgument i3ConfigShParam
271hi def link i3ConfigBindModifier i3ConfigOperator
Josef Litoš62145db2023-09-11 20:12:48 +0200272hi def link i3ConfigBindModkey Special
273hi def link i3ConfigBindCombo SpecialChar
Josef Litoš62145db2023-09-11 20:12:48 +0200274hi def link i3ConfigSizeSpecial i3ConfigOperator
Josef Litošf5356bf2023-09-12 20:20:25 +0200275hi def link i3ConfigOrientationOpts i3ConfigOption
276hi def link i3ConfigWorkspaceLayoutOpts i3ConfigOption
277hi def link i3ConfigTitleAlignOpts i3ConfigOption
278hi def link i3ConfigBorderOpts i3ConfigOption
279hi def link i3ConfigEdgeOpts i3ConfigOption
280hi def link i3ConfigSmartBorderOpts i3ConfigOption
281hi def link i3ConfigForWindowKeyword i3ConfigKeyword
282hi def link i3ConfigVariable Variable
283hi def link i3ConfigSetKeyword i3ConfigKeyword
284hi def link i3ConfigResourceKeyword i3ConfigKeyword
285hi def link i3ConfigResource i3ConfigString
Josef Litoš62145db2023-09-11 20:12:48 +0200286hi def link i3ConfigAssignKeyword i3ConfigKeyword
287hi def link i3ConfigAssignSpecial i3ConfigOption
Josef Litošf5356bf2023-09-12 20:20:25 +0200288hi def link i3ConfigExecKeyword i3ConfigCommand
289hi def link i3ConfigExecAlwaysKeyword i3ConfigKeyword
Josef Litoš62145db2023-09-11 20:12:48 +0200290hi def link i3ConfigShParam PreProc
291hi def link i3ConfigShDelim Delimiter
292hi def link i3ConfigShOper Operator
293hi def link i3ConfigShCmdDelim i3ConfigShDelim
294hi def link i3ConfigShCommand Normal
Josef Litoš62145db2023-09-11 20:12:48 +0200295hi def link i3ConfigWorkspaceKeyword i3ConfigCommand
Josef Litošf5356bf2023-09-12 20:20:25 +0200296hi def link i3ConfigWorkspaceOutput i3ConfigOption
297hi def link i3ConfigWorkspaceDir i3ConfigOption
298hi def link i3ConfigDotOperator i3ConfigOperator
299hi def link i3ConfigClientOpts i3ConfigOption
300hi def link i3ConfigIpcKeyword i3ConfigKeyword
301hi def link i3ConfigIpc i3ConfigString
302hi def link i3ConfigFocusFollowsMouseOpts i3ConfigOption
303hi def link i3ConfigFocusFollowsMouse i3ConfigKeyword
304hi def link i3ConfigMouseWarpingOpts i3ConfigOption
305hi def link i3ConfigMouseWarping i3ConfigKeyword
306hi def link i3ConfigPopupFullscreenOpts i3ConfigOption
307hi def link i3ConfigPopupFullscreen i3ConfigKeyword
308hi def link i3ConfigFocusWrappingOpts i3ConfigOption
309hi def link i3ConfigFocusWrapping i3ConfigKeyword
310hi def link i3ConfigForceXinerama i3ConfigKeyword
311hi def link i3ConfigAutomaticSwitch i3ConfigKeyword
Josef Litoš62145db2023-09-11 20:12:48 +0200312hi def link i3ConfigTimeUnit i3ConfigNumber
Josef Litošf5356bf2023-09-12 20:20:25 +0200313hi def link i3ConfigDelayUrgency i3ConfigKeyword
314hi def link i3ConfigFocusOnActivationOpts i3ConfigOption
315hi def link i3ConfigFocusOnActivation i3ConfigKeyword
316hi def link i3ConfigShowMarks i3ConfigCommand
317hi def link i3ConfigTilingDragOpts i3ConfigOption
318hi def link i3ConfigTilingDrag i3ConfigKeyword
319hi def link i3ConfigGapsOpts i3ConfigOption
320hi def link i3ConfigGaps i3ConfigCommand
321hi def link i3ConfigSmartGapOpts i3ConfigOption
322hi def link i3ConfigSmartGap i3ConfigKeyword
323hi def link i3ConfigBarModifier i3ConfigKeyword
324hi def link i3ConfigBarOpts i3ConfigKeyword
325hi def link i3ConfigColorsOpts i3ConfigOption
326hi def link i3ConfigColors i3ConfigKeyword
327hi def link i3ConfigConditionProp i3ConfigShParam
328hi def link i3ConfigConditionFocused Constant
329hi def link i3ConfigExecActionKeyword i3ConfigShCommand
330hi def link i3ConfigExecAction i3ConfigString
331hi def link i3ConfigLayoutKeyword i3ConfigCommand
332hi def link i3ConfigLayoutOpts i3ConfigOption
333hi def link i3ConfigFocusKeyword i3ConfigCommand
334hi def link i3ConfigFocusOpts i3ConfigOption
335hi def link i3ConfigFocusOutputOpts i3ConfigOption
336hi def link i3ConfigMoveKeyword i3ConfigCommand
337hi def link i3ConfigMoveDir i3ConfigOption
338hi def link i3ConfigMoveType i3ConfigOption
339hi def link i3ConfigUnit i3ConfigNumber
340hi def link i3ConfigResizeKeyword i3ConfigCommand
341hi def link i3ConfigResizeOpts i3ConfigOption
342hi def link i3ConfigMarkKeyword i3ConfigCommand
343hi def link i3ConfigMark i3ConfigShParam
344hi def link i3ConfigActionKeyword i3ConfigCommand
345hi def link i3ConfigOption Type
Bram Moolenaar0e6adf82021-12-16 14:41:10 +0000346
Josef Litošf5356bf2023-09-12 20:20:25 +0200347let b:current_syntax = "i3config"