[gtksourceview/wip/chergert/backport-implregex-to-gsv4: 1/2] data: backport language-specs from GSV 5.x
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/chergert/backport-implregex-to-gsv4: 1/2] data: backport language-specs from GSV 5.x
- Date: Mon, 5 Sep 2022 23:12:35 +0000 (UTC)
commit 0dae82fb1e21ce3dd2cf911d5b5e2318688754f8
Author: Christian Hergert <chergert redhat com>
Date: Mon Sep 5 16:01:47 2022 -0700
data: backport language-specs from GSV 5.x
This includes many changes for regexes so that they match what is
expected from newer PCRE implementations.
data/language-specs/awk.lang | 6 +
data/language-specs/c.lang | 15 +-
data/language-specs/chdr.lang | 2 +-
data/language-specs/cpp.lang | 7 +-
data/language-specs/cpphdr.lang | 2 +-
data/language-specs/css.lang | 10 +-
data/language-specs/cuda.lang | 2 +-
data/language-specs/def.lang | 12 +-
data/language-specs/gdscript.lang | 2 +-
data/language-specs/groovy.lang | 6 +-
data/language-specs/html.lang | 4 +-
data/language-specs/j.lang | 2 +-
data/language-specs/javascript-expressions.lang | 6 +-
.../javascript-functions-classes.lang | 2 +-
data/language-specs/javascript-literals.lang | 6 +-
data/language-specs/javascript-modules.lang | 2 +-
data/language-specs/javascript-statements.lang | 2 +-
data/language-specs/javascript-values.lang | 4 +-
data/language-specs/javascript.lang | 10 +-
data/language-specs/jsdoc.lang | 2 +-
data/language-specs/jsx.lang | 2 +-
data/language-specs/lean.lang | 64 +-
data/language-specs/less.lang | 2 +-
data/language-specs/logtalk.lang | 8 +-
data/language-specs/objj.lang | 2 +-
data/language-specs/perl.lang | 6 +-
data/language-specs/php.lang | 6 +-
data/language-specs/powershell.lang | 1020 +++++++++++---------
data/language-specs/python.lang | 2 +-
data/language-specs/python3.lang | 134 ++-
data/language-specs/scss.lang | 2 +-
data/language-specs/twig.lang | 346 +++++++
data/language-specs/typescript-js-expressions.lang | 2 +-
.../typescript-js-functions-classes.lang | 2 +-
data/language-specs/typescript-js-literals.lang | 2 +-
data/language-specs/typescript-js-modules.lang | 2 +-
data/language-specs/typescript-js-statements.lang | 2 +-
data/language-specs/typescript-jsx.lang | 2 +-
.../typescript-type-expressions.lang | 2 +-
data/language-specs/typescript-type-generics.lang | 2 +-
data/language-specs/typescript-type-literals.lang | 2 +-
data/language-specs/typescript.lang | 2 +-
tests/syntax-highlighting/file.awk | 21 +
tests/syntax-highlighting/file.css | 2 +-
tests/syntax-highlighting/file.erb | 2 +-
tests/syntax-highlighting/file.ftl | 2 +-
tests/syntax-highlighting/file.lean | 11 +-
tests/syntax-highlighting/file.less | 2 +-
tests/syntax-highlighting/file.pl | 35 +
tests/syntax-highlighting/file.py3 | 15 +
tests/syntax-highlighting/file.scss | 2 +-
tests/syntax-highlighting/file.svh | 2 +-
tests/syntax-highlighting/file.toml | 2 +-
tests/syntax-highlighting/file.twig | 23 +
54 files changed, 1268 insertions(+), 569 deletions(-)
---
diff --git a/data/language-specs/awk.lang b/data/language-specs/awk.lang
index 9de238d3..f4d88802 100644
--- a/data/language-specs/awk.lang
+++ b/data/language-specs/awk.lang
@@ -32,6 +32,7 @@
<style id="pattern" name="Pattern" map-to="def:preprocessor"/>
<style id="variable" name="Variable" map-to="def:identifier"/>
<style id="builtin-function" name="Builtin Function" map-to="def:builtin"/>
+ <style id="regexpr" name="Regular Expression" map-to="def:string"/>
</styles>
<definitions>
@@ -118,6 +119,10 @@
<match>\$\d+</match>
</context>
+ <context id="regexpr" style-ref="regexpr">
+ <match>/.*/</match>
+ </context>
+
<context id="awk">
<include>
<context ref="def:shebang"/>
@@ -129,6 +134,7 @@
<context ref="field-variable"/>
<context ref="built-in-functions"/>
<context ref="arithmetic-functions"/>
+ <context ref="regexpr"/>
</include>
</context>
diff --git a/data/language-specs/c.lang b/data/language-specs/c.lang
index dc5359c3..d945789c 100644
--- a/data/language-specs/c.lang
+++ b/data/language-specs/c.lang
@@ -232,24 +232,15 @@
<keyword>_Complex</keyword>
<keyword>_Imaginary</keyword>
<keyword>char</keyword>
- <keyword>char(16|32)_t</keyword>
- <keyword>double(_t)?</keyword>
- <keyword>float(_t)?</keyword>
+ <keyword>double</keyword>
+ <keyword>float</keyword>
<keyword>int</keyword>
- <keyword>(u)?int(_least|_fast)?(8|16|32|64)_t</keyword>
- <keyword>(u)?intmax_t</keyword>
- <keyword>(u)?intptr_t</keyword>
<keyword>long</keyword>
- <keyword>ptrdiff_t</keyword>
- <keyword>off(64)?_t</keyword>
<keyword>short</keyword>
<keyword>signed</keyword>
- <keyword>size_t</keyword>
- <keyword>ssize_t</keyword>
<keyword>unsigned</keyword>
<keyword>void</keyword>
- <keyword>wchar_t</keyword>
- <keyword>wint_t</keyword>
+ <keyword>[a-z_][0-9a-z_]+(_t|_T)</keyword>
</context>
<context id="storage-class" style-ref="storage-class">
diff --git a/data/language-specs/chdr.lang b/data/language-specs/chdr.lang
index 1d611743..5d485a33 100644
--- a/data/language-specs/chdr.lang
+++ b/data/language-specs/chdr.lang
@@ -39,7 +39,7 @@
for instance a different style for C++ headers.
-->
<definitions>
- <context id="chdr">
+ <context id="chdr" class="no-spell-check">
<include>
<context ref="objc:objc-header"/>
<context ref="cpp:cpp-proper"/>
diff --git a/data/language-specs/cpp.lang b/data/language-specs/cpp.lang
index 8f350c10..d2835c54 100644
--- a/data/language-specs/cpp.lang
+++ b/data/language-specs/cpp.lang
@@ -35,6 +35,7 @@
<style id="raw-string" name="Raw String" map-to="def:string"/>
<style id="keyword" name="Keyword" map-to="c:keyword"/>
<style id="type" name="Data Type" map-to="c:type"/>
+ <style id="nullptr" name="Null Pointer Value" map-to="def:special-constant"/>
<style id="common-defines" name="Common Defines" map-to="c:common-defines"/>
</styles>
@@ -73,7 +74,6 @@
<keyword>noexcept</keyword>
<keyword>not</keyword>
<keyword>not_eq</keyword>
- <keyword>nullptr</keyword>
<keyword>operator</keyword>
<keyword>or</keyword>
<keyword>or_eq</keyword>
@@ -104,7 +104,10 @@
<context id="types" style-ref="type">
<keyword>explicit</keyword>
<keyword>mutable</keyword>
- <keyword>nullptr_t</keyword>
+ </context>
+
+ <context id="nullptr" style-ref="nullptr">
+ <keyword>nullptr</keyword>
</context>
<context id="common-defines" style-ref="common-defines">
diff --git a/data/language-specs/cpphdr.lang b/data/language-specs/cpphdr.lang
index 519846b3..232e2f5b 100644
--- a/data/language-specs/cpphdr.lang
+++ b/data/language-specs/cpphdr.lang
@@ -31,7 +31,7 @@
</metadata>
<definitions>
- <context id="cpphdr">
+ <context id="cpphdr" class="no-spell-check">
<include>
<context ref="cpp:cpp-proper"/>
<context ref="c:c"/>
diff --git a/data/language-specs/css.lang b/data/language-specs/css.lang
index 7d49cfbc..e9c9369d 100644
--- a/data/language-specs/css.lang
+++ b/data/language-specs/css.lang
@@ -97,7 +97,7 @@
<default-regex-options case-sensitive="false"/>
<!-- from keyword-code-point -->
-
<keyword-char-class>[^\x{0}-\x{2C}\x{2E}\x{2F}\x{3A}-\x{40}\x{5B}\x{5D}\x{5E}\x{60}\x{7B}-\x{7F}]</keyword-char-class>
+
<keyword-char-class>[^\N{U+0}-\N{U+2C}\N{U+2E}\N{U+2F}\N{U+3A}-\N{U+40}\N{U+5B}\N{U+5D}\N{U+5E}\N{U+60}\N{U+7B}-\N{U+7F}]</keyword-char-class>
<definitions>
@@ -136,7 +136,7 @@
U+0080- Non-ASCII
-->
<define-regex id="identifier-start-code-point" extended="true">
- [^\x{0}-\x{40}\x{5B}-\x{5E}\x{60}\x{7B}-\x{7F}]
+ [^\N{U+0}-\N{U+40}\N{U+5B}-\N{U+5E}\N{U+60}\N{U+7B}-\N{U+7F}]
</define-regex>
<!--
@@ -151,7 +151,7 @@
U+0080- Non-ASCII
-->
<define-regex id="identifier-code-point" extended="true">
- [^\x{0}-\x{2C}\x{2E}\x{2F}\x{3A}-\x{40}\x{5B}-\x{5E}\x{60}\x{7B}-\x{7F}]
+ [^\N{U+0}-\N{U+2C}\N{U+2E}\N{U+2F}\N{U+3A}-\N{U+40}\N{U+5B}-\N{U+5E}\N{U+60}\N{U+7B}-\N{U+7F}]
</define-regex>
<!--
@@ -165,7 +165,7 @@
U+0080- Non-ASCII
-->
<define-regex id="identifier-prefix-code-point" extended="true">
- [^\x{0}-\x{2F}\x{3A}-\x{40}\x{5B}-\x{5E}\x{60}\x{7B}-\x{7F}]
+ [^\N{U+0}-\N{U+2F}\N{U+3A}-\N{U+40}\N{U+5B}-\N{U+5E}\N{U+60}\N{U+7B}-\N{U+7F}]
</define-regex>
<!--
@@ -181,7 +181,7 @@
U+0080- Non-ASCII
-->
<define-regex id="keyword-code-point" extended="true">
- [^\x{0}-\x{2C}\x{2E}\x{2F}\x{3A}-\x{40}\x{5B}\x{5D}\x{5E}\x{60}\x{7B}-\x{7F}]
+ [^\N{U+0}-\N{U+2C}\N{U+2E}\N{U+2F}\N{U+3A}-\N{U+40}\N{U+5B}\N{U+5D}\N{U+5E}\N{U+60}\N{U+7B}-\N{U+7F}]
</define-regex>
<!--
diff --git a/data/language-specs/cuda.lang b/data/language-specs/cuda.lang
index b74d1313..16721f3d 100644
--- a/data/language-specs/cuda.lang
+++ b/data/language-specs/cuda.lang
@@ -84,7 +84,7 @@
<keyword>threadIdx</keyword>
</context>
- <context id="kernel-call" style-ref="def:string">
+ <context id="kernel-call">
<start><<<</start>
<end>>>></end>
</context>
diff --git a/data/language-specs/def.lang b/data/language-specs/def.lang
index 4a07444c..ebe1d183 100644
--- a/data/language-specs/def.lang
+++ b/data/language-specs/def.lang
@@ -30,7 +30,7 @@
A style scheme has to at least define the style
for the first item of each group and if desired
define the style for the other items to achieve a
- more finegrained control on the apperance.
+ more finegrained control on the appearance.
Finally a style scheme may also define language
specific styles. -->
@@ -125,7 +125,7 @@
<style id="preprocessor" name="Preprocessor directive"/>
<!-- Any erroneous construct -->
<style id="error" name="Error"/>
- <!-- to mark possibily errors or unrecommended syntax -->
+ <!-- to mark possibly errors or unrecommended syntax -->
<style id="warning" name="Warning"/>
<!--Reserved keywords: like "const" and "goto" in Java -->
<style id="reserved" name="Reserved keyword" map-to="def:error" />
@@ -165,17 +165,17 @@
ID_Start and ID_Continue
-->
<define-regex id="unicode-id-start" extended="true">
- (?!\x{2E2F}) [\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}]
+ (?!\N{U+2E2F}) [\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}]
</define-regex>
<define-regex id="unicode-id-continue" extended="true">
- (?!\x{2E2F})
[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}]
+ (?!\N{U+2E2F})
[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}]
</define-regex>
<define-regex id="unicode-xid-start" extended="true">
-
(?![\x{037A}\x{0E33}\x{0EB3}\x{309B}-\x{309C}\x{FC5E}-\x{FC63}\x{FDFA}-\x{FDFB}\x{FE70}\x{FE72}\x{FE74}\x{FE76}\x{FE78}\x{FE7A}\x{FE7C}\x{FE7E}\x{FF9E}-\x{FF9F}])
+
(?![\N{U+037A}\N{U+0E33}\N{U+0EB3}\N{U+309B}-\N{U+309C}\N{U+FC5E}-\N{U+FC63}\N{U+FDFA}-\N{U+FDFB}\N{U+FE70}\N{U+FE72}\N{U+FE74}\N{U+FE76}\N{U+FE78}\N{U+FE7A}\N{U+FE7C}\N{U+FE7E}\N{U+FF9E}-\N{U+FF9F}])
\%{unicode-id-start}
</define-regex>
<define-regex id="unicode-xid-continue" extended="true">
-
(?![\x{037A}\x{309B}-\x{309C}\x{FC5E}-\x{FC63}\x{FDFA}-\x{FDFB}\x{FE70}\x{FE72}\x{FE74}\x{FE76}\x{FE78}\x{FE7A}\x{FE7C}\x{FE7E}])
+
(?![\N{U+037A}\N{U+309B}-\N{U+309C}\N{U+FC5E}-\N{U+FC63}\N{U+FDFA}-\N{U+FDFB}\N{U+FE70}\N{U+FE72}\N{U+FE74}\N{U+FE76}\N{U+FE78}\N{U+FE7A}\N{U+FE7C}\N{U+FE7E}])
\%{unicode-id-continue}
</define-regex>
diff --git a/data/language-specs/gdscript.lang b/data/language-specs/gdscript.lang
index 1933d066..4a02df41 100644
--- a/data/language-specs/gdscript.lang
+++ b/data/language-specs/gdscript.lang
@@ -56,7 +56,7 @@
[#0\-\ \+]* # conversion flags
(\-?\%{number}|\*)? # minimum field width
(\.(\-?\%{number}|\*))? # precision
- (hlL)? # lentgh modifier
+ (hlL)? # length modifier
[diouxXeEfFgGcrs%] # conversion type
</match>
</context>
diff --git a/data/language-specs/groovy.lang b/data/language-specs/groovy.lang
index 538f4d5c..3e8dfcb9 100644
--- a/data/language-specs/groovy.lang
+++ b/data/language-specs/groovy.lang
@@ -61,7 +61,7 @@
</define-regex>
<define-regex id="letter" extended="true">
- [a-zA-Z\x{c0}-\x{d6}\x{d8}-\x{f6}\x{f8}-\x{ff}\x{100}-\x{fffe}_]
+ [a-zA-Z\N{U+c0}-\N{U+d6}\N{U+d8}-\N{U+f6}\N{U+f8}-\N{U+ff}\N{U+100}-\N{U+fffe}_]
</define-regex>
<context id="escaped-character">
@@ -155,8 +155,8 @@
# we can't have it match an arbitrary amount of whitespace. Thus, we do an approximate
# check, only trying zero and one spaces.
- (?<! \+\+ | -- | [])}'"\$\d] | \%{letter} |
- \+\+\s | --\s | [])}'"\$\d]\s | \%{letter}\s )
+ (?<! \+\+ | -- | [\]\)}'"\$\d] | \%{letter} |
+ \+\+\s | --\s | [\]\)}'"\$\d]\s | \%{letter}\s )
/
</start>
diff --git a/data/language-specs/html.lang b/data/language-specs/html.lang
index effd373b..85c0864a 100644
--- a/data/language-specs/html.lang
+++ b/data/language-specs/html.lang
@@ -267,7 +267,7 @@
</context>
<!-- See https://gitlab.gnome.org/GNOME/gtksourceview/commit/5385eb27720875bc144d54ccbd00d1613c41f7e0 -->
- <define-regex id="attribute-name">[^\x00\t\n\f\r
"'/<=>\x{007F}-\x{009F}\x{FDD0}-\x{FDEF}\x{FFFE}\x{FFFF}\x{1FFFE}\x{1FFFF}\x{2FFFE}\x{2FFFF}\x{3FFFE}\x{3FFFF}\x{4FFFE}\x{4FFFF}\x{5FFFE}\x{5FFFF}\x{6FFFE}\x{6FFFF}\x{7FFFE}\x{7FFFF}\x{8FFFE}\x{8FFFF}\x{9FFFE}\x{9FFFF}\x{AFFFE}\x{AFFFF}\x{BFFFE}\x{BFFFF}\x{CFFFE}\x{CFFFF}\x{DFFFE}\x{DFFFF}\x{EFFFE}\x{EFFFF}\x{FFFFE}\x{FFFFF}\x{10FFFE}\x{10FFFF}]+</define-regex>
+ <define-regex id="attribute-name">[^\N{U+00}\t\n\f\r
"'/<=>\N{U+007F}-\N{U+009F}\N{U+FDD0}-\N{U+FDEF}\N{U+FFFE}\N{U+FFFF}\N{U+1FFFE}\N{U+1FFFF}\N{U+2FFFE}\N{U+2FFFF}\N{U+3FFFE}\N{U+3FFFF}\N{U+4FFFE}\N{U+4FFFF}\N{U+5FFFE}\N{U+5FFFF}\N{U+6FFFE}\N{U+6FFFF}\N{U+7FFFE}\N{U+7FFFF}\N{U+8FFFE}\N{U+8FFFF}\N{U+9FFFE}\N{U+9FFFF}\N{U+AFFFE}\N{U+AFFFF}\N{U+BFFFE}\N{U+BFFFF}\N{U+CFFFE}\N{U+CFFFF}\N{U+DFFFE}\N{U+DFFFF}\N{U+EFFFE}\N{U+EFFFF}\N{U+FFFFE}\N{U+FFFFF}\N{U+10FFFE}\N{U+10FFFF}]+</define-regex>
<context id="generic-tag">
<include>
@@ -382,7 +382,7 @@
<context id="tag" class="no-spell-check">
<!-- See https://gitlab.gnome.org/GNOME/gtksourceview/commit/5385eb27720875bc144d54ccbd00d1613c41f7e0
-->
- <start></?[a-z][^\x00\t\n\f\r
/>\x{007F}-\x{009F}\x{FDD0}-\x{FDEF}\x{FFFE}\x{FFFF}\x{1FFFE}\x{1FFFF}\x{2FFFE}\x{2FFFF}\x{3FFFE}\x{3FFFF}\x{4FFFE}\x{4FFFF}\x{5FFFE}\x{5FFFF}\x{6FFFE}\x{6FFFF}\x{7FFFE}\x{7FFFF}\x{8FFFE}\x{8FFFF}\x{9FFFE}\x{9FFFF}\x{AFFFE}\x{AFFFF}\x{BFFFE}\x{BFFFF}\x{CFFFE}\x{CFFFF}\x{DFFFE}\x{DFFFF}\x{EFFFE}\x{EFFFF}\x{FFFFE}\x{FFFFF}\x{10FFFE}\x{10FFFF}]*</start>
+ <start></?[a-z][^\N{U+00}\t\n\f\r
/>\N{U+007F}-\N{U+009F}\N{U+FDD0}-\N{U+FDEF}\N{U+FFFE}\N{U+FFFF}\N{U+1FFFE}\N{U+1FFFF}\N{U+2FFFE}\N{U+2FFFF}\N{U+3FFFE}\N{U+3FFFF}\N{U+4FFFE}\N{U+4FFFF}\N{U+5FFFE}\N{U+5FFFF}\N{U+6FFFE}\N{U+6FFFF}\N{U+7FFFE}\N{U+7FFFF}\N{U+8FFFE}\N{U+8FFFF}\N{U+9FFFE}\N{U+9FFFF}\N{U+AFFFE}\N{U+AFFFF}\N{U+BFFFE}\N{U+BFFFF}\N{U+CFFFE}\N{U+CFFFF}\N{U+DFFFE}\N{U+DFFFF}\N{U+EFFFE}\N{U+EFFFF}\N{U+FFFFE}\N{U+FFFFF}\N{U+10FFFE}\N{U+10FFFF}]*</start>
<end>/?></end>
<include>
<context sub-pattern="0" where="start" style-ref="tag"/>
diff --git a/data/language-specs/j.lang b/data/language-specs/j.lang
index 44d3b5e8..34c8910d 100644
--- a/data/language-specs/j.lang
+++ b/data/language-specs/j.lang
@@ -189,7 +189,7 @@
<!-- Lab text definition -->
<context id="labtext" style-ref="labtext">
- <start>^\s*[\x{2500}|-]{2,}</start>
+ <start>^\s*[\N{U+2500}|-]{2,}</start>
<end>\%{close-expdef}</end>
</context>
diff --git a/data/language-specs/javascript-expressions.lang b/data/language-specs/javascript-expressions.lang
index 3b3cc350..9025ab9b 100644
--- a/data/language-specs/javascript-expressions.lang
+++ b/data/language-specs/javascript-expressions.lang
@@ -26,7 +26,7 @@
-->
<language id="js-expr" name="JavaScript Expressions" version="2.0" _section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
@@ -494,7 +494,7 @@
<context id="_async-keywords" style-ref="js:keyword">
<match extended="true">
\%{js:async-keyword}
- # preceeds arrow function
+ # precedes arrow function
(?=
\%{js:optional-whitespace-or-comments}
(?:
@@ -502,7 +502,7 @@
\( # can this be better?
)
)
- # does not preceed "function" (leave to function expression)
+ # does not precede "function" (leave to function expression)
(?! \%{js:optional-whitespace-or-comments} \%{js:function-keyword} )
</match>
</context> <!-- /_async-keywords -->
diff --git a/data/language-specs/javascript-functions-classes.lang
b/data/language-specs/javascript-functions-classes.lang
index 94f872db..5a056bae 100644
--- a/data/language-specs/javascript-functions-classes.lang
+++ b/data/language-specs/javascript-functions-classes.lang
@@ -26,7 +26,7 @@
-->
<language id="js-fn" name="JavaScript Functions and Classes" version="2.0" _section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/javascript-literals.lang b/data/language-specs/javascript-literals.lang
index bccbbc9c..8e69ac74 100644
--- a/data/language-specs/javascript-literals.lang
+++ b/data/language-specs/javascript-literals.lang
@@ -26,7 +26,7 @@
-->
<language id="js-lit" name="JavaScript Literals" version="2.0" _section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
@@ -142,7 +142,7 @@
<context id="_escapes">
<include>
- <!-- Annex B: <LegacyOctalEscapeSequence> (preceeded by
+ <!-- Annex B: <LegacyOctalEscapeSequence> (preceded by
backslash) -->
<context id="_legacy-octal-escape-sequences" style-ref="js:escape">
<match extended="true">
@@ -155,7 +155,7 @@
</match>
</context> <!-- /_legacy-octal-escape-sequences -->
- <!-- <EscapeSequence> (preceeded by backslash) -->
+ <!-- <EscapeSequence> (preceded by backslash) -->
<context id="_escape-sequences" style-ref="js:escape">
<match extended="true">
\%{js:unicode-escape} |
diff --git a/data/language-specs/javascript-modules.lang b/data/language-specs/javascript-modules.lang
index df5a37c2..5a8802c3 100644
--- a/data/language-specs/javascript-modules.lang
+++ b/data/language-specs/javascript-modules.lang
@@ -26,7 +26,7 @@
-->
<language id="js-mod" name="JavaScript Modules" version="2.0" _section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/javascript-statements.lang b/data/language-specs/javascript-statements.lang
index ab0359f4..b9c48af4 100644
--- a/data/language-specs/javascript-statements.lang
+++ b/data/language-specs/javascript-statements.lang
@@ -26,7 +26,7 @@
-->
<language id="js-st" name="JavaScript Statements" version="2.0" _section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/javascript-values.lang b/data/language-specs/javascript-values.lang
index a5af679b..ea57f633 100644
--- a/data/language-specs/javascript-values.lang
+++ b/data/language-specs/javascript-values.lang
@@ -26,7 +26,7 @@
-->
<language id="js-val" name="JavaScript Built-in Values" version="2.0" _section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
@@ -43,7 +43,7 @@
<!--
There was a long discussion on ##javascript on freenode between
'katspaugh', 'joo' and 'prog_' on whether 'undefined' should be
- highlighted on not, specialy as a constant. The conclusion was "It can't
+ highlighted on not, specially as a constant. The conclusion was "It can't
be highlighted as a constant literal value, because it can be an
identifier (of a variable value) but leave it be as it is. Let tradition
and convention obscure the details."
diff --git a/data/language-specs/javascript.lang b/data/language-specs/javascript.lang
index ecbfed1a..a3cc2d35 100644
--- a/data/language-specs/javascript.lang
+++ b/data/language-specs/javascript.lang
@@ -120,7 +120,7 @@
</styles>
<!-- from identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
@@ -167,7 +167,7 @@
Naming convention for contexts:
* Prefixes:
* "_" (underscore): "Private" to one or more "public"
- contexts (can still be overriden by child languages)
+ contexts (can still be overridden by child languages)
* "ordered-": Wrapper for another context so that it can only
match in a referenced position (has once-only="true")
* "last-": An "ordered-" wrapper with end-parent="true",
@@ -205,7 +205,7 @@
U+200D Zero-width joiner <ZWJ>
-->
<define-regex id="identifier-char" extended="true">
- \%{def:unicode-id-continue} | [$\x{200C}\x{200D}]
+ \%{def:unicode-id-continue} | [$\N{U+200C}\N{U+200D}]
</define-regex> <!-- /identifier-char -->
<!-- <IdentifierPart> -->
@@ -244,7 +244,7 @@
Zs Space_Separator category <USP>
-->
<define-regex id="whitespace" extended="true">
- [\t\x{000B}\f \x{00A0}\x{FEFF}\p{Zs}]
+ [\t\N{U+000B}\f \N{U+00A0}\N{U+FEFF}\p{Zs}]
</define-regex> <!-- /whitespace -->
<!-- includes characters from <LineTerminator>,
@@ -257,7 +257,7 @@
U+2029 Paragraph separator <PS>
-->
<define-regex id="not-whitespace" extended="true">
- [^\t\x{000B}\f \x{00A0}\x{FEFF}\p{Zs}\n\r\x{2028}\x{2029}]
+ [^\t\N{U+000B}\f \N{U+00A0}\N{U+FEFF}\p{Zs}\n\r\N{U+2028}\N{U+2029}]
</define-regex> <!-- /not-whitespace -->
<define-regex id="before-next-token" extended="true">
diff --git a/data/language-specs/jsdoc.lang b/data/language-specs/jsdoc.lang
index 9b011b26..bad98882 100644
--- a/data/language-specs/jsdoc.lang
+++ b/data/language-specs/jsdoc.lang
@@ -35,7 +35,7 @@
</styles>
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/jsx.lang b/data/language-specs/jsx.lang
index b493ce52..5c5a8cb9 100644
--- a/data/language-specs/jsx.lang
+++ b/data/language-specs/jsx.lang
@@ -37,7 +37,7 @@
</styles>
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/lean.lang b/data/language-specs/lean.lang
index 2cb0e051..3fac5b49 100644
--- a/data/language-specs/lean.lang
+++ b/data/language-specs/lean.lang
@@ -4,7 +4,7 @@
This file is part of GtkSourceView
Authors: Elias Aebi
- Copyright (C) 2021 Elias Aebi
+ Copyright (C) 2021-2022 Elias Aebi
GtkSourceView is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -31,6 +31,7 @@
<styles>
<style id="comment" name="Comment" map-to="def:comment"/>
+ <style id="attribute" name="Attribute" map-to="def:preprocessor"/>
<style id="command" name="Command" map-to="def:preprocessor"/>
<style id="keyword" name="Keyword" map-to="def:keyword"/>
<style id="string" name="String" map-to="def:string"/>
@@ -38,6 +39,7 @@
<style id="escaped-character" name="Escaped Character" map-to="def:special-char"/>
<style id="numeric" name="Numeric" map-to="def:number"/>
<style id="boolean" name="Boolean" map-to="def:boolean"/>
+ <style id="identifier" name="Identifier"/>
</styles>
<definitions>
@@ -57,27 +59,38 @@
</include>
</context>
+ <context id="attribute" style-ref="attribute">
+ <start>@\[</start>
+ <end>\]</end>
+ <include>
+ <context ref="lean"/>
+ </include>
+ </context>
+
<context id="command" style-ref="command">
<match extended="true">
- ^\s*\#(
+ \#(?:
check(_failure)?
| eval
| print
| reduce
- )
+ )\b
</match>
</context>
<context id="keyword" style-ref="keyword">
+ <keyword>abbrev</keyword>
<keyword>axiom</keyword>
<keyword>break</keyword>
<keyword>class</keyword>
<keyword>continue</keyword>
<keyword>def</keyword>
+ <keyword>deriving</keyword>
<keyword>do</keyword>
<keyword>else</keyword>
<keyword>end</keyword>
<keyword>example</keyword>
+ <keyword>extends</keyword>
<keyword>for</keyword>
<keyword>fun</keyword>
<keyword>if</keyword>
@@ -88,7 +101,10 @@
<keyword>match</keyword>
<keyword>mut</keyword>
<keyword>namespace</keyword>
+ <keyword>opaque</keyword>
<keyword>open</keyword>
+ <keyword>partial</keyword>
+ <keyword>rec</keyword>
<keyword>return</keyword>
<keyword>section</keyword>
<keyword>structure</keyword>
@@ -101,24 +117,24 @@
<keyword>λ</keyword>
</context>
- <define-regex id="string-escape" extended="true">
- \\(
- \\
- | \"
- | \'
- | n
- | t
- | x[0-9a-fA-F]{2}
- )
- </define-regex>
+ <context id="escaped-character" style-ref="escaped-character">
+ <match extended="true">
+ \\(?:
+ \\
+ | \"
+ | \'
+ | n
+ | t
+ | x[0-9a-fA-F]{2}
+ )
+ </match>
+ </context>
<context id="string" style-ref="string" end-at-line-end="true" class="string"
class-disabled="no-spell-check">
<start>"</start>
<end>"</end>
<include>
- <context style-ref="escaped-character">
- <match>\%{string-escape}</match>
- </context>
+ <context ref="escaped-character"/>
</include>
</context>
@@ -126,15 +142,13 @@
<start>'</start>
<end>'</end>
<include>
- <context style-ref="escaped-character">
- <match>\%{string-escape}</match>
- </context>
+ <context ref="escaped-character"/>
</include>
</context>
<context id="numeric" style-ref="numeric">
<match extended="true">
- 0[bB][0-1]+
+ 0[bB][01]+
| 0[oO][0-7]+
| 0[xX][0-9a-fA-F]+
| [0-9]+
@@ -146,16 +160,26 @@
<keyword>false</keyword>
</context>
+ <context id="identifier" style-ref="identifier">
+ <match extended="true">
+ (?![λΠΣ])[a-zA-Zα-ωΑ-Ωἀ-῾ϊ-ϻ℀-⅏_]
+ (?:(?![λΠΣ])[a-zA-Zα-ωΑ-Ωἀ-῾ϊ-ϻ℀-⅏_0-9'ⁿ₀-₉ₐ-ₜᵢ-ᵪ])*
+ | «[^«»\r\n\t]*»
+ </match>
+ </context>
+
<context id="lean" class="no-spell-check">
<include>
<context ref="line-comment"/>
<context ref="block-comment"/>
+ <context ref="attribute"/>
<context ref="command"/>
<context ref="keyword"/>
<context ref="string"/>
<context ref="character"/>
<context ref="numeric"/>
<context ref="boolean"/>
+ <context ref="identifier"/>
</include>
</context>
diff --git a/data/language-specs/less.lang b/data/language-specs/less.lang
index 3fdb955a..7509ddbb 100644
--- a/data/language-specs/less.lang
+++ b/data/language-specs/less.lang
@@ -56,7 +56,7 @@
<default-regex-options case-sensitive="false"/>
<!-- from css:keyword-code-point -->
-
<keyword-char-class>[^\x{0}-\x{2C}\x{2E}\x{2F}\x{3A}-\x{40}\x{5B}\x{5D}\x{5E}\x{60}\x{7B}-\x{7F}]</keyword-char-class>
+
<keyword-char-class>[^\N{U+0}-\N{U+2C}\N{U+2E}\N{U+2F}\N{U+3A}-\N{U+40}\N{U+5B}\N{U+5D}\N{U+5E}\N{U+60}\N{U+7B}-\N{U+7F}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/logtalk.lang b/data/language-specs/logtalk.lang
index d6f16dc2..aa33e97f 100644
--- a/data/language-specs/logtalk.lang
+++ b/data/language-specs/logtalk.lang
@@ -204,7 +204,7 @@
<keyword>(copy_term)(?=[(])</keyword>
<keyword>(numbervars)(?=[(])</keyword>
<keyword>(term_variables)(?=[(])</keyword>
- <!-- Arithemtic evaluation -->
+ <!-- Arithmetic evaluation -->
<keyword>is</keyword>
<!-- Evaluable functors -->
<keyword>e</keyword>
@@ -222,7 +222,7 @@
<keyword>(truncate)(?=[(])</keyword>
<keyword>(round)(?=[(])</keyword>
<keyword>(ceiling)(?=[(])</keyword>
- <!-- Other arithemtic functors -->
+ <!-- Other arithmetic functors -->
<keyword>(sin)(?=[(])</keyword>
<keyword>(cos)(?=[(])</keyword>
<keyword>(tan)(?=[(])</keyword>
@@ -285,7 +285,7 @@
<keyword>@></keyword>
<!-- Term creation and decomposition -->
<keyword>=\.\.</keyword>
- <!-- Arithemtic comparison -->
+ <!-- Arithmetic comparison -->
<keyword>=:=</keyword>
<keyword>=\\=</keyword>
<keyword><</keyword>
@@ -298,7 +298,7 @@
<keyword>\*</keyword>
<keyword>//</keyword>
<keyword>/</keyword>
- <!-- Other arithemtic functors -->
+ <!-- Other arithmetic functors -->
<keyword>\*\*</keyword>
<!-- Bitwise functors -->
<keyword>>></keyword>
diff --git a/data/language-specs/objj.lang b/data/language-specs/objj.lang
index 7b4cb79f..505552ca 100644
--- a/data/language-specs/objj.lang
+++ b/data/language-specs/objj.lang
@@ -37,7 +37,7 @@
</styles>
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/perl.lang b/data/language-specs/perl.lang
index 5acb65a7..4b38ec4b 100644
--- a/data/language-specs/perl.lang
+++ b/data/language-specs/perl.lang
@@ -165,7 +165,7 @@ FIXME: =pod should require an empty line before/after, as written in perlpod
</define-regex>
<!-- this assertion is shared by all the regex contexts to avoid wrong
- highlighing of function calls, etc.
+ highlighting of function calls, etc.
\b can't be used because of $var, @var, &func, %func. -->
<!-- FIXME I added { and ( to the list to fix #507075 and #535703. Someone
please look at it, it seems wrong. It probably should be a positive
@@ -1022,7 +1022,7 @@ FIXME: =pod should require an empty line before/after, as written in perlpod
</context>
<context id="pod" style-ref="pod" class-disabled="no-spell-check">
- <start>^(?=(=[a-z]))</start>
+ <start>^(?=(=(?!end))[a-z])</start>
<end>^=(cut)$</end>
<include>
<context sub-pattern="1" where="end" style-ref="pod-keyword"/>
@@ -1033,7 +1033,7 @@ FIXME: =pod should require an empty line before/after, as written in perlpod
</context>
<context>
<start>^=(begin)\s+(.*)$</start>
- <end>^=(end)\s+\%{1@start}$</end>
+ <end>^=(end)\s+\%{2@start}$</end>
<include>
<context sub-pattern="1" where="start" style-ref="pod-keyword"/>
<context sub-pattern="1" where="end" style-ref="pod-keyword"/>
diff --git a/data/language-specs/php.lang b/data/language-specs/php.lang
index 15b3008f..5d9e6fee 100644
--- a/data/language-specs/php.lang
+++ b/data/language-specs/php.lang
@@ -58,7 +58,7 @@
<definitions>
- <define-regex id="identifier">[a-zA-Z_\x{80}-\x{10ffff}][a-zA-Z0-9_\x{80}-\x{10ffff}]*</define-regex>
+ <define-regex
id="identifier">[a-zA-Z_\N{U+80}-\N{U+10ffff}][a-zA-Z0-9_\N{U+80}-\N{U+10ffff}]*</define-regex>
<context id="bash-line-comment" style-ref="comment" end-at-line-end="true" extend-parent="false"
class="comment" class-disabled="no-spell-check">
<start>#</start>
@@ -264,11 +264,15 @@
<keyword>floatval</keyword>
<keyword>gettype</keyword>
<keyword>intval</keyword>
+ <keyword>json_decode</keyword>
+ <keyword>json_encode</keyword>
<keyword>print_r</keyword>
<keyword>serialize</keyword>
<keyword>settype</keyword>
<keyword>str_contains</keyword>
<keyword>str_replace</keyword>
+ <keyword>str_starts_with</keyword>
+ <keyword>str_ends_with</keyword>
<keyword>strip_tags</keyword>
<keyword>strpos</keyword>
<keyword>strval</keyword>
diff --git a/data/language-specs/powershell.lang b/data/language-specs/powershell.lang
index 283ed8e5..0dca47c9 100644
--- a/data/language-specs/powershell.lang
+++ b/data/language-specs/powershell.lang
@@ -76,73 +76,76 @@
</context>
<context id="keywords" style-ref="keyword">
- <keyword>begin</keyword>
- <keyword>break</keyword>
- <keyword>case</keyword>
- <keyword>Continue</keyword>
+ <keyword>Begin</keyword>
+ <keyword>Break</keyword>
<keyword>Catch</keyword>
+ <keyword>Class</keyword>
+ <keyword>Continue</keyword>
+ <keyword>Data</keyword>
<keyword>Default</keyword>
<keyword>Do</keyword>
+ <keyword>DynamicParam</keyword>
<keyword>Else</keyword>
<keyword>Elseif</keyword>
<keyword>End</keyword>
+ <keyword>Enum</keyword>
<keyword>Exit</keyword>
<keyword>Filter</keyword>
+ <keyword>Finally</keyword>
<keyword>For</keyword>
<keyword>Foreach</keyword>
<keyword>Function</keyword>
- <keyword>Finally</keyword>
+ <keyword>Hidden</keyword>
<keyword>If</keyword>
<keyword>In</keyword>
+ <keyword>Parallel</keyword>
<keyword>Param</keyword>
+ <keyword>Parameter</keyword>
<keyword>Process</keyword>
<keyword>Prompt</keyword>
- <keyword>Parameter</keyword>
<keyword>Return</keyword>
<keyword>Switch</keyword>
- <keyword>Then</keyword>
<keyword>Throw</keyword>
<keyword>Trap</keyword>
<keyword>Try</keyword>
<keyword>Until</keyword>
+ <keyword>Using</keyword>
<keyword>While</keyword>
<keyword>Workflow</keyword>
- <keyword>Parallel</keyword>
</context>
<context id="Function-Param" style-ref="function-param">
- <keyword>DefaultParameterSetName</keyword>
- <keyword>ConfirmImpact</keyword>
- <keyword>SupportsShouldProcess</keyword>
- <keyword>CmdletBinding</keyword>
- <keyword>Mandatory</keyword>
- <keyword>Position</keyword>
- <keyword>ParameterSetName</keyword>
- <keyword>ValueFromPipeline</keyword>
- <keyword>ValueFromPipelineByPropertyName</keyword>
- <keyword>ValueFromPipelineByPropertyName</keyword>
- <keyword>Alias</keyword>
- <keyword>AllowNull</keyword>
- <keyword>AllowEmptyString</keyword>
- <keyword>AllowEmptyCollection</keyword>
- <keyword>ValidateCount</keyword>
- <keyword>ValidateSet</keyword>
- <keyword>ValidatePattern</keyword>
- <keyword>ValidateRange</keyword>
- <keyword>ValidateScript</keyword>
- <keyword>ValidateNotNull</keyword>
- <keyword>ValidateNotNullOrEmpty</keyword>
+ <keyword>Alias</keyword>
+ <keyword>AllowEmptyCollection</keyword>
+ <keyword>AllowEmptyString</keyword>
+ <keyword>AllowNull</keyword>
+ <keyword>CmdletBinding</keyword>
+ <keyword>ConfirmImpact</keyword>
+ <keyword>DefaultParameterSetName</keyword>
+ <keyword>Mandatory</keyword>
+ <keyword>ParameterSetName</keyword>
+ <keyword>Position</keyword>
+ <keyword>SupportsShouldProcess</keyword>
+ <keyword>ValidateCount</keyword>
+ <keyword>ValidateNotNull</keyword>
+ <keyword>ValidateNotNullOrEmpty</keyword>
+ <keyword>ValidatePattern</keyword>
+ <keyword>ValidateRange</keyword>
+ <keyword>ValidateScript</keyword>
+ <keyword>ValidateSet</keyword>
+ <keyword>ValueFromPipeline</keyword>
+ <keyword>ValueFromPipelineByPropertyName</keyword>
</context>
<define-regex id="operator" extended="true">
- \-
- ( b?and | b?not | b?or | b?xor | (I|C)?eq | (I|C)?ge | (I|C)?gt |
+ \-
+ ( b?and | b?not | b?or | b?xor | (I|C)?eq | (I|C)?ge | (I|C)?gt |
(I|C)?le | (I|C)?lt | (I|C)?ne |
(I|C)?(not)?contains | (I|C)?(not)?like | (I|C)?(not)?match | (I|C)?replace |
- shr | shl | (not)?in | # add in powershell 3.0
- (not)?is | as
- )
- \b
+ shr | shl | (not)?in |
+ is(not)? | as
+ )
+ \b
</define-regex>
<context id="operator" style-ref="operator">
@@ -162,431 +165,559 @@
</context>
<define-regex id="variable" extended="true">
- \$
- ([scriptglobacve]{5,7}:)? #script:, global:, local:, private:
- [a-z0-9_]+
- \b
+ \$
+ ([scriptglobacve]{5,7}:)? #script:, global:, local:, private:
+ [a-z0-9_]+
+ \b
</define-regex>
<!-- FixMe $? isn't correct displayed -->
<context id="Variable" style-ref="variable">
- <match>\%{variable}</match>
+ <match>\%{variable}</match>
</context>
<context id="BuiltIn-Function" style-ref="builtin-function">
- <keyword>Add-Computer</keyword>
- <keyword>Add-Content</keyword>
- <keyword>Add-History</keyword>
- <keyword>Add-Member</keyword>
- <keyword>Add-PSSnapin</keyword>
- <keyword>Add-Type</keyword>
- <keyword>Checkpoint-Computer</keyword>
- <keyword>Clear-Content</keyword>
- <keyword>Clear-EventLog</keyword>
- <keyword>Clear-History</keyword>
- <keyword>Clear-Item</keyword>
- <keyword>Clear-ItemProperty</keyword>
- <keyword>Clear-Variable</keyword>
- <keyword>Compare-Object</keyword>
- <keyword>Complete-Transaction</keyword>
- <keyword>Connect-WSMan</keyword>
- <keyword>Convert-Path</keyword>
- <keyword>ConvertFrom-CSV</keyword>
- <keyword>ConvertFrom-SecureString</keyword>
- <keyword>ConvertFrom-StringData</keyword>
- <keyword>ConvertTo-CSV</keyword>
- <keyword>ConvertTo-Html</keyword>
- <keyword>ConvertTo-SecureString</keyword>
- <keyword>ConvertTo-XML</keyword>
- <keyword>Copy-Item</keyword>
- <keyword>Copy-ItemProperty</keyword>
- <keyword>Debug-Process</keyword>
- <keyword>Disable-ComputerRestore</keyword>
- <keyword>Disable-PSBreakpoint</keyword>
- <keyword>Disable-PSSessionConfiguration</keyword>
- <keyword>Disable-WSManCredSSP</keyword>
- <keyword>Disconnect-WSMan</keyword>
- <keyword>Enable-ComputerRestore</keyword>
- <keyword>Enable-PSBreakpoint</keyword>
- <keyword>Enable-PSRemoting</keyword>
- <keyword>Enable-PSSessionConfiguration</keyword>
- <keyword>Enable-WSManCredSSP</keyword>
- <keyword>Enter-PSSession</keyword>
- <keyword>Exit-PSSession</keyword>
- <keyword>Export-Alias</keyword>
- <keyword>Export-CSV</keyword>
- <keyword>Export-Clixml</keyword>
- <keyword>Export-Console</keyword>
- <keyword>Export-Counter</keyword>
- <keyword>Export-FormatData</keyword>
- <keyword>Export-ModuleMember</keyword>
- <keyword>Export-PSSession</keyword>
- <keyword>ForEach-Object</keyword>
- <keyword>Format-Custom</keyword>
- <keyword>Format-List</keyword>
- <keyword>Format-Table</keyword>
- <keyword>Format-Wide</keyword>
- <keyword>Get-Acl</keyword>
- <keyword>Get-Alias</keyword>
- <keyword>Get-AuthenticodeSignature</keyword>
- <keyword>Get-ChildItem</keyword>
- <keyword>Get-Command</keyword>
- <keyword>Get-ComputerRestorePoint</keyword>
- <keyword>Get-Content</keyword>
- <keyword>Get-Counter</keyword>
- <keyword>Get-Credential</keyword>
- <keyword>Get-Culture</keyword>
- <keyword>Get-Date</keyword>
- <keyword>Get-Event</keyword>
- <keyword>Get-EventLog</keyword>
- <keyword>Get-EventSubscriber</keyword>
- <keyword>Get-ExecutionPolicy</keyword>
- <keyword>Get-FormatData</keyword>
- <keyword>Get-Help</keyword>
- <keyword>Get-History</keyword>
- <keyword>Get-Host</keyword>
- <keyword>Get-HotFix</keyword>
- <keyword>Get-Item</keyword>
- <keyword>Get-ItemProperty</keyword>
- <keyword>Get-Job</keyword>
- <keyword>Get-Location</keyword>
- <keyword>Get-Member</keyword>
- <keyword>Get-Module</keyword>
- <keyword>Get-PSBreakpoint</keyword>
- <keyword>Get-PSCallStack</keyword>
- <keyword>Get-PSDrive</keyword>
- <keyword>Get-PSProvider</keyword>
- <keyword>Get-PSSession</keyword>
- <keyword>Get-PSSessionConfiguration</keyword>
- <keyword>Get-PSSnapin</keyword>
- <keyword>Get-PfxCertificate</keyword>
- <keyword>Get-Process</keyword>
- <keyword>Get-Random</keyword>
- <keyword>Get-Service</keyword>
- <keyword>Get-TraceSource</keyword>
- <keyword>Get-Transaction</keyword>
- <keyword>Get-UICulture</keyword>
- <keyword>Get-Unique</keyword>
- <keyword>Get-Variable</keyword>
- <keyword>Get-WSManCredSSP</keyword>
- <keyword>Get-WSManInstance</keyword>
- <keyword>Get-WinEvent</keyword>
- <keyword>Get-WmiObject</keyword>
- <keyword>Group-Object</keyword>
- <keyword>Get-Services</keyword>
- <keyword>Import-Alias</keyword>
- <keyword>Import-CSV</keyword>
- <keyword>Import-Clixml</keyword>
- <keyword>Import-Counter</keyword>
- <keyword>Import-LocalizedData</keyword>
- <keyword>Import-Module</keyword>
- <keyword>Import-PSSession</keyword>
- <keyword>Invoke-Command</keyword>
- <keyword>Invoke-Expression</keyword>
- <keyword>Invoke-History</keyword>
- <keyword>Invoke-Item</keyword>
- <keyword>Invoke-WSManAction</keyword>
- <keyword>Invoke-WmiMethod</keyword>
- <keyword>Join-Path</keyword>
- <keyword>Limit-EventLog</keyword>
- <keyword>Measure-Command</keyword>
- <keyword>Measure-Object</keyword>
- <keyword>Move-Item</keyword>
- <keyword>Move-ItemProperty</keyword>
- <keyword>New-Alias</keyword>
- <keyword>New-Event</keyword>
- <keyword>New-EventLog</keyword>
- <keyword>New-Item</keyword>
- <keyword>New-ItemProperty</keyword>
- <keyword>New-Module</keyword>
- <keyword>New-ModuleManifest</keyword>
- <keyword>New-Object</keyword>
- <keyword>New-PSDrive</keyword>
- <keyword>New-PSSession</keyword>
- <keyword>New-PSSessionOption</keyword>
- <keyword>New-Service</keyword>
- <keyword>New-TimeSpan</keyword>
- <keyword>New-Variable</keyword>
- <keyword>New-WSManInstance</keyword>
- <keyword>New-WSManSessionOption</keyword>
- <keyword>New-WebServiceProxy</keyword>
- <keyword>Out-Default</keyword>
- <keyword>Out-File</keyword>
- <keyword>Out-GridView</keyword>
- <keyword>Out-Host</keyword>
- <keyword>Out-Null</keyword>
- <keyword>Out-Printer</keyword>
- <keyword>Out-String</keyword>
- <keyword>Pop-Location</keyword>
- <keyword>Push-Location</keyword>
- <keyword>Read-Host</keyword>
- <keyword>Receive-Job</keyword>
- <keyword>Register-EngineEvent</keyword>
- <keyword>Register-ObjectEvent</keyword>
- <keyword>Register-PSSessionConfiguration</keyword>
- <keyword>Register-WmiEvent</keyword>
- <keyword>Remove-Computer</keyword>
- <keyword>Remove-Event</keyword>
- <keyword>Remove-EventLog</keyword>
- <keyword>Remove-Item</keyword>
- <keyword>Remove-ItemProperty</keyword>
- <keyword>Remove-Job</keyword>
- <keyword>Remove-Module</keyword>
- <keyword>Remove-PSBreakpoint</keyword>
- <keyword>Remove-PSDrive</keyword>
- <keyword>Remove-PSSession</keyword>
- <keyword>Remove-PSSnapin</keyword>
- <keyword>Remove-Variable</keyword>
- <keyword>Remove-WSManInstance</keyword>
- <keyword>Remove-WmiObject</keyword>
- <keyword>Rename-Item</keyword>
- <keyword>Rename-ItemProperty</keyword>
- <keyword>Reset-ComputerMachinePassword</keyword>
- <keyword>Resolve-Path</keyword>
- <keyword>Restart-Computer</keyword>
- <keyword>Restart-Service</keyword>
- <keyword>Restore-Computer</keyword>
- <keyword>Resume-Service</keyword>
- <keyword>Select-Object</keyword>
- <keyword>Select-String</keyword>
- <keyword>Select-XML</keyword>
- <keyword>Send-MailMessage</keyword>
- <keyword>Set-Acl</keyword>
- <keyword>Set-Alias</keyword>
- <keyword>Set-AuthenticodeSignature</keyword>
- <keyword>Set-Content</keyword>
- <keyword>Set-Date</keyword>
- <keyword>Set-ExecutionPolicy</keyword>
- <keyword>Set-Item</keyword>
- <keyword>Set-ItemProperty</keyword>
- <keyword>Set-Location</keyword>
- <keyword>Set-PSBreakpoint</keyword>
- <keyword>Set-PSDebug</keyword>
- <keyword>Set-PSSessionConfiguration</keyword>
- <keyword>Set-Service</keyword>
- <keyword>Set-StrictMode</keyword>
- <keyword>Set-TraceSource</keyword>
- <keyword>Set-Variable</keyword>
- <keyword>Set-WSManInstance</keyword>
- <keyword>Set-WSManQuickConfig</keyword>
- <keyword>Set-WmiInstance</keyword>
- <keyword>Show-EventLog</keyword>
- <keyword>Sort-Object</keyword>
- <keyword>Split-Path</keyword>
- <keyword>Start-Job</keyword>
- <keyword>Start-Process</keyword>
- <keyword>Start-Service</keyword>
- <keyword>Start-Sleep</keyword>
- <keyword>Start-Transaction</keyword>
- <keyword>Start-Transcript</keyword>
- <keyword>Stop-Computer</keyword>
- <keyword>Stop-Job</keyword>
- <keyword>Stop-Process</keyword>
- <keyword>Stop-Service</keyword>
- <keyword>Stop-Transcript</keyword>
- <keyword>Suspend-Service</keyword>
- <keyword>Tee-Object</keyword>
- <keyword>Test-ComputerSecureChannel</keyword>
- <keyword>Test-Connection</keyword>
- <keyword>Test-ModuleManifest</keyword>
- <keyword>Test-Path</keyword>
- <keyword>Test-WSMan</keyword>
- <keyword>Trace-Command</keyword>
- <keyword>Undo-Transaction</keyword>
- <keyword>Unregister-Event</keyword>
- <keyword>Unregister-PSSessionConfiguration</keyword>
- <keyword>Update-FormatData</keyword>
- <keyword>Update-List</keyword>
- <keyword>Update-TypeData</keyword>
- <keyword>Use-Transaction</keyword>
- <keyword>Wait-Event</keyword>
- <keyword>Wait-Job</keyword>
- <keyword>Wait-Process</keyword>
- <keyword>Where-Object</keyword>
- <keyword>Write-Debug</keyword>
- <keyword>Write-Error</keyword>
- <keyword>Write-EventLog</keyword>
- <keyword>Write-Host</keyword>
- <keyword>Write-Output</keyword>
- <keyword>Write-Progress</keyword>
- <keyword>Write-Verbose</keyword>
- <keyword>Write-Warning</keyword>
+ <keyword>Add-Computer</keyword>
+ <keyword>Add-Content</keyword>
+ <keyword>Add-History</keyword>
+ <keyword>Add-Member</keyword>
+ <keyword>Add-PSSnapin</keyword>
+ <keyword>Add-Type</keyword>
+ <keyword>Checkpoint-Computer</keyword>
+ <keyword>Clear-Content</keyword>
+ <keyword>Clear-EventLog</keyword>
+ <keyword>Clear-History</keyword>
+ <keyword>Clear-Host</keyword>
+ <keyword>Clear-Item</keyword>
+ <keyword>Clear-ItemProperty</keyword>
+ <keyword>Clear-RecycleBin</keyword>
+ <keyword>Clear-Variable</keyword>
+ <keyword>Compare-Object</keyword>
+ <keyword>Complete-Transaction</keyword>
+ <keyword>Compress-Archive</keyword>
+ <keyword>Connect-PSSession</keyword>
+ <keyword>Connect-WSMan</keyword>
+ <keyword>Convert-Path</keyword>
+ <keyword>ConvertFrom-CSV</keyword>
+ <keyword>ConvertFrom-Json</keyword>
+ <keyword>ConvertFrom-Markdown</keyword>
+ <keyword>ConvertFrom-SecureString</keyword>
+ <keyword>ConvertFrom-StringData</keyword>
+ <keyword>ConvertTo-CSV</keyword>
+ <keyword>ConvertTo-Html</keyword>
+ <keyword>ConvertTo-Json</keyword>
+ <keyword>ConvertTo-SecureString</keyword>
+ <keyword>ConvertTo-XML</keyword>
+ <keyword>Copy-Item</keyword>
+ <keyword>Copy-ItemProperty</keyword>
+ <keyword>Debug-Job</keyword>
+ <keyword>Debug-Process</keyword>
+ <keyword>Debug-Runspace</keyword>
+ <keyword>Disable-ComputerRestore</keyword>
+ <keyword>Disable-ExperimentalFeature</keyword>
+ <keyword>Disable-PSBreakpoint</keyword>
+ <keyword>Disable-PSSessionConfiguration</keyword>
+ <keyword>Disable-RunspaceDebug</keyword>
+ <keyword>Disable-WSManCredSSP</keyword>
+ <keyword>Disconnect-PSSession</keyword>
+ <keyword>Disconnect-WSMan</keyword>
+ <keyword>Enable-ComputerRestore</keyword>
+ <keyword>Enable-ExperimentalFeature</keyword>
+ <keyword>Enable-PSBreakpoint</keyword>
+ <keyword>Enable-PSRemoting</keyword>
+ <keyword>Enable-PSSessionConfiguration</keyword>
+ <keyword>Enable-RunspaceDebug</keyword>
+ <keyword>Enable-WSManCredSSP</keyword>
+ <keyword>Enter-PSHostProcess</keyword>
+ <keyword>Enter-PSSession</keyword>
+ <keyword>Exit-PSHostProcess</keyword>
+ <keyword>Exit-PSSession</keyword>
+ <keyword>Expand-Archive</keyword>
+ <keyword>Export-Alias</keyword>
+ <keyword>Export-Clixml</keyword>
+ <keyword>Export-Console</keyword>
+ <keyword>Export-Counter</keyword>
+ <keyword>Export-CSV</keyword>
+ <keyword>Export-FormatData</keyword>
+ <keyword>Export-ModuleMember</keyword>
+ <keyword>Export-PSSession</keyword>
+ <keyword>Find-Command</keyword>
+ <keyword>Find-DSCResource</keyword>
+ <keyword>Find-Module</keyword>
+ <keyword>Find-Package</keyword>
+ <keyword>Find-PackageProvider</keyword>
+ <keyword>Find-RoleCapability</keyword>
+ <keyword>Find-Script</keyword>
+ <keyword>ForEach-Object</keyword>
+ <keyword>Format-Custom</keyword>
+ <keyword>Format-Hex</keyword>
+ <keyword>Format-List</keyword>
+ <keyword>Format-Table</keyword>
+ <keyword>Format-Wide</keyword>
+ <keyword>Get-Acl</keyword>
+ <keyword>Get-Alias</keyword>
+ <keyword>Get-AuthenticodeSignature</keyword>
+ <keyword>Get-ChildItem</keyword>
+ <keyword>Get-Clipboard</keyword>
+ <keyword>Get-Command</keyword>
+ <keyword>Get-ComputerInfo</keyword>
+ <keyword>Get-ComputerRestorePoint</keyword>
+ <keyword>Get-Content</keyword>
+ <keyword>Get-Counter</keyword>
+ <keyword>Get-Credential</keyword>
+ <keyword>Get-CredsFromCredentialProvider</keyword>
+ <keyword>Get-Culture</keyword>
+ <keyword>Get-Date</keyword>
+ <keyword>Get-DscResource</keyword>
+ <keyword>Get-Error</keyword>
+ <keyword>Get-Event</keyword>
+ <keyword>Get-EventLog</keyword>
+ <keyword>Get-EventSubscriber</keyword>
+ <keyword>Get-ExecutionPolicy</keyword>
+ <keyword>Get-ExperimentalFeature</keyword>
+ <keyword>Get-FileHash</keyword>
+ <keyword>Get-FormatData</keyword>
+ <keyword>Get-Help</keyword>
+ <keyword>Get-History</keyword>
+ <keyword>Get-Host</keyword>
+ <keyword>Get-HotFix</keyword>
+ <keyword>Get-InstalledModule</keyword>
+ <keyword>Get-InstalledScript</keyword>
+ <keyword>Get-Item</keyword>
+ <keyword>Get-ItemProperty</keyword>
+ <keyword>Get-ItemPropertyValue</keyword>
+ <keyword>Get-Job</keyword>
+ <keyword>Get-Location</keyword>
+ <keyword>Get-MarkdownOption</keyword>
+ <keyword>Get-Member</keyword>
+ <keyword>Get-Module</keyword>
+ <keyword>Get-Package</keyword>
+ <keyword>Get-PackageProvider</keyword>
+ <keyword>Get-PackageSource</keyword>
+ <keyword>Get-PfxCertificate</keyword>
+ <keyword>Get-Process</keyword>
+ <keyword>Get-PSBreakpoint</keyword>
+ <keyword>Get-PSCallStack</keyword>
+ <keyword>Get-PSDrive</keyword>
+ <keyword>Get-PSHostProcessInfo</keyword>
+ <keyword>Get-PSProvider</keyword>
+ <keyword>Get-PSReadLineKeyHandler</keyword>
+ <keyword>Get-PSReadLineOption</keyword>
+ <keyword>Get-PSRepository</keyword>
+ <keyword>Get-PSSession</keyword>
+ <keyword>Get-PSSessionConfiguration</keyword>
+ <keyword>Get-PSSnapin</keyword>
+ <keyword>Get-Random</keyword>
+ <keyword>Get-Runspace</keyword>
+ <keyword>Get-RunspaceDebug</keyword>
+ <keyword>Get-Service</keyword>
+ <keyword>Get-Services</keyword>
+ <keyword>Get-TimeZone</keyword>
+ <keyword>Get-TraceSource</keyword>
+ <keyword>Get-Transaction</keyword>
+ <keyword>Get-TypeData</keyword>
+ <keyword>Get-UICulture</keyword>
+ <keyword>Get-Unique</keyword>
+ <keyword>Get-Uptime</keyword>
+ <keyword>Get-Variable</keyword>
+ <keyword>Get-Verb</keyword>
+ <keyword>Get-WinEvent</keyword>
+ <keyword>Get-WmiObject</keyword>
+ <keyword>Get-WSManCredSSP</keyword>
+ <keyword>Get-WSManInstance</keyword>
+ <keyword>Group-Object</keyword>
+ <keyword>Import-Alias</keyword>
+ <keyword>Import-Clixml</keyword>
+ <keyword>Import-Counter</keyword>
+ <keyword>Import-CSV</keyword>
+ <keyword>Import-LocalizedData</keyword>
+ <keyword>Import-Module</keyword>
+ <keyword>Import-PackageProvider</keyword>
+ <keyword>Import-PowerShellDataFile</keyword>
+ <keyword>Import-PSSession</keyword>
+ <keyword>Install-Module</keyword>
+ <keyword>Install-Package</keyword>
+ <keyword>Install-PackageProvider</keyword>
+ <keyword>Install-Script</keyword>
+ <keyword>Invoke-Command</keyword>
+ <keyword>Invoke-DscResource</keyword>
+ <keyword>Invoke-Expression</keyword>
+ <keyword>Invoke-History</keyword>
+ <keyword>Invoke-Item</keyword>
+ <keyword>Invoke-RestMethod</keyword>
+ <keyword>Invoke-WebRequest</keyword>
+ <keyword>Invoke-WmiMethod</keyword>
+ <keyword>Invoke-WSManAction</keyword>
+ <keyword>Join-Path</keyword>
+ <keyword>Join-String</keyword>
+ <keyword>Limit-EventLog</keyword>
+ <keyword>Measure-Command</keyword>
+ <keyword>Measure-Object</keyword>
+ <keyword>Move-Item</keyword>
+ <keyword>Move-ItemProperty</keyword>
+ <keyword>New-Alias</keyword>
+ <keyword>New-DscChecksum</keyword>
+ <keyword>New-Event</keyword>
+ <keyword>New-EventLog</keyword>
+ <keyword>New-Guid</keyword>
+ <keyword>New-Item</keyword>
+ <keyword>New-ItemProperty</keyword>
+ <keyword>New-Module</keyword>
+ <keyword>New-ModuleManifest</keyword>
+ <keyword>New-Object</keyword>
+ <keyword>New-PSDrive</keyword>
+ <keyword>New-PSRoleCapabilityFile</keyword>
+ <keyword>New-PSSession</keyword>
+ <keyword>New-PSSessionOption</keyword>
+ <keyword>New-PSTransportOption</keyword>
+ <keyword>New-ScriptFileInfo</keyword>
+ <keyword>New-Service</keyword>
+ <keyword>New-TemporaryFile</keyword>
+ <keyword>New-TimeSpan</keyword>
+ <keyword>New-Variable</keyword>
+ <keyword>New-WebServiceProxy</keyword>
+ <keyword>New-WSManInstance</keyword>
+ <keyword>New-WSManSessionOption</keyword>
+ <keyword>Out-Default</keyword>
+ <keyword>Out-File</keyword>
+ <keyword>Out-GridView</keyword>
+ <keyword>Out-Host</keyword>
+ <keyword>Out-Null</keyword>
+ <keyword>Out-Printer</keyword>
+ <keyword>Out-String</keyword>
+ <keyword>Pop-Location</keyword>
+ <keyword>Publish-Module</keyword>
+ <keyword>Publish-Script</keyword>
+ <keyword>Push-Location</keyword>
+ <keyword>Read-Host</keyword>
+ <keyword>Receive-Job</keyword>
+ <keyword>Receive-PSSession</keyword>
+ <keyword>Register-ArgumentCompleter</keyword>
+ <keyword>Register-EngineEvent</keyword>
+ <keyword>Register-ObjectEvent</keyword>
+ <keyword>Register-PackageSource</keyword>
+ <keyword>Register-PSRepository</keyword>
+ <keyword>Register-PSSessionConfiguration</keyword>
+ <keyword>Register-WmiEvent</keyword>
+ <keyword>Remove-Alias</keyword>
+ <keyword>Remove-Computer</keyword>
+ <keyword>Remove-Event</keyword>
+ <keyword>Remove-EventLog</keyword>
+ <keyword>Remove-Item</keyword>
+ <keyword>Remove-ItemProperty</keyword>
+ <keyword>Remove-Job</keyword>
+ <keyword>Remove-Module</keyword>
+ <keyword>Remove-PSBreakpoint</keyword>
+ <keyword>Remove-PSDrive</keyword>
+ <keyword>Remove-PSReadLineKeyHandler</keyword>
+ <keyword>Remove-PSSession</keyword>
+ <keyword>Remove-PSSnapin</keyword>
+ <keyword>Remove-Service</keyword>
+ <keyword>Remove-TypeData</keyword>
+ <keyword>Remove-Variable</keyword>
+ <keyword>Remove-WmiObject</keyword>
+ <keyword>Remove-WSManInstance</keyword>
+ <keyword>Rename-Item</keyword>
+ <keyword>Rename-ItemProperty</keyword>
+ <keyword>Reset-ComputerMachinePassword</keyword>
+ <keyword>Resolve-Path</keyword>
+ <keyword>Restart-Computer</keyword>
+ <keyword>Restart-Service</keyword>
+ <keyword>Restore-Computer</keyword>
+ <keyword>Resume-Service</keyword>
+ <keyword>Save-Help</keyword>
+ <keyword>Save-Module</keyword>
+ <keyword>Save-Package</keyword>
+ <keyword>Save-Script</keyword>
+ <keyword>Select-Object</keyword>
+ <keyword>Select-String</keyword>
+ <keyword>Select-XML</keyword>
+ <keyword>Send-MailMessage</keyword>
+ <keyword>Set-Acl</keyword>
+ <keyword>Set-Alias</keyword>
+ <keyword>Set-AuthenticodeSignature</keyword>
+ <keyword>Set-Clipboard</keyword>
+ <keyword>Set-Content</keyword>
+ <keyword>Set-Date</keyword>
+ <keyword>Set-ExecutionPolicy</keyword>
+ <keyword>Set-Item</keyword>
+ <keyword>Set-ItemProperty</keyword>
+ <keyword>Set-Location</keyword>
+ <keyword>Set-MarkdownOption</keyword>
+ <keyword>Set-PackageSource</keyword>
+ <keyword>Set-PSBreakpoint</keyword>
+ <keyword>Set-PSDebug</keyword>
+ <keyword>Set-PSReadLineKeyHandler</keyword>
+ <keyword>Set-PSReadLineOption</keyword>
+ <keyword>Set-PSRepository</keyword>
+ <keyword>Set-PSSessionConfiguration</keyword>
+ <keyword>Set-Service</keyword>
+ <keyword>Set-StrictMode</keyword>
+ <keyword>Set-TimeZone</keyword>
+ <keyword>Set-TraceSource</keyword>
+ <keyword>Set-Variable</keyword>
+ <keyword>Set-WmiInstance</keyword>
+ <keyword>Set-WSManInstance</keyword>
+ <keyword>Set-WSManQuickConfig</keyword>
+ <keyword>Show-Command</keyword>
+ <keyword>Show-EventLog</keyword>
+ <keyword>Show-Markdown</keyword>
+ <keyword>Sort-Object</keyword>
+ <keyword>Split-Path</keyword>
+ <keyword>Start-Job</keyword>
+ <keyword>Start-Process</keyword>
+ <keyword>Start-Service</keyword>
+ <keyword>Start-Sleep</keyword>
+ <keyword>Start-ThreadJob</keyword>
+ <keyword>Start-Transaction</keyword>
+ <keyword>Start-Transcript</keyword>
+ <keyword>Stop-Computer</keyword>
+ <keyword>Stop-Job</keyword>
+ <keyword>Stop-Process</keyword>
+ <keyword>Stop-Service</keyword>
+ <keyword>Stop-Transcript</keyword>
+ <keyword>Suspend-Service</keyword>
+ <keyword>Tee-Object</keyword>
+ <keyword>Test-ComputerSecureChannel</keyword>
+ <keyword>Test-Connection</keyword>
+ <keyword>Test-Json</keyword>
+ <keyword>Test-ModuleManifest</keyword>
+ <keyword>Test-Path</keyword>
+ <keyword>Test-ScriptFileInfo</keyword>
+ <keyword>Test-WSMan</keyword>
+ <keyword>Trace-Command</keyword>
+ <keyword>Unblock-File</keyword>
+ <keyword>Undo-Transaction</keyword>
+ <keyword>Uninstall-Module</keyword>
+ <keyword>Uninstall-Package</keyword>
+ <keyword>Uninstall-Script</keyword>
+ <keyword>Unregister-Event</keyword>
+ <keyword>Unregister-PackageSource</keyword>
+ <keyword>Unregister-PSRepository</keyword>
+ <keyword>Unregister-PSSessionConfiguration</keyword>
+ <keyword>Update-FormatData</keyword>
+ <keyword>Update-Help</keyword>
+ <keyword>Update-List</keyword>
+ <keyword>Update-Module</keyword>
+ <keyword>Update-ModuleManifest</keyword>
+ <keyword>Update-Script</keyword>
+ <keyword>Update-ScriptFileInfo</keyword>
+ <keyword>Update-TypeData</keyword>
+ <keyword>Use-Transaction</keyword>
+ <keyword>Wait-Debugger</keyword>
+ <keyword>Wait-Event</keyword>
+ <keyword>Wait-Job</keyword>
+ <keyword>Wait-Process</keyword>
+ <keyword>Where-Object</keyword>
+ <keyword>Write-Debug</keyword>
+ <keyword>Write-Error</keyword>
+ <keyword>Write-EventLog</keyword>
+ <keyword>Write-Host</keyword>
+ <keyword>Write-Information</keyword>
+ <keyword>Write-Output</keyword>
+ <keyword>Write-Progress</keyword>
+ <keyword>Write-Verbose</keyword>
+ <keyword>Write-Warning</keyword>
</context>
<context id="BuiltIn-Alias" style-ref="builtin-function">
- <keyword>ac</keyword>
- <keyword>asnp</keyword>
- <keyword>cat</keyword>
- <keyword>cd</keyword>
- <keyword>chdir</keyword>
- <keyword>clc</keyword>
- <keyword>clear</keyword>
- <keyword>clhy</keyword>
- <keyword>cli</keyword>
- <keyword>clp</keyword>
- <keyword>cls</keyword>
- <keyword>clv</keyword>
- <keyword>compare</keyword>
- <keyword>copy</keyword>
- <keyword>cp</keyword>
- <keyword>cpi</keyword>
- <keyword>cpp</keyword>
- <keyword>cvpa</keyword>
- <keyword>dbp</keyword>
- <keyword>del</keyword>
- <keyword>diff</keyword>
- <keyword>dir</keyword>
- <keyword>ebp</keyword>
- <keyword>echo</keyword>
- <keyword>epal</keyword>
- <keyword>epcsv</keyword>
- <keyword>epsn</keyword>
- <keyword>erase</keyword>
- <keyword>etsn</keyword>
- <keyword>exsn</keyword>
- <keyword>fc</keyword>
- <keyword>fl</keyword>
- <keyword>foreach</keyword>
- <keyword>ft</keyword>
- <keyword>fw</keyword>
- <keyword>gal</keyword>
- <keyword>gbp</keyword>
- <keyword>gc</keyword>
- <keyword>gci</keyword>
- <keyword>gcm</keyword>
- <keyword>gcs</keyword>
- <keyword>gdr</keyword>
- <keyword>ghy</keyword>
- <keyword>gi</keyword>
- <keyword>gjb</keyword>
- <keyword>gl</keyword>
- <keyword>gm</keyword>
- <keyword>gmo</keyword>
- <keyword>gp</keyword>
- <keyword>gps</keyword>
- <keyword>group</keyword>
- <keyword>gsn</keyword>
- <keyword>gsnp</keyword>
- <keyword>gsv</keyword>
- <keyword>gu</keyword>
- <keyword>gv</keyword>
- <keyword>gwmi</keyword>
- <keyword>h</keyword>
- <keyword>history</keyword>
- <keyword>icm</keyword>
- <keyword>iex</keyword>
- <keyword>ihy</keyword>
- <keyword>ii</keyword>
- <keyword>ipal</keyword>
- <keyword>ipcsv</keyword>
- <keyword>ipmo</keyword>
- <keyword>ipsn</keyword>
- <keyword>ise</keyword>
- <keyword>iwmi</keyword>
- <keyword>kill</keyword>
- <keyword>lp</keyword>
- <keyword>ls</keyword>
- <keyword>man</keyword>
- <keyword>md</keyword>
- <keyword>measure</keyword>
- <keyword>mi</keyword>
- <keyword>mount</keyword>
- <keyword>move</keyword>
- <keyword>mp</keyword>
- <keyword>mv</keyword>
- <keyword>nal</keyword>
- <keyword>ndr</keyword>
- <keyword>ni</keyword>
- <keyword>nmo</keyword>
- <keyword>nsn</keyword>
- <keyword>nv</keyword>
- <keyword>ogv</keyword>
- <keyword>oh</keyword>
- <keyword>popd</keyword>
- <keyword>ps</keyword>
- <keyword>pushd</keyword>
- <keyword>pwd</keyword>
- <keyword>r</keyword>
- <keyword>rbp</keyword>
- <keyword>rcjb</keyword>
- <keyword>rd</keyword>
- <keyword>rdr</keyword>
- <keyword>ren</keyword>
- <keyword>ri</keyword>
- <keyword>rjb</keyword>
- <keyword>rm</keyword>
- <keyword>rmdir</keyword>
- <keyword>rmo</keyword>
- <keyword>rni</keyword>
- <keyword>rnp</keyword>
- <keyword>rp</keyword>
- <keyword>rsn</keyword>
- <keyword>rsnp</keyword>
- <keyword>rv</keyword>
- <keyword>rvpa</keyword>
- <keyword>rwmi</keyword>
- <keyword>sajb</keyword>
- <keyword>sal</keyword>
- <keyword>saps</keyword>
- <keyword>sasv</keyword>
- <keyword>sbp</keyword>
- <keyword>sc</keyword>
- <keyword>select</keyword>
- <keyword>set</keyword>
- <keyword>si</keyword>
- <keyword>sl</keyword>
- <keyword>sleep</keyword>
- <keyword>sort</keyword>
- <keyword>sp</keyword>
- <keyword>spjb</keyword>
- <keyword>spps</keyword>
- <keyword>spsv</keyword>
- <keyword>start</keyword>
- <keyword>sv</keyword>
- <keyword>swmi</keyword>
- <keyword>tee</keyword>
- <keyword>type</keyword>
- <keyword>where</keyword>
- <keyword>wjb</keyword>
- <keyword>write</keyword>
+ <keyword>ac</keyword>
+ <keyword>asnp</keyword>
+ <keyword>cat</keyword>
+ <keyword>cd</keyword>
+ <keyword>chdir</keyword>
+ <keyword>clc</keyword>
+ <keyword>clear</keyword>
+ <keyword>clhy</keyword>
+ <keyword>cli</keyword>
+ <keyword>clp</keyword>
+ <keyword>cls</keyword>
+ <keyword>clv</keyword>
+ <keyword>cnsn</keyword>
+ <keyword>compare</keyword>
+ <keyword>copy</keyword>
+ <keyword>cp</keyword>
+ <keyword>cpi</keyword>
+ <keyword>cpp</keyword>
+ <keyword>cvpa</keyword>
+ <keyword>dbp</keyword>
+ <keyword>del</keyword>
+ <keyword>diff</keyword>
+ <keyword>dir</keyword>
+ <keyword>dnsn</keyword>
+ <keyword>ebp</keyword>
+ <keyword>echo</keyword>
+ <keyword>epal</keyword>
+ <keyword>epcsv</keyword>
+ <keyword>epsn</keyword>
+ <keyword>erase</keyword>
+ <keyword>etsn</keyword>
+ <keyword>exsn</keyword>
+ <keyword>fc</keyword>
+ <keyword>fhx</keyword>
+ <keyword>fl</keyword>
+ <keyword>foreach</keyword>
+ <keyword>ft</keyword>
+ <keyword>fw</keyword>
+ <keyword>gal</keyword>
+ <keyword>gbp</keyword>
+ <keyword>gc</keyword>
+ <keyword>gcb</keyword>
+ <keyword>gci</keyword>
+ <keyword>gcm</keyword>
+ <keyword>gcs</keyword>
+ <keyword>gdr</keyword>
+ <keyword>gerr</keyword>
+ <keyword>ghy</keyword>
+ <keyword>gi</keyword>
+ <keyword>gin</keyword>
+ <keyword>gjb</keyword>
+ <keyword>gl</keyword>
+ <keyword>gm</keyword>
+ <keyword>gmo</keyword>
+ <keyword>gp</keyword>
+ <keyword>gps</keyword>
+ <keyword>gpv</keyword>
+ <keyword>group</keyword>
+ <keyword>gsn</keyword>
+ <keyword>gsnp</keyword>
+ <keyword>gsv</keyword>
+ <keyword>gtz</keyword>
+ <keyword>gu</keyword>
+ <keyword>gv</keyword>
+ <keyword>gwmi</keyword>
+ <keyword>h</keyword>
+ <keyword>history</keyword>
+ <keyword>icm</keyword>
+ <keyword>iex</keyword>
+ <keyword>ihy</keyword>
+ <keyword>ii</keyword>
+ <keyword>ipal</keyword>
+ <keyword>ipcsv</keyword>
+ <keyword>ipmo</keyword>
+ <keyword>ipsn</keyword>
+ <keyword>irm</keyword>
+ <keyword>ise</keyword>
+ <keyword>iwmi</keyword>
+ <keyword>iwr</keyword>
+ <keyword>kill</keyword>
+ <keyword>lp</keyword>
+ <keyword>ls</keyword>
+ <keyword>man</keyword>
+ <keyword>md</keyword>
+ <keyword>measure</keyword>
+ <keyword>mi</keyword>
+ <keyword>mount</keyword>
+ <keyword>move</keyword>
+ <keyword>mp</keyword>
+ <keyword>mv</keyword>
+ <keyword>nal</keyword>
+ <keyword>ndr</keyword>
+ <keyword>ni</keyword>
+ <keyword>nmo</keyword>
+ <keyword>nsn</keyword>
+ <keyword>nv</keyword>
+ <keyword>ogv</keyword>
+ <keyword>oh</keyword>
+ <keyword>popd</keyword>
+ <keyword>ps</keyword>
+ <keyword>pushd</keyword>
+ <keyword>pwd</keyword>
+ <keyword>r</keyword>
+ <keyword>rbp</keyword>
+ <keyword>rcjb</keyword>
+ <keyword>rcsn</keyword>
+ <keyword>rd</keyword>
+ <keyword>rdr</keyword>
+ <keyword>ren</keyword>
+ <keyword>ri</keyword>
+ <keyword>rjb</keyword>
+ <keyword>rm</keyword>
+ <keyword>rmdir</keyword>
+ <keyword>rmo</keyword>
+ <keyword>rni</keyword>
+ <keyword>rnp</keyword>
+ <keyword>rp</keyword>
+ <keyword>rsn</keyword>
+ <keyword>rsnp</keyword>
+ <keyword>rv</keyword>
+ <keyword>rvpa</keyword>
+ <keyword>rwmi</keyword>
+ <keyword>sajb</keyword>
+ <keyword>sal</keyword>
+ <keyword>saps</keyword>
+ <keyword>sasv</keyword>
+ <keyword>sbp</keyword>
+ <keyword>sc</keyword>
+ <keyword>scb</keyword>
+ <keyword>select</keyword>
+ <keyword>set</keyword>
+ <keyword>shcm</keyword>
+ <keyword>si</keyword>
+ <keyword>sl</keyword>
+ <keyword>sleep</keyword>
+ <keyword>sls</keyword>
+ <keyword>sort</keyword>
+ <keyword>sp</keyword>
+ <keyword>spjb</keyword>
+ <keyword>spps</keyword>
+ <keyword>spsv</keyword>
+ <keyword>start</keyword>
+ <keyword>stz</keyword>
+ <keyword>sv</keyword>
+ <keyword>swmi</keyword>
+ <keyword>tee</keyword>
+ <keyword>type</keyword>
+ <keyword>where</keyword>
+ <keyword>wjb</keyword>
+ <keyword>write</keyword>
</context>
<context id="BuiltIn-Parameters" style-ref="builtin-parameters">
- <prefix>\-</prefix>
- <!--in common use-->
- <keyword>ErrorAction</keyword>
- <keyword>ErrorVariable</keyword>
- <keyword>WarningAction</keyword>
- <keyword>WarningVariable</keyword>
- <keyword>Verbose</keyword>
- <keyword>OutVariable</keyword>
- <keyword>OutBuffer</keyword>
- <keyword>Debug</keyword>
- <keyword>PipelineVariable</keyword>
- <!--Other-->
- <keyword>ForegroundColor</keyword>
- <keyword>BackgroundColor</keyword>
- <keyword>TypeName</keyword>
- <keyword>Object</keyword>
- <keyword>ComObject</keyword>
- <keyword>NoNewline</keyword>
- <keyword>Certificate</keyword>
- <keyword>InputObject</keyword>
- <keyword>MemberType</keyword>
- <keyword>Name</keyword>
- <keyword>Value</keyword>
- <keyword>PassThru</keyword>
- <keyword>Version</keyword>
- <keyword>Seconds</keyword>
- <keyword>PassThru</keyword>
+ <prefix>\-</prefix>
+ <!--in common use-->
+ <keyword>Debug</keyword>
+ <keyword>ErrorAction</keyword>
+ <keyword>ErrorVariable</keyword>
+ <keyword>InformationAction</keyword>
+ <keyword>InformationVariable</keyword>
+ <keyword>OutBuffer</keyword>
+ <keyword>OutVariable</keyword>
+ <keyword>PipelineVariable</keyword>
+ <keyword>Verbose</keyword>
+ <keyword>WarningAction</keyword>
+ <keyword>WarningVariable</keyword>
+ <!--Other-->
+ <keyword>BackgroundColor</keyword>
+ <keyword>Certificate</keyword>
+ <keyword>ComObject</keyword>
+ <keyword>Exclude</keyword>
+ <keyword>Force</keyword>
+ <keyword>ForegroundColor</keyword>
+ <keyword>Hours</keyword>
+ <keyword>Include</keyword>
+ <keyword>InputObject</keyword>
+ <keyword>LiteralPath</keyword>
+ <keyword>MemberType</keyword>
+ <keyword>Minutes</keyword>
+ <keyword>Name</keyword>
+ <keyword>NoNewline</keyword>
+ <keyword>Object</keyword>
+ <keyword>PassThru</keyword>
+ <keyword>Path</keyword>
+ <keyword>Property</keyword>
+ <keyword>Seconds</keyword>
+ <keyword>TypeName</keyword>
+ <keyword>Value</keyword>
+ <keyword>Version</keyword>
</context>
<context id="User-Function" style-ref="user-function">
- <match>\b[a-z0-9_-]+\-[a-z0-9_]+\b</match>
+ <match>\b[a-z0-9_-]+\-[a-z0-9_]+\b</match>
</context>
<context id="Number" style-ref="number">
- <match>\b(0x[0-9a-f]+[L]?|[0-9]+(\.[0-9]+)?[d]?)\b</match>
+ <match>\b(0x[0-9a-f]+[L]?|[0-9]+(\.[0-9]+)?[d]?)\b</match>
</context>
<context id="DataTypes" style-ref="datatype">
@@ -594,20 +725,25 @@
<keyword>bool</keyword>
<keyword>byte</keyword>
<keyword>char</keyword>
+ <keyword>datetime</keyword>
<keyword>decimal</keyword>
<keyword>double</keyword>
<keyword>hashtable</keyword>
- <keyword>int</keyword>
<keyword>int32</keyword>
+ <keyword>int</keyword>
<keyword>long</keyword>
+ <keyword>pscustomobject</keyword>
+ <keyword>psobject</keyword>
<keyword>single</keyword>
<keyword>string</keyword>
+ <keyword>timespan</keyword>
<keyword>void</keyword>
<keyword>xml</keyword>
</context>
<context id="powershell" class="no-spell-check">
<include>
+ <!-- Order will affect styling behavior -->
<context ref="line-comment"/>
<context ref="multiline-comment"/>
<context ref="string"/>
diff --git a/data/language-specs/python.lang b/data/language-specs/python.lang
index 4ac0d6be..8fef6606 100644
--- a/data/language-specs/python.lang
+++ b/data/language-specs/python.lang
@@ -72,7 +72,7 @@
[#0\-\ \+]* # conversion flags
(\-?\%{number}|\*)? # minimum field width
(\.(\-?\%{number}|\*))? # precision
- (hlL)? # lentgh modifier
+ (hlL)? # length modifier
[diouxXeEfFgGcrs%] # conversion type
</match>
</context>
diff --git a/data/language-specs/python3.lang b/data/language-specs/python3.lang
index be45a059..a82571aa 100644
--- a/data/language-specs/python3.lang
+++ b/data/language-specs/python3.lang
@@ -28,25 +28,26 @@
</metadata>
<styles>
- <style id="module-handler" name="Module Handler" map-to="python:module-handler"/>
- <style id="keyword" name="Keyword" map-to="python:keyword"/>
- <style id="multiline-string" name="Multiline string" map-to="python:multiline-string"/>
- <style id="string" name="String" map-to="python:string"/>
- <style id="escaped-char" name="Escaped Character" map-to="python:escaped-char"/>
- <style id="format" name="Format" map-to="python:format"/>
- <style id="string-conversion" name="String Conversion" map-to="python:string-conversion"/>
- <style id="special-variable" name="Special Variable" map-to="python:special-variable"/>
- <style id="boolean" name="Boolean" map-to="python:boolean"/>
- <style id="floating-point" name="Floating point number" map-to="python:floating-point"/>
- <style id="decimal" name="Decimal number" map-to="python:decimal"/>
- <style id="base-n-integer" name="Base-N number" map-to="python:base-n-integer"/>
- <style id="complex" name="Complex number" map-to="python:complex"/>
- <style id="builtin-constant" name="Builtin Constant" map-to="python:builtin-constant"/>
- <style id="builtin-object" name="Builtin Object" map-to="python:builtin-object"/>
- <style id="builtin-function" name="Builtin Function" map-to="python:builtin-function"/>
- <style id="function-name" name="Function Name" map-to="python:function-name"/>
- <style id="class-name" name="Class Name" map-to="python:class-name"/>
- <style id="decorator" name="Decorator" map-to="python:decorator"/>
+ <style id="module-handler" name="Module Handler" map-to="python:module-handler"/>
+ <style id="keyword" name="Keyword" map-to="python:keyword"/>
+ <style id="multiline-string" name="Multiline string" map-to="python:multiline-string"/>
+ <style id="string" name="String" map-to="python:string"/>
+ <style id="escaped-char" name="Escaped Character" map-to="python:escaped-char"/>
+ <style id="format" name="Format" map-to="python:format"/>
+ <style id="string-conversion" name="String Conversion" map-to="python:string-conversion"/>
+ <style id="special-variable" name="Special Variable" map-to="python:special-variable"/>
+ <style id="boolean" name="Boolean" map-to="python:boolean"/>
+ <style id="floating-point" name="Floating point number" map-to="python:floating-point"/>
+ <style id="decimal" name="Decimal number" map-to="python:decimal"/>
+ <style id="base-n-integer" name="Base-N number" map-to="python:base-n-integer"/>
+ <style id="complex" name="Complex number" map-to="python:complex"/>
+ <style id="builtin-constant" name="Builtin Constant" map-to="python:builtin-constant"/>
+ <style id="builtin-object" name="Builtin Object" map-to="python:builtin-object"/>
+ <style id="builtin-function" name="Builtin Function" map-to="python:builtin-function"/>
+ <style id="function-name" name="Function Name" map-to="python:function-name"/>
+ <style id="class-name" name="Class Name" map-to="python:class-name"/>
+ <style id="decorator" name="Decorator" map-to="python:decorator"/>
+ <style id="f-string-curly-braces" name="f-string curly braces" map-to="def:special-char"/>
</styles>
<definitions>
@@ -73,13 +74,38 @@
[#0\-\ \+]* # conversion flags
(\-?\%{number}|\*)? # minimum field width
(\.(\-?\%{number}|\*))? # precision
- (hlL)? # lentgh modifier
+ (hlL)? # length modifier
[diouxXeEfFgGcrs%] # conversion type
</match>
</context>
+ <context id="curly-braces" extend-parent="true">
+ <start>\{</start>
+ <end>\}</end>
+ <include>
+ <context ref="python3"/>
+ <context ref="curly-braces"/>
+ </include>
+ </context>
+
+ <context id="f-string-curly-braces" extend-parent="false" class-disabled="string">
+ <start>(\{)</start>
+ <end>(\})</end>
+ <include>
+ <context ref="python3"/>
+ <context ref="curly-braces"/>
+ <context sub-pattern="1" where="start" style-ref="f-string-curly-braces"/>
+ <context sub-pattern="1" where="end" style-ref="f-string-curly-braces"/>
+ </include>
+ </context>
+
+ <context id="escaped-curly-brace" style-ref="escaped-char" extend-parent="true">
+ <match>\{\{</match>
+ </context>
+
<define-regex id="string-prefix">(b|B)?</define-regex>
<define-regex id="raw-string-prefix">(r|R|rb|RB|rB|Rb|br|BR|bR|Br)</define-regex>
+ <define-regex id="f-string-prefix">(f|F)</define-regex>
<context id="multiline-double-quoted-string" style-ref="multiline-string" class="string"
class-disabled="no-spell-check">
<start>\%{string-prefix}"""</start>
@@ -118,6 +144,69 @@
<context ref="def:line-continue"/>
</include>
</context>
+ <context id="multiline-double-quoted-f-string" class="string" class-disabled="no-spell-check">
+ <start>(\%{f-string-prefix}""")</start>
+ <end>(""")</end>
+ <include>
+ <context ref="escaped-curly-brace"/>
+ <context ref="f-string-curly-braces"/>
+ <context ref="python:escaped-char"/>
+ <context ref="def:line-continue"/>
+ <context style-ref="multiline-string" extend-parent="false" class="string">
+ <match>.</match>
+ </context>
+ <context sub-pattern="1" where="start" style-ref="string"/>
+ <context sub-pattern="1" where="end" style-ref="string"/>
+ </include>
+ </context>
+
+ <context id="multiline-single-quoted-f-string" class="string" class-disabled="no-spell-check">
+ <start>(\%{f-string-prefix}''')</start>
+ <end>(''')</end>
+ <include>
+ <context ref="escaped-curly-brace"/>
+ <context ref="f-string-curly-braces"/>
+ <context ref="python:escaped-char"/>
+ <context ref="def:line-continue"/>
+ <context style-ref="multiline-string" extend-parent="false" class="string">
+ <match>.</match>
+ </context>
+ <context sub-pattern="1" where="start" style-ref="string"/>
+ <context sub-pattern="1" where="end" style-ref="string"/>
+ </include>
+ </context>
+
+ <context id="double-quoted-f-string" end-at-line-end="true" class="string"
class-disabled="no-spell-check">
+ <start>(\%{f-string-prefix}")</start>
+ <end>(")</end>
+ <include>
+ <context ref="escaped-curly-brace"/>
+ <context ref="f-string-curly-braces"/>
+ <context ref="python:escaped-char"/>
+ <context ref="def:line-continue"/>
+ <context style-ref="string" extend-parent="false" class="string">
+ <match>.</match>
+ </context>
+ <context sub-pattern="1" where="start" style-ref="string"/>
+ <context sub-pattern="1" where="end" style-ref="string"/>
+ </include>
+ </context>
+
+ <context id="single-quoted-f-string" end-at-line-end="true" class="string"
class-disabled="no-spell-check">
+ <start>(\%{f-string-prefix}')</start>
+ <end>(')</end>
+ <include>
+ <context ref="escaped-curly-brace"/>
+ <context ref="f-string-curly-braces"/>
+ <context ref="python:escaped-char"/>
+ <context ref="def:line-continue"/>
+ <context style-ref="string" extend-parent="false" class="string">
+ <match>.</match>
+ </context>
+ <context sub-pattern="1" where="start" style-ref="string"/>
+ <context sub-pattern="1" where="end" style-ref="string"/>
+ </include>
+ </context>
<context id="multiline-double-quoted-raw-string" style-ref="multiline-string" class="string"
class-disabled="no-spell-check">
<start>\%{raw-string-prefix}"""</start>
@@ -207,6 +296,11 @@
<context ref="double-quoted-string"/>
<context ref="single-quoted-string"/>
+ <context ref="multiline-double-quoted-f-string"/>
+ <context ref="multiline-single-quoted-f-string"/>
+ <context ref="single-quoted-f-string"/>
+ <context ref="double-quoted-f-string"/>
+
<context ref="multiline-double-quoted-raw-string"/>
<context ref="multiline-single-quoted-raw-string"/>
<context ref="double-quoted-raw-string"/>
diff --git a/data/language-specs/scss.lang b/data/language-specs/scss.lang
index 41458eed..acfbafb5 100644
--- a/data/language-specs/scss.lang
+++ b/data/language-specs/scss.lang
@@ -59,7 +59,7 @@
<default-regex-options case-sensitive="false"/>
<!-- from css:keyword-code-point -->
-
<keyword-char-class>[^\x{0}-\x{2C}\x{2E}\x{2F}\x{3A}-\x{40}\x{5B}\x{5D}\x{5E}\x{60}\x{7B}-\x{7F}]</keyword-char-class>
+
<keyword-char-class>[^\N{U+0}-\N{U+2C}\N{U+2E}\N{U+2F}\N{U+3A}-\N{U+40}\N{U+5B}\N{U+5D}\N{U+5E}\N{U+60}\N{U+7B}-\N{U+7F}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/twig.lang b/data/language-specs/twig.lang
new file mode 100644
index 00000000..2f7a8134
--- /dev/null
+++ b/data/language-specs/twig.lang
@@ -0,0 +1,346 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ This file is part of GtkSourceView
+
+ Author: Gerry Demaret <gerry tigron be>
+ Copyright (C) 2022 Gerry Demaret <gerry tigron be>
+
+ GtkSourceView 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.
+
+ GtkSourceView 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 <http://www.gnu.org/licenses/>.
+
+-->
+<language id="twig" name="Twig" version="2.0" _section="Markup">
+ <metadata>
+ <property name="mimetypes">text/x-twig</property>
+ <property name="globs">*.twig</property>
+ <property name="line-comment-start">#</property>
+ <property name="block-comment-start">{#</property>
+ <property name="block-comment-end">#}</property>
+ </metadata>
+
+ <styles>
+ <style id="comment" name="Comment" map-to="def:comment"/>
+ <style id="error" name="Error" map-to="def:error"/>
+ <style id="variable" name="Variable" map-to="def:identifier"/>
+ <style id="escape" name="Escaped Character" map-to="def:special-char"/>
+ <style id="string" name="String" map-to="def:string"/>
+ <style id="here-doc" name="Heredoc" map-to="def:string"/>
+ <style id="here-doc-bound" name="Heredoc Bound" map-to="def:keyword"/>
+ <style id="keyword" name="Keyword" map-to="def:keyword"/>
+ <style id="operator" name="Operator" map-to="def:operator"/>
+ <style id="filters" name="Null Value" map-to="def:boolean"/>
+ <style id="tests" name="tests" map-to="def:boolean"/>
+ <style id="boolean" name="Boolean value" map-to="def:boolean"/>
+ <style id="floating-point" name="Floating point number" map-to="def:floating-point"/>
+ <style id="decimal" name="Decimal number" map-to="def:decimal"/>
+ <style id="octal" name="Octal number" map-to="def:base-n-integer"/>
+ <style id="hexadecimal" name="Hexadecimal number" map-to="def:base-n-integer"/>
+ </styles>
+
+ <definitions>
+ <!-- Html comments are more permissive than xml comments -->
+ <context id="comment" style-ref="comment">
+ <start><!--</start>
+ <end>--\s*></end>
+ <include>
+ <context ref="def:in-comment"/>
+ </include>
+ </context>
+
+ <context id="twig-comment" style-ref="comment">
+ <start>{#</start>
+ <end>#}</end>
+ <include>
+ <context ref="def:in-line-comment"/>
+ </include>
+ </context>
+
+ <context id="close-comment-outside-comment" style-ref="error">
+ <match>#}(?!{#)</match>
+ </context>
+
+ <context id="escape" style-ref="escape">
+ <match>\\((\\|"|n|t|\$|r)|[0-7]{1,3}|x[0-9a-fA-F]{1,2})</match>
+ </context>
+
+ <context id="variable" style-ref="variable">
+ <match>[$]+[a-zA-Z_][a-zA-Z0-9_]*</match>
+ </context>
+
+ <context id="array-operators" style-ref="variable">
+ <match>(\[|\])</match>
+ </context>
+
+ <context id="string-var">
+ <include>
+ <context ref="variable"/>
+ <context id="curly-var" style-ref="variable" >
+ <start>{(?=\$)</start>
+ <end>}</end>
+ <include>
+ <context ref="string-var"/>
+ </include>
+ </context>
+ <context id="backwards-curly-var" style-ref="variable">
+ <start>\${</start>
+ <end>}</end>
+ <include>
+ <context ref="string-var"/>
+ </include>
+ </context>
+ </include>
+ </context>
+
+ <context id="double-quoted-string" style-ref="string">
+ <start>"</start>
+ <end>"</end>
+ <include>
+ <context ref="escape"/>
+ <context ref="string-var"/>
+ <context ref="def:line-continue"/>
+ </include>
+ </context>
+
+ <context id="single-quoted-string" style-ref="string">
+ <start>'</start>
+ <end>'</end>
+ <include>
+ <context style-ref="def:special-char">
+ <match>\\['\\]</match>
+ </context>
+ <context ref="def:line-continue"/>
+ </include>
+ </context>
+
+ <context id="backtick-string" style-ref="string" extend-parent="false">
+ <start>`</start>
+ <end>`</end>
+ <include>
+ <context ref="escape"/>
+ <context ref="def:line-continue"/>
+ </include>
+ </context>
+
+ <context id="here-doc-string" style-ref="here-doc" extend-parent="true">
+ <start>(<<<)\s?([a-zA-Z_][a-zA-Z0-9_]*)</start>
+ <end>^(\%{2@start});?$</end>
+ <include>
+ <context sub-pattern="0" where="start" style-ref="here-doc-bound"/>
+ <context sub-pattern="1" where="end" style-ref="here-doc-bound"/>
+ <context ref="escape"/>
+ <context ref="string-var"/>
+ <context ref="def:line-continue"/>
+ </include>
+ </context>
+
+ <context id="keywords" style-ref="keyword">
+ <keyword>block</keyword>
+ <keyword>endblock</keyword>
+ <keyword>capture</keyword>
+ <keyword>config_load</keyword>
+ <keyword>for</keyword>
+ <keyword>foreach</keyword>
+ <keyword>foreachelse</keyword>
+ <keyword>endfor</keyword>
+ <keyword>if</keyword>
+ <keyword>elseif</keyword>
+ <keyword>endif</keyword>
+ <keyword>extends</keyword>
+ <keyword>ifequal</keyword>
+ <keyword>endifequal</keyword>
+ <keyword>else</keyword>
+ <keyword>include</keyword>
+ <keyword>include_php</keyword>
+ <keyword>insert</keyword>
+ <keyword>ldelim</keyword>
+ <keyword>rdelim</keyword>
+ <keyword>literal</keyword>
+ <keyword>php</keyword>
+ <keyword>section</keyword>
+ <keyword>sectionelse</keyword>
+ <keyword>strip</keyword>
+ <keyword>assign</keyword>
+ <keyword>counter</keyword>
+ <keyword>cycle</keyword>
+ <keyword>range</keyword>
+ <keyword>constant</keyword>
+ <keyword>parent</keyword>
+ <keyword>debug</keyword>
+ <keyword>eval</keyword>
+ <keyword>fetch</keyword>
+ <keyword>html_checkboxes</keyword>
+ <keyword>html_image</keyword>
+ <keyword>html_options</keyword>
+ <keyword>html_radios</keyword>
+ <keyword>html_select_date</keyword>
+ <keyword>html_select_time</keyword>
+ <keyword>html_table</keyword>
+ <keyword>mailto</keyword>
+ <keyword>math</keyword>
+ <keyword>popup</keyword>
+ <keyword>popup_init</keyword>
+ <keyword>textformat</keyword>
+ <keyword>macro</keyword>
+ <keyword>endmacro</keyword>
+ <keyword>in</keyword>
+ <keyword>import</keyword>
+ <keyword>as</keyword>
+ <keyword>filter</keyword>
+ <keyword>endfilter</keyword>
+ <keyword>set</keyword>
+ <keyword>endset</keyword>
+ <keyword>from</keyword>
+ <keyword>not</keyword>
+ <keyword>is</keyword>
+ <keyword>autoescape</keyword>
+ <keyword>endautoescape</keyword>
+ <keyword>use</keyword>
+ <keyword>with</keyword>
+ <keyword>spaceless</keyword>
+ <keyword>endspaceless</keyword>
+ <keyword>raw</keyword>
+ <keyword>endraw</keyword>
+ <keyword>trans</keyword>
+ </context>
+
+ <context id="operators" style-ref="operator" extend-parent="false">
+ <match>[-.~^@,;:/%|\=\+\*\!\?&<>()]</match>
+ </context>
+
+ <context id="filters" style-ref="filters">
+ <prefix>(?i)\b</prefix> <!-- case insensitive -->
+ <keyword>capitalize</keyword>
+ <keyword>cat</keyword>
+ <keyword>count_characters</keyword>
+ <keyword>count_paragraphs</keyword>
+ <keyword>count_sentences</keyword>
+ <keyword>count_words</keyword>
+ <keyword>date</keyword>
+ <keyword>date_format</keyword>
+ <keyword>default</keyword>
+ <keyword>escape</keyword>
+ <keyword>defined</keyword>
+ <keyword>format</keyword>
+ <keyword>indent</keyword>
+ <keyword>join</keyword>
+ <keyword>length</keyword>
+ <keyword>lower</keyword>
+ <keyword>merge</keyword>
+ <keyword>nl2br</keyword>
+ <keyword>regex_replace</keyword>
+ <keyword>replace</keyword>
+ <keyword>url_encode</keyword>
+ <keyword>json_encode</keyword>
+ <keyword>striptags</keyword>
+ <keyword>reverse</keyword>
+ <keyword>keys</keyword>
+ <keyword>e</keyword>
+ <keyword>title</keyword>
+ <keyword>safe</keyword>
+ <keyword>sort</keyword>
+ <keyword>spacify</keyword>
+ <keyword>string_format</keyword>
+ <keyword>strip</keyword>
+ <keyword>strip_tags</keyword>
+ <keyword>truncate</keyword>
+ <keyword>upper</keyword>
+ <keyword>wordwrap</keyword>
+ </context>
+
+ <context id="tests" style-ref="tests">
+ <prefix>(?i)\b</prefix> <!-- case insensitive -->
+ <keyword>divisibleby</keyword>
+ <keyword>none</keyword>
+ <keyword>even</keyword>
+ <keyword>odd</keyword>
+ <keyword>sameas</keyword>
+ <keyword>empty</keyword>
+ </context>
+
+ <context id="boolean" style-ref="boolean">
+ <prefix>(?i)\b</prefix> <!-- case insensitive -->
+ <keyword>false</keyword>
+ <keyword>true</keyword>
+ </context>
+
+ <context id="float" style-ref="floating-point">
+ <match extended="true">
+ (?<![\w\.])
+ ([0-9]+[Ee][+-]?[0-9]+ |
+ ([0-9]*\.[0-9]+ | [0-9]+\.[0-9]*)([Ee][+-]?[0-9]+)?)
+ (?![\w\.])
+ </match>
+ </context>
+
+ <context id="decimal-number" style-ref="decimal">
+ <match extended="true">
+ (?<![\w\.])
+ [+-]?([1-9][0-9]*|0)
+ (?![\w\.])
+ </match>
+ </context>
+
+ <context id="octal-number" style-ref="octal">
+ <match extended="true">
+ (?<![\w\.])
+ [+-]?0[0-7]+
+ (?![\w\.])
+ </match>
+ </context>
+
+ <context id="hexadecimal-number" style-ref="hexadecimal">
+ <match extended="true">
+ (?<![\w\.])
+ [+-]?0x[0-9a-fA-F]+
+ (?![\w\.])
+ </match>
+ </context>
+
+ <context id="twig-block" style-ref="comment" end-at-line-end="true">
+ <start>{({|%)(/?)</start>
+ <end>(}|%)}</end>
+ <include>
+ <context sub-pattern="0" where="start" style-ref="boolean"/>
+ <context sub-pattern="0" where="end" style-ref="boolean"/>
+ <context ref="double-quoted-string"/>
+ <context ref="single-quoted-string"/>
+ <context ref="backtick-string"/>
+ <context ref="here-doc-string"/>
+ <context ref="variable"/>
+ <context ref="array-operators"/>
+ <context ref="keywords"/>
+ <context ref="operators"/>
+ <context ref="filters"/>
+ <context ref="tests"/>
+ <context ref="boolean"/>
+ <context ref="float"/>
+ <context ref="decimal-number"/>
+ <context ref="octal-number"/>
+ <context ref="hexadecimal-number"/>
+ </include>
+ </context>
+
+ <replace id="html:embedded-lang-hook" ref="twig-block"/>
+
+ <context id="twig">
+ <include>
+ <context ref="twig-block"/>
+ <context ref="html:html"/>
+ <context ref="twig-comment"/>
+ <context ref="close-comment-outside-comment"/>
+ </include>
+ </context>
+
+ </definitions>
+</language>
diff --git a/data/language-specs/typescript-js-expressions.lang
b/data/language-specs/typescript-js-expressions.lang
index b4926f5b..fb3ea24b 100644
--- a/data/language-specs/typescript-js-expressions.lang
+++ b/data/language-specs/typescript-js-expressions.lang
@@ -22,7 +22,7 @@
-->
<language id="typescript-js-expr" name="TypeScript JavaScript Expression Additions" version="2.0"
_section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/typescript-js-functions-classes.lang
b/data/language-specs/typescript-js-functions-classes.lang
index 7db4b7d6..bc3be7aa 100644
--- a/data/language-specs/typescript-js-functions-classes.lang
+++ b/data/language-specs/typescript-js-functions-classes.lang
@@ -22,7 +22,7 @@
-->
<language id="typescript-js-fn" name="TypeScript JavaScript Function and Class Additions" version="2.0"
_section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/typescript-js-literals.lang b/data/language-specs/typescript-js-literals.lang
index fb6787b3..cdd1279c 100644
--- a/data/language-specs/typescript-js-literals.lang
+++ b/data/language-specs/typescript-js-literals.lang
@@ -22,7 +22,7 @@
-->
<language id="typescript-js-lit" name="TypeScript JavaScript Literal Additions" version="2.0"
_section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/typescript-js-modules.lang b/data/language-specs/typescript-js-modules.lang
index 6512e88c..04322d2e 100644
--- a/data/language-specs/typescript-js-modules.lang
+++ b/data/language-specs/typescript-js-modules.lang
@@ -22,7 +22,7 @@
-->
<language id="typescript-js-mod" name="TypeScript JavaScript Module Additions" version="2.0"
_section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/typescript-js-statements.lang
b/data/language-specs/typescript-js-statements.lang
index 6ce34025..84785b32 100644
--- a/data/language-specs/typescript-js-statements.lang
+++ b/data/language-specs/typescript-js-statements.lang
@@ -22,7 +22,7 @@
-->
<language id="typescript-js-st" name="TypeScript JavaScript Statement Additions" version="2.0"
_section="Script" hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/typescript-jsx.lang b/data/language-specs/typescript-jsx.lang
index d24b6b1e..cb73366e 100644
--- a/data/language-specs/typescript-jsx.lang
+++ b/data/language-specs/typescript-jsx.lang
@@ -30,7 +30,7 @@
</metadata>
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/typescript-type-expressions.lang
b/data/language-specs/typescript-type-expressions.lang
index dccd11a5..6b837b41 100644
--- a/data/language-specs/typescript-type-expressions.lang
+++ b/data/language-specs/typescript-type-expressions.lang
@@ -22,7 +22,7 @@
-->
<language id="typescript-type-expr" name="TypeScript Type Expressions" version="2.0" _section="Script"
hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/typescript-type-generics.lang
b/data/language-specs/typescript-type-generics.lang
index 4d3a0ff5..a454ffa1 100644
--- a/data/language-specs/typescript-type-generics.lang
+++ b/data/language-specs/typescript-type-generics.lang
@@ -22,7 +22,7 @@
-->
<language id="typescript-type-gen" name="TypeScript Type Generics" version="2.0" _section="Script"
hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/typescript-type-literals.lang
b/data/language-specs/typescript-type-literals.lang
index 13ee07ab..328740e1 100644
--- a/data/language-specs/typescript-type-literals.lang
+++ b/data/language-specs/typescript-type-literals.lang
@@ -22,7 +22,7 @@
-->
<language id="typescript-type-lit" name="TypeScript Type Literals" version="2.0" _section="Script"
hidden="true">
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/data/language-specs/typescript.lang b/data/language-specs/typescript.lang
index 22e197af..f6ce88d0 100644
--- a/data/language-specs/typescript.lang
+++ b/data/language-specs/typescript.lang
@@ -88,7 +88,7 @@
</styles>
<!-- from js:identifier-char -->
-
<keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class>
+
<keyword-char-class>(?!\N{U+2E2F})[\p{L}\p{Nl}\N{U+1885}-\N{U+1886}\N{U+2118}\N{U+212E}\N{U+309B}-\N{U+309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\N{U+00B7}\N{U+0387}\N{U+1369}-\N{U+1371}\N{U+19DA}$\N{U+200C}\N{U+200D}]</keyword-char-class>
<definitions>
diff --git a/tests/syntax-highlighting/file.awk b/tests/syntax-highlighting/file.awk
new file mode 100644
index 00000000..a786d454
--- /dev/null
+++ b/tests/syntax-highlighting/file.awk
@@ -0,0 +1,21 @@
+#!/usr/bin/awk -f
+# This is a comment line.
+
+# Special patterns:
+BEGIN
+END
+
+# Field variables:
+xxx$0xxx
+xx$NFxxx
+
+# String and numeric contansts:
+string = "Hello, World!"
+number = 42
+
+# Patterns:
+/\.'regexpr#"/ { print $0 }
+NR == 1, NR == 5 { printf("%s\n", $0) }
+
+# Statements:
+print string, number
diff --git a/tests/syntax-highlighting/file.css b/tests/syntax-highlighting/file.css
index 450a694c..b0276005 100644
--- a/tests/syntax-highlighting/file.css
+++ b/tests/syntax-highlighting/file.css
@@ -114,7 +114,7 @@ svg|[fill] { /* attribute */
color: rebeccapurple;
color: currentColor;
- /* freqency (not currently used for any property) */
+ /* frequency (not currently used for any property) */
content: 44.1kHz;
/* integer */
diff --git a/tests/syntax-highlighting/file.erb b/tests/syntax-highlighting/file.erb
index aada3426..a5f44874 100644
--- a/tests/syntax-highlighting/file.erb
+++ b/tests/syntax-highlighting/file.erb
@@ -1,5 +1,5 @@
<%
-# this is a comment withing a processed Ruby block
+# this is a comment within a processed Ruby block
day_of_week = Time.now.wday
%>
diff --git a/tests/syntax-highlighting/file.ftl b/tests/syntax-highlighting/file.ftl
index f920f3b8..11877671 100644
--- a/tests/syntax-highlighting/file.ftl
+++ b/tests/syntax-highlighting/file.ftl
@@ -17,7 +17,7 @@ installing = Installing { -brand-name }
spaces = {" "}This message starts with 3 spaces
tears-of-joy = Use {"\U01F602"} or 😂
-## Varibles
+## Variables
unread-emails = { $user } has { $email-count } unread emails
diff --git a/tests/syntax-highlighting/file.lean b/tests/syntax-highlighting/file.lean
index 5b92b00a..01338465 100644
--- a/tests/syntax-highlighting/file.lean
+++ b/tests/syntax-highlighting/file.lean
@@ -5,11 +5,12 @@
/- nested block comment -/
-/
-def main : IO Unit :=
+@[noinline]
+def helloWorld : IO Unit :=
let a := 1
- let b := 0b1
- let c := 0x1
- let d := '1'
+ let a1 := 0b1
+ let a₂ := 0x1
+ let a' := '1'
IO.println "Hello World"
-#eval main
+#eval helloWorld
diff --git a/tests/syntax-highlighting/file.less b/tests/syntax-highlighting/file.less
index ddda6e06..16e1d35e 100644
--- a/tests/syntax-highlighting/file.less
+++ b/tests/syntax-highlighting/file.less
@@ -571,7 +571,7 @@ svg|[fill] { /* attribute */
color: rebeccapurple;
color: currentColor;
- /* freqency (not currently used for any property) */
+ /* frequency (not currently used for any property) */
content: 44.1kHz;
/* integer */
diff --git a/tests/syntax-highlighting/file.pl b/tests/syntax-highlighting/file.pl
index 36742a41..4ac90ad7 100644
--- a/tests/syntax-highlighting/file.pl
+++ b/tests/syntax-highlighting/file.pl
@@ -102,16 +102,51 @@ sub login {
} until /^\s+$/;
}
+=pod
+
=head1 EXAMPLE
+
B<collateindex.pl> B<-o> F<index.sgml> F<HTML.index>
+
=head1 EXIT STATUS
+
=over 5
+
=item B<0>
Success
+
=item B<1>
Failure
+
=back
+
=head1 AUTHOR
+
Norm Walsh E<lt>ndw nwalsh comE<gt>
Minor updates by Adam Di Carlo E<lt>adam onshore comE<gt> and Peter Eisentraut E<lt>peter_e gmx netE<gt>
+
+=begin html
+<!--
+This is raw data ignored by POD processors.
+=end not_the_end
=cut
+-->
+=end html
+
+Still POD.
+
+=cut
+
+sub end {
+=pod
+
+Here's another snippet of valid C<POD>.
+
+=cut
+
+ my $foo = { bar => \*STDOUT };
+}
+
+__END__
+
+if present, this data isn't supposed to be processed as Perl.
diff --git a/tests/syntax-highlighting/file.py3 b/tests/syntax-highlighting/file.py3
new file mode 100644
index 00000000..7b7a0160
--- /dev/null
+++ b/tests/syntax-highlighting/file.py3
@@ -0,0 +1,15 @@
+#!/usr/bin/env python3
+
+import gi
+
+gi.require_version('Gtk', '4.0')
+
+from gi.repository import GLib, GObject, Gtk
+
+my_fstring = f'this is a fstring {something("here")}'
+my_fstring = f"this is a fstring {other('stuff'}"
+
+class MyClass(GObject.Object):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwarg)
+
diff --git a/tests/syntax-highlighting/file.scss b/tests/syntax-highlighting/file.scss
index a764ae45..cb33a63e 100644
--- a/tests/syntax-highlighting/file.scss
+++ b/tests/syntax-highlighting/file.scss
@@ -607,7 +607,7 @@ svg|[fill] { /* attribute */
color: rebeccapurple;
color: currentColor;
- /* freqency (not currently used for any property) */
+ /* frequency (not currently used for any property) */
content: 44.1kHz;
/* integer */
diff --git a/tests/syntax-highlighting/file.svh b/tests/syntax-highlighting/file.svh
index 84f48fe7..210c4641 100644
--- a/tests/syntax-highlighting/file.svh
+++ b/tests/syntax-highlighting/file.svh
@@ -1,7 +1,7 @@
class my_class extends some_class;
// This is a comment.
- /* This is also a comment, but it containts keywords: bit string, etc */
+ /* This is also a comment, but it contains keywords: bit string, etc */
// Some types.
string my_string = "This is a string";
diff --git a/tests/syntax-highlighting/file.toml b/tests/syntax-highlighting/file.toml
index 902a1ae6..59ea6223 100644
--- a/tests/syntax-highlighting/file.toml
+++ b/tests/syntax-highlighting/file.toml
@@ -21,7 +21,7 @@ inf = inf # positive infinity
"key" = "text"
multi_line_array = [
"]",
- # ] commmet
+ # ] comment
]
diff --git a/tests/syntax-highlighting/file.twig b/tests/syntax-highlighting/file.twig
new file mode 100644
index 00000000..cac141c9
--- /dev/null
+++ b/tests/syntax-highlighting/file.twig
@@ -0,0 +1,23 @@
+{{ var }}
+{{ var|escape }}
+{{ var|e }} {# shortcut to escape a variable #}
+
+{% for user in users %}
+ * {{ user.name }}
+{% else %}
+ No users have been found.
+{% endfor %}
+
+{% extends "layout.html" %}
+
+{% block content %}
+ Content of the page...
+{% endblock %}
+
+{% autoescape "html" %}
+ {{ var }}
+ {{ var|raw }} {# var won't be escaped #}
+ {{ var|escape }} {# var won't be doubled-escaped #}
+{% endautoescape %}
+
+{{ include('page.html', sandboxed = true) }}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]