dis.vim 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. " Vim syntax file
  2. " Language: x86/x64 GNU Disassembler (objdump -d -Mintel)
  3. " Maintainer: @shiracamus <shiracamus@gmail.com>
  4. " Last Change: 2013 Dec 30
  5. " For version 5.x: Clear all syntax items
  6. " For version 6.0 and later: Quit when a syntax file was already loaded
  7. if version < 600
  8. syntax clear
  9. elseif exists("b:current_syntax")
  10. finish
  11. endif
  12. let s:cpo_save = &cpo
  13. set cpo&vim
  14. syn case ignore
  15. syn match disOffset "[+-]"
  16. syn match disNumber "[+-]\?\<0x[0-9a-f]\+\>" contains=disOffset
  17. syn match disNumber "[+-]\?\<[0-9a-f]\+\>" contains=disOffset
  18. syn match disRegister "\<[re]\?[abcd][xhl]\>"
  19. syn match disRegister "\<[re]\?[sd]il\?\>"
  20. syn match disRegister "\<[re]\?[sbi]pl\?\>"
  21. syn match disRegister "\<r[0-9]\+[dwb]\?\>"
  22. syn match disRegister "[^\t]\<[cdefgs]s\>"hs=s+1
  23. syn match disAt "@"
  24. syn match disSection " \.[a-z][a-z_\.-]*:"he=e-1
  25. syn match disSection "@[a-z0-9_][a-z0-9_-]\+"hs=s+1 contains=disAt,disNumber
  26. syn match disLabel "<[a-z0-9_.][a-z0-9_.@+-]\+>"hs=s+1,he=e-1 contains=disNumber,disSection
  27. syn match disHexDump ":\t\([0-9a-f][0-9a-f] \)\+"hs=s+1
  28. syn match disError "<internal disassembler error>"
  29. syn match disError "(bad)"
  30. syn keyword disTodo contained TODO
  31. syn region disComment start="/\*" end="\*/" contains=disTodo
  32. syn match disComment "[#;!|].*" contains=disLabel,disTodo
  33. syn match disSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
  34. syn region disString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=disSpecial
  35. syn region disString start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=disSpecial
  36. syn match disFormat ": \+file format "
  37. syn match disTitle "^[^ ]\+: \+file format .*$" contains=disFormat
  38. syn match disMacro "FWORD"
  39. syn match disMacro "QWORD"
  40. syn match disMacro "DWORD"
  41. syn match disMacro "BYTE"
  42. syn match disMacro "PTR"
  43. syn match disData ".word"
  44. syn match disData ".short"
  45. syn match disData ".byte"
  46. " Opecode matched disNumber
  47. syn match disOpecode "\<add "
  48. syn match disOpecode "\<adc "
  49. syn match disOpecode "\<dec "
  50. syn match disOpecode "\<fadd "
  51. syn case match
  52. " Define the default highlighting.
  53. " For version 5.7 and earlier: only when not done already
  54. " For version 5.8 and later: only when an item doesn't have highlighting yet
  55. if version >= 508 || !exists("did_dis_syntax_inits")
  56. if version < 508
  57. let did_dis_syntax_inits = 1
  58. command -nargs=+ HiLink hi link <args>
  59. else
  60. command -nargs=+ HiLink hi def link <args>
  61. endif
  62. " The default methods for highlighting. Can be overridden later
  63. " Comment
  64. HiLink disComment Comment
  65. " Constant: String, Character, Number, Boolean, Float
  66. HiLink disNumber Number
  67. HiLink disString String
  68. " Identifier: Function
  69. HiLink disHexDump Identifier
  70. "Statement: Conditional, Repeat, Label, Operator, Keyword, Exception
  71. HiLink disLabel Label
  72. " PreProc: Include, Define, Macro, PreCondit
  73. HiLink disData Define
  74. HiLink disMacro Macro
  75. " Type: StorageClass, Structure, Typedef
  76. HiLink disRegister StorageClass
  77. HiLink disTitle Typedef
  78. " Special: SpecialChar, Tag, Delimiter, SpecialComment, Debug
  79. HiLink disSpecial SpecialChar
  80. HiLink disSection Special
  81. " Underlined
  82. " Ignore
  83. " Error
  84. HiLink disError Error
  85. " Todo
  86. HiLink disTodo Todo
  87. delcommand HiLink
  88. endif
  89. let b:current_syntax = "dis"
  90. let &cpo = s:cpo_save
  91. unlet s:cpo_save
  92. " vim: ts=8 sts=4 sw=2