@opensumi/ide-editor 2.21.13 → 2.22.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/lib/browser/breadcrumb/default.js.map +1 -1
- package/lib/browser/breadcrumb/document-symbol.js.map +1 -1
- package/lib/browser/breadcrumb/index.js.map +1 -1
- package/lib/browser/component.js.map +1 -1
- package/lib/browser/decoration-applier.js.map +1 -1
- package/lib/browser/diff/compare.js.map +1 -1
- package/lib/browser/diff/index.d.ts.map +1 -1
- package/lib/browser/diff/index.js +1 -1
- package/lib/browser/diff/index.js.map +1 -1
- package/lib/browser/doc-cache/empty-doc-cache.js.map +1 -1
- package/lib/browser/doc-cache/local-storage-cache.js.map +1 -1
- package/lib/browser/doc-model/editor-document-model-service.js +3 -3
- package/lib/browser/doc-model/editor-document-model-service.js.map +1 -1
- package/lib/browser/doc-model/editor-document-model.d.ts +8 -0
- package/lib/browser/doc-model/editor-document-model.d.ts.map +1 -1
- package/lib/browser/doc-model/editor-document-model.js +61 -11
- package/lib/browser/doc-model/editor-document-model.js.map +1 -1
- package/lib/browser/doc-model/editor-document-registry.js.map +1 -1
- package/lib/browser/doc-model/override.js.map +1 -1
- package/lib/browser/doc-model/save-task.js +1 -1
- package/lib/browser/doc-model/save-task.js.map +1 -1
- package/lib/browser/doc-model/saveParticipants.d.ts +7 -7
- package/lib/browser/doc-model/saveParticipants.d.ts.map +1 -1
- package/lib/browser/doc-model/saveParticipants.js +69 -38
- package/lib/browser/doc-model/saveParticipants.js.map +1 -1
- package/lib/browser/doc-model/types.d.ts +1 -1
- package/lib/browser/doc-model/types.d.ts.map +1 -1
- package/lib/browser/editor-collection.service.d.ts +8 -3
- package/lib/browser/editor-collection.service.d.ts.map +1 -1
- package/lib/browser/editor-collection.service.js +75 -66
- package/lib/browser/editor-collection.service.js.map +1 -1
- package/lib/browser/editor-opener.js.map +1 -1
- package/lib/browser/editor.contribution.d.ts.map +1 -1
- package/lib/browser/editor.contribution.js +31 -3
- package/lib/browser/editor.contribution.js.map +1 -1
- package/lib/browser/editor.decoration.service.d.ts +5 -6
- package/lib/browser/editor.decoration.service.d.ts.map +1 -1
- package/lib/browser/editor.decoration.service.js +9 -1
- package/lib/browser/editor.decoration.service.js.map +1 -1
- package/lib/browser/editor.override.js +2 -2
- package/lib/browser/editor.override.js.map +1 -1
- package/lib/browser/editor.status-bar.service.js.map +1 -1
- package/lib/browser/editor.view.d.ts.map +1 -1
- package/lib/browser/editor.view.js +20 -23
- package/lib/browser/editor.view.js.map +1 -1
- package/lib/browser/error.d.ts +1 -1
- package/lib/browser/error.d.ts.map +1 -1
- package/lib/browser/feature.js.map +1 -1
- package/lib/browser/format/format.service.js.map +1 -1
- package/lib/browser/format/formatterSelect.js.map +1 -1
- package/lib/browser/fs-resource/file-tree-set.js +6 -6
- package/lib/browser/fs-resource/file-tree-set.js.map +1 -1
- package/lib/browser/fs-resource/fs-editor-doc.js +1 -1
- package/lib/browser/fs-resource/fs-editor-doc.js.map +1 -1
- package/lib/browser/fs-resource/fs-resource.js.map +1 -1
- package/lib/browser/fs-resource/index.js.map +1 -1
- package/lib/browser/history/index.d.ts.map +1 -1
- package/lib/browser/history/index.js +2 -1
- package/lib/browser/history/index.js.map +1 -1
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +2 -0
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/language/diagnostic-collection.d.ts +5 -5
- package/lib/browser/language/diagnostic-collection.d.ts.map +1 -1
- package/lib/browser/language/diagnostic-collection.js +1 -1
- package/lib/browser/language/diagnostic-collection.js.map +1 -1
- package/lib/browser/language/language-status.contribution.js.map +1 -1
- package/lib/browser/language/language-status.service.js.map +1 -1
- package/lib/browser/language/language.service.d.ts +4 -3
- package/lib/browser/language/language.service.d.ts.map +1 -1
- package/lib/browser/language/language.service.js +8 -2
- package/lib/browser/language/language.service.js.map +1 -1
- package/lib/browser/menu/editor.context.js +3 -3
- package/lib/browser/menu/editor.context.js.map +1 -1
- package/lib/browser/menu/editor.menu.d.ts +2 -2
- package/lib/browser/menu/editor.menu.d.ts.map +1 -1
- package/lib/browser/menu/editor.menu.js +6 -8
- package/lib/browser/menu/editor.menu.js.map +1 -1
- package/lib/browser/menu/open-type-menu.contribution.js +9 -9
- package/lib/browser/menu/open-type-menu.contribution.js.map +1 -1
- package/lib/browser/menu/title-context.menu.js.map +1 -1
- package/lib/browser/merge-editor/merge-editor.contribution.d.ts +8 -0
- package/lib/browser/merge-editor/merge-editor.contribution.d.ts.map +1 -0
- package/lib/browser/merge-editor/merge-editor.contribution.js +29 -0
- package/lib/browser/merge-editor/merge-editor.contribution.js.map +1 -0
- package/lib/browser/merge-editor/merge-editor.provider.d.ts +8 -0
- package/lib/browser/merge-editor/merge-editor.provider.d.ts.map +1 -0
- package/lib/browser/merge-editor/merge-editor.provider.js +44 -0
- package/lib/browser/merge-editor/merge-editor.provider.js.map +1 -0
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.js.map +1 -1
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.js +7 -7
- package/lib/browser/monaco-contrib/callHierarchy/callHierarchy.service.js.map +1 -1
- package/lib/browser/monaco-contrib/command/command.service.d.ts +1 -1
- package/lib/browser/monaco-contrib/command/command.service.d.ts.map +1 -1
- package/lib/browser/monaco-contrib/command/command.service.js.map +1 -1
- package/lib/browser/monaco-contrib/tokenizer/textmate-registry.js.map +1 -1
- package/lib/browser/monaco-contrib/tokenizer/textmate.service.d.ts +2 -1
- package/lib/browser/monaco-contrib/tokenizer/textmate.service.d.ts.map +1 -1
- package/lib/browser/monaco-contrib/tokenizer/textmate.service.js +5 -2
- package/lib/browser/monaco-contrib/tokenizer/textmate.service.js.map +1 -1
- package/lib/browser/monaco-contrib/typeHierarchy/typeHierarchy.contribution.js.map +1 -1
- package/lib/browser/monaco-contrib/typeHierarchy/typeHierarchy.service.js +7 -7
- package/lib/browser/monaco-contrib/typeHierarchy/typeHierarchy.service.js.map +1 -1
- package/lib/browser/navigation.module.less +1 -1
- package/lib/browser/navigation.view.d.ts.map +1 -1
- package/lib/browser/navigation.view.js +26 -15
- package/lib/browser/navigation.view.js.map +1 -1
- package/lib/browser/preference/contribution.js.map +1 -1
- package/lib/browser/preference/converter.d.ts +3 -3
- package/lib/browser/preference/converter.d.ts.map +1 -1
- package/lib/browser/preference/schema.d.ts +1 -1
- package/lib/browser/preference/schema.d.ts.map +1 -1
- package/lib/browser/preference/schema.js +8 -8
- package/lib/browser/preference/schema.js.map +1 -1
- package/lib/browser/quick-open/go-to-line.js.map +1 -1
- package/lib/browser/quick-open/workspace-symbol-quickopen.d.ts.map +1 -1
- package/lib/browser/quick-open/workspace-symbol-quickopen.js +2 -2
- package/lib/browser/quick-open/workspace-symbol-quickopen.js.map +1 -1
- package/lib/browser/resource.service.js.map +1 -1
- package/lib/browser/tab.view.d.ts +1 -1
- package/lib/browser/tab.view.d.ts.map +1 -1
- package/lib/browser/tab.view.js +2 -2
- package/lib/browser/tab.view.js.map +1 -1
- package/lib/browser/types.d.ts +5 -5
- package/lib/browser/types.d.ts.map +1 -1
- package/lib/browser/untitled-resource.js +1 -1
- package/lib/browser/untitled-resource.js.map +1 -1
- package/lib/browser/view/suggest-widget.js.map +1 -1
- package/lib/browser/workbench-editor.service.d.ts +17 -0
- package/lib/browser/workbench-editor.service.d.ts.map +1 -1
- package/lib/browser/workbench-editor.service.js +259 -176
- package/lib/browser/workbench-editor.service.js.map +1 -1
- package/lib/common/doc-cache.d.ts +2 -2
- package/lib/common/doc-cache.d.ts.map +1 -1
- package/lib/common/editor.d.ts +20 -6
- package/lib/common/editor.d.ts.map +1 -1
- package/lib/common/editor.js +12 -1
- package/lib/common/editor.js.map +1 -1
- package/lib/common/language.d.ts +18 -7
- package/lib/common/language.d.ts.map +1 -1
- package/lib/common/language.js +15 -7
- package/lib/common/language.js.map +1 -1
- package/lib/common/mocks/workbench-editor.service.js.map +1 -1
- package/lib/common/resource.d.ts +8 -2
- package/lib/common/resource.d.ts.map +1 -1
- package/lib/common/resource.js +1 -0
- package/lib/common/resource.js.map +1 -1
- package/package.json +17 -16
- package/src/browser/breadcrumb/default.ts +299 -0
- package/src/browser/breadcrumb/document-symbol.ts +187 -0
- package/src/browser/breadcrumb/index.ts +96 -0
- package/src/browser/component.ts +204 -0
- package/src/browser/decoration-applier.ts +256 -0
- package/src/browser/diff/compare.ts +99 -0
- package/src/browser/diff/index.ts +81 -0
- package/src/browser/doc-cache/empty-doc-cache.ts +26 -0
- package/src/browser/doc-cache/index.ts +2 -0
- package/src/browser/doc-cache/local-storage-cache.ts +67 -0
- package/src/browser/doc-model/editor-document-error.ts +10 -0
- package/src/browser/doc-model/editor-document-model-service.ts +346 -0
- package/src/browser/doc-model/editor-document-model.ts +690 -0
- package/src/browser/doc-model/editor-document-registry.ts +119 -0
- package/src/browser/doc-model/editor-is-fn.ts +9 -0
- package/src/browser/doc-model/main.ts +4 -0
- package/src/browser/doc-model/override.ts +49 -0
- package/src/browser/doc-model/save-task.ts +88 -0
- package/src/browser/doc-model/saveParticipants.ts +227 -0
- package/src/browser/doc-model/types.ts +350 -0
- package/src/browser/editor-collection.service.ts +790 -0
- package/src/browser/editor-opener.ts +44 -0
- package/src/browser/editor.contribution.ts +1438 -0
- package/src/browser/editor.decoration.service.ts +247 -0
- package/src/browser/editor.less +4 -0
- package/src/browser/editor.module.less +548 -0
- package/src/browser/editor.override.ts +133 -0
- package/src/browser/editor.status-bar.service.ts +116 -0
- package/src/browser/editor.view.tsx +623 -0
- package/src/browser/error.ts +21 -0
- package/src/browser/feature.ts +63 -0
- package/src/browser/format/format.service.ts +95 -0
- package/src/browser/format/formatterSelect.ts +82 -0
- package/src/browser/fs-resource/file-tree-set.ts +126 -0
- package/src/browser/fs-resource/fs-editor-doc.ts +213 -0
- package/src/browser/fs-resource/fs-resource.ts +247 -0
- package/src/browser/fs-resource/index.ts +27 -0
- package/src/browser/grid/grid.service.ts +288 -0
- package/src/browser/history/index.ts +228 -0
- package/src/browser/index.ts +236 -0
- package/src/browser/language/diagnostic-collection.ts +83 -0
- package/src/browser/language/language-status.contribution.ts +81 -0
- package/src/browser/language/language-status.service.ts +32 -0
- package/src/browser/language/language.service.ts +185 -0
- package/src/browser/menu/editor.context.ts +186 -0
- package/src/browser/menu/editor.menu.ts +45 -0
- package/src/browser/menu/open-type-menu.contribution.ts +90 -0
- package/src/browser/menu/title-context.menu.ts +54 -0
- package/src/browser/merge-editor/merge-editor.contribution.ts +25 -0
- package/src/browser/merge-editor/merge-editor.provider.ts +36 -0
- package/src/browser/monaco-contrib/callHierarchy/callHierarchy.contribution.ts +78 -0
- package/src/browser/monaco-contrib/callHierarchy/callHierarchy.service.ts +160 -0
- package/src/browser/monaco-contrib/command/command.service.ts +438 -0
- package/src/browser/monaco-contrib/index.ts +4 -0
- package/src/browser/monaco-contrib/tokenizer/textmate-registry.ts +107 -0
- package/src/browser/monaco-contrib/tokenizer/textmate-tokenizer.ts +104 -0
- package/src/browser/monaco-contrib/tokenizer/textmate.service.ts +925 -0
- package/src/browser/monaco-contrib/typeHierarchy/typeHierarchy.contribution.ts +78 -0
- package/src/browser/monaco-contrib/typeHierarchy/typeHierarchy.service.ts +154 -0
- package/src/browser/navigation.module.less +96 -0
- package/src/browser/navigation.view.tsx +254 -0
- package/src/browser/preference/contribution.ts +8 -0
- package/src/browser/preference/converter.ts +793 -0
- package/src/browser/preference/schema.ts +1896 -0
- package/src/browser/preference/util.ts +14 -0
- package/src/browser/quick-open/go-to-line.ts +164 -0
- package/src/browser/quick-open/workspace-symbol-quickopen.ts +276 -0
- package/src/browser/resource.service.ts +263 -0
- package/src/browser/tab.view.tsx +514 -0
- package/src/browser/types.ts +467 -0
- package/src/browser/untitled-resource.ts +223 -0
- package/src/browser/view/editor.react.tsx +82 -0
- package/src/browser/view/react-hook.tsx +7 -0
- package/src/browser/view/suggest-widget.ts +77 -0
- package/src/browser/view/topPadding.ts +18 -0
- package/src/browser/workbench-editor.service.ts +2291 -0
- package/src/common/doc-cache.ts +117 -0
- package/src/common/editor.ts +799 -0
- package/src/common/index.ts +6 -0
- package/src/common/language-status.ts +33 -0
- package/src/common/language.ts +206 -0
- package/src/common/mocks/workbench-editor.service.ts +52 -0
- package/src/common/resource.ts +147 -0
- package/src/common/utils.ts +10 -0
- package/src/index.ts +1 -0
- package/lib/browser/component/scroll/scroll.d.ts +0 -2
- package/lib/browser/component/scroll/scroll.d.ts.map +0 -1
- package/lib/browser/component/scroll/scroll.js +0 -5
- package/lib/browser/component/scroll/scroll.js.map +0 -1
- package/lib/browser/component/scroll/scroll.module.less +0 -86
|
@@ -0,0 +1,799 @@
|
|
|
1
|
+
import { Injectable } from '@opensumi/di';
|
|
2
|
+
import { IScopedContextKeyService } from '@opensumi/ide-core-browser';
|
|
3
|
+
import { IMergeEditorEditor } from '@opensumi/ide-core-browser/lib/monaco/merge-editor-widget';
|
|
4
|
+
import {
|
|
5
|
+
URI,
|
|
6
|
+
Event,
|
|
7
|
+
BasicEvent,
|
|
8
|
+
IDisposable,
|
|
9
|
+
MaybeNull,
|
|
10
|
+
IRange,
|
|
11
|
+
ISelection,
|
|
12
|
+
ILineChange,
|
|
13
|
+
IPosition,
|
|
14
|
+
IThemeColor,
|
|
15
|
+
IMarkdownString,
|
|
16
|
+
} from '@opensumi/ide-core-common';
|
|
17
|
+
// eslint-disable-next-line import/no-restricted-paths
|
|
18
|
+
import type { ICodeEditor as IMonacoCodeEditor } from '@opensumi/ide-monaco/lib/browser/monaco-api/types';
|
|
19
|
+
// eslint-disable-next-line import/no-restricted-paths
|
|
20
|
+
import type { IEditorOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/common/config/editorOptions';
|
|
21
|
+
import type { ITextModelUpdateOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/common/model';
|
|
22
|
+
|
|
23
|
+
// eslint-disable-next-line import/no-restricted-paths
|
|
24
|
+
import type { IEditorDocumentModel, IEditorDocumentModelRef } from '../browser';
|
|
25
|
+
|
|
26
|
+
import { IResource } from './resource';
|
|
27
|
+
|
|
28
|
+
export interface CursorStatus {
|
|
29
|
+
position: MaybeNull<IPosition>;
|
|
30
|
+
selectionLength: number;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export enum EditorType {
|
|
34
|
+
/**
|
|
35
|
+
* 普通编辑器
|
|
36
|
+
*/
|
|
37
|
+
CODE,
|
|
38
|
+
/**
|
|
39
|
+
* 原始对比编辑器(左侧)
|
|
40
|
+
*/
|
|
41
|
+
ORIGINAL_DIFF,
|
|
42
|
+
/**
|
|
43
|
+
* 修改对比编辑器(右侧)
|
|
44
|
+
*/
|
|
45
|
+
MODIFIED_DIFF,
|
|
46
|
+
/**
|
|
47
|
+
* 3-way 编辑器
|
|
48
|
+
*/
|
|
49
|
+
MERGE_EDITOR_DIFF = 'MERGE_EDITOR_DIFF',
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 一个IEditor代表了一个最小的编辑器单元,可以是CodeEditor中的一个,也可以是DiffEditor中的两个
|
|
54
|
+
*/
|
|
55
|
+
export interface IEditor {
|
|
56
|
+
/**
|
|
57
|
+
* 获得当前编辑器
|
|
58
|
+
*/
|
|
59
|
+
getId(): string;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 获得编辑器的类型
|
|
63
|
+
*/
|
|
64
|
+
getType(): EditorType;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* editor中打开的documentModel
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
currentDocumentModel: IEditorDocumentModel | null;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 当前的uri
|
|
74
|
+
*/
|
|
75
|
+
currentUri: URI | null;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* 插入代码片段
|
|
79
|
+
* @param template
|
|
80
|
+
* @param ranges
|
|
81
|
+
* @param opts
|
|
82
|
+
*/
|
|
83
|
+
insertSnippet(template: string, ranges: readonly IRange[], opts: IUndoStopOptions);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* 应用装饰器
|
|
87
|
+
* @param key
|
|
88
|
+
* @param options
|
|
89
|
+
*/
|
|
90
|
+
applyDecoration(key: string, options: IDecorationApplyOptions[]);
|
|
91
|
+
|
|
92
|
+
getSelections(): ISelection[] | null;
|
|
93
|
+
|
|
94
|
+
onSelectionsChanged: Event<{ selections: ISelection[]; source: string }>;
|
|
95
|
+
|
|
96
|
+
onVisibleRangesChanged: Event<IRange[]>;
|
|
97
|
+
|
|
98
|
+
onConfigurationChanged: Event<void>;
|
|
99
|
+
|
|
100
|
+
setSelections(selection: IRange[] | ISelection[]);
|
|
101
|
+
|
|
102
|
+
setSelection(selection: IRange | ISelection);
|
|
103
|
+
|
|
104
|
+
updateOptions(editorOptions?: IEditorOptions, modelOptions?: ITextModelUpdateOptions);
|
|
105
|
+
|
|
106
|
+
save(): Promise<void>;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* 获得包裹的 monaco 编辑器
|
|
110
|
+
*/
|
|
111
|
+
monacoEditor: IMonacoCodeEditor;
|
|
112
|
+
|
|
113
|
+
onDispose: Event<void>;
|
|
114
|
+
|
|
115
|
+
onFocus: Event<void>;
|
|
116
|
+
|
|
117
|
+
onBlur: Event<void>;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export interface IUndoStopOptions {
|
|
121
|
+
undoStopBefore: boolean;
|
|
122
|
+
undoStopAfter: boolean;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export interface ICodeEditor extends IEditor, IDisposable {
|
|
126
|
+
layout(): void;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* 打开一个 document
|
|
130
|
+
* @param uri
|
|
131
|
+
*/
|
|
132
|
+
open(documentModelRef: IEditorDocumentModelRef, range?: IRange): void;
|
|
133
|
+
|
|
134
|
+
focus(): void;
|
|
135
|
+
|
|
136
|
+
onCursorPositionChanged: Event<CursorStatus>;
|
|
137
|
+
|
|
138
|
+
onRefOpen: Event<IEditorDocumentModelRef>;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Diff 编辑器抽象
|
|
143
|
+
*/
|
|
144
|
+
export interface IDiffEditor extends IDisposable {
|
|
145
|
+
compare(
|
|
146
|
+
originalDocModelRef: IEditorDocumentModelRef,
|
|
147
|
+
modifiedDocModelRef: IEditorDocumentModelRef,
|
|
148
|
+
options?: IResourceOpenOptions,
|
|
149
|
+
rawUri?: URI,
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
originalEditor: IEditor;
|
|
153
|
+
|
|
154
|
+
modifiedEditor: IEditor;
|
|
155
|
+
|
|
156
|
+
layout(): void;
|
|
157
|
+
|
|
158
|
+
focus(): void;
|
|
159
|
+
|
|
160
|
+
getLineChanges(): ILineChange[] | null;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
@Injectable()
|
|
164
|
+
export abstract class EditorCollectionService {
|
|
165
|
+
/**
|
|
166
|
+
* 当前的编辑器
|
|
167
|
+
*/
|
|
168
|
+
public readonly currentEditor: IEditor | undefined;
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* 创建一个 monaco 编辑器实例
|
|
172
|
+
* @param dom
|
|
173
|
+
* @param options
|
|
174
|
+
* @param overrides
|
|
175
|
+
*/
|
|
176
|
+
public abstract createCodeEditor(dom: HTMLElement, options?: any, overrides?: { [key: string]: any }): ICodeEditor;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* 创建一个 monaco diffEditor 实例
|
|
180
|
+
* @param dom
|
|
181
|
+
* @param options
|
|
182
|
+
* @param overrides
|
|
183
|
+
*/
|
|
184
|
+
public abstract createDiffEditor(dom: HTMLElement, options?: any, overrides?: { [key: string]: any }): IDiffEditor;
|
|
185
|
+
|
|
186
|
+
public abstract createMergeEditor(
|
|
187
|
+
dom: HTMLElement,
|
|
188
|
+
options?: any,
|
|
189
|
+
overrides?: { [key: string]: any },
|
|
190
|
+
): IMergeEditorEditor;
|
|
191
|
+
|
|
192
|
+
public abstract listEditors(): IEditor[];
|
|
193
|
+
public abstract listDiffEditors(): IDiffEditor[];
|
|
194
|
+
|
|
195
|
+
public abstract onCodeEditorCreate: Event<ICodeEditor>;
|
|
196
|
+
public abstract onDiffEditorCreate: Event<IDiffEditor>;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export type IOpenResourceResult = { group: IEditorGroup; resource: IResource } | false;
|
|
200
|
+
/**
|
|
201
|
+
* 当前显示的Editor列表发生变化时
|
|
202
|
+
*/
|
|
203
|
+
export class CollectionEditorsUpdateEvent extends BasicEvent<IEditor[]> {}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* 当EditorGroup中打开的uri发生改变时
|
|
207
|
+
*/
|
|
208
|
+
export class DidChangeEditorGroupUriEvent extends BasicEvent<URI[][]> {}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* 当 Decoration Provider 收集完 monaco decoration option 并设置后
|
|
212
|
+
*/
|
|
213
|
+
export class DidApplyEditorDecorationFromProvider extends BasicEvent<{ key?: string; uri: URI }> {}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* 编辑器组
|
|
217
|
+
* 是一组tab和一个展示编辑器或者编辑器富组件的单元,主要用来管理 tab 的生命周期,以及控制编辑器主体的展示。
|
|
218
|
+
* 一个 workbenchEditorService 会拥有多个(至少一个)编辑器组,它会在类似 “向右拆分” 这样的功能被使用时创建,在该组tab完全关闭时销毁。
|
|
219
|
+
*/
|
|
220
|
+
export interface IEditorGroup {
|
|
221
|
+
/**
|
|
222
|
+
* 当前 editorGroup 在 workbenchEditorService.sortedEditorGroups 中的 index
|
|
223
|
+
*/
|
|
224
|
+
index: number;
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* 当前 editorGroup 的名称,唯一,可视作 id
|
|
228
|
+
*/
|
|
229
|
+
name: string;
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* 每个编辑器组拥有一个代码编辑器和一个diff编辑器实例
|
|
233
|
+
* 当前group的代码编辑器
|
|
234
|
+
*/
|
|
235
|
+
codeEditor: ICodeEditor;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* 当前group的diff编辑器实例
|
|
239
|
+
*/
|
|
240
|
+
diffEditor: IDiffEditor;
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* 当前的编辑器 (如果当前是富组件,则返回 null)
|
|
244
|
+
*/
|
|
245
|
+
currentEditor: IEditor | null;
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* 和currentEditor不同,对于diffEditor来说会取确实在focus的Editor
|
|
249
|
+
*/
|
|
250
|
+
currentOrPreviousFocusedEditor: IEditor | null;
|
|
251
|
+
|
|
252
|
+
currentFocusedEditor: IEditor | null;
|
|
253
|
+
/**
|
|
254
|
+
* 所有当前编辑器租的 tab 的资源
|
|
255
|
+
*/
|
|
256
|
+
resources: IResource[];
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* 当前的 tab 对应的资源
|
|
260
|
+
*/
|
|
261
|
+
currentResource: MaybeNull<IResource>;
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* 当前的打开方式
|
|
265
|
+
*/
|
|
266
|
+
currentOpenType: MaybeNull<IEditorOpenType>;
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* 当前可选的打开方式列表
|
|
270
|
+
*/
|
|
271
|
+
availableOpenTypes: IEditorOpenType[];
|
|
272
|
+
|
|
273
|
+
resourceStatus: Map<IResource, Promise<void>>;
|
|
274
|
+
|
|
275
|
+
changeOpenType(type: string): Promise<void>;
|
|
276
|
+
|
|
277
|
+
onDidEditorGroupContentLoading: Event<IResource>;
|
|
278
|
+
|
|
279
|
+
open(uri: URI, options?: IResourceOpenOptions): Promise<IOpenResourceResult>;
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* 取消指定 uri 的 tab 的 preview模式(斜体模式),如果它是的话
|
|
283
|
+
* @param uri
|
|
284
|
+
*/
|
|
285
|
+
pin(uri: URI): Promise<void>;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* 关闭指定的 uri 的 tab, 如果存在的话
|
|
289
|
+
* @param uri
|
|
290
|
+
*/
|
|
291
|
+
close(uri: URI): Promise<void>;
|
|
292
|
+
|
|
293
|
+
getState(): IEditorGroupState;
|
|
294
|
+
|
|
295
|
+
restoreState(IEditorGroupState): Promise<void>;
|
|
296
|
+
|
|
297
|
+
saveAll(): Promise<void>;
|
|
298
|
+
|
|
299
|
+
closeAll(): Promise<void>;
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* 保存当前的 tab 的文件 (如果它能被保存的话)
|
|
303
|
+
*/
|
|
304
|
+
saveCurrent(reason?: SaveReason): Promise<void>;
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* 保存某个 resource
|
|
308
|
+
* @param resource
|
|
309
|
+
* @param reason
|
|
310
|
+
*/
|
|
311
|
+
saveResource(resource: IResource, reason: SaveReason): Promise<void>;
|
|
312
|
+
}
|
|
313
|
+
export abstract class WorkbenchEditorService {
|
|
314
|
+
/**
|
|
315
|
+
* 当前 resource 发生变更
|
|
316
|
+
*/
|
|
317
|
+
onActiveResourceChange: Event<MaybeNull<IResource>>;
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* 当前编辑器内鼠标
|
|
321
|
+
*/
|
|
322
|
+
onCursorChange: Event<CursorStatus>;
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* 编辑器组发生改变时的事件
|
|
326
|
+
*/
|
|
327
|
+
onDidEditorGroupsChanged: Event<void>;
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* 当前 editorGroup 发生改变的事件
|
|
331
|
+
*/
|
|
332
|
+
onDidCurrentEditorGroupChanged: Event<IEditorGroup>;
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* 所有的编辑器组
|
|
336
|
+
*/
|
|
337
|
+
editorGroups: IEditorGroup[];
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
*
|
|
341
|
+
*/
|
|
342
|
+
sortedEditorGroups: IEditorGroup[];
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* 当前的编辑器对象
|
|
346
|
+
*/
|
|
347
|
+
currentEditor: IEditor | null;
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* 当前焦点的编辑器资源
|
|
351
|
+
*/
|
|
352
|
+
currentResource: MaybeNull<IResource>;
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* 当前的编辑器组
|
|
356
|
+
*/
|
|
357
|
+
currentEditorGroup: IEditorGroup;
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* 关闭全部
|
|
361
|
+
* @param uri 只关闭指定的 uri
|
|
362
|
+
* @param force 不进行关闭前提醒(不执行 shouldCloseResource)
|
|
363
|
+
*/
|
|
364
|
+
abstract closeAll(uri?: URI, force?: boolean): Promise<void>;
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* 打开指定的 uri
|
|
368
|
+
* @param uri
|
|
369
|
+
* @param options 打开的选项
|
|
370
|
+
*/
|
|
371
|
+
abstract open(uri: URI, options?: IResourceOpenOptions): Promise<IOpenResourceResult>;
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* 打开多个 uri
|
|
375
|
+
* @param uri
|
|
376
|
+
*/
|
|
377
|
+
abstract openUris(uri: URI[]): Promise<void>;
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* 保存全部
|
|
381
|
+
* @param includeUntitled 是否对新文件进行保存询问, 默认false
|
|
382
|
+
*/
|
|
383
|
+
abstract saveAll(includeUntitled?: boolean): Promise<void>;
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* 关闭指定的 uri, 等同于 closeAll 带 uri 参数
|
|
387
|
+
* @param uri
|
|
388
|
+
* @param force
|
|
389
|
+
*/
|
|
390
|
+
abstract close(uri: any, force?: boolean): Promise<void>;
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* 获得当前打开的 uri
|
|
394
|
+
*/
|
|
395
|
+
abstract getAllOpenedUris(): URI[];
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* 创建一个带待存的资源
|
|
399
|
+
* @param options
|
|
400
|
+
*/
|
|
401
|
+
abstract createUntitledResource(options?: IUntitledOptions): Promise<IOpenResourceResult>;
|
|
402
|
+
|
|
403
|
+
abstract setEditorContextKeyService(contextKeyService: IScopedContextKeyService): void;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export interface IUntitledOptions extends IResourceOpenOptions {
|
|
407
|
+
uri: URI;
|
|
408
|
+
resourceOpenOptions?: IResourceOpenOptions;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
export interface IResourceOpenOptions {
|
|
412
|
+
/**
|
|
413
|
+
* 跳转到指定的编辑器位置
|
|
414
|
+
*/
|
|
415
|
+
range?: Partial<IRange>;
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* 打开编辑器后是否滚动到屏幕中间
|
|
419
|
+
* 默认为 true
|
|
420
|
+
*/
|
|
421
|
+
revealRangeInCenter?: boolean;
|
|
422
|
+
|
|
423
|
+
scrollTop?: number;
|
|
424
|
+
scrollLeft?: number;
|
|
425
|
+
|
|
426
|
+
// 如果打开的是 diff 编辑器,可以指定 original editor 的 range
|
|
427
|
+
originalRange?: Partial<IRange>;
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* 打开的tab在本组编辑器中的位置
|
|
431
|
+
*/
|
|
432
|
+
index?: number;
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* 是否不自动切换到这个打开的 tab,
|
|
436
|
+
*/
|
|
437
|
+
backend?: boolean;
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* 指定的编辑器组号码(对应 workbenchEditorService 的 sortedEditorGroups 的索引)
|
|
441
|
+
*/
|
|
442
|
+
groupIndex?: number;
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* 相对于当前活跃的 groupIndex (对应 workbenchEditorService 的 sortedEditorGroups 的索引来加减)
|
|
446
|
+
*/
|
|
447
|
+
relativeGroupIndex?: number;
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* 强制使用这个作为tab名称, 而不遵从 resourceProvider 中提供的信息
|
|
451
|
+
*/
|
|
452
|
+
label?: string;
|
|
453
|
+
|
|
454
|
+
/**
|
|
455
|
+
* 执行编辑器组拆分操作
|
|
456
|
+
*/
|
|
457
|
+
split?: EditorGroupSplitAction;
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* @deprecated use focus instead
|
|
461
|
+
*/
|
|
462
|
+
preserveFocus?: boolean;
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* 获取焦点
|
|
466
|
+
*/
|
|
467
|
+
focus?: boolean;
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* 强制使用指定的打开方式
|
|
471
|
+
*/
|
|
472
|
+
forceOpenType?: IEditorOpenType;
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* 不尝试在文件树上对打开的 uri 进行定位
|
|
476
|
+
*/
|
|
477
|
+
disableNavigate?: boolean;
|
|
478
|
+
|
|
479
|
+
/**
|
|
480
|
+
* 是否使用preview模式
|
|
481
|
+
* 如果是undefined,使用editor.previewMode配置作为默认值
|
|
482
|
+
*/
|
|
483
|
+
preview?: boolean;
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* 对于DiffEditor,是否跳转到第一个diff
|
|
487
|
+
*/
|
|
488
|
+
revealFirstDiff?: boolean;
|
|
489
|
+
|
|
490
|
+
/**
|
|
491
|
+
* 对于 deleted 的 resource 的 策略
|
|
492
|
+
* 'try' : 尝试打开,在最后一个错误处爆出错误信息, 会增加tab (默认行为)
|
|
493
|
+
* 'fail': 一但发现资源是deleted,直接报错,不增加tab
|
|
494
|
+
* 'skip': 同 fail, 但不报错并直接跳过
|
|
495
|
+
*/
|
|
496
|
+
deletedPolicy?: 'try' | 'fail' | 'skip';
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* 替换掉目标的 tab (通过index指定,或替换当前 tab)
|
|
500
|
+
* 如果当前没有 tab,则和正常打开效果一致
|
|
501
|
+
* 如果当前 tab 的关闭被阻止(比如shouldClose),则不继续 replace 操作而是正常打开
|
|
502
|
+
*/
|
|
503
|
+
replace?: boolean;
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* 当关闭时指定 force 参数,用来跳过 shouldClose 等逻辑
|
|
507
|
+
*/
|
|
508
|
+
forceClose?: boolean;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
export interface IResourceOpenResult {
|
|
512
|
+
groupId: string;
|
|
513
|
+
[key: string]: any;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
export interface Position {
|
|
517
|
+
/**
|
|
518
|
+
* Line position in a document (zero-based).
|
|
519
|
+
* If a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.
|
|
520
|
+
* If a line number is negative, it defaults to 0.
|
|
521
|
+
*/
|
|
522
|
+
line: number;
|
|
523
|
+
/**
|
|
524
|
+
* Character offset on a line in a document (zero-based). Assuming that the line is
|
|
525
|
+
* represented as a string, the `character` value represents the gap between the
|
|
526
|
+
* `character` and `character + 1`.
|
|
527
|
+
*
|
|
528
|
+
* If the character value is greater than the line length it defaults back to the
|
|
529
|
+
* line length.
|
|
530
|
+
* If a line number is negative, it defaults to 0.
|
|
531
|
+
*/
|
|
532
|
+
character: number;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
/**
|
|
536
|
+
* A single edit operation, that acts as a simple replace.
|
|
537
|
+
* i.e. Replace text at `range` with `text` in model.
|
|
538
|
+
*/
|
|
539
|
+
export interface ISingleEditOperation {
|
|
540
|
+
/**
|
|
541
|
+
* The range to replace. This can be empty to emulate a simple insert.
|
|
542
|
+
*/
|
|
543
|
+
range: IRange;
|
|
544
|
+
/**
|
|
545
|
+
* The text to replace with. This can be null to emulate a simple delete.
|
|
546
|
+
*/
|
|
547
|
+
text: string | null;
|
|
548
|
+
/**
|
|
549
|
+
* This indicates that this operation has "insert" semantics.
|
|
550
|
+
* i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved.
|
|
551
|
+
*/
|
|
552
|
+
forceMoveMarkers?: boolean;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
/**
|
|
556
|
+
* @internal
|
|
557
|
+
*/
|
|
558
|
+
export interface IThemeDecorationRenderOptions {
|
|
559
|
+
backgroundColor?: string | IThemeColor;
|
|
560
|
+
backgroundIcon?: string;
|
|
561
|
+
backgroundIconSize?: string;
|
|
562
|
+
|
|
563
|
+
outline?: string;
|
|
564
|
+
outlineColor?: string | IThemeColor;
|
|
565
|
+
outlineStyle?: string;
|
|
566
|
+
outlineWidth?: string;
|
|
567
|
+
|
|
568
|
+
border?: string;
|
|
569
|
+
borderColor?: string | IThemeColor;
|
|
570
|
+
borderRadius?: string;
|
|
571
|
+
borderSpacing?: string;
|
|
572
|
+
borderStyle?: string;
|
|
573
|
+
borderWidth?: string;
|
|
574
|
+
|
|
575
|
+
fontStyle?: string;
|
|
576
|
+
fontWeight?: string;
|
|
577
|
+
textDecoration?: string;
|
|
578
|
+
/**
|
|
579
|
+
* @proposal
|
|
580
|
+
*/
|
|
581
|
+
textUnderlinePosition?: string;
|
|
582
|
+
cursor?: string;
|
|
583
|
+
color?: string | IThemeColor;
|
|
584
|
+
opacity?: string;
|
|
585
|
+
letterSpacing?: string;
|
|
586
|
+
|
|
587
|
+
gutterIconPath?: UriComponents | string;
|
|
588
|
+
gutterIconSize?: string;
|
|
589
|
+
|
|
590
|
+
overviewRulerColor?: string | IThemeColor;
|
|
591
|
+
|
|
592
|
+
before?: IContentDecorationRenderOptions;
|
|
593
|
+
after?: IContentDecorationRenderOptions;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
/**
|
|
597
|
+
* @internal
|
|
598
|
+
*/
|
|
599
|
+
export interface IContentDecorationRenderOptions {
|
|
600
|
+
contentText?: string;
|
|
601
|
+
contentIconPath?: UriComponents;
|
|
602
|
+
|
|
603
|
+
border?: string;
|
|
604
|
+
borderColor?: string | IThemeColor;
|
|
605
|
+
fontStyle?: string;
|
|
606
|
+
fontWeight?: string;
|
|
607
|
+
textDecoration?: string;
|
|
608
|
+
color?: string | IThemeColor;
|
|
609
|
+
backgroundColor?: string | IThemeColor;
|
|
610
|
+
|
|
611
|
+
margin?: string;
|
|
612
|
+
width?: string;
|
|
613
|
+
height?: string;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* @internal
|
|
618
|
+
*/
|
|
619
|
+
export interface IDecorationRenderOptions extends IThemeDecorationRenderOptions {
|
|
620
|
+
isWholeLine?: boolean;
|
|
621
|
+
rangeBehavior?: TrackedRangeStickiness;
|
|
622
|
+
overviewRulerLane?: OverviewRulerLane;
|
|
623
|
+
|
|
624
|
+
light?: IThemeDecorationRenderOptions;
|
|
625
|
+
dark?: IThemeDecorationRenderOptions;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
export interface UriComponents {
|
|
629
|
+
scheme: string;
|
|
630
|
+
authority: string;
|
|
631
|
+
path: string;
|
|
632
|
+
query: string;
|
|
633
|
+
fragment: string;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
export interface ITextEditorDecorationType extends IDisposable {
|
|
637
|
+
key: string;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
export const enum TrackedRangeStickiness {
|
|
641
|
+
AlwaysGrowsWhenTypingAtEdges = 0,
|
|
642
|
+
NeverGrowsWhenTypingAtEdges = 1,
|
|
643
|
+
GrowsOnlyWhenTypingBefore = 2,
|
|
644
|
+
GrowsOnlyWhenTypingAfter = 3,
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
export enum OverviewRulerLane {
|
|
648
|
+
Left = 1,
|
|
649
|
+
Center = 2,
|
|
650
|
+
Right = 4,
|
|
651
|
+
Full = 7,
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
export interface IDecorationApplyOptions {
|
|
655
|
+
hoverMessage?: IHoverMessage;
|
|
656
|
+
|
|
657
|
+
range: IRange;
|
|
658
|
+
|
|
659
|
+
renderOptions?: IDecorationRenderOptions;
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
export type IHoverMessage = IMarkdownString | IMarkdownString[] | string;
|
|
663
|
+
|
|
664
|
+
export enum IEditorPriority {
|
|
665
|
+
builtin = 'builtin',
|
|
666
|
+
option = 'option',
|
|
667
|
+
exclusive = 'exclusive',
|
|
668
|
+
default = 'default',
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
export enum EditorOpenType {
|
|
672
|
+
code = 'code',
|
|
673
|
+
diff = 'diff',
|
|
674
|
+
mergeEditor = 'mergeEditor',
|
|
675
|
+
component = 'component',
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
// 定义一个resource如何被打开
|
|
679
|
+
export interface IEditorOpenType {
|
|
680
|
+
type: EditorOpenType;
|
|
681
|
+
|
|
682
|
+
componentId?: string;
|
|
683
|
+
|
|
684
|
+
title?: string;
|
|
685
|
+
|
|
686
|
+
readonly?: boolean;
|
|
687
|
+
|
|
688
|
+
priority?: keyof typeof IEditorPriority;
|
|
689
|
+
|
|
690
|
+
// 默认0, 大的排在前面
|
|
691
|
+
weight?: number;
|
|
692
|
+
|
|
693
|
+
/**
|
|
694
|
+
* 如果当前是这个打开方式,则使用这个方式的保存
|
|
695
|
+
* @param resource
|
|
696
|
+
*/
|
|
697
|
+
saveResource?(resource: IResource, reason: SaveReason);
|
|
698
|
+
|
|
699
|
+
/**
|
|
700
|
+
* 用户调用回滚文档时,如果是这个打开方式,则调用相关指令
|
|
701
|
+
* @param resource
|
|
702
|
+
*/
|
|
703
|
+
revertResource?(resource: IResource);
|
|
704
|
+
|
|
705
|
+
undo?(resource: IResource);
|
|
706
|
+
|
|
707
|
+
redo?(resource: IResource);
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
export enum DragOverPosition {
|
|
711
|
+
LEFT = 'left',
|
|
712
|
+
RIGHT = 'right',
|
|
713
|
+
TOP = 'top',
|
|
714
|
+
BOTTOM = 'bottom',
|
|
715
|
+
CENTER = 'center',
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
export enum EditorGroupSplitAction {
|
|
719
|
+
Top = 1,
|
|
720
|
+
Bottom = 2,
|
|
721
|
+
Left = 3,
|
|
722
|
+
Right = 4,
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
export interface IEditorGroupState {
|
|
726
|
+
uris: string[];
|
|
727
|
+
|
|
728
|
+
current?: string;
|
|
729
|
+
|
|
730
|
+
previewIndex: number;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
export enum Direction {
|
|
734
|
+
UP = 'up',
|
|
735
|
+
DOWN = 'down',
|
|
736
|
+
LEFT = 'left',
|
|
737
|
+
RIGHT = 'right',
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
export enum SaveReason {
|
|
741
|
+
Manual = 1,
|
|
742
|
+
AfterDelay = 2,
|
|
743
|
+
FocusOut = 3,
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
export namespace AUTO_SAVE_MODE {
|
|
747
|
+
export const OFF = 'off';
|
|
748
|
+
export const AFTER_DELAY = 'afterDelay';
|
|
749
|
+
export const EDITOR_FOCUS_CHANGE = 'editorFocusChange';
|
|
750
|
+
export const WINDOWS_LOST_FOCUS = 'windowLostFocus';
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
export interface IEditorDocumentModelContentChange {
|
|
754
|
+
range: IRange;
|
|
755
|
+
text: string;
|
|
756
|
+
rangeLength: number;
|
|
757
|
+
rangeOffset: number;
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
// 获取最基础的MonacoEditor配置
|
|
761
|
+
export function getSimpleEditorOptions(): IEditorOptions {
|
|
762
|
+
return {
|
|
763
|
+
fontSize: 12,
|
|
764
|
+
fontWeight: 'normal',
|
|
765
|
+
lineHeight: 0,
|
|
766
|
+
wordWrap: 'on',
|
|
767
|
+
overviewRulerLanes: 0,
|
|
768
|
+
glyphMargin: false,
|
|
769
|
+
lineNumbers: 'off',
|
|
770
|
+
folding: false,
|
|
771
|
+
selectOnLineNumbers: false,
|
|
772
|
+
hideCursorInOverviewRuler: true,
|
|
773
|
+
selectionHighlight: false,
|
|
774
|
+
scrollbar: {
|
|
775
|
+
horizontal: 'hidden',
|
|
776
|
+
},
|
|
777
|
+
lineDecorationsWidth: 0,
|
|
778
|
+
overviewRulerBorder: false,
|
|
779
|
+
scrollBeyondLastLine: false,
|
|
780
|
+
renderLineHighlight: 'none',
|
|
781
|
+
fixedOverflowWidgets: true,
|
|
782
|
+
acceptSuggestionOnEnter: 'smart',
|
|
783
|
+
minimap: {
|
|
784
|
+
enabled: false,
|
|
785
|
+
},
|
|
786
|
+
guides: {
|
|
787
|
+
highlightActiveIndentation: false,
|
|
788
|
+
indentation: false,
|
|
789
|
+
bracketPairs: false,
|
|
790
|
+
},
|
|
791
|
+
};
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
/**
|
|
795
|
+
* A way to address editor groups through a column based system
|
|
796
|
+
* where `0` is the first column. Will fallback to `SIDE_GROUP`
|
|
797
|
+
* in case the column does not exist yet.
|
|
798
|
+
*/
|
|
799
|
+
export type EditorGroupColumn = number;
|