Mercurial > vim
view runtime/syntax/asy.vim @ 36133:8c394230efed
runtime(spec): add file triggers to syntax script
Commit: https://github.com/vim/vim/commit/2241f0845fcb2ff362f34abd756cedf239e50b55
Author: fundawang <fundawang@yeah.net>
Date: Tue Sep 10 21:31:49 2024 +0200
runtime(spec): add file triggers to syntax script
closes: https://github.com/vim/vim/issues/15569
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 10 Sep 2024 21:45:04 +0200 |
parents | 1be117f0a0a7 |
children |
line wrap: on
line source
" 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"