UNPKG

6.02 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const assert = require("assert");
4const convert_1 = require("../convert");
5const atom_1 = require("atom");
6class SignatureHelpAdapter {
7 constructor(server, grammarScopes) {
8 this._disposables = new atom_1.CompositeDisposable();
9 this._connection = server.connection;
10 this._capabilities = server.capabilities;
11 this._grammarScopes = grammarScopes;
12 }
13 /** @returns A {Boolean} indicating this adapter can adapt the server based on the given serverCapabilities. */
14 static canAdapt(serverCapabilities) {
15 return serverCapabilities.signatureHelpProvider != null;
16 }
17 dispose() {
18 this._disposables.dispose();
19 }
20 attach(register) {
21 const { signatureHelpProvider } = this._capabilities;
22 assert(signatureHelpProvider != null);
23 let triggerCharacters;
24 if (signatureHelpProvider && Array.isArray(signatureHelpProvider.triggerCharacters)) {
25 triggerCharacters = new Set(signatureHelpProvider.triggerCharacters);
26 }
27 this._disposables.add(register({
28 priority: 1,
29 grammarScopes: this._grammarScopes,
30 triggerCharacters,
31 getSignatureHelp: this.getSignatureHelp.bind(this),
32 }));
33 }
34 /** Public: Retrieves signature help for a given editor and position. */
35 getSignatureHelp(editor, point) {
36 return this._connection.signatureHelp(convert_1.default.editorToTextDocumentPositionParams(editor, point));
37 }
38}
39exports.default = SignatureHelpAdapter;
40//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLWhlbHAtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9hZGFwdGVycy9zaWduYXR1cmUtaGVscC1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsaUNBQWlDO0FBQ2pDLHdDQUFnQztBQUVoQywrQkFBNkQ7QUFHN0QsTUFBcUIsb0JBQW9CO0lBTXZDLFlBQVksTUFBb0IsRUFBRSxhQUF1QjtRQUxqRCxpQkFBWSxHQUF3QixJQUFJLDBCQUFtQixFQUFFLENBQUE7UUFNbkUsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFBO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQTtRQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsK0dBQStHO0lBQ3hHLE1BQU0sQ0FBQyxRQUFRLENBQUMsa0JBQXNDO1FBQzNELE9BQU8sa0JBQWtCLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFBO0lBQ3pELENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUM3QixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQXVDO1FBQ25ELE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7UUFDcEQsTUFBTSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxDQUFBO1FBRXJDLElBQUksaUJBQTBDLENBQUE7UUFDOUMsSUFBSSxxQkFBcUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDbkYsaUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtTQUNyRTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixRQUFRLENBQUM7WUFDUCxRQUFRLEVBQUUsQ0FBQztZQUNYLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNsQyxpQkFBaUI7WUFDakIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDbkQsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQsd0VBQXdFO0lBQ2pFLGdCQUFnQixDQUFDLE1BQWtCLEVBQUUsS0FBWTtRQUN0RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGlCQUFPLENBQUMsa0NBQWtDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDbEcsQ0FBQztDQUNGO0FBNUNELHVDQTRDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgYXRvbUlkZSBmcm9tIFwiYXRvbS1pZGUtYmFzZVwiXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZShcImFzc2VydFwiKVxuaW1wb3J0IENvbnZlcnQgZnJvbSBcIi4uL2NvbnZlcnRcIlxuaW1wb3J0IHsgQWN0aXZlU2VydmVyIH0gZnJvbSBcIi4uL3NlcnZlci1tYW5hZ2VyXCJcbmltcG9ydCB7IENvbXBvc2l0ZURpc3Bvc2FibGUsIFBvaW50LCBUZXh0RWRpdG9yIH0gZnJvbSBcImF0b21cIlxuaW1wb3J0IHsgTGFuZ3VhZ2VDbGllbnRDb25uZWN0aW9uLCBTZXJ2ZXJDYXBhYmlsaXRpZXMsIFNpZ25hdHVyZUhlbHAgfSBmcm9tIFwiLi4vbGFuZ3VhZ2VjbGllbnRcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTaWduYXR1cmVIZWxwQWRhcHRlciB7XG4gIHByaXZhdGUgX2Rpc3Bvc2FibGVzOiBDb21wb3NpdGVEaXNwb3NhYmxlID0gbmV3IENvbXBvc2l0ZURpc3Bvc2FibGUoKVxuICBwcml2YXRlIF9jb25uZWN0aW9uOiBMYW5ndWFnZUNsaWVudENvbm5lY3Rpb25cbiAgcHJpdmF0ZSBfY2FwYWJpbGl0aWVzOiBTZXJ2ZXJDYXBhYmlsaXRpZXNcbiAgcHJpdmF0ZSBfZ3JhbW1hclNjb3Blczogc3RyaW5nW11cblxuICBjb25zdHJ1Y3RvcihzZXJ2ZXI6IEFjdGl2ZVNlcnZlciwgZ3JhbW1hclNjb3Blczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9jb25uZWN0aW9uID0gc2VydmVyLmNvbm5lY3Rpb25cbiAgICB0aGlzLl9jYXBhYmlsaXRpZXMgPSBzZXJ2ZXIuY2FwYWJpbGl0aWVzXG4gICAgdGhpcy5fZ3JhbW1hclNjb3BlcyA9IGdyYW1tYXJTY29wZXNcbiAgfVxuXG4gIC8qKiBAcmV0dXJucyBBIHtCb29sZWFufSBpbmRpY2F0aW5nIHRoaXMgYWRhcHRlciBjYW4gYWRhcHQgdGhlIHNlcnZlciBiYXNlZCBvbiB0aGUgZ2l2ZW4gc2VydmVyQ2FwYWJpbGl0aWVzLiAqL1xuICBwdWJsaWMgc3RhdGljIGNhbkFkYXB0KHNlcnZlckNhcGFiaWxpdGllczogU2VydmVyQ2FwYWJpbGl0aWVzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNlcnZlckNhcGFiaWxpdGllcy5zaWduYXR1cmVIZWxwUHJvdmlkZXIgIT0gbnVsbFxuICB9XG5cbiAgcHVibGljIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzcG9zYWJsZXMuZGlzcG9zZSgpXG4gIH1cblxuICBwdWJsaWMgYXR0YWNoKHJlZ2lzdGVyOiBhdG9tSWRlLlNpZ25hdHVyZUhlbHBSZWdpc3RyeSk6IHZvaWQge1xuICAgIGNvbnN0IHsgc2lnbmF0dXJlSGVscFByb3ZpZGVyIH0gPSB0aGlzLl9jYXBhYmlsaXRpZXNcbiAgICBhc3NlcnQoc2lnbmF0dXJlSGVscFByb3ZpZGVyICE9IG51bGwpXG5cbiAgICBsZXQgdHJpZ2dlckNoYXJhY3RlcnM6IFNldDxzdHJpbmc+IHwgdW5kZWZpbmVkXG4gICAgaWYgKHNpZ25hdHVyZUhlbHBQcm92aWRlciAmJiBBcnJheS5pc0FycmF5KHNpZ25hdHVyZUhlbHBQcm92aWRlci50cmlnZ2VyQ2hhcmFjdGVycykpIHtcbiAgICAgIHRyaWdnZXJDaGFyYWN0ZXJzID0gbmV3IFNldChzaWduYXR1cmVIZWxwUHJvdmlkZXIudHJpZ2dlckNoYXJhY3RlcnMpXG4gICAgfVxuXG4gICAgdGhpcy5fZGlzcG9zYWJsZXMuYWRkKFxuICAgICAgcmVnaXN0ZXIoe1xuICAgICAgICBwcmlvcml0eTogMSxcbiAgICAgICAgZ3JhbW1hclNjb3BlczogdGhpcy5fZ3JhbW1hclNjb3BlcyxcbiAgICAgICAgdHJpZ2dlckNoYXJhY3RlcnMsXG4gICAgICAgIGdldFNpZ25hdHVyZUhlbHA6IHRoaXMuZ2V0U2lnbmF0dXJlSGVscC5iaW5kKHRoaXMpLFxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICAvKiogUHVibGljOiBSZXRyaWV2ZXMgc2lnbmF0dXJlIGhlbHAgZm9yIGEgZ2l2ZW4gZWRpdG9yIGFuZCBwb3NpdGlvbi4gKi9cbiAgcHVibGljIGdldFNpZ25hdHVyZUhlbHAoZWRpdG9yOiBUZXh0RWRpdG9yLCBwb2ludDogUG9pbnQpOiBQcm9taXNlPFNpZ25hdHVyZUhlbHAgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb24uc2lnbmF0dXJlSGVscChDb252ZXJ0LmVkaXRvclRvVGV4dERvY3VtZW50UG9zaXRpb25QYXJhbXMoZWRpdG9yLCBwb2ludCkpXG4gIH1cbn1cbiJdfQ==
\No newline at end of file