Update resource groups to use custom interface

[?]
Dec 28, 2020, 5:11 AM
BIEL6Z5JDBIC7ODKOW2FW65S2EW5U4ARAPWSD6FQLM2GKTEB6IBQC

Dependencies

  • [2] WHQQV5QQ Add watcher to refresh on file system changes
  • [3] H6KYVQ2Q Add a class to represent resources
  • [4] YPHDYP3L Fix infinite loop on state refresh
  • [5] MU6ZNUYZ Integrate recordAll command with input box
  • [6] LUFSQKUV Enable support for experimental decorators
  • [7] ZGMIJNFV Create pijul.ts for executing commands using the Pijul CLI
  • [8] B4SKYP3Y Add repository model and add steps to initialize it
  • [9] H3GAPFUC Add pijul.recordAll command
  • [10] YUVLBWV3 Populate resource groups for unrecorded and untracked changes

Change contents

  • replacement in src/repository.ts at line 1
    [4.16][2.0:148]()
    import { Disposable, Event, OutputChannel, RelativePattern, scm, SourceControl, SourceControlResourceGroup, Uri, window, workspace } from 'vscode';
    [4.16]
    [4.122]
    import { Disposable, Event, EventEmitter, OutputChannel, RelativePattern, scm, SourceControl, Uri, window, workspace } from 'vscode';
  • edit in src/repository.ts at line 3
    [4.178]
    [4.178]
    import { PijulResourceGroup } from './resource';
  • replacement in src/repository.ts at line 11
    [4.348][4.35:96](),[4.96][4.419:482](),[4.419][4.419:482]()
    private readonly changedGroup: SourceControlResourceGroup;
    private readonly untrackedGroup: SourceControlResourceGroup;
    [4.348]
    [2.197]
    public readonly changedGroup: PijulResourceGroup;
    public readonly untrackedGroup: PijulResourceGroup;
    private readonly onDidRefreshStatusEmitter = new EventEmitter<void>();
    readonly onDidRefreshStatus: Event<void> = this.onDidRefreshStatusEmitter.event;
  • replacement in src/repository.ts at line 47
    [4.30][4.97:194](),[4.1104][4.97:194](),[4.194][4.1221:1321](),[4.1221][4.1221:1321]()
    this.changedGroup = this.sourceControl.createResourceGroup('changed', 'Unrecorded Changes');
    this.untrackedGroup = this.sourceControl.createResourceGroup('untracked', 'Untracked Changes');
    [4.30]
    [4.195]
    this.changedGroup = this.sourceControl.createResourceGroup('changed', 'Unrecorded Changes') as PijulResourceGroup;
    this.untrackedGroup = this.sourceControl.createResourceGroup('untracked', 'Untracked Changes') as PijulResourceGroup;
  • replacement in src/repository.ts at line 104
    [4.349][3.5604:5751]()
    this.untrackedGroup.resourceStates = (await this.repository.getUntrackedFiles()).map(u => ({ resourceUri: u, decorations: { faded: true } }));
    [4.349]
    [3.5751]
    this.untrackedGroup.resourceStates = await this.repository.getUntrackedFiles();
  • edit in src/repository.ts at line 107
    [4.650]
    [4.31]
    this.onDidRefreshStatusEmitter.fire();
  • replacement in src/resource.ts at line 1
    [3.14][3.15:135]()
    import { FileDecoration, SourceControlResourceDecorations, SourceControlResourceState, ThemeColor, Uri } from 'vscode';
    [3.14]
    [3.135]
    import { FileDecoration, SourceControlResourceDecorations, SourceControlResourceGroup, SourceControlResourceState, ThemeColor, Uri } from 'vscode';
  • edit in src/resource.ts at line 164
    [3.5601]
    [3.5601]
    }
    /**
    * Interface which represents a groups of resources that is tracked by
    * the Pijul source control manager.
    */
    export interface PijulResourceGroup extends SourceControlResourceGroup {
    resourceStates: Resource[]
  • replacement in src/pijul.ts at line 196
    [4.2379][4.2379:2426]()
    async getUntrackedFiles (): Promise<Uri[]> {
    [4.2379]
    [4.2426]
    async getUntrackedFiles (): Promise<Resource[]> {
  • replacement in src/pijul.ts at line 201
    [4.2572][4.2572:2649]()
    return allFiles.filter(f => !trackedFiles.some(t => t.path === f.path));
    [4.2572]
    [4.2649]
    return allFiles.filter(f => !trackedFiles.some(t => t.path === f.path)).map(f => new Resource(f, ResourceStatus.Untracked));