mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 02:34:59 -07:00
vim-patch:9.1.0593: filetype: Asymptote files are not recognized
Problem: filetype: Asymptote files are not recognized
Solution: detect '*.asy' files as asy filetype, include
ftplugin and syntax plugin (AvidSeeker).
Reference: https://asymptote.sourceforge.io/
closes: vim/vim#15252
3088ef094d
Co-authored-by: AvidSeeker <avidseeker7@protonmail.com>
This commit is contained in:
parent
498d9beed9
commit
8e590cae83
@ -489,6 +489,25 @@ For Visual Basic use: >
|
||||
:let g:filetype_asa = "aspvbs"
|
||||
:let g:filetype_asp = "aspvbs"
|
||||
|
||||
ASYMPTOTE *asy.vim* *ft-asy-syntax*
|
||||
|
||||
By default, only basic Asymptote keywords are highlighted. To highlight
|
||||
extended geometry keywords: >
|
||||
|
||||
:let g:asy_syn_plain = 1
|
||||
|
||||
and for highlighting keywords related to 3D constructions: >
|
||||
|
||||
:let g:asy_syn_three = 1
|
||||
|
||||
By default, Asymptote-defined colors (e.g: lightblue) are highlighted. To
|
||||
highlight TeX-defined colors (e.g: BlueViolet) use: >
|
||||
|
||||
:let g:asy_syn_texcolors = 1
|
||||
|
||||
or for Xorg colors (e.g: AliceBlue): >
|
||||
|
||||
:let g:asy_syn_x11colors = 1
|
||||
|
||||
BAAN *baan.vim* *baan-syntax*
|
||||
|
||||
|
14
runtime/ftplugin/asy.vim
Normal file
14
runtime/ftplugin/asy.vim
Normal file
@ -0,0 +1,14 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Asymptote
|
||||
" Maintainer: AvidSeeker <avidseeker7@protonmail.com>
|
||||
" Last Change: 2024 Jul 13
|
||||
"
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let g:did_ftplugin = 1
|
||||
|
||||
setlocal commentstring=/*\ %s\ */
|
||||
|
||||
let b:undo_ftplugin = "setl commentstring<"
|
@ -214,6 +214,7 @@ local extension = {
|
||||
asn = 'asn',
|
||||
asp = detect.asp,
|
||||
astro = 'astro',
|
||||
asy = 'asy',
|
||||
atl = 'atlas',
|
||||
as = 'atlas',
|
||||
zed = 'authzed',
|
||||
|
243
runtime/syntax/asy.vim
Normal file
243
runtime/syntax/asy.vim
Normal file
@ -0,0 +1,243 @@
|
||||
" Vim syntax file
|
||||
" Language: Asymptote
|
||||
" Maintainer: Avid Seeker <avidseeker7@protonmail.com>
|
||||
" Andy Hammerlindl
|
||||
" Last Change: 2022 Jan 05
|
||||
|
||||
" Hacked together from Bram Moolenaar's C syntax file, and Claudio Fleiner's
|
||||
" Java syntax file.
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" useful C/C++/Java keywords
|
||||
syn keyword asyStatement break return continue unravel
|
||||
syn keyword asyConditional if else
|
||||
syn keyword asyRepeat while for do
|
||||
syn keyword asyExternal access from import include
|
||||
syn keyword asyOperator new operator
|
||||
|
||||
" basic asymptote keywords
|
||||
syn keyword asyConstant VERSION
|
||||
syn keyword asyConstant true false default infinity inf nan
|
||||
syn keyword asyConstant null nullframe nullpath nullpen
|
||||
syn keyword asyConstant intMin intMax realMin realMax
|
||||
syn keyword asyConstant realEpsilon realDigits
|
||||
syn keyword asyPathSpec and cycle controls tension atleast curl
|
||||
syn keyword asyStorageClass static public restricted private explicit
|
||||
syn keyword asyStructure struct typedef
|
||||
syn keyword asyType void bool bool3 int real string file
|
||||
syn keyword asyType pair triple transform guide path pen frame
|
||||
syn keyword asyType picture
|
||||
|
||||
" module specific keywords
|
||||
if exists("asy_syn_plain")
|
||||
syn keyword asyConstant currentpicture currentpen defaultpen
|
||||
syn keyword asyConstant inch inches cm mm bp pt up down right left
|
||||
syn keyword asyConstant E NE N NW W SW S SE
|
||||
syn keyword asyConstant ENE NNE NNW WNW WSW SSW SSE ESE
|
||||
syn keyword asyConstant I pi twopi
|
||||
syn keyword asyConstant CCW CW
|
||||
syn keyword asyConstant undefined sqrtEpsilon Align mantissaBits
|
||||
syn keyword asyConstant identity zeroTransform invert
|
||||
syn keyword asyConstant stdin stdout
|
||||
syn keyword asyConstant unitsquare unitcircle circleprecision
|
||||
syn keyword asyConstant solid dotted Dotted dashed dashdotted
|
||||
syn keyword asyConstant longdashed longdashdotted
|
||||
syn keyword asyConstant squarecap roundcap extendcap
|
||||
syn keyword asyConstant miterjoin roundjoin beveljoin
|
||||
syn keyword asyConstant zerowinding evenodd basealign nobasealign
|
||||
syn keyword asyConstant black white gray red green blue Cyan Magenta
|
||||
syn keyword asyConstant Yellow Black cyan magenta yellow palered
|
||||
syn keyword asyConstant palegreen paleblue palecyan palemagenta
|
||||
syn keyword asyConstant paleyellow palegray lightred lightgreen
|
||||
syn keyword asyConstant lightblue lightcyan lightmagenta lightyellow
|
||||
syn keyword asyConstant lightgray mediumred mediumgreen mediumblue
|
||||
syn keyword asyConstant mediumcyan mediummagenta mediumyellow
|
||||
syn keyword asyConstant mediumgray heavyred heavygreen heavyblue
|
||||
syn keyword asyConstant heavycyan heavymagenta lightolive heavygray
|
||||
syn keyword asyConstant deepred deepgreen deepblue deepcyan
|
||||
syn keyword asyConstant deepmagenta deepyellow deepgray darkred
|
||||
syn keyword asyConstant darkgreen darkblue darkcyan darkmagenta
|
||||
syn keyword asyConstant darkolive darkgray orange fuchsia chartreuse
|
||||
syn keyword asyConstant springgreen purple royalblue salmon brown
|
||||
syn keyword asyConstant olive darkbrown pink palegrey lightgrey
|
||||
syn keyword asyConstant mediumgrey grey heavygrey deepgrey darkgrey
|
||||
|
||||
if exists("asy_syn_texcolors")
|
||||
syn keyword asyConstant GreenYellow Yellow Goldenrod Dandelion
|
||||
syn keyword asyConstant Apricot Peach Melon YellowOrange Orange
|
||||
syn keyword asyConstant BurntOrange Bittersweet RedOrange Mahogany
|
||||
syn keyword asyConstant Maroon BrickRed Red OrangeRed RubineRed
|
||||
syn keyword asyConstant WildStrawberry Salmon CarnationPink Magenta
|
||||
syn keyword asyConstant VioletRed Rhodamine Mulberry RedViolet
|
||||
syn keyword asyConstant Fuchsia Lavender Thistle Orchid DarkOrchid
|
||||
syn keyword asyConstant Purple Plum Violet RoyalPurple BlueViolet
|
||||
syn keyword asyConstant Periwinkle CadetBlue CornflowerBlue
|
||||
syn keyword asyConstant MidnightBlue NavyBlue RoyalBlue Blue
|
||||
syn keyword asyConstant Cerulean Cyan ProcessBlue SkyBlue Turquoise
|
||||
syn keyword asyConstant TealBlue Aquamarine BlueGreen Emerald
|
||||
syn keyword asyConstant JungleGreen SeaGreen Green ForestGreen
|
||||
syn keyword asyConstant PineGreen LimeGreen YellowGreen SpringGreen
|
||||
syn keyword asyConstant OliveGreen RawSienna Sepia Brown Tan Gray
|
||||
syn keyword asyConstant Black White
|
||||
endif
|
||||
|
||||
if exists("asy_syn_x11colors")
|
||||
syn keyword asyConstant AliceBlue AntiqueWhite Aqua Aquamarine Azure
|
||||
syn keyword asyConstant Beige Bisque Black BlanchedAlmond Blue
|
||||
syn keyword asyConstant BlueViolet Brown BurlyWood CadetBlue
|
||||
syn keyword asyConstant Chartreuse Chocolate Coral CornflowerBlue
|
||||
syn keyword asyConstant Cornsilk Crimson Cyan DarkBlue DarkCyan
|
||||
syn keyword asyConstant DarkGoldenrod DarkGray DarkGreen DarkKhaki
|
||||
syn keyword asyConstant DarkMagenta DarkOliveGreen DarkOrange
|
||||
syn keyword asyConstant DarkOrchid DarkRed DarkSalmon DarkSeaGreen
|
||||
syn keyword asyConstant DarkSlateBlue DarkSlateGray DarkTurquoise
|
||||
syn keyword asyConstant DarkViolet DeepPink DeepSkyBlue DimGray
|
||||
syn keyword asyConstant DodgerBlue FireBrick FloralWhite ForestGreen
|
||||
syn keyword asyConstant Fuchsia Gainsboro GhostWhite Gold Goldenrod
|
||||
syn keyword asyConstant Gray Green GreenYellow Honeydew HotPink
|
||||
syn keyword asyConstant IndianRed Indigo Ivory Khaki Lavender
|
||||
syn keyword asyConstant LavenderBlush LawnGreen LemonChiffon
|
||||
syn keyword asyConstant LightBlue LightCoral LightCyan
|
||||
syn keyword asyConstant LightGoldenrodYellow LightGreen LightGrey
|
||||
syn keyword asyConstant LightPink LightSalmon LightSeaGreen
|
||||
syn keyword asyConstant LightSkyBlue LightSlateGray LightSteelBlue
|
||||
syn keyword asyConstant LightYellow Lime LimeGreen Linen Magenta
|
||||
syn keyword asyConstant Maroon MediumAquamarine MediumBlue
|
||||
syn keyword asyConstant MediumOrchid MediumPurple MediumSeaGreen
|
||||
syn keyword asyConstant MediumSlateBlue MediumSpringGreen
|
||||
syn keyword asyConstant MediumTurquoise MediumVioletRed MidnightBlue
|
||||
syn keyword asyConstant MintCream MistyRose Moccasin NavajoWhite
|
||||
syn keyword asyConstant Navy OldLace Olive OliveDrab Orange
|
||||
syn keyword asyConstant OrangeRed Orchid PaleGoldenrod PaleGreen
|
||||
syn keyword asyConstant PaleTurquoise PaleVioletRed PapayaWhip
|
||||
syn keyword asyConstant PeachPuff Peru Pink Plum PowderBlue Purple
|
||||
syn keyword asyConstant Red RosyBrown RoyalBlue SaddleBrown Salmon
|
||||
syn keyword asyConstant SandyBrown SeaGreen Seashell Sienna Silver
|
||||
syn keyword asyConstant SkyBlue SlateBlue SlateGray Snow SpringGreen
|
||||
syn keyword asyConstant SteelBlue Tan Teal Thistle Tomato Turquoise
|
||||
syn keyword asyConstant Violet Wheat White WhiteSmoke Yellow
|
||||
syn keyword asyConstant YellowGreen
|
||||
endif
|
||||
|
||||
if exists("asy_syn_three")
|
||||
syn keyword asyType path3 guide3 transform3
|
||||
syn keyword asyType projection light material patch surface tube
|
||||
syn keyword asyConstant currentprojection currentlight defaultrender
|
||||
syn keyword asyConstant identity4 O X Y Z
|
||||
syn keyword asyConstant nolight nullpens
|
||||
syn keyword asyConstant unitsphere unithemisphere unitplane octant1
|
||||
syn keyword asyConstant unitcone unitsolidcone unitcube unitcylinder
|
||||
syn keyword asyConstant unitdisk unittube
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
" string constants
|
||||
syn region asyCString start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=asyCSpecial
|
||||
syn match asyCSpecial display contained +\\\(['"?\\abfnrtv]\|\o\{1,3}\)+
|
||||
syn match asyCSpecial display contained +\\\(x[0-9A-F]\{1,2\}\|$\)+
|
||||
" double quoted strings only special character is \"
|
||||
syn region asyString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=asySpecial
|
||||
syn match asySpecial display contained +\(\\\)\@1<!\(\\\\\)*\zs\\"+
|
||||
|
||||
|
||||
" number constants
|
||||
syn match asyNumbers display transparent "\<\d\|\.\d"
|
||||
\ contains=asyNumber,asyNumberError
|
||||
syn match asyNumber display contained "\d*\.\=\d*\(e[-+]\=\d\+\)\="
|
||||
" highlight number constants with two '.' or with '.' after an 'e'
|
||||
syn match asyNumberError display contained "\d*\.\(\d\|e[-+]\=\)*\.[0-9.]*"
|
||||
syn match asyNumberError display contained "\d*e[-+]\=\d*\.[0-9.]*"
|
||||
syn match asyNumberError display contained "\d*e[-+]\=\(e[-+]\=\)*\.[0-9.]*"
|
||||
|
||||
|
||||
" comments and comment strings
|
||||
syn keyword asyTodo contained TODO FIXME XXX
|
||||
syn sync ccomment asyComment minlines=15
|
||||
if exists("asy_comment_strings")
|
||||
" A comment can contain asyString, asyCString, and asyNumber. But a "*/"
|
||||
" inside a asy*String in a asyComment DOES end the comment! So we need to
|
||||
" use a special type of asy*String: asyComment*String, which also ends on
|
||||
" "*/", and sees a "*" at the start of the line as comment again.
|
||||
" Unfortunately this doesn't very well work for // type of comments :-(
|
||||
syn match asyCommentSkip contained "^\s*\*\($\|\s\+\)"
|
||||
syn region asyCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
\ end=+\*/+me=s-1
|
||||
\ contains=asySpecial,asyCommentSkip
|
||||
syn region asyCommentCString contained start=+'+ skip=+\\\\\|\\'+ end=+'+
|
||||
\ end=+\*/+me=s-1
|
||||
\ contains=asyCSpecial,asyCommentSkip
|
||||
syn region asyCommentLString contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
\ end="$" contains=asySpecial
|
||||
syn region asyCommentLCString contained start=+'+ skip=+\\\\\|\\'+ end=+'+
|
||||
\ end="$" contains=asyCSpecial
|
||||
syn region asyCommentL start="//" skip="\\$" end="$" keepend
|
||||
\ contains=asyTodo,asyCommentLString,
|
||||
\ asyCommentLCString,asyNumbers
|
||||
syn region asyComment matchgroup=asyComment start="/\*" end="\*/"
|
||||
\ contains=asyTodo,asyCommentStartError,
|
||||
\ asyCommentString,asyCommentCString,asyNumbers
|
||||
else
|
||||
syn region asyCommentL start="//" skip="\\$" end="$" keepend
|
||||
\ contains=asyTodo
|
||||
syn region asyComment matchgroup=asyComment start="/\*" end="\*/"
|
||||
\ contains=asyTodo,asyCommentStartError
|
||||
endif
|
||||
|
||||
" highlight common errors when starting/ending C comments
|
||||
syn match asyCommentError display "\*/"
|
||||
syn match asyCommentStartError display "/\*"me=e-1 contained
|
||||
|
||||
|
||||
" delimiter matching errors
|
||||
syn region asyCurly transparent start='{' end='}'
|
||||
\ contains=TOP,asyCurlyError
|
||||
syn region asyBrack transparent start='\[' end='\]' matchgroup=asyError
|
||||
\ end=';' contains=TOP,asyBrackError
|
||||
syn region asyParen transparent start='(' end=')' matchgroup=asyError
|
||||
\ end=';' contains=TOP,asyParenError
|
||||
syn match asyCurlyError display '}'
|
||||
syn match asyBrackError display '\]'
|
||||
syn match asyParenError display ')'
|
||||
" for (;;) constructs are exceptions that allow ; inside parenthesis
|
||||
syn region asyParen transparent matchgroup=asyParen
|
||||
\ start='\(for\s*\)\@<=(' end=')'
|
||||
\ contains=TOP,asyParenError
|
||||
|
||||
" Define the default highlighting.
|
||||
hi def link asyCommentL asyComment
|
||||
hi def link asyConditional Conditional
|
||||
hi def link asyRepeat Repeat
|
||||
hi def link asyNumber Number
|
||||
hi def link asyNumberError asyError
|
||||
hi def link asyCurlyError asyError
|
||||
hi def link asyBracketError asyError
|
||||
hi def link asyParenError asyError
|
||||
hi def link asyCommentError asyError
|
||||
hi def link asyCommentStartError asyError
|
||||
hi def link asyOperator Operator
|
||||
hi def link asyStructure Structure
|
||||
hi def link asyStorageClass StorageClass
|
||||
hi def link asyExternal Include
|
||||
hi def link asyDefine Macro
|
||||
hi def link asyError Error
|
||||
hi def link asyStatement Statement
|
||||
hi def link asyType Type
|
||||
hi def link asyConstant Constant
|
||||
hi def link asyCommentString asyString
|
||||
hi def link asyCommentCString asyString
|
||||
hi def link asyCommentLString asyString
|
||||
hi def link asyCommentLCString asyString
|
||||
hi def link asyCommentSkip asyComment
|
||||
hi def link asyString String
|
||||
hi def link asyCString String
|
||||
hi def link asyComment Comment
|
||||
hi def link asySpecial SpecialChar
|
||||
hi def link asyCSpecial SpecialChar
|
||||
hi def link asyTodo Todo
|
||||
hi def link asyPathSpec Statement
|
||||
|
||||
let b:current_syntax = "asy"
|
@ -108,6 +108,7 @@ func s:GetFilenameChecks() abort
|
||||
\ 'asn': ['file.asn', 'file.asn1'],
|
||||
\ 'asterisk': ['asterisk/file.conf', 'asterisk/file.conf-file', 'some-asterisk/file.conf', 'some-asterisk/file.conf-file'],
|
||||
\ 'astro': ['file.astro'],
|
||||
\ 'asy': ['file.asy'],
|
||||
\ 'atlas': ['file.atl', 'file.as'],
|
||||
\ 'authzed': ['schema.zed'],
|
||||
\ 'autohotkey': ['file.ahk'],
|
||||
|
Loading…
Reference in New Issue
Block a user