mirror of
https://github.com/ckaczor/vscode-gitlens.git
synced 2026-02-16 10:58:34 -05:00
Consolidates setContext into commands
Adds context for toggling CodeLens
This commit is contained in:
@@ -491,7 +491,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "gitlens.toggleCodeLens",
|
"command": "gitlens.toggleCodeLens",
|
||||||
"when": "gitlens:enabled"
|
"when": "gitlens:enabled && gitlens:canToggleCodeLens"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "gitlens.showBlameHistory",
|
"command": "gitlens.showBlameHistory",
|
||||||
@@ -669,7 +669,7 @@
|
|||||||
"command": "gitlens.toggleCodeLens",
|
"command": "gitlens.toggleCodeLens",
|
||||||
"key": "alt+shift+b",
|
"key": "alt+shift+b",
|
||||||
"mac": "alt+shift+b",
|
"mac": "alt+shift+b",
|
||||||
"when": "editorTextFocus && gitlens:enabled"
|
"when": "editorTextFocus && gitlens:enabled && gitlens:canToggleCodeLens"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"command": "gitlens.showQuickFileHistory",
|
"command": "gitlens.showQuickFileHistory",
|
||||||
@@ -746,11 +746,11 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/copy-paste": "^1.1.30",
|
"@types/copy-paste": "^1.1.30",
|
||||||
"@types/mocha": "^2.2.39",
|
"@types/mocha": "^2.2.39",
|
||||||
"@types/node": "^7.0.7",
|
"@types/node": "^7.0.8",
|
||||||
"@types/tmp": "^0.0.32",
|
"@types/tmp": "^0.0.32",
|
||||||
"mocha": "^3.2.0",
|
"mocha": "^3.2.0",
|
||||||
"tslint": "^4.5.1",
|
"tslint": "^4.5.1",
|
||||||
"typescript": "^2.2.1",
|
"typescript": "^2.2.1",
|
||||||
"vscode": "^1.0.5"
|
"vscode": "^1.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
import { commands, Disposable, Event, EventEmitter, TextDocument, TextDocumentChangeEvent, TextEditor, window, workspace } from 'vscode';
|
import { Disposable, Event, EventEmitter, TextDocument, TextDocumentChangeEvent, TextEditor, window, workspace } from 'vscode';
|
||||||
|
import { CommandContext, setCommandContext } from './commands';
|
||||||
import { TextDocumentComparer } from './comparers';
|
import { TextDocumentComparer } from './comparers';
|
||||||
import { BuiltInCommands } from './constants';
|
|
||||||
import { GitProvider } from './gitProvider';
|
import { GitProvider } from './gitProvider';
|
||||||
|
|
||||||
export interface BlameabilityChangeEvent {
|
export interface BlameabilityChangeEvent {
|
||||||
@@ -91,7 +91,7 @@ export class BlameabilityTracker extends Disposable {
|
|||||||
private updateBlameability(blameable: boolean, force: boolean = false) {
|
private updateBlameability(blameable: boolean, force: boolean = false) {
|
||||||
if (!force && this._isBlameable === blameable) return;
|
if (!force && this._isBlameable === blameable) return;
|
||||||
|
|
||||||
commands.executeCommand(BuiltInCommands.SetContext, 'gitlens:isBlameable', blameable);
|
setCommandContext(CommandContext.IsBlameable, blameable);
|
||||||
this._onDidChange.fire({
|
this._onDidChange.fire({
|
||||||
blameable: blameable,
|
blameable: blameable,
|
||||||
editor: this._editor
|
editor: this._editor
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
import { commands } from 'vscode';
|
||||||
|
import { BuiltInCommands } from './constants';
|
||||||
|
|
||||||
export { Keyboard } from './commands/keyboard';
|
export { Keyboard } from './commands/keyboard';
|
||||||
|
|
||||||
export { ActiveEditorCommand, Command, Commands, EditorCommand, openEditor } from './commands/commands';
|
export { ActiveEditorCommand, Command, Commands, EditorCommand, openEditor } from './commands/commands';
|
||||||
@@ -20,4 +23,17 @@ export { ShowQuickFileHistoryCommand } from './commands/showQuickFileHistory';
|
|||||||
export { ShowQuickRepoHistoryCommand } from './commands/showQuickRepoHistory';
|
export { ShowQuickRepoHistoryCommand } from './commands/showQuickRepoHistory';
|
||||||
export { ShowQuickRepoStatusCommand } from './commands/showQuickRepoStatus';
|
export { ShowQuickRepoStatusCommand } from './commands/showQuickRepoStatus';
|
||||||
export { ToggleBlameCommand } from './commands/toggleBlame';
|
export { ToggleBlameCommand } from './commands/toggleBlame';
|
||||||
export { ToggleCodeLensCommand } from './commands/toggleCodeLens';
|
export { ToggleCodeLensCommand } from './commands/toggleCodeLens';
|
||||||
|
|
||||||
|
export type CommandContext = 'gitlens:canToggleCodeLens' | 'gitlens:enabled' | 'gitlens:isBlameable' | 'gitlens:key';
|
||||||
|
export const CommandContext = {
|
||||||
|
CanToggleCodeLens: 'gitlens:canToggleCodeLens' as CommandContext,
|
||||||
|
Enabled: 'gitlens:enabled' as CommandContext,
|
||||||
|
IsBlameable: 'gitlens:isBlameable' as CommandContext,
|
||||||
|
Key: 'gitlens:key' as CommandContext
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export function setCommandContext(key: CommandContext, value: any) {
|
||||||
|
return commands.executeCommand(BuiltInCommands.SetContext, key, value);
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
import { commands, Disposable, ExtensionContext, QuickPickItem } from 'vscode';
|
import { commands, Disposable, ExtensionContext, QuickPickItem } from 'vscode';
|
||||||
import { BuiltInCommands } from '../constants';
|
import { CommandContext, setCommandContext } from '../commands';
|
||||||
import { CommandQuickPickItem, OpenFileCommandQuickPickItem } from '../quickPicks/quickPicks';
|
import { CommandQuickPickItem, OpenFileCommandQuickPickItem } from '../quickPicks/quickPicks';
|
||||||
//import { Logger } from '../logger';
|
//import { Logger } from '../logger';
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ export class Keyboard extends Disposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async enterScope(...keyCommands: [Keys, QuickPickItem][]) {
|
async enterScope(...keyCommands: [Keys, QuickPickItem][]) {
|
||||||
await commands.executeCommand(BuiltInCommands.SetContext, 'gitlens:key', ++scopeCount);
|
await setCommandContext(CommandContext.Key, ++scopeCount);
|
||||||
if (keyCommands && Array.isArray(keyCommands) && keyCommands.length) {
|
if (keyCommands && Array.isArray(keyCommands) && keyCommands.length) {
|
||||||
for (const [key, command] of keyCommands) {
|
for (const [key, command] of keyCommands) {
|
||||||
await this.setKeyCommand(key as Keys, command);
|
await this.setKeyCommand(key as Keys, command);
|
||||||
@@ -62,7 +62,7 @@ export class Keyboard extends Disposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async exitScope(clear: boolean = true) {
|
async exitScope(clear: boolean = true) {
|
||||||
await commands.executeCommand(BuiltInCommands.SetContext, 'gitlens:key', --scopeCount);
|
await setCommandContext(CommandContext.Key, --scopeCount);
|
||||||
if (clear && !scopeCount) {
|
if (clear && !scopeCount) {
|
||||||
for (const key of keys) {
|
for (const key of keys) {
|
||||||
await this.clearKeyCommand(key);
|
await this.clearKeyCommand(key);
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
import { commands, ExtensionContext, languages, window, workspace } from 'vscode';
|
import { ExtensionContext, languages, window, workspace } from 'vscode';
|
||||||
import { BlameabilityTracker } from './blameabilityTracker';
|
import { BlameabilityTracker } from './blameabilityTracker';
|
||||||
import { BlameActiveLineController } from './blameActiveLineController';
|
import { BlameActiveLineController } from './blameActiveLineController';
|
||||||
import { BlameAnnotationController } from './blameAnnotationController';
|
import { BlameAnnotationController } from './blameAnnotationController';
|
||||||
import { configureCssCharacters } from './blameAnnotationFormatter';
|
import { configureCssCharacters } from './blameAnnotationFormatter';
|
||||||
|
import { CommandContext, setCommandContext } from './commands';
|
||||||
import { CloseUnchangedFilesCommand, OpenChangedFilesCommand } from './commands';
|
import { CloseUnchangedFilesCommand, OpenChangedFilesCommand } from './commands';
|
||||||
import { CopyMessageToClipboardCommand, CopyShaToClipboardCommand } from './commands';
|
import { CopyMessageToClipboardCommand, CopyShaToClipboardCommand } from './commands';
|
||||||
import { DiffDirectoryCommand, DiffLineWithPreviousCommand, DiffLineWithWorkingCommand, DiffWithPreviousCommand, DiffWithWorkingCommand} from './commands';
|
import { DiffDirectoryCommand, DiffLineWithPreviousCommand, DiffLineWithWorkingCommand, DiffWithPreviousCommand, DiffWithWorkingCommand} from './commands';
|
||||||
@@ -13,7 +14,7 @@ import { ShowQuickCommitDetailsCommand, ShowQuickCommitFileDetailsCommand, ShowQ
|
|||||||
import { ToggleCodeLensCommand } from './commands';
|
import { ToggleCodeLensCommand } from './commands';
|
||||||
import { Keyboard } from './commands';
|
import { Keyboard } from './commands';
|
||||||
import { IAdvancedConfig, IBlameConfig } from './configuration';
|
import { IAdvancedConfig, IBlameConfig } from './configuration';
|
||||||
import { BuiltInCommands, WorkspaceState } from './constants';
|
import { WorkspaceState } from './constants';
|
||||||
import { GitContentProvider } from './gitContentProvider';
|
import { GitContentProvider } from './gitContentProvider';
|
||||||
import { Git, GitProvider } from './gitProvider';
|
import { Git, GitProvider } from './gitProvider';
|
||||||
import { GitRevisionCodeLensProvider } from './gitRevisionCodeLensProvider';
|
import { GitRevisionCodeLensProvider } from './gitRevisionCodeLensProvider';
|
||||||
@@ -47,7 +48,7 @@ export async function activate(context: ExtensionContext) {
|
|||||||
if (ex.message.includes('Unable to find git')) {
|
if (ex.message.includes('Unable to find git')) {
|
||||||
await window.showErrorMessage(`GitLens was unable to find Git. Please make sure Git is installed. Also ensure that Git is either in the PATH, or that 'gitlens.advanced.git' is pointed to its installed location.`);
|
await window.showErrorMessage(`GitLens was unable to find Git. Please make sure Git is installed. Also ensure that Git is either in the PATH, or that 'gitlens.advanced.git' is pointed to its installed location.`);
|
||||||
}
|
}
|
||||||
commands.executeCommand(BuiltInCommands.SetContext, 'gitlens:enabled', false);
|
setCommandContext(CommandContext.Enabled, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,11 +60,11 @@ export async function activate(context: ExtensionContext) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let gitEnabled = workspace.getConfiguration('git').get<boolean>('enabled');
|
let gitEnabled = workspace.getConfiguration('git').get<boolean>('enabled');
|
||||||
commands.executeCommand(BuiltInCommands.SetContext, 'gitlens:enabled', gitEnabled);
|
setCommandContext(CommandContext.Enabled, gitEnabled);
|
||||||
context.subscriptions.push(workspace.onDidChangeConfiguration(() => {
|
context.subscriptions.push(workspace.onDidChangeConfiguration(() => {
|
||||||
if (gitEnabled !== workspace.getConfiguration('git').get<boolean>('enabled')) {
|
if (gitEnabled !== workspace.getConfiguration('git').get<boolean>('enabled')) {
|
||||||
gitEnabled = !gitEnabled;
|
gitEnabled = !gitEnabled;
|
||||||
commands.executeCommand(BuiltInCommands.SetContext, 'gitlens:enabled', gitEnabled);
|
setCommandContext(CommandContext.Enabled, gitEnabled);
|
||||||
}
|
}
|
||||||
}, this));
|
}, this));
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
import { Iterables, Objects } from './system';
|
import { Iterables, Objects } from './system';
|
||||||
import { Disposable, Event, EventEmitter, ExtensionContext, FileSystemWatcher, languages, Location, Position, Range, TextDocument, TextEditor, Uri, workspace } from 'vscode';
|
import { Disposable, Event, EventEmitter, ExtensionContext, FileSystemWatcher, languages, Location, Position, Range, TextDocument, TextEditor, Uri, workspace } from 'vscode';
|
||||||
|
import { CommandContext, setCommandContext } from './commands';
|
||||||
import { CodeLensVisibility, IConfig } from './configuration';
|
import { CodeLensVisibility, IConfig } from './configuration';
|
||||||
import { DocumentSchemes, WorkspaceState } from './constants';
|
import { DocumentSchemes, WorkspaceState } from './constants';
|
||||||
import Git, { GitBlameParserEnricher, GitBlameFormat, GitCommit, GitFileStatusItem, GitLogParserEnricher, IGitAuthor, IGitBlame, IGitBlameLine, IGitBlameLines, IGitLog } from './git/git';
|
import Git, { GitBlameParserEnricher, GitBlameFormat, GitCommit, GitFileStatusItem, GitLogParserEnricher, IGitAuthor, IGitBlame, IGitBlameLine, IGitBlameLines, IGitLog } from './git/git';
|
||||||
@@ -143,6 +144,8 @@ export class GitProvider extends Disposable {
|
|||||||
this._codeLensProviderDisposable = undefined;
|
this._codeLensProviderDisposable = undefined;
|
||||||
this._codeLensProvider = undefined;
|
this._codeLensProvider = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setCommandContext(CommandContext.CanToggleCodeLens, config.codeLens.visibility === CodeLensVisibility.OnDemand && (config.codeLens.recentChange.enabled || config.codeLens.authors.enabled));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (advancedChanged) {
|
if (advancedChanged) {
|
||||||
|
|||||||
Reference in New Issue
Block a user