Skip to content

Commit

Permalink
Move tern modules from tern.core to ternjs project. See
Browse files Browse the repository at this point in the history
  • Loading branch information
angelozerr committed Jan 30, 2015
1 parent b3aed80 commit df96fea
Show file tree
Hide file tree
Showing 851 changed files with 17,231 additions and 13,846 deletions.
1 change: 1 addition & 0 deletions core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<artifactId>core</artifactId>
<packaging>pom</packaging>
<modules>
<module>ternjs</module>
<module>tern.core</module>
<module>tern.server.rhino</module>
<module>tern.server.nodejs</module>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,228 @@
<!doctype html>

<title>CodeMirror: Tern Demo</title>
<meta charset="utf-8"/>
<link rel=stylesheet href="../../codemirror/doc/docs.css">

<!-- 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/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>

<script>
var defs = [];
CodeMirror.tern = {};
CodeMirror.tern.addDef = function(def) {
defs.push(def);
}
</script>
<script src="../addon/hint/tern/defs/ecma5.json.js"></script>
<script src="../addon/hint/tern/defs/browser.json.js"></script>

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

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

<link rel="stylesheet" href="../../codemirror/addon/dialog/dialog.css">
<link rel="stylesheet" href="../../codemirror/addon/hint/show-hint.css">
<link rel="stylesheet" href="../../codemirror/addon/tern/tern.css">
<script src="../../codemirror/addon/dialog/dialog.js"></script>
<script src="../../codemirror/addon/hint/show-hint.js"></script>
<script src="../../codemirror/addon/tern/tern.js"></script>

<script src="../../../../tern.core/node_modules/tern/plugin/angular.js"></script>

<style>
.CodeMirror {border: 1px solid #ddd;}
</style>
<div id=nav>
<a href="http://codemirror.net"><img id=logo src="../../codemirror/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/marijnh/codemirror">Code</a>
</ul>
<ul>
<li><a class=active href="#">Tern</a>
</ul>
</div>

<article>
<h2>Tern Demo</h2>
<select id="angularType" onchange="onAngularTypeChanged()">
<option name="module" >module</option>
<option name="controller" >controller</option>
<option name="model." >model.</option>
<option name="model.todos." >model.todos.</option>
<option name="model.todo." >model.todo.</option>
</select>
<input type="text" id="angularField" value="" />
<input type="checkbox" id="useAngularModule" value="use angular.module?" />
<input type="button" onclick="completions()" value="Completions"/>
<input type="button" onclick="definition()" value="Definition"/>
<form><textarea id="code" name="code">
angular.module("A");
angular.module("B", ["
</textarea></p>

<p>Demonstrates integration of <a href="http://ternjs.net/">Tern</a>
and CodeMirror. The following keys are bound:</p>

<dl>
<dt>Ctrl-Space</dt><dd>Autocomplete</dd>
<dt>Ctrl-I</dt><dd>Find type at cursor</dd>
<dt>Alt-.</dt><dd>Jump to definition (Alt-, to jump back)</dd>
<dt>Ctrl-Q</dt><dd>Rename variable</dd>
</dl>

<p>Documentation is sparse for now. See the top of
the <a href="../../codemirror/addon/tern/tern.js">script</a> for a rough API
overview.</p>

<script>

function getURL(url, c) {
var xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState != 4) return;
if (xhr.status < 400) return c(null, xhr.responseText);
var e = new Error(xhr.responseText || "No response");
e.status = xhr.status;
c(e);
};
}

var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
lineNumbers: true,
mode: "javascript"
});

//var server;
//getURL("http://ternjs.net/defs/ecma5.json", function(err, code) {
// if (err) throw new Error("Request for ecma5.json: " + err);
var server = new CodeMirror.TernServer({defs: defs, plugins:{"angular":{}}});
editor.setOption("extraKeys", {
"Ctrl-Space": function(cm) { server.complete(cm); },
"Ctrl-I": function(cm) { server.showType(cm); },
"Alt-.": function(cm) { server.jumpToDef(cm); },
"Alt-,": function(cm) { server.jumpBack(cm); },
"Ctrl-Q": function(cm) { server.rename(cm); },
})
editor.on("cursorActivity", function(cm) { server.updateArgHints(cm); });
//});

function onAngularTypeChanged() {
var angularType = document.getElementById('angularType').value;

var indexDot = angularType.indexOf('.');
if (indexDot != -1) {
document.getElementById('angularField').value = angularType.substring(indexDot + 1, angularType.length);
}
}

function completions() {

var angularType = document.getElementById('angularType').value;
var angularField = document.getElementById('angularField').value;
var useAngularModule = document.getElementById('useAngularModule').checked;

var files = [];
files.push({type: "full",
name: "[doc]",
text: editor.getValue()});

var scope = {};
if (angularType != 'module') {
//if (useAngularModule) {
scope.module = 'yeomanApp';
//}
if (angularType != 'controller') {
scope.controllers = [];
if (useAngularModule) {
scope.controllers.push('MovieListCtrl');
} else {
scope.controllers.push('MovieListCtrl');
}
angularType = 'model';
}
}
//if (angularField.slice('movie.')) {
scope.repeat = {};
scope.repeat.movie = "movies";
//}
var query = {type: "angular",
subtype: "completions",
files: ["[doc]"],
angularTypes: [angularType],
expression: angularField,
scope: scope
};

var doc = {query: query, files: files};
server.server.request(doc, function(error, response) {
alert(JSON.stringify(response));
});

}

function definition() {

var angularType = document.getElementById('angularType').value;
var angularField = document.getElementById('angularField').value;
var useAngularModule = document.getElementById('useAngularModule').checked;

var files = [];
files.push({type: "full",
name: "[doc]",
text: editor.getValue()});

var scope = {};
if (angularType != 'module') {
if (useAngularModule) {
scope.module = 'Demo';
}
if (angularType != 'controller') {
if (useAngularModule) {
scope.controller = 'SlaveController';
} else {
scope.controller = 'TodoCtrl';
}
angularType = 'model';
}
}

var query = {type: "angular",
subtype: "definition",
files: ["[doc]"],
angularType: angularType,
expression: angularField,
scope: scope
};

var doc = {query: query, files: files};
server.server.request(doc, function(error, response) {
alert(JSON.stringify(response));
});

}
</script>

</article>
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public class TernModuleMetadataManagerTest {

@Before
public void init() {
TernModuleMetadataManager.getInstance().init(new File("../tern.core"));
TernModuleMetadataManager.getInstance().init(new File("../ternjs"));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class TernModulesHelperSortTest {

@Before
public void init() {
TernModuleMetadataManager.getInstance().init(new File("../tern.core"));
TernModuleMetadataManager.getInstance().init(new File("../ternjs"));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,6 @@ private static void unZipIfNecessary(String os, String ws, String arch) {
*/
public static File getNodejsTernBaseDir() {

return new File("../tern.core/node_modules/tern");
return new File("../ternjs/node_modules/tern");
}
}
1 change: 0 additions & 1 deletion core/tern.core/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ Bundle-Localization: plugin
Bundle-SymbolicName: tern.core
Bundle-Version: 0.9.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Eclipse-BundleShape: dir
Export-Package: tern,
tern.angular,
tern.angular.modules,
Expand Down
4 changes: 1 addition & 3 deletions core/tern.core/build.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,4 @@ source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.properties,\
node_modules/,\
metadata/
plugin.properties
15 changes: 0 additions & 15 deletions core/tern.core/node_modules/.bin/tern

This file was deleted.

5 changes: 0 additions & 5 deletions core/tern.core/node_modules/.bin/tern.cmd

This file was deleted.

Loading

0 comments on commit df96fea

Please sign in to comment.