⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tde.shl

📁 一个开源著名的TDE编辑器源代码
💻 SHL
📖 第 1 页 / 共 5 页
字号:
; 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 + -