diff --git a/doc/LexillaHistory.html b/doc/LexillaHistory.html
index a4c2f61c..6e786b4b 100644
--- a/doc/LexillaHistory.html
+++ b/doc/LexillaHistory.html
@@ -615,6 +615,10 @@
Smalltalk: Fix scaled decimal numbers without decimal separator.
Pull request #274.
+
+ Lexer added for Zig "zig".
+ Pull request #267.
+
Release 5.4.0
diff --git a/include/LexicalStyles.iface b/include/LexicalStyles.iface
index 05d0e660..47a389ba 100644
--- a/include/LexicalStyles.iface
+++ b/include/LexicalStyles.iface
@@ -147,6 +147,7 @@ val SCLEX_GDSCRIPT=135
val SCLEX_TOML=136
val SCLEX_TROFF=137
val SCLEX_DART=138
+val SCLEX_ZIG=139
# When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
# value assigned in sequence from SCLEX_AUTOMATIC+1.
@@ -2389,3 +2390,22 @@ val SCE_DART_KW_PRIMARY=23
val SCE_DART_KW_SECONDARY=24
val SCE_DART_KW_TERTIARY=25
val SCE_DART_KW_TYPE=26
+# Lexical states for SCLEX_ZIG
+lex Zig=SCLEX_ZIG SCE_ZIG_
+val SCE_ZIG_DEFAULT=0
+val SCE_ZIG_COMMENTLINE=1
+val SCE_ZIG_COMMENTLINEDOC=2
+val SCE_ZIG_COMMENTLINETOP=3
+val SCE_ZIG_NUMBER=4
+val SCE_ZIG_OPERATOR=5
+val SCE_ZIG_CHARACTER=6
+val SCE_ZIG_STRING=7
+val SCE_ZIG_MULTISTRING=8
+val SCE_ZIG_ESCAPECHAR=9
+val SCE_ZIG_IDENTIFIER=10
+val SCE_ZIG_FUNCTION=11
+val SCE_ZIG_BUILTIN_FUNCTION=12
+val SCE_ZIG_KW_PRIMARY=13
+val SCE_ZIG_KW_SECONDARY=14
+val SCE_ZIG_KW_TERTIARY=15
+val SCE_ZIG_KW_TYPE=16
diff --git a/include/SciLexer.h b/include/SciLexer.h
index 1b1ebd86..7bacb878 100644
--- a/include/SciLexer.h
+++ b/include/SciLexer.h
@@ -151,6 +151,7 @@
#define SCLEX_TOML 136
#define SCLEX_TROFF 137
#define SCLEX_DART 138
+#define SCLEX_ZIG 139
#define SCLEX_AUTOMATIC 1000
#define SCE_P_DEFAULT 0
#define SCE_P_COMMENTLINE 1
@@ -2131,6 +2132,23 @@
#define SCE_DART_KW_SECONDARY 24
#define SCE_DART_KW_TERTIARY 25
#define SCE_DART_KW_TYPE 26
+#define SCE_ZIG_DEFAULT 0
+#define SCE_ZIG_COMMENTLINE 1
+#define SCE_ZIG_COMMENTLINEDOC 2
+#define SCE_ZIG_COMMENTLINETOP 3
+#define SCE_ZIG_NUMBER 4
+#define SCE_ZIG_OPERATOR 5
+#define SCE_ZIG_CHARACTER 6
+#define SCE_ZIG_STRING 7
+#define SCE_ZIG_MULTISTRING 8
+#define SCE_ZIG_ESCAPECHAR 9
+#define SCE_ZIG_IDENTIFIER 10
+#define SCE_ZIG_FUNCTION 11
+#define SCE_ZIG_BUILTIN_FUNCTION 12
+#define SCE_ZIG_KW_PRIMARY 13
+#define SCE_ZIG_KW_SECONDARY 14
+#define SCE_ZIG_KW_TERTIARY 15
+#define SCE_ZIG_KW_TYPE 16
/* --Autogenerated -- end of section automatically generated from Scintilla.iface */
#endif
diff --git a/lexers/LexZig.cxx b/lexers/LexZig.cxx
new file mode 100644
index 00000000..b262fee2
--- /dev/null
+++ b/lexers/LexZig.cxx
@@ -0,0 +1,465 @@
+// Scintilla source code edit control
+/** @file LexZig.cxx
+ ** Lexer for Zig language.
+ **/
+// Based on Zufu Liu's Notepad4 Zig lexer
+// Modified for Scintilla by Jiri Techet, 2024
+// The License.txt file describes the conditions under which this software may be distributed.
+
+#include
+#include
+
+#include
+#include
+#include
+#include