From edb29d537bc7827eae55ddcbe1e986e0fbe23a45 Mon Sep 17 00:00:00 2001 From: edukisto <52005215+edukisto@users.noreply.github.com> Date: Sun, 21 Jun 2020 11:34:19 +0300 Subject: [PATCH] Dockerfile: Fixed strings inside comments (#2428) Strings inside comments broke comments. Comments are now greedy, so this can't happen anymore. --- components/prism-docker.js | 5 ++++- components/prism-docker.min.js | 2 +- examples/prism-docker.html | 2 ++ tests/languages/docker/comment_feature.test | 4 +++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/components/prism-docker.js b/components/prism-docker.js index c075828a80..270e66c554 100644 --- a/components/prism-docker.js +++ b/components/prism-docker.js @@ -4,7 +4,10 @@ Prism.languages.docker = { lookbehind: true }, 'string': /("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/, - 'comment': /#.*/, + 'comment': { + pattern: /#.*/, + greedy: true + }, 'punctuation': /---|\.\.\.|[:[\]{}\-,|>?]/ }; diff --git a/components/prism-docker.min.js b/components/prism-docker.min.js index ec55d3aa24..9c1b73ff6d 100644 --- a/components/prism-docker.min.js +++ b/components/prism-docker.min.js @@ -1 +1 @@ -Prism.languages.docker={keyword:{pattern:/(^\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)/im,lookbehind:!0},string:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,comment:/#.*/,punctuation:/---|\.\.\.|[:[\]{}\-,|>?]/},Prism.languages.dockerfile=Prism.languages.docker; \ No newline at end of file +Prism.languages.docker={keyword:{pattern:/(^\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)/im,lookbehind:!0},string:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,comment:{pattern:/#.*/,greedy:!0},punctuation:/---|\.\.\.|[:[\]{}\-,|>?]/},Prism.languages.dockerfile=Prism.languages.docker; \ No newline at end of file diff --git a/examples/prism-docker.html b/examples/prism-docker.html index 325d65035c..206d84314a 100644 --- a/examples/prism-docker.html +++ b/examples/prism-docker.html @@ -2,6 +2,8 @@

Comments

# These are the comments for a dockerfile.
 # I want to make sure $(variables) don't break out,
 # and we shouldn't see keywords like ADD or ENTRYPOINT
+
+# I also want to make sure that this "string" and this 'string' don't break out.
 

Full example

diff --git a/tests/languages/docker/comment_feature.test b/tests/languages/docker/comment_feature.test index 054d6023d1..b29b2bedf8 100644 --- a/tests/languages/docker/comment_feature.test +++ b/tests/languages/docker/comment_feature.test @@ -1,11 +1,13 @@ # # foobar +# "foo" 'bar' ---------------------------------------------------- [ ["comment", "#"], - ["comment", "# foobar"] + ["comment", "# foobar"], + ["comment", "# \"foo\" 'bar'"] ] ----------------------------------------------------