@deephaven/console 0.32.1-lsp.3 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ConsoleInput.js +2 -2
- package/dist/ConsoleInput.js.map +1 -1
- package/dist/command-history/CommandHistoryViewportUpdater.d.ts.map +1 -1
- package/dist/command-history/CommandHistoryViewportUpdater.js +7 -2
- package/dist/command-history/CommandHistoryViewportUpdater.js.map +1 -1
- package/dist/command-history/index.d.ts.map +1 -1
- package/dist/command-history/index.js.map +1 -1
- package/dist/console-history/index.d.ts.map +1 -1
- package/dist/console-history/index.js.map +1 -1
- package/dist/monaco/MonacoCompletionProvider.d.ts +24 -0
- package/dist/monaco/MonacoCompletionProvider.d.ts.map +1 -0
- package/dist/monaco/MonacoCompletionProvider.js +114 -0
- package/dist/monaco/MonacoCompletionProvider.js.map +1 -0
- package/dist/monaco/MonacoTheme.module.css +3 -0
- package/dist/monaco/MonacoTheme.module.css.map +1 -1
- package/dist/monaco/MonacoUtils.d.ts +3 -0
- package/dist/monaco/MonacoUtils.d.ts.map +1 -1
- package/dist/monaco/MonacoUtils.js +25 -1
- package/dist/monaco/MonacoUtils.js.map +1 -1
- package/dist/monaco/index.d.ts +1 -1
- package/dist/monaco/index.d.ts.map +1 -1
- package/dist/monaco/index.js +1 -1
- package/dist/monaco/index.js.map +1 -1
- package/dist/notebook/Editor.css +6 -0
- package/dist/notebook/Editor.css.map +1 -0
- package/dist/notebook/Editor.d.ts +1 -0
- package/dist/notebook/Editor.d.ts.map +1 -1
- package/dist/notebook/Editor.js +6 -1
- package/dist/notebook/Editor.js.map +1 -1
- package/dist/notebook/ScriptEditor.js +2 -2
- package/dist/notebook/ScriptEditor.js.map +1 -1
- package/package.json +12 -11
- package/dist/monaco/MonacoProviders.d.ts +0 -34
- package/dist/monaco/MonacoProviders.d.ts.map +0 -1
- package/dist/monaco/MonacoProviders.js +0 -297
- package/dist/monaco/MonacoProviders.js.map +0 -1
|
@@ -1,297 +0,0 @@
|
|
|
1
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
|
-
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
4
|
-
/**
|
|
5
|
-
* Completion provider for a code session
|
|
6
|
-
*/
|
|
7
|
-
import { PureComponent } from 'react';
|
|
8
|
-
import * as monaco from 'monaco-editor';
|
|
9
|
-
import Log from '@deephaven/log';
|
|
10
|
-
var log = Log.module('MonacoCompletionProvider');
|
|
11
|
-
/**
|
|
12
|
-
* Registers a completion provider with monaco for the language and session provided.
|
|
13
|
-
*/
|
|
14
|
-
class MonacoProviders extends PureComponent {
|
|
15
|
-
/**
|
|
16
|
-
* Converts LSP CompletionItemKind to Monaco CompletionItemKind
|
|
17
|
-
* @param kind The LSP kind
|
|
18
|
-
* @returns Monaco kind
|
|
19
|
-
*/
|
|
20
|
-
static lspToMonacoKind(kind) {
|
|
21
|
-
var monacoKinds = monaco.languages.CompletionItemKind;
|
|
22
|
-
switch (kind) {
|
|
23
|
-
case 1:
|
|
24
|
-
return monacoKinds.Text;
|
|
25
|
-
case 2:
|
|
26
|
-
return monacoKinds.Method;
|
|
27
|
-
case 3:
|
|
28
|
-
return monacoKinds.Function;
|
|
29
|
-
case 4:
|
|
30
|
-
return monacoKinds.Constructor;
|
|
31
|
-
case 5:
|
|
32
|
-
return monacoKinds.Field;
|
|
33
|
-
case 6:
|
|
34
|
-
return monacoKinds.Variable;
|
|
35
|
-
case 7:
|
|
36
|
-
return monacoKinds.Class;
|
|
37
|
-
case 8:
|
|
38
|
-
return monacoKinds.Interface;
|
|
39
|
-
case 9:
|
|
40
|
-
return monacoKinds.Module;
|
|
41
|
-
case 10:
|
|
42
|
-
return monacoKinds.Property;
|
|
43
|
-
case 11:
|
|
44
|
-
return monacoKinds.Unit;
|
|
45
|
-
case 12:
|
|
46
|
-
return monacoKinds.Value;
|
|
47
|
-
case 13:
|
|
48
|
-
return monacoKinds.Enum;
|
|
49
|
-
case 14:
|
|
50
|
-
return monacoKinds.Keyword;
|
|
51
|
-
case 15:
|
|
52
|
-
return monacoKinds.Snippet;
|
|
53
|
-
case 16:
|
|
54
|
-
return monacoKinds.Color;
|
|
55
|
-
case 17:
|
|
56
|
-
return monacoKinds.File;
|
|
57
|
-
case 18:
|
|
58
|
-
return monacoKinds.Reference;
|
|
59
|
-
case 19:
|
|
60
|
-
return monacoKinds.Folder;
|
|
61
|
-
case 20:
|
|
62
|
-
return monacoKinds.EnumMember;
|
|
63
|
-
case 21:
|
|
64
|
-
return monacoKinds.Constant;
|
|
65
|
-
case 22:
|
|
66
|
-
return monacoKinds.Struct;
|
|
67
|
-
case 23:
|
|
68
|
-
return monacoKinds.Event;
|
|
69
|
-
case 24:
|
|
70
|
-
return monacoKinds.Operator;
|
|
71
|
-
case 25:
|
|
72
|
-
return monacoKinds.TypeParameter;
|
|
73
|
-
default:
|
|
74
|
-
return monacoKinds.Variable;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
constructor(props) {
|
|
78
|
-
super(props);
|
|
79
|
-
_defineProperty(this, "registeredCompletionProvider", void 0);
|
|
80
|
-
_defineProperty(this, "registeredSignatureProvider", void 0);
|
|
81
|
-
_defineProperty(this, "registeredHoverProvider", void 0);
|
|
82
|
-
this.handleCompletionRequest = this.handleCompletionRequest.bind(this);
|
|
83
|
-
this.handleSignatureRequest = this.handleSignatureRequest.bind(this);
|
|
84
|
-
this.handleHoverRequest = this.handleHoverRequest.bind(this);
|
|
85
|
-
}
|
|
86
|
-
componentDidMount() {
|
|
87
|
-
var {
|
|
88
|
-
language
|
|
89
|
-
} = this.props;
|
|
90
|
-
this.registeredCompletionProvider = monaco.languages.registerCompletionItemProvider(language !== null && language !== void 0 ? language : '', {
|
|
91
|
-
provideCompletionItems: this.handleCompletionRequest,
|
|
92
|
-
triggerCharacters: ['.']
|
|
93
|
-
});
|
|
94
|
-
this.registeredSignatureProvider = monaco.languages.registerSignatureHelpProvider(language !== null && language !== void 0 ? language : '', {
|
|
95
|
-
provideSignatureHelp: this.handleSignatureRequest,
|
|
96
|
-
signatureHelpTriggerCharacters: ['(', ',']
|
|
97
|
-
});
|
|
98
|
-
this.registeredHoverProvider = monaco.languages.registerHoverProvider(language !== null && language !== void 0 ? language : '', {
|
|
99
|
-
provideHover: this.handleHoverRequest
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
componentWillUnmount() {
|
|
103
|
-
var _this$registeredCompl, _this$registeredSigna, _this$registeredHover;
|
|
104
|
-
(_this$registeredCompl = this.registeredCompletionProvider) === null || _this$registeredCompl === void 0 ? void 0 : _this$registeredCompl.dispose();
|
|
105
|
-
(_this$registeredSigna = this.registeredSignatureProvider) === null || _this$registeredSigna === void 0 ? void 0 : _this$registeredSigna.dispose();
|
|
106
|
-
(_this$registeredHover = this.registeredHoverProvider) === null || _this$registeredHover === void 0 ? void 0 : _this$registeredHover.dispose();
|
|
107
|
-
}
|
|
108
|
-
handleCompletionRequest(model, position, context) {
|
|
109
|
-
var {
|
|
110
|
-
model: propModel,
|
|
111
|
-
session
|
|
112
|
-
} = this.props;
|
|
113
|
-
if (model !== propModel) {
|
|
114
|
-
return null;
|
|
115
|
-
}
|
|
116
|
-
var params = {
|
|
117
|
-
textDocument: {
|
|
118
|
-
uri: "".concat(model.uri),
|
|
119
|
-
version: model.getVersionId()
|
|
120
|
-
},
|
|
121
|
-
// Monaco 1-indexes Position. LSP 0-indexes Position
|
|
122
|
-
position: {
|
|
123
|
-
line: position.lineNumber - 1,
|
|
124
|
-
character: position.column - 1
|
|
125
|
-
},
|
|
126
|
-
context
|
|
127
|
-
};
|
|
128
|
-
var completionItems = session.getCompletionItems(params);
|
|
129
|
-
var monacoCompletionItems = completionItems.then(items => {
|
|
130
|
-
log.debug('Completion items received: ', params, completionItems);
|
|
131
|
-
|
|
132
|
-
// Annoying that the LSP protocol returns completion items with a range that's slightly different than what Monaco expects
|
|
133
|
-
// Need to remap the items here
|
|
134
|
-
var suggestions = items.map(item => {
|
|
135
|
-
var {
|
|
136
|
-
label,
|
|
137
|
-
kind,
|
|
138
|
-
detail,
|
|
139
|
-
documentation,
|
|
140
|
-
sortText,
|
|
141
|
-
filterText,
|
|
142
|
-
textEdit,
|
|
143
|
-
insertTextFormat
|
|
144
|
-
} = item;
|
|
145
|
-
var {
|
|
146
|
-
start,
|
|
147
|
-
end
|
|
148
|
-
} = textEdit.range;
|
|
149
|
-
|
|
150
|
-
// Monaco expects the columns/ranges to start at 1.
|
|
151
|
-
var range = {
|
|
152
|
-
startLineNumber: start.line + 1,
|
|
153
|
-
startColumn: start.character + 1,
|
|
154
|
-
endLineNumber: end.line + 1,
|
|
155
|
-
endColumn: end.character + 1
|
|
156
|
-
};
|
|
157
|
-
return {
|
|
158
|
-
label,
|
|
159
|
-
kind: MonacoProviders.lspToMonacoKind(kind),
|
|
160
|
-
detail,
|
|
161
|
-
documentation: (documentation === null || documentation === void 0 ? void 0 : documentation.kind) === 'markdown' ? documentation : documentation === null || documentation === void 0 ? void 0 : documentation.value,
|
|
162
|
-
sortText,
|
|
163
|
-
filterText,
|
|
164
|
-
insertText: textEdit.text,
|
|
165
|
-
// We are basically guessing that LSP's insertTextFormat===2 is
|
|
166
|
-
// semantically equivalent to monaco's insertTextRules===4.
|
|
167
|
-
// Why microsoft is using almost-but-not-LSP apis is beyond me....
|
|
168
|
-
insertTextRules: insertTextFormat === 2 ? 4 : insertTextFormat,
|
|
169
|
-
range
|
|
170
|
-
};
|
|
171
|
-
});
|
|
172
|
-
return {
|
|
173
|
-
incomplete: true,
|
|
174
|
-
suggestions
|
|
175
|
-
};
|
|
176
|
-
}).catch(error => {
|
|
177
|
-
log.error('There was an error retrieving completion items', error);
|
|
178
|
-
return {
|
|
179
|
-
suggestions: []
|
|
180
|
-
};
|
|
181
|
-
});
|
|
182
|
-
return monacoCompletionItems;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// eslint-disable-next-line class-methods-use-this
|
|
186
|
-
handleSignatureRequest(model, position, token, context) {
|
|
187
|
-
var defaultResult = {
|
|
188
|
-
value: {
|
|
189
|
-
signatures: [],
|
|
190
|
-
activeSignature: 0,
|
|
191
|
-
activeParameter: 0
|
|
192
|
-
},
|
|
193
|
-
dispose: () => {
|
|
194
|
-
/* no-op */
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
var {
|
|
198
|
-
model: propModel,
|
|
199
|
-
session
|
|
200
|
-
} = this.props;
|
|
201
|
-
if (model !== propModel || !session.getSignatureHelp) {
|
|
202
|
-
return null;
|
|
203
|
-
}
|
|
204
|
-
var params = {
|
|
205
|
-
textDocument: {
|
|
206
|
-
uri: "".concat(model.uri),
|
|
207
|
-
version: model.getVersionId()
|
|
208
|
-
},
|
|
209
|
-
// Monaco 1-indexes Position. LSP 0-indexes Position
|
|
210
|
-
position: {
|
|
211
|
-
line: position.lineNumber - 1,
|
|
212
|
-
character: position.column - 1
|
|
213
|
-
},
|
|
214
|
-
context
|
|
215
|
-
};
|
|
216
|
-
var signatureItems = session.getSignatureHelp(params);
|
|
217
|
-
var monacoSignatures = signatureItems.then(items => {
|
|
218
|
-
log.debug('Signatures received: ', params, signatureItems);
|
|
219
|
-
var signatures = items.map(item => {
|
|
220
|
-
var {
|
|
221
|
-
label,
|
|
222
|
-
documentation,
|
|
223
|
-
parameters
|
|
224
|
-
} = item;
|
|
225
|
-
return {
|
|
226
|
-
documentation: (documentation === null || documentation === void 0 ? void 0 : documentation.kind) === 'markdown' ? documentation : documentation === null || documentation === void 0 ? void 0 : documentation.value,
|
|
227
|
-
label,
|
|
228
|
-
parameters: parameters !== null && parameters !== void 0 ? parameters : []
|
|
229
|
-
};
|
|
230
|
-
});
|
|
231
|
-
if (signatures.length === 0) {
|
|
232
|
-
return defaultResult;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// For now we will assume we only autocomplete Python w/ 1 signature
|
|
236
|
-
// For multiple signatures, this may need to be sent through the request as context
|
|
237
|
-
var activeSignature = 0;
|
|
238
|
-
return {
|
|
239
|
-
value: {
|
|
240
|
-
signatures,
|
|
241
|
-
activeSignature,
|
|
242
|
-
activeParameter: items[activeSignature].activeParameter
|
|
243
|
-
},
|
|
244
|
-
dispose: () => {
|
|
245
|
-
/* no-op */
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
}).catch(error => {
|
|
249
|
-
log.error('There was an error retrieving completion items', error);
|
|
250
|
-
return defaultResult;
|
|
251
|
-
});
|
|
252
|
-
return monacoSignatures;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// eslint-disable-next-line class-methods-use-this
|
|
256
|
-
handleHoverRequest(model, position) {
|
|
257
|
-
var {
|
|
258
|
-
model: propModel,
|
|
259
|
-
session
|
|
260
|
-
} = this.props;
|
|
261
|
-
if (model !== propModel || !session.getHover) {
|
|
262
|
-
return null;
|
|
263
|
-
}
|
|
264
|
-
var params = {
|
|
265
|
-
textDocument: {
|
|
266
|
-
uri: "".concat(model.uri),
|
|
267
|
-
version: model.getVersionId()
|
|
268
|
-
},
|
|
269
|
-
// Monaco 1-indexes Position. LSP 0-indexes Position
|
|
270
|
-
position: {
|
|
271
|
-
line: position.lineNumber - 1,
|
|
272
|
-
character: position.column - 1
|
|
273
|
-
}
|
|
274
|
-
};
|
|
275
|
-
var hover = session.getHover(params);
|
|
276
|
-
var monacoHover = hover.then(hoverItem => {
|
|
277
|
-
log.debug('Hover received: ', params, hoverItem);
|
|
278
|
-
var {
|
|
279
|
-
contents: hoverContents
|
|
280
|
-
} = hoverItem;
|
|
281
|
-
return {
|
|
282
|
-
contents: hoverContents ? [hoverContents] : []
|
|
283
|
-
};
|
|
284
|
-
}).catch(error => {
|
|
285
|
-
log.error('There was an error retrieving hover', error);
|
|
286
|
-
return {
|
|
287
|
-
contents: []
|
|
288
|
-
};
|
|
289
|
-
});
|
|
290
|
-
return monacoHover;
|
|
291
|
-
}
|
|
292
|
-
render() {
|
|
293
|
-
return null;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
export default MonacoProviders;
|
|
297
|
-
//# sourceMappingURL=MonacoProviders.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MonacoProviders.js","names":["PureComponent","monaco","Log","log","module","MonacoProviders","lspToMonacoKind","kind","monacoKinds","languages","CompletionItemKind","Text","Method","Function","Constructor","Field","Variable","Class","Interface","Module","Property","Unit","Value","Enum","Keyword","Snippet","Color","File","Reference","Folder","EnumMember","Constant","Struct","Event","Operator","TypeParameter","constructor","props","handleCompletionRequest","bind","handleSignatureRequest","handleHoverRequest","componentDidMount","language","registeredCompletionProvider","registerCompletionItemProvider","provideCompletionItems","triggerCharacters","registeredSignatureProvider","registerSignatureHelpProvider","provideSignatureHelp","signatureHelpTriggerCharacters","registeredHoverProvider","registerHoverProvider","provideHover","componentWillUnmount","dispose","model","position","context","propModel","session","params","textDocument","uri","version","getVersionId","line","lineNumber","character","column","completionItems","getCompletionItems","monacoCompletionItems","then","items","debug","suggestions","map","item","label","detail","documentation","sortText","filterText","textEdit","insertTextFormat","start","end","range","startLineNumber","startColumn","endLineNumber","endColumn","value","insertText","text","insertTextRules","incomplete","catch","error","token","defaultResult","signatures","activeSignature","activeParameter","getSignatureHelp","signatureItems","monacoSignatures","parameters","length","getHover","hover","monacoHover","hoverItem","contents","hoverContents","render"],"sources":["../../src/monaco/MonacoProviders.tsx"],"sourcesContent":["/**\n * Completion provider for a code session\n */\nimport { PureComponent } from 'react';\nimport * as monaco from 'monaco-editor';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\n\nconst log = Log.module('MonacoCompletionProvider');\n\ninterface MonacoProviderProps {\n model: monaco.editor.ITextModel;\n session: IdeSession;\n language: string;\n}\n\n/**\n * Registers a completion provider with monaco for the language and session provided.\n */\nclass MonacoProviders extends PureComponent<\n MonacoProviderProps,\n Record<string, never>\n> {\n /**\n * Converts LSP CompletionItemKind to Monaco CompletionItemKind\n * @param kind The LSP kind\n * @returns Monaco kind\n */\n static lspToMonacoKind(kind: number): number {\n const monacoKinds = monaco.languages.CompletionItemKind;\n switch (kind) {\n case 1:\n return monacoKinds.Text;\n case 2:\n return monacoKinds.Method;\n case 3:\n return monacoKinds.Function;\n case 4:\n return monacoKinds.Constructor;\n case 5:\n return monacoKinds.Field;\n case 6:\n return monacoKinds.Variable;\n case 7:\n return monacoKinds.Class;\n case 8:\n return monacoKinds.Interface;\n case 9:\n return monacoKinds.Module;\n case 10:\n return monacoKinds.Property;\n case 11:\n return monacoKinds.Unit;\n case 12:\n return monacoKinds.Value;\n case 13:\n return monacoKinds.Enum;\n case 14:\n return monacoKinds.Keyword;\n case 15:\n return monacoKinds.Snippet;\n case 16:\n return monacoKinds.Color;\n case 17:\n return monacoKinds.File;\n case 18:\n return monacoKinds.Reference;\n case 19:\n return monacoKinds.Folder;\n case 20:\n return monacoKinds.EnumMember;\n case 21:\n return monacoKinds.Constant;\n case 22:\n return monacoKinds.Struct;\n case 23:\n return monacoKinds.Event;\n case 24:\n return monacoKinds.Operator;\n case 25:\n return monacoKinds.TypeParameter;\n default:\n return monacoKinds.Variable;\n }\n }\n\n constructor(props: MonacoProviderProps) {\n super(props);\n\n this.handleCompletionRequest = this.handleCompletionRequest.bind(this);\n this.handleSignatureRequest = this.handleSignatureRequest.bind(this);\n this.handleHoverRequest = this.handleHoverRequest.bind(this);\n }\n\n componentDidMount(): void {\n const { language } = this.props;\n\n this.registeredCompletionProvider = monaco.languages.registerCompletionItemProvider(\n language ?? '',\n {\n provideCompletionItems: this.handleCompletionRequest,\n triggerCharacters: ['.'],\n }\n );\n\n this.registeredSignatureProvider = monaco.languages.registerSignatureHelpProvider(\n language ?? '',\n {\n provideSignatureHelp: this.handleSignatureRequest,\n signatureHelpTriggerCharacters: ['(', ','],\n }\n );\n\n this.registeredHoverProvider = monaco.languages.registerHoverProvider(\n language ?? '',\n {\n provideHover: this.handleHoverRequest,\n }\n );\n }\n\n componentWillUnmount(): void {\n this.registeredCompletionProvider?.dispose();\n this.registeredSignatureProvider?.dispose();\n this.registeredHoverProvider?.dispose();\n }\n\n registeredCompletionProvider?: monaco.IDisposable;\n\n registeredSignatureProvider?: monaco.IDisposable;\n\n registeredHoverProvider?: monaco.IDisposable;\n\n handleCompletionRequest(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): monaco.languages.ProviderResult<monaco.languages.CompletionList> {\n const { model: propModel, session } = this.props;\n if (model !== propModel) {\n return null;\n }\n\n const params = {\n textDocument: {\n uri: `${model.uri}`,\n version: model.getVersionId(),\n },\n // Monaco 1-indexes Position. LSP 0-indexes Position\n position: {\n line: position.lineNumber - 1,\n character: position.column - 1,\n },\n context,\n };\n\n const completionItems = session.getCompletionItems(params);\n\n const monacoCompletionItems = completionItems\n .then(items => {\n log.debug('Completion items received: ', params, completionItems);\n\n // Annoying that the LSP protocol returns completion items with a range that's slightly different than what Monaco expects\n // Need to remap the items here\n const suggestions = items.map(item => {\n const {\n label,\n kind,\n detail,\n documentation,\n sortText,\n filterText,\n textEdit,\n insertTextFormat,\n } = item;\n\n const { start, end } = textEdit.range;\n\n // Monaco expects the columns/ranges to start at 1.\n const range = {\n startLineNumber: start.line + 1,\n startColumn: start.character + 1,\n endLineNumber: end.line + 1,\n endColumn: end.character + 1,\n };\n\n return {\n label,\n kind: MonacoProviders.lspToMonacoKind(kind),\n detail,\n documentation:\n documentation?.kind === 'markdown'\n ? documentation\n : documentation?.value,\n sortText,\n filterText,\n insertText: textEdit.text,\n // We are basically guessing that LSP's insertTextFormat===2 is\n // semantically equivalent to monaco's insertTextRules===4.\n // Why microsoft is using almost-but-not-LSP apis is beyond me....\n insertTextRules: insertTextFormat === 2 ? 4 : insertTextFormat,\n range,\n };\n });\n\n return {\n incomplete: true,\n suggestions,\n };\n })\n .catch((error: unknown) => {\n log.error('There was an error retrieving completion items', error);\n return { suggestions: [] };\n });\n\n return monacoCompletionItems;\n }\n\n // eslint-disable-next-line class-methods-use-this\n handleSignatureRequest(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n token: monaco.CancellationToken,\n context: monaco.languages.SignatureHelpContext\n ): monaco.languages.ProviderResult<monaco.languages.SignatureHelpResult> {\n const defaultResult: monaco.languages.SignatureHelpResult = {\n value: {\n signatures: [],\n activeSignature: 0,\n activeParameter: 0,\n },\n dispose: () => {\n /* no-op */\n },\n };\n\n const { model: propModel, session } = this.props;\n if (model !== propModel || !session.getSignatureHelp) {\n return null;\n }\n\n const params = {\n textDocument: {\n uri: `${model.uri}`,\n version: model.getVersionId(),\n },\n // Monaco 1-indexes Position. LSP 0-indexes Position\n position: {\n line: position.lineNumber - 1,\n character: position.column - 1,\n },\n context,\n };\n\n const signatureItems = session.getSignatureHelp(params);\n\n const monacoSignatures = signatureItems\n .then(items => {\n log.debug('Signatures received: ', params, signatureItems);\n const signatures = items.map(item => {\n const { label, documentation, parameters } = item;\n\n return {\n documentation:\n documentation?.kind === 'markdown'\n ? documentation\n : documentation?.value,\n label,\n parameters: parameters ?? [],\n };\n });\n\n if (signatures.length === 0) {\n return defaultResult;\n }\n\n // For now we will assume we only autocomplete Python w/ 1 signature\n // For multiple signatures, this may need to be sent through the request as context\n const activeSignature = 0;\n\n return {\n value: {\n signatures,\n activeSignature,\n activeParameter: items[activeSignature].activeParameter,\n },\n dispose: () => {\n /* no-op */\n },\n };\n })\n .catch((error: unknown) => {\n log.error('There was an error retrieving completion items', error);\n return defaultResult;\n });\n\n return monacoSignatures;\n }\n\n // eslint-disable-next-line class-methods-use-this\n handleHoverRequest(\n model: monaco.editor.ITextModel,\n position: monaco.Position\n ): monaco.languages.ProviderResult<monaco.languages.Hover> {\n const { model: propModel, session } = this.props;\n if (model !== propModel || !session.getHover) {\n return null;\n }\n\n const params = {\n textDocument: {\n uri: `${model.uri}`,\n version: model.getVersionId(),\n },\n // Monaco 1-indexes Position. LSP 0-indexes Position\n position: {\n line: position.lineNumber - 1,\n character: position.column - 1,\n },\n };\n\n const hover = session.getHover(params);\n\n const monacoHover = hover\n .then(hoverItem => {\n log.debug('Hover received: ', params, hoverItem);\n const { contents: hoverContents } = hoverItem;\n\n return {\n contents: hoverContents ? [hoverContents] : [],\n };\n })\n .catch((error: unknown) => {\n log.error('There was an error retrieving hover', error);\n return { contents: [] };\n });\n\n return monacoHover;\n }\n\n render(): null {\n return null;\n }\n}\n\nexport default MonacoProviders;\n"],"mappings":"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"}
|