[colorer/Colorer-schemes] master: added QML support; added new console theme (#196) (64b1dc8)

0 views
Skip to first unread message

farg...@farmanager.com

unread,
Jan 28, 2026, 10:45:58 PM (8 days ago) Jan 28
to farco...@googlegroups.com
Repository : https://github.com/colorer/Colorer-schemes
On branch : master
Link : https://github.com/colorer/Colorer-schemes/commit/64b1dc877de1b3eebb1f9fc8041907e16b063107

>---------------------------------------------------------------

commit 64b1dc877de1b3eebb1f9fc8041907e16b063107
Author: Kate <ka...@tempergate.co.uk>
Date: Thu Jan 29 03:44:15 2026 +0000

added QML support; added new console theme (#196)

* added new console theme
added qml support

* removed non actual comment

* fixos over reviewes

* fixed QmlImportLine and QmlImport bug


>---------------------------------------------------------------

64b1dc877de1b3eebb1f9fc8041907e16b063107
base/hrc/base/qml.hrc | 197 ++++++++++++++++++++++++++++++++++++
base/hrc/proto.hrc | 16 +++
base/hrd/catalog-console.xml | 3 +
base/hrd/console/contrib/violet.hrd | 98 ++++++++++++++++++
4 files changed, 314 insertions(+)

diff --git a/base/hrc/base/qml.hrc b/base/hrc/base/qml.hrc
new file mode 100644
index 0000000..d55e86f
--- /dev/null
+++ b/base/hrc/base/qml.hrc
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hrc PUBLIC "-//Cail Lomecb//DTD Colorer HRC take5//EN"
+"http://colorer.sf.net/2003/hrc.dtd">
+
+<hrc version="take5"
+ xmlns="http://colorer.sf.net/2003/hrc"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://colorer.sf.net/2003/hrc
+ http://colorer.sf.net/2003/hrc.xsd">
+
+ <annotation>
+ <documentation>
+ QML / Qt Quick syntax description
+ </documentation>
+ <contributors><![CDATA[
+ Kate Tempergate <ka...@tempergate.co.uk>
+ ]]></contributors>
+ </annotation>
+
+ <type name="qml">
+
+ <region name="qmlKeyword" parent="def:Keyword"/>
+ <region name="qmlType" parent="def:Identifier"/>
+ <region name="qmlComment" parent="def:Comment"/>
+ <region name="qmlString" parent="def:String"/>
+ <region name="qmlNumber" parent="def:Number"/>
+ <region name="qmlProperty" parent="def:Identifier"/>
+ <region name="qmlSignal" parent="def:Identifier"/>
+ <region name="qmlImport" parent="def:Directive"/>
+
+ <scheme name="StringContent">
+ <regexp match="/\\[\\nrt&quot;&apos;]/" region="def:StringContent"/>
+ </scheme>
+ <scheme name="NotNestedComment">
+ <inherit scheme="def:Comment"/>
+ </scheme>
+ <scheme name="QmlImportLine">
+ <regexp match="/\bQtQuick\b/" region="qmlType"/>
+ <regexp match="/\bControls\b/" region="qmlType"/>
+ <regexp match="/\b\d+(\.\d+)?\b/" region="qmlNumber"/>
+ </scheme>
+ <scheme name="QmlImport">
+ <block start="/^\s*import\b/" end="/$/"
+ scheme="QmlImportLine"
+ region="qmlImport"/>
+ </scheme>
+
+ <!-- Keywords -->
+ <scheme name="Keywords">
+ <keywords region="qmlKeyword">
+ <word name="import"/>
+ <word name="pragma"/>
+ <word name="as"/>
+ <word name="property"/>
+ <word name="signal"/>
+ <word name="id"/>
+ <word name="readonly"/>
+ <word name="default"/>
+ <word name="required"/>
+ <word name="if"/>
+ <word name="else"/>
+ <word name="for"/>
+ <word name="while"/>
+ <word name="return"/>
+ <word name="function"/>
+ <word name="var"/>
+ <word name="let"/>
+ <word name="const"/>
+ <word name="true"/>
+ <word name="false"/>
+ <word name="null"/>
+ </keywords>
+ </scheme>
+
+ <!-- Core QtQuick types -->
+ <scheme name="Types">
+ <keywords region="qmlType">
+ <word name="Item"/>
+ <word name="Rectangle"/>
+ <word name="Text"/>
+ <word name="Image"/>
+ <word name="MouseArea"/>
+ <word name="Row"/>
+ <word name="Column"/>
+ <word name="Repeater"/>
+ <word name="ListView"/>
+ <word name="Component"/>
+ <word name="Timer"/>
+ <word name="Process"/>
+ <word name="Window"/>
+ <word name="ApplicationWindow"/>
+ <word name="BorderImage"/>
+ <word name="MultiPointTouchArea"/>
+ <word name="Keys"/>
+ <word name="GridView"/>
+ <word name="PathView"/>
+ <word name="Grid"/>
+ <word name="Flow"/>
+ <word name="NumberAnimation"/>
+ <word name="PropertyAnimation"/>
+ <word name="SequentialAnimation"/>
+ <word name="ParallelAnimation"/>
+ <word name="Behavior"/>
+ <word name="State"/>
+ <word name="Transition"/>
+ <word name="QtObject"/>
+ </keywords>
+ </scheme>
+
+ <!-- QuickShell Types -->
+ <scheme name="QuickShellTypes">
+ <keywords region="qmlType">
+ <word name="ShellRoot"/>
+ <word name="Panel"/>
+ <word name="Bar"/>
+ <word name="Widget"/>
+ <word name="Popup"/>
+ <word name="Workspace"/>
+ <word name="Monitor"/>
+ <word name="Tray"/>
+ <word name="Clock"/>
+ <word name="Battery"/>
+ <word name="Network"/>
+ <word name="Audio"/>
+ <word name="Launcher"/>
+ <word name="Loader"/>
+ <word name="Connections"/>
+ </keywords>
+ </scheme>
+
+
+ <!-- MAIN SCHEME -->
+ <scheme name="qml">
+
+ <!-- SINGLE-LINE COMMENTS -->
+ <regexp match="/\/\/.*$/" region="qmlComment"/>
+
+ <!-- MULTI-LINE COMMENTS -->
+ <block start="/\/\*/" end="/\*\//"
+ scheme="NotNestedComment"
+ region="qmlComment"
+ inner-region="yes"
+ region00="def:PairStart"
+ region10="def:PairEnd"/>
+
+ <!-- STRINGS -->
+ <block start="/&quot;/" end="/&quot;/"
+ scheme="StringContent"
+ region="qmlString"
+ inner-region="yes"
+ region00="def:PairStart"
+ region10="def:PairEnd"/>
+ <block start="/&apos;/" end="/&apos;/"
+ scheme="StringContent"
+ region="qmlString"
+ inner-region="yes"
+ region00="def:PairStart"
+ region10="def:PairEnd"/>
+
+ <!-- NUMBERS -->
+ <regexp match="/\b\d+(\.\d+)?\b/" region="qmlNumber"/>
+
+ <!-- PROPERTY -->
+ <regexp match="/\b\w+\s*:/" region="qmlProperty"/>
+
+ <!-- SIGNAL HANDLER -->
+ <regexp match="/\bon[A-Z]\w*/" region="qmlSignal"/>
+
+ <!-- INHERIT KEYWORDS AND TYPES -->
+ <inherit scheme="QmlImport"/>
+ <inherit scheme="Keywords"/>
+ <inherit scheme="Types"/>
+ <inherit scheme="QuickShellTypes"/>
+ <inherit scheme="def:PairedBrackets">
+ <virtual scheme="def:PairedBrackets" subst-scheme="qml"/>
+ </inherit>
+ </scheme>
+
+ </type>
+</hrc>
+
+<!--
+Copyright (C) 2025 Kate Tempergate <ka...@tempergate.co.uk>
+
+This library 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 library 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, see <https://www.gnu.org/licenses/>
+-->
diff --git a/base/hrc/proto.hrc b/base/hrc/proto.hrc
index 17e9ea8..a7d76b3 100644
--- a/base/hrc/proto.hrc
+++ b/base/hrc/proto.hrc
@@ -57,6 +57,22 @@
<package name="cpp-qt" description="C++ + Qt">
<location link="base/cpp-qt.hrc" />
</package>
+ <prototype name="qml" group="main" description="QML / Qt Quick">
+ <location link="base/qml.hrc" />
+ <filename>/\.(qml)$/i</filename>
+ <firstline>/^\s*import\s+Qt(\w+)?(\.\w+)*(\s+\d+(\.\d+)*)?/i</firstline>
+ <firstline>/^\s*import\s+\w+(\.\w+)*(\s+\d+(\.\d+)*)?/i</firstline>
+ <firstline>/^\s*[A-Z]\w*\s*\{/i</firstline>
+ <parameters>
+ <param name="qtquick-keywords" value="true" description="Highlight Qt Quick keywords and types" />
+ <param name="javascript-keywords" value="true" description="Enable JavaScript keywords inside QML" />
+ <param name="qml-signals" value="true" description="Highlight QML signals and signal handlers" />
+ <param name="qml-properties" value="true" description="Highlight QML properties and bindings" />
+ <param name="qml-imports" value="true" description="Highlight QML import statements" />
+ <param name="firstlines" value="10" description="Lines for 'firstline' detection" />
+ <param name="firstlinebytes" value="2000" description="Bytes for 'firstline' detection" />
+ </parameters>
+ </prototype>
<prototype name="d" group="main" description="D">
<location link="base/d.hrc" />
<filename>/\.di?$/i</filename>
diff --git a/base/hrd/catalog-console.xml b/base/hrd/catalog-console.xml
index d8aeeeb..95b78c9 100644
--- a/base/hrd/catalog-console.xml
+++ b/base/hrd/catalog-console.xml
@@ -56,3 +56,6 @@
<hrd class="console" name="mirror-conemu" description="ConEmu Extending">
<location link="&hrd;/console/emu/mirror.hrd"/>
</hrd>
+ <hrd class="console" name="violet" description="Violet by Kate Tempergate">
+ <location link="&hrd;/console/contrib/violet.hrd"/>
+ </hrd>
diff --git a/base/hrd/console/contrib/violet.hrd b/base/hrd/console/contrib/violet.hrd
new file mode 100644
index 0000000..d02627b
--- /dev/null
+++ b/base/hrd/console/contrib/violet.hrd
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hrd PUBLIC "-//Cail Lomecb//DTD Colorer HRD take5//EN"
+ "http://colorer.sf.net/2003/hrd.dtd">
+<hrd xmlns="http://colorer.sf.net/2003/hrd">
+ <documentation>
+ Violet From Kate Tempergate
+
+ <!--
+ <hrd class="console" name="violet" description="Violet colors">
+ <location link="hrd/console/violet.hrd"/>
+ </hrd>
+ -->
+ 0 - black
+ 1 - blue
+ 2 - green
+ 3 - cyan
+ 4 - bordo
+ 5 - purple
+ 6 - brown
+ 7 - light gray
+ 8 - gray
+ 9 - light blue
+ A - light green
+ B - light cyan
+ C - red
+ D - light purple
+ E - yellow
+ F - white
+ </documentation>
+
+
+ <assign name="def:Text" fore="#7" back="#5"/>
+ <assign name="def:HorzCross" fore="#0" back="#8"/>
+ <assign name="def:VertCross" fore="#0" back="#8"/>
+
+ <assign name="def:Syntax"/>
+
+ <assign name="def:Number" fore="#A"/>
+ <assign name="def:NumberSuffix" fore="#2"/>
+
+ <assign name="def:String" fore="#E"/>
+ <assign name="def:StringContent" fore="#C"/>
+ <assign name="def:StringEdge" fore="#B"/>
+ <assign name="def:Character" fore="#E"/>
+ <assign name="def:CharacterContent" fore="#C"/>
+
+ <assign name="def:Comment" fore="#8"/>
+ <assign name="def:CommentContent" fore="#3"/>
+ <assign name="def:CommentEdge" fore="#3"/>
+ <assign name="def:CommentDoc" fore="#3"/>
+ <assign name="def:CommentDocContent" fore="#8"/>
+ <assign name="def:CommentDocEdge" fore="#8"/>
+
+ <assign name="def:Symbol" fore="#F"/>
+ <assign name="def:SymbolStrong" fore="#C"/>
+ <assign name="def:Prefix" fore="#2"/>
+ <assign name="def:PrefixStrong" fore="#E"/>
+
+ <assign name="def:Keyword" fore="#F"/>
+ <assign name="def:TypeKeyword" fore="#C"/>
+
+ <assign name="def:Function"/>
+ <assign name="def:Register" fore="#E"/>
+ <assign name="def:Constant" fore="#E"/>
+ <assign name="def:BooleanConstant" fore="#F"/>
+ <assign name="def:Var" fore="#A"/>
+ <assign name="def:VarStrong" fore="#E"/>
+
+ <assign name="def:Directive" fore="#A"/>
+ <assign name="def:Parameter" fore="#A"/>
+
+ <assign name="def:Tag" fore="#3"/>
+ <assign name="def:OpenTag" fore="#2"/>
+ <assign name="def:CloseTag" fore="#2"/>
+
+ <assign name="def:Label" fore="#D"/>
+ <assign name="def:LabelStrong" fore="#8" back="#7"/>
+
+ <assign name="def:Insertion" fore="#7" back="#1"/>
+
+ <assign name="def:Error" fore="#F" back="#4"/>
+ <assign name="def:ErrorText" fore="#D"/>
+
+ <assign name="def:TODO" fore="#E" back="#4"/>
+ <assign name="def:Debug" fore="#E" back="#4"/>
+
+ <assign name="def:URI" fore="#B"/>
+ <assign name="def:EMail" fore="#B"/>
+
+ <assign name="def:Date" fore="#E"/>
+ <assign name="def:Time" fore="#A"/>
+
+ <assign name="def:PairStart" fore="#F"/>
+ <assign name="def:PairEnd" fore="#F"/>
+ <assign name="def:PairStrongStart" fore="#1" back="#3"/>
+ <assign name="def:PairStrongEnd" fore="#1" back="#3"/>
+
+</hrd>


Reply all
Reply to author
Forward
0 new messages