diff --git a/.travis.yml b/.travis.yml
index 6395148be..5b151b3f2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,7 +20,7 @@ script:
- chmod u+x build-package.sh
- ./build-package.sh
- npm run build
- - git diff --quiet
+ - git diff --quiet -- dist/
- npm test
notifications:
@@ -42,7 +42,7 @@ dist: trusty
addons:
apt:
packages:
- - build-essential
- - fakeroot
- - git
- - libsecret-1-dev
+ - build-essential
+ - fakeroot
+ - git
+ - libsecret-1-dev
diff --git a/dist/client/callbacks.js b/dist/client/callbacks.js
index 4c1dbefd8..3897066dc 100644
--- a/dist/client/callbacks.js
+++ b/dist/client/callbacks.js
@@ -2,44 +2,51 @@
Object.defineProperty(exports, "__esModule", { value: true });
// Callbacks keeps track of all the outstanding requests
class Callbacks {
- constructor(onPendingChange) {
- this.onPendingChange = onPendingChange;
+ constructor(reportBusyWhile) {
+ this.reportBusyWhile = reportBusyWhile;
this.callbacks = new Map();
}
- add(seq, command) {
- return new Promise((resolve, reject) => {
- this.callbacks.set(seq, {
- name: command,
- resolve,
- reject,
- started: Date.now(),
+ async add(seq, command) {
+ try {
+ const promise = new Promise((resolve, reject) => {
+ this.callbacks.set(seq, {
+ resolve,
+ reject,
+ started: Date.now(),
+ });
});
- this.onPendingChange(this.pending());
- });
+ return await this.reportBusyWhile(command, () => promise);
+ }
+ finally {
+ this.callbacks.delete(seq);
+ }
}
rejectAll(error) {
for (const { reject } of this.callbacks.values()) {
reject(error);
}
this.callbacks.clear();
- this.onPendingChange(this.pending());
}
- // Remove and return a Request object, if one exists
- remove(seq) {
+ resolve(seq, res) {
const req = this.callbacks.get(seq);
- this.callbacks.delete(seq);
if (req) {
- this.onPendingChange(this.pending());
+ if (window.atom_typescript_debug) {
+ console.log("received response for", res.command, "in", Date.now() - req.started, "ms", "with data", res.body);
+ }
+ if (res.success)
+ req.resolve(res);
+ else
+ req.reject(new Error(res.message));
}
- return req;
+ else
+ console.warn("unexpected response:", res);
}
- // pending returns names of requests waiting for a response
- pending() {
- const pending = [];
- for (const { name } of this.callbacks.values()) {
- pending.push(name);
- }
- return pending;
+ error(seq, err) {
+ const req = this.callbacks.get(seq);
+ if (req)
+ req.reject(err);
+ else
+ console.error(err);
}
}
exports.Callbacks = Callbacks;
diff --git a/dist/client/callbacks.js.map b/dist/client/callbacks.js.map
index d2aaed903..c30bd3ea4 100644
--- a/dist/client/callbacks.js.map
+++ b/dist/client/callbacks.js.map
@@ -1 +1 @@
-{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../lib/client/callbacks.ts"],"names":[],"mappings":";;AASA,wDAAwD;AACxD,MAAa,SAAS;IAGpB,YAAoB,eAA4C;QAA5C,oBAAe,GAAf,eAAe,CAA6B;QAFxD,cAAS,GAAyB,IAAI,GAAG,EAAE,CAAA;IAEgB,CAAC;IAE7D,GAAG,CAAC,GAAW,EAAE,OAAe;QACrC,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;gBACtB,IAAI,EAAE,OAAO;gBACb,OAAO;gBACP,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;aACpB,CAAC,CAAA;YAEF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,SAAS,CAAC,KAAY;QAC3B,KAAK,MAAM,EAAC,MAAM,EAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAA;SACd;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACtC,CAAC;IAED,oDAAoD;IAC7C,MAAM,CAAC,GAAW;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;SACrC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,2DAA2D;IACnD,OAAO;QACb,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,KAAK,MAAM,EAAC,IAAI,EAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE;YAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACnB;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AA/CD,8BA+CC"}
\ No newline at end of file
+{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../lib/client/callbacks.ts"],"names":[],"mappings":";;AASA,wDAAwD;AACxD,MAAa,SAAS;IAGpB,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAF5C,cAAS,GAAyB,IAAI,GAAG,EAAE,CAAA;IAEI,CAAC;IAEjD,KAAK,CAAC,GAAG,CACd,GAAW,EACX,OAAU;QAEV,IAAI;YACF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;oBACtB,OAAO;oBACP,MAAM;oBACN,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;iBACpB,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YACF,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAA;SAC1D;gBAAS;YACR,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SAC3B;IACH,CAAC;IAEM,SAAS,CAAC,KAAY;QAC3B,KAAK,MAAM,EAAC,MAAM,EAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAA;SACd;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IAEM,OAAO,CAAiC,GAAW,EAAE,GAAkB;QAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,GAAG,EAAE;YACP,IAAI,MAAM,CAAC,qBAAqB,EAAE;gBAChC,OAAO,CAAC,GAAG,CACT,uBAAuB,EACvB,GAAG,CAAC,OAAO,EACX,IAAI,EACJ,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EACxB,IAAI,EACJ,WAAW,EACX,GAAG,CAAC,IAAI,CACT,CAAA;aACF;YACD,IAAI,GAAG,CAAC,OAAO;gBAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;;gBAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;SACxC;;YAAM,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,GAAW,EAAE,GAAU;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,GAAG;YAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;CACF;AAvDD,8BAuDC"}
\ No newline at end of file
diff --git a/dist/client/client.js b/dist/client/client.js
index ccb18c9ef..3857b3f43 100644
--- a/dist/client/client.js
+++ b/dist/client/client.js
@@ -1,9 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
+// tslint:disable:max-classes-per-file
const atom_1 = require("atom");
-const callbacks_1 = require("./callbacks");
-const stream_1 = require("stream");
const byline = require("byline");
+const stream_1 = require("stream");
+const callbacks_1 = require("./callbacks");
// Set this to true to start tsserver with node --inspect
const INSPECT_TSSERVER = false;
const commandWithResponseMap = {
@@ -26,100 +27,123 @@ const commandWithResponseMap = {
navto: true,
getApplicableRefactors: true,
getEditsForRefactor: true,
- ping: true,
organizeImports: true,
+ signatureHelp: true,
};
const commandWithResponse = new Set(Object.keys(commandWithResponseMap));
+function isCommandWithResponse(command) {
+ return commandWithResponse.has(command);
+}
class TypescriptServiceClient {
- constructor(tsServerPath, version) {
+ constructor(tsServerPath, version, reportBusyWhile) {
this.tsServerPath = tsServerPath;
this.version = version;
+ this.reportBusyWhile = reportBusyWhile;
this.emitter = new atom_1.Emitter();
this.seq = 0;
- this.running = false;
this.lastStderrOutput = "";
- this.exitHandler = (reject) => (err) => {
- console.error("tsserver: ", err);
+ // tslint:disable-next-line:member-ordering
+ this.on = this.emitter.on.bind(this.emitter);
+ this.exitHandler = (err, report = true) => {
this.callbacks.rejectAll(err);
- this.emitter.dispose();
- reject(err);
- this.running = false;
+ if (report)
+ console.error("tsserver: ", err);
+ this.server = undefined;
setImmediate(() => {
- let detail = err.message;
- if (this.lastStderrOutput) {
- detail = `Last output from tsserver:\n${this.lastStderrOutput}\n\n${detail}`;
+ if (report) {
+ let detail = err.message;
+ if (this.lastStderrOutput) {
+ detail = `Last output from tsserver:\n${this.lastStderrOutput}\n\n${detail}`;
+ }
+ atom.notifications.addError("TypeScript quit unexpectedly", {
+ detail,
+ stack: err.stack,
+ dismissable: true,
+ });
+ }
+ if (this.lastStartAttempt === undefined || Date.now() - this.lastStartAttempt > 5000) {
+ this.server = this.startServer();
+ this.emitter.emit("restarted", undefined);
+ }
+ else {
+ atom.notifications.addWarning("Not restarting tsserver", {
+ detail: "Restarting too fast",
+ });
}
- atom.notifications.addError("TypeScript quit unexpectedly", {
- detail,
- stack: err.stack,
- dismissable: true,
- });
});
};
- this.emitPendingRequests = (pending) => {
- this.emitter.emit("pendingRequestsChange", pending);
- };
this.onMessage = (res) => {
if (res.type === "response")
this.onResponse(res);
else
this.onEvent(res);
};
- this.callbacks = new callbacks_1.Callbacks(this.emitPendingRequests);
- this.serverPromise = this.startServer();
+ this.callbacks = new callbacks_1.Callbacks(this.reportBusyWhile);
+ this.server = this.startServer();
}
- async execute(command, args) {
- if (!this.running) {
+ async execute(command, ...args) {
+ if (!this.server) {
throw new Error("Server is not running");
}
- return this.sendRequest(await this.serverPromise, command, args);
+ const req = {
+ seq: this.seq++,
+ command,
+ arguments: args[0],
+ };
+ if (window.atom_typescript_debug) {
+ console.log("sending request", command, "with args", args);
+ }
+ const result = isCommandWithResponse(command)
+ ? this.callbacks.add(req.seq, command)
+ : undefined;
+ try {
+ this.server.stdin.write(JSON.stringify(req) + "\n");
+ }
+ catch (error) {
+ this.callbacks.error(req.seq, error);
+ }
+ return result;
}
- on(name, listener) {
- return this.emitter.on(name, listener);
+ async restartServer() {
+ if (this.server) {
+ this.lastStartAttempt = undefined; // reset auto-restart loop guard
+ const server = this.server;
+ const graceTimer = setTimeout(() => server.kill(), 10000);
+ await this.execute("exit");
+ clearTimeout(graceTimer);
+ }
+ else {
+ this.server = this.startServer();
+ this.emitter.emit("restarted", undefined);
+ }
}
startServer() {
- return new Promise((resolve, reject) => {
- this.running = true;
- if (window.atom_typescript_debug) {
- console.log("starting", this.tsServerPath);
- }
- const cp = startServer(this.tsServerPath);
- const h = this.exitHandler(reject);
- if (!cp) {
- h(new Error("ChildProcess failed to start"));
- return;
- }
- cp.once("error", h);
- cp.once("exit", (code, signal) => {
- if (code !== null)
- h(new Error(`exited with code: ${code}`));
- else if (signal !== null)
- h(new Error(`terminated on signal: ${signal}`));
- });
- // Pipe both stdout and stderr appropriately
- messageStream(cp.stdout).on("data", this.onMessage);
- cp.stderr.on("data", data => {
- console.warn("tsserver stderr:", (this.lastStderrOutput = data.toString()));
- });
- this.sendRequest(cp, "ping", undefined).then(() => resolve(cp), () => resolve(cp));
+ if (window.atom_typescript_debug) {
+ console.log("starting", this.tsServerPath);
+ }
+ this.lastStartAttempt = Date.now();
+ const cp = startServer(this.tsServerPath);
+ if (!cp)
+ throw new Error("ChildProcess failed to start");
+ const h = this.exitHandler;
+ cp.once("error", h);
+ cp.once("exit", (code, signal) => {
+ if (code === 0)
+ h(new Error("Server stopped normally"), false);
+ else if (code !== null)
+ h(new Error(`exited with code: ${code}`));
+ else if (signal !== null)
+ h(new Error(`terminated on signal: ${signal}`));
});
+ // Pipe both stdout and stderr appropriately
+ messageStream(cp.stdout).on("data", this.onMessage);
+ cp.stderr.on("data", data => {
+ console.warn("tsserver stderr:", (this.lastStderrOutput = data.toString()));
+ });
+ return cp;
}
onResponse(res) {
- const req = this.callbacks.remove(res.request_seq);
- if (req) {
- if (window.atom_typescript_debug) {
- console.log("received response for", res.command, "in", Date.now() - req.started, "ms", "with data", res.body);
- }
- if (res.success) {
- req.resolve(res);
- }
- else {
- req.reject(new Error(res.message));
- }
- }
- else {
- console.warn("unexpected response:", res);
- }
+ this.callbacks.resolve(res.request_seq, res);
}
onEvent(res) {
if (window.atom_typescript_debug) {
@@ -129,41 +153,10 @@ class TypescriptServiceClient {
if (res.body)
this.emitter.emit(res.event, res.body);
}
- async sendRequest(cp, command, args) {
- const expectResponse = commandWithResponse.has(command);
- const req = {
- seq: this.seq++,
- command,
- arguments: args,
- };
- if (window.atom_typescript_debug) {
- console.log("sending request", command, "with args", args);
- }
- setImmediate(() => {
- try {
- cp.stdin.write(JSON.stringify(req) + "\n");
- }
- catch (error) {
- const callback = this.callbacks.remove(req.seq);
- if (callback) {
- callback.reject(error);
- }
- else {
- console.error(error);
- }
- }
- });
- if (expectResponse) {
- return this.callbacks.add(req.seq, command);
- }
- else {
- return undefined;
- }
- }
}
exports.TypescriptServiceClient = TypescriptServiceClient;
function startServer(tsServerPath) {
- const locale = atom.config.get("atom-typescript.locale");
+ const locale = atom.config.get("atom-typescript").locale;
const tsServerArgs = locale ? ["--locale", locale] : [];
if (INSPECT_TSSERVER) {
return new atom_1.BufferedProcess({
diff --git a/dist/client/client.js.map b/dist/client/client.js.map
index 929c50f43..e9cb15438 100644
--- a/dist/client/client.js.map
+++ b/dist/client/client.js.map
@@ -1 +1 @@
-{"version":3,"file":"client.js","sourceRoot":"","sources":["../../lib/client/client.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"client.js","sourceRoot":"","sources":["../../lib/client/client.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/client/clientResolver.js b/dist/client/clientResolver.js
index dc2b5b1b6..7541994ef 100644
--- a/dist/client/clientResolver.js
+++ b/dist/client/clientResolver.js
@@ -1,55 +1,62 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const client_1 = require("./client");
+const atom_1 = require("atom");
+const fs = require("fs");
const path = require("path");
const Resolve = require("resolve");
-const atom_1 = require("atom");
+const client_1 = require("./client");
/**
* ClientResolver takes care of finding the correct tsserver for a source file based on how a
* require("typescript") from the same source file would resolve.
*/
class ClientResolver {
- constructor() {
+ constructor(reportBusyWhile) {
+ this.reportBusyWhile = reportBusyWhile;
this.clients = new Map();
this.emitter = new atom_1.Emitter();
- }
- // This is just here so TypeScript can infer the types of the callbacks when using "on" method
- on(event, callback) {
- return this.emitter.on(event, callback);
- }
- async get(pFilePath) {
- const { pathToBin, version } = await resolveBinary(pFilePath, "tsserver");
- const clientRec = this.clients.get(pathToBin);
- if (clientRec)
- return clientRec.client;
- const newClientRec = {
- client: new client_1.TypescriptServiceClient(pathToBin, version),
- pending: [],
- };
- this.clients.set(pathToBin, newClientRec);
- newClientRec.client.on("pendingRequestsChange", pending => {
- newClientRec.pending = pending;
- this.emitter.emit("pendingRequestsChange", pending);
- });
- const diagnosticHandler = (type) => (result) => {
+ this.subscriptions = new atom_1.CompositeDisposable();
+ // This is just here so TypeScript can infer the types of the callbacks when using "on" method
+ // tslint:disable-next-line:member-ordering
+ this.on = this.emitter.on.bind(this.emitter);
+ this.diagnosticHandler = (serverPath, type) => (result) => {
const filePath = isConfDiagBody(result) ? result.configFile : result.file;
if (filePath) {
this.emitter.emit("diagnostics", {
type,
- serverPath: pathToBin,
+ serverPath,
filePath,
diagnostics: result.diagnostics,
});
}
};
- newClientRec.client.on("configFileDiag", diagnosticHandler("configFileDiag"));
- newClientRec.client.on("semanticDiag", diagnosticHandler("semanticDiag"));
- newClientRec.client.on("syntaxDiag", diagnosticHandler("syntaxDiag"));
- newClientRec.client.on("suggestionDiag", diagnosticHandler("suggestionDiag"));
- return newClientRec.client;
+ }
+ async restartAllServers() {
+ await Promise.all(Array.from(this.getAllClients()).map(client => client.restartServer()));
+ }
+ async get(pFilePath) {
+ const { pathToBin, version } = await resolveBinary(pFilePath, "tsserver");
+ const tsconfigPath = await resolveTsConfig(pFilePath);
+ let tsconfigMap = this.clients.get(pathToBin);
+ if (!tsconfigMap) {
+ tsconfigMap = new Map();
+ this.clients.set(pathToBin, tsconfigMap);
+ }
+ const client = tsconfigMap.get(tsconfigPath);
+ if (client)
+ return client;
+ const newClient = new client_1.TypescriptServiceClient(pathToBin, version, this.reportBusyWhile);
+ tsconfigMap.set(tsconfigPath, newClient);
+ this.subscriptions.add(newClient.on("configFileDiag", this.diagnosticHandler(pathToBin, "configFileDiag")), newClient.on("semanticDiag", this.diagnosticHandler(pathToBin, "semanticDiag")), newClient.on("syntaxDiag", this.diagnosticHandler(pathToBin, "syntaxDiag")), newClient.on("suggestionDiag", this.diagnosticHandler(pathToBin, "suggestionDiag")));
+ return newClient;
}
dispose() {
this.emitter.dispose();
+ this.subscriptions.dispose();
+ }
+ *getAllClients() {
+ for (const tsconfigMap of this.clients.values()) {
+ yield* tsconfigMap.values();
+ }
}
}
exports.ClientResolver = ClientResolver;
@@ -80,6 +87,23 @@ async function resolveBinary(sourcePath, binName) {
};
}
exports.resolveBinary = resolveBinary;
+async function fsexists(filePath) {
+ return new Promise(resolve => {
+ fs.exists(filePath, resolve);
+ });
+}
+async function resolveTsConfig(sourcePath) {
+ let parentDir = path.dirname(sourcePath);
+ let tsconfigPath = path.join(parentDir, "tsconfig.json");
+ while (!(await fsexists(tsconfigPath))) {
+ const oldParentDir = parentDir;
+ parentDir = path.dirname(parentDir);
+ if (oldParentDir === parentDir)
+ return undefined;
+ tsconfigPath = path.join(parentDir, "tsconfig.json");
+ }
+ return tsconfigPath;
+}
function isConfDiagBody(body) {
// tslint:disable-next-line:no-unsafe-any
return body && body.triggerFile && body.configFile;
diff --git a/dist/client/clientResolver.js.map b/dist/client/clientResolver.js.map
index f58b80c2c..4d406d095 100644
--- a/dist/client/clientResolver.js.map
+++ b/dist/client/clientResolver.js.map
@@ -1 +1 @@
-{"version":3,"file":"clientResolver.js","sourceRoot":"","sources":["../../lib/client/clientResolver.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"clientResolver.js","sourceRoot":"","sources":["../../lib/client/clientResolver.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/client/index.js b/dist/client/index.js
new file mode 100644
index 000000000..6bb90fb9c
--- /dev/null
+++ b/dist/client/index.js
@@ -0,0 +1,8 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var clientResolver_1 = require("./clientResolver");
+exports.ClientResolver = clientResolver_1.ClientResolver;
+exports.resolveBinary = clientResolver_1.resolveBinary;
+const client_1 = require("./client");
+exports.TSClient = client_1.TypescriptServiceClient;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/dist/client/index.js.map b/dist/client/index.js.map
new file mode 100644
index 000000000..c4ca64fb8
--- /dev/null
+++ b/dist/client/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/client/index.ts"],"names":[],"mappings":";;AAAA,mDAA8D;AAAtD,0CAAA,cAAc,CAAA;AAAE,yCAAA,aAAa,CAAA;AAErC,qCAAgD;AAEb,mBAF3B,gCAAuB,CAEY"}
\ No newline at end of file
diff --git a/dist/main/atom-ide/codeActionsProvider.js b/dist/main/atom-ide/codeActionsProvider.js
new file mode 100644
index 000000000..4b0354583
--- /dev/null
+++ b/dist/main/atom-ide/codeActionsProvider.js
@@ -0,0 +1,20 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("../atom/utils");
+function getCodeActionsProvider(codefixProvider) {
+ return {
+ grammarScopes: utils_1.typeScriptScopes(),
+ priority: 0,
+ async getCodeActions(textEditor, range, _diagnostics) {
+ return (await codefixProvider.runCodeFix(textEditor, range.start)).map(fix => ({
+ getTitle: async () => fix.description,
+ dispose: () => { },
+ apply: async () => {
+ await codefixProvider.applyFix(fix);
+ },
+ }));
+ },
+ };
+}
+exports.getCodeActionsProvider = getCodeActionsProvider;
+//# sourceMappingURL=codeActionsProvider.js.map
\ No newline at end of file
diff --git a/dist/main/atom-ide/codeActionsProvider.js.map b/dist/main/atom-ide/codeActionsProvider.js.map
new file mode 100644
index 000000000..f35c49673
--- /dev/null
+++ b/dist/main/atom-ide/codeActionsProvider.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"codeActionsProvider.js","sourceRoot":"","sources":["../../../lib/main/atom-ide/codeActionsProvider.ts"],"names":[],"mappings":";;AAIA,yCAA8C;AAE9C,SAAgB,sBAAsB,CAAC,eAAgC;IACrE,OAAO;QACL,aAAa,EAAE,wBAAgB,EAAE;QACjC,QAAQ,EAAE,CAAC;QACX,KAAK,CAAC,cAAc,CAClB,UAA2B,EAC3B,KAAiB,EACjB,YAAuB;YAEvB,OAAO,CAAC,MAAM,eAAe,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7E,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW;gBACrC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;gBACjB,KAAK,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACrC,CAAC;aACF,CAAC,CAAC,CAAA;QACL,CAAC;KACF,CAAA;AACH,CAAC;AAlBD,wDAkBC"}
\ No newline at end of file
diff --git a/dist/main/atom-ide/codeHighlightProvider.js b/dist/main/atom-ide/codeHighlightProvider.js
new file mode 100644
index 000000000..997b37904
--- /dev/null
+++ b/dist/main/atom-ide/codeHighlightProvider.js
@@ -0,0 +1,23 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("../atom/utils");
+function getCodeHighlightProvider(getClient) {
+ return {
+ grammarScopes: utils_1.typeScriptScopes(),
+ priority: 100,
+ async highlight(editor, position) {
+ if (!utils_1.isTypescriptEditorWithPath(editor))
+ return;
+ const location = utils_1.getFilePathPosition(editor, position);
+ if (!location)
+ return;
+ const client = await getClient(location.file);
+ const result = await client.execute("occurrences", location);
+ if (!result.body)
+ return;
+ return result.body.map(utils_1.spanToRange);
+ },
+ };
+}
+exports.getCodeHighlightProvider = getCodeHighlightProvider;
+//# sourceMappingURL=codeHighlightProvider.js.map
\ No newline at end of file
diff --git a/dist/main/atom-ide/codeHighlightProvider.js.map b/dist/main/atom-ide/codeHighlightProvider.js.map
new file mode 100644
index 000000000..aa60fcc60
--- /dev/null
+++ b/dist/main/atom-ide/codeHighlightProvider.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"codeHighlightProvider.js","sourceRoot":"","sources":["../../../lib/main/atom-ide/codeHighlightProvider.ts"],"names":[],"mappings":";;AAEA,yCAKsB;AAEtB,SAAgB,wBAAwB,CAAC,SAA4B;IACnE,OAAO;QACL,aAAa,EAAE,wBAAgB,EAAE;QACjC,QAAQ,EAAE,GAAG;QACb,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ;YAC9B,IAAI,CAAC,kCAA0B,CAAC,MAAM,CAAC;gBAAE,OAAM;YAC/C,MAAM,QAAQ,GAAG,2BAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACtD,IAAI,CAAC,QAAQ;gBAAE,OAAM;YACrB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;YAC5D,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,OAAM;YACxB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAW,CAAC,CAAA;QACrC,CAAC;KACF,CAAA;AACH,CAAC;AAdD,4DAcC"}
\ No newline at end of file
diff --git a/dist/main/atom-ide/datatipProvider.js b/dist/main/atom-ide/datatipProvider.js
new file mode 100644
index 000000000..cc207bdd9
--- /dev/null
+++ b/dist/main/atom-ide/datatipProvider.js
@@ -0,0 +1,109 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const Atom = require("atom");
+const utils_1 = require("../atom/utils");
+// Note: a horrible hack to avoid dependency on React
+const REACT_ELEMENT_SYMBOL = Symbol.for("react.element");
+const etch = {
+ dom(type, props, ...children) {
+ if (children.length > 0) {
+ return {
+ $$typeof: REACT_ELEMENT_SYMBOL,
+ type,
+ ref: null,
+ props: Object.assign({}, props, { children }),
+ };
+ }
+ else {
+ return {
+ $$typeof: REACT_ELEMENT_SYMBOL,
+ type,
+ ref: null,
+ props: Object.assign({}, props),
+ };
+ }
+ },
+};
+class TSDatatipProvider {
+ constructor(getClient) {
+ this.getClient = getClient;
+ this.providerName = "TypeScript type tooltips";
+ this.priority = 100;
+ this.grammarScopes = utils_1.typeScriptScopes();
+ }
+ async datatip(editor, bufferPt) {
+ try {
+ const filePath = editor.getPath();
+ if (filePath === undefined)
+ return;
+ const client = await this.getClient(filePath);
+ const result = await client.execute("quickinfo", {
+ file: filePath,
+ line: bufferPt.row + 1,
+ offset: bufferPt.column + 1,
+ });
+ const data = result.body;
+ const code = await highlightCode(data.displayString.replace(/^\(.+?\)\s+/, ""));
+ const kind = (etch.dom("div", { class: "atom-typescript-datatip-tooltip-kind" },
+ data.kind,
+ data.kindModifiers ? etch.dom("i", null,
+ " (",
+ data.kindModifiers,
+ ")") : null));
+ const docs = etch.dom("div", { class: "atom-typescript-datatip-tooltip-doc" }, data.documentation);
+ return {
+ component: () => (etch.dom("div", { class: "atom-typescript-datatip-tooltip" },
+ code,
+ kind,
+ docs)),
+ range: Atom.Range.fromObject([utils_1.locationToPoint(data.start), utils_1.locationToPoint(data.end)]),
+ };
+ }
+ catch (e) {
+ return;
+ }
+ }
+}
+exports.TSDatatipProvider = TSDatatipProvider;
+async function highlightCode(code) {
+ const fontFamily = atom.config.get("editor.fontFamily");
+ const ed = new Atom.TextEditor({
+ readonly: true,
+ keyboardInputEnabled: false,
+ showInvisibles: false,
+ tabLength: atom.config.get("editor.tabLength"),
+ });
+ const el = atom.views.getView(ed);
+ try {
+ el.setUpdatedSynchronously(true);
+ el.style.pointerEvents = "none";
+ el.style.position = "absolute";
+ el.style.width = "0px";
+ el.style.height = "1px";
+ atom.views.getView(atom.workspace).appendChild(el);
+ atom.grammars.assignLanguageMode(ed.getBuffer(), "source.ts");
+ ed.setText(code.replace(/\r?\n$/, ""));
+ await editorTokenized(ed);
+ const html = Array.from(el.querySelectorAll(".line:not(.dummy)"));
+ return (etch.dom("div", { style: { fontFamily }, class: "atom-typescript-datatip-tooltip-code",
+ // @ts-ignore
+ dangerouslySetInnerHTML: { __html: html.map(x => x.innerHTML).join("\n") } }));
+ }
+ finally {
+ el.remove();
+ }
+}
+async function editorTokenized(editor) {
+ return new Promise(resolve => {
+ if (editor.getBuffer().getLanguageMode().fullyTokenized) {
+ resolve();
+ }
+ else {
+ const disp = editor.onDidTokenize(() => {
+ disp.dispose();
+ resolve();
+ });
+ }
+ });
+}
+//# sourceMappingURL=datatipProvider.js.map
\ No newline at end of file
diff --git a/dist/main/atom-ide/datatipProvider.js.map b/dist/main/atom-ide/datatipProvider.js.map
new file mode 100644
index 000000000..e30424366
--- /dev/null
+++ b/dist/main/atom-ide/datatipProvider.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"datatipProvider.js","sourceRoot":"","sources":["../../../lib/main/atom-ide/datatipProvider.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom-ide/definitionsProvider.js b/dist/main/atom-ide/definitionsProvider.js
new file mode 100644
index 000000000..41b1f8af2
--- /dev/null
+++ b/dist/main/atom-ide/definitionsProvider.js
@@ -0,0 +1,38 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("../atom/utils");
+function getDefinitionProvider(getClient) {
+ return {
+ priority: 0,
+ grammarScopes: utils_1.typeScriptScopes(),
+ wordRegExp: /([A-Za-z0-9_])+|['"`](\\.|[^'"`\\\\])*['"`]/g,
+ async getDefinition(editor, position) {
+ if (!utils_1.isTypescriptEditorWithPath(editor))
+ return;
+ const location = utils_1.getFilePathPosition(editor, position);
+ if (!location)
+ return;
+ const client = await getClient(location.file);
+ const result = await client.execute("definition", location);
+ if (!result.body)
+ return;
+ if (result.body.length === 0)
+ return;
+ return {
+ queryRange: undefined,
+ definitions: result.body.map(fileSpanToDefinition),
+ };
+ },
+ };
+}
+exports.getDefinitionProvider = getDefinitionProvider;
+function fileSpanToDefinition(span) {
+ const range = utils_1.spanToRange(span);
+ return {
+ path: span.file,
+ position: range.start,
+ range,
+ language: "TypeScript",
+ };
+}
+//# sourceMappingURL=definitionsProvider.js.map
\ No newline at end of file
diff --git a/dist/main/atom-ide/definitionsProvider.js.map b/dist/main/atom-ide/definitionsProvider.js.map
new file mode 100644
index 000000000..4a11de4c4
--- /dev/null
+++ b/dist/main/atom-ide/definitionsProvider.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"definitionsProvider.js","sourceRoot":"","sources":["../../../lib/main/atom-ide/definitionsProvider.ts"],"names":[],"mappings":";;AAGA,yCAKsB;AAEtB,SAAgB,qBAAqB,CAAC,SAA4B;IAChE,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,wBAAgB,EAAE;QACjC,UAAU,EAAE,8CAA8C;QAC1D,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ;YAClC,IAAI,CAAC,kCAA0B,CAAC,MAAM,CAAC;gBAAE,OAAM;YAC/C,MAAM,QAAQ,GAAG,2BAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACtD,IAAI,CAAC,QAAQ;gBAAE,OAAM;YACrB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;YAC3D,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,OAAM;YACxB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YAEpC,OAAO;gBACL,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;aACnD,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AApBD,sDAoBC;AAED,SAAS,oBAAoB,CAAC,IAAc;IAC1C,MAAM,KAAK,GAAG,mBAAW,CAAC,IAAI,CAAC,CAAA;IAC/B,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,KAAK,CAAC,KAAK;QACrB,KAAK;QACL,QAAQ,EAAE,YAAY;KACvB,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/dist/main/atom-ide/findReferencesProvider.js b/dist/main/atom-ide/findReferencesProvider.js
new file mode 100644
index 000000000..c8286a43c
--- /dev/null
+++ b/dist/main/atom-ide/findReferencesProvider.js
@@ -0,0 +1,34 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("../atom/utils");
+function getFindReferencesProvider(getClient) {
+ return {
+ async isEditorSupported(editor) {
+ return utils_1.isTypescriptEditorWithPath(editor);
+ },
+ async findReferences(editor, position) {
+ const location = utils_1.getFilePathPosition(editor, position);
+ if (!location)
+ return;
+ const client = await getClient(location.file);
+ const result = await client.execute("references", location);
+ if (!result.body)
+ return;
+ return {
+ type: "data",
+ baseUri: location.file,
+ referencedSymbolName: result.body.symbolDisplayString,
+ references: result.body.refs.map(refTsToIde),
+ };
+ },
+ };
+}
+exports.getFindReferencesProvider = getFindReferencesProvider;
+function refTsToIde(ref) {
+ return {
+ uri: ref.file,
+ range: utils_1.locationsToRange(ref.start, ref.end),
+ name: undefined,
+ };
+}
+//# sourceMappingURL=findReferencesProvider.js.map
\ No newline at end of file
diff --git a/dist/main/atom-ide/findReferencesProvider.js.map b/dist/main/atom-ide/findReferencesProvider.js.map
new file mode 100644
index 000000000..4e8e9bfc9
--- /dev/null
+++ b/dist/main/atom-ide/findReferencesProvider.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findReferencesProvider.js","sourceRoot":"","sources":["../../../lib/main/atom-ide/findReferencesProvider.ts"],"names":[],"mappings":";;AAEA,yCAA+F;AAE/F,SAAgB,yBAAyB,CAAC,SAA4B;IACpE,OAAO;QACL,KAAK,CAAC,iBAAiB,CAAC,MAAM;YAC5B,OAAO,kCAA0B,CAAC,MAAM,CAAC,CAAA;QAC3C,CAAC;QACD,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ;YACnC,MAAM,QAAQ,GAAG,2BAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACtD,IAAI,CAAC,QAAQ;gBAAE,OAAM;YAErB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;YAC3D,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,OAAM;YACxB,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,QAAQ,CAAC,IAAI;gBACtB,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB;gBACrD,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;aAC7C,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AApBD,8DAoBC;AAED,SAAS,UAAU,CAAC,GAAoC;IACtD,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,IAAI;QACb,KAAK,EAAE,wBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC;QAC3C,IAAI,EAAE,SAAS;KAChB,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/dist/main/atom/hyperclickProvider.js b/dist/main/atom-ide/hyperclickProvider.js
similarity index 57%
rename from dist/main/atom/hyperclickProvider.js
rename to dist/main/atom-ide/hyperclickProvider.js
index f9ace4674..bd19fee90 100644
--- a/dist/main/atom/hyperclickProvider.js
+++ b/dist/main/atom-ide/hyperclickProvider.js
@@ -1,19 +1,18 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const goToDeclaration_1 = require("./commands/goToDeclaration");
-const utils_1 = require("./utils");
-function getHyperclickProvider(clientResolver, editorPosHist) {
+const goToDeclaration_1 = require("../atom/commands/goToDeclaration");
+const utils_1 = require("../atom/utils");
+function getHyperclickProvider(getClient, histGoForward) {
return {
+ priority: 0,
providerName: "typescript-hyperclick-provider",
wordRegExp: /([A-Za-z0-9_])+|['"`](\\.|[^'"`\\\\])*['"`]/g,
- getSuggestionForWord(editor, _text, range) {
- if (!utils_1.isTypescriptEditorWithPath(editor)) {
- return null;
- }
+ async getSuggestionForWord(editor, _text, range) {
+ if (!utils_1.isTypescriptEditorWithPath(editor))
+ return;
const filePath = editor.getPath();
- if (filePath === undefined) {
- return null;
- }
+ if (filePath === undefined)
+ return;
return {
range,
callback: async () => {
@@ -22,9 +21,9 @@ function getHyperclickProvider(clientResolver, editorPosHist) {
line: range.start.row + 1,
offset: range.start.column + 1,
};
- const client = await clientResolver.get(location.file);
+ const client = await getClient(location.file);
const result = await client.execute("definition", location);
- goToDeclaration_1.handleDefinitionResult(result, editor, editorPosHist);
+ await goToDeclaration_1.handleDefinitionResult(result, editor, histGoForward);
},
};
},
diff --git a/dist/main/atom-ide/hyperclickProvider.js.map b/dist/main/atom-ide/hyperclickProvider.js.map
new file mode 100644
index 000000000..eca6b07b3
--- /dev/null
+++ b/dist/main/atom-ide/hyperclickProvider.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"hyperclickProvider.js","sourceRoot":"","sources":["../../../lib/main/atom-ide/hyperclickProvider.ts"],"names":[],"mappings":";;AAGA,sEAAuE;AAEvE,yCAAwD;AAExD,SAAgB,qBAAqB,CACnC,SAA4B,EAC5B,aAA4C;IAE5C,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,gCAAgC;QAC9C,UAAU,EAAE,8CAA8C;QAC1D,KAAK,CAAC,oBAAoB,CAAC,MAAuB,EAAE,KAAa,EAAE,KAAiB;YAClF,IAAI,CAAC,kCAA0B,CAAC,MAAM,CAAC;gBAAE,OAAM;YAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YACjC,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAM;YAElC,OAAO;gBACL,KAAK;gBACL,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACnB,MAAM,QAAQ,GAAG;wBACf,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;wBACzB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;qBAC/B,CAAA;oBACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;oBAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;oBAC3D,MAAM,wCAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;gBAC7D,CAAC;aACF,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AA5BD,sDA4BC"}
\ No newline at end of file
diff --git a/dist/main/atom-ide/outlineProvider.js b/dist/main/atom-ide/outlineProvider.js
new file mode 100644
index 000000000..753cc278f
--- /dev/null
+++ b/dist/main/atom-ide/outlineProvider.js
@@ -0,0 +1,91 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("../atom/utils");
+function getOutlineProvider(getClient) {
+ return {
+ name: "Atom-TypeScript",
+ grammarScopes: utils_1.typeScriptScopes(),
+ priority: 100,
+ updateOnEdit: true,
+ async getOutline(editor) {
+ const filePath = editor.getPath();
+ if (filePath === undefined)
+ return;
+ const client = await getClient(filePath);
+ const navTreeResult = await client.execute("navtree", { file: filePath });
+ const navTree = navTreeResult.body;
+ if (!navTree)
+ return;
+ return { outlineTrees: [navTreeToOutline(navTree)] };
+ },
+ };
+}
+exports.getOutlineProvider = getOutlineProvider;
+function navTreeToOutline(navTree) {
+ const ranges = navTree.spans.map(utils_1.spanToRange);
+ const range = ranges.reduce((prev, cur) => cur.union(prev));
+ return {
+ kind: kindMap[navTree.kind],
+ plainText: navTree.text,
+ startPosition: range.start,
+ endPosition: range.end,
+ landingPosition: navTree.nameSpan ? utils_1.spanToRange(navTree.nameSpan).start : undefined,
+ children: navTree.childItems ? navTree.childItems.map(navTreeToOutline) : [],
+ };
+}
+const kindMap = {
+ // | "file"
+ directory: "file",
+ // | "module"
+ module: "module",
+ "external module name": "module",
+ // | "namespace"
+ // | "package"
+ // | "class"
+ class: "class",
+ "local class": "class",
+ // | "method"
+ method: "method",
+ // | "property"
+ property: "property",
+ getter: "property",
+ setter: "property",
+ // | "field"
+ "JSX attribute": "field",
+ // | "constructor"
+ constructor: "constructor",
+ // | "enum"
+ enum: "enum",
+ // | "interface"
+ interface: "interface",
+ type: "interface",
+ // | "function"
+ function: "function",
+ "local function": "function",
+ // | "variable"
+ label: "variable",
+ alias: "variable",
+ var: "variable",
+ let: "variable",
+ "local var": "variable",
+ parameter: "variable",
+ // | "constant"
+ "enum member": "constant",
+ const: "constant",
+ // | "string"
+ string: "string",
+ // | "number"
+ // | "boolean"
+ // | "array"
+ // ???
+ "": undefined,
+ warning: undefined,
+ keyword: undefined,
+ script: undefined,
+ call: undefined,
+ index: undefined,
+ construct: undefined,
+ "type parameter": undefined,
+ "primitive type": undefined,
+};
+//# sourceMappingURL=outlineProvider.js.map
\ No newline at end of file
diff --git a/dist/main/atom-ide/outlineProvider.js.map b/dist/main/atom-ide/outlineProvider.js.map
new file mode 100644
index 000000000..398d85f4b
--- /dev/null
+++ b/dist/main/atom-ide/outlineProvider.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"outlineProvider.js","sourceRoot":"","sources":["../../../lib/main/atom-ide/outlineProvider.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom-ide/sigHelpProvider.js b/dist/main/atom-ide/sigHelpProvider.js
new file mode 100644
index 000000000..c7c221cef
--- /dev/null
+++ b/dist/main/atom-ide/sigHelpProvider.js
@@ -0,0 +1,38 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("../atom/utils");
+class TSSigHelpProvider {
+ constructor(getClient, flushTypescriptBuffer) {
+ this.getClient = getClient;
+ this.flushTypescriptBuffer = flushTypescriptBuffer;
+ this.triggerCharacters = new Set(["(", ","]);
+ this.grammarScopes = utils_1.typeScriptScopes();
+ this.priority = 100;
+ }
+ async getSignatureHelp(editor, pos) {
+ try {
+ const filePath = editor.getPath();
+ if (filePath === undefined)
+ return;
+ const client = await this.getClient(filePath);
+ await this.flushTypescriptBuffer(filePath);
+ const result = await client.execute("signatureHelp", {
+ file: filePath,
+ line: pos.row + 1,
+ offset: pos.column + 1,
+ });
+ const data = result.body;
+ const signatures = data.items.map(utils_1.signatureHelpItemToSignature);
+ return {
+ signatures,
+ activeParameter: data.argumentIndex,
+ activeSignature: data.selectedItemIndex,
+ };
+ }
+ catch (e) {
+ return;
+ }
+ }
+}
+exports.TSSigHelpProvider = TSSigHelpProvider;
+//# sourceMappingURL=sigHelpProvider.js.map
\ No newline at end of file
diff --git a/dist/main/atom-ide/sigHelpProvider.js.map b/dist/main/atom-ide/sigHelpProvider.js.map
new file mode 100644
index 000000000..229392549
--- /dev/null
+++ b/dist/main/atom-ide/sigHelpProvider.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"sigHelpProvider.js","sourceRoot":"","sources":["../../../lib/main/atom-ide/sigHelpProvider.ts"],"names":[],"mappings":";;AAGA,yCAA4E;AAG5E,MAAa,iBAAiB;IAK5B,YACU,SAA4B,EAC5B,qBAA4C;QAD5C,cAAS,GAAT,SAAS,CAAmB;QAC5B,0BAAqB,GAArB,qBAAqB,CAAuB;QAN/C,sBAAiB,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAC/C,kBAAa,GAAG,wBAAgB,EAAE,CAAA;QAClC,aAAQ,GAAG,GAAG,CAAA;IAKlB,CAAC;IAEG,KAAK,CAAC,gBAAgB,CAC3B,MAAkB,EAClB,GAAU;QAEV,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YACjC,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAM;YAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YAC7C,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;YAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;gBACnD,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;gBACjB,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;aACvB,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAK,CAAA;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oCAA4B,CAAC,CAAA;YAC/D,OAAO;gBACL,UAAU;gBACV,eAAe,EAAE,IAAI,CAAC,aAAa;gBACnC,eAAe,EAAE,IAAI,CAAC,iBAAiB;aACxC,CAAA;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAM;SACP;IACH,CAAC;CACF;AAnCD,8CAmCC"}
\ No newline at end of file
diff --git a/dist/main/atom/autoCompleteProvider.js b/dist/main/atom/autoCompleteProvider.js
index 034607fa3..18c901172 100644
--- a/dist/main/atom/autoCompleteProvider.js
+++ b/dist/main/atom/autoCompleteProvider.js
@@ -1,20 +1,21 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const utils_1 = require("./utils");
+// more: https://github.com/atom-community/autocomplete-plus/wiki/Provider-API
const Atom = require("atom");
const fuzzaldrin = require("fuzzaldrin");
+const utils_1 = require("./utils");
const importPathScopes = ["meta.import", "meta.import-equals", "triple-slash-directive"];
class AutocompleteProvider {
- constructor(clientResolver, opts) {
+ constructor(getClient, flushTypescriptBuffer) {
+ this.getClient = getClient;
+ this.flushTypescriptBuffer = flushTypescriptBuffer;
this.selector = utils_1.typeScriptScopes()
.map(x => (x.includes(".") ? `.${x}` : x))
.join(", ");
this.disableForSelector = ".comment";
this.inclusionPriority = 3;
- this.suggestionPriority = atom.config.get("atom-typescript.autocompletionSuggestionPriority");
+ this.suggestionPriority = atom.config.get("atom-typescript").autocompletionSuggestionPriority;
this.excludeLowerPriority = false;
- this.clientResolver = clientResolver;
- this.opts = opts;
}
async getSuggestions(opts) {
const location = getLocationQuery(opts);
@@ -41,9 +42,7 @@ class AutocompleteProvider {
}
}
// Flush any pending changes for this buffer to get up to date completions
- await this.opts.withTypescriptBuffer(location.file, async (buffer) => {
- await buffer.flush();
- });
+ await this.flushTypescriptBuffer(location.file);
try {
let suggestions = await this.getSuggestionsWithCache(prefix, location, opts.activatedManually);
const alphaPrefix = prefix.replace(/\W/g, "");
@@ -94,7 +93,7 @@ class AutocompleteProvider {
}
}
}
- const client = await this.clientResolver.get(location.file);
+ const client = await this.getClient(location.file);
const completions = await client.execute("completions", Object.assign({ prefix, includeExternalModuleExports: false, includeInsertTextCompletions: true }, location));
const suggestions = completions.body.map(completionEntryToSuggestion);
this.lastSuggestions = {
@@ -159,36 +158,43 @@ function completionEntryToSuggestion(entry) {
text: entry.insertText !== undefined ? entry.insertText : entry.name,
leftLabel: entry.kind,
replacementRange: entry.replacementSpan ? utils_1.spanToRange(entry.replacementSpan) : undefined,
- type: kindToType(entry.kind),
+ type: kindMap[entry.kind],
};
}
-/** See types :
- * https://github.com/atom-community/autocomplete-plus/pull/334#issuecomment-85697409
- */
-function kindToType(kind) {
- // variable, constant, property, value, method, function, class, type, keyword, tag, snippet, import, require
- switch (kind) {
- case "const":
- return "constant";
- case "interface":
- return "type";
- case "identifier":
- return "variable";
- case "local function":
- return "function";
- case "local var":
- return "variable";
- case "let":
- case "var":
- case "parameter":
- return "variable";
- case "alias":
- return "import";
- case "type parameter":
- return "type";
- default:
- return kind.split(" ")[0];
- }
-}
-exports.kindToType = kindToType;
+const kindMap = {
+ directory: "require",
+ module: "import",
+ "external module name": "import",
+ class: "class",
+ "local class": "class",
+ method: "method",
+ property: "property",
+ getter: "property",
+ setter: "property",
+ "JSX attribute": "property",
+ constructor: "method",
+ enum: "type",
+ interface: "type",
+ type: "type",
+ "type parameter": "type",
+ "primitive type": "type",
+ function: "function",
+ "local function": "function",
+ label: "variable",
+ alias: "import",
+ var: "variable",
+ let: "variable",
+ "local var": "variable",
+ parameter: "variable",
+ "enum member": "constant",
+ const: "constant",
+ string: "value",
+ keyword: "keyword",
+ "": undefined,
+ warning: undefined,
+ script: undefined,
+ call: undefined,
+ index: undefined,
+ construct: undefined,
+};
//# sourceMappingURL=autoCompleteProvider.js.map
\ No newline at end of file
diff --git a/dist/main/atom/autoCompleteProvider.js.map b/dist/main/atom/autoCompleteProvider.js.map
index b0c71d2c5..9bf8c4574 100644
--- a/dist/main/atom/autoCompleteProvider.js.map
+++ b/dist/main/atom/autoCompleteProvider.js.map
@@ -1 +1 @@
-{"version":3,"file":"autoCompleteProvider.js","sourceRoot":"","sources":["../../../lib/main/atom/autoCompleteProvider.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"autoCompleteProvider.js","sourceRoot":"","sources":["../../../lib/main/atom/autoCompleteProvider.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/codefix/codeActionsProvider.js b/dist/main/atom/codefix/codeActionsProvider.js
deleted file mode 100644
index 3b809ff9f..000000000
--- a/dist/main/atom/codefix/codeActionsProvider.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const utils_1 = require("../utils");
-class CodeActionsProvider {
- constructor(codefixProvider) {
- this.codefixProvider = codefixProvider;
- this.grammarScopes = utils_1.typeScriptScopes();
- this.priority = 0;
- }
- async getCodeActions(textEditor, range, _diagnostics) {
- return (await this.codefixProvider.runCodeFix(textEditor, range.start)).map(fix => ({
- getTitle: async () => fix.description,
- dispose: () => { },
- apply: async () => {
- await this.codefixProvider.applyFix(fix);
- },
- }));
- }
-}
-exports.CodeActionsProvider = CodeActionsProvider;
-//# sourceMappingURL=codeActionsProvider.js.map
\ No newline at end of file
diff --git a/dist/main/atom/codefix/codeActionsProvider.js.map b/dist/main/atom/codefix/codeActionsProvider.js.map
deleted file mode 100644
index 79349b9fd..000000000
--- a/dist/main/atom/codefix/codeActionsProvider.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"codeActionsProvider.js","sourceRoot":"","sources":["../../../../lib/main/atom/codefix/codeActionsProvider.ts"],"names":[],"mappings":";;AAEA,oCAAyC;AAwBzC,MAAa,mBAAmB;IAI9B,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAH7C,kBAAa,GAAG,wBAAgB,EAAE,CAAA;QAClC,aAAQ,GAAG,CAAC,CAAA;IAEoC,CAAC;IAEjD,KAAK,CAAC,cAAc,CACzB,UAA2B,EAC3B,KAAiB,EACjB,YAAuB;QAEvB,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClF,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW;YACrC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;YACjB,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC1C,CAAC;SACF,CAAC,CAAC,CAAA;IACL,CAAC;CACF;AAnBD,kDAmBC"}
\ No newline at end of file
diff --git a/dist/main/atom/codefix/codefixProvider.js b/dist/main/atom/codefix/codefixProvider.js
index cf1bcd36d..6d95ca218 100644
--- a/dist/main/atom/codefix/codefixProvider.js
+++ b/dist/main/atom/codefix/codefixProvider.js
@@ -8,14 +8,25 @@ class CodefixProvider {
this.applyEdits = applyEdits;
this.supportedFixes = new WeakMap();
}
+ async getFixableRanges(textEditor, range) {
+ const filePath = textEditor.getPath();
+ if (filePath === undefined)
+ return [];
+ const errors = this.errorPusher.getErrorsInRange(filePath, range);
+ const client = await this.clientResolver.get(filePath);
+ const supportedCodes = await this.getSupportedFixes(client);
+ const ranges = Array.from(errors)
+ .filter(error => error.code !== undefined && supportedCodes.has(error.code))
+ .map(error => utils_1.spanToRange(error));
+ return ranges;
+ }
async runCodeFix(textEditor, bufferPosition) {
const filePath = textEditor.getPath();
if (filePath === undefined)
return [];
const client = await this.clientResolver.get(filePath);
const supportedCodes = await this.getSupportedFixes(client);
- const requests = this.errorPusher
- .getErrorsAt(filePath, utils_1.pointToLocation(bufferPosition))
+ const requests = Array.from(this.errorPusher.getErrorsAt(filePath, bufferPosition))
.filter(error => error.code !== undefined && supportedCodes.has(error.code))
.map(error => client.execute("getCodeFixes", {
file: filePath,
@@ -47,7 +58,7 @@ class CodefixProvider {
if (codes) {
return codes;
}
- const result = await client.execute("getSupportedCodeFixes", undefined);
+ const result = await client.execute("getSupportedCodeFixes");
if (!result.body) {
throw new Error("No code fixes are supported");
}
diff --git a/dist/main/atom/codefix/codefixProvider.js.map b/dist/main/atom/codefix/codefixProvider.js.map
index 8ff7efba4..cca1ab3b6 100644
--- a/dist/main/atom/codefix/codefixProvider.js.map
+++ b/dist/main/atom/codefix/codefixProvider.js.map
@@ -1 +1 @@
-{"version":3,"file":"codefixProvider.js","sourceRoot":"","sources":["../../../../lib/main/atom/codefix/codefixProvider.ts"],"names":[],"mappings":";;AAGA,oCAAwC;AAIxC,MAAa,eAAe;IAG1B,YACU,cAA8B,EAC9B,WAAwB,EACxB,UAAsB;QAFtB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,gBAAW,GAAX,WAAW,CAAa;QACxB,eAAU,GAAV,UAAU,CAAY;QALxB,mBAAc,GAAkD,IAAI,OAAO,EAAE,CAAA;IAMlF,CAAC;IAEG,KAAK,CAAC,UAAU,CACrB,UAA2B,EAC3B,cAA8B;QAE9B,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,CAAA;QAErC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,CAAA;QAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACtD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAE3D,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW;aAC9B,WAAW,CAAC,QAAQ,EAAE,uBAAe,CAAC,cAAc,CAAC,CAAC;aACtD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC3E,GAAG,CAAC,KAAK,CAAC,EAAE,CACX,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;YAC7B,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YAC3B,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;YAC/B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;YACvB,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM;YAC3B,UAAU,EAAE,CAAC,KAAK,CAAC,IAAK,CAAC;SAC1B,CAAC,CACH,CAAA;QAEH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,OAAO,GAA0B,EAAE,CAAA;QAEzC,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;YAC1B,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE;oBAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;iBAClB;aACF;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAAwB;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAEM,OAAO;QACZ,OAAO;IACT,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,MAA+B;QAC7D,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3C,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAA;SACb;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAA;QAEvE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;SAC/C;QAED,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAxED,0CAwEC"}
\ No newline at end of file
+{"version":3,"file":"codefixProvider.js","sourceRoot":"","sources":["../../../../lib/main/atom/codefix/codefixProvider.ts"],"names":[],"mappings":";;AAIA,oCAAoC;AAEpC,MAAa,eAAe;IAG1B,YACU,cAA8B,EAC9B,WAAwB,EACxB,UAAsB;QAFtB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,gBAAW,GAAX,WAAW,CAAa;QACxB,eAAU,GAAV,UAAU,CAAY;QALxB,mBAAc,GAAmC,IAAI,OAAO,EAAE,CAAA;IAMnE,CAAC;IAEG,KAAK,CAAC,gBAAgB,CAAC,UAA2B,EAAE,KAAiB;QAC1E,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,CAAA;QACrC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,CAAA;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACtD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAE3D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;aAC9B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC3E,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QAEnC,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,UAA2B,EAC3B,cAA0B;QAE1B,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,CAAA;QAErC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,CAAA;QAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACtD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAE3D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;aAChF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC3E,GAAG,CAAC,KAAK,CAAC,EAAE,CACX,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE;YAC7B,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YAC3B,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;YAC/B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;YACvB,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM;YAC3B,UAAU,EAAE,CAAC,KAAK,CAAC,IAAK,CAAC;SAC1B,CAAC,CACH,CAAA;QAEH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACzC,MAAM,OAAO,GAA0B,EAAE,CAAA;QAEzC,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;YAC1B,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE;oBAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;iBAClB;aACF;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,GAAwB;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAEM,OAAO;QACZ,OAAO;IACT,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,MAAgB;QAC9C,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3C,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAA;SACb;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;QAE5D,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;SAC/C;QAED,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AArFD,0CAqFC"}
\ No newline at end of file
diff --git a/dist/main/atom/codefix/index.js b/dist/main/atom/codefix/index.js
index 8c0881a44..fba477584 100644
--- a/dist/main/atom/codefix/index.js
+++ b/dist/main/atom/codefix/index.js
@@ -1,9 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var codeActionsProvider_1 = require("./codeActionsProvider");
-exports.CodeActionsProvider = codeActionsProvider_1.CodeActionsProvider;
-var intentionsProvider_1 = require("./intentionsProvider");
-exports.IntentionsProvider = intentionsProvider_1.IntentionsProvider;
var codefixProvider_1 = require("./codefixProvider");
exports.CodefixProvider = codefixProvider_1.CodefixProvider;
//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/dist/main/atom/codefix/index.js.map b/dist/main/atom/codefix/index.js.map
index c78325eaf..f52443065 100644
--- a/dist/main/atom/codefix/index.js.map
+++ b/dist/main/atom/codefix/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/main/atom/codefix/index.ts"],"names":[],"mappings":";;AAAA,6DAAyD;AAAjD,oDAAA,mBAAmB,CAAA;AAC3B,2DAAuD;AAA/C,kDAAA,kBAAkB,CAAA;AAC1B,qDAAiD;AAAzC,4CAAA,eAAe,CAAA"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/main/atom/codefix/index.ts"],"names":[],"mappings":";;AAAA,qDAAiD;AAAzC,4CAAA,eAAe,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/codefix/intentionsProvider.js b/dist/main/atom/codefix/intentionsProvider.js
index 9dd2ec848..9888218a5 100644
--- a/dist/main/atom/codefix/intentionsProvider.js
+++ b/dist/main/atom/codefix/intentionsProvider.js
@@ -1,19 +1,33 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-class IntentionsProvider {
- constructor(codefixProvider) {
- this.codefixProvider = codefixProvider;
- this.grammarScopes = ["*"];
- }
- async getIntentions({ bufferPosition, textEditor, }) {
- return (await this.codefixProvider.runCodeFix(textEditor, bufferPosition)).map(fix => ({
- priority: 100,
- title: fix.description,
- selected: () => {
- this.codefixProvider.applyFix(fix);
- },
- }));
- }
+const utils_1 = require("../../../utils");
+function getIntentionsProvider(codefixProvider) {
+ return {
+ grammarScopes: ["*"],
+ async getIntentions({ bufferPosition, textEditor }) {
+ return (await codefixProvider.runCodeFix(textEditor, bufferPosition)).map(fix => ({
+ priority: 100,
+ title: fix.description,
+ selected: () => {
+ utils_1.handlePromise(codefixProvider.applyFix(fix));
+ },
+ }));
+ },
+ };
}
-exports.IntentionsProvider = IntentionsProvider;
+exports.getIntentionsProvider = getIntentionsProvider;
+function getIntentionsHighlightsProvider(codefixProvider) {
+ return {
+ grammarScopes: ["*"],
+ async getIntentions({ visibleRange, textEditor }) {
+ return (await codefixProvider.getFixableRanges(textEditor, visibleRange)).map(range => ({
+ range,
+ created: (_opts) => {
+ // NOOP
+ },
+ }));
+ },
+ };
+}
+exports.getIntentionsHighlightsProvider = getIntentionsHighlightsProvider;
//# sourceMappingURL=intentionsProvider.js.map
\ No newline at end of file
diff --git a/dist/main/atom/codefix/intentionsProvider.js.map b/dist/main/atom/codefix/intentionsProvider.js.map
index 9d7d9c4e2..5b1647fc3 100644
--- a/dist/main/atom/codefix/intentionsProvider.js.map
+++ b/dist/main/atom/codefix/intentionsProvider.js.map
@@ -1 +1 @@
-{"version":3,"file":"intentionsProvider.js","sourceRoot":"","sources":["../../../../lib/main/atom/codefix/intentionsProvider.ts"],"names":[],"mappings":";;AAqBA,MAAa,kBAAkB;IAG7B,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;QAF7C,kBAAa,GAAG,CAAC,GAAG,CAAC,CAAA;IAE2B,CAAC;IAEjD,KAAK,CAAC,aAAa,CAAC,EACzB,cAAc,EACd,UAAU,GACW;QACrB,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrF,QAAQ,EAAE,GAAG;YACb,KAAK,EAAE,GAAG,CAAC,WAAW;YACtB,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YACpC,CAAC;SACF,CAAC,CAAC,CAAA;IACL,CAAC;CACF;AAjBD,gDAiBC"}
\ No newline at end of file
+{"version":3,"file":"intentionsProvider.js","sourceRoot":"","sources":["../../../../lib/main/atom/codefix/intentionsProvider.ts"],"names":[],"mappings":";;AACA,0CAA4C;AA6C5C,SAAgB,qBAAqB,CACnC,eAAgC;IAEhC,OAAO;QACL,aAAa,EAAE,CAAC,GAAG,CAAC;QACpB,KAAK,CAAC,aAAa,CAAC,EAAC,cAAc,EAAE,UAAU,EAAC;YAC9C,OAAO,CAAC,MAAM,eAAe,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChF,QAAQ,EAAE,GAAG;gBACb,KAAK,EAAE,GAAG,CAAC,WAAW;gBACtB,QAAQ,EAAE,GAAG,EAAE;oBACb,qBAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC9C,CAAC;aACF,CAAC,CAAC,CAAA;QACL,CAAC;KACF,CAAA;AACH,CAAC;AAfD,sDAeC;AAED,SAAgB,+BAA+B,CAC7C,eAAgC;IAEhC,OAAO;QACL,aAAa,EAAE,CAAC,GAAG,CAAC;QACpB,KAAK,CAAC,aAAa,CAAC,EAAC,YAAY,EAAE,UAAU,EAAC;YAC5C,OAAO,CAAC,MAAM,eAAe,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACtF,KAAK;gBACL,OAAO,EAAE,CAAC,KAA0B,EAAE,EAAE;oBACtC,OAAO;gBACT,CAAC;aACF,CAAC,CAAC,CAAA;QACL,CAAC;KACF,CAAA;AACH,CAAC;AAdD,0EAcC"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/build.js b/dist/main/atom/commands/build.js
index 6d75cd0b6..81c8145b6 100644
--- a/dist/main/atom/commands/build.js
+++ b/dist/main/atom/commands/build.js
@@ -8,6 +8,7 @@ registry_1.addCommand("atom-text-editor", "typescript:build", deps => ({
if (file === undefined)
return;
const client = await deps.getClient(file);
+ deps.reportBuildStatus(undefined);
const projectInfo = await client.execute("projectInfo", {
file,
needFileNameList: true,
@@ -15,23 +16,21 @@ registry_1.addCommand("atom-text-editor", "typescript:build", deps => ({
const files = new Set(projectInfo.body.fileNames);
files.delete(projectInfo.body.configFileName);
let filesSoFar = 0;
- const stp = deps.getStatusPanel();
const promises = [...files.values()].map(f => _finally(client.execute("compileOnSaveEmitFile", { file: f, forced: true }), () => {
- stp.update({ progress: { max: files.size, value: (filesSoFar += 1) } });
- if (files.size <= filesSoFar)
- stp.update({ progress: undefined });
+ filesSoFar += 1;
+ deps.reportProgress({ max: files.size, value: filesSoFar });
}));
try {
const results = await Promise.all(promises);
if (results.some(result => result.body === false)) {
throw new Error("Emit failed");
}
- stp.update({ buildStatus: { success: true } });
+ deps.reportBuildStatus({ success: true });
}
catch (error) {
const err = error;
console.error(err);
- stp.update({ buildStatus: { success: false, message: err.message } });
+ deps.reportBuildStatus({ success: false, message: err.message });
}
},
}));
diff --git a/dist/main/atom/commands/build.js.map b/dist/main/atom/commands/build.js.map
index 433424580..b1228c73a 100644
--- a/dist/main/atom/commands/build.js.map
+++ b/dist/main/atom/commands/build.js.map
@@ -1 +1 @@
-{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/build.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,WAAW,EAAE,oEAAoE;IACjF,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAC7B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAEzC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;YACtD,IAAI;YACJ,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAK,CAAC,SAAS,CAAC,CAAA;QAClD,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,IAAK,CAAC,cAAc,CAAC,CAAA;QAC9C,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACjC,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC3C,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,EAAE,GAAG,EAAE;YAC9E,GAAG,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,EAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,UAAU,IAAI,CAAC,CAAC,EAAC,EAAC,CAAC,CAAA;YACnE,IAAI,KAAK,CAAC,IAAI,IAAI,UAAU;gBAAE,GAAG,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAC,CAAC,CAAA;QACjE,CAAC,CAAC,CACH,CAAA;QAED,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;gBACjD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;aAC/B;YACD,GAAG,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAC,CAAC,CAAA;SAC3C;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,GAAG,GAAG,KAAc,CAAA;YAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,GAAG,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC,EAAC,CAAC,CAAA;SAClE;IACH,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,QAAQ,CAAI,OAAmB,EAAE,QAA6B;IACrE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAChC,OAAO,OAAO,CAAA;AAChB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/build.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,WAAW,EAAE,oEAAoE;IACjF,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAC7B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAEzC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;QAEjC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;YACtD,IAAI;YACJ,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAK,CAAC,SAAS,CAAC,CAAA;QAClD,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,IAAK,CAAC,cAAc,CAAC,CAAA;QAC9C,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC3C,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,EAAE,GAAG,EAAE;YAC9E,UAAU,IAAI,CAAC,CAAA;YACf,IAAI,CAAC,cAAc,CAAC,EAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAC,CAAC,CAAA;QAC3D,CAAC,CAAC,CACH,CAAA;QAED,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;gBACjD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;aAC/B;YACD,IAAI,CAAC,iBAAiB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAA;SACxC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,GAAG,GAAG,KAAc,CAAA;YAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAI,CAAC,iBAAiB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC,CAAC,CAAA;SAC/D;IACH,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,QAAQ,CAAI,OAAmB,EAAE,QAA6B;IACrE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAChC,OAAO,OAAO,CAAA;AAChB,CAAC"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/checkAllFiles.js b/dist/main/atom/commands/checkAllFiles.js
index 921418a2d..c78081a03 100644
--- a/dist/main/atom/commands/checkAllFiles.js
+++ b/dist/main/atom/commands/checkAllFiles.js
@@ -22,25 +22,20 @@ registry_1.addCommand("atom-text-editor", "typescript:check-all-files", deps =>
const disp = client.on("syntaxDiag", evt => {
if (cancelTimeout !== undefined)
window.clearTimeout(cancelTimeout);
- cancelTimeout = window.setTimeout(cancel, 500);
+ cancelTimeout = window.setTimeout(cancel, 2000);
files.delete(evt.file);
updateStatus();
});
- const stp = deps.getStatusPanel();
- stp.update({ progress: { max, value: 0 } });
- client.execute("geterrForProject", { file, delay: 0 });
+ deps.reportProgress({ max, value: 0 });
+ await client.execute("geterrForProject", { file, delay: 0 });
function cancel() {
files.clear();
updateStatus();
}
function updateStatus() {
- if (files.size === 0) {
+ if (files.size === 0)
disp.dispose();
- stp.update({ progress: undefined });
- }
- else {
- stp.update({ progress: { max, value: max - files.size } });
- }
+ deps.reportProgress({ max, value: max - files.size });
}
},
}));
diff --git a/dist/main/atom/commands/checkAllFiles.js.map b/dist/main/atom/commands/checkAllFiles.js.map
index db12aea85..55ffdb87d 100644
--- a/dist/main/atom/commands/checkAllFiles.js.map
+++ b/dist/main/atom/commands/checkAllFiles.js.map
@@ -1 +1 @@
-{"version":3,"file":"checkAllFiles.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/checkAllFiles.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE,sEAAsE;IACnF,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAC7B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAEzC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;YACtD,IAAI;YACJ,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAK,CAAC,SAAS,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAA;QAEtB,gGAAgG;QAChG,iGAAiG;QACjG,kGAAkG;QAClG,2BAA2B;QAC3B,IAAI,aAAiC,CAAA;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;YACzC,IAAI,aAAa,KAAK,SAAS;gBAAE,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;YACnE,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAE9C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACtB,YAAY,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QAEjC,GAAG,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC,EAAC,CAAC,CAAA;QACvC,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAA;QAEpD,SAAS,MAAM;YACb,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,YAAY,EAAE,CAAA;QAChB,CAAC;QAED,SAAS,YAAY;YACnB,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;gBACpB,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,GAAG,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAC,CAAC,CAAA;aAClC;iBAAM;gBACL,GAAG,CAAC,MAAM,CAAC,EAAC,QAAQ,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,EAAC,EAAC,CAAC,CAAA;aACvD;QACH,CAAC;IACH,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
+{"version":3,"file":"checkAllFiles.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/checkAllFiles.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE,sEAAsE;IACnF,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAC7B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAEzC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;YACtD,IAAI;YACJ,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAK,CAAC,SAAS,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAA;QAEtB,gGAAgG;QAChG,iGAAiG;QACjG,kGAAkG;QAClG,2BAA2B;QAC3B,IAAI,aAAiC,CAAA;QAErC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;YACzC,IAAI,aAAa,KAAK,SAAS;gBAAE,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;YACnE,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAE/C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACtB,YAAY,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,cAAc,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAA;QACpC,MAAM,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC,CAAA;QAE1D,SAAS,MAAM;YACb,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,YAAY,EAAE,CAAA;QAChB,CAAC;QAED,SAAS,YAAY;YACnB,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,OAAO,EAAE,CAAA;YACpC,IAAI,CAAC,cAAc,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,EAAC,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/clearErrors.js b/dist/main/atom/commands/clearErrors.js
index dacb14e80..30c18c4fa 100644
--- a/dist/main/atom/commands/clearErrors.js
+++ b/dist/main/atom/commands/clearErrors.js
@@ -7,14 +7,4 @@ registry_1.addCommand("atom-workspace", "typescript:clear-errors", deps => ({
deps.clearErrors();
},
}));
-registry_1.addCommand("atom-text-editor", "typescript:reload-projects", deps => ({
- description: "Reload projects",
- async didDispatch(editor) {
- const path = editor.getPath();
- if (path === undefined)
- return;
- const client = await deps.getClient(path);
- client.execute("reloadProjects", undefined);
- },
-}));
//# sourceMappingURL=clearErrors.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/clearErrors.js.map b/dist/main/atom/commands/clearErrors.js.map
index 3d7198756..3d23f055f 100644
--- a/dist/main/atom/commands/clearErrors.js.map
+++ b/dist/main/atom/commands/clearErrors.js.map
@@ -1 +1 @@
-{"version":3,"file":"clearErrors.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/clearErrors.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,gBAAgB,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,WAAW,EAAE,sBAAsB;IACnC,WAAW;QACT,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,qBAAU,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE,iBAAiB;IAC9B,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAC7B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;IAC7C,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
+{"version":3,"file":"clearErrors.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/clearErrors.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,gBAAgB,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,WAAW,EAAE,sBAAsB;IACnC,WAAW;QACT,IAAI,CAAC,WAAW,EAAE,CAAA;IACpB,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/findReferences.js b/dist/main/atom/commands/findReferences.js
index 061ed1227..9d6683d86 100644
--- a/dist/main/atom/commands/findReferences.js
+++ b/dist/main/atom/commands/findReferences.js
@@ -1,11 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const registry_1 = require("./registry");
-const utils_1 = require("../utils");
-const simpleSelectionView_1 = require("../views/simpleSelectionView");
const etch = require("etch");
const tsView_1 = require("../components/tsView");
+const utils_1 = require("../utils");
const highlightComponent_1 = require("../views/highlightComponent");
+const simpleSelectionView_1 = require("../views/simpleSelectionView");
+const registry_1 = require("./registry");
registry_1.addCommand("atom-text-editor", "typescript:find-references", deps => ({
description: "Find where symbol under text cursor is referenced",
async didDispatch(editor) {
@@ -27,7 +27,7 @@ registry_1.addCommand("atom-text-editor", "typescript:find-references", deps =>
itemFilterKey: "file",
});
if (res)
- deps.getEditorPositionHistoryManager().goForward(editor, res);
+ await deps.histGoForward(editor, res);
},
}));
//# sourceMappingURL=findReferences.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/findReferences.js.map b/dist/main/atom/commands/findReferences.js.map
index 6ba1073ad..b8ffb67c5 100644
--- a/dist/main/atom/commands/findReferences.js.map
+++ b/dist/main/atom/commands/findReferences.js.map
@@ -1 +1 @@
-{"version":3,"file":"findReferences.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/findReferences.tsx"],"names":[],"mappings":";;AAAA,yCAAqC;AACrC,oCAA4C;AAC5C,sEAA2D;AAC3D,6BAA4B;AAC5B,iDAA2C;AAC3C,oEAA8D;AAE9D,qBAAU,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE,mDAAmD;IAChE,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,QAAQ,GAAG,2BAAmB,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAE3D,MAAM,GAAG,GAAG,MAAM,oCAAc,CAAC;YAC/B,KAAK,EAAE,MAAM,CAAC,IAAK,CAAC,IAAI;YACxB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAC1B,OAAO,CACL;oBACE,SAAC,uCAAkB,IACjB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACzC,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE,GAC3B;oBACF,kBAAK,KAAK,EAAC,YAAY;;wBAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO;oBACrD,SAAC,eAAM,IAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAI,CACnC,CACN,CAAA;YACH,CAAC;YACD,aAAa,EAAE,MAAM;SACtB,CAAC,CAAA;QACF,IAAI,GAAG;YAAE,IAAI,CAAC,+BAA+B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACxE,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
+{"version":3,"file":"findReferences.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/findReferences.tsx"],"names":[],"mappings":";;AAAA,6BAA4B;AAC5B,iDAA2C;AAC3C,oCAA4C;AAC5C,oEAA8D;AAC9D,sEAA2D;AAC3D,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE,mDAAmD;IAChE,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,QAAQ,GAAG,2BAAmB,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAE3D,MAAM,GAAG,GAAG,MAAM,oCAAc,CAAC;YAC/B,KAAK,EAAE,MAAM,CAAC,IAAK,CAAC,IAAI;YACxB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAC1B,OAAO,CACL;oBACE,SAAC,uCAAkB,IACjB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACzC,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE,GAC3B;oBACF,kBAAK,KAAK,EAAC,YAAY;;wBAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO;oBACrD,SAAC,eAAM,IAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAI,CACnC,CACN,CAAA;YACH,CAAC;YACD,aAAa,EAAE,MAAM;SACtB,CAAC,CAAA;QACF,IAAI,GAAG;YAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChD,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/formatCode.js b/dist/main/atom/commands/formatCode.js
index 72f004e9a..dac5ac691 100644
--- a/dist/main/atom/commands/formatCode.js
+++ b/dist/main/atom/commands/formatCode.js
@@ -1,7 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const registry_1 = require("./registry");
const utils_1 = require("../utils");
+const registry_1 = require("./registry");
registry_1.addCommand("atom-text-editor", "typescript:format-code", deps => ({
description: "Format code in currently active text editor",
async didDispatch(editor) {
diff --git a/dist/main/atom/commands/formatCode.js.map b/dist/main/atom/commands/formatCode.js.map
index 56f1ee2db..008d8b121 100644
--- a/dist/main/atom/commands/formatCode.js.map
+++ b/dist/main/atom/commands/formatCode.js.map
@@ -1 +1 @@
-{"version":3,"file":"formatCode.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/formatCode.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AACrC,oCAAwF;AAGxF,qBAAU,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,WAAW,EAAE,6CAA6C;IAC1D,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QACjC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAM;QAElC,MAAM,MAAM,GAAyB,EAAE,CAAA;QAEvC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,uBAAuB,EAAE,EAAE;YACxD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,4BAAoB,CAAC,SAAS,CAAC,CAAC,CAAA;aAC7C;SACF;QAED,yDAAyD;QACzD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,CAAA;YAC/C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;gBACpB,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;aAC1B,CAAC,CAAA;SACH;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAe,EAAE,CAAA;QAE5B,iFAAiF;QACjF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,oBAAM,KAAK,IAAE,IAAI,EAAE,QAAQ,IAAE,CAAA;YACzE,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;aAC3B;SACF;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACnB,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;SACH;IACH,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,UAAU,CAAC,MAAkB,EAAE,KAAiB;IACvD,qDAAqD;IACrD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,CAAC,oBAAoB,CAAC,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;KACrE;AACH,CAAC"}
\ No newline at end of file
+{"version":3,"file":"formatCode.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/formatCode.ts"],"names":[],"mappings":";;AACA,oCAAwF;AACxF,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,wBAAwB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,WAAW,EAAE,6CAA6C;IAC1D,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QACjC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAM;QAElC,MAAM,MAAM,GAAyB,EAAE,CAAA;QAEvC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,uBAAuB,EAAE,EAAE;YACxD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,4BAAoB,CAAC,SAAS,CAAC,CAAC,CAAA;aAC7C;SACF;QAED,yDAAyD;QACzD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,CAAA;YAC/C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;gBACpB,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;aAC1B,CAAC,CAAA;SACH;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAe,EAAE,CAAA;QAE5B,iFAAiF;QACjF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,oBAAM,KAAK,IAAE,IAAI,EAAE,QAAQ,IAAE,CAAA;YACzE,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;aAC3B;SACF;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACnB,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;SACH;IACH,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,UAAU,CAAC,MAAkB,EAAE,KAAiB;IACvD,qDAAqD;IACrD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,CAAC,oBAAoB,CAAC,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;KACrE;AACH,CAAC"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/goToDeclaration.js b/dist/main/atom/commands/goToDeclaration.js
index 4f35938a7..9105e9d33 100644
--- a/dist/main/atom/commands/goToDeclaration.js
+++ b/dist/main/atom/commands/goToDeclaration.js
@@ -1,10 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const registry_1 = require("./registry");
-const utils_1 = require("../utils");
-const simpleSelectionView_1 = require("../views/simpleSelectionView");
const etch = require("etch");
+const utils_1 = require("../utils");
const highlightComponent_1 = require("../views/highlightComponent");
+const simpleSelectionView_1 = require("../views/simpleSelectionView");
+const registry_1 = require("./registry");
registry_1.addCommand("atom-text-editor", "typescript:go-to-declaration", deps => ({
description: "Go to declaration of symbol under text cursor",
async didDispatch(editor) {
@@ -13,10 +13,10 @@ registry_1.addCommand("atom-text-editor", "typescript:go-to-declaration", deps =
return;
const client = await deps.getClient(location.file);
const result = await client.execute("definition", location);
- handleDefinitionResult(result, editor, deps.getEditorPositionHistoryManager());
+ await handleDefinitionResult(result, editor, deps.histGoForward);
},
}));
-async function handleDefinitionResult(result, editor, hist) {
+async function handleDefinitionResult(result, editor, histGoForward) {
if (!result.body) {
return;
}
@@ -33,10 +33,10 @@ async function handleDefinitionResult(result, editor, hist) {
itemFilterKey: "file",
});
if (res)
- hist.goForward(editor, res);
+ await histGoForward(editor, res);
}
else if (result.body.length > 0) {
- hist.goForward(editor, result.body[0]);
+ await histGoForward(editor, result.body[0]);
}
}
exports.handleDefinitionResult = handleDefinitionResult;
diff --git a/dist/main/atom/commands/goToDeclaration.js.map b/dist/main/atom/commands/goToDeclaration.js.map
index 36a72d9d3..6b9c04e1b 100644
--- a/dist/main/atom/commands/goToDeclaration.js.map
+++ b/dist/main/atom/commands/goToDeclaration.js.map
@@ -1 +1 @@
-{"version":3,"file":"goToDeclaration.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/goToDeclaration.tsx"],"names":[],"mappings":";;AAAA,yCAAqC;AACrC,oCAA4C;AAC5C,sEAA2D;AAC3D,6BAA4B;AAC5B,oEAA8D;AAI9D,qBAAU,CAAC,kBAAkB,EAAE,8BAA8B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,WAAW,EAAE,+CAA+C;IAC5D,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,QAAQ,GAAG,2BAAmB,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC3D,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAA;IAChF,CAAC;CACF,CAAC,CAAC,CAAA;AAEI,KAAK,UAAU,sBAAsB,CAC1C,MAAmC,EACnC,MAAkB,EAClB,IAAkC;IAElC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAChB,OAAM;KACP;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,oCAAc,CAAC;YAC/B,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAC1B,OAAO,CACL;oBACE,SAAC,uCAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE,GAAI;oBACrE,kBAAK,KAAK,EAAC,YAAY;;wBAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO,CAClD,CACN,CAAA;YACH,CAAC;YACD,aAAa,EAAE,MAAM;SACtB,CAAC,CAAA;QACF,IAAI,GAAG;YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACrC;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;KACvC;AACH,CAAC;AAxBD,wDAwBC"}
\ No newline at end of file
+{"version":3,"file":"goToDeclaration.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/goToDeclaration.tsx"],"names":[],"mappings":";;AACA,6BAA4B;AAC5B,oCAA4C;AAC5C,oEAA8D;AAC9D,sEAA2D;AAC3D,yCAAmD;AAEnD,qBAAU,CAAC,kBAAkB,EAAE,8BAA8B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,WAAW,EAAE,+CAA+C;IAC5D,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,QAAQ,GAAG,2BAAmB,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC3D,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;IAClE,CAAC;CACF,CAAC,CAAC,CAAA;AAEI,KAAK,UAAU,sBAAsB,CAC1C,MAAmC,EACnC,MAAkB,EAClB,aAA4C;IAE5C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAChB,OAAM;KACP;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,MAAM,GAAG,GAAG,MAAM,oCAAc,CAAC;YAC/B,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAC1B,OAAO,CACL;oBACE,SAAC,uCAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE,GAAI;oBACrE,kBAAK,KAAK,EAAC,YAAY;;wBAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO,CAClD,CACN,CAAA;YACH,CAAC;YACD,aAAa,EAAE,MAAM;SACtB,CAAC,CAAA;QACF,IAAI,GAAG;YAAE,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC1C;SAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;KAC5C;AACH,CAAC;AAxBD,wDAwBC"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/hideSigHelp.js b/dist/main/atom/commands/hideSigHelp.js
new file mode 100644
index 000000000..4f42c83ff
--- /dev/null
+++ b/dist/main/atom/commands/hideSigHelp.js
@@ -0,0 +1,11 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const registry_1 = require("./registry");
+registry_1.addCommand("atom-text-editor", "typescript:hide-signature-help", deps => ({
+ description: "Hide the currently visible signature help",
+ async didDispatch(ed, ignore) {
+ if (!deps.hideSigHelpAt(ed))
+ ignore();
+ },
+}));
+//# sourceMappingURL=hideSigHelp.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/hideSigHelp.js.map b/dist/main/atom/commands/hideSigHelp.js.map
new file mode 100644
index 000000000..326b3e59e
--- /dev/null
+++ b/dist/main/atom/commands/hideSigHelp.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"hideSigHelp.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/hideSigHelp.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,WAAW,EAAE,2CAA2C;IACxD,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAAE,MAAM,EAAE,CAAA;IACvC,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/index.js b/dist/main/atom/commands/index.js
index f0acf1601..e51d44d92 100644
--- a/dist/main/atom/commands/index.js
+++ b/dist/main/atom/commands/index.js
@@ -1,23 +1,27 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const registry_1 = require("./registry");
const atom_1 = require("atom");
const utils_1 = require("../utils");
+const registry_1 = require("./registry");
// Import all of the command files for their side effects
require("./build");
require("./checkAllFiles");
require("./clearErrors");
-require("./formatCode");
require("./findReferences");
+require("./formatCode");
require("./goToDeclaration");
-require("./returnFromDeclaration");
-require("./renameRefactor");
-require("./showTooltip");
+require("./hideSigHelp");
require("./initializeConfig");
+require("./organizeImports");
+require("./refactorCode");
+require("./reloadProjects");
+require("./renameRefactor");
+require("./restartAllServers");
+require("./returnFromDeclaration");
require("./semanticView");
+require("./showSigHelp");
+require("./showTooltip");
require("./symbolsView");
-require("./refactorCode");
-require("./organizeImports");
function registerCommands(deps) {
const disp = new atom_1.CompositeDisposable();
for (const cmd of registry_1.getCommands()) {
@@ -48,14 +52,14 @@ function registerCommands(deps) {
}
else {
const d = cmd.desc(deps);
- atom.commands.add(cmd.selector, cmd.command, Object.assign({}, d, { async didDispatch() {
+ disp.add(atom.commands.add(cmd.selector, cmd.command, Object.assign({}, d, { async didDispatch() {
try {
await d.didDispatch();
}
catch (error) {
handle(error);
}
- } }));
+ } })));
}
}
return disp;
diff --git a/dist/main/atom/commands/index.js.map b/dist/main/atom/commands/index.js.map
index 37238f3b9..04ee7851b 100644
--- a/dist/main/atom/commands/index.js.map
+++ b/dist/main/atom/commands/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/index.ts"],"names":[],"mappings":";;AAAA,yCAAoD;AACpD,+BAAwC;AACxC,oCAAwE;AAExE,yDAAyD;AACzD,mBAAgB;AAChB,2BAAwB;AACxB,yBAAsB;AACtB,wBAAqB;AACrB,4BAAyB;AACzB,6BAA0B;AAC1B,mCAAgC;AAChC,4BAAyB;AACzB,yBAAsB;AACtB,8BAA2B;AAC3B,0BAAuB;AACvB,yBAAsB;AACtB,0BAAuB;AACvB,6BAA0B;AAE1B,SAAgB,gBAAgB,CAAC,IAAkB;IACjD,MAAM,IAAI,GAAG,IAAI,0BAAmB,EAAE,CAAA;IACtC,KAAK,MAAM,GAAG,IAAI,sBAAW,EAAE,EAAE;QAC/B,IAAI,GAAG,CAAC,QAAQ,KAAK,kBAAkB,EAAE;YACvC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxB,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,oBACtC,CAAC,IACJ,KAAK,CAAC,WAAW,CAAC,CAAC;oBACjB,IAAI;wBACF,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBACzC,IAAI,kCAA0B,CAAC,MAAM,CAAC,EAAE;4BACtC,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAA;yBACvD;6BAAM;4BACL,CAAC,CAAC,eAAe,EAAE,CAAA;4BACnB,IAAI,2BAAmB,CAAC,MAAM,CAAC,EAAE;gCAC/B,IAAI,CAAC,aAAa,CAAC,UAAU,CAC3B,yEAAyE,EACzE;oCACE,WAAW,EACT,0DAA0D;wCAC1D,+BAA+B,GAAG,CAAC,OAAO,6BAA6B;wCACvE,4DAA4D;oCAC9D,WAAW,EAAE,IAAI;iCAClB,CACF,CAAA;6BACF;yBACF;qBACF;oBAAC,OAAO,KAAK,EAAE;wBACd,MAAM,CAAC,KAAc,CAAC,CAAA;qBACvB;gBACH,CAAC,IACD,CACH,CAAA;SACF;aAAM;YACL,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,oBACtC,CAAC,IACJ,KAAK,CAAC,WAAW;oBACf,IAAI;wBACF,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;qBACtB;oBAAC,OAAO,KAAK,EAAE;wBACd,MAAM,CAAC,KAAc,CAAC,CAAA;qBACvB;gBACH,CAAC,IACD,CAAA;SACH;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAjDD,4CAiDC;AAED,SAAS,MAAM,CAAC,GAAU;IACxB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,0CAA0C,EAAE;QAC3E,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/index.ts"],"names":[],"mappings":";;AAAA,+BAAwD;AACxD,oCAAwE;AACxE,yCAAoD;AAEpD,yDAAyD;AACzD,mBAAgB;AAChB,2BAAwB;AACxB,yBAAsB;AACtB,4BAAyB;AACzB,wBAAqB;AACrB,6BAA0B;AAC1B,yBAAsB;AACtB,8BAA2B;AAC3B,6BAA0B;AAC1B,0BAAuB;AACvB,4BAAyB;AACzB,4BAAyB;AACzB,+BAA4B;AAC5B,mCAAgC;AAChC,0BAAuB;AACvB,yBAAsB;AACtB,yBAAsB;AACtB,yBAAsB;AAEtB,SAAgB,gBAAgB,CAAC,IAAkB;IACjD,MAAM,IAAI,GAAG,IAAI,0BAAmB,EAAE,CAAA;IACtC,KAAK,MAAM,GAAG,IAAI,sBAAW,EAAE,EAAE;QAC/B,IAAI,GAAG,CAAC,QAAQ,KAAK,kBAAkB,EAAE;YACvC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxB,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,oBACtC,CAAC,IACJ,KAAK,CAAC,WAAW,CAAC,CAAC;oBACjB,IAAI;wBACF,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;wBACzC,IAAI,kCAA0B,CAAC,MAAM,CAAC,EAAE;4BACtC,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAA;yBACvD;6BAAM;4BACL,CAAC,CAAC,eAAe,EAAE,CAAA;4BACnB,IAAI,2BAAmB,CAAC,MAAM,CAAC,EAAE;gCAC/B,IAAI,CAAC,aAAa,CAAC,UAAU,CAC3B,yEAAyE,EACzE;oCACE,WAAW,EACT,0DAA0D;wCAC1D,+BAA+B,GAAG,CAAC,OAAO,6BAA6B;wCACvE,4DAA4D;oCAC9D,WAAW,EAAE,IAAI;iCAClB,CACF,CAAA;6BACF;yBACF;qBACF;oBAAC,OAAO,KAAK,EAAE;wBACd,MAAM,CAAC,KAAc,CAAC,CAAA;qBACvB;gBACH,CAAC,IACD,CACH,CAAA;SACF;aAAM;YACL,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACxB,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,oBACtC,CAAC,IACJ,KAAK,CAAC,WAAW;oBACf,IAAI;wBACF,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;qBACtB;oBAAC,OAAO,KAAK,EAAE;wBACd,MAAM,CAAC,KAAc,CAAC,CAAA;qBACvB;gBACH,CAAC,IACD,CACH,CAAA;SACF;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAnDD,4CAmDC;AAED,SAAS,MAAM,CAAC,GAAU;IACxB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,0CAA0C,EAAE;QAC3E,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/initializeConfig.js b/dist/main/atom/commands/initializeConfig.js
index b3b66aab9..cebf27cbc 100644
--- a/dist/main/atom/commands/initializeConfig.js
+++ b/dist/main/atom/commands/initializeConfig.js
@@ -1,8 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const registry_1 = require("./registry");
-const clientResolver_1 = require("../../../client/clientResolver");
const atom_1 = require("atom");
+const client_1 = require("../../../client");
+const registry_1 = require("./registry");
registry_1.addCommand("atom-text-editor", "typescript:initialize-config", () => ({
description: "Create tsconfig.json in the project related to currently-active text edtior",
async didDispatch(editor, abort) {
@@ -12,7 +12,7 @@ registry_1.addCommand("atom-text-editor", "typescript:initialize-config", () =>
const currentPath = editor.getPath();
if (currentPath === undefined)
return;
- const pathToTsc = (await clientResolver_1.resolveBinary(currentPath, "tsc")).pathToBin;
+ const pathToTsc = (await client_1.resolveBinary(currentPath, "tsc")).pathToBin;
for (const projectDir of projectDirs) {
if (projectDir.contains(currentPath)) {
await initConfig(pathToTsc, projectDir.getPath());
@@ -21,25 +21,32 @@ registry_1.addCommand("atom-text-editor", "typescript:initialize-config", () =>
}
},
}));
-function initConfig(tsc, projectRoot) {
- return new Promise((resolve, reject) => {
- try {
- const bnp = new atom_1.BufferedNodeProcess({
- command: tsc,
- args: ["--init"],
- options: { cwd: projectRoot },
- exit: code => {
- if (code === 0)
- resolve();
- else
- reject(new Error(`Tsc ended with nonzero exit code ${code}`));
- },
- });
- bnp.onWillThrowError(reject);
- }
- catch (e) {
- reject(e);
- }
- });
+async function initConfig(tsc, projectRoot) {
+ let disp;
+ try {
+ return await new Promise((resolve, reject) => {
+ try {
+ const bnp = new atom_1.BufferedNodeProcess({
+ command: tsc,
+ args: ["--init"],
+ options: { cwd: projectRoot },
+ exit: code => {
+ if (code === 0)
+ resolve();
+ else
+ reject(new Error(`Tsc ended with nonzero exit code ${code}`));
+ },
+ });
+ disp = bnp.onWillThrowError(reject);
+ }
+ catch (e) {
+ reject(e);
+ }
+ });
+ }
+ finally {
+ if (disp)
+ disp.dispose();
+ }
}
//# sourceMappingURL=initializeConfig.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/initializeConfig.js.map b/dist/main/atom/commands/initializeConfig.js.map
index 2b932818e..ad84cea4f 100644
--- a/dist/main/atom/commands/initializeConfig.js.map
+++ b/dist/main/atom/commands/initializeConfig.js.map
@@ -1 +1 @@
-{"version":3,"file":"initializeConfig.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/initializeConfig.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AACrC,mEAA4D;AAC5D,+BAAwC;AAExC,qBAAU,CAAC,kBAAkB,EAAE,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE,6EAA6E;IAC1F,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;QACjD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,EAAE,CAAA;QAE5C,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QACpC,IAAI,WAAW,KAAK,SAAS;YAAE,OAAM;QAErC,MAAM,SAAS,GAAG,CAAC,MAAM,8BAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QAErE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACpC,MAAM,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;gBACjD,IAAI,CAAC,aAAa,CAAC,UAAU,CAC3B,yCAAyC,UAAU,CAAC,OAAO,EAAE,EAAE,CAChE,CAAA;aACF;SACF;IACH,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,UAAU,CAAC,GAAW,EAAE,WAAmB;IAClD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,0BAAmB,CAAC;gBAClC,OAAO,EAAE,GAAG;gBACZ,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,OAAO,EAAE,EAAC,GAAG,EAAE,WAAW,EAAC;gBAC3B,IAAI,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,IAAI,KAAK,CAAC;wBAAE,OAAO,EAAE,CAAA;;wBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC,CAAA;gBACpE,CAAC;aACF,CAAC,CAAA;YACF,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;SAC7B;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAA;SACV;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
+{"version":3,"file":"initializeConfig.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/initializeConfig.ts"],"names":[],"mappings":";;AAAA,+BAAwC;AACxC,4CAA6C;AAC7C,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,8BAA8B,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE,6EAA6E;IAC1F,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;QACjD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,EAAE,CAAA;QAE5C,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QACpC,IAAI,WAAW,KAAK,SAAS;YAAE,OAAM;QAErC,MAAM,SAAS,GAAG,CAAC,MAAM,sBAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QAErE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBACpC,MAAM,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;gBACjD,IAAI,CAAC,aAAa,CAAC,UAAU,CAC3B,yCAAyC,UAAU,CAAC,OAAO,EAAE,EAAE,CAChE,CAAA;aACF;SACF;IACH,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,WAAmB;IACxD,IAAI,IAAuC,CAAA;IAC3C,IAAI;QACF,OAAO,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,IAAI;gBACF,MAAM,GAAG,GAAG,IAAI,0BAAmB,CAAC;oBAClC,OAAO,EAAE,GAAG;oBACZ,IAAI,EAAE,CAAC,QAAQ,CAAC;oBAChB,OAAO,EAAE,EAAC,GAAG,EAAE,WAAW,EAAC;oBAC3B,IAAI,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,IAAI,KAAK,CAAC;4BAAE,OAAO,EAAE,CAAA;;4BACpB,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC,CAAA;oBACpE,CAAC;iBACF,CAAC,CAAA;gBACF,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;aACpC;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,CAAC,CAAC,CAAC,CAAA;aACV;QACH,CAAC,CAAC,CAAA;KACH;YAAS;QACR,IAAI,IAAI;YAAE,IAAI,CAAC,OAAO,EAAE,CAAA;KACzB;AACH,CAAC"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/refactorCode.js b/dist/main/atom/commands/refactorCode.js
index 6e62766e7..429e89af1 100644
--- a/dist/main/atom/commands/refactorCode.js
+++ b/dist/main/atom/commands/refactorCode.js
@@ -1,10 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const registry_1 = require("./registry");
-const utils_1 = require("../utils");
-const simpleSelectionView_1 = require("../views/simpleSelectionView");
const etch = require("etch");
+const utils_1 = require("../utils");
const highlightComponent_1 = require("../views/highlightComponent");
+const simpleSelectionView_1 = require("../views/simpleSelectionView");
+const registry_1 = require("./registry");
registry_1.addCommand("atom-text-editor", "typescript:refactor-selection", deps => ({
description: "Get a list of applicable refactors to selected code",
async didDispatch(editor) {
diff --git a/dist/main/atom/commands/refactorCode.js.map b/dist/main/atom/commands/refactorCode.js.map
index 8ff3de29e..39f2929db 100644
--- a/dist/main/atom/commands/refactorCode.js.map
+++ b/dist/main/atom/commands/refactorCode.js.map
@@ -1 +1 @@
-{"version":3,"file":"refactorCode.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/refactorCode.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"refactorCode.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/refactorCode.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/registry.js.map b/dist/main/atom/commands/registry.js.map
index caa2f0a36..e5ba07bfa 100644
--- a/dist/main/atom/commands/registry.js.map
+++ b/dist/main/atom/commands/registry.js.map
@@ -1 +1 @@
-{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/registry.ts"],"names":[],"mappings":";;AA6CA,kGAAkG;AAClG,mGAAmG;AACnG,gFAAgF;AAChF,MAAM,QAAQ,GAA4D,EAAE,CAAA;AAE5E,SAAgB,UAAU,CACxB,QAAkB,EAClB,OAAe,EACf,IAAkC;IAElC,QAAQ,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAA6C,CAAC,CAAA;AACtF,CAAC;AAND,gCAMC;AAED,SAAgB,WAAW;IACzB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAFD,kCAEC"}
\ No newline at end of file
+{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/registry.ts"],"names":[],"mappings":";;AAmDA,kGAAkG;AAClG,mGAAmG;AACnG,gFAAgF;AAChF,MAAM,QAAQ,GAA4D,EAAE,CAAA;AAE5E,SAAgB,UAAU,CACxB,QAAkB,EAClB,OAAe,EACf,IAAkC;IAElC,QAAQ,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAA6C,CAAC,CAAA;AACtF,CAAC;AAND,gCAMC;AAED,SAAgB,WAAW;IACzB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAFD,kCAEC"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/reloadProjects.js b/dist/main/atom/commands/reloadProjects.js
new file mode 100644
index 000000000..a30796294
--- /dev/null
+++ b/dist/main/atom/commands/reloadProjects.js
@@ -0,0 +1,14 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const registry_1 = require("./registry");
+registry_1.addCommand("atom-text-editor", "typescript:reload-projects", deps => ({
+ description: "Reload projects",
+ async didDispatch(editor) {
+ const path = editor.getPath();
+ if (path === undefined)
+ return;
+ const client = await deps.getClient(path);
+ await client.execute("reloadProjects");
+ },
+}));
+//# sourceMappingURL=reloadProjects.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/reloadProjects.js.map b/dist/main/atom/commands/reloadProjects.js.map
new file mode 100644
index 000000000..7f006d4a2
--- /dev/null
+++ b/dist/main/atom/commands/reloadProjects.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"reloadProjects.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/reloadProjects.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE,iBAAiB;IAC9B,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAC7B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAM;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACxC,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/renameRefactor.js b/dist/main/atom/commands/renameRefactor.js
index e9f2a7c4c..efb54132f 100644
--- a/dist/main/atom/commands/renameRefactor.js
+++ b/dist/main/atom/commands/renameRefactor.js
@@ -1,8 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const registry_1 = require("./registry");
const utils_1 = require("../utils");
const renameView_1 = require("../views/renameView");
+const registry_1 = require("./registry");
registry_1.addCommand("atom-text-editor", "typescript:rename-refactor", deps => ({
description: "Rename symbol under text cursor everywhere it is used",
async didDispatch(editor) {
diff --git a/dist/main/atom/commands/renameRefactor.js.map b/dist/main/atom/commands/renameRefactor.js.map
index ae45d51c3..0bd6f8270 100644
--- a/dist/main/atom/commands/renameRefactor.js.map
+++ b/dist/main/atom/commands/renameRefactor.js.map
@@ -1 +1 @@
-{"version":3,"file":"renameRefactor.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/renameRefactor.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AACrC,oCAA4C;AAC5C,oDAAoD;AAEpD,qBAAU,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE,uDAAuD;IACpE,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,QAAQ,GAAG,2BAAmB,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,QAAQ,CAAC,IAAK,CAAA;QAEnC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAA;YAC7E,OAAM;SACP;QAED,MAAM,OAAO,GAAG,MAAM,6BAAgB,CAAC;YACrC,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,UAAU,EAAE,CAAC,OAAO,EAAU,EAAE;gBAC9B,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,EAAE;oBACjD,OAAO,2CAA2C,CAAA;iBACnD;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;oBACnB,OAAO,0CAA0C,CAAA;iBAClD;gBACD,OAAO,EAAE,CAAA;YACX,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,CAAC,UAAU,CACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAK,GAAG,IAAE,OAAO,EAAE,OAAO,IAAE,CAAC;aAChE,CAAC,CAAC,CACJ,CAAA;SACF;IACH,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
+{"version":3,"file":"renameRefactor.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/renameRefactor.ts"],"names":[],"mappings":";;AAAA,oCAA4C;AAC5C,oDAAoD;AACpD,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,4BAA4B,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE,uDAAuD;IACpE,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,MAAM,QAAQ,GAAG,2BAAmB,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,QAAQ,CAAC,IAAK,CAAA;QAEnC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAA;YAC7E,OAAM;SACP;QAED,MAAM,OAAO,GAAG,MAAM,6BAAgB,CAAC;YACrC,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,IAAI,CAAC,WAAW;YACtB,UAAU,EAAE,CAAC,OAAO,EAAU,EAAE;gBAC9B,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,EAAE;oBACjD,OAAO,2CAA2C,CAAA;iBACnD;gBACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;oBACnB,OAAO,0CAA0C,CAAA;iBAClD;gBACD,OAAO,EAAE,CAAA;YACX,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,CAAC,UAAU,CACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAK,GAAG,IAAE,OAAO,EAAE,OAAO,IAAE,CAAC;aAChE,CAAC,CAAC,CACJ,CAAA;SACF;IACH,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/restartAllServers.js b/dist/main/atom/commands/restartAllServers.js
new file mode 100644
index 000000000..cf22198a1
--- /dev/null
+++ b/dist/main/atom/commands/restartAllServers.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const registry_1 = require("./registry");
+registry_1.addCommand("atom-workspace", "typescript:restart-all-servers", deps => ({
+ description: "Kill all tsserver instances. They will be auto-restarted",
+ async didDispatch() {
+ deps.killAllServers();
+ },
+}));
+//# sourceMappingURL=restartAllServers.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/restartAllServers.js.map b/dist/main/atom/commands/restartAllServers.js.map
new file mode 100644
index 000000000..10196fafd
--- /dev/null
+++ b/dist/main/atom/commands/restartAllServers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"restartAllServers.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/restartAllServers.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,gBAAgB,EAAE,gCAAgC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,WAAW,EAAE,0DAA0D;IACvE,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,cAAc,EAAE,CAAA;IACvB,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/returnFromDeclaration.js b/dist/main/atom/commands/returnFromDeclaration.js
index fbc1858e6..9b417ea60 100644
--- a/dist/main/atom/commands/returnFromDeclaration.js
+++ b/dist/main/atom/commands/returnFromDeclaration.js
@@ -1,37 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const registry_1 = require("./registry");
-const simpleSelectionView_1 = require("../views/simpleSelectionView");
-const etch = require("etch");
-const highlightComponent_1 = require("../views/highlightComponent");
registry_1.addCommand("atom-workspace", "typescript:return-from-declaration", deps => ({
description: "If used `go-to-declaration`, return to previous text cursor position",
async didDispatch() {
- deps.getEditorPositionHistoryManager().goBack();
+ await deps.histGoBack();
},
}));
registry_1.addCommand("atom-workspace", "typescript:show-editor-position-history", deps => ({
description: "If used `go-to-declaration`, return to previous text cursor position",
async didDispatch() {
- const ehm = deps.getEditorPositionHistoryManager();
- const res = await simpleSelectionView_1.selectListView({
- items: ehm
- .getHistory()
- .slice()
- .reverse()
- .map((item, idx) => (Object.assign({}, item, { idx }))),
- itemTemplate: (item, ctx) => (etch.dom("li", { class: "two-lines" },
- etch.dom("div", { class: "primary-line" },
- etch.dom(highlightComponent_1.HighlightComponent, { label: item.file, query: ctx.getFilterQuery() })),
- etch.dom("div", { class: "secondary-line" },
- "Line: ",
- item.line,
- ", column: ",
- item.offset))),
- itemFilterKey: "file",
- });
- if (res)
- ehm.goHistory(res.idx + 1);
+ await deps.histShowHistory();
},
}));
//# sourceMappingURL=returnFromDeclaration.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/returnFromDeclaration.js.map b/dist/main/atom/commands/returnFromDeclaration.js.map
index 1db7eb46b..3bc038c59 100644
--- a/dist/main/atom/commands/returnFromDeclaration.js.map
+++ b/dist/main/atom/commands/returnFromDeclaration.js.map
@@ -1 +1 @@
-{"version":3,"file":"returnFromDeclaration.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/returnFromDeclaration.tsx"],"names":[],"mappings":";;AAAA,yCAAqC;AACrC,sEAA2D;AAC3D,6BAA4B;AAC5B,oEAA8D;AAE9D,qBAAU,CAAC,gBAAgB,EAAE,oCAAoC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,WAAW,EAAE,sEAAsE;IACnF,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,+BAA+B,EAAE,CAAC,MAAM,EAAE,CAAA;IACjD,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,qBAAU,CAAC,gBAAgB,EAAE,yCAAyC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,WAAW,EAAE,sEAAsE;IACnF,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,+BAA+B,EAAE,CAAA;QAClD,MAAM,GAAG,GAAG,MAAM,oCAAc,CAAC;YAC/B,KAAK,EAAE,GAAG;iBACP,UAAU,EAAE;iBACZ,KAAK,EAAE;iBACP,OAAO,EAAE;iBACT,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,mBAAK,IAAI,IAAE,GAAG,IAAE,CAAC;YACvC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3B,iBAAI,KAAK,EAAC,WAAW;gBACnB,kBAAK,KAAK,EAAC,cAAc;oBACvB,SAAC,uCAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE,GAAI,CACjE;gBACN,kBAAK,KAAK,EAAC,gBAAgB;;oBAClB,IAAI,CAAC,IAAI;;oBAAY,IAAI,CAAC,MAAM,CACnC,CACH,CACN;YACD,aAAa,EAAE,MAAM;SACtB,CAAC,CAAA;QACF,IAAI,GAAG;YAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;IACrC,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
+{"version":3,"file":"returnFromDeclaration.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/returnFromDeclaration.tsx"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,gBAAgB,EAAE,oCAAoC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,WAAW,EAAE,sEAAsE;IACnF,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IACzB,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,qBAAU,CAAC,gBAAgB,EAAE,yCAAyC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,WAAW,EAAE,sEAAsE;IACnF,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;IAC9B,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/semanticView.js b/dist/main/atom/commands/semanticView.js
index 76f8619ec..b3e284bb5 100644
--- a/dist/main/atom/commands/semanticView.js
+++ b/dist/main/atom/commands/semanticView.js
@@ -4,7 +4,7 @@ const registry_1 = require("./registry");
registry_1.addCommand("atom-text-editor", "typescript:toggle-semantic-view", deps => ({
description: "Toggle semantic view outline",
didDispatch() {
- deps.getSemanticViewController().toggle();
+ deps.toggleSemanticViewController();
},
}));
//# sourceMappingURL=semanticView.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/semanticView.js.map b/dist/main/atom/commands/semanticView.js.map
index be610b136..1d48bc9ab 100644
--- a/dist/main/atom/commands/semanticView.js.map
+++ b/dist/main/atom/commands/semanticView.js.map
@@ -1 +1 @@
-{"version":3,"file":"semanticView.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/semanticView.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,iCAAiC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,WAAW,EAAE,8BAA8B;IAC3C,WAAW;QACT,IAAI,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,CAAA;IAC3C,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
+{"version":3,"file":"semanticView.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/semanticView.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,iCAAiC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,WAAW,EAAE,8BAA8B;IAC3C,WAAW;QACT,IAAI,CAAC,4BAA4B,EAAE,CAAA;IACrC,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/showSigHelp.js b/dist/main/atom/commands/showSigHelp.js
new file mode 100644
index 000000000..677915ee5
--- /dev/null
+++ b/dist/main/atom/commands/showSigHelp.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const registry_1 = require("./registry");
+registry_1.addCommand("atom-text-editor", "typescript:show-signature-help", deps => ({
+ description: "Show signature help tooltip at current text cursor position",
+ async didDispatch(ed) {
+ return deps.showSigHelpAt(ed);
+ },
+}));
+//# sourceMappingURL=showSigHelp.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/showSigHelp.js.map b/dist/main/atom/commands/showSigHelp.js.map
new file mode 100644
index 000000000..10e57c9f2
--- /dev/null
+++ b/dist/main/atom/commands/showSigHelp.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"showSigHelp.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/showSigHelp.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,WAAW,EAAE,6DAA6D;IAC1E,KAAK,CAAC,WAAW,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/showTooltip.js b/dist/main/atom/commands/showTooltip.js
index 592fc9d36..de151e5ae 100644
--- a/dist/main/atom/commands/showTooltip.js
+++ b/dist/main/atom/commands/showTooltip.js
@@ -1,11 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const registry_1 = require("./registry");
-const tooltipManager_1 = require("../tooltipManager");
-registry_1.addCommand("atom-text-editor", "typescript:show-tooltip", () => ({
+registry_1.addCommand("atom-text-editor", "typescript:show-tooltip", deps => ({
description: "Show type tooltip at current text cursor position",
async didDispatch(ed) {
- return tooltipManager_1.showExpressionAt(ed, ed.getLastCursor().getBufferPosition());
+ return deps.showTooltipAt(ed);
},
}));
//# sourceMappingURL=showTooltip.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/showTooltip.js.map b/dist/main/atom/commands/showTooltip.js.map
index ce87113eb..7246214ee 100644
--- a/dist/main/atom/commands/showTooltip.js.map
+++ b/dist/main/atom/commands/showTooltip.js.map
@@ -1 +1 @@
-{"version":3,"file":"showTooltip.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/showTooltip.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AACrC,sDAAkD;AAElD,qBAAU,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,WAAW,EAAE,mDAAmD;IAChE,KAAK,CAAC,WAAW,CAAC,EAAE;QAClB,OAAO,iCAAgB,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACrE,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
+{"version":3,"file":"showTooltip.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/showTooltip.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,WAAW,EAAE,mDAAmD;IAChE,KAAK,CAAC,WAAW,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/commands/symbolsView.js b/dist/main/atom/commands/symbolsView.js
index 627440f7d..f99bf4eab 100644
--- a/dist/main/atom/commands/symbolsView.js
+++ b/dist/main/atom/commands/symbolsView.js
@@ -4,13 +4,13 @@ const registry_1 = require("./registry");
registry_1.addCommand("atom-text-editor", "typescript:toggle-file-symbols", deps => ({
description: "Toggle view for finding file symbols",
async didDispatch(editor) {
- deps.getSymbolsViewController().toggleFileView(editor);
+ deps.toggleFileSymbolsView(editor);
},
}));
registry_1.addCommand("atom-text-editor", "typescript:toggle-project-symbols", deps => ({
description: "Toggle view for finding file symbols",
async didDispatch(editor) {
- deps.getSymbolsViewController().toggleProjectView(editor);
+ deps.toggleProjectSymbolsView(editor);
},
}));
//# sourceMappingURL=symbolsView.js.map
\ No newline at end of file
diff --git a/dist/main/atom/commands/symbolsView.js.map b/dist/main/atom/commands/symbolsView.js.map
index ab2a3b65e..e33b8262b 100644
--- a/dist/main/atom/commands/symbolsView.js.map
+++ b/dist/main/atom/commands/symbolsView.js.map
@@ -1 +1 @@
-{"version":3,"file":"symbolsView.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/symbolsView.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,WAAW,EAAE,sCAAsC;IACnD,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,IAAI,CAAC,wBAAwB,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IACxD,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,qBAAU,CAAC,kBAAkB,EAAE,mCAAmC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,WAAW,EAAE,sCAAsC;IACnD,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,IAAI,CAAC,wBAAwB,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAC3D,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
+{"version":3,"file":"symbolsView.js","sourceRoot":"","sources":["../../../../lib/main/atom/commands/symbolsView.ts"],"names":[],"mappings":";;AAAA,yCAAqC;AAErC,qBAAU,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,WAAW,EAAE,sCAAsC;IACnD,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;CACF,CAAC,CAAC,CAAA;AAEH,qBAAU,CAAC,kBAAkB,EAAE,mCAAmC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,WAAW,EAAE,sCAAsC;IACnD,KAAK,CAAC,WAAW,CAAC,MAAM;QACtB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;CACF,CAAC,CAAC,CAAA"}
\ No newline at end of file
diff --git a/dist/main/atom/components/statusPanel.js b/dist/main/atom/components/statusPanel.js
deleted file mode 100644
index cb7cc022f..000000000
--- a/dist/main/atom/components/statusPanel.js
+++ /dev/null
@@ -1,146 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const etch = require("etch");
-const path_1 = require("path");
-const atom_1 = require("atom");
-class StatusPanel {
- constructor(props) {
- this.disposables = new atom_1.CompositeDisposable();
- this.buildStatusClicked = () => {
- if (this.props.buildStatus && !this.props.buildStatus.success) {
- atom.notifications.addError("Build failed", {
- detail: this.props.buildStatus.message,
- dismissable: true,
- });
- }
- };
- this.handlePendingRequests = () => {
- this.update({
- pending: [].concat(...Array.from(this.props.clientResolver.clients.values()).map(el => el.pending)),
- });
- };
- this.props = Object.assign({ visible: true }, props);
- etch.initialize(this);
- this.resetBuildStatusTimeout();
- this.disposables.add(this.props.clientResolver.on("pendingRequestsChange", this.handlePendingRequests));
- }
- async update(props) {
- this.props = Object.assign({}, this.props, props);
- this.resetBuildStatusTimeout();
- await etch.update(this);
- }
- render() {
- return (etch.dom("ts-status-panel", { className: this.props.visible ? "" : "hide" },
- this.renderVersion(),
- this.renderPending(),
- this.renderConfigPath(),
- this.renderStatus(),
- this.renderProgress()));
- }
- async destroy() {
- await etch.destroy(this);
- this.disposables.dispose();
- }
- dispose() {
- this.destroy();
- }
- show() {
- this.update({ visible: true });
- }
- hide() {
- this.update({ visible: false });
- }
- resetBuildStatusTimeout() {
- if (this.buildStatusTimeout !== undefined) {
- window.clearTimeout(this.buildStatusTimeout);
- this.buildStatusTimeout = undefined;
- }
- if (this.props.buildStatus && this.props.buildStatus.success) {
- const timeout = atom.config.get("atom-typescript.buildStatusTimeout");
- if (timeout > 0) {
- this.buildStatusTimeout = window.setTimeout(() => {
- this.update({ buildStatus: undefined });
- }, timeout * 1000);
- }
- else if (timeout === 0) {
- this.update({ buildStatus: undefined });
- }
- }
- }
- openConfigPath() {
- if (this.props.tsConfigPath !== undefined && !this.props.tsConfigPath.startsWith("/dev/null")) {
- atom.workspace.open(this.props.tsConfigPath);
- }
- else {
- atom.notifications.addInfo("No tsconfig for current file");
- }
- }
- showPendingRequests() {
- if (this.props.pending) {
- atom.notifications.addInfo("Pending Requests:
- " + this.props.pending.join("
- "));
- }
- }
- renderVersion() {
- if (this.props.version !== undefined) {
- return (etch.dom("div", { ref: "version", className: "inline-block" }, this.props.version));
- }
- return null;
- }
- renderPending() {
- if (this.props.pending && this.props.pending.length > 0) {
- return (etch.dom("a", { ref: "pendingContainer", className: "inline-block", href: "", on: {
- click: evt => {
- evt.preventDefault();
- this.showPendingRequests();
- },
- } },
- etch.dom("span", { ref: "pendingCounter" }, this.props.pending.length.toString()),
- etch.dom("span", { ref: "pendingSpinner", className: "loading loading-spinner-tiny inline-block", style: { marginLeft: "5px", opacity: "0.5", verticalAlign: "sub" } })));
- }
- return null;
- }
- renderConfigPath() {
- if (this.props.tsConfigPath !== undefined) {
- return (etch.dom("a", { ref: "configPathContainer", className: "inline-block", href: "", on: {
- click: evt => {
- evt.preventDefault();
- this.openConfigPath();
- },
- } }, this.props.tsConfigPath.startsWith("/dev/null")
- ? "No project"
- : path_1.dirname(getFilePathRelativeToAtomProject(this.props.tsConfigPath))));
- }
- return null;
- }
- renderStatus() {
- if (this.props.buildStatus) {
- let cls;
- let text;
- if (this.props.buildStatus.success) {
- cls = "highlight-success";
- text = "Emit Success";
- }
- else {
- cls = "highlight-error";
- text = "Emit Failed";
- }
- return (etch.dom("div", { ref: "statusContainer", className: "inline-block" },
- etch.dom("span", { ref: "statusText", class: cls, on: { click: this.buildStatusClicked } }, text)));
- }
- return null;
- }
- renderProgress() {
- if (this.props.progress) {
- return (etch.dom("progress", { ref: "progress", style: { verticalAlign: "baseline" }, className: "inline-block", max: this.props.progress.max, value: this.props.progress.value }));
- }
- return null;
- }
-}
-exports.StatusPanel = StatusPanel;
-/**
- * converts "c:\dev\somethin\bar.ts" to "~something\bar".
- */
-function getFilePathRelativeToAtomProject(filePath) {
- return "~" + atom.project.relativize(filePath);
-}
-//# sourceMappingURL=statusPanel.js.map
\ No newline at end of file
diff --git a/dist/main/atom/components/statusPanel.js.map b/dist/main/atom/components/statusPanel.js.map
deleted file mode 100644
index 96fa3cf66..000000000
--- a/dist/main/atom/components/statusPanel.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"statusPanel.js","sourceRoot":"","sources":["../../../../lib/main/atom/components/statusPanel.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/components/statusPanel/buildStatus.js b/dist/main/atom/components/statusPanel/buildStatus.js
new file mode 100644
index 000000000..44cfdfe68
--- /dev/null
+++ b/dist/main/atom/components/statusPanel/buildStatus.js
@@ -0,0 +1,81 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const atom_1 = require("atom");
+const etch = require("etch");
+const lodash_1 = require("lodash");
+const utils_1 = require("../../../../utils");
+const tooltip_1 = require("./tooltip");
+class BuildStatus {
+ constructor(props) {
+ this.hiddenBuildStatus = false;
+ this.disposables = new atom_1.CompositeDisposable();
+ this.buildStatusClicked = () => {
+ if (!this.props.buildStatus.success) {
+ atom.notifications.addError("Build failed", {
+ detail: this.props.buildStatus.message,
+ dismissable: true,
+ });
+ }
+ };
+ this.props = Object.assign({}, props);
+ this.setHideBuildStatus(atom.config.get("atom-typescript").buildStatusTimeout);
+ this.resetBuildStatusTimeout();
+ etch.initialize(this);
+ this.disposables.add(atom.config.onDidChange("atom-typescript.buildStatusTimeout", ({ newValue }) => {
+ this.setHideBuildStatus(newValue);
+ utils_1.handlePromise(this.update({}));
+ }));
+ }
+ async update(props) {
+ const successStateChanged = props.buildStatus !== undefined &&
+ props.buildStatus.success !== this.props.buildStatus.success;
+ this.props = Object.assign({}, this.props, props);
+ if (successStateChanged)
+ this.resetBuildStatusTimeout();
+ await etch.update(this);
+ }
+ render() {
+ if (this.hiddenBuildStatus)
+ return etch.dom("span", null);
+ let cls;
+ let text;
+ if (this.props.buildStatus.success) {
+ cls = "highlight-success";
+ text = "Emit Success";
+ }
+ else {
+ cls = "highlight-error";
+ text = "Emit Failed";
+ }
+ return (etch.dom(tooltip_1.Tooltip, { title: this.props.buildStatus.success
+ ? "Build was successful"
+ : "Build failed; click to show error message" },
+ etch.dom("span", { class: cls, on: { click: this.buildStatusClicked } }, text)));
+ }
+ async destroy() {
+ await etch.destroy(this);
+ }
+ resetBuildStatusTimeout() {
+ this.hiddenBuildStatus = false;
+ if (this.props.buildStatus.success) {
+ this.hideBuildStatus();
+ }
+ }
+ setHideBuildStatus(value) {
+ if (value > 0) {
+ this.hideBuildStatus = lodash_1.debounce(() => {
+ this.hiddenBuildStatus = true;
+ utils_1.handlePromise(etch.update(this));
+ }, value * 1000);
+ }
+ else if (value === 0) {
+ this.hideBuildStatus = () => {
+ this.hiddenBuildStatus = true;
+ };
+ }
+ else
+ this.hideBuildStatus = () => { };
+ }
+}
+exports.BuildStatus = BuildStatus;
+//# sourceMappingURL=buildStatus.js.map
\ No newline at end of file
diff --git a/dist/main/atom/components/statusPanel/buildStatus.js.map b/dist/main/atom/components/statusPanel/buildStatus.js.map
new file mode 100644
index 000000000..c4ceef7b9
--- /dev/null
+++ b/dist/main/atom/components/statusPanel/buildStatus.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"buildStatus.js","sourceRoot":"","sources":["../../../../../lib/main/atom/components/statusPanel/buildStatus.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/components/statusPanel/configPath.js b/dist/main/atom/components/statusPanel/configPath.js
new file mode 100644
index 000000000..0f844db00
--- /dev/null
+++ b/dist/main/atom/components/statusPanel/configPath.js
@@ -0,0 +1,48 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const etch = require("etch");
+const path_1 = require("path");
+const utils_1 = require("../../../../utils");
+const tooltip_1 = require("./tooltip");
+class ConfigPath {
+ constructor(props) {
+ this.props = Object.assign({}, props);
+ etch.initialize(this);
+ }
+ async update(props) {
+ this.props = Object.assign({}, this.props, props);
+ await etch.update(this);
+ }
+ render() {
+ return (etch.dom(tooltip_1.Tooltip, { title: () => this.props.tsConfigPath.startsWith("/dev/null")
+ ? "No tsconfig.json"
+ : `Click to open ${atom.project.relativize(this.props.tsConfigPath)}` },
+ etch.dom("a", { className: "inline-block", href: "", on: {
+ click: evt => {
+ evt.preventDefault();
+ this.openConfigPath();
+ },
+ } }, this.props.tsConfigPath.startsWith("/dev/null")
+ ? "No project"
+ : path_1.dirname(getFilePathRelativeToAtomProject(this.props.tsConfigPath)))));
+ }
+ async destroy() {
+ await etch.destroy(this);
+ }
+ openConfigPath() {
+ if (!this.props.tsConfigPath.startsWith("/dev/null")) {
+ utils_1.handlePromise(atom.workspace.open(this.props.tsConfigPath));
+ }
+ else {
+ atom.notifications.addInfo("No tsconfig for current file");
+ }
+ }
+}
+exports.ConfigPath = ConfigPath;
+/**
+ * converts "c:\dev\somethin\bar.ts" to "~something\bar".
+ */
+function getFilePathRelativeToAtomProject(filePath) {
+ return "~" + atom.project.relativize(filePath);
+}
+//# sourceMappingURL=configPath.js.map
\ No newline at end of file
diff --git a/dist/main/atom/components/statusPanel/configPath.js.map b/dist/main/atom/components/statusPanel/configPath.js.map
new file mode 100644
index 000000000..0973a949d
--- /dev/null
+++ b/dist/main/atom/components/statusPanel/configPath.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"configPath.js","sourceRoot":"","sources":["../../../../../lib/main/atom/components/statusPanel/configPath.tsx"],"names":[],"mappings":";;AAAA,6BAA4B;AAC5B,+BAA4B;AAC5B,6CAA+C;AAC/C,uCAAiC;AAMjC,MAAa,UAAU;IAIrB,YAAY,KAAY;QACtB,IAAI,CAAC,KAAK,qBACL,KAAK,CACT,CAAA;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAqB;QACvC,IAAI,CAAC,KAAK,qBAAO,IAAI,CAAC,KAAK,EAAK,KAAK,CAAC,CAAA;QACtC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAEM,MAAM;QACX,OAAO,CACL,SAAC,iBAAO,IACN,KAAK,EAAE,GAAG,EAAE,CACV,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC7C,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;YAEzE,gBACE,SAAS,EAAC,cAAc,EACxB,IAAI,EAAC,EAAE,EACP,EAAE,EAAE;oBACF,KAAK,EAAE,GAAG,CAAC,EAAE;wBACX,GAAG,CAAC,cAAc,EAAE,CAAA;wBACpB,IAAI,CAAC,cAAc,EAAE,CAAA;oBACvB,CAAC;iBACF,IACA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC9C,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,cAAO,CAAC,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CACpE,CACI,CACX,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YACpD,qBAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;SAC5D;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAA;SAC3D;IACH,CAAC;CACF;AApDD,gCAoDC;AAED;;GAEG;AACH,SAAS,gCAAgC,CAAC,QAAgB;IACxD,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAChD,CAAC"}
\ No newline at end of file
diff --git a/dist/main/atom/components/statusPanel/index.js b/dist/main/atom/components/statusPanel/index.js
new file mode 100644
index 000000000..12b9e932c
--- /dev/null
+++ b/dist/main/atom/components/statusPanel/index.js
@@ -0,0 +1,74 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const etch = require("etch");
+const utils_1 = require("../../../../utils");
+const buildStatus_1 = require("./buildStatus");
+const configPath_1 = require("./configPath");
+const tooltip_1 = require("./tooltip");
+class StatusPanel {
+ constructor(props = {}) {
+ this.props = Object.assign({ visible: true, pending: [], progress: { max: 0, value: 0 } }, props);
+ etch.initialize(this);
+ }
+ async update(props) {
+ this.props = Object.assign({}, this.props, props);
+ await etch.update(this);
+ }
+ render() {
+ return (etch.dom("ts-status-panel", { className: this.props.visible ? "" : "hide" },
+ this.renderVersion(),
+ this.renderPending(),
+ this.renderConfigPath(),
+ this.renderStatus(),
+ this.renderProgress()));
+ }
+ async destroy() {
+ await etch.destroy(this);
+ }
+ dispose() {
+ utils_1.handlePromise(this.destroy());
+ }
+ async show() {
+ await this.update({ visible: true });
+ }
+ async hide() {
+ await this.update({ visible: false });
+ }
+ renderVersion() {
+ if (this.props.clientVersion !== undefined) {
+ return etch.dom(tooltip_1.Tooltip, { title: "Active TypeScript version" }, this.props.clientVersion);
+ }
+ return null;
+ }
+ renderPending() {
+ if (this.props.pending.length > 0) {
+ return (etch.dom(tooltip_1.Tooltip, { title: `Pending Requests:
${this.props.pending
+ .map(({ title }) => `- ${title}
`)
+ .join("")}
`, html: true },
+ etch.dom("span", { ref: "pendingCounter" }, this.props.pending.length.toString()),
+ etch.dom("span", { ref: "pendingSpinner", className: "loading loading-spinner-tiny inline-block", style: { marginLeft: "5px", opacity: "0.5", verticalAlign: "sub" } })));
+ }
+ else
+ return null;
+ }
+ renderConfigPath() {
+ if (this.props.tsConfigPath !== undefined) {
+ return etch.dom(configPath_1.ConfigPath, { tsConfigPath: this.props.tsConfigPath });
+ }
+ return null;
+ }
+ renderStatus() {
+ if (this.props.buildStatus) {
+ return etch.dom(buildStatus_1.BuildStatus, { buildStatus: this.props.buildStatus });
+ }
+ return null;
+ }
+ renderProgress() {
+ if (this.props.progress.value < this.props.progress.max) {
+ return (etch.dom("progress", { style: { verticalAlign: "baseline" }, className: "inline-block", max: this.props.progress.max, value: this.props.progress.value }));
+ }
+ return null;
+ }
+}
+exports.StatusPanel = StatusPanel;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/dist/main/atom/components/statusPanel/index.js.map b/dist/main/atom/components/statusPanel/index.js.map
new file mode 100644
index 000000000..857e3ea8b
--- /dev/null
+++ b/dist/main/atom/components/statusPanel/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/main/atom/components/statusPanel/index.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/components/statusPanel/tooltip.js b/dist/main/atom/components/statusPanel/tooltip.js
new file mode 100644
index 000000000..e0a6a6166
--- /dev/null
+++ b/dist/main/atom/components/statusPanel/tooltip.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const etch = require("etch");
+class Tooltip {
+ constructor(props, children) {
+ this.children = children;
+ this.props = Object.assign({}, props, { delay: { show: 0, hide: 0 } });
+ etch.initialize(this);
+ this.tooltipDisposable = atom.tooltips.add(this.element, this.props);
+ }
+ async update(props, children) {
+ this.props = Object.assign({}, this.props, props);
+ this.children = children;
+ await etch.update(this);
+ this.tooltipDisposable.dispose();
+ this.tooltipDisposable = atom.tooltips.add(this.element, this.props);
+ }
+ render() {
+ return etch.dom("div", { className: "inline-block" }, this.children ? this.children : null);
+ }
+ async destroy() {
+ await etch.destroy(this);
+ this.tooltipDisposable.dispose();
+ }
+}
+exports.Tooltip = Tooltip;
+//# sourceMappingURL=tooltip.js.map
\ No newline at end of file
diff --git a/dist/main/atom/components/statusPanel/tooltip.js.map b/dist/main/atom/components/statusPanel/tooltip.js.map
new file mode 100644
index 000000000..070aa7ae2
--- /dev/null
+++ b/dist/main/atom/components/statusPanel/tooltip.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../../../lib/main/atom/components/statusPanel/tooltip.tsx"],"names":[],"mappings":";;AACA,6BAA4B;AAa5B,MAAa,OAAO;IAKlB,YAAY,KAAY,EAAU,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;QACxD,IAAI,CAAC,KAAK,qBACL,KAAK,IACR,KAAK,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAC,GAC1B,CAAA;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAErB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAqB,EAAE,QAAuB;QAChE,IAAI,CAAC,KAAK,qBAAO,IAAI,CAAC,KAAK,EAAK,KAAK,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACvB,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAA;QAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC;IAEM,MAAM;QACX,OAAO,kBAAK,SAAS,EAAC,cAAc,IAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAO,CAAA;IACnF,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACxB,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAA;IAClC,CAAC;CACF;AA/BD,0BA+BC"}
\ No newline at end of file
diff --git a/dist/main/atom/editorPositionHistoryManager.js b/dist/main/atom/editorPositionHistoryManager.js
index ba3d5f7a2..90cf2ae76 100644
--- a/dist/main/atom/editorPositionHistoryManager.js
+++ b/dist/main/atom/editorPositionHistoryManager.js
@@ -1,6 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
+const etch = require("etch");
const utils_1 = require("./utils");
+const highlightComponent_1 = require("./views/highlightComponent");
+const simpleSelectionView_1 = require("./views/simpleSelectionView");
class EditorPositionHistoryManager {
constructor(prevCursorPositions = []) {
this.prevCursorPositions = prevCursorPositions;
@@ -32,6 +35,25 @@ class EditorPositionHistoryManager {
}
return this.open(item);
}
+ async showHistory() {
+ const res = await simpleSelectionView_1.selectListView({
+ items: this.getHistory()
+ .slice()
+ .reverse()
+ .map((item, idx) => (Object.assign({}, item, { idx }))),
+ itemTemplate: (item, ctx) => (etch.dom("li", { class: "two-lines" },
+ etch.dom("div", { class: "primary-line" },
+ etch.dom(highlightComponent_1.HighlightComponent, { label: item.file, query: ctx.getFilterQuery() })),
+ etch.dom("div", { class: "secondary-line" },
+ "Line: ",
+ item.line,
+ ", column: ",
+ item.offset))),
+ itemFilterKey: "file",
+ });
+ if (res)
+ await this.goHistory(res.idx + 1);
+ }
getHistory() {
return this.prevCursorPositions;
}
diff --git a/dist/main/atom/editorPositionHistoryManager.js.map b/dist/main/atom/editorPositionHistoryManager.js.map
index a48a54dbf..d328b2447 100644
--- a/dist/main/atom/editorPositionHistoryManager.js.map
+++ b/dist/main/atom/editorPositionHistoryManager.js.map
@@ -1 +1 @@
-{"version":3,"file":"editorPositionHistoryManager.js","sourceRoot":"","sources":["../../../lib/main/atom/editorPositionHistoryManager.ts"],"names":[],"mappings":";;AAAA,mCAA8D;AAQ9D,MAAa,4BAA4B;IACvC,YAAoB,sBAA2C,EAAE;QAA7C,wBAAmB,GAAnB,mBAAmB,CAA0B;IAAG,CAAC;IAE9D,KAAK,CAAC,MAAM;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,KAAa;QAClC,IAAI,QAAQ,CAAA;QACZ,OAAO,KAAK,EAAE,GAAG,CAAC;YAAE,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAA;QAC7D,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAA;YAClE,OAAM;SACP;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAC;SACtD,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,aAAyB,EAAE,IAAgB;QAChE,MAAM,QAAQ,GAAG,2BAAmB,CAAC,aAAa,CAAC,CAAA;QACnD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACvC,MAAM,QAAQ,GAAG,GAAG,CAAA;YACpB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,QAAQ,EAAE;gBAC9C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAA;aAC/E;SACF;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAEM,OAAO;QACZ,OAAO;IACT,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,IAAgB;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAClD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;YAChC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACpC,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;YACvC,MAAM,CAAC,sBAAsB,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;SAC9C;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAvDD,oEAuDC"}
\ No newline at end of file
+{"version":3,"file":"editorPositionHistoryManager.js","sourceRoot":"","sources":["../../../lib/main/atom/editorPositionHistoryManager.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/hyperclickProvider.js.map b/dist/main/atom/hyperclickProvider.js.map
deleted file mode 100644
index c3138aad0..000000000
--- a/dist/main/atom/hyperclickProvider.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hyperclickProvider.js","sourceRoot":"","sources":["../../../lib/main/atom/hyperclickProvider.ts"],"names":[],"mappings":";;AAEA,gEAAiE;AACjE,mCAAkD;AAGlD,SAAgB,qBAAqB,CACnC,cAA8B,EAC9B,aAA2C;IAE3C,OAAO;QACL,YAAY,EAAE,gCAAgC;QAC9C,UAAU,EAAE,8CAA8C;QAC1D,oBAAoB,CAAC,MAAuB,EAAE,KAAa,EAAE,KAAiB;YAC5E,IAAI,CAAC,kCAA0B,CAAC,MAAM,CAAC,EAAE;gBACvC,OAAO,IAAI,CAAA;aACZ;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YACjC,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,OAAO,IAAI,CAAA;aACZ;YAED,OAAO;gBACL,KAAK;gBACL,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACnB,MAAM,QAAQ,GAAG;wBACf,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;wBACzB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;qBAC/B,CAAA;oBACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;oBACtD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;oBAC3D,wCAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAA;gBACvD,CAAC;aACF,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AA/BD,sDA+BC"}
\ No newline at end of file
diff --git a/dist/main/atom/occurrence/controller.js b/dist/main/atom/occurrence/controller.js
new file mode 100644
index 000000000..3a9782de1
--- /dev/null
+++ b/dist/main/atom/occurrence/controller.js
@@ -0,0 +1,81 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const atom_1 = require("atom");
+const lodash_1 = require("lodash");
+const utils_1 = require("../../../utils");
+const utils_2 = require("../utils");
+class OccurenceController {
+ constructor(getClient, editor) {
+ this.getClient = getClient;
+ this.editor = editor;
+ this.disposables = new atom_1.CompositeDisposable();
+ this.occurrenceMarkers = [];
+ this.disposed = false;
+ const debouncedUpdate = lodash_1.debounce(() => {
+ utils_1.handlePromise(this.update());
+ }, 100);
+ this.disposables.add(editor.onDidChangeCursorPosition(debouncedUpdate), editor.onDidChangePath(debouncedUpdate), editor.onDidChangeGrammar(debouncedUpdate));
+ }
+ dispose() {
+ if (this.disposed)
+ return;
+ this.disposed = true;
+ this.disposables.dispose();
+ this.clearMarkers();
+ }
+ clearMarkers() {
+ for (const marker of this.occurrenceMarkers) {
+ marker.destroy();
+ }
+ this.occurrenceMarkers = [];
+ }
+ async update() {
+ if (this.disposed)
+ return;
+ if (!utils_2.isTypescriptEditorWithPath(this.editor)) {
+ this.clearMarkers();
+ return;
+ }
+ const filePath = this.editor.getPath();
+ if (filePath === undefined)
+ return;
+ const client = await this.getClient(filePath);
+ if (this.disposed)
+ return;
+ const pos = this.editor.getLastCursor().getBufferPosition();
+ try {
+ const result = await client.execute("occurrences", {
+ file: filePath,
+ line: pos.row + 1,
+ offset: pos.column + 1,
+ });
+ if (this.disposed)
+ return;
+ const ranges = result.body.map(utils_2.spanToRange);
+ const newOccurrenceMarkers = ranges.map(range => {
+ const oldMarker = this.occurrenceMarkers.find(m => m.getBufferRange().isEqual(range));
+ if (oldMarker)
+ return oldMarker;
+ else {
+ const marker = this.editor.markBufferRange(range);
+ this.editor.decorateMarker(marker, {
+ type: "highlight",
+ class: "atom-typescript-occurrence",
+ });
+ return marker;
+ }
+ });
+ for (const m of this.occurrenceMarkers) {
+ if (!newOccurrenceMarkers.includes(m))
+ m.destroy();
+ }
+ this.occurrenceMarkers = newOccurrenceMarkers;
+ }
+ catch (e) {
+ if (window.atom_typescript_debug)
+ console.error(e);
+ }
+ }
+}
+exports.OccurenceController = OccurenceController;
+//# sourceMappingURL=controller.js.map
\ No newline at end of file
diff --git a/dist/main/atom/occurrence/controller.js.map b/dist/main/atom/occurrence/controller.js.map
new file mode 100644
index 000000000..d711845bb
--- /dev/null
+++ b/dist/main/atom/occurrence/controller.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../lib/main/atom/occurrence/controller.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/occurrence/manager.js b/dist/main/atom/occurrence/manager.js
new file mode 100644
index 000000000..33ab5446a
--- /dev/null
+++ b/dist/main/atom/occurrence/manager.js
@@ -0,0 +1,21 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const atom_1 = require("atom");
+const controller_1 = require("./controller");
+class OccurrenceManager {
+ constructor(getClient) {
+ this.disposables = new atom_1.CompositeDisposable();
+ this.disposables.add(atom.workspace.observeTextEditors(editor => {
+ const controller = new controller_1.OccurenceController(getClient, editor);
+ this.disposables.add(controller, editor.onDidDestroy(() => {
+ this.disposables.remove(controller);
+ controller.dispose();
+ }));
+ }));
+ }
+ dispose() {
+ this.disposables.dispose();
+ }
+}
+exports.OccurrenceManager = OccurrenceManager;
+//# sourceMappingURL=manager.js.map
\ No newline at end of file
diff --git a/dist/main/atom/occurrence/manager.js.map b/dist/main/atom/occurrence/manager.js.map
new file mode 100644
index 000000000..447505245
--- /dev/null
+++ b/dist/main/atom/occurrence/manager.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../lib/main/atom/occurrence/manager.ts"],"names":[],"mappings":";;AAAA,+BAAwC;AAExC,6CAAgD;AAEhD,MAAa,iBAAiB;IAG5B,YAAY,SAA4B;QAFvB,gBAAW,GAAG,IAAI,0BAAmB,EAAE,CAAA;QAGtD,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;YACzC,MAAM,UAAU,GAAG,IAAI,gCAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YAC7D,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,UAAU,EACV,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE;gBACvB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;gBACnC,UAAU,CAAC,OAAO,EAAE,CAAA;YACtB,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;CACF;AArBD,8CAqBC"}
\ No newline at end of file
diff --git a/dist/main/atom/sigHelp/controller.js b/dist/main/atom/sigHelp/controller.js
new file mode 100644
index 000000000..e34e95dc5
--- /dev/null
+++ b/dist/main/atom/sigHelp/controller.js
@@ -0,0 +1,96 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const Atom = require("atom");
+const lodash_1 = require("lodash");
+const utils_1 = require("../../../utils");
+const utils_2 = require("../utils");
+const tooltipView_1 = require("./tooltipView");
+class TooltipController {
+ constructor(deps, editor, bufferPt) {
+ this.deps = deps;
+ this.editor = editor;
+ this.cancelled = false;
+ this.disposables = new Atom.CompositeDisposable();
+ const rawView = atom.views.getView(this.editor);
+ this.view = new tooltipView_1.TooltipView(rawView);
+ rawView.appendChild(this.view.element);
+ const debouncedUpdate = lodash_1.debounce(this.updateTooltip.bind(this), 100, { leading: true });
+ this.disposables.add(this.editor.onDidChangeCursorPosition(evt => {
+ bufferPt = evt.newBufferPosition;
+ utils_1.handlePromise(debouncedUpdate(bufferPt));
+ }), rawView.onDidChangeScrollTop(() => {
+ setImmediate(() => this.updateTooltipPosition(bufferPt));
+ }), rawView.onDidChangeScrollLeft(() => {
+ setImmediate(() => this.updateTooltipPosition(bufferPt));
+ }));
+ utils_1.handlePromise(this.updateTooltip(bufferPt));
+ }
+ isDisposed() {
+ return this.cancelled;
+ }
+ dispose() {
+ if (this.cancelled)
+ return;
+ this.cancelled = true;
+ this.disposables.dispose();
+ utils_1.handlePromise(this.view.destroy());
+ }
+ async updateTooltip(bufferPt) {
+ if (this.cancelled)
+ return;
+ const tooltipRect = this.computeTooltipPosition(bufferPt);
+ const msg = await this.getMessage(bufferPt);
+ if (this.cancelled)
+ return;
+ if (!msg) {
+ this.dispose();
+ return;
+ }
+ await this.view.update(Object.assign({}, tooltipRect, { sigHelp: msg }));
+ }
+ updateTooltipPosition(bufferPt) {
+ if (this.cancelled)
+ return;
+ const tooltipRect = this.computeTooltipPosition(bufferPt);
+ utils_1.handlePromise(this.view.update(Object.assign({}, tooltipRect)));
+ }
+ computeTooltipPosition(bufferPt) {
+ const rawView = atom.views.getView(this.editor);
+ const pixelPos = rawView.pixelPositionForBufferPosition(bufferPt);
+ const lines = rawView.querySelector(".lines");
+ const linesRect = lines.getBoundingClientRect();
+ const lineH = this.editor.getLineHeightInPixels();
+ const parentRect = rawView.getBoundingClientRect();
+ const Y = pixelPos.top + linesRect.top - parentRect.top + lineH / 2;
+ const X = pixelPos.left + linesRect.left - parentRect.left;
+ const offset = lineH * 0.7;
+ return {
+ left: X,
+ right: X,
+ top: Y - offset,
+ bottom: Y + offset,
+ };
+ }
+ async getMessage(bufferPt) {
+ if (!utils_2.isTypescriptEditorWithPath(this.editor))
+ return;
+ const filePath = this.editor.getPath();
+ if (filePath === undefined)
+ return;
+ const client = await this.deps.getClient(filePath);
+ try {
+ await this.deps.flushTypescriptBuffer(filePath);
+ const result = await client.execute("signatureHelp", {
+ file: filePath,
+ line: bufferPt.row + 1,
+ offset: bufferPt.column + 1,
+ });
+ return result.body;
+ }
+ catch (e) {
+ return;
+ }
+ }
+}
+exports.TooltipController = TooltipController;
+//# sourceMappingURL=controller.js.map
\ No newline at end of file
diff --git a/dist/main/atom/sigHelp/controller.js.map b/dist/main/atom/sigHelp/controller.js.map
new file mode 100644
index 000000000..0e0c01e08
--- /dev/null
+++ b/dist/main/atom/sigHelp/controller.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../lib/main/atom/sigHelp/controller.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/sigHelp/manager.js b/dist/main/atom/sigHelp/manager.js
new file mode 100644
index 000000000..3e6b371b2
--- /dev/null
+++ b/dist/main/atom/sigHelp/manager.js
@@ -0,0 +1,65 @@
+"use strict";
+// Inspiration : https://atom.io/packages/ide-haskell
+// and https://atom.io/packages/ide-flow
+Object.defineProperty(exports, "__esModule", { value: true });
+const Atom = require("atom");
+const utils_1 = require("../../../utils");
+const controller_1 = require("./controller");
+class SigHelpManager {
+ constructor(deps) {
+ this.deps = deps;
+ this.subscriptions = new Atom.CompositeDisposable();
+ this.editorMap = new WeakMap();
+ this.stoppedChanging = (editor) => (event) => {
+ const filePath = editor.getPath();
+ if (filePath === undefined)
+ return;
+ const pos = editor.getLastCursor().getBufferPosition();
+ const [ch] = event.changes.filter(x => x.newRange.containsPoint(pos));
+ if (ch && ch.newText.match(/[(,]/) !== null) {
+ utils_1.handlePromise(this.showTooltip(editor, pos));
+ }
+ };
+ this.subscriptions.add(atom.workspace.observeTextEditors(editor => {
+ const disp = new Atom.CompositeDisposable();
+ disp.add(editor.onDidDestroy(() => {
+ disp.dispose();
+ this.subscriptions.remove(disp);
+ const controller = this.editorMap.get(editor);
+ if (controller)
+ controller.dispose();
+ }), editor.onDidStopChanging(this.stoppedChanging(editor)));
+ this.subscriptions.add(disp);
+ }));
+ }
+ dispose() {
+ this.subscriptions.dispose();
+ for (const editor of atom.workspace.getTextEditors()) {
+ const controller = this.editorMap.get(editor);
+ if (controller)
+ controller.dispose();
+ }
+ }
+ async showTooltipAt(editor) {
+ const pt = editor.getLastCursor().getBufferPosition();
+ return this.showTooltip(editor, pt);
+ }
+ hideTooltipAt(editor) {
+ const controller = this.editorMap.get(editor);
+ if (controller && !controller.isDisposed()) {
+ controller.dispose();
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ async showTooltip(editor, pos) {
+ const controller = this.editorMap.get(editor);
+ if (!controller || controller.isDisposed()) {
+ this.editorMap.set(editor, new controller_1.TooltipController(this.deps, editor, pos));
+ }
+ }
+}
+exports.SigHelpManager = SigHelpManager;
+//# sourceMappingURL=manager.js.map
\ No newline at end of file
diff --git a/dist/main/atom/sigHelp/manager.js.map b/dist/main/atom/sigHelp/manager.js.map
new file mode 100644
index 000000000..84ad998da
--- /dev/null
+++ b/dist/main/atom/sigHelp/manager.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../lib/main/atom/sigHelp/manager.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/sigHelp/tooltipView.js b/dist/main/atom/sigHelp/tooltipView.js
new file mode 100644
index 000000000..cd1161e5c
--- /dev/null
+++ b/dist/main/atom/sigHelp/tooltipView.js
@@ -0,0 +1,81 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const etch = require("etch");
+const utils_1 = require("../utils");
+class TooltipView {
+ constructor(parent) {
+ this.parent = parent;
+ this.props = {
+ left: 0,
+ right: 0,
+ top: 0,
+ bottom: 0,
+ };
+ etch.initialize(this);
+ }
+ async destroy() {
+ return etch.destroy(this);
+ }
+ async update(props) {
+ this.props = Object.assign({}, this.props, props);
+ await etch.update(this);
+ }
+ writeAfterUpdate() {
+ const offset = 10;
+ let left = this.props.right;
+ let right = false;
+ let whiteSpace = "";
+ const clientWidth = this.parent.clientWidth;
+ const offsetWidth = this.element.offsetWidth;
+ const offsetHeight = this.element.offsetHeight;
+ let top = this.props.top - offsetHeight;
+ // X axis adjust
+ if (left + offsetWidth >= clientWidth) {
+ left = clientWidth - offsetWidth - offset;
+ }
+ if (left < 0) {
+ whiteSpace = "pre-wrap";
+ left = offset;
+ right = offset;
+ }
+ // Y axis adjust
+ if (top < 0) {
+ top = this.props.bottom;
+ }
+ this.element.style.left = `${left}px`;
+ this.element.style.top = `${top}px`;
+ if (right !== false)
+ this.element.style.right = `${right}px`;
+ if (whiteSpace)
+ this.element.style.whiteSpace = whiteSpace;
+ }
+ render() {
+ return (etch.dom("div", { class: "atom-typescript-tooltip tooltip", key: this.sigHelpHash() },
+ etch.dom("div", { class: "tooltip-inner" }, this.tooltipContents())));
+ }
+ sigHelpHash() {
+ if (!this.props.sigHelp)
+ return undefined;
+ const { start, end } = this.props.sigHelp.applicableSpan;
+ return `${start.line}:${start.offset}-${end.line}:${end.offset}`;
+ }
+ tooltipContents() {
+ if (!this.props.sigHelp)
+ return "âĤ";
+ const { sigHelp } = this.props;
+ return sigHelp.items.map((sig, idx) => (etch.dom("div", { class: `atom-typescript-tooltip-signature-help${idx === sigHelp.selectedItemIndex
+ ? " atom-typescript-tooltip-signature-help-selected"
+ : ""}` },
+ utils_1.partsToStr(sig.prefixDisplayParts),
+ this.renderSigHelpParams(sig.parameters, sigHelp.argumentIndex),
+ utils_1.partsToStr(sig.suffixDisplayParts),
+ etch.dom("div", { class: "atom-typescript-tooltip-signature-help-documentation" }, utils_1.partsToStr(sig.documentation)))));
+ }
+ renderSigHelpParams(params, selIdx) {
+ return params.map((p, i) => (etch.dom("span", { class: `atom-typescript-tooltip-signature-help-parameter` },
+ i > 0 ? ", " : null,
+ etch.dom("span", { class: i === selIdx ? "atom-typescript-tooltip-signature-help-selected" : undefined }, utils_1.partsToStr(p.displayParts)))));
+ }
+}
+exports.TooltipView = TooltipView;
+//# sourceMappingURL=tooltipView.js.map
\ No newline at end of file
diff --git a/dist/main/atom/sigHelp/tooltipView.js.map b/dist/main/atom/sigHelp/tooltipView.js.map
new file mode 100644
index 000000000..b18a16002
--- /dev/null
+++ b/dist/main/atom/sigHelp/tooltipView.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"tooltipView.js","sourceRoot":"","sources":["../../../../lib/main/atom/sigHelp/tooltipView.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/sigHelp/util.js b/dist/main/atom/sigHelp/util.js
new file mode 100644
index 000000000..cac843fa4
--- /dev/null
+++ b/dist/main/atom/sigHelp/util.js
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+// screen position from mouse event -- with <3 from Atom-Haskell
+function bufferPositionFromMouseEvent(editor, event) {
+ const sp = atom.views
+ .getView(editor)
+ .getComponent()
+ .screenPositionForMouseEvent(event);
+ if (isNaN(sp.row) || isNaN(sp.column)) {
+ return;
+ }
+ return editor.bufferPositionForScreenPosition(sp);
+}
+exports.bufferPositionFromMouseEvent = bufferPositionFromMouseEvent;
+//# sourceMappingURL=util.js.map
\ No newline at end of file
diff --git a/dist/main/atom/sigHelp/util.js.map b/dist/main/atom/sigHelp/util.js.map
new file mode 100644
index 000000000..70298f99a
--- /dev/null
+++ b/dist/main/atom/sigHelp/util.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../lib/main/atom/sigHelp/util.ts"],"names":[],"mappings":";;AAEA,gEAAgE;AAChE,SAAgB,4BAA4B,CAC1C,MAAkB,EAClB,KAAyC;IAEzC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK;SAClB,OAAO,CAAC,MAAM,CAAC;SACf,YAAY,EAAE;SACd,2BAA2B,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QACrC,OAAM;KACP;IACD,OAAO,MAAM,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAA;AACnD,CAAC;AAZD,oEAYC"}
\ No newline at end of file
diff --git a/dist/main/atom/tooltipManager.js b/dist/main/atom/tooltipManager.js
deleted file mode 100644
index 0f6fd21bb..000000000
--- a/dist/main/atom/tooltipManager.js
+++ /dev/null
@@ -1,171 +0,0 @@
-"use strict";
-// Inspiration : https://atom.io/packages/ide-haskell
-// and https://atom.io/packages/ide-flow
-Object.defineProperty(exports, "__esModule", { value: true });
-const atomUtils = require("./utils");
-const Atom = require("atom");
-const fs = require("fs");
-const element_listener_1 = require("./utils/element-listener");
-const tooltipView_1 = require("./views/tooltipView");
-const escape = require("escape-html");
-const tooltipMap = new WeakMap();
-// screen position from mouse event -- with <3 from Atom-Haskell
-function bufferPositionFromMouseEvent(editor, event) {
- const sp = atom.views
- .getView(editor)
- .getComponent()
- .screenPositionForMouseEvent(event);
- if (isNaN(sp.row) || isNaN(sp.column)) {
- return;
- }
- return editor.bufferPositionForScreenPosition(sp);
-}
-async function showExpressionAt(editor, pt) {
- const ed = tooltipMap.get(editor);
- if (ed) {
- return ed.showExpressionTypeKbd(pt);
- }
-}
-exports.showExpressionAt = showExpressionAt;
-class TooltipManager {
- constructor(editor, getClient) {
- this.editor = editor;
- this.getClient = getClient;
- this.subscriptions = new Atom.CompositeDisposable();
- this.reinitialize = () => {
- this.clientPromise = undefined;
- // Only on ".ts" files
- const filePath = this.editor.getPath();
- if (filePath === undefined)
- return;
- if (!atomUtils.isTypescriptEditorWithPath(this.editor))
- return;
- // We only create a "program" once the file is persisted to disk
- if (!fs.existsSync(filePath))
- return;
- this.clientPromise = this.getClient(filePath);
- };
- /** clears the timeout && the tooltip */
- this.clearExprTypeTimeout = () => {
- if (this.exprTypeTimeout !== undefined) {
- clearTimeout(this.exprTypeTimeout);
- this.exprTypeTimeout = undefined;
- }
- if (this.cancelShowTooltip)
- this.cancelShowTooltip();
- this.hideExpressionType();
- };
- this.trackMouseMovement = (e) => {
- const bufferPt = bufferPositionFromMouseEvent(this.editor, e);
- if (!bufferPt)
- return;
- if (this.lastExprTypeBufferPt &&
- this.lastExprTypeBufferPt.isEqual(bufferPt) &&
- TooltipManager.exprTypeTooltip) {
- return;
- }
- this.lastExprTypeBufferPt = bufferPt;
- this.clearExprTypeTimeout();
- this.exprTypeTimeout = window.setTimeout(() => this.showExpressionType(e), atom.config.get("atom-typescript.tooltipDelay"));
- };
- this.rawView = atom.views.getView(editor);
- this.lines = this.rawView.querySelector(".lines");
- tooltipMap.set(editor, this);
- this.subscriptions.add(element_listener_1.listen(this.rawView, "mousemove", ".scroll-view", this.trackMouseMovement), element_listener_1.listen(this.rawView, "mouseout", ".scroll-view", this.clearExprTypeTimeout), element_listener_1.listen(this.rawView, "keydown", ".scroll-view", this.clearExprTypeTimeout), this.rawView.onDidChangeScrollTop(this.clearExprTypeTimeout), this.rawView.onDidChangeScrollLeft(this.clearExprTypeTimeout));
- this.subscriptions.add(this.editor.onDidChangePath(this.reinitialize));
- this.reinitialize();
- }
- dispose() {
- this.subscriptions.dispose();
- this.clearExprTypeTimeout();
- }
- async showExpressionTypeKbd(pt) {
- const view = atom.views.getView(this.editor);
- const px = view.pixelPositionForBufferPosition(pt);
- return this.showExpressionType(this.mousePositionForPixelPosition(px));
- }
- mousePositionForPixelPosition(p) {
- const linesRect = this.lines.getBoundingClientRect();
- return {
- clientY: p.top + linesRect.top + this.editor.getLineHeightInPixels() / 2,
- clientX: p.left + linesRect.left,
- };
- }
- async showExpressionType(e) {
- if (!this.clientPromise)
- return;
- // If we are already showing we should wait for that to clear
- if (TooltipManager.exprTypeTooltip)
- return;
- if (this.cancelShowTooltip)
- this.cancelShowTooltip();
- let cancelled = false;
- this.cancelShowTooltip = () => {
- cancelled = true;
- this.cancelShowTooltip = undefined;
- };
- const bufferPt = bufferPositionFromMouseEvent(this.editor, e);
- if (!bufferPt)
- return;
- const curCharPixelPt = this.rawView.pixelPositionForBufferPosition(bufferPt);
- const nextCharPixelPt = this.rawView.pixelPositionForBufferPosition(bufferPt.traverse([0, 1]));
- if (curCharPixelPt.left >= nextCharPixelPt.left) {
- return;
- }
- // find out show position
- const offset = this.editor.getLineHeightInPixels() * 0.7;
- const tooltipRect = {
- left: e.clientX,
- right: e.clientX,
- top: e.clientY - offset,
- bottom: e.clientY + offset,
- };
- const msg = await this.getMessage(bufferPt);
- if (cancelled)
- return;
- if (msg !== undefined)
- this.showTooltip(tooltipRect, msg);
- }
- async getMessage(bufferPt) {
- let result;
- if (!this.clientPromise)
- return;
- const client = await this.clientPromise;
- const filePath = this.editor.getPath();
- try {
- if (filePath === undefined) {
- return;
- }
- result = await client.execute("quickinfo", {
- file: filePath,
- line: bufferPt.row + 1,
- offset: bufferPt.column + 1,
- });
- }
- catch (e) {
- return;
- }
- const { displayString, documentation } = result.body;
- let message = `${escape(displayString)}`;
- if (documentation) {
- message =
- message + `
${escape(documentation).replace(/(?:\r\n|\r|\n)/g, "
")}`;
- }
- return message;
- }
- showTooltip(tooltipRect, message) {
- if (TooltipManager.exprTypeTooltip)
- return;
- TooltipManager.exprTypeTooltip = new tooltipView_1.TooltipView();
- document.body.appendChild(TooltipManager.exprTypeTooltip.element);
- TooltipManager.exprTypeTooltip.update(Object.assign({}, tooltipRect, { text: message }));
- }
- hideExpressionType() {
- if (!TooltipManager.exprTypeTooltip)
- return;
- TooltipManager.exprTypeTooltip.destroy();
- TooltipManager.exprTypeTooltip = undefined;
- }
-}
-exports.TooltipManager = TooltipManager;
-//# sourceMappingURL=tooltipManager.js.map
\ No newline at end of file
diff --git a/dist/main/atom/tooltipManager.js.map b/dist/main/atom/tooltipManager.js.map
deleted file mode 100644
index 05ed81888..000000000
--- a/dist/main/atom/tooltipManager.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tooltipManager.js","sourceRoot":"","sources":["../../../lib/main/atom/tooltipManager.ts"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,wCAAwC;;AAExC,qCAAqC;AACrC,6BAA4B;AAC5B,yBAAyB;AACzB,+DAA+C;AAC/C,qDAA+C;AAC/C,sCAAsC;AAGtC,MAAM,UAAU,GAAG,IAAI,OAAO,EAAmC,CAAA;AASjE,gEAAgE;AAChE,SAAS,4BAA4B,CACnC,MAAuB,EACvB,KAAyC;IAEzC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK;SAClB,OAAO,CAAC,MAAM,CAAC;SACf,YAAY,EAAE;SACd,2BAA2B,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QACrC,OAAM;KACP;IACD,OAAO,MAAM,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAA;AACnD,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,MAAuB,EAAE,EAAc;IAC5E,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,EAAE,EAAE;QACN,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAA;KACpC;AACH,CAAC;AALD,4CAKC;AAED,MAAa,cAAc;IAUzB,YACU,MAAuB,EACvB,SAA2D;QAD3D,WAAM,GAAN,MAAM,CAAiB;QACvB,cAAS,GAAT,SAAS,CAAkD;QAP7D,kBAAa,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAqC9C,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAC9B,sBAAsB;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;YACtC,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAM;YAClC,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAM;YAC9D,gEAAgE;YAChE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAM;YAEpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC/C,CAAC,CAAA;QAiFD,wCAAwC;QAChC,yBAAoB,GAAG,GAAG,EAAE;YAClC,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;gBACtC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;gBAClC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;aACjC;YACD,IAAI,IAAI,CAAC,iBAAiB;gBAAE,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACpD,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC3B,CAAC,CAAA;QAQO,uBAAkB,GAAG,CAAC,CAAa,EAAE,EAAE;YAC7C,MAAM,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YAC7D,IAAI,CAAC,QAAQ;gBAAE,OAAM;YACrB,IACE,IAAI,CAAC,oBAAoB;gBACzB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC3C,cAAc,CAAC,eAAe,EAC9B;gBACA,OAAM;aACP;YAED,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAA;YAEpC,IAAI,CAAC,oBAAoB,EAAE,CAAA;YAC3B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CACtC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAChD,CAAA;QACH,CAAC,CAAA;QAzJC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAA;QAClD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAE5B,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,yBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAC1E,yBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAC3E,yBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAC1E,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAC5D,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAC9D,CAAA;QAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;QAEtE,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAA;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAA;IAC7B,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,EAAc;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAA;QAClD,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAA;IACxE,CAAC;IAcO,6BAA6B,CAAC,CAAqB;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAA;QACpD,OAAO;YACL,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,GAAG,CAAC;YACxE,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;SACjC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,CAAqC;QACpE,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAM;QAC/B,6DAA6D;QAC7D,IAAI,cAAc,CAAC,eAAe;YAAE,OAAM;QAE1C,IAAI,IAAI,CAAC,iBAAiB;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAEpD,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC,iBAAiB,GAAG,GAAG,EAAE;YAC5B,SAAS,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAA;QACpC,CAAC,CAAA;QAED,MAAM,QAAQ,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC7D,IAAI,CAAC,QAAQ;YAAE,OAAM;QACrB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAA;QAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE9F,IAAI,cAAc,CAAC,IAAI,IAAI,eAAe,CAAC,IAAI,EAAE;YAC/C,OAAM;SACP;QAED,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,GAAG,GAAG,CAAA;QACxD,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,CAAC,CAAC,OAAO;YACf,KAAK,EAAE,CAAC,CAAC,OAAO;YAChB,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM;YACvB,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM;SAC3B,CAAA;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,SAAS;YAAE,OAAM;QACrB,IAAI,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;IAC3D,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,QAAoB;QAC3C,IAAI,MAAkC,CAAA;QACtC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAM;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAA;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QACtC,IAAI;YACF,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,OAAM;aACP;YACD,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;gBACzC,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC;gBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;aAC5B,CAAC,CAAA;SACH;QAAC,OAAO,CAAC,EAAE;YACV,OAAM;SACP;QAED,MAAM,EAAC,aAAa,EAAE,aAAa,EAAC,GAAG,MAAM,CAAC,IAAK,CAAA;QAEnD,IAAI,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAA;QAC/C,IAAI,aAAa,EAAE;YACjB,OAAO;gBACL,OAAO,GAAG,WAAW,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAA;SACxF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,WAAW,CAAC,WAAiB,EAAE,OAAe;QACpD,IAAI,cAAc,CAAC,eAAe;YAAE,OAAM;QAC1C,cAAc,CAAC,eAAe,GAAG,IAAI,yBAAW,EAAE,CAAA;QAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACjE,cAAc,CAAC,eAAe,CAAC,MAAM,mBAAK,WAAW,IAAE,IAAI,EAAE,OAAO,IAAE,CAAA;IACxE,CAAC;IAYO,kBAAkB;QACxB,IAAI,CAAC,cAAc,CAAC,eAAe;YAAE,OAAM;QAC3C,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,CAAA;QACxC,cAAc,CAAC,eAAe,GAAG,SAAS,CAAA;IAC5C,CAAC;CAqBF;AAxKD,wCAwKC"}
\ No newline at end of file
diff --git a/dist/main/atom/tooltips/controller.js b/dist/main/atom/tooltips/controller.js
new file mode 100644
index 000000000..2a71630ea
--- /dev/null
+++ b/dist/main/atom/tooltips/controller.js
@@ -0,0 +1,70 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("../../../utils");
+const tooltipView_1 = require("./tooltipView");
+const util_1 = require("./util");
+class TooltipController {
+ constructor(getClient, editor, e) {
+ this.getClient = getClient;
+ this.cancelled = false;
+ utils_1.handlePromise(this.initialize(editor, e));
+ }
+ dispose() {
+ this.cancelled = true;
+ if (this.view) {
+ utils_1.handlePromise(this.view.destroy());
+ this.view = undefined;
+ }
+ }
+ async initialize(editor, e) {
+ const bufferPt = util_1.bufferPositionFromMouseEvent(editor, e);
+ if (!bufferPt)
+ return;
+ const rawView = atom.views.getView(editor);
+ const curCharPixelPt = rawView.pixelPositionForBufferPosition(bufferPt);
+ const nextCharPixelPt = rawView.pixelPositionForBufferPosition(bufferPt.traverse([0, 1]));
+ if (curCharPixelPt.left >= nextCharPixelPt.left)
+ return;
+ // find out show position
+ const offset = editor.getLineHeightInPixels() * 0.7;
+ const tooltipRect = {
+ left: e.clientX,
+ right: e.clientX,
+ top: e.clientY - offset,
+ bottom: e.clientY + offset,
+ };
+ const msg = await this.getMessage(editor, bufferPt);
+ if (this.cancelled)
+ return;
+ if (msg !== undefined)
+ await this.showTooltip(tooltipRect, msg);
+ }
+ async getMessage(editor, bufferPt) {
+ let result;
+ const client = await this.getClient(editor);
+ if (!client)
+ return;
+ const filePath = editor.getPath();
+ try {
+ if (filePath === undefined) {
+ return;
+ }
+ result = await client.execute("quickinfo", {
+ file: filePath,
+ line: bufferPt.row + 1,
+ offset: bufferPt.column + 1,
+ });
+ }
+ catch (e) {
+ return;
+ }
+ return result.body;
+ }
+ async showTooltip(tooltipRect, info) {
+ this.view = new tooltipView_1.TooltipView();
+ document.body.appendChild(this.view.element);
+ await this.view.update(Object.assign({}, tooltipRect, { info }));
+ }
+}
+exports.TooltipController = TooltipController;
+//# sourceMappingURL=controller.js.map
\ No newline at end of file
diff --git a/dist/main/atom/tooltips/controller.js.map b/dist/main/atom/tooltips/controller.js.map
new file mode 100644
index 000000000..af9919bc5
--- /dev/null
+++ b/dist/main/atom/tooltips/controller.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../lib/main/atom/tooltips/controller.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/tooltips/manager.js b/dist/main/atom/tooltips/manager.js
new file mode 100644
index 000000000..a946eac2a
--- /dev/null
+++ b/dist/main/atom/tooltips/manager.js
@@ -0,0 +1,97 @@
+"use strict";
+// Inspiration : https://atom.io/packages/ide-haskell
+// and https://atom.io/packages/ide-flow
+Object.defineProperty(exports, "__esModule", { value: true });
+const Atom = require("atom");
+const fs = require("fs");
+const atomUtils = require("../utils");
+const element_listener_1 = require("../utils/element-listener");
+const controller_1 = require("./controller");
+const util_1 = require("./util");
+class TooltipManager {
+ constructor(getClientInternal) {
+ this.getClientInternal = getClientInternal;
+ this.subscriptions = new Atom.CompositeDisposable();
+ this.editorMap = new WeakMap();
+ this.getClient = async (editor) => {
+ // Only on ".ts" files
+ const filePath = editor.getPath();
+ if (filePath === undefined)
+ return;
+ if (!atomUtils.isTypescriptEditorWithPath(editor))
+ return;
+ // We only create a "program" once the file is persisted to disk
+ if (!fs.existsSync(filePath))
+ return;
+ return this.getClientInternal(filePath);
+ };
+ /** clears the timeout && the tooltip */
+ this.clearExprTypeTimeout = () => {
+ if (this.exprTypeTimeout !== undefined) {
+ clearTimeout(this.exprTypeTimeout);
+ this.exprTypeTimeout = undefined;
+ }
+ this.hideExpressionType();
+ };
+ this.trackMouseMovement = (editor) => {
+ let lastExprTypeBufferPt;
+ return (e) => {
+ const bufferPt = util_1.bufferPositionFromMouseEvent(editor, e);
+ if (!bufferPt)
+ return;
+ if (lastExprTypeBufferPt && lastExprTypeBufferPt.isEqual(bufferPt) && this.pendingTooltip) {
+ return;
+ }
+ lastExprTypeBufferPt = bufferPt;
+ this.clearExprTypeTimeout();
+ this.exprTypeTimeout = window.setTimeout(() => this.showExpressionType(editor, e), atom.config.get("atom-typescript").tooltipDelay);
+ };
+ };
+ this.subscriptions.add(atom.workspace.observeTextEditors(editor => {
+ const rawView = atom.views.getView(editor);
+ const lines = rawView.querySelector(".lines");
+ this.editorMap.set(editor, {
+ rawView,
+ lines,
+ });
+ const disp = new Atom.CompositeDisposable();
+ disp.add(element_listener_1.listen(rawView, "mousemove", ".scroll-view", this.trackMouseMovement(editor)), element_listener_1.listen(rawView, "mouseout", ".scroll-view", this.clearExprTypeTimeout), element_listener_1.listen(rawView, "keydown", ".scroll-view", this.clearExprTypeTimeout), rawView.onDidChangeScrollTop(this.clearExprTypeTimeout), rawView.onDidChangeScrollLeft(this.clearExprTypeTimeout), editor.onDidDestroy(() => {
+ disp.dispose();
+ this.subscriptions.remove(disp);
+ }));
+ this.subscriptions.add(disp);
+ }));
+ }
+ dispose() {
+ this.subscriptions.dispose();
+ this.clearExprTypeTimeout();
+ }
+ async showExpressionAt(editor) {
+ const pt = editor.getLastCursor().getBufferPosition();
+ const view = atom.views.getView(editor);
+ const px = view.pixelPositionForBufferPosition(pt);
+ return this.showExpressionType(editor, this.mousePositionForPixelPosition(editor, px));
+ }
+ mousePositionForPixelPosition(editor, p) {
+ const rawView = atom.views.getView(editor);
+ const lines = rawView.querySelector(".lines");
+ const linesRect = lines.getBoundingClientRect();
+ return {
+ clientY: p.top + linesRect.top + editor.getLineHeightInPixels() / 2,
+ clientX: p.left + linesRect.left,
+ };
+ }
+ async showExpressionType(editor, e) {
+ if (this.pendingTooltip)
+ this.pendingTooltip.dispose();
+ this.pendingTooltip = new controller_1.TooltipController(this.getClient, editor, e);
+ }
+ hideExpressionType() {
+ if (!this.pendingTooltip)
+ return;
+ this.pendingTooltip.dispose();
+ this.pendingTooltip = undefined;
+ }
+}
+exports.TooltipManager = TooltipManager;
+//# sourceMappingURL=manager.js.map
\ No newline at end of file
diff --git a/dist/main/atom/tooltips/manager.js.map b/dist/main/atom/tooltips/manager.js.map
new file mode 100644
index 000000000..48992119e
--- /dev/null
+++ b/dist/main/atom/tooltips/manager.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../lib/main/atom/tooltips/manager.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/views/tooltipView.js b/dist/main/atom/tooltips/tooltipView.js
similarity index 78%
rename from dist/main/atom/views/tooltipView.js
rename to dist/main/atom/tooltips/tooltipView.js
index 8336e2b7b..5fe097e14 100644
--- a/dist/main/atom/views/tooltipView.js
+++ b/dist/main/atom/tooltips/tooltipView.js
@@ -8,7 +8,6 @@ class TooltipView {
right: 0,
top: 0,
bottom: 0,
- text: "",
};
etch.initialize(this);
}
@@ -51,7 +50,14 @@ class TooltipView {
}
render() {
return (etch.dom("div", { class: "atom-typescript-tooltip tooltip" },
- etch.dom("div", { class: "tooltip-inner", innerHTML: this.props.text })));
+ etch.dom("div", { class: "tooltip-inner" }, this.tooltipContents())));
+ }
+ tooltipContents() {
+ if (!this.props.info)
+ return "âĤ";
+ const code = (etch.dom("div", { class: "atom-typescript-tooltip-tooltip-code" }, this.props.info.displayString));
+ const docs = this.props.info.documentation ? (etch.dom("div", { class: "atom-typescript-tooltip-tooltip-doc" }, this.props.info.documentation)) : null;
+ return [code, docs];
}
}
exports.TooltipView = TooltipView;
diff --git a/dist/main/atom/tooltips/tooltipView.js.map b/dist/main/atom/tooltips/tooltipView.js.map
new file mode 100644
index 000000000..f2efc1869
--- /dev/null
+++ b/dist/main/atom/tooltips/tooltipView.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"tooltipView.js","sourceRoot":"","sources":["../../../../lib/main/atom/tooltips/tooltipView.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/tooltips/util.js b/dist/main/atom/tooltips/util.js
new file mode 100644
index 000000000..cac843fa4
--- /dev/null
+++ b/dist/main/atom/tooltips/util.js
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+// screen position from mouse event -- with <3 from Atom-Haskell
+function bufferPositionFromMouseEvent(editor, event) {
+ const sp = atom.views
+ .getView(editor)
+ .getComponent()
+ .screenPositionForMouseEvent(event);
+ if (isNaN(sp.row) || isNaN(sp.column)) {
+ return;
+ }
+ return editor.bufferPositionForScreenPosition(sp);
+}
+exports.bufferPositionFromMouseEvent = bufferPositionFromMouseEvent;
+//# sourceMappingURL=util.js.map
\ No newline at end of file
diff --git a/dist/main/atom/tooltips/util.js.map b/dist/main/atom/tooltips/util.js.map
new file mode 100644
index 000000000..e3009330f
--- /dev/null
+++ b/dist/main/atom/tooltips/util.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../lib/main/atom/tooltips/util.ts"],"names":[],"mappings":";;AAEA,gEAAgE;AAChE,SAAgB,4BAA4B,CAC1C,MAAkB,EAClB,KAAyC;IAEzC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK;SAClB,OAAO,CAAC,MAAM,CAAC;SACf,YAAY,EAAE;SACd,2BAA2B,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QACrC,OAAM;KACP;IACD,OAAO,MAAM,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAA;AACnD,CAAC;AAZD,oEAYC"}
\ No newline at end of file
diff --git a/dist/main/atom/utils/atom.js b/dist/main/atom/utils/atom.js
index a4a25009d..77a7c5779 100644
--- a/dist/main/atom/utils/atom.js
+++ b/dist/main/atom/utils/atom.js
@@ -1,6 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
+const ts_1 = require("./ts");
// Return line/offset position in the editor using 1-indexed coordinates
function getEditorPosition(editor) {
const pos = editor.getCursorBufferPosition();
@@ -16,7 +17,11 @@ function isTypescriptFile(filePath) {
}
exports.isTypescriptFile = isTypescriptFile;
function typeScriptScopes() {
- return ["source.ts", "source.tsx", "typescript"];
+ const tsScopes = atom.config.get("atom-typescript").tsSyntaxScopes;
+ if (atom.config.get("atom-typescript").allowJS) {
+ tsScopes.push(...atom.config.get("atom-typescript").jsSyntaxScopes);
+ }
+ return tsScopes;
}
exports.typeScriptScopes = typeScriptScopes;
function isTypescriptEditorWithPath(editor) {
@@ -29,13 +34,25 @@ function isTypescriptGrammar(editor) {
}
exports.isTypescriptGrammar = isTypescriptGrammar;
function isAllowedExtension(ext) {
- return [".ts", ".tst", ".tsx"].includes(ext);
+ const tsExts = atom.config.get("atom-typescript").tsFileExtensions;
+ if (atom.config.get("atom-typescript").allowJS) {
+ tsExts.push(...atom.config.get("atom-typescript").jsFileExtensions);
+ }
+ return tsExts.includes(ext);
}
-function getFilePathPosition(editor) {
+function getFilePathPosition(editor, position) {
const file = editor.getPath();
if (file !== undefined) {
- return Object.assign({ file }, getEditorPosition(editor));
+ const location = position ? ts_1.pointToLocation(position) : getEditorPosition(editor);
+ return Object.assign({ file }, location);
}
}
exports.getFilePathPosition = getFilePathPosition;
+function* getOpenEditorsPaths() {
+ for (const ed of atom.workspace.getTextEditors()) {
+ if (isTypescriptEditorWithPath(ed))
+ yield ed.getPath();
+ }
+}
+exports.getOpenEditorsPaths = getOpenEditorsPaths;
//# sourceMappingURL=atom.js.map
\ No newline at end of file
diff --git a/dist/main/atom/utils/atom.js.map b/dist/main/atom/utils/atom.js.map
index 038206c4f..8f6519142 100644
--- a/dist/main/atom/utils/atom.js.map
+++ b/dist/main/atom/utils/atom.js.map
@@ -1 +1 @@
-{"version":3,"file":"atom.js","sourceRoot":"","sources":["../../../../lib/main/atom/utils/atom.ts"],"names":[],"mappings":";;AACA,6BAA4B;AAG5B,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,MAAuB;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAA;IAC5C,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;KACvB,CAAA;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAA4B;IAC3D,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACxC,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;AACnD,CAAC;AAHD,4CAGC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;AAClD,CAAC;AAFD,4CAEC;AAED,SAAgB,0BAA0B,CAAC,MAAuB;IAChE,OAAO,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAC1E,CAAC;AAFD,gEAEC;AAED,SAAgB,mBAAmB,CAAC,MAAuB;IACzD,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAC,cAAc,EAAE,CAAA;IACpE,OAAO,gBAAgB,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AAC/C,CAAC;AAHD,kDAGC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC9C,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAuB;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,uBAAQ,IAAI,IAAK,iBAAiB,CAAC,MAAM,CAAC,EAAC;KAC5C;AACH,CAAC;AALD,kDAKC"}
\ No newline at end of file
+{"version":3,"file":"atom.js","sourceRoot":"","sources":["../../../../lib/main/atom/utils/atom.ts"],"names":[],"mappings":";;AACA,6BAA4B;AAC5B,6BAAiE;AAEjE,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,MAAuB;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,uBAAuB,EAAE,CAAA;IAC5C,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;KACvB,CAAA;AACH,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAA4B;IAC3D,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACxC,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;AACnD,CAAC;AAHD,4CAGC;AAED,SAAgB,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAA;IAClE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE;QAC9C,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAA;KACpE;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAND,4CAMC;AAED,SAAgB,0BAA0B,CAAC,MAAuB;IAChE,OAAO,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAC1E,CAAC;AAFD,gEAEC;AAED,SAAgB,mBAAmB,CAAC,MAAuB;IACzD,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAC,cAAc,EAAE,CAAA;IACpE,OAAO,gBAAgB,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AAC/C,CAAC;AAHD,kDAGC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAAA;IAClE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE;QAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAAC,CAAA;KACpE;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED,SAAgB,mBAAmB,CACjC,MAAuB,EACvB,QAAqB;IAErB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;IAC7B,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,oBAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACjF,uBAAQ,IAAI,IAAK,QAAQ,EAAC;KAC3B;AACH,CAAC;AATD,kDASC;AAED,QAAe,CAAC,CAAC,mBAAmB;IAClC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE;QAChD,IAAI,0BAA0B,CAAC,EAAE,CAAC;YAAE,MAAM,EAAE,CAAC,OAAO,EAAG,CAAA;KACxD;AACH,CAAC;AAJD,kDAIC"}
\ No newline at end of file
diff --git a/dist/main/atom/utils/ts.js b/dist/main/atom/utils/ts.js
index 02d32b985..89f9e633a 100644
--- a/dist/main/atom/utils/ts.js
+++ b/dist/main/atom/utils/ts.js
@@ -27,35 +27,34 @@ function rangeToLocationRange(range) {
};
}
exports.rangeToLocationRange = rangeToLocationRange;
-// Compare loc2 with loc1. The result is -1 if loc1 is smaller and 1 if it's larger.
-function compareLocation(loc1, loc2) {
- if (loc1.line < loc2.line) {
- return -1;
- }
- else if (loc1.line > loc2.line) {
- return 1;
- }
- else {
- if (loc1.offset < loc2.offset) {
- return -1;
- }
- else if (loc1.offset > loc2.offset) {
- return 1;
- }
- else {
- return 0;
- }
- }
-}
-exports.compareLocation = compareLocation;
-function isLocationInRange(loc, range) {
- return compareLocation(range.start, loc) !== 1 && compareLocation(range.end, loc) !== -1;
-}
-exports.isLocationInRange = isLocationInRange;
-async function getProjectCodeSettings(configFile) {
+async function getProjectConfig(configFile) {
const { config } = await tsconfig.load(configFile);
const options = config.formatCodeOptions;
- return Object.assign({ indentSize: atom.config.get("editor.tabLength"), tabSize: atom.config.get("editor.tabLength") }, options);
+ return {
+ formatCodeOptions: Object.assign({ indentSize: atom.config.get("editor.tabLength"), tabSize: atom.config.get("editor.tabLength") }, options),
+ compileOnSave: !!config.compileOnSave,
+ };
+}
+exports.getProjectConfig = getProjectConfig;
+function signatureHelpItemToSignature(i) {
+ return {
+ label: partsToStr(i.prefixDisplayParts) +
+ i.parameters.map(x => partsToStr(x.displayParts)).join(partsToStr(i.separatorDisplayParts)) +
+ partsToStr(i.suffixDisplayParts),
+ documentation: partsToStr(i.documentation),
+ parameters: i.parameters.map(signatureHelpParameterToSignatureParameter),
+ };
+}
+exports.signatureHelpItemToSignature = signatureHelpItemToSignature;
+function signatureHelpParameterToSignatureParameter(p) {
+ return {
+ label: partsToStr(p.displayParts),
+ documentation: partsToStr(p.documentation),
+ };
+}
+exports.signatureHelpParameterToSignatureParameter = signatureHelpParameterToSignatureParameter;
+function partsToStr(x) {
+ return x.map(i => i.text).join("");
}
-exports.getProjectCodeSettings = getProjectCodeSettings;
+exports.partsToStr = partsToStr;
//# sourceMappingURL=ts.js.map
\ No newline at end of file
diff --git a/dist/main/atom/utils/ts.js.map b/dist/main/atom/utils/ts.js.map
index a3baa4d83..b7895a2a5 100644
--- a/dist/main/atom/utils/ts.js.map
+++ b/dist/main/atom/utils/ts.js.map
@@ -1 +1 @@
-{"version":3,"file":"ts.js","sourceRoot":"","sources":["../../../../lib/main/atom/utils/ts.ts"],"names":[],"mappings":";;AACA,6BAA4B;AAC5B,qCAAoC;AAapC,SAAgB,eAAe,CAAC,KAAqB;IACnD,OAAO,EAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAC,CAAA;AACxD,CAAC;AAFD,0CAEC;AAED,SAAgB,eAAe,CAAC,GAAa;IAC3C,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AACrD,CAAC;AAFD,0CAEC;AAED,SAAgB,WAAW,CAAC,IAAc;IACxC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAFD,kCAEC;AAED,SAAgB,gBAAgB,CAAC,KAAe,EAAE,GAAa;IAC7D,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;AACrE,CAAC;AAFD,4CAEC;AAED,SAAgB,oBAAoB,CAAC,KAAiB;IACpD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QACzB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAC9B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;KAChC,CAAA;AACH,CAAC;AAPD,oDAOC;AAED,oFAAoF;AACpF,SAAgB,eAAe,CAAC,IAAc,EAAE,IAAc;IAC5D,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;QACzB,OAAO,CAAC,CAAC,CAAA;KACV;SAAM,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;QAChC,OAAO,CAAC,CAAA;KACT;SAAM;QACL,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;YAC7B,OAAO,CAAC,CAAC,CAAA;SACV;aAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;YACpC,OAAO,CAAC,CAAA;SACT;aAAM;YACL,OAAO,CAAC,CAAA;SACT;KACF;AACH,CAAC;AAdD,0CAcC;AAED,SAAgB,iBAAiB,CAAC,GAAa,EAAE,KAAuC;IACtF,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC1F,CAAC;AAFD,8CAEC;AAEM,KAAK,UAAU,sBAAsB,CAAC,UAAkB;IAC7D,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAExC,uBACE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAC/C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,IACzC,OAAO,EACX;AACH,CAAC;AATD,wDASC"}
\ No newline at end of file
+{"version":3,"file":"ts.js","sourceRoot":"","sources":["../../../../lib/main/atom/utils/ts.ts"],"names":[],"mappings":";;AAAA,6BAA4B;AAE5B,qCAAoC;AAqBpC,SAAgB,eAAe,CAAC,KAAqB;IACnD,OAAO,EAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAC,CAAA;AACxD,CAAC;AAFD,0CAEC;AAED,SAAgB,eAAe,CAAC,GAAa;IAC3C,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AACrD,CAAC;AAFD,0CAEC;AAED,SAAgB,WAAW,CAAC,IAAc;IACxC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAFD,kCAEC;AAED,SAAgB,gBAAgB,CAAC,KAAe,EAAE,GAAa;IAC7D,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;AACrE,CAAC;AAFD,4CAEC;AAED,SAAgB,oBAAoB,CAAC,KAAiB;IACpD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QACzB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAC9B,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;KAChC,CAAA;AACH,CAAC;AAPD,oDAOC;AAEM,KAAK,UAAU,gBAAgB,CACpC,UAAkB;IAKlB,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAChD,MAAM,OAAO,GAAI,MAAmD,CAAC,iBAAiB,CAAA;IAEtF,OAAO;QACL,iBAAiB,kBACf,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAC/C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,IACzC,OAAO,CACX;QACD,aAAa,EAAE,CAAC,CAAE,MAAoC,CAAC,aAAa;KACrE,CAAA;AACH,CAAC;AAjBD,4CAiBC;AAED,SAAgB,4BAA4B,CAAC,CAAoB;IAC/D,OAAO;QACL,KAAK,EACH,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC;YAChC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;YAC3F,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAClC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;QAC1C,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,0CAA0C,CAAC;KACzE,CAAA;AACH,CAAC;AATD,oEASC;AAED,SAAgB,0CAA0C,CACxD,CAAyB;IAEzB,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;QACjC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;KAC3C,CAAA;AACH,CAAC;AAPD,gGAOC;AAED,SAAgB,UAAU,CAAC,CAAwB;IACjD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpC,CAAC;AAFD,gCAEC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/highlightComponent.js.map b/dist/main/atom/views/highlightComponent.js.map
index 5f49b063e..65e50a04d 100644
--- a/dist/main/atom/views/highlightComponent.js.map
+++ b/dist/main/atom/views/highlightComponent.js.map
@@ -1 +1 @@
-{"version":3,"file":"highlightComponent.js","sourceRoot":"","sources":["../../../../lib/main/atom/views/highlightComponent.tsx"],"names":[],"mappings":";;AAAA,6BAA4B;AAC5B,2CAAgC;AAYhC,MAAa,kBAAkB;IAE7B,YAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAqB;QACvC,IAAI,CAAC,KAAK,qBAAO,IAAI,CAAC,KAAK,EAAK,KAAK,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAEM,MAAM;QACX,OAAO,CACL,uBACG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACrB,mBAAM,KAAK,EAAE,CAAC,CAAC,IAAI,IAAG,CAAC,CAAC,IAAI,CAAQ,CACrC,CAAC,CACG,CACR,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,KAAY;QACxB,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,OAAO,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;SAClD;QACD,OAAO,CAAC,EAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAC,CAAC,CAAA;IAC9B,CAAC;CACF;AAjCD,gDAiCC;AAED,8FAA8F;AAC9F,SAAgB,gBAAgB,CAAC,IAAY,EAAE,KAAa;IAC1D,IAAI,SAAS,GAAW,CAAC,CAAA;IACzB,IAAI,YAAY,GAAa,EAAE,CAAA,CAAC,sDAAsD;IACtF,MAAM,YAAY,GAAiB,EAAE,CAAA;IAErC,MAAM,OAAO,GAAa,kBAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC5C,IAAI,UAAkB,CAAA;IACtB,KAAK,UAAU,IAAI,OAAO,EAAE;QAC1B,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,SAAQ,CAAC,gDAAgD;SAC1D;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QACvD,IAAI,SAAS,EAAE;YACb,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAC,CAAC,CAAA;aAC1E;YACD,YAAY,GAAG,EAAE,CAAA;YACjB,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC,CAAA;SACrC;QACD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QACnC,SAAS,GAAG,UAAU,GAAG,CAAC,CAAA;KAC3B;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAC,CAAC,CAAA;KAC1E;IAED,sCAAsC;IACtC,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAC,CAAC,CAAA;IAEpD,OAAO,YAAY,CAAA;AACrB,CAAC;AA/BD,4CA+BC"}
\ No newline at end of file
+{"version":3,"file":"highlightComponent.js","sourceRoot":"","sources":["../../../../lib/main/atom/views/highlightComponent.tsx"],"names":[],"mappings":";;AAAA,6BAA4B;AAC5B,2CAAgC;AAYhC,MAAa,kBAAkB;IAE7B,YAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAqB;QACvC,IAAI,CAAC,KAAK,qBAAO,IAAI,CAAC,KAAK,EAAK,KAAK,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAEM,MAAM;QACX,OAAO,CACL,uBACG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACrB,mBAAM,KAAK,EAAE,CAAC,CAAC,IAAI,IAAG,CAAC,CAAC,IAAI,CAAQ,CACrC,CAAC,CACG,CACR,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,KAAY;QACxB,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,OAAO,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;SAClD;QACD,OAAO,CAAC,EAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAC,CAAC,CAAA;IAC9B,CAAC;CACF;AAjCD,gDAiCC;AAED,8FAA8F;AAC9F,SAAgB,gBAAgB,CAAC,IAAY,EAAE,KAAa;IAC1D,IAAI,SAAS,GAAW,CAAC,CAAA;IACzB,IAAI,YAAY,GAAa,EAAE,CAAA,CAAC,sDAAsD;IACtF,MAAM,YAAY,GAAiB,EAAE,CAAA;IAErC,MAAM,OAAO,GAAa,kBAAK,CAAC,IAAI,EAAE,KAAK,CAAa,CAAA;IACxD,IAAI,UAAkB,CAAA;IACtB,KAAK,UAAU,IAAI,OAAO,EAAE;QAC1B,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,SAAQ,CAAC,gDAAgD;SAC1D;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QACvD,IAAI,SAAS,EAAE;YACb,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAC,CAAC,CAAA;aAC1E;YACD,YAAY,GAAG,EAAE,CAAA;YACjB,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC,CAAA;SACrC;QACD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QACnC,SAAS,GAAG,UAAU,GAAG,CAAC,CAAA;KAC3B;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAC,CAAC,CAAA;KAC1E;IAED,sCAAsC;IACtC,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAC,CAAC,CAAA;IAEpD,OAAO,YAAY,CAAA;AACrB,CAAC;AA/BD,4CA+BC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/outline/navTreeUtils.js b/dist/main/atom/views/outline/navTreeUtils.js
index 65ab13508..66484935e 100644
--- a/dist/main/atom/views/outline/navTreeUtils.js
+++ b/dist/main/atom/views/outline/navTreeUtils.js
@@ -53,7 +53,6 @@ exports.findNodeAt = findNodeAt;
* @return the start line for the NavTree node, or 0, if none could be determined
*/
function getNodeStartLine(node) {
- // console.log('getNodeStartLine.node -> ', node)
return node.spans.length > 0 ? node.spans[0].start.line - 1 : 0;
}
exports.getNodeStartLine = getNodeStartLine;
@@ -63,7 +62,6 @@ exports.getNodeStartLine = getNodeStartLine;
* @return the start column for the NavTree node, or 0, if none could be determined
*/
function getNodeStartOffset(node) {
- // console.log('getNodeStartLine.node -> ', node)
return node.spans.length > 0 ? node.spans[0].start.offset - 1 : 0;
}
exports.getNodeStartOffset = getNodeStartOffset;
diff --git a/dist/main/atom/views/outline/navTreeUtils.js.map b/dist/main/atom/views/outline/navTreeUtils.js.map
index 2b7369240..808de8a8f 100644
--- a/dist/main/atom/views/outline/navTreeUtils.js.map
+++ b/dist/main/atom/views/outline/navTreeUtils.js.map
@@ -1 +1 @@
-{"version":3,"file":"navTreeUtils.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/outline/navTreeUtils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"navTreeUtils.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/outline/navTreeUtils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/views/outline/navigationNodeComponent.js b/dist/main/atom/views/outline/navigationNodeComponent.js
index 4c5e518ab..f7868194d 100644
--- a/dist/main/atom/views/outline/navigationNodeComponent.js
+++ b/dist/main/atom/views/outline/navigationNodeComponent.js
@@ -1,6 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const etch = require("etch");
+const utils_1 = require("../../../../utils");
const navTreeUtils_1 = require("./navTreeUtils");
class NavigationNodeComponent {
constructor(props) {
@@ -53,7 +54,7 @@ class NavigationNodeComponent {
}
else {
node.collapsed = !node.collapsed;
- etch.update(this);
+ utils_1.handlePromise(etch.update(this));
}
}
}
diff --git a/dist/main/atom/views/outline/navigationNodeComponent.js.map b/dist/main/atom/views/outline/navigationNodeComponent.js.map
index 8e385fa35..ec28ec981 100644
--- a/dist/main/atom/views/outline/navigationNodeComponent.js.map
+++ b/dist/main/atom/views/outline/navigationNodeComponent.js.map
@@ -1 +1 @@
-{"version":3,"file":"navigationNodeComponent.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/outline/navigationNodeComponent.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"navigationNodeComponent.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/outline/navigationNodeComponent.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/views/outline/navigationTreeComponent.js b/dist/main/atom/views/outline/navigationTreeComponent.js
index eb85b01a3..25b442d1a 100644
--- a/dist/main/atom/views/outline/navigationTreeComponent.js
+++ b/dist/main/atom/views/outline/navigationTreeComponent.js
@@ -1,29 +1,32 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const atomUtils = require("../../utils");
+const atom_1 = require("atom");
const etch = require("etch");
const lodash_1 = require("lodash");
+const utils_1 = require("../../../../utils");
+const atomUtils = require("../../utils");
const navigationNodeComponent_1 = require("./navigationNodeComponent");
const navTreeUtils_1 = require("./navTreeUtils");
class NavigationTreeComponent {
constructor(props) {
this.props = props;
+ this.subscriptions = new atom_1.CompositeDisposable();
this.loadNavTree = async () => {
if (!this.editor)
return;
- if (!this.withTypescriptBuffer)
+ if (!this.getClient)
return;
const filePath = this.editor.getPath();
if (filePath === undefined)
return;
try {
- return await this.withTypescriptBuffer(filePath, async (buffer) => {
- const navTree = await buffer.getNavTree();
- if (navTree) {
- this.setNavTree(navTree);
- await etch.update(this);
- }
- });
+ const client = await this.getClient(filePath);
+ const navtreeResult = await client.execute("navtree", { file: filePath });
+ const navTree = navtreeResult.body;
+ if (navTree) {
+ this.setNavTree(navTree);
+ await etch.update(this);
+ }
}
catch (err) {
console.error(err, filePath);
@@ -41,38 +44,27 @@ class NavigationTreeComponent {
const selectedChild = navTreeUtils_1.findNodeAt(cursorLine, cursorLine, this.props.navTree);
if (selectedChild !== this.selectedNode) {
this.selectedNode = selectedChild;
- etch.update(this);
+ utils_1.handlePromise(etch.update(this));
}
};
- this.subscribeToEditor = (editor) => {
+ this.subscribeToEditor = async (editor) => {
+ if (this.editorScrolling)
+ this.editorScrolling.dispose();
+ if (this.editorChanging)
+ this.editorChanging.dispose();
if (!editor || !atomUtils.isTypescriptEditorWithPath(editor)) {
- // unsubscribe from editor
- // dispose subscriptions (except for editor-changing)
- if (this.editorScrolling) {
- this.editorScrolling.dispose();
- }
- if (this.editorChanging) {
- this.editorChanging.dispose();
- }
- this.update({ navTree: null });
- return;
+ return this.update({ navTree: null });
}
+ // else
this.editor = editor;
// set navTree
- this.loadNavTree();
- // Subscribe to stop scrolling
- if (this.editorScrolling) {
- this.editorScrolling.dispose();
- }
+ await this.loadNavTree();
this.editorScrolling = editor.onDidChangeCursorPosition(this.selectAtCursorLine);
- if (this.editorChanging) {
- this.editorChanging.dispose();
- }
this.editorChanging = editor.onDidStopChanging(this.loadNavTree);
};
navTreeUtils_1.prepareNavTree(props.navTree);
etch.initialize(this);
- atom.workspace.observeActiveTextEditor(this.subscribeToEditor);
+ this.subscriptions.add(atom.workspace.observeActiveTextEditor(this.subscribeToEditor));
}
async update(props) {
if (props.navTree !== undefined) {
@@ -82,18 +74,19 @@ class NavigationTreeComponent {
await etch.update(this);
}
async destroy() {
- if (this.editorScrolling) {
+ if (this.editorScrolling)
this.editorScrolling.dispose();
- }
- if (this.editorChanging) {
+ if (this.editorChanging)
this.editorChanging.dispose();
- }
+ this.editorScrolling = undefined;
+ this.editorChanging = undefined;
this.selectedNode = undefined;
+ this.subscriptions.dispose();
await etch.destroy(this);
}
- setWithTypescriptBuffer(wtb) {
- this.withTypescriptBuffer = wtb;
- this.loadNavTree();
+ async setGetClient(getClient) {
+ this.getClient = getClient;
+ await this.loadNavTree();
}
getSelectedNode() {
return this.selectedNode;
@@ -129,7 +122,7 @@ class NavigationTreeComponent {
else
return undefined;
}
- async setNavTree(navTree) {
+ setNavTree(navTree) {
navTreeUtils_1.prepareNavTree(navTree);
if (lodash_1.isEqual(navTree, this.props.navTree)) {
return;
diff --git a/dist/main/atom/views/outline/navigationTreeComponent.js.map b/dist/main/atom/views/outline/navigationTreeComponent.js.map
index ef8bd7434..f8cbb4037 100644
--- a/dist/main/atom/views/outline/navigationTreeComponent.js.map
+++ b/dist/main/atom/views/outline/navigationTreeComponent.js.map
@@ -1 +1 @@
-{"version":3,"file":"navigationTreeComponent.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/outline/navigationTreeComponent.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"navigationTreeComponent.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/outline/navigationTreeComponent.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/atom/views/outline/semanticView.js b/dist/main/atom/views/outline/semanticView.js
index ef0888e78..c8fbe973c 100644
--- a/dist/main/atom/views/outline/semanticView.js
+++ b/dist/main/atom/views/outline/semanticView.js
@@ -2,10 +2,6 @@
Object.defineProperty(exports, "__esModule", { value: true });
const navigationTreeComponent_1 = require("./navigationTreeComponent");
exports.SEMANTIC_VIEW_URI = "atom-typescript://semantic-view";
-function deserializeSemanticView(serialized) {
- return SemanticView.create(serialized.data);
-}
-exports.deserializeSemanticView = deserializeSemanticView;
class SemanticView {
constructor(config) {
this.comp = new navigationTreeComponent_1.NavigationTreeComponent({ navTree: config.navTree });
@@ -18,9 +14,9 @@ class SemanticView {
get element() {
return this.comp.element;
}
- setWithTypescriptBuffer(wtb) {
- this.comp.setWithTypescriptBuffer(wtb);
- this.comp.update({});
+ async setGetClient(gc) {
+ await this.comp.setGetClient(gc);
+ await this.comp.update({});
}
getTitle() {
return "TypeScript";
@@ -28,9 +24,9 @@ class SemanticView {
getURI() {
return exports.SEMANTIC_VIEW_URI;
}
- destroy() {
+ async destroy() {
SemanticView.instance = null;
- this.comp.destroy();
+ await this.comp.destroy();
}
getDefaultLocation() {
return "right";
@@ -40,7 +36,6 @@ class SemanticView {
return ["left", "right"];
}
serialize() {
- // console.log("SemanticView.serialize()") // DEBUG
return {
deserializer: "atomts-semantic-view/SemanticView",
data: { navTree: this.comp.props.navTree },
diff --git a/dist/main/atom/views/outline/semanticView.js.map b/dist/main/atom/views/outline/semanticView.js.map
index d2c9ff8e7..f020d2b8d 100644
--- a/dist/main/atom/views/outline/semanticView.js.map
+++ b/dist/main/atom/views/outline/semanticView.js.map
@@ -1 +1 @@
-{"version":3,"file":"semanticView.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/outline/semanticView.ts"],"names":[],"mappings":";;AAAA,uEAAiE;AAIpD,QAAA,iBAAiB,GAAG,iCAAiC,CAAA;AAWlE,SAAgB,uBAAuB,CAAC,UAAyC;IAC/E,OAAO,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAC7C,CAAC;AAFD,0DAEC;AAED,MAAa,YAAY;IAYvB,YAAoB,MAA2B;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,iDAAuB,CAAC,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC,CAAA;IACpE,CAAC;IAbM,MAAM,CAAC,MAAM,CAAC,MAA2B;QAC9C,IAAI,CAAC,YAAY,CAAC,QAAQ;YAAE,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QAC5E,OAAO,YAAY,CAAC,QAAQ,CAAA;IAC9B,CAAC;IAID,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;IAC1B,CAAC;IAMM,uBAAuB,CAAC,GAAyB;QACtD,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACtB,CAAC;IAEM,QAAQ;QACb,OAAO,YAAY,CAAA;IACrB,CAAC;IAEM,MAAM;QACX,OAAO,yBAAiB,CAAA;IAC1B,CAAC;IAEM,OAAO;QACZ,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;IACrB,CAAC;IAEM,kBAAkB;QACvB,OAAO,OAAO,CAAA;IAChB,CAAC;IAEM,mBAAmB;QACxB,kDAAkD;QAClD,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1B,CAAC;IAEM,SAAS;QACd,mDAAmD;QACnD,OAAO;YACL,YAAY,EAAE,mCAAmC;YACjD,IAAI,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAC;SACzC,CAAA;IACH,CAAC;;AA5Cc,qBAAQ,GAAwB,IAAI,CAAA;AALrD,oCAkDC"}
\ No newline at end of file
+{"version":3,"file":"semanticView.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/outline/semanticView.ts"],"names":[],"mappings":";;AACA,uEAAiE;AAGpD,QAAA,iBAAiB,GAAG,iCAAiC,CAAA;AAWlE,MAAa,YAAY;IAYvB,YAAoB,MAA2B;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,iDAAuB,CAAC,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC,CAAA;IACpE,CAAC;IAbM,MAAM,CAAC,MAAM,CAAC,MAA2B;QAC9C,IAAI,CAAC,YAAY,CAAC,QAAQ;YAAE,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QAC5E,OAAO,YAAY,CAAC,QAAQ,CAAA;IAC9B,CAAC;IAID,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;IAC1B,CAAC;IAMM,KAAK,CAAC,YAAY,CAAC,EAAqB;QAC7C,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAChC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC;IAEM,QAAQ;QACb,OAAO,YAAY,CAAA;IACrB,CAAC;IAEM,MAAM;QACX,OAAO,yBAAiB,CAAA;IAC1B,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAA;QAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAEM,kBAAkB;QACvB,OAAO,OAAO,CAAA;IAChB,CAAC;IAEM,mBAAmB;QACxB,kDAAkD;QAClD,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1B,CAAC;IAEM,SAAS;QACd,OAAO;YACL,YAAY,EAAE,mCAAmC;YACjD,IAAI,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAC;SACzC,CAAA;IACH,CAAC;;AA3Cc,qBAAQ,GAAwB,IAAI,CAAA;AALrD,oCAiDC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/outline/semanticViewController.js b/dist/main/atom/views/outline/semanticViewController.js
index 2a96fd4db..1fef2b3a0 100644
--- a/dist/main/atom/views/outline/semanticViewController.js
+++ b/dist/main/atom/views/outline/semanticViewController.js
@@ -1,25 +1,26 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const atom_1 = require("atom");
-const semanticView_1 = require("./semanticView");
const atom_2 = require("atom");
+const utils_1 = require("../../../../utils");
+const semanticView_1 = require("./semanticView");
class SemanticViewController {
- constructor(withTypescriptBuffer) {
- this.withTypescriptBuffer = withTypescriptBuffer;
+ constructor(getClient) {
+ this.getClient = getClient;
this.subscriptions = new atom_1.CompositeDisposable();
const pane = atom.workspace.paneForURI(semanticView_1.SEMANTIC_VIEW_URI);
if (pane)
this.view = pane.itemForURI(semanticView_1.SEMANTIC_VIEW_URI);
if (this.view)
- this.view.setWithTypescriptBuffer(this.withTypescriptBuffer);
+ utils_1.handlePromise(this.view.setGetClient(this.getClient));
this.subscriptions.add(new atom_2.Disposable(() => {
if (this.view) {
atom.workspace.hide(this.view);
- this.view.destroy();
+ utils_1.handlePromise(this.view.destroy());
}
}), atom.config.observe("atom-typescript.showSemanticView", val => {
if (val)
- this.show();
+ utils_1.handlePromise(this.show());
else
this.hide();
}));
@@ -36,7 +37,7 @@ class SemanticViewController {
async show() {
if (!this.view) {
this.view = semanticView_1.SemanticView.create({ navTree: null });
- this.view.setWithTypescriptBuffer(this.withTypescriptBuffer);
+ await this.view.setGetClient(this.getClient);
}
await atom.workspace.open(this.view, { searchAllPanes: true });
}
diff --git a/dist/main/atom/views/outline/semanticViewController.js.map b/dist/main/atom/views/outline/semanticViewController.js.map
index 2e5e5a0b8..d5b80f954 100644
--- a/dist/main/atom/views/outline/semanticViewController.js.map
+++ b/dist/main/atom/views/outline/semanticViewController.js.map
@@ -1 +1 @@
-{"version":3,"file":"semanticViewController.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/outline/semanticViewController.ts"],"names":[],"mappings":";;AAAA,+BAAwC;AACxC,iDAA8D;AAC9D,+BAA+B;AAG/B,MAAa,sBAAsB;IAIjC,YAAoB,oBAA0C;QAA1C,yBAAoB,GAApB,oBAAoB,CAAsB;QAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,0BAAmB,EAAE,CAAA;QAE9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gCAAiB,CAAC,CAAA;QACzD,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,gCAAiB,CAA6B,CAAA;QACpF,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAE3E,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,iBAAU,CAAC,GAAG,EAAE;YAClB,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;aACpB;QACH,CAAC,CAAC,EACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kCAAkC,EAAE,GAAG,CAAC,EAAE;YAC5D,IAAI,GAAG;gBAAE,IAAI,CAAC,IAAI,EAAE,CAAA;;gBACf,IAAI,CAAC,IAAI,EAAE,CAAA;QAClB,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;;YAC5B,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,2BAAY,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAA;YAChD,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;SAC7D;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,cAAc,EAAE,IAAI,EAAC,CAAC,CAAA;IAC9D,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;;YACvB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;CACF;AA/CD,wDA+CC"}
\ No newline at end of file
+{"version":3,"file":"semanticViewController.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/outline/semanticViewController.ts"],"names":[],"mappings":";;AAAA,+BAAwC;AACxC,+BAA+B;AAE/B,6CAA+C;AAC/C,iDAA8D;AAE9D,MAAa,sBAAsB;IAIjC,YAAoB,SAA4B;QAA5B,cAAS,GAAT,SAAS,CAAmB;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,0BAAmB,EAAE,CAAA;QAE9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gCAAiB,CAAC,CAAA;QACzD,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,gCAAiB,CAA6B,CAAA;QACpF,IAAI,IAAI,CAAC,IAAI;YAAE,qBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QAEpE,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,iBAAU,CAAC,GAAG,EAAE;YAClB,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC9B,qBAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;aACnC;QACH,CAAC,CAAC,EACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kCAAkC,EAAE,GAAG,CAAC,EAAE;YAC5D,IAAI,GAAG;gBAAE,qBAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;;gBAC9B,IAAI,CAAC,IAAI,EAAE,CAAA;QAClB,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;;YAC5B,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,2BAAY,CAAC,MAAM,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAA;YAChD,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;SAC7C;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,cAAc,EAAE,IAAI,EAAC,CAAC,CAAA;IAC9D,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA;;YACvB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;CACF;AA/CD,wDA+CC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/renameView.js b/dist/main/atom/views/renameView.js
index d4f0cbcb2..6b21cb245 100644
--- a/dist/main/atom/views/renameView.js
+++ b/dist/main/atom/views/renameView.js
@@ -1,7 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const etch = require("etch");
const atom_1 = require("atom");
+const etch = require("etch");
+const utils_1 = require("../../../utils");
const miniEditor_1 = require("../components/miniEditor");
class RenameView {
constructor(props) {
@@ -68,7 +69,7 @@ async function showRenameDialog(options) {
const newText = item.getText();
const invalid = options.onValidate(newText);
if (invalid) {
- item.update({ validationMessage: invalid });
+ utils_1.handlePromise(item.update({ validationMessage: invalid }));
return;
}
resolve(newText);
diff --git a/dist/main/atom/views/renameView.js.map b/dist/main/atom/views/renameView.js.map
index 9a0e80ad8..427a74bbe 100644
--- a/dist/main/atom/views/renameView.js.map
+++ b/dist/main/atom/views/renameView.js.map
@@ -1 +1 @@
-{"version":3,"file":"renameView.js","sourceRoot":"","sources":["../../../../lib/main/atom/views/renameView.tsx"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"renameView.js","sourceRoot":"","sources":["../../../../lib/main/atom/views/renameView.tsx"],"names":[],"mappings":";;AAAA,+BAAwC;AACxC,6BAA4B;AAC5B,0CAA4C;AAC5C,yDAAmD;AAgBnD,MAAM,UAAU;IAMd,YAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAqB;QACvC,IAAI,CAAC,KAAK,qBAAO,IAAI,CAAC,KAAK,EAAK,KAAK,CAAC,CAAA;QACtC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAEM,MAAM;QACX,OAAO,CACL,kBAAK,KAAK,EAAC,oBAAoB,EAAC,GAAG,EAAC,MAAM;YACxC,kBAAK,KAAK,EAAC,OAAO;gBAChB;oBACE,mBAAM,GAAG,EAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAQ;oBAC3C,mBAAM,KAAK,EAAC,qBAAqB;wBAC/B,gDAAmC;wBACnC,mBAAM,KAAK,EAAC,WAAW,UAAW;wBAClC,oDAAuC;wBACvC,mBAAM,KAAK,EAAC,WAAW,YAAa;wBACpC,+BAAkB,CACb,CACH;gBACN,kBAAK,KAAK,EAAC,sBAAsB;oBAC/B,kBAAK,KAAK,EAAC,kBAAkB;wBAC3B,SAAC,uBAAU,IACT,GAAG,EAAC,QAAQ,EACZ,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAC/B,CACE,CACF;gBACL,IAAI,CAAC,uBAAuB,EAAE,CAC3B,CACF,CACP,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACjC,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAA;IAC9C,CAAC;IAEO,uBAAuB;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE;YAC9C,OAAO,kBAAK,KAAK,EAAC,iBAAiB,IAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAO,CAAA;SACzE;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED,kEAAkE;AAC3D,KAAK,UAAU,gBAAgB,CAAC,OAAgB;IACrD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,SAAS,EAAE,OAAO,CAAC,UAAU;KAC9B,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACzC,IAAI;QACJ,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAmC,CAAA;IAEjE,IAAI,CAAC,KAAK,EAAE,CAAA;IAEZ,MAAM,WAAW,GAAG,IAAI,0BAAmB,EAAE,CAAA;IAC7C,IAAI;QACF,OAAO,MAAM,IAAI,OAAO,CAAqB,OAAO,CAAC,EAAE;YACrD,WAAW,CAAC,GAAG,CACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAChC,aAAa,EAAE,GAAG,EAAE;oBAClB,OAAO,CAAC,SAAS,CAAC,CAAA;gBACpB,CAAC;gBACD,cAAc,EAAE,GAAG,EAAE;oBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;oBAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;oBAC3C,IAAI,OAAO,EAAE;wBACX,qBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,iBAAiB,EAAE,OAAO,EAAC,CAAC,CAAC,CAAA;wBACxD,OAAM;qBACP;oBACD,OAAO,CAAC,OAAO,CAAC,CAAA;gBAClB,CAAC;aACF,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;KACH;YAAS;QACR,KAAK,CAAC,OAAO,EAAE,CAAA;QACf,WAAW,CAAC,OAAO,EAAE,CAAA;QACrB,IAAI,YAAY;YAAE,YAAY,CAAC,KAAK,EAAE,CAAA;KACvC;AACH,CAAC;AAxCD,4CAwCC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/simpleSelectionView.js b/dist/main/atom/views/simpleSelectionView.js
index f1d0822cc..a2a58ae64 100644
--- a/dist/main/atom/views/simpleSelectionView.js
+++ b/dist/main/atom/views/simpleSelectionView.js
@@ -2,6 +2,7 @@
Object.defineProperty(exports, "__esModule", { value: true });
const SelectListView = require("atom-select-list");
const etch = require("etch");
+const utils_1 = require("../../../utils");
async function selectListView({ items, itemTemplate, itemFilterKey, didChangeSelection, }) {
let panel;
const currentFocus = document.activeElement;
@@ -14,7 +15,7 @@ async function selectListView({ items, itemTemplate, itemFilterKey, didChangeSel
const update = (props) => {
if (resolved)
return;
- select.update(props);
+ utils_1.handlePromise(select.update(props));
};
if (typeof items === "function") {
didChangeQuery = async (query) => {
@@ -49,9 +50,9 @@ async function selectListView({ items, itemTemplate, itemFilterKey, didChangeSel
itemsClassList: ["atom-typescript"],
});
if (typeof items !== "function") {
- Promise.resolve(items).then(is => {
+ utils_1.handlePromise(Promise.resolve(items).then(is => {
update({ items: is, loadingMessage: undefined });
- });
+ }));
}
panel = atom.workspace.addModalPanel({
item: select,
diff --git a/dist/main/atom/views/simpleSelectionView.js.map b/dist/main/atom/views/simpleSelectionView.js.map
index ea06041dd..369d78d9d 100644
--- a/dist/main/atom/views/simpleSelectionView.js.map
+++ b/dist/main/atom/views/simpleSelectionView.js.map
@@ -1 +1 @@
-{"version":3,"file":"simpleSelectionView.js","sourceRoot":"","sources":["../../../../lib/main/atom/views/simpleSelectionView.tsx"],"names":[],"mappings":";;AAAA,mDAAmD;AAEnD,6BAA4B;AASrB,KAAK,UAAU,cAAc,CAAI,EACtC,KAAK,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,GACO;IACzB,IAAI,KAA2C,CAAA;IAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAmC,CAAA;IACjE,IAAI;QACF,OAAO,MAAM,IAAI,OAAO,CAAgB,OAAO,CAAC,EAAE;YAChD,IAAI,cAAc,CAAA;YAClB,IAAI,cAAc,GAAuB,YAAY,CAAA;YACrD,IAAI,YAAY,CAAA;YAChB,IAAI,QAAQ,GAAG,KAAK,CAAA;YACpB,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;gBAC/B,IAAI,QAAQ;oBAAE,OAAM;gBACpB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC,CAAA;YACD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;gBAC/B,cAAc,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;oBACvC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAC,cAAc,EAAE,YAAY,EAAC,CAAC,EAAE,GAAG,CAAC,CAAA;oBAC7E,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAA;oBAC7B,YAAY,CAAC,OAAO,CAAC,CAAA;oBACrB,MAAM,CAAC;wBACL,KAAK,EAAE,EAAE;wBACT,YAAY,EAAE,kCAAkC;wBAChD,cAAc,EAAE,SAAS;qBAC1B,CAAC,CAAA;gBACJ,CAAC,CAAA;gBACD,cAAc,GAAG,SAAS,CAAA;gBAC1B,YAAY,GAAG,6BAA6B,CAAA;aAC7C;YACD,MAAM,MAAM,GAAsB,IAAI,cAAc,CAAC;gBACnD,KAAK,EAAE,EAAS;gBAChB,cAAc,EAAE,CAAC,IAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAgB;gBACnF,gBAAgB,EAAE,CAAC,IAAO,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE;gBACvD,kBAAkB;gBAClB,kBAAkB,EAAE,GAAG,EAAE;oBACvB,QAAQ,GAAG,IAAI,CAAA;oBACf,OAAO,EAAE,CAAA;gBACX,CAAC;gBACD,mBAAmB,EAAE,CAAC,IAAO,EAAE,EAAE;oBAC/B,QAAQ,GAAG,IAAI,CAAA;oBACf,OAAO,CAAC,IAAI,CAAC,CAAA;gBACf,CAAC;gBACD,cAAc;gBACd,cAAc;gBACd,YAAY;gBACZ,cAAc,EAAE,CAAC,iBAAiB,CAAC;aACpC,CAAC,CAAA;YACF,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;gBAC/B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBAC/B,MAAM,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAC,CAAC,CAAA;gBAChD,CAAC,CAAC,CAAA;aACH;YACD,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;gBACnC,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YACF,MAAM,CAAC,KAAK,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;KACH;YAAS;QACR,IAAI,KAAK;YAAE,KAAK,CAAC,OAAO,EAAE,CAAA;QAC1B,IAAI,YAAY;YAAE,YAAY,CAAC,KAAK,EAAE,CAAA;KACvC;AACH,CAAC;AAjED,wCAiEC"}
\ No newline at end of file
+{"version":3,"file":"simpleSelectionView.js","sourceRoot":"","sources":["../../../../lib/main/atom/views/simpleSelectionView.tsx"],"names":[],"mappings":";;AACA,mDAAmD;AACnD,6BAA4B;AAC5B,0CAA4C;AASrC,KAAK,UAAU,cAAc,CAAI,EACtC,KAAK,EACL,YAAY,EACZ,aAAa,EACb,kBAAkB,GACO;IACzB,IAAI,KAA2C,CAAA;IAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAmC,CAAA;IACjE,IAAI;QACF,OAAO,MAAM,IAAI,OAAO,CAAgB,OAAO,CAAC,EAAE;YAChD,IAAI,cAAc,CAAA;YAClB,IAAI,cAAc,GAAuB,YAAY,CAAA;YACrD,IAAI,YAAY,CAAA;YAChB,IAAI,QAAQ,GAAG,KAAK,CAAA;YACpB,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;gBAC/B,IAAI,QAAQ;oBAAE,OAAM;gBACpB,qBAAa,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YACrC,CAAC,CAAA;YACD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;gBAC/B,cAAc,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;oBACvC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAC,cAAc,EAAE,YAAY,EAAC,CAAC,EAAE,GAAG,CAAC,CAAA;oBAC7E,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAA;oBAC7B,YAAY,CAAC,OAAO,CAAC,CAAA;oBACrB,MAAM,CAAC;wBACL,KAAK,EAAE,EAAE;wBACT,YAAY,EAAE,kCAAkC;wBAChD,cAAc,EAAE,SAAS;qBAC1B,CAAC,CAAA;gBACJ,CAAC,CAAA;gBACD,cAAc,GAAG,SAAS,CAAA;gBAC1B,YAAY,GAAG,6BAA6B,CAAA;aAC7C;YACD,MAAM,MAAM,GAAsB,IAAI,cAAc,CAAC;gBACnD,KAAK,EAAE,EAAS;gBAChB,cAAc,EAAE,CAAC,IAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAgB;gBACnF,gBAAgB,EAAE,CAAC,IAAO,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE;gBACvD,kBAAkB;gBAClB,kBAAkB,EAAE,GAAG,EAAE;oBACvB,QAAQ,GAAG,IAAI,CAAA;oBACf,OAAO,EAAE,CAAA;gBACX,CAAC;gBACD,mBAAmB,EAAE,CAAC,IAAO,EAAE,EAAE;oBAC/B,QAAQ,GAAG,IAAI,CAAA;oBACf,OAAO,CAAC,IAAI,CAAC,CAAA;gBACf,CAAC;gBACD,cAAc;gBACd,cAAc;gBACd,YAAY;gBACZ,cAAc,EAAE,CAAC,iBAAiB,CAAC;aACpC,CAAC,CAAA;YACF,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;gBAC/B,qBAAa,CACX,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBAC/B,MAAM,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAC,CAAC,CAAA;gBAChD,CAAC,CAAC,CACH,CAAA;aACF;YACD,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;gBACnC,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;YACF,MAAM,CAAC,KAAK,EAAE,CAAA;QAChB,CAAC,CAAC,CAAA;KACH;YAAS;QACR,IAAI,KAAK;YAAE,KAAK,CAAC,OAAO,EAAE,CAAA;QAC1B,IAAI,YAAY;YAAE,YAAY,CAAC,KAAK,EAAE,CAAA;KACvC;AACH,CAAC;AAnED,wCAmEC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/symbols/fileSymbolsView.js b/dist/main/atom/views/symbols/fileSymbolsView.js
index 19051d579..84f497153 100644
--- a/dist/main/atom/views/symbols/fileSymbolsView.js
+++ b/dist/main/atom/views/symbols/fileSymbolsView.js
@@ -1,10 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const simpleSelectionView_1 = require("../simpleSelectionView");
const etch = require("etch");
+const highlightComponent_1 = require("../highlightComponent");
+const simpleSelectionView_1 = require("../simpleSelectionView");
const generator_1 = require("./generator");
const utils = require("./utils");
-const highlightComponent_1 = require("../highlightComponent");
async function toggle(editor, deps) {
const filePath = editor.getPath();
if (filePath !== undefined) {
@@ -28,7 +28,7 @@ async function toggle(editor, deps) {
itemFilterKey: "name",
});
if (tag)
- utils.openTag(tag, editor, deps.getEditorPositionHistoryManager());
+ await utils.openTag(tag, editor, deps.histGoForward);
else if (initialState)
utils.deserializeEditorState(editor, initialState);
}
diff --git a/dist/main/atom/views/symbols/fileSymbolsView.js.map b/dist/main/atom/views/symbols/fileSymbolsView.js.map
index 1b7f173a1..9faec1892 100644
--- a/dist/main/atom/views/symbols/fileSymbolsView.js.map
+++ b/dist/main/atom/views/symbols/fileSymbolsView.js.map
@@ -1 +1 @@
-{"version":3,"file":"fileSymbolsView.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/symbols/fileSymbolsView.tsx"],"names":[],"mappings":";;AACA,gEAAqD;AACrD,6BAA4B;AAC5B,2CAAwC;AACxC,iCAAgC;AAGhC,8DAAwD;AAEjD,KAAK,UAAU,MAAM,CAAC,MAAkB,EAAE,IAAU;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;IACjC,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,qEAAqE;QACrE,IAAI,YAAY,CAAA;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,EAAE;YACzD,YAAY,GAAG,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;SAClD;QACD,MAAM,GAAG,GAAG,MAAM,oCAAc,CAAC;YAC/B,KAAK,EAAE,wBAAY,CAAC,QAAQ,EAAE,IAAI,CAAC;YACnC,YAAY,EAAE,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CACvC,iBAAI,KAAK,EAAC,WAAW;gBACnB,kBAAK,KAAK,EAAC,cAAc;oBACvB,SAAC,uCAAkB,IAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE,GAAI,CAC5D;gBACN,kBAAK,KAAK,EAAC,gBAAgB,IAAE,QAAQ,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,CAAO,CAC3D,CACN;YACD,kBAAkB,CAAC,IAAU;gBAC3B,qEAAqE;gBACrE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,IAAI,IAAI,EAAE;oBACjE,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;iBAC9C;YACH,CAAC;YACD,aAAa,EAAE,MAAM;SACtB,CAAC,CAAA;QACF,IAAI,GAAG;YAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAA;aACtE,IAAI,YAAY;YAAE,KAAK,CAAC,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;KAC1E;AACH,CAAC;AA7BD,wBA6BC"}
\ No newline at end of file
+{"version":3,"file":"fileSymbolsView.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/symbols/fileSymbolsView.tsx"],"names":[],"mappings":";;AACA,6BAA4B;AAC5B,8DAAwD;AACxD,gEAAqD;AAErD,2CAAwC;AAExC,iCAAgC;AAEzB,KAAK,UAAU,MAAM,CAAC,MAAkB,EAAE,IAAU;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;IACjC,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,qEAAqE;QACrE,IAAI,YAAY,CAAA;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,EAAE;YACzD,YAAY,GAAG,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;SAClD;QACD,MAAM,GAAG,GAAG,MAAM,oCAAc,CAAC;YAC/B,KAAK,EAAE,wBAAY,CAAC,QAAQ,EAAE,IAAI,CAAC;YACnC,YAAY,EAAE,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CACvC,iBAAI,KAAK,EAAC,WAAW;gBACnB,kBAAK,KAAK,EAAC,cAAc;oBACvB,SAAC,uCAAkB,IAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE,GAAI,CAC5D;gBACN,kBAAK,KAAK,EAAC,gBAAgB,IAAE,QAAQ,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,CAAO,CAC3D,CACN;YACD,kBAAkB,CAAC,IAAU;gBAC3B,qEAAqE;gBACrE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,IAAI,IAAI,EAAE;oBACjE,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;iBAC9C;YACH,CAAC;YACD,aAAa,EAAE,MAAM;SACtB,CAAC,CAAA;QACF,IAAI,GAAG;YAAE,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;aACxD,IAAI,YAAY;YAAE,KAAK,CAAC,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;KAC1E;AACH,CAAC;AA7BD,wBA6BC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/symbols/generator.js b/dist/main/atom/views/symbols/generator.js
index 19c39b33a..4b53b394e 100644
--- a/dist/main/atom/views/symbols/generator.js
+++ b/dist/main/atom/views/symbols/generator.js
@@ -35,13 +35,28 @@ function* parseNavTo(navTree, parent) {
}
}
async function getNavTree(filePath, deps) {
- return deps.withTypescriptBuffer(filePath, buffer => {
- return buffer.getNavTree();
- });
+ try {
+ const client = await deps.getClient(filePath);
+ const navtreeResult = await client.execute("navtree", { file: filePath });
+ return navtreeResult.body;
+ }
+ catch (e) {
+ console.error(filePath, e);
+ }
}
async function getNavTo(filePath, search, deps) {
- return deps.withTypescriptBuffer(filePath, buffer => {
- return buffer.getNavTo(search);
- });
+ try {
+ const client = await deps.getClient(filePath);
+ const navtoResult = await client.execute("navto", {
+ file: filePath,
+ currentFileOnly: false,
+ searchValue: search,
+ maxResultCount: 1000,
+ });
+ return navtoResult.body;
+ }
+ catch (e) {
+ console.error(filePath, e);
+ }
}
//# sourceMappingURL=generator.js.map
\ No newline at end of file
diff --git a/dist/main/atom/views/symbols/generator.js.map b/dist/main/atom/views/symbols/generator.js.map
index 92e98f471..a930539c3 100644
--- a/dist/main/atom/views/symbols/generator.js.map
+++ b/dist/main/atom/views/symbols/generator.js.map
@@ -1 +1 @@
-{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/symbols/generator.ts"],"names":[],"mappings":";;AAAA,6CAAgC;AAIzB,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAU;IAC7D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAChD,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE;QACjC,oFAAoF;QACpF,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;KACpD;;QAAM,OAAO,EAAE,CAAA;AAClB,CAAC;AAND,oCAMC;AAEM,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,MAAc,EAAE,IAAU;IAChF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACtD,IAAI,OAAO,EAAE;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;KACvC;;QAAM,OAAO,EAAE,CAAA;AAClB,CAAC;AALD,0CAKC;AAED,QAAQ,CAAC,CAAC,YAAY,CAAC,OAAyB,EAAE,MAAY;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACrE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;QAC1B,MAAM,GAAG,GAAG,gBAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzC,MAAM,GAAG,CAAA;QACT,IAAI,IAAI,CAAC,UAAU;YAAE,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;KAC/D;AACH,CAAC;AAED,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAoB,EAAE,MAAY;IACrD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;QAC1B,MAAM,gBAAG,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;KAClC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,IAAU;IACpD,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;QAClD,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAC5B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB,EAAE,MAAc,EAAE,IAAU;IAClE,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;QAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
+{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/symbols/generator.ts"],"names":[],"mappings":";;AAEA,6CAAgC;AAEzB,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAU;IAC7D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAChD,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE;QACjC,oFAAoF;QACpF,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;KACpD;;QAAM,OAAO,EAAE,CAAA;AAClB,CAAC;AAND,oCAMC;AAEM,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,MAAc,EAAE,IAAU;IAChF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACtD,IAAI,OAAO,EAAE;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;KACvC;;QAAM,OAAO,EAAE,CAAA;AAClB,CAAC;AALD,0CAKC;AAED,QAAQ,CAAC,CAAC,YAAY,CAAC,OAAyB,EAAE,MAAY;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACrE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;QAC1B,MAAM,GAAG,GAAG,gBAAG,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzC,MAAM,GAAG,CAAA;QACT,IAAI,IAAI,CAAC,UAAU;YAAE,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;KAC/D;AACH,CAAC;AAED,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAoB,EAAE,MAAY;IACrD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;QAC1B,MAAM,gBAAG,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;KAClC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,IAAU;IACpD,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAA;QACvE,OAAO,aAAa,CAAC,IAAI,CAAA;KAC1B;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAC3B;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB,EAAE,MAAc,EAAE,IAAU;IAClE,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;YAChD,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,KAAK;YACtB,WAAW,EAAE,MAAM;YACnB,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QACF,OAAO,WAAW,CAAC,IAAI,CAAA;KACxB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAC3B;AACH,CAAC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/symbols/projectSymbolsView.js b/dist/main/atom/views/symbols/projectSymbolsView.js
index 780d6dff1..775bacd12 100644
--- a/dist/main/atom/views/symbols/projectSymbolsView.js
+++ b/dist/main/atom/views/symbols/projectSymbolsView.js
@@ -1,10 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const simpleSelectionView_1 = require("../simpleSelectionView");
const etch = require("etch");
-const utils = require("./utils");
-const generator_1 = require("./generator");
const highlightComponent_1 = require("../highlightComponent");
+const simpleSelectionView_1 = require("../simpleSelectionView");
+const generator_1 = require("./generator");
+const utils = require("./utils");
async function toggle(editor, deps) {
const filePath = editor.getPath();
if (filePath !== undefined) {
@@ -20,7 +20,7 @@ async function toggle(editor, deps) {
itemFilterKey: "name",
});
if (tag)
- utils.openTag(tag, editor, deps.getEditorPositionHistoryManager());
+ await utils.openTag(tag, editor, deps.histGoForward);
}
}
exports.toggle = toggle;
diff --git a/dist/main/atom/views/symbols/projectSymbolsView.js.map b/dist/main/atom/views/symbols/projectSymbolsView.js.map
index 17a6833c8..94c392ed1 100644
--- a/dist/main/atom/views/symbols/projectSymbolsView.js.map
+++ b/dist/main/atom/views/symbols/projectSymbolsView.js.map
@@ -1 +1 @@
-{"version":3,"file":"projectSymbolsView.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/symbols/projectSymbolsView.tsx"],"names":[],"mappings":";;AACA,gEAAqD;AACrD,6BAA4B;AAC5B,iCAAgC;AAChC,2CAA2C;AAE3C,8DAAwD;AAEjD,KAAK,UAAU,MAAM,CAAC,MAAkB,EAAE,IAAU;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;IACjC,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,oCAAc,CAAC;YAC/B,KAAK,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,2BAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC;YAClE,YAAY,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,EAAE,GAAG;gBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAK,CAAC,CAAA;gBAC9C,OAAO,CACL,iBAAI,KAAK,EAAC,WAAW;oBACnB,kBAAK,KAAK,EAAC,cAAc;wBACvB,SAAC,uCAAkB,IAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE,GAAI,CAC5D;oBACN,kBAAK,KAAK,EAAC,gBAAgB,IAAE,QAAQ,OAAO,SAAS,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,CAAO,CAC3E,CACN,CAAA;YACH,CAAC;YACD,aAAa,EAAE,MAAM;SACtB,CAAC,CAAA;QACF,IAAI,GAAG;YAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAA;KAC5E;AACH,CAAC;AApBD,wBAoBC"}
\ No newline at end of file
+{"version":3,"file":"projectSymbolsView.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/symbols/projectSymbolsView.tsx"],"names":[],"mappings":";;AACA,6BAA4B;AAC5B,8DAAwD;AACxD,gEAAqD;AAErD,2CAA2C;AAC3C,iCAAgC;AAEzB,KAAK,UAAU,MAAM,CAAC,MAAkB,EAAE,IAAU;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;IACjC,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,oCAAc,CAAC;YAC/B,KAAK,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,2BAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC;YAClE,YAAY,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,EAAE,GAAG;gBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAK,CAAC,CAAA;gBAC9C,OAAO,CACL,iBAAI,KAAK,EAAC,WAAW;oBACnB,kBAAK,KAAK,EAAC,cAAc;wBACvB,SAAC,uCAAkB,IAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE,GAAI,CAC5D;oBACN,kBAAK,KAAK,EAAC,gBAAgB,IAAE,QAAQ,OAAO,SAAS,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,CAAO,CAC3E,CACN,CAAA;YACH,CAAC;YACD,aAAa,EAAE,MAAM;SACtB,CAAC,CAAA;QACF,IAAI,GAAG;YAAE,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;KAC9D;AACH,CAAC;AApBD,wBAoBC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/symbols/symbolsViewController.js b/dist/main/atom/views/symbols/symbolsViewController.js
index dd91a6461..b23edbd56 100644
--- a/dist/main/atom/views/symbols/symbolsViewController.js
+++ b/dist/main/atom/views/symbols/symbolsViewController.js
@@ -1,5 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("../../../../utils");
const fileSymbolsView_1 = require("./fileSymbolsView");
const projectSymbolsView_1 = require("./projectSymbolsView");
class SymbolsViewController {
@@ -7,10 +8,10 @@ class SymbolsViewController {
this.deps = deps;
}
toggleFileView(editor) {
- fileSymbolsView_1.toggle(editor, this.deps);
+ utils_1.handlePromise(fileSymbolsView_1.toggle(editor, this.deps));
}
toggleProjectView(editor) {
- projectSymbolsView_1.toggle(editor, this.deps);
+ utils_1.handlePromise(projectSymbolsView_1.toggle(editor, this.deps));
}
dispose() {
// TODO: proper disposal
diff --git a/dist/main/atom/views/symbols/symbolsViewController.js.map b/dist/main/atom/views/symbols/symbolsViewController.js.map
index ef4ee4667..b782df8cb 100644
--- a/dist/main/atom/views/symbols/symbolsViewController.js.map
+++ b/dist/main/atom/views/symbols/symbolsViewController.js.map
@@ -1 +1 @@
-{"version":3,"file":"symbolsViewController.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/symbols/symbolsViewController.ts"],"names":[],"mappings":";;AAAA,uDAA0D;AAC1D,6DAAgE;AAIhE,MAAa,qBAAqB;IAChC,YAAoB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAE3B,cAAc,CAAC,MAAkB;QACtC,wBAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAEM,iBAAiB,CAAC,MAAkB;QACzC,2BAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAEM,OAAO;QACZ,wBAAwB;IAC1B,CAAC;CACF;AAdD,sDAcC"}
\ No newline at end of file
+{"version":3,"file":"symbolsViewController.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/symbols/symbolsViewController.ts"],"names":[],"mappings":";;AACA,6CAA+C;AAE/C,uDAA0D;AAC1D,6DAAgE;AAEhE,MAAa,qBAAqB;IAChC,YAAoB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAE3B,cAAc,CAAC,MAAkB;QACtC,qBAAa,CAAC,wBAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAClD,CAAC;IAEM,iBAAiB,CAAC,MAAkB;QACzC,qBAAa,CAAC,2BAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACrD,CAAC;IAEM,OAAO;QACZ,wBAAwB;IAC1B,CAAC;CACF;AAdD,sDAcC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/symbols/utils.js b/dist/main/atom/views/symbols/utils.js
index 403a7c641..b7e63fcb8 100644
--- a/dist/main/atom/views/symbols/utils.js
+++ b/dist/main/atom/views/symbols/utils.js
@@ -1,8 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-async function openTag(tag, editor, ephm) {
+async function openTag(tag, editor, histGoForward) {
if (tag.file !== undefined) {
- return ephm.goForward(editor, {
+ return histGoForward(editor, {
file: tag.file,
start: {
line: tag.position.row + 1,
diff --git a/dist/main/atom/views/symbols/utils.js.map b/dist/main/atom/views/symbols/utils.js.map
index d2c074ac2..c12c8e553 100644
--- a/dist/main/atom/views/symbols/utils.js.map
+++ b/dist/main/atom/views/symbols/utils.js.map
@@ -1 +1 @@
-{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/symbols/utils.ts"],"names":[],"mappings":";;AAIO,KAAK,UAAU,OAAO,CAAC,GAAQ,EAAE,MAAkB,EAAE,IAAkC;IAC5F,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;gBAC1B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;aAChC;SACF,CAAC,CAAA;KACH;AACH,CAAC;AAVD,0BAUC;AAED,SAAgB,oBAAoB,CAAC,MAAkB;IACrD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,CAAA;IAE9C,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,uBAAuB,EAAE;QAC9C,SAAS;KACV,CAAA;AACH,CAAC;AARD,oDAQC;AAED,SAAgB,sBAAsB,CACpC,MAAkB,EAClB,EAAC,YAAY,EAAE,SAAS,EAA0C;IAElE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAA;IAC5C,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;AACvC,CAAC;AAPD,wDAOC"}
\ No newline at end of file
+{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../lib/main/atom/views/symbols/utils.ts"],"names":[],"mappings":";;AAIO,KAAK,UAAU,OAAO,CAC3B,GAAQ,EACR,MAAkB,EAClB,aAAwD;IAExD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE;QAC1B,OAAO,aAAa,CAAC,MAAM,EAAE;YAC3B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;gBAC1B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;aAChC;SACF,CAAC,CAAA;KACH;AACH,CAAC;AAdD,0BAcC;AAED,SAAgB,oBAAoB,CAAC,MAAkB;IACrD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,CAAA;IAE9C,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,uBAAuB,EAAE;QAC9C,SAAS;KACV,CAAA;AACH,CAAC;AARD,oDAQC;AAED,SAAgB,sBAAsB,CACpC,MAAkB,EAClB,EAAC,YAAY,EAAE,SAAS,EAA0C;IAElE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChD,MAAM,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAA;IAC5C,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;AACvC,CAAC;AAPD,wDAOC"}
\ No newline at end of file
diff --git a/dist/main/atom/views/tooltipView.js.map b/dist/main/atom/views/tooltipView.js.map
deleted file mode 100644
index 2df3aec03..000000000
--- a/dist/main/atom/views/tooltipView.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"tooltipView.js","sourceRoot":"","sources":["../../../../lib/main/atom/views/tooltipView.tsx"],"names":[],"mappings":";;AAAA,6BAA4B;AAU5B,MAAa,WAAW;IAItB;QACE,IAAI,CAAC,KAAK,GAAG;YACX,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,CAAC;YACN,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,EAAE;SACT,CAAA;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAqB;QACvC,IAAI,CAAC,KAAK,qBAAO,IAAI,CAAC,KAAK,EAAK,KAAK,CAAC,CAAA;QACtC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAEM,gBAAgB;QACrB,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;QAC3B,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;QAC3B,IAAI,KAAK,GAAmB,KAAK,CAAA;QAEjC,IAAI,UAAU,GAAG,EAAE,CAAA;QAEnB,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAA;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAA;QAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAA;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAA;QAE9C,gBAAgB;QAChB,IAAI,IAAI,GAAG,WAAW,IAAI,WAAW,EAAE;YACrC,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,CAAA;SAC1C;QACD,IAAI,IAAI,GAAG,CAAC,EAAE;YACZ,UAAU,GAAG,UAAU,CAAA;YACvB,IAAI,GAAG,MAAM,CAAA;YACb,KAAK,GAAG,MAAM,CAAA;SACf;QAED,gBAAgB;QAChB,IAAI,GAAG,GAAG,YAAY,IAAI,YAAY,EAAE;YACtC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAA;SACpC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAA;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAA;QACnC,IAAI,KAAK,KAAK,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAA;QAC5D,IAAI,UAAU;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAA;IAC5D,CAAC;IAEM,MAAM;QACX,OAAO,CACL,kBAAK,KAAK,EAAC,iCAAiC;YAC1C,kBAAK,KAAK,EAAC,eAAe,EAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAI,CACrD,CACP,CAAA;IACH,CAAC;CACF;AAjED,kCAiEC"}
\ No newline at end of file
diff --git a/dist/main/atomts.js b/dist/main/atomts.js
index 931ec2b50..d39c9124a 100644
--- a/dist/main/atomts.js
+++ b/dist/main/atomts.js
@@ -1,19 +1,18 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var semanticView_1 = require("./atom/views/outline/semanticView");
-exports.deserializeSemanticView = semanticView_1.deserializeSemanticView;
let pluginManager;
async function activate(state) {
- // tslint:disable:no-unsafe-any
const pns = atom.packages.getAvailablePackageNames();
- if (!(pns.includes("atom-ide-ui") || pns.includes("linter"))) {
+ const packagesProvidingUIServices = ["atom-ide-ui", "linter", "nuclide"];
+ if (!packagesProvidingUIServices.some(p => pns.includes(p))) {
+ // tslint:disable-next-line:no-unsafe-any
await require("atom-package-deps").install("atom-typescript", true);
}
+ // tslint:disable-next-line:no-unsafe-any
require("etch").setScheduler(atom.views);
// tslint:disable-next-line:no-shadowed-variable
const { PluginManager } = require("./pluginManager");
pluginManager = new PluginManager(state);
- // tslint:enable:no-unsafe-any
}
exports.activate = activate;
function deactivate() {
@@ -29,6 +28,13 @@ function serialize() {
return undefined;
}
exports.serialize = serialize;
+function deserializeSemanticView(serialized) {
+ const {
+ // tslint:disable-next-line:no-unsafe-any no-shadowed-variable
+ SemanticView, } = require("./atom/views/outline/semanticView");
+ return SemanticView.create(serialized.data);
+}
+exports.deserializeSemanticView = deserializeSemanticView;
////////////////////////////////// Consumers ///////////////////////////////////
function consumeLinter(register) {
if (pluginManager)
@@ -40,6 +46,21 @@ function consumeStatusBar(statusBar) {
return pluginManager.consumeStatusBar(statusBar);
}
exports.consumeStatusBar = consumeStatusBar;
+function consumeDatatipService(datatipService) {
+ if (pluginManager)
+ return pluginManager.consumeDatatipService(datatipService);
+}
+exports.consumeDatatipService = consumeDatatipService;
+function consumeSignatureHelp(registry) {
+ if (pluginManager)
+ return pluginManager.consumeSigHelpService(registry);
+}
+exports.consumeSignatureHelp = consumeSignatureHelp;
+function consumeBusySignal(busySignalService) {
+ if (pluginManager)
+ return pluginManager.consumeBusySignal(busySignalService);
+}
+exports.consumeBusySignal = consumeBusySignal;
////////////////////////////////// Providers ///////////////////////////////////
function provideAutocomplete() {
if (pluginManager)
@@ -51,6 +72,11 @@ function provideIntentions() {
return pluginManager.provideIntentions();
}
exports.provideIntentions = provideIntentions;
+function provideIntentionsHighlight() {
+ if (pluginManager)
+ return pluginManager.provideIntentionsHighlight();
+}
+exports.provideIntentionsHighlight = provideIntentionsHighlight;
function provideCodeActions() {
if (pluginManager)
return pluginManager.provideCodeActions();
@@ -61,4 +87,24 @@ function provideHyperclick() {
return pluginManager.provideHyperclick();
}
exports.provideHyperclick = provideHyperclick;
+function provideReferences() {
+ if (pluginManager)
+ return pluginManager.provideReferences();
+}
+exports.provideReferences = provideReferences;
+function provideOutlines() {
+ if (pluginManager)
+ return pluginManager.provideOutlines();
+}
+exports.provideOutlines = provideOutlines;
+function provideDefinitions() {
+ if (pluginManager)
+ return pluginManager.provideDefinitions();
+}
+exports.provideDefinitions = provideDefinitions;
+function provideCodeHighlight() {
+ if (pluginManager)
+ return pluginManager.provideCodeHighlight();
+}
+exports.provideCodeHighlight = provideCodeHighlight;
//# sourceMappingURL=atomts.js.map
\ No newline at end of file
diff --git a/dist/main/atomts.js.map b/dist/main/atomts.js.map
index f78f1b549..e62221cb1 100644
--- a/dist/main/atomts.js.map
+++ b/dist/main/atomts.js.map
@@ -1 +1 @@
-{"version":3,"file":"atomts.js","sourceRoot":"","sources":["../../lib/main/atomts.ts"],"names":[],"mappings":";;AAIA,kEAAyE;AAAjE,iDAAA,uBAAuB,CAAA;AAE/B,IAAI,aAAwC,CAAA;AAErC,KAAK,UAAU,QAAQ,CAAC,KAAY;IACzC,+BAA+B;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAA;IACpD,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC5D,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;KACpE;IAED,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAExC,gDAAgD;IAChD,MAAM,EAAC,aAAa,EAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAClD,aAAa,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;IACxC,8BAA8B;AAChC,CAAC;AAbD,4BAaC;AAED,SAAgB,UAAU;IACxB,IAAI,aAAa;QAAE,aAAa,CAAC,OAAO,EAAE,CAAA;IAC1C,aAAa,GAAG,SAAS,CAAA;AAC3B,CAAC;AAHD,gCAGC;AAED,SAAgB,SAAS;IACvB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,SAAS,EAAE,CAAA;;QAC9C,OAAO,SAAS,CAAA;AACvB,CAAC;AAHD,8BAGC;AAED,gFAAgF;AAChF,SAAgB,aAAa,CAAC,QAAiD;IAC7E,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AACjE,CAAC;AAFD,sCAEC;AAED,SAAgB,gBAAgB,CAAC,SAAoB;IACnD,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;AACrE,CAAC;AAFD,4CAEC;AAED,gFAAgF;AAChF,SAAgB,mBAAmB;IACjC,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,mBAAmB,EAAE,CAAA;AAC/D,CAAC;AAFD,kDAEC;AAED,SAAgB,iBAAiB;IAC/B,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,iBAAiB,EAAE,CAAA;AAC7D,CAAC;AAFD,8CAEC;AAED,SAAgB,kBAAkB;IAChC,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,kBAAkB,EAAE,CAAA;AAC9D,CAAC;AAFD,gDAEC;AAED,SAAgB,iBAAiB;IAC/B,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,iBAAiB,EAAE,CAAA;AAC7D,CAAC;AAFD,8CAEC"}
\ No newline at end of file
+{"version":3,"file":"atomts.js","sourceRoot":"","sources":["../../lib/main/atomts.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/errorPusher.js b/dist/main/errorPusher.js
index 40e148191..7289133ce 100644
--- a/dist/main/errorPusher.js
+++ b/dist/main/errorPusher.js
@@ -1,9 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-const lodash_1 = require("lodash");
-const utils_1 = require("./atom/utils");
const atom_1 = require("atom");
+const lodash_1 = require("lodash");
const path = require("path");
+const utils_1 = require("./atom/utils");
/** Class that collects errors from all of the clients and pushes them to the Linter service */
class ErrorPusher {
constructor() {
@@ -15,16 +15,20 @@ class ErrorPusher {
}));
this.pushErrors = lodash_1.debounce(this.pushErrors.bind(this), 100);
}
+ *getErrorsInRange(filePath, range) {
+ for (const prefixed of this.errors.values()) {
+ const errors = prefixed.get(path.normalize(filePath));
+ if (errors)
+ yield* errors.filter(err => utils_1.spanToRange(err).intersectsWith(range));
+ }
+ }
/** Return any errors that cover the given location */
- getErrorsAt(filePath, loc) {
- const result = [];
+ *getErrorsAt(filePath, loc) {
for (const prefixed of this.errors.values()) {
const errors = prefixed.get(path.normalize(filePath));
- if (errors) {
- result.push(...errors.filter(err => utils_1.isLocationInRange(loc, err)));
- }
+ if (errors)
+ yield* errors.filter(err => utils_1.spanToRange(err).containsPoint(loc));
}
- return result;
}
/** Set errors. Previous errors with the same prefix and filePath are going to be replaced */
setErrors(prefix, filePath, errors) {
@@ -36,11 +40,16 @@ class ErrorPusher {
prefixed.set(path.normalize(filePath), errors);
this.pushErrors();
}
- /** Clear all errors */
- clear() {
- if (this.linter) {
- this.linter.clearMessages();
+ clearFileErrors(filePath) {
+ for (const map of this.errors.values()) {
+ map.delete(filePath);
}
+ this.pushErrors();
+ }
+ clear() {
+ if (!this.linter)
+ return;
+ this.linter.clearMessages();
}
setLinter(linter) {
this.linter = linter;
diff --git a/dist/main/errorPusher.js.map b/dist/main/errorPusher.js.map
index 7295cf24d..00b36337b 100644
--- a/dist/main/errorPusher.js.map
+++ b/dist/main/errorPusher.js.map
@@ -1 +1 @@
-{"version":3,"file":"errorPusher.js","sourceRoot":"","sources":["../../lib/main/errorPusher.ts"],"names":[],"mappings":";;AAAA,mCAA+B;AAG/B,wCAAgE;AAChE,+BAAwC;AACxC,6BAA4B;AAE5B,+FAA+F;AAC/F,MAAa,WAAW;IAMtB;QAJQ,WAAM,GAA2C,IAAI,GAAG,EAAE,CAAA;QAC1D,iBAAY,GAAG,IAAI,CAAA;QACnB,kBAAa,GAAG,IAAI,0BAAmB,EAAE,CAAA;QAG/C,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8BAA8B,EAAE,CAAC,YAAqB,EAAE,EAAE;YAC5E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAClC,CAAC,CAAC,CACH,CAAA;QACD,IAAI,CAAC,UAAU,GAAG,iBAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IAC7D,CAAC;IAED,sDAAsD;IAC/C,WAAW,CAAC,QAAgB,EAAE,GAAa;QAChD,MAAM,MAAM,GAAiB,EAAE,CAAA;QAC/B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;YACrD,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,yBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;aAClE;SACF;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,6FAA6F;IACtF,SAAS,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAoB;QACrE,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;YACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;SAClC;QAED,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAA;QAE9C,IAAI,CAAC,UAAU,EAAE,CAAA;IACnB,CAAC;IAED,uBAAuB;IAChB,KAAK;QACV,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;SAC5B;IACH,CAAC;IAEM,SAAS,CAAC,MAAqB;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,EAAE,CAAA;IACnB,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAA;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAEO,UAAU;QAChB,MAAM,MAAM,GAAc,EAAE,CAAA;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAEjD,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE;YAClC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;gBAC7C,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,UAAU,EAAE;oBAChD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;wBACpC,IAAI,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;4BAAE,SAAQ;wBAC1E,IAAI,MAAM,CAAC,iCAAiC,IAAI,UAAU,CAAC,kBAAkB;4BAAE,SAAQ;wBACvF,qFAAqF;wBACrF,uFAAuF;wBACvF,IAAI,EAAC,KAAK,EAAE,GAAG,EAAC,GAAG,UAAiC,CAAA;wBACpD,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE;4BAClB,KAAK,GAAG,GAAG,GAAG,EAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAA;yBACnC;wBAED,MAAM,CAAC,IAAI,CAAC;4BACV,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;4BACtC,OAAO,EAAE,UAAU,CAAC,IAAI;4BACxB,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,wBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC;6BACvC;yBACF,CAAC,CAAA;qBACH;iBACF;aACF;SACF;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;SACnC;IACH,CAAC;IAEO,WAAW,CAAC,UAAsB;QACxC,IAAI,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,MAAM,CAAA;QAChE,QAAQ,UAAU,CAAC,QAAQ,EAAE;YAC3B,KAAK,OAAO;gBACV,OAAO,OAAO,CAAA;YAChB,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAA;YAClB;gBACE,OAAO,MAAM,CAAA;SAChB;IACH,CAAC;CACF;AAvGD,kCAuGC"}
\ No newline at end of file
+{"version":3,"file":"errorPusher.js","sourceRoot":"","sources":["../../lib/main/errorPusher.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/pluginManager.js b/dist/main/pluginManager.js
index d81caa166..228f7ac02 100644
--- a/dist/main/pluginManager.js
+++ b/dist/main/pluginManager.js
@@ -1,46 +1,73 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Atom = require("atom");
-const autoCompleteProvider_1 = require("./atom/autoCompleteProvider");
-const clientResolver_1 = require("../client/clientResolver");
-const hyperclickProvider_1 = require("./atom/hyperclickProvider");
-const codefix_1 = require("./atom/codefix");
const atom_1 = require("atom");
const lodash_1 = require("lodash");
-const errorPusher_1 = require("./errorPusher");
-const statusPanel_1 = require("./atom/components/statusPanel");
-const typescriptEditorPane_1 = require("./typescriptEditorPane");
-const typescriptBuffer_1 = require("./typescriptBuffer");
+const path = require("path");
+const client_1 = require("../client");
+const utils_1 = require("../utils");
+const codeActionsProvider_1 = require("./atom-ide/codeActionsProvider");
+const codeHighlightProvider_1 = require("./atom-ide/codeHighlightProvider");
+const datatipProvider_1 = require("./atom-ide/datatipProvider");
+const definitionsProvider_1 = require("./atom-ide/definitionsProvider");
+const findReferencesProvider_1 = require("./atom-ide/findReferencesProvider");
+const hyperclickProvider_1 = require("./atom-ide/hyperclickProvider");
+const outlineProvider_1 = require("./atom-ide/outlineProvider");
+const sigHelpProvider_1 = require("./atom-ide/sigHelpProvider");
+const autoCompleteProvider_1 = require("./atom/autoCompleteProvider");
+const codefix_1 = require("./atom/codefix");
+const intentionsProvider_1 = require("./atom/codefix/intentionsProvider");
const commands_1 = require("./atom/commands");
+const statusPanel_1 = require("./atom/components/statusPanel");
+const editorPositionHistoryManager_1 = require("./atom/editorPositionHistoryManager");
+const manager_1 = require("./atom/occurrence/manager");
+const manager_2 = require("./atom/sigHelp/manager");
+const manager_3 = require("./atom/tooltips/manager");
+const utils_2 = require("./atom/utils");
const semanticViewController_1 = require("./atom/views/outline/semanticViewController");
const symbolsViewController_1 = require("./atom/views/symbols/symbolsViewController");
-const editorPositionHistoryManager_1 = require("./atom/editorPositionHistoryManager");
-const utils_1 = require("./atom/utils");
-const path = require("path");
+const errorPusher_1 = require("./errorPusher");
+const typescriptBuffer_1 = require("./typescriptBuffer");
+const typescriptEditorPane_1 = require("./typescriptEditorPane");
class PluginManager {
constructor(state) {
- this.panes = []; // TODO: do we need it?
+ this.usingBuiltinTooltipManager = true;
+ this.usingBuiltinSigHelpManager = true;
+ this.pending = new Set();
this.clearErrors = () => {
this.errorPusher.clear();
};
+ this.clearFileErrors = (filePath) => {
+ this.errorPusher.clearFileErrors(filePath);
+ };
this.getClient = async (filePath) => {
- const pane = this.panes.find(p => p.buffer.getPath() === filePath);
- if (pane && pane.client) {
- return pane.client;
- }
return this.clientResolver.get(filePath);
};
- this.getStatusPanel = () => this.statusPanel;
- this.withTypescriptBuffer = async (filePath, action) => {
+ this.killAllServers = () => {
+ utils_1.handlePromise(this.clientResolver.restartAllServers());
+ };
+ this.flushTypescriptBuffer = async (filePath) => {
const normalizedFilePath = path.normalize(filePath);
- const pane = this.panes.find(p => p.buffer.getPath() === normalizedFilePath);
- if (pane)
- return action(pane.buffer);
+ const ed = atom.workspace.getTextEditors().find(p => p.getPath() === normalizedFilePath);
+ if (ed) {
+ const buffer = typescriptBuffer_1.TypescriptBuffer.create(ed.getBuffer(), {
+ getClient: this.getClient,
+ clearFileErrors: this.clearFileErrors,
+ reportBuildStatus: this.reportBuildStatus,
+ });
+ await buffer.flush();
+ }
+ };
+ this.withBuffer = async (filePath, action) => {
+ const normalizedFilePath = path.normalize(filePath);
+ const ed = atom.workspace.getTextEditors().find(p => p.getPath() === normalizedFilePath);
+ // found open buffer
+ if (ed)
+ return action(ed.getBuffer());
// no open buffer
const buffer = await Atom.TextBuffer.load(normalizedFilePath);
try {
- const tsbuffer = typescriptBuffer_1.TypescriptBuffer.create(buffer, fp => this.clientResolver.get(fp));
- return await action(tsbuffer);
+ return await action(buffer);
}
finally {
if (buffer.isModified())
@@ -48,42 +75,135 @@ class PluginManager {
buffer.destroy();
}
};
- this.applyEdits = async (edits) => void Promise.all(edits.map(edit => this.withTypescriptBuffer(edit.fileName, async (buffer) => {
- buffer.buffer.transact(() => {
+ this.reportBusyWhile = async (title, generator) => {
+ if (this.busySignalService) {
+ return this.busySignalService.reportBusyWhile(title, generator);
+ }
+ else {
+ const event = { title };
+ try {
+ this.pending.add(event);
+ this.drawPending(Array.from(this.pending));
+ return await generator();
+ }
+ finally {
+ this.pending.delete(event);
+ this.drawPending(Array.from(this.pending));
+ }
+ }
+ };
+ this.reportProgress = (progress) => {
+ utils_1.handlePromise(this.statusPanel.update({ progress }));
+ };
+ this.reportBuildStatus = (buildStatus) => {
+ utils_1.handlePromise(this.statusPanel.update({ buildStatus }));
+ };
+ this.reportClientInfo = (info) => {
+ utils_1.handlePromise(this.statusPanel.update(info));
+ };
+ this.applyEdits = async (edits) => void Promise.all(edits.map(edit => this.withBuffer(edit.fileName, async (buffer) => {
+ buffer.transact(() => {
const changes = edit.textChanges
- .map(e => ({ range: utils_1.spanToRange(e), newText: e.newText }))
+ .map(e => ({ range: utils_2.spanToRange(e), newText: e.newText }))
+ .reverse() // NOTE: needs reverse for cases where ranges are same for two changes
.sort((a, b) => b.range.compare(a.range));
for (const change of changes) {
- buffer.buffer.setTextInRange(change.range, change.newText);
+ buffer.setTextInRange(change.range, change.newText);
}
});
- return buffer.flush();
+ const filePath = buffer.getPath();
+ if (filePath !== undefined)
+ await this.flushTypescriptBuffer(filePath);
})));
- this.getSemanticViewController = () => this.semanticViewController;
- this.getSymbolsViewController = () => this.symbolsViewController;
- this.getEditorPositionHistoryManager = () => this.editorPosHist;
+ this.showTooltipAt = async (ed) => {
+ if (this.usingBuiltinTooltipManager)
+ await this.tooltipManager.showExpressionAt(ed);
+ else
+ await atom.commands.dispatch(atom.views.getView(ed), "datatip:toggle");
+ };
+ this.showSigHelpAt = async (ed) => {
+ if (this.usingBuiltinSigHelpManager)
+ await this.sigHelpManager.showTooltipAt(ed);
+ else
+ await atom.commands.dispatch(atom.views.getView(ed), "signature-help:show");
+ };
+ this.hideSigHelpAt = (ed) => {
+ if (this.usingBuiltinSigHelpManager)
+ return this.sigHelpManager.hideTooltipAt(ed);
+ else
+ return false;
+ };
+ this.histGoForward = (ed, opts) => {
+ return this.editorPosHist.goForward(ed, opts);
+ };
+ // tslint:disable-next-line:member-ordering
+ this.drawPending = lodash_1.throttle((pending) => utils_1.handlePromise(this.statusPanel.update({ pending })), 100, { leading: false });
this.subscriptions = new atom_1.CompositeDisposable();
- this.clientResolver = new clientResolver_1.ClientResolver();
+ this.clientResolver = new client_1.ClientResolver(this.reportBusyWhile);
this.subscriptions.add(this.clientResolver);
- this.statusPanel = new statusPanel_1.StatusPanel({ clientResolver: this.clientResolver });
+ this.statusPanel = new statusPanel_1.StatusPanel();
this.subscriptions.add(this.statusPanel);
this.errorPusher = new errorPusher_1.ErrorPusher();
this.subscriptions.add(this.errorPusher);
- // NOTE: This has to run before withTypescriptBuffer is used to populate this.panes
- this.subscribeEditors();
this.codefixProvider = new codefix_1.CodefixProvider(this.clientResolver, this.errorPusher, this.applyEdits);
this.subscriptions.add(this.codefixProvider);
- this.semanticViewController = new semanticViewController_1.SemanticViewController(this.withTypescriptBuffer);
+ this.semanticViewController = new semanticViewController_1.SemanticViewController(this.getClient);
this.subscriptions.add(this.semanticViewController);
- this.symbolsViewController = new symbolsViewController_1.SymbolsViewController(this);
- this.subscriptions.add(this.symbolsViewController);
this.editorPosHist = new editorPositionHistoryManager_1.EditorPositionHistoryManager(state && state.editorPosHistState);
this.subscriptions.add(this.editorPosHist);
+ this.symbolsViewController = new symbolsViewController_1.SymbolsViewController({
+ histGoForward: this.histGoForward,
+ getClient: this.getClient,
+ });
+ this.subscriptions.add(this.symbolsViewController);
+ this.tooltipManager = new manager_3.TooltipManager(this.getClient);
+ this.subscriptions.add(this.tooltipManager);
+ this.sigHelpManager = new manager_2.SigHelpManager({
+ getClient: this.getClient,
+ flushTypescriptBuffer: this.flushTypescriptBuffer,
+ });
+ this.subscriptions.add(this.sigHelpManager);
+ this.occurrenceManager = new manager_1.OccurrenceManager(this.getClient);
+ this.subscriptions.add(this.occurrenceManager);
+ this.typescriptPaneFactory = typescriptEditorPane_1.TypescriptEditorPane.createFactory({
+ clearFileErrors: this.clearFileErrors,
+ getClient: this.getClient,
+ reportBuildStatus: this.reportBuildStatus,
+ reportClientInfo: this.reportClientInfo,
+ });
+ this.subscribeEditors();
// Register the commands
- this.subscriptions.add(commands_1.registerCommands(this));
+ this.subscriptions.add(commands_1.registerCommands({
+ getClient: this.getClient,
+ applyEdits: this.applyEdits,
+ clearErrors: this.clearErrors,
+ killAllServers: this.killAllServers,
+ reportProgress: this.reportProgress,
+ reportBuildStatus: this.reportBuildStatus,
+ toggleSemanticViewController: () => {
+ utils_1.handlePromise(this.semanticViewController.toggle());
+ },
+ toggleFileSymbolsView: ed => {
+ this.symbolsViewController.toggleFileView(ed);
+ },
+ toggleProjectSymbolsView: ed => {
+ this.symbolsViewController.toggleProjectView(ed);
+ },
+ histGoForward: this.histGoForward,
+ histGoBack: () => this.editorPosHist.goBack(),
+ histShowHistory: () => this.editorPosHist.showHistory(),
+ showTooltipAt: this.showTooltipAt,
+ showSigHelpAt: this.showSigHelpAt,
+ hideSigHelpAt: this.hideSigHelpAt,
+ }));
}
destroy() {
this.subscriptions.dispose();
+ for (const ed of atom.workspace.getTextEditors()) {
+ const pane = typescriptEditorPane_1.TypescriptEditorPane.lookupPane(ed);
+ if (pane)
+ pane.destroy();
+ }
}
serialize() {
return {
@@ -96,9 +216,9 @@ class PluginManager {
name: "TypeScript",
});
this.errorPusher.setLinter(linter);
- this.clientResolver.on("diagnostics", ({ type, filePath, diagnostics }) => {
+ this.subscriptions.add(this.clientResolver.on("diagnostics", ({ type, filePath, diagnostics }) => {
this.errorPusher.setErrors(type, filePath, diagnostics);
- });
+ }));
}
consumeStatusBar(statusBar) {
let statusPriority = 100;
@@ -117,65 +237,83 @@ class PluginManager {
this.subscriptions.add(disp);
return disp;
}
+ consumeDatatipService(datatip) {
+ if (atom.config.get("atom-typescript").preferBuiltinTooltips)
+ return;
+ const disp = datatip.addProvider(new datatipProvider_1.TSDatatipProvider(this.getClient));
+ this.subscriptions.add(disp);
+ this.tooltipManager.dispose();
+ this.usingBuiltinTooltipManager = false;
+ return disp;
+ }
+ consumeSigHelpService(registry) {
+ if (atom.config.get("atom-typescript").preferBuiltinSigHelp)
+ return;
+ const disp = registry(new sigHelpProvider_1.TSSigHelpProvider(this.getClient, this.flushTypescriptBuffer));
+ this.subscriptions.add(disp);
+ this.sigHelpManager.dispose();
+ this.usingBuiltinSigHelpManager = false;
+ return disp;
+ }
+ consumeBusySignal(busySignalService) {
+ if (atom.config.get("atom-typescript").preferBuiltinBusySignal)
+ return;
+ this.busySignalService = busySignalService;
+ const disp = {
+ dispose: () => {
+ if (this.busySignalService)
+ this.busySignalService.dispose();
+ this.busySignalService = undefined;
+ },
+ };
+ this.subscriptions.add(disp);
+ return disp;
+ }
// Registering an autocomplete provider
provideAutocomplete() {
- return [
- new autoCompleteProvider_1.AutocompleteProvider(this.clientResolver, {
- withTypescriptBuffer: this.withTypescriptBuffer,
- }),
- ];
+ return [new autoCompleteProvider_1.AutocompleteProvider(this.getClient, this.flushTypescriptBuffer)];
}
provideIntentions() {
- return new codefix_1.IntentionsProvider(this.codefixProvider);
+ return intentionsProvider_1.getIntentionsProvider(this.codefixProvider);
+ }
+ provideIntentionsHighlight() {
+ return intentionsProvider_1.getIntentionsHighlightsProvider(this.codefixProvider);
}
provideCodeActions() {
- return new codefix_1.CodeActionsProvider(this.codefixProvider);
+ return codeActionsProvider_1.getCodeActionsProvider(this.codefixProvider);
}
provideHyperclick() {
- return hyperclickProvider_1.getHyperclickProvider(this.clientResolver, this.editorPosHist);
+ return hyperclickProvider_1.getHyperclickProvider(this.getClient, this.histGoForward);
+ }
+ provideReferences() {
+ return findReferencesProvider_1.getFindReferencesProvider(this.getClient);
+ }
+ provideOutlines() {
+ return outlineProvider_1.getOutlineProvider(this.getClient);
+ }
+ provideDefinitions() {
+ if (atom.config.get("atom-typescript").disableAtomIdeDefinitions)
+ return;
+ return definitionsProvider_1.getDefinitionProvider(this.getClient);
+ }
+ provideCodeHighlight() {
+ if (atom.config.get("atom-typescript").preferBuiltinOccurrenceHighlight)
+ return;
+ this.occurrenceManager.dispose();
+ return codeHighlightProvider_1.getCodeHighlightProvider(this.getClient);
}
subscribeEditors() {
- let activePane;
this.subscriptions.add(atom.workspace.observeTextEditors((editor) => {
- this.panes.push(new typescriptEditorPane_1.TypescriptEditorPane(editor, {
- getClient: (filePath) => this.clientResolver.get(filePath),
- onClose: filePath => {
- // Clear errors if any from this file
- this.errorPusher.setErrors("syntaxDiag", filePath, []);
- this.errorPusher.setErrors("semanticDiag", filePath, []);
- },
- onDispose: pane => {
- if (activePane === pane) {
- activePane = undefined;
- }
- this.panes.splice(this.panes.indexOf(pane), 1);
- },
- onSave: lodash_1.debounce((pane) => {
- if (!pane.client) {
- return;
- }
- const files = [];
- for (const p of this.panes.sort((a, b) => a.activeAt - b.activeAt)) {
- const filePath = p.buffer.getPath();
- if (filePath !== undefined && p.isTypescript && p.client === pane.client) {
- files.push(filePath);
- }
- }
- pane.client.execute("geterr", { files, delay: 100 });
- }, 50),
- statusPanel: this.statusPanel,
- }));
- }));
- this.subscriptions.add(atom.workspace.observeActiveTextEditor((editor) => {
- if (activePane) {
- activePane.onDeactivated();
- activePane = undefined;
- }
- const pane = this.panes.find(p => p.editor === editor);
- if (pane) {
- activePane = pane;
- pane.onActivated();
+ this.typescriptPaneFactory(editor);
+ }), atom.workspace.onDidChangeActiveTextEditor(ed => {
+ if (ed && utils_2.isTypescriptEditorWithPath(ed)) {
+ utils_1.handlePromise(this.statusPanel.show());
+ const tep = typescriptEditorPane_1.TypescriptEditorPane.lookupPane(ed);
+ if (tep)
+ tep.didActivate();
}
+ else
+ utils_1.handlePromise(this.statusPanel.hide());
}));
}
}
diff --git a/dist/main/pluginManager.js.map b/dist/main/pluginManager.js.map
index c04ce163a..ca106b4b0 100644
--- a/dist/main/pluginManager.js.map
+++ b/dist/main/pluginManager.js.map
@@ -1 +1 @@
-{"version":3,"file":"pluginManager.js","sourceRoot":"","sources":["../../lib/main/pluginManager.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"pluginManager.js","sourceRoot":"","sources":["../../lib/main/pluginManager.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/typescriptBuffer.js b/dist/main/typescriptBuffer.js
index a912ddf03..a1b27e0c2 100644
--- a/dist/main/typescriptBuffer.js
+++ b/dist/main/typescriptBuffer.js
@@ -3,69 +3,93 @@ Object.defineProperty(exports, "__esModule", { value: true });
// A class to keep all changes to the buffer in sync with tsserver. This is mainly used with
// the editor panes, but is also useful for editor-less buffer changes (renameRefactor).
const Atom = require("atom");
-const utils_1 = require("./atom/utils");
+const lodash_1 = require("lodash");
+const utils_1 = require("../utils");
+const utils_2 = require("./atom/utils");
class TypescriptBuffer {
- constructor(buffer, getClient) {
+ constructor(buffer, deps) {
this.buffer = buffer;
- this.getClient = getClient;
+ this.deps = deps;
this.events = new Atom.Emitter();
- // Timestamps for buffer events
- this.changedAt = 0;
- this.changedAtBatch = 0;
+ this.lastChangedAt = Date.now();
+ this.lastUpdatedAt = Date.now();
+ this.compileOnSave = false;
this.subscriptions = new Atom.CompositeDisposable();
- this.dispose = async () => {
+ // tslint:disable-next-line:member-ordering
+ this.on = this.events.on.bind(this.events);
+ this.dispose = () => {
this.subscriptions.dispose();
- await this.close();
+ utils_1.handlePromise(this.close());
+ };
+ this.init = async () => {
+ if (!this.state)
+ return;
+ await this.state.client.execute("open", {
+ file: this.state.filePath,
+ fileContent: this.buffer.getText(),
+ });
+ await this.getErr({ allFiles: false });
};
this.close = async () => {
+ await this.openPromise;
if (this.state) {
- const client = await this.state.client;
+ const client = this.state.client;
const file = this.state.filePath;
await client.execute("close", { file });
- this.events.emit("closed", file);
+ this.deps.clearFileErrors(file);
+ this.state.subscriptions.dispose();
this.state = undefined;
}
};
this.onDidChange = () => {
- this.changedAt = Date.now();
+ this.lastChangedAt = Date.now();
};
- this.onDidChangePath = async () => {
- await this.close();
- await this.open();
+ this.onDidChangePath = (newPath) => {
+ utils_1.handlePromise(this.close().then(() => {
+ this.openPromise = this.open(newPath);
+ }));
};
this.onDidSave = async () => {
- // Check if there isn't a onDidStopChanging event pending.
- const { changedAt, changedAtBatch } = this;
- if (changedAtBatch > 0 && changedAt > changedAtBatch) {
- await new Promise(resolve => this.events.once("changed", resolve));
- }
- this.events.emit("saved");
+ await this.flush();
+ await this.getErr({ allFiles: true });
+ await this.doCompileOnSave();
};
this.onDidStopChanging = async ({ changes }) => {
- // Don't update changedAt or emit any events if there are no actual changes or file isn't open
+ // If there are no actual changes, or the file isn't open, we have nothing to do
if (changes.length === 0 || !this.state)
return;
- this.changedAtBatch = Date.now();
- const client = await this.state.client;
- for (const change of changes) {
- const { start, oldExtent, newText } = change;
- const end = {
- endLine: start.row + oldExtent.row + 1,
- endOffset: (oldExtent.row === 0 ? start.column + oldExtent.column : oldExtent.column) + 1,
- };
- await client.execute("change", Object.assign({}, end, { file: this.state.filePath, line: start.row + 1, offset: start.column + 1, insertString: newText }));
- }
- this.events.emit("changed");
+ this.deps.reportBuildStatus(undefined);
+ const { client, filePath } = this.state;
+ // NOTE: this might look somewhat weird until we realize that
+ // awaiting on each "change" command may lead to arbitrary
+ // interleaving, while pushing them all at once guarantees
+ // that all subsequent "change" commands will be sequenced after
+ // the ones we pushed
+ await Promise.all(changes.map(({ oldRange, newText }) => client.execute("change", {
+ file: filePath,
+ line: oldRange.start.row + 1,
+ offset: oldRange.start.column + 1,
+ endLine: oldRange.end.row + 1,
+ endOffset: oldRange.end.column + 1,
+ insertString: newText,
+ })));
+ this.lastUpdatedAt = Date.now();
+ this.events.emit("updated");
+ return this.getErr({ allFiles: false });
};
- this.subscriptions.add(buffer.onDidChange(this.onDidChange), buffer.onDidChangePath(this.onDidChangePath), buffer.onDidDestroy(this.dispose), buffer.onDidSave(this.onDidSave), buffer.onDidStopChanging(this.onDidStopChanging));
- this.open();
+ this.subscriptions.add(buffer.onDidChange(this.onDidChange), buffer.onDidChangePath(this.onDidChangePath), buffer.onDidDestroy(this.dispose), buffer.onDidSave(() => {
+ utils_1.handlePromise(this.onDidSave());
+ }), buffer.onDidStopChanging(arg => {
+ utils_1.handlePromise(this.onDidStopChanging(arg));
+ }));
+ this.openPromise = this.open(this.buffer.getPath());
}
- static create(buffer, getClient) {
+ static create(buffer, deps) {
const b = TypescriptBuffer.bufferMap.get(buffer);
if (b)
return b;
else {
- const nb = new TypescriptBuffer(buffer, getClient);
+ const nb = new TypescriptBuffer(buffer, deps);
TypescriptBuffer.bufferMap.set(buffer, nb);
return nb;
}
@@ -75,65 +99,101 @@ class TypescriptBuffer {
}
// If there are any pending changes, flush them out to the Typescript server
async flush() {
- if (this.changedAt > this.changedAtBatch) {
+ if (this.lastChangedAt > this.lastUpdatedAt) {
await new Promise(resolve => {
- const sub = this.buffer.onDidStopChanging(() => {
- sub.dispose();
+ const disp = this.events.once("updated", () => {
+ disp.dispose();
resolve();
});
this.buffer.emitDidStopChangingEvent();
});
}
}
- async getNavTree() {
+ getInfo() {
if (!this.state)
return;
- const client = await this.state.client;
- try {
- const navtreeResult = await client.execute("navtree", { file: this.state.filePath });
- return navtreeResult.body;
- }
- catch (err) {
- console.error(err, this.state.filePath);
- }
- return;
+ return {
+ clientVersion: this.state.client.version,
+ tsConfigPath: this.state.configFile && this.state.configFile.getPath(),
+ };
}
- async getNavTo(search) {
+ async getErr({ allFiles }) {
if (!this.state)
return;
- const client = await this.state.client;
+ const files = allFiles ? Array.from(utils_2.getOpenEditorsPaths()) : [this.state.filePath];
+ await this.state.client.execute("geterr", {
+ files,
+ delay: 100,
+ });
+ }
+ /** Throws! */
+ async compile() {
+ if (!this.state)
+ return;
+ const { client, filePath } = this.state;
+ const result = await client.execute("compileOnSaveAffectedFileList", {
+ file: filePath,
+ });
+ const fileNames = lodash_1.flatten(result.body.map(project => project.fileNames));
+ if (fileNames.length === 0)
+ return;
+ const promises = fileNames.map(file => client.execute("compileOnSaveEmitFile", { file }));
+ const saved = await Promise.all(promises);
+ if (!saved.every(res => !!res.body)) {
+ throw new Error("Some files failed to emit");
+ }
+ }
+ async doCompileOnSave() {
+ if (!this.compileOnSave)
+ return;
+ this.deps.reportBuildStatus(undefined);
try {
- const navtoResult = await client.execute("navto", {
- file: this.state.filePath,
- currentFileOnly: false,
- searchValue: search,
- maxResultCount: 1000,
- });
- return navtoResult.body;
+ await this.compile();
+ this.deps.reportBuildStatus({ success: true });
}
- catch (err) {
- console.error(err, this.state.filePath);
+ catch (error) {
+ const e = error;
+ console.error("Save failed with error", e);
+ this.deps.reportBuildStatus({ success: false, message: e.message });
}
- return;
}
- async open() {
- const filePath = this.buffer.getPath();
- if (filePath !== undefined && utils_1.isTypescriptFile(filePath)) {
+ async open(filePath) {
+ if (filePath !== undefined && utils_2.isTypescriptFile(filePath)) {
+ const client = await this.deps.getClient(filePath);
this.state = {
- client: this.getClient(filePath),
+ client,
filePath,
+ configFile: undefined,
+ subscriptions: new Atom.CompositeDisposable(),
};
- const client = await this.state.client;
- await client.execute("open", {
- file: this.state.filePath,
- fileContent: this.buffer.getText(),
+ this.state.subscriptions.add(client.on("restarted", () => utils_1.handlePromise(this.init())));
+ await this.init();
+ const result = await client.execute("projectInfo", {
+ needFileNameList: false,
+ file: filePath,
});
+ // TODO: wrong type here, complain on TS repo
+ if (result.body.configFileName !== undefined) {
+ this.state.configFile = new Atom.File(result.body.configFileName);
+ await this.readConfigFile();
+ this.state.subscriptions.add(this.state.configFile.onDidChange(() => utils_1.handlePromise(this.readConfigFile())));
+ }
this.events.emit("opened");
}
else {
- this.state = undefined;
+ return this.close();
}
}
+ async readConfigFile() {
+ if (!this.state || !this.state.configFile)
+ return;
+ const options = await utils_2.getProjectConfig(this.state.configFile.getPath());
+ this.compileOnSave = options.compileOnSave;
+ await this.state.client.execute("configure", {
+ file: this.state.filePath,
+ formatOptions: options.formatCodeOptions,
+ });
+ }
}
TypescriptBuffer.bufferMap = new WeakMap();
exports.TypescriptBuffer = TypescriptBuffer;
diff --git a/dist/main/typescriptBuffer.js.map b/dist/main/typescriptBuffer.js.map
index 1ed21bf74..1f12a1cf5 100644
--- a/dist/main/typescriptBuffer.js.map
+++ b/dist/main/typescriptBuffer.js.map
@@ -1 +1 @@
-{"version":3,"file":"typescriptBuffer.js","sourceRoot":"","sources":["../../lib/main/typescriptBuffer.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"typescriptBuffer.js","sourceRoot":"","sources":["../../lib/main/typescriptBuffer.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/main/typescriptEditorPane.js b/dist/main/typescriptEditorPane.js
index 1532de3ae..c2e430ea6 100644
--- a/dist/main/typescriptEditorPane.js
+++ b/dist/main/typescriptEditorPane.js
@@ -1,190 +1,66 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const atom_1 = require("atom");
-const lodash_1 = require("lodash");
const utils_1 = require("./atom/utils");
const typescriptBuffer_1 = require("./typescriptBuffer");
-const tooltipManager_1 = require("./atom/tooltipManager");
class TypescriptEditorPane {
constructor(editor, opts) {
this.editor = editor;
this.opts = opts;
- // Timestamp for activated event
- this.activeAt = 0;
- this.isTypescript = false;
- // Path to the project's tsconfig.json
- this.configFile = "";
- this.isActive = false;
- this.isOpen = false;
- this.occurrenceMarkers = [];
this.subscriptions = new atom_1.CompositeDisposable();
- this.onActivated = () => {
- this.activeAt = Date.now();
- this.isActive = true;
- const filePath = this.buffer.getPath();
- if (this.isTypescript && filePath !== undefined) {
- this.opts.statusPanel.show();
- // The first activation might happen before we even have a client
- if (this.client) {
- this.client.execute("geterr", {
- files: [filePath],
- delay: 100,
- });
- this.opts.statusPanel.update({ version: this.client.version });
- }
- }
- this.opts.statusPanel.update({ tsConfigPath: this.configFile });
- };
- this.onDeactivated = () => {
- this.isActive = false;
- this.opts.statusPanel.hide();
+ this.isTypescript = false;
+ this.destroy = () => {
+ atom.views.getView(this.editor).classList.remove("typescript-editor");
+ this.subscriptions.dispose();
};
- this.onChanged = () => {
- if (!this.client)
- return;
- const filePath = this.buffer.getPath();
- if (filePath === undefined)
- return;
- this.opts.statusPanel.update({ buildStatus: undefined });
- this.client.execute("geterr", {
- files: [filePath],
- delay: 100,
- });
+ /** NOTE:
+ * it is implicitly assumed that `atom.workspace.getActiveTextEditor() === this.editor`
+ * which has to be ensured at call site
+ */
+ this.didActivate = () => {
+ if (this.isTypescript)
+ this.reportInfo();
};
- this.onDidChangeCursorPosition = ({ textChanged }) => {
- if (!this.isTypescript || !this.isOpen)
- return;
- if (textChanged) {
- this.clearOccurrenceMarkers();
- return;
- }
- this.updateMarkers();
- };
- this.onDidDestroy = () => {
- this.dispose();
- };
- this.onOpened = async () => {
- const filePath = this.buffer.getPath();
- if (filePath === undefined)
- return;
- this.client = await this.opts.getClient(filePath);
- // onOpened might trigger before onActivated so we can't rely on isActive flag
- if (atom.workspace.getActiveTextEditor() === this.editor) {
- this.isActive = true;
- this.opts.statusPanel.update({ version: this.client.version });
- }
- if (this.isTypescript) {
- this.client.execute("geterr", {
- files: [filePath],
- delay: 100,
- });
- this.isOpen = true;
- try {
- const result = await this.client.execute("projectInfo", {
- needFileNameList: false,
- file: filePath,
- });
- this.configFile = result.body.configFileName;
- if (this.isActive) {
- this.opts.statusPanel.update({ tsConfigPath: this.configFile });
- }
- utils_1.getProjectCodeSettings(this.configFile).then(options => {
- this.client.execute("configure", {
- file: filePath,
- formatOptions: options,
- });
- });
- }
- catch (e) {
- if (window.atom_typescript_debug)
- console.error(e);
- }
- }
- };
- this.onSaved = () => {
- this.opts.onSave(this);
- this.compileOnSave();
+ this.onOpened = () => {
+ const isActive = atom.workspace.getActiveTextEditor() === this.editor;
+ if (isActive)
+ this.reportInfo();
};
this.checkIfTypescript = () => {
this.isTypescript = utils_1.isTypescriptEditorWithPath(this.editor);
- // Add 'typescript-editor' class to the where typescript is active.
if (this.isTypescript) {
atom.views.getView(this.editor).classList.add("typescript-editor");
}
+ else {
+ atom.views.getView(this.editor).classList.remove("typescript-editor");
+ }
};
- this.updateMarkers = lodash_1.debounce(this.updateMarkers.bind(this), 100);
- this.buffer = typescriptBuffer_1.TypescriptBuffer.create(editor.getBuffer(), opts.getClient);
- this.subscriptions.add(this.buffer.events.on("changed", this.onChanged), this.buffer.events.on("closed", this.opts.onClose), this.buffer.events.on("opened", this.onOpened), this.buffer.events.on("saved", this.onSaved));
+ this.buffer = typescriptBuffer_1.TypescriptBuffer.create(editor.getBuffer(), opts);
+ this.subscriptions.add(this.buffer.on("opened", this.onOpened));
this.checkIfTypescript();
- this.subscriptions.add(editor.onDidChangePath(this.checkIfTypescript), editor.onDidChangeGrammar(this.checkIfTypescript), this.editor.onDidChangeCursorPosition(this.onDidChangeCursorPosition), this.editor.onDidDestroy(this.onDidDestroy));
- this.subscriptions.add(new tooltipManager_1.TooltipManager(this.editor, opts.getClient));
- }
- dispose() {
- atom.views.getView(this.editor).classList.remove("typescript-editor");
- this.subscriptions.dispose();
- this.opts.onDispose(this);
+ this.subscriptions.add(editor.onDidChangePath(this.checkIfTypescript), editor.onDidChangeGrammar(this.checkIfTypescript), editor.onDidDestroy(this.destroy));
}
- clearOccurrenceMarkers() {
- for (const marker of this.occurrenceMarkers) {
- marker.destroy();
- }
- }
- async updateMarkers() {
- if (!this.client)
- return;
- const filePath = this.buffer.getPath();
- if (filePath === undefined)
- return;
- const pos = this.editor.getLastCursor().getBufferPosition();
- this.clearOccurrenceMarkers();
- try {
- const result = await this.client.execute("occurrences", {
- file: filePath,
- line: pos.row + 1,
- offset: pos.column + 1,
- });
- for (const ref of result.body) {
- const marker = this.editor.markBufferRange(utils_1.spanToRange(ref));
- this.editor.decorateMarker(marker, {
- type: "highlight",
- class: "atom-typescript-occurrence",
- });
- this.occurrenceMarkers.push(marker);
+ // tslint:disable-next-line:member-ordering
+ static createFactory(opts) {
+ return (editor) => {
+ let tep = TypescriptEditorPane.editorMap.get(editor);
+ if (!tep) {
+ tep = new TypescriptEditorPane(editor, opts);
+ TypescriptEditorPane.editorMap.set(editor, tep);
}
- }
- catch (e) {
- if (window.atom_typescript_debug)
- console.error(e);
- }
+ return tep;
+ };
}
- async compileOnSave() {
- const { client } = this;
- if (!client)
- return;
- const filePath = this.buffer.getPath();
- if (filePath === undefined)
- return;
- const result = await client.execute("compileOnSaveAffectedFileList", {
- file: filePath,
- });
- this.opts.statusPanel.update({ buildStatus: undefined });
- const fileNames = lodash_1.flatten(result.body.map(project => project.fileNames));
- if (fileNames.length === 0)
- return;
- try {
- const promises = fileNames.map(file => client.execute("compileOnSaveEmitFile", { file }));
- const saved = await Promise.all(promises);
- if (!saved.every(res => !!res.body)) {
- throw new Error("Some files failed to emit");
- }
- this.opts.statusPanel.update({ buildStatus: { success: true } });
- }
- catch (error) {
- const e = error;
- console.error("Save failed with error", e);
- this.opts.statusPanel.update({ buildStatus: { success: false, message: e.message } });
- }
+ // tslint:disable-next-line:member-ordering
+ static lookupPane(editor) {
+ return TypescriptEditorPane.editorMap.get(editor);
+ }
+ reportInfo() {
+ const info = this.buffer.getInfo();
+ if (info)
+ this.opts.reportClientInfo(info);
}
}
+TypescriptEditorPane.editorMap = new WeakMap();
exports.TypescriptEditorPane = TypescriptEditorPane;
//# sourceMappingURL=typescriptEditorPane.js.map
\ No newline at end of file
diff --git a/dist/main/typescriptEditorPane.js.map b/dist/main/typescriptEditorPane.js.map
index 5b0f77b0f..8e4a7a0ae 100644
--- a/dist/main/typescriptEditorPane.js.map
+++ b/dist/main/typescriptEditorPane.js.map
@@ -1 +1 @@
-{"version":3,"file":"typescriptEditorPane.js","sourceRoot":"","sources":["../../lib/main/typescriptEditorPane.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"typescriptEditorPane.js","sourceRoot":"","sources":["../../lib/main/typescriptEditorPane.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/utils.js b/dist/utils.js
new file mode 100644
index 000000000..7c81d69b7
--- /dev/null
+++ b/dist/utils.js
@@ -0,0 +1,21 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function handlePromise(promise) {
+ // tslint:disable-next-line:strict-type-predicates no-unbound-method
+ if (typeof promise.catch !== "function") {
+ atom.notifications.addFatalError("Atom-Typescript: non-promise passed to handlePromise. Please report this.", {
+ stack: new Error().stack,
+ dismissable: true,
+ });
+ return;
+ }
+ promise.catch((err) => {
+ atom.notifications.addFatalError(`Atom-Typescript error: ${err.message}`, {
+ detail: err.toString(),
+ stack: err.stack,
+ dismissable: true,
+ });
+ });
+}
+exports.handlePromise = handlePromise;
+//# sourceMappingURL=utils.js.map
\ No newline at end of file
diff --git a/dist/utils.js.map b/dist/utils.js.map
new file mode 100644
index 000000000..147ecd3a2
--- /dev/null
+++ b/dist/utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":";;AAAA,SAAgB,aAAa,CAAC,OAAqB;IACjD,oEAAoE;IACpE,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;QACvC,IAAI,CAAC,aAAa,CAAC,aAAa,CAC9B,2EAA2E,EAC3E;YACE,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK;YACxB,WAAW,EAAE,IAAI;SAClB,CACF,CAAA;QACD,OAAM;KACP;IACD,OAAO,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;QAC3B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,0BAA0B,GAAG,CAAC,OAAO,EAAE,EAAE;YACxE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAnBD,sCAmBC"}
\ No newline at end of file
diff --git a/keymaps/atom-typescript.cson b/keymaps/atom-typescript.cson
index 1b8c009c4..90a5aa2fd 100644
--- a/keymaps/atom-typescript.cson
+++ b/keymaps/atom-typescript.cson
@@ -3,6 +3,7 @@
'shift-f12': 'typescript:find-references'
'f6': 'typescript:build'
'f12': 'typescript:go-to-declaration'
+ 'escape': 'typescript:hide-signature-help'
'atom-workspace':
'f10': 'typescript:return-from-declaration'
diff --git a/lib/client/callbacks.ts b/lib/client/callbacks.ts
index 5a55375bb..57d50a86c 100644
--- a/lib/client/callbacks.ts
+++ b/lib/client/callbacks.ts
@@ -1,29 +1,34 @@
-import * as protocol from "typescript/lib/protocol"
+import {ReportBusyWhile} from "../main/pluginManager"
+import {CommandRes, CommandsWithResponse} from "./commandArgsResponseMap"
interface Request {
- name: string
started: number
reject(err: Error): void
- resolve(res: protocol.Response): void
+ resolve(res: any): void
}
// Callbacks keeps track of all the outstanding requests
export class Callbacks {
private callbacks: Map = new Map()
- constructor(private onPendingChange: (pending: string[]) => void) {}
+ constructor(private reportBusyWhile: ReportBusyWhile) {}
- public add(seq: number, command: string) {
- return new Promise((resolve, reject) => {
- this.callbacks.set(seq, {
- name: command,
- resolve,
- reject,
- started: Date.now(),
+ public async add(
+ seq: number,
+ command: T,
+ ): Promise> {
+ try {
+ const promise = new Promise>((resolve, reject) => {
+ this.callbacks.set(seq, {
+ resolve,
+ reject,
+ started: Date.now(),
+ })
})
-
- this.onPendingChange(this.pending())
- })
+ return await this.reportBusyWhile(command, () => promise)
+ } finally {
+ this.callbacks.delete(seq)
+ }
}
public rejectAll(error: Error) {
@@ -32,27 +37,30 @@ export class Callbacks {
}
this.callbacks.clear()
- this.onPendingChange(this.pending())
}
- // Remove and return a Request object, if one exists
- public remove(seq: number): Request | undefined {
+ public resolve(seq: number, res: CommandRes): void {
const req = this.callbacks.get(seq)
- this.callbacks.delete(seq)
if (req) {
- this.onPendingChange(this.pending())
- }
- return req
+ if (window.atom_typescript_debug) {
+ console.log(
+ "received response for",
+ res.command,
+ "in",
+ Date.now() - req.started,
+ "ms",
+ "with data",
+ res.body,
+ )
+ }
+ if (res.success) req.resolve(res)
+ else req.reject(new Error(res.message))
+ } else console.warn("unexpected response:", res)
}
- // pending returns names of requests waiting for a response
- private pending(): string[] {
- const pending: string[] = []
-
- for (const {name} of this.callbacks.values()) {
- pending.push(name)
- }
-
- return pending
+ public error(seq: number, err: Error): void {
+ const req = this.callbacks.get(seq)
+ if (req) req.reject(err)
+ else console.error(err)
}
}
diff --git a/lib/client/client.ts b/lib/client/client.ts
index 0b34e5785..8574a599b 100644
--- a/lib/client/client.ts
+++ b/lib/client/client.ts
@@ -1,21 +1,23 @@
// tslint:disable:max-classes-per-file
-import * as protocol from "typescript/lib/protocol"
-import {CommandArgResponseMap, CommandArg, CommandRes} from "./commandArgsResponseMap"
import {BufferedNodeProcess, BufferedProcess, Emitter} from "atom"
-import {Callbacks} from "./callbacks"
-import {ChildProcess} from "child_process"
-import {Transform, Readable} from "stream"
import byline = require("byline")
+import {ChildProcess} from "child_process"
+import {Readable, Transform} from "stream"
+import * as protocol from "typescript/lib/protocol"
+import {ReportBusyWhile} from "../main/pluginManager"
+import {Callbacks} from "./callbacks"
+import {
+ AllTSClientCommands,
+ CommandArg,
+ CommandRes,
+ CommandsWithResponse,
+} from "./commandArgsResponseMap"
import {EventTypes} from "./events"
// Set this to true to start tsserver with node --inspect
const INSPECT_TSSERVER = false
-type CommandArgResponseKeysWithArgs = {
- [K in keyof CommandArgResponseMap]: CommandRes extends void ? never : K
-}[keyof CommandArgResponseMap]
-
-const commandWithResponseMap: {readonly [K in CommandArgResponseKeysWithArgs]: true} = {
+const commandWithResponseMap: {readonly [K in CommandsWithResponse]: true} = {
compileOnSaveAffectedFileList: true,
compileOnSaveEmitFile: true,
completionEntryDetails: true,
@@ -35,126 +37,148 @@ const commandWithResponseMap: {readonly [K in CommandArgResponseKeysWithArgs]: t
navto: true,
getApplicableRefactors: true,
getEditsForRefactor: true,
- ping: true,
organizeImports: true,
+ signatureHelp: true,
}
const commandWithResponse = new Set(Object.keys(commandWithResponseMap))
+function isCommandWithResponse(command: AllTSClientCommands): command is CommandsWithResponse {
+ return commandWithResponse.has(command)
+}
+
export class TypescriptServiceClient {
/** Callbacks that are waiting for responses */
private readonly callbacks: Callbacks
- private readonly emitter = new Emitter<{}, EventTypes>()
+ private readonly emitter = new Emitter<
+ {
+ restarted: void
+ },
+ EventTypes
+ >()
private seq = 0
- private readonly serverPromise: Promise
- private running = false
+ private server?: ChildProcess
private lastStderrOutput = ""
-
- constructor(public tsServerPath: string, public version: string) {
- this.callbacks = new Callbacks(this.emitPendingRequests)
- this.serverPromise = this.startServer()
+ private lastStartAttempt?: number
+
+ // tslint:disable-next-line:member-ordering
+ public on = this.emitter.on.bind(this.emitter)
+
+ constructor(
+ public tsServerPath: string,
+ public version: string,
+ private reportBusyWhile: ReportBusyWhile,
+ ) {
+ this.callbacks = new Callbacks(this.reportBusyWhile)
+ this.server = this.startServer()
}
- public async execute(
+ public async execute(
command: T,
- args: CommandArg,
+ ...args: CommandArg
): Promise> {
- if (!this.running) {
+ if (!this.server) {
throw new Error("Server is not running")
}
- return this.sendRequest(await this.serverPromise, command, args)
+ const req = {
+ seq: this.seq++,
+ command,
+ arguments: args[0],
+ }
+
+ if (window.atom_typescript_debug) {
+ console.log("sending request", command, "with args", args)
+ }
+
+ const result = isCommandWithResponse(command)
+ ? this.callbacks.add(req.seq, command)
+ : (undefined as CommandRes)
+
+ try {
+ this.server.stdin.write(JSON.stringify(req) + "\n")
+ } catch (error) {
+ this.callbacks.error(req.seq, error as Error)
+ }
+ return result
}
- public on(name: T, listener: (result: EventTypes[T]) => void) {
- return this.emitter.on(name, listener)
+ public async restartServer() {
+ if (this.server) {
+ this.lastStartAttempt = undefined // reset auto-restart loop guard
+ const server = this.server
+ const graceTimer = setTimeout(() => server.kill(), 10000)
+ await this.execute("exit")
+ clearTimeout(graceTimer)
+ } else {
+ this.server = this.startServer()
+ this.emitter.emit("restarted", undefined)
+ }
}
private startServer() {
- return new Promise((resolve, reject) => {
- this.running = true
- if (window.atom_typescript_debug) {
- console.log("starting", this.tsServerPath)
- }
-
- const cp = startServer(this.tsServerPath)
+ if (window.atom_typescript_debug) {
+ console.log("starting", this.tsServerPath)
+ }
- const h = this.exitHandler(reject)
- if (!cp) {
- h(new Error("ChildProcess failed to start"))
- return
- }
+ this.lastStartAttempt = Date.now()
+ const cp = startServer(this.tsServerPath)
- cp.once("error", h)
- cp.once("exit", (code: number | null, signal: string | null) => {
- if (code !== null) h(new Error(`exited with code: ${code}`))
- else if (signal !== null) h(new Error(`terminated on signal: ${signal}`))
- })
+ if (!cp) throw new Error("ChildProcess failed to start")
- // Pipe both stdout and stderr appropriately
- messageStream(cp.stdout).on("data", this.onMessage)
- cp.stderr.on("data", data => {
- console.warn("tsserver stderr:", (this.lastStderrOutput = data.toString()))
- })
+ const h = this.exitHandler
+ cp.once("error", h)
+ cp.once("exit", (code: number | null, signal: string | null) => {
+ if (code === 0) h(new Error("Server stopped normally"), false)
+ else if (code !== null) h(new Error(`exited with code: ${code}`))
+ else if (signal !== null) h(new Error(`terminated on signal: ${signal}`))
+ })
- this.sendRequest(cp, "ping", undefined).then(() => resolve(cp), () => resolve(cp))
+ // Pipe both stdout and stderr appropriately
+ messageStream(cp.stdout).on("data", this.onMessage)
+ cp.stderr.on("data", data => {
+ console.warn("tsserver stderr:", (this.lastStderrOutput = data.toString()))
})
+ return cp
}
- private exitHandler = (reject: (err: Error) => void) => (err: Error) => {
- console.error("tsserver: ", err)
+ private exitHandler = (err: Error, report = true) => {
this.callbacks.rejectAll(err)
- this.emitter.dispose()
- reject(err)
- this.running = false
+ if (report) console.error("tsserver: ", err)
+ this.server = undefined
setImmediate(() => {
- let detail = err.message
- if (this.lastStderrOutput) {
- detail = `Last output from tsserver:\n${this.lastStderrOutput}\n\n${detail}`
+ if (report) {
+ let detail = err.message
+ if (this.lastStderrOutput) {
+ detail = `Last output from tsserver:\n${this.lastStderrOutput}\n\n${detail}`
+ }
+ atom.notifications.addError("TypeScript quit unexpectedly", {
+ detail,
+ stack: err.stack,
+ dismissable: true,
+ })
+ }
+ if (this.lastStartAttempt === undefined || Date.now() - this.lastStartAttempt > 5000) {
+ this.server = this.startServer()
+ this.emitter.emit("restarted", undefined)
+ } else {
+ atom.notifications.addWarning("Not restarting tsserver", {
+ detail: "Restarting too fast",
+ })
}
- atom.notifications.addError("TypeScript quit unexpectedly", {
- detail,
- stack: err.stack,
- dismissable: true,
- })
})
}
- private emitPendingRequests = (pending: string[]) => {
- this.emitter.emit("pendingRequestsChange", pending)
- }
-
private onMessage = (res: protocol.Response | protocol.Event) => {
if (res.type === "response") this.onResponse(res)
else this.onEvent(res)
}
private onResponse(res: protocol.Response) {
- const req = this.callbacks.remove(res.request_seq)
- if (req) {
- if (window.atom_typescript_debug) {
- console.log(
- "received response for",
- res.command,
- "in",
- Date.now() - req.started,
- "ms",
- "with data",
- res.body,
- )
- }
-
- if (res.success) {
- req.resolve(res)
- } else {
- req.reject(new Error(res.message))
- }
- } else {
- console.warn("unexpected response:", res)
- }
+ this.callbacks.resolve(res.request_seq, res)
}
private onEvent(res: protocol.Event) {
@@ -165,46 +189,10 @@ export class TypescriptServiceClient {
// tslint:disable-next-line:no-unsafe-any
if (res.body) this.emitter.emit(res.event as keyof EventTypes, res.body)
}
-
- private async sendRequest(
- cp: ChildProcess,
- command: T,
- args: CommandArg,
- ): Promise> {
- const expectResponse = commandWithResponse.has(command)
- const req = {
- seq: this.seq++,
- command,
- arguments: args,
- }
-
- if (window.atom_typescript_debug) {
- console.log("sending request", command, "with args", args)
- }
-
- setImmediate(() => {
- try {
- cp.stdin.write(JSON.stringify(req) + "\n")
- } catch (error) {
- const callback = this.callbacks.remove(req.seq)
- if (callback) {
- callback.reject(error as Error)
- } else {
- console.error(error)
- }
- }
- })
-
- if (expectResponse) {
- return this.callbacks.add(req.seq, command) as CommandRes
- } else {
- return undefined as CommandRes
- }
- }
}
function startServer(tsServerPath: string): ChildProcess | undefined {
- const locale = atom.config.get("atom-typescript.locale")
+ const locale = atom.config.get("atom-typescript").locale
const tsServerArgs: string[] = locale ? ["--locale", locale] : []
if (INSPECT_TSSERVER) {
return new BufferedProcess({
diff --git a/lib/client/clientResolver.ts b/lib/client/clientResolver.ts
index 84a29a0f8..49c6067f9 100644
--- a/lib/client/clientResolver.ts
+++ b/lib/client/clientResolver.ts
@@ -1,14 +1,16 @@
-import {TypescriptServiceClient as Client} from "./client"
+import {CompositeDisposable, Emitter} from "atom"
+import * as fs from "fs"
import * as path from "path"
import * as Resolve from "resolve"
import {
+ ConfigFileDiagnosticEventBody,
Diagnostic,
DiagnosticEventBody,
- ConfigFileDiagnosticEventBody,
} from "typescript/lib/protocol"
-import {Emitter} from "atom"
+import {ReportBusyWhile} from "../main/pluginManager"
+import {TypescriptServiceClient as Client} from "./client"
-type DiagnosticTypes = protocol.DiagnosticEventKind | "configFileDiag"
+export type DiagnosticTypes = protocol.DiagnosticEventKind | "configFileDiag"
interface DiagnosticsPayload {
diagnostics: Diagnostic[]
@@ -22,14 +24,8 @@ interface Binary {
pathToBin: string
}
-interface ClientRec {
- client: Client
- pending: string[]
-}
-
export interface EventTypes {
diagnostics: DiagnosticsPayload
- pendingRequestsChange: string[]
}
/**
@@ -37,56 +33,68 @@ export interface EventTypes {
* require("typescript") from the same source file would resolve.
*/
export class ClientResolver {
- public clients = new Map()
+ private clients = new Map>()
private emitter = new Emitter<{}, EventTypes>()
-
+ private subscriptions = new CompositeDisposable()
// This is just here so TypeScript can infer the types of the callbacks when using "on" method
- public on(event: T, callback: (result: EventTypes[T]) => void) {
- return this.emitter.on(event, callback)
+ // tslint:disable-next-line:member-ordering
+ public on = this.emitter.on.bind(this.emitter)
+
+ constructor(private reportBusyWhile: ReportBusyWhile) {}
+
+ public async restartAllServers() {
+ await Promise.all(Array.from(this.getAllClients()).map(client => client.restartServer()))
}
public async get(pFilePath: string): Promise {
const {pathToBin, version} = await resolveBinary(pFilePath, "tsserver")
+ const tsconfigPath = await resolveTsConfig(pFilePath)
- const clientRec = this.clients.get(pathToBin)
- if (clientRec) return clientRec.client
-
- const newClientRec: ClientRec = {
- client: new Client(pathToBin, version),
- pending: [],
- }
- this.clients.set(pathToBin, newClientRec)
-
- newClientRec.client.on("pendingRequestsChange", pending => {
- newClientRec.pending = pending
- this.emitter.emit("pendingRequestsChange", pending)
- })
-
- const diagnosticHandler = (type: DiagnosticTypes) => (
- result: DiagnosticEventBody | ConfigFileDiagnosticEventBody,
- ) => {
- const filePath = isConfDiagBody(result) ? result.configFile : result.file
-
- if (filePath) {
- this.emitter.emit("diagnostics", {
- type,
- serverPath: pathToBin,
- filePath,
- diagnostics: result.diagnostics,
- })
- }
+ let tsconfigMap = this.clients.get(pathToBin)
+ if (!tsconfigMap) {
+ tsconfigMap = new Map()
+ this.clients.set(pathToBin, tsconfigMap)
}
+ const client = tsconfigMap.get(tsconfigPath)
+ if (client) return client
- newClientRec.client.on("configFileDiag", diagnosticHandler("configFileDiag"))
- newClientRec.client.on("semanticDiag", diagnosticHandler("semanticDiag"))
- newClientRec.client.on("syntaxDiag", diagnosticHandler("syntaxDiag"))
- newClientRec.client.on("suggestionDiag", diagnosticHandler("suggestionDiag"))
+ const newClient = new Client(pathToBin, version, this.reportBusyWhile)
+ tsconfigMap.set(tsconfigPath, newClient)
- return newClientRec.client
+ this.subscriptions.add(
+ newClient.on("configFileDiag", this.diagnosticHandler(pathToBin, "configFileDiag")),
+ newClient.on("semanticDiag", this.diagnosticHandler(pathToBin, "semanticDiag")),
+ newClient.on("syntaxDiag", this.diagnosticHandler(pathToBin, "syntaxDiag")),
+ newClient.on("suggestionDiag", this.diagnosticHandler(pathToBin, "suggestionDiag")),
+ )
+
+ return newClient
}
public dispose() {
this.emitter.dispose()
+ this.subscriptions.dispose()
+ }
+
+ private *getAllClients() {
+ for (const tsconfigMap of this.clients.values()) {
+ yield* tsconfigMap.values()
+ }
+ }
+
+ private diagnosticHandler = (serverPath: string, type: DiagnosticTypes) => (
+ result: DiagnosticEventBody | ConfigFileDiagnosticEventBody,
+ ) => {
+ const filePath = isConfDiagBody(result) ? result.configFile : result.file
+
+ if (filePath) {
+ this.emitter.emit("diagnostics", {
+ type,
+ serverPath,
+ filePath,
+ diagnostics: result.diagnostics,
+ })
+ }
}
}
@@ -122,6 +130,24 @@ export async function resolveBinary(sourcePath: string, binName: string): Promis
}
}
+async function fsexists(filePath: string): Promise {
+ return new Promise(resolve => {
+ fs.exists(filePath, resolve)
+ })
+}
+
+async function resolveTsConfig(sourcePath: string): Promise {
+ let parentDir = path.dirname(sourcePath)
+ let tsconfigPath = path.join(parentDir, "tsconfig.json")
+ while (!(await fsexists(tsconfigPath))) {
+ const oldParentDir = parentDir
+ parentDir = path.dirname(parentDir)
+ if (oldParentDir === parentDir) return undefined
+ tsconfigPath = path.join(parentDir, "tsconfig.json")
+ }
+ return tsconfigPath
+}
+
function isConfDiagBody(body: any): body is ConfigFileDiagnosticEventBody {
// tslint:disable-next-line:no-unsafe-any
return body && body.triggerFile && body.configFile
diff --git a/lib/client/commandArgsResponseMap.d.ts b/lib/client/commandArgsResponseMap.d.ts
index 587681d98..27c240b1e 100644
--- a/lib/client/commandArgsResponseMap.d.ts
+++ b/lib/client/commandArgsResponseMap.d.ts
@@ -11,7 +11,7 @@ export interface CommandArgResponseMap {
definition: (x: p.FileLocationRequestArgs) => p.DefinitionResponse
format: (x: p.FormatRequestArgs) => p.FormatResponse
getCodeFixes: (x: p.CodeFixRequestArgs) => p.GetCodeFixesResponse
- getSupportedCodeFixes: (x: undefined) => p.GetSupportedCodeFixesResponse
+ getSupportedCodeFixes: () => p.GetSupportedCodeFixesResponse
geterr: (x: p.GeterrRequestArgs) => void
geterrForProject: (x: p.GeterrForProjectRequestArgs) => void
occurrences: (x: p.FileLocationRequestArgs) => p.OccurrencesResponse
@@ -24,16 +24,23 @@ export interface CommandArgResponseMap {
saveto: (x: p.SavetoRequestArgs) => void
navtree: (x: p.FileRequestArgs) => p.NavTreeResponse
navto: (x: p.NavtoRequestArgs) => p.NavtoResponse
- reloadProjects: (x: undefined) => void
+ reloadProjects: () => void
getApplicableRefactors: (
x: p.GetApplicableRefactorsRequestArgs,
) => p.GetApplicableRefactorsResponse
getEditsForRefactor: (x: p.GetEditsForRefactorRequestArgs) => p.GetEditsForRefactorResponse
- ping: (x: undefined) => null
organizeImports: (x: p.OrganizeImportsRequestArgs) => p.OrganizeImportsResponse
+ exit: () => void
+ signatureHelp: (x: p.SignatureHelpRequestArgs) => p.SignatureHelpResponse
}
-export type ArgType any> = T extends (x: infer U) => any ? U : never
+export type AllTSClientCommands = keyof CommandArgResponseMap
-export type CommandArg = ArgType
-export type CommandRes = ReturnType
+export type CommandsWithResponse = {
+ [K in AllTSClientCommands]: CommandRes extends void ? never : K
+}[AllTSClientCommands]
+
+export type ArgType any> = T extends (...x: infer U) => any ? U : never
+
+export type CommandArg = ArgType
+export type CommandRes = ReturnType
diff --git a/lib/client/events.d.ts b/lib/client/events.d.ts
index d89512465..efc9eb7be 100644
--- a/lib/client/events.d.ts
+++ b/lib/client/events.d.ts
@@ -1,6 +1,4 @@
import * as p from "typescript/lib/protocol"
export type EventTypes = {[T in p.DiagnosticEventKind]: p.DiagnosticEventBody} & {
- pendingRequestsChange: string[]
-} & {
configFileDiag: p.ConfigFileDiagnosticEventBody
}
diff --git a/lib/client/index.ts b/lib/client/index.ts
new file mode 100644
index 000000000..2ca686685
--- /dev/null
+++ b/lib/client/index.ts
@@ -0,0 +1,7 @@
+export {ClientResolver, resolveBinary} from "./clientResolver"
+
+import {TypescriptServiceClient} from "./client"
+
+export {TypescriptServiceClient as TSClient}
+
+export type GetClientFunction = (filePath: string) => Promise
diff --git a/lib/main/atom-ide/codeActionsProvider.ts b/lib/main/atom-ide/codeActionsProvider.ts
new file mode 100644
index 000000000..c1c3b4ffe
--- /dev/null
+++ b/lib/main/atom-ide/codeActionsProvider.ts
@@ -0,0 +1,25 @@
+import * as Atom from "atom"
+import {CodeAction, CodeActionProvider} from "atom/ide"
+import {Message} from "atom/linter"
+import {CodefixProvider} from "../atom/codefix/codefixProvider"
+import {typeScriptScopes} from "../atom/utils"
+
+export function getCodeActionsProvider(codefixProvider: CodefixProvider): CodeActionProvider {
+ return {
+ grammarScopes: typeScriptScopes(),
+ priority: 0,
+ async getCodeActions(
+ textEditor: Atom.TextEditor,
+ range: Atom.Range,
+ _diagnostics: Message[],
+ ): Promise {
+ return (await codefixProvider.runCodeFix(textEditor, range.start)).map(fix => ({
+ getTitle: async () => fix.description,
+ dispose: () => {},
+ apply: async () => {
+ await codefixProvider.applyFix(fix)
+ },
+ }))
+ },
+ }
+}
diff --git a/lib/main/atom-ide/codeHighlightProvider.ts b/lib/main/atom-ide/codeHighlightProvider.ts
new file mode 100644
index 000000000..627336a09
--- /dev/null
+++ b/lib/main/atom-ide/codeHighlightProvider.ts
@@ -0,0 +1,24 @@
+import {CodeHighlightProvider} from "atom/ide"
+import {GetClientFunction} from "../../client"
+import {
+ getFilePathPosition,
+ isTypescriptEditorWithPath,
+ spanToRange,
+ typeScriptScopes,
+} from "../atom/utils"
+
+export function getCodeHighlightProvider(getClient: GetClientFunction): CodeHighlightProvider {
+ return {
+ grammarScopes: typeScriptScopes(),
+ priority: 100,
+ async highlight(editor, position) {
+ if (!isTypescriptEditorWithPath(editor)) return
+ const location = getFilePathPosition(editor, position)
+ if (!location) return
+ const client = await getClient(location.file)
+ const result = await client.execute("occurrences", location)
+ if (!result.body) return
+ return result.body.map(spanToRange)
+ },
+ }
+}
diff --git a/lib/main/atom-ide/datatipProvider.tsx b/lib/main/atom-ide/datatipProvider.tsx
new file mode 100644
index 000000000..b338bfd14
--- /dev/null
+++ b/lib/main/atom-ide/datatipProvider.tsx
@@ -0,0 +1,118 @@
+import * as Atom from "atom"
+import {Datatip, DatatipProvider} from "atom/ide"
+import {GetClientFunction} from "../../client"
+import {locationToPoint, typeScriptScopes} from "../atom/utils"
+
+// Note: a horrible hack to avoid dependency on React
+const REACT_ELEMENT_SYMBOL = Symbol.for("react.element")
+const etch = {
+ dom(type: string, props: any, ...children: any[]): any {
+ if (children.length > 0) {
+ return {
+ $$typeof: REACT_ELEMENT_SYMBOL,
+ type,
+ ref: null,
+ props: {...props, children},
+ }
+ } else {
+ return {
+ $$typeof: REACT_ELEMENT_SYMBOL,
+ type,
+ ref: null,
+ props: {...props},
+ }
+ }
+ },
+}
+
+export class TSDatatipProvider implements DatatipProvider {
+ public readonly providerName = "TypeScript type tooltips"
+ public readonly priority = 100
+ public readonly grammarScopes = typeScriptScopes()
+
+ constructor(private getClient: GetClientFunction) {}
+
+ public async datatip(
+ editor: Atom.TextEditor,
+ bufferPt: Atom.Point,
+ ): Promise {
+ try {
+ const filePath = editor.getPath()
+ if (filePath === undefined) return
+ const client = await this.getClient(filePath)
+ const result = await client.execute("quickinfo", {
+ file: filePath,
+ line: bufferPt.row + 1,
+ offset: bufferPt.column + 1,
+ })
+ const data = result.body!
+ const code = await highlightCode(data.displayString.replace(/^\(.+?\)\s+/, ""))
+ const kind = (
+
+ {data.kind}
+ {data.kindModifiers ? ({data.kindModifiers}) : null}
+
+ )
+ const docs = {data.documentation}
+ return {
+ component: () => (
+
+ {code}
+ {kind}
+ {docs}
+
+ ),
+ range: Atom.Range.fromObject([locationToPoint(data.start), locationToPoint(data.end)]),
+ }
+ } catch (e) {
+ return
+ }
+ }
+}
+
+async function highlightCode(code: string) {
+ const fontFamily = atom.config.get("editor.fontFamily")
+
+ const ed = new Atom.TextEditor({
+ readonly: true,
+ keyboardInputEnabled: false,
+ showInvisibles: false,
+ tabLength: atom.config.get("editor.tabLength"),
+ })
+ const el = atom.views.getView(ed)
+ try {
+ el.setUpdatedSynchronously(true)
+ el.style.pointerEvents = "none"
+ el.style.position = "absolute"
+ el.style.width = "0px"
+ el.style.height = "1px"
+ atom.views.getView(atom.workspace).appendChild(el)
+ atom.grammars.assignLanguageMode(ed.getBuffer(), "source.ts")
+ ed.setText(code.replace(/\r?\n$/, ""))
+ await editorTokenized(ed)
+ const html = Array.from(el.querySelectorAll(".line:not(.dummy)"))
+ return (
+ x.innerHTML).join("\n")}}
+ />
+ )
+ } finally {
+ el.remove()
+ }
+}
+
+async function editorTokenized(editor: Atom.TextEditor) {
+ return new Promise(resolve => {
+ if (editor.getBuffer().getLanguageMode().fullyTokenized) {
+ resolve()
+ } else {
+ const disp = editor.onDidTokenize(() => {
+ disp.dispose()
+ resolve()
+ })
+ }
+ })
+}
diff --git a/lib/main/atom-ide/definitionsProvider.ts b/lib/main/atom-ide/definitionsProvider.ts
new file mode 100644
index 000000000..36740d714
--- /dev/null
+++ b/lib/main/atom-ide/definitionsProvider.ts
@@ -0,0 +1,41 @@
+import {Definition, DefinitionProvider} from "atom/ide"
+import {FileSpan} from "typescript/lib/protocol"
+import {GetClientFunction} from "../../client"
+import {
+ getFilePathPosition,
+ isTypescriptEditorWithPath,
+ spanToRange,
+ typeScriptScopes,
+} from "../atom/utils"
+
+export function getDefinitionProvider(getClient: GetClientFunction): DefinitionProvider {
+ return {
+ priority: 0,
+ grammarScopes: typeScriptScopes(),
+ wordRegExp: /([A-Za-z0-9_])+|['"`](\\.|[^'"`\\\\])*['"`]/g,
+ async getDefinition(editor, position) {
+ if (!isTypescriptEditorWithPath(editor)) return
+ const location = getFilePathPosition(editor, position)
+ if (!location) return
+ const client = await getClient(location.file)
+ const result = await client.execute("definition", location)
+ if (!result.body) return
+ if (result.body.length === 0) return
+
+ return {
+ queryRange: undefined,
+ definitions: result.body.map(fileSpanToDefinition),
+ }
+ },
+ }
+}
+
+function fileSpanToDefinition(span: FileSpan): Definition {
+ const range = spanToRange(span)
+ return {
+ path: span.file,
+ position: range.start,
+ range,
+ language: "TypeScript",
+ }
+}
diff --git a/lib/main/atom-ide/findReferencesProvider.ts b/lib/main/atom-ide/findReferencesProvider.ts
new file mode 100644
index 000000000..64278bb40
--- /dev/null
+++ b/lib/main/atom-ide/findReferencesProvider.ts
@@ -0,0 +1,33 @@
+import {FindReferencesProvider, Reference} from "atom/ide"
+import {GetClientFunction} from "../../client"
+import {getFilePathPosition, isTypescriptEditorWithPath, locationsToRange} from "../atom/utils"
+
+export function getFindReferencesProvider(getClient: GetClientFunction): FindReferencesProvider {
+ return {
+ async isEditorSupported(editor) {
+ return isTypescriptEditorWithPath(editor)
+ },
+ async findReferences(editor, position) {
+ const location = getFilePathPosition(editor, position)
+ if (!location) return
+
+ const client = await getClient(location.file)
+ const result = await client.execute("references", location)
+ if (!result.body) return
+ return {
+ type: "data",
+ baseUri: location.file,
+ referencedSymbolName: result.body.symbolDisplayString,
+ references: result.body.refs.map(refTsToIde),
+ }
+ },
+ }
+}
+
+function refTsToIde(ref: protocol.ReferencesResponseItem): Reference {
+ return {
+ uri: ref.file,
+ range: locationsToRange(ref.start, ref.end),
+ name: undefined,
+ }
+}
diff --git a/lib/main/atom-ide/hyperclickProvider.ts b/lib/main/atom-ide/hyperclickProvider.ts
new file mode 100644
index 000000000..717a71f72
--- /dev/null
+++ b/lib/main/atom-ide/hyperclickProvider.ts
@@ -0,0 +1,36 @@
+import * as Atom from "atom"
+import {HyperclickProvider} from "atom/ide"
+import {GetClientFunction} from "../../client"
+import {handleDefinitionResult} from "../atom/commands/goToDeclaration"
+import {Dependencies} from "../atom/commands/registry"
+import {isTypescriptEditorWithPath} from "../atom/utils"
+
+export function getHyperclickProvider(
+ getClient: GetClientFunction,
+ histGoForward: Dependencies["histGoForward"],
+): HyperclickProvider {
+ return {
+ priority: 0,
+ providerName: "typescript-hyperclick-provider",
+ wordRegExp: /([A-Za-z0-9_])+|['"`](\\.|[^'"`\\\\])*['"`]/g,
+ async getSuggestionForWord(editor: Atom.TextEditor, _text: string, range: Atom.Range) {
+ if (!isTypescriptEditorWithPath(editor)) return
+ const filePath = editor.getPath()
+ if (filePath === undefined) return
+
+ return {
+ range,
+ callback: async () => {
+ const location = {
+ file: filePath,
+ line: range.start.row + 1,
+ offset: range.start.column + 1,
+ }
+ const client = await getClient(location.file)
+ const result = await client.execute("definition", location)
+ await handleDefinitionResult(result, editor, histGoForward)
+ },
+ }
+ },
+ }
+}
diff --git a/lib/main/atom-ide/outlineProvider.ts b/lib/main/atom-ide/outlineProvider.ts
new file mode 100644
index 000000000..032a231f2
--- /dev/null
+++ b/lib/main/atom-ide/outlineProvider.ts
@@ -0,0 +1,91 @@
+import {OutlineProvider, OutlineTree, OutlineTreeKind} from "atom/ide"
+import {NavigationTree, ScriptElementKind} from "typescript/lib/protocol"
+import {GetClientFunction} from "../../client"
+import {spanToRange, typeScriptScopes} from "../atom/utils"
+
+export function getOutlineProvider(getClient: GetClientFunction): OutlineProvider {
+ return {
+ name: "Atom-TypeScript",
+ grammarScopes: typeScriptScopes(),
+ priority: 100,
+ updateOnEdit: true,
+ async getOutline(editor) {
+ const filePath = editor.getPath()
+ if (filePath === undefined) return
+ const client = await getClient(filePath)
+ const navTreeResult = await client.execute("navtree", {file: filePath})
+ const navTree = navTreeResult.body
+ if (!navTree) return
+ return {outlineTrees: [navTreeToOutline(navTree)]}
+ },
+ }
+}
+
+function navTreeToOutline(navTree: NavigationTree): OutlineTree {
+ const ranges = navTree.spans.map(spanToRange)
+ const range = ranges.reduce((prev, cur) => cur.union(prev))
+ return {
+ kind: kindMap[navTree.kind],
+ plainText: navTree.text,
+ startPosition: range.start,
+ endPosition: range.end,
+ landingPosition: navTree.nameSpan ? spanToRange(navTree.nameSpan).start : undefined,
+ children: navTree.childItems ? navTree.childItems.map(navTreeToOutline) : [],
+ }
+}
+
+const kindMap: {[key in ScriptElementKind]: OutlineTreeKind | undefined} = {
+ // | "file"
+ directory: "file",
+ // | "module"
+ module: "module",
+ "external module name": "module",
+ // | "namespace"
+ // | "package"
+ // | "class"
+ class: "class",
+ "local class": "class",
+ // | "method"
+ method: "method",
+ // | "property"
+ property: "property",
+ getter: "property",
+ setter: "property",
+ // | "field"
+ "JSX attribute": "field",
+ // | "constructor"
+ constructor: "constructor",
+ // | "enum"
+ enum: "enum",
+ // | "interface"
+ interface: "interface",
+ type: "interface",
+ // | "function"
+ function: "function",
+ "local function": "function",
+ // | "variable"
+ label: "variable",
+ alias: "variable",
+ var: "variable",
+ let: "variable",
+ "local var": "variable",
+ parameter: "variable",
+ // | "constant"
+ "enum member": "constant",
+ const: "constant",
+ // | "string"
+ string: "string",
+ // | "number"
+ // | "boolean"
+ // | "array"
+ // ???
+ "": undefined,
+ warning: undefined,
+ keyword: undefined,
+ script: undefined,
+ call: undefined,
+ index: undefined,
+ construct: undefined,
+ "type parameter": undefined,
+ "primitive type": undefined,
+}
diff --git a/lib/main/atom-ide/sigHelpProvider.ts b/lib/main/atom-ide/sigHelpProvider.ts
new file mode 100644
index 000000000..5d8449714
--- /dev/null
+++ b/lib/main/atom-ide/sigHelpProvider.ts
@@ -0,0 +1,42 @@
+import {Point, TextEditor} from "atom"
+import {SignatureHelp, SignatureHelpProvider} from "atom/ide"
+import {GetClientFunction} from "../../client"
+import {signatureHelpItemToSignature, typeScriptScopes} from "../atom/utils"
+import {FlushTypescriptBuffer} from "../pluginManager"
+
+export class TSSigHelpProvider implements SignatureHelpProvider {
+ public triggerCharacters = new Set
(["(", ","])
+ public grammarScopes = typeScriptScopes()
+ public priority = 100
+
+ constructor(
+ private getClient: GetClientFunction,
+ private flushTypescriptBuffer: FlushTypescriptBuffer,
+ ) {}
+
+ public async getSignatureHelp(
+ editor: TextEditor,
+ pos: Point,
+ ): Promise {
+ try {
+ const filePath = editor.getPath()
+ if (filePath === undefined) return
+ const client = await this.getClient(filePath)
+ await this.flushTypescriptBuffer(filePath)
+ const result = await client.execute("signatureHelp", {
+ file: filePath,
+ line: pos.row + 1,
+ offset: pos.column + 1,
+ })
+ const data = result.body!
+ const signatures = data.items.map(signatureHelpItemToSignature)
+ return {
+ signatures,
+ activeParameter: data.argumentIndex,
+ activeSignature: data.selectedItemIndex,
+ }
+ } catch (e) {
+ return
+ }
+ }
+}
diff --git a/lib/main/atom/autoCompleteProvider.ts b/lib/main/atom/autoCompleteProvider.ts
index bd36f8e32..90a524bc2 100644
--- a/lib/main/atom/autoCompleteProvider.ts
+++ b/lib/main/atom/autoCompleteProvider.ts
@@ -1,11 +1,10 @@
// more: https://github.com/atom-community/autocomplete-plus/wiki/Provider-API
-import {ClientResolver} from "../../client/clientResolver"
-import {FileLocationQuery, typeScriptScopes, spanToRange} from "./utils"
-import * as ACP from "atom/autocomplete-plus"
-import {TypescriptServiceClient} from "../../client/client"
import * as Atom from "atom"
+import * as ACP from "atom/autocomplete-plus"
import * as fuzzaldrin from "fuzzaldrin"
-import {WithTypescriptBuffer} from "../pluginManager"
+import {GetClientFunction, TSClient} from "../../client"
+import {FlushTypescriptBuffer} from "../pluginManager"
+import {FileLocationQuery, spanToRange, typeScriptScopes} from "./utils"
const importPathScopes = ["meta.import", "meta.import-equals", "triple-slash-directive"]
@@ -14,10 +13,6 @@ type SuggestionWithDetails = ACP.TextSuggestion & {
replacementRange?: Atom.Range
}
-interface Options {
- withTypescriptBuffer: WithTypescriptBuffer
-}
-
export class AutocompleteProvider implements ACP.AutocompleteProvider {
public selector = typeScriptScopes()
.map(x => (x.includes(".") ? `.${x}` : x))
@@ -26,13 +21,12 @@ export class AutocompleteProvider implements ACP.AutocompleteProvider {
public disableForSelector = ".comment"
public inclusionPriority = 3
- public suggestionPriority = atom.config.get("atom-typescript.autocompletionSuggestionPriority")
+ public suggestionPriority = atom.config.get("atom-typescript").autocompletionSuggestionPriority
public excludeLowerPriority = false
- private clientResolver: ClientResolver
private lastSuggestions?: {
// Client used to get the suggestions
- client: TypescriptServiceClient
+ client: TSClient
// File and position for the suggestions
location: FileLocationQuery
@@ -44,12 +38,10 @@ export class AutocompleteProvider implements ACP.AutocompleteProvider {
suggestions: SuggestionWithDetails[]
}
- private opts: Options
-
- constructor(clientResolver: ClientResolver, opts: Options) {
- this.clientResolver = clientResolver
- this.opts = opts
- }
+ constructor(
+ private getClient: GetClientFunction,
+ private flushTypescriptBuffer: FlushTypescriptBuffer,
+ ) {}
public async getSuggestions(opts: ACP.SuggestionsRequestedEvent): Promise {
const location = getLocationQuery(opts)
@@ -85,9 +77,7 @@ export class AutocompleteProvider implements ACP.AutocompleteProvider {
}
// Flush any pending changes for this buffer to get up to date completions
- await this.opts.withTypescriptBuffer(location.file, async buffer => {
- await buffer.flush()
- })
+ await this.flushTypescriptBuffer(location.file)
try {
let suggestions = await this.getSuggestionsWithCache(prefix, location, opts.activatedManually)
@@ -164,7 +154,7 @@ export class AutocompleteProvider implements ACP.AutocompleteProvider {
}
}
- const client = await this.clientResolver.get(location.file)
+ const client = await this.getClient(location.file)
const completions = await client.execute("completions", {
prefix,
includeExternalModuleExports: false,
@@ -245,35 +235,61 @@ function completionEntryToSuggestion(entry: protocol.CompletionEntry): Suggestio
text: entry.insertText !== undefined ? entry.insertText : entry.name,
leftLabel: entry.kind,
replacementRange: entry.replacementSpan ? spanToRange(entry.replacementSpan) : undefined,
- type: kindToType(entry.kind),
+ type: kindMap[entry.kind],
}
}
-/** See types :
+/** From :
* https://github.com/atom-community/autocomplete-plus/pull/334#issuecomment-85697409
*/
-export function kindToType(kind: string) {
- // variable, constant, property, value, method, function, class, type, keyword, tag, snippet, import, require
- switch (kind) {
- case "const":
- return "constant"
- case "interface":
- return "type"
- case "identifier":
- return "variable"
- case "local function":
- return "function"
- case "local var":
- return "variable"
- case "let":
- case "var":
- case "parameter":
- return "variable"
- case "alias":
- return "import"
- case "type parameter":
- return "type"
- default:
- return kind.split(" ")[0]
- }
+type ACPCompletionType =
+ | "variable"
+ | "constant"
+ | "property"
+ | "value"
+ | "method"
+ | "function"
+ | "class"
+ | "type"
+ | "keyword"
+ | "tag"
+ | "import"
+ | "require"
+ | "snippet"
+
+const kindMap: {[key in protocol.ScriptElementKind]: ACPCompletionType | undefined} = {
+ directory: "require",
+ module: "import",
+ "external module name": "import",
+ class: "class",
+ "local class": "class",
+ method: "method",
+ property: "property",
+ getter: "property",
+ setter: "property",
+ "JSX attribute": "property",
+ constructor: "method",
+ enum: "type",
+ interface: "type",
+ type: "type",
+ "type parameter": "type",
+ "primitive type": "type",
+ function: "function",
+ "local function": "function",
+ label: "variable",
+ alias: "import",
+ var: "variable",
+ let: "variable",
+ "local var": "variable",
+ parameter: "variable",
+ "enum member": "constant",
+ const: "constant",
+ string: "value",
+ keyword: "keyword",
+ "": undefined,
+ warning: undefined,
+ script: undefined,
+ call: undefined,
+ index: undefined,
+ construct: undefined,
}
diff --git a/lib/main/atom/codefix/codeActionsProvider.ts b/lib/main/atom/codefix/codeActionsProvider.ts
deleted file mode 100644
index 5d4b0429b..000000000
--- a/lib/main/atom/codefix/codeActionsProvider.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import * as Atom from "atom"
-import {CodefixProvider} from "./codefixProvider"
-import {typeScriptScopes} from "../utils"
-
-export interface Message {
- filePath: string
- range?: Atom.Range
- // this interface is rater obviously incomplete
-}
-
-export interface CodeAction {
- apply(): Promise
- getTitle(): Promise
- dispose(): void
-}
-
-export interface CodeActionProvider {
- grammarScopes: ReadonlyArray
- priority: number
- getCodeActions(
- editor: Atom.TextEditor,
- range: Atom.Range,
- diagnostics: Message[],
- ): Promise
-}
-
-export class CodeActionsProvider implements CodeActionProvider {
- public grammarScopes = typeScriptScopes()
- public priority = 0
-
- constructor(private codefixProvider: CodefixProvider) {}
-
- public async getCodeActions(
- textEditor: Atom.TextEditor,
- range: Atom.Range,
- _diagnostics: Message[],
- ): Promise {
- return (await this.codefixProvider.runCodeFix(textEditor, range.start)).map(fix => ({
- getTitle: async () => fix.description,
- dispose: () => {},
- apply: async () => {
- await this.codefixProvider.applyFix(fix)
- },
- }))
- }
-}
diff --git a/lib/main/atom/codefix/codefixProvider.ts b/lib/main/atom/codefix/codefixProvider.ts
index c09078edd..b8b4b918b 100644
--- a/lib/main/atom/codefix/codefixProvider.ts
+++ b/lib/main/atom/codefix/codefixProvider.ts
@@ -1,12 +1,11 @@
import * as Atom from "atom"
-import {ClientResolver} from "../../../client/clientResolver"
+import {ClientResolver, TSClient} from "../../../client"
import {ErrorPusher} from "../../errorPusher"
-import {pointToLocation} from "../utils"
-import {TypescriptServiceClient} from "../../../client/client"
import {ApplyEdits} from "../../pluginManager"
+import {spanToRange} from "../utils"
export class CodefixProvider {
- private supportedFixes: WeakMap> = new WeakMap()
+ private supportedFixes: WeakMap> = new WeakMap()
constructor(
private clientResolver: ClientResolver,
@@ -14,9 +13,23 @@ export class CodefixProvider {
private applyEdits: ApplyEdits,
) {}
+ public async getFixableRanges(textEditor: Atom.TextEditor, range: Atom.Range) {
+ const filePath = textEditor.getPath()
+ if (filePath === undefined) return []
+ const errors = this.errorPusher.getErrorsInRange(filePath, range)
+ const client = await this.clientResolver.get(filePath)
+ const supportedCodes = await this.getSupportedFixes(client)
+
+ const ranges = Array.from(errors)
+ .filter(error => error.code !== undefined && supportedCodes.has(error.code))
+ .map(error => spanToRange(error))
+
+ return ranges
+ }
+
public async runCodeFix(
textEditor: Atom.TextEditor,
- bufferPosition: Atom.PointLike,
+ bufferPosition: Atom.Point,
): Promise {
const filePath = textEditor.getPath()
@@ -25,8 +38,7 @@ export class CodefixProvider {
const client = await this.clientResolver.get(filePath)
const supportedCodes = await this.getSupportedFixes(client)
- const requests = this.errorPusher
- .getErrorsAt(filePath, pointToLocation(bufferPosition))
+ const requests = Array.from(this.errorPusher.getErrorsAt(filePath, bufferPosition))
.filter(error => error.code !== undefined && supportedCodes.has(error.code))
.map(error =>
client.execute("getCodeFixes", {
@@ -61,13 +73,13 @@ export class CodefixProvider {
// NOOP
}
- private async getSupportedFixes(client: TypescriptServiceClient) {
+ private async getSupportedFixes(client: TSClient) {
let codes = this.supportedFixes.get(client)
if (codes) {
return codes
}
- const result = await client.execute("getSupportedCodeFixes", undefined)
+ const result = await client.execute("getSupportedCodeFixes")
if (!result.body) {
throw new Error("No code fixes are supported")
diff --git a/lib/main/atom/codefix/index.ts b/lib/main/atom/codefix/index.ts
index e0ffa8b5d..e61327805 100644
--- a/lib/main/atom/codefix/index.ts
+++ b/lib/main/atom/codefix/index.ts
@@ -1,3 +1 @@
-export {CodeActionsProvider} from "./codeActionsProvider"
-export {IntentionsProvider} from "./intentionsProvider"
export {CodefixProvider} from "./codefixProvider"
diff --git a/lib/main/atom/codefix/intentionsProvider.ts b/lib/main/atom/codefix/intentionsProvider.ts
index 6f26e765e..d483bbdf8 100644
--- a/lib/main/atom/codefix/intentionsProvider.ts
+++ b/lib/main/atom/codefix/intentionsProvider.ts
@@ -1,4 +1,5 @@
import * as Atom from "atom"
+import {handlePromise} from "../../../utils"
import {CodefixProvider} from "./codefixProvider"
interface Intention {
@@ -9,31 +10,69 @@ interface Intention {
selected: () => void
}
+interface IntentionHighlight {
+ range: Atom.Range
+ created: (args: CreatedCallbackArgs) => void
+}
+
+interface CreatedCallbackArgs {
+ textEditor: Atom.TextEditor
+ element: HTMLElement
+ marker: Atom.DisplayMarker
+ matchedText: string
+}
+
interface IntentionsProviderInterface {
grammarScopes: string[]
getIntentions: (opts: GetIntentionsOptions) => Intention[] | Promise
}
+interface IntentionsHighlightsProviderInterface {
+ grammarScopes: string[]
+ getIntentions: (
+ opts: GetIntentionsHighlightsOptions,
+ ) => IntentionHighlight[] | Promise
+}
+
interface GetIntentionsOptions {
bufferPosition: Atom.Point
textEditor: Atom.TextEditor
}
-export class IntentionsProvider implements IntentionsProviderInterface {
- public grammarScopes = ["*"]
+interface GetIntentionsHighlightsOptions {
+ visibleRange: Atom.Range
+ textEditor: Atom.TextEditor
+}
- constructor(private codefixProvider: CodefixProvider) {}
+export function getIntentionsProvider(
+ codefixProvider: CodefixProvider,
+): IntentionsProviderInterface {
+ return {
+ grammarScopes: ["*"],
+ async getIntentions({bufferPosition, textEditor}) {
+ return (await codefixProvider.runCodeFix(textEditor, bufferPosition)).map(fix => ({
+ priority: 100,
+ title: fix.description,
+ selected: () => {
+ handlePromise(codefixProvider.applyFix(fix))
+ },
+ }))
+ },
+ }
+}
- public async getIntentions({
- bufferPosition,
- textEditor,
- }: GetIntentionsOptions): Promise {
- return (await this.codefixProvider.runCodeFix(textEditor, bufferPosition)).map(fix => ({
- priority: 100,
- title: fix.description,
- selected: () => {
- this.codefixProvider.applyFix(fix)
- },
- }))
+export function getIntentionsHighlightsProvider(
+ codefixProvider: CodefixProvider,
+): IntentionsHighlightsProviderInterface {
+ return {
+ grammarScopes: ["*"],
+ async getIntentions({visibleRange, textEditor}) {
+ return (await codefixProvider.getFixableRanges(textEditor, visibleRange)).map(range => ({
+ range,
+ created: (_opts: CreatedCallbackArgs) => {
+ // NOOP
+ },
+ }))
+ },
}
}
diff --git a/lib/main/atom/commands/build.ts b/lib/main/atom/commands/build.ts
index 0af4b8197..5d0fb36be 100644
--- a/lib/main/atom/commands/build.ts
+++ b/lib/main/atom/commands/build.ts
@@ -7,6 +7,8 @@ addCommand("atom-text-editor", "typescript:build", deps => ({
if (file === undefined) return
const client = await deps.getClient(file)
+ deps.reportBuildStatus(undefined)
+
const projectInfo = await client.execute("projectInfo", {
file,
needFileNameList: true,
@@ -15,11 +17,10 @@ addCommand("atom-text-editor", "typescript:build", deps => ({
const files = new Set(projectInfo.body!.fileNames)
files.delete(projectInfo.body!.configFileName)
let filesSoFar = 0
- const stp = deps.getStatusPanel()
const promises = [...files.values()].map(f =>
_finally(client.execute("compileOnSaveEmitFile", {file: f, forced: true}), () => {
- stp.update({progress: {max: files.size, value: (filesSoFar += 1)}})
- if (files.size <= filesSoFar) stp.update({progress: undefined})
+ filesSoFar += 1
+ deps.reportProgress({max: files.size, value: filesSoFar})
}),
)
@@ -28,11 +29,11 @@ addCommand("atom-text-editor", "typescript:build", deps => ({
if (results.some(result => result.body === false)) {
throw new Error("Emit failed")
}
- stp.update({buildStatus: {success: true}})
+ deps.reportBuildStatus({success: true})
} catch (error) {
const err = error as Error
console.error(err)
- stp.update({buildStatus: {success: false, message: err.message}})
+ deps.reportBuildStatus({success: false, message: err.message})
}
},
}))
diff --git a/lib/main/atom/commands/checkAllFiles.ts b/lib/main/atom/commands/checkAllFiles.ts
index fc65066c0..0d5e88941 100644
--- a/lib/main/atom/commands/checkAllFiles.ts
+++ b/lib/main/atom/commands/checkAllFiles.ts
@@ -23,16 +23,14 @@ addCommand("atom-text-editor", "typescript:check-all-files", deps => ({
const disp = client.on("syntaxDiag", evt => {
if (cancelTimeout !== undefined) window.clearTimeout(cancelTimeout)
- cancelTimeout = window.setTimeout(cancel, 500)
+ cancelTimeout = window.setTimeout(cancel, 2000)
files.delete(evt.file)
updateStatus()
})
- const stp = deps.getStatusPanel()
-
- stp.update({progress: {max, value: 0}})
- client.execute("geterrForProject", {file, delay: 0})
+ deps.reportProgress({max, value: 0})
+ await client.execute("geterrForProject", {file, delay: 0})
function cancel() {
files.clear()
@@ -40,12 +38,8 @@ addCommand("atom-text-editor", "typescript:check-all-files", deps => ({
}
function updateStatus() {
- if (files.size === 0) {
- disp.dispose()
- stp.update({progress: undefined})
- } else {
- stp.update({progress: {max, value: max - files.size}})
- }
+ if (files.size === 0) disp.dispose()
+ deps.reportProgress({max, value: max - files.size})
}
},
}))
diff --git a/lib/main/atom/commands/clearErrors.ts b/lib/main/atom/commands/clearErrors.ts
index 243d21563..b0afce891 100644
--- a/lib/main/atom/commands/clearErrors.ts
+++ b/lib/main/atom/commands/clearErrors.ts
@@ -6,13 +6,3 @@ addCommand("atom-workspace", "typescript:clear-errors", deps => ({
deps.clearErrors()
},
}))
-
-addCommand("atom-text-editor", "typescript:reload-projects", deps => ({
- description: "Reload projects",
- async didDispatch(editor) {
- const path = editor.getPath()
- if (path === undefined) return
- const client = await deps.getClient(path)
- client.execute("reloadProjects", undefined)
- },
-}))
diff --git a/lib/main/atom/commands/findReferences.tsx b/lib/main/atom/commands/findReferences.tsx
index af155ef08..843417dd4 100644
--- a/lib/main/atom/commands/findReferences.tsx
+++ b/lib/main/atom/commands/findReferences.tsx
@@ -1,9 +1,9 @@
-import {addCommand} from "./registry"
-import {getFilePathPosition} from "../utils"
-import {selectListView} from "../views/simpleSelectionView"
import * as etch from "etch"
import {TsView} from "../components/tsView"
+import {getFilePathPosition} from "../utils"
import {HighlightComponent} from "../views/highlightComponent"
+import {selectListView} from "../views/simpleSelectionView"
+import {addCommand} from "./registry"
addCommand("atom-text-editor", "typescript:find-references", deps => ({
description: "Find where symbol under text cursor is referenced",
@@ -30,6 +30,6 @@ addCommand("atom-text-editor", "typescript:find-references", deps => ({
},
itemFilterKey: "file",
})
- if (res) deps.getEditorPositionHistoryManager().goForward(editor, res)
+ if (res) await deps.histGoForward(editor, res)
},
}))
diff --git a/lib/main/atom/commands/formatCode.ts b/lib/main/atom/commands/formatCode.ts
index f83f4cab8..6ed224548 100644
--- a/lib/main/atom/commands/formatCode.ts
+++ b/lib/main/atom/commands/formatCode.ts
@@ -1,6 +1,6 @@
-import {addCommand} from "./registry"
-import {CodeEdit, LocationRangeQuery, rangeToLocationRange, spanToRange} from "../utils"
import {TextEditor} from "atom"
+import {CodeEdit, LocationRangeQuery, rangeToLocationRange, spanToRange} from "../utils"
+import {addCommand} from "./registry"
addCommand("atom-text-editor", "typescript:format-code", deps => ({
description: "Format code in currently active text editor",
diff --git a/lib/main/atom/commands/goToDeclaration.tsx b/lib/main/atom/commands/goToDeclaration.tsx
index 54edd05e6..416285d20 100644
--- a/lib/main/atom/commands/goToDeclaration.tsx
+++ b/lib/main/atom/commands/goToDeclaration.tsx
@@ -1,10 +1,9 @@
-import {addCommand} from "./registry"
-import {getFilePathPosition} from "../utils"
-import {selectListView} from "../views/simpleSelectionView"
+import {TextEditor} from "atom"
import * as etch from "etch"
+import {getFilePathPosition} from "../utils"
import {HighlightComponent} from "../views/highlightComponent"
-import {TextEditor} from "atom"
-import {EditorPositionHistoryManager} from "../editorPositionHistoryManager"
+import {selectListView} from "../views/simpleSelectionView"
+import {addCommand, Dependencies} from "./registry"
addCommand("atom-text-editor", "typescript:go-to-declaration", deps => ({
description: "Go to declaration of symbol under text cursor",
@@ -14,14 +13,14 @@ addCommand("atom-text-editor", "typescript:go-to-declaration", deps => ({
const client = await deps.getClient(location.file)
const result = await client.execute("definition", location)
- handleDefinitionResult(result, editor, deps.getEditorPositionHistoryManager())
+ await handleDefinitionResult(result, editor, deps.histGoForward)
},
}))
export async function handleDefinitionResult(
result: protocol.DefinitionResponse,
editor: TextEditor,
- hist: EditorPositionHistoryManager,
+ histGoForward: Dependencies["histGoForward"],
): Promise {
if (!result.body) {
return
@@ -38,8 +37,8 @@ export async function handleDefinitionResult(
},
itemFilterKey: "file",
})
- if (res) hist.goForward(editor, res)
+ if (res) await histGoForward(editor, res)
} else if (result.body.length > 0) {
- hist.goForward(editor, result.body[0])
+ await histGoForward(editor, result.body[0])
}
}
diff --git a/lib/main/atom/commands/hideSigHelp.ts b/lib/main/atom/commands/hideSigHelp.ts
new file mode 100644
index 000000000..8532072b1
--- /dev/null
+++ b/lib/main/atom/commands/hideSigHelp.ts
@@ -0,0 +1,8 @@
+import {addCommand} from "./registry"
+
+addCommand("atom-text-editor", "typescript:hide-signature-help", deps => ({
+ description: "Hide the currently visible signature help",
+ async didDispatch(ed, ignore) {
+ if (!deps.hideSigHelpAt(ed)) ignore()
+ },
+}))
diff --git a/lib/main/atom/commands/index.ts b/lib/main/atom/commands/index.ts
index ebf5394bd..e36674831 100644
--- a/lib/main/atom/commands/index.ts
+++ b/lib/main/atom/commands/index.ts
@@ -1,24 +1,28 @@
-import {getCommands, Dependencies} from "./registry"
-import {CompositeDisposable} from "atom"
+import {CompositeDisposable, DisposableLike} from "atom"
import {isTypescriptEditorWithPath, isTypescriptGrammar} from "../utils"
+import {Dependencies, getCommands} from "./registry"
// Import all of the command files for their side effects
import "./build"
import "./checkAllFiles"
import "./clearErrors"
-import "./formatCode"
import "./findReferences"
+import "./formatCode"
import "./goToDeclaration"
-import "./returnFromDeclaration"
-import "./renameRefactor"
-import "./showTooltip"
+import "./hideSigHelp"
import "./initializeConfig"
+import "./organizeImports"
+import "./refactorCode"
+import "./reloadProjects"
+import "./renameRefactor"
+import "./restartAllServers"
+import "./returnFromDeclaration"
import "./semanticView"
+import "./showSigHelp"
+import "./showTooltip"
import "./symbolsView"
-import "./refactorCode"
-import "./organizeImports"
-export function registerCommands(deps: Dependencies) {
+export function registerCommands(deps: Dependencies): DisposableLike {
const disp = new CompositeDisposable()
for (const cmd of getCommands()) {
if (cmd.selector === "atom-text-editor") {
@@ -54,16 +58,18 @@ export function registerCommands(deps: Dependencies) {
)
} else {
const d = cmd.desc(deps)
- atom.commands.add(cmd.selector, cmd.command, {
- ...d,
- async didDispatch() {
- try {
- await d.didDispatch()
- } catch (error) {
- handle(error as Error)
- }
- },
- })
+ disp.add(
+ atom.commands.add(cmd.selector, cmd.command, {
+ ...d,
+ async didDispatch() {
+ try {
+ await d.didDispatch()
+ } catch (error) {
+ handle(error as Error)
+ }
+ },
+ }),
+ )
}
}
return disp
diff --git a/lib/main/atom/commands/initializeConfig.ts b/lib/main/atom/commands/initializeConfig.ts
index ca7256f0b..adb7a4e89 100644
--- a/lib/main/atom/commands/initializeConfig.ts
+++ b/lib/main/atom/commands/initializeConfig.ts
@@ -1,6 +1,6 @@
-import {addCommand} from "./registry"
-import {resolveBinary} from "../../../client/clientResolver"
import {BufferedNodeProcess} from "atom"
+import {resolveBinary} from "../../../client"
+import {addCommand} from "./registry"
addCommand("atom-text-editor", "typescript:initialize-config", () => ({
description: "Create tsconfig.json in the project related to currently-active text edtior",
@@ -24,21 +24,26 @@ addCommand("atom-text-editor", "typescript:initialize-config", () => ({
},
}))
-function initConfig(tsc: string, projectRoot: string): Promise {
- return new Promise((resolve, reject) => {
- try {
- const bnp = new BufferedNodeProcess({
- command: tsc,
- args: ["--init"],
- options: {cwd: projectRoot},
- exit: code => {
- if (code === 0) resolve()
- else reject(new Error(`Tsc ended with nonzero exit code ${code}`))
- },
- })
- bnp.onWillThrowError(reject)
- } catch (e) {
- reject(e)
- }
- })
+async function initConfig(tsc: string, projectRoot: string): Promise {
+ let disp: {dispose: () => void} | undefined
+ try {
+ return await new Promise((resolve, reject) => {
+ try {
+ const bnp = new BufferedNodeProcess({
+ command: tsc,
+ args: ["--init"],
+ options: {cwd: projectRoot},
+ exit: code => {
+ if (code === 0) resolve()
+ else reject(new Error(`Tsc ended with nonzero exit code ${code}`))
+ },
+ })
+ disp = bnp.onWillThrowError(reject)
+ } catch (e) {
+ reject(e)
+ }
+ })
+ } finally {
+ if (disp) disp.dispose()
+ }
}
diff --git a/lib/main/atom/commands/refactorCode.tsx b/lib/main/atom/commands/refactorCode.tsx
index efaf4e834..e848d7056 100644
--- a/lib/main/atom/commands/refactorCode.tsx
+++ b/lib/main/atom/commands/refactorCode.tsx
@@ -1,10 +1,10 @@
-import {addCommand, Dependencies} from "./registry"
-import {getFilePathPosition} from "../utils"
-import {selectListView} from "../views/simpleSelectionView"
import * as etch from "etch"
-import {HighlightComponent} from "../views/highlightComponent"
import * as protocol from "typescript/lib/protocol"
-import {TypescriptServiceClient} from "../../../client/client"
+import {TSClient} from "../../../client"
+import {getFilePathPosition} from "../utils"
+import {HighlightComponent} from "../views/highlightComponent"
+import {selectListView} from "../views/simpleSelectionView"
+import {addCommand, Dependencies} from "./registry"
interface RefactorAction {
refactorName: string
@@ -61,7 +61,7 @@ addCommand("atom-text-editor", "typescript:refactor-selection", deps => ({
}))
async function getApplicableRefactorsActions(
- client: TypescriptServiceClient,
+ client: TSClient,
pointOrRange: protocol.FileLocationOrRangeRequestArgs,
) {
const responseApplicable = await getApplicabeRefactors(client, pointOrRange)
@@ -87,7 +87,7 @@ async function getApplicableRefactorsActions(
}
async function getApplicabeRefactors(
- client: TypescriptServiceClient,
+ client: TSClient,
pointOrRange: protocol.FileLocationOrRangeRequestArgs,
) {
try {
@@ -100,7 +100,7 @@ async function getApplicabeRefactors(
async function applyRefactors(
selectedAction: RefactorAction,
range: protocol.FileLocationOrRangeRequestArgs,
- client: TypescriptServiceClient,
+ client: TSClient,
deps: Dependencies,
) {
const responseEdits = await client.execute("getEditsForRefactor", {
diff --git a/lib/main/atom/commands/registry.ts b/lib/main/atom/commands/registry.ts
index 3000c2408..fba6f9cb2 100644
--- a/lib/main/atom/commands/registry.ts
+++ b/lib/main/atom/commands/registry.ts
@@ -1,19 +1,25 @@
import * as Atom from "atom"
-import {TypescriptServiceClient} from "../../../client/client"
-import {StatusPanel} from "../../atom/components/statusPanel"
-import {SemanticViewController} from "../views/outline/semanticViewController"
-import {SymbolsViewController} from "../views/symbols/symbolsViewController"
+import {GetClientFunction} from "../../../client"
import {ApplyEdits} from "../../pluginManager"
-import {EditorPositionHistoryManager} from "../editorPositionHistoryManager"
+import {TBuildStatus, TProgress} from "../components/statusPanel"
+import {OpenParams} from "../editorPositionHistoryManager"
export interface Dependencies {
+ getClient: GetClientFunction
applyEdits: ApplyEdits
- clearErrors(): void
- getClient(filePath: string): Promise
- getStatusPanel(): StatusPanel
- getSemanticViewController(): SemanticViewController
- getSymbolsViewController(): SymbolsViewController
- getEditorPositionHistoryManager(): EditorPositionHistoryManager
+ clearErrors: () => void
+ killAllServers: () => void
+ reportProgress: (progress: TProgress) => void
+ reportBuildStatus: (status: TBuildStatus | undefined) => void
+ toggleSemanticViewController: () => void
+ toggleFileSymbolsView: (ed: Atom.TextEditor) => void
+ toggleProjectSymbolsView: (ed: Atom.TextEditor) => void
+ histGoForward: (ed: Atom.TextEditor, openParams: OpenParams) => Promise