hoard.vim 1.4 KB

123456789101112131415161718192021222324252627282930
  1. " copy to ~/.vim/syntax/hoard.vim
  2. if exists('b:current_syntax') | finish | endif
  3. syntax match hoardTxHeader "\v^\s*\d\d\d\d-\d\d-\d\d\s*:.*$" contains=hoardTxDate,hoardTxTitle
  4. syntax match hoardTxDate "\v^\s*[^:]+(:.*$)@=" contained
  5. syntax match hoardTxTitle "\v(^\s*[^:]+:\s+)@<=.{-}$" contained
  6. syntax match hoardAnnotation "\v\[.{-}\]"
  7. syntax match hoardChange "\v^\s*-\s*[^:]*\s*:\s*[-+]?\d+(\.\d*)?(\s*\=\s*[-+]?\d+(\.\d*)?)?(\s+\S+)?$" contains=hoardChangeAccount,hoardChangeDeposit,hoardChangeWithdrawal,hoardChangeBalance,hoardChangeUnit
  8. syntax match hoardChangeAccount "\v(^\s*-\s*)@<=.*(\s*:)@=" contained
  9. syntax match hoardChangeDeposit "\v(:[^=]+)@<=\+?\s*\d+(\.\d*)?" contained
  10. syntax match hoardChangeWithdrawal "\v(:[^=]+)@<=-\s*\d+(\.\d*)?" contained
  11. syntax match hoardChangeBalance "\v(\S+\s*:\s*[+-]?\d+(\.\d*)?\s*\=\s*)@<=([-+]?\d+(\.\d*)?)" contained
  12. syntax match hoardChangeUnit "\v\s+\S+$" contained
  13. syntax match hoardComment "^\s*#.*$"
  14. highlight def link hoardTxDate Keyword
  15. highlight def link hoardTxTitle Underlined
  16. highlight def link hoardAnnotation String
  17. highlight def link hoardChangeAccount Function
  18. highlight def link hoardChangeDeposit Added
  19. highlight def link hoardChangeWithdrawal Removed
  20. highlight def link hoardChangeBalance Comment
  21. highlight def link hoardChangeUnit Type
  22. highlight def link hoardComment Comment
  23. let b:current_syntax = 'hoard'