mirror of
https://github.com/ckaczor/vscode-gitlens.git
synced 2026-02-16 18:48:45 -05:00
Adds advanced setting for toggling whitespace
This is in-case it is still needed (it if off by default)
This commit is contained in:
@@ -245,6 +245,11 @@
|
|||||||
"verbose"
|
"verbose"
|
||||||
],
|
],
|
||||||
"description": "Specifies how much (if any) output will be sent to the GitLens output channel"
|
"description": "Specifies how much (if any) output will be sent to the GitLens output channel"
|
||||||
|
},
|
||||||
|
"gitlens.advanced.toggleWhitespace.enabled": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false,
|
||||||
|
"description": "Specifies whether or not to toggle whitespace off then showing blame annotations (*may* be required by certain fonts/themes)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { Functions } from './system';
|
|||||||
import { Disposable, ExtensionContext, TextDocument, TextEditor, TextEditorViewColumnChangeEvent, window, workspace } from 'vscode';
|
import { Disposable, ExtensionContext, TextDocument, TextEditor, TextEditorViewColumnChangeEvent, window, workspace } from 'vscode';
|
||||||
import { BlameAnnotationProvider } from './blameAnnotationProvider';
|
import { BlameAnnotationProvider } from './blameAnnotationProvider';
|
||||||
import { TextDocumentComparer, TextEditorComparer } from './comparers';
|
import { TextDocumentComparer, TextEditorComparer } from './comparers';
|
||||||
|
// import { IAdvancedConfig } from './configuration';
|
||||||
import GitProvider from './gitProvider';
|
import GitProvider from './gitProvider';
|
||||||
import { Logger } from './logger';
|
import { Logger } from './logger';
|
||||||
import WhitespaceController from './whitespaceController';
|
import WhitespaceController from './whitespaceController';
|
||||||
@@ -11,12 +12,19 @@ export default class BlameAnnotationController extends Disposable {
|
|||||||
|
|
||||||
private _annotationProviders: Map<number, BlameAnnotationProvider> = new Map();
|
private _annotationProviders: Map<number, BlameAnnotationProvider> = new Map();
|
||||||
private _blameAnnotationsDisposable: Disposable;
|
private _blameAnnotationsDisposable: Disposable;
|
||||||
|
private _disposable: Disposable;
|
||||||
private _whitespaceController: WhitespaceController | undefined;
|
private _whitespaceController: WhitespaceController | undefined;
|
||||||
|
|
||||||
constructor(private context: ExtensionContext, private git: GitProvider) {
|
constructor(private context: ExtensionContext, private git: GitProvider) {
|
||||||
super(() => this.dispose());
|
super(() => this.dispose());
|
||||||
|
|
||||||
this._whitespaceController = new WhitespaceController(context);
|
this._onConfigure();
|
||||||
|
|
||||||
|
const subscriptions: Disposable[] = [];
|
||||||
|
|
||||||
|
subscriptions.push(workspace.onDidChangeConfiguration(this._onConfigure, this));
|
||||||
|
|
||||||
|
this._disposable = Disposable.from(...subscriptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
dispose() {
|
dispose() {
|
||||||
@@ -24,6 +32,17 @@ export default class BlameAnnotationController extends Disposable {
|
|||||||
|
|
||||||
this._blameAnnotationsDisposable && this._blameAnnotationsDisposable.dispose();
|
this._blameAnnotationsDisposable && this._blameAnnotationsDisposable.dispose();
|
||||||
this._whitespaceController && this._whitespaceController.dispose();
|
this._whitespaceController && this._whitespaceController.dispose();
|
||||||
|
this._disposable && this._disposable.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private _onConfigure() {
|
||||||
|
const toggleWhitespace = workspace.getConfiguration('gitlens.advanced.toggleWhitespace').get<boolean>('enabled');
|
||||||
|
if (toggleWhitespace && !this._whitespaceController) {
|
||||||
|
this._whitespaceController = new WhitespaceController();
|
||||||
|
}
|
||||||
|
else if (!toggleWhitespace && this._whitespaceController) {
|
||||||
|
this._whitespaceController.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async clear(column: number) {
|
async clear(column: number) {
|
||||||
|
|||||||
@@ -99,6 +99,9 @@ export interface IAdvancedConfig {
|
|||||||
output: {
|
output: {
|
||||||
level: OutputLevel;
|
level: OutputLevel;
|
||||||
};
|
};
|
||||||
|
toggleWhitespace: {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IConfig {
|
export interface IConfig {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
import { Disposable, ExtensionContext, workspace } from 'vscode';
|
import { Disposable, workspace } from 'vscode';
|
||||||
import { Logger } from './logger';
|
import { Logger } from './logger';
|
||||||
|
|
||||||
enum SettingLocation {
|
enum SettingLocation {
|
||||||
@@ -12,12 +12,13 @@ export default class WhitespaceController extends Disposable {
|
|||||||
|
|
||||||
private _count: number = 0;
|
private _count: number = 0;
|
||||||
private _disposable: Disposable;
|
private _disposable: Disposable;
|
||||||
|
private _disposed: boolean = false;
|
||||||
private _ignoreNextConfigChange: boolean = false;
|
private _ignoreNextConfigChange: boolean = false;
|
||||||
private _renderWhitespace: string;
|
private _renderWhitespace: string;
|
||||||
private _renderWhitespaceLocation: SettingLocation = SettingLocation.default;
|
private _renderWhitespaceLocation: SettingLocation = SettingLocation.default;
|
||||||
private _requiresOverride: boolean;
|
private _requiresOverride: boolean;
|
||||||
|
|
||||||
constructor(context: ExtensionContext) {
|
constructor() {
|
||||||
super(() => this.dispose());
|
super(() => this.dispose());
|
||||||
|
|
||||||
const subscriptions: Disposable[] = [];
|
const subscriptions: Disposable[] = [];
|
||||||
@@ -30,12 +31,16 @@ export default class WhitespaceController extends Disposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dispose() {
|
dispose() {
|
||||||
|
this._disposed = true;
|
||||||
if (this._count !== 0) {
|
if (this._count !== 0) {
|
||||||
this._restoreWhitespace();
|
this._restoreWhitespace();
|
||||||
|
this._count = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private _onConfigurationChanged() {
|
private _onConfigurationChanged() {
|
||||||
|
if (this._disposed) return;
|
||||||
|
|
||||||
if (this._ignoreNextConfigChange) {
|
if (this._ignoreNextConfigChange) {
|
||||||
this._ignoreNextConfigChange = false;
|
this._ignoreNextConfigChange = false;
|
||||||
Logger.log(`Whitespace changed; ignored`);
|
Logger.log(`Whitespace changed; ignored`);
|
||||||
@@ -70,6 +75,8 @@ export default class WhitespaceController extends Disposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override() {
|
override() {
|
||||||
|
if (this._disposed) return;
|
||||||
|
|
||||||
Logger.log(`Request whitespace override; count=${this._count}`);
|
Logger.log(`Request whitespace override; count=${this._count}`);
|
||||||
if (this._count === 0 && this._requiresOverride) {
|
if (this._count === 0 && this._requiresOverride) {
|
||||||
this._ignoreNextConfigChange = true;
|
this._ignoreNextConfigChange = true;
|
||||||
@@ -86,6 +93,8 @@ export default class WhitespaceController extends Disposable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
restore() {
|
restore() {
|
||||||
|
if (this._disposed) return;
|
||||||
|
|
||||||
Logger.log(`Request whitespace restore; count=${this._count}`);
|
Logger.log(`Request whitespace restore; count=${this._count}`);
|
||||||
this._count--;
|
this._count--;
|
||||||
if (this._count === 0 && this._requiresOverride) {
|
if (this._count === 0 && this._requiresOverride) {
|
||||||
|
|||||||
Reference in New Issue
Block a user