scala.vim 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. " Vim syntax file
  2. " Language: Scala
  3. " Version: 0.1
  4. " Maintainer: Raphael Haberer-Proust <raphael.haberer-proust at epfl.ch>
  5. " URL: http://diwww.epfl.ch/~haberer/syntax/scala.html
  6. " Last Change: 2004 April 18
  7. " Disclaimer: It's an absolut basic, very simple and by far not finished
  8. " syntax file! It only recognizes basic keywords and constructs like comments
  9. " any help is welcome
  10. " Remove any old syntax stuff
  11. syn clear
  12. " syntax highlighting for words that are not identifiers:
  13. " int unit double String Array byte short char long float
  14. syn keyword scalaExternal import package
  15. syn keyword scalaConditional if then else
  16. syn keyword scalaRepeat while for do
  17. syn keyword scalaType boolean int double byte short char long float
  18. syn keyword scalaType unit
  19. syn keyword scalaType val with type var yield
  20. syn keyword scalaStatement return
  21. syn keyword scalaBoolean true false
  22. syn keyword scalaConstant null
  23. syn keyword scalaTypedef this super
  24. syn keyword scalaLangClass String Array
  25. syn keyword scalaScopeDecl private protected override
  26. syn keyword scalaStorageClass abstract final sealed
  27. syn keyword scalaExceptions throw try catch finally
  28. syn keyword scalaClassDecl extends
  29. " TODO differentiate the keyword class from MyClass.class -> use a match here
  30. syn keyword scalaTypedef class
  31. syn keyword scalaTypedef case
  32. syn keyword scalaTypedef trait
  33. syn match scalaTypedef "\s*\<object\>"
  34. syn keyword scalaOperator new
  35. " same number definition as in java.vim
  36. syn match scalaNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  37. syn match scalaNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  38. syn match scalaNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  39. syn match scalaNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  40. syn region scalaString start=+"+ end=+"+
  41. " Functions
  42. " def [name] [(prototype)] {
  43. "
  44. syn match scalaFunction "\s*\<def\>"
  45. " Comments
  46. syn region scalaComment start="/\*" end="\*/"
  47. syn match scalaLineComment "//.*"
  48. if !exists("did_scala_syntax_inits")
  49. let did_scala_syntax_inits = 1
  50. " The default methods for highlighting. Can be overridden later
  51. hi link scalaExternal Include
  52. hi link scalaStatement Statement
  53. hi link scalaConditional Conditional
  54. hi link scalaRepeat Repeat
  55. hi link scalaType Type
  56. hi link scalaTypedef Typedef
  57. hi link scalaBoolean Boolean
  58. hi link scalaFunction Function
  59. hi link scalaLangClass Constant
  60. hi link scalaConstant Constant
  61. hi link scalaScopeDecl scalaStorageClass
  62. hi link scalaClassDecl scalaStorageClass
  63. hi link scalaStorageClass StorageClass
  64. hi link scalaExceptions Exception
  65. hi link scalaOperator Operator
  66. hi link scalaNumber Number
  67. hi link scalaString String
  68. hi link scalaComment Comment
  69. hi link scalaLineComment Comment
  70. endif
  71. let b:current_syntax = "scala"
  72. " if you want to override default methods for highlighting
  73. "hi Conditional term=bold ctermfg=Cyan guifg=#80a0ff