if polyglot#init#is_disabled(expand(':p'), 'sway', 'syntax/swayconfig.vim') finish endif " Vim syntax file " Language: sway config file " Original Author: Mohamed Boughaba " Maintainer: James Eapen " Version: 1.0 " Last Change: 2020-10-07 " References: " http://i3wm.org/docs/userguide.html#configuring " http://vimdoc.sourceforge.net/htmldoc/syntax.html " " " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syn clear elsei exists("b:current_syntax") fini en scriptencoding utf-8 " Error syn match swayConfigError /.*/ " Todo syn keyword swayConfigTodo TODO FIXME XXX contained " Comment " Comments are started with a # and can only be used at the beginning of a line syn match swayConfigComment /^\s*#.*$/ contains=swayConfigTodo " Font " A FreeType font description is composed by: " a font family, a style, a weight, a variant, a stretch and a size. syn match swayConfigFontSeparator /,/ contained syn match swayConfigFontSeparator /:/ contained syn keyword swayConfigFontKeyword font contained syn match swayConfigFontNamespace /\w\+:/ contained contains=swayConfigFontSeparator syn match swayConfigFontContent /-\?\w\+\(-\+\|\s\+\|,\)/ contained contains=swayConfigFontNamespace,swayConfigFontSeparator,swayConfigFontKeyword syn match swayConfigFontSize /\s\=\d\+\(px\)\?\s\?$/ contained syn match swayConfigFont /^\s*font\s\+.*$/ contains=swayConfigFontContent,swayConfigFontSeparator,swayConfigFontSize,swayConfigFontNamespace syn match swayConfigFont /^\s*font\s\+.*\(\\\_.*\)\?$/ contains=swayConfigFontContent,swayConfigFontSeparator,swayConfigFontSize,swayConfigFontNamespace syn match swayConfigFont /^\s*font\s\+.*\(\\\_.*\)\?[^\\]\+$/ contains=swayConfigFontContent,swayConfigFontSeparator,swayConfigFontSize,swayConfigFontNamespace syn match swayConfigFont /^\s*font\s\+\(\(.*\\\_.*\)\|\(.*[^\\]\+$\)\)/ contains=swayConfigFontContent,swayConfigFontSeparator,swayConfigFontSize,swayConfigFontNamespace " variables syn match swayConfigString /\(['"]\)\(.\{-}\)\1/ contained syn match swayConfigColor /#\w\{6}/ contained syn match swayConfigVariableModifier /+/ contained syn match swayConfigVariableAndModifier /+\w\+/ contained contains=swayConfigVariableModifier syn match swayConfigVariable /\$\w\+\(\(-\w\+\)\+\)\?\(\s\|+\)\?/ contains=swayConfigVariableModifier,swayConfigVariableAndModifier syn keyword swayConfigInitializeKeyword set contained syn match swayConfigInitialize /^\s*set\s\+.*$/ contains=swayConfigVariable,swayConfigInitializeKeyword,swayConfigColor,swayConfigString " 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 " 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 swayConfigUnit /\sp\(pt\|x\)/ contained syn match swayConfigUnitOr /\sor/ contained syn keyword swayConfigBindKeyword bindsym bindcode 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 " Floating syn keyword swayConfigFloatingModifier floating_modifier contained syn match swayConfigFloatingMouseAction /^\s\?.*floating_modifier\s.*\(normal\|inverted\)$/ 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 " Orientation syn keyword swayConfigOrientationKeyword vertical horizontal auto contained syn match swayConfigOrientation /^\s*default_orientation\s\+\(vertical\|horizontal\|auto\)\s\?$/ contains=swayConfigOrientationKeyword " Layout syn keyword swayConfigLayoutKeyword default stacking tabbed contained syn match swayConfigLayout /^\s*workspace_layout\s\+\(default\|stacking\|tabbed\)\s\?$/ contains=swayConfigLayoutKeyword " Border style syn keyword swayConfigBorderStyleKeyword none normal pixel contained syn match swayConfigBorderStyle /^\s*\(new_window\|new_float\|default_border\|default_floating_border\)\s\+\(none\|\(normal\|pixel\)\(\s\+\d\+\)\?\(\s\+\$\w\+\(\(-\w\+\)\+\)\?\(\s\|+\)\?\)\?\)\s\?$/ contains=swayConfigBorderStyleKeyword,swayConfigNumber,swayConfigVariable " Hide borders and edges syn keyword swayConfigEdgeKeyword none vertical horizontal both smart smart_no_gaps contained syn match swayConfigEdge /^\s*hide_edge_borders\s\+\(none\|vertical\|horizontal\|both\|smart\|smart_no_gaps\)\s\?$/ contains=swayConfigEdgeKeyword " Arbitrary commands for specific windows (for_window) syn keyword swayConfigCommandKeyword for_window contained syn region swayConfigWindowStringSpecial start=+"+ skip=+\\"+ end=+"+ contained contains=swayConfigString syn region swayConfigWindowCommandSpecial start="\[" end="\]" contained contains=swayConfigWindowStringSpacial,swayConfigString syn match swayConfigArbitraryCommand /^\s*for_window\s\+.*$/ contains=swayConfigWindowCommandSpecial,swayConfigCommandKeyword,swayConfigBorderStyleKeyword,swayConfigLayoutKeyword,swayConfigOrientationKeyword,Size,swayConfigNumber " Disable focus open opening syn keyword swayConfigNoFocusKeyword no_focus contained syn match swayConfigDisableFocus /^\s*no_focus\s\+.*$/ contains=swayConfigWindowCommandSpecial,swayConfigNoFocusKeyword " Move client to specific workspace automatically syn keyword swayConfigAssignKeyword assign contained syn match swayConfigAssignSpecial /→/ contained syn match swayConfigAssign /^\s*assign\s\+.*$/ contains=swayConfigAssignKeyword,swayConfigWindowCommandSpecial,swayConfigAssignSpecial " X resources syn keyword swayConfigResourceKeyword set_from_resource contained syn match swayConfigResource /^\s*set_from_resource\s\+.*$/ contains=swayConfigResourceKeyword,swayConfigWindowCommandSpecial,swayConfigColor,swayConfigVariable " Auto start applications 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 " Automatically putting workspaces on specific screens syn keyword swayConfigWorkspaceKeyword workspace contained syn keyword swayConfigOutputKeyword output contained syn match swayConfigWorkspace /^\s*workspace\s\+.*$/ contains=swayConfigWorkspaceKeyword,swayConfigNumber,swayConfigString,swayConfigOutputKeyword " set display outputs syn match swayConfigOutput /^\s*output\s\+.*$/ contains=swayConfigOutputKeyword " set display focus syn keyword swayConfigFocusKeyword focus contained 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 swayConfigTitleAlignKeyword left center right contained syn match swayConfigTitleAlign /^\s*title_align\s\+.*$/ contains=swayConfigTitleAlignKeyword " Interprocess communication syn match swayConfigInterprocessKeyword /ipc-socket/ contained syn match swayConfigInterprocess /^\s*ipc-socket\s\+.*$/ contains=swayConfigInterprocessKeyword " Mouse warping syn keyword swayConfigMouseWarpingKeyword mouse_warping contained syn keyword swayConfigMouseWarpingType output none contained syn match swayConfigMouseWarping /^\s*mouse_warping\s\+\(output\|none\)\s\?$/ contains=swayConfigMouseWarpingKeyword,swayConfigMouseWarpingType " 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 " Popups during fullscreen mode syn keyword swayConfigPopupOnFullscreenKeyword popup_during_fullscreen contained syn keyword swayConfigPopuponFullscreenType smart ignore leave_fullscreen contained syn match swayConfigPopupOnFullscreen /^\s*popup_during_fullscreen\s\+\w\+\s\?$/ contains=swayConfigPopupOnFullscreenKeyword,swayConfigPopupOnFullscreenType " Focus wrapping syn keyword swayConfigFocusWrappingKeyword force_focus_wrapping focus_wrapping contained syn keyword swayConfigFocusWrappingType yes no contained syn match swayConfigFocusWrapping /^\s*\(force_\)\?focus_wrapping\s\+\(yes\|no\)\s\?$/ contains=swayConfigFocusWrappingType,swayConfigFocusWrappingKeyword " Forcing Xinerama syn keyword swayConfigForceXineramaKeyword force_xinerama contained syn match swayConfigForceXinerama /^\s*force_xinerama\s\+\(yes\|no\)\s\?$/ contains=swayConfigFocusWrappingType,swayConfigForceXineramaKeyword " Automatic back-and-forth when switching to the current workspace syn keyword swayConfigAutomaticSwitchKeyword workspace_auto_back_and_forth contained syn match swayConfigAutomaticSwitch /^\s*workspace_auto_back_and_forth\s\+\(yes\|no\)\s\?$/ contains=swayConfigFocusWrappingType,swayConfigAutomaticSwitchKeyword " Delay urgency hint syn keyword swayConfigTimeUnit ms contained syn keyword swayConfigDelayUrgencyKeyword force_display_urgency_hint contained syn match swayConfigDelayUrgency /^\s*force_display_urgency_hint\s\+\d\+\s\+ms\s\?$/ contains=swayConfigFocusWrappingType,swayConfigDelayUrgencyKeyword,swayConfigNumber,swayConfigTimeUnit " Focus on window activation syn keyword swayConfigFocusOnActivationKeyword focus_on_window_activation contained syn keyword swayConfigFocusOnActivationType smart urgent focus none contained syn match swayConfigFocusOnActivation /^\s*focus_on_window_activation\s\+\(smart\|urgent\|focus\|none\)\s\?$/ contains=swayConfigFocusOnActivationKeyword,swayConfigFocusOnActivationType " Automatic back-and-forth when switching to the current workspace 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 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 " Line continuation syn region swayConfigLineCont start=/^.*\\$/ end=/^.*$/ contains=swayConfigBlockKeyword,swayConfigString,swayConfigBind,swayConfigComment,swayConfigFont,swayConfigFocusWrappingType,swayConfigColor,swayConfigVariable transparent keepend extend " Includes with relative paths to config files syn keyword swayConfigInclude include contained syn match swayConfigFile /^include\s\(\~\?\/.*$\|\.\{0,2}\/.*$\)/ contains=swayConfigInclude " Define the highlighting. let b:current_syntax = "swayconfig" hi! def link swayConfigError Error hi! def link swayConfigTodo Todo hi! def link swayConfigComment Comment hi! def link swayConfigFontContent Type hi! def link swayConfigFocusOnActivationType Type hi! def link swayConfigPopupOnFullscreenType Type hi! def link swayConfigOrientationKeyword Type hi! def link swayConfigMouseWarpingType Type hi! def link swayConfigFocusFollowsMouseType Type hi! def link swayConfigGapStyleKeyword Type hi! def link swayConfigTitleAlignKeyword Type hi! def link swayConfigSmartGapKeyword Type hi! def link swayConfigSmartBorderKeyword Type hi! def link swayConfigLayoutKeyword Type hi! def link swayConfigBorderStyleKeyword Type hi! def link swayConfigEdgeKeyword Type hi! def link swayConfigAction Type hi! def link swayConfigCommand Type hi! def link swayConfigOutputKeyword Type hi! def link swayConfigWindowCommandSpecial Type hi! def link swayConfigFocusWrappingType Type hi! def link swayConfigUnitOr Type hi! def link swayConfigFontSize Constant hi! def link swayConfigColor Constant hi! def link swayConfigNumber Constant hi! def link swayConfigUnit Constant hi! def link swayConfigVariableAndModifier Constant hi! def link swayConfigTimeUnit Constant hi! def link swayConfigModifier Constant hi! def link swayConfigString Constant hi! def link swayConfigNegativeSize Constant hi! def link swayConfigFontSeparator Special hi! def link swayConfigVariableModifier Special hi! def link swayConfigSizeSpecial Special hi! def link swayConfigWindowSpecial Special hi! def link swayConfigAssignSpecial Special hi! def link swayConfigFontNamespace PreProc hi! def link swayConfigBindArgument PreProc hi! def link swayConfigNoStartupId PreProc hi! def link swayConfigFontKeyword Identifier hi! def link swayConfigBindKeyword Identifier hi! def link swayConfigOrientation Identifier hi! def link swayConfigGapStyle Identifier hi! def link swayConfigTitleAlign Identifier hi! def link swayConfigSmartGap Identifier 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 swayConfigCommandKeyword Identifier hi! def link swayConfigNoFocusKeyword Identifier hi! def link swayConfigInitializeKeyword Identifier 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 swayConfigInterprocessKeyword Identifier hi! def link swayConfigMouseWarpingKeyword Identifier hi! def link swayConfigFocusFollowsMouseKeyword Identifier hi! def link swayConfigPopupOnFullscreenKeyword Identifier hi! def link swayConfigFocusWrappingKeyword Identifier hi! def link swayConfigForceXineramaKeyword Identifier hi! def link swayConfigAutomaticSwitchKeyword Identifier hi! def link swayConfigDelayUrgencyKeyword Identifier hi! def link swayConfigFocusOnActivationKeyword Identifier hi! def link swayConfigDrawingMarksKeyword Identifier hi! def link swayConfigBlockKeyword Identifier hi! def link swayConfigVariable Statement hi! def link swayConfigArbitraryCommand Type hi! def link swayConfigInclude Identifier hi! def link swayConfigFile Constant hi! def link swayConfigFloatingModifier Identifier hi! def link swayConfigFloatingMouseAction Type hi! def link swayConfigFocusKeyword Type hi! def link swayConfigFocusType Identifier