mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
revert "add possibility to setup lookup element for XML attribute values; IDEA-102167 layout_* attributes should go first"
This commit is contained in:
@@ -20,8 +20,8 @@
|
||||
interface="com.intellij.xml.XmlExtension"/>
|
||||
<extensionPoint name="xml.namespaceHelper"
|
||||
interface="com.intellij.xml.XmlNamespaceHelper"/>
|
||||
<extensionPoint name="xml.completionExtension"
|
||||
interface="com.intellij.xml.XmlCompletionExtension"/>
|
||||
<extensionPoint name="xml.tagNameProvider"
|
||||
interface="com.intellij.xml.XmlTagNameProvider"/>
|
||||
<extensionPoint name="xml.fileNSInfoProvider"
|
||||
interface="com.intellij.psi.xml.XmlFileNSInfoProvider"/>
|
||||
<extensionPoint name="xml.attributeDescriptorsProvider"
|
||||
@@ -495,7 +495,7 @@
|
||||
<xml.psiPolicy language="HTML" implementationClass="com.intellij.psi.impl.source.xml.behavior.EncodeEachSymbolPolicy"/>
|
||||
<xml.psiPolicy language="XHTML" implementationClass="com.intellij.psi.impl.source.xml.behavior.EncodeEachSymbolPolicy"/>
|
||||
|
||||
<xml.completionExtension implementation="com.intellij.psi.impl.source.xml.DefaultXmlCompletionExtension"/>
|
||||
<xml.tagNameProvider implementation="com.intellij.psi.impl.source.xml.DefaultXmlTagNameProvider"/>
|
||||
<xml.fileNSInfoProvider implementation="com.intellij.xml.util.HtmlFileNSInfoProvider"/>
|
||||
|
||||
<codeInsight.unresolvedReferenceQuickFixProvider
|
||||
|
||||
+3
-5
@@ -29,7 +29,7 @@ import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.PairConsumer;
|
||||
import com.intellij.util.ProcessingContext;
|
||||
import com.intellij.xml.XmlCompletionExtension;
|
||||
import com.intellij.xml.XmlTagNameProvider;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -41,10 +41,8 @@ import java.util.List;
|
||||
public class TagNameReferenceCompletionProvider extends CompletionProvider<CompletionParameters> {
|
||||
public static LookupElement[] getTagNameVariants(final @NotNull XmlTag tag, final String prefix) {
|
||||
List<LookupElement> elements = new ArrayList<LookupElement>();
|
||||
for (XmlCompletionExtension tagNameProvider : XmlCompletionExtension.EP_NAME.getExtensions()) {
|
||||
if (tagNameProvider.isMyContext(tag)) {
|
||||
tagNameProvider.addTagNameVariants(elements, tag, prefix);
|
||||
}
|
||||
for (XmlTagNameProvider tagNameProvider : XmlTagNameProvider.EP_NAME.getExtensions()) {
|
||||
tagNameProvider.addTagNameVariants(elements, tag, prefix);
|
||||
}
|
||||
return elements.toArray(new LookupElement[elements.size()]);
|
||||
}
|
||||
|
||||
+8
-30
@@ -27,14 +27,14 @@ import com.intellij.psi.xml.XmlAttribute;
|
||||
import com.intellij.psi.xml.XmlFile;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.util.ProcessingContext;
|
||||
import com.intellij.xml.*;
|
||||
import com.intellij.xml.NamespaceAwareXmlAttributeDescriptor;
|
||||
import com.intellij.xml.XmlAttributeDescriptor;
|
||||
import com.intellij.xml.XmlElementDescriptor;
|
||||
import com.intellij.xml.XmlExtension;
|
||||
import com.intellij.xml.util.HtmlUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static com.intellij.codeInsight.completion.CompletionInitializationContext.DUMMY_IDENTIFIER_TRIMMED;
|
||||
|
||||
public class XmlAttributeReferenceCompletionProvider extends CompletionProvider<CompletionParameters> {
|
||||
@@ -81,18 +81,9 @@ public class XmlAttributeReferenceCompletionProvider extends CompletionProvider<
|
||||
completionData = CompletionUtil.getCompletionDataByElement(attribute, attribute.getContainingFile().getOriginalFile());
|
||||
boolean caseSensitive = !(completionData instanceof HtmlCompletionData) || ((HtmlCompletionData)completionData).isCaseSensitive();
|
||||
|
||||
final List<XmlCompletionExtension> completionExtensions = new ArrayList<XmlCompletionExtension>();
|
||||
|
||||
for (XmlCompletionExtension completionExtension : XmlCompletionExtension.EP_NAME.getExtensions()) {
|
||||
if (completionExtension.isMyContext(tag)) {
|
||||
completionExtensions.add(completionExtension);
|
||||
}
|
||||
}
|
||||
|
||||
for (XmlAttributeDescriptor descriptor : descriptors) {
|
||||
if (isValidVariant(attribute, descriptor, attributes, extension)) {
|
||||
final String fullAttrName = descriptor.getName(tag);
|
||||
String name = fullAttrName;
|
||||
String name = descriptor.getName(tag);
|
||||
|
||||
InsertHandler<LookupElement> insertHandler = XmlAttributeInsertHandler.INSTANCE;
|
||||
|
||||
@@ -112,7 +103,7 @@ public class XmlAttributeReferenceCompletionProvider extends CompletionProvider<
|
||||
}
|
||||
if (prefix == null || name.startsWith(prefix)) {
|
||||
if (prefix != null && name.length() > prefix.length()) {
|
||||
name = fullAttrName.substring(prefix.length());
|
||||
name = descriptor.getName(tag).substring(prefix.length());
|
||||
}
|
||||
LookupElementBuilder element = LookupElementBuilder.create(name);
|
||||
if (descriptor instanceof PsiPresentableMetaData) {
|
||||
@@ -125,21 +116,8 @@ public class XmlAttributeReferenceCompletionProvider extends CompletionProvider<
|
||||
element = element
|
||||
.withCaseSensitivity(caseSensitive)
|
||||
.withInsertHandler(insertHandler);
|
||||
LookupElement e = null;
|
||||
|
||||
for (XmlCompletionExtension tagNameProvider : completionExtensions) {
|
||||
e = tagNameProvider.setupAttributeLookupElement(tag, descriptor, fullAttrName, element);
|
||||
|
||||
if (e != null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (e == null) {
|
||||
e = descriptor.isRequired()
|
||||
? PrioritizedLookupElement.withPriority(element.appendTailText("(required)", true), 100)
|
||||
: element;
|
||||
}
|
||||
result.addElement(e);
|
||||
result.addElement(
|
||||
descriptor.isRequired() ? PrioritizedLookupElement.withPriority(element.appendTailText("(required)", true), 100) : element);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@ import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.xml.XmlElementDescriptor;
|
||||
import com.intellij.xml.XmlExtension;
|
||||
import com.intellij.xml.XmlCompletionExtension;
|
||||
import com.intellij.xml.XmlTagNameProvider;
|
||||
import com.intellij.xml.util.XmlUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -32,7 +32,7 @@ import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class DefaultXmlCompletionExtension extends XmlCompletionExtension {
|
||||
public class DefaultXmlTagNameProvider implements XmlTagNameProvider {
|
||||
@Override
|
||||
public void addTagNameVariants(List<LookupElement> elements, @NotNull XmlTag tag, String prefix) {
|
||||
final List<String> namespaces;
|
||||
+3
-18
@@ -16,11 +16,9 @@
|
||||
package com.intellij.xml;
|
||||
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupElementBuilder;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -29,21 +27,8 @@ import java.util.List;
|
||||
*
|
||||
* @see HtmlCustomTagNameProvider
|
||||
*/
|
||||
public abstract class XmlCompletionExtension {
|
||||
public static final ExtensionPointName<XmlCompletionExtension> EP_NAME = new ExtensionPointName<XmlCompletionExtension>("com.intellij.xml.completionExtension");
|
||||
public interface XmlTagNameProvider {
|
||||
ExtensionPointName<XmlTagNameProvider> EP_NAME = new ExtensionPointName<XmlTagNameProvider>("com.intellij.xml.tagNameProvider");
|
||||
|
||||
public void addTagNameVariants(List<LookupElement> elements, @NotNull XmlTag tag, String prefix) {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public LookupElement setupAttributeLookupElement(@NotNull XmlTag contextTag,
|
||||
@NotNull XmlAttributeDescriptor descriptor,
|
||||
@NotNull String name,
|
||||
@NotNull LookupElementBuilder elementBuilder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isMyContext(@NotNull XmlTag context) {
|
||||
return true;
|
||||
}
|
||||
void addTagNameVariants(List<LookupElement> elements, @NotNull XmlTag tag, String prefix);
|
||||
}
|
||||
Reference in New Issue
Block a user