Spaces:
Sleeping
Sleeping
processmaker-community / processmaker-files /gulliver /js /codemirror /mode /dockerfile /dockerfile.js
| // 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" | |
| } | |
| ], | |
| meta: { | |
| lineComment: "#" | |
| } | |
| }); | |
| CodeMirror.defineMIME("text/x-dockerfile", "dockerfile"); | |
| }); | |