@deephaven/console 0.42.1-beta.2 → 0.43.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/package.json +12 -12
- package/dist/Console.css +0 -44
- package/dist/Console.css.map +0 -1
- package/dist/Console.js +0 -875
- package/dist/Console.js.map +0 -1
- package/dist/ConsoleInput.css +0 -42
- package/dist/ConsoleInput.css.map +0 -1
- package/dist/ConsoleInput.js +0 -442
- package/dist/ConsoleInput.js.map +0 -1
- package/dist/ConsoleMenu.css +0 -25
- package/dist/ConsoleMenu.css.map +0 -1
- package/dist/ConsoleMenu.js +0 -192
- package/dist/ConsoleMenu.js.map +0 -1
- package/dist/ConsolePropTypes.js +0 -10
- package/dist/ConsolePropTypes.js.map +0 -1
- package/dist/ConsoleShortcuts.js +0 -85
- package/dist/ConsoleShortcuts.js.map +0 -1
- package/dist/ConsoleStatusBar.css +0 -52
- package/dist/ConsoleStatusBar.css.map +0 -1
- package/dist/ConsoleStatusBar.js +0 -105
- package/dist/ConsoleStatusBar.js.map +0 -1
- package/dist/HeapUsage.css +0 -61
- package/dist/HeapUsage.css.map +0 -1
- package/dist/HeapUsage.js +0 -168
- package/dist/HeapUsage.js.map +0 -1
- package/dist/StoragePropTypes.js +0 -16
- package/dist/StoragePropTypes.js.map +0 -1
- package/dist/command-history/CommandHistory.css +0 -41
- package/dist/command-history/CommandHistory.css.map +0 -1
- package/dist/command-history/CommandHistory.js +0 -381
- package/dist/command-history/CommandHistory.js.map +0 -1
- package/dist/command-history/CommandHistoryActions.css +0 -10
- package/dist/command-history/CommandHistoryActions.css.map +0 -1
- package/dist/command-history/CommandHistoryActions.js +0 -47
- package/dist/command-history/CommandHistoryActions.js.map +0 -1
- package/dist/command-history/CommandHistoryItem.css +0 -61
- package/dist/command-history/CommandHistoryItem.css.map +0 -1
- package/dist/command-history/CommandHistoryItem.js +0 -50
- package/dist/command-history/CommandHistoryItem.js.map +0 -1
- package/dist/command-history/CommandHistoryItemTooltip.css +0 -37
- package/dist/command-history/CommandHistoryItemTooltip.css.map +0 -1
- package/dist/command-history/CommandHistoryItemTooltip.js +0 -159
- package/dist/command-history/CommandHistoryItemTooltip.js.map +0 -1
- package/dist/command-history/CommandHistoryStorage.js +0 -2
- package/dist/command-history/CommandHistoryStorage.js.map +0 -1
- package/dist/command-history/CommandHistoryTypes.js +0 -2
- package/dist/command-history/CommandHistoryTypes.js.map +0 -1
- package/dist/command-history/CommandHistoryViewportUpdater.js +0 -57
- package/dist/command-history/CommandHistoryViewportUpdater.js.map +0 -1
- package/dist/command-history/index.js +0 -7
- package/dist/command-history/index.js.map +0 -1
- package/dist/common/Code.js +0 -45
- package/dist/common/Code.js.map +0 -1
- package/dist/common/ConsoleConstants.js +0 -10
- package/dist/common/ConsoleConstants.js.map +0 -1
- package/dist/common/ConsoleUtils.js +0 -62
- package/dist/common/ConsoleUtils.js.map +0 -1
- package/dist/common/ObjectIcon.js +0 -33
- package/dist/common/ObjectIcon.js.map +0 -1
- package/dist/common/index.js +0 -5
- package/dist/common/index.js.map +0 -1
- package/dist/console-history/ConsoleHistory.css +0 -42
- package/dist/console-history/ConsoleHistory.css.map +0 -1
- package/dist/console-history/ConsoleHistory.js +0 -42
- package/dist/console-history/ConsoleHistory.js.map +0 -1
- package/dist/console-history/ConsoleHistoryItem.css +0 -87
- package/dist/console-history/ConsoleHistoryItem.css.map +0 -1
- package/dist/console-history/ConsoleHistoryItem.js +0 -139
- package/dist/console-history/ConsoleHistoryItem.js.map +0 -1
- package/dist/console-history/ConsoleHistoryItemResult.js +0 -22
- package/dist/console-history/ConsoleHistoryItemResult.js.map +0 -1
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js +0 -142
- package/dist/console-history/ConsoleHistoryResultErrorMessage.js.map +0 -1
- package/dist/console-history/ConsoleHistoryResultInProgress.css +0 -27
- package/dist/console-history/ConsoleHistoryResultInProgress.css.map +0 -1
- package/dist/console-history/ConsoleHistoryResultInProgress.js +0 -66
- package/dist/console-history/ConsoleHistoryResultInProgress.js.map +0 -1
- package/dist/console-history/ConsoleHistoryTypes.js +0 -2
- package/dist/console-history/ConsoleHistoryTypes.js.map +0 -1
- package/dist/console-history/index.js +0 -6
- package/dist/console-history/index.js.map +0 -1
- package/dist/csv/CsvFormats.js +0 -134
- package/dist/csv/CsvFormats.js.map +0 -1
- package/dist/csv/CsvInputBar.css +0 -36
- package/dist/csv/CsvInputBar.css.map +0 -1
- package/dist/csv/CsvInputBar.js +0 -342
- package/dist/csv/CsvInputBar.js.map +0 -1
- package/dist/csv/CsvOverlay.css +0 -57
- package/dist/csv/CsvOverlay.css.map +0 -1
- package/dist/csv/CsvOverlay.js +0 -244
- package/dist/csv/CsvOverlay.js.map +0 -1
- package/dist/csv/CsvParser.js +0 -268
- package/dist/csv/CsvParser.js.map +0 -1
- package/dist/csv/CsvTypeParser.js +0 -235
- package/dist/csv/CsvTypeParser.js.map +0 -1
- package/dist/csv/NewTableColumnTypes.js +0 -16
- package/dist/csv/NewTableColumnTypes.js.map +0 -1
- package/dist/declaration.d.js +0 -2
- package/dist/declaration.d.js.map +0 -1
- package/dist/index.js +0 -18
- package/dist/index.js.map +0 -1
- package/dist/log/LogLevel.js +0 -11
- package/dist/log/LogLevel.js.map +0 -1
- package/dist/log/LogLevelMenuItem.css +0 -38
- package/dist/log/LogLevelMenuItem.css.map +0 -1
- package/dist/log/LogLevelMenuItem.js +0 -32
- package/dist/log/LogLevelMenuItem.js.map +0 -1
- package/dist/log/LogView.css +0 -65
- package/dist/log/LogView.css.map +0 -1
- package/dist/log/LogView.js +0 -487
- package/dist/log/LogView.js.map +0 -1
- package/dist/monaco/MonacoProviders.js +0 -314
- package/dist/monaco/MonacoProviders.js.map +0 -1
- package/dist/monaco/MonacoTheme.module.css +0 -54
- package/dist/monaco/MonacoTheme.module.css.map +0 -1
- package/dist/monaco/MonacoUtils.js +0 -423
- package/dist/monaco/MonacoUtils.js.map +0 -1
- package/dist/monaco/index.js +0 -4
- package/dist/monaco/index.js.map +0 -1
- package/dist/monaco/lang/Language.js +0 -2
- package/dist/monaco/lang/Language.js.map +0 -1
- package/dist/monaco/lang/db.js +0 -152
- package/dist/monaco/lang/db.js.map +0 -1
- package/dist/monaco/lang/groovy.js +0 -229
- package/dist/monaco/lang/groovy.js.map +0 -1
- package/dist/monaco/lang/log.js +0 -64
- package/dist/monaco/lang/log.js.map +0 -1
- package/dist/monaco/lang/python.js +0 -234
- package/dist/monaco/lang/python.js.map +0 -1
- package/dist/monaco/lang/scala.js +0 -264
- package/dist/monaco/lang/scala.js.map +0 -1
- package/dist/notebook/Editor.css +0 -6
- package/dist/notebook/Editor.css.map +0 -1
- package/dist/notebook/Editor.js +0 -130
- package/dist/notebook/Editor.js.map +0 -1
- package/dist/notebook/ScriptEditor.css +0 -8
- package/dist/notebook/ScriptEditor.css.map +0 -1
- package/dist/notebook/ScriptEditor.js +0 -310
- package/dist/notebook/ScriptEditor.js.map +0 -1
- package/dist/notebook/ScriptEditorUtils.js +0 -34
- package/dist/notebook/ScriptEditorUtils.js.map +0 -1
|
@@ -1,310 +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
|
-
* Script editor for large blocks of code
|
|
6
|
-
*/
|
|
7
|
-
import React, { Component } from 'react';
|
|
8
|
-
import { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';
|
|
9
|
-
import Log from '@deephaven/log';
|
|
10
|
-
import { assertNotNull } from '@deephaven/utils';
|
|
11
|
-
import { editor } from 'monaco-editor';
|
|
12
|
-
import Editor from "./Editor.js";
|
|
13
|
-
import { MonacoProviders, MonacoUtils } from "../monaco/index.js";
|
|
14
|
-
import "./ScriptEditor.css";
|
|
15
|
-
import SHORTCUTS from "../ConsoleShortcuts.js";
|
|
16
|
-
var log = Log.module('ScriptEditor');
|
|
17
|
-
class ScriptEditor extends Component {
|
|
18
|
-
constructor(props) {
|
|
19
|
-
super(props);
|
|
20
|
-
_defineProperty(this, "contextActionCleanups", void 0);
|
|
21
|
-
_defineProperty(this, "completionCleanup", void 0);
|
|
22
|
-
_defineProperty(this, "editor", void 0);
|
|
23
|
-
_defineProperty(this, "editorComponent", void 0);
|
|
24
|
-
this.handleEditorInitialized = this.handleEditorInitialized.bind(this);
|
|
25
|
-
this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);
|
|
26
|
-
this.handleRun = this.handleRun.bind(this);
|
|
27
|
-
this.handleRunSelected = this.handleRunSelected.bind(this);
|
|
28
|
-
this.updateShortcuts = this.updateShortcuts.bind(this);
|
|
29
|
-
this.contextActionCleanups = [];
|
|
30
|
-
this.editorComponent = /*#__PURE__*/React.createRef();
|
|
31
|
-
this.state = {
|
|
32
|
-
model: null
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
componentDidMount() {
|
|
36
|
-
ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);
|
|
37
|
-
}
|
|
38
|
-
componentDidUpdate(prevProps) {
|
|
39
|
-
var _prevProps$settings, _prevProps$settings2;
|
|
40
|
-
var {
|
|
41
|
-
sessionLanguage,
|
|
42
|
-
settings
|
|
43
|
-
} = this.props;
|
|
44
|
-
var language = settings === null || settings === void 0 ? void 0 : settings.language;
|
|
45
|
-
var languageChanged = language !== ((_prevProps$settings = prevProps.settings) === null || _prevProps$settings === void 0 ? void 0 : _prevProps$settings.language);
|
|
46
|
-
if (languageChanged) {
|
|
47
|
-
log.debug('Set language', language);
|
|
48
|
-
this.setLanguage(language);
|
|
49
|
-
}
|
|
50
|
-
var sessionDisconnected = sessionLanguage == null && prevProps.sessionLanguage != null;
|
|
51
|
-
var languageMatch = language === sessionLanguage;
|
|
52
|
-
var prevLanguageMatch = ((_prevProps$settings2 = prevProps.settings) === null || _prevProps$settings2 === void 0 ? void 0 : _prevProps$settings2.language) === prevProps.sessionLanguage;
|
|
53
|
-
if (sessionDisconnected || sessionLanguage !== undefined && prevLanguageMatch && !languageMatch) {
|
|
54
|
-
// Session disconnected or language changed from matching the session language to non-matching
|
|
55
|
-
log.debug('De-init completion and context actions');
|
|
56
|
-
this.deInitContextActions();
|
|
57
|
-
this.deInitCodeCompletion();
|
|
58
|
-
}
|
|
59
|
-
var sessionConnected = sessionLanguage != null && prevProps.sessionLanguage == null;
|
|
60
|
-
if (sessionConnected && languageMatch || sessionLanguage !== undefined && !prevLanguageMatch && languageMatch) {
|
|
61
|
-
// Session connected with a matching language or notebook language changed to matching
|
|
62
|
-
log.debug('Init completion and context actions');
|
|
63
|
-
this.initContextActions();
|
|
64
|
-
this.initCodeCompletion();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
componentWillUnmount() {
|
|
68
|
-
ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);
|
|
69
|
-
}
|
|
70
|
-
getValue() {
|
|
71
|
-
if (this.editor) {
|
|
72
|
-
return this.editor.getValue();
|
|
73
|
-
}
|
|
74
|
-
log.error('Editor not initialized');
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
getSelectedCommand() {
|
|
78
|
-
var _this$editor, _this$editor2;
|
|
79
|
-
var range = (_this$editor = this.editor) === null || _this$editor === void 0 ? void 0 : _this$editor.getSelection();
|
|
80
|
-
assertNotNull(range);
|
|
81
|
-
var model = (_this$editor2 = this.editor) === null || _this$editor2 === void 0 ? void 0 : _this$editor2.getModel();
|
|
82
|
-
assertNotNull(model);
|
|
83
|
-
var {
|
|
84
|
-
startLineNumber,
|
|
85
|
-
endColumn
|
|
86
|
-
} = range;
|
|
87
|
-
var {
|
|
88
|
-
endLineNumber
|
|
89
|
-
} = range;
|
|
90
|
-
if (endColumn === 1 && endLineNumber > startLineNumber) {
|
|
91
|
-
endLineNumber -= 1;
|
|
92
|
-
}
|
|
93
|
-
var startLineMinColumn = model === null || model === void 0 ? void 0 : model.getLineMinColumn(startLineNumber);
|
|
94
|
-
var endLineMaxColumn = model === null || model === void 0 ? void 0 : model.getLineMaxColumn(endLineNumber);
|
|
95
|
-
var wholeLineRange = range.setStartPosition(startLineNumber, startLineMinColumn).setEndPosition(endLineNumber, endLineMaxColumn);
|
|
96
|
-
return model === null || model === void 0 ? void 0 : model.getValueInRange(wholeLineRange);
|
|
97
|
-
}
|
|
98
|
-
handleEditorInitialized(innerEditor) {
|
|
99
|
-
var {
|
|
100
|
-
focusOnMount,
|
|
101
|
-
onChange,
|
|
102
|
-
onEditorInitialized,
|
|
103
|
-
settings,
|
|
104
|
-
session,
|
|
105
|
-
sessionLanguage
|
|
106
|
-
} = this.props;
|
|
107
|
-
log.debug('handleEditorInitialized', sessionLanguage, session, settings);
|
|
108
|
-
this.editor = innerEditor;
|
|
109
|
-
this.setState({
|
|
110
|
-
model: this.editor.getModel()
|
|
111
|
-
});
|
|
112
|
-
MonacoUtils.setEOL(innerEditor);
|
|
113
|
-
MonacoUtils.registerPasteHandler(innerEditor);
|
|
114
|
-
if (session != null && settings && sessionLanguage === settings.language) {
|
|
115
|
-
this.initContextActions();
|
|
116
|
-
this.initCodeCompletion();
|
|
117
|
-
}
|
|
118
|
-
innerEditor.onDidChangeModelContent(onChange);
|
|
119
|
-
if (focusOnMount != null && focusOnMount) {
|
|
120
|
-
innerEditor.focus();
|
|
121
|
-
}
|
|
122
|
-
onEditorInitialized(this.editor);
|
|
123
|
-
}
|
|
124
|
-
handleEditorWillDestroy(innerEditor) {
|
|
125
|
-
log.debug('handleEditorWillDestroy');
|
|
126
|
-
var {
|
|
127
|
-
onEditorWillDestroy
|
|
128
|
-
} = this.props;
|
|
129
|
-
onEditorWillDestroy(innerEditor);
|
|
130
|
-
this.deInitContextActions();
|
|
131
|
-
this.deInitCodeCompletion();
|
|
132
|
-
this.setState({
|
|
133
|
-
model: null
|
|
134
|
-
});
|
|
135
|
-
this.editor = undefined;
|
|
136
|
-
}
|
|
137
|
-
handleRun() {
|
|
138
|
-
var {
|
|
139
|
-
onRunCommand
|
|
140
|
-
} = this.props;
|
|
141
|
-
var command = this.getValue();
|
|
142
|
-
if (command != null) {
|
|
143
|
-
onRunCommand(command);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
handleRunSelected() {
|
|
147
|
-
var {
|
|
148
|
-
onRunCommand
|
|
149
|
-
} = this.props;
|
|
150
|
-
var command = this.getSelectedCommand();
|
|
151
|
-
onRunCommand(command);
|
|
152
|
-
}
|
|
153
|
-
initContextActions() {
|
|
154
|
-
if (this.contextActionCleanups.length > 0) {
|
|
155
|
-
log.error('Context actions already initialized.');
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
if (!this.editor) {
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
var cleanups = [];
|
|
162
|
-
cleanups.push(this.editor.addAction({
|
|
163
|
-
id: 'run-code',
|
|
164
|
-
label: 'Run',
|
|
165
|
-
keybindings: [MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN)],
|
|
166
|
-
contextMenuGroupId: 'navigation',
|
|
167
|
-
contextMenuOrder: 1.5,
|
|
168
|
-
run: () => {
|
|
169
|
-
this.handleRun();
|
|
170
|
-
}
|
|
171
|
-
}));
|
|
172
|
-
cleanups.push(this.editor.addAction({
|
|
173
|
-
id: 'run-selected-code',
|
|
174
|
-
label: 'Run Selected',
|
|
175
|
-
keybindings: [MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN_SELECTED)],
|
|
176
|
-
contextMenuGroupId: 'navigation',
|
|
177
|
-
contextMenuOrder: 1.5,
|
|
178
|
-
run: () => {
|
|
179
|
-
this.handleRunSelected();
|
|
180
|
-
}
|
|
181
|
-
}));
|
|
182
|
-
this.contextActionCleanups = cleanups;
|
|
183
|
-
}
|
|
184
|
-
deInitContextActions() {
|
|
185
|
-
if (this.contextActionCleanups.length > 0) {
|
|
186
|
-
this.contextActionCleanups.forEach(cleanup => cleanup.dispose());
|
|
187
|
-
this.contextActionCleanups = [];
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
updateShortcuts() {
|
|
191
|
-
this.deInitContextActions();
|
|
192
|
-
this.initContextActions();
|
|
193
|
-
}
|
|
194
|
-
initCodeCompletion() {
|
|
195
|
-
if (this.completionCleanup != null) {
|
|
196
|
-
log.error('Code completion already initialized.');
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
var {
|
|
200
|
-
session
|
|
201
|
-
} = this.props;
|
|
202
|
-
log.debug('initCodeCompletion', this.editor, session);
|
|
203
|
-
if (this.editor && session != null) {
|
|
204
|
-
this.completionCleanup = MonacoUtils.openDocument(this.editor, session);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
deInitCodeCompletion() {
|
|
208
|
-
var {
|
|
209
|
-
session
|
|
210
|
-
} = this.props;
|
|
211
|
-
log.debug('deInitCodeCompletion', this.editor, session);
|
|
212
|
-
if (this.completionCleanup) {
|
|
213
|
-
this.completionCleanup.dispose();
|
|
214
|
-
this.completionCleanup = undefined;
|
|
215
|
-
if (this.editor && session != null) {
|
|
216
|
-
MonacoUtils.closeDocument(this.editor, session);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
append(text) {
|
|
221
|
-
var focus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
222
|
-
assertNotNull(this.editor);
|
|
223
|
-
var model = this.editor.getModel();
|
|
224
|
-
assertNotNull(model);
|
|
225
|
-
var currentText = model.getValue();
|
|
226
|
-
if (currentText) {
|
|
227
|
-
model.setValue("".concat(currentText, "\n").concat(text));
|
|
228
|
-
} else {
|
|
229
|
-
model.setValue("".concat(text));
|
|
230
|
-
}
|
|
231
|
-
var lastLine = model.getLineCount();
|
|
232
|
-
var column = model.getLineLength(lastLine) + 1;
|
|
233
|
-
this.editor.setPosition({
|
|
234
|
-
lineNumber: lastLine,
|
|
235
|
-
column
|
|
236
|
-
});
|
|
237
|
-
if (focus) {
|
|
238
|
-
this.editor.focus();
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
updateDimensions() {
|
|
242
|
-
log.debug('updateDimensions');
|
|
243
|
-
if (this.editor) {
|
|
244
|
-
this.editor.layout();
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
focus() {
|
|
248
|
-
log.debug('focus');
|
|
249
|
-
if (this.editor) {
|
|
250
|
-
this.editor.focus();
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
toggleFind() {
|
|
254
|
-
if (this.editorComponent.current) {
|
|
255
|
-
this.editorComponent.current.toggleFind();
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
setLanguage(language) {
|
|
259
|
-
if (this.editorComponent.current && language !== undefined) {
|
|
260
|
-
this.editorComponent.current.setLanguage(language);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
render() {
|
|
264
|
-
var _settings$language;
|
|
265
|
-
var {
|
|
266
|
-
error,
|
|
267
|
-
isLoaded,
|
|
268
|
-
isLoading,
|
|
269
|
-
session,
|
|
270
|
-
sessionLanguage,
|
|
271
|
-
settings
|
|
272
|
-
} = this.props;
|
|
273
|
-
var {
|
|
274
|
-
model
|
|
275
|
-
} = this.state;
|
|
276
|
-
var errorMessage = error ? "Unable to open document. ".concat(error) : null;
|
|
277
|
-
var editorLanguage = settings ? (_settings$language = settings.language) !== null && _settings$language !== void 0 ? _settings$language : null : null;
|
|
278
|
-
var completionProviderEnabled = model && session && editorLanguage === sessionLanguage;
|
|
279
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, (error || isLoading) && /*#__PURE__*/React.createElement("div", {
|
|
280
|
-
className: "h-100 w-100 position-relative"
|
|
281
|
-
}, /*#__PURE__*/React.createElement(LoadingOverlay, {
|
|
282
|
-
errorMessage: errorMessage,
|
|
283
|
-
isLoading: isLoading,
|
|
284
|
-
isLoaded: isLoaded
|
|
285
|
-
})), isLoaded && /*#__PURE__*/React.createElement("div", {
|
|
286
|
-
className: "h-100 w-100 script-editor"
|
|
287
|
-
}, settings && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Editor, {
|
|
288
|
-
ref: this.editorComponent,
|
|
289
|
-
settings: settings,
|
|
290
|
-
onEditorInitialized: this.handleEditorInitialized,
|
|
291
|
-
onEditorWillDestroy: this.handleEditorWillDestroy
|
|
292
|
-
}), completionProviderEnabled != null && completionProviderEnabled && /*#__PURE__*/React.createElement(MonacoProviders, {
|
|
293
|
-
model: model,
|
|
294
|
-
language: editorLanguage,
|
|
295
|
-
session: session
|
|
296
|
-
}))));
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
_defineProperty(ScriptEditor, "defaultProps", {
|
|
300
|
-
error: null,
|
|
301
|
-
isLoading: false,
|
|
302
|
-
isLoaded: false,
|
|
303
|
-
focusOnMount: true,
|
|
304
|
-
onChange: () => undefined,
|
|
305
|
-
onEditorInitialized: () => undefined,
|
|
306
|
-
onEditorWillDestroy: () => undefined,
|
|
307
|
-
session: null
|
|
308
|
-
});
|
|
309
|
-
export default ScriptEditor;
|
|
310
|
-
//# sourceMappingURL=ScriptEditor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptEditor.js","names":["React","Component","LoadingOverlay","ShortcutRegistry","Log","assertNotNull","editor","Editor","MonacoProviders","MonacoUtils","SHORTCUTS","log","module","ScriptEditor","constructor","props","handleEditorInitialized","bind","handleEditorWillDestroy","handleRun","handleRunSelected","updateShortcuts","contextActionCleanups","editorComponent","createRef","state","model","componentDidMount","addEventListener","componentDidUpdate","prevProps","sessionLanguage","settings","language","languageChanged","debug","setLanguage","sessionDisconnected","languageMatch","prevLanguageMatch","undefined","deInitContextActions","deInitCodeCompletion","sessionConnected","initContextActions","initCodeCompletion","componentWillUnmount","removeEventListener","getValue","error","getSelectedCommand","range","getSelection","getModel","startLineNumber","endColumn","endLineNumber","startLineMinColumn","getLineMinColumn","endLineMaxColumn","getLineMaxColumn","wholeLineRange","setStartPosition","setEndPosition","getValueInRange","innerEditor","focusOnMount","onChange","onEditorInitialized","session","setState","setEOL","registerPasteHandler","onDidChangeModelContent","focus","onEditorWillDestroy","onRunCommand","command","length","cleanups","push","addAction","id","label","keybindings","getMonacoKeyCodeFromShortcut","NOTEBOOK","RUN","contextMenuGroupId","contextMenuOrder","run","RUN_SELECTED","forEach","cleanup","dispose","completionCleanup","openDocument","closeDocument","append","text","currentText","setValue","lastLine","getLineCount","column","getLineLength","setPosition","lineNumber","updateDimensions","layout","toggleFind","current","render","isLoaded","isLoading","errorMessage","editorLanguage","completionProviderEnabled"],"sources":["../../src/notebook/ScriptEditor.tsx"],"sourcesContent":["/**\n * Script editor for large blocks of code\n */\nimport React, { Component, ReactElement, RefObject } from 'react';\nimport { LoadingOverlay, ShortcutRegistry } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport type { IdeSession } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport { editor, IDisposable } from 'monaco-editor';\nimport Editor from './Editor';\nimport { MonacoProviders, MonacoUtils } from '../monaco';\nimport './ScriptEditor.scss';\nimport SHORTCUTS from '../ConsoleShortcuts';\n\nconst log = Log.module('ScriptEditor');\n\ninterface ScriptEditorProps {\n error?: { message?: string };\n isLoading: boolean;\n isLoaded: boolean;\n focusOnMount?: boolean;\n onChange: (e: editor.IModelContentChangedEvent) => void;\n onRunCommand: (command: string) => void;\n onEditorInitialized: (editor: editor.IStandaloneCodeEditor) => void;\n onEditorWillDestroy: (editor: editor.IStandaloneCodeEditor) => void;\n session: IdeSession | null;\n sessionLanguage?: string;\n settings?: editor.IStandaloneEditorConstructionOptions;\n}\n\ninterface ScriptEditorState {\n model: editor.ITextModel | null;\n}\n\nclass ScriptEditor extends Component<ScriptEditorProps, ScriptEditorState> {\n static defaultProps = {\n error: null,\n isLoading: false,\n isLoaded: false,\n focusOnMount: true,\n onChange: (): void => undefined,\n onEditorInitialized: (): void => undefined,\n onEditorWillDestroy: (): void => undefined,\n session: null,\n };\n\n constructor(props: ScriptEditorProps) {\n super(props);\n this.handleEditorInitialized = this.handleEditorInitialized.bind(this);\n this.handleEditorWillDestroy = this.handleEditorWillDestroy.bind(this);\n this.handleRun = this.handleRun.bind(this);\n this.handleRunSelected = this.handleRunSelected.bind(this);\n this.updateShortcuts = this.updateShortcuts.bind(this);\n\n this.contextActionCleanups = [];\n this.editorComponent = React.createRef();\n\n this.state = {\n model: null,\n };\n }\n\n componentDidMount(): void {\n ShortcutRegistry.addEventListener('onUpdate', this.updateShortcuts);\n }\n\n componentDidUpdate(prevProps: ScriptEditorProps): void {\n const { sessionLanguage, settings } = this.props;\n\n const language = settings?.language;\n\n const languageChanged = language !== prevProps.settings?.language;\n if (languageChanged) {\n log.debug('Set language', language);\n this.setLanguage(language);\n }\n\n const sessionDisconnected =\n sessionLanguage == null && prevProps.sessionLanguage != null;\n const languageMatch = language === sessionLanguage;\n const prevLanguageMatch =\n prevProps.settings?.language === prevProps.sessionLanguage;\n if (\n sessionDisconnected ||\n (sessionLanguage !== undefined && prevLanguageMatch && !languageMatch)\n ) {\n // Session disconnected or language changed from matching the session language to non-matching\n log.debug('De-init completion and context actions');\n this.deInitContextActions();\n this.deInitCodeCompletion();\n }\n\n const sessionConnected =\n sessionLanguage != null && prevProps.sessionLanguage == null;\n if (\n (sessionConnected && languageMatch) ||\n (sessionLanguage !== undefined && !prevLanguageMatch && languageMatch)\n ) {\n // Session connected with a matching language or notebook language changed to matching\n log.debug('Init completion and context actions');\n this.initContextActions();\n this.initCodeCompletion();\n }\n }\n\n componentWillUnmount(): void {\n ShortcutRegistry.removeEventListener('onUpdate', this.updateShortcuts);\n }\n\n contextActionCleanups: IDisposable[];\n\n completionCleanup?: IDisposable;\n\n editor?: editor.IStandaloneCodeEditor;\n\n editorComponent: RefObject<Editor>;\n\n getValue(): string | null {\n if (this.editor) {\n return this.editor.getValue();\n }\n log.error('Editor not initialized');\n return null;\n }\n\n getSelectedCommand(): string {\n const range = this.editor?.getSelection();\n assertNotNull(range);\n const model = this.editor?.getModel();\n assertNotNull(model);\n const { startLineNumber, endColumn } = range;\n let { endLineNumber } = range;\n if (endColumn === 1 && endLineNumber > startLineNumber) {\n endLineNumber -= 1;\n }\n const startLineMinColumn = model?.getLineMinColumn(startLineNumber);\n const endLineMaxColumn = model?.getLineMaxColumn(endLineNumber);\n const wholeLineRange = range\n .setStartPosition(startLineNumber, startLineMinColumn)\n .setEndPosition(endLineNumber, endLineMaxColumn);\n return model?.getValueInRange(wholeLineRange);\n }\n\n handleEditorInitialized(innerEditor: editor.IStandaloneCodeEditor): void {\n const {\n focusOnMount,\n onChange,\n onEditorInitialized,\n settings,\n session,\n sessionLanguage,\n } = this.props;\n\n log.debug('handleEditorInitialized', sessionLanguage, session, settings);\n\n this.editor = innerEditor;\n this.setState({ model: this.editor.getModel() });\n\n MonacoUtils.setEOL(innerEditor);\n MonacoUtils.registerPasteHandler(innerEditor);\n\n if (session != null && settings && sessionLanguage === settings.language) {\n this.initContextActions();\n this.initCodeCompletion();\n }\n\n innerEditor.onDidChangeModelContent(onChange);\n if (focusOnMount != null && focusOnMount) {\n innerEditor.focus();\n }\n\n onEditorInitialized(this.editor);\n }\n\n handleEditorWillDestroy(innerEditor: editor.IStandaloneCodeEditor): void {\n log.debug('handleEditorWillDestroy');\n const { onEditorWillDestroy } = this.props;\n onEditorWillDestroy(innerEditor);\n this.deInitContextActions();\n this.deInitCodeCompletion();\n this.setState({ model: null });\n this.editor = undefined;\n }\n\n handleRun(): void {\n const { onRunCommand } = this.props;\n const command = this.getValue();\n if (command != null) {\n onRunCommand(command);\n }\n }\n\n handleRunSelected(): void {\n const { onRunCommand } = this.props;\n const command = this.getSelectedCommand();\n onRunCommand(command);\n }\n\n initContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n log.error('Context actions already initialized.');\n return;\n }\n\n if (!this.editor) {\n return;\n }\n\n const cleanups = [];\n cleanups.push(\n this.editor.addAction({\n id: 'run-code',\n label: 'Run',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(SHORTCUTS.NOTEBOOK.RUN),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRun();\n },\n })\n );\n\n cleanups.push(\n this.editor.addAction({\n id: 'run-selected-code',\n label: 'Run Selected',\n keybindings: [\n MonacoUtils.getMonacoKeyCodeFromShortcut(\n SHORTCUTS.NOTEBOOK.RUN_SELECTED\n ),\n ],\n contextMenuGroupId: 'navigation',\n contextMenuOrder: 1.5,\n\n run: () => {\n this.handleRunSelected();\n },\n })\n );\n\n this.contextActionCleanups = cleanups;\n }\n\n deInitContextActions(): void {\n if (this.contextActionCleanups.length > 0) {\n this.contextActionCleanups.forEach(cleanup => cleanup.dispose());\n this.contextActionCleanups = [];\n }\n }\n\n updateShortcuts(): void {\n this.deInitContextActions();\n this.initContextActions();\n }\n\n initCodeCompletion(): void {\n if (this.completionCleanup != null) {\n log.error('Code completion already initialized.');\n return;\n }\n const { session } = this.props;\n log.debug('initCodeCompletion', this.editor, session);\n if (this.editor && session != null) {\n this.completionCleanup = MonacoUtils.openDocument(this.editor, session);\n }\n }\n\n deInitCodeCompletion(): void {\n const { session } = this.props;\n log.debug('deInitCodeCompletion', this.editor, session);\n if (this.completionCleanup) {\n this.completionCleanup.dispose();\n this.completionCleanup = undefined;\n if (this.editor && session != null) {\n MonacoUtils.closeDocument(this.editor, session);\n }\n }\n }\n\n append(text: string, focus = true): void {\n assertNotNull(this.editor);\n const model = this.editor.getModel();\n assertNotNull(model);\n const currentText = model.getValue();\n if (currentText) {\n model.setValue(`${currentText}\\n${text}`);\n } else {\n model.setValue(`${text}`);\n }\n\n const lastLine = model.getLineCount();\n const column = model.getLineLength(lastLine) + 1;\n\n this.editor.setPosition({ lineNumber: lastLine, column });\n\n if (focus) {\n this.editor.focus();\n }\n }\n\n updateDimensions(): void {\n log.debug('updateDimensions');\n if (this.editor) {\n this.editor.layout();\n }\n }\n\n focus(): void {\n log.debug('focus');\n if (this.editor) {\n this.editor.focus();\n }\n }\n\n toggleFind(): void {\n if (this.editorComponent.current) {\n this.editorComponent.current.toggleFind();\n }\n }\n\n setLanguage(language?: string): void {\n if (this.editorComponent.current && language !== undefined) {\n this.editorComponent.current.setLanguage(language);\n }\n }\n\n render(): ReactElement {\n const {\n error,\n isLoaded,\n isLoading,\n session,\n sessionLanguage,\n settings,\n } = this.props;\n const { model } = this.state;\n const errorMessage = error ? `Unable to open document. ${error}` : null;\n const editorLanguage = settings ? settings.language ?? null : null;\n const completionProviderEnabled =\n model && session && editorLanguage === sessionLanguage;\n\n return (\n <>\n {(error || isLoading) && (\n <div className=\"h-100 w-100 position-relative\">\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n />\n </div>\n )}\n\n {isLoaded && (\n <div className=\"h-100 w-100 script-editor\">\n {settings && (\n <>\n <Editor\n ref={this.editorComponent}\n settings={settings}\n onEditorInitialized={this.handleEditorInitialized}\n onEditorWillDestroy={this.handleEditorWillDestroy}\n />\n {completionProviderEnabled != null &&\n completionProviderEnabled && (\n <MonacoProviders\n model={model}\n language={editorLanguage}\n session={session}\n />\n )}\n </>\n )}\n </div>\n )}\n </>\n );\n }\n}\n\nexport default ScriptEditor;\n"],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
var LANGUAGES = {
|
|
2
|
-
groovy: 'Groovy',
|
|
3
|
-
python: 'Python',
|
|
4
|
-
scala: 'Scala'
|
|
5
|
-
};
|
|
6
|
-
class ScriptEditorUtils {
|
|
7
|
-
/** Get PQ script language from Monaco language
|
|
8
|
-
* @paramlanguage Monaco language
|
|
9
|
-
* @returns PQ script language
|
|
10
|
-
*/
|
|
11
|
-
static normalizeScriptLanguage(language) {
|
|
12
|
-
return LANGUAGES[language] || null;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Get a tooltip for disabled button based on the session status and language
|
|
17
|
-
* @param isSessionConnected True if console session connected
|
|
18
|
-
* @param isLanguageMatching True if the script language is matching the session language
|
|
19
|
-
* @param scriptLanguageLabel Language label to use in the tooltip message
|
|
20
|
-
* @param buttonLabel Button label to use in the tooltip message
|
|
21
|
-
* @returns Tooltip message or `null` if the session is connected and language is matching
|
|
22
|
-
*/
|
|
23
|
-
static getDisabledRunTooltip(isSessionConnected, isLanguageMatching, scriptLanguageLabel, buttonLabel) {
|
|
24
|
-
if (!isSessionConnected) {
|
|
25
|
-
return "Console session not connected \u2013 ".concat(buttonLabel, " disabled");
|
|
26
|
-
}
|
|
27
|
-
if (!isLanguageMatching) {
|
|
28
|
-
return "".concat(scriptLanguageLabel, " doesn't match the session language \u2013 ").concat(buttonLabel, " disabled");
|
|
29
|
-
}
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
export default ScriptEditorUtils;
|
|
34
|
-
//# sourceMappingURL=ScriptEditorUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptEditorUtils.js","names":["LANGUAGES","groovy","python","scala","ScriptEditorUtils","normalizeScriptLanguage","language","getDisabledRunTooltip","isSessionConnected","isLanguageMatching","scriptLanguageLabel","buttonLabel"],"sources":["../../src/notebook/ScriptEditorUtils.ts"],"sourcesContent":["const LANGUAGES = {\n groovy: 'Groovy',\n python: 'Python',\n scala: 'Scala',\n} as const;\n\nclass ScriptEditorUtils {\n /** Get PQ script language from Monaco language\n * @paramlanguage Monaco language\n * @returns PQ script language\n */\n static normalizeScriptLanguage(language: keyof typeof LANGUAGES): string {\n return LANGUAGES[language] || null;\n }\n\n /**\n * Get a tooltip for disabled button based on the session status and language\n * @param isSessionConnected True if console session connected\n * @param isLanguageMatching True if the script language is matching the session language\n * @param scriptLanguageLabel Language label to use in the tooltip message\n * @param buttonLabel Button label to use in the tooltip message\n * @returns Tooltip message or `null` if the session is connected and language is matching\n */\n static getDisabledRunTooltip(\n isSessionConnected: boolean,\n isLanguageMatching: boolean,\n scriptLanguageLabel: string,\n buttonLabel: string\n ): string | null {\n if (!isSessionConnected) {\n return `Console session not connected – ${buttonLabel} disabled`;\n }\n if (!isLanguageMatching) {\n return `${scriptLanguageLabel} doesn't match the session language – ${buttonLabel} disabled`;\n }\n return null;\n }\n}\n\nexport default ScriptEditorUtils;\n"],"mappings":"AAAA,IAAMA,SAAS,GAAG;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE;AACT,CAAU;AAEV,MAAMC,iBAAiB,CAAC;EACtB;AACF;AACA;AACA;EACE,OAAOC,uBAAuB,CAACC,QAAgC,EAAU;IACvE,OAAON,SAAS,CAACM,QAAQ,CAAC,IAAI,IAAI;EACpC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,qBAAqB,CAC1BC,kBAA2B,EAC3BC,kBAA2B,EAC3BC,mBAA2B,EAC3BC,WAAmB,EACJ;IACf,IAAI,CAACH,kBAAkB,EAAE;MACvB,sDAA0CG,WAAW;IACvD;IACA,IAAI,CAACF,kBAAkB,EAAE;MACvB,iBAAUC,mBAAmB,wDAAyCC,WAAW;IACnF;IACA,OAAO,IAAI;EACb;AACF;AAEA,eAAeP,iBAAiB"}
|