Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Syntax highlight file for Slackbuilds
- # Think about:
- # $'....'
- # $(...)
- # ${...}
- # cat <<EOF xxxxxx
- # xxxxx should be interpreted as other arguments for 'cat'.
- # Colors
- =Idle
- =Comment dim green
- =Constant blue
- =Escape bold blue
- =Keyword bold
- =Var fg_255
- =CppKeyword bold
- # Syntax
- :idle Idle
- * idle
- # ")" subst_char recolor=-1
- "`" subst_char recolor=-1
- "#" comment recolor=-1
- "\\" escape recolor=-1
- "$" subst recolor=-1
- "'" string_sq recolor=-1
- "\"" string_dq recolor=-1
- "<" maybe_inc
- "a-zA-Z{}![_" ident buffer
- :subst_char Var
- * idle noeat
- :maybe_inc Idle
- * idle noeat
- "<" maybe_inc1
- :maybe_inc1 Idle
- * inc buffer noeat
- "\"" inc_quote
- "'" inc_quote
- " " maybe_inc1
- "\n" toeof
- "`&()\\|;<>" idle noeat
- "\\" skipquote
- "-" skipminus
- :skipminus Idle
- * inc1 buffer noeat
- " " skipminus
- "\\" skipquote
- "\"" inc1_quote
- "'" inc1_quote
- "`&()\\|;<>\n" idle noeat
- :skipquote Idle
- * inc buffer noeat
- "`&()\\|;'\"<> \n" idle noeat
- # All of these are for case of leading -
- :inc1 Var
- * inc1
- "`&()\\|;'\"<> \n" skipline1 noeat save_s
- :inc1_quote Var
- * inc1 buffer noeat
- :skipline1 Idle
- * skipline1
- "\n" next_line1
- :todelim1 Constant
- * todelim1
- "\n" next_line1 strings
- "&" founddelim1
- done
- :next_line1 Constant
- * todelim1 buffer
- "\t" next_line1
- "\n" next_line1
- :founddelim1 Var
- * idle noeat
- # No leading -
- :inc Var
- * inc
- "`&()\\|;'\"<> \n" skipline noeat save_s
- :inc_quote Var
- * inc noeat buffer
- # Should be treated as a normal line here...
- :skipline Idle
- * skipline
- "\n" next_line
- :todelim Constant
- * todelim
- "\n" next_line strings
- "&" founddelim
- done
- # eat \n so it's not in string.
- :next_line Constant
- * todelim buffer
- "\n" next_line
- :founddelim Var
- * idle noeat
- # << with no word. Rest of file is a constant.
- :toeof Constant
- * toeof
- :comment Comment
- * comment
- "\n" idle
- :escape Escape
- * idle
- :subst Var
- * idle noeat
- "(" idle recolor=-2 # don't try for now
- "\"" string_dq recolor=-2
- "\'" string_sq recolor=-2
- "{" subst_brack
- "a-zA-Z_" subst_name
- "0-9*@?\-$_!#" idle
- :subst_name Var
- * idle noeat recolor=-1
- "a-zA-Z0-9_" subst_name
- :subst_brack Var
- * subst_brack
- "}" idle
- # Simplest case: no quoting allowed
- :string_sq Constant
- * string_sq
- "\'" idle
- # double-quote: quoting, backqoutes and substitution allowed
- :string_dq Constant
- * string_dq
- "$" string_dq_subst recolor=-1
- "\"" idle
- "\\" string_dq_esc recolor=-1
- "`" string_dq_bq recolor=-1
- :string_dq_subst Var
- * string_dq noeat recolor=-2
- "$0-9!_\-?*@" string_dq
- "a-zA-Z_" string_dq_subst_name
- "{" string_dq_subst_brack
- :string_dq_subst_name Var
- * string_dq recolor=-1 noeat
- "a-zA-Z0-9_" string_dq_subst_name
- :string_dq_subst_brack Var
- * string_dq_subst_brack
- "}" string_dq
- :string_dq_esc Escape
- * string_dq recolor=-2
- "$`\"\\" string_dq
- "\n" string_dq recolor=-2
- :string_dq_bq Constant
- * string_dq_bq
- "$" string_dq_bq_subst recolor=-1
- "\`" string_dq
- "\\" string_dq_bq_esc recolor=-1
- :string_dq_bq_subst Var
- * string_dq_bq noeat recolor=-2
- "$0-9!_\-?*@" string_dq_bq
- "a-zA-Z_" string_dq_bq_subst_name
- "{" string_dq_bq_subst_brack
- :string_dq_bq_subst_name Var
- * string_dq_bq recolor=-1 noeat
- "a-zA-Z0-9_" string_dq_bq_subst_name
- :string_dq_bq_subst_brack Var
- * string_dq_bq_subst_brack
- "}" string_dq_bq
- :string_dq_bq_esc Escape
- * string_dq_bq recolor=-2
- "$`\"\\" string_dq_bq
- "\n" string_dq_bq recolor=-2
- # backquote
- :string_bq Constant
- * string_bq
- "$" string_bq_subst recolor=-1
- "\`" idle
- "\\" string_bq_esc recolor=-1
- # escape in backquote
- :string_bq_esc Escape
- * string_bq recolor=-2
- "$`\"\\" string_bq
- "\n" string_bq recolor=-2
- # Substitution in a backquote
- :string_bq_subst Var
- * string_bq noeat recolor=-2
- "$0-9!_\-?*@" string_bq
- "a-zA-Z_" string_bq_subst_name
- "{" string_bq_subst_brack
- :string_bq_subst_name Var
- * string_bq recolor=-1 noeat
- "a-zA-Z0-9_" string_bq_subst_name
- :string_bq_subst_brack Var
- * string_bq_subst_brack
- "}" string_bq
- :ident Idle
- * idle noeat strings
- "!" kw
- "{" kw
- "}" kw
- "[" kw
- "]" kw
- # primary keywords
- "rm" kw
- "tar" kw
- "find" kw
- "chown" kw
- "chmod" kw
- "zcat" kw
- "make" kw
- "install" kw
- "PKGNAM" kw
- "PRGNAM" kw
- "TAG" kw
- "OUTPUT" kw
- "VERSION" kw
- "BUILD" kw
- "NUMJOBS" kw
- "CWD" kw
- "TMP" kw
- "PKG" kw
- "CFLAGS" kw
- "LDFLAGS" kw
- "CXXFLAGS" kw
- "mv" kw
- "PREFIX" kw
- "sed" kw
- "touch" kw
- "done" kw
- "gzip" kw
- "grep" kw
- "strip" kw
- "cp" kw
- "cat" kw
- "mkdir" kw
- "configure" kw
- "do" kw
- "makepkg" kw
- "patch" kw
- # I think these are basically keywords too
- "break" kw
- "continue" kw
- "return" kw
- "eval" kw
- "exec" kw
- "exit" kw
- "test" kw # doesn't have to be a shell command
- # variable management
- "shift" kw
- "unset" kw
- "export" kw
- "readonly" kw
- # input
- "read" kw
- # job control (not likely to be used in scripts)
- "bg" kw
- "fg" kw
- "jobs" kw
- "suspend" kw
- # job control (useful in scripts)
- "kill" kw
- "wait" kw
- # environment control
- "cd" kw
- "chdir" kw
- "pwd" kw
- "ulimit" kw
- "umask" kw
- # signal handling
- "trap" kw
- # misc shell control
- "hash" kw
- "type" kw
- "times" kw
- "set" kw
- # shell builtins
- "echo" kw
- "getopts" kw
- "login" kw # not bash (logout is)
- "newgrp" kw # not in bash
- "stop" kw # not in bash (suspends a process)
- # additional ksh builtins
- "alias" kw
- "select" kw
- "function" kw
- "command" kw
- "fc" kw
- "let" kw
- "print" kw
- "unalias" kw
- "whence" kw
- "history" kw
- "time" kw
- "typeset" kw
- "local" kw
- # additional bash builtins
- "source" kw
- "bind" kw
- "builtin" kw
- "compgen" kw
- "complete" kw
- "declare" kw
- "dirs" kw
- "disown" kw
- "help" kw
- "logout" kw
- "popd" kw
- "printf" kw
- "pushd" kw
- "shopt" kw
- # C++ keywords
- "bool" cppkw
- "if" cppkw
- "esac" cppkw
- "fi" cppkw
- "case" cppkw
- "then" cppkw
- "elif" cppkw
- "else" cppkw
- "for" cppkw
- "in" cppkw
- "until" cppkw
- "while" cppkw
- done
- "a-zA-Z0-9_" ident
- :kw Keyword
- * idle noeat
- :cppkw CppKeyword
- * idle noeat
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement