提交 1b293495 编写于 作者: R rzj17

Refactor SortOrder & SortOrderConfiguration into one enum

上级 043da28d
......@@ -14,7 +14,7 @@ import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/wor
import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions, IWorkbenchContribution } from 'vs/workbench/common/contributions';
import { IEditorInputFactory, EditorInput, IFileEditorInput, IEditorInputFactoryRegistry, Extensions as EditorInputExtensions } from 'vs/workbench/common/editor';
import { AutoSaveConfiguration, HotExitConfiguration } from 'vs/platform/files/common/files';
import { VIEWLET_ID, SortOrderConfiguration, FILE_EDITOR_INPUT_ID, IExplorerService } from 'vs/workbench/contrib/files/common/files';
import { VIEWLET_ID, SortOrder, FILE_EDITOR_INPUT_ID, IExplorerService } from 'vs/workbench/contrib/files/common/files';
import { FileEditorTracker } from 'vs/workbench/contrib/files/browser/editors/fileEditorTracker';
import { TextFileSaveErrorHandler } from 'vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler';
import { FileEditorInput } from 'vs/workbench/contrib/files/common/editors/fileEditorInput';
......@@ -396,8 +396,8 @@ configurationRegistry.registerConfiguration({
},
'explorer.sortOrder': {
'type': 'string',
'enum': [SortOrderConfiguration.DEFAULT, SortOrderConfiguration.MIXED, SortOrderConfiguration.FILES_FIRST, SortOrderConfiguration.TYPE, SortOrderConfiguration.MODIFIED],
'default': SortOrderConfiguration.DEFAULT,
'enum': [SortOrder.Default, SortOrder.Mixed, SortOrder.FilesFirst, SortOrder.Type, SortOrder.Modified],
'default': SortOrder.Default,
'enumDescriptions': [
nls.localize('sortOrder.default', 'Files and folders are sorted by their names, in alphabetical order. Folders are displayed before files.'),
nls.localize('sortOrder.mixed', 'Files and folders are sorted by their names, in alphabetical order. Files are interwoven with folders.'),
......
......@@ -14,7 +14,7 @@ import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { memoize } from 'vs/base/common/decorators';
import { Emitter, Event } from 'vs/base/common/event';
import { IExplorerService } from 'vs/workbench/contrib/files/common/files';
import { IExplorerService, SortOrder } from 'vs/workbench/contrib/files/common/files';
import { joinPath, isEqualOrParent, basenameOrAuthority } from 'vs/base/common/resources';
export class ExplorerModel implements IDisposable {
......@@ -263,7 +263,7 @@ export class ExplorerItem {
if (!this._isDirectoryResolved) {
// Resolve metadata only when the mtime is needed since this can be expensive
// Mtime is only used when the sort order is 'modified'
const resolveMetadata = explorerService.sortOrder === 'modified';
const resolveMetadata = explorerService.sortOrder === SortOrder.Modified;
try {
const stat = await fileService.resolve(this.resource, { resolveSingleChildDescendants: true, resolveMetadata });
const resolved = ExplorerItem.create(explorerService, fileService, stat, this);
......
......@@ -6,7 +6,7 @@
import { Event, Emitter } from 'vs/base/common/event';
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
import { DisposableStore } from 'vs/base/common/lifecycle';
import { IExplorerService, IFilesConfiguration, SortOrder, SortOrderConfiguration, IContextProvider } from 'vs/workbench/contrib/files/common/files';
import { IExplorerService, IFilesConfiguration, SortOrder, IContextProvider } from 'vs/workbench/contrib/files/common/files';
import { ExplorerItem, ExplorerModel } from 'vs/workbench/contrib/files/common/explorerModel';
import { URI } from 'vs/base/common/uri';
import { FileOperationEvent, FileOperation, IFileStat, IFileService, FileChangesEvent, FILES_EXCLUDE_CONFIG, FileChangeType, IResolveFileOptions, FileSystemProviderCapabilities } from 'vs/platform/files/common/files';
......@@ -187,7 +187,7 @@ export class ExplorerService implements IExplorerService {
}
// Stat needs to be resolved first and then revealed
const options: IResolveFileOptions = { resolveTo: [resource], resolveMetadata: this.sortOrder === 'modified' };
const options: IResolveFileOptions = { resolveTo: [resource], resolveMetadata: this.sortOrder === SortOrder.Modified };
const workspaceFolder = this.contextService.getWorkspaceFolder(resource);
if (workspaceFolder === null) {
return Promise.resolve(undefined);
......@@ -361,7 +361,7 @@ export class ExplorerService implements IExplorerService {
}
// Handle updated files/folders if we sort by modified
if (this._sortOrder === SortOrderConfiguration.MODIFIED) {
if (this._sortOrder === SortOrder.Modified) {
const updated = e.getUpdated();
// Check updated: Refresh if updated file/folder part of resolved root
......@@ -387,7 +387,7 @@ export class ExplorerService implements IExplorerService {
private filterToViewRelevantEvents(e: FileChangesEvent): FileChangesEvent {
return new FileChangesEvent(e.changes.filter(change => {
if (change.type === FileChangeType.UPDATED && this._sortOrder !== SortOrderConfiguration.MODIFIED) {
if (change.type === FileChangeType.UPDATED && this._sortOrder !== SortOrder.Modified) {
return false; // we only are about updated if we sort by modified time
}
......
......@@ -133,15 +133,13 @@ export interface IFileResource {
isDirectory?: boolean;
}
export const SortOrderConfiguration = {
DEFAULT: 'default',
MIXED: 'mixed',
FILES_FIRST: 'filesFirst',
TYPE: 'type',
MODIFIED: 'modified'
};
export type SortOrder = 'default' | 'mixed' | 'filesFirst' | 'type' | 'modified';
export const enum SortOrder {
Default = 'default',
Mixed = 'mixed',
FilesFirst = 'filesFirst',
Type = 'type',
Modified = 'modified'
}
export class TextFileContentProvider extends Disposable implements ITextModelContentProvider {
private readonly fileWatcherDisposable = this._register(new MutableDisposable());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册