" Vim syntax file " Language: Inform " Maintainer: Stephen Thomas (stephen@gowarthomas.com) " URL: http://www.gowarthomas.com/informvim " Last Change: 2006 April 20 " Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif " A bunch of useful Inform keywords. First, case insensitive stuff syn case ignore syn keyword informDefine Constant syn keyword informType Array Attribute Class Nearby syn keyword informType Object Property String Routine syn match informType "\" syn keyword informInclude Import Include Link Replace System_file syn keyword informPreCondit End Endif Ifdef Ifndef Iftrue Iffalse Ifv3 Ifv5 syn keyword informPreCondit Ifnot syn keyword informPreProc Abbreviate Default Fake_action Lowstring syn keyword informPreProc Message Release Serial Statusline Stub Switches syn keyword informPreProc Trace Zcharacter syn region informGlobalRegion matchgroup=informType start="\" matchgroup=NONE skip=+!.*$\|".*"\|'.*'+ end=";" contains=ALLBUT,informGramPreProc,informPredicate,informGrammar,informAsm,informAsmObsolete syn keyword informGramPreProc contained Verb Extend if !exists("inform_highlight_simple") syn keyword informLibAttrib absent animate clothing concealed container syn keyword informLibAttrib door edible enterable female general light syn keyword informLibAttrib lockable locked male moved neuter on open syn keyword informLibAttrib openable pluralname proper scenery scored syn keyword informLibAttrib static supporter switchable talkable syn keyword informLibAttrib visited workflag worn syn match informLibAttrib "\" syn keyword informLibProp e_to se_to s_to sw_to w_to nw_to n_to ne_to syn keyword informLibProp u_to d_to in_to out_to before after life syn keyword informLibProp door_to with_key door_dir invent plural syn keyword informLibProp add_to_scope list_together react_before syn keyword informLibProp react_after grammar orders initial when_open syn keyword informLibProp when_closed when_on when_off description syn keyword informLibProp describe article cant_go found_in time_left syn keyword informLibProp number time_out daemon each_turn capacity syn keyword informLibProp name short_name short_name_indef parse_name syn keyword informLibProp articles inside_description if !exists("inform_highlight_old") syn keyword informLibProp compass_look before_implicit syn keyword informLibProp ext_initialise ext_messages endif syn keyword informLibObj e_obj se_obj s_obj sw_obj w_obj nw_obj n_obj syn keyword informLibObj ne_obj u_obj d_obj in_obj out_obj compass syn keyword informLibObj thedark selfobj player location second actor syn keyword informLibObj noun if !exists("inform_highlight_old") syn keyword informLibObj LibraryExtensions endif syn keyword informLibRoutine Achieved AfterRoutines AddToScope syn keyword informLibRoutine AllowPushDir Banner ChangeDefault syn keyword informLibRoutine ChangePlayer CommonAncestor DictionaryLookup syn keyword informLibRoutine DisplayStatus DoMenu DrawStatusLine syn keyword informLibRoutine EnglishNumber HasLightSource GetGNAOfObject syn keyword informLibRoutine IndirectlyContains IsSeeThrough Locale syn keyword informLibRoutine LoopOverScope LTI_Insert MoveFloatingObjects syn keyword informLibRoutine NextWord NextWordStopped NounDomain syn keyword informLibRoutine ObjectIsUntouchable OffersLight ParseToken syn keyword informLibRoutine PlaceInScope PlayerTo PrintShortName syn keyword informLibRoutine PronounNotice ScopeWithin SetPronoun SetTime syn keyword informLibRoutine StartDaemon StartTimer StopDaemon StopTimer syn keyword informLibRoutine TestScope TryNumber UnsignedCompare syn keyword informLibRoutine WordAddress WordInProperty WordLength syn keyword informLibRoutine WriteListFrom YesOrNo ZRegion RunRoutines syn keyword informLibRoutine AfterLife AfterPrompt Amusing BeforeParsing syn keyword informLibRoutine ChooseObjects DarkToDark DeathMessage syn keyword informLibRoutine GamePostRoutine GamePreRoutine Initialise syn keyword informLibRoutine InScope LookRoutine NewRoom ParseNoun syn keyword informLibRoutine ParseNumber ParserError PrintRank PrintVerb syn keyword informLibRoutine PrintTaskName TimePasses UnknownVerb if exists("inform_highlight_glulx") syn keyword informLibRoutine IdentifyGlkObject HandleGlkEvent syn keyword informLibRoutine InitGlkWindow endif if !exists("inform_highlight_old") syn keyword informLibRoutine KeyCharPrimitive KeyDelay ClearScreen syn keyword informLibRoutine MoveCursor MainWindow StatusLineHeight syn keyword informLibRoutine ScreenWidth ScreenHeight SetColour syn keyword informLibRoutine DecimalNumber PrintToBuffer Length syn keyword informLibRoutine UpperCase LowerCase PrintCapitalised syn keyword informLibRoutine Cap Centre if exists("inform_highlight_glulx") syn keyword informLibRoutine PrintAnything PrintAnyToArray endif endif syn keyword informLibAction Quit Restart Restore Verify Save syn keyword informLibAction ScriptOn ScriptOff Pronouns Score syn keyword informLibAction Fullscore LMode1 LMode2 LMode3 syn keyword informLibAction NotifyOn NotifyOff Version Places syn keyword informLibAction Objects TraceOn TraceOff TraceLevel syn keyword informLibAction ActionsOn ActionsOff RoutinesOn syn keyword informLibAction RoutinesOff TimersOn TimersOff syn keyword informLibAction CommandsOn CommandsOff CommandsRead syn keyword informLibAction Predictable XPurloin XAbstract XTree syn keyword informLibAction Scope Goto Gonear Inv InvTall InvWide syn keyword informLibAction Take Drop Remove PutOn Insert Transfer syn keyword informLibAction Empty Enter Exit GetOff Go Goin Look syn keyword informLibAction Examine Search Give Show Unlock Lock syn keyword informLibAction SwitchOn SwitchOff Open Close Disrobe syn keyword informLibAction Wear Eat Yes No Burn Pray Wake syn keyword informLibAction WakeOther Consult Kiss Think Smell syn keyword informLibAction Listen Taste Touch Dig Cut Jump syn keyword informLibAction JumpOver Tie Drink Fill Sorry Strong syn keyword informLibAction Mild Attack Swim Swing Blow Rub Set syn keyword informLibAction SetTo WaveHands Wave Pull Push PushDir syn keyword informLibAction Turn Squeeze LookUnder ThrowAt Tell syn keyword informLibAction Answer Buy Ask AskFor Sing Climb Wait syn keyword informLibAction Sleep LetGo Receive ThrownAt Order syn keyword informLibAction TheSame PluralFound Miscellany Prompt syn keyword informLibAction ChangesOn ChangesOff Showverb Showobj syn keyword informLibAction EmptyT VagueGo if exists("inform_highlight_glulx") syn keyword informLibAction GlkList endif syn keyword informLibVariable keep_silent deadflag action special_number syn keyword informLibVariable consult_from consult_words etype verb_num syn keyword informLibVariable verb_word the_time real_location c_style syn keyword informLibVariable parser_one parser_two listing_together wn syn keyword informLibVariable parser_action scope_stage scope_reason syn keyword informLibVariable action_to_be menu_item item_name item_width syn keyword informLibVariable lm_o lm_n inventory_style task_scores syn keyword informLibVariable inventory_stage syn keyword informLibConst AMUSING_PROVIDED DEBUG Headline MAX_CARRIED syn keyword informLibConst MAX_SCORE MAX_TIMERS NO_PLACES NUMBER_TASKS syn keyword informLibConst OBJECT_SCORE ROOM_SCORE SACK_OBJECT Story syn keyword informLibConst TASKS_PROVIDED WITHOUT_DIRECTIONS syn keyword informLibConst NEWLINE_BIT INDENT_BIT FULLINV_BIT ENGLISH_BIT syn keyword informLibConst RECURSE_BIT ALWAYS_BIT TERSE_BIT PARTINV_BIT syn keyword informLibConst DEFART_BIT WORKFLAG_BIT ISARE_BIT CONCEAL_BIT syn keyword informLibConst PARSING_REASON TALKING_REASON EACHTURN_REASON syn keyword informLibConst REACT_BEFORE_REASON REACT_AFTER_REASON syn keyword informLibConst TESTSCOPE_REASON LOOPOVERSCOPE_REASON syn keyword informLibConst STUCK_PE UPTO_PE NUMBER_PE CANTSEE_PE TOOLIT_PE syn keyword informLibConst NOTHELD_PE MULTI_PE MMULTI_PE VAGUE_PE EXCEPT_PE syn keyword informLibConst ANIMA_PE VERB_PE SCENERY_PE ITGONE_PE syn keyword informLibConst JUNKAFTER_PE TOOFEW_PE NOTHING_PE ASKSCOPE_PE if !exists("inform_highlight_old") syn keyword informLibConst WORDSIZE TARGET_ZCODE TARGET_GLULX syn keyword informLibConst LIBRARY_PARSER LIBRARY_VERBLIB LIBRARY_GRAMMAR syn keyword informLibConst LIBRARY_ENGLISH NO_SCORE START_MOVE syn keyword informLibConst CLR_DEFAULT CLR_BLACK CLR_RED CLR_GREEN syn keyword informLibConst CLR_YELLOW CLR_BLUE CLR_MAGENTA CLR_CYAN syn keyword informLibConst CLR_WHITE CLR_PURPLE CLR_AZURE syn keyword informLibConst WIN_ALL WIN_MAIN WIN_STATUS endif endif " Now the case sensitive stuff. syntax case match syn keyword informSysFunc child children elder indirect parent random syn keyword informSysFunc sibling younger youngest metaclass if exists("inform_highlight_glulx") syn keyword informSysFunc glk endif syn keyword informSysConst adjectives_table actions_table classes_table syn keyword informSysConst identifiers_table preactions_table version_number syn keyword informSysConst largest_object strings_offset code_offset syn keyword informSysConst dict_par1 dict_par2 dict_par3 syn keyword informSysConst actual_largest_object static_memory_offset syn keyword informSysConst array_names_offset readable_memory_offset syn keyword informSysConst cpv__start cpv__end ipv__start ipv__end syn keyword informSysConst array__start array__end lowest_attribute_number syn keyword informSysConst highest_attribute_number attribute_names_array syn keyword informSysConst lowest_property_number highest_property_number syn keyword informSysConst property_names_array lowest_action_number syn keyword informSysConst highest_action_number action_names_array syn keyword informSysConst lowest_fake_action_number highest_fake_action_number syn keyword informSysConst fake_action_names_array lowest_routine_number syn keyword informSysConst highest_routine_number routines_array syn keyword informSysConst routine_names_array routine_flags_array syn keyword informSysConst lowest_global_number highest_global_number globals_array syn keyword informSysConst global_names_array global_flags_array syn keyword informSysConst lowest_array_number highest_array_number arrays_array syn keyword informSysConst array_names_array array_flags_array lowest_constant_number syn keyword informSysConst highest_constant_number constants_array constant_names_array syn keyword informSysConst lowest_class_number highest_class_number class_objects_array syn keyword informSysConst lowest_object_number highest_object_number if !exists("inform_highlight_old") syn keyword informSysConst sys_statusline_flag endif syn keyword informConditional default else if switch syn keyword informRepeat break continue do for objectloop until while syn keyword informStatement box font give inversion jump move new_line syn keyword informStatement print print_ret quit read remove restore return syn keyword informStatement rfalse rtrue save spaces string style syn keyword informOperator roman reverse bold underline fixed on off to syn keyword informOperator near from syn keyword informKeyword dictionary symbols objects verbs assembly syn keyword informKeyword expressions lines tokens linker on off alias long syn keyword informKeyword additive score time string table syn keyword informKeyword with private has class error fatalerror syn keyword informKeyword warning self if !exists("inform_highlight_old") syn keyword informKeyword buffer endif syn keyword informMetaAttrib remaining create destroy recreate copy call syn keyword informMetaAttrib print_to_array syn keyword informPredicate has hasnt in notin ofclass or syn keyword informPredicate provides syn keyword informGrammar contained noun held multi multiheld multiexcept syn keyword informGrammar contained multiinside creature special number syn keyword informGrammar contained scope topic reverse meta only replace syn keyword informGrammar contained first last syn keyword informKeywordObsolete contained initial data initstr syn keyword informTodo contained TODO " Assembly language mnemonics must be preceded by a '@'. syn match informAsmContainer "@\s*\k*" contains=informAsm,informAsmObsolete if exists("inform_highlight_glulx") syn keyword informAsm contained nop add sub mul div mod neg bitand bitor syn keyword informAsm contained bitxor bitnot shiftl sshiftr ushiftr jump jz syn keyword informAsm contained jnz jeq jne jlt jge jgt jle jltu jgeu jgtu syn keyword informAsm contained jleu call return catch throw tailcall copy syn keyword informAsm contained copys copyb sexs sexb aload aloads aloadb syn keyword informAsm contained aloadbit astore astores astoreb astorebit syn keyword informAsm contained stkcount stkpeek stkswap stkroll stkcopy syn keyword informAsm contained streamchar streamnum streamstr gestalt syn keyword informAsm contained debugtrap getmemsize setmemsize jumpabs syn keyword informAsm contained random setrandom quit verify restart save syn keyword informAsm contained restore saveundo restoreundo protect glk syn keyword informAsm contained getstringtbl setstringtbl getiosys setiosys syn keyword informAsm contained linearsearch binarysearch linkedsearch syn keyword informAsm contained callf callfi callfii callfiii else syn keyword informAsm contained je jl jg dec_chk inc_chk jin test or and syn keyword informAsm contained test_attr set_attr clear_attr store syn keyword informAsm contained insert_obj loadw loadb get_prop syn keyword informAsm contained get_prop_addr get_next_prop add sub mul div syn keyword informAsm contained mod call storew storeb put_prop sread syn keyword informAsm contained print_num random push pull syn keyword informAsm contained split_window set_window output_stream syn keyword informAsm contained input_stream sound_effect jz get_sibling syn keyword informAsm contained get_child get_parent get_prop_len inc dec syn keyword informAsm contained remove_obj print_obj ret jump syn keyword informAsm contained load not rtrue rfalse print syn keyword informAsm contained print_ret nop save restore restart syn keyword informAsm contained ret_popped pop quit new_line show_status syn keyword informAsm contained verify call_2s call_vs aread call_vs2 syn keyword informAsm contained erase_window erase_line set_cursor get_cursor syn keyword informAsm contained set_text_style buffer_mode read_char syn keyword informAsm contained scan_table call_1s call_2n set_colour throw syn keyword informAsm contained call_vn call_vn2 tokenise encode_text syn keyword informAsm contained copy_table print_table check_arg_count syn keyword informAsm contained call_1n catch piracy log_shift art_shift syn keyword informAsm contained set_font save_undo restore_undo draw_picture syn keyword informAsm contained picture_data erase_picture set_margins syn keyword informAsm contained move_window window_size window_style syn keyword informAsm contained get_wind_prop scroll_window pop_stack syn keyword informAsm contained read_mouse mouse_window push_stack syn keyword informAsm contained put_wind_prop print_form make_menu syn keyword informAsm contained picture_table if !exists("inform_highlight_old") syn keyword informAsm contained check_unicode print_unicode endif syn keyword informAsmObsolete contained print_paddr print_addr print_char endif " Handling for different versions of VIM. if version >= 600 setlocal iskeyword+=$ command -nargs=+ SynDisplay syntax display else set iskeyword+=$ command -nargs=+ SynDisplay syntax endif " Grammar sections. syn region informGrammarSection matchgroup=informGramPreProc start="\" skip=+".*"+ end=";"he=e-1 contains=ALLBUT,informAsm " Special character forms. SynDisplay match informBadAccent contained "@[^{[:digit:]]\D" SynDisplay match informBadAccent contained "@{[^}]*}" SynDisplay match informAccent contained "@:[aouAOUeiyEI]" SynDisplay match informAccent contained "@'[aeiouyAEIOUY]" SynDisplay match informAccent contained "@`[aeiouAEIOU]" SynDisplay match informAccent contained "@\^[aeiouAEIOU]" SynDisplay match informAccent contained "@\~[anoANO]" SynDisplay match informAccent contained "@/[oO]" SynDisplay match informAccent contained "@ss\|@<<\|@>>\|@oa\|@oA\|@ae\|@AE\|@cc\|@cC" SynDisplay match informAccent contained "@th\|@et\|@Th\|@Et\|@LL\|@oe\|@OE\|@!!\|@??" SynDisplay match informAccent contained "@{\x\{1,4}}" SynDisplay match informBadStrUnicode contained "@@\D" SynDisplay match informStringUnicode contained "@@\d\+" SynDisplay match informStringCode contained "@\d\d" " String and Character constants. Ordering is important here. syn region informString start=+"+ skip=+\\\\+ end=+"+ contains=informAccent,informStringUnicode,informStringCode,informBadAccent,informBadStrUnicode syn region informDictString start="'" end="'" contains=informAccent,informBadAccent SynDisplay match informBadDictString "''" SynDisplay match informDictString "'''" " Integer numbers: decimal, hexadecimal and binary. SynDisplay match informNumber "\<\d\+\>" SynDisplay match informNumber "\<\$\x\+\>" SynDisplay match informNumber "\<\$\$[01]\+\>" " Comments syn match informComment "!.*" contains=informTodo " Syncronization syn sync match informSyncStringEnd grouphere NONE /"[;,]\s*$/ syn sync match informSyncRoutineEnd grouphere NONE /][;,]\s*$/ syn sync match informSyncCommentEnd grouphere NONE /^\s*!.*$/ syn sync match informSyncRoutine groupthere informGrammarSection "\" syn sync maxlines=500 delcommand SynDisplay " The default highlighting. if version >= 508 || !exists("did_inform_syn_inits") if version < 508 let did_inform_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink informDefine Define HiLink informType Type HiLink informInclude Include HiLink informPreCondit PreCondit HiLink informPreProc PreProc HiLink informGramPreProc PreProc HiLink informAsm Special if !exists("inform_suppress_obsolete") HiLink informAsmObsolete informError HiLink informKeywordObsolete informError else HiLink informAsmObsolete Special HiLink informKeywordObsolete Keyword endif HiLink informPredicate Operator HiLink informSysFunc Identifier HiLink informSysConst Identifier HiLink informConditional Conditional HiLink informRepeat Repeat HiLink informStatement Statement HiLink informOperator Operator HiLink informKeyword Keyword HiLink informGrammar Keyword HiLink informDictString String HiLink informNumber Number HiLink informError Error HiLink informString String HiLink informComment Comment HiLink informAccent Special HiLink informStringUnicode Special HiLink informStringCode Special HiLink informTodo Todo if !exists("inform_highlight_simple") HiLink informLibAttrib Identifier HiLink informLibProp Identifier HiLink informLibObj Identifier HiLink informLibRoutine Identifier HiLink informLibVariable Identifier HiLink informLibConst Identifier HiLink informLibAction Identifier endif HiLink informBadDictString informError HiLink informBadAccent informError HiLink informBadStrUnicode informError delcommand HiLink endif let b:current_syntax = "inform" " vim: ts=8