chrome-devtools-frontend 1.0.951410 → 1.0.951864
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/extension-api/ExtensionAPI.d.ts +1 -1
- package/front_end/Tests.js +10 -0
- package/front_end/core/common/App.ts +0 -3
- package/front_end/core/common/AppProvider.ts +0 -3
- package/front_end/core/common/JavaScriptMetaData.ts +0 -3
- package/front_end/core/common/QueryParamHandler.ts +0 -3
- package/front_end/core/common/Runnable.ts +0 -3
- package/front_end/core/common/SimpleHistoryManager.ts +0 -3
- package/front_end/core/sdk/OverlayPersistentHighlighter.ts +0 -12
- package/front_end/core/sdk/TracingManager.ts +0 -3
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +1 -3
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +0 -3
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +0 -3
- package/front_end/models/bindings/FileUtils.ts +0 -3
- package/front_end/models/extensions/ExtensionAPI.ts +2 -1
- package/front_end/models/extensions/ExtensionTraceProvider.ts +0 -3
- package/front_end/models/timeline_model/TimelineModel.ts +1 -1
- package/front_end/panels/console/ConsoleViewMessage.ts +1 -25
- package/front_end/panels/console/consoleView.css +5 -0
- package/front_end/panels/elements/ElementsTreeElement.ts +2 -6
- package/front_end/panels/event_listeners/EventListenersUtils.ts +2 -1
- package/front_end/panels/search/SearchConfig.ts +0 -6
- package/front_end/panels/settings/KeybindsSettingsTab.ts +4 -0
- package/front_end/panels/sources/NavigatorView.ts +3 -9
- package/front_end/panels/sources/SourceMapNamesResolver.ts +3 -3
- package/front_end/panels/sources/SourcesPanel.ts +1 -3
- package/front_end/panels/sources/SourcesView.ts +0 -3
- package/front_end/panels/sources/TabbedEditorContainer.ts +0 -3
- package/front_end/panels/timeline/TimelineLoader.ts +0 -3
- package/front_end/third_party/codemirror.next/bundle.ts +3 -3
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js +2 -1
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +10 -1
- package/front_end/third_party/codemirror.next/codemirror.next.js +2 -1
- package/front_end/third_party/codemirror.next/package.json +3 -3
- package/front_end/ui/components/text_editor/cursor_tooltip.ts +7 -1
- package/front_end/ui/legacy/ContextFlavorListener.ts +0 -4
- package/front_end/ui/legacy/SuggestBox.ts +0 -3
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +6 -6
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +0 -3
- package/package.json +1 -1
package/front_end/Tests.js
CHANGED
|
@@ -1562,6 +1562,16 @@
|
|
|
1562
1562
|
return names.join(',');
|
|
1563
1563
|
};
|
|
1564
1564
|
|
|
1565
|
+
TestSuite.prototype.testSourceMapsFromExtension = function(extensionId) {
|
|
1566
|
+
this.takeControl();
|
|
1567
|
+
const debuggerModel = self.SDK.targetManager.mainTarget().model(SDK.DebuggerModel);
|
|
1568
|
+
debuggerModel.sourceMapManager().addEventListener(
|
|
1569
|
+
SDK.SourceMapManager.Events.SourceMapAttached, this.releaseControl.bind(this));
|
|
1570
|
+
|
|
1571
|
+
this.evaluateInConsole_(
|
|
1572
|
+
`console.log(1) //# sourceMappingURL=chrome-extension://${extensionId}/source.map`, () => {});
|
|
1573
|
+
};
|
|
1574
|
+
|
|
1565
1575
|
/**
|
|
1566
1576
|
* Returns all loaded non anonymous uiSourceCodes.
|
|
1567
1577
|
* @return {!Array.<!Workspace.UISourceCode>}
|
|
@@ -360,15 +360,9 @@ export class OverlayPersistentHighlighter {
|
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
362
|
|
|
363
|
-
/**
|
|
364
|
-
* @interface
|
|
365
|
-
*/
|
|
366
363
|
export interface DOMModel {
|
|
367
364
|
nodeForId(nodeId: Protocol.DOM.NodeId): void;
|
|
368
365
|
}
|
|
369
|
-
/**
|
|
370
|
-
* @interface
|
|
371
|
-
*/
|
|
372
366
|
export interface OverlayAgent {
|
|
373
367
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
|
|
374
368
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
@@ -415,16 +409,10 @@ export interface OverlayAgent {
|
|
|
415
409
|
}): void;
|
|
416
410
|
}
|
|
417
411
|
|
|
418
|
-
/**
|
|
419
|
-
* @interface
|
|
420
|
-
*/
|
|
421
412
|
export interface Target {
|
|
422
413
|
overlayAgent(): OverlayAgent;
|
|
423
414
|
}
|
|
424
415
|
|
|
425
|
-
/**
|
|
426
|
-
* @interface
|
|
427
|
-
*/
|
|
428
416
|
export interface OverlayModel {
|
|
429
417
|
getDOMModel(): DOMModel;
|
|
430
418
|
|
|
@@ -2280,9 +2280,7 @@ export class HeapSnapshotNodesProvider extends HeapSnapshotItemProvider {
|
|
|
2280
2280
|
const ascending1 = comparator.ascending1 ? 1 : -1;
|
|
2281
2281
|
const ascending2 = comparator.ascending2 ? 1 : -1;
|
|
2282
2282
|
|
|
2283
|
-
|
|
2284
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2285
|
-
function sortByNodeField(fieldAccessor: () => any, ascending: number): number {
|
|
2283
|
+
function sortByNodeField(fieldAccessor: () => void, ascending: number): number {
|
|
2286
2284
|
const valueA = fieldAccessor.call(nodeA);
|
|
2287
2285
|
const valueB = fieldAccessor.call(nodeB);
|
|
2288
2286
|
return valueA < valueB ? -ascending : (valueA > valueB ? ascending : 0);
|
|
@@ -152,9 +152,6 @@ export class CSSWorkspaceBinding implements SDK.TargetManager.SDKModelObserver<S
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
/**
|
|
156
|
-
* @interface
|
|
157
|
-
*/
|
|
158
155
|
export interface SourceMapping {
|
|
159
156
|
rawLocationToUILocation(rawLocation: SDK.CSSModel.CSSLocation): Workspace.UISourceCode.UILocation|null;
|
|
160
157
|
|
|
@@ -561,9 +561,6 @@ export interface RawLocationRange {
|
|
|
561
561
|
end: SDK.DebuggerModel.Location;
|
|
562
562
|
}
|
|
563
563
|
|
|
564
|
-
/**
|
|
565
|
-
* @interface
|
|
566
|
-
*/
|
|
567
564
|
export interface DebuggerSourceMapping {
|
|
568
565
|
rawLocationToUILocation(rawLocation: SDK.DebuggerModel.Location): Workspace.UISourceCode.UILocation|null;
|
|
569
566
|
|
|
@@ -304,8 +304,9 @@ namespace APIImpl {
|
|
|
304
304
|
// We cannot use the stronger `unknown` type in place of `any` in the following type definition. The type is used as
|
|
305
305
|
// the right-hand side of `extends` in a few places, which doesn't narrow `unknown`. Without narrowing, overload
|
|
306
306
|
// resolution and meaningful type inference of arguments break, for example.
|
|
307
|
+
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
|
|
307
308
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
308
|
-
export type Callable = (...args: any) =>
|
|
309
|
+
export type Callable = (...args: any) => void;
|
|
309
310
|
|
|
310
311
|
export interface EventSink<ListenerT extends Callable> extends PublicAPI.Chrome.DevTools.EventSink<ListenerT> {
|
|
311
312
|
_type: string;
|
|
@@ -42,9 +42,6 @@ export class ExtensionTraceProvider {
|
|
|
42
42
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
43
43
|
let _lastSessionId = 0;
|
|
44
44
|
|
|
45
|
-
/**
|
|
46
|
-
* @interface
|
|
47
|
-
*/
|
|
48
45
|
export interface TracingSession {
|
|
49
46
|
complete(url: string, timeOffsetMicroseconds: number): void;
|
|
50
47
|
}
|
|
@@ -122,7 +122,7 @@ export class TimelineModelImpl {
|
|
|
122
122
|
static forEachEvent(
|
|
123
123
|
events: SDK.TracingModel.Event[], onStartEvent: (arg0: SDK.TracingModel.Event) => void,
|
|
124
124
|
onEndEvent: (arg0: SDK.TracingModel.Event) => void,
|
|
125
|
-
onInstantEvent?: ((arg0: SDK.TracingModel.Event, arg1: SDK.TracingModel.Event|null) =>
|
|
125
|
+
onInstantEvent?: ((arg0: SDK.TracingModel.Event, arg1: SDK.TracingModel.Event|null) => void), startTime?: number,
|
|
126
126
|
endTime?: number, filter?: ((arg0: SDK.TracingModel.Event) => boolean)): void {
|
|
127
127
|
startTime = startTime || 0;
|
|
128
128
|
endTime = endTime || Infinity;
|
|
@@ -49,7 +49,6 @@ import * as DataGrid from '../../ui/legacy/components/data_grid/data_grid.js';
|
|
|
49
49
|
import * as ObjectUI from '../../ui/legacy/components/object_ui/object_ui.js';
|
|
50
50
|
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
51
51
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
52
|
-
import * as ThemeSupport from '../../ui/legacy/theme_support/theme_support.js';
|
|
53
52
|
// eslint-disable-next-line rulesdir/es_modules_import
|
|
54
53
|
import objectValueStyles from '../../ui/legacy/components/object_ui/objectValue.css.js';
|
|
55
54
|
import type {Chrome} from '../../../extension-api/ExtensionAPI.js'; // eslint-disable-line rulesdir/es_modules_import
|
|
@@ -1006,11 +1005,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
|
|
|
1006
1005
|
wrapper.style.setProperty('max-width', '100%');
|
|
1007
1006
|
wrapper.appendChild(lineFragment);
|
|
1008
1007
|
applyCurrentStyle(wrapper);
|
|
1009
|
-
|
|
1010
|
-
if (child.classList.contains('devtools-link') && child instanceof HTMLElement) {
|
|
1011
|
-
this.applyForcedVisibleStyle(child);
|
|
1012
|
-
}
|
|
1013
|
-
}
|
|
1008
|
+
|
|
1014
1009
|
a.appendChild(wrapper);
|
|
1015
1010
|
if (i < lines.length - 1) {
|
|
1016
1011
|
a.appendChild(document.createElement('br'));
|
|
@@ -1032,25 +1027,6 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
|
|
|
1032
1027
|
return Platform.StringUtilities.format(format, parameters, formatters, formattedResult, append.bind(this));
|
|
1033
1028
|
}
|
|
1034
1029
|
|
|
1035
|
-
private applyForcedVisibleStyle(element: HTMLElement): void {
|
|
1036
|
-
element.style.setProperty('-webkit-text-stroke', '0', 'important');
|
|
1037
|
-
element.style.setProperty('text-decoration', 'underline', 'important');
|
|
1038
|
-
|
|
1039
|
-
const themedColor = ThemeSupport.ThemeSupport.instance().patchColorText(
|
|
1040
|
-
'rgb(33%, 33%, 33%)', ThemeSupport.ThemeSupport.ColorUsage.Foreground);
|
|
1041
|
-
element.style.setProperty('color', themedColor, 'important');
|
|
1042
|
-
|
|
1043
|
-
let backgroundColor = 'hsl(0, 0%, 100%)';
|
|
1044
|
-
if (this.message.level === Protocol.Log.LogEntryLevel.Error) {
|
|
1045
|
-
backgroundColor = 'hsl(0, 100%, 97%)';
|
|
1046
|
-
} else if (this.message.level === Protocol.Log.LogEntryLevel.Warning || this.shouldRenderAsWarning()) {
|
|
1047
|
-
backgroundColor = 'hsl(50, 100%, 95%)';
|
|
1048
|
-
}
|
|
1049
|
-
const themedBackgroundColor = ThemeSupport.ThemeSupport.instance().patchColorText(
|
|
1050
|
-
backgroundColor, ThemeSupport.ThemeSupport.ColorUsage.Background);
|
|
1051
|
-
element.style.setProperty('background-color', themedBackgroundColor, 'important');
|
|
1052
|
-
}
|
|
1053
|
-
|
|
1054
1030
|
matchesFilterRegex(regexObject: RegExp): boolean {
|
|
1055
1031
|
regexObject.lastIndex = 0;
|
|
1056
1032
|
const contentElement = this.contentElement();
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
--override-focused-message-background-color: hsl(214deg 19% 20%);
|
|
50
50
|
--override-console-warning-background-color: hsl(50deg 100% 10%);
|
|
51
51
|
--override-console-warning-text-color: hsl(39deg 89% 55%);
|
|
52
|
+
--override-console-link-color: var(--color-background-inverted);
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
.console-toolbar-container {
|
|
@@ -460,6 +461,10 @@
|
|
|
460
461
|
height: 0;
|
|
461
462
|
}
|
|
462
463
|
|
|
464
|
+
.-theme-with-dark-background #console-messages .console-message-text .devtools-link {
|
|
465
|
+
color: var(--override-console-link-color);
|
|
466
|
+
}
|
|
467
|
+
|
|
463
468
|
@media (forced-colors: active) {
|
|
464
469
|
.console-message-expand-icon,
|
|
465
470
|
.console-warning-level [is="ui-icon"].icon-mask.expand-group-icon {
|
|
@@ -1811,9 +1811,7 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1811
1811
|
this.nodeInternal.removeNode();
|
|
1812
1812
|
}
|
|
1813
1813
|
|
|
1814
|
-
|
|
1815
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1816
|
-
toggleEditAsHTML(callback?: ((arg0: boolean) => any), startEditing?: boolean): void {
|
|
1814
|
+
toggleEditAsHTML(callback?: ((arg0: boolean) => void), startEditing?: boolean): void {
|
|
1817
1815
|
if (this.editing && this.htmlEditElement) {
|
|
1818
1816
|
this.editing.commit();
|
|
1819
1817
|
return;
|
|
@@ -2220,7 +2218,5 @@ export interface EditorHandles {
|
|
|
2220
2218
|
commit: () => void;
|
|
2221
2219
|
cancel: () => void;
|
|
2222
2220
|
editor?: TextEditor.TextEditor.TextEditor;
|
|
2223
|
-
|
|
2224
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2225
|
-
resize: () => any;
|
|
2221
|
+
resize: () => void;
|
|
2226
2222
|
}
|
|
@@ -347,8 +347,9 @@ export function frameworkEventListeners(object: SDK.RemoteObject.RemoteObject):
|
|
|
347
347
|
}
|
|
348
348
|
}
|
|
349
349
|
|
|
350
|
+
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
|
|
350
351
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
351
|
-
function checkInternalHandler(handler: any): (() =>
|
|
352
|
+
function checkInternalHandler(handler: any): (() => void)|null {
|
|
352
353
|
if (handler && (typeof handler === 'function')) {
|
|
353
354
|
return handler;
|
|
354
355
|
}
|
|
@@ -159,9 +159,6 @@ export class QueryTerm {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
/**
|
|
163
|
-
* @interface
|
|
164
|
-
*/
|
|
165
162
|
export interface SearchResult {
|
|
166
163
|
label(): string;
|
|
167
164
|
|
|
@@ -176,9 +173,6 @@ export interface SearchResult {
|
|
|
176
173
|
matchRevealable(index: number): Object;
|
|
177
174
|
}
|
|
178
175
|
|
|
179
|
-
/**
|
|
180
|
-
* @interface
|
|
181
|
-
*/
|
|
182
176
|
export interface SearchScope {
|
|
183
177
|
performSearch(
|
|
184
178
|
searchConfig: SearchConfig, progress: Common.Progress.Progress,
|
|
@@ -249,6 +249,10 @@ export class KeybindsSettingsTab extends UI.Widget.VBox implements UI.ListContro
|
|
|
249
249
|
|
|
250
250
|
let currentCategory: string;
|
|
251
251
|
actions.forEach(action => {
|
|
252
|
+
if (action.id() === 'elements.toggle-element-search') {
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
|
|
252
256
|
if (currentCategory !== action.category()) {
|
|
253
257
|
items.push(action.category());
|
|
254
258
|
}
|
|
@@ -982,15 +982,11 @@ const boostOrderForNode = new WeakSet<UI.TreeOutline.TreeElement>();
|
|
|
982
982
|
export class NavigatorFolderTreeElement extends UI.TreeOutline.TreeElement {
|
|
983
983
|
private readonly nodeType: string;
|
|
984
984
|
private readonly navigatorView: NavigatorView;
|
|
985
|
-
|
|
986
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
987
|
-
private hoverCallback: ((arg0: boolean) => any)|undefined;
|
|
985
|
+
private hoverCallback: ((arg0: boolean) => void)|undefined;
|
|
988
986
|
node!: NavigatorTreeNode;
|
|
989
987
|
private hovered?: boolean;
|
|
990
988
|
|
|
991
|
-
|
|
992
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
993
|
-
constructor(navigatorView: NavigatorView, type: string, title: string, hoverCallback?: ((arg0: boolean) => any)) {
|
|
989
|
+
constructor(navigatorView: NavigatorView, type: string, title: string, hoverCallback?: ((arg0: boolean) => void)) {
|
|
994
990
|
super('', true);
|
|
995
991
|
this.listItemElement.classList.add('navigator-' + type + '-tree-item', 'navigator-folder-tree-item');
|
|
996
992
|
UI.ARIAUtils.setAccessibleName(this.listItemElement, `${title}, ${type}`);
|
|
@@ -1392,9 +1388,7 @@ export class NavigatorUISourceCodeTreeNode extends NavigatorTreeNode {
|
|
|
1392
1388
|
}
|
|
1393
1389
|
}
|
|
1394
1390
|
|
|
1395
|
-
|
|
1396
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1397
|
-
rename(callback?: ((arg0: boolean) => any)): void {
|
|
1391
|
+
rename(callback?: ((arg0: boolean) => void)): void {
|
|
1398
1392
|
if (!this.treeElement) {
|
|
1399
1393
|
return;
|
|
1400
1394
|
}
|
|
@@ -390,16 +390,16 @@ export class RemoteObject extends SDK.RemoteObject.RemoteObject {
|
|
|
390
390
|
|
|
391
391
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
|
|
392
392
|
// eslint-disable-next-line @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any
|
|
393
|
-
let _scopeResolvedForTest: (...arg0: any[]) =>
|
|
393
|
+
let _scopeResolvedForTest: (...arg0: any[]) => void = function(): void {};
|
|
394
394
|
|
|
395
395
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
|
|
396
396
|
// eslint-disable-next-line @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any
|
|
397
|
-
export const getScopeResolvedForTest = (): (...arg0: any[]) =>
|
|
397
|
+
export const getScopeResolvedForTest = (): (...arg0: any[]) => void => {
|
|
398
398
|
return _scopeResolvedForTest;
|
|
399
399
|
};
|
|
400
400
|
|
|
401
401
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
|
|
402
402
|
// eslint-disable-next-line @typescript-eslint/naming-convention, @typescript-eslint/no-explicit-any
|
|
403
|
-
export const setScopeResolvedForTest = (scope: (...arg0: any[]) =>
|
|
403
|
+
export const setScopeResolvedForTest = (scope: (...arg0: any[]) => void): void => {
|
|
404
404
|
_scopeResolvedForTest = scope;
|
|
405
405
|
};
|
|
@@ -956,9 +956,7 @@ export class SourcesPanel extends UI.Panel.Panel implements UI.ContextMenu.Provi
|
|
|
956
956
|
return;
|
|
957
957
|
}
|
|
958
958
|
const openText = i18nString(UIStrings.openInSourcesPanel);
|
|
959
|
-
|
|
960
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
961
|
-
const callback: () => any = this.showUILocation.bind(this, uiSourceCode.uiLocation(0, 0));
|
|
959
|
+
const callback: () => void = this.showUILocation.bind(this, uiSourceCode.uiLocation(0, 0));
|
|
962
960
|
contextMenu.revealSection().appendItem(openText, callback);
|
|
963
961
|
}
|
|
964
962
|
|
|
@@ -596,9 +596,6 @@ export type EventTypes = {
|
|
|
596
596
|
[Events.EditorSelected]: Workspace.UISourceCode.UISourceCode,
|
|
597
597
|
};
|
|
598
598
|
|
|
599
|
-
/**
|
|
600
|
-
* @interface
|
|
601
|
-
*/
|
|
602
599
|
export interface EditorAction {
|
|
603
600
|
getOrCreateButton(sourcesView: SourcesView): UI.Toolbar.ToolbarButton;
|
|
604
601
|
}
|
|
@@ -60,9 +60,6 @@ const UIStrings = {
|
|
|
60
60
|
};
|
|
61
61
|
const str_ = i18n.i18n.registerUIStrings('panels/sources/TabbedEditorContainer.ts', UIStrings);
|
|
62
62
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
63
|
-
/**
|
|
64
|
-
* @interface
|
|
65
|
-
*/
|
|
66
63
|
export interface TabbedEditorContainerDelegate {
|
|
67
64
|
viewForFile(uiSourceCode: Workspace.UISourceCode.UISourceCode): UI.Widget.Widget;
|
|
68
65
|
|
|
@@ -33,10 +33,10 @@ export {Range, RangeSet, RangeSetBuilder} from '@codemirror/rangeset';
|
|
|
33
33
|
export {selectNextOccurrence} from '@codemirror/search';
|
|
34
34
|
export {
|
|
35
35
|
Annotation, AnnotationType, ChangeDesc, ChangeSet, ChangeSpec, Compartment,
|
|
36
|
-
EditorSelection, EditorState, EditorStateConfig, Extension, Facet,
|
|
36
|
+
EditorSelection, EditorState, EditorStateConfig, Extension, Facet, MapMode
|
|
37
|
+
, Prec,
|
|
37
38
|
SelectionRange, StateEffect, StateEffectType, StateField, Transaction,
|
|
38
|
-
TransactionSpec
|
|
39
|
-
} from '@codemirror/state';
|
|
39
|
+
TransactionSpec} from '@codemirror/state';
|
|
40
40
|
export {StreamLanguage, StreamParser, StringStream} from '@codemirror/stream-parser';
|
|
41
41
|
export {Line, Text, TextIterator} from '@codemirror/text';
|
|
42
42
|
export { repositionTooltips,showTooltip, Tooltip, tooltips, TooltipView} from '@codemirror/tooltip';
|