Browse Source

Adds Refresh command to most custom view items

Updates custom view when repo changes (brute force for now)
main
Eric Amodio 7 years ago
parent
commit
04df931902
3 changed files with 29 additions and 7 deletions
  1. +5
    -0
      package.json
  2. +5
    -1
      src/gitService.ts
  3. +19
    -6
      src/views/gitExplorer.ts

+ 5
- 0
package.json View File

@ -1611,6 +1611,11 @@
"command": "gitlens.showQuickFileHistory",
"when": "gitlens:isTracked && view == gitlens.gitExplorer && viewItem == gitlens:stash-file",
"group": "5_gitlens@1"
},
{
"command": "gitlens.gitExplorer.refresh",
"when": "gitlens:enabled && view == gitlens.gitExplorer && viewItem != gitlens:commit-file && viewItem != gitlens:stash-file",
"group": "9_gitlens@1"
}
]
},

+ 5
- 1
src/gitService.ts View File

@ -64,7 +64,11 @@ export const GitRepoSearchBy = {
Sha: 'sha' as GitRepoSearchBy
};
type RepoChangedReasons = 'stash' | 'unknown';
export type RepoChangedReasons = 'stash' | 'unknown';
export const RepoChangedReasons = {
Stash: 'stash' as RepoChangedReasons,
Unknown: 'unknown' as RepoChangedReasons
};
export class GitService extends Disposable {

+ 19
- 6
src/views/gitExplorer.ts View File

@ -5,7 +5,7 @@ import { Commands, DiffWithPreviousCommandArgs, DiffWithWorkingCommandArgs, open
import { UriComparer } from '../comparers';
import { CommandContext, setCommandContext } from '../constants';
import { CommitFileNode, CommitNode, ExplorerNode, HistoryNode, MessageNode, RepositoryNode, StashNode } from './explorerNodes';
import { GitService, GitUri } from '../gitService';
import { GitService, GitUri, RepoChangedReasons } from '../gitService';
export * from './explorerNodes';
@ -45,6 +45,8 @@ export class GitExplorer implements TreeDataProvider {
commands.registerCommand('gitlens.gitExplorer.openChangedFileRevisions', this.openChangedFileRevisions, this);
commands.registerCommand('gitlens.gitExplorer.applyChanges', this.applyChanges, this);
context.subscriptions.push(this.git.onDidChangeRepo(this.onRepoChanged, this));
const fn = Functions.debounce(this.onActiveEditorChanged, 500);
context.subscriptions.push(window.onDidChangeActiveTextEditor(fn, this));
@ -90,15 +92,26 @@ export class GitExplorer implements TreeDataProvider {
private onActiveEditorChanged(editor: TextEditor | undefined) {
if (this._view !== GitExplorerView.History) return;
const root = this.getRootNode(editor);
if (root === this._root) return;
this.refresh(root);
this._root = root;
this.refresh(undefined, root);
}
private onRepoChanged(reasons: RepoChangedReasons[]) {
if (this._view !== GitExplorerView.Repository) return;
this.refresh();
}
refresh(root?: ExplorerNode) {
this._root = root || this.getRootNode();
this._onDidChangeTreeData.fire();
refresh(node?: ExplorerNode, root?: ExplorerNode) {
if (root === undefined && this._view === GitExplorerView.History) {
this._root = this.getRootNode(window.activeTextEditor);
}
this._onDidChangeTreeData.fire(node);
}
switchTo(view: GitExplorerView) {
@ -107,7 +120,7 @@ export class GitExplorer implements TreeDataProvider {
this._view = view;
setCommandContext(CommandContext.GitExplorerView, this._view);
this._root = undefined;
this._root = this.getRootNode(window.activeTextEditor);
this.refresh();
}

Loading…
Cancel
Save