1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | var codemirror_1 = __importDefault(require("codemirror"));
|
7 | require("codemirror/addon/hint/show-hint");
|
8 | var graphql_language_service_1 = require("graphql-language-service");
|
9 | codemirror_1.default.registerHelper('hint', 'graphql', function (editor, options) {
|
10 | var schema = options.schema;
|
11 | if (!schema) {
|
12 | return;
|
13 | }
|
14 | var cur = editor.getCursor();
|
15 | var token = editor.getTokenAt(cur);
|
16 | var tokenStart = token.type !== null && /"|\w/.test(token.string[0])
|
17 | ? token.start
|
18 | : token.end;
|
19 | var position = new graphql_language_service_1.Position(cur.line, tokenStart);
|
20 | var rawResults = (0, graphql_language_service_1.getAutocompleteSuggestions)(schema, editor.getValue(), position, token, options.externalFragments);
|
21 | var results = {
|
22 | list: rawResults.map(function (item) { return ({
|
23 | text: item.label,
|
24 | type: item.type,
|
25 | description: item.documentation,
|
26 | isDeprecated: item.isDeprecated,
|
27 | deprecationReason: item.deprecationReason,
|
28 | }); }),
|
29 | from: { line: cur.line, ch: tokenStart },
|
30 | to: { line: cur.line, ch: token.end },
|
31 | };
|
32 | if ((results === null || results === void 0 ? void 0 : results.list) && results.list.length > 0) {
|
33 | results.from = codemirror_1.default.Pos(results.from.line, results.from.ch);
|
34 | results.to = codemirror_1.default.Pos(results.to.line, results.to.ch);
|
35 | codemirror_1.default.signal(editor, 'hasCompletion', editor, results, token);
|
36 | }
|
37 | return results;
|
38 | });
|
39 |
|
\ | No newline at end of file |