kitty.vim (4853B)
1 " Vim syntax file 2 " Language: Kitty configuration files 3 " Maintainer: MD. Mouinul Hossain Shawon <mdmouinulhossainshawon [at] gmail.com> 4 " Last Change: Tue Sep 16 19:10:59 +06 2025 5 6 if exists("b:current_syntax") 7 finish 8 endif 9 10 syn sync fromstart 11 12 " Option """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 13 " Format: `<option_name> ...`< 14 15 syn match kittyString /\S\+/ contains=kittyAlpha contained 16 syn match kittyNumber /[+\-*\/]\{0,1}[0-9.]\+/ contained 17 syn match kittyAlpha /@[0-9.]\+/ contained 18 syn match kittyColor /#[0-9a-fA-F]\{3,6}/ nextgroup=kittyAlpha contained 19 syn keyword kittyBoolean contained yes no 20 syn keyword kittyConstant contained none auto monospace bold italic ratio always never 21 22 syn match kittyFlag /[+-]\{1,2}[a-zA-Z0-9-_]\+/ contained 23 syn match kittyParameter /-\{1,2}[a-zA-Z0-9-]\+=\S\+/ contained 24 25 syn cluster kittyPrimitive contains=kittyNumber,kittyBoolean,kittyConstant,kittyColor,kittyString,kittyFlag,kittyParameter,kittyAlpha 26 27 syn region kittyOption start="^\w" skip="[\n\r][ \t]*\\" end="[\r\n]" contains=kittyOptionName 28 syn match kittyOptionName /\w\+/ nextgroup=kittyOptionValue skipwhite contained 29 syn region kittyOptionValue start="\S" skip="[\r\n][ \t]*\\" end="\ze[\r\n]" contains=@kittyPrimitive contained 30 31 " Keyboard shortcut """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" 32 " Format: `map <keys> <action>?` 33 34 syn match kittyKey /[^ \t\r\n+>]\+/ contained 35 syn match kittyCtrl /\<\(ctrl\|control\)\>\|\^/ contained 36 syn match kittyAlt /\<\(alt\|opt\|option\)\>\|⌥/ contained 37 syn match kittyShift /\<\(shift\)\>\|⇧/ contained 38 syn match kittySuper /\<\(cmd\|super\|command\)\>\|⌘/ contained 39 40 syn match kittyAnd /+/ contained 41 syn match kittyWith />/ contained 42 43 syn region kittyMap start="^\s*map" skip="[\r\n][ \t]*\\" end="[\r\n]" contains=kittyMapName,kittyMapValue 44 45 syn keyword kittyMapName nextgroup=kittyMapValue skipwhite contained map 46 syn region kittyMapValue start="\S" skip="[\r\n][ \t]*\\" end="\ze[\r\n]" contains=kittyMapSeq,kittyMapAction contained 47 48 syn region kittyMapAction start="\S" skip="[\r\n][ \t]*\\" end="\ze[\r\n]" contains=@kittyPrimitive contained 49 syn region kittyMapSeq start="\S" end="\ze\s\|^\ze[ \t]*\\" nextgroup=kittyMapAction,kittyMouseMapType skipwhite contains=kittyCtrl,kittyAlt,kittyShift,kittySuper,kittyAnd,kittyWith,kittyKey contained 50 51 " Mouse shortcut """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 52 " Format: `mouse_map <keys> <type> <grabbed> <action>?` 53 54 syn region kittyMouseMap start="^\s*mouse_map" skip="[\r\n][ \t]*\\" end="[\r\n]" contains=kittyMouseMapName,kittyMouseMapValue 55 56 syn keyword kittyMouseMapName nextgroup=kittyMouseMapValue contained mouse_map 57 syn region kittyMouseMapValue start="\S" skip="[\r\n][ \t]*\\" end="\ze[\r\n]" contains=kittyMapSeq,kittyMouseMapType,kittyMouseMapGrabbed contained 58 59 syn region kittyMouseMapAction start="\S" skip="[\r\n][ \t]*\\" end="\ze[\r\n]" contains=@kittyPrimitive contained 60 61 syn keyword kittyMouseMapType nextgroup=kittyMouseMapGrabbed skipwhite contained press release doublepress triplepress click doubleclick 62 syn match kittyMouseMapGrabbed /\(grabbed\|ungrabbed\)\%(,\(grabbed\|ungrabbed\)\)\?/ nextgroup=kittyMouseMapAction skipwhite contained 63 64 " Kitty modifier """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 65 " Format: `kitty_mod <keys>` 66 67 syn region kittyMod start="^\s*kitty_mod" end="[\r\n]" contains=kittyModName,kittyMapSeq 68 69 syn keyword kittyModName nextgroup=kittyMapSeq contained kitty_mod 70 71 " Comment """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 72 " Format: `# <content>`` 73 74 syn match kittyComment /^#.*$/ 75 76 " Line continuation """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" 77 " Allows continuing lines by adding `\` at the start of a line. 78 " May have leading spaces & tabs. 79 80 syn match kittyLineContinue /^[ \t]*\\[ \t]*/ containedin=kittyOptionValue,kittyMap,kittyMapAction,kittyMouseMap,kittyMouseMapValue contained 81 82 " Highlight groups """""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 83 84 hi link kittyString String 85 hi link kittyNumber Number 86 hi link kittyAlpha Type 87 hi link kittyColor Constant 88 hi link kittyBoolean Boolean 89 hi link kittyConstant Constant 90 91 hi link kittyFlag Constant 92 hi link kittyParameter Special 93 94 hi link kittyOptionName Keyword 95 hi link kittyModName Keyword 96 97 hi link kittyKey Special 98 hi link kittyCtrl Constant 99 hi link kittyAlt Constant 100 hi link kittyShift Constant 101 hi link kittySuper Constant 102 103 hi link kittyAnd Operator 104 hi link kittyWith Operator 105 106 hi link kittyMapName Function 107 108 hi link kittyMouseMapName Function 109 hi link kittyMouseMapType Type 110 hi link kittyMouseMapGrabbed Constant 111 112 hi link kittyComment Comment 113 hi link kittyLineContinue Comment 114 115 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 116 117 let b:current_syntax = "kitty"