Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
pike.vim387 linesDownload Raw Back to syntax
1" Vim syntax file2" Language:		Pike3" Maintainer:		Stephen R. van den Berg <srb@cuci.nl>4" Maintainer of previous implementation: Francesco Chemolli <kinkie@kame.usr.dsi.unimi.it>5" Last Change:		2018 Jan 286" Version:		2.97" Remark: Derived from the C-syntax; fixed several bugs in the C-syntax8" Remark: and extended it with the Pike syntax.9" Remark: Includes a highlighter for all Pike types of parenthesis errors.10" Remark: Includes a highlighter for SQL on multiline strings.11" Remark: Includes a highlighter for any embedded Autodoc format.12 13" Quit when a (custom) syntax file was already loaded14if exists("b:current_syntax")15  finish16endif17 18let s:cpo_save = &cpo19set cpo&vim20 21" For multiline strings, try formatting them as SQL22syn include @pikeSQL <sfile>:p:h/sqloracle.vim23unlet b:current_syntax24 25" For embedded Autodoc documentation (WIP)26syn include @pikeAutodoc <sfile>:p:h/autodoc.vim27unlet b:current_syntax28 29syn case match30 31" Supports array, multiset, mapping multi-character delimiter matching32" Supports rotating amongst several same-level preprocessor conditionals33packadd! matchit34let b:match_words = "({:}\\@1<=),(\\[:]\\@1<=),(<:>\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>"35 36" A bunch of useful Pike keywords37syn keyword	pikeDebug	gauge backtrace describe_backtrace werror _Static_assert static_assert38syn keyword	pikeException	error catch throw39syn keyword	pikeLabel	case default break return continue40syn keyword	pikeConditional	if else switch41syn keyword	pikeRepeat	while for foreach do42 43syn keyword pikePredef RegGetKeyNames RegGetValue RegGetValues44syn keyword pikePredef __automap__ __empty_program45syn keyword pikePredef __handle_sprintf_format __parse_pike_type _disable_threads46syn keyword pikePredef _do_call_outs _exit _gdb_breakpoint47syn keyword pikePredef abs access acos acosh add_constant alarm all_constants48syn keyword pikePredef array_sscanf asin asinh atan atan2 atanh atexit49syn keyword pikePredef basetype call_function call_out call_out_info cd ceil50syn keyword pikePredef combine_path combine_path_nt51syn keyword pikePredef combine_path_unix compile copy_value cos cosh cpp crypt52syn keyword pikePredef ctime decode_value delay encode_value encode_value_canonic53syn keyword pikePredef enumerate errno exece exit exp file_stat file_truncate54syn keyword pikePredef filesystem_stat find_call_out floor fork function_name55syn keyword pikePredef function_object function_program gc56syn keyword pikePredef get_active_compilation_handler get_active_error_handler57syn keyword pikePredef get_all_groups get_all_users get_dir get_groups_for_user58syn keyword pikePredef get_iterator get_profiling_info get_weak_flag getcwd59syn keyword pikePredef getgrgid getgrnam gethrdtime gethrtime gethrvtime getpid60syn keyword pikePredef getpwnam getpwuid getxattr glob gmtime has_index has_prefix61syn keyword pikePredef has_suffix has_value hash hash_7_0 hash_7_4 hash_8_062syn keyword pikePredef hash_value kill limit listxattr load_module localtime63syn keyword pikePredef log lower_case master max min mkdir mktime mv64syn keyword pikePredef object_program pow query_num_arg random_seed65syn keyword pikePredef remove_call_out removexattr replace_master rm round66syn keyword pikePredef set_priority set_weak_flag setxattr sgn signal signame67syn keyword pikePredef signum sin sinh sleep sort sprintf sqrt sscanf strerror68syn keyword pikePredef string_filter_non_unicode string_to_unicode string_to_utf869syn keyword pikePredef tan tanh time trace types ualarm unicode_to_string70syn keyword pikePredef upper_case utf8_to_string version71 72syn keyword pikePredef write lock try_lock73syn keyword pikePredef MutexKey Timestamp Date Time TimeTZ Interval Inet Range74syn keyword pikePredef Null null inf nan75 76syn keyword	pikeTodo		contained TODO FIXME XXX77 78" Match parengroups: allows for highlighting indices of mappings and79" highlighting semicolons that are out of place due to a paren imbalance80syn cluster	pikePreShort	contains=pikeDefine,pikePreProc,pikeCppOutWrapper,pikeCppInWrapper,pikePreCondit,pikePreConditMatch81syn cluster	pikeExprGroup	contains=pikeMappIndex,@pikeStmt,pikeNest,@pikeBadGroup,pikeSoftCast82syn match	pikeWord	transparent contained /[^()'"[\]{},;:]\+/ contains=ALLBUT,@pikePreProcGroup,@pikeExprGroup83syn match	pikeFirstWord	transparent display contained /^\s*#[^()'"[\]{},;:]\+/ contains=@pikePreShort84syn cluster	pikeMappElm	contains=pikeMappIndex,@pikeStmt85syn cluster	pikeStmt	contains=pikeFirstWord,pikeCharacter,pikeString,pikeMlString,pikeWord,pikeNest86syn cluster     pikeBadGroup	contains=pikeBadPClose,pikeBadAClose,pikeBadBClose,pikeBadSPClose,pikeBadSAClose,pikeBadSBClose,pikeBadSClose,pikeBadSPAClose,pikeBadSBAClose87syn match	pikeBadPClose	display contained "[}\]]"88syn match	pikeBadAClose	display contained "[)\]]"89syn match	pikeBadBClose	display contained "[)}]"90syn match	pikeBadSPClose	display contained "[;}\]]"91syn match	pikeBadSAClose	display contained "[;)\]]"92syn match	pikeBadSPAClose	display contained "[;\]]"93syn match	pikeBadSBAClose	display contained "[;}]"94syn match	pikeBadSClose	display contained "[;)}\]]"95syn region	pikeNest	transparent start="(\@1<!{" end="}" contains=@pikeStmt,pikeUserLabel,pikeBadAClose96syn region	pikeNest	transparent start="\%(\<for\%(each\)\?\s\?\)\@8<!([[{<]\@!" end=")" contains=@pikeStmt,pikeBadSPClose97syn region	pikeNest	transparent start="\%(\<for\%(each\)\?\s\?\)\@8<=(" end=")" contains=@pikeStmt,pikeBadPClose98syn region	pikeNest	transparent start="(\@1<!\[" end="]" contains=@pikeStmt,pikeBadSBClose99syn region	pikeNest	transparent start="(\zs\[" end="])" contains=@pikeMappElm,pikeBadSBAClose100" For some reason specifying a matchgroup on the pikeNest below makes it101" override the shorter variant; consider it a kludge, no idea why it works102syn region	pikeNest	transparent matchgroup=pikeSoftCast start=%(\zs\[[ \t\v\r\n.a-zA-Z0-9_():,|]\+])\@!% end=")" contains=@pikeStmt103syn region	pikeNest	transparent start="(\zs{" end="})" contains=@pikeStmt,pikeBadSPAClose104syn region	pikeNest	transparent start="(\zs<" end=">)" contains=@pikeStmt,pikeBadSPClose keepend105 106" It's easy to accidentally add a space after a backslash that was intended107" for line continuation.  Some compilers allow it, which makes it108" unpredictable and should be avoided.109syn match	pikeBadContinuation contained "\\\s\+$"110 111" pikeCommentGroup allows adding matches for special things in comments112syn cluster	pikeCommentGroup	contains=pikeTodo,pikeBadContinuation113 114" String and Character constants115" Highlight special characters (those which have a backslash) differently116syn match	pikeSpecial	display contained "\\\%(x\x*\|d\d*\|\o\+\|u\x\{4}\|U\x\{8}\|[abefnrtv]\|$\)"117 118" ISO C11 or ISO C++ 11119if !exists("c_no_cformat")120  " Highlight % items in strings.121  syn match	pikeFormat		display "%\%(\d\+\$\)\=[-+' #0*]*\%(\d*\|\*\|\*\d\+\$\)\%(\.\%(\d*\|\*\|\*\d\+\$\)\)\=\%([hlLjzt]\|ll\|hh\)\=\%([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained122  syn match	pikeFormat		display "%%" contained123  syn region 	pikeString		start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,pikeFormat,@Spell keepend124  syn region	pikeMlString	start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeFormat,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend125else126  syn region 	pikeString		start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=pikeSpecial,pikeDelimiterDQ,@Spell127  syn region	pikeMlString	transparent start=+#"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeSpecial,pikeDelimiterDQ,@Spell,pikeEmbeddedString keepend128endif129 130" Use SQL-syntax highlighting in multiline string if it starts with131" a standard SQL keyword132syn case ignore133" FIXME Use explicit newline match to cover up a bug in the regexp engine134" If the kludge is not used, the match will only start unless at least a space135" follows the initial doublequote on the first line (or the keyword is on136" the first line).137syn region	pikeEmbeddedString	contained start=+\%(#"\n\?\)\@2<=\_s*\%(SELECT\|INSERT\|UPDATE\|DELETE\|WITH\|CREATE\|DROP\|ALTER\)\>+ skip=+\\\\\|\\"+ end=+[\\#]\@1<!"+ contains=@pikeSQL,pikeBindings keepend138syn case match139 140syn match	pikeBindings	display contained ":\@1<!:\I\i*"141 142syn match	pikeCharacter	"'[^\\']'" contains=pikeDelimiterSQ143syn match	pikeCharacter	"'[^']*'" contains=pikeSpecial,pikeDelimiterSQ144syn match	pikeSpecialError	"'\\[^'\"?\\abefnrtv]'"145syn match	pikeDelimiterDQ	display +"+ contained146syn match	pikeDelimiterSQ	display +'+ contained147 148"when wanted, highlight trailing white space149if exists("c_space_errors")150  if !exists("c_no_trail_space_error")151    syn match	pikeSpaceError	display excludenl "\s\+$"152  endif153  if !exists("c_no_tab_space_error")154    syn match	pikeSpaceError	display " \+\ze\t"155  endif156endif157 158"integer number, or floating point number without a dot and with "f".159syn case ignore160syn match	pikeNumbers	display transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctalError,pikeOctal161" Same, but without octal error (for comments)162syn match	pikeNumbersCom	display contained transparent "\<\d\|\.\d" contains=pikeNumber,pikeFloat,pikeOctal163syn match	pikeNumber		display contained "\<\d\+\%(u\=l\{0,2}\|ll\=u\)\>"164"hex number165syn match	pikeNumber		display contained "\<0x\x\+\%(u\=l\{0,2}\|ll\=u\)\>"166" Flag the first zero of an octal number as something special167syn match	pikeOctal		display contained "\<0\o\+\%(u\=l\{0,2}\|ll\=u\)\>" contains=pikeOctalZero168syn match	pikeOctalZero	display contained "\<0"169"floating point number, with dot, optional exponent170syn match	pikeFloat		display contained "\<\d\+\%(f\|\.[0-9.]\@!\d*\%(e[-+]\=\d\+\)\=[fl]\=\)"171"floating point number, starting with a dot, optional exponent172syn match	pikeFloat		display contained "[0-9.]\@1<!\.\d\+\%(e[-+]\=\d\+\)\=[fl]\=\>"173"floating point number, without dot, with exponent174syn match	pikeFloat		display contained "\<\d\+e[-+]\=\d\+[fl]\=\>"175 176"hexadecimal floating point number, two variants, with exponent177syn match	pikeFloat		display contained "\<0x\%(\x\+\.\?\|\x*\.\x\+\)p[-+]\=\d\+[fl]\=\>"178 179" flag an octal number with wrong digits180syn match	pikeOctalError	display contained "\<0\o*[89]\d*"181syn case match182 183if exists("c_comment_strings")184  " A comment can contain pikeString, pikeCharacter and pikeNumber.185  " But a "*/" inside a pikeString in a pikeComment DOES end the comment!  So we186  " need to use a special type of pikeString: pikeCommentString, which also ends on187  " "*/", and sees a "*" at the start of the line as comment again.188  " Unfortunately this doesn't very well work for // type of comments :-(189  syn match	pikeCommentSkip	contained "^\s*\*\%($\|\s\+\)"190  syn region pikeCommentString	contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\ze\*/+ contains=pikeSpecial,pikeCommentSkip191  syn region pikeComment2String	contained start=+\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=pikeSpecial192  syn region  pikeCommentL	start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeComment2String,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord193  if exists("c_no_comment_fold")194    " Use "extend" here to have preprocessor lines not terminate halfway a195    " comment.196    syn region pikeComment	matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord197  else198    syn region pikeComment	matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeCommentString,pikeCharacter,pikeNumbersCom,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord199  endif200else201  syn region	pikeCommentL	start="//" skip="\\$" end="$" keepend contains=@pikeCommentGroup,pikeSpaceError,@Spell containedin=pikeWord,pikeFirstWord202  if exists("c_no_comment_fold")203    syn region	pikeComment	matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell extend containedin=pikeWord,pikeFirstWord204  else205    syn region	pikeComment	matchgroup=pikeCommentStart start="/\*" end="\*/" contains=@pikeCommentGroup,pikeCommentStartError,pikeSpaceError,@Spell fold extend containedin=pikeWord,pikeFirstWord206  endif207endif208" keep a // comment separately, it terminates a preproc. conditional209syn match	pikeCommentError	display "\*/"210syn match	pikeCommentStartError display "/\ze\*" contained211 212syn keyword	pikeOperator	sizeof213syn keyword	pikeOperator	typeof _typeof _refs214syn keyword	pikeOperator	zero_type intp stringp arrayp mappingp multisetp215syn keyword	pikeOperator	objectp functionp programp callablep destructedp216syn keyword	pikeOperator	object_variablep undefinedp217syn keyword	pikeOperator	allocate equal218syn keyword	pikeOperator	aggregate aggregate_mapping aggregate_multiset219syn keyword	pikeOperator	map filter search replace reverse column rows220syn keyword	pikeOperator	indices values mkmapping mkmultiset m_delete sort221syn keyword	pikeOperator	m_delete destruct222syn keyword	pikeOperator	create _destruct _sprintf cast _encode _decode223syn keyword     pikeOperator    __hash _sizeof _values _indices __INIT _equal224syn keyword     pikeOperator    _is_type _m_delete _get_iterator _search225syn keyword     pikeOperator    _serialize _deserialize _sqrt _types _random226syn keyword     pikeOperator    _size_object227 228syn keyword	pikeType		int void229syn keyword	pikeType		float230syn keyword	pikeType		bool string array mapping multiset mixed231syn keyword	pikeType		object function program auto232 233syn keyword	pikeType		this this_object this_program234syn keyword	pikeType		sprintf_args sprintf_format sprintf_result235syn keyword	pikeType		strict_sprintf_format236 237syn keyword	pikeStructure		class enum typedef inherit import238syn keyword	pikeTypedef		typedef239syn keyword	pikeStorageClass	private protected public constant final variant240syn keyword	pikeStorageClass	optional inline extern static __deprecated__ lambda241 242syn keyword pikeConstant __LINE__ __FILE__ __DIR__ __DATE__ __TIME__243syn keyword pikeConstant __AUTO_BIGNUM__ __NT__244syn keyword pikeConstant __BUILD__ __COUNTER__ _MAJOR__ __MINOR__ __VERSION__245syn keyword pikeConstant __REAL_BUILD__ _REAL_MAJOR__ __REAL_MINOR__246syn keyword pikeConstant __REAL_VERSION__ __PIKE__ UNDEFINED247 248" These should actually only be parsed in preprocessor conditionals249syn keyword pikeCppOperator contained defined constant efun _Pragma250 251syn keyword pikeBoolean true false252 253syn match       pikeCppPrefix	display "^\s*\zs#\s*[a-z]\+" contained254syn region	pikePreCondit	start="^\s*#\s*\%(if\%(n\?def\)\?\|el\%(se\)\?if\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix255syn match	pikePreConditMatch	display "^\s*\zs#\s*\%(else\|endif\)\>"256if !exists("c_no_if0")257  syn cluster	pikeCppOutInGroup	contains=pikeCppInIf,pikeCppInElse,pikeCppInElse2,pikeCppOutIf,pikeCppOutIf2,pikeCppOutElse,pikeCppInSkip,pikeCppOutSkip258  syn region	pikeCppOutWrapper	start="^\s*\zs#\s*if\s\+0\+\s*\%($\|//\|/\*\|&\)" end=".\@=\|$" contains=pikeCppOutIf,pikeCppOutElse,@NoSpell fold259  syn region	pikeCppOutIf	contained start="0\+" matchgroup=pikeCppOutWrapper end="^\s*#\s*endif\>" contains=pikeCppOutIf2,pikeCppOutElse260  if !exists("c_no_if0_fold")261    syn region	pikeCppOutIf2	contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell fold262  else263    syn region	pikeCppOutIf2	contained matchgroup=pikeCppOutWrapper start="0\+" end="^\ze\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)" contains=pikeSpaceError,pikeCppOutSkip,@Spell264  endif265  syn region	pikeCppOutElse	contained matchgroup=pikeCppOutWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit266  syn region	pikeCppInWrapper	start="^\s*\zs#\s*if\s\+0*[1-9]\d*\s*\%($\|//\|/\*\||\)" end=".\@=\|$" contains=pikeCppInIf,pikeCppInElse fold267  syn region	pikeCppInIf	contained matchgroup=pikeCppInWrapper start="\d\+" end="^\s*#\s*endif\>" contains=TOP,pikePreCondit268  if !exists("c_no_if0_fold")269    syn region	pikeCppInElse	contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2 fold270  else271    syn region	pikeCppInElse	contained start="^\s*#\s*\%(else\>\|el\%(se\)\?if\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=pikeCppInIf contains=pikeCppInElse2272  endif273  syn region	pikeCppInElse2	contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(else\|el\%(se\)\?if\)\%([^/]\|/[^/*]\)*" end="^\ze\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip,@Spell274  syn region	pikeCppOutSkip	contained start="^\s*#\s*if\%(n\?def\)\?\>" skip="\\$" end="^\s*#\s*endif\>" contains=pikeSpaceError,pikeCppOutSkip275  syn region	pikeCppInSkip	contained matchgroup=pikeCppInWrapper start="^\s*#\s*\%(if\s\+\%(\d\+\s*\%($\|//\|/\*\||\|&\)\)\@!\|ifn\?def\>\)" skip="\\$" end="^\s*#\s*endif\>" containedin=pikeCppOutElse,pikeCppInIf,pikeCppInSkip contains=TOP,pikePreProc276endif277syn region	pikeIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pikeDelimiterDQ keepend278syn match	pikeIncluded	display contained "<[^>]*>"279syn match	pikeInclude	display "^\s*\zs#\s*include\>\s*["<]" contains=pikeIncluded280syn cluster	pikePreProcGroup	contains=pikeIncluded,pikeInclude,pikeEmbeddedString,pikeCppOutWrapper,pikeCppInWrapper,@pikeCppOutInGroup,pikeFormat,pikeMlString,pikeCommentStartError,@pikeBadGroup,pikeWord281syn region	pikeDefine		start="^\s*\zs#\s*\%(define\|undef\)\>" skip="\\$" end="$" keepend contains=@pikeStmt,@pikeBadGroup282syn region	pikePreProc	start="^\s*\zs#\s*\%(pragma\|charset\|pike\|require\|string\|line\|warning\|error\)\>" skip="\\$" end="$" transparent keepend contains=pikeString,pikeCharacter,pikeNumbers,pikeCommentError,pikeSpaceError,pikeCppOperator,pikeCppPrefix,@Spell,pikeConstant283 284syn match	pikeAutodocReal	display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@pikeAutodoc containedin=pikeComment,pikeCommentL285syn cluster pikeCommentGroup add=pikeAutodocReal286syn cluster pikePreProcGroup add=pikeAutodocReal287 288" Highlight User Labels289" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'290syn match	pikeUserLabel	display "\%(^\|[{};]\)\zs\I\i*\s*\ze:\%([^:]\|$\)" contained contains=NONE291syn match	pikeUserLabel	display "\%(\<\%(break\|continue\)\_s\+\)\@10<=\I\i*" contained contains=NONE292syn match	pikeUserLabel	display "\%(\<case\)\@5<=\s\+[^<()[\]{},;:]\+\ze::\@!" contained contains=pikeDelimiterDQ,pikeDelimiterSQ293 294syn match	pikeMappIndex	display contained "[^<()[\]{},;:]\+\ze::\@!" contains=pikeDelimiterDQ,pikeDelimiterSQ295syn match	pikeSoftCast	display contained "\[[ \t\v\r\n.a-zA-Z0-9_():,|\+]" contains=NONE296 297if exists("c_minlines")298  let b:c_minlines = c_minlines299else300  if !exists("c_no_if0")301    let b:c_minlines = 400	" #if 0 constructs can be long302  else303    let b:c_minlines = 200	" mostly for multiline strings304  endif305endif306exec "syn sync ccomment pikeComment minlines=" . b:c_minlines307syn sync match pikeMlStringSync grouphere pikeMlString +^[^"#]\+#\"+308syn sync match pikeAutodocSync grouphere pikeCommentL "^\s*//!"309 310" Define the default highlighting.311" Only used when an item doesn't have highlighting yet312hi def link pikeFormat		SpecialChar313hi def link pikeMlString	String314hi def link pikeCommentL	Comment315hi def link pikeCommentStart	Comment316hi def link pikeLabel		Label317hi def link pikeUserLabel	Identifier318hi def link pikeConditional	Conditional319hi def link pikeRepeat		Repeat320hi def link pikeCharacter	Character321hi def link pikeDelimiterDQ	Delimiter322hi def link pikeDelimiterSQ	Delimiter323hi def link pikeNumber		Number324hi def link pikeOctal		Number325hi def link pikeOctalZero	PreProc	 " link this to Error if you want326hi def link pikeFloat		Float327hi def link pikeOctalError	Error328hi def link pikeCommentError	Error329hi def link pikeCommentStartError	Error330hi def link pikeSpaceError	Error331hi def link pikeSpecialError	Error332hi def link pikeOperator	Operator333hi def link pikeCppOperator	Operator334hi def link pikeStructure	Structure335hi def link pikeTypedef		Typedef336hi def link pikeStorageClass	StorageClass337hi def link pikeInclude		Include338hi def link pikeCppPrefix	PreCondit339hi def link pikePreProc		PreProc340hi def link pikeDefine		Macro341hi def link pikeIncluded	String342hi def link pikeError		Error343hi def link pikeDebug		Debug344hi def link pikeException	Exception345hi def link pikeStatement	Statement346hi def link pikeType		Type347hi def link pikeConstant	Constant348hi def link pikeBoolean		Boolean349hi def link pikeCommentString	String350hi def link pikeComment2String	String351hi def link pikeCommentSkip	Comment352hi def link pikeString		String353hi def link pikeComment		Comment354hi def link pikeSpecial		SpecialChar355hi def link pikeTodo		Todo356hi def link pikeBadContinuation	Error357 358hi def link pikeCppInWrapper	PreCondit359hi def link pikeCppOutWrapper	PreCondit360hi def link pikePreConditMatch	PreCondit361 362hi def link pikeCppOutSkip	Comment363hi def link pikeCppInElse2	Comment364hi def link pikeCppOutIf2	Comment365hi def link pikeCppOut		Comment366 367hi def link pikePredef		Statement368hi def link pikeBindings	Identifier369hi def link pikeMappIndex	Identifier370hi def link pikeSoftCast	Type371hi def link pikeBadGroup	Error372hi def link pikeBadPClose	Error373hi def link pikeBadAClose	Error374hi def link pikeBadBClose	Error375hi def link pikeBadSPClose	Error376hi def link pikeBadSAClose	Error377hi def link pikeBadSBClose	Error378hi def link pikeBadSPAClose	Error379hi def link pikeBadSBAClose	Error380hi def link pikeBadSClose	Error381 382let b:current_syntax = "pike"383 384let &cpo = s:cpo_save385unlet s:cpo_save386" vim: ts=8387 
codekingpro/portable-devtools · Team Ai