From 4be13465f043cd742d2d2006ef2f705483d71c2a Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Thu, 25 May 2023 00:44:21 -0400 Subject: [PATCH] properly handle () within TXT records --- src/languages/dns.js | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/src/languages/dns.js b/src/languages/dns.js index b19acf3937..d9a1107414 100644 --- a/src/languages/dns.js +++ b/src/languages/dns.js @@ -46,6 +46,16 @@ export default function(hljs) { "TSIG", "TXT" ]; + + const PUNCTUATION = { + scope: 'punctuation', + match: /\(|\)/ + }; + const STRING = { + scope: 'string', + begin: '"', end: '"' + }; + return { name: 'DNS Zone', aliases: [ @@ -55,24 +65,24 @@ export default function(hljs) { keywords: KEYWORDS, contains: [ hljs.COMMENT(';', '$', { relevance: 0 }), + STRING, { - // Character strings - scope: 'string', - begin: '"', end: '"' - }, - { - scope: 'string', - begin: /TXT.+/, - keywords: KEYWORDS + match: /TXT\s+/, + keywords: KEYWORDS, + contains: [ + STRING, + PUNCTUATION, + { + match: /\S+/, + scope: "string" + } + ] }, { className: 'meta', begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/ }, - { - scope: 'punctuation', - match: /\(|\)/ - }, + PUNCTUATION, { scope: 'type', match: /IN|CH/