@codingame/monaco-vscode-extensions-service-override
Version:
VSCode public API plugged on the monaco editor - extensions service-override
99 lines (98 loc) • 4.38 kB
TypeScript
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
import { ILogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service";
import { MainThreadEditorTabsShape } from "@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol";
import { EditorGroupColumn } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupColumn";
import { IEditorGroupsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorGroupsService.service";
import { IEditorService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/editor/common/editorService.service";
import { IExtHostContext } from "../../services/extensions/common/extHostCustomers.js";
export declare class MainThreadEditorTabs implements MainThreadEditorTabsShape {
private readonly _editorGroupsService;
private readonly _configurationService;
private readonly _logService;
private readonly _dispoables;
private readonly _proxy;
private _tabGroupModel;
private readonly _groupLookup;
private readonly _tabInfoLookup;
private readonly _multiDiffEditorInputListeners;
constructor(extHostContext: IExtHostContext, _editorGroupsService: IEditorGroupsService, _configurationService: IConfigurationService, _logService: ILogService, editorService: IEditorService);
dispose(): void;
/**
* Creates a tab object with the correct properties
* @param editor The editor input represented by the tab
* @param group The group the tab is in
* @returns A tab object
*/
private _buildTabObject;
private _editorInputToDto;
/**
* Generates a unique id for a tab
* @param editor The editor input
* @param groupId The group id
* @returns A unique identifier for a specific tab
*/
private _generateTabId;
/**
* Called whenever a group activates, updates the model by marking the group as active an notifies the extension host
*/
private _onDidGroupActivate;
/**
* Called when the tab label changes
* @param groupId The id of the group the tab exists in
* @param editorInput The editor input represented by the tab
*/
private _onDidTabLabelChange;
/**
* Called when a new tab is opened
* @param groupId The id of the group the tab is being created in
* @param editorInput The editor input being opened
* @param editorIndex The index of the editor within that group
*/
private _onDidTabOpen;
/**
* Called when a tab is closed
* @param groupId The id of the group the tab is being removed from
* @param editorIndex The index of the editor within that group
*/
private _onDidTabClose;
/**
* Called when the active tab changes
* @param groupId The id of the group the tab is contained in
* @param editorIndex The index of the tab
*/
private _onDidTabActiveChange;
/**
* Called when the dirty indicator on the tab changes
* @param groupId The id of the group the tab is in
* @param editorIndex The index of the tab
* @param editor The editor input represented by the tab
*/
private _onDidTabDirty;
/**
* Called when the tab is pinned/unpinned
* @param groupId The id of the group the tab is in
* @param editorIndex The index of the tab
* @param editor The editor input represented by the tab
*/
private _onDidTabPinChange;
/**
* Called when the tab is preview / unpreviewed
* @param groupId The id of the group the tab is in
* @param editorIndex The index of the tab
* @param editor The editor input represented by the tab
*/
private _onDidTabPreviewChange;
private _onDidTabMove;
/**
* Builds the model from scratch based on the current state of the editor service.
*/
private _createTabsModel;
/**
* The main handler for the tab events
* @param events The list of events to process
*/
private _updateTabsModel;
$moveTab(tabId: string, index: number, viewColumn: EditorGroupColumn, preserveFocus?: boolean): void;
$closeTab(tabIds: string[], preserveFocus?: boolean): Promise<boolean>;
$closeGroup(groupIds: number[], preserveFocus?: boolean): Promise<boolean>;
}