hoard.vim 1.3 KB

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