@theia/notebook 1.52.0 → 1.53.0-next.18
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/lib/browser/contributions/cell-operations.d.ts +1 -1
- package/lib/browser/contributions/cell-operations.d.ts.map +1 -1
- package/lib/browser/contributions/cell-operations.js +10 -2
- package/lib/browser/contributions/cell-operations.js.map +1 -1
- package/lib/browser/contributions/notebook-actions-contribution.d.ts +2 -0
- package/lib/browser/contributions/notebook-actions-contribution.d.ts.map +1 -1
- package/lib/browser/contributions/notebook-actions-contribution.js +43 -24
- package/lib/browser/contributions/notebook-actions-contribution.js.map +1 -1
- package/lib/browser/contributions/notebook-cell-actions-contribution.d.ts +4 -0
- package/lib/browser/contributions/notebook-cell-actions-contribution.d.ts.map +1 -1
- package/lib/browser/contributions/notebook-cell-actions-contribution.js +61 -16
- package/lib/browser/contributions/notebook-cell-actions-contribution.js.map +1 -1
- package/lib/browser/contributions/notebook-status-bar-contribution.d.ts +14 -0
- package/lib/browser/contributions/notebook-status-bar-contribution.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-status-bar-contribution.js +75 -0
- package/lib/browser/contributions/notebook-status-bar-contribution.js.map +1 -0
- package/lib/browser/contributions/notebook-undo-redo-handler.d.ts +10 -0
- package/lib/browser/contributions/notebook-undo-redo-handler.d.ts.map +1 -0
- package/lib/browser/contributions/notebook-undo-redo-handler.js +49 -0
- package/lib/browser/contributions/notebook-undo-redo-handler.js.map +1 -0
- package/lib/browser/notebook-editor-widget.d.ts +6 -0
- package/lib/browser/notebook-editor-widget.d.ts.map +1 -1
- package/lib/browser/notebook-editor-widget.js +40 -4
- package/lib/browser/notebook-editor-widget.js.map +1 -1
- package/lib/browser/notebook-frontend-module.d.ts.map +1 -1
- package/lib/browser/notebook-frontend-module.js +6 -0
- package/lib/browser/notebook-frontend-module.js.map +1 -1
- package/lib/browser/service/notebook-context-manager.d.ts +2 -1
- package/lib/browser/service/notebook-context-manager.d.ts.map +1 -1
- package/lib/browser/service/notebook-context-manager.js +6 -3
- package/lib/browser/service/notebook-context-manager.js.map +1 -1
- package/lib/browser/service/notebook-options.d.ts +1 -0
- package/lib/browser/service/notebook-options.d.ts.map +1 -1
- package/lib/browser/service/notebook-options.js +1 -0
- package/lib/browser/service/notebook-options.js.map +1 -1
- package/lib/browser/service/notebook-service.d.ts +1 -0
- package/lib/browser/service/notebook-service.d.ts.map +1 -1
- package/lib/browser/service/notebook-service.js +7 -0
- package/lib/browser/service/notebook-service.js.map +1 -1
- package/lib/browser/view/notebook-cell-editor.d.ts +8 -1
- package/lib/browser/view/notebook-cell-editor.d.ts.map +1 -1
- package/lib/browser/view/notebook-cell-editor.js +89 -5
- package/lib/browser/view/notebook-cell-editor.js.map +1 -1
- package/lib/browser/view/notebook-cell-list-view.d.ts +3 -0
- package/lib/browser/view/notebook-cell-list-view.d.ts.map +1 -1
- package/lib/browser/view/notebook-cell-list-view.js +33 -2
- package/lib/browser/view/notebook-cell-list-view.js.map +1 -1
- package/lib/browser/view/notebook-code-cell-view.d.ts +1 -1
- package/lib/browser/view/notebook-code-cell-view.d.ts.map +1 -1
- package/lib/browser/view/notebook-code-cell-view.js +19 -17
- package/lib/browser/view/notebook-code-cell-view.js.map +1 -1
- package/lib/browser/view/notebook-find-widget.d.ts +63 -0
- package/lib/browser/view/notebook-find-widget.d.ts.map +1 -0
- package/lib/browser/view/notebook-find-widget.js +225 -0
- package/lib/browser/view/notebook-find-widget.js.map +1 -0
- package/lib/browser/view/notebook-markdown-cell-view.d.ts +4 -0
- package/lib/browser/view/notebook-markdown-cell-view.d.ts.map +1 -1
- package/lib/browser/view/notebook-markdown-cell-view.js +105 -8
- package/lib/browser/view/notebook-markdown-cell-view.js.map +1 -1
- package/lib/browser/view-model/notebook-cell-model.d.ts +27 -1
- package/lib/browser/view-model/notebook-cell-model.d.ts.map +1 -1
- package/lib/browser/view-model/notebook-cell-model.js +76 -1
- package/lib/browser/view-model/notebook-cell-model.js.map +1 -1
- package/lib/browser/view-model/notebook-model.d.ts +8 -1
- package/lib/browser/view-model/notebook-model.d.ts.map +1 -1
- package/lib/browser/view-model/notebook-model.js +66 -14
- package/lib/browser/view-model/notebook-model.js.map +1 -1
- package/package.json +8 -7
- package/src/browser/contributions/cell-operations.ts +8 -2
- package/src/browser/contributions/notebook-actions-contribution.ts +47 -22
- package/src/browser/contributions/notebook-cell-actions-contribution.ts +65 -17
- package/src/browser/contributions/notebook-status-bar-contribution.ts +77 -0
- package/src/browser/contributions/notebook-undo-redo-handler.ts +41 -0
- package/src/browser/notebook-editor-widget.tsx +50 -5
- package/src/browser/notebook-frontend-module.ts +9 -1
- package/src/browser/service/notebook-context-manager.ts +8 -4
- package/src/browser/service/notebook-options.ts +2 -1
- package/src/browser/service/notebook-service.ts +7 -1
- package/src/browser/style/index.css +165 -6
- package/src/browser/view/notebook-cell-editor.tsx +94 -5
- package/src/browser/view/notebook-cell-list-view.tsx +40 -4
- package/src/browser/view/notebook-code-cell-view.tsx +19 -17
- package/src/browser/view/notebook-find-widget.tsx +335 -0
- package/src/browser/view/notebook-markdown-cell-view.tsx +134 -17
- package/src/browser/view-model/notebook-cell-model.ts +101 -8
- package/src/browser/view-model/notebook-model.ts +77 -20
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2024 TypeFox and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.NotebookFindWidget = void 0;
|
|
19
|
+
const core_1 = require("@theia/core");
|
|
20
|
+
const React = require("@theia/core/shared/react");
|
|
21
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
22
|
+
const debounce = require("lodash/debounce");
|
|
23
|
+
class NotebookFindWidget extends React.Component {
|
|
24
|
+
constructor(props) {
|
|
25
|
+
var _a;
|
|
26
|
+
super(props);
|
|
27
|
+
this.searchRef = React.createRef();
|
|
28
|
+
this.debounceSearch = debounce(this.search.bind(this), 50);
|
|
29
|
+
this.state = {
|
|
30
|
+
search: '',
|
|
31
|
+
replace: '',
|
|
32
|
+
currentMatch: 0,
|
|
33
|
+
matches: [],
|
|
34
|
+
expanded: false,
|
|
35
|
+
matchCase: false,
|
|
36
|
+
regex: false,
|
|
37
|
+
wholeWord: false,
|
|
38
|
+
activeFilters: ((_a = props.filters) === null || _a === void 0 ? void 0 : _a.filter(filter => filter.active).map(filter => filter.id)) || []
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
render() {
|
|
42
|
+
const hasMatches = this.hasMatches();
|
|
43
|
+
const canReplace = this.canReplace();
|
|
44
|
+
const canReplaceAll = this.canReplaceAll();
|
|
45
|
+
return (React.createElement("div", { onKeyUp: event => {
|
|
46
|
+
if (event.key === 'Escape') {
|
|
47
|
+
this.props.onClose();
|
|
48
|
+
}
|
|
49
|
+
}, className: `theia-notebook-find-widget ${!this.state.expanded ? 'search-mode' : ''} ${this.props.hidden ? 'hidden' : ''}` },
|
|
50
|
+
React.createElement("div", { className: 'theia-notebook-find-widget-expand', title: core_1.nls.localizeByDefault('Toggle Replace'), onClick: () => {
|
|
51
|
+
this.setState({
|
|
52
|
+
expanded: !this.state.expanded
|
|
53
|
+
});
|
|
54
|
+
} },
|
|
55
|
+
React.createElement("div", { className: (0, browser_1.codicon)(`chevron-${this.state.expanded ? 'down' : 'right'}`) })),
|
|
56
|
+
React.createElement("div", { className: 'theia-notebook-find-widget-inputs' },
|
|
57
|
+
React.createElement("div", { className: 'theia-notebook-find-widget-input-wrapper' },
|
|
58
|
+
React.createElement("input", { ref: this.searchRef, type: 'text', className: 'theia-input theia-notebook-find-widget-input', placeholder: core_1.nls.localizeByDefault('Find'), value: this.state.search, onChange: event => {
|
|
59
|
+
this.setState({
|
|
60
|
+
search: event.target.value
|
|
61
|
+
});
|
|
62
|
+
this.debounceSearch({});
|
|
63
|
+
}, onKeyDown: event => {
|
|
64
|
+
if (event.key === 'Enter') {
|
|
65
|
+
if (event.shiftKey) {
|
|
66
|
+
this.gotoPreviousMatch();
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
this.gotoNextMatch();
|
|
70
|
+
}
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
}
|
|
73
|
+
} }),
|
|
74
|
+
React.createElement("div", { className: `${(0, browser_1.codicon)('case-sensitive', true)} option ${this.state.matchCase ? 'enabled' : ''}`, title: core_1.nls.localizeByDefault('Match Case'), onClick: () => {
|
|
75
|
+
this.search({
|
|
76
|
+
matchCase: !this.state.matchCase
|
|
77
|
+
});
|
|
78
|
+
} }),
|
|
79
|
+
React.createElement("div", { className: `${(0, browser_1.codicon)('whole-word', true)} option ${this.state.wholeWord ? 'enabled' : ''}`, title: core_1.nls.localizeByDefault('Match Whole Word'), onClick: () => {
|
|
80
|
+
this.search({
|
|
81
|
+
wholeWord: !this.state.wholeWord
|
|
82
|
+
});
|
|
83
|
+
} }),
|
|
84
|
+
React.createElement("div", { className: `${(0, browser_1.codicon)('regex', true)} option ${this.state.regex ? 'enabled' : ''}`, title: core_1.nls.localizeByDefault('Use Regular Expression'), onClick: () => {
|
|
85
|
+
this.search({
|
|
86
|
+
regex: !this.state.regex
|
|
87
|
+
});
|
|
88
|
+
} })),
|
|
89
|
+
React.createElement("input", { type: 'text', className: 'theia-input theia-notebook-find-widget-replace', placeholder: core_1.nls.localizeByDefault('Replace'), value: this.state.replace, onChange: event => {
|
|
90
|
+
this.setState({
|
|
91
|
+
replace: event.target.value
|
|
92
|
+
});
|
|
93
|
+
}, onKeyDown: event => {
|
|
94
|
+
if (event.key === 'Enter') {
|
|
95
|
+
this.replaceOne();
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
}
|
|
98
|
+
} })),
|
|
99
|
+
React.createElement("div", { className: 'theia-notebook-find-widget-buttons' },
|
|
100
|
+
React.createElement("div", { className: 'theia-notebook-find-widget-buttons-first' },
|
|
101
|
+
React.createElement("div", { className: 'theia-notebook-find-widget-matches-count' }, this.getMatchesCount()),
|
|
102
|
+
React.createElement("div", { className: `${(0, browser_1.codicon)('arrow-up', hasMatches)} ${hasMatches ? '' : 'disabled'}`, title: core_1.nls.localizeByDefault('Previous Match'), onClick: () => {
|
|
103
|
+
this.gotoPreviousMatch();
|
|
104
|
+
} }),
|
|
105
|
+
React.createElement("div", { className: `${(0, browser_1.codicon)('arrow-down', hasMatches)} ${hasMatches ? '' : 'disabled'}`, title: core_1.nls.localizeByDefault('Next Match'), onClick: () => {
|
|
106
|
+
this.gotoNextMatch();
|
|
107
|
+
} }),
|
|
108
|
+
React.createElement("div", { className: (0, browser_1.codicon)('close', true), title: core_1.nls.localizeByDefault('Close'), onClick: () => {
|
|
109
|
+
this.props.onClose();
|
|
110
|
+
} })),
|
|
111
|
+
React.createElement("div", { className: 'theia-notebook-find-widget-buttons-second' },
|
|
112
|
+
React.createElement("div", { className: `${(0, browser_1.codicon)('replace', canReplace)} ${canReplace ? '' : 'disabled'}`, title: core_1.nls.localizeByDefault('Replace'), onClick: () => {
|
|
113
|
+
this.replaceOne();
|
|
114
|
+
} }),
|
|
115
|
+
React.createElement("div", { className: `${(0, browser_1.codicon)('replace-all', canReplaceAll)} ${canReplaceAll ? '' : 'disabled'}`, title: core_1.nls.localizeByDefault('Replace All'), onClick: () => {
|
|
116
|
+
this.replaceAll();
|
|
117
|
+
} })))));
|
|
118
|
+
}
|
|
119
|
+
hasMatches() {
|
|
120
|
+
return this.state.matches.length > 0;
|
|
121
|
+
}
|
|
122
|
+
canReplace() {
|
|
123
|
+
var _a;
|
|
124
|
+
return Boolean((_a = this.state.matches[this.state.currentMatch]) === null || _a === void 0 ? void 0 : _a.replace);
|
|
125
|
+
}
|
|
126
|
+
canReplaceAll() {
|
|
127
|
+
return this.state.matches.some(match => Boolean(match.replace));
|
|
128
|
+
}
|
|
129
|
+
getMatchesCount() {
|
|
130
|
+
if (this.hasMatches()) {
|
|
131
|
+
return core_1.nls.localizeByDefault('{0} of {1}', this.state.currentMatch + 1, this.state.matches.length);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
return core_1.nls.localizeByDefault('No results');
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
gotoNextMatch() {
|
|
138
|
+
this.search({
|
|
139
|
+
modifyIndex: (matches, index) => (index + 1) % matches.length,
|
|
140
|
+
jumpToMatch: true
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
gotoPreviousMatch() {
|
|
144
|
+
this.search({
|
|
145
|
+
modifyIndex: (matches, index) => (index === 0 ? matches.length : index) - 1,
|
|
146
|
+
jumpToMatch: true
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
replaceOne() {
|
|
150
|
+
var _a;
|
|
151
|
+
const existingMatches = this.state.matches;
|
|
152
|
+
const match = existingMatches[this.state.currentMatch];
|
|
153
|
+
if (match) {
|
|
154
|
+
(_a = match.replace) === null || _a === void 0 ? void 0 : _a.call(match, this.state.replace);
|
|
155
|
+
this.search({
|
|
156
|
+
jumpToMatch: true,
|
|
157
|
+
modifyIndex: (matches, index) => {
|
|
158
|
+
if (matches.length < existingMatches.length) {
|
|
159
|
+
return index % matches.length;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
const diff = matches.length - existingMatches.length;
|
|
163
|
+
return (index + diff + 1) % matches.length;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
replaceAll() {
|
|
170
|
+
this.props.onReplace(this.state.matches, this.state.replace);
|
|
171
|
+
this.search({});
|
|
172
|
+
}
|
|
173
|
+
componentDidUpdate(prevProps, prevState) {
|
|
174
|
+
var _a;
|
|
175
|
+
if (!this.props.hidden && prevProps.hidden) {
|
|
176
|
+
// Focus the search input when the widget switches from hidden to visible.
|
|
177
|
+
(_a = this.searchRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
focusSearch(content) {
|
|
181
|
+
var _a;
|
|
182
|
+
(_a = this.searchRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
183
|
+
if (content) {
|
|
184
|
+
this.search({
|
|
185
|
+
search: content,
|
|
186
|
+
jumpToMatch: false
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
search(options) {
|
|
191
|
+
var _a, _b, _c, _d;
|
|
192
|
+
const matchCase = (_a = options.matchCase) !== null && _a !== void 0 ? _a : this.state.matchCase;
|
|
193
|
+
const wholeWord = (_b = options.wholeWord) !== null && _b !== void 0 ? _b : this.state.wholeWord;
|
|
194
|
+
const regex = (_c = options.regex) !== null && _c !== void 0 ? _c : this.state.regex;
|
|
195
|
+
const search = (_d = options.search) !== null && _d !== void 0 ? _d : this.state.search;
|
|
196
|
+
const matches = this.props.onSearch({
|
|
197
|
+
search,
|
|
198
|
+
matchCase,
|
|
199
|
+
wholeWord,
|
|
200
|
+
regex,
|
|
201
|
+
activeFilters: this.state.activeFilters
|
|
202
|
+
});
|
|
203
|
+
let currentMatch = Math.max(0, Math.min(this.state.currentMatch, matches.length - 1));
|
|
204
|
+
if (options.modifyIndex && matches.length > 0) {
|
|
205
|
+
currentMatch = options.modifyIndex(matches, currentMatch);
|
|
206
|
+
}
|
|
207
|
+
const selectedMatch = matches[currentMatch];
|
|
208
|
+
if (selectedMatch) {
|
|
209
|
+
selectedMatch.selected = true;
|
|
210
|
+
if (options.jumpToMatch) {
|
|
211
|
+
selectedMatch.show();
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
this.setState({
|
|
215
|
+
search,
|
|
216
|
+
matches,
|
|
217
|
+
currentMatch,
|
|
218
|
+
matchCase,
|
|
219
|
+
wholeWord,
|
|
220
|
+
regex
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
exports.NotebookFindWidget = NotebookFindWidget;
|
|
225
|
+
//# sourceMappingURL=notebook-find-widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook-find-widget.js","sourceRoot":"","sources":["../../../src/browser/view/notebook-find-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,15 @@ import { NotebookModel } from '../view-model/notebook-model';
|
|
|
4
4
|
import { CellRenderer } from './notebook-cell-list-view';
|
|
5
5
|
import { NotebookCellModel } from '../view-model/notebook-cell-model';
|
|
6
6
|
import { MonacoEditorServices } from '@theia/monaco/lib/browser/monaco-editor';
|
|
7
|
+
import { CommandRegistry } from '@theia/core';
|
|
7
8
|
import { NotebookContextManager } from '../service/notebook-context-manager';
|
|
9
|
+
import { NotebookOptionsService } from '../service/notebook-options';
|
|
8
10
|
export declare class NotebookMarkdownCellRenderer implements CellRenderer {
|
|
9
11
|
private readonly markdownRenderer;
|
|
10
12
|
protected readonly monacoServices: MonacoEditorServices;
|
|
11
13
|
protected readonly notebookContextManager: NotebookContextManager;
|
|
14
|
+
protected readonly commandRegistry: CommandRegistry;
|
|
15
|
+
protected readonly notebookOptionsService: NotebookOptionsService;
|
|
12
16
|
render(notebookModel: NotebookModel, cell: NotebookCellModel): React.ReactNode;
|
|
13
17
|
renderDragImage(cell: NotebookCellModel): HTMLElement;
|
|
14
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notebook-markdown-cell-view.d.ts","sourceRoot":"","sources":["../../../src/browser/view/notebook-markdown-cell-view.tsx"],"names":[],"mappings":";AAgBA,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"notebook-markdown-cell-view.d.ts","sourceRoot":"","sources":["../../../src/browser/view/notebook-markdown-cell-view.tsx"],"names":[],"mappings":";AAgBA,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAO,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAKrE,qBACa,4BAA6B,YAAW,YAAY;IAG7D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IAEpD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAGlE,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAElE,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,iBAAiB,GAAG,KAAK,CAAC,SAAS;IAW9E,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,WAAW;CAQxD"}
|
|
@@ -25,9 +25,12 @@ const inversify_1 = require("@theia/core/shared/inversify");
|
|
|
25
25
|
const monaco_editor_1 = require("@theia/monaco/lib/browser/monaco-editor");
|
|
26
26
|
const core_1 = require("@theia/core");
|
|
27
27
|
const notebook_context_manager_1 = require("../service/notebook-context-manager");
|
|
28
|
+
const notebook_options_1 = require("../service/notebook-options");
|
|
29
|
+
const notebook_code_cell_view_1 = require("./notebook-code-cell-view");
|
|
30
|
+
const mark = require("advanced-mark.js");
|
|
28
31
|
let NotebookMarkdownCellRenderer = class NotebookMarkdownCellRenderer {
|
|
29
32
|
render(notebookModel, cell) {
|
|
30
|
-
return React.createElement(MarkdownCell, { markdownRenderer: this.markdownRenderer, monacoServices: this.monacoServices, cell: cell, notebookModel: notebookModel, notebookContextManager: this.notebookContextManager });
|
|
33
|
+
return React.createElement(MarkdownCell, { markdownRenderer: this.markdownRenderer, commandRegistry: this.commandRegistry, monacoServices: this.monacoServices, notebookOptionsService: this.notebookOptionsService, cell: cell, notebookModel: notebookModel, notebookContextManager: this.notebookContextManager });
|
|
31
34
|
}
|
|
32
35
|
renderDragImage(cell) {
|
|
33
36
|
var _a;
|
|
@@ -52,28 +55,122 @@ tslib_1.__decorate([
|
|
|
52
55
|
(0, inversify_1.inject)(notebook_context_manager_1.NotebookContextManager),
|
|
53
56
|
tslib_1.__metadata("design:type", notebook_context_manager_1.NotebookContextManager)
|
|
54
57
|
], NotebookMarkdownCellRenderer.prototype, "notebookContextManager", void 0);
|
|
58
|
+
tslib_1.__decorate([
|
|
59
|
+
(0, inversify_1.inject)(core_1.CommandRegistry),
|
|
60
|
+
tslib_1.__metadata("design:type", core_1.CommandRegistry)
|
|
61
|
+
], NotebookMarkdownCellRenderer.prototype, "commandRegistry", void 0);
|
|
62
|
+
tslib_1.__decorate([
|
|
63
|
+
(0, inversify_1.inject)(notebook_options_1.NotebookOptionsService),
|
|
64
|
+
tslib_1.__metadata("design:type", notebook_options_1.NotebookOptionsService)
|
|
65
|
+
], NotebookMarkdownCellRenderer.prototype, "notebookOptionsService", void 0);
|
|
55
66
|
exports.NotebookMarkdownCellRenderer = NotebookMarkdownCellRenderer = tslib_1.__decorate([
|
|
56
67
|
(0, inversify_1.injectable)()
|
|
57
68
|
], NotebookMarkdownCellRenderer);
|
|
58
|
-
function MarkdownCell({ markdownRenderer, monacoServices, cell, notebookModel, notebookContextManager }) {
|
|
69
|
+
function MarkdownCell({ markdownRenderer, monacoServices, cell, notebookModel, notebookContextManager, notebookOptionsService, commandRegistry }) {
|
|
59
70
|
const [editMode, setEditMode] = React.useState(cell.editing);
|
|
71
|
+
let empty = false;
|
|
60
72
|
React.useEffect(() => {
|
|
61
73
|
const listener = cell.onDidRequestCellEditChange(cellEdit => setEditMode(cellEdit));
|
|
62
74
|
return () => listener.dispose();
|
|
63
75
|
}, [editMode]);
|
|
76
|
+
React.useEffect(() => {
|
|
77
|
+
if (!editMode) {
|
|
78
|
+
const instance = new mark(markdownContent);
|
|
79
|
+
cell.onMarkdownFind = options => {
|
|
80
|
+
instance.unmark();
|
|
81
|
+
if (empty) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
return searchInMarkdown(instance, options);
|
|
85
|
+
};
|
|
86
|
+
return () => {
|
|
87
|
+
cell.onMarkdownFind = undefined;
|
|
88
|
+
instance.unmark();
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}, [editMode, cell.source]);
|
|
64
92
|
let markdownContent = React.useMemo(() => {
|
|
65
93
|
const markdownString = new markdown_string_1.MarkdownStringImpl(cell.source, { supportHtml: true, isTrusted: true });
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
94
|
+
const rendered = markdownRenderer.render(markdownString).element;
|
|
95
|
+
const children = [];
|
|
96
|
+
rendered.childNodes.forEach(child => {
|
|
97
|
+
if (child instanceof HTMLElement) {
|
|
98
|
+
children.push(child);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
return children;
|
|
102
|
+
}, [cell.source]);
|
|
103
|
+
if (markdownContent.length === 0) {
|
|
69
104
|
const italic = document.createElement('i');
|
|
70
105
|
italic.className = 'theia-notebook-empty-markdown';
|
|
71
106
|
italic.innerText = core_1.nls.localizeByDefault('Empty markdown cell, double-click or press enter to edit.');
|
|
72
107
|
italic.style.pointerEvents = 'none';
|
|
73
|
-
markdownContent = italic;
|
|
108
|
+
markdownContent = [italic];
|
|
109
|
+
empty = true;
|
|
74
110
|
}
|
|
75
111
|
return editMode ?
|
|
76
|
-
React.createElement(
|
|
77
|
-
|
|
112
|
+
(React.createElement("div", { className: 'theia-notebook-markdown-editor-container', key: "code" },
|
|
113
|
+
React.createElement(notebook_cell_editor_1.CellEditor, { notebookModel: notebookModel, cell: cell, monacoServices: monacoServices, notebookContextManager: notebookContextManager, fontInfo: notebookOptionsService.editorFontInfo }),
|
|
114
|
+
React.createElement(notebook_code_cell_view_1.NotebookCodeCellStatus, { cell: cell, notebook: notebookModel, commandRegistry: commandRegistry, onClick: () => cell.requestFocusEditor() }))) :
|
|
115
|
+
(React.createElement("div", { className: 'theia-notebook-markdown-content', key: "markdown", onDoubleClick: () => cell.requestEdit(), ref: node => node === null || node === void 0 ? void 0 : node.replaceChildren(...markdownContent) }));
|
|
116
|
+
}
|
|
117
|
+
function searchInMarkdown(instance, options) {
|
|
118
|
+
const matches = [];
|
|
119
|
+
const markOptions = {
|
|
120
|
+
className: 'theia-find-match',
|
|
121
|
+
diacritics: false,
|
|
122
|
+
caseSensitive: options.matchCase,
|
|
123
|
+
acrossElements: true,
|
|
124
|
+
separateWordSearch: false,
|
|
125
|
+
each: node => {
|
|
126
|
+
matches.push(new MarkdownEditorFindMatch(node));
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
if (options.regex || options.wholeWord) {
|
|
130
|
+
let search = options.search;
|
|
131
|
+
if (options.wholeWord) {
|
|
132
|
+
if (!options.regex) {
|
|
133
|
+
search = escapeRegExp(search);
|
|
134
|
+
}
|
|
135
|
+
search = '\\b' + search + '\\b';
|
|
136
|
+
}
|
|
137
|
+
instance.markRegExp(new RegExp(search, options.matchCase ? '' : 'i'), markOptions);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
instance.mark(options.search, markOptions);
|
|
141
|
+
}
|
|
142
|
+
return matches;
|
|
143
|
+
}
|
|
144
|
+
function escapeRegExp(value) {
|
|
145
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
146
|
+
}
|
|
147
|
+
class MarkdownEditorFindMatch {
|
|
148
|
+
constructor(node) {
|
|
149
|
+
this.node = node;
|
|
150
|
+
this._selected = false;
|
|
151
|
+
}
|
|
152
|
+
get selected() {
|
|
153
|
+
return this._selected;
|
|
154
|
+
}
|
|
155
|
+
set selected(selected) {
|
|
156
|
+
this._selected = selected;
|
|
157
|
+
const className = 'theia-find-match-selected';
|
|
158
|
+
if (this.node instanceof HTMLElement) {
|
|
159
|
+
if (selected) {
|
|
160
|
+
this.node.classList.add(className);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
this.node.classList.remove(className);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
show() {
|
|
168
|
+
if (this.node instanceof HTMLElement) {
|
|
169
|
+
this.node.scrollIntoView({
|
|
170
|
+
behavior: 'instant',
|
|
171
|
+
block: 'center'
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
78
175
|
}
|
|
79
176
|
//# sourceMappingURL=notebook-markdown-cell-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notebook-markdown-cell-view.js","sourceRoot":"","sources":["../../../src/browser/view/notebook-markdown-cell-view.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,kDAAkD;AAClD,oGAAgG;AAChG,+FAA+F;AAI/F,iEAAoD;AACpD,4DAAkE;AAClE,2EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"notebook-markdown-cell-view.js","sourceRoot":"","sources":["../../../src/browser/view/notebook-markdown-cell-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ import { NotebookMonacoTextModelService } from '../service/notebook-monaco-text-
|
|
|
8
8
|
import { NotebookCellOutputModel } from './notebook-cell-output-model';
|
|
9
9
|
import { PreferenceService } from '@theia/core/lib/browser';
|
|
10
10
|
import { LanguageService } from '@theia/core/lib/browser/language-service';
|
|
11
|
+
import { NotebookEditorFindMatch, NotebookEditorFindMatchOptions } from '../view/notebook-find-widget';
|
|
12
|
+
import { Range } from '@theia/core/shared/vscode-languageserver-protocol';
|
|
11
13
|
export declare const NotebookCellModelFactory: unique symbol;
|
|
12
14
|
export type NotebookCellModelFactory = (props: NotebookCellModelProps) => NotebookCellModel;
|
|
13
15
|
export type CellEditorFocusRequest = number | 'lastLine' | undefined;
|
|
@@ -47,7 +49,7 @@ export declare class NotebookCellModel implements NotebookCell, Disposable {
|
|
|
47
49
|
protected readonly onDidChangeOutputItemsEmitter: Emitter<CellOutput>;
|
|
48
50
|
readonly onDidChangeOutputItems: Event<CellOutput>;
|
|
49
51
|
protected readonly onDidChangeContentEmitter: Emitter<"content" | "language" | "mime">;
|
|
50
|
-
readonly onDidChangeContent: Event<
|
|
52
|
+
readonly onDidChangeContent: Event<"content" | "language" | "mime">;
|
|
51
53
|
protected readonly onDidChangeMetadataEmitter: Emitter<void>;
|
|
52
54
|
readonly onDidChangeMetadata: Event<void>;
|
|
53
55
|
protected readonly onDidChangeInternalMetadataEmitter: Emitter<CellInternalMetadataChangedEvent>;
|
|
@@ -64,6 +66,12 @@ export declare class NotebookCellModel implements NotebookCell, Disposable {
|
|
|
64
66
|
readonly onDidChangeEditorOptions: Event<MonacoEditor.IOptions>;
|
|
65
67
|
protected readonly outputVisibilityChangeEmitter: Emitter<boolean>;
|
|
66
68
|
readonly onDidChangeOutputVisibility: Event<boolean>;
|
|
69
|
+
protected readonly onDidFindMatchesEmitter: Emitter<NotebookCodeEditorFindMatch[]>;
|
|
70
|
+
readonly onDidFindMatches: Event<NotebookCodeEditorFindMatch[]>;
|
|
71
|
+
protected readonly onDidSelectFindMatchEmitter: Emitter<NotebookCodeEditorFindMatch>;
|
|
72
|
+
readonly onDidSelectFindMatch: Event<NotebookCodeEditorFindMatch>;
|
|
73
|
+
protected onDidRequestCenterEditorEmitter: Emitter<void>;
|
|
74
|
+
readonly onDidRequestCenterEditor: Event<void>;
|
|
67
75
|
protected readonly props: NotebookCellModelProps;
|
|
68
76
|
protected readonly textModelService: NotebookMonacoTextModelService;
|
|
69
77
|
protected readonly languageService: LanguageService;
|
|
@@ -101,11 +109,29 @@ export declare class NotebookCellModel implements NotebookCell, Disposable {
|
|
|
101
109
|
requestStopEdit(): void;
|
|
102
110
|
requestFocusEditor(focusRequest?: CellEditorFocusRequest): void;
|
|
103
111
|
requestBlurEditor(): void;
|
|
112
|
+
requestCenterEditor(): void;
|
|
104
113
|
spliceNotebookCellOutputs(splice: NotebookCellOutputsSplice): void;
|
|
105
114
|
replaceOutputData(outputId: string, newOutputData: CellOutput): boolean;
|
|
106
115
|
changeOutputItems(outputId: string, append: boolean, items: CellOutputItem[]): boolean;
|
|
107
116
|
getData(): CellData;
|
|
108
117
|
resolveTextModel(): Promise<MonacoEditorModel>;
|
|
109
118
|
restartOutputRenderer(outputId: string): void;
|
|
119
|
+
onMarkdownFind: ((options: NotebookEditorFindMatchOptions) => NotebookEditorFindMatch[]) | undefined;
|
|
120
|
+
showMatch(selected: NotebookCodeEditorFindMatch): void;
|
|
121
|
+
findMatches(options: NotebookEditorFindMatchOptions): NotebookEditorFindMatch[];
|
|
122
|
+
replaceAll(matches: NotebookCodeEditorFindMatch[], value: string): void;
|
|
123
|
+
}
|
|
124
|
+
export interface NotebookCellFindMatches {
|
|
125
|
+
matches: NotebookEditorFindMatch[];
|
|
126
|
+
selected: NotebookEditorFindMatch;
|
|
127
|
+
}
|
|
128
|
+
export declare class NotebookCodeEditorFindMatch implements NotebookEditorFindMatch {
|
|
129
|
+
readonly cell: NotebookCellModel;
|
|
130
|
+
readonly range: Range;
|
|
131
|
+
readonly textModel: MonacoEditorModel;
|
|
132
|
+
selected: boolean;
|
|
133
|
+
constructor(cell: NotebookCellModel, range: Range, textModel: MonacoEditorModel);
|
|
134
|
+
show(): void;
|
|
135
|
+
replace(value: string): void;
|
|
110
136
|
}
|
|
111
137
|
//# sourceMappingURL=notebook-cell-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notebook-cell-model.d.ts","sourceRoot":"","sources":["../../../src/browser/view-model/notebook-cell-model.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAsB,UAAU,EAAiB,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EACH,QAAQ,EAAE,yBAAyB,EAAE,4BAA4B,EACjE,oBAAoB,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAC7D,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"notebook-cell-model.d.ts","sourceRoot":"","sources":["../../../src/browser/view-model/notebook-cell-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,10 +19,11 @@
|
|
|
19
19
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
20
20
|
*--------------------------------------------------------------------------------------------*/
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.NotebookCellModel = exports.createNotebookCellModelContainer = exports.NotebookCellModelFactory = void 0;
|
|
22
|
+
exports.NotebookCodeEditorFindMatch = exports.NotebookCellModel = exports.createNotebookCellModelContainer = exports.NotebookCellModelFactory = void 0;
|
|
23
23
|
const tslib_1 = require("tslib");
|
|
24
24
|
const core_1 = require("@theia/core");
|
|
25
25
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
26
|
+
const common_1 = require("../../common");
|
|
26
27
|
const notebook_monaco_text_model_service_1 = require("../service/notebook-monaco-text-model-service");
|
|
27
28
|
const notebook_cell_output_model_1 = require("./notebook-cell-output-model");
|
|
28
29
|
const browser_1 = require("@theia/core/lib/browser");
|
|
@@ -61,6 +62,12 @@ let NotebookCellModel = class NotebookCellModel {
|
|
|
61
62
|
this.onDidChangeEditorOptions = this.onDidChangeEditorOptionsEmitter.event;
|
|
62
63
|
this.outputVisibilityChangeEmitter = new core_1.Emitter();
|
|
63
64
|
this.onDidChangeOutputVisibility = this.outputVisibilityChangeEmitter.event;
|
|
65
|
+
this.onDidFindMatchesEmitter = new core_1.Emitter();
|
|
66
|
+
this.onDidFindMatches = this.onDidFindMatchesEmitter.event;
|
|
67
|
+
this.onDidSelectFindMatchEmitter = new core_1.Emitter();
|
|
68
|
+
this.onDidSelectFindMatch = this.onDidSelectFindMatchEmitter.event;
|
|
69
|
+
this.onDidRequestCenterEditorEmitter = new core_1.Emitter();
|
|
70
|
+
this.onDidRequestCenterEditor = this.onDidRequestCenterEditorEmitter.event;
|
|
64
71
|
this.toDispose = new core_1.DisposableCollection();
|
|
65
72
|
this._editing = false;
|
|
66
73
|
this._editorOptions = {};
|
|
@@ -189,6 +196,9 @@ let NotebookCellModel = class NotebookCellModel {
|
|
|
189
196
|
this.requestStopEdit();
|
|
190
197
|
this.onWillBlurCellEditorEmitter.fire();
|
|
191
198
|
}
|
|
199
|
+
requestCenterEditor() {
|
|
200
|
+
this.onDidRequestCenterEditorEmitter.fire();
|
|
201
|
+
}
|
|
192
202
|
spliceNotebookCellOutputs(splice) {
|
|
193
203
|
if (splice.deleteCount > 0 && splice.newOutputs.length > 0) {
|
|
194
204
|
const commonLen = Math.min(splice.deleteCount, splice.newOutputs.length);
|
|
@@ -258,6 +268,44 @@ let NotebookCellModel = class NotebookCellModel {
|
|
|
258
268
|
this.onDidChangeOutputItemsEmitter.fire(output);
|
|
259
269
|
}
|
|
260
270
|
}
|
|
271
|
+
showMatch(selected) {
|
|
272
|
+
this.onDidSelectFindMatchEmitter.fire(selected);
|
|
273
|
+
}
|
|
274
|
+
findMatches(options) {
|
|
275
|
+
var _a, _b;
|
|
276
|
+
if (this.cellKind === common_1.CellKind.Markup && !this.editing) {
|
|
277
|
+
return (_b = (_a = this.onMarkdownFind) === null || _a === void 0 ? void 0 : _a.call(this, options)) !== null && _b !== void 0 ? _b : [];
|
|
278
|
+
}
|
|
279
|
+
if (!this.textModel) {
|
|
280
|
+
return [];
|
|
281
|
+
}
|
|
282
|
+
const matches = options.search ? this.textModel.findMatches({
|
|
283
|
+
searchString: options.search,
|
|
284
|
+
isRegex: options.regex,
|
|
285
|
+
matchCase: options.matchCase,
|
|
286
|
+
matchWholeWord: options.wholeWord
|
|
287
|
+
}) : [];
|
|
288
|
+
const editorFindMatches = matches.map(match => new NotebookCodeEditorFindMatch(this, match.range, this.textModel));
|
|
289
|
+
this.onDidFindMatchesEmitter.fire(editorFindMatches);
|
|
290
|
+
return editorFindMatches;
|
|
291
|
+
}
|
|
292
|
+
replaceAll(matches, value) {
|
|
293
|
+
var _a;
|
|
294
|
+
const editOperations = matches.map(match => ({
|
|
295
|
+
range: {
|
|
296
|
+
startColumn: match.range.start.character,
|
|
297
|
+
startLineNumber: match.range.start.line,
|
|
298
|
+
endColumn: match.range.end.character,
|
|
299
|
+
endLineNumber: match.range.end.line
|
|
300
|
+
},
|
|
301
|
+
text: value
|
|
302
|
+
}));
|
|
303
|
+
(_a = this.textModel) === null || _a === void 0 ? void 0 : _a.textEditorModel.pushEditOperations(
|
|
304
|
+
// eslint-disable-next-line no-null/no-null
|
|
305
|
+
null, editOperations,
|
|
306
|
+
// eslint-disable-next-line no-null/no-null
|
|
307
|
+
() => null);
|
|
308
|
+
}
|
|
261
309
|
};
|
|
262
310
|
exports.NotebookCellModel = NotebookCellModel;
|
|
263
311
|
tslib_1.__decorate([
|
|
@@ -285,6 +333,33 @@ tslib_1.__decorate([
|
|
|
285
333
|
exports.NotebookCellModel = NotebookCellModel = tslib_1.__decorate([
|
|
286
334
|
(0, inversify_1.injectable)()
|
|
287
335
|
], NotebookCellModel);
|
|
336
|
+
class NotebookCodeEditorFindMatch {
|
|
337
|
+
constructor(cell, range, textModel) {
|
|
338
|
+
this.cell = cell;
|
|
339
|
+
this.range = range;
|
|
340
|
+
this.textModel = textModel;
|
|
341
|
+
this.selected = false;
|
|
342
|
+
}
|
|
343
|
+
show() {
|
|
344
|
+
this.cell.showMatch(this);
|
|
345
|
+
}
|
|
346
|
+
replace(value) {
|
|
347
|
+
this.textModel.textEditorModel.pushEditOperations(
|
|
348
|
+
// eslint-disable-next-line no-null/no-null
|
|
349
|
+
null, [{
|
|
350
|
+
range: {
|
|
351
|
+
startColumn: this.range.start.character,
|
|
352
|
+
startLineNumber: this.range.start.line,
|
|
353
|
+
endColumn: this.range.end.character,
|
|
354
|
+
endLineNumber: this.range.end.line
|
|
355
|
+
},
|
|
356
|
+
text: value
|
|
357
|
+
}],
|
|
358
|
+
// eslint-disable-next-line no-null/no-null
|
|
359
|
+
() => null);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
exports.NotebookCodeEditorFindMatch = NotebookCodeEditorFindMatch;
|
|
288
363
|
function computeRunStartTimeAdjustment(oldMetadata, newMetadata) {
|
|
289
364
|
if (oldMetadata.runStartTime !== newMetadata.runStartTime && typeof newMetadata.runStartTime === 'number') {
|
|
290
365
|
const offset = Date.now() - newMetadata.runStartTime;
|