# http://docker.com # ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ # See https://docs.docker.com/reference/builder # Detection # ‾‾‾‾‾‾‾‾‾ hook global BufCreate .*Dockerfile %{ set buffer filetype dockerfile } # Highlighters # ‾‾‾‾‾‾‾‾‾‾‾‾ add-highlighter -group / regions dockerfile \ instruction '^(?i)(ONBUILD\h+)?(FROM|MAINTAINER|RUN|CMD|LABEL|EXPOSE|ENV|ADD|COPY|ENTRYPOINT|VOLUME|USER|WORKDIR)' '$' '' \ comment '#' '$' '' add-highlighter -group /dockerfile/instruction regex '^(?i)(ONBUILD\h+)?(FROM|MAINTAINER|RUN|CMD|LABEL|EXPOSE|ENV|ADD|COPY|ENTRYPOINT|VOLUME|USER|WORKDIR)' 0:keyword add-highlighter -group /dockerfile/instruction regions regions \ plain '^(?i)(ONBUILD\h+)?(LABEL|ENV)' '$' '' \ json '^(?i)(ONBUILD\h+)?(RUN|CMD|ADD|COPY|ENTRYPOINT|VOLUME)\h+\[' \] \[ \ sh '^(?i)(ONBUILD\h+)?(RUN|CMD|ENTRYPOINT)\h+([A-Z/a-z])+' '$' '' add-highlighter -group /dockerfile/instruction/regions/plain regions regions \ string '"' '(?<!\\)(\\\\)*"' '' \ string "'" "'" '' add-highlighter -group /dockerfile/instruction/regions/plain/regions/string fill string add-highlighter -group /dockerfile/instruction/regions/json ref json add-highlighter -group /dockerfile/instruction/regions/sh ref sh add-highlighter -group /dockerfile/comment fill comment # Initialization # ‾‾‾‾‾‾‾‾‾‾‾‾‾‾ hook -group dockerfile-highlight global WinSetOption filetype=dockerfile %{ add-highlighter ref dockerfile } hook -group dockerfile-highlight global WinSetOption filetype=(?!dockerfile).* %{ remove-highlighter dockerfile }