Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 1 | " Vim syntax file |
| 2 | " Language: i3 config file |
Bram Moolenaar | 2f0936c | 2022-01-08 21:51:59 +0000 | [diff] [blame] | 3 | " Original Author: Mohamed Boughaba <mohamed dot bgb at gmail dot com> |
| 4 | " Maintainer: Quentin Hibon (github user hiqua) |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 5 | " Version: 0.4.22 |
| 6 | " Reference version (JosefLitos/i3config.vim): 4.22 |
| 7 | " Last Change: 2023-09-09 |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 8 | |
| 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 |
| 15 | if exists("b:current_syntax") |
| 16 | finish |
| 17 | endif |
| 18 | |
| 19 | scriptencoding utf-8 |
| 20 | |
Bram Moolenaar | 2ecbe53 | 2022-07-29 21:36:21 +0100 | [diff] [blame] | 21 | " Error |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 22 | syn match i3ConfigError /.\+/ |
Bram Moolenaar | 2ecbe53 | 2022-07-29 21:36:21 +0100 | [diff] [blame] | 23 | |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 24 | " Todo |
| 25 | syn keyword i3ConfigTodo TODO FIXME XXX contained |
| 26 | |
| 27 | " Comment |
| 28 | " Comments are started with a # and can only be used at the beginning of a line |
| 29 | syn match i3ConfigComment /^\s*#.*$/ contains=i3ConfigTodo |
| 30 | |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 31 | syn match i3ConfigOperator /[,;:]/ contained |
| 32 | syn match i3ConfigParen /[{}]/ contained |
| 33 | |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 34 | " Font |
| 35 | " A FreeType font description is composed by: |
| 36 | " a font family, a style, a weight, a variant, a stretch and a size. |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 37 | syn keyword i3ConfigFontKeyword font contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 38 | syn match i3ConfigFontNamespace /\w\+:/ contained contains=i3ConfigOperator |
| 39 | syn match i3ConfigFontContent /-\?\w\+\(-\+\|\s\+\|,\)/ contained contains=i3ConfigFontNamespace,i3ConfigFontKeyword,i3ConfigOperator |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 40 | syn match i3ConfigFontSize /\s\=\d\+\(px\)\?\s\?$/ contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 41 | syn match i3ConfigFont /^\s*font\s\+.*$/ contains=i3ConfigFontContent,i3ConfigFontSize,i3ConfigFontNamespace |
| 42 | syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?$/ contains=i3ConfigFontContent,i3ConfigFontSize,i3ConfigFontNamespace |
| 43 | syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?[^\\]\+$/ contains=i3ConfigFontContent,i3ConfigFontSize,i3ConfigFontNamespace |
| 44 | syn match i3ConfigFont /^\s*font\s\+\(\(.*\\\_.*\)\|\(.*[^\\]\+$\)\)/ contains=i3ConfigFontContent,i3ConfigFontSize,i3ConfigFontNamespace |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 45 | |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 46 | " Common value types |
| 47 | syn keyword i3ConfigBoolean yes no enabled disabled on off true false contained |
| 48 | syn region i3ConfigString start=/"/ skip=/\\"/ end=/"/ contained contains=i3ConfigShCommand,i3ConfigShDelim,i3ConfigShOper,i3ConfigShParam,i3ConfigNumber,i3ConfigVariable keepend extend |
| 49 | syn region i3ConfigString start=/'/ end=/'/ contained contains=i3ConfigShCommand,i3ConfigShDelim,i3ConfigShOper,i3ConfigShParam,i3ConfigNumber,i3ConfigVariable keepend extend |
| 50 | syn match i3ConfigColor /#\w\{3,8}/ contained |
| 51 | syn match i3ConfigNumber /\([a-zA-Z0-9_$]\)\@<!\d\+\([a-zA-Z0-9_$]\)\@!/ contained |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 52 | |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 53 | " Variables |
| 54 | syn match i3ConfigVariable /\$[A-Z0-9a-z_:|[\]-]\+/ |
| 55 | syn keyword i3ConfigSetKeyword set contained |
| 56 | syn match i3ConfigSet /^set \$.*$/ contains=i3ConfigVariable,i3ConfigSetKeyword,i3ConfigColor,i3ConfigString,i3ConfigNoStartupId,i3ConfigNumber,i3ConfigShCommand,i3ConfigShDelim,i3ConfigShParam,i3ConfigShOper |
| 57 | |
| 58 | " Include other config files |
Bram Moolenaar | d899e51 | 2022-05-07 21:54:03 +0100 | [diff] [blame] | 59 | syn keyword i3ConfigIncludeKeyword include contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 60 | syn match i3ConfigCommandSubstitutionRegion /`[^`]*`/ contained contains=i3ConfigShDelim,i3ConfigShParam,i3ConfigShOper,i3ConfigShCommand |
| 61 | syn match i3ConfigIncludePath /[~./a-zA-Z0-9`][^~]*$/ contained contains=i3ConfigCommandSubstitutionRegion |
| 62 | syn match i3ConfigInclude /^include .[^~]*$/ contains=i3ConfigIncludeKeyword,i3ConfigString,i3ConfigVariable,i3ConfigIncludePath |
Bram Moolenaar | d899e51 | 2022-05-07 21:54:03 +0100 | [diff] [blame] | 63 | |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 64 | " Gaps |
| 65 | syn keyword i3ConfigGapStyleKeyword inner outer horizontal vertical top right bottom left current all set plus minus toggle up down contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 66 | syn match i3ConfigGapStyle /^gaps \(inner\|outer\|horizontal\|vertical\|left\|top\|right\|bottom\)\(\s\+\(current\|all\)\)\?\(\s\+\(set\|plus\|minus\|toggle\)\)\?\(\s\+\(-\?\d\+\|\$.*\)\)$/ contains=i3ConfigGapStyleKeyword,i3ConfigNumber,i3ConfigVariable |
| 67 | syn keyword i3ConfigSmartGapKeyword on inverse_outer contained |
| 68 | syn match i3ConfigSmartGap /^smart_gaps \(on\|inverse_outer\)$/ contains=i3ConfigSmartGapKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 69 | syn keyword i3ConfigSmartBorderKeyword on no_gaps contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 70 | syn match i3ConfigSmartBorder /^smart_borders \(on\|no_gaps\)$/ contains=i3ConfigSmartBorderKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 71 | |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 72 | " Commands useable in keybinds |
| 73 | syn keyword i3ConfigAction move exit restart reload layout append_layout workspace focus kill open fullscreen sticky split floating mark unmark resize rename scratchpad swap mode bar gaps border nop contained |
| 74 | syn keyword i3ConfigOption enable disable toggle mode_toggle key shrink grow height width restore container to left right up down position absolute relative window splitv splith tabbed stacked default on off inner outer current all set plus minus top bottom horizontal vertical auto none normal pixel prev next back_and_forth child parent show contained |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 75 | syn match i3ConfigUnit /\sp\(pt\|x\)/ contained |
| 76 | syn match i3ConfigUnitOr /\sor/ contained |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 77 | |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 78 | " Keyboard bindings |
| 79 | syn keyword i3ConfigBindKeyword bindsym bindcode contained |
| 80 | syn match i3ConfigBindArgument /--\(release\|border\|whole-window\|exclude-titlebar\)/ contained |
| 81 | syn match i3ConfigBindModifier /+/ contained |
| 82 | syn match i3ConfigBindModkey /Ctrl\|Shift\|Mod[1-5]/ contained |
| 83 | syn match i3ConfigBindCombo /[$a-zA-Z0-9_+]\+ / contained contains=i3ConfigBindModifier,i3ConfigVariable,i3ConfigBindModkey |
| 84 | syn match i3ConfigBindComboLine /bind\(sym\|code\)\( --[a-z-]\+\)* [$a-zA-Z0-9_+]\+ / contained contains=i3ConfigBindKeyword,i3ConfigBindArgument,i3ConfigBindCombo |
| 85 | syn match i3ConfigBind /^\s*bind\(sym\|code\)\s\+.*[^{]$/ contains=i3ConfigBindComboLine,i3ConfigNumber,i3ConfigVariable,i3ConfigAction,i3ConfigOption,i3ConfigGapStyleKeyword,i3ConfigOperator,i3ConfigString,i3ConfigUnit,i3ConfigUnitOr,i3ConfigConditional,i3ConfigBoolean,i3ConfigExec |
| 86 | |
| 87 | " Floating modifier |
| 88 | syn keyword i3ConfigFloatingModifierKeyword floating_modifier contained |
| 89 | syn match i3ConfigFloatingModifier /^floating_modifier [$a-zA-Z0-9+]\+$/ contains=i3ConfigVariable,i3ConfigBindModkey,i3ConfigFloatingModifierKeyword |
| 90 | |
| 91 | " Floating window size limitation |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 92 | syn keyword i3ConfigSizeSpecial x contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 93 | syn match i3ConfigSize / -\?\d\+ x -\?\d\+/ contained contains=i3ConfigSizeSpecial,i3ConfigNumber |
| 94 | syn keyword i3ConfigFloatingSizeKeyword floating_minimum_size floating_maximum_size contained |
| 95 | syn match i3ConfigFloatingSize /^floating_\(maximum\|minimum\)_size -\?\d\+ x -\?\d\+/ contains=i3ConfigFloatingSizeKeyword,i3ConfigSize |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 96 | |
| 97 | " Orientation |
| 98 | syn keyword i3ConfigOrientationKeyword vertical horizontal auto contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 99 | syn match i3ConfigOrientation /^default_orientation \(vertical\|horizontal\|auto\)$/ contains=i3ConfigOrientationKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 100 | |
| 101 | " Layout |
| 102 | syn keyword i3ConfigLayoutKeyword default stacking tabbed contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 103 | syn match i3ConfigLayout /^workspace_layout \(default\|stacking\|tabbed\)$/ contains=i3ConfigLayoutKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 104 | |
| 105 | " Border style |
| 106 | syn keyword i3ConfigBorderStyleKeyword none normal pixel contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 107 | syn match i3ConfigBorderStyle /^\(new_window\|new_float\|default_border\|default_floating_border\)\s\+\(none\|\(normal\|pixel\)\(\s\+\d\+\)\?\(\s\+\$\w\+\(\(-\w\+\)\+\)\?\(\s\|+\)\?\)\?\)$/ contains=i3ConfigBorderStyleKeyword,i3ConfigNumber,i3ConfigVariable |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 108 | |
| 109 | " Hide borders and edges |
| 110 | syn keyword i3ConfigEdgeKeyword none vertical horizontal both smart smart_no_gaps contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 111 | syn match i3ConfigEdge /^hide_edge_borders\s\+\(none\|vertical\|horizontal\|both\|smart\|smart_no_gaps\)\s\?$/ contains=i3ConfigEdgeKeyword |
| 112 | |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 113 | |
| 114 | " Arbitrary commands for specific windows (for_window) |
| 115 | syn keyword i3ConfigCommandKeyword for_window contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 116 | syn match i3ConfigConditionalText /\w\+\(-\w\+\)*/ contained |
| 117 | syn match i3ConfigEqualsOperator /=/ contained |
| 118 | syn region i3ConfigConditional start=/\[/ end=/\]/ contained contains=i3ConfigString,i3ConfigEqualsOperator,i3ConfigConditionalText |
| 119 | syn match i3ConfigArbitraryCommand /^for_window\s\+.*$/ contains=i3ConfigConditional,i3ConfigCommandKeyword,i3ConfigAction,i3ConfigOption,i3ConfigSize,i3ConfigNumber,i3ConfigString,i3ConfigOperator,i3ConfigBoolean,i3ConfigVariable |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 120 | |
| 121 | " Disable focus open opening |
| 122 | syn keyword i3ConfigNoFocusKeyword no_focus contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 123 | syn match i3ConfigDisableFocus /^no_focus\s\+.*$/ contains=i3ConfigConditional,i3ConfigNoFocusKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 124 | |
| 125 | " Move client to specific workspace automatically |
| 126 | syn keyword i3ConfigAssignKeyword assign contained |
| 127 | syn match i3ConfigAssignSpecial /→/ contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 128 | syn match i3ConfigAssign /^assign\s\+.*$/ contains=i3ConfigAssignKeyword,i3ConfigAssignSpecial,i3ConfigConditional,i3ConfigVariable,i3ConfigString,i3ConfigNumber |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 129 | |
| 130 | " X resources |
| 131 | syn keyword i3ConfigResourceKeyword set_from_resource contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 132 | syn match i3ConfigResource /^set_from_resource\s\+.*$/ contains=i3ConfigResourceKeyword,i3ConfigConditional,i3ConfigColor,i3ConfigVariable,i3ConfigString,i3ConfigNumber |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 133 | |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 134 | " Executing shell commands |
| 135 | syn keyword i3ConfigExecKeyword exec contained |
| 136 | syn keyword i3ConfigExecAlwaysKeyword exec_always contained |
| 137 | syn match i3ConfigShCmdDelim /\$/ contained |
| 138 | syn region i3ConfigShCommand start=/\$(/ end=/)/ contained contains=i3ConfigShCmdDelim,i3ConfigShCommand,i3ConfigShDelim,i3ConfigShOper,i3ConfigShParam,i3ConfigString,i3ConfigNumber,i3ConfigVariable keepend extend |
| 139 | syn match i3ConfigShDelim /[[\]{}();`]\+/ contained |
| 140 | syn match i3ConfigShOper /[<>&|+=~^*!.?]\+/ contained |
| 141 | syn match i3ConfigShParam /\<-[a-zA-Z0-9_-]\+\>/ contained containedin=i3ConfigVar |
| 142 | syn region i3ConfigExec start=/exec\(_always\)\?\( --no-startup-id\)\? [^{]/ skip=/\\$/ end=/\([,;]\|$\)/ contains=i3ConfigExecKeyword,i3ConfigExecAlwaysKeyword,i3ConfigShCommand,i3ConfigShDelim,i3ConfigShOper,i3ConfigShParam,i3ConfigNumber,i3ConfigString,i3ConfigVariable,i3ConfigOperator keepend extend |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 143 | |
| 144 | " Automatically putting workspaces on specific screens |
| 145 | syn keyword i3ConfigWorkspaceKeyword workspace contained |
| 146 | syn keyword i3ConfigOutput output contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 147 | syn match i3ConfigWorkspace /^\s*workspace\s\+.*$/ contains=i3ConfigWorkspaceKeyword,i3ConfigNumber,i3ConfigString,i3ConfigOutput,i3ConfigVariable,i3ConfigBoolean |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 148 | |
| 149 | " Changing colors |
| 150 | syn keyword i3ConfigClientColorKeyword client focused focused_inactive unfocused urgent placeholder background contained |
| 151 | syn match i3ConfigClientColor /^\s*client.\w\+\s\+.*$/ contains=i3ConfigClientColorKeyword,i3ConfigColor,i3ConfigVariable |
| 152 | |
| 153 | syn keyword i3ConfigTitleAlignKeyword left center right contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 154 | syn match i3ConfigTitleAlign /^title_align .*$/ contains=i3ConfigTitleAlignKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 155 | |
| 156 | " Interprocess communication |
| 157 | syn match i3ConfigInterprocessKeyword /ipc-socket/ contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 158 | syn match i3ConfigInterprocess /^ipc-socket .*$/ contains=i3ConfigInterprocessKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 159 | |
| 160 | " Mouse warping |
| 161 | syn keyword i3ConfigMouseWarpingKeyword mouse_warping contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 162 | syn keyword i3ConfigMouseWarpingType output container none contained |
| 163 | syn match i3ConfigMouseWarping /^mouse_warping \(output\|container\|none\)$/ contains=i3ConfigMouseWarpingKeyword,i3ConfigMouseWarpingType |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 164 | |
| 165 | " Focus follows mouse |
| 166 | syn keyword i3ConfigFocusFollowsMouseKeyword focus_follows_mouse contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 167 | syn keyword i3ConfigFocusFollowsMouseType always contained |
| 168 | syn match i3ConfigFocusFollowsMouse /^focus_follows_mouse \(yes\|no\|always\)$/ contains=i3ConfigFocusFollowsMouseKeyword,i3ConfigBoolean,i3ConfigFocusFollowsMouseType |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 169 | |
| 170 | " Focus wrapping |
| 171 | syn keyword i3ConfigFocusWrappingKeyword force_focus_wrapping focus_wrapping contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 172 | syn keyword i3ConfigFocusWrappingType force workspace contained |
| 173 | syn match i3ConfigFocusWrapping /^focus_wrapping \(yes\|no\|force\|workspace\)$/ contains=i3ConfigBoolean,i3ConfigFocusWrappingKeyword,i3ConfigFocusWrappingType |
| 174 | |
| 175 | " Popups during fullscreen mode |
| 176 | syn keyword i3ConfigPopupOnFullscreenKeyword popup_during_fullscreen contained |
| 177 | syn keyword i3ConfigPopupOnFullscreenType smart ignore leave_fullscreen contained |
| 178 | syn match i3ConfigPopupOnFullscreen /^popup_during_fullscreen \w\+$/ contains=i3ConfigPopupOnFullscreenKeyword,i3ConfigPopupOnFullscreenType |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 179 | |
| 180 | " Forcing Xinerama |
| 181 | syn keyword i3ConfigForceXineramaKeyword force_xinerama contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 182 | syn match i3ConfigForceXinerama /^force_xinerama \(yes\|no\)$/ contains=i3ConfigBoolean,i3ConfigForceXineramaKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 183 | |
| 184 | " Automatic back-and-forth when switching to the current workspace |
| 185 | syn keyword i3ConfigAutomaticSwitchKeyword workspace_auto_back_and_forth contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 186 | syn match i3ConfigAutomaticSwitch /^workspace_auto_back_and_forth \(yes\|no\)$/ contains=i3ConfigBoolean,i3ConfigAutomaticSwitchKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 187 | |
| 188 | " Delay urgency hint |
| 189 | syn keyword i3ConfigTimeUnit ms contained |
| 190 | syn keyword i3ConfigDelayUrgencyKeyword force_display_urgency_hint contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 191 | syn match i3ConfigDelayUrgency /^force_display_urgency_hint \d\+ ms$/ contains=i3ConfigBoolean,i3ConfigDelayUrgencyKeyword,i3ConfigNumber,i3ConfigTimeUnit |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 192 | |
| 193 | " Focus on window activation |
| 194 | syn keyword i3ConfigFocusOnActivationKeyword focus_on_window_activation contained |
| 195 | syn keyword i3ConfigFocusOnActivationType smart urgent focus none contained |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 196 | syn match i3ConfigFocusOnActivation /^focus_on_window_activation \(smart\|urgent\|focus\|none\)$/ contains=i3ConfigFocusOnActivationKeyword,i3ConfigFocusOnActivationType |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 197 | |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 198 | " Show window marks in their window title |
| 199 | syn keyword i3ConfigShowMarksKeyword show_marks contained |
| 200 | syn match i3ConfigShowMarks /^show_marks \(yes\|no\)$/ contains=i3ConfigBoolean,i3ConfigShowMarksKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 201 | |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 202 | " Mode block |
| 203 | syn match i3ConfigModeKeyword /^mode/ contained |
| 204 | syn region i3ConfigModeBlock start=/^mode\( --pango_markup\)\? \([^'" {]\+\|'[^']\+'\|".\+"\)\s\+{$/ end=/^\s*}$/ contains=i3ConfigModeKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigNumber,i3ConfigParen,i3ConfigVariable fold keepend extend |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 205 | |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 206 | " Color block |
| 207 | syn keyword i3ConfigColorsKeyword colors contained |
| 208 | syn match i3ConfigColorsCategory /\(focused_\)\?\(background\|statusline\|separator\)\|\(focused\|active\|inactive\|urgent\)_workspace\|binding_mode/ contained |
| 209 | syn region i3ConfigColorsBlock start=/^\s\+colors {$/ end=/^\s\+}$/ contained contains=i3ConfigColorsKeyword,i3ConfigColorsCategory,i3ConfigColor,i3ConfigVariable,i3ConfigComment,i3ConfigParen fold keepend extend |
| 210 | |
| 211 | " Bar block |
| 212 | syn keyword i3ConfigBarBlockKeyword 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 |
| 213 | syn keyword i3ConfigBarModifierKeyword modifier contained |
| 214 | syn match i3ConfigBarModifierLine /^\s\+modifier [^ ]\+$/ contained contains=i3ConfigBarModifierKeyword,i3ConfigBindModifier,i3ConfigVariable,i3ConfigBindModkey |
| 215 | syn region i3ConfigBarBlock start=/^bar {$/ end=/^}$/ contains=i3ConfigBarBlockKeyword,i3ConfigBarModifierLine,i3ConfigBind,i3ConfigString,i3ConfigComment,i3ConfigFont,i3ConfigBoolean,i3ConfigNumber,i3ConfigOperator,i3ConfigParen,i3ConfigColor,i3ConfigVariable,i3ConfigColorsBlock fold keepend extend |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 216 | |
| 217 | " Define the highlighting. |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 218 | hi def link i3ConfigKeyword Keyword |
| 219 | hi def link i3ConfigCommand Statement |
Bram Moolenaar | 2ecbe53 | 2022-07-29 21:36:21 +0100 | [diff] [blame] | 220 | hi def link i3ConfigError Error |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 221 | hi def link i3ConfigTodo Todo |
| 222 | hi def link i3ConfigComment Comment |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 223 | hi def link i3ConfigOperator Operator |
| 224 | hi def link i3ConfigParen Delimiter |
| 225 | hi def link i3ConfigFontKeyword i3ConfigKeyword |
| 226 | hi def link i3ConfigFontNamespace i3ConfigOption |
| 227 | hi def link i3ConfigFontContent String |
| 228 | hi def link i3ConfigFontSize Number |
| 229 | hi def link i3ConfigString String |
| 230 | hi def link i3ConfigNumber Number |
| 231 | hi def link i3ConfigBoolean Boolean |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 232 | hi def link i3ConfigColor Constant |
Josef Litoš | 62145db | 2023-09-11 20:12:48 +0200 | [diff] [blame] | 233 | hi def link i3ConfigVariable Variable |
| 234 | hi def link i3ConfigSetKeyword i3ConfigKeyword |
| 235 | hi def link i3ConfigIncludeKeyword i3ConfigKeyword |
| 236 | hi def link i3ConfigCommandSubstitutionDelimiter Delimiter |
| 237 | hi def link i3ConfigIncludePath String |
| 238 | hi def link i3ConfigGapStyleKeyword i3ConfigOption |
| 239 | hi def link i3ConfigGapStyle i3ConfigCommand |
| 240 | hi def link i3ConfigSmartGapKeyword i3ConfigOption |
| 241 | hi def link i3ConfigSmartGap i3ConfigKeyword |
| 242 | hi def link i3ConfigSmartBorderKeyword i3ConfigOption |
| 243 | hi def link i3ConfigSmartBorder i3ConfigKeyword |
| 244 | hi def link i3ConfigAction i3ConfigCommand |
| 245 | hi def link i3ConfigOption Type |
| 246 | hi def link i3ConfigUnit i3ConfigNumber |
| 247 | hi def link i3ConfigUnitOr i3ConfigOperator |
| 248 | hi def link i3ConfigBindKeyword i3ConfigKeyword |
| 249 | hi def link i3ConfigBindModkey Special |
| 250 | hi def link i3ConfigBindCombo SpecialChar |
| 251 | hi def link i3ConfigBindModifier i3ConfigOperator |
| 252 | hi def link i3ConfigBindArgument i3ConfigShParam |
| 253 | hi def link i3ConfigFloatingModifierKeyword i3ConfigKeyword |
| 254 | hi def link i3ConfigSizeSpecial i3ConfigOperator |
| 255 | hi def link i3ConfigFloatingSizeKeyword i3ConfigKeyword |
| 256 | hi def link i3ConfigOrientationKeyword i3ConfigOption |
| 257 | hi def link i3ConfigOrientation i3ConfigKeyword |
| 258 | hi def link i3ConfigLayoutKeyword i3ConfigOption |
| 259 | hi def link i3ConfigLayout i3ConfigKeyword |
| 260 | hi def link i3ConfigBorderStyleKeyword i3ConfigOption |
| 261 | hi def link i3ConfigBorderStyle i3ConfigKeyword |
| 262 | hi def link i3ConfigEdgeKeyword i3ConfigOption |
| 263 | hi def link i3ConfigEdge i3ConfigKeyword |
| 264 | hi def link i3ConfigCommandKeyword i3ConfigKeyword |
| 265 | hi def link i3ConfigEqualsOperator i3ConfigOperator |
| 266 | hi def link i3ConfigConditionalText Conditional |
| 267 | hi def link i3ConfigConditional Delimiter |
| 268 | hi def link i3ConfigNoFocusKeyword i3ConfigKeyword |
| 269 | hi def link i3ConfigAssignKeyword i3ConfigKeyword |
| 270 | hi def link i3ConfigAssignSpecial i3ConfigOption |
| 271 | hi def link i3ConfigResourceKeyword i3ConfigKeyword |
| 272 | hi def link i3ConfigShParam PreProc |
| 273 | hi def link i3ConfigShDelim Delimiter |
| 274 | hi def link i3ConfigShOper Operator |
| 275 | hi def link i3ConfigShCmdDelim i3ConfigShDelim |
| 276 | hi def link i3ConfigShCommand Normal |
| 277 | hi def link i3ConfigExecKeyword i3ConfigCommand |
| 278 | hi def link i3ConfigExecAlwaysKeyword i3ConfigKeyword |
| 279 | hi def link i3ConfigWorkspaceKeyword i3ConfigCommand |
| 280 | hi def link i3ConfigOutput i3ConfigOption |
| 281 | hi def link i3ConfigClientColorKeyword i3ConfigKeyword |
| 282 | hi def link i3ConfigClientColor Operator |
| 283 | hi def link i3ConfigTitleAlignKeyword i3ConfigOption |
| 284 | hi def link i3ConfigTitleAlign i3ConfigKeyword |
| 285 | hi def link i3ConfigInterprocessKeyword i3ConfigKeyword |
| 286 | hi def link i3ConfigMouseWarpingKeyword i3ConfigKeyword |
| 287 | hi def link i3ConfigMouseWarpingType i3ConfigOption |
| 288 | hi def link i3ConfigFocusFollowsMouseKeyword i3ConfigKeyword |
| 289 | hi def link i3ConfigFocusFollowsMouseType i3ConfigOption |
| 290 | hi def link i3ConfigFocusWrappingKeyword i3ConfigKeyword |
| 291 | hi def link i3ConfigFocusWrappingType i3ConfigOption |
| 292 | hi def link i3ConfigPopupOnFullscreenKeyword i3ConfigKeyword |
| 293 | hi def link i3ConfigPopupOnFullscreenType i3ConfigOption |
| 294 | hi def link i3ConfigForceXineramaKeyword i3ConfigKeyword |
| 295 | hi def link i3ConfigAutomaticSwitchKeyword i3ConfigKeyword |
| 296 | hi def link i3ConfigTimeUnit i3ConfigNumber |
| 297 | hi def link i3ConfigDelayUrgencyKeyword i3ConfigKeyword |
| 298 | hi def link i3ConfigFocusOnActivationKeyword i3ConfigKeyword |
| 299 | hi def link i3ConfigFocusOnActivationType i3ConfigOption |
| 300 | hi def link i3ConfigShowMarksKeyword i3ConfigKeyword |
| 301 | hi def link i3ConfigModeKeyword i3ConfigKeyword |
| 302 | hi def link i3ConfigColorsKeyword i3ConfigKeyword |
| 303 | hi def link i3ConfigColorsCategory Type |
| 304 | hi def link i3ConfigBarModifierKeyword i3ConfigKeyword |
| 305 | hi def link i3ConfigBarBlockKeyword i3ConfigKeyword |
Bram Moolenaar | 0e6adf8 | 2021-12-16 14:41:10 +0000 | [diff] [blame] | 306 | |
| 307 | let b:current_syntax = "i3config" |