home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / unix / vim-6.2.tar.bz2 / vim-6.2.tar / vim62 / runtime / syntax / csh.vim < prev    next >
Encoding:
Text File  |  2002-11-18  |  6.8 KB  |  161 lines

  1. " Vim syntax file
  2. " Language:    C-shell (csh)
  3. " Maintainer:    Dr. Charles E. Campbell, Jr. <Charles.E.Campbell.1@nasa.gov>
  4. " Version:    7
  5. " Last Change:    Nov 18, 2002
  6. " URL:    http://www.erols.com/astronaut/vim/index.html#vimlinks_syntax
  7.  
  8. " For version 5.x: Clear all syntax items
  9. " For version 6.x: Quit when a syntax file was already loaded
  10. if version < 600
  11.   syntax clear
  12. elseif exists("b:current_syntax")
  13.   finish
  14. endif
  15.  
  16. " clusters:
  17. syn cluster cshQuoteList    contains=cshDblQuote,cshSnglQuote,cshBckQuote
  18. syn cluster cshVarList    contains=cshExtVar,cshSelector,cshQtyWord,cshArgv,cshSubst
  19.  
  20. " Variables which affect the csh itself
  21. syn match cshSetVariables    contained "argv\|histchars\|ignoreeof\|noglob\|prompt\|status"
  22. syn match cshSetVariables    contained "cdpath\|history\|mail\|nonomatch\|savehist\|time"
  23. syn match cshSetVariables    contained "cwd\|home\|noclobber\|path\|shell\|verbose"
  24. syn match cshSetVariables    contained "echo"
  25.  
  26. syn case ignore
  27. syn keyword cshTodo    contained todo
  28. syn case match
  29.  
  30. " Variable Name Expansion Modifiers
  31. syn match cshModifier    contained ":\(h\|t\|r\|q\|x\|gh\|gt\|gr\)"
  32.  
  33. " Strings and Comments
  34. syn match   cshNoEndlineDQ    contained "[^\"]\(\\\\\)*$"
  35. syn match   cshNoEndlineSQ    contained "[^\']\(\\\\\)*$"
  36. syn match   cshNoEndlineBQ    contained "[^\`]\(\\\\\)*$"
  37.  
  38. syn region  cshDblQuote    start=+[^\\]"+lc=1 skip=+\\\\\|\\"+ end=+"+    contains=cshSpecial,cshShellVariables,cshExtVar,cshSelector,cshQtyWord,cshArgv,cshSubst,cshNoEndlineDQ,cshBckQuote
  39. syn region  cshSnglQuote    start=+[^\\]'+lc=1 skip=+\\\\\|\\'+ end=+'+    contains=cshNoEndlineSQ
  40. syn region  cshBckQuote    start=+[^\\]`+lc=1 skip=+\\\\\|\\`+ end=+`+    contains=cshNoEndlineBQ
  41. syn region  cshDblQuote    start=+^"+ skip=+\\\\\|\\"+ end=+"+        contains=cshSpecial,cshExtVar,cshSelector,cshQtyWord,cshArgv,cshSubst,cshNoEndlineDQ
  42. syn region  cshSnglQuote    start=+^'+ skip=+\\\\\|\\'+ end=+'+        contains=cshNoEndlineSQ
  43. syn region  cshBckQuote    start=+^`+ skip=+\\\\\|\\`+ end=+`+        contains=cshNoEndlineBQ
  44. syn cluster cshCommentGroup    contains=cshTodo
  45. syn match   cshComment    "#.*$" contains=@cshCommentGroup
  46.  
  47. " A bunch of useful csh keywords
  48. syn keyword cshStatement    alias    end    history    onintr    setenv    unalias
  49. syn keyword cshStatement    cd    eval    kill    popd    shift    unhash
  50. syn keyword cshStatement    chdir    exec    login    pushd    source
  51. syn keyword cshStatement    continue    exit    logout    rehash    time    unsetenv
  52. syn keyword cshStatement    dirs    glob    nice    repeat    umask    wait
  53. syn keyword cshStatement    echo    goto    nohup
  54.  
  55. syn keyword cshConditional    break    case    else    endsw    switch
  56. syn keyword cshConditional    breaksw    default    endif
  57. syn keyword cshRepeat    foreach
  58.  
  59. " Special environment variables
  60. syn keyword cshShellVariables    HOME    LOGNAME    PATH    TERM    USER
  61.  
  62. " Modifiable Variables without {}
  63. syn match cshExtVar    "\$[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\="        contains=cshModifier
  64. syn match cshSelector    "\$[a-zA-Z_][a-zA-Z0-9_]*\[[a-zA-Z_]\+\]\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\="    contains=cshModifier
  65. syn match cshQtyWord    "\$#[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\="        contains=cshModifier
  66. syn match cshArgv        "\$\d\+\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\="            contains=cshModifier
  67. syn match cshArgv        "\$\*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\="            contains=cshModifier
  68.  
  69. " Modifiable Variables with {}
  70. syn match cshExtVar    "\${[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}"        contains=cshModifier
  71. syn match cshSelector    "\${[a-zA-Z_][a-zA-Z0-9_]*\[[a-zA-Z_]\+\]\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}"    contains=cshModifier
  72. syn match cshQtyWord    "\${#[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}"        contains=cshModifier
  73. syn match cshArgv        "\${\d\+\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}"            contains=cshModifier
  74.  
  75. " UnModifiable Substitutions
  76. syn match cshSubstError    "\$?[a-zA-Z_][a-zA-Z0-9_]*:\(h\|t\|r\|q\|x\|gh\|gt\|gr\)"
  77. syn match cshSubstError    "\${?[a-zA-Z_][a-zA-Z0-9_]*:\(h\|t\|r\|q\|x\|gh\|gt\|gr\)}"
  78. syn match cshSubstError    "\$?[0$<]:\(h\|t\|r\|q\|x\|gh\|gt\|gr\)"
  79. syn match cshSubst    "\$?[a-zA-Z_][a-zA-Z0-9_]*"
  80. syn match cshSubst    "\${?[a-zA-Z_][a-zA-Z0-9_]*}"
  81. syn match cshSubst    "\$?[0$<]"
  82.  
  83. " I/O redirection
  84. syn match cshRedir    ">>&!\|>&!\|>>&\|>>!\|>&\|>!\|>>\|<<\|>\|<"
  85.  
  86. " Handle set expressions
  87. syn region  cshSetExpr    matchgroup=cshSetStmt start="\<set\>\|\<unset\>" end="$\|;" contains=cshComment,cshSetStmt,cshSetVariables,@cshQuoteList
  88.  
  89. " Operators and Expression-Using constructs
  90. "syn match   cshOperator    contained "&&\|!\~\|!=\|<<\|<=\|==\|=\~\|>=\|>>\|\*\|\^\|\~\|||\|!\|\|%\|&\|+\|-\|/\|<\|>\||"
  91. syn match   cshOperator    contained "&&\|!\~\|!=\|<<\|<=\|==\|=\~\|>=\|>>\|\*\|\^\|\~\|||\|!\|%\|&\|+\|-\|/\|<\|>\||"
  92. syn match   cshOperator    contained "[(){}]"
  93. syn region  cshTest    matchgroup=cshStatement start="\<if\>\|\<while\>" skip="\\$" matchgroup=cshStatement end="\<then\>\|$" contains=cshComment,cshOperator,@cshQuoteList,@cshVarLIst
  94.  
  95. " Highlight special characters (those which have a backslash) differently
  96. syn match cshSpecial    contained "\\\d\d\d\|\\[abcfnrtv\\]"
  97. syn match cshNumber    "-\=\<\d\+\>"
  98.  
  99. " All other identifiers
  100. "syn match cshIdentifier    "\<[a-zA-Z._][a-zA-Z0-9._]*\>"
  101.  
  102. " Shell Input Redirection (Here Documents)
  103. if version < 600
  104.   syn region cshHereDoc matchgroup=cshRedir start="<<-\=\s*\**END[a-zA-Z_0-9]*\**" matchgroup=cshRedir end="^END[a-zA-Z_0-9]*$"
  105.   syn region cshHereDoc matchgroup=cshRedir start="<<-\=\s*\**EOF\**" matchgroup=cshRedir end="^EOF$"
  106. else
  107.   syn region cshHereDoc matchgroup=cshRedir start="<<-\=\s*\**\z(\h\w*\)\**" matchgroup=cshRedir end="^\z1$"
  108. endif
  109.  
  110. " Define the default highlighting.
  111. " For version 5.7 and earlier: only when not done already
  112. " For version 5.8 and later: only when an item doesn't have highlighting yet
  113. if version >= 508 || !exists("did_csh_syntax_inits")
  114.   if version < 508
  115.     let did_csh_syntax_inits = 1
  116.     command -nargs=+ HiLink hi link <args>
  117.   else
  118.     command -nargs=+ HiLink hi def link <args>
  119.   endif
  120.  
  121.   HiLink cshArgv        cshVariables
  122.   HiLink cshBckQuote    cshCommand
  123.   HiLink cshDblQuote    cshString
  124.   HiLink cshExtVar    cshVariables
  125.   HiLink cshHereDoc    cshString
  126.   HiLink cshNoEndlineBQ    cshNoEndline
  127.   HiLink cshNoEndlineDQ    cshNoEndline
  128.   HiLink cshNoEndlineSQ    cshNoEndline
  129.   HiLink cshQtyWord    cshVariables
  130.   HiLink cshRedir        cshOperator
  131.   HiLink cshSelector    cshVariables
  132.   HiLink cshSetStmt    cshStatement
  133.   HiLink cshSetVariables    cshVariables
  134.   HiLink cshSnglQuote    cshString
  135.   HiLink cshSubst        cshVariables
  136.  
  137.   HiLink cshCommand    Statement
  138.   HiLink cshComment    Comment
  139.   HiLink cshConditional    Conditional
  140.   HiLink cshIdentifier    Error
  141.   HiLink cshModifier    Special
  142.   HiLink cshNoEndline    Error
  143.   HiLink cshNumber    Number
  144.   HiLink cshOperator    Operator
  145.   HiLink cshRedir        Statement
  146.   HiLink cshRepeat    Repeat
  147.   HiLink cshShellVariables    Special
  148.   HiLink cshSpecial    Special
  149.   HiLink cshStatement    Statement
  150.   HiLink cshString    String
  151.   HiLink cshSubstError    Error
  152.   HiLink cshTodo        Todo
  153.   HiLink cshVariables    Type
  154.  
  155.   delcommand HiLink
  156. endif
  157.  
  158. let b:current_syntax = "csh"
  159.  
  160. " vim: ts=18
  161.