src/vs/workbench/browser/parts/editor/tabsTitleControl.ts/TabsTitleControl/moveEditor
class TabsTitleControl:	moveEditor(editor: IEditorInput, fromIndex: number, targetIndex: number): void {

		// Swap the editor label
		const editorLabel = this.tabLabels[fromIndex];
		this.tabLabels.splice(fromIndex, 1);
		this.tabLabels.splice(targetIndex, 0, editorLabel);

		// As such we need to redraw each tab
		this.forEachTab((editor, index, tabContainer, tabLabelWidget, tabLabel, tabActionBar) => {
			this.redrawTab(editor, index, tabContainer, tabLabelWidget, tabLabel, tabActionBar);
		});

		// Moving an editor requires a layout to keep the active editor visible
		this.layout(this.dimensions);
	}