# TADS syntax highlighting for FTE # Tested with FTE v0.49.10 # by Nikos Chantziaras # email: or # Released: 20/6/2002 colorize TADS { SyntaxParser = 'SIMPLE'; color { { 'Normal', 'Lang_Default' }, { 'Number', 'Lang_DecimalNumber' }, { 'Punctuation', 'Lang_Punctuation' }, { 'String', 'Lang_String' }, { 'Comment', 'Lang_Comment' }, { 'Command', 'Lang_Assembler' }, # HTML-Code { 'Function', 'Lang_Function' }, # Embedded expressions { 'CPreprocessor', 'Lang_Preprocessor' }, }; keyword 'Editor_Keywords' { # Please send me a message if I forgot one! 'and', 'break', 'case', 'continue', 'do', 'else', 'for', 'function', 'if', 'inherited', 'nil', 'not', 'object', 'or', 'self', 'while', 'return', 'local', 'class', 'true', 'goto', 'pass', 'abort', 'exit', 'exitobj', 'askio', 'askdo', 'argcount', 'replace', 'modify', 'default', 'switch', 'new', 'delete' # The following are the build-in functions. If you want them # highlighted, just uncomment them. (Although this isn't # recommended.) #,'addword', 'askfile', 'caps', 'car', 'cdr', 'clearscreen', #'cvtnum', 'cvtstr', 'datatype', 'debugTrace', 'defined', #'delword', 'endCommand', 'execCommand', 'exitobj', 'fclose', #'find', 'firstobj', 'firstsc', 'fopen', 'fread', 'fseek', #'fseekeof', 'ftell', 'fwrite', 'getarg', 'getwords', #'getfuse', 'gettime', 'incturn', 'input', 'inputdialog', #'inputevent', 'inputkey', 'intersect', 'isclass', 'length', #'logging', 'lower', 'morePrompt', 'nextobj', 'nocaps', #'notify', 'objwords', 'outcapture', 'outhide', #'parseAskobjIndirect', 'parseNounList', 'parseNounPhrase', #'parserDictLookup', 'parserGetMe', 'parserGetObj', #'parserGetTokTypes', 'parserSetMe', 'parserResolveObjects', #'parserTokenize', 'parseUnknownVerb', 'postAction', #'preCommand', 'proptype', 'quit', 'rand', 'randomize', #'reGetGroup', 'remdaemon', 'remfuse', 'reSearch', #'recourseExists', 'restart', 'restore', 'rundaemons', #'runfuses', 'save', 'say', 'setdaemon', 'setfuse', 'setit', #'setscore', 'setversion', 'skipturn', 'substr', 'systemInfo', #'timeDelay', 'undo', 'unnotify', 'upper', 'verbinfo', 'yorn', }; h_state 0 { 'Normal' } h_trans { 1, '-s', 'a-zA-Z_', 'Normal' } h_trans { 2, '', '/*', 'Comment' } h_trans { 3, '', '//', 'Comment' } h_trans { 4, '', '\'', 'String' } h_trans { 5, '', '"', 'String' } h_trans { 6, 's', '0-9', 'Number' } h_trans { 7, '^', '#', 'CPreprocessor' } h_trans { 0, 'S', '_a-zA-Z0-9', 'Punctuation' } h_state 1 { 'Normal' } h_trans { 0, '$', '', 'Normal' } h_wtype { 0, 0, 0, 'i', 'a-zA-Z0-9_' } h_state 2 { 'Comment' } h_trans { 0, '', '*/', 'Comment' } h_state 3 { 'Comment' } h_trans { 0, '$', '', 'Comment' } h_state 4 { 'String' } h_trans { 0, '', '\'', 'String' } h_trans {15, '', '<', 'Command' } h_trans { 4, 'Qq', '\\', 'String' } h_state 5 { 'String' } h_trans { 0, '', '"', 'String' } h_trans {13, '', '<<', 'Function' } h_trans {14, '', '<', 'Command' } h_trans { 5, 'Qq', '\\', 'String' } h_state 6 { 'Number' } h_trans { 0, '-S', '0-9', 'Normal' } h_trans { 0, '$', '', 'Normal' } h_state 7 { 'CPreprocessor' } h_trans { 0, '$', '', 'CPreprocessor' } h_trans { 8, '', '/*', 'Comment' } h_trans { 9, '', '//', 'Comment' } h_trans {10, '', '"', 'String' } h_trans {11, '', '\'', 'String' } h_trans {12, 's', '0-9', 'Number' } h_state 8 { 'Comment' } h_trans { 7, '', '*/', 'Comment'} h_state 9 { 'Comment' } h_trans { 0, '$', '', 'Comment'} h_state 10 { 'String' } h_trans { 7, '', '"', 'String' } h_trans {10, 'Qq', '\\', 'String' } h_state 11 { 'String' } h_trans { 7, '', '\'', 'String' } h_trans {11, 'qQ', '\\', 'String' } h_state 12 { 'Number' } h_trans { 7, '-S', '0-9', 'Normal' } h_trans { 7, '$', '', 'Normal' } h_state 13 { 'Function' } h_trans { 5, '', '>>', 'Function' } h_state 14 { 'Command' } h_trans { 5, '', '>', 'Command' } h_state 15 { 'Command' } h_trans { 4, '', '>', 'Command' } } mode TADS: PLAIN { # Just my personal preferences. Change them if you wish. ExpandTabs = 1; TabSize = 4; AutoIndent = 1; Insert = 1; ForceNewLine = 1; HilitOn = 1; ShowTabs = 0; IndentMode = 'PLAIN'; Colorizer = 'TADS'; KeepBackups = 1; MatchCase = 1; BackSpKillTab = 1; DeleteKillTab = 1; BackSpUnindents = 1; SpaceTabs = 0; IndentWithTabs = 1; WordWrap = 0; Trim = 0; # DANGER! Setting it to 1 messes up with tabs! ShowMarkers = 0; CursorThroughTabs = 0; DefFindOpt = 'agi'; DefFindReplaceOpt = 'agi'; SaveFolds = 2; CommentStart = ' /*'; CommentEnd = '*/'; AutoHilitParen = 1; Abbreviations = 0; BackSpKillBlock = 0; DeleteKillBlock = 1; PersistentBlocks = 1; InsertKillBlock = 0; FileNameRx = /\.\c{{T}|{TWC}|{TAD}|{TADS}}$/; FirstLineRx = /\c{{TADS}|{ADV.T}|{TS_STD.T}|{PIANOSA.T}|{WORLD.T}}/; #MultiLineHilit = 1; # I don't know what this one does! }