いつのまにか Cabal の syntax ファイルができてた
http://code.google.com/p/vim/source/browse/runtime/syntax/cabal.vim?r=b9e314fe473fadd54b861a3836ad96c9ca26bce3
しかしちょっと cabalStatement が適当すぎる…
先に license にマッチしてしまうので license-file が絶対にマッチしなかったり,license-file の典型的なファイル名の LICENSE もハイライトされてしまったり.
とりあえず,行頭にあることと後ろには : がくることを利用してこう修正すればまぁまともになった.
--- cabal.vim.orig 2010-07-20 22:03:25.000000000 +0900 +++ cabal.vim 2010-07-20 22:08:41.000000000 +0900 @@ -48,61 +48,61 @@ syn match cabalCompiler "\clhc" -syn match cabalStatement "\cauthor" -syn match cabalStatement "\cbranch" -syn match cabalStatement "\cbug-reports" -syn match cabalStatement "\cbuild-depends" -syn match cabalStatement "\cbuild-tools" -syn match cabalStatement "\cbuild-type" -syn match cabalStatement "\cbuildable" -syn match cabalStatement "\cc-sources" -syn match cabalStatement "\ccabal-version" -syn match cabalStatement "\ccategory" -syn match cabalStatement "\ccc-options" -syn match cabalStatement "\ccopyright" -syn match cabalStatement "\ccpp-options" -syn match cabalStatement "\cdata-dir" -syn match cabalStatement "\cdata-files" -syn match cabalStatement "\cdefault" -syn match cabalStatement "\cdescription" -syn match cabalStatement "\cexecutable" -syn match cabalStatement "\cexposed-modules" -syn match cabalStatement "\cexposed" -syn match cabalStatement "\cextensions" -syn match cabalStatement "\cextra-lib-dirs" -syn match cabalStatement "\cextra-libraries" -syn match cabalStatement "\cextra-source-files" -syn match cabalStatement "\cextra-tmp-files" -syn match cabalStatement "\cfor example" -syn match cabalStatement "\cframeworks" -syn match cabalStatement "\cghc-options" -syn match cabalStatement "\cghc-prof-options" -syn match cabalStatement "\cghc-shared-options" -syn match cabalStatement "\chomepage" -syn match cabalStatement "\chs-source-dirs" -syn match cabalStatement "\chugs-options" -syn match cabalStatement "\cinclude-dirs" -syn match cabalStatement "\cincludes" -syn match cabalStatement "\cinstall-includes" -syn match cabalStatement "\cld-options" -syn match cabalStatement "\clicense-file" -syn match cabalStatement "\clicense" -syn match cabalStatement "\clocation" -syn match cabalStatement "\cmain-is" -syn match cabalStatement "\cmaintainer" -syn match cabalStatement "\cmodule" -syn match cabalStatement "\cname" -syn match cabalStatement "\cnhc98-options" -syn match cabalStatement "\cother-modules" -syn match cabalStatement "\cpackage-url" -syn match cabalStatement "\cpkgconfig-depends" -syn match cabalStatement "\cstability" -syn match cabalStatement "\csubdir" -syn match cabalStatement "\csynopsis" -syn match cabalStatement "\ctag" -syn match cabalStatement "\ctested-with" -syn match cabalStatement "\ctype" -syn match cabalStatement "\cversion" +syn match cabalStatement "^\s*\cauthor\ze\s*:" +syn match cabalStatement "^\s*\cbranch\ze\s*:" +syn match cabalStatement "^\s*\cbug-reports\ze\s*:" +syn match cabalStatement "^\s*\cbuild-depends\ze\s*:" +syn match cabalStatement "^\s*\cbuild-tools\ze\s*:" +syn match cabalStatement "^\s*\cbuild-type\ze\s*:" +syn match cabalStatement "^\s*\cbuildable\ze\s*:" +syn match cabalStatement "^\s*\cc-sources\ze\s*:" +syn match cabalStatement "^\s*\ccabal-version\ze\s*:" +syn match cabalStatement "^\s*\ccategory\ze\s*:" +syn match cabalStatement "^\s*\ccc-options\ze\s*:" +syn match cabalStatement "^\s*\ccopyright\ze\s*:" +syn match cabalStatement "^\s*\ccpp-options\ze\s*:" +syn match cabalStatement "^\s*\cdata-dir\ze\s*:" +syn match cabalStatement "^\s*\cdata-files\ze\s*:" +syn match cabalStatement "^\s*\cdefault\ze\s*:" +syn match cabalStatement "^\s*\cdescription\ze\s*:" +syn match cabalStatement "^\s*\cexecutable\ze\s*:" +syn match cabalStatement "^\s*\cexposed-modules\ze\s*:" +syn match cabalStatement "^\s*\cexposed\ze\s*:" +syn match cabalStatement "^\s*\cextensions\ze\s*:" +syn match cabalStatement "^\s*\cextra-lib-dirs\ze\s*:" +syn match cabalStatement "^\s*\cextra-libraries\ze\s*:" +syn match cabalStatement "^\s*\cextra-source-files\ze\s*:" +syn match cabalStatement "^\s*\cextra-tmp-files\ze\s*:" +syn match cabalStatement "^\s*\cfor example\ze\s*:" +syn match cabalStatement "^\s*\cframeworks\ze\s*:" +syn match cabalStatement "^\s*\cghc-options\ze\s*:" +syn match cabalStatement "^\s*\cghc-prof-options\ze\s*:" +syn match cabalStatement "^\s*\cghc-shared-options\ze\s*:" +syn match cabalStatement "^\s*\chomepage\ze\s*:" +syn match cabalStatement "^\s*\chs-source-dirs\ze\s*:" +syn match cabalStatement "^\s*\chugs-options\ze\s*:" +syn match cabalStatement "^\s*\cinclude-dirs\ze\s*:" +syn match cabalStatement "^\s*\cincludes\ze\s*:" +syn match cabalStatement "^\s*\cinstall-includes\ze\s*:" +syn match cabalStatement "^\s*\cld-options\ze\s*:" +syn match cabalStatement "^\s*\clicense-file\ze\s*:" +syn match cabalStatement "^\s*\clicense\ze\s*:" +syn match cabalStatement "^\s*\clocation\ze\s*:" +syn match cabalStatement "^\s*\cmain-is\ze\s*:" +syn match cabalStatement "^\s*\cmaintainer\ze\s*:" +syn match cabalStatement "^\s*\cmodule\ze\s*:" +syn match cabalStatement "^\s*\cname\ze\s*:" +syn match cabalStatement "^\s*\cnhc98-options\ze\s*:" +syn match cabalStatement "^\s*\cother-modules\ze\s*:" +syn match cabalStatement "^\s*\cpackage-url\ze\s*:" +syn match cabalStatement "^\s*\cpkgconfig-depends\ze\s*:" +syn match cabalStatement "^\s*\cstability\ze\s*:" +syn match cabalStatement "^\s*\csubdir\ze\s*:" +syn match cabalStatement "^\s*\csynopsis\ze\s*:" +syn match cabalStatement "^\s*\ctag\ze\s*:" +syn match cabalStatement "^\s*\ctested-with\ze\s*:" +syn match cabalStatement "^\s*\ctype\ze\s*:" +syn match cabalStatement "^\s*\cversion\ze\s*:" " Define the default highlighting. " For version 5.7 and earlier: only when not done already