Blame | Letzte Änderung | Log anzeigen | RSS feed
// 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") // CommonJSmod(require("../../lib/codemirror"), require("../../addon/mode/simple"));else if (typeof define == "function" && define.amd) // AMDdefine(["../../lib/codemirror", "../../addon/mode/simple"], mod);else // Plain browser envmod(CodeMirror);})(function(CodeMirror) {"use strict";// Collect all Dockerfile directivesvar 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 errorregex: /#.*$/,token: "error",next: "start"},{regex: /[^#]+\\$/,token: null},{// Match everything except for the inline commentregex: /[^#]+/,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");});