|
From: <mir...@us...> - 2007-02-14 08:31:45
|
Revision: 1950
http://svn.sourceforge.net/rubyeclipse/?rev=1950&view=rev
Author: mirkostocker
Date: 2007-02-14 00:31:43 -0800 (Wed, 14 Feb 2007)
Log Message:
-----------
do not match task markers outside of comments (Ticket #224)
Modified Paths:
--------------
trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/parser/TaskParser.java
trunk/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/parser/TC_TaskParser.java
Modified: trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/parser/TaskParser.java
===================================================================
--- trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/parser/TaskParser.java 2007-02-12 20:41:10 UTC (rev 1949)
+++ trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/core/parser/TaskParser.java 2007-02-14 08:31:43 UTC (rev 1950)
@@ -116,8 +116,8 @@
String tag = fTags[i];
int priority = fPriorities[i];
if (!fCaseSensitive) tag = tag.toLowerCase();
- int index = line.indexOf(tag);
- if (index != -1) {
+ if (line.matches(".*#.*" + tag + ".*[\\n\\r]*")) {
+ int index = line.indexOf(tag);
String message = line.substring(index).trim();
createTaskTag(priority, message, lineNum + 1, offset + index, offset + index + message.length());
}
Modified: trunk/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/parser/TC_TaskParser.java
===================================================================
--- trunk/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/parser/TC_TaskParser.java 2007-02-12 20:41:10 UTC (rev 1949)
+++ trunk/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/core/parser/TC_TaskParser.java 2007-02-14 08:31:43 UTC (rev 1950)
@@ -13,8 +13,10 @@
public class TC_TaskParser extends TestCase {
- private static final String BASIC_MESSAGE = "TASK test";
- private static final String ALTERNATE_MESSAGE = "CHORE test";
+ private static final String BASIC_MESSAGE = "#TASK test";
+ private static final String BASIC_MESSAGE_EXPECTED = "TASK test";
+ private static final String ALTERNATE_MESSAGE = "#CHORE test";
+ private static final String ALTERNATE_MESSAGE_EXPECTED = "CHORE test";
private Map preferences;
private TaskParser parser;
@@ -28,38 +30,38 @@
public void testSimpleTag() {
List tasks = parseTasks("TASK", BASIC_MESSAGE);
assertEquals(1, tasks.size());
- assertTask(BASIC_MESSAGE, 0, 1, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
+ assertTask(BASIC_MESSAGE_EXPECTED, 1, 1, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
}
public void testIndentedTag() {
List tasks = parseTasks("TASK", "x"+BASIC_MESSAGE);
assertEquals(1, tasks.size());
- assertTask(BASIC_MESSAGE, 1, 1, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
+ assertTask(BASIC_MESSAGE_EXPECTED, 2, 1, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
}
public void testCaseInsensitive() {
preferences.put(RubyCore.COMPILER_TASK_CASE_SENSITIVE, RubyCore.DISABLED);
List tasks = parseTasks("TASK", "x"+BASIC_MESSAGE.toLowerCase());
assertEquals(1, tasks.size());
- assertTask(BASIC_MESSAGE.toLowerCase(), 1, 1, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
+ assertTask(BASIC_MESSAGE_EXPECTED.toLowerCase(), 2, 1, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
}
public void testLineEndingCRLF() {
List tasks = parseTasks("TASK", "\r\n" + BASIC_MESSAGE);
assertEquals(1, tasks.size());
- assertTask(BASIC_MESSAGE, 2, 2, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
+ assertTask(BASIC_MESSAGE_EXPECTED, 3, 2, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
}
public void testLineEndingLF() {
List tasks = parseTasks("TASK", "\n" + BASIC_MESSAGE);
assertEquals(1, tasks.size());
- assertTask(BASIC_MESSAGE, 1, 2, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
+ assertTask(BASIC_MESSAGE_EXPECTED, 2, 2, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
}
public void testLineEndingCR() {
List tasks = parseTasks("TASK", "\r" + BASIC_MESSAGE);
assertEquals(1, tasks.size());
- assertTask(BASIC_MESSAGE, 1, 2, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
+ assertTask(BASIC_MESSAGE_EXPECTED, 2, 2, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
}
public void testLoadFromReader() throws Exception {
@@ -72,14 +74,20 @@
List tasks = parser.getTasks();
assertEquals(1, tasks.size());
- assertTask("TASK test", 0, 1, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
+ assertTask("TASK test", 1, 1, IMarker.PRIORITY_NORMAL, (TaskTag) tasks.get(0));
}
public void testDifferentTag() {
List tasks = parseTasks("TASK,CHORE", ALTERNATE_MESSAGE);
assertEquals(1, tasks.size());
- assertTask(ALTERNATE_MESSAGE, 0, 1, IMarker.PRIORITY_HIGH, (TaskTag) tasks.get(0));
+ assertTask(ALTERNATE_MESSAGE_EXPECTED, 1, 1, IMarker.PRIORITY_HIGH, (TaskTag) tasks.get(0));
}
+
+ public void testDoNotMatch() {
+ final String LINE = "puts 'TASK'";
+ List tasks = parseTasks("TASK", LINE);
+ assertEquals("Should not match " + LINE, 0, tasks.size());
+ }
private List parseTasks(String validTags, String input) {
preferences.put(RubyCore.COMPILER_TASK_TAGS, validTags);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|