blob: d9f31da47b71c5707dc3df1218583dbc6e7cc733 [file] [log] [blame]
Bram Moolenaar2ecbe532022-07-29 21:36:21 +01001" Vim syntax file
2" Language: sway window manager config
3" Original Author: James Eapen <james.eapen@vai.org>
4" Maintainer: James Eapen <james.eapen@vai.org>
Bram Moolenaare1f3fd12022-08-15 18:51:32 +01005" Version: 0.11.1
6" Last Change: 2022 Aug 08
Bram Moolenaar2ecbe532022-07-29 21:36:21 +01007
8" References:
9" http://i3wm.org/docs/userguide.html#configuring
10" https://github.com/swaywm/sway/blob/b69d637f7a34e239e48a4267ae94a5e7087b5834/sway/sway.5.scd
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
19runtime! syntax/i3config.vim
20
21scriptencoding utf-8
22
23" Error
24"syn match swayConfigError /.*/
25
26" Group mode/bar
27syn keyword swayConfigBlockKeyword set input contained
28syn region swayConfigBlock start=+.*s\?{$+ end=+^}$+ contains=i3ConfigBlockKeyword,swayConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
29
30" binding
31syn keyword swayConfigBindKeyword bindswitch bindgesture contained
32syn match swayConfigBind /^\s*\(bindswitch\)\s\+.*$/ contains=i3ConfigVariable,i3ConfigBindKeyword,swayConfigBindKeyword,i3ConfigVariableAndModifier,i3ConfigNumber,i3ConfigUnit,i3ConfigUnitOr,i3ConfigBindArgument,i3ConfigModifier,i3ConfigAction,i3ConfigString,i3ConfigGapStyleKeyword,i3ConfigBorderStyleKeyword
33
34" bindgestures
35syn keyword swayConfigBindGestureCommand swipe pinch hold contained
36syn keyword swayConfigBindGestureDirection up down left right next prev contained
37syn keyword swayConfigBindGesturePinchDirection inward outward clockwise counterclockwise contained
38syn match swayConfigBindGestureHold /^\s*\(bindgesture\)\s\+hold\(:[1-5]\)\?\s\+.*$/ contains=swayConfigBindKeyword,swayConfigBindGestureCommand,swayConfigBindGestureDirection,i3ConfigWorkspaceKeyword,i3ConfigAction
Bram Moolenaare1f3fd12022-08-15 18:51:32 +010039syn match swayConfigBindGestureSwipe /^\s*\(bindgesture\)\s\+swipe\(:[3-5]\)\?:\(up\|down\|left\|right\)\s\+.*$/ contains=swayConfigBindKeyword,swayConfigBindGestureCommand,swayConfigBindGestureDirection,i3ConfigWorkspaceKeyword,i3ConfigAction
40syn 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,i3ConfigWorkspaceKeyword,i3ConfigAction
Bram Moolenaar2ecbe532022-07-29 21:36:21 +010041
42" floating
43syn keyword swayConfigFloatingKeyword floating contained
44syn match swayConfigFloating /^\s*floating\s\+\(enable\|disable\|toggle\)\s*$/ contains=swayConfigFloatingKeyword
45
46syn clear i3ConfigFloatingModifier
47syn keyword swayConfigFloatingModifier floating_modifier contained
48syn match swayConfigFloatingMouseAction /^\s\?.*floating_modifier\s.*\(normal\|inverted\)$/ contains=swayConfigFloatingModifier,i3ConfigVariable
49
50" Gaps
51syn clear i3ConfigSmartBorderKeyword
52syn clear i3ConfigSmartBorder
53syn keyword swayConfigSmartBorderKeyword on no_gaps off contained
54syn match swayConfigSmartBorder /^\s*smart_borders\s\+\(on\|no_gaps\|off\)\s\?$/ contains=swayConfigSmartBorderKeyword
55
56" Changing colors
57syn keyword swayConfigClientColorKeyword focused_tab_title contained
58syn match swayConfigClientColor /^\s*client.\w\+\s\+.*$/ contains=i3ConfigClientColorKeyword,i3ConfigColor,i3ConfigVariable,i3ConfigClientColorKeyword,swayConfigClientColorKeyword
59
60" set display outputs
61syn match swayConfigOutput /^\s*output\s\+.*$/ contains=i3ConfigOutput
62
63" set display focus
64syn keyword swayConfigFocusKeyword focus contained
65syn keyword swayConfigFocusType output contained
66syn match swayConfigFocus /^\s*focus\soutput\s.*$/ contains=swayConfigFocusKeyword,swayConfigFocusType
67
68" xwayland
69syn keyword swayConfigXwaylandKeyword xwayland contained
70syn match swayConfigXwaylandModifier /^\s*xwayland\s\+\(enable\|disable\|force\)\s\?$/ contains=swayConfigXwaylandKeyword
71
72"hi def link swayConfigError Error
73hi def link i3ConfigFloating Error
74hi def link swayConfigFloating Type
75hi def link swayConfigFloatingMouseAction Type
76hi def link swayConfigFocusKeyword Type
77hi def link swayConfigSmartBorderKeyword Type
78hi def link swayConfigBindGestureCommand Identifier
79hi def link swayConfigBindGestureDirection Constant
80hi def link swayConfigBindGesturePinchDirection Constant
81hi def link swayConfigBindKeyword Identifier
82hi def link swayConfigBlockKeyword Identifier
83hi def link swayConfigClientColorKeyword Identifier
84hi def link swayConfigFloatingKeyword Identifier
85hi def link swayConfigFloatingModifier Identifier
86hi def link swayConfigFocusType Identifier
87hi def link swayConfigSmartBorder Identifier
88hi def link swayConfigXwaylandKeyword Identifier
89hi def link swayConfigXwaylandModifier Type
90hi def link swayConfigBindGesture PreProc
91
92let b:current_syntax = "swayconfig"