summaryrefslogtreecommitdiff
path: root/public/vendor/codemirror/mode/dockerfile/dockerfile.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xpublic/vendor/codemirror/mode/dockerfile/dockerfile.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/public/vendor/codemirror/mode/dockerfile/dockerfile.js b/public/vendor/codemirror/mode/dockerfile/dockerfile.js
new file mode 100755
index 00000000..6d517750
--- /dev/null
+++ b/public/vendor/codemirror/mode/dockerfile/dockerfile.js
@@ -0,0 +1,76 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: http://codemirror.net/LICENSE
+
+(function(mod) {
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
+ mod(require("../../lib/codemirror"), require("../../addon/mode/simple"));
+ else if (typeof define == "function" && define.amd) // AMD
+ define(["../../lib/codemirror", "../../addon/mode/simple"], mod);
+ else // Plain browser env
+ mod(CodeMirror);
+})(function(CodeMirror) {
+ "use strict";
+
+ // Collect all Dockerfile directives
+ var instructions = ["from", "maintainer", "run", "cmd", "expose", "env",
+ "add", "copy", "entrypoint", "volume", "user",
+ "workdir", "onbuild"],
+ instructionRegex = "(" + instructions.join('|') + ")",
+ instructionOnlyLine = new RegExp(instructionRegex + "\\s*$", "i"),
+ instructionWithArguments = new RegExp(instructionRegex + "(\\s+)", "i");
+
+ CodeMirror.defineSimpleMode("dockerfile", {
+ start: [
+ // Block comment: This is a line starting with a comment
+ {
+ regex: /#.*$/,
+ token: "comment"
+ },
+ // Highlight an instruction without any arguments (for convenience)
+ {
+ regex: instructionOnlyLine,
+ token: "variable-2"
+ },
+ // Highlight an instruction followed by arguments
+ {
+ regex: instructionWithArguments,
+ token: ["variable-2", null],
+ next: "arguments"
+ },
+ {
+ regex: /./,
+ token: null
+ }
+ ],
+ arguments: [
+ {
+ // Line comment without instruction arguments is an error
+ regex: /#.*$/,
+ token: "error",
+ next: "start"
+ },
+ {
+ regex: /[^#]+\\$/,
+ token: null
+ },
+ {
+ // Match everything except for the inline comment
+ regex: /[^#]+/,
+ token: null,
+ next: "start"
+ },
+ {
+ regex: /$/,
+ token: null,
+ next: "start"
+ },
+ // Fail safe return to start
+ {
+ token: null,
+ next: "start"
+ }
+ ]
+ });
+
+ CodeMirror.defineMIME("text/x-dockerfile", "dockerfile");
+});