diff options
author | Hugues Hiegel <root@paranoid> | 2015-03-11 16:55:04 +0100 |
---|---|---|
committer | Hugues Hiegel <root@paranoid> | 2015-03-11 16:55:04 +0100 |
commit | 99f904adcc37d93c90defcd8ce898598e25be212 (patch) | |
tree | 60a6c7b7b9cf012d6c0e8dcf5c7f4fe0a5b6fc49 /codemirror_ui/lib/CodeMirror-2.3/demo/complete.html | |
parent | b2034fdfec040a67988e543a911208ef2491ce7a (diff) |
Diffstat (limited to 'codemirror_ui/lib/CodeMirror-2.3/demo/complete.html')
-rw-r--r-- | codemirror_ui/lib/CodeMirror-2.3/demo/complete.html | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/codemirror_ui/lib/CodeMirror-2.3/demo/complete.html b/codemirror_ui/lib/CodeMirror-2.3/demo/complete.html new file mode 100644 index 0000000..95ae397 --- /dev/null +++ b/codemirror_ui/lib/CodeMirror-2.3/demo/complete.html @@ -0,0 +1,70 @@ +<!doctype html> +<html> + <head> + <title>CodeMirror: Autocomplete Demo</title> + <link rel="stylesheet" href="../lib/codemirror.css"> + <script src="../lib/codemirror.js"></script> + <script src="../lib/util/simple-hint.js"></script> + <link rel="stylesheet" href="../lib/util/simple-hint.css"> + <script src="../lib/util/javascript-hint.js"></script> + <script src="../mode/javascript/javascript.js"></script> + <link rel="stylesheet" href="../doc/docs.css"> + <style type="text/css">.CodeMirror {border: 1px solid #eee;} .CodeMirror-scroll { height: 100% }</style> + </head> + <body> + <h1>CodeMirror: Autocomplete demo</h1> + + <form><textarea id="code" name="code"> +function getCompletions(token, context) { + var found = [], start = token.string; + function maybeAdd(str) { + if (str.indexOf(start) == 0) found.push(str); + } + function gatherCompletions(obj) { + if (typeof obj == "string") forEach(stringProps, maybeAdd); + else if (obj instanceof Array) forEach(arrayProps, maybeAdd); + else if (obj instanceof Function) forEach(funcProps, maybeAdd); + for (var name in obj) maybeAdd(name); + } + + if (context) { + // If this is a property, see if it belongs to some object we can + // find in the current environment. + var obj = context.pop(), base; + if (obj.className == "js-variable") + base = window[obj.string]; + else if (obj.className == "js-string") + base = ""; + else if (obj.className == "js-atom") + base = 1; + while (base != null && context.length) + base = base[context.pop().string]; + if (base != null) gatherCompletions(base); + } + else { + // If not, just look in the window object and any local scope + // (reading into JS mode internals to get at the local variables) + for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name); + gatherCompletions(window); + forEach(keywords, maybeAdd); + } + return found; +} +</textarea></form> + +<p>Press <strong>ctrl-space</strong> to activate autocompletion. See +the code (<a href="../lib/util/simple-hint.js">here</a> +and <a href="../lib/util/javascript-hint.js">here</a>) to figure out +how it works.</p> + + <script> + CodeMirror.commands.autocomplete = function(cm) { + CodeMirror.simpleHint(cm, CodeMirror.javascriptHint); + } + var editor = CodeMirror.fromTextArea(document.getElementById("code"), { + lineNumbers: true, + extraKeys: {"Ctrl-Space": "autocomplete"} + }); + </script> + </body> +</html> |