WEB-53640 Fix behaviour in non-HTML5 documents, remove Link.Rev test

GitOrigin-RevId: 40df6dd0ae7a1ab26e2b0ab45de2c6ad15fdd3f9
This commit is contained in:
Piotr Tomiak
2023-02-22 12:08:33 +01:00
committed by intellij-monorepo-bot
parent 57f37e2794
commit 040ba9c1c8
5 changed files with 16 additions and 13 deletions

View File

@@ -0,0 +1,2 @@
<!DOCTYPE HTML>
<form enctype="<caret>"/>

View File

@@ -1,5 +0,0 @@
<html>
<head>
<link rev="styl<caret>">
</head>
</html>

View File

@@ -1,5 +0,0 @@
<html>
<head>
<link rev="stylesheet<caret>">
</head>
</html>

View File

@@ -36,6 +36,7 @@ import com.intellij.xml.util.XmlUtil;
import junit.framework.Assert;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
import java.util.List;
@SuppressWarnings({"ALL"})
@@ -110,6 +111,7 @@ public class HtmlCompletionTest extends BasePlatformTestCase {
public void testHtmlCompletion() throws Exception {
CamelHumpMatcher.forceStartMatching(myFixture.getTestRootDisposable());
configureByFile("/1.html");
checkResultByFile("/1_after.html");
@@ -152,6 +154,13 @@ public class HtmlCompletionTest extends BasePlatformTestCase {
configureByFile("/14.html");
checkResultByFile("/14_after.html");
ExternalResourceManagerEx manager = ExternalResourceManagerEx.getInstanceEx();
manager.setDefaultHtmlDoctype(Html5SchemaProvider.getHtml5SchemaLocation(), getProject());
configureByFile("/14a.html");
myFixture.completeBasic();
assertEquals(Arrays.asList("application/x-www-form-urlencoded", "multipart/form-data", "text/plain"), myFixture.getLookupElementStrings());
manager.setDefaultHtmlDoctype(XmlUtil.XHTML_URI, getProject());
configureByFile("/Link.Rel.html");
checkResultByFile("/Link.Rel_after.html");
@@ -159,9 +168,6 @@ public class HtmlCompletionTest extends BasePlatformTestCase {
myFixture.type('\n');
checkResultByFile("/Link.Type_after.html");
configureByFile("/Link.Rev.html");
checkResultByFile("/Link.Rev_after.html");
configureByFile("/Link.Media.html");
checkResultByFile("/Link.Media_after.html");

View File

@@ -46,6 +46,7 @@ import static com.intellij.util.ObjectUtils.doIfNotNull;
public class HtmlCompletionContributor extends CompletionContributor implements DumbAware {
public static final String[] TARGET = {"_blank", "_top", "_self", "_parent"};
public static final String[] ENCTYPE = {"multipart/form-data", "application/x-www-form-urlencoded"};
public static final String[] REL_LINK = {"alternate", "canonical", "author", "dns-prefetch", "help",
"icon", "manifest", "modulepreload", "license", "next", "pingback", "preconnect", "prefetch", "preload",
"prerender", "prev", "stylesheet", "apple-touch-icon", "apple-touch-icon-precomposed", "apple-touch-startup-image"};
@@ -122,6 +123,10 @@ public class HtmlCompletionContributor extends CompletionContributor implements
else if (("lang".equals(name) || "xml:lang".equals(name)) && tagName.equalsIgnoreCase("html") || "hreflang".equals(name)) {
return LANG;
}
else if ("enctype".equals(name)) {
var descriptor = attribute.getDescriptor();
return descriptor == null || descriptor.isEnumerated() ? ArrayUtilRt.EMPTY_STRING_ARRAY : ENCTYPE;
}
else if ("rel".equals(name) && tagName.equalsIgnoreCase("link")) {
return REL_LINK;
}