|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
This file is part of GtkSourceView
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
Copyright (C) 2005-2007 Marco Barisione <barisione@gmail.com>
|
|
Packit |
a7d494 |
Copyright (C) 2005-2007 Emanuele Aina
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
gtksourceview is free software; you can redistribute it and/or
|
|
Packit |
a7d494 |
modify it under the terms of the GNU Lesser General Public
|
|
Packit |
a7d494 |
License as published by the Free Software Foundation; either
|
|
Packit |
a7d494 |
version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
gtksourceview is distributed in the hope that it will be useful,
|
|
Packit |
a7d494 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
a7d494 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
a7d494 |
Lesser General Public License for more details.
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
You should have received a copy of the GNU Lesser General Public
|
|
Packit |
a7d494 |
License along with this library; if not, write to the Free Software
|
|
Packit |
a7d494 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
This file describes the XML format used for syntax highlight
|
|
Packit |
a7d494 |
descriptions for the GtkSourceView 1.x library.
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
.lang files are XML files which describe how to highlight syntax;
|
|
Packit |
a7d494 |
this RNG is used for validation purposes.
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
.lang files should be located in $PREFIX/gtksourceview-1.0/language-specs/,
|
|
Packit |
a7d494 |
or in ~./gnome2/gtksourceview-1.0/language-specs/
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
To check if a .lang file is valid, run
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
$ xmllint FILENAME - -relaxng language.rng
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
If you create a new .lang file or modify an existing one, please note
|
|
Packit |
a7d494 |
that it will be (re)loaded by the application only after it is
|
|
Packit |
a7d494 |
restarted.
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
Boolean type
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
Attributes that are of type boolean allow the following values:
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- 'true', 'TRUE' and '1' all meaning true
|
|
Packit |
a7d494 |
- 'false', FALSE' and '0' all meaning false
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
It is encouraged to use 'TRUE' and 'FALSE' instead of the alternatives.
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
xmlns="http://relaxng.org/ns/structure/1.0"
|
|
Packit |
a7d494 |
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
Packit |
a7d494 |
<define name="boolean">
|
|
Packit |
a7d494 |
<choice>
|
|
Packit |
a7d494 |
<value>true</value>
|
|
Packit |
a7d494 |
<value>false</value>
|
|
Packit |
a7d494 |
<value>TRUE</value>
|
|
Packit |
a7d494 |
<value>FALSE</value>
|
|
Packit |
a7d494 |
<value>0</value>
|
|
Packit |
a7d494 |
<value>1</value>
|
|
Packit |
a7d494 |
</choice>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
Attributes required by all element representing a syntax or pattern tag.
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- name the name of the tag (it can appear in the UI)
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- style the style used to highlight the tag. Recognized values
|
|
Packit |
a7d494 |
are (from gtksourcestylescheme.h):
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- Base-N Integer used for values with a base
|
|
Packit |
a7d494 |
other than 10
|
|
Packit |
a7d494 |
- Character used for single characters
|
|
Packit |
a7d494 |
- Comment used for comments
|
|
Packit |
a7d494 |
- Data Type used for data types
|
|
Packit |
a7d494 |
- Function used for function names
|
|
Packit |
a7d494 |
- Decimal used for decimal values
|
|
Packit |
a7d494 |
- Floating Point used for floating point values
|
|
Packit |
a7d494 |
- Keyword used for keywords
|
|
Packit |
a7d494 |
- Preprocessor used for preprocessor instructions
|
|
Packit |
a7d494 |
- String used for strings
|
|
Packit |
a7d494 |
- Specials used for 'special' things
|
|
Packit |
a7d494 |
- Others (DEPRECATED, replaced by "Data Type")
|
|
Packit |
a7d494 |
- Others 2 used for 'other' things
|
|
Packit |
a7d494 |
- Others 3 used for 'other' things
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
The "name" attribute can be prefixed with "_" to be marked for
|
|
Packit |
a7d494 |
translation.
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
<define name="tagattrs">
|
|
Packit |
a7d494 |
<choice>
|
|
Packit |
a7d494 |
<attribute name="_name">
|
|
Packit |
a7d494 |
<data type="string"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
<attribute name="name">
|
|
Packit |
a7d494 |
<data type="string"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
</choice>
|
|
Packit |
a7d494 |
<attribute name="style">
|
|
Packit |
a7d494 |
<data type="string"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
The root of the definition file is the element "language".
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
Required attributes:
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- name the name of the language (it can appear in menus and
|
|
Packit |
a7d494 |
dialog boxes)
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- section the category the language belongs to (e.g. "Sources",
|
|
Packit |
a7d494 |
"Scripts", etc.)
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- version version of the .lang file format (1.0)
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- mimetypes a list of mime-types that identifies the types of file
|
|
Packit |
a7d494 |
that must be highlighted using the .lang file
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
Optional attributes:
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- translation-domain
|
|
Packit |
a7d494 |
the translation domain used by the file
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
The "name" and "section" attributes can be prefixed with
|
|
Packit |
a7d494 |
"_" to be marked for translation.
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
<define name="language">
|
|
Packit |
a7d494 |
<element name="language">
|
|
Packit |
a7d494 |
<ref name="attlist.language"/>
|
|
Packit |
a7d494 |
<optional>
|
|
Packit |
a7d494 |
<ref name="escape-char"/>
|
|
Packit |
a7d494 |
</optional>
|
|
Packit |
a7d494 |
<oneOrMore>
|
|
Packit |
a7d494 |
<choice>
|
|
Packit |
a7d494 |
<ref name="line-comment"/>
|
|
Packit |
a7d494 |
<ref name="block-comment"/>
|
|
Packit |
a7d494 |
<ref name="string"/>
|
|
Packit |
a7d494 |
<ref name="syntax-item"/>
|
|
Packit |
a7d494 |
<ref name="pattern-item"/>
|
|
Packit |
a7d494 |
<ref name="keyword-list"/>
|
|
Packit |
a7d494 |
</choice>
|
|
Packit |
a7d494 |
</oneOrMore>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
<define name="attlist.language" combine="interleave">
|
|
Packit |
a7d494 |
<choice>
|
|
Packit |
a7d494 |
<attribute name="_name">
|
|
Packit |
a7d494 |
<data type="string"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
<attribute name="name">
|
|
Packit |
a7d494 |
<data type="string"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
</choice>
|
|
Packit |
a7d494 |
<choice>
|
|
Packit |
a7d494 |
<attribute name="_section">
|
|
Packit |
a7d494 |
<data type="string"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
<attribute name="section">
|
|
Packit |
a7d494 |
<data type="string"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
</choice>
|
|
Packit |
a7d494 |
<attribute name="version">
|
|
Packit |
a7d494 |
<data type="string">
|
|
Packit |
a7d494 |
<param name="pattern">1\.0</param>
|
|
Packit |
a7d494 |
</data>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
<attribute name="mimetypes"/>
|
|
Packit |
a7d494 |
<optional>
|
|
Packit |
a7d494 |
<attribute name="translation-domain"/>
|
|
Packit |
a7d494 |
</optional>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
<define name="escape-char">
|
|
Packit |
a7d494 |
<element name="escape-char">
|
|
Packit |
a7d494 |
<ref name="attlist.escape-char"/>
|
|
Packit |
a7d494 |
<text/>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.escape-char" combine="interleave">
|
|
Packit |
a7d494 |
<empty/>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
The line-comment" element represents single line comments.
|
|
Packit |
a7d494 |
The "start-regex" subelement defines the regex matching the start of
|
|
Packit |
a7d494 |
the comment.
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
<define name="line-comment">
|
|
Packit |
a7d494 |
<element name="line-comment">
|
|
Packit |
a7d494 |
<ref name="attlist.line-comment"/>
|
|
Packit |
a7d494 |
<ref name="start-regex"/>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.line-comment" combine="interleave">
|
|
Packit |
a7d494 |
<ref name="tagattrs"/>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
The "block-comment" element represents multiple lines comments.
|
|
Packit |
a7d494 |
The "start-regex" subelement defines the regex matching the beginning of
|
|
Packit |
a7d494 |
the comment.
|
|
Packit |
a7d494 |
The "end-regex" subelement defines the regex matching the end of
|
|
Packit |
a7d494 |
the comment.
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
<define name="block-comment">
|
|
Packit |
a7d494 |
<element name="block-comment">
|
|
Packit |
a7d494 |
<ref name="attlist.block-comment"/>
|
|
Packit |
a7d494 |
<ref name="start-regex"/>
|
|
Packit |
a7d494 |
<ref name="end-regex"/>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.block-comment" combine="interleave">
|
|
Packit |
a7d494 |
<ref name="tagattrs"/>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
The "string" element represents string.
|
|
Packit |
a7d494 |
The "start-regex" subelement defines the regex matching the beginning of
|
|
Packit |
a7d494 |
the string.
|
|
Packit |
a7d494 |
The "end-regex" subelement defines the regex matching the end of
|
|
Packit |
a7d494 |
the string.
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
Optional attributes:
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- end-at-line-end whether the string end at the end of line
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
<define name="string">
|
|
Packit |
a7d494 |
<element name="string">
|
|
Packit |
a7d494 |
<ref name="attlist.string"/>
|
|
Packit |
a7d494 |
<ref name="start-regex"/>
|
|
Packit |
a7d494 |
<ref name="end-regex"/>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.string" combine="interleave">
|
|
Packit |
a7d494 |
<ref name="tagattrs"/>
|
|
Packit |
a7d494 |
<optional>
|
|
Packit |
a7d494 |
<attribute name="end-at-line-end" a:defaultValue="TRUE">
|
|
Packit |
a7d494 |
<ref name="boolean"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
</optional>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
The "syntax-item" element represents a generic region of the document.
|
|
Packit |
a7d494 |
The "start-regex" subelement defines the regex matching the beginning of
|
|
Packit |
a7d494 |
the region.
|
|
Packit |
a7d494 |
The "end-regex" subelement defines the regex matching the end of
|
|
Packit |
a7d494 |
the region.
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
<define name="syntax-item">
|
|
Packit |
a7d494 |
<element name="syntax-item">
|
|
Packit |
a7d494 |
<ref name="attlist.syntax-item"/>
|
|
Packit |
a7d494 |
<ref name="start-regex"/>
|
|
Packit |
a7d494 |
<ref name="end-regex"/>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.syntax-item" combine="interleave">
|
|
Packit |
a7d494 |
<ref name="tagattrs"/>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
The "pattern-item" element represents a generic token.
|
|
Packit |
a7d494 |
The "regex" subelement defines the regex matching the token.
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
<define name="pattern-item">
|
|
Packit |
a7d494 |
<element name="pattern-item">
|
|
Packit |
a7d494 |
<ref name="attlist.pattern-item"/>
|
|
Packit |
a7d494 |
<ref name="regex"/>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.pattern-item" combine="interleave">
|
|
Packit |
a7d494 |
<ref name="tagattrs"/>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
The "keyword-list" element represents a list of keywords, it can have
|
|
Packit |
a7d494 |
one or more "keyword" subelements each one representing a keyword.
|
|
Packit |
a7d494 |
A "keyword" subelement defines the regex matching a keyword of the
|
|
Packit |
a7d494 |
language.
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
Optional attributes:
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- case-sensitive whether the keywords are case sensitive
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- match-empty-string-at-beginning:
|
|
Packit |
a7d494 |
whether the empty string (\b) should be matched
|
|
Packit |
a7d494 |
at the beginning of the keywords
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- match-empty-string-at-end
|
|
Packit |
a7d494 |
whether the empty string (\b) should be matched
|
|
Packit |
a7d494 |
at the end of the keywords
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- beginning-regex if all keywords start with a regex, you can
|
|
Packit |
a7d494 |
specify it here to avoid doing it for
|
|
Packit |
a7d494 |
every single keyword
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
- end-regex if all keywords end with a regex, you can
|
|
Packit |
a7d494 |
specify it here to avoid doing it for
|
|
Packit |
a7d494 |
every single keyword
|
|
Packit |
a7d494 |
-->
|
|
Packit |
a7d494 |
<define name="keyword-list">
|
|
Packit |
a7d494 |
<element name="keyword-list">
|
|
Packit |
a7d494 |
<ref name="attlist.keyword-list"/>
|
|
Packit |
a7d494 |
<oneOrMore>
|
|
Packit |
a7d494 |
<ref name="keyword"/>
|
|
Packit |
a7d494 |
</oneOrMore>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.keyword-list" combine="interleave">
|
|
Packit |
a7d494 |
<ref name="tagattrs"/>
|
|
Packit |
a7d494 |
<optional>
|
|
Packit |
a7d494 |
<attribute name="case-sensitive" a:defaultValue="TRUE">
|
|
Packit |
a7d494 |
<ref name="boolean"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
</optional>
|
|
Packit |
a7d494 |
<optional>
|
|
Packit |
a7d494 |
<attribute name="match-empty-string-at-beginning" a:defaultValue="FALSE">
|
|
Packit |
a7d494 |
<ref name="boolean"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
</optional>
|
|
Packit |
a7d494 |
<optional>
|
|
Packit |
a7d494 |
<attribute name="match-empty-string-at-end" a:defaultValue="FALSE">
|
|
Packit |
a7d494 |
<ref name="boolean"/>
|
|
Packit |
a7d494 |
</attribute>
|
|
Packit |
a7d494 |
</optional>
|
|
Packit |
a7d494 |
<optional>
|
|
Packit |
a7d494 |
<attribute name="beginning-regex"/>
|
|
Packit |
a7d494 |
</optional>
|
|
Packit |
a7d494 |
<optional>
|
|
Packit |
a7d494 |
<attribute name="end-regex"/>
|
|
Packit |
a7d494 |
</optional>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
<define name="keyword">
|
|
Packit |
a7d494 |
<element name="keyword">
|
|
Packit |
a7d494 |
<ref name="attlist.keyword"/>
|
|
Packit |
a7d494 |
<text/>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.keyword" combine="interleave">
|
|
Packit |
a7d494 |
<empty/>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="regex">
|
|
Packit |
a7d494 |
<element name="regex">
|
|
Packit |
a7d494 |
<ref name="attlist.regex"/>
|
|
Packit |
a7d494 |
<text/>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.regex" combine="interleave">
|
|
Packit |
a7d494 |
<empty/>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="start-regex">
|
|
Packit |
a7d494 |
<element name="start-regex">
|
|
Packit |
a7d494 |
<ref name="attlist.start-regex"/>
|
|
Packit |
a7d494 |
<text/>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.start-regex" combine="interleave">
|
|
Packit |
a7d494 |
<empty/>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="end-regex">
|
|
Packit |
a7d494 |
<element name="end-regex">
|
|
Packit |
a7d494 |
<ref name="attlist.end-regex"/>
|
|
Packit |
a7d494 |
<text/>
|
|
Packit |
a7d494 |
</element>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
<define name="attlist.end-regex" combine="interleave">
|
|
Packit |
a7d494 |
<empty/>
|
|
Packit |
a7d494 |
</define>
|
|
Packit |
a7d494 |
|
|
Packit |
a7d494 |
<start>
|
|
Packit |
a7d494 |
<choice>
|
|
Packit |
a7d494 |
<ref name="language"/>
|
|
Packit |
a7d494 |
</choice>
|
|
Packit |
a7d494 |
</start>
|
|
Packit |
a7d494 |
</grammar>
|