From 0036160996c4fa1c05c0c9b2613eaf9fda459ad5 Mon Sep 17 00:00:00 2001 From: BroFred Date: Wed, 9 Jul 2025 13:56:30 -0400 Subject: [PATCH] Add support for new SQL keyword "materialized" in Prism --- src/theme/prism-include-languages.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/theme/prism-include-languages.js diff --git a/src/theme/prism-include-languages.js b/src/theme/prism-include-languages.js new file mode 100644 index 000000000..5c3f8498b --- /dev/null +++ b/src/theme/prism-include-languages.js @@ -0,0 +1,25 @@ +const newWords = ["materialized"].map((word) => { + return word.toLowerCase(); +}); + +module.exports = function prismIncludeLanguages(Prism) { + if (Prism.languages.sql) { + const keywordPattern = Prism.languages.sql["keyword"]; + + // If it's a regex, convert to string, add new keywords, and recompile + if (keywordPattern instanceof RegExp) { + const patternStr = keywordPattern.source.replace( + /\)\\b$/, + `|${newWords.join("|")})\\b` + ); + Prism.languages.sql["keyword"] = new RegExp( + patternStr, + keywordPattern.flags + ); + } else if (Array.isArray(keywordPattern)) { + newWords.forEach((word) => { + keywordPattern.push(word); + }); + } + } +};