leksah-0.13.3.0: language-specs/cabal.lang
<?xml version="1.0" encoding="UTF-8"?>
<!--
Autor: Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>
Copyright (C) 2014 Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-->
<language id="cabal" _name="Cabal" version="2.0" _section="Others">
<metadata>
<property name="mimetypes">text/x-cabal</property>
<property name="globs">*.cabal</property>
<property name="line-comment-start">--</property>
</metadata>
<styles>
<style id="comment" _name="Comment" map-to="def:comment"/>
<style id="field-name" _name="FieldName" map-to="def:type"/>
<style id="keyword" _name="Keyword" map-to="def:keyword"/>
</styles>
<default-regex-options case-sensitive="false"/>
<definitions>
<context id="conditional" style-ref="keyword">
<prefix>^ *</prefix>
<keyword>if</keyword>
<keyword>else</keyword>
</context>
<context id="custom" style-ref="field-name">
<match>^ *x-[a-z0-9-]+ *:</match>
</context>
<context id="package-field-name" style-ref="field-name">
<prefix>^</prefix>
<suffix> *:</suffix>
<!-- putStrLn $ concatMap (\f -> " <keyword>" ++ fieldName f ++ "</keyword>\n") pkgDescrFieldDescrs -->
<keyword>name</keyword>
<keyword>version</keyword>
<keyword>cabal-version</keyword>
<keyword>build-type</keyword>
<keyword>license</keyword>
<keyword>license-file</keyword>
<keyword>copyright</keyword>
<keyword>maintainer</keyword>
<keyword>build-depends</keyword>
<keyword>stability</keyword>
<keyword>homepage</keyword>
<keyword>package-url</keyword>
<keyword>bug-reports</keyword>
<keyword>synopsis</keyword>
<keyword>description</keyword>
<keyword>category</keyword>
<keyword>author</keyword>
<keyword>tested-with</keyword>
<keyword>data-files</keyword>
<keyword>data-dir</keyword>
<keyword>extra-source-files</keyword>
<keyword>extra-tmp-files</keyword>
<keyword>extra-doc-files</keyword>
</context>
<context id="source-repo-field-name" style-ref="field-name">
<prefix>^ +</prefix>
<suffix> *:</suffix>
<!-- putStrLn $ concatMap (\f -> " <keyword>" ++ fieldName f ++ "</keyword>\n") sourceRepoFieldDescrs -->
<keyword>type</keyword>
<keyword>location</keyword>
<keyword>module</keyword>
<keyword>branch</keyword>
<keyword>tag</keyword>
<keyword>subdir</keyword>
</context>
<context id="source-repo" end-parent="true">
<start>^(source-repository+)( |$)</start>
<include>
<context sub-pattern="1" where="start" style-ref="keyword"/>
<context ref="line-comment"/>
<context ref="source-repo-field-name"/>
<context ref="source-repo"/>
<context ref="flag"/>
<context ref="lib"/>
<context ref="exe"/>
<context ref="test"/>
<context ref="custom"/>
</include>
</context>
<context id="flag-field-name" style-ref="field-name">
<prefix>^ +</prefix>
<suffix>:</suffix>
<!-- putStrLn $ concatMap (\f -> " <keyword>" ++ fieldName f ++ "</keyword>\n") flagFieldDescrs -->
<keyword>description</keyword>
<keyword>default</keyword>
<keyword>manual</keyword>
</context>
<context id="flag" end-parent="true">
<start>^(flag) </start>
<include>
<context sub-pattern="1" where="start" style-ref="keyword"/>
<context ref="line-comment"/>
<context ref="flag-field-name"/>
<context ref="source-repo"/>
<context ref="flag"/>
<context ref="lib"/>
<context ref="exe"/>
<context ref="test"/>
<context ref="custom"/>
</include>
</context>
<context id="lib-field-name" style-ref="field-name">
<prefix>^ +</prefix>
<suffix>:</suffix>
<keyword>build-depends</keyword>
<!-- putStrLn $ concatMap (\f -> " <keyword>" ++ fieldName f ++ "</keyword>\n") libFieldDescrs -->
<keyword>exposed-modules</keyword>
<keyword>exposed</keyword>
<keyword>buildable</keyword>
<keyword>build-tools</keyword>
<keyword>cpp-options</keyword>
<keyword>cc-options</keyword>
<keyword>ld-options</keyword>
<keyword>pkgconfig-depends</keyword>
<keyword>frameworks</keyword>
<keyword>c-sources</keyword>
<keyword>default-language</keyword>
<keyword>other-languages</keyword>
<keyword>default-extensions</keyword>
<keyword>other-extensions</keyword>
<keyword>extensions</keyword>
<keyword>extra-libraries</keyword>
<keyword>extra-lib-dirs</keyword>
<keyword>includes</keyword>
<keyword>install-includes</keyword>
<keyword>include-dirs</keyword>
<keyword>hs-source-dirs</keyword>
<keyword>other-modules</keyword>
<keyword>ghc-prof-options</keyword>
<keyword>ghc-shared-options</keyword>
<keyword>ghc-options</keyword>
<keyword>hugs-options</keyword>
<keyword>nhc98-options</keyword>
<keyword>jhc-options</keyword>
</context>
<context id="lib" end-parent="true">
<start>^(library)$</start>
<include>
<context sub-pattern="1" where="start" style-ref="keyword"/>
<context ref="line-comment"/>
<context ref="lib-field-name"/>
<context ref="source-repo"/>
<context ref="flag"/>
<context ref="exe"/>
<context ref="test"/>
<context ref="conditional"/>
<context ref="custom"/>
</include>
</context>
<context id="exe-field-name" style-ref="field-name">
<prefix>^ +</prefix>
<suffix>:</suffix>
<keyword>build-depends</keyword>
<!-- putStrLn $ concatMap (\f -> " <keyword>" ++ fieldName f ++ "</keyword>\n") executableFieldDescrs -->
<keyword>executable</keyword>
<keyword>main-is</keyword>
<keyword>buildable</keyword>
<keyword>build-tools</keyword>
<keyword>cpp-options</keyword>
<keyword>cc-options</keyword>
<keyword>ld-options</keyword>
<keyword>pkgconfig-depends</keyword>
<keyword>frameworks</keyword>
<keyword>c-sources</keyword>
<keyword>default-language</keyword>
<keyword>other-languages</keyword>
<keyword>default-extensions</keyword>
<keyword>other-extensions</keyword>
<keyword>extensions</keyword>
<keyword>extra-libraries</keyword>
<keyword>extra-lib-dirs</keyword>
<keyword>includes</keyword>
<keyword>install-includes</keyword>
<keyword>include-dirs</keyword>
<keyword>hs-source-dirs</keyword>
<keyword>other-modules</keyword>
<keyword>ghc-prof-options</keyword>
<keyword>ghc-shared-options</keyword>
<keyword>ghc-options</keyword>
<keyword>hugs-options</keyword>
<keyword>nhc98-options</keyword>
<keyword>jhc-options</keyword>
</context>
<context id="exe" end-parent="true">
<start>^(executable) </start>
<include>
<context sub-pattern="1" where="start" style-ref="keyword"/>
<context ref="line-comment"/>
<context ref="exe-field-name"/>
<context ref="source-repo"/>
<context ref="flag"/>
<context ref="lib"/>
<context ref="exe"/>
<context ref="test"/>
<context ref="conditional"/>
<context ref="custom"/>
</include>
</context>
<context id="test-field-name" style-ref="field-name">
<prefix>^ +</prefix>
<suffix>:</suffix>
<keyword>build-depends</keyword>
<!-- putStrLn $ concatMap (\f -> " <keyword>" ++ fieldName f ++ "</keyword>\n") testSuiteFieldDescrs -->
<keyword>type</keyword>
<keyword>main-is</keyword>
<keyword>test-module</keyword>
<keyword>buildable</keyword>
<keyword>build-tools</keyword>
<keyword>cpp-options</keyword>
<keyword>cc-options</keyword>
<keyword>ld-options</keyword>
<keyword>pkgconfig-depends</keyword>
<keyword>frameworks</keyword>
<keyword>c-sources</keyword>
<keyword>default-language</keyword>
<keyword>other-languages</keyword>
<keyword>default-extensions</keyword>
<keyword>other-extensions</keyword>
<keyword>extensions</keyword>
<keyword>extra-libraries</keyword>
<keyword>extra-lib-dirs</keyword>
<keyword>includes</keyword>
<keyword>install-includes</keyword>
<keyword>include-dirs</keyword>
<keyword>hs-source-dirs</keyword>
<keyword>other-modules</keyword>
<keyword>ghc-prof-options</keyword>
<keyword>ghc-shared-options</keyword>
<keyword>ghc-options</keyword>
<keyword>hugs-options</keyword>
<keyword>nhc98-options</keyword>
<keyword>jhc-options</keyword>
</context>
<context id="test" end-parent="true">
<start>^(test-suite) </start>
<include>
<context sub-pattern="1" where="start" style-ref="keyword"/>
<context ref="line-comment"/>
<context ref="test-field-name"/>
<context ref="source-repo"/>
<context ref="flag"/>
<context ref="lib"/>
<context ref="exe"/>
<context ref="test"/>
<context ref="conditional"/>
<context ref="custom"/>
</include>
</context>
<context id="line-comment" style-ref="comment" end-at-line-end="true">
<start>--</start>
<include>
<context ref="def:in-comment"/>
</include>
</context>
<context id="cabal">
<include>
<context ref="line-comment"/>
<context ref="package-field-name"/>
<context ref="source-repo"/>
<context ref="flag"/>
<context ref="lib"/>
<context ref="exe"/>
<context ref="test"/>
<context ref="custom"/>
</include>
</context>
</definitions>
</language>