mirror of
				https://github.com/vim/vim.git
				synced 2025-11-03 09:44:48 -05: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"
 |