Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitMessageComponent.java')
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitMessageComponent.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitMessageComponent.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitMessageComponent.java
index 210b56a37e..8147136922 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitMessageComponent.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitMessageComponent.java
@@ -9,6 +9,7 @@
* Copyright (C) 2012, IBM Corporation (Markus Keller <markus_keller@ch.ibm.com>)
* Copyright (C) 2012, 2013 Robin Stocker <robin@nibor.org>
* Copyright (C) 2014 IBM Corporation (Daniel Megert <daniel_megert@ch.ibm.com>)
+ * Copyright (C) 2015 SAP SE (Christian Georgi <christian.georgi@sap.com>)
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -44,8 +45,12 @@ import org.eclipse.egit.ui.internal.commit.CommitHelper;
import org.eclipse.egit.ui.internal.commit.CommitHelper.CommitInfo;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.DocumentEvent;
+import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentListener;
+import org.eclipse.jface.text.IRegion;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Ref;
@@ -96,10 +101,12 @@ public class CommitMessageComponent {
this.type = type;
}
+ @Override
public String getMessage() {
return message;
}
+ @Override
public int getMessageType() {
return type;
}
@@ -438,9 +445,34 @@ public class CommitMessageComponent {
UIText.CommitMessageComponent_AmendingCommitInRemoteBranch,
IMessageProvider.WARNING);
+ // Check format of commit message. The soft-wrapped text in the SWT
+ // control must be converted to a hard-wrapped text, since this will be
+ // the resulting commit message.
+ String message = commitText.getCommitMessage();
+ String formatIssue = formatIssuesInCommitMessage(message);
+ if (formatIssue != null) {
+ return new CommitStatus(formatIssue, IMessageProvider.WARNING);
+ }
+
return CommitStatus.OK;
}
+ static String formatIssuesInCommitMessage(String message) {
+ IDocument document = new Document(message);
+ int numberOfLines = document.getNumberOfLines();
+ if (numberOfLines > 1) {
+ try {
+ IRegion lineInfo = document.getLineInformation(1);
+ if (lineInfo.getLength() > 0) {
+ return UIText.CommitMessageComponent_MessageSecondLineNotEmpty;
+ }
+ } catch (BadLocationException e) {
+ Activator.logError(e.getMessage(), e);
+ }
+ }
+ return null;
+ }
+
/**
* @return true if commit info is ok
*/
@@ -496,6 +528,7 @@ public class CommitMessageComponent {
authorHandler = UIUtils.addPreviousValuesContentProposalToText(
authorText, AUTHOR_VALUES_PREF);
authorText.addModifyListener(new ModifyListener() {
+ @Override
public void modifyText(ModifyEvent e) {
if (!listenersEnabled || !authorText.isEnabled())
return;
@@ -505,6 +538,7 @@ public class CommitMessageComponent {
committerText.addModifyListener(new ModifyListener() {
String oldCommitter = committerText.getText();
+ @Override
public void modifyText(ModifyEvent e) {
if (!listenersEnabled || !committerText.isEnabled())
return;
@@ -524,6 +558,7 @@ public class CommitMessageComponent {
committerHandler = UIUtils.addPreviousValuesContentProposalToText(
committerText, COMMITTER_VALUES_PREF);
commitText.getDocument().addDocumentListener(new IDocumentListener() {
+ @Override
public void documentChanged(DocumentEvent event) {
if (!listenersEnabled || !commitText.isEnabled())
return;
@@ -531,6 +566,7 @@ public class CommitMessageComponent {
updateChangeIdButton();
listener.statusUpdated();
}
+ @Override
public void documentAboutToBeChanged(DocumentEvent event) {
// nothing to do
}

Back to the top