@xano/xanoscript-monaco-editor 0.1.3 → 0.1.4

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.
@@ -3,67 +3,67 @@
3
3
  "file": "assets/_.contribution-BThlLkzn.js",
4
4
  "name": "_.contribution"
5
5
  },
6
- "_editor-4HUBGwOu.js": {
7
- "file": "assets/editor-4HUBGwOu.js",
6
+ "_editor-Byod6NP8.js": {
7
+ "file": "assets/editor-Byod6NP8.js",
8
8
  "name": "editor",
9
9
  "imports": [
10
10
  "index.html",
11
- "_files.contribution._fileEditorFactory-YNF_vxMj.js"
11
+ "_files.contribution._fileEditorFactory-C85bkWoZ.js"
12
12
  ]
13
13
  },
14
- "_files.contribution._fileEditorFactory-YNF_vxMj.js": {
15
- "file": "assets/files.contribution._fileEditorFactory-YNF_vxMj.js",
14
+ "_files.contribution._fileEditorFactory-C85bkWoZ.js": {
15
+ "file": "assets/files.contribution._fileEditorFactory-C85bkWoZ.js",
16
16
  "name": "files.contribution._fileEditorFactory",
17
17
  "imports": [
18
18
  "index.html"
19
19
  ]
20
20
  },
21
- "_iconv-lite-umd-BCZHOywd.js": {
22
- "file": "assets/iconv-lite-umd-BCZHOywd.js",
21
+ "_iconv-lite-umd-DnjDMB5M.js": {
22
+ "file": "assets/iconv-lite-umd-DnjDMB5M.js",
23
23
  "name": "iconv-lite-umd",
24
24
  "isDynamicEntry": true,
25
25
  "imports": [
26
26
  "index.html"
27
27
  ]
28
28
  },
29
- "_index-CBODr4QR.js": {
30
- "file": "assets/index-CBODr4QR.js",
29
+ "_index-WkWuUe65.js": {
30
+ "file": "assets/index-WkWuUe65.js",
31
31
  "name": "index",
32
32
  "isDynamicEntry": true,
33
33
  "imports": [
34
34
  "index.html"
35
35
  ]
36
36
  },
37
- "_main--VvQJcub.js": {
38
- "file": "assets/main--VvQJcub.js",
37
+ "_main-B6LylQ0P.js": {
38
+ "file": "assets/main-B6LylQ0P.js",
39
39
  "name": "main",
40
40
  "isDynamicEntry": true,
41
41
  "imports": [
42
42
  "index.html"
43
43
  ]
44
44
  },
45
- "_main-DWv94O3B.js": {
46
- "file": "assets/main-DWv94O3B.js",
45
+ "_main-B9VgSj0j.js": {
46
+ "file": "assets/main-B9VgSj0j.js",
47
47
  "name": "main",
48
48
  "isDynamicEntry": true,
49
49
  "imports": [
50
50
  "index.html"
51
51
  ]
52
52
  },
53
- "_tokenClassificationRegistry-CZyxOMX0.js": {
54
- "file": "assets/tokenClassificationRegistry-CZyxOMX0.js",
53
+ "_tokenClassificationRegistry-YXExWoc1.js": {
54
+ "file": "assets/tokenClassificationRegistry-YXExWoc1.js",
55
55
  "name": "tokenClassificationRegistry",
56
56
  "imports": [
57
57
  "index.html"
58
58
  ]
59
59
  },
60
- "_views-Bu3Oa5Y-.js": {
61
- "file": "assets/views-Bu3Oa5Y-.js",
60
+ "_views-CDbAv1Ln.js": {
61
+ "file": "assets/views-CDbAv1Ln.js",
62
62
  "name": "views",
63
63
  "imports": [
64
64
  "index.html",
65
- "_files.contribution._fileEditorFactory-YNF_vxMj.js",
66
- "_workbenchThemeService.service-CXlQNmVU.js"
65
+ "_files.contribution._fileEditorFactory-C85bkWoZ.js",
66
+ "_workbenchThemeService.service-CipP-eMQ.js"
67
67
  ],
68
68
  "dynamicImports": [
69
69
  "node_modules/@codingame/monaco-vscode-keybindings-service-override/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.darwin.js",
@@ -84,23 +84,23 @@
84
84
  "file": "assets/views-qXWInm-E.css",
85
85
  "src": "_views-qXWInm-E.css"
86
86
  },
87
- "_workbenchThemeService.service-CXlQNmVU.js": {
88
- "file": "assets/workbenchThemeService.service-CXlQNmVU.js",
87
+ "_workbenchThemeService.service-CipP-eMQ.js": {
88
+ "file": "assets/workbenchThemeService.service-CipP-eMQ.js",
89
89
  "name": "workbenchThemeService.service",
90
90
  "imports": [
91
91
  "index.html"
92
92
  ]
93
93
  },
94
94
  "index.html": {
95
- "file": "assets/index-DSexFukl.js",
95
+ "file": "assets/index-By7ErQ-m.js",
96
96
  "name": "index",
97
97
  "src": "index.html",
98
98
  "isEntry": true,
99
99
  "dynamicImports": [
100
- "_iconv-lite-umd-BCZHOywd.js",
101
- "_iconv-lite-umd-BCZHOywd.js",
102
- "_iconv-lite-umd-BCZHOywd.js",
103
- "_index-CBODr4QR.js",
100
+ "_iconv-lite-umd-DnjDMB5M.js",
101
+ "_iconv-lite-umd-DnjDMB5M.js",
102
+ "_iconv-lite-umd-DnjDMB5M.js",
103
+ "_index-WkWuUe65.js",
104
104
  "node_modules/@codingame/monaco-vscode-textmate-service-override/index.js",
105
105
  "node_modules/@codingame/monaco-vscode-theme-service-override/index.js",
106
106
  "node_modules/@codingame/monaco-vscode-monarch-service-override/index.js",
@@ -122,14 +122,14 @@
122
122
  "src": "node_modules/@codingame/monaco-vscode-api/vscode/src/vs/base/browser/ui/codicons/codicon/codicon.ttf"
123
123
  },
124
124
  "node_modules/@codingame/monaco-vscode-editor-service-override/index.js": {
125
- "file": "assets/index-sQEJqDvC.js",
125
+ "file": "assets/index-Hz1e5lve.js",
126
126
  "name": "index",
127
127
  "src": "node_modules/@codingame/monaco-vscode-editor-service-override/index.js",
128
128
  "isDynamicEntry": true,
129
129
  "imports": [
130
130
  "index.html",
131
- "_files.contribution._fileEditorFactory-YNF_vxMj.js",
132
- "_editor-4HUBGwOu.js"
131
+ "_files.contribution._fileEditorFactory-C85bkWoZ.js",
132
+ "_editor-Byod6NP8.js"
133
133
  ]
134
134
  },
135
135
  "node_modules/@codingame/monaco-vscode-extensions-service-override/vscode/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html": {
@@ -164,7 +164,7 @@
164
164
  ]
165
165
  },
166
166
  "node_modules/@codingame/monaco-vscode-monarch-service-override/index.js": {
167
- "file": "assets/index-B48SQPT2.js",
167
+ "file": "assets/index-ONm7yPz5.js",
168
168
  "name": "index",
169
169
  "src": "node_modules/@codingame/monaco-vscode-monarch-service-override/index.js",
170
170
  "isDynamicEntry": true,
@@ -176,19 +176,19 @@
176
176
  ]
177
177
  },
178
178
  "node_modules/@codingame/monaco-vscode-textmate-service-override/index.js": {
179
- "file": "assets/index-r-mEMSNw.js",
179
+ "file": "assets/index-R8LYJ0J3.js",
180
180
  "name": "index",
181
181
  "src": "node_modules/@codingame/monaco-vscode-textmate-service-override/index.js",
182
182
  "isDynamicEntry": true,
183
183
  "imports": [
184
184
  "index.html",
185
- "_workbenchThemeService.service-CXlQNmVU.js",
186
- "_tokenClassificationRegistry-CZyxOMX0.js"
185
+ "_workbenchThemeService.service-CipP-eMQ.js",
186
+ "_tokenClassificationRegistry-YXExWoc1.js"
187
187
  ],
188
188
  "dynamicImports": [
189
- "_main--VvQJcub.js",
190
- "_main--VvQJcub.js",
191
- "_main-DWv94O3B.js"
189
+ "_main-B6LylQ0P.js",
190
+ "_main-B6LylQ0P.js",
191
+ "_main-B9VgSj0j.js"
192
192
  ],
193
193
  "css": [
194
194
  "assets/index-BPOe4Pu5.css"
@@ -198,7 +198,7 @@
198
198
  ]
199
199
  },
200
200
  "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/index.js": {
201
- "file": "assets/index-9GTRLRSC.js",
201
+ "file": "assets/index-fP_JEi35.js",
202
202
  "name": "index",
203
203
  "src": "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/index.js",
204
204
  "isDynamicEntry": true,
@@ -239,14 +239,14 @@
239
239
  "src": "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/resources/light_vs.json"
240
240
  },
241
241
  "node_modules/@codingame/monaco-vscode-theme-service-override/index.js": {
242
- "file": "assets/index-DV2XmbY1.js",
242
+ "file": "assets/index-TydmG5-L.js",
243
243
  "name": "index",
244
244
  "src": "node_modules/@codingame/monaco-vscode-theme-service-override/index.js",
245
245
  "isDynamicEntry": true,
246
246
  "imports": [
247
247
  "index.html",
248
- "_tokenClassificationRegistry-CZyxOMX0.js",
249
- "_workbenchThemeService.service-CXlQNmVU.js"
248
+ "_tokenClassificationRegistry-YXExWoc1.js",
249
+ "_workbenchThemeService.service-CipP-eMQ.js"
250
250
  ]
251
251
  },
252
252
  "node_modules/@codingame/monaco-vscode-view-common-service-override/service-override/vs/workbench/contrib/webview/browser/pre/fake.html": {
@@ -266,28 +266,28 @@
266
266
  "src": "node_modules/@codingame/monaco-vscode-view-common-service-override/service-override/vs/workbench/contrib/webview/browser/pre/service-worker.js"
267
267
  },
268
268
  "node_modules/@codingame/monaco-vscode-views-service-override/index.js": {
269
- "file": "assets/index-Cw1WVxjJ.js",
269
+ "file": "assets/index-BpQMGi_i.js",
270
270
  "name": "index",
271
271
  "src": "node_modules/@codingame/monaco-vscode-views-service-override/index.js",
272
272
  "isDynamicEntry": true,
273
273
  "imports": [
274
274
  "index.html",
275
- "_views-Bu3Oa5Y-.js",
276
- "_editor-4HUBGwOu.js",
277
- "_files.contribution._fileEditorFactory-YNF_vxMj.js",
278
- "_workbenchThemeService.service-CXlQNmVU.js"
275
+ "_views-CDbAv1Ln.js",
276
+ "_editor-Byod6NP8.js",
277
+ "_files.contribution._fileEditorFactory-C85bkWoZ.js",
278
+ "_workbenchThemeService.service-CipP-eMQ.js"
279
279
  ]
280
280
  },
281
281
  "node_modules/@codingame/monaco-vscode-workbench-service-override/index.js": {
282
- "file": "assets/index-B7W-kS7G.js",
282
+ "file": "assets/index-C9rlpWKP.js",
283
283
  "name": "index",
284
284
  "src": "node_modules/@codingame/monaco-vscode-workbench-service-override/index.js",
285
285
  "isDynamicEntry": true,
286
286
  "imports": [
287
287
  "index.html",
288
- "_views-Bu3Oa5Y-.js",
289
- "_files.contribution._fileEditorFactory-YNF_vxMj.js",
290
- "_workbenchThemeService.service-CXlQNmVU.js"
288
+ "_views-CDbAv1Ln.js",
289
+ "_files.contribution._fileEditorFactory-C85bkWoZ.js",
290
+ "_workbenchThemeService.service-CipP-eMQ.js"
291
291
  ],
292
292
  "css": [
293
293
  "assets/index-D1zNXs16.css"
@@ -1 +1 @@
1
- import{ap as G,mt as N,tC as L,D as F,E,cR as n,jM as _,tD as V,ct as H,tE as S,hA as z,nY as K,iT as U,tA as i,bu as P,dC as k,rV as A,rU as W,o2 as I,hI as O,jP as B,f as w,g as h,cc as Y,W as x,bz as j,h as J,ch as $,ip as q,k5 as X,tF as Q,dN as Z,oC as tt,lK as et}from"./index-DSexFukl.js";import{E as it}from"./files.contribution._fileEditorFactory-YNF_vxMj.js";var y;class ot{constructor(){this.selectedEditors=[],this.isSelected=()=>!1,this.setSelection=i,this.isTransient=()=>!1,this.windowId=P.vscodeWindowId,this.createEditorActions=i,this.onDidFocus=n.None,this.onDidOpenEditorFail=n.None,this.whenRestored=Promise.resolve(),this.disposed=!1,this.setActive=i,this.notifyIndexChanged=i,this.relayout=i,this.dispose=i,this.toJSON=i,this.minimumWidth=0,this.maximumWidth=Number.POSITIVE_INFINITY,this.minimumHeight=0,this.maximumHeight=Number.POSITIVE_INFINITY,this.onDidChange=n.None,this.layout=i,this.onDidModelChange=n.None,this.onWillDispose=n.None,this.onDidActiveEditorChange=n.None,this.onWillCloseEditor=n.None,this.onDidCloseEditor=n.None,this.onWillMoveEditor=n.None,this.onWillOpenEditor=n.None,this.id=0,this.index=0,this.label="main",this.ariaLabel="main",this.activeEditorPane=void 0,this.activeEditor=null,this.previewEditor=null,this.count=0,this.isEmpty=!1,this.isLocked=!1,this.stickyCount=0,this.editors=[],this.getEditors=()=>[],this.findEditors=()=>[],this.getEditorByIndex=()=>{},this.getIndexOfEditor=i,this.openEditor=i,this.openEditors=i,this.isPinned=()=>!1,this.isSticky=()=>!1,this.isActive=()=>!1,this.contains=()=>!1,this.moveEditor=i,this.moveEditors=i,this.copyEditor=i,this.copyEditors=i,this.closeEditor=i,this.closeEditors=i,this.closeAllEditors=i,this.replaceEditors=i,this.pinEditor=()=>{},this.stickEditor=()=>{},this.unstickEditor=()=>{},this.lock=()=>{},this.isFirst=i,this.isLast=i}get groupsView(){return i()}notifyLabelChanged(){}get titleHeight(){return i()}get element(){return i()}get scopedContextKeyService(){return G.get(k)}focus(){}}const st=new ot;class nt{constructor(o){this.editor=o,this.onDidChangeControl=n.None,this.onDidChangeSizeConstraints=n.None,this.onDidFocus=n.None,this.onDidBlur=n.None,this.input=void 0,this.options=void 0,this.group=st,this.scopedContextKeyService=void 0,this.getViewState=i,this.isVisible=i,this.hasFocus=i,this.getId=i,this.getTitle=i,this.focus=i}get minimumWidth(){return A.width}get maximumWidth(){return W.width}get minimumHeight(){return A.height}get maximumHeight(){return W.height}getControl(){return this.editor}}function rt(g,o,a){async function u(e,d,c){const t=_(e)?d:e.options;V(d)&&(c=d);const s=H(e)||_(e)?e.resource:void 0;if(s==null||!g.canHandleResource(s))return await o(e,d,c);let r;if(r=G.get(N).listCodeEditors().find(l=>l instanceof S&&l.getModel()!=null&&l.getModel().uri.toString()===s.toString()),r==null){const l=await o(e,d,c);if(l!=null)return l;const p=await g.createModelReference(s);if(r=await a?.(p,t,c===z),r==null){p.dispose();return}}return t!=null&&K(t,r,U.Immediate),(t?.preserveFocus??!1)||(r.focus(),r.getContainerDomNode().scrollIntoView()),new nt(r)}return u}let T=class extends it{constructor(o,a,u,e,d,c,t,s,r,f,l,p,v){super(void 0,u,e,d,c,t,s,r,f,l,p),this._isEditorPartVisible=a,this.openEditor=rt(v,this.openEditor.bind(this),o)}get activeTextEditorControl(){const o=G.get(N).getFocusedCodeEditor();return o!=null&&o instanceof L?o:super.activeTextEditorControl}async openEditor(o,a,u){if(this._isEditorPartVisible())return await super.openEditor(o,a,u)}};T=w([h(2,Y),h(3,x),h(4,j),h(5,J),h(6,$),h(7,q),h(8,X),h(9,Q),h(10,Z),h(11,tt),h(12,et)],T);class M{constructor(o,a,u){this.editor=o,this.input=a,this.group=u,this.onDidChangeControl=n.None,this.options=void 0,this.minimumWidth=0,this.maximumWidth=Number.POSITIVE_INFINITY,this.minimumHeight=0,this.maximumHeight=Number.POSITIVE_INFINITY,this.onDidChangeSizeConstraints=n.None,this.scopedContextKeyService=void 0,this.onDidFocus=this.editor.onDidFocusEditorWidget,this.onDidBlur=this.editor.onDidBlurEditorWidget}getControl(){return this.editor}getViewState(){}isVisible(){return!0}hasFocus(){return this.editor.hasWidgetFocus()}getId(){return this.editor.getId()}getTitle(){}focus(){this.editor.focus()}}let C=y=class extends F{constructor(o,a,u){super(),this.editor=o,this.scopedContextKeyService=u,this.active=!1,this.selectedEditors=[],this.isSelected=()=>!1,this.setSelection=i,this.isTransient=()=>!1,this.windowId=P.vscodeWindowId,this.onDidFocus=this.editor.onDidFocusEditorWidget,this.onDidOpenEditorFail=n.None,this.whenRestored=Promise.resolve(),this.disposed=!1,this.notifyIndexChanged=i,this.relayout=i,this.toJSON=i,this.minimumWidth=0,this.maximumWidth=Number.POSITIVE_INFINITY,this.minimumHeight=0,this.maximumHeight=Number.POSITIVE_INFINITY,this.onDidChange=this.editor.onDidLayoutChange,this.layout=()=>this.editor.layout(),this._onDidModelChange=new E,this.onDidModelChange=this._onDidModelChange.event,this.onWillDispose=this.editor.onDidDispose,this._onDidActiveEditorChange=new E,this.onDidActiveEditorChange=this._onDidActiveEditorChange.event,this.onWillCloseEditor=n.None,this._onDidCloseEditor=new E,this.onDidCloseEditor=this._onDidCloseEditor.event,this.onWillMoveEditor=n.None,this._onWillOpenEditor=new E,this.onWillOpenEditor=this._onWillOpenEditor.event,this.id=--y.idCounter,this.index=-1,this.label=`standalone editor ${-this.id}`,this.ariaLabel=`standalone editor ${-this.id}`,this.previewEditor=null,this.isLocked=!0,this.stickyCount=0,this.getEditors=()=>this.editors,this.findEditors=t=>this.pane!=null&&t.toString()===this.pane.input.resource.toString()?[this.pane.input]:[],this.getEditorByIndex=t=>this.pane!=null&&t===0?this.pane.input:void 0,this.getIndexOfEditor=t=>this.pane!=null&&this.pane.input===t?0:-1,this.openEditor=async t=>{if(!t.isDisposed()&&t instanceof I&&t.resource.toString()===this.pane?.input.resource.toString())return this.focus(),this.pane},this.openEditors=async t=>{if(t.length===1)return await this.openEditor(t[0].editor)},this.isPinned=()=>!1,this.isSticky=()=>!1,this.isActive=()=>this.editor.hasWidgetFocus(),this.contains=t=>this.pane!=null&&this.pane.input===t,this.moveEditor=i,this.moveEditors=i,this.copyEditor=i,this.copyEditors=i,this.closeEditor=i,this.closeEditors=i,this.closeAllEditors=i,this.replaceEditors=i,this.pinEditor=()=>{},this.stickEditor=()=>{},this.unstickEditor=()=>{},this.lock=()=>{},this.isFirst=i,this.isLast=i;const e=t=>{const s=a.createInstance(I,t,void 0,void 0,void 0,void 0);this._onWillOpenEditor.fire({editor:s,groupId:this.id}),this.pane=new M(o,s,this),this._onDidModelChange.fire({kind:O.EDITOR_OPEN,editor:s,editorIndex:0}),this._onDidActiveEditorChange.fire({editor:s})},d=t=>{if(this.pane!=null&&this.pane.input.resource.toString()===t.toString()){const s=this.pane;this.pane=void 0,this._onDidModelChange.fire({kind:O.EDITOR_CLOSE,editorIndex:0}),this._onDidActiveEditorChange.fire({editor:void 0}),this._onDidCloseEditor.fire({context:B.UNKNOWN,editor:s.input,groupId:this.id,index:0,sticky:!1})}};o.onDidChangeModel(t=>{t.oldModelUrl!=null&&d(t.oldModelUrl),t.newModelUrl!=null&&e(t.newModelUrl)}),this._register({dispose:()=>{const t=o.getModel();t!=null&&d(t.uri)}});const c=o.getModel();if(c!=null){const t=a.createInstance(I,c.uri,void 0,void 0,void 0,void 0);this.pane=new M(o,t,this)}}get groupsView(){return i()}notifyLabelChanged(){}createEditorActions(){return{actions:{primary:[],secondary:[]},onDidChange:n.None}}get titleHeight(){return i()}setActive(o){this.active=o}get element(){return this.editor.getContainerDomNode()}get activeEditorPane(){return this.pane}get activeEditor(){return this.pane?.input??null}get count(){return this.pane!=null?1:0}get isEmpty(){return this.pane==null}get editors(){return this.pane!=null?[this.pane.input]:[]}focus(){this.editor.focus(),this.editor.getContainerDomNode().scrollIntoView()}};C.idCounter=0;C=y=w([h(1,x),h(2,k)],C);let R=class extends F{constructor(o,a,u){super(),this.delegate=o,this.instantiationService=u,this._serviceBrand=void 0,this.additionalGroups=[],this.activeGroupOverride=void 0,this.onDidCreateAuxiliaryEditorPart=this.delegate.onDidCreateAuxiliaryEditorPart,this.onDidChangeGroupMaximized=this.delegate.onDidChangeGroupMaximized,this._onDidChangeActiveGroup=new E,this.onDidChangeActiveGroup=n.any(this._onDidChangeActiveGroup.event,this.delegate.onDidChangeActiveGroup),this._onDidAddGroup=new E,this.onDidAddGroup=n.any(this._onDidAddGroup.event,this.delegate.onDidAddGroup),this._onDidRemoveGroup=new E,this.onDidRemoveGroup=n.any(this._onDidRemoveGroup.event,this.delegate.onDidRemoveGroup),this.onDidMoveGroup=this.delegate.onDidMoveGroup,this.onDidActivateGroup=this.delegate.onDidActivateGroup,this.onDidChangeGroupIndex=this.delegate.onDidChangeGroupIndex,this.onDidChangeGroupLocked=this.delegate.onDidChangeGroupLocked,this.getLayout=()=>this.delegate.getLayout(),this.getGroups=e=>[...this.delegate.getGroups(e),...this.additionalGroups],this.getGroup=e=>this.delegate.getGroup(e)??this.additionalGroups.find(d=>d.id===e),this.activateGroup=(...e)=>this.delegate.activateGroup(...e),this.getSize=(...e)=>this.delegate.getSize(...e),this.setSize=(...e)=>this.delegate.setSize(...e),this.arrangeGroups=(...e)=>this.delegate.arrangeGroups(...e),this.applyLayout=(...e)=>this.delegate.applyLayout(...e),this.setGroupOrientation=(...e)=>this.delegate.setGroupOrientation(...e),this.findGroup=(...e)=>this.delegate.findGroup(...e),this.addGroup=(...e)=>this.delegate.addGroup(...e),this.removeGroup=(...e)=>this.delegate.removeGroup(...e),this.moveGroup=(...e)=>this.delegate.moveGroup(...e),this.mergeGroup=(...e)=>this.delegate.mergeGroup(...e),this.mergeAllGroups=(...e)=>this.delegate.mergeAllGroups(...e),this.copyGroup=(...e)=>this.delegate.copyGroup(...e),this.onDidChangeEditorPartOptions=this.delegate.onDidChangeEditorPartOptions,this.enforcePartOptions=(...e)=>this.delegate.enforcePartOptions(...e),setTimeout(()=>{const e=G.get(N),d=t=>{if(t instanceof S){let s;const r=m=>{const D=m!=null?this.additionalGroups.find(b=>b.editor===m):void 0;this.activeGroupOverride!==D&&(this.activeGroupOverride=D,this._onDidChangeActiveGroup.fire(this.activeGroup))},f=m=>{!a&&this.activeGroupOverride===this.additionalGroups.find(D=>D.editor===m)&&r(void 0)},l=()=>{s!=null&&window.clearTimeout(s),r(t)},p=()=>{s!=null&&window.clearTimeout(s),s=window.setTimeout(()=>{s=void 0,f(t)},100)};t.onDidDispose(()=>{f(t)}),t.onDidFocusEditorText(l),t.onDidFocusEditorWidget(l),t.onDidBlurEditorText(p),t.onDidBlurEditorWidget(p),t.hasWidgetFocus()&&l();const v=u.createInstance(C,t);this.additionalGroups.push(v),this._onDidAddGroup.fire(v)}},c=t=>{if(t instanceof S){const s=this.additionalGroups.find(r=>r.editor===t);s!=null&&(s.dispose(),this.activeGroupOverride===s&&(this.activeGroupOverride=void 0,this._onDidChangeActiveGroup.fire(this.activeGroup)),this.additionalGroups=this.additionalGroups.filter(r=>r!==s),this._onDidRemoveGroup.fire(s))}};this._register(e.onCodeEditorAdd(d)),this._register(e.onCodeEditorRemove(c)),e.listCodeEditors().forEach(d)})}getScopedInstantiationService(){return this.instantiationService}registerContextKeyProvider(o){return this.delegate.registerContextKeyProvider(o)}saveWorkingSet(o){return this.delegate.saveWorkingSet(o)}getWorkingSets(){return this.delegate.getWorkingSets()}applyWorkingSet(o){return this.delegate.applyWorkingSet(o)}deleteWorkingSet(o){return this.delegate.deleteWorkingSet(o)}get isReady(){return this.delegate.isReady}get whenReady(){return this.delegate.whenReady}get whenRestored(){return this.delegate.whenRestored}get hasRestorableState(){return this.delegate.hasRestorableState}get parts(){return this.delegate.parts}createAuxiliaryEditorPart(o){return this.delegate.createAuxiliaryEditorPart(o)}get mainPart(){return this.delegate.mainPart}getPart(o){return this.delegate.getPart(o)}toggleMaximizeGroup(o){return this.delegate.toggleMaximizeGroup(o)}toggleExpandGroup(o){return this.delegate.toggleExpandGroup(o)}createEditorDropTarget(o,a){return this.delegate.createEditorDropTarget(o,a)}get groups(){return[...this.additionalGroups,...this.delegate.groups]}get activeGroup(){return this.activeGroupOverride??this.delegate.activeGroup}get sideGroup(){return this.delegate.sideGroup}get count(){return this.delegate.count+this.additionalGroups.length}get orientation(){return this.delegate.orientation}get partOptions(){return this.delegate.partOptions}};R=w([h(2,x)],R);export{T as M,R as a,st as f};
1
+ import{ap as G,mt as N,tC as L,D as F,E,cR as n,jM as _,tD as V,ct as H,tE as S,hA as z,nY as K,iT as U,tA as i,bu as P,dC as k,rV as A,rU as W,o2 as I,hI as O,jP as B,f as w,g as h,cc as Y,W as x,bz as j,h as J,ch as $,ip as q,k5 as X,tF as Q,dN as Z,oC as tt,lK as et}from"./index-By7ErQ-m.js";import{E as it}from"./files.contribution._fileEditorFactory-C85bkWoZ.js";var y;class ot{constructor(){this.selectedEditors=[],this.isSelected=()=>!1,this.setSelection=i,this.isTransient=()=>!1,this.windowId=P.vscodeWindowId,this.createEditorActions=i,this.onDidFocus=n.None,this.onDidOpenEditorFail=n.None,this.whenRestored=Promise.resolve(),this.disposed=!1,this.setActive=i,this.notifyIndexChanged=i,this.relayout=i,this.dispose=i,this.toJSON=i,this.minimumWidth=0,this.maximumWidth=Number.POSITIVE_INFINITY,this.minimumHeight=0,this.maximumHeight=Number.POSITIVE_INFINITY,this.onDidChange=n.None,this.layout=i,this.onDidModelChange=n.None,this.onWillDispose=n.None,this.onDidActiveEditorChange=n.None,this.onWillCloseEditor=n.None,this.onDidCloseEditor=n.None,this.onWillMoveEditor=n.None,this.onWillOpenEditor=n.None,this.id=0,this.index=0,this.label="main",this.ariaLabel="main",this.activeEditorPane=void 0,this.activeEditor=null,this.previewEditor=null,this.count=0,this.isEmpty=!1,this.isLocked=!1,this.stickyCount=0,this.editors=[],this.getEditors=()=>[],this.findEditors=()=>[],this.getEditorByIndex=()=>{},this.getIndexOfEditor=i,this.openEditor=i,this.openEditors=i,this.isPinned=()=>!1,this.isSticky=()=>!1,this.isActive=()=>!1,this.contains=()=>!1,this.moveEditor=i,this.moveEditors=i,this.copyEditor=i,this.copyEditors=i,this.closeEditor=i,this.closeEditors=i,this.closeAllEditors=i,this.replaceEditors=i,this.pinEditor=()=>{},this.stickEditor=()=>{},this.unstickEditor=()=>{},this.lock=()=>{},this.isFirst=i,this.isLast=i}get groupsView(){return i()}notifyLabelChanged(){}get titleHeight(){return i()}get element(){return i()}get scopedContextKeyService(){return G.get(k)}focus(){}}const st=new ot;class nt{constructor(o){this.editor=o,this.onDidChangeControl=n.None,this.onDidChangeSizeConstraints=n.None,this.onDidFocus=n.None,this.onDidBlur=n.None,this.input=void 0,this.options=void 0,this.group=st,this.scopedContextKeyService=void 0,this.getViewState=i,this.isVisible=i,this.hasFocus=i,this.getId=i,this.getTitle=i,this.focus=i}get minimumWidth(){return A.width}get maximumWidth(){return W.width}get minimumHeight(){return A.height}get maximumHeight(){return W.height}getControl(){return this.editor}}function rt(g,o,a){async function u(e,d,c){const t=_(e)?d:e.options;V(d)&&(c=d);const s=H(e)||_(e)?e.resource:void 0;if(s==null||!g.canHandleResource(s))return await o(e,d,c);let r;if(r=G.get(N).listCodeEditors().find(l=>l instanceof S&&l.getModel()!=null&&l.getModel().uri.toString()===s.toString()),r==null){const l=await o(e,d,c);if(l!=null)return l;const p=await g.createModelReference(s);if(r=await a?.(p,t,c===z),r==null){p.dispose();return}}return t!=null&&K(t,r,U.Immediate),(t?.preserveFocus??!1)||(r.focus(),r.getContainerDomNode().scrollIntoView()),new nt(r)}return u}let T=class extends it{constructor(o,a,u,e,d,c,t,s,r,f,l,p,v){super(void 0,u,e,d,c,t,s,r,f,l,p),this._isEditorPartVisible=a,this.openEditor=rt(v,this.openEditor.bind(this),o)}get activeTextEditorControl(){const o=G.get(N).getFocusedCodeEditor();return o!=null&&o instanceof L?o:super.activeTextEditorControl}async openEditor(o,a,u){if(this._isEditorPartVisible())return await super.openEditor(o,a,u)}};T=w([h(2,Y),h(3,x),h(4,j),h(5,J),h(6,$),h(7,q),h(8,X),h(9,Q),h(10,Z),h(11,tt),h(12,et)],T);class M{constructor(o,a,u){this.editor=o,this.input=a,this.group=u,this.onDidChangeControl=n.None,this.options=void 0,this.minimumWidth=0,this.maximumWidth=Number.POSITIVE_INFINITY,this.minimumHeight=0,this.maximumHeight=Number.POSITIVE_INFINITY,this.onDidChangeSizeConstraints=n.None,this.scopedContextKeyService=void 0,this.onDidFocus=this.editor.onDidFocusEditorWidget,this.onDidBlur=this.editor.onDidBlurEditorWidget}getControl(){return this.editor}getViewState(){}isVisible(){return!0}hasFocus(){return this.editor.hasWidgetFocus()}getId(){return this.editor.getId()}getTitle(){}focus(){this.editor.focus()}}let C=y=class extends F{constructor(o,a,u){super(),this.editor=o,this.scopedContextKeyService=u,this.active=!1,this.selectedEditors=[],this.isSelected=()=>!1,this.setSelection=i,this.isTransient=()=>!1,this.windowId=P.vscodeWindowId,this.onDidFocus=this.editor.onDidFocusEditorWidget,this.onDidOpenEditorFail=n.None,this.whenRestored=Promise.resolve(),this.disposed=!1,this.notifyIndexChanged=i,this.relayout=i,this.toJSON=i,this.minimumWidth=0,this.maximumWidth=Number.POSITIVE_INFINITY,this.minimumHeight=0,this.maximumHeight=Number.POSITIVE_INFINITY,this.onDidChange=this.editor.onDidLayoutChange,this.layout=()=>this.editor.layout(),this._onDidModelChange=new E,this.onDidModelChange=this._onDidModelChange.event,this.onWillDispose=this.editor.onDidDispose,this._onDidActiveEditorChange=new E,this.onDidActiveEditorChange=this._onDidActiveEditorChange.event,this.onWillCloseEditor=n.None,this._onDidCloseEditor=new E,this.onDidCloseEditor=this._onDidCloseEditor.event,this.onWillMoveEditor=n.None,this._onWillOpenEditor=new E,this.onWillOpenEditor=this._onWillOpenEditor.event,this.id=--y.idCounter,this.index=-1,this.label=`standalone editor ${-this.id}`,this.ariaLabel=`standalone editor ${-this.id}`,this.previewEditor=null,this.isLocked=!0,this.stickyCount=0,this.getEditors=()=>this.editors,this.findEditors=t=>this.pane!=null&&t.toString()===this.pane.input.resource.toString()?[this.pane.input]:[],this.getEditorByIndex=t=>this.pane!=null&&t===0?this.pane.input:void 0,this.getIndexOfEditor=t=>this.pane!=null&&this.pane.input===t?0:-1,this.openEditor=async t=>{if(!t.isDisposed()&&t instanceof I&&t.resource.toString()===this.pane?.input.resource.toString())return this.focus(),this.pane},this.openEditors=async t=>{if(t.length===1)return await this.openEditor(t[0].editor)},this.isPinned=()=>!1,this.isSticky=()=>!1,this.isActive=()=>this.editor.hasWidgetFocus(),this.contains=t=>this.pane!=null&&this.pane.input===t,this.moveEditor=i,this.moveEditors=i,this.copyEditor=i,this.copyEditors=i,this.closeEditor=i,this.closeEditors=i,this.closeAllEditors=i,this.replaceEditors=i,this.pinEditor=()=>{},this.stickEditor=()=>{},this.unstickEditor=()=>{},this.lock=()=>{},this.isFirst=i,this.isLast=i;const e=t=>{const s=a.createInstance(I,t,void 0,void 0,void 0,void 0);this._onWillOpenEditor.fire({editor:s,groupId:this.id}),this.pane=new M(o,s,this),this._onDidModelChange.fire({kind:O.EDITOR_OPEN,editor:s,editorIndex:0}),this._onDidActiveEditorChange.fire({editor:s})},d=t=>{if(this.pane!=null&&this.pane.input.resource.toString()===t.toString()){const s=this.pane;this.pane=void 0,this._onDidModelChange.fire({kind:O.EDITOR_CLOSE,editorIndex:0}),this._onDidActiveEditorChange.fire({editor:void 0}),this._onDidCloseEditor.fire({context:B.UNKNOWN,editor:s.input,groupId:this.id,index:0,sticky:!1})}};o.onDidChangeModel(t=>{t.oldModelUrl!=null&&d(t.oldModelUrl),t.newModelUrl!=null&&e(t.newModelUrl)}),this._register({dispose:()=>{const t=o.getModel();t!=null&&d(t.uri)}});const c=o.getModel();if(c!=null){const t=a.createInstance(I,c.uri,void 0,void 0,void 0,void 0);this.pane=new M(o,t,this)}}get groupsView(){return i()}notifyLabelChanged(){}createEditorActions(){return{actions:{primary:[],secondary:[]},onDidChange:n.None}}get titleHeight(){return i()}setActive(o){this.active=o}get element(){return this.editor.getContainerDomNode()}get activeEditorPane(){return this.pane}get activeEditor(){return this.pane?.input??null}get count(){return this.pane!=null?1:0}get isEmpty(){return this.pane==null}get editors(){return this.pane!=null?[this.pane.input]:[]}focus(){this.editor.focus(),this.editor.getContainerDomNode().scrollIntoView()}};C.idCounter=0;C=y=w([h(1,x),h(2,k)],C);let R=class extends F{constructor(o,a,u){super(),this.delegate=o,this.instantiationService=u,this._serviceBrand=void 0,this.additionalGroups=[],this.activeGroupOverride=void 0,this.onDidCreateAuxiliaryEditorPart=this.delegate.onDidCreateAuxiliaryEditorPart,this.onDidChangeGroupMaximized=this.delegate.onDidChangeGroupMaximized,this._onDidChangeActiveGroup=new E,this.onDidChangeActiveGroup=n.any(this._onDidChangeActiveGroup.event,this.delegate.onDidChangeActiveGroup),this._onDidAddGroup=new E,this.onDidAddGroup=n.any(this._onDidAddGroup.event,this.delegate.onDidAddGroup),this._onDidRemoveGroup=new E,this.onDidRemoveGroup=n.any(this._onDidRemoveGroup.event,this.delegate.onDidRemoveGroup),this.onDidMoveGroup=this.delegate.onDidMoveGroup,this.onDidActivateGroup=this.delegate.onDidActivateGroup,this.onDidChangeGroupIndex=this.delegate.onDidChangeGroupIndex,this.onDidChangeGroupLocked=this.delegate.onDidChangeGroupLocked,this.getLayout=()=>this.delegate.getLayout(),this.getGroups=e=>[...this.delegate.getGroups(e),...this.additionalGroups],this.getGroup=e=>this.delegate.getGroup(e)??this.additionalGroups.find(d=>d.id===e),this.activateGroup=(...e)=>this.delegate.activateGroup(...e),this.getSize=(...e)=>this.delegate.getSize(...e),this.setSize=(...e)=>this.delegate.setSize(...e),this.arrangeGroups=(...e)=>this.delegate.arrangeGroups(...e),this.applyLayout=(...e)=>this.delegate.applyLayout(...e),this.setGroupOrientation=(...e)=>this.delegate.setGroupOrientation(...e),this.findGroup=(...e)=>this.delegate.findGroup(...e),this.addGroup=(...e)=>this.delegate.addGroup(...e),this.removeGroup=(...e)=>this.delegate.removeGroup(...e),this.moveGroup=(...e)=>this.delegate.moveGroup(...e),this.mergeGroup=(...e)=>this.delegate.mergeGroup(...e),this.mergeAllGroups=(...e)=>this.delegate.mergeAllGroups(...e),this.copyGroup=(...e)=>this.delegate.copyGroup(...e),this.onDidChangeEditorPartOptions=this.delegate.onDidChangeEditorPartOptions,this.enforcePartOptions=(...e)=>this.delegate.enforcePartOptions(...e),setTimeout(()=>{const e=G.get(N),d=t=>{if(t instanceof S){let s;const r=m=>{const D=m!=null?this.additionalGroups.find(b=>b.editor===m):void 0;this.activeGroupOverride!==D&&(this.activeGroupOverride=D,this._onDidChangeActiveGroup.fire(this.activeGroup))},f=m=>{!a&&this.activeGroupOverride===this.additionalGroups.find(D=>D.editor===m)&&r(void 0)},l=()=>{s!=null&&window.clearTimeout(s),r(t)},p=()=>{s!=null&&window.clearTimeout(s),s=window.setTimeout(()=>{s=void 0,f(t)},100)};t.onDidDispose(()=>{f(t)}),t.onDidFocusEditorText(l),t.onDidFocusEditorWidget(l),t.onDidBlurEditorText(p),t.onDidBlurEditorWidget(p),t.hasWidgetFocus()&&l();const v=u.createInstance(C,t);this.additionalGroups.push(v),this._onDidAddGroup.fire(v)}},c=t=>{if(t instanceof S){const s=this.additionalGroups.find(r=>r.editor===t);s!=null&&(s.dispose(),this.activeGroupOverride===s&&(this.activeGroupOverride=void 0,this._onDidChangeActiveGroup.fire(this.activeGroup)),this.additionalGroups=this.additionalGroups.filter(r=>r!==s),this._onDidRemoveGroup.fire(s))}};this._register(e.onCodeEditorAdd(d)),this._register(e.onCodeEditorRemove(c)),e.listCodeEditors().forEach(d)})}getScopedInstantiationService(){return this.instantiationService}registerContextKeyProvider(o){return this.delegate.registerContextKeyProvider(o)}saveWorkingSet(o){return this.delegate.saveWorkingSet(o)}getWorkingSets(){return this.delegate.getWorkingSets()}applyWorkingSet(o){return this.delegate.applyWorkingSet(o)}deleteWorkingSet(o){return this.delegate.deleteWorkingSet(o)}get isReady(){return this.delegate.isReady}get whenReady(){return this.delegate.whenReady}get whenRestored(){return this.delegate.whenRestored}get hasRestorableState(){return this.delegate.hasRestorableState}get parts(){return this.delegate.parts}createAuxiliaryEditorPart(o){return this.delegate.createAuxiliaryEditorPart(o)}get mainPart(){return this.delegate.mainPart}getPart(o){return this.delegate.getPart(o)}toggleMaximizeGroup(o){return this.delegate.toggleMaximizeGroup(o)}toggleExpandGroup(o){return this.delegate.toggleExpandGroup(o)}createEditorDropTarget(o,a){return this.delegate.createEditorDropTarget(o,a)}get groups(){return[...this.additionalGroups,...this.delegate.groups]}get activeGroup(){return this.activeGroupOverride??this.delegate.activeGroup}get sideGroup(){return this.delegate.sideGroup}get count(){return this.delegate.count+this.additionalGroups.length}get orientation(){return this.delegate.orientation}get partOptions(){return this.delegate.partOptions}};R=w([h(2,x)],R);export{T as M,R as a,st as f};
@@ -1,4 +1,4 @@
1
- import{cc as F,h as ge,jn as k,hA as Se,tG as re,tH as Te,co as A,jM as R,cz as g,jw as _e,D as P,tI as be,jC as b,E as y,jO as E,d as J,hI as se,cR as X,d8 as _,il as Me,tJ as x,jr as Z,aJ as W,aK as we,aH as ee,k1 as te,cr as O,f as U,g as u,bx as ke,lQ as oe,hD as Le,jk as N,jl as G,ik as V,tK as Fe,x as Pe,jL as Ue,bs as xe,eQ as We,ev as H,lN as K,tL as Ne,o6 as Ve,tD as He,jj as B,jq as Y,cq as q,tM as z,U as l,em as Ce,jx as ye,jp as Ae,ct as Ke,bc as ne,tN as ae,tO as p,cF as Be,W as Oe,bz as De,ch as Ye,ip as ie,k5 as Re,tF as qe,dN as Ie,oC as ze,cC as je,jo as j,ji as $e,a0 as de,n_ as ce,jA as Qe,o2 as ue,z as Je,oD as Xe,tP as C,tQ as f,t5 as he,t as Ze,oy as et,bW as tt,lU as it,O as rt,o8 as st,X as ot,Y as nt,th as at,t7 as le}from"./index-DSexFukl.js";function fe(h,e,t){const i=h.get(F),r=h.get(ge),s=dt(e,t,i,r);return s instanceof Promise?s.then(n=>pe(n,e,t,i)):pe(s,e,t,i)}function pe(h,e,t,i){let r;return i.activeGroup!==h&&e.options&&!e.options.inactive&&e.options.preserveFocus&&typeof e.options.activation!="number"&&t!==Se&&(r=_e.ACTIVATE),[h,r]}function dt(h,e,t,i){let r;const s=k(h)?h.editor:h,n=h.options;if(e&&typeof e!="number")r=e;else if(typeof e=="number"&&e>=0)r=t.getGroup(e);else if(e===Se){const o=re(i);let a=t.findGroup({direction:o});(!a||w(a,s))&&(a=t.addGroup(t.activeGroup,o)),r=a}else if(e===Te)r=t.createAuxiliaryEditorPart({bounds:n?.auxiliary?.bounds,compact:n?.auxiliary?.compact,alwaysOnTop:n?.auxiliary?.alwaysOnTop}).then(o=>o.activeGroup);else if(!n||typeof n.index!="number"){const o=t.getGroups(A.MOST_RECENTLY_ACTIVE);if(n?.revealIfVisible){for(const a of o)if(ct(a,s)){r=a;break}}if(!r&&(n?.revealIfOpened||i.getValue("workbench.editor.revealIfOpen")||R(s)&&s.hasCapability(g.Singleton))){let a,d;for(const c of o)if(me(c,s)&&(d||(d=c),!a&&c.isActive(s)&&(a=c)),d&&a)break;r=a||d}}if(!r){let o=t.activeGroup;if(w(o,s)){for(const a of t.getGroups(A.MOST_RECENTLY_ACTIVE))if(!w(a,s)){o=a;break}w(o,s)?r=t.addGroup(o,re(i)):r=o}else r=o}return r}function w(h,e){return!(!h.isLocked||me(h,e))}function ct(h,e){return h.activeEditor?h.activeEditor.matches(e):!1}function me(h,e){for(const t of h.editors)if(t.matches(e))return!0;return!1}var T,D;let $=(D=class extends P{get count(){return this.mostRecentEditorsMap.size}get editors(){return[...this.mostRecentEditorsMap.values()]}hasEditor(e){return this.editorsPerResourceCounter.get(e.resource)?.has(this.toIdentifier(e))??!1}hasEditors(e){return this.editorsPerResourceCounter.has(e)}toIdentifier(e,t){return typeof e!="string"?this.toIdentifier(e.typeId,e.editorId):t?`${e}/${t}`:e}constructor(e,t,i){super(),this.editorGroupService=t,this.storageService=i,this.keyMap=new Map,this.mostRecentEditorsMap=new be,this.editorsPerResourceCounter=new b,this._onDidMostRecentlyActiveEditorsChange=this._register(new y),this.onDidMostRecentlyActiveEditorsChange=this._onDidMostRecentlyActiveEditorsChange.event,this.editorGroupsContainer=e??t,this.isScoped=!!e,this.registerListeners(),this.loadState()}registerListeners(){this._register(this.editorGroupsContainer.onDidAddGroup(e=>this.onGroupAdded(e))),this._register(this.editorGroupService.onDidChangeEditorPartOptions(e=>this.onDidChangeEditorPartOptions(e))),this._register(this.storageService.onWillSaveState(()=>this.saveState()))}onGroupAdded(e){const t=e.getEditors(E.MOST_RECENTLY_ACTIVE);for(let i=t.length-1;i>=0;i--)this.addMostRecentEditor(e,t[i],!1,!0);this.editorGroupsContainer.activeGroup===e&&e.activeEditor&&this.addMostRecentEditor(e,e.activeEditor,!0,!1),this.registerGroupListeners(e)}registerGroupListeners(e){const t=new J;t.add(e.onDidModelChange(i=>{switch(i.kind){case se.GROUP_ACTIVE:{this.editorGroupsContainer.activeGroup===e&&e.activeEditor&&this.addMostRecentEditor(e,e.activeEditor,!0,!1);break}case se.EDITOR_OPEN:{i.editor&&(this.addMostRecentEditor(e,i.editor,!1,!0),this.ensureOpenedEditorsLimit({groupId:e.id,editor:i.editor},e.id));break}}})),t.add(e.onDidCloseEditor(i=>{this.removeMostRecentEditor(e,i.editor)})),t.add(e.onDidActiveEditorChange(i=>{i.editor&&this.addMostRecentEditor(e,i.editor,this.editorGroupsContainer.activeGroup===e,!1)})),X.once(e.onWillDispose)(()=>_(t))}onDidChangeEditorPartOptions(e){if(!Me(e.newPartOptions.limit,e.oldPartOptions.limit)){const t=this.editorGroupsContainer.activeGroup;let i;t.activeEditor&&(i={editor:t.activeEditor,groupId:t.id}),this.ensureOpenedEditorsLimit(i)}}addMostRecentEditor(e,t,i,r){const s=this.ensureKey(e,t),n=this.mostRecentEditorsMap.first;i||!n?this.mostRecentEditorsMap.set(s,s,n?x.AsOld:void 0):(this.mostRecentEditorsMap.set(s,s,x.AsOld),this.mostRecentEditorsMap.set(n,n,x.AsOld)),r&&this.updateEditorResourcesMap(t,!0),this._onDidMostRecentlyActiveEditorsChange.fire()}updateEditorResourcesMap(e,t){let i,r,s;if(e instanceof Z?(i=e.primary.resource,r=e.primary.typeId,s=e.primary.editorId):(i=e.resource,r=e.typeId,s=e.editorId),!i)return;const n=this.toIdentifier(r,s);if(t){let o=this.editorsPerResourceCounter.get(i);o||(o=new Map,this.editorsPerResourceCounter.set(i,o)),o.set(n,(o.get(n)??0)+1)}else{const o=this.editorsPerResourceCounter.get(i);if(o){const a=o.get(n)??0;a>1?o.set(n,a-1):(o.delete(n),o.size===0&&this.editorsPerResourceCounter.delete(i))}}}removeMostRecentEditor(e,t){this.updateEditorResourcesMap(t,!1);const i=this.findKey(e,t);if(i){this.mostRecentEditorsMap.delete(i);const r=this.keyMap.get(e.id);r&&r.delete(i.editor)&&r.size===0&&this.keyMap.delete(e.id),this._onDidMostRecentlyActiveEditorsChange.fire()}}findKey(e,t){const i=this.keyMap.get(e.id);if(i)return i.get(t)}ensureKey(e,t){let i=this.keyMap.get(e.id);i||(i=new Map,this.keyMap.set(e.id,i));let r=i.get(t);return r||(r={groupId:e.id,editor:t},i.set(t,r)),r}async ensureOpenedEditorsLimit(e,t){if(!this.editorGroupService.partOptions.limit?.enabled||typeof this.editorGroupService.partOptions.limit.value!="number"||this.editorGroupService.partOptions.limit.value<=0)return;const i=this.editorGroupService.partOptions.limit.value;if(this.editorGroupService.partOptions.limit?.perEditorGroup)if(typeof t=="number"){const r=this.editorGroupsContainer.getGroup(t);r&&await this.doEnsureOpenedEditorsLimit(i,r.getEditors(E.MOST_RECENTLY_ACTIVE).map(s=>({editor:s,groupId:t})),e)}else for(const r of this.editorGroupsContainer.groups)await this.ensureOpenedEditorsLimit(e,r.id);else await this.doEnsureOpenedEditorsLimit(i,[...this.mostRecentEditorsMap.values()],e)}async doEnsureOpenedEditorsLimit(e,t,i){let r;if(this.editorGroupService.partOptions.limit?.excludeDirty?r=t.filter(({editor:a})=>!(a.isDirty()&&!a.isSaving()||a.hasCapability(g.Scratchpad))):r=t,e>=r.length)return;const s=r.reverse().filter(({editor:a,groupId:d})=>!(a.isDirty()&&!a.isSaving()||a.hasCapability(g.Scratchpad)||i&&a===i.editor&&d===i.groupId||this.editorGroupsContainer.getGroup(d)?.isSticky(a)));let n=r.length-e;const o=new Map;for(const{groupId:a,editor:d}of s){let c=o.get(a);if(c||(c=[],o.set(a,c)),c.push(d),n--,n===0)break}for(const[a,d]of o){const c=this.editorGroupsContainer.getGroup(a);c&&await c.closeEditors(d,{preserveFocus:!0})}}saveState(){this.isScoped||(this.mostRecentEditorsMap.isEmpty()?this.storageService.remove(T.STORAGE_KEY,W.WORKSPACE):this.storageService.store(T.STORAGE_KEY,JSON.stringify(this.serialize()),W.WORKSPACE,we.MACHINE))}serialize(){const e=ee.as(te.EditorFactory),t=[...this.mostRecentEditorsMap.values()],i=new Map;return{entries:O(t.map(({editor:r,groupId:s})=>{const n=this.editorGroupsContainer.getGroup(s);if(!n)return;let o=i.get(n);o||(o=n.getEditors(E.SEQUENTIAL).filter(d=>e.getEditorSerializer(d)?.canSerialize(d)),i.set(n,o));const a=o.indexOf(r);if(a!==-1)return{groupId:s,index:a}}))}}async loadState(){(this.editorGroupsContainer===this.editorGroupService.mainPart||this.editorGroupsContainer===this.editorGroupService)&&await this.editorGroupService.whenReady;let e=!1;if(!this.isScoped){const t=this.storageService.get(T.STORAGE_KEY,W.WORKSPACE);t&&(e=!0,this.deserialize(JSON.parse(t)))}if(!e){const t=this.editorGroupsContainer.getGroups(A.MOST_RECENTLY_ACTIVE);for(let i=t.length-1;i>=0;i--){const r=t[i],s=r.getEditors(E.MOST_RECENTLY_ACTIVE);for(let n=s.length-1;n>=0;n--)this.addMostRecentEditor(r,s[n],!0,!0)}}for(const t of this.editorGroupsContainer.groups)this.registerGroupListeners(t)}deserialize(e){const t=[];for(const{groupId:i,index:r}of e.entries){const s=this.editorGroupsContainer.getGroup(i);if(!s)continue;const n=s.getEditorByIndex(r);if(!n)continue;const o=this.ensureKey(s,n);t.push([o,o]),this.updateEditorResourcesMap(n,!0)}this.mostRecentEditorsMap.fromJSON(t)}},T=D,D.STORAGE_KEY="editors.mru",D);$=T=U([u(1,F),u(2,ke)],$);var Q;let Ee=Q=class extends P{constructor(e,t,i,r,s,n,o,a,d,c,S){super(),this.editorGroupService=t,this.instantiationService=i,this.fileService=r,this.configurationService=s,this.contextService=n,this.uriIdentityService=o,this.editorResolverService=a,this.workspaceTrustRequestService=d,this.hostService=c,this.textEditorService=S,this._onDidActiveEditorChange=this._register(new y),this.onDidActiveEditorChange=this._onDidActiveEditorChange.event,this._onDidVisibleEditorsChange=this._register(new y),this.onDidVisibleEditorsChange=this._onDidVisibleEditorsChange.event,this._onDidEditorsChange=this._register(new y),this.onDidEditorsChange=this._onDidEditorsChange.event,this._onWillOpenEditor=this._register(new y),this.onWillOpenEditor=this._onWillOpenEditor.event,this._onDidCloseEditor=this._register(new y),this.onDidCloseEditor=this._onDidCloseEditor.event,this._onDidOpenEditorFail=this._register(new y),this.onDidOpenEditorFail=this._onDidOpenEditorFail.event,this._onDidMostRecentlyActiveEditorsChange=this._register(new y),this.onDidMostRecentlyActiveEditorsChange=this._onDidMostRecentlyActiveEditorsChange.event,this.lastActiveEditor=void 0,this.activeOutOfWorkspaceWatchers=new b,this.closeOnFileDelete=!1,this.editorGroupsContainer=e??t,this.editorsObserver=this._register(this.instantiationService.createInstance($,this.editorGroupsContainer)),this.onConfigurationUpdated(),this.registerListeners()}createScoped(e,t){return t.add(new Q(e,this.editorGroupService,this.instantiationService,this.fileService,this.configurationService,this.contextService,this.uriIdentityService,this.editorResolverService,this.workspaceTrustRequestService,this.hostService,this.textEditorService))}registerListeners(){this.editorGroupsContainer===this.editorGroupService.mainPart||this.editorGroupsContainer===this.editorGroupService?this.editorGroupService.whenReady.then(()=>this.onEditorGroupsReady()):this.onEditorGroupsReady(),this._register(this.editorGroupsContainer.onDidChangeActiveGroup(e=>this.handleActiveEditorChange(e))),this._register(this.editorGroupsContainer.onDidAddGroup(e=>this.registerGroupListeners(e))),this._register(this.editorsObserver.onDidMostRecentlyActiveEditorsChange(()=>this._onDidMostRecentlyActiveEditorsChange.fire())),this._register(this.onDidVisibleEditorsChange(()=>this.handleVisibleEditorsChange())),this._register(this.fileService.onDidRunOperation(e=>this.onDidRunFileOperation(e))),this._register(this.fileService.onDidFilesChange(e=>this.onDidFilesChange(e))),this._register(this.configurationService.onDidChangeConfiguration(e=>this.onConfigurationUpdated(e)))}onEditorGroupsReady(){for(const e of this.editorGroupsContainer.groups)this.registerGroupListeners(e);this.activeEditor&&(this.doHandleActiveEditorChangeEvent(),this._onDidVisibleEditorsChange.fire())}handleActiveEditorChange(e){e===this.editorGroupsContainer.activeGroup&&(!this.lastActiveEditor&&!e.activeEditor||this.doHandleActiveEditorChangeEvent())}doHandleActiveEditorChangeEvent(){const e=this.editorGroupsContainer.activeGroup;this.lastActiveEditor=e.activeEditor??void 0,this._onDidActiveEditorChange.fire()}registerGroupListeners(e){const t=new J;t.add(e.onDidModelChange(i=>{this._onDidEditorsChange.fire({groupId:e.id,event:i})})),t.add(e.onDidActiveEditorChange(()=>{this.handleActiveEditorChange(e),this._onDidVisibleEditorsChange.fire()})),t.add(e.onWillOpenEditor(i=>{this._onWillOpenEditor.fire(i)})),t.add(e.onDidCloseEditor(i=>{this._onDidCloseEditor.fire(i)})),t.add(e.onDidOpenEditorFail(i=>{this._onDidOpenEditorFail.fire({editor:i,groupId:e.id})})),X.once(e.onWillDispose)(()=>{_(t)})}handleVisibleEditorsChange(){const e=new oe;for(const t of this.visibleEditors){const i=Le(O([N.getCanonicalUri(t,{supportSideBySide:G.PRIMARY}),N.getCanonicalUri(t,{supportSideBySide:G.SECONDARY})]),r=>r.toString());for(const r of i)this.fileService.hasProvider(r)&&!this.contextService.isInsideWorkspace(r)&&e.add(r)}for(const t of this.activeOutOfWorkspaceWatchers.keys())e.has(t)||(_(this.activeOutOfWorkspaceWatchers.get(t)),this.activeOutOfWorkspaceWatchers.delete(t));for(const t of e.keys())if(!this.activeOutOfWorkspaceWatchers.get(t)){const i=this.fileService.watch(t);this.activeOutOfWorkspaceWatchers.set(t,i)}}async onDidRunFileOperation(e){e.isOperation(V.MOVE)&&this.handleMovedFile(e.resource,e.target.resource),(e.isOperation(V.DELETE)||e.isOperation(V.MOVE))&&this.handleDeletedFile(e.resource,!1,e.target?e.target.resource:void 0)}onDidFilesChange(e){e.gotDeleted()&&this.handleDeletedFile(e,!0)}async handleMovedFile(e,t){for(const i of this.editorGroupsContainer.groups){const r=[];for(const s of i.editors){const n=s.resource;if(!n||!this.uriIdentityService.extUri.isEqualOrParent(n,e))continue;let o;if(this.uriIdentityService.extUri.isEqual(e,n))o=t;else{const c=Fe(n.path,e.path,this.uriIdentityService.extUri.ignorePathCasing(n));o=Pe(t,n.path.substr(c+e.path.length+1))}const a=await s.rename(i.id,o);if(!a)return;const d={preserveFocus:!0,pinned:i.isPinned(s),sticky:i.isSticky(s),index:i.getIndexOfEditor(s),inactive:!i.isActive(s)};R(a.editor)?r.push({editor:s,replacement:a.editor,options:{...a.options,...d}}):r.push({editor:s,replacement:{...a.editor,options:{...a.editor.options,...d}}})}r.length&&this.replaceEditors(r,i)}}onConfigurationUpdated(e){if(e&&!e.affectsConfiguration("workbench.editor.closeOnFileDelete"))return;const t=this.configurationService.getValue();typeof t.workbench?.editor?.closeOnFileDelete=="boolean"?this.closeOnFileDelete=t.workbench.editor.closeOnFileDelete:this.closeOnFileDelete=!1}handleDeletedFile(e,t,i){for(const r of this.getAllNonDirtyEditors({includeUntitled:!1,supportSideBySide:!0}))(async()=>{const s=r.resource;if(s&&(this.closeOnFileDelete||!t)){if(i&&this.uriIdentityService.extUri.isEqualOrParent(s,i))return;let n=!1;if(e instanceof Ue?n=e.contains(s,xe.DELETED):n=this.uriIdentityService.extUri.isEqualOrParent(s,e),!n)return;let o=!1;t&&this.fileService.hasProvider(s)&&(await We(100),o=await this.fileService.exists(s)),!o&&!r.isDisposed()&&r.dispose()}})()}getAllNonDirtyEditors(e){const t=[];function i(r){r.hasCapability(g.Untitled)&&!e.includeUntitled||r.isDirty()||t.push(r)}for(const r of this.editors)e.supportSideBySide&&r instanceof Z?(i(r.primary),i(r.secondary)):i(r);return t}get activeEditorPane(){return this.editorGroupsContainer.activeGroup?.activeEditorPane}get activeTextEditorControl(){const e=this.activeEditorPane;if(e){const t=e.getControl();if(H(t)||K(t))return t;if(Ne(t)&&H(t.activeCodeEditor))return t.activeCodeEditor}}get activeTextEditorLanguageId(){let e;const t=this.activeTextEditorControl;return K(t)?e=t.getModifiedEditor():e=t,e?.getModel()?.getLanguageId()}get count(){return this.editorsObserver.count}get editors(){return this.getEditors(E.SEQUENTIAL).map(({editor:e})=>e)}getEditors(e,t){switch(e){case E.MOST_RECENTLY_ACTIVE:return t?.excludeSticky?this.editorsObserver.editors.filter(({groupId:i,editor:r})=>!this.editorGroupsContainer.getGroup(i)?.isSticky(r)):this.editorsObserver.editors;case E.SEQUENTIAL:{const i=[];for(const r of this.editorGroupsContainer.getGroups(A.GRID_APPEARANCE))i.push(...r.getEditors(E.SEQUENTIAL,t).map(s=>({editor:s,groupId:r.id})));return i}}}get activeEditor(){const e=this.editorGroupsContainer.activeGroup;return e?e.activeEditor??void 0:void 0}get visibleEditorPanes(){return O(this.editorGroupsContainer.groups.map(e=>e.activeEditorPane))}get visibleTextEditorControls(){return this.doGetVisibleTextEditorControls(this.visibleEditorPanes)}doGetVisibleTextEditorControls(e){const t=[];for(const i of e){const r=[];i instanceof Ve?(r.push(i.getPrimaryEditorPane()?.getControl()),r.push(i.getSecondaryEditorPane()?.getControl())):r.push(i.getControl());for(const s of r)(H(s)||K(s))&&t.push(s)}return t}getVisibleTextEditorControls(e){return this.doGetVisibleTextEditorControls(O(this.editorGroupsContainer.getGroups(e===E.SEQUENTIAL?A.GRID_APPEARANCE:A.MOST_RECENTLY_ACTIVE).map(t=>t.activeEditorPane)))}get visibleEditors(){return O(this.editorGroupsContainer.groups.map(e=>e.activeEditor))}async openEditor(e,t,i){let r,s=R(e)?t:e.options,n;if(He(t)&&(i=t),!R(e)){const o=await this.editorResolverService.resolveEditor(e,i);if(o===B.ABORT)return;Y(o)&&(r=o.editor,s=o.options,n=o.group)}if(r||(r=R(e)?e:await this.textEditorService.resolveTextEditor(e)),!n){let o;const a=this.instantiationService.invokeFunction(fe,{editor:r,options:s},i);a instanceof Promise?[n,o]=await a:[n,o]=a,o&&(s={...s,activation:o})}return n.openEditor(r,s)}async openEditors(e,t,i){if(i?.validateTrust&&!await this.handleWorkspaceTrust(e))return[];const r=new Map;for(const n of e){let o,a;if(!k(n)){const c=await this.editorResolverService.resolveEditor(n,t);if(c===B.ABORT)continue;Y(c)&&(o=c,a=c.group)}if(o||(o=k(n)?n:{editor:await this.textEditorService.resolveTextEditor(n),options:n.options}),!a){const c=this.instantiationService.invokeFunction(fe,o,t);c instanceof Promise?[a]=await c:[a]=c}let d=r.get(a);d||(d=[],r.set(a,d)),d.push(o)}const s=[];for(const[n,o]of r)s.push(n.openEditors(o));return O(await q.settled(s))}async handleWorkspaceTrust(e){const{resources:t,diffMode:i,mergeMode:r}=this.extractEditorResources(e);switch(await this.workspaceTrustRequestService.requestOpenFilesTrust(t)){case z.Open:return!0;case z.OpenInNewWindow:return await this.hostService.openWindow(t.map(n=>({fileUri:n})),{forceNewWindow:!0,diffMode:i,mergeMode:r}),!1;case z.Cancel:return!1}}extractEditorResources(e){const t=new oe;let i=!1,r=!1;for(const s of e)if(k(s)){const n=N.getOriginalUri(s.editor,{supportSideBySide:G.BOTH});l.isUri(n)?t.add(n):n&&(n.primary&&t.add(n.primary),n.secondary&&t.add(n.secondary),i=s.editor instanceof Ce)}else ye(s)&&(l.isUri(s.input1)&&t.add(s.input1.resource),l.isUri(s.input2)&&t.add(s.input2.resource),l.isUri(s.base)&&t.add(s.base.resource),l.isUri(s.result)&&t.add(s.result.resource),r=!0),Ae(s)?(l.isUri(s.original.resource)&&t.add(s.original.resource),l.isUri(s.modified.resource)&&t.add(s.modified.resource),i=!0):Ke(s)&&t.add(s.resource);return{resources:Array.from(t.keys()),diffMode:i,mergeMode:r}}isOpened(e){return this.editorsObserver.hasEditor({resource:this.uriIdentityService.asCanonicalUri(e.resource),typeId:e.typeId,editorId:e.editorId})}isVisible(e){for(const t of this.editorGroupsContainer.groups)if(t.activeEditor?.matches(e))return!0;return!1}async closeEditor({editor:e,groupId:t},i){await this.editorGroupsContainer.getGroup(t)?.closeEditor(e,i)}async closeEditors(e,t){const i=new Map;for(const{editor:r,groupId:s}of e){const n=this.editorGroupsContainer.getGroup(s);if(!n)continue;let o=i.get(n);o||(o=[],i.set(n,o)),o.push(r)}for(const[r,s]of i)await r.closeEditors(s,t)}findEditors(e,t,i){const r=l.isUri(e)?e:e.resource,s=l.isUri(e)?void 0:e.typeId;if(t?.supportSideBySide!==G.ANY&&t?.supportSideBySide!==G.SECONDARY&&!this.editorsObserver.hasEditors(r))return l.isUri(e)||ne(i)?[]:void 0;if(ne(i)){const n=[];for(const o of this.editorGroupsContainer.getGroups(A.MOST_RECENTLY_ACTIVE)){const a=[];if(l.isUri(e))a.push(...this.findEditors(e,t,o));else{const d=this.findEditors(e,t,o);d&&a.push(d)}n.push(...a.map(d=>({editor:d,groupId:o.id})))}return n}else{const n=typeof i=="number"?this.editorGroupsContainer.getGroup(i):i;if(l.isUri(e))return n?n.findEditors(r,t):[];{if(!n)return;const o=n.findEditors(r,t);for(const a of o)if(a.typeId===s)return a;return}}}async replaceEditors(e,t){const i=typeof t=="number"?this.editorGroupsContainer.getGroup(t):t,r=[];for(const s of e){let n;if(!R(s.replacement)){const o=await this.editorResolverService.resolveEditor(s.replacement,i);if(o===B.ABORT)continue;Y(o)&&(n={editor:s.editor,replacement:o.editor,options:o.options,forceReplaceDirty:s.forceReplaceDirty})}n||(n={editor:s.editor,replacement:ae(s)?s.replacement:await this.textEditorService.resolveTextEditor(s.replacement),options:ae(s)?s.options:s.replacement.options,forceReplaceDirty:s.forceReplaceDirty}),r.push(n)}return i?.replaceEditors(r)}async save(e,t){Array.isArray(e)||(e=[e]);const i=this.getUniqueEditors(e),r=[],s=[];if(t?.saveAs)s.push(...i);else for(const{groupId:o,editor:a}of i)a.hasCapability(g.Untitled)?s.push({groupId:o,editor:a}):r.push({groupId:o,editor:a});const n=await q.settled(r.map(({groupId:o,editor:a})=>(t?.reason===p.EXPLICIT&&this.editorGroupsContainer.getGroup(o)?.pinEditor(a),a.save(o,t))));for(const{groupId:o,editor:a}of s){if(a.isDisposed())continue;const c={pinned:!0,viewState:(await this.openEditor(a,o))?.getViewState()},S=t?.saveAs?await a.saveAs(o,t):await a.save(o,t);if(n.push(S),!S)break;if(!a.matches(S)){const Ge=a.hasCapability(g.Untitled)?this.editorGroupsContainer.groups.map(M=>M.id):[o];for(const M of Ge)S instanceof Be?await this.replaceEditors([{editor:a,replacement:S,options:c}],M):await this.replaceEditors([{editor:a,replacement:{...S,options:c}}],M)}}return{success:n.every(o=>!!o),editors:O(n)}}saveAll(e){return this.save(this.getAllModifiedEditors(e),e)}async revert(e,t){Array.isArray(e)||(e=[e]);const i=this.getUniqueEditors(e);return await q.settled(i.map(async({groupId:r,editor:s})=>(this.editorGroupsContainer.getGroup(r)?.pinEditor(s),s.revert(r,t)))),!i.some(({editor:r})=>r.isDirty())}async revertAll(e){return this.revert(this.getAllModifiedEditors(e),e)}getAllModifiedEditors(e){const t=[];for(const i of this.editorGroupsContainer.getGroups(A.MOST_RECENTLY_ACTIVE))for(const r of i.getEditors(E.MOST_RECENTLY_ACTIVE))r.isModified()&&((typeof e?.includeUntitled=="boolean"||!e?.includeUntitled?.includeScratchpad)&&r.hasCapability(g.Scratchpad)||!e?.includeUntitled&&r.hasCapability(g.Untitled)||e?.excludeSticky&&i.isSticky(r)||t.push({groupId:i.id,editor:r}));return t}getUniqueEditors(e){const t=[];for(const{editor:i,groupId:r}of e)t.some(s=>s.editor.matches(i))||t.push({editor:i,groupId:r});return t}dispose(){super.dispose(),this.activeOutOfWorkspaceWatchers.forEach(e=>_(e)),this.activeOutOfWorkspaceWatchers.clear()}};Ee=Q=U([u(1,F),u(2,Oe),u(3,De),u(4,ge),u(5,Ye),u(6,ie),u(7,Re),u(8,qe),u(9,Ie),u(10,ze)],Ee);var I;class ut extends Error{constructor(e,t){super(e),this.name="FileEditorInputLeakError",this.stack=t}}var v;let ve=(v=class extends P{constructor(e,t,i,r,s){super(),this.untitledTextEditorService=e,this.instantiationService=t,this.uriIdentityService=i,this.fileService=r,this.editorResolverService=s,this.editorInputCache=new b,this.fileEditorFactory=ee.as(te.EditorFactory).getFileEditorFactory(),this.mapLeakToCounter=new Map,this.registerDefaultEditor()}registerDefaultEditor(){this._register(this.editorResolverService.registerEditor("*",{id:j.id,label:j.displayName,detail:j.providerDisplayName,priority:je.builtin},{},{createEditorInput:e=>({editor:this.createTextEditor(e)}),createUntitledEditorInput:e=>({editor:this.createTextEditor(e)}),createDiffEditorInput:e=>({editor:this.createTextEditor(e)})}))}async resolveTextEditor(e){return this.createTextEditor(e)}createTextEditor(e){if(ye(e))return this.createTextEditor(e.result);if(Ae(e)){const r=this.createTextEditor(e.original),s=this.createTextEditor(e.modified);return this.instantiationService.createInstance(Ce,e.label,e.description,r,s,void 0)}if($e(e)){const r=this.createTextEditor(e.primary),s=this.createTextEditor(e.secondary);return this.instantiationService.createInstance(Z,e.label,e.description,s,r)}const t=e;if(t.forceUntitled||!t.resource||t.resource.scheme===de.untitled){const r={languageId:t.languageId,initialValue:t.contents,encoding:t.encoding};let s;return t.resource?.scheme===de.untitled?s=this.untitledTextEditorService.create({untitledResource:t.resource,...r}):s=this.untitledTextEditorService.create({associatedResource:t.resource,...r}),this.createOrGetCached(s.resource,()=>this.instantiationService.createInstance(ce,s))}const i=e;if(i.resource instanceof l){const r=i.label||Qe(i.resource),s=i.resource,n=this.uriIdentityService.asCanonicalUri(s);return this.createOrGetCached(n,()=>i.forceFile||this.fileService.hasProvider(n)?this.fileEditorFactory.createFileEditor(n,s,i.label,i.description,i.encoding,i.languageId,i.contents,this.instantiationService):this.instantiationService.createInstance(ue,n,i.label,i.description,i.languageId,i.contents),o=>{o instanceof ce||(o instanceof ue?(r&&o.setName(r),i.description&&o.setDescription(i.description),i.languageId&&o.setPreferredLanguageId(i.languageId),typeof i.contents=="string"&&o.setPreferredContents(i.contents)):(o.setPreferredResource(s),i.label&&o.setPreferredName(i.label),i.description&&o.setPreferredDescription(i.description),i.encoding&&o.setPreferredEncoding(i.encoding),i.languageId&&o.setPreferredLanguageId(i.languageId),typeof i.contents=="string"&&o.setPreferredContents(i.contents)))})}throw new Error(`ITextEditorService: Unable to create texteditor from ${JSON.stringify(e)}`)}createOrGetCached(e,t,i){let r=this.editorInputCache.get(e);if(r)return i?.(r),r;r=t(),this.editorInputCache.set(e,r);const s=this.trackLeaks(r);return X.once(r.onWillDispose)(()=>{this.editorInputCache.delete(e),s&&this.untrackLeaks(s)}),r}trackLeaks(e){if(I.LEAK_REPORTED||this.editorInputCache.size<I.LEAK_TRACKING_THRESHOLD)return;const t=`${e.resource.scheme}#${e.typeId||"<no typeId>"}#${e.editorId||"<no editorId>"}
1
+ import{cc as F,h as ge,jn as k,hA as Se,tG as re,tH as Te,co as A,jM as R,cz as g,jw as _e,D as P,tI as be,jC as b,E as y,jO as E,d as J,hI as se,cR as X,d8 as _,il as Me,tJ as x,jr as Z,aJ as W,aK as we,aH as ee,k1 as te,cr as O,f as U,g as u,bx as ke,lQ as oe,hD as Le,jk as N,jl as G,ik as V,tK as Fe,x as Pe,jL as Ue,bs as xe,eQ as We,ev as H,lN as K,tL as Ne,o6 as Ve,tD as He,jj as B,jq as Y,cq as q,tM as z,U as l,em as Ce,jx as ye,jp as Ae,ct as Ke,bc as ne,tN as ae,tO as p,cF as Be,W as Oe,bz as De,ch as Ye,ip as ie,k5 as Re,tF as qe,dN as Ie,oC as ze,cC as je,jo as j,ji as $e,a0 as de,n_ as ce,jA as Qe,o2 as ue,z as Je,oD as Xe,tP as C,tQ as f,t5 as he,t as Ze,oy as et,bW as tt,lU as it,O as rt,o8 as st,X as ot,Y as nt,th as at,t7 as le}from"./index-By7ErQ-m.js";function fe(h,e,t){const i=h.get(F),r=h.get(ge),s=dt(e,t,i,r);return s instanceof Promise?s.then(n=>pe(n,e,t,i)):pe(s,e,t,i)}function pe(h,e,t,i){let r;return i.activeGroup!==h&&e.options&&!e.options.inactive&&e.options.preserveFocus&&typeof e.options.activation!="number"&&t!==Se&&(r=_e.ACTIVATE),[h,r]}function dt(h,e,t,i){let r;const s=k(h)?h.editor:h,n=h.options;if(e&&typeof e!="number")r=e;else if(typeof e=="number"&&e>=0)r=t.getGroup(e);else if(e===Se){const o=re(i);let a=t.findGroup({direction:o});(!a||w(a,s))&&(a=t.addGroup(t.activeGroup,o)),r=a}else if(e===Te)r=t.createAuxiliaryEditorPart({bounds:n?.auxiliary?.bounds,compact:n?.auxiliary?.compact,alwaysOnTop:n?.auxiliary?.alwaysOnTop}).then(o=>o.activeGroup);else if(!n||typeof n.index!="number"){const o=t.getGroups(A.MOST_RECENTLY_ACTIVE);if(n?.revealIfVisible){for(const a of o)if(ct(a,s)){r=a;break}}if(!r&&(n?.revealIfOpened||i.getValue("workbench.editor.revealIfOpen")||R(s)&&s.hasCapability(g.Singleton))){let a,d;for(const c of o)if(me(c,s)&&(d||(d=c),!a&&c.isActive(s)&&(a=c)),d&&a)break;r=a||d}}if(!r){let o=t.activeGroup;if(w(o,s)){for(const a of t.getGroups(A.MOST_RECENTLY_ACTIVE))if(!w(a,s)){o=a;break}w(o,s)?r=t.addGroup(o,re(i)):r=o}else r=o}return r}function w(h,e){return!(!h.isLocked||me(h,e))}function ct(h,e){return h.activeEditor?h.activeEditor.matches(e):!1}function me(h,e){for(const t of h.editors)if(t.matches(e))return!0;return!1}var T,D;let $=(D=class extends P{get count(){return this.mostRecentEditorsMap.size}get editors(){return[...this.mostRecentEditorsMap.values()]}hasEditor(e){return this.editorsPerResourceCounter.get(e.resource)?.has(this.toIdentifier(e))??!1}hasEditors(e){return this.editorsPerResourceCounter.has(e)}toIdentifier(e,t){return typeof e!="string"?this.toIdentifier(e.typeId,e.editorId):t?`${e}/${t}`:e}constructor(e,t,i){super(),this.editorGroupService=t,this.storageService=i,this.keyMap=new Map,this.mostRecentEditorsMap=new be,this.editorsPerResourceCounter=new b,this._onDidMostRecentlyActiveEditorsChange=this._register(new y),this.onDidMostRecentlyActiveEditorsChange=this._onDidMostRecentlyActiveEditorsChange.event,this.editorGroupsContainer=e??t,this.isScoped=!!e,this.registerListeners(),this.loadState()}registerListeners(){this._register(this.editorGroupsContainer.onDidAddGroup(e=>this.onGroupAdded(e))),this._register(this.editorGroupService.onDidChangeEditorPartOptions(e=>this.onDidChangeEditorPartOptions(e))),this._register(this.storageService.onWillSaveState(()=>this.saveState()))}onGroupAdded(e){const t=e.getEditors(E.MOST_RECENTLY_ACTIVE);for(let i=t.length-1;i>=0;i--)this.addMostRecentEditor(e,t[i],!1,!0);this.editorGroupsContainer.activeGroup===e&&e.activeEditor&&this.addMostRecentEditor(e,e.activeEditor,!0,!1),this.registerGroupListeners(e)}registerGroupListeners(e){const t=new J;t.add(e.onDidModelChange(i=>{switch(i.kind){case se.GROUP_ACTIVE:{this.editorGroupsContainer.activeGroup===e&&e.activeEditor&&this.addMostRecentEditor(e,e.activeEditor,!0,!1);break}case se.EDITOR_OPEN:{i.editor&&(this.addMostRecentEditor(e,i.editor,!1,!0),this.ensureOpenedEditorsLimit({groupId:e.id,editor:i.editor},e.id));break}}})),t.add(e.onDidCloseEditor(i=>{this.removeMostRecentEditor(e,i.editor)})),t.add(e.onDidActiveEditorChange(i=>{i.editor&&this.addMostRecentEditor(e,i.editor,this.editorGroupsContainer.activeGroup===e,!1)})),X.once(e.onWillDispose)(()=>_(t))}onDidChangeEditorPartOptions(e){if(!Me(e.newPartOptions.limit,e.oldPartOptions.limit)){const t=this.editorGroupsContainer.activeGroup;let i;t.activeEditor&&(i={editor:t.activeEditor,groupId:t.id}),this.ensureOpenedEditorsLimit(i)}}addMostRecentEditor(e,t,i,r){const s=this.ensureKey(e,t),n=this.mostRecentEditorsMap.first;i||!n?this.mostRecentEditorsMap.set(s,s,n?x.AsOld:void 0):(this.mostRecentEditorsMap.set(s,s,x.AsOld),this.mostRecentEditorsMap.set(n,n,x.AsOld)),r&&this.updateEditorResourcesMap(t,!0),this._onDidMostRecentlyActiveEditorsChange.fire()}updateEditorResourcesMap(e,t){let i,r,s;if(e instanceof Z?(i=e.primary.resource,r=e.primary.typeId,s=e.primary.editorId):(i=e.resource,r=e.typeId,s=e.editorId),!i)return;const n=this.toIdentifier(r,s);if(t){let o=this.editorsPerResourceCounter.get(i);o||(o=new Map,this.editorsPerResourceCounter.set(i,o)),o.set(n,(o.get(n)??0)+1)}else{const o=this.editorsPerResourceCounter.get(i);if(o){const a=o.get(n)??0;a>1?o.set(n,a-1):(o.delete(n),o.size===0&&this.editorsPerResourceCounter.delete(i))}}}removeMostRecentEditor(e,t){this.updateEditorResourcesMap(t,!1);const i=this.findKey(e,t);if(i){this.mostRecentEditorsMap.delete(i);const r=this.keyMap.get(e.id);r&&r.delete(i.editor)&&r.size===0&&this.keyMap.delete(e.id),this._onDidMostRecentlyActiveEditorsChange.fire()}}findKey(e,t){const i=this.keyMap.get(e.id);if(i)return i.get(t)}ensureKey(e,t){let i=this.keyMap.get(e.id);i||(i=new Map,this.keyMap.set(e.id,i));let r=i.get(t);return r||(r={groupId:e.id,editor:t},i.set(t,r)),r}async ensureOpenedEditorsLimit(e,t){if(!this.editorGroupService.partOptions.limit?.enabled||typeof this.editorGroupService.partOptions.limit.value!="number"||this.editorGroupService.partOptions.limit.value<=0)return;const i=this.editorGroupService.partOptions.limit.value;if(this.editorGroupService.partOptions.limit?.perEditorGroup)if(typeof t=="number"){const r=this.editorGroupsContainer.getGroup(t);r&&await this.doEnsureOpenedEditorsLimit(i,r.getEditors(E.MOST_RECENTLY_ACTIVE).map(s=>({editor:s,groupId:t})),e)}else for(const r of this.editorGroupsContainer.groups)await this.ensureOpenedEditorsLimit(e,r.id);else await this.doEnsureOpenedEditorsLimit(i,[...this.mostRecentEditorsMap.values()],e)}async doEnsureOpenedEditorsLimit(e,t,i){let r;if(this.editorGroupService.partOptions.limit?.excludeDirty?r=t.filter(({editor:a})=>!(a.isDirty()&&!a.isSaving()||a.hasCapability(g.Scratchpad))):r=t,e>=r.length)return;const s=r.reverse().filter(({editor:a,groupId:d})=>!(a.isDirty()&&!a.isSaving()||a.hasCapability(g.Scratchpad)||i&&a===i.editor&&d===i.groupId||this.editorGroupsContainer.getGroup(d)?.isSticky(a)));let n=r.length-e;const o=new Map;for(const{groupId:a,editor:d}of s){let c=o.get(a);if(c||(c=[],o.set(a,c)),c.push(d),n--,n===0)break}for(const[a,d]of o){const c=this.editorGroupsContainer.getGroup(a);c&&await c.closeEditors(d,{preserveFocus:!0})}}saveState(){this.isScoped||(this.mostRecentEditorsMap.isEmpty()?this.storageService.remove(T.STORAGE_KEY,W.WORKSPACE):this.storageService.store(T.STORAGE_KEY,JSON.stringify(this.serialize()),W.WORKSPACE,we.MACHINE))}serialize(){const e=ee.as(te.EditorFactory),t=[...this.mostRecentEditorsMap.values()],i=new Map;return{entries:O(t.map(({editor:r,groupId:s})=>{const n=this.editorGroupsContainer.getGroup(s);if(!n)return;let o=i.get(n);o||(o=n.getEditors(E.SEQUENTIAL).filter(d=>e.getEditorSerializer(d)?.canSerialize(d)),i.set(n,o));const a=o.indexOf(r);if(a!==-1)return{groupId:s,index:a}}))}}async loadState(){(this.editorGroupsContainer===this.editorGroupService.mainPart||this.editorGroupsContainer===this.editorGroupService)&&await this.editorGroupService.whenReady;let e=!1;if(!this.isScoped){const t=this.storageService.get(T.STORAGE_KEY,W.WORKSPACE);t&&(e=!0,this.deserialize(JSON.parse(t)))}if(!e){const t=this.editorGroupsContainer.getGroups(A.MOST_RECENTLY_ACTIVE);for(let i=t.length-1;i>=0;i--){const r=t[i],s=r.getEditors(E.MOST_RECENTLY_ACTIVE);for(let n=s.length-1;n>=0;n--)this.addMostRecentEditor(r,s[n],!0,!0)}}for(const t of this.editorGroupsContainer.groups)this.registerGroupListeners(t)}deserialize(e){const t=[];for(const{groupId:i,index:r}of e.entries){const s=this.editorGroupsContainer.getGroup(i);if(!s)continue;const n=s.getEditorByIndex(r);if(!n)continue;const o=this.ensureKey(s,n);t.push([o,o]),this.updateEditorResourcesMap(n,!0)}this.mostRecentEditorsMap.fromJSON(t)}},T=D,D.STORAGE_KEY="editors.mru",D);$=T=U([u(1,F),u(2,ke)],$);var Q;let Ee=Q=class extends P{constructor(e,t,i,r,s,n,o,a,d,c,S){super(),this.editorGroupService=t,this.instantiationService=i,this.fileService=r,this.configurationService=s,this.contextService=n,this.uriIdentityService=o,this.editorResolverService=a,this.workspaceTrustRequestService=d,this.hostService=c,this.textEditorService=S,this._onDidActiveEditorChange=this._register(new y),this.onDidActiveEditorChange=this._onDidActiveEditorChange.event,this._onDidVisibleEditorsChange=this._register(new y),this.onDidVisibleEditorsChange=this._onDidVisibleEditorsChange.event,this._onDidEditorsChange=this._register(new y),this.onDidEditorsChange=this._onDidEditorsChange.event,this._onWillOpenEditor=this._register(new y),this.onWillOpenEditor=this._onWillOpenEditor.event,this._onDidCloseEditor=this._register(new y),this.onDidCloseEditor=this._onDidCloseEditor.event,this._onDidOpenEditorFail=this._register(new y),this.onDidOpenEditorFail=this._onDidOpenEditorFail.event,this._onDidMostRecentlyActiveEditorsChange=this._register(new y),this.onDidMostRecentlyActiveEditorsChange=this._onDidMostRecentlyActiveEditorsChange.event,this.lastActiveEditor=void 0,this.activeOutOfWorkspaceWatchers=new b,this.closeOnFileDelete=!1,this.editorGroupsContainer=e??t,this.editorsObserver=this._register(this.instantiationService.createInstance($,this.editorGroupsContainer)),this.onConfigurationUpdated(),this.registerListeners()}createScoped(e,t){return t.add(new Q(e,this.editorGroupService,this.instantiationService,this.fileService,this.configurationService,this.contextService,this.uriIdentityService,this.editorResolverService,this.workspaceTrustRequestService,this.hostService,this.textEditorService))}registerListeners(){this.editorGroupsContainer===this.editorGroupService.mainPart||this.editorGroupsContainer===this.editorGroupService?this.editorGroupService.whenReady.then(()=>this.onEditorGroupsReady()):this.onEditorGroupsReady(),this._register(this.editorGroupsContainer.onDidChangeActiveGroup(e=>this.handleActiveEditorChange(e))),this._register(this.editorGroupsContainer.onDidAddGroup(e=>this.registerGroupListeners(e))),this._register(this.editorsObserver.onDidMostRecentlyActiveEditorsChange(()=>this._onDidMostRecentlyActiveEditorsChange.fire())),this._register(this.onDidVisibleEditorsChange(()=>this.handleVisibleEditorsChange())),this._register(this.fileService.onDidRunOperation(e=>this.onDidRunFileOperation(e))),this._register(this.fileService.onDidFilesChange(e=>this.onDidFilesChange(e))),this._register(this.configurationService.onDidChangeConfiguration(e=>this.onConfigurationUpdated(e)))}onEditorGroupsReady(){for(const e of this.editorGroupsContainer.groups)this.registerGroupListeners(e);this.activeEditor&&(this.doHandleActiveEditorChangeEvent(),this._onDidVisibleEditorsChange.fire())}handleActiveEditorChange(e){e===this.editorGroupsContainer.activeGroup&&(!this.lastActiveEditor&&!e.activeEditor||this.doHandleActiveEditorChangeEvent())}doHandleActiveEditorChangeEvent(){const e=this.editorGroupsContainer.activeGroup;this.lastActiveEditor=e.activeEditor??void 0,this._onDidActiveEditorChange.fire()}registerGroupListeners(e){const t=new J;t.add(e.onDidModelChange(i=>{this._onDidEditorsChange.fire({groupId:e.id,event:i})})),t.add(e.onDidActiveEditorChange(()=>{this.handleActiveEditorChange(e),this._onDidVisibleEditorsChange.fire()})),t.add(e.onWillOpenEditor(i=>{this._onWillOpenEditor.fire(i)})),t.add(e.onDidCloseEditor(i=>{this._onDidCloseEditor.fire(i)})),t.add(e.onDidOpenEditorFail(i=>{this._onDidOpenEditorFail.fire({editor:i,groupId:e.id})})),X.once(e.onWillDispose)(()=>{_(t)})}handleVisibleEditorsChange(){const e=new oe;for(const t of this.visibleEditors){const i=Le(O([N.getCanonicalUri(t,{supportSideBySide:G.PRIMARY}),N.getCanonicalUri(t,{supportSideBySide:G.SECONDARY})]),r=>r.toString());for(const r of i)this.fileService.hasProvider(r)&&!this.contextService.isInsideWorkspace(r)&&e.add(r)}for(const t of this.activeOutOfWorkspaceWatchers.keys())e.has(t)||(_(this.activeOutOfWorkspaceWatchers.get(t)),this.activeOutOfWorkspaceWatchers.delete(t));for(const t of e.keys())if(!this.activeOutOfWorkspaceWatchers.get(t)){const i=this.fileService.watch(t);this.activeOutOfWorkspaceWatchers.set(t,i)}}async onDidRunFileOperation(e){e.isOperation(V.MOVE)&&this.handleMovedFile(e.resource,e.target.resource),(e.isOperation(V.DELETE)||e.isOperation(V.MOVE))&&this.handleDeletedFile(e.resource,!1,e.target?e.target.resource:void 0)}onDidFilesChange(e){e.gotDeleted()&&this.handleDeletedFile(e,!0)}async handleMovedFile(e,t){for(const i of this.editorGroupsContainer.groups){const r=[];for(const s of i.editors){const n=s.resource;if(!n||!this.uriIdentityService.extUri.isEqualOrParent(n,e))continue;let o;if(this.uriIdentityService.extUri.isEqual(e,n))o=t;else{const c=Fe(n.path,e.path,this.uriIdentityService.extUri.ignorePathCasing(n));o=Pe(t,n.path.substr(c+e.path.length+1))}const a=await s.rename(i.id,o);if(!a)return;const d={preserveFocus:!0,pinned:i.isPinned(s),sticky:i.isSticky(s),index:i.getIndexOfEditor(s),inactive:!i.isActive(s)};R(a.editor)?r.push({editor:s,replacement:a.editor,options:{...a.options,...d}}):r.push({editor:s,replacement:{...a.editor,options:{...a.editor.options,...d}}})}r.length&&this.replaceEditors(r,i)}}onConfigurationUpdated(e){if(e&&!e.affectsConfiguration("workbench.editor.closeOnFileDelete"))return;const t=this.configurationService.getValue();typeof t.workbench?.editor?.closeOnFileDelete=="boolean"?this.closeOnFileDelete=t.workbench.editor.closeOnFileDelete:this.closeOnFileDelete=!1}handleDeletedFile(e,t,i){for(const r of this.getAllNonDirtyEditors({includeUntitled:!1,supportSideBySide:!0}))(async()=>{const s=r.resource;if(s&&(this.closeOnFileDelete||!t)){if(i&&this.uriIdentityService.extUri.isEqualOrParent(s,i))return;let n=!1;if(e instanceof Ue?n=e.contains(s,xe.DELETED):n=this.uriIdentityService.extUri.isEqualOrParent(s,e),!n)return;let o=!1;t&&this.fileService.hasProvider(s)&&(await We(100),o=await this.fileService.exists(s)),!o&&!r.isDisposed()&&r.dispose()}})()}getAllNonDirtyEditors(e){const t=[];function i(r){r.hasCapability(g.Untitled)&&!e.includeUntitled||r.isDirty()||t.push(r)}for(const r of this.editors)e.supportSideBySide&&r instanceof Z?(i(r.primary),i(r.secondary)):i(r);return t}get activeEditorPane(){return this.editorGroupsContainer.activeGroup?.activeEditorPane}get activeTextEditorControl(){const e=this.activeEditorPane;if(e){const t=e.getControl();if(H(t)||K(t))return t;if(Ne(t)&&H(t.activeCodeEditor))return t.activeCodeEditor}}get activeTextEditorLanguageId(){let e;const t=this.activeTextEditorControl;return K(t)?e=t.getModifiedEditor():e=t,e?.getModel()?.getLanguageId()}get count(){return this.editorsObserver.count}get editors(){return this.getEditors(E.SEQUENTIAL).map(({editor:e})=>e)}getEditors(e,t){switch(e){case E.MOST_RECENTLY_ACTIVE:return t?.excludeSticky?this.editorsObserver.editors.filter(({groupId:i,editor:r})=>!this.editorGroupsContainer.getGroup(i)?.isSticky(r)):this.editorsObserver.editors;case E.SEQUENTIAL:{const i=[];for(const r of this.editorGroupsContainer.getGroups(A.GRID_APPEARANCE))i.push(...r.getEditors(E.SEQUENTIAL,t).map(s=>({editor:s,groupId:r.id})));return i}}}get activeEditor(){const e=this.editorGroupsContainer.activeGroup;return e?e.activeEditor??void 0:void 0}get visibleEditorPanes(){return O(this.editorGroupsContainer.groups.map(e=>e.activeEditorPane))}get visibleTextEditorControls(){return this.doGetVisibleTextEditorControls(this.visibleEditorPanes)}doGetVisibleTextEditorControls(e){const t=[];for(const i of e){const r=[];i instanceof Ve?(r.push(i.getPrimaryEditorPane()?.getControl()),r.push(i.getSecondaryEditorPane()?.getControl())):r.push(i.getControl());for(const s of r)(H(s)||K(s))&&t.push(s)}return t}getVisibleTextEditorControls(e){return this.doGetVisibleTextEditorControls(O(this.editorGroupsContainer.getGroups(e===E.SEQUENTIAL?A.GRID_APPEARANCE:A.MOST_RECENTLY_ACTIVE).map(t=>t.activeEditorPane)))}get visibleEditors(){return O(this.editorGroupsContainer.groups.map(e=>e.activeEditor))}async openEditor(e,t,i){let r,s=R(e)?t:e.options,n;if(He(t)&&(i=t),!R(e)){const o=await this.editorResolverService.resolveEditor(e,i);if(o===B.ABORT)return;Y(o)&&(r=o.editor,s=o.options,n=o.group)}if(r||(r=R(e)?e:await this.textEditorService.resolveTextEditor(e)),!n){let o;const a=this.instantiationService.invokeFunction(fe,{editor:r,options:s},i);a instanceof Promise?[n,o]=await a:[n,o]=a,o&&(s={...s,activation:o})}return n.openEditor(r,s)}async openEditors(e,t,i){if(i?.validateTrust&&!await this.handleWorkspaceTrust(e))return[];const r=new Map;for(const n of e){let o,a;if(!k(n)){const c=await this.editorResolverService.resolveEditor(n,t);if(c===B.ABORT)continue;Y(c)&&(o=c,a=c.group)}if(o||(o=k(n)?n:{editor:await this.textEditorService.resolveTextEditor(n),options:n.options}),!a){const c=this.instantiationService.invokeFunction(fe,o,t);c instanceof Promise?[a]=await c:[a]=c}let d=r.get(a);d||(d=[],r.set(a,d)),d.push(o)}const s=[];for(const[n,o]of r)s.push(n.openEditors(o));return O(await q.settled(s))}async handleWorkspaceTrust(e){const{resources:t,diffMode:i,mergeMode:r}=this.extractEditorResources(e);switch(await this.workspaceTrustRequestService.requestOpenFilesTrust(t)){case z.Open:return!0;case z.OpenInNewWindow:return await this.hostService.openWindow(t.map(n=>({fileUri:n})),{forceNewWindow:!0,diffMode:i,mergeMode:r}),!1;case z.Cancel:return!1}}extractEditorResources(e){const t=new oe;let i=!1,r=!1;for(const s of e)if(k(s)){const n=N.getOriginalUri(s.editor,{supportSideBySide:G.BOTH});l.isUri(n)?t.add(n):n&&(n.primary&&t.add(n.primary),n.secondary&&t.add(n.secondary),i=s.editor instanceof Ce)}else ye(s)&&(l.isUri(s.input1)&&t.add(s.input1.resource),l.isUri(s.input2)&&t.add(s.input2.resource),l.isUri(s.base)&&t.add(s.base.resource),l.isUri(s.result)&&t.add(s.result.resource),r=!0),Ae(s)?(l.isUri(s.original.resource)&&t.add(s.original.resource),l.isUri(s.modified.resource)&&t.add(s.modified.resource),i=!0):Ke(s)&&t.add(s.resource);return{resources:Array.from(t.keys()),diffMode:i,mergeMode:r}}isOpened(e){return this.editorsObserver.hasEditor({resource:this.uriIdentityService.asCanonicalUri(e.resource),typeId:e.typeId,editorId:e.editorId})}isVisible(e){for(const t of this.editorGroupsContainer.groups)if(t.activeEditor?.matches(e))return!0;return!1}async closeEditor({editor:e,groupId:t},i){await this.editorGroupsContainer.getGroup(t)?.closeEditor(e,i)}async closeEditors(e,t){const i=new Map;for(const{editor:r,groupId:s}of e){const n=this.editorGroupsContainer.getGroup(s);if(!n)continue;let o=i.get(n);o||(o=[],i.set(n,o)),o.push(r)}for(const[r,s]of i)await r.closeEditors(s,t)}findEditors(e,t,i){const r=l.isUri(e)?e:e.resource,s=l.isUri(e)?void 0:e.typeId;if(t?.supportSideBySide!==G.ANY&&t?.supportSideBySide!==G.SECONDARY&&!this.editorsObserver.hasEditors(r))return l.isUri(e)||ne(i)?[]:void 0;if(ne(i)){const n=[];for(const o of this.editorGroupsContainer.getGroups(A.MOST_RECENTLY_ACTIVE)){const a=[];if(l.isUri(e))a.push(...this.findEditors(e,t,o));else{const d=this.findEditors(e,t,o);d&&a.push(d)}n.push(...a.map(d=>({editor:d,groupId:o.id})))}return n}else{const n=typeof i=="number"?this.editorGroupsContainer.getGroup(i):i;if(l.isUri(e))return n?n.findEditors(r,t):[];{if(!n)return;const o=n.findEditors(r,t);for(const a of o)if(a.typeId===s)return a;return}}}async replaceEditors(e,t){const i=typeof t=="number"?this.editorGroupsContainer.getGroup(t):t,r=[];for(const s of e){let n;if(!R(s.replacement)){const o=await this.editorResolverService.resolveEditor(s.replacement,i);if(o===B.ABORT)continue;Y(o)&&(n={editor:s.editor,replacement:o.editor,options:o.options,forceReplaceDirty:s.forceReplaceDirty})}n||(n={editor:s.editor,replacement:ae(s)?s.replacement:await this.textEditorService.resolveTextEditor(s.replacement),options:ae(s)?s.options:s.replacement.options,forceReplaceDirty:s.forceReplaceDirty}),r.push(n)}return i?.replaceEditors(r)}async save(e,t){Array.isArray(e)||(e=[e]);const i=this.getUniqueEditors(e),r=[],s=[];if(t?.saveAs)s.push(...i);else for(const{groupId:o,editor:a}of i)a.hasCapability(g.Untitled)?s.push({groupId:o,editor:a}):r.push({groupId:o,editor:a});const n=await q.settled(r.map(({groupId:o,editor:a})=>(t?.reason===p.EXPLICIT&&this.editorGroupsContainer.getGroup(o)?.pinEditor(a),a.save(o,t))));for(const{groupId:o,editor:a}of s){if(a.isDisposed())continue;const c={pinned:!0,viewState:(await this.openEditor(a,o))?.getViewState()},S=t?.saveAs?await a.saveAs(o,t):await a.save(o,t);if(n.push(S),!S)break;if(!a.matches(S)){const Ge=a.hasCapability(g.Untitled)?this.editorGroupsContainer.groups.map(M=>M.id):[o];for(const M of Ge)S instanceof Be?await this.replaceEditors([{editor:a,replacement:S,options:c}],M):await this.replaceEditors([{editor:a,replacement:{...S,options:c}}],M)}}return{success:n.every(o=>!!o),editors:O(n)}}saveAll(e){return this.save(this.getAllModifiedEditors(e),e)}async revert(e,t){Array.isArray(e)||(e=[e]);const i=this.getUniqueEditors(e);return await q.settled(i.map(async({groupId:r,editor:s})=>(this.editorGroupsContainer.getGroup(r)?.pinEditor(s),s.revert(r,t)))),!i.some(({editor:r})=>r.isDirty())}async revertAll(e){return this.revert(this.getAllModifiedEditors(e),e)}getAllModifiedEditors(e){const t=[];for(const i of this.editorGroupsContainer.getGroups(A.MOST_RECENTLY_ACTIVE))for(const r of i.getEditors(E.MOST_RECENTLY_ACTIVE))r.isModified()&&((typeof e?.includeUntitled=="boolean"||!e?.includeUntitled?.includeScratchpad)&&r.hasCapability(g.Scratchpad)||!e?.includeUntitled&&r.hasCapability(g.Untitled)||e?.excludeSticky&&i.isSticky(r)||t.push({groupId:i.id,editor:r}));return t}getUniqueEditors(e){const t=[];for(const{editor:i,groupId:r}of e)t.some(s=>s.editor.matches(i))||t.push({editor:i,groupId:r});return t}dispose(){super.dispose(),this.activeOutOfWorkspaceWatchers.forEach(e=>_(e)),this.activeOutOfWorkspaceWatchers.clear()}};Ee=Q=U([u(1,F),u(2,Oe),u(3,De),u(4,ge),u(5,Ye),u(6,ie),u(7,Re),u(8,qe),u(9,Ie),u(10,ze)],Ee);var I;class ut extends Error{constructor(e,t){super(e),this.name="FileEditorInputLeakError",this.stack=t}}var v;let ve=(v=class extends P{constructor(e,t,i,r,s){super(),this.untitledTextEditorService=e,this.instantiationService=t,this.uriIdentityService=i,this.fileService=r,this.editorResolverService=s,this.editorInputCache=new b,this.fileEditorFactory=ee.as(te.EditorFactory).getFileEditorFactory(),this.mapLeakToCounter=new Map,this.registerDefaultEditor()}registerDefaultEditor(){this._register(this.editorResolverService.registerEditor("*",{id:j.id,label:j.displayName,detail:j.providerDisplayName,priority:je.builtin},{},{createEditorInput:e=>({editor:this.createTextEditor(e)}),createUntitledEditorInput:e=>({editor:this.createTextEditor(e)}),createDiffEditorInput:e=>({editor:this.createTextEditor(e)})}))}async resolveTextEditor(e){return this.createTextEditor(e)}createTextEditor(e){if(ye(e))return this.createTextEditor(e.result);if(Ae(e)){const r=this.createTextEditor(e.original),s=this.createTextEditor(e.modified);return this.instantiationService.createInstance(Ce,e.label,e.description,r,s,void 0)}if($e(e)){const r=this.createTextEditor(e.primary),s=this.createTextEditor(e.secondary);return this.instantiationService.createInstance(Z,e.label,e.description,s,r)}const t=e;if(t.forceUntitled||!t.resource||t.resource.scheme===de.untitled){const r={languageId:t.languageId,initialValue:t.contents,encoding:t.encoding};let s;return t.resource?.scheme===de.untitled?s=this.untitledTextEditorService.create({untitledResource:t.resource,...r}):s=this.untitledTextEditorService.create({associatedResource:t.resource,...r}),this.createOrGetCached(s.resource,()=>this.instantiationService.createInstance(ce,s))}const i=e;if(i.resource instanceof l){const r=i.label||Qe(i.resource),s=i.resource,n=this.uriIdentityService.asCanonicalUri(s);return this.createOrGetCached(n,()=>i.forceFile||this.fileService.hasProvider(n)?this.fileEditorFactory.createFileEditor(n,s,i.label,i.description,i.encoding,i.languageId,i.contents,this.instantiationService):this.instantiationService.createInstance(ue,n,i.label,i.description,i.languageId,i.contents),o=>{o instanceof ce||(o instanceof ue?(r&&o.setName(r),i.description&&o.setDescription(i.description),i.languageId&&o.setPreferredLanguageId(i.languageId),typeof i.contents=="string"&&o.setPreferredContents(i.contents)):(o.setPreferredResource(s),i.label&&o.setPreferredName(i.label),i.description&&o.setPreferredDescription(i.description),i.encoding&&o.setPreferredEncoding(i.encoding),i.languageId&&o.setPreferredLanguageId(i.languageId),typeof i.contents=="string"&&o.setPreferredContents(i.contents)))})}throw new Error(`ITextEditorService: Unable to create texteditor from ${JSON.stringify(e)}`)}createOrGetCached(e,t,i){let r=this.editorInputCache.get(e);if(r)return i?.(r),r;r=t(),this.editorInputCache.set(e,r);const s=this.trackLeaks(r);return X.once(r.onWillDispose)(()=>{this.editorInputCache.delete(e),s&&this.untrackLeaks(s)}),r}trackLeaks(e){if(I.LEAK_REPORTED||this.editorInputCache.size<I.LEAK_TRACKING_THRESHOLD)return;const t=`${e.resource.scheme}#${e.typeId||"<no typeId>"}#${e.editorId||"<no editorId>"}
2
2
  ${new Error().stack?.split(`
3
3
  `).slice(2).join(`
4
4
  `)??""}`,i=(this.mapLeakToCounter.get(t)??0)+1;if(this.mapLeakToCounter.set(t,i),this.editorInputCache.size>I.LEAK_REPORTING_THRESHOLD){I.LEAK_REPORTED=!0;const[r,s]=Array.from(this.mapLeakToCounter.entries()).reduce(([o,a],[d,c])=>c>a?[d,c]:[o,a]),n=`Potential text editor input LEAK detected, having ${this.editorInputCache.size} text editor inputs already. Most frequent owner (${s})`;Je(new ut(n,r))}return t}untrackLeaks(e){const t=(this.mapLeakToCounter.get(e)??1)-1;this.mapLeakToCounter.set(e,t),t===0&&this.mapLeakToCounter.delete(e)}},I=v,v.LEAK_TRACKING_THRESHOLD=256,v.LEAK_REPORTING_THRESHOLD=2*v.LEAK_TRACKING_THRESHOLD,v.LEAK_REPORTED=!1,v);ve=I=U([u(0,Xe),u(1,Oe),u(2,ie),u(3,De),u(4,Re)],ve);var m;let L=(m=class extends P{constructor(e,t,i,r,s,n,o,a){super(),this.filesConfigurationService=e,this.hostService=t,this.editorService=i,this.editorGroupService=r,this.workingCopyService=s,this.logService=n,this.markerService=o,this.uriIdentityService=a,this.scheduledAutoSavesAfterDelay=new Map,this.lastActiveEditor=void 0,this.lastActiveGroupId=void 0,this.lastActiveEditorControlDisposable=this._register(new J),this.waitingOnConditionAutoSaveWorkingCopies=new b(d=>this.uriIdentityService.extUri.getComparisonKey(d)),this.waitingOnConditionAutoSaveEditors=new b(d=>this.uriIdentityService.extUri.getComparisonKey(d));for(const d of this.workingCopyService.dirtyWorkingCopies)this.onDidRegister(d);this.registerListeners()}registerListeners(){this._register(this.hostService.onDidChangeFocus(e=>this.onWindowFocusChange(e))),this._register(this.hostService.onDidChangeActiveWindow(()=>this.onActiveWindowChange())),this._register(this.editorService.onDidActiveEditorChange(()=>this.onDidActiveEditorChange())),this._register(this.filesConfigurationService.onDidChangeAutoSaveConfiguration(()=>this.onDidChangeAutoSaveConfiguration())),this._register(this.workingCopyService.onDidRegister(e=>this.onDidRegister(e))),this._register(this.workingCopyService.onDidUnregister(e=>this.onDidUnregister(e))),this._register(this.workingCopyService.onDidChangeDirty(e=>this.onDidChangeDirty(e))),this._register(this.workingCopyService.onDidChangeContent(e=>this.onDidChangeContent(e))),this._register(this.markerService.onMarkerChanged(e=>this.onConditionChanged(e,C.ERRORS))),this._register(this.filesConfigurationService.onDidChangeAutoSaveDisabled(e=>this.onConditionChanged([e],C.DISABLED)))}onConditionChanged(e,t){for(const i of e){const r=this.waitingOnConditionAutoSaveWorkingCopies.get(i);if(r?.condition===t)r.workingCopy.isDirty()&&this.filesConfigurationService.getAutoSaveMode(r.workingCopy.resource,r.reason).mode!==f.OFF&&(this.discardAutoSave(r.workingCopy),this.logService.trace("[editor auto save] running auto save from condition change event",r.workingCopy.resource.toString(),r.workingCopy.typeId),r.workingCopy.save({reason:r.reason}));else{const s=this.waitingOnConditionAutoSaveEditors.get(i);s?.condition===t&&!s.editor.editor.isDisposed()&&s.editor.editor.isDirty()&&this.filesConfigurationService.getAutoSaveMode(s.editor.editor,s.reason).mode!==f.OFF&&(this.waitingOnConditionAutoSaveEditors.delete(i),this.logService.trace(`[editor auto save] running auto save from condition change event with reason ${s.reason}`),this.editorService.save(s.editor,{reason:s.reason}))}}}onWindowFocusChange(e){e||this.maybeTriggerAutoSave(p.WINDOW_CHANGE)}onActiveWindowChange(){this.maybeTriggerAutoSave(p.WINDOW_CHANGE)}onDidActiveEditorChange(){this.lastActiveEditor&&typeof this.lastActiveGroupId=="number"&&this.maybeTriggerAutoSave(p.FOCUS_CHANGE,{groupId:this.lastActiveGroupId,editor:this.lastActiveEditor});const e=this.editorGroupService.activeGroup,t=this.lastActiveEditor=e.activeEditor??void 0;this.lastActiveGroupId=e.id,this.lastActiveEditorControlDisposable.clear();const i=this.editorService.activeEditorPane;t&&i&&this.lastActiveEditorControlDisposable.add(i.onDidBlur(()=>{this.maybeTriggerAutoSave(p.FOCUS_CHANGE,{groupId:e.id,editor:t})}))}maybeTriggerAutoSave(e,t){if(t){if(!t.editor.isDirty()||t.editor.isReadonly()||t.editor.hasCapability(g.Untitled))return;const i=this.filesConfigurationService.getAutoSaveMode(t.editor,e);i.mode!==f.OFF?(e===p.WINDOW_CHANGE&&(i.mode===f.ON_FOCUS_CHANGE||i.mode===f.ON_WINDOW_CHANGE)||e===p.FOCUS_CHANGE&&i.mode===f.ON_FOCUS_CHANGE)&&(this.logService.trace(`[editor auto save] triggering auto save with reason ${e}`),this.editorService.save(t,{reason:e})):t.editor.resource&&(i.reason===C.ERRORS||i.reason===C.DISABLED)&&this.waitingOnConditionAutoSaveEditors.set(t.editor.resource,{editor:t,reason:e,condition:i.reason})}else this.saveAllDirtyAutoSaveables(e)}onDidChangeAutoSaveConfiguration(){let e;switch(this.filesConfigurationService.getAutoSaveMode(void 0).mode){case f.ON_FOCUS_CHANGE:e=p.FOCUS_CHANGE;break;case f.ON_WINDOW_CHANGE:e=p.WINDOW_CHANGE;break;case f.AFTER_SHORT_DELAY:case f.AFTER_LONG_DELAY:e=p.AUTO;break}e&&this.saveAllDirtyAutoSaveables(e)}saveAllDirtyAutoSaveables(e){for(const t of this.workingCopyService.dirtyWorkingCopies){if(t.capabilities&he.Untitled)continue;const i=this.filesConfigurationService.getAutoSaveMode(t.resource,e);i.mode!==f.OFF?t.save({reason:e}):(i.reason===C.ERRORS||i.reason===C.DISABLED)&&this.waitingOnConditionAutoSaveWorkingCopies.set(t.resource,{workingCopy:t,reason:e,condition:i.reason})}}onDidRegister(e){e.isDirty()&&this.scheduleAutoSave(e)}onDidUnregister(e){this.discardAutoSave(e)}onDidChangeDirty(e){e.isDirty()?this.scheduleAutoSave(e):this.discardAutoSave(e)}onDidChangeContent(e){e.isDirty()&&this.scheduleAutoSave(e)}scheduleAutoSave(e){if(e.capabilities&he.Untitled)return;const t=this.filesConfigurationService.getAutoSaveConfiguration(e.resource).autoSaveDelay;if(typeof t!="number")return;this.discardAutoSave(e),this.logService.trace(`[editor auto save] scheduling auto save after ${t}ms`,e.resource.toString(),e.typeId);const i=setTimeout(()=>{if(this.discardAutoSave(e),e.isDirty()){const r=p.AUTO,s=this.filesConfigurationService.getAutoSaveMode(e.resource,r);s.mode!==f.OFF?(this.logService.trace("[editor auto save] running auto save",e.resource.toString(),e.typeId),e.save({reason:r})):(s.reason===C.ERRORS||s.reason===C.DISABLED)&&this.waitingOnConditionAutoSaveWorkingCopies.set(e.resource,{workingCopy:e,reason:r,condition:s.reason})}},t);this.scheduledAutoSavesAfterDelay.set(e,Ze(()=>{this.logService.trace("[editor auto save] clearing pending auto save",e.resource.toString(),e.typeId),clearTimeout(i)}))}discardAutoSave(e){_(this.scheduledAutoSavesAfterDelay.get(e)),this.scheduledAutoSavesAfterDelay.delete(e),this.waitingOnConditionAutoSaveWorkingCopies.delete(e.resource),this.waitingOnConditionAutoSaveEditors.delete(e.resource)}},m.ID="workbench.contrib.editorAutoSave",m);L=U([u(0,et),u(1,Ie),u(2,tt),u(3,F),u(4,it),u(5,rt),u(6,st),u(7,ie)],L);ot(L.ID,L,nt.BlockRestore);ee.as(te.EditorFactory).registerFileEditorFactory({typeId:at,createFileEditor:(h,e,t,i,r,s,n,o)=>o.createInstance(le,h,e,t,i,r,s,n),isFileEditor:h=>h instanceof le});export{Ee as E,ve as T,fe as f};