kopia lustrzana https://github.com/c9/core
Fri Apr 20 04:57:45 CEST 2018
rodzic
fc820fa74a
commit
e015d0f99e
|
@ -12951,9 +12951,17 @@ define("plugins/c9.ide.collab/author_layer",[], function(require, module, export
|
|||
|
||||
function AuthorLayer(session) {
|
||||
var plugin = new Plugin("Ajax.org", main.consumes);
|
||||
var marker = session.addDynamicMarker({ update: drawAuthInfos }, false);
|
||||
var marker;
|
||||
|
||||
function refresh() {
|
||||
if (showAuthorInfo) {
|
||||
session.on("changeEditor", onChangeEditor);
|
||||
marker = session.addDynamicMarker({ update: drawAuthInfos }, false);
|
||||
}
|
||||
else {
|
||||
dispose();
|
||||
}
|
||||
|
||||
var doc = session.collabDoc.original;
|
||||
var ace = doc.editor && doc.editor.ace;
|
||||
var aceSession = ace && ace.session;
|
||||
|
@ -12961,178 +12969,12 @@ define("plugins/c9.ide.collab/author_layer",[], function(require, module, export
|
|||
return;
|
||||
|
||||
session._emit("changeBackMarker");
|
||||
var renderer = ace.renderer;
|
||||
renderer.$gutterLayer.$padding = null;
|
||||
renderer.$loop.schedule(renderer.CHANGE_GUTTER);
|
||||
if (showAuthorInfo) {
|
||||
renderer.$gutterLayer.on("afterRender", decorateGutter);
|
||||
}
|
||||
else {
|
||||
renderer.$gutterLayer.off("afterRender", decorateGutter);
|
||||
clearGutterDecorations(renderer);
|
||||
}
|
||||
onChangeEditor({ editor: ace });
|
||||
}
|
||||
|
||||
function drawAuthInfos(html, markerLayer, session, config) {
|
||||
if (!showAuthorInfo || !util.isRealCollab(workspace))
|
||||
return;
|
||||
|
||||
var doc = session.collabDoc;
|
||||
var editorDoc = session.doc;
|
||||
var colorPool = workspace.colorPool;
|
||||
var reversedAuthorPool = workspace.reversedAuthorPool;
|
||||
|
||||
var firstRow = config.firstRow;
|
||||
var lastRow = config.lastRow;
|
||||
|
||||
var range = new Range(firstRow, 0, lastRow, editorDoc.getLine(lastRow).length);
|
||||
|
||||
var cache = createAuthorKeyCache(editorDoc, doc.authAttribs, range);
|
||||
var authKeyCache = cache.authorKeys;
|
||||
var rowScores = cache.rowScores;
|
||||
|
||||
var fold = session.getNextFoldLine(firstRow);
|
||||
var foldStart = fold ? fold.start.row : Infinity;
|
||||
|
||||
for (var i = firstRow; i < lastRow; i++) {
|
||||
if (i > foldStart) {
|
||||
i = fold.end.row + 1;
|
||||
fold = session.getNextFoldLine(i, fold);
|
||||
foldStart = fold ? fold.start.row : Infinity;
|
||||
}
|
||||
if (i > lastRow)
|
||||
break;
|
||||
|
||||
if (!authKeyCache[i] || !rowScores[i])
|
||||
continue;
|
||||
|
||||
var rowScore = rowScores[i];
|
||||
for (var authVal in rowScore) {
|
||||
if (authVal == authKeyCache[i])
|
||||
continue;
|
||||
var edits = rowScore[authVal].edits;
|
||||
for (var j = 0; j < edits.length; j++) {
|
||||
var edit = edits[j];
|
||||
var uid = reversedAuthorPool[authVal];
|
||||
var bgColor = colorPool[uid];
|
||||
var extraStyle = "position:absolute;border-bottom:solid 2px " + util.formatColor(bgColor) + ";z-index: 2000";
|
||||
var startPos = session.documentToScreenPosition(edit.pos);
|
||||
markerLayer.drawSingleLineMarker(html,
|
||||
new Range(startPos.row, startPos.column, startPos.row, startPos.column + edit.length),
|
||||
"", config, 0, extraStyle);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function decorateGutter(e, gutter) {
|
||||
var session = gutter.session;
|
||||
|
||||
var editorDoc = session.doc;
|
||||
var doc = session.collabDoc;
|
||||
var isCollabGutter = doc && showAuthorInfo && util.isRealCollab(workspace);
|
||||
|
||||
var config = gutter.config;
|
||||
var range = new Range(config.firstRow, 0, config.lastRow, Number.MAX_VALUE);
|
||||
var authorKeysCache = isCollabGutter && createAuthorKeyCache(editorDoc, doc.authAttribs, range).authorKeys;
|
||||
var colorPool = workspace.colorPool;
|
||||
var reversedAuthorPool = workspace.reversedAuthorPool;
|
||||
|
||||
if (!isCollabGutter)
|
||||
return clearGutterDecorations();
|
||||
var cells = gutter.$lines.cells;
|
||||
for (var i = 0; i < cells.length; i++) {
|
||||
var cell = cells[i];
|
||||
var authorKey = authorKeysCache[cell.row];
|
||||
var authorColor = "transparent";
|
||||
var fullname = null;
|
||||
if (authorKey) {
|
||||
var uid = reversedAuthorPool[authorKey];
|
||||
authorColor = util.formatColor(colorPool[uid]);
|
||||
var user = workspace.users[uid];
|
||||
fullname = user && user.fullname;
|
||||
}
|
||||
cell.element.style.borderLeft = "solid 5px " + authorColor;
|
||||
cell.element.setAttribute("uid", fullname ? uid : "");
|
||||
}
|
||||
}
|
||||
|
||||
function clearGutterDecorations(renderer) {
|
||||
renderer.$gutterLayer.$lines.cellCache.length = 0;
|
||||
var cells = renderer.$gutterLayer.$lines.cells;
|
||||
for (var i = 0; i < cells.length; i++) {
|
||||
var cell = cells[i];
|
||||
cell.element.style.borderLeft = "";
|
||||
cell.element.setAttribute("uid", "");
|
||||
}
|
||||
}
|
||||
|
||||
function createAuthorKeyCache (editorDoc, authAttribs, range) {
|
||||
var startI = editorDoc.positionToIndex(range.start);
|
||||
var endI = editorDoc.positionToIndex(range.end);
|
||||
|
||||
var authKeyCache = {};
|
||||
var rowScores = {};
|
||||
var lastPos = range.start;
|
||||
|
||||
function processScore(index, length, value) {
|
||||
var line = editorDoc.getLine(lastPos.row);
|
||||
var rowScore = rowScores[lastPos.row] = rowScores[lastPos.row] || {};
|
||||
var score = Math.min(line.length - lastPos.column, length);
|
||||
var scoreObj = rowScore[value] = rowScore[value] || { edits: [], score: 0 };
|
||||
scoreObj.edits.push({ pos: lastPos, length: score });
|
||||
scoreObj.score += score;
|
||||
var pos = editorDoc.indexToPosition(index + length);
|
||||
if (lastPos.row !== pos.row) {
|
||||
if (value) {
|
||||
for (var i = lastPos.row + 1; i < pos.row; i++)
|
||||
authKeyCache[i] = value;
|
||||
}
|
||||
line = editorDoc.getLine(pos.row);
|
||||
rowScore = rowScores[pos.row] = rowScores[pos.row] || {};
|
||||
score = pos.column;
|
||||
scoreObj = rowScore[value] = rowScore[value] || { edits: [], score: 0 };
|
||||
scoreObj.edits.push({ pos: pos, length: score });
|
||||
scoreObj.score += score;
|
||||
}
|
||||
lastPos = pos;
|
||||
}
|
||||
AuthorAttributes.traverse(authAttribs, startI, endI, processScore);
|
||||
|
||||
for (var rowNum in rowScores) {
|
||||
var rowScore = rowScores[rowNum];
|
||||
delete rowScore[null];
|
||||
delete rowScore[undefined];
|
||||
delete rowScore[0];
|
||||
var authorKeys = Object.keys(rowScore);
|
||||
|
||||
if (authorKeys.length === 0) {
|
||||
delete rowScores[rowNum];
|
||||
}
|
||||
else if (authorKeys.length === 1) {
|
||||
authKeyCache[rowNum] = parseInt(authorKeys[0], 10);
|
||||
}
|
||||
else {
|
||||
var biggestScore = 0;
|
||||
var authKey;
|
||||
for (var key in rowScore) {
|
||||
if (rowScore[key].score > biggestScore) {
|
||||
biggestScore = rowScore[key].score;
|
||||
authKey = key;
|
||||
}
|
||||
}
|
||||
authKeyCache[rowNum] = parseInt(authKey, 10);
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
authorKeys: authKeyCache,
|
||||
rowScores: rowScores
|
||||
};
|
||||
}
|
||||
|
||||
function dispose () {
|
||||
session.removeMarker(marker.id);
|
||||
function dispose() {
|
||||
marker && session.removeMarker(marker.id);
|
||||
session.off("changeEditor", onChangeEditor);
|
||||
}
|
||||
|
||||
plugin.freezePublicAPI({
|
||||
|
@ -13143,6 +12985,178 @@ define("plugins/c9.ide.collab/author_layer",[], function(require, module, export
|
|||
|
||||
return plugin;
|
||||
}
|
||||
|
||||
function onChangeEditor(e) {
|
||||
var renderer = (e.editor || e.oldEditor).renderer;
|
||||
renderer.$gutterLayer.$padding = null;
|
||||
renderer.$loop.schedule(renderer.CHANGE_GUTTER);
|
||||
if (showAuthorInfo && e.editor) {
|
||||
renderer.$gutterLayer.on("afterRender", decorateGutter);
|
||||
}
|
||||
else {
|
||||
renderer.$gutterLayer.off("afterRender", decorateGutter);
|
||||
clearGutterDecorations(renderer.$gutterLayer);
|
||||
}
|
||||
}
|
||||
|
||||
function drawAuthInfos(html, markerLayer, session, config) {
|
||||
if (!showAuthorInfo || !util.isRealCollab(workspace))
|
||||
return;
|
||||
|
||||
var doc = session.collabDoc;
|
||||
var editorDoc = session.doc;
|
||||
var colorPool = workspace.colorPool;
|
||||
var reversedAuthorPool = workspace.reversedAuthorPool;
|
||||
|
||||
var firstRow = config.firstRow;
|
||||
var lastRow = config.lastRow;
|
||||
|
||||
var range = new Range(firstRow, 0, lastRow, editorDoc.getLine(lastRow).length);
|
||||
|
||||
var cache = createAuthorKeyCache(editorDoc, doc.authAttribs, range);
|
||||
var authKeyCache = cache.authorKeys;
|
||||
var rowScores = cache.rowScores;
|
||||
|
||||
var fold = session.getNextFoldLine(firstRow);
|
||||
var foldStart = fold ? fold.start.row : Infinity;
|
||||
|
||||
for (var i = firstRow; i < lastRow; i++) {
|
||||
if (i > foldStart) {
|
||||
i = fold.end.row + 1;
|
||||
fold = session.getNextFoldLine(i, fold);
|
||||
foldStart = fold ? fold.start.row : Infinity;
|
||||
}
|
||||
if (i > lastRow)
|
||||
break;
|
||||
|
||||
if (!authKeyCache[i] || !rowScores[i])
|
||||
continue;
|
||||
|
||||
var rowScore = rowScores[i];
|
||||
for (var authVal in rowScore) {
|
||||
if (authVal == authKeyCache[i])
|
||||
continue;
|
||||
var edits = rowScore[authVal].edits;
|
||||
for (var j = 0; j < edits.length; j++) {
|
||||
var edit = edits[j];
|
||||
var uid = reversedAuthorPool[authVal];
|
||||
var bgColor = colorPool[uid];
|
||||
var extraStyle = "position:absolute;border-bottom:solid 2px " + util.formatColor(bgColor) + ";z-index: 2000";
|
||||
var startPos = session.documentToScreenPosition(edit.pos);
|
||||
markerLayer.drawSingleLineMarker(html,
|
||||
new Range(startPos.row, startPos.column, startPos.row, startPos.column + edit.length),
|
||||
"", config, 0, extraStyle);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function decorateGutter(e, gutter) {
|
||||
var session = gutter.session;
|
||||
|
||||
var editorDoc = session.doc;
|
||||
var doc = session.collabDoc;
|
||||
var isCollabGutter = doc && showAuthorInfo && util.isRealCollab(workspace);
|
||||
|
||||
if (!isCollabGutter)
|
||||
return;
|
||||
|
||||
var config = gutter.config;
|
||||
var range = new Range(config.firstRow, 0, config.lastRow, Number.MAX_VALUE);
|
||||
var authorKeysCache = isCollabGutter && createAuthorKeyCache(editorDoc, doc.authAttribs, range).authorKeys;
|
||||
var colorPool = workspace.colorPool;
|
||||
var reversedAuthorPool = workspace.reversedAuthorPool;
|
||||
|
||||
var cells = gutter.$lines.cells;
|
||||
for (var i = 0; i < cells.length; i++) {
|
||||
var cell = cells[i];
|
||||
var authorKey = authorKeysCache[cell.row];
|
||||
var authorColor = "transparent";
|
||||
var fullname = null;
|
||||
if (authorKey) {
|
||||
var uid = reversedAuthorPool[authorKey];
|
||||
authorColor = util.formatColor(colorPool[uid]);
|
||||
var user = workspace.users[uid];
|
||||
fullname = user && user.fullname;
|
||||
}
|
||||
cell.element.style.borderLeft = "solid 5px " + authorColor;
|
||||
cell.element.setAttribute("uid", fullname ? uid : "");
|
||||
}
|
||||
}
|
||||
|
||||
function clearGutterDecorations(gutter) {
|
||||
gutter.$lines.cellCache.length = 0;
|
||||
var cells = gutter.$lines.cells;
|
||||
for (var i = 0; i < cells.length; i++) {
|
||||
var cell = cells[i];
|
||||
cell.element.style.borderLeft = "";
|
||||
cell.element.setAttribute("uid", "");
|
||||
}
|
||||
}
|
||||
|
||||
function createAuthorKeyCache(editorDoc, authAttribs, range) {
|
||||
var startI = editorDoc.positionToIndex(range.start);
|
||||
var endI = editorDoc.positionToIndex(range.end);
|
||||
|
||||
var authKeyCache = {};
|
||||
var rowScores = {};
|
||||
var lastPos = range.start;
|
||||
|
||||
function processScore(index, length, value) {
|
||||
var line = editorDoc.getLine(lastPos.row);
|
||||
var rowScore = rowScores[lastPos.row] = rowScores[lastPos.row] || {};
|
||||
var score = Math.min(line.length - lastPos.column, length);
|
||||
var scoreObj = rowScore[value] = rowScore[value] || { edits: [], score: 0 };
|
||||
scoreObj.edits.push({ pos: lastPos, length: score });
|
||||
scoreObj.score += score;
|
||||
var pos = editorDoc.indexToPosition(index + length);
|
||||
if (lastPos.row !== pos.row) {
|
||||
if (value) {
|
||||
for (var i = lastPos.row + 1; i < pos.row; i++)
|
||||
authKeyCache[i] = value;
|
||||
}
|
||||
line = editorDoc.getLine(pos.row);
|
||||
rowScore = rowScores[pos.row] = rowScores[pos.row] || {};
|
||||
score = pos.column;
|
||||
scoreObj = rowScore[value] = rowScore[value] || { edits: [], score: 0 };
|
||||
scoreObj.edits.push({ pos: pos, length: score });
|
||||
scoreObj.score += score;
|
||||
}
|
||||
lastPos = pos;
|
||||
}
|
||||
AuthorAttributes.traverse(authAttribs, startI, endI, processScore);
|
||||
|
||||
for (var rowNum in rowScores) {
|
||||
var rowScore = rowScores[rowNum];
|
||||
delete rowScore[null];
|
||||
delete rowScore[undefined];
|
||||
delete rowScore[0];
|
||||
var authorKeys = Object.keys(rowScore);
|
||||
|
||||
if (authorKeys.length === 0) {
|
||||
delete rowScores[rowNum];
|
||||
}
|
||||
else if (authorKeys.length === 1) {
|
||||
authKeyCache[rowNum] = parseInt(authorKeys[0], 10);
|
||||
}
|
||||
else {
|
||||
var biggestScore = 0;
|
||||
var authKey;
|
||||
for (var key in rowScore) {
|
||||
if (rowScore[key].score > biggestScore) {
|
||||
biggestScore = rowScore[key].score;
|
||||
authKey = key;
|
||||
}
|
||||
}
|
||||
authKeyCache[rowNum] = parseInt(authKey, 10);
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
authorKeys: authKeyCache,
|
||||
rowScores: rowScores
|
||||
};
|
||||
}
|
||||
|
||||
function getLineAuthorKey(session, authAttribs, row) {
|
||||
var editorDoc = session.doc;
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
"process"
|
||||
]
|
||||
},
|
||||
"gitHead": "39015d544d4c00c7899fea4c95c2e5bc2720e68e",
|
||||
"contributors": [
|
||||
{
|
||||
"name": "List of Tern contributors. Updated before every release."
|
||||
|
@ -241,6 +240,7 @@
|
|||
"name": "vheon"
|
||||
}
|
||||
],
|
||||
"gitHead": "39015d544d4c00c7899fea4c95c2e5bc2720e68e",
|
||||
"readme": "# Tern\n\n[![Build Status](https://secure.travis-ci.org/ternjs/tern.png)](http://travis-ci.org/ternjs/tern)\n[![NPM version](https://img.shields.io/npm/v/tern.svg)](https://www.npmjs.org/package/tern) \n[Funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png?again)](https://marijnhaverbeke.nl/fund/)\n\nThis is [Tern][1]. Tern is a stand-alone, editor-independent\nJavaScript analyzer that can be used to improve the JavaScript\nintegration of existing editors.\n\nThanks to a group of generous [crowd funders][2], Tern is open-source\nsoftware, under an MIT license.\n\nThere are currently plugins available for [Emacs][emacs] (and Emacs\n[company-mode][cmode]), [Vim][vim], [Sublime Text][st], [Eclipse (and general Java API)][ec],\n[Light Table][lt], [Atom][atom] and [gedit][gedit], and built-in support in\n[Brackets][brackets], [Edge Code][edge_code], and [CodeLite](http://codelite.org/).\n\nFor further documentation, see the [project page][1] and the\n[manual][3]. To report issues, use the\n[issue tracker](https://github.com/ternjs/tern/issues). For questions\nand documentation, see the\n[discussion forum](https://discuss.ternjs.net).\n\n[1]: http://ternjs.net\n[2]: http://www.indiegogo.com/projects/tern-intelligent-javascript-editing\n[3]: http://ternjs.net/doc/manual.html\n\n[emacs]: http://ternjs.net/doc/manual.html#emacs\n[ec]: https://github.com/angelozerr/tern.java\n[vim]: https://github.com/ternjs/tern_for_vim\n[st]: https://github.com/ternjs/tern_for_sublime\n[lt]: https://github.com/mortalapeman/LT-TernJS\n[atom]: https://atom.io/packages/atom-ternjs\n[gedit]: https://github.com/Swatinem/tern_for_gedit\n[brackets]: http://brackets.io\n[edge_code]: http://html.adobe.com/edge/code\n[cmode]: https://github.com/proofit404/company-tern\n",
|
||||
"readmeFilename": "README.md",
|
||||
"bugs": {
|
||||
|
@ -248,7 +248,7 @@
|
|||
},
|
||||
"homepage": "https://github.com/ternjs/tern#readme",
|
||||
"_id": "tern@0.16.1",
|
||||
"_shasum": "08b41975eefb7dca8f4b80fcd9df49f4c7b6e975",
|
||||
"_shasum": "17da1e5782ab1c6c62c483f20fb0bf8506907908",
|
||||
"_from": "git+https://github.com/cloud9ide/tern.git#39015d544d4c00c7899fea4c95c2e5bc2720e68e",
|
||||
"_resolved": "git+https://github.com/cloud9ide/tern.git#39015d544d4c00c7899fea4c95c2e5bc2720e68e"
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
"readme": "# tern_from_ts\n\nTern signatures extracted from typescript signatures.\n\nLicense: MIT\n\nSee also https://github.com/marijnh/tern and https://github.com/borisyankov/DefinitelyTyped\n",
|
||||
"readmeFilename": "README.md",
|
||||
"_id": "tern_from_ts@0.0.1",
|
||||
"_shasum": "bc573b8c7da1d528a11b8c09ddbc63b253c74035",
|
||||
"_shasum": "87a651d582f5906a2ff38f087a31de2b17f4ebff",
|
||||
"_from": "git+https://github.com/cloud9ide/tern_from_ts.git#66df507986bbdd63f3bc4f0c53edb39169ce4f1c",
|
||||
"_resolved": "git+https://github.com/cloud9ide/tern_from_ts.git#66df507986bbdd63f3bc4f0c53edb39169ce4f1c"
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
},
|
||||
"homepage": "https://github.com/gjtorikian/nak#readme",
|
||||
"_id": "nak@0.3.3",
|
||||
"_shasum": "21dd6e2b1160557f4dfb48f4192a4607a340520d",
|
||||
"_shasum": "d4bd3eb26edde97b3f5e358469247c581b12c7ff",
|
||||
"_from": "git+https://github.com/cloud9ide/nak.git#6deef931594",
|
||||
"_resolved": "git+https://github.com/cloud9ide/nak.git#6deef931594787edd167040f7352e3e7533430e4"
|
||||
}
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
"process"
|
||||
]
|
||||
},
|
||||
"gitHead": "39015d544d4c00c7899fea4c95c2e5bc2720e68e",
|
||||
"contributors": [
|
||||
{
|
||||
"name": "List of Tern contributors. Updated before every release."
|
||||
|
@ -241,6 +240,7 @@
|
|||
"name": "vheon"
|
||||
}
|
||||
],
|
||||
"gitHead": "39015d544d4c00c7899fea4c95c2e5bc2720e68e",
|
||||
"readme": "# Tern\n\n[![Build Status](https://secure.travis-ci.org/ternjs/tern.png)](http://travis-ci.org/ternjs/tern)\n[![NPM version](https://img.shields.io/npm/v/tern.svg)](https://www.npmjs.org/package/tern) \n[Funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png?again)](https://marijnhaverbeke.nl/fund/)\n\nThis is [Tern][1]. Tern is a stand-alone, editor-independent\nJavaScript analyzer that can be used to improve the JavaScript\nintegration of existing editors.\n\nThanks to a group of generous [crowd funders][2], Tern is open-source\nsoftware, under an MIT license.\n\nThere are currently plugins available for [Emacs][emacs] (and Emacs\n[company-mode][cmode]), [Vim][vim], [Sublime Text][st], [Eclipse (and general Java API)][ec],\n[Light Table][lt], [Atom][atom] and [gedit][gedit], and built-in support in\n[Brackets][brackets], [Edge Code][edge_code], and [CodeLite](http://codelite.org/).\n\nFor further documentation, see the [project page][1] and the\n[manual][3]. To report issues, use the\n[issue tracker](https://github.com/ternjs/tern/issues). For questions\nand documentation, see the\n[discussion forum](https://discuss.ternjs.net).\n\n[1]: http://ternjs.net\n[2]: http://www.indiegogo.com/projects/tern-intelligent-javascript-editing\n[3]: http://ternjs.net/doc/manual.html\n\n[emacs]: http://ternjs.net/doc/manual.html#emacs\n[ec]: https://github.com/angelozerr/tern.java\n[vim]: https://github.com/ternjs/tern_for_vim\n[st]: https://github.com/ternjs/tern_for_sublime\n[lt]: https://github.com/mortalapeman/LT-TernJS\n[atom]: https://atom.io/packages/atom-ternjs\n[gedit]: https://github.com/Swatinem/tern_for_gedit\n[brackets]: http://brackets.io\n[edge_code]: http://html.adobe.com/edge/code\n[cmode]: https://github.com/proofit404/company-tern\n",
|
||||
"readmeFilename": "README.md",
|
||||
"bugs": {
|
||||
|
@ -248,7 +248,7 @@
|
|||
},
|
||||
"homepage": "https://github.com/ternjs/tern#readme",
|
||||
"_id": "tern@0.16.1",
|
||||
"_shasum": "08b41975eefb7dca8f4b80fcd9df49f4c7b6e975",
|
||||
"_shasum": "17da1e5782ab1c6c62c483f20fb0bf8506907908",
|
||||
"_from": "git+https://github.com/cloud9ide/tern.git#39015d544d4c00c7899fea4c95c2e5bc2720e68e",
|
||||
"_resolved": "git+https://github.com/cloud9ide/tern.git#39015d544d4c00c7899fea4c95c2e5bc2720e68e"
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
"readme": "# tern_from_ts\n\nTern signatures extracted from typescript signatures.\n\nLicense: MIT\n\nSee also https://github.com/marijnh/tern and https://github.com/borisyankov/DefinitelyTyped\n",
|
||||
"readmeFilename": "README.md",
|
||||
"_id": "tern_from_ts@0.0.1",
|
||||
"_shasum": "bc573b8c7da1d528a11b8c09ddbc63b253c74035",
|
||||
"_shasum": "87a651d582f5906a2ff38f087a31de2b17f4ebff",
|
||||
"_from": "git+https://github.com/cloud9ide/tern_from_ts.git#66df507986bbdd63f3bc4f0c53edb39169ce4f1c",
|
||||
"_resolved": "git+https://github.com/cloud9ide/tern_from_ts.git#66df507986bbdd63f3bc4f0c53edb39169ce4f1c"
|
||||
}
|
||||
|
|
|
@ -49,5 +49,5 @@
|
|||
},
|
||||
"devDependencies": {},
|
||||
"licenses": [],
|
||||
"revision": "7e901541963c791d13d8d182dcdae1abce4aee33"
|
||||
"revision": "2e524ab8ba61b422d3605eafecc2140090d6a8fb"
|
||||
}
|
||||
|
|
2
version
2
version
|
@ -1 +1 @@
|
|||
1524106654
|
||||
1524193061
|
||||
|
|
Ładowanie…
Reference in New Issue