" Vim syntax file " Language: x86/x64 GNU Disassembler (objdump -d -Mintel) " Maintainer: @shiracamus " Last Change: 2013 Dec 30 " For version 5.x: Clear all syntax items " For version 6.0 and later: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim syn case ignore syn match disOffset "[+-]" syn match disNumber "[+-]\?\<0x[0-9a-f]\+\>" contains=disOffset syn match disNumber "[+-]\?\<[0-9a-f]\+\>" contains=disOffset syn match disRegister "\<[re]\?[abcd][xhl]\>" syn match disRegister "\<[re]\?[sd]il\?\>" syn match disRegister "\<[re]\?[sbi]pl\?\>" syn match disRegister "\" syn match disRegister "[^\t]\<[cdefgs]s\>"hs=s+1 syn match disAt "@" syn match disSection " \.[a-z][a-z_\.-]*:"he=e-1 syn match disSection "@[a-z0-9_][a-z0-9_-]\+"hs=s+1 contains=disAt,disNumber " SH: Having a function name like "f" leads to labels like "", which shall " not be matched as disNumber. "syn match disLabel "<[a-z0-9_.][a-z0-9_.@+-]*>"hs=s+1,he=e-1 contains=disNumber,disSection syn match disLabel "<[a-z0-9_.][a-z0-9_.@+-]*>"hs=s+1,he=e-1 contains=disSection syn match disHexDump ":\t\([0-9a-f][0-9a-f][ \t]\)\+"hs=s+1 syn match disError "" syn match disError "(bad)" syn keyword disTodo contained TODO syn region disComment start="/\*" end="\*/" contains=disTodo syn match disComment "[#;!|].*" contains=disLabel,disTodo syn match disStatement "//.*" contains=cStatement syn match disSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)" syn region disString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=disSpecial syn region disString start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=disSpecial syn match disFormat ": \+file format " syn match disTitle "^[^ ]\+: \+file format .*$" contains=disFormat syn match disMacro "FWORD" syn match disMacro "QWORD" syn match disMacro "DWORD" syn match disMacro "BYTE" syn match disMacro "PTR" syn match disData ".word" syn match disData ".short" syn match disData ".byte" " Opecode matched disNumber syn match disOpecode "\= 508 || !exists("did_dis_syntax_inits") if version < 508 let did_dis_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif " The default methods for highlighting. Can be overridden later " Comment HiLink disComment Comment " Constant: String, Character, Number, Boolean, Float HiLink disNumber Number HiLink disString String " Identifier: Function HiLink disHexDump Identifier " Statement: Conditional, Repeat, Label, Operator, Keyword, Exception HiLink disStatement Statement HiLink disLabel Label " PreProc: Include, Define, Macro, PreCondit HiLink disData Define HiLink disMacro Macro " Type: StorageClass, Structure, Typedef HiLink disRegister StorageClass HiLink disTitle Typedef " Special: SpecialChar, Tag, Delimiter, SpecialComment, Debug HiLink disSpecial SpecialChar HiLink disSection Special " Underlined " Ignore " Error HiLink disError Error " Todo HiLink disTodo Todo delcommand HiLink endif let b:current_syntax = "dis" let &cpo = s:cpo_save unlet s:cpo_save " vim: ts=8 sts=4 sw=2