From d8c2d29327af2c429c9b4b2f42cc7aac0e9b4f38 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Sun, 27 Apr 2008 09:44:10 +0000 Subject: [PATCH] Added support for: - defm and multiclass - imbricatable multiline C style comment - FIXME/TODO highlight in comment - binary and hexadecimal number - code using [{ }] is no highlighted as special (perhaps not the best choice) Patch by Cedric Venet! llvm-svn: 50319 --- llvm/utils/vim/tablegen.vim | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/llvm/utils/vim/tablegen.vim b/llvm/utils/vim/tablegen.vim index 1514e2e0e82b..d786d1463ecf 100644 --- a/llvm/utils/vim/tablegen.vim +++ b/llvm/utils/vim/tablegen.vim @@ -9,17 +9,26 @@ elseif exists("b:current_syntax") finish endif +" May be changed if you have a really slow machine +syntax sync minlines=100 + syn case match -syn keyword tgKeyword def let in code dag field include -syn keyword tgType class int string list bit bits -" FIXME: this does not handle hex (0x...) or binary (0b...) constants +syn keyword tgKeyword def let in code dag field include defm +syn keyword tgType class int string list bit bits multiclass + syn match tgNumber /\<\d\+\>/ syn match tgNumber /\<\d\+\.\d*\>/ -syn match tgComment /\/\/.*$/ -" FIXME: this does not capture multi-line C-style comments -syn match tgComment /\/\*.*\*\// -syn region tgString start=/"/ skip=/\\"/ end=/"/ +syn match tgNumber /\<0b[01]\+\>/ +syn match tgNumber /\<0x[0-9a-fA-F]\+\>/ +syn region tgString start=/"/ skip=/\\"/ end=/"/ oneline + +syn region tgCode start=/\[{/ end=/}\]/ + +syn keyword tgTodo contained TODO FIXME +syn match tgComment /\/\/.*$/ contains=tgTodo +" Handle correctly imbricated comment +syn region tgComment2 matchgroup=tgComment2 start=+/\*+ end=+\*/+ contains=tgTodo,tgComment2 if version >= 508 || !exists("did_c_syn_inits") if version < 508 @@ -33,7 +42,11 @@ if version >= 508 || !exists("did_c_syn_inits") HiLink tgType Type HiLink tgNumber Number HiLink tgComment Comment + HiLink tgComment2 Comment HiLink tgString String + " May find a better Hilight group... + HiLink tgCode Special + HiLink tgTodo Todo delcommand HiLink endif