diff --git a/extensions/git/package.json b/extensions/git/package.json index 1bdcfd44215..96014fb5deb 100644 --- a/extensions/git/package.json +++ b/extensions/git/package.json @@ -388,6 +388,11 @@ "type": "boolean", "description": "%config.autofetch%", "default": true + }, + "git.enableLongCommitWarning": { + "type": "boolean", + "description": "%config.enableLongCommitWarning%", + "default": true } } } diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json index 7e4884918a6..ed4c311189f 100644 --- a/extensions/git/package.nls.json +++ b/extensions/git/package.nls.json @@ -25,5 +25,6 @@ "command.showOutput": "Show Git Output", "config.path": "Path to the git executable", "config.autorefresh": "Whether auto refreshing is enabled", - "config.autofetch": "Whether auto fetching is enabled" + "config.autofetch": "Whether auto fetching is enabled", + "config.enableLongCommitWarning": "Whether long commit messages should be warned about" } \ No newline at end of file diff --git a/extensions/git/src/commit.ts b/extensions/git/src/commit.ts index 7010838f6f7..bcc06c3d7c3 100644 --- a/extensions/git/src/commit.ts +++ b/extensions/git/src/commit.ts @@ -5,7 +5,7 @@ 'use strict'; -import { workspace, window, languages, Disposable, Uri, TextDocumentChangeEvent, HoverProvider, Hover, TextEditor, Position, TextDocument, Range, TextEditorDecorationType, WorkspaceEdit } from 'vscode'; +import { workspace, window, languages, Disposable, Uri, HoverProvider, Hover, TextEditor, Position, TextDocument, Range, TextEditorDecorationType, WorkspaceEdit } from 'vscode'; import { Model } from './model'; import { filterEvent } from './util'; import * as nls from 'vscode-nls'; @@ -77,18 +77,19 @@ export class CommitController implements HoverProvider { this.editor = editor; const onDidChange = filterEvent(workspace.onDidChangeTextDocument, e => e.document && isSCMInput(e.document.uri)); - onDidChange(this.onSCMInputChange, this, this.disposables); + onDidChange(this.update, this, this.disposables); + workspace.onDidChangeConfiguration(this.update, this, this.disposables); languages.registerHoverProvider({ scheme: 'scm' }, this); } - private onSCMInputChange(e: TextDocumentChangeEvent): void { + private update(): void { this.diagnostics = []; - const range = e.document.lineAt(0).range; + const range = this.editor.document.lineAt(0).range; const length = range.end.character - range.start.character; - if (length > 80) { + if (workspace.getConfiguration('git').get('enableLongCommitWarning') && length > 80) { const message = localize('too long', "You should keep the first line under 50 characters.\n\nYou can use more lines for extra information."); this.diagnostics.push({ range, message }); }