Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
rasi.vim305 linesDownload Raw Back to syntax
1" Vim syntax file2" Language:	rasi (Rofi Advanced Style Information)3" Maintainer:	Pierrick Guillaume  <pierguill@gmail.com>4" Last Change:	2024 May 215" 2025 Apr 16 by Vim Project (set 'cpoptions' for line continuation, #17121)6"7" Syntax support for rasi config file8 9" This file is based on syntax defined in rofi-theme man page10" https://man.archlinux.org/man/community/rofi/rofi-theme.5.en11 12if exists('b:current_syntax')13  finish14endif15let b:current_syntax = 'rasi'16let s:cpo_save = &cpo17set cpo&vim18 19" String {{{20syn region rasiString    start=+"+ skip=+\\"+ end=+"+ oneline contained21syn match  rasiCharacter +L\='[^\\]'+ contained22 23syn cluster rasiPropertyVals add=rasiString,rasiCharacter24" }}}25 26" Integer/Real {{{27syn match rasiNumber  display contained '[+-]\?\d\+\(\.\d\+\)\?'28 29syn cluster rasiPropertyVals add=rasiNumber30" }}}31 32" Boolean {{{33syn keyword rasiBool  contained true false34 35syn cluster rasiPropertyVals add=rasiBool36" }}}37 38" Image {{{39syn match rasiInvImage        display contained 'url([^)]*)'40syn keyword rasiImageK        contained url linear-gradient41 42syn match rasiImage           display contained transparent 'url(\s*"\([^"]\|\\"\)\+"\(\s*,\s*\(none\|both\|width\|height\)\)\?\s*)' contains=rasiImageScale,rasiString,rasiImageK43syn keyword rasiImageScale  contained none both width height44 45syn match rasiImage           display contained transparent 'linear-gradient(\s*\(\(top\|left\|right\|bottom\)\s*,\s*\)\?[^,)]\+\s*\(,\s*[^,)]\+\s*\)\+)' contains=rasiImageDirection,@rasiColors,rasiImageK46syn keyword rasiImageDirection contained top left right bottom47 48syn match rasiImage           display contained transparent 'linear-gradient(\s*\d\+\(rad\|grad\|deg\)\s*,\s*[^,)]\+\s*\(,\s*[^,)]\+\s*\)\+)' contains=rasiImageUnit,@rasiColor,@rasiInvColor,rasiNumber,rasiImageK49syn match rasiImageUnit       display contained '\(rad\|grad\|deg\)\>'50 51syn cluster rasiPropertyVals  add=rasiInvImage,rasiImage52" }}}53 54" Reference {{{55syn match rasiReference       display contained '@[a-zA-Z0-9-]\+'56 57syn keyword rasiVarReferenceK contained var58 59syn match rasiInvVarReference display contained 'var([^)]*)'60syn match rasiVarReference    display contained transparent 'var(\s*[a-zA-Z0-9-]\+\s*,\s*\(\a\+\s*([^)]*)\)\?[^),]*)' contains=rasiVarReferenceK,rasiPropertyIdRef,@rasiPropertyVals61syn match rasiPropertyIdRef   display contained '\a[a-zA-Z0-9-]*'62 63syn cluster rasiPropertyVals  add=rasiReference,rasiInvVarReference,rasiVarReference64" }}}65 66" Env variable {{{67syn match rasiInvEnv          display contained '${[^}]*}'68syn match rasiEnv             display contained '${\w\+}'hs=s+2,he=e-169 70syn keyword rasiEnvVarK       contained env71 72syn match rasiInvEnvVar       display contained 'env([^)]*)'73syn match rasiEnvVar          display contained transparent 'env(\s*\w\+\s*,\s*\(\a\+([^)]*)\)\?[^),]*)' contains=rasiEnvVarK,rasiEnvRef,@rasiPropertyVals74syn match rasiEnvRef          display contained '\a\w*'75 76syn cluster rasiPropertyVals  add=rasiEnv,rasiInvEnv,rasiInvEnvVar,rasiEnvVar77" }}}78 79" Color {{{80syn keyword rasiColorK        contained rgb[a] hsl[a] hwb[a] cmyk81 82syn match rasiHexColor        display contained '#\x\{3,4}'83syn match rasiHexColor        display contained '#\x\{6}'84syn match rasiHexColor        display contained '#\x\{8}'85syn match rasiInvHexColor     display contained '#\x\{5}\X'he=e-1,me=e-186syn match rasiInvHexColor     display contained '#\x\{7}\X'he=e-1,me=e-187 88syn match rasiInvRGBColor     display contained 'rgb\(a\)\?([^)]*)'89syn match rasiRGBColor        display contained transparent 'rgb\(a\)\?(\s*\d\+\s*\(%\)\?\s*,\(\s*\d\+\s*\(%\)\?\s*\){2}\(,\s*\(\d\(\.\d*\)\?\|\d\{,3}%\)\s*\)\?)' contains=rasiColorK,rasiNumber,rasiDistance90 91syn match rasiInvHSLColor     display contained 'h\(sl\|wb\)\(a\)\?([^)]*)'92syn match rasiHSLColor        display contained transparent 'h\(sl\|wb\)\(a\)\?(\s*\d\+\(\.\d*\)\?\(deg\|rad\|grad\|turn\)\?\s*\(,\s*\(\d\(\.\d*\)\?\|\d\{,3}%\)\s*\)\{2,3})' contains=rasiColorK,rasiNumber,rasiDistance93 94 95"this matches doesn't works properly (too long ?)96syn match rasiInvCMYKColor  display contained 'cmyk([^)]*)'97syn match rasiCMYKColor     display contained transparent 'cmyk(\s*\(\d\(\.\d*\)\?\|\d\{,3}%\)\s*\(,\s*\(\d\(\.\d*\)\?\|\d\{,3}%\)\s*\)\{3,4})' contains=rasiColorK,rasiNumber,rasiDistance98 99syn case ignore100syn keyword rasiNamedColor contained101      \ AliceBlue AntiqueWhite Aqua Aquamarine Azure Beige Bisque Black BlanchedAlmond Blue102      \ BlueViolet Brown BurlyWood CadetBlue Chartreuse Chocolate Coral CornflowerBlue Cornsilk103      \ Crimson Cyan DarkBlue DarkCyan DarkGoldenRod DarkGray DarkGrey DarkGreen DarkKhaki DarkMagenta104      \ DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen Dark SlateBlue105      \ DarkSlateGray DarkSlateGrey DarkTurquoise DarkViolet DeepPink DeepSkyBlue DimGray DimGrey106      \ DodgerBlue FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite Gold GoldenRod107      \ Gray Grey Green GreenYellow HoneyDew HotPink IndianRed Indigo Ivory Khaki Lavender108      \ LavenderBlush LawnGreen LemonChiffon LightBlue LightCoral LightCyan LightGoldenRodYellow109      \ LightGray LightGrey LightGreen LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray110      \ LightSlateGrey LightSteelBlue LightYellow Lime LimeGreen Linen Magenta Maroon MediumAquaMarine111      \ MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen112      \ MediumTurquoise MediumVioletRed MidnightBlue MintCream MistyRose Moccasin NavajoWhite Navy113      \ OldLace Olive OliveDrab Orange OrangeRed Orchid PaleGoldenRod PaleGreen PaleTurquoise114      \ PaleVioletRed PapayaWhip PeachPuff Peru Pink Plum PowderBlue Purple RebeccaPurple Red115      \ RosyBrown RoyalBlue SaddleBrown Salmon SandyBrown SeaGreen SeaShell Sienna Silver SkyBlue116      \ SlateBlue SlateGray SlateGrey Snow SpringGreen SteelBlue Tan Teal Thistle Tomato Turquoise117      \ Violet Wheat White WhiteSmoke Yellow YellowGreen transparent[] "uses `[]` to escape keyword118 119syn cluster rasiColors        add=rasiHexColor,rasiRGBColor,rasiHSLColor,rasiCMYKColor,rasiNamedColor120syn cluster rasiColors        add=rasiInvHexColor,rasiInvRGBColor,rasiInvHSLColor,rasiInvCMYKColor121 122syn cluster rasiPropertyVals  add=@rasiColors123" }}}124 125" Text-Style {{{126syn keyword rasiTextStyle contained bold italic underline strikethrough none127 128syn cluster rasiPropertyVals  add=rasiTextStyle129" }}}130 131" Line-Style {{{132syn keyword rasiLineStyle contained dash solid133 134syn cluster rasiPropertyVals  add=rasiLineStyle135" }}}136 137" Distance {{{138syn match rasiDistanceUnit    display contained '\(px\|em\|ch\|%\|mm\)'139 140syn match rasiInvDistance     display contained '[+-]\?\d\+\.\d\+\(px\|mm\)'141syn match rasiDistance        display contained transparent '[-+]\?\d\+\(px\|mm\)' contains=rasiDistanceUnit,rasiNumber142syn match rasiDistance        display contained transparent '[+-]\?\d\+\(\.\d\+\)\?\(em\|ch\|%\)' contains=rasiDistanceUnit,rasiNumber143 144syn keyword rasiDistanceCalc  contained calc nextgroup=rasiDistanceCalcBody145syn region rasiDistanceCalcBody display contained start=+(+ end=+)+ contains=rasiDistanceCalcOp,rasiDistance,rasiInvDistance146syn match rasiDistanceCalcOp  display contained '\(+\|-\|/\|\*\|%\|min\|max\)'147 148syn cluster rasiPropertyVals  add=rasiInvDistance,rasiDistance,rasiDistanceCalc149" }}}150 151" Position {{{152syn keyword rasiPosition    contained center east north west south153 154syn cluster rasiPropertyVals  add=rasiPosition155" }}}156 157" Orientation {{{158syn keyword rasiOrientation   contained horizontal vertical159 160syn cluster rasiPropertyVals  add=rasiOrientation161" }}}162 163" Cursor {{{164syn keyword rasiCursor        contained default pointer text165 166syn cluster rasiPropertyVals  add=rasiCursor167" }}}168 169" Keyword List {{{170syn region rasiKeywordList    contained start=+\[+ end=+\]+ contains=rasiPropertyIdRef171 172syn cluster rasiPropertyVals  add=rasiKeywordList173" }}}174 175" Inherit {{{176syn keyword rasiInherit       contained inherit children177 178syn cluster rasiPropertyVals  add=rasiInherit179" }}}180 181syn match rasiGlobalImport    display '^\s*@\(import\|theme\)' nextgroup=rasiString skipwhite182 183" Section {{{184" syn region rasiSection transparent start='^[^{]\+{'me=e-1 end='}' contains=rasiSectionOpenning,rasiSectionContent185syn match rasiSectionOpenning transparent '^[^{]\+{'me=e-1 contains=rasiGlobalSection,rasiWidgetName,rasiGlobalMedia nextgroup=rasiThemeSectionContent186" syn match rasiThemeInnerSectionOpenning transparent '^[^:${]\+{'me=e-1 contains=rasiWidgetName nextgroup=rasiThemeInnerSectionContent contained187 188syn match rasiGlobalMedia     display contained '^\s*@media' nextgroup=rasiInvMediaBody,rasiMediaBody skipwhite189syn match rasiInvMediaBody    display contained '([^)]*)'190syn match rasiMediaBody       display contained '(\s*[a-z-]\+\s*:\s*\d\+\(px\|mm\)\?\s*)' contains=rasiMediaK,rasiNumber,rasiDistance191syn keyword rasiMediaK        contained min-width max-width min-height max-height min-aspect-ratio max-aspect-ratio monitor-id192 193syn match rasiGlobalSection   display contained '^*'194syn match rasiWidgetName      display contained '[a-zA-Z0-9-]\+' nextgroup=rasiVisibleMod skipwhite195 196syn keyword rasiVisibleMod    contained normal selected alternate nextgroup=rasiVisibleMod,rasiStateWrapper skipwhite197syn match rasiStateWrapper    display contained transparent '\.\(normal\|active\|urgent\)' contains=rasiState198syn keyword rasiState         contained normal active urgent199 200 201syn region  rasiThemeSectionContent transparent start="{" end="}" contains=rasiProperty,rasiComment,rasiCommentL,rasiSectionOpenning contained202" syn region  rasiThemeInnerSectionContent transparent start="{" end="}" contains=rasiProperty,rasiComment,rasiCommentL,rasiThemeInnerSectionOpenning contained203 204syn match rasiProperty transparent '^\s*\S\+\s*:.*;\s*$' keepend contained contains=rasiPropertyId,rasiInvPropertyId,rasiPropertyVal,rasiComment,rasiCommentL205syn match rasiInvPropertyId '^\([^:]\&[^/]\{2}\)*:'me=e-1 contained206syn match rasiPropertyId  '^\s*[0-9a-zA-Z-]\+\s*:'me=e-1 contained207syn match rasiInvPropertyVal ':[^;];\s*\S\+\s*$'ms=s+1,hs=s+1208syn match rasiPropertyVal ':\s*[^;]\+;\s*$'ms=s+1,hs=s+1 contained contains=@rasiPropertyVals209" }}}210 211" Comment {{{212syn cluster rasiCommentGroup  contains=rasiTodo,rasiBadContinuation213 214syn region rasiCommentL       start="//" skip="\\$" end="$" keepend contains=@rasiCommentGroup,@Spell215syn region rasiComment        start="/\*" end="\*/" contains=@rasiCommentGroup,rasiCommentStartError,@Spell fold extend216 217syn match rasiCommentError    display '\*/'218 219syn keyword rasiTodo          contained TODO FIXME XXX NOTE220 221if exists("rasi_minlines")222  let b:rasi_minlines = rasi_minlines223else224  let b:rasi_minlines = 50225endif226exec "syn sync ccomment rasiComment minlines=" . b:rasi_minlines227" }}}228 229 230 231" Highlighting: {{{232hi def link rasiError           Error233 234hi def link rasiTodo            Todo235hi def link rasiComment         Comment236hi def link rasiCommentStart    rasiComment237hi def link rasiCommentL        rasiComment238hi def link rasiCommentError    rasiError239 240hi def link rasiString          String241hi def link rasiNumber          Number242hi def link rasiBool            Boolean243 244hi def link rasiImageK          Function245hi def link rasiImageScale      Keyword246hi def link rasiImageDirection  Keyword247hi def link rasiImageUnit       Type248hi def link rasiInvImage        rasiError249 250hi def link rasiHexColor        Number251hi def link rasiColorK          Function252hi def link rasiNamedColor      Number253hi def link rasiInvColor        rasiError254hi def link rasiInvHexColor     rasiInvColor255hi def link rasiInvRGBColor     rasiInvColor256hi def link rasiInvHSLColor     rasiInvColor257hi def link rasiInvCMYKColor    rasiInvColor258 259hi def link rasiTextStyle       Keyword260hi def link rasiLineStyle       Keyword261 262hi def link rasiDistanceUnit    Type263hi def link rasiDistanceCalc    Function264hi def link rasiDistanceCalcOp  Operator265hi def link rasiInvDistance     rasiError266 267hi def link rasiPosition        Keyword268hi def link rasiOrientation     Keyword269hi def link rasiCursor          Keyword270 271hi def link rasiReference       Identifier272hi def link rasiPropertyIdRef   Identifier273hi def link rasiVarReferenceK   Function274hi def link rasiInvVarReference rasiError275 276hi def link rasiEnv             Identifier277hi def link rasiEnvRef          Identifier278hi def link rasiEnvVarK         Function279hi def link rasiInvEnv          rasiError280hi def link rasiInvEnvVar       rasiError281 282hi def link rasiWidgetName      StorageClass283hi def link rasiGlobalSection   StorageClass284hi def link rasiVisibleMod      Type285hi def link rasiState           Tag286 287hi def link rasiInherit         Identifier288 289hi def link rasiGlobalImport    Include290 291hi def link rasiGlobalMedia     Preproc292hi def link rasiMediaK          Keyword293hi def link rasiInvMediaBody    rasiError294 295hi def link rasiPropertyId      Identifier296hi def link rasiInvProperty     rasiError297hi def link rasiInvPropertyId   rasiError298hi def link rasiInvPropertyVal  rasiError299" }}}300 301let &cpo = s:cpo_save302unlet s:cpo_save303 304" vim:ts=8305 
codekingpro/portable-devtools · Team Ai