[gtksourceview] Add yaml language file
- From: Adam Dingle <adamd src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] Add yaml language file
- Date: Sat, 16 Nov 2013 13:07:40 +0000 (UTC)
commit 46f1b643becf0f1c5073b56b54a31fdc898cf73f
Author: Adam Dingle <adam yorba org>
Date: Sat Nov 16 07:53:45 2013 -0500
Add yaml language file
This file was written by Masood Behabadi and originally licensed under
GPLv3+. He later changed his license so the language file can be used
by GtkSourceView.
Original source:
http://masood.googlecode.com/svn/trunk/yaml-language-spec/
https://bugzilla.gnome.org/show_bug.cgi?id=684200
data/language-specs/Makefile.am | 3 +-
data/language-specs/yaml.lang | 214 +++++++++++++++++++++++++++++++++++++++
po/POTFILES.in | 1 +
3 files changed, 217 insertions(+), 1 deletions(-)
---
diff --git a/data/language-specs/Makefile.am b/data/language-specs/Makefile.am
index 537adef..78500e5 100644
--- a/data/language-specs/Makefile.am
+++ b/data/language-specs/Makefile.am
@@ -107,7 +107,8 @@ LANGUAGES = \
vhdl.lang \
xml.lang \
xslt.lang \
- yacc.lang
+ yacc.lang \
+ yaml.lang
languagesdir = $(datadir)/gtksourceview-3.0/language-specs
languages_DATA = $(LANGUAGES) language.rng language2.rng language.dtd
diff --git a/data/language-specs/yaml.lang b/data/language-specs/yaml.lang
new file mode 100644
index 0000000..675e92d
--- /dev/null
+++ b/data/language-specs/yaml.lang
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vim: tabstop=2 shiftwidth=2
+
+ yaml.lang basic syntax highlighting of YAML for GtkSourceView
+
+ Copyright (C) 2013 Masood Behabadi <masood dentcat com>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+-->
+<language id="yaml" _name="YAML" _section="Other" version="2.0">
+ <metadata>
+ <property name="mimetypes">application/x-yaml</property>
+ <property name="globs">*.yaml;*.yml;</property>
+ <property name="line-comment-start">#</property>
+ </metadata>
+
+ <styles>
+ <style id="scalar" _name="Block literal" map-to="def:string"/>
+ <style id="comment" _name="Comment" map-to="def:comment"/>
+ <style id="string" _name="String" map-to="def:string"/>
+ <style id="anchor" _name="Anchor" map-to="def:identifier"/>
+ <style id="tag" _name="Tag" map-to="def:preprocessor"/>
+ <style id="alias" _name="Alias" map-to="def:type"/>
+ <style id="map-key" _name="Map key" map-to="def:keyword"/>
+ <style id="directive" _name="Directive" map-to="def:shebang"/>
+ <style id="null" _name="Null" map-to="def:special-constant"/>
+ <style id="bool" _name="Boolean" map-to="def:boolean"/>
+ <style id="int" _name="Integer" map-to="def:decimal"/>
+ <style id="float" _name="Floating point" map-to="def:floating-point"/>
+ </styles>
+
+ <definitions>
+
+ <define-regex id="ischar">[^-\?:,\[\]\{\}#&*!|>'"% \s]</define-regex>
+
+ <define-regex id="lschar">[\s\[\{,]</define-regex>
+ <define-regex id="rschar">[\s\]\},]</define-regex>
+
+ <context id="scalar" class-disabled="no-spell-check">
+ <start>(?<=^|\s)[|>]$</start>
+ <include>
+ <context end-parent="true" style-ref="scalar">
+ <start>^(?'indent'\s+)</start>
+ <end>^(?!\%{indent start})</end>
+ </context>
+ <context end-parent="true">
+ <match>(?=.)</match>
+ </context>
+ </include>
+ </context>
+
+ <context id="alias" style-ref="alias">
+ <match>(?<=^|\s)\*\%{ischar}+(?=$|\s)</match>
+ </context>
+
+ <context id="tag" style-ref="tag">
+ <match>(?<=^|\s)!(?:\%{ischar}*)?!?\%{ischar}+(?=$|\s)</match>
+ </context>
+
+ <context id="anchor" style-ref="anchor">
+ <match>(?<=^|\s)&\%{ischar}+(?=$|\s)</match>
+ </context>
+
+ <context id="string" end-at-line-end="true" style-ref="string" class-disabled="no-spell-check">
+ <start>(?<=^|\%{lschar})(?'q'["'])</start>
+ <end>[^\\]\%{q start}</end>
+ </context>
+
+ <context id="unquoted-string" end-at-line-end="true" style-ref="string" class-disabled="no-spell-check">
+ <start>(?=\%{ischar}|[:-\?\]\}]\S)</start>
+ <end>(?=:\s|:$|\s#)</end>
+ </context>
+
+ <context id="inline-unquoted" end-at-line-end="true" style-ref="string" class-disabled="no-spell-check">
+ <start>(?=\%{ischar}|-\S)</start>
+ <end>(?=[:,?\[\{\]\}]|\s#)</end>
+ </context>
+
+ <context id="null" style-ref="null">
+ <match>(?:null)(?=\s*$|\s+#)</match>
+ </context>
+
+ <context id="inline-null" style-ref="null">
+ <match>(?:null)(?=\s*[:,?\[\{\]\}]|\s+#)</match>
+ </context>
+
+ <context id="bool" style-ref="bool">
+ <match>(?:true|false)(?=\s*$|\s+#)</match>
+ </context>
+
+ <context id="inline-bool" style-ref="bool">
+ <match>(?:true|false)(?=\s*[:,?\[\{\]\}]|\s+#)</match>
+ </context>
+
+ <context id="inline-int" style-ref="int">
+ <match>-?(?:0|[1-9][0-9]*)(?=\s*[:,?\[\{\]\}]|\s+#)</match>
+ </context>
+
+ <context id="int" style-ref="int">
+ <match>-?(?:0|[1-9][0-9]*)(?=\s*$|\s+#)</match>
+ </context>
+
+ <context id="inline-float" style-ref="float">
+ <match>-?(?:0|[1-9][0-9]*)(?:[.][0-9]*)?(?:[eE][-+]?[0-9]+)?(?=\s*[:,?\[\{\]\}]|\s+#)</match>
+ </context>
+
+ <context id="float" style-ref="float">
+ <match>-?(?:0|[1-9][0-9]*)(?:[.][0-9]*)?(?:[eE][-+]?[0-9]+)?(?=\s*$|\s+#)</match>
+ </context>
+
+ <context id="comment" style-ref="comment">
+ <match>(?<=^|\s)#.*$</match>
+ </context>
+
+ <context id="inline-sequence">
+ <start>(?<=^|\s)\[</start>
+ <include>
+ <context ref="scalar"/>
+ <context ref="inline-sequence"/>
+ <context ref="inline-map"/>
+ <context ref="comment"/>
+ <context ref="alias"/>
+ <context ref="tag"/>
+ <context ref="anchor"/>
+ <context ref="string"/>
+ <context ref="inline-null"/>
+ <context ref="inline-bool"/>
+ <context ref="inline-int"/>
+ <context ref="inline-float"/>
+ <context ref="inline-unquoted"/>
+ <context end-parent="true">
+ <match>\]</match>
+ </context>
+ </include>
+ </context>
+
+ <context id="inline-map">
+ <start>(?<=^|\s)\{</start>
+ <include>
+ <context ref="scalar"/>
+ <context ref="inline-sequence"/>
+ <context ref="inline-map"/>
+ <context ref="comment"/>
+ <context ref="alias"/>
+ <context ref="tag"/>
+ <context ref="anchor"/>
+ <context ref="string"/>
+ <context ref="inline-null"/>
+ <context ref="inline-bool"/>
+ <context ref="inline-int"/>
+ <context ref="inline-float"/>
+ <context ref="inline-unquoted"/>
+ <context end-parent="true">
+ <match>\}</match>
+ </context>
+ </include>
+ </context>
+
+ <context id="map">
+ <match>(?<=^|\s)((?:[^:]|:(?=\S))+)(?::\s+|:$)</match>
+ <include>
+ <context sub-pattern="1" style-ref="map-key"/>
+ </include>
+ </context>
+
+ <context id="sequence">
+ <match>^\s*-\s+</match>
+ </context>
+
+ <context id="document" style-ref="comment">
+ <match>^(?:-{3}|[.]{3})(?:\s+|$)</match>
+ </context>
+
+ <context id="directive" style-ref="directive">
+ <match>^%\%{ischar}(?:\%{ischar}|\s+)*</match>
+ </context>
+
+ <context id="yaml" class="no-spell-check">
+ <include>
+ <context ref="directive"/>
+ <context ref="document"/>
+ <context ref="scalar"/>
+ <context ref="sequence"/>
+ <context ref="inline-sequence"/>
+ <context ref="inline-map"/>
+ <context ref="comment"/>
+ <context ref="null"/>
+ <context ref="bool"/>
+ <context ref="int"/>
+ <context ref="float"/>
+ <context ref="alias"/>
+ <context ref="tag"/>
+ <context ref="anchor"/>
+ <context ref="map"/>
+ <context ref="string"/>
+ <context ref="unquoted-string"/>
+ </include>
+ </context>
+
+ </definitions>
+
+</language>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e54ffc0..f195eeb 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -106,6 +106,7 @@ data/language-specs/vhdl.lang
data/language-specs/xml.lang
data/language-specs/xslt.lang
data/language-specs/yacc.lang
+data/language-specs/yaml.lang
data/styles/classic.xml
data/styles/cobalt.xml
data/styles/kate.xml
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]