summaryrefslogtreecommitdiffstats
path: root/syntax/swayconfig.vim
diff options
context:
space:
mode:
Diffstat (limited to 'syntax/swayconfig.vim')
-rw-r--r--syntax/swayconfig.vim64
1 files changed, 44 insertions, 20 deletions
diff --git a/syntax/swayconfig.vim b/syntax/swayconfig.vim
index 93832bcf..9752846c 100644
--- a/syntax/swayconfig.vim
+++ b/syntax/swayconfig.vim
@@ -6,7 +6,7 @@ endif
" Language: sway config file
" Original Author: Mohamed Boughaba <mohamed dot bgb at gmail dot com>
" Maintainer: James Eapen <jamespeapen at gmail dot com>
-" Version: 1.0
+" Version: 0.11.6
" Last Change: 2020-10-07
" References:
@@ -60,30 +60,41 @@ syn match swayConfigInitialize /^\s*set\s\+.*$/ contains=swayConfigVariable,sway
" Gaps
syn keyword swayConfigGapStyleKeyword inner outer horizontal vertical top right bottom left current all set plus minus toggle up down contained
syn match swayConfigGapStyle /^\s*\(gaps\)\s\+\(inner\|outer\|horizontal\|vertical\|left\|top\|right\|bottom\)\(\s\+\(current\|all\)\)\?\(\s\+\(set\|plus\|minus\|toggle\)\)\?\(\s\+\(-\?\d\+\|\$.*\)\)$/ contains=swayConfigGapStyleKeyword,swayConfigNumber,swayConfigVariable
-syn keyword swayConfigSmartGapKeyword on inverse_outer contained
-syn match swayConfigSmartGap /^\s*smart_gaps\s\+\(on\|inverse_outer\)\s\?$/ contains=swayConfigSmartGapKeyword
-syn keyword swayConfigSmartBorderKeyword on no_gaps contained
-syn match swayConfigSmartBorder /^\s*smart_borders\s\+\(on\|no_gaps\)\s\?$/ contains=swayConfigSmartBorderKeyword
+syn keyword swayConfigSmartGapKeyword on inverse_outer off contained
+syn match swayConfigSmartGap /^\s*smart_gaps\s\+\(on\|inverse_outer\|off\)\s\?$/ contains=swayConfigSmartGapKeyword
+syn keyword swayConfigSmartBorderKeyword on no_gaps off contained
+syn match swayConfigSmartBorder /^\s*smart_borders\s\+\(on\|no_gaps\|off\)\s\?$/ contains=swayConfigSmartBorderKeyword
" Keyboard bindings
syn keyword swayConfigAction toggle fullscreen restart key import kill shrink grow contained
syn keyword swayConfigAction focus move grow height width split layout resize restore reload mute unmute exit mode workspace container to output contained
syn match swayConfigModifier /\w\++\w\+\(\(+\w\+\)\+\)\?/ contained contains=swayConfigVariableModifier
-syn match swayConfigNumber /\s\d\+/ contained
+syn match swayConfigNumber /\s[+-]\?\(\d\+\.\)\?\d\+/ contained
syn match swayConfigUnit /\sp\(pt\|x\)/ contained
syn match swayConfigUnitOr /\sor/ contained
-syn keyword swayConfigBindKeyword bindsym bindcode exec gaps border contained
+syn keyword swayConfigBindKeyword bindsym bindcode bindswitch bindgesture exec gaps border contained
syn match swayConfigBindArgument /--\w\+\(\(-\w\+\)\+\)\?\s/ contained
-syn match swayConfigBind /^\s*\(bindsym\|bindcode\)\s\+.*$/ contains=swayConfigVariable,swayConfigBindKeyword,swayConfigVariableAndModifier,swayConfigNumber,swayConfigUnit,swayConfigUnitOr,swayConfigBindArgument,swayConfigModifier,swayConfigAction,swayConfigString,swayConfigGapStyleKeyword,swayConfigBorderStyleKeyword
+syn match swayConfigBind /^\s*\(bindsym\|bindcode\|bindswitch\)\s\+.*$/ contains=swayConfigVariable,swayConfigBindKeyword,swayConfigVariableAndModifier,swayConfigNumber,swayConfigUnit,swayConfigUnitOr,swayConfigBindArgument,swayConfigModifier,swayConfigAction,swayConfigString,swayConfigGapStyleKeyword,swayConfigBorderStyleKeyword
+
+" bindgestures
+syn keyword swayConfigBindGestureCommand swipe pinch hold contained
+syn keyword swayConfigBindGestureDirection up down left right next prev contained
+syn keyword swayConfigBindGesturePinchDirection inward outward clockwise counterclockwise contained
+syn match swayConfigBindGestureHold /^\s*\(bindgesture\)\s\+hold\(:[1-5]\)\?\s\+.*$/ contains=swayConfigBindKeyword,swayConfigBindGestureCommand,swayConfigBindGestureDirection,swayConfigWorkspaceKeyword,swayConfigAction
+syn match swayConfigBindGestureSwipe /^\s*\(bindgesture\)\s\+swipe\(:[3-5]\)\?:\(up\|down\|left\|right\)\s\+.*$/ contains=swayConfigBindKeyword,swayConfigBindGestureCommand,swayConfigBindGestureDirection,swayConfigWorkspaceKeyword,swayConfigAction
+syn match swayConfigBindGesturePinch /^\s*\(bindgesture\)\s\+pinch\(:[2-5]\)\?:\(up\|down\|left\|right\|inward\|outward\|clockwise\|counterclockwise\)\(+\(up\|down\|left\|right\|inward\|outward\|clockwise\|counterclockwise\)\)\?.*$/ contains=swayConfigBindKeyword,swayConfigBindGestureCommand,swayConfigBindGestureDirection,swayConfigBindGesturePinchDirection,swayConfigWorkspaceKeyword,swayConfigAction
" Floating
+syn keyword swayConfigFloatingKeyword floating contained
+syn match swayConfigFloating /^\s*floating\s\+\(enable\|disable\|toggle\)\s*$/ contains=swayConfigFloatingKeyword
+
syn keyword swayConfigFloatingModifier floating_modifier contained
-syn match swayConfigFloatingMouseAction /^\s\?.*floating_modifier\s.*\(normal\|inverted\)$/ contains=swayConfigFloatingModifier,swayConfigVariable
+syn match swayConfigFloatingMouseAction /^\s\?.*floating_modifier\s\S\+\s\?\(normal\|inverted\|none\)\?$/ contains=swayConfigFloatingModifier,swayConfigVariable
syn keyword swayConfigSizeSpecial x contained
syn match swayConfigNegativeSize /-/ contained
syn match swayConfigSize /-\?\d\+\s\?x\s\?-\?\d\+/ contained contains=swayConfigSizeSpecial,swayConfigNumber,swayConfigNegativeSize
-syn match swayConfigFloating /^\s*floating_\(maximum\|minimum\)_size\s\+-\?\d\+\s\?x\s\?-\?\d\+/ contains=swayConfigSize
+syn match swayConfigFloatingSize /^\s*floating_\(maximum\|minimum\)_size\s\+-\?\d\+\s\?x\s\?-\?\d\+/ contains=swayConfigSize
" Orientation
syn keyword swayConfigOrientationKeyword vertical horizontal auto contained
@@ -125,6 +136,10 @@ syn keyword swayConfigExecKeyword exec exec_always contained
syn match swayConfigNoStartupId /--no-startup-id/ contained " We are not using swayConfigBindArgument as only no-startup-id is supported here
syn match swayConfigExec /^\s*exec\(_always\)\?\s\+.*$/ contains=swayConfigExecKeyword,swayConfigNoStartupId,swayConfigString
+" Input config
+syn keyword swayConfigInputKeyword input contained
+syn match swayConfigInput /^\s*input\s\+.*$/ contains=swayConfigInputKeyword
+
" Automatically putting workspaces on specific screens
syn keyword swayConfigWorkspaceKeyword workspace contained
syn keyword swayConfigOutputKeyword output contained
@@ -139,8 +154,9 @@ syn keyword swayConfigFocusType output contained
syn match swayConfigFocus /^\s*focus\soutput\s.*$/ contains=swayConfigFocusKeyword,swayConfigFocusType
" Changing colors
-syn keyword swayConfigClientColorKeyword client focused focused_inactive unfocused urgent placeholder background contained
-syn match swayConfigClientColor /^\s*client.\w\+\s\+.*$/ contains=swayConfigClientColorKeyword,swayConfigColor,swayConfigVariable
+syn keyword swayConfigClientKeyword client contained
+syn keyword swayConfigClientColorKeyword focused focused_inactive focused_tab_title unfocused urgent placeholder contained
+syn match swayConfigClientColor /^\s*client.\w\+\s\+.*$/ contains=swayConfigClientKeyword,swayConfigClientColorKeyword,swayConfigColor,swayConfigVariable
syn keyword swayConfigTitleAlignKeyword left center right contained
syn match swayConfigTitleAlign /^\s*title_align\s\+.*$/ contains=swayConfigTitleAlignKeyword
@@ -156,8 +172,8 @@ syn match swayConfigMouseWarping /^\s*mouse_warping\s\+\(output\|none\)\s\?$/ co
" Focus follows mouse
syn keyword swayConfigFocusFollowsMouseKeyword focus_follows_mouse contained
-syn keyword swayConfigFocusFollowsMouseType yes no contained
-syn match swayConfigFocusFollowsMouse /^\s*focus_follows_mouse\s\+\(yes\|no\)\s\?$/ contains=swayConfigFocusFollowsMouseKeyword,swayConfigFocusFollowsMouseType
+syn keyword swayConfigFocusFollowsMouseType yes no always contained
+syn match swayConfigFocusFollowsMouse /^\s*focus_follows_mouse\s\+\(yes\|no\|always\)\s\?$/ contains=swayConfigFocusFollowsMouseKeyword,swayConfigFocusFollowsMouseType
" Popups during fullscreen mode
syn keyword swayConfigPopupOnFullscreenKeyword popup_during_fullscreen contained
@@ -192,15 +208,15 @@ syn keyword swayConfigDrawingMarksKeyword show_marks contained
syn match swayConfigDrawingMarks /^\s*show_marks\s\+\(yes\|no\)\s\?$/ contains=swayConfigFocusWrappingType,swayConfigDrawingMarksKeyword
" Group mode/bar
-syn keyword swayConfigBlockKeyword set input mode bar colors i3bar_command status_command position exec mode hidden_state modifier id position output background statusline tray_output tray_padding separator separator_symbol workspace_buttons strip_workspace_numbers binding_mode_indicator focused_workspace active_workspace inactive_workspace urgent_workspace binding_mode contained
-syn region swayConfigBlock start=+.*s\?{$+ end=+^}$+ contains=swayConfigBlockKeyword,swayConfigString,swayConfigBind,swayConfigComment,swayConfigFont,swayConfigFocusWrappingType,swayConfigColor,swayConfigVariable transparent keepend extend
+syn keyword swayConfigBlockKeyword set bar colors i3bar_command status_command position hidden_state modifier id position background statusline tray_output tray_padding separator separator_symbol workspace_buttons strip_workspace_numbers binding_mode_indicator focused_workspace active_workspace inactive_workspace urgent_workspace binding_mode contained
+syn region swayConfigBlock start=+.*s\?{$+ end=+^}$+ contains=swayConfigBlockKeyword,swayConfigString,swayConfigAction,swayConfigBind,swayConfigComment,swayConfigFont,swayConfigFocusWrappingType,swayConfigColor,swayConfigVariable,swayConfigInputKeyword,swayConfigOutputKeyword transparent keepend extend
" Line continuation
-syn region swayConfigLineCont start=/^.*\\$/ end=/^.*$/ contains=swayConfigBlockKeyword,swayConfigString,swayConfigBind,swayConfigComment,swayConfigFont,swayConfigFocusWrappingType,swayConfigColor,swayConfigVariable transparent keepend extend
+syn region swayConfigLineCont start=/^.*\\$/ end=/^[^\\]*$/ contains=swayConfigBlockKeyword,swayConfigString,swayConfigAction,swayConfigBind,swayConfigComment,swayConfigFont,swayConfigFocusWrappingType,swayConfigColor,swayConfigVariable,swayConfigExecKeyword transparent keepend extend
" Includes with relative paths to config files
syn keyword swayConfigInclude include contained
-syn match swayConfigFile /^include\s\(\~\?\/.*$\|\.\{0,2}\/.*$\)/ contains=swayConfigInclude
+syn match swayConfigFile /^\s\?include\s\+.*$/ contains=swayConfigInclude
" xwayland
syn keyword swayConfigXwaylandKeyword xwayland contained
@@ -227,9 +243,14 @@ hi! def link swayConfigEdgeKeyword Type
hi! def link swayConfigAction Type
hi! def link swayConfigCommand Type
hi! def link swayConfigOutputKeyword Type
+hi! def link swayConfigInputKeyword Type
hi! def link swayConfigWindowCommandSpecial Type
hi! def link swayConfigFocusWrappingType Type
hi! def link swayConfigUnitOr Type
+hi! def link swayConfigClientColorKeyword Type
+hi! def link swayConfigFloating Type
+hi! def link swayConfigBindGestureDirection Constant
+hi! def link swayConfigBindGesturePinchDirection Constant
hi! def link swayConfigFontSize Constant
hi! def link swayConfigColor Constant
hi! def link swayConfigNumber Constant
@@ -247,8 +268,10 @@ hi! def link swayConfigAssignSpecial Special
hi! def link swayConfigFontNamespace PreProc
hi! def link swayConfigBindArgument PreProc
hi! def link swayConfigNoStartupId PreProc
+hi! def link swayConfigBindGesture PreProc
hi! def link swayConfigFontKeyword Identifier
hi! def link swayConfigBindKeyword Identifier
+hi! def link swayConfigBindGestureCommand Identifier
hi! def link swayConfigOrientation Identifier
hi! def link swayConfigGapStyle Identifier
hi! def link swayConfigTitleAlign Identifier
@@ -257,7 +280,7 @@ hi! def link swayConfigSmartBorder Identifier
hi! def link swayConfigLayout Identifier
hi! def link swayConfigBorderStyle Identifier
hi! def link swayConfigEdge Identifier
-hi! def link swayConfigFloating Identifier
+hi! def link swayConfigFloatingSize Identifier
hi! def link swayConfigCommandKeyword Identifier
hi! def link swayConfigNoFocusKeyword Identifier
hi! def link swayConfigInitializeKeyword Identifier
@@ -265,7 +288,7 @@ hi! def link swayConfigAssignKeyword Identifier
hi! def link swayConfigResourceKeyword Identifier
hi! def link swayConfigExecKeyword Identifier
hi! def link swayConfigWorkspaceKeyword Identifier
-hi! def link swayConfigClientColorKeyword Identifier
+hi! def link swayConfigClientKeyword Identifier
hi! def link swayConfigInterprocessKeyword Identifier
hi! def link swayConfigMouseWarpingKeyword Identifier
hi! def link swayConfigFocusFollowsMouseKeyword Identifier
@@ -281,6 +304,7 @@ hi! def link swayConfigVariable Statement
hi! def link swayConfigArbitraryCommand Type
hi! def link swayConfigInclude Identifier
hi! def link swayConfigFile Constant
+hi! def link swayConfigFloatingKeyword Identifier
hi! def link swayConfigFloatingModifier Identifier
hi! def link swayConfigFloatingMouseAction Type
hi! def link swayConfigFocusKeyword Type