mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 10:45:16 -07:00
vim-patch:9.1.0453: filetype: rasi files are not recognized
Problem: filetype: rasi files are not recognized
Solution: regonize '*.rasi' files as rasi filetype,
include a filetype and syntax plugin
(Pierrick Guillaume)
ported from: https://github.com/Fymyte/rasi.vim
closes: vim/vim#14821
280e5b13ca
Co-authored-by: Pierrick Guillaume <pierguill@gmail.com>
This commit is contained in:
parent
7c48cedf30
commit
07af492f63
@ -2575,6 +2575,13 @@ To highlight R code in knitr chunk headers, add to your |vimrc|: >
|
||||
let rrst_syn_hl_chunk = 1
|
||||
|
||||
|
||||
RASI *rasi.vim* *ft-rasi-syntax*
|
||||
|
||||
Rasi stands for Rofi Advanced Style Information. It is used by the program
|
||||
`rofi` to style the rendering of the search window. The language is heavily
|
||||
inspired by CSS stylesheet. Files with the following extensions are recognized
|
||||
as rasi files: .rasi.
|
||||
|
||||
READLINE *readline.vim* *ft-readline-syntax*
|
||||
|
||||
The readline library is primarily used by the BASH shell, which adds quite a
|
||||
|
25
runtime/ftplugin/rasi.vim
Normal file
25
runtime/ftplugin/rasi.vim
Normal file
@ -0,0 +1,25 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: RASI
|
||||
" Maintainer: Pierrick Guillaume <pierguill@gmail.com>
|
||||
" Last Change: 2024 May 21
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:undo_ftplugin = "setl com< cms< isk< inc<"
|
||||
|
||||
setlocal comments=s1:/*,mb:*,ex:*/
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal iskeyword+=-
|
||||
|
||||
let &l:include = '^\s*@import\s\+\%(url(\)\='
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: ts=8
|
@ -873,6 +873,7 @@ local extension = {
|
||||
t6 = 'raku',
|
||||
p6 = 'raku',
|
||||
raml = 'raml',
|
||||
rasi = 'rasi',
|
||||
rbs = 'rbs',
|
||||
rego = 'rego',
|
||||
rem = 'remind',
|
||||
|
298
runtime/syntax/rasi.vim
Normal file
298
runtime/syntax/rasi.vim
Normal file
@ -0,0 +1,298 @@
|
||||
" Vim syntax file
|
||||
" Language: rasi (Rofi Advanced Style Information)
|
||||
" Maintainer: Pierrick Guillaume <pierguill@gmail.com>
|
||||
" Last Change: 2024 May 21
|
||||
"
|
||||
" Syntax support for rasi config file
|
||||
|
||||
" This file is based on syntax defined in rofi-theme man page
|
||||
" https://man.archlinux.org/man/community/rofi/rofi-theme.5.en
|
||||
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
let b:current_syntax = 'rasi'
|
||||
|
||||
" String {{{
|
||||
syn region rasiString start=+"+ skip=+\\"+ end=+"+ oneline contained
|
||||
syn match rasiCharacter +L\='[^\\]'+ contained
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiString,rasiCharacter
|
||||
" }}}
|
||||
|
||||
" Integer/Real {{{
|
||||
syn match rasiNumber display contained '[+-]\?\d\+\(\.\d\+\)\?'
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiNumber
|
||||
" }}}
|
||||
|
||||
" Boolean {{{
|
||||
syn keyword rasiBool contained true false
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiBool
|
||||
" }}}
|
||||
|
||||
" Image {{{
|
||||
syn match rasiInvImage display contained 'url([^)]*)'
|
||||
syn keyword rasiImageK contained url linear-gradient
|
||||
|
||||
syn match rasiImage display contained transparent 'url(\s*"\([^"]\|\\"\)\+"\(\s*,\s*\(none\|both\|width\|height\)\)\?\s*)' contains=rasiImageScale,rasiString,rasiImageK
|
||||
syn keyword rasiImageScale contained none both width height
|
||||
|
||||
syn match rasiImage display contained transparent 'linear-gradient(\s*\(\(top\|left\|right\|bottom\)\s*,\s*\)\?[^,)]\+\s*\(,\s*[^,)]\+\s*\)\+)' contains=rasiImageDirection,@rasiColors,rasiImageK
|
||||
syn keyword rasiImageDirection contained top left right bottom
|
||||
|
||||
syn match rasiImage display contained transparent 'linear-gradient(\s*\d\+\(rad\|grad\|deg\)\s*,\s*[^,)]\+\s*\(,\s*[^,)]\+\s*\)\+)' contains=rasiImageUnit,@rasiColor,@rasiInvColor,rasiNumber,rasiImageK
|
||||
syn match rasiImageUnit display contained '\(rad\|grad\|deg\)\>'
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiInvImage,rasiImage
|
||||
" }}}
|
||||
|
||||
" Reference {{{
|
||||
syn match rasiReference display contained '@[a-zA-Z0-9-]\+'
|
||||
|
||||
syn keyword rasiVarReferenceK contained var
|
||||
|
||||
syn match rasiInvVarReference display contained 'var([^)]*)'
|
||||
syn match rasiVarReference display contained transparent 'var(\s*[a-zA-Z0-9-]\+\s*,\s*\(\a\+\s*([^)]*)\)\?[^),]*)' contains=rasiVarReferenceK,rasiPropertyIdRef,@rasiPropertyVals
|
||||
syn match rasiPropertyIdRef display contained '\a[a-zA-Z0-9-]*'
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiReference,rasiInvVarReference,rasiVarReference
|
||||
" }}}
|
||||
|
||||
" Env variable {{{
|
||||
syn match rasiInvEnv display contained '${[^}]*}'
|
||||
syn match rasiEnv display contained '${\w\+}'hs=s+2,he=e-1
|
||||
|
||||
syn keyword rasiEnvVarK contained env
|
||||
|
||||
syn match rasiInvEnvVar display contained 'env([^)]*)'
|
||||
syn match rasiEnvVar display contained transparent 'env(\s*\w\+\s*,\s*\(\a\+([^)]*)\)\?[^),]*)' contains=rasiEnvVarK,rasiEnvRef,@rasiPropertyVals
|
||||
syn match rasiEnvRef display contained '\a\w*'
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiEnv,rasiInvEnv,rasiInvEnvVar,rasiEnvVar
|
||||
" }}}
|
||||
|
||||
" Color {{{
|
||||
syn keyword rasiColorK contained rgb[a] hsl[a] hwb[a] cmyk
|
||||
|
||||
syn match rasiHexColor display contained '#\x\{3,4}'
|
||||
syn match rasiHexColor display contained '#\x\{6}'
|
||||
syn match rasiHexColor display contained '#\x\{8}'
|
||||
syn match rasiInvHexColor display contained '#\x\{5}\X'he=e-1,me=e-1
|
||||
syn match rasiInvHexColor display contained '#\x\{7}\X'he=e-1,me=e-1
|
||||
|
||||
syn match rasiInvRGBColor display contained 'rgb\(a\)\?([^)]*)'
|
||||
syn 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,rasiDistance
|
||||
|
||||
syn match rasiInvHSLColor display contained 'h\(sl\|wb\)\(a\)\?([^)]*)'
|
||||
syn 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,rasiDistance
|
||||
|
||||
|
||||
"this matches doesn't works properly (too long ?)
|
||||
syn match rasiInvCMYKColor display contained 'cmyk([^)]*)'
|
||||
syn match rasiCMYKColor display contained transparent 'cmyk(\s*\(\d\(\.\d*\)\?\|\d\{,3}%\)\s*\(,\s*\(\d\(\.\d*\)\?\|\d\{,3}%\)\s*\)\{3,4})' contains=rasiColorK,rasiNumber,rasiDistance
|
||||
|
||||
syn case ignore
|
||||
syn keyword rasiNamedColor contained
|
||||
\ AliceBlue AntiqueWhite Aqua Aquamarine Azure Beige Bisque Black BlanchedAlmond Blue
|
||||
\ BlueViolet Brown BurlyWood CadetBlue Chartreuse Chocolate Coral CornflowerBlue Cornsilk
|
||||
\ Crimson Cyan DarkBlue DarkCyan DarkGoldenRod DarkGray DarkGrey DarkGreen DarkKhaki DarkMagenta
|
||||
\ DarkOliveGreen DarkOrange DarkOrchid DarkRed DarkSalmon DarkSeaGreen Dark SlateBlue
|
||||
\ DarkSlateGray DarkSlateGrey DarkTurquoise DarkViolet DeepPink DeepSkyBlue DimGray DimGrey
|
||||
\ DodgerBlue FireBrick FloralWhite ForestGreen Fuchsia Gainsboro GhostWhite Gold GoldenRod
|
||||
\ Gray Grey Green GreenYellow HoneyDew HotPink IndianRed Indigo Ivory Khaki Lavender
|
||||
\ LavenderBlush LawnGreen LemonChiffon LightBlue LightCoral LightCyan LightGoldenRodYellow
|
||||
\ LightGray LightGrey LightGreen LightPink LightSalmon LightSeaGreen LightSkyBlue LightSlateGray
|
||||
\ LightSlateGrey LightSteelBlue LightYellow Lime LimeGreen Linen Magenta Maroon MediumAquaMarine
|
||||
\ MediumBlue MediumOrchid MediumPurple MediumSeaGreen MediumSlateBlue MediumSpringGreen
|
||||
\ MediumTurquoise MediumVioletRed MidnightBlue MintCream MistyRose Moccasin NavajoWhite Navy
|
||||
\ OldLace Olive OliveDrab Orange OrangeRed Orchid PaleGoldenRod PaleGreen PaleTurquoise
|
||||
\ PaleVioletRed PapayaWhip PeachPuff Peru Pink Plum PowderBlue Purple RebeccaPurple Red
|
||||
\ RosyBrown RoyalBlue SaddleBrown Salmon SandyBrown SeaGreen SeaShell Sienna Silver SkyBlue
|
||||
\ SlateBlue SlateGray SlateGrey Snow SpringGreen SteelBlue Tan Teal Thistle Tomato Turquoise
|
||||
\ Violet Wheat White WhiteSmoke Yellow YellowGreen transparent[] "uses `[]` to escape keyword
|
||||
|
||||
syn cluster rasiColors add=rasiHexColor,rasiRGBColor,rasiHSLColor,rasiCMYKColor,rasiNamedColor
|
||||
syn cluster rasiColors add=rasiInvHexColor,rasiInvRGBColor,rasiInvHSLColor,rasiInvCMYKColor
|
||||
|
||||
syn cluster rasiPropertyVals add=@rasiColors
|
||||
" }}}
|
||||
|
||||
" Text-Style {{{
|
||||
syn keyword rasiTextStyle contained bold italic underline strikethrough none
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiTextStyle
|
||||
" }}}
|
||||
|
||||
" Line-Style {{{
|
||||
syn keyword rasiLineStyle contained dash solid
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiLineStyle
|
||||
" }}}
|
||||
|
||||
" Distance {{{
|
||||
syn match rasiDistanceUnit display contained '\(px\|em\|ch\|%\|mm\)'
|
||||
|
||||
syn match rasiInvDistance display contained '[+-]\?\d\+\.\d\+\(px\|mm\)'
|
||||
syn match rasiDistance display contained transparent '[-+]\?\d\+\(px\|mm\)' contains=rasiDistanceUnit,rasiNumber
|
||||
syn match rasiDistance display contained transparent '[+-]\?\d\+\(\.\d\+\)\?\(em\|ch\|%\)' contains=rasiDistanceUnit,rasiNumber
|
||||
|
||||
syn keyword rasiDistanceCalc contained calc nextgroup=rasiDistanceCalcBody
|
||||
syn region rasiDistanceCalcBody display contained start=+(+ end=+)+ contains=rasiDistanceCalcOp,rasiDistance,rasiInvDistance
|
||||
syn match rasiDistanceCalcOp display contained '\(+\|-\|/\|\*\|%\|min\|max\)'
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiInvDistance,rasiDistance,rasiDistanceCalc
|
||||
" }}}
|
||||
|
||||
" Position {{{
|
||||
syn keyword rasiPosition contained center east north west south
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiPosition
|
||||
" }}}
|
||||
|
||||
" Orientation {{{
|
||||
syn keyword rasiOrientation contained horizontal vertical
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiOrientation
|
||||
" }}}
|
||||
|
||||
" Cursor {{{
|
||||
syn keyword rasiCursor contained default pointer text
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiCursor
|
||||
" }}}
|
||||
|
||||
" Keyword List {{{
|
||||
syn region rasiKeywordList contained start=+\[+ end=+\]+ contains=rasiPropertyIdRef
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiKeywordList
|
||||
" }}}
|
||||
|
||||
" Inherit {{{
|
||||
syn keyword rasiInherit contained inherit children
|
||||
|
||||
syn cluster rasiPropertyVals add=rasiInherit
|
||||
" }}}
|
||||
|
||||
syn match rasiGlobalImport display '^\s*@\(import\|theme\)' nextgroup=rasiString skipwhite
|
||||
|
||||
" Section {{{
|
||||
" syn region rasiSection transparent start='^[^{]\+{'me=e-1 end='}' contains=rasiSectionOpenning,rasiSectionContent
|
||||
syn match rasiSectionOpenning transparent '^[^{]\+{'me=e-1 contains=rasiGlobalSection,rasiWidgetName,rasiGlobalMedia nextgroup=rasiThemeSectionContent
|
||||
" syn match rasiThemeInnerSectionOpenning transparent '^[^:${]\+{'me=e-1 contains=rasiWidgetName nextgroup=rasiThemeInnerSectionContent contained
|
||||
|
||||
syn match rasiGlobalMedia display contained '^\s*@media' nextgroup=rasiInvMediaBody,rasiMediaBody skipwhite
|
||||
syn match rasiInvMediaBody display contained '([^)]*)'
|
||||
syn match rasiMediaBody display contained '(\s*[a-z-]\+\s*:\s*\d\+\(px\|mm\)\?\s*)' contains=rasiMediaK,rasiNumber,rasiDistance
|
||||
syn keyword rasiMediaK contained min-width max-width min-height max-height min-aspect-ratio max-aspect-ratio monitor-id
|
||||
|
||||
syn match rasiGlobalSection display contained '^*'
|
||||
syn match rasiWidgetName display contained '[a-zA-Z0-9-]\+' nextgroup=rasiVisibleMod skipwhite
|
||||
|
||||
syn keyword rasiVisibleMod contained normal selected alternate nextgroup=rasiVisibleMod,rasiStateWrapper skipwhite
|
||||
syn match rasiStateWrapper display contained transparent '\.\(normal\|active\|urgent\)' contains=rasiState
|
||||
syn keyword rasiState contained normal active urgent
|
||||
|
||||
|
||||
syn region rasiThemeSectionContent transparent start="{" end="}" contains=rasiProperty,rasiComment,rasiCommentL,rasiSectionOpenning contained
|
||||
" syn region rasiThemeInnerSectionContent transparent start="{" end="}" contains=rasiProperty,rasiComment,rasiCommentL,rasiThemeInnerSectionOpenning contained
|
||||
|
||||
syn match rasiProperty transparent '^\s*\S\+\s*:.*;\s*$' keepend contained contains=rasiPropertyId,rasiInvPropertyId,rasiPropertyVal,rasiComment,rasiCommentL
|
||||
syn match rasiInvPropertyId '^\([^:]\&[^/]\{2}\)*:'me=e-1 contained
|
||||
syn match rasiPropertyId '^\s*[0-9a-zA-Z-]\+\s*:'me=e-1 contained
|
||||
syn match rasiInvPropertyVal ':[^;];\s*\S\+\s*$'ms=s+1,hs=s+1
|
||||
syn match rasiPropertyVal ':\s*[^;]\+;\s*$'ms=s+1,hs=s+1 contained contains=@rasiPropertyVals
|
||||
" }}}
|
||||
|
||||
" Comment {{{
|
||||
syn cluster rasiCommentGroup contains=rasiTodo,rasiBadContinuation
|
||||
|
||||
syn region rasiCommentL start="//" skip="\\$" end="$" keepend contains=@rasiCommentGroup,@Spell
|
||||
syn region rasiComment start="/\*" end="\*/" contains=@rasiCommentGroup,rasiCommentStartError,@Spell fold extend
|
||||
|
||||
syn match rasiCommentError display '\*/'
|
||||
|
||||
syn keyword rasiTodo contained TODO FIXME XXX NOTE
|
||||
|
||||
if exists("rasi_minlines")
|
||||
let b:rasi_minlines = rasi_minlines
|
||||
else
|
||||
let b:rasi_minlines = 50
|
||||
endif
|
||||
exec "syn sync ccomment rasiComment minlines=" . b:rasi_minlines
|
||||
" }}}
|
||||
|
||||
|
||||
|
||||
" Highlighting: {{{
|
||||
hi def link rasiError Error
|
||||
|
||||
hi def link rasiTodo Todo
|
||||
hi def link rasiComment Comment
|
||||
hi def link rasiCommentStart rasiComment
|
||||
hi def link rasiCommentL rasiComment
|
||||
hi def link rasiCommentError rasiError
|
||||
|
||||
hi def link rasiString String
|
||||
hi def link rasiNumber Number
|
||||
hi def link rasiBool Boolean
|
||||
|
||||
hi def link rasiImageK Function
|
||||
hi def link rasiImageScale Keyword
|
||||
hi def link rasiImageDirection Keyword
|
||||
hi def link rasiImageUnit Type
|
||||
hi def link rasiInvImage rasiError
|
||||
|
||||
hi def link rasiHexColor Number
|
||||
hi def link rasiColorK Function
|
||||
hi def link rasiNamedColor Number
|
||||
hi def link rasiInvColor rasiError
|
||||
hi def link rasiInvHexColor rasiInvColor
|
||||
hi def link rasiInvRGBColor rasiInvColor
|
||||
hi def link rasiInvHSLColor rasiInvColor
|
||||
hi def link rasiInvCMYKColor rasiInvColor
|
||||
|
||||
hi def link rasiTextStyle Keyword
|
||||
hi def link rasiLineStyle Keyword
|
||||
|
||||
hi def link rasiDistanceUnit Type
|
||||
hi def link rasiDistanceCalc Function
|
||||
hi def link rasiDistanceCalcOp Operator
|
||||
hi def link rasiInvDistance rasiError
|
||||
|
||||
hi def link rasiPosition Keyword
|
||||
hi def link rasiOrientation Keyword
|
||||
hi def link rasiCursor Keyword
|
||||
|
||||
hi def link rasiReference Identifier
|
||||
hi def link rasiPropertyIdRef Identifier
|
||||
hi def link rasiVarReferenceK Function
|
||||
hi def link rasiInvVarReference rasiError
|
||||
|
||||
hi def link rasiEnv Identifier
|
||||
hi def link rasiEnvRef Identifier
|
||||
hi def link rasiEnvVarK Function
|
||||
hi def link rasiInvEnv rasiError
|
||||
hi def link rasiInvEnvVar rasiError
|
||||
|
||||
hi def link rasiWidgetName StorageClass
|
||||
hi def link rasiGlobalSection StorageClass
|
||||
hi def link rasiVisibleMod Type
|
||||
hi def link rasiState Tag
|
||||
|
||||
hi def link rasiInherit Identifier
|
||||
|
||||
hi def link rasiGlobalImport Include
|
||||
|
||||
hi def link rasiGlobalMedia Preproc
|
||||
hi def link rasiMediaK Keyword
|
||||
hi def link rasiInvMediaBody rasiError
|
||||
|
||||
hi def link rasiPropertyId Identifier
|
||||
hi def link rasiInvProperty rasiError
|
||||
hi def link rasiInvPropertyId rasiError
|
||||
hi def link rasiInvPropertyVal rasiError
|
||||
" }}}
|
||||
|
||||
" vim:ts=8
|
@ -181,6 +181,7 @@ func s:GetFilenameChecks() abort
|
||||
\ 'csdl': ['file.csdl'],
|
||||
\ 'csp': ['file.csp', 'file.fdr'],
|
||||
\ 'css': ['file.css'],
|
||||
\ 'rasi': ['file.rasi'],
|
||||
\ 'cterm': ['file.con'],
|
||||
\ 'csv': ['file.csv'],
|
||||
\ 'cucumber': ['file.feature'],
|
||||
|
Loading…
Reference in New Issue
Block a user