diff options
| author | Teddy Wing | 2021-09-05 18:49:09 +0200 | 
|---|---|---|
| committer | Teddy Wing | 2021-09-05 19:34:24 +0200 | 
| commit | 696766cc8d9ab129274347a185951a474337ea77 (patch) | |
| tree | 389ff6e74d9f600efb504a2b3200c6020ff95677 /bundle/mpvim/syntax | |
| parent | 25e5e7a7f759d0132b2d304299c0e3388e223e2d (diff) | |
| download | dotvim-696766cc8d9ab129274347a185951a474337ea77.tar.bz2 | |
Add 'mpvim' plugin @ 513c455d5a902fff2b38edf86abc15c36688bf85
Provides syntax highlighting for MacPorts Portfiles.
This code was copied from the 'macports-contrib' repository
(https://github.com/macports/macports-contrib) at commit
513c455d5a902fff2b38edf86abc15c36688bf85
(https://github.com/macports/macports-contrib/tree/513c455d5a902fff2b38edf86abc15c36688bf85).
The Vim plugin lives in a subdirectory of the 'macports-contrib'
repository, so I'd have to include a whole mess of files that don't
relate to Vim if I wanted to add the plugin as a submodule. I'd just as
soon not have to copy the files into my repository tree like this, but
it's better than adding a non-Vim submodule.
Assuming it's okay to add these files to my repository, as the port file
for this plugin describes it as being BSD licensed:
https://github.com/macports/macports-ports/blob/12d7b1597bef875058758c9c587b7593f39a5af1/editors/mpvim/Portfile
Unfortunately, there's no BSD license or copyright notice included in
the plugin code. But I'm going to assume I'm allowed to redistribute it.
Diffstat (limited to 'bundle/mpvim/syntax')
| -rw-r--r-- | bundle/mpvim/syntax/portfile.vim | 317 | 
1 files changed, 317 insertions, 0 deletions
| diff --git a/bundle/mpvim/syntax/portfile.vim b/bundle/mpvim/syntax/portfile.vim new file mode 100644 index 0000000..480a876 --- /dev/null +++ b/bundle/mpvim/syntax/portfile.vim @@ -0,0 +1,317 @@ +" vim:fenc=utf-8:et:sw=4:ts=4:sts=4 + +" Vim syntax file +" Language: MacPorts Portfiles +" Maintainer: Maximilian Nickel <mnick@macports.org> +" + +if &compatible || v:version < 603 +    finish +endif + +if exists("b:current_syntax") +    finish +endif + +" Disable whitespace error highlight if variable is not set +if !exists("g:portfile_highlight_space_errors") +    let g:portfile_highlight_space_errors=0 +endif + +let is_tcl=1 +runtime! syntax/tcl.vim + +unlet b:current_syntax + +" Some custom extensions contain a dash (for example, fs-traverse) +setlocal iskeyword+=- + +syn match PortfileGroup         "{.\+}" contained +syn match PortfileYesNo         "\<\%(yes\|no\)\>" contained + +syn keyword PortfileRequired    PortSystem name version maintainers +syn keyword PortfileRequired    homepage platforms +syn match PortfileRequired      "\<master_sites\%(-append\|-delete\)\?\>" +syn match PortfileRequired      "\<categories\%(-append\|-delete\)\?\>" +syn match PortfileRequired      "\<\%(long_\)\?description\%(-append\)\?\>" nextgroup=PortfileDescription skipwhite +syn region PortfileDescription  matchgroup=Normal start="" skip="\\$" end="$" contained + +syn keyword PortfileOptional    PortGroup epoch revision patch_sites +syn keyword PortfileOptional    license conflicts license_noconflict +syn keyword PortfileOptional    replaced_by supported_archs + +syn match PortfileOptional      "\<distfiles\%(-append\|-delete\)\?\>" +syn keyword PortfileOptional    distname dist_subdir worksrcdir + +syn keyword PortfileOptional    installs_libs nextgroup=PortfileYesNo skipwhite +syn match PortfileOptional      "\<depends_skip_archcheck\%(-append\|-delete\)\?\>" + +syn keyword PortfileOptional    use_xcode nextgroup=PortfileYesNo skipwhite + +syn match PortfileOptional      "\<checksums\%(-append\|-delete\)\?\>" nextgroup=PortfileChecksums skipwhite +syn region PortfileChecksums    matchgroup=Normal start="" skip="\\$" end="$" contained contains=PortfileChecksumsType +syn keyword PortfileChecksumsType md5 sha1 rmd160 sha256 size contained + +syn match PortfilePhases        "\<\%(pre-\|post-\)\?\%(fetch\|checksum\|extract\|patch\|configure\|build\|test\|destroot\|archive\|install\|activate\|deactivate\)\>" contains=PortfilePrePost + +" Fetch phase options +syn match PortfilePhasesFetch   "\<fetch\.\%(type\|user\|password\|use_epsv\|ignore_sslcert\)\>" +syn match PortfilePhasesFetch   "\<cvs\.\%(root\|password\|tag\|date\|module\)\>" +syn match PortfilePhasesFetch   "\<svn\.\%(url\|revision\|method\)\>" +syn match PortfilePhasesFetch   "\<git\.\%(url\|branch\)\>" +syn match PortfilePhasesFetch   "\<hg\.\%(url\|tag\)\>" + +" Extract phase options +syn match PortfilePhasesExtract "\<extract\.\%(suffix\|mkdir\|cmd\|only\%(-append\|-delete\)\?\)\>" +syn match PortfilePhasesExtract "\<use_\%(7z\|bzip2\|dmg\|lzma\|xz\|zip\)\>" nextgroup=PortfileYesNo skipwhite + +" Patch phase options +syn match PortfilePhasesPatch   "\<patch\.\%(dir\|cmd\|\%(pre_\|post_\)\?args\%(-append\|-delete\)\?\)\>" +syn match PortfilePhasesPatch   "\<patchfiles\%(-append\|-delete\)\?\>" + +" Configure phase options +syn keyword PortfilePhasesConf  use_configure nextgroup=PortfileYesNo skipwhite +syn match PortfilePhasesConf    "\<configure\.cmd\>" +syn match PortfilePhasesConf    "\<configure\.\%(env\|\%(c\|ld\|cpp\|cxx\|objc\|f\|fc\|f90\)flags\)\%(-append\|-delete\)\?\>" +syn match PortfilePhasesConf    "\<configure\.\%(pre_\|post_\)\?args\%(-append\|-delete\|-replace\|-strsed\)\?\>" nextgroup=PortfileConfEntries skipwhite +syn region PortfileConfEntries  matchgroup=Normal start="" skip="\\$" end="$" contained +syn match PortfilePhasesConf    "\<configure\.\%(cc\|cpp\|cxx\|objc\|fc\|f77\|f90\|javac\|compiler\)\>" +syn match PortfilePhasesConf    "\<configure\.\%(perl\|python\|ruby\|install\|awk\|bison\)\>" +syn match PortfilePhasesConf    "\<configure\.\%(pkg_config\%(_path\)\?\)\>" +syn match PortfilePhasesConf    "\<configure.universal_\%(args\|\%(c\|cpp\|cxx\|ld\)flags\)\%(-append\|-delete\)\?\>" +syn match PortfilePhasesConf    "\<compiler\.\%(blacklist\|whitelist\|fallback\)\%(-append\|-delete\)\?\>" + +" Automake and Autoconf +syn match PortfilePhasesAA      "\<use_auto\%(make\|\%(re\)\?conf\)\>" nextgroup=PortfileYesNo skipwhite +syn match PortfilePhasesAA      "\<auto\%(make\|\%(re\)\?conf\).\%(env\|\%(pre_\|post_\)\?args\|dir\|cmd\)\%(-append\|-delete\)\?\>" + +" Build phase options +syn match PortfilePhasesBuild   "\<build\.\%(cmd\|type\|dir\)\>" +syn match PortfilePhasesBuild   "\<build\.\%(pre_\|post_\)\?args\%(-append\|-delete\|-replace\|-strsed\)\?\>" +syn match PortfilePhasesBuild   "\<build\.\%(target\|env\)\%(-append\|-delete\)\?\>" +syn keyword PortfilePhasesBuild use_parallel_build nextgroup=PortfileYesNo skipwhite + +" Test phase options +syn match PortfilePhasesTest    "\<test\.run\>" nextgroup=PortfileYesNo skipwhite +syn match PortfilePhasesTest    "\<test\.cmd\>" +syn match PortfilePhasesTest    "\<test\.\%(pre_\|post_\)\?args\%(-append\|-delete\)\?\>" +syn match PortfilePhasesTest    "\<test\.\%(target\|env\)\%(-append\|-delete\)\?\>" + +" Test destroot options +syn match PortfilePhasesDest    "\<destroot\.\%(cmd\|type\|dir\|destdir\|umask\|keepdirs\)\>" +syn match PortfilePhasesDest    "\<destroot\.violate_mtree\>" nextgroup=PortfileYesNo skipwhite +syn match PortfilePhasesDest    "\<destroot\.\%(pre_\|post_\)\?args\%(-append\|-delete\|-replace\|-strsed\)\?\>" +syn match PortfilePhasesDest    "\<destroot\.\%(target\|env\)\%(-append\|-delete\)\?\>" + +" Variants +syn region PortfileVariant              matchgroup=Keyword start="^\s*\zsvariant" skip="\\$" end="$" contains=PortfileVariantName,PortfileVariantRequires,PortfileVariantDescription,PortfileVariantConflicts skipwhite +syn keyword PortfileVariantRequires     requires nextgroup=PortfileVariantName contained +syn keyword PortfileVariantConflicts    conflicts nextgroup=PortfileVariantName contained +syn keyword PortfileVariantDescription  description nextgroup=PortfileGroup contained skipwhite +syn match PortfileVariantName           "\<\w\+\>" contained +syn keyword PortfileOptional            universal_variant nextgroup=PortfileYesNo skipwhite +syn match PortfileOptional              "\<default_variants\%(-append\|-delete\)\?\>" nextgroup=PortfileDefaultVariants skipwhite +syn match PortfileDefaultVariants       "\<[+-]\w\+\%(\s\+[+-]\w\+\)*\>" contained + +" Platform +syn match PortfilePlatform          "\<platform\>" nextgroup=PortfilePlatformName skipwhite +syn match PortfilePlatformName      "\<\l\w\+\>" nextgroup=PortfilePlatformVersion contained skipwhite +syn match PortfilePlatformVersion   "\<\d\+\>" nextgroup=PortfilePlatformArch contained skipwhite +syn match PortfilePlatformArch      "\<\l\w\+\>" contained + +" Subports +syn region PortfileSubport       matchgroup=Keyword start="^\s*\zssubport\>" skip="\\$" end="$" contains=PortfileSubportName +syn match PortfileSubportName   "\<[\w\.-]\+\>" contained + +" Dependencies +syn match PortfileDepends           "\<depends_\%(\%(lib\|build\|run\|fetch\|extract\)\%(-append\|-delete\)\?\)\>" nextgroup=PortfileDependsEntries skipwhite +syn region PortfileDependsEntries   matchgroup=Normal start="" skip="\\$" end="$" contains=PortfileDependsEntry contained +syn match PortfileDependsEntry      "\<\%(port\|bin\|path\|lib\):" contained + +" StartupItems +syn match PortfileStartupPid    "\<\%(none\|auto\|clean\|manual\)\>" contained +syn match PortfileOptional      "\<startupitem\.\%(start\|stop\|restart\|init\|executable\|logfile\)\>" +syn match PortfileOptional      "\<startupitem\.\%(create\|logevents\|netchange\)\>" nextgroup=PortfileYesNo skipwhite +syn match PortfileOptional      "\<startupitem\.pidfile\>" nextgroup=PortfileStartupPid skipwhite + +" Livecheck / Distcheck +syn match PortfileOptional      "\<livecheck\.\%(type\|name\|distname\|version\|url\|regex\|md5\)\>" +syn keyword PortfileOptional    distcheck.check + +" Notes +syn keyword PortfilePhases  notes + +" Port Groups + +" App +syn match PortfileGroups    "\<app\.\%(create\|name\|executable\|icon\|short_version_string\|version\|identifier\)\>" + +" Archcheck +syn match PortfileGroups    "\<archcheck\.files\>" + +" CMake +" has no keywords + +" crossbinutils +syn match PortfileGroups    "\<crossbinutils\.\%(target\|setup\)\>" + +" crossgcc +syn match PortfileGroups    "\<crossgcc\.\%(target\|setup\|setup_libc\)\>" + +" github +syn match PortfileGroups    "\<github\.\%(author\|project\|version\|tag_prefix\|homepage\|raw\|master_sites\|tarball_from\|setup\)\>" + +" Gnustep +syn match PortfileGroups    "\<gnustep\.\%(post_flags\|cc\)\>" +syn keyword PortfileGroups  variant_with_docs gnustep_layout +syn match PortfileGroups    "\<set_\%(gnustep_\%(make\|env\)\|\%(system\|local\)_library\)\>" + +" Haskell +syn keyword PortfileGroups  haskell.setup + +" hocbinding +syn match PortfileGroups    "\<hocbinding\.\%(framework\|deps\|setup\)\>" + +" hunspelldict +syn match PortfileGroups    "\<hunspelldict\.\%(locale\|setup\)\>" + +" KDE 4, versions 1.0 and 1.1 +" have no keywords + +" muniversal +syn match PortfileGroups    "\<merger_configure_\%(env\|args\|compiler\|cppflags\|cflags\|cxxflags\|objcflags\|ldflags\)\>" +syn match PortfileGroups    "\<merger_build_\%(env\|args\)\>" +syn match PortfileGroups    "\<merger_\%(host\|arch_\%(flag\|compiler\)\|destroot_env\|dont_diff\|must_run_binaries\|no_3_archs\)\>" +syn match PortfileGroups    "\<universal_archs_supported\>" + +" obsolete +" has no keywords (other than replaced_by, and that should be elsewhere in +" this file) + +" ocml +" has no keywords + +" octave +syn match PortfileGroups    "\<octave\.\%(module\|setup\)\>" + +" PEAR +syn match PortfileGroups    "\<pear\.\%(env\|configure\.pre_args\|destroot\|installer\|sourceroot\|instpath\|pearpath\|cmd-pear\|cmd-phar\|cmd-php\|channel\|packagexml\|package\|packagefile\|setup\)\>" + +" Perl5 +syn match PortfileGroups    "\<perl5\.\%(setup\|branches\|default_branch\|version\|major\|arch\|bin\|lib\|bindir\|archlib\)\>" + +" PHP 1.0 +syn match PortfileGroups    "\<php\.\%(branch\%(es\)\?\|build_dirs\|default_branch\|extension_ini\|extensions\|rootname\|type\|setup\)\>" +syn match PortfileGroups    "\<php\.\%(config\|extension_dir\|ini\%(_dir\)\?\|ize\|suffix\)\>" +" PHP 1.1 (only adding those not already present in 1.0) +syn match PortfileGroups    "\<php\.\%(rootname\|create_subports\|extensions\.zend\|build_dirs\|add_port_code\)\>" +syn match PortfileGroups    "\<php\.\%(pecl\%(_livecheck_stable\)\?\|pecl\.\%(name\|prerelease\)\)\>" + +" PHP5 extension +syn match PortfileGroups    "\<php5extension\.\%(setup\|build_dirs\|extensions\|extension_dir\|ini\|inidir\|php_ini\|phpize\|type\|source\)\>" + +" PHP5 PEAR +syn match PortfileGroups    "\<php5pear\.\%(env\|configure\.pre_args\|destroot\|installer\|sourceroot\|instpath\|pearpath\|cmd-\%(pear\|phar\|php\)\|channel\|packagexml\|package\|packagefile\|setup\)\>" + +" Pure +syn match PortfileGroups    "\<pure\.setup\>" + +" Python +syn match PortfileGroups    "\<python\.\%(versions\?\|default_version\|branch\|prefix\|bin\|lib\|libdir\|include\|pkgd\|add_archflags\|set_compiler\|link_binaries\%(_suffix\)\?\)\>" +" I'm not documenting the Python{24,25,26,27,31,32} groups. Don't use them. + +" Qt4 +syn match PortfileGroups    "\<qt_\%(name\|dir\|qmake_spec\|cmake_defines\|arch_types\)\>" +syn match PortfileGroups    "\<qt_\%(qmake\|moc\|uic\|lrelease\)_cmd\>" +syn match PortfileGroups    "\<qt_\%(docs\|plugins\|mkspecs\|imports\|includes\|libs\|frameworks\|bins\|apps\|data\|translations\|sysconf\|examples\|demos\|cmake_module\)_dir\>" + +" Ruby +syn match PortfileGroups    "\<ruby\.\%(version\|bin\|rdoc\|gem\|lib\|arch\|archlib\|setup\)\>" + +" Select +syn match PortfileGroups    "\<select\.\%(group\|file\)\>" + +" TeX Live +syn match PortfileGroups    "\<texlive\.\%(exclude\|binaries\|formats\|languages\|maps\|forceupdatecnf\|use_mktexlsr\%(_on_deactivate\)\?\|texmfport\)\>" + +" X11 Font +syn match PortfileGroups    "\<x11font\.setup\>" + +" Xcode +syn match PortfileGroups    "\<xcode\.\%(project\|configuration\|target\|build\.settings\)\>" +syn match PortfileGroups    "\<xcode\.destroot\.\%(type\|path\|settings\)\>" +syn match PortfileGroups    "\<xcode\.universal\.\%(sdk\|settings\)\>" + +" Xcode version +syn match PortfileGroups    "\<minimum_xcodeversions\>" + +" Zope +syn match PortfileGroups    "\<zope\.\%(need_subdir\|setup\)\>" + +" End of PortGroups + + +" Tcl extensions +syn keyword PortfileTcl     xinstall fs-traverse readdir md5 vercmp +syn keyword PortfileTcl     reinplace strsed +syn keyword PortfileTcl     copy move delete touch ln system +syn match PortfileTcl       "\<curl\s\+\%(fetch\|isnewer\)\>" +syn match PortfileTcl       "\<\%(add\|exists\)\%(user\|group\)\>" +syn keyword PortfileTcl     nextuid nextgid +syn keyword PortfileTcl     variant_isset variant_set +syn match PortfileTcl       "\<mk[sd]\?temp\>" +syn keyword PortfileTcl     lpush lpop lunshift lshift ldindex +syn keyword PortfileTcl     ui_debug ui_error ui_info ui_msg ui_warn + +" check whitespace, copied from python.vim +if g:portfile_highlight_space_errors == 1 +    " trailing whitespace +    syn match PortfileSpaceError    display excludenl "\S\s\+$"ms=s+1 +    " mixed tabs and spaces +    syn match PortfileSpaceError    display " \+\t" +    syn match PortfileSpaceError    display "\t\+ " +endif + +hi def link PortfileGroup               String +hi def link PortfileYesNo               Special +hi def link PortfileStartupPid          Special + +hi def link PortfileRequired            Keyword +hi def link PortfileOptional            Keyword +hi def link PortfileDescription         String +hi def link PortfileChecksumsType       Special + +hi def link PortfilePhases              Keyword +hi def link PortfilePhasesFetch         Keyword +hi def link PortfilePhasesExtract       Keyword +hi def link PortfilePhasesPatch         Keyword +hi def link PortfilePhasesConf          Keyword +hi def link PortfilePhasesAA            Keyword +hi def link PortfilePhasesBuild         Keyword +hi def link PortfilePhasesTest          Keyword +hi def link PortfilePhasesDest          Keyword + +hi def link PortfileVariantConflicts    Statement +hi def link PortfileVariantDescription  Statement +hi def link PortfileVariantRequires     Statement +hi def link PortfileVariantName         Identifier +hi def link PortfileDefaultVariants     Identifier + +hi def link PortfilePlatform            Keyword +hi def link PortfilePlatformName        Identifier +hi def link PortfilePlatformVersion     tclNumber +hi def link PortfilePlatformArch        Identifier + +hi def link PortfileSubportName         Identifier + +hi def link PortfileDepends             Keyword +hi def link PortfileDependsEntry        Special +hi def link PortfileGroups              Keyword + +hi def link PortfileTcl                 Keyword + +if g:portfile_highlight_space_errors == 1 +    hi def link PortFileSpaceError      Error +endif + +let b:current_syntax = "Portfile" | 
