WEB-43908 Create meta-language for HTML compatible languages - improve API naming.

GitOrigin-RevId: 46ef16d38cb6edf6674d7587675cc75ef4aac1f6
This commit is contained in:
Piotr Tomiak
2021-08-06 12:15:30 +02:00
committed by intellij-monorepo-bot
parent 985b4facd7
commit cd30e59d0a
5 changed files with 21 additions and 16 deletions

View File

@@ -1,7 +1,7 @@
<idea-plugin>
<extensionPoints>
<extensionPoint qualifiedName="com.intellij.html.htmlLikeLanguage"
beanClass="com.intellij.lang.html.HTMLLikeMetaLanguage$HtmlLikeTemplateEP"
<extensionPoint qualifiedName="com.intellij.html.compatibleLanguage"
beanClass="com.intellij.lang.html.HtmlCompatibleMetaLanguage$HtmlCompatibleLanguageEP"
dynamic="true"/>
</extensionPoints>
<extensions defaultExtensionNs="com.intellij">
@@ -25,7 +25,7 @@
id="xml.catalog"/>
</projectConfigurable>
<metaLanguage implementation="com.intellij.lang.html.HTMLLikeMetaLanguage"/>
<html.htmlLikeLanguage language="HTML"/>
<metaLanguage implementation="com.intellij.lang.html.HtmlCompatibleMetaLanguage"/>
<html.compatibleLanguage language="HTML"/>
</extensions>
</idea-plugin>

View File

@@ -0,0 +1,9 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.lang.html;
import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Experimental
public interface HtmlCompatibleFile extends PsiFile {
}

View File

@@ -17,16 +17,16 @@ import org.jetbrains.annotations.Nullable;
import java.util.Set;
public class HTMLLikeMetaLanguage extends MetaLanguage {
private static final ExtensionPointName<HtmlLikeTemplateEP> EP_NAME =
new ExtensionPointName<>("com.intellij.html.htmlLikeLanguage");
public class HtmlCompatibleMetaLanguage extends MetaLanguage {
private static final ExtensionPointName<HtmlCompatibleLanguageEP> EP_NAME =
new ExtensionPointName<>("com.intellij.html.compatibleLanguage");
private static final ClearableLazyValue<Set<String>> LANGS = ExtensionPointUtil.dropLazyValueOnChange(
ClearableLazyValue.create(
() -> ContainerUtil.map2Set(EP_NAME.getExtensionList(), e -> e.language)
), EP_NAME, null);
public HTMLLikeMetaLanguage() {
super("HTML-like");
public HtmlCompatibleMetaLanguage() {
super("HtmlCompatible");
}
@Override
@@ -40,7 +40,7 @@ public class HTMLLikeMetaLanguage extends MetaLanguage {
}
@ApiStatus.Experimental
public static class HtmlLikeTemplateEP extends BaseKeyedLazyInstance<String> {
public static class HtmlCompatibleLanguageEP extends BaseKeyedLazyInstance<String> {
@Attribute("language")
public String language;

View File

@@ -16,6 +16,7 @@
package com.intellij.psi.impl.source.html;
import com.intellij.lang.ASTNode;
import com.intellij.lang.html.HtmlCompatibleFile;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.ex.http.HttpFileSystem;
import com.intellij.openapi.vfs.impl.http.HttpVirtualFile;
@@ -37,7 +38,7 @@ import java.util.Collections;
/**
* @author maxim
*/
public class HtmlFileImpl extends XmlFileImpl implements FileReferenceResolver, HtmlLikeFile {
public class HtmlFileImpl extends XmlFileImpl implements FileReferenceResolver, HtmlCompatibleFile {
public HtmlFileImpl(FileViewProvider provider) {
this(provider, XmlElementType.HTML_FILE);
}

View File

@@ -1,5 +0,0 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.psi.impl.source.html;
public interface HtmlLikeFile {
}