📄 tde.shl
字号:
; tde.shl -- stores descriptions of languages for syntax highlighting.
; Modified from elvis.syn by Steve Kirkendall and its contributors.
; Note: it requires four quotes ("""") for one individual quote (").
; semi-colons also need to be quoted (";").
; Define the colors
;background Blue
;normal Yellow
;bad Bright_red
;keyword White
;comment Grey
;function Bright_green
;string Bright_cyan
;character Bright_cyan
;integer Bright_cyan
;binary Bright_cyan
;octal Bright_cyan
;hex Bright_cyan
;real Bright_cyan
;preprocessor Cyan
;symbol White
language tdesrc from c
pattern *.[hc]
inflatetabs off
; Types
Bright_magenta TDE_WIN file_infos
Bright_magenta LANGUAGE syntax_info
Bright_magenta text_t text_ptr line_list_ptr Char
Bright_magenta MACRO TREE MACRO_STACK CONFIG_DEFS
Bright_magenta fattr_t DIRECTORY FTYPE FFIND
Bright_magenta MARKER boyer_moore_type vcfg
Bright_magenta HISTORY
; Macros
Green bj_isalnum bj_isalpha bj_iscntrl bj_isdigit bj_islower
Green bj_ispunct bj_isspace bj_isupper bj_isxdigit
Green ERRORLINE
Green KWHASH
Green KEY SHIFT KEY_IDX CREATE_TWOKEY PARENT_KEY CHILD_KEY
Green Color
; Semi-keywords
preprocessor ASSEMBLE
; Editor functions
function Help Rturn NextLine BegNextLine LineDown LineUp CharRight CharLeft
function PanRight PanLeft WordRight WordLeft ScreenDown ScreenUp EndOfFile
function TopOfFile BotOfScreen TopOfScreen EndOfLine BegOfLine JumpToPosition
function CenterWindow CenterLine ScreenRight ScreenLeft ScrollDnLine
function ScrollUpLine PanUp PanDn ToggleOverWrite ToggleSmartTabs ToggleIndent
function ToggleWordWrap ToggleCRLF ToggleTrailing ToggleZ ToggleEol ToggleSync
function ToggleRuler ToggleTabInflate SetTabs SetMargins FormatParagraph
function FormatText LeftJustify RightJustify CenterJustify Tab BackTab
function ParenBalance BackSpace DeleteChar StreamDeleteChar DeleteLine
function DelEndOfLine WordDelete AddLine SplitLine JoinLine DuplicateLine
function RestoreLine RetrieveLine ToggleSearchCase FindForward FindBackward
function RepeatFindForward RepeatFindBackward ReplaceString DefineDiff
function RepeatDiff MarkBox MarkLine MarkStream UnMarkBlock FillBlock
function NumberBlock CopyBlock KopyBlock MoveBlock OverlayBlock DeleteBlock
function SwapBlock BlockToFile PrintBlock BlockExpandTabs BlockCompressTabs
function BlockIndentTabs BlockTrimTrailing BlockUpperCase BlockLowerCase
function BlockRot13 BlockFixUUE BlockEmailReply BlockStripHiBit SortBoxBlock
function DateTimeStamp EditFile DirList File Save SaveAs FileAttributes
function EditNextFile DefineGrep RepeatGrep RedrawScreen SizeWindow
function SplitHorizontal SplitVertical NextWindow PreviousWindow ZoomWindow
function NextHiddenWindow SetMark1 SetMark2 SetMark3 GotoMark1 GotoMark2
function GotoMark3 RecordMacro PlayBack SaveMacro LoadMacro ClearAllMacros
function Pause Quit NextDirtyLine PrevDirtyLine RegXForward RegXBackward
function RepeatRegXForward RepeatRegXBackward PullDown ReadConfig
function PrevHiddenWindow Shell StringRight StringLeft UserScreen QuitAll
function BlockBegin BlockEnd WordDeleteBack PreviousPosition FileAll
function ToggleSyntax SyntaxSelect Transpose InsertFile WordEndRight
function WordEndLeft StringEndRight StringEndLeft StampFormat PseudoMacro
function MacroMark ToggleCursorCross ToggleGraphicChars Repeat BorderBlock
function MarkBegin MarkEnd BlockLeftJustify BlockRightJustify
function BlockCenterJustify BlockIndentN BlockUndentN BlockIndent BlockUndent
function SetBreakPoint ChangeCurDir Status ToggleReadOnly GotoWindow
function BlockInvertCase DefineSearch RepeatSearch ToggleDraw TopLine
function BottomLine ToggleLineNumbers CharacterSet SumBlock Undo Redo
function ToggleUndoGroup ToggleUndoMove Statistics BlockCapitalise
function SaveWorkspace CopyToClipboard KopyToClipboard CutToClipboard
function PasteFromClipboard HalfScreenDown HalfScreenUp HalfScreenRight
function HalfScreenLeft DelBegOfLine EraseBegOfLine SetDirectory ISearchForward
function ISearchBackward ToggleCWD ScratchWindow MakeHorizontal MakeVertical
function BlockBlockComment BlockLineComment BlockUnComment StreamCharLeft
function StreamCharRight EndNextLine DynamicTabSize FillBlockDown
function FillBlockPattern BorderBlockEx SaveTo SaveUntouched Revert
function SplitHalfHorizontal SplitHalfVertical MakeHalfHorizontal
function MakeHalfVertical TitleWindow Execute NextBrowse PrevBrowse SaveAll
function MoveMark StartOfLine About ContextHelp PopupRuler BalanceHorizontal
function BalanceVertical CloseWindow ToggleQuickEdit
function TwoCharKey AbortCommand WordWrap
c+k b Macro " {\n \3\n}"
PseudoMacro }i "\b else if\p"
PseudoMacro }e "\b else" c+k b GotoMark3
Pseudomacro do c+k b " while (\0);"
PseudoMacro ca
"se \0 :\n"
" \3\n"
" break;"
RecordMacro
PseudoMacro de
"fault :\n"
" \0\n"
" break;"
RecordMacro
PseudoMacro /*
Rturn
" * Name: \0\n"
"* Purpose:\n"
"* Author: Jason Hood\n"
"* Date: " StampFormat "%M %d, %Y\n" DateTimeStamp Rturn
"* Passed:\n"
"* Returns:\n"
"* Notes:\n"
"*/"
StampFormat LineUp ; Restore previous format
RecordMacro
UserMenu -
UserMenu "New Function" /*
;----------------------------------- C ------------------------------------
; Note that ".h" is not listed as a possible file name extension here since it
; could also be C++ code. The differences between the two are small, buf if
; we must guess, then C++ is the better choice because C++ declarations use a
; lot of keywords which are absent from C.
language c
pattern *.c
keyword asm continue extern long static void
keyword auto default float register struct volatile
keyword break do for return switch while
keyword case double goto short typedef public
keyword char else if signed union
keyword const enum int sizeof unsigned
; Add some implementation-specific keywords.
keyword near far typeof
; Add some common predefined stuff.
keyword FILE stdin stdout stderr size_t ssize_t time_t clock_t
keyword bool true false BOOL BOOLEAN TRUE FALSE
comment //
comment /* */
function (
preprocessor # spanline \
string """" spanline \
character ' 4
escape \
octal 0-
hex 0x-
startword _
inword _
innumber flu
c+k 3 Macro "\n \3\n"
c+k b Macro "\n{" c+k 3 "}"
c+k f Macro "(\0)" c+k b
PseudoMacro fo "r " c+k f ";;\l\l"
PseudoMacro if " " c+k f
PseudoMacro }i "\b\nelse if\p"
PseudoMacro }e "\b\nelse" c+k b GotoMark3
PseudoMacro wh "ile " c+k f
Pseudomacro do c+k b " while (\0);"
PseudoMacro sw "itch " c+k f
PseudoMacro ca
"se \0:"
c+k 3
"break;"
RecordMacro
PseudoMacro de
"fault:\n"
" \0\n"
"break;"
RecordMacro
PseudoMacro st "ruct \0" c+k b ";"
PseudoMacro un "ion \0" c+k b ";"
PseudoMacro #h "\binclude <\0.h>"
PseudoMacro #H "\binclude ""\0.h"""
PseudoMacro #d "efine "
c+k s+# Macro
c+k 3
"#else\n"
" \2\n"
"#endif"
RecordMacro
PseudoMacro #i "fdef \0" c+k s+#
PseudoMacro #I "\bif defined( \0 )" c+k s+#
PseudoMacro ma
"\b\bint main" c+k f " int argc, char* argv[] "
GotoMark3
"\0\n\n return 0;"
RecordMacro
UserMenu "{ }" c+k b
UserMenu "() { }" c+k f
UserMenu -
UserMenu "main" ma
UserMenu -
UserMenu "#include <>" #h
UserMenu "#include """"" #H
UserMenu "#define" #d
UserMenu "#ifdef" #i
UserMenu "#if defined" #I
UserMenu -
UserMenu "for" fo
UserMenu "if" if
UserMenu "else if" }i
UserMenu "else" }e
UserMenu "while" wh
UserMenu "do while" do
UserMenu "switch" sw
UserMenu "case" ca
UserMenu "default" de
UserMenu "struct" st
UserMenu "union" un
;---------------------------------- C++ -----------------------------------
; Same as C, but with a few extra keywords.
language c++ from c
pattern *.[ChH] *.cxx *.cc *.cpp *.hxx *.hh *.hpp
keyword bool inline template
keyword catch new this
keyword class operator throw
keyword delete private true
keyword false protected try
keyword friend virtual
; Common predefined C++ stuff.
keyword cin cout cerr
keyword istream ostream
keyword ifstream ofstream fstream
PseudoMacro cl
"ass \0" c+k b ";"
GotoMark3
"\bpublic:" c+k 3
"protected:\n\n"
"private:\n \2"
RecordMacro
PseudoMacro te "mplate <class >\l"
UserMenu "class" cl
UserMenu "template" te
;--------------------------------- Intel ----------------------------------
; Assembly - Intel style (MASM & TASM).
language intel
pattern *.asm *.inc
case ignore
binary -b
hex -h
string """"
character ' 0
; Let's treat (some) labels as functions
function :
comment ";"
; The comment directive is a little tricky. Since assembly doesn't have multi-
; line comments, you could probably fudge something with that.
comment comment
comment ^ ^
startword ?@_$%
inword ?@_$
; In case radix 16 is being used
innumber a-f
; Directives (taken from "IBM PC Assembly Language and Programming Second
; Edition", Peter Abel, 1991, Prentice-Hall International Edition).
preprocessor align alpha assume code comm const cref data data?
preprocessor db dd df dosseg dq dt dw else end endif endm endp ends equ
preprocessor err err1 err2 erre errnz errdef errndef errb errnb
preprocessor erridn erridni errdif errdifi
preprocessor even exitm extrn fardata fardata? group if if1 if2 ifb ifdef
preprocessor ifdif ifdifi ife ifidn ifidni ifnb ifndef include includelib irp
preprocessor irpc label lall lfcond list local macro model name org %out
preprocessor page proc public purge radix record rept sall segment seq
preprocessor sfcond stack struc subttl tfcond title union xall xcref xlist
; Operators. Use symbol or keyword? Since I have symbol in white, I'll use that,
; but if you like symbols in normal, you'll probably want to use keyword. (Some
; of them will be keywords, anyway.)
; Taken from the same place as above.
symbol and byte con dword dup eq far fword ge gt high le length line low lt
symbol mask mod ne near not nothing offset or ptr qword seg shl short shr size
symbol stack this tbyte type width word xor
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -