summaryrefslogtreecommitdiff
path: root/public/vendor/codemirror/mode/smarty
diff options
context:
space:
mode:
Diffstat (limited to 'public/vendor/codemirror/mode/smarty')
-rw-r--r--public/vendor/codemirror/mode/smarty/index.html138
-rw-r--r--public/vendor/codemirror/mode/smarty/smarty.js225
2 files changed, 0 insertions, 363 deletions
diff --git a/public/vendor/codemirror/mode/smarty/index.html b/public/vendor/codemirror/mode/smarty/index.html
deleted file mode 100644
index b19c8f09..00000000
--- a/public/vendor/codemirror/mode/smarty/index.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!doctype html>
-
-<title>CodeMirror: Smarty 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="../xml/xml.js"></script>
-<script src="smarty.js"></script>
-<style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</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="#">Smarty</a>
- </ul>
-</div>
-
-<article>
-<h2>Smarty mode</h2>
-<form><textarea id="code" name="code">
-{extends file="parent.tpl"}
-{include file="template.tpl"}
-
-{* some example Smarty content *}
-{if isset($name) && $name == 'Blog'}
- This is a {$var}.
- {$integer = 451}, {$array[] = "a"}, {$stringvar = "string"}
- {assign var='bob' value=$var.prop}
-{elseif $name == $foo}
- {function name=menu level=0}
- {foreach $data as $entry}
- {if is_array($entry)}
- - {$entry@key}
- {menu data=$entry level=$level+1}
- {else}
- {$entry}
- {/if}
- {/foreach}
- {/function}
-{/if}</textarea></form>
-
-<p>Mode for Smarty version 2 or 3, which allows for custom delimiter tags.</p>
-
-<p>Several configuration parameters are supported:</p>
-
-<ul>
- <li><code>leftDelimiter</code> and <code>rightDelimiter</code>,
- which should be strings that determine where the Smarty syntax
- starts and ends.</li>
- <li><code>version</code>, which should be 2 or 3.</li>
- <li><code>baseMode</code>, which can be a mode spec
- like <code>"text/html"</code> to set a different background mode.</li>
-</ul>
-
-<p><strong>MIME types defined:</strong> <code>text/x-smarty</code></p>
-
-<h3>Smarty 2, custom delimiters</h3>
-
-<form><textarea id="code2" name="code2">
-{--extends file="parent.tpl"--}
-{--include file="template.tpl"--}
-
-{--* some example Smarty content *--}
-{--if isset($name) && $name == 'Blog'--}
- This is a {--$var--}.
- {--$integer = 451--}, {--$array[] = "a"--}, {--$stringvar = "string"--}
- {--assign var='bob' value=$var.prop--}
-{--elseif $name == $foo--}
- {--function name=menu level=0--}
- {--foreach $data as $entry--}
- {--if is_array($entry)--}
- - {--$entry@key--}
- {--menu data=$entry level=$level+1--}
- {--else--}
- {--$entry--}
- {--/if--}
- {--/foreach--}
- {--/function--}
-{--/if--}</textarea></form>
-
-<h3>Smarty 3</h3>
-
-<textarea id="code3" name="code3">
-Nested tags {$foo={counter one=1 two={inception}}+3} are now valid in Smarty 3.
-
-<script>
-function test() {
- console.log("Smarty 3 permits single curly braces followed by whitespace to NOT slip into Smarty mode.");
-}
-</script>
-
-{assign var=foo value=[1,2,3]}
-{assign var=foo value=['y'=>'yellow','b'=>'blue']}
-{assign var=foo value=[1,[9,8],3]}
-
-{$foo=$bar+2} {* a comment *}
-{$foo.bar=1} {* another comment *}
-{$foo = myfunct(($x+$y)*3)}
-{$foo = strlen($bar)}
-{$foo.bar.baz=1}, {$foo[]=1}
-
-Smarty "dot" syntax (note: embedded {} are used to address ambiguities):
-
-{$foo.a.b.c} => $foo['a']['b']['c']
-{$foo.a.$b.c} => $foo['a'][$b]['c']
-{$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c']
-{$foo.a.{$b.c}} => $foo['a'][$b['c']]
-
-{$object->method1($x)->method2($y)}</textarea>
-
-<script>
-var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
- lineNumbers: true,
- mode: "smarty"
-});
-var editor = CodeMirror.fromTextArea(document.getElementById("code2"), {
- lineNumbers: true,
- mode: {
- name: "smarty",
- leftDelimiter: "{--",
- rightDelimiter: "--}"
- }
-});
-var editor = CodeMirror.fromTextArea(document.getElementById("code3"), {
- lineNumbers: true,
- mode: {name: "smarty", version: 3, baseMode: "text/html"}
-});
-</script>
-
-</article>
diff --git a/public/vendor/codemirror/mode/smarty/smarty.js b/public/vendor/codemirror/mode/smarty/smarty.js
deleted file mode 100644
index 6e0fbed4..00000000
--- a/public/vendor/codemirror/mode/smarty/smarty.js
+++ /dev/null
@@ -1,225 +0,0 @@
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
-
-/**
- * Smarty 2 and 3 mode.
- */
-
-(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("smarty", function(config, parserConf) {
- var rightDelimiter = parserConf.rightDelimiter || "}";
- var leftDelimiter = parserConf.leftDelimiter || "{";
- var version = parserConf.version || 2;
- var baseMode = CodeMirror.getMode(config, parserConf.baseMode || "null");
-
- var keyFunctions = ["debug", "extends", "function", "include", "literal"];
- var regs = {
- operatorChars: /[+\-*&%=<>!?]/,
- validIdentifier: /[a-zA-Z0-9_]/,
- stringChar: /['"]/
- };
-
- var last;
- function cont(style, lastType) {
- last = lastType;
- return style;
- }
-
- function chain(stream, state, parser) {
- state.tokenize = parser;
- return parser(stream, state);
- }
-
- // Smarty 3 allows { and } surrounded by whitespace to NOT slip into Smarty mode
- function doesNotCount(stream, pos) {
- if (pos == null) pos = stream.pos;
- return version === 3 && leftDelimiter == "{" &&
- (pos == stream.string.length || /\s/.test(stream.string.charAt(pos)));
- }
-
- function tokenTop(stream, state) {
- var string = stream.string;
- for (var scan = stream.pos;;) {
- var nextMatch = string.indexOf(leftDelimiter, scan);
- scan = nextMatch + leftDelimiter.length;
- if (nextMatch == -1 || !doesNotCount(stream, nextMatch + leftDelimiter.length)) break;
- }
- if (nextMatch == stream.pos) {
- stream.match(leftDelimiter);
- if (stream.eat("*")) {
- return chain(stream, state, tokenBlock("comment", "*" + rightDelimiter));
- } else {
- state.depth++;
- state.tokenize = tokenSmarty;
- last = "startTag";
- return "tag";
- }
- }
-
- if (nextMatch > -1) stream.string = string.slice(0, nextMatch);
- var token = baseMode.token(stream, state.base);
- if (nextMatch > -1) stream.string = string;
- return token;
- }
-
- // parsing Smarty content
- function tokenSmarty(stream, state) {
- if (stream.match(rightDelimiter, true)) {
- if (version === 3) {
- state.depth--;
- if (state.depth <= 0) {
- state.tokenize = tokenTop;
- }
- } else {
- state.tokenize = tokenTop;
- }
- return cont("tag", null);
- }
-
- if (stream.match(leftDelimiter, true)) {
- state.depth++;
- return cont("tag", "startTag");
- }
-
- var ch = stream.next();
- if (ch == "$") {
- stream.eatWhile(regs.validIdentifier);
- return cont("variable-2", "variable");
- } else if (ch == "|") {
- return cont("operator", "pipe");
- } else if (ch == ".") {
- return cont("operator", "property");
- } else if (regs.stringChar.test(ch)) {
- state.tokenize = tokenAttribute(ch);
- return cont("string", "string");
- } else if (regs.operatorChars.test(ch)) {
- stream.eatWhile(regs.operatorChars);
- return cont("operator", "operator");
- } else if (ch == "[" || ch == "]") {
- return cont("bracket", "bracket");
- } else if (ch == "(" || ch == ")") {
- return cont("bracket", "operator");
- } else if (/\d/.test(ch)) {
- stream.eatWhile(/\d/);
- return cont("number", "number");
- } else {
-
- if (state.last == "variable") {
- if (ch == "@") {
- stream.eatWhile(regs.validIdentifier);
- return cont("property", "property");
- } else if (ch == "|") {
- stream.eatWhile(regs.validIdentifier);
- return cont("qualifier", "modifier");
- }
- } else if (state.last == "pipe") {
- stream.eatWhile(regs.validIdentifier);
- return cont("qualifier", "modifier");
- } else if (state.last == "whitespace") {
- stream.eatWhile(regs.validIdentifier);
- return cont("attribute", "modifier");
- } if (state.last == "property") {
- stream.eatWhile(regs.validIdentifier);
- return cont("property", null);
- } else if (/\s/.test(ch)) {
- last = "whitespace";
- return null;
- }
-
- var str = "";
- if (ch != "/") {
- str += ch;
- }
- var c = null;
- while (c = stream.eat(regs.validIdentifier)) {
- str += c;
- }
- for (var i=0, j=keyFunctions.length; i<j; i++) {
- if (keyFunctions[i] == str) {
- return cont("keyword", "keyword");
- }
- }
- if (/\s/.test(ch)) {
- return null;
- }
- return cont("tag", "tag");
- }
- }
-
- function tokenAttribute(quote) {
- return function(stream, state) {
- var prevChar = null;
- var currChar = null;
- while (!stream.eol()) {
- currChar = stream.peek();
- if (stream.next() == quote && prevChar !== '\\') {
- state.tokenize = tokenSmarty;
- break;
- }
- prevChar = currChar;
- }
- return "string";
- };
- }
-
- function tokenBlock(style, terminator) {
- return function(stream, state) {
- while (!stream.eol()) {
- if (stream.match(terminator)) {
- state.tokenize = tokenTop;
- break;
- }
- stream.next();
- }
- return style;
- };
- }
-
- return {
- startState: function() {
- return {
- base: CodeMirror.startState(baseMode),
- tokenize: tokenTop,
- last: null,
- depth: 0
- };
- },
- copyState: function(state) {
- return {
- base: CodeMirror.copyState(baseMode, state.base),
- tokenize: state.tokenize,
- last: state.last,
- depth: state.depth
- };
- },
- innerMode: function(state) {
- if (state.tokenize == tokenTop)
- return {mode: baseMode, state: state.base};
- },
- token: function(stream, state) {
- var style = state.tokenize(stream, state);
- state.last = last;
- return style;
- },
- indent: function(state, text) {
- if (state.tokenize == tokenTop && baseMode.indent)
- return baseMode.indent(state.base, text);
- else
- return CodeMirror.Pass;
- },
- blockCommentStart: leftDelimiter + "*",
- blockCommentEnd: "*" + rightDelimiter
- };
- });
-
- CodeMirror.defineMIME("text/x-smarty", "smarty");
-});