Skip to content

Commit

Permalink
Support app.on. See #3
Browse files Browse the repository at this point in the history
  • Loading branch information
angelozerr committed Oct 1, 2014
1 parent 1a2d02b commit 01a5bb3
Show file tree
Hide file tree
Showing 2 changed files with 124 additions and 0 deletions.
119 changes: 119 additions & 0 deletions demos/app.on.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Express Tern Demo</title>

<!-- CodeMirror -->
<link rel="stylesheet" href="codemirror/lib/codemirror.css">
<script src="codemirror/lib/codemirror.js"></script>
<link rel="stylesheet" href="codemirror/theme/eclipse.css">
<script src="codemirror/addon/hint/show-hint.js"></script>
<script src="codemirror/addon/edit/closetag.js"></script>
<script src="codemirror/addon/edit/closebrackets.js"></script>
<script src="codemirror/addon/edit/matchbrackets.js"></script>
<script src="codemirror/addon/selection/active-line.js"></script>
<script src="codemirror/addon/runmode/runmode.js"></script>

<script src="codemirror/mode/javascript/javascript.js"></script>

<!-- Tern JS -->
<script src="ternjs/acorn/acorn.js"></script>
<script src="ternjs/acorn/acorn_loose.js"></script>
<script src="ternjs/acorn/util/walk.js"></script>
<script src="ternjs/tern/lib/signal.js"></script>
<script src="ternjs/tern/lib/tern.js"></script>
<script src="ternjs/tern/lib/def.js"></script>
<script src="ternjs/tern/lib/comment.js"></script>
<script src="ternjs/tern/lib/infer.js"></script>

<script src="ternjs/tern/plugin/node.js"></script>
<script src="../express.js"></script>

<!-- Official CodeMirror Tern addon -->
<script src="codemirror/addon/tern/tern.js"></script>

<!-- Extension of CodeMirror Tern addon -->
<link rel="stylesheet" href="codemirror-javascript/addon/hint/tern/tern-extension.css">
<script src="codemirror-javascript/addon/hint/tern/tern-extension.js"></script>
<script src="codemirror-javascript/addon/hint/tern/defs/ecma5.json.js"></script>
<script src="codemirror-javascript/addon/hint/tern/defs/browser.json.js"></script>

<!-- CodeMirror Extension -->

<link rel="stylesheet" href="codemirror-extension/addon/hint/show-hint-eclipse.css">
<script src="codemirror-extension/addon/hint/show-context-info.js"></script>
<link rel="stylesheet" href="codemirror-extension/addon/hint/show-context-info.css">

<link rel="stylesheet" href="codemirror-extension/addon/hint/templates-hint.css">
<script src="codemirror-extension/addon/hint/templates-hint.js"></script>

<!-- CodeMirror Javascript -->
<script src="codemirror-javascript/addon/hint/javascript/javascript-templates.js"></script>

<!-- Tern Hover -->
<link rel="stylesheet" href="codemirror-extension/addon/hover/text-hover.css">
<script src="codemirror-extension/addon/hover/text-hover.js"></script>
<script src="codemirror-javascript/addon/hint/tern/tern-hover.js"></script>

<link rel="stylesheet" href="codemirror/doc/docs.css">
</head>
<body>

<h1>Demo with Express Tern plugin</h1>
<p>See <a href="https://github.com/angelozerr/tern-express">https://github.com/angelozerr/tern-express</a> for more infos.</p>
<form><textarea id="code" name="code">
var express = require('express');
var admin = express();

admin.on('mount', function (parent) {
console.log('Admin Mounted');
console.log(parent); // refers to the parent app
});

admin.get('/', function (req, res) {
res.send('Admin Homepage');
});

app.use('/admin', admin);

</textarea></form>
<script type="text/javascript">

function passAndHint(cm) {
setTimeout(function() {cm.execCommand("autocomplete");}, 100);
return CodeMirror.Pass;
}

function myHint(cm) {
return CodeMirror.showHint(cm, CodeMirror.ternHint, {async: true});
}

CodeMirror.commands.autocomplete = function(cm) {
CodeMirror.showHint(cm, myHint);
}

var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
mode: 'application/javascript',
theme : "eclipse",
styleActiveLine: true,
lineNumbers: true,
lineWrapping: true,
autoCloseBrackets: true,
matchBrackets: true,
extraKeys: {
"'.'": passAndHint,
"Ctrl-Space": "autocomplete",
"Ctrl-I": function(cm) { CodeMirror.tern.showType(cm); },
"Alt-.": function(cm) { CodeMirror.tern.jumpToDef(cm); },
"Alt-,": function(cm) { CodeMirror.tern.jumpBack(cm); },
"Ctrl-Q": function(cm) { CodeMirror.tern.rename(cm); }
},
gutters: ["CodeMirror-linenumbers"],
textHover: {delay:300},
ternWith: { plugins: {"node" : {}, "express" : {}}}
});
</script>

</body>
</html>
5 changes: 5 additions & 0 deletions express.js
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,11 @@
"!type": "string",
"!url": "http://expressjs.com/4x/api.html#app.mountpath",
"!doc": "This property refers to the path pattern(s) on which a sub app was mounted."
},
on: {
"!type": "fn(name: string, callback: fn(parent: Application))",
"!url": "http://expressjs.com/4x/api.html#app.onmount",
"!doc" : "The mount event is fired on a sub app, when it is mounted on a parent app. The parent app is passed to the callback function."
}
},
Request: {
Expand Down

0 comments on commit 01a5bb3

Please sign in to comment.