mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			107 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language: sway window manager config
 | |
| " Original Author: James Eapen <james.eapen@vai.org>
 | |
| " Maintainer: James Eapen <james.eapen@vai.org>
 | |
| " Version: 0.1.6
 | |
| " Reference version (jamespeapen/swayconfig.vim): 0.11.6
 | |
| " Last Change: 2022 Aug 08
 | |
| 
 | |
| " References:
 | |
| " http://i3wm.org/docs/userguide.html#configuring
 | |
| " https://github.com/swaywm/sway/blob/b69d637f7a34e239e48a4267ae94a5e7087b5834/sway/sway.5.scd
 | |
| " http://vimdoc.sourceforge.net/htmldoc/syntax.html
 | |
| "
 | |
| "
 | |
| " Quit when a syntax file was already loaded
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| runtime! syntax/i3config.vim
 | |
| 
 | |
| scriptencoding utf-8
 | |
| 
 | |
| " Error
 | |
| "syn match swayConfigError /.*/
 | |
| 
 | |
| " binding
 | |
| syn keyword swayConfigBindKeyword bindswitch bindgesture contained
 | |
| syn match swayConfigBind /^\s*\(bindswitch\)\s\+.*$/ contains=i3ConfigVariable,i3ConfigBindKeyword,swayConfigBindKeyword,i3ConfigVariableAndModifier,i3ConfigNumber,i3ConfigUnit,i3ConfigUnitOr,i3ConfigBindArgument,i3ConfigModifier,i3ConfigAction,i3ConfigString,i3ConfigGapStyleKeyword,i3ConfigBorderStyleKeyword
 | |
| 
 | |
| " 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,i3ConfigWorkspaceKeyword,i3ConfigAction
 | |
| syn match swayConfigBindGestureSwipe /^\s*\(bindgesture\)\s\+swipe\(:[3-5]\)\?:\(up\|down\|left\|right\)\s\+.*$/ contains=swayConfigBindKeyword,swayConfigBindGestureCommand,swayConfigBindGestureDirection,i3ConfigWorkspaceKeyword,i3ConfigAction
 | |
| 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,i3ConfigWorkspaceKeyword,i3ConfigAction
 | |
| 
 | |
| " floating
 | |
| syn keyword swayConfigFloatingKeyword floating contained
 | |
| syn match swayConfigFloating /^\s*floating\s\+\(enable\|disable\|toggle\)\s*$/ contains=swayConfigFloatingKeyword
 | |
| 
 | |
| syn clear i3ConfigFloatingModifier
 | |
| syn keyword swayConfigFloatingModifier floating_modifier contained
 | |
| syn match swayConfigFloatingMouseAction /^\s\?.*floating_modifier\s\S\+\s\?\(normal\|inverted\|none\)\?$/ contains=swayConfigFloatingModifier,i3ConfigVariable
 | |
| 
 | |
| " Gaps
 | |
| syn clear i3ConfigSmartBorderKeyword
 | |
| syn clear i3ConfigSmartBorder
 | |
| syn keyword swayConfigSmartBorderKeyword on no_gaps off contained
 | |
| syn match swayConfigSmartBorder /^\s*smart_borders\s\+\(on\|no_gaps\|off\)\s\?$/ contains=swayConfigSmartBorderKeyword
 | |
| 
 | |
| " Changing colors
 | |
| syn keyword swayConfigClientColorKeyword focused_tab_title contained
 | |
| syn match swayConfigClientColor /^\s*client.\w\+\s\+.*$/ contains=i3ConfigClientColorKeyword,i3ConfigColor,i3ConfigVariable,i3ConfigClientColorKeyword,swayConfigClientColorKeyword
 | |
| 
 | |
| " Input config
 | |
| syn keyword swayConfigInputKeyword input contained
 | |
| syn match swayConfigInput /^\s*input\s\+.*$/ contains=swayConfigInputKeyword
 | |
| 
 | |
| " set display outputs
 | |
| syn match swayConfigOutput /^\s*output\s\+.*$/ contains=i3ConfigOutput
 | |
| 
 | |
| " set display focus 
 | |
| syn keyword swayConfigFocusKeyword focus contained
 | |
| syn keyword swayConfigFocusType output contained
 | |
| syn match swayConfigFocus /^\s*focus\soutput\s.*$/ contains=swayConfigFocusKeyword,swayConfigFocusType
 | |
| 
 | |
| " focus follows mouse
 | |
| syn clear i3ConfigFocusFollowsMouseType
 | |
| syn clear i3ConfigFocusFollowsMouse
 | |
| 
 | |
| syn keyword swayConfigFocusFollowsMouseType yes no always contained
 | |
| syn match swayConfigFocusFollowsMouse /^\s*focus_follows_mouse\s\+\(yes\|no\|always\)\s\?$/ contains=i3ConfigFocusFollowsMouseKeyword,swayConfigFocusFollowsMouseType
 | |
| 
 | |
| 
 | |
| " xwayland 
 | |
| syn keyword swayConfigXwaylandKeyword xwayland contained
 | |
| syn match swayConfigXwaylandModifier /^\s*xwayland\s\+\(enable\|disable\|force\)\s\?$/ contains=swayConfigXwaylandKeyword
 | |
| 
 | |
| " Group mode/bar
 | |
| syn clear i3ConfigBlock
 | |
| syn region swayConfigBlock start=+.*s\?{$+ end=+^}$+ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigInitializeKeyword,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable,swayConfigInputKeyword,i3ConfigOutput transparent keepend extend
 | |
| 
 | |
| "hi def link swayConfigError                         Error
 | |
| hi def link i3ConfigFloating                        Error
 | |
| hi def link swayConfigFloating                      Type
 | |
| hi def link swayConfigFloatingMouseAction           Type
 | |
| hi def link swayConfigFocusKeyword                  Type
 | |
| hi def link swayConfigSmartBorderKeyword            Type
 | |
| hi def link swayConfigInputKeyword                  Type
 | |
| hi def link swayConfigFocusFollowsMouseType         Type
 | |
| hi def link swayConfigBindGestureCommand            Identifier
 | |
| hi def link swayConfigBindGestureDirection          Constant
 | |
| hi def link swayConfigBindGesturePinchDirection     Constant
 | |
| hi def link swayConfigBindKeyword                   Identifier
 | |
| hi def link swayConfigClientColorKeyword            Identifier
 | |
| hi def link swayConfigFloatingKeyword               Identifier
 | |
| hi def link swayConfigFloatingModifier              Identifier
 | |
| hi def link swayConfigFocusType                     Identifier
 | |
| hi def link swayConfigSmartBorder                   Identifier
 | |
| hi def link swayConfigXwaylandKeyword               Identifier
 | |
| hi def link swayConfigXwaylandModifier              Type
 | |
| hi def link swayConfigBindGesture                   PreProc
 | |
| 
 | |
| let b:current_syntax = "swayconfig"
 |