From eafce4c179525c14d733e674bb34212d910733e3 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Fri, 29 Mar 2013 00:31:27 -0400 Subject: [PATCH] bug 404599: Makefile Editor does not sense that # is escaped (\#), still colors rest of line as comment --- .../makefile/MakefilePartitionScanner.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/makefile/MakefilePartitionScanner.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/makefile/MakefilePartitionScanner.java index b5c2d45ca81..21fe80db41c 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/makefile/MakefilePartitionScanner.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/internal/ui/text/makefile/MakefilePartitionScanner.java @@ -15,6 +15,7 @@ import java.util.List; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.rules.EndOfLineRule; +import org.eclipse.jface.text.rules.ICharacterScanner; import org.eclipse.jface.text.rules.IPredicateRule; import org.eclipse.jface.text.rules.IToken; import org.eclipse.jface.text.rules.RuleBasedPartitionScanner; @@ -46,7 +47,22 @@ public class MakefilePartitionScanner extends RuleBasedPartitionScanner { // Add rule for single line comments. - rules.add(new EndOfLineRule("#", tComment, '\\', true)); //$NON-NLS-1$ + EndOfLineRule commentRule = new EndOfLineRule("#", tComment, '\\', true) { //$NON-NLS-1$ + @Override + protected IToken doEvaluate(ICharacterScanner scanner, boolean resume) { + int c = scanner.read(); + if (c == fEscapeCharacter) { + c = scanner.read(); + if (c == fStartSequence[0]) { + return Token.UNDEFINED; + } + scanner.unread(); + } + scanner.unread(); + return super.doEvaluate(scanner, resume); + } + }; + rules.add(commentRule); IPredicateRule[] result = new IPredicateRule[rules.size()]; rules.toArray(result);