@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,350 @@
|
|
|
1
|
+
import {
|
|
2
|
+
URI,
|
|
3
|
+
MaybePromise,
|
|
4
|
+
IRef,
|
|
5
|
+
IDisposable,
|
|
6
|
+
Event,
|
|
7
|
+
IRange,
|
|
8
|
+
BasicEvent,
|
|
9
|
+
IEditOperation,
|
|
10
|
+
IEditorDocumentChange,
|
|
11
|
+
IEditorDocumentModelSaveResult,
|
|
12
|
+
} from '@opensumi/ide-core-browser';
|
|
13
|
+
import { EndOfLineSequence, EOL, ITextModel } from '@opensumi/ide-monaco/lib/browser/monaco-api/types';
|
|
14
|
+
import * as monaco from '@opensumi/monaco-editor-core/esm/vs/editor/editor.api';
|
|
15
|
+
|
|
16
|
+
import { IEditorDocumentModelContentChange, SaveReason } from '../../common';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* editorDocumentModel is a wrapped concept for monaco's textModel
|
|
20
|
+
*/
|
|
21
|
+
export interface IEditorDocumentModel extends IDisposable {
|
|
22
|
+
/**
|
|
23
|
+
* 文档URI
|
|
24
|
+
*/
|
|
25
|
+
readonly uri: URI;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* A unique identifier associated with this model.
|
|
29
|
+
*/
|
|
30
|
+
id: string;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 编码
|
|
34
|
+
*/
|
|
35
|
+
encoding: string;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* An event emitted when the model's encoding have changed.
|
|
39
|
+
* @event
|
|
40
|
+
*/
|
|
41
|
+
onDidChangeEncoding: Event<void>;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* 行末结束
|
|
45
|
+
*/
|
|
46
|
+
eol: EOL;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* 语言Id
|
|
50
|
+
*/
|
|
51
|
+
languageId: string;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* 是否被修改过
|
|
55
|
+
*/
|
|
56
|
+
readonly dirty: boolean;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 能否修改
|
|
60
|
+
*/
|
|
61
|
+
readonly readonly: boolean;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* 能否保存
|
|
65
|
+
*/
|
|
66
|
+
readonly savable: boolean;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* 是否永远都显示 dirty
|
|
70
|
+
*/
|
|
71
|
+
readonly alwaysDirty: boolean;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* 即便是 dirty 也要被 dispose
|
|
75
|
+
*/
|
|
76
|
+
readonly disposeEvenDirty: boolean;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* 是否关闭自动保存功能
|
|
80
|
+
*/
|
|
81
|
+
readonly closeAutoSave: boolean;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* 获得monaco的TextModel
|
|
85
|
+
*/
|
|
86
|
+
getMonacoModel(): ITextModel;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* 保存文档, 如果文档不可保存,则不会有任何反应
|
|
90
|
+
* @param force 强制保存, 不管diff
|
|
91
|
+
*/
|
|
92
|
+
save(force?: boolean, reason?: SaveReason): Promise<boolean>;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* 恢复文件内容
|
|
96
|
+
* @param notOnDisk 文档已经不存在磁盘
|
|
97
|
+
*/
|
|
98
|
+
revert(notOnDisk?: boolean): Promise<void>;
|
|
99
|
+
|
|
100
|
+
getText(range?: IRange): string;
|
|
101
|
+
|
|
102
|
+
updateContent(content: string, eol?: EOL): void;
|
|
103
|
+
|
|
104
|
+
updateEncoding(encoding: string): Promise<void>;
|
|
105
|
+
|
|
106
|
+
// setEncoding(encoding: string, preferredEncoding, mode: EncodingMode): Promise<void>;
|
|
107
|
+
|
|
108
|
+
updateOptions(options: IDocModelUpdateOptions);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface IDocModelUpdateOptions extends monaco.editor.ITextModelUpdateOptions {
|
|
112
|
+
detectIndentation?: boolean;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export interface IEditorDocumentModelContentProvider {
|
|
116
|
+
/**
|
|
117
|
+
* 是否处理这个Scheme的uri
|
|
118
|
+
* 权重等级等同于 handlesUri => 10
|
|
119
|
+
* @param scheme
|
|
120
|
+
*/
|
|
121
|
+
handlesScheme?(scheme: string): MaybePromise<boolean>;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* 处理一个URI的权重, -1表示不处理, 如果存在handlesUri, handlesScheme将被忽略
|
|
125
|
+
* @param scheme
|
|
126
|
+
*/
|
|
127
|
+
handlesUri?(uri: URI): MaybePromise<number>;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* 提供文档内容
|
|
131
|
+
* @param uri
|
|
132
|
+
* @param encoding 以某种编码获取内容
|
|
133
|
+
*/
|
|
134
|
+
provideEditorDocumentModelContent(uri: URI, encoding?: string): MaybePromise<string>;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* 这个文档是否只读(注意只读和无法保存的区别)
|
|
138
|
+
* @param uri
|
|
139
|
+
*/
|
|
140
|
+
isReadonly(uri: URI): MaybePromise<boolean>;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* 保存一个文档, 如果不存在这个方法,那这个文档无法被保存
|
|
144
|
+
* 当文档无法保存时, 文档永远不会进入dirty状态,并且来自provider的
|
|
145
|
+
* @param uri
|
|
146
|
+
* @param content
|
|
147
|
+
* @param baseContent dirty前的内容
|
|
148
|
+
* @param ignoreDiff 无视diff错误, 强行覆盖保存
|
|
149
|
+
*/
|
|
150
|
+
saveDocumentModel?(
|
|
151
|
+
uri: URI,
|
|
152
|
+
content: string,
|
|
153
|
+
baseContent: string,
|
|
154
|
+
changes: IEditorDocumentChange[],
|
|
155
|
+
encoding?: string,
|
|
156
|
+
ignoreDiff?: boolean,
|
|
157
|
+
eol?: EOL,
|
|
158
|
+
): MaybePromise<IEditorDocumentModelSaveResult>;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* 为一个uri提供喜好的语言id,返回undefined则交由编辑器自己去判断
|
|
162
|
+
* @param uri
|
|
163
|
+
*/
|
|
164
|
+
preferLanguageForUri?(uri: URI): MaybePromise<string | undefined>;
|
|
165
|
+
|
|
166
|
+
provideEOL?(uri: URI): MaybePromise<EOL>;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* 为一个uri提供encoding信息, 如果不实现,则默认UTF-8
|
|
170
|
+
* @param uri;
|
|
171
|
+
*/
|
|
172
|
+
provideEncoding?(uri: URI): MaybePromise<string>;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* 提供这个文件当前内容的md5值,如果不实现这个函数,会使用content再执行计算
|
|
176
|
+
* @param uri
|
|
177
|
+
*/
|
|
178
|
+
provideEditorDocumentModelContentMd5?(uri: URI, encoding?: string): MaybePromise<string | undefined>;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* 文档内容变更事件,交由modelManager决定是否处理
|
|
182
|
+
*/
|
|
183
|
+
onDidChangeContent: Event<URI>;
|
|
184
|
+
|
|
185
|
+
onDidDisposeModel?(uri: URI): void;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* 是否永远显示 dirty
|
|
189
|
+
* 有些类型的文档(untitled)可能刚创建就是 dirty,允许它以空文件的状态保存
|
|
190
|
+
*/
|
|
191
|
+
isAlwaysDirty?(uri: URI): MaybePromise<boolean>;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* 是否关闭自动保存功能
|
|
195
|
+
*/
|
|
196
|
+
closeAutoSave?(uri: URI): MaybePromise<boolean>;
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* 猜测编码
|
|
200
|
+
*/
|
|
201
|
+
guessEncoding?(uri: URI): Promise<string | undefined>;
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* 即便是 dirty 状态也要被 dispose
|
|
205
|
+
*/
|
|
206
|
+
disposeEvenDirty?(uri: URI): MaybePromise<boolean>;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export interface IPreferredModelOptions {
|
|
210
|
+
encoding?: string;
|
|
211
|
+
languageId?: string;
|
|
212
|
+
eol?: EOL;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
export type IEditorDocumentModelRef = IRef<IEditorDocumentModel>;
|
|
216
|
+
|
|
217
|
+
export interface IEditorDocumentModelService {
|
|
218
|
+
hasLanguage(languageId: string): boolean;
|
|
219
|
+
|
|
220
|
+
createModelReference(uri: URI, reason?: string): Promise<IEditorDocumentModelRef>;
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* 获取一个文本文档,
|
|
224
|
+
* 当文档从来没有被打开过时,返回null
|
|
225
|
+
*/
|
|
226
|
+
getModelReference(uri: URI, reason?: string): IEditorDocumentModelRef | null;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* 获得全部model
|
|
230
|
+
*/
|
|
231
|
+
getAllModels(): IEditorDocumentModel[];
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* 修改某个uri的option (会存储在偏好内)
|
|
235
|
+
* @param uri
|
|
236
|
+
* @param options
|
|
237
|
+
*/
|
|
238
|
+
changeModelOptions(uri: URI, options: IPreferredModelOptions);
|
|
239
|
+
|
|
240
|
+
saveEditorDocumentModel(
|
|
241
|
+
uri: URI,
|
|
242
|
+
content: string,
|
|
243
|
+
baseContent: string,
|
|
244
|
+
changes: IEditorDocumentChange[],
|
|
245
|
+
encoding?: string,
|
|
246
|
+
ignoreDiff?: boolean,
|
|
247
|
+
): MaybePromise<IEditorDocumentModelSaveResult>;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export const IEditorDocumentModelService = Symbol('IEditorDocumentModelService');
|
|
251
|
+
|
|
252
|
+
export interface IEditorDocumentModelContentRegistry {
|
|
253
|
+
/**
|
|
254
|
+
* 注册文本源数据的提供商
|
|
255
|
+
* @param provider
|
|
256
|
+
*/
|
|
257
|
+
registerEditorDocumentModelContentProvider(provider: IEditorDocumentModelContentProvider): IDisposable;
|
|
258
|
+
|
|
259
|
+
getProvider(uri: URI): Promise<IEditorDocumentModelContentProvider | undefined>;
|
|
260
|
+
|
|
261
|
+
getContentForUri(uri: URI, encoding?: string): Promise<string>;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
export const IEditorDocumentModelContentRegistry = Symbol('IEditorDocumentModelContentRegistry');
|
|
265
|
+
|
|
266
|
+
// events;
|
|
267
|
+
|
|
268
|
+
export class EditorDocumentModelContentChangedEvent extends BasicEvent<IEditorDocumentModelContentChangedEventPayload> {}
|
|
269
|
+
|
|
270
|
+
export interface IEditorDocumentModelContentChangedEventPayload {
|
|
271
|
+
uri: URI;
|
|
272
|
+
dirty: boolean;
|
|
273
|
+
changes: IEditorDocumentModelContentChange[];
|
|
274
|
+
eol: string;
|
|
275
|
+
versionId: number;
|
|
276
|
+
isRedoing: boolean;
|
|
277
|
+
isUndoing: boolean;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
export class EditorDocumentModelOptionChangedEvent extends BasicEvent<IEditorDocumentModelOptionChangedEventPayload> {}
|
|
281
|
+
|
|
282
|
+
export class EditorDocumentModelOptionExternalUpdatedEvent extends BasicEvent<URI> {}
|
|
283
|
+
|
|
284
|
+
export interface IEditorDocumentModelOptionChangedEventPayload {
|
|
285
|
+
uri: URI;
|
|
286
|
+
encoding?: string;
|
|
287
|
+
languageId?: string;
|
|
288
|
+
eol?: EOL;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
export class EditorDocumentModelCreationEvent extends BasicEvent<IEditorDocumentModelCreationEventPayload> {}
|
|
292
|
+
|
|
293
|
+
export interface IEditorDocumentModelCreationEventPayload {
|
|
294
|
+
versionId: number;
|
|
295
|
+
uri: URI;
|
|
296
|
+
content: string;
|
|
297
|
+
eol: EOL;
|
|
298
|
+
encoding: string;
|
|
299
|
+
languageId: string;
|
|
300
|
+
readonly: boolean;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export class EditorDocumentModelRemovalEvent extends BasicEvent<URI> {}
|
|
304
|
+
|
|
305
|
+
export class EditorDocumentModelSavedEvent extends BasicEvent<URI> {}
|
|
306
|
+
|
|
307
|
+
export class EditorDocumentModelWillSaveEvent extends BasicEvent<{
|
|
308
|
+
uri: URI;
|
|
309
|
+
reason: SaveReason;
|
|
310
|
+
language: string;
|
|
311
|
+
}> {}
|
|
312
|
+
export interface IStackElement {
|
|
313
|
+
readonly beforeVersionId: number;
|
|
314
|
+
readonly beforeCursorState: Selection[] | null;
|
|
315
|
+
readonly afterCursorState: Selection[] | null;
|
|
316
|
+
readonly afterVersionId: number;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
export interface IEditStackElement extends IStackElement {
|
|
320
|
+
readonly beforeVersionId: number;
|
|
321
|
+
readonly beforeCursorState: Selection[];
|
|
322
|
+
afterCursorState: Selection[] | null;
|
|
323
|
+
afterVersionId: number;
|
|
324
|
+
|
|
325
|
+
editOperations: Array<{ operations: IEditOperation[] }>;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
export interface IEOLStackElement extends IStackElement {
|
|
329
|
+
readonly beforeVersionId: number;
|
|
330
|
+
readonly beforeCursorState: Selection[] | null;
|
|
331
|
+
readonly afterCursorState: Selection[] | null;
|
|
332
|
+
afterVersionId: number;
|
|
333
|
+
|
|
334
|
+
eol: EndOfLineSequence;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// original_doc://?target=file://aaa.js
|
|
338
|
+
export const ORIGINAL_DOC_SCHEME = 'original_doc';
|
|
339
|
+
|
|
340
|
+
export const enum EncodingMode {
|
|
341
|
+
/**
|
|
342
|
+
* Instructs the encoding support to encode the current input with the provided encoding
|
|
343
|
+
*/
|
|
344
|
+
Encode,
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Instructs the encoding support to decode the current input with the provided encoding
|
|
348
|
+
*/
|
|
349
|
+
Decode,
|
|
350
|
+
}
|