diff --git a/net.sourceforge.vrapper.core.tests/src/net/sourceforge/vrapper/core/tests/cases/NormalModeTests.java b/net.sourceforge.vrapper.core.tests/src/net/sourceforge/vrapper/core/tests/cases/NormalModeTests.java
index d404763f5..526b653ad 100644
--- a/net.sourceforge.vrapper.core.tests/src/net/sourceforge/vrapper/core/tests/cases/NormalModeTests.java
+++ b/net.sourceforge.vrapper.core.tests/src/net/sourceforge/vrapper/core/tests/cases/NormalModeTests.java
@@ -907,6 +907,14 @@ public void test_dit() {
checkCommand(forKeySeq("dit"),
"co",'n',"tent",
"",'<',"/tag>");
+
+ checkCommand(forKeySeq("dit"),
+ "<% jsp",' ',"%>",
+ "",'<',"/tag>");
+
+ checkCommand(forKeySeq("dit"),
+ "\"> ",' ',"foo",
+ "\">",'<',"/tag>");
}
@Test
diff --git a/net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/XmlTagDelimitedText.java b/net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/XmlTagDelimitedText.java
index 96724dd45..102cedee5 100644
--- a/net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/XmlTagDelimitedText.java
+++ b/net.sourceforge.vrapper.core/src/net/sourceforge/vrapper/vim/commands/XmlTagDelimitedText.java
@@ -23,15 +23,11 @@ public class XmlTagDelimitedText implements DelimitedText {
//regex usually stops at newlines but open tags might have
//multiple lines of attributes. So, include newlines in search.
//Skip comments (), empty-element tags (), and jsp (<% %>)
- private static final String XML_TAG_REGEX = "<([^";
+ private static final String XML_TAG_REGEX = "<(?:(?!%|!))[^<]*?(?:(?";
+ private static final Pattern tagPattern = Pattern.compile(XML_TAG_REGEX, Pattern.DOTALL);
- private static final Pattern tagPattern = Pattern.compile(XML_TAG_REGEX);
-
- private static final String XML_TAG_NAME_REGEX = "([^ \n\t]*)";
- private static final String XML_PARAMETERS_REGEX = "(\n|.)*";
- private static final String XML_NAME_REGEX = "?" + XML_TAG_NAME_REGEX + XML_PARAMETERS_REGEX + ">";
-
- private static final Pattern tagNamePattern = Pattern.compile(XML_NAME_REGEX);
+ private static final String XML_NAME_REGEX = "?([^\\s]*).*?>";
+ private static final Pattern tagNamePattern = Pattern.compile(XML_NAME_REGEX, Pattern.DOTALL);
private TextRange endTag;
private TextRange openTag;