neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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"