neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

inform.vim (19483B)


      1 " Vim syntax file
      2 " Language:     Inform
      3 " Maintainer:   Stephen Thomas (stephen@gowarthomas.com)
      4 " URL:		http://www.gowarthomas.com/informvim
      5 " Last Change:  2006 April 20
      6 
      7 " quit when a syntax file was already loaded
      8 if exists("b:current_syntax")
      9  finish
     10 endif
     11 
     12 " A bunch of useful Inform keywords.  First, case insensitive stuff
     13 
     14 syn case ignore
     15 
     16 syn keyword informDefine Constant
     17 
     18 syn keyword informType Array Attribute Class Nearby
     19 syn keyword informType Object Property String Routine
     20 syn match   informType "\<Global\>"
     21 
     22 syn keyword informInclude Import Include Link Replace System_file
     23 
     24 syn keyword informPreCondit End Endif Ifdef Ifndef Iftrue Iffalse Ifv3 Ifv5
     25 syn keyword informPreCondit Ifnot
     26 
     27 syn keyword informPreProc Abbreviate Default Fake_action Lowstring
     28 syn keyword informPreProc Message Release Serial Statusline Stub Switches
     29 syn keyword informPreProc Trace Zcharacter
     30 
     31 syn region  informGlobalRegion matchgroup=informType start="\<Global\>" matchgroup=NONE skip=+!.*$\|".*"\|'.*'+ end=";" contains=ALLBUT,informGramPreProc,informPredicate,informGrammar,informAsm,informAsmObsolete
     32 
     33 syn keyword informGramPreProc contained Verb Extend
     34 
     35 if !exists("inform_highlight_simple")
     36  syn keyword informLibAttrib absent animate clothing concealed container
     37  syn keyword informLibAttrib door edible enterable female general light
     38  syn keyword informLibAttrib lockable locked male moved neuter on open
     39  syn keyword informLibAttrib openable pluralname proper scenery scored
     40  syn keyword informLibAttrib static supporter switchable talkable
     41  syn keyword informLibAttrib visited workflag worn
     42  syn match informLibAttrib "\<transparent\>"
     43 
     44  syn keyword informLibProp e_to se_to s_to sw_to w_to nw_to n_to ne_to
     45  syn keyword informLibProp u_to d_to in_to out_to before after life
     46  syn keyword informLibProp door_to with_key door_dir invent plural
     47  syn keyword informLibProp add_to_scope list_together react_before
     48  syn keyword informLibProp react_after grammar orders initial when_open
     49  syn keyword informLibProp when_closed when_on when_off description
     50  syn keyword informLibProp describe article cant_go found_in time_left
     51  syn keyword informLibProp number time_out daemon each_turn capacity
     52  syn keyword informLibProp name short_name short_name_indef parse_name
     53  syn keyword informLibProp articles inside_description
     54  if !exists("inform_highlight_old")
     55    syn keyword informLibProp compass_look before_implicit
     56    syn keyword informLibProp ext_initialise ext_messages
     57  endif
     58 
     59  syn keyword informLibObj e_obj se_obj s_obj sw_obj w_obj nw_obj n_obj
     60  syn keyword informLibObj ne_obj u_obj d_obj in_obj out_obj compass
     61  syn keyword informLibObj thedark selfobj player location second actor
     62  syn keyword informLibObj noun
     63  if !exists("inform_highlight_old")
     64    syn keyword informLibObj LibraryExtensions
     65  endif
     66 
     67  syn keyword informLibRoutine Achieved AfterRoutines AddToScope
     68  syn keyword informLibRoutine AllowPushDir Banner ChangeDefault
     69  syn keyword informLibRoutine ChangePlayer CommonAncestor DictionaryLookup
     70  syn keyword informLibRoutine DisplayStatus DoMenu DrawStatusLine
     71  syn keyword informLibRoutine EnglishNumber HasLightSource GetGNAOfObject
     72  syn keyword informLibRoutine IndirectlyContains IsSeeThrough Locale
     73  syn keyword informLibRoutine LoopOverScope LTI_Insert MoveFloatingObjects
     74  syn keyword informLibRoutine NextWord NextWordStopped NounDomain
     75  syn keyword informLibRoutine ObjectIsUntouchable OffersLight ParseToken
     76  syn keyword informLibRoutine PlaceInScope PlayerTo PrintShortName
     77  syn keyword informLibRoutine PronounNotice ScopeWithin SetPronoun SetTime
     78  syn keyword informLibRoutine StartDaemon StartTimer StopDaemon StopTimer
     79  syn keyword informLibRoutine TestScope TryNumber UnsignedCompare
     80  syn keyword informLibRoutine WordAddress WordInProperty WordLength
     81  syn keyword informLibRoutine WriteListFrom YesOrNo ZRegion RunRoutines
     82  syn keyword informLibRoutine AfterLife AfterPrompt Amusing BeforeParsing
     83  syn keyword informLibRoutine ChooseObjects DarkToDark DeathMessage
     84  syn keyword informLibRoutine GamePostRoutine GamePreRoutine Initialise
     85  syn keyword informLibRoutine InScope LookRoutine NewRoom ParseNoun
     86  syn keyword informLibRoutine ParseNumber ParserError PrintRank PrintVerb
     87  syn keyword informLibRoutine PrintTaskName TimePasses UnknownVerb
     88  if exists("inform_highlight_glulx")
     89     syn keyword informLibRoutine  IdentifyGlkObject HandleGlkEvent
     90     syn keyword informLibRoutine  InitGlkWindow
     91  endif
     92  if !exists("inform_highlight_old")
     93     syn keyword informLibRoutine  KeyCharPrimitive KeyDelay ClearScreen
     94     syn keyword informLibRoutine  MoveCursor MainWindow StatusLineHeight
     95     syn keyword informLibRoutine  ScreenWidth ScreenHeight SetColour
     96     syn keyword informLibRoutine  DecimalNumber PrintToBuffer Length
     97     syn keyword informLibRoutine  UpperCase LowerCase PrintCapitalised
     98     syn keyword informLibRoutine  Cap Centre
     99     if exists("inform_highlight_glulx")
    100 syn keyword informLibRoutine  PrintAnything PrintAnyToArray
    101     endif
    102  endif
    103 
    104  syn keyword informLibAction  Quit Restart Restore Verify Save
    105  syn keyword informLibAction  ScriptOn ScriptOff Pronouns Score
    106  syn keyword informLibAction  Fullscore LMode1 LMode2 LMode3
    107  syn keyword informLibAction  NotifyOn NotifyOff Version Places
    108  syn keyword informLibAction  Objects TraceOn TraceOff TraceLevel
    109  syn keyword informLibAction  ActionsOn ActionsOff RoutinesOn
    110  syn keyword informLibAction  RoutinesOff TimersOn TimersOff
    111  syn keyword informLibAction  CommandsOn CommandsOff CommandsRead
    112  syn keyword informLibAction  Predictable XPurloin XAbstract XTree
    113  syn keyword informLibAction  Scope Goto Gonear Inv InvTall InvWide
    114  syn keyword informLibAction  Take Drop Remove PutOn Insert Transfer
    115  syn keyword informLibAction  Empty Enter Exit GetOff Go Goin Look
    116  syn keyword informLibAction  Examine Search Give Show Unlock Lock
    117  syn keyword informLibAction  SwitchOn SwitchOff Open Close Disrobe
    118  syn keyword informLibAction  Wear Eat Yes No Burn Pray Wake
    119  syn keyword informLibAction  WakeOther Consult Kiss Think Smell
    120  syn keyword informLibAction  Listen Taste Touch Dig Cut Jump
    121  syn keyword informLibAction  JumpOver Tie Drink Fill Sorry Strong
    122  syn keyword informLibAction  Mild Attack Swim Swing Blow Rub Set
    123  syn keyword informLibAction  SetTo WaveHands Wave Pull Push PushDir
    124  syn keyword informLibAction  Turn Squeeze LookUnder ThrowAt Tell
    125  syn keyword informLibAction  Answer Buy Ask AskFor Sing Climb Wait
    126  syn keyword informLibAction  Sleep LetGo Receive ThrownAt Order
    127  syn keyword informLibAction  TheSame PluralFound Miscellany Prompt
    128  syn keyword informLibAction  ChangesOn ChangesOff Showverb Showobj
    129  syn keyword informLibAction  EmptyT VagueGo
    130  if exists("inform_highlight_glulx")
    131     syn keyword informLibAction  GlkList
    132  endif
    133 
    134  syn keyword informLibVariable keep_silent deadflag action special_number
    135  syn keyword informLibVariable consult_from consult_words etype verb_num
    136  syn keyword informLibVariable verb_word the_time real_location c_style
    137  syn keyword informLibVariable parser_one parser_two listing_together wn
    138  syn keyword informLibVariable parser_action scope_stage scope_reason
    139  syn keyword informLibVariable action_to_be menu_item item_name item_width
    140  syn keyword informLibVariable lm_o lm_n inventory_style task_scores
    141  syn keyword informLibVariable inventory_stage
    142 
    143  syn keyword informLibConst AMUSING_PROVIDED DEBUG Headline MAX_CARRIED
    144  syn keyword informLibConst MAX_SCORE MAX_TIMERS NO_PLACES NUMBER_TASKS
    145  syn keyword informLibConst OBJECT_SCORE ROOM_SCORE SACK_OBJECT Story
    146  syn keyword informLibConst TASKS_PROVIDED WITHOUT_DIRECTIONS
    147  syn keyword informLibConst NEWLINE_BIT INDENT_BIT FULLINV_BIT ENGLISH_BIT
    148  syn keyword informLibConst RECURSE_BIT ALWAYS_BIT TERSE_BIT PARTINV_BIT
    149  syn keyword informLibConst DEFART_BIT WORKFLAG_BIT ISARE_BIT CONCEAL_BIT
    150  syn keyword informLibConst PARSING_REASON TALKING_REASON EACHTURN_REASON
    151  syn keyword informLibConst REACT_BEFORE_REASON REACT_AFTER_REASON
    152  syn keyword informLibConst TESTSCOPE_REASON LOOPOVERSCOPE_REASON
    153  syn keyword informLibConst STUCK_PE UPTO_PE NUMBER_PE CANTSEE_PE TOOLIT_PE
    154  syn keyword informLibConst NOTHELD_PE MULTI_PE MMULTI_PE VAGUE_PE EXCEPT_PE
    155  syn keyword informLibConst ANIMA_PE VERB_PE SCENERY_PE ITGONE_PE
    156  syn keyword informLibConst JUNKAFTER_PE TOOFEW_PE NOTHING_PE ASKSCOPE_PE
    157  if !exists("inform_highlight_old")
    158     syn keyword informLibConst WORDSIZE TARGET_ZCODE TARGET_GLULX
    159     syn keyword informLibConst LIBRARY_PARSER LIBRARY_VERBLIB LIBRARY_GRAMMAR
    160     syn keyword informLibConst LIBRARY_ENGLISH NO_SCORE START_MOVE
    161     syn keyword informLibConst CLR_DEFAULT CLR_BLACK CLR_RED CLR_GREEN
    162     syn keyword informLibConst CLR_YELLOW CLR_BLUE CLR_MAGENTA CLR_CYAN
    163     syn keyword informLibConst CLR_WHITE CLR_PURPLE CLR_AZURE
    164     syn keyword informLibConst WIN_ALL WIN_MAIN WIN_STATUS
    165  endif
    166 endif
    167 
    168 " Now the case sensitive stuff.
    169 
    170 syntax case match
    171 
    172 syn keyword informSysFunc child children elder indirect parent random
    173 syn keyword informSysFunc sibling younger youngest metaclass
    174 if exists("inform_highlight_glulx")
    175  syn keyword informSysFunc glk
    176 endif
    177 
    178 syn keyword informSysConst adjectives_table actions_table classes_table
    179 syn keyword informSysConst identifiers_table preactions_table version_number
    180 syn keyword informSysConst largest_object strings_offset code_offset
    181 syn keyword informSysConst dict_par1 dict_par2 dict_par3
    182 syn keyword informSysConst actual_largest_object static_memory_offset
    183 syn keyword informSysConst array_names_offset readable_memory_offset
    184 syn keyword informSysConst cpv__start cpv__end ipv__start ipv__end
    185 syn keyword informSysConst array__start array__end lowest_attribute_number
    186 syn keyword informSysConst highest_attribute_number attribute_names_array
    187 syn keyword informSysConst lowest_property_number highest_property_number
    188 syn keyword informSysConst property_names_array lowest_action_number
    189 syn keyword informSysConst highest_action_number action_names_array
    190 syn keyword informSysConst lowest_fake_action_number highest_fake_action_number
    191 syn keyword informSysConst fake_action_names_array lowest_routine_number
    192 syn keyword informSysConst highest_routine_number routines_array
    193 syn keyword informSysConst routine_names_array routine_flags_array
    194 syn keyword informSysConst lowest_global_number highest_global_number globals_array
    195 syn keyword informSysConst global_names_array global_flags_array
    196 syn keyword informSysConst lowest_array_number highest_array_number arrays_array
    197 syn keyword informSysConst array_names_array array_flags_array lowest_constant_number
    198 syn keyword informSysConst highest_constant_number constants_array constant_names_array
    199 syn keyword informSysConst lowest_class_number highest_class_number class_objects_array
    200 syn keyword informSysConst lowest_object_number highest_object_number
    201 if !exists("inform_highlight_old")
    202  syn keyword informSysConst sys_statusline_flag
    203 endif
    204 
    205 syn keyword informConditional default else if switch
    206 
    207 syn keyword informRepeat break continue do for objectloop until while
    208 
    209 syn keyword informStatement box font give inversion jump move new_line
    210 syn keyword informStatement print print_ret quit read remove restore return
    211 syn keyword informStatement rfalse rtrue save spaces string style
    212 
    213 syn keyword informOperator roman reverse bold underline fixed on off to
    214 syn keyword informOperator near from
    215 
    216 syn keyword informKeyword dictionary symbols objects verbs assembly
    217 syn keyword informKeyword expressions lines tokens linker on off alias long
    218 syn keyword informKeyword additive score time string table
    219 syn keyword informKeyword with private has class error fatalerror
    220 syn keyword informKeyword warning self
    221 if !exists("inform_highlight_old")
    222  syn keyword informKeyword buffer
    223 endif
    224 
    225 syn keyword informMetaAttrib remaining create destroy recreate copy call
    226 syn keyword informMetaAttrib print_to_array
    227 
    228 syn keyword informPredicate has hasnt in notin ofclass or
    229 syn keyword informPredicate provides
    230 
    231 syn keyword informGrammar contained noun held multi multiheld multiexcept
    232 syn keyword informGrammar contained multiinside creature special number
    233 syn keyword informGrammar contained scope topic reverse meta only replace
    234 syn keyword informGrammar contained first last
    235 
    236 syn keyword informKeywordObsolete contained initial data initstr
    237 
    238 syn keyword informTodo contained TODO
    239 
    240 " Assembly language mnemonics must be preceded by a '@'.
    241 
    242 syn match informAsmContainer "@\s*\k*" contains=informAsm,informAsmObsolete
    243 
    244 if exists("inform_highlight_glulx")
    245  syn keyword informAsm contained nop add sub mul div mod neg bitand bitor
    246  syn keyword informAsm contained bitxor bitnot shiftl sshiftr ushiftr jump jz
    247  syn keyword informAsm contained jnz jeq jne jlt jge jgt jle jltu jgeu jgtu
    248  syn keyword informAsm contained jleu call return catch throw tailcall copy
    249  syn keyword informAsm contained copys copyb sexs sexb aload aloads aloadb
    250  syn keyword informAsm contained aloadbit astore astores astoreb astorebit
    251  syn keyword informAsm contained stkcount stkpeek stkswap stkroll stkcopy
    252  syn keyword informAsm contained streamchar streamnum streamstr gestalt
    253  syn keyword informAsm contained debugtrap getmemsize setmemsize jumpabs
    254  syn keyword informAsm contained random setrandom quit verify restart save
    255  syn keyword informAsm contained restore saveundo restoreundo protect glk
    256  syn keyword informAsm contained getstringtbl setstringtbl getiosys setiosys
    257  syn keyword informAsm contained linearsearch binarysearch linkedsearch
    258  syn keyword informAsm contained callf callfi callfii callfiii
    259 else
    260  syn keyword informAsm contained je jl jg dec_chk inc_chk jin test or and
    261  syn keyword informAsm contained test_attr set_attr clear_attr store
    262  syn keyword informAsm contained insert_obj loadw loadb get_prop
    263  syn keyword informAsm contained get_prop_addr get_next_prop add sub mul div
    264  syn keyword informAsm contained mod call storew storeb put_prop sread
    265  syn keyword informAsm contained print_num random push pull
    266  syn keyword informAsm contained split_window set_window output_stream
    267  syn keyword informAsm contained input_stream sound_effect jz get_sibling
    268  syn keyword informAsm contained get_child get_parent get_prop_len inc dec
    269  syn keyword informAsm contained remove_obj print_obj ret jump
    270  syn keyword informAsm contained load not rtrue rfalse print
    271  syn keyword informAsm contained print_ret nop save restore restart
    272  syn keyword informAsm contained ret_popped pop quit new_line show_status
    273  syn keyword informAsm contained verify call_2s call_vs aread call_vs2
    274  syn keyword informAsm contained erase_window erase_line set_cursor get_cursor
    275  syn keyword informAsm contained set_text_style buffer_mode read_char
    276  syn keyword informAsm contained scan_table call_1s call_2n set_colour throw
    277  syn keyword informAsm contained call_vn call_vn2 tokenise encode_text
    278  syn keyword informAsm contained copy_table print_table check_arg_count
    279  syn keyword informAsm contained call_1n catch piracy log_shift art_shift
    280  syn keyword informAsm contained set_font save_undo restore_undo draw_picture
    281  syn keyword informAsm contained picture_data erase_picture set_margins
    282  syn keyword informAsm contained move_window window_size window_style
    283  syn keyword informAsm contained get_wind_prop scroll_window pop_stack
    284  syn keyword informAsm contained read_mouse mouse_window push_stack
    285  syn keyword informAsm contained put_wind_prop print_form make_menu
    286  syn keyword informAsm contained picture_table
    287  if !exists("inform_highlight_old")
    288     syn keyword informAsm contained check_unicode print_unicode
    289  endif
    290  syn keyword informAsmObsolete contained print_paddr print_addr print_char
    291 endif
    292 
    293 " Handling for different versions of VIM.
    294 
    295 setlocal iskeyword+=$
    296 command -nargs=+ SynDisplay syntax <args> display
    297 
    298 " Grammar sections.
    299 
    300 syn region informGrammarSection matchgroup=informGramPreProc start="\<Verb\|Extend\>" skip=+".*"+ end=";"he=e-1 contains=ALLBUT,informAsm
    301 
    302 " Special character forms.
    303 
    304 SynDisplay match informBadAccent contained "@[^{[:digit:]]\D"
    305 SynDisplay match informBadAccent contained "@{[^}]*}"
    306 SynDisplay match informAccent contained "@:[aouAOUeiyEI]"
    307 SynDisplay match informAccent contained "@'[aeiouyAEIOUY]"
    308 SynDisplay match informAccent contained "@`[aeiouAEIOU]"
    309 SynDisplay match informAccent contained "@\^[aeiouAEIOU]"
    310 SynDisplay match informAccent contained "@\~[anoANO]"
    311 SynDisplay match informAccent contained "@/[oO]"
    312 SynDisplay match informAccent contained "@ss\|@<<\|@>>\|@oa\|@oA\|@ae\|@AE\|@cc\|@cC"
    313 SynDisplay match informAccent contained "@th\|@et\|@Th\|@Et\|@LL\|@oe\|@OE\|@!!\|@??"
    314 SynDisplay match informAccent contained "@{\x\{1,4}}"
    315 SynDisplay match informBadStrUnicode contained "@@\D"
    316 SynDisplay match informStringUnicode contained "@@\d\+"
    317 SynDisplay match informStringCode contained "@\d\d"
    318 
    319 " String and Character constants.  Ordering is important here.
    320 syn region informString start=+"+ skip=+\\\\+ end=+"+ contains=informAccent,informStringUnicode,informStringCode,informBadAccent,informBadStrUnicode
    321 syn region informDictString start="'" end="'" contains=informAccent,informBadAccent
    322 SynDisplay match informBadDictString "''"
    323 SynDisplay match informDictString "'''"
    324 
    325 " Integer numbers: decimal, hexadecimal and binary.
    326 SynDisplay match informNumber "\<\d\+\>"
    327 SynDisplay match informNumber "\<\$\x\+\>"
    328 SynDisplay match informNumber "\<\$\$[01]\+\>"
    329 
    330 " Comments
    331 syn match informComment "!.*" contains=informTodo
    332 
    333 " Syncronization
    334 syn sync match informSyncStringEnd grouphere NONE /"[;,]\s*$/
    335 syn sync match informSyncRoutineEnd grouphere NONE /][;,]\s*$/
    336 syn sync match informSyncCommentEnd grouphere NONE /^\s*!.*$/
    337 syn sync match informSyncRoutine groupthere informGrammarSection "\<Verb\|Extend\>"
    338 syn sync maxlines=500
    339 
    340 delcommand SynDisplay
    341 
    342 " The default highlighting.
    343 
    344 hi def link informDefine		Define
    345 hi def link informType		Type
    346 hi def link informInclude		Include
    347 hi def link informPreCondit	PreCondit
    348 hi def link informPreProc		PreProc
    349 hi def link informGramPreProc	PreProc
    350 hi def link informAsm		Special
    351 if !exists("inform_suppress_obsolete")
    352 hi def link informAsmObsolete		informError
    353 hi def link informKeywordObsolete	informError
    354 else
    355 hi def link informAsmObsolete		Special
    356 hi def link informKeywordObsolete	Keyword
    357 endif
    358 hi def link informPredicate	Operator
    359 hi def link informSysFunc		Identifier
    360 hi def link informSysConst		Identifier
    361 hi def link informConditional	Conditional
    362 hi def link informRepeat		Repeat
    363 hi def link informStatement	Statement
    364 hi def link informOperator		Operator
    365 hi def link informKeyword		Keyword
    366 hi def link informGrammar		Keyword
    367 hi def link informDictString	String
    368 hi def link informNumber		Number
    369 hi def link informError		Error
    370 hi def link informString		String
    371 hi def link informComment		Comment
    372 hi def link informAccent		Special
    373 hi def link informStringUnicode	Special
    374 hi def link informStringCode	Special
    375 hi def link informTodo		Todo
    376 if !exists("inform_highlight_simple")
    377 hi def link informLibAttrib	Identifier
    378 hi def link informLibProp	Identifier
    379 hi def link informLibObj		Identifier
    380 hi def link informLibRoutine	Identifier
    381 hi def link informLibVariable	Identifier
    382 hi def link informLibConst	Identifier
    383 hi def link informLibAction	Identifier
    384 endif
    385 hi def link informBadDictString	informError
    386 hi def link informBadAccent	informError
    387 hi def link informBadStrUnicode	informError
    388 
    389 
    390 let b:current_syntax = "inform"
    391 
    392 " vim: ts=8