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 = ""; - - private static final Pattern tagNamePattern = Pattern.compile(XML_NAME_REGEX); + private static final String XML_NAME_REGEX = ""; + private static final Pattern tagNamePattern = Pattern.compile(XML_NAME_REGEX, Pattern.DOTALL); private TextRange endTag; private TextRange openTag;