diff options
Diffstat (limited to 'public/vendor/codemirror/mode/properties')
-rwxr-xr-x | public/vendor/codemirror/mode/properties/index.html | 53 | ||||
-rwxr-xr-x | public/vendor/codemirror/mode/properties/properties.js | 78 |
2 files changed, 131 insertions, 0 deletions
diff --git a/public/vendor/codemirror/mode/properties/index.html b/public/vendor/codemirror/mode/properties/index.html new file mode 100755 index 00000000..f885302d --- /dev/null +++ b/public/vendor/codemirror/mode/properties/index.html @@ -0,0 +1,53 @@ +<!doctype html> + +<title>CodeMirror: Properties files mode</title> +<meta charset="utf-8"/> +<link rel=stylesheet href="../../doc/docs.css"> + +<link rel="stylesheet" href="../../lib/codemirror.css"> +<script src="../../lib/codemirror.js"></script> +<script src="properties.js"></script> +<style>.CodeMirror {border-top: 1px solid #ddd; border-bottom: 1px solid #ddd;}</style> +<div id=nav> + <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a> + + <ul> + <li><a href="../../index.html">Home</a> + <li><a href="../../doc/manual.html">Manual</a> + <li><a href="https://github.com/codemirror/codemirror">Code</a> + </ul> + <ul> + <li><a href="../index.html">Language modes</a> + <li><a class=active href="#">Properties files</a> + </ul> +</div> + +<article> +<h2>Properties files mode</h2> +<form><textarea id="code" name="code"> +# This is a properties file +a.key = A value +another.key = http://example.com +! Exclamation mark as comment +but.not=Within ! A value # indeed + # Spaces at the beginning of a line + spaces.before.key=value +backslash=Used for multi\ + line entries,\ + that's convenient. +# Unicode sequences +unicode.key=This is \u0020 Unicode +no.multiline=here +# Colons +colons : can be used too +# Spaces +spaces\ in\ keys=Not very common... +</textarea></form> + <script> + var editor = CodeMirror.fromTextArea(document.getElementById("code"), {}); + </script> + + <p><strong>MIME types defined:</strong> <code>text/x-properties</code>, + <code>text/x-ini</code>.</p> + + </article> diff --git a/public/vendor/codemirror/mode/properties/properties.js b/public/vendor/codemirror/mode/properties/properties.js new file mode 100755 index 00000000..9da5baf4 --- /dev/null +++ b/public/vendor/codemirror/mode/properties/properties.js @@ -0,0 +1,78 @@ +// 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")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("properties", function() { + return { + token: function(stream, state) { + var sol = stream.sol() || state.afterSection; + var eol = stream.eol(); + + state.afterSection = false; + + if (sol) { + if (state.nextMultiline) { + state.inMultiline = true; + state.nextMultiline = false; + } else { + state.position = "def"; + } + } + + if (eol && ! state.nextMultiline) { + state.inMultiline = false; + state.position = "def"; + } + + if (sol) { + while(stream.eatSpace()); + } + + var ch = stream.next(); + + if (sol && (ch === "#" || ch === "!" || ch === ";")) { + state.position = "comment"; + stream.skipToEnd(); + return "comment"; + } else if (sol && ch === "[") { + state.afterSection = true; + stream.skipTo("]"); stream.eat("]"); + return "header"; + } else if (ch === "=" || ch === ":") { + state.position = "quote"; + return null; + } else if (ch === "\\" && state.position === "quote") { + if (stream.eol()) { // end of line? + // Multiline value + state.nextMultiline = true; + } + } + + return state.position; + }, + + startState: function() { + return { + position : "def", // Current position, "def", "quote" or "comment" + nextMultiline : false, // Is the next line multiline value + inMultiline : false, // Is the current line a multiline value + afterSection : false // Did we just open a section + }; + } + + }; +}); + +CodeMirror.defineMIME("text/x-properties", "properties"); +CodeMirror.defineMIME("text/x-ini", "properties"); + +}); |