From d135f3fc82fd1bf7212c988996749dd86fe30944 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 17 Feb 2017 17:20:29 +0100 Subject: [PATCH] Register UAST services and extensions --- java/java-analysis-api/java-analysis-api.iml | 1 + .../com/intellij/uast/UastMetaLanguage.java | 42 +++++++++++++++++++ java/java-impl/java-impl.iml | 1 + platform/analysis-api/analysis-api.iml | 3 +- platform/analysis-impl/analysis-impl.iml | 1 + .../src/META-INF/LangExtensionPoints.xml | 2 + .../src/META-INF/LangExtensions.xml | 3 ++ resources/src/META-INF/IdeaPlugin.xml | 4 ++ 8 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 java/java-analysis-api/src/com/intellij/uast/UastMetaLanguage.java diff --git a/java/java-analysis-api/java-analysis-api.iml b/java/java-analysis-api/java-analysis-api.iml index e4036f35aded..c62ac8a6ea10 100644 --- a/java/java-analysis-api/java-analysis-api.iml +++ b/java/java-analysis-api/java-analysis-api.iml @@ -11,5 +11,6 @@ + \ No newline at end of file diff --git a/java/java-analysis-api/src/com/intellij/uast/UastMetaLanguage.java b/java/java-analysis-api/src/com/intellij/uast/UastMetaLanguage.java new file mode 100644 index 000000000000..eaf559550e28 --- /dev/null +++ b/java/java-analysis-api/src/com/intellij/uast/UastMetaLanguage.java @@ -0,0 +1,42 @@ +/* + * Copyright 2000-2017 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.uast; + +import com.intellij.lang.Language; +import com.intellij.lang.MetaLanguage; +import com.intellij.util.containers.HashSet; +import org.jetbrains.uast.UastLanguagePlugin; + +import java.util.Set; + +/** + * @author yole + */ +public class UastMetaLanguage extends MetaLanguage { + private final Set myLanguages = new HashSet<>(); + + protected UastMetaLanguage() { + super("UAST"); + for (UastLanguagePlugin plugin: UastLanguagePlugin.Companion.getInstances()) { + myLanguages.add(plugin.getLanguage()); + } + } + + @Override + public boolean matchesLanguage(Language language) { + return myLanguages.contains(language); + } +} diff --git a/java/java-impl/java-impl.iml b/java/java-impl/java-impl.iml index fa544ff29c8e..cc64822a065b 100644 --- a/java/java-impl/java-impl.iml +++ b/java/java-impl/java-impl.iml @@ -49,6 +49,7 @@ + diff --git a/platform/analysis-api/analysis-api.iml b/platform/analysis-api/analysis-api.iml index f2337e3c286d..ac3597a901f5 100644 --- a/platform/analysis-api/analysis-api.iml +++ b/platform/analysis-api/analysis-api.iml @@ -14,5 +14,4 @@ - - + \ No newline at end of file diff --git a/platform/analysis-impl/analysis-impl.iml b/platform/analysis-impl/analysis-impl.iml index f32f233d0f4e..eafc1b2b89cd 100644 --- a/platform/analysis-impl/analysis-impl.iml +++ b/platform/analysis-impl/analysis-impl.iml @@ -17,5 +17,6 @@ + \ No newline at end of file diff --git a/platform/platform-resources/src/META-INF/LangExtensionPoints.xml b/platform/platform-resources/src/META-INF/LangExtensionPoints.xml index 869ac784b8c4..e31422fb1abd 100644 --- a/platform/platform-resources/src/META-INF/LangExtensionPoints.xml +++ b/platform/platform-resources/src/META-INF/LangExtensionPoints.xml @@ -904,6 +904,8 @@ + diff --git a/platform/platform-resources/src/META-INF/LangExtensions.xml b/platform/platform-resources/src/META-INF/LangExtensions.xml index 65ee0752c583..8a6c0cbbda6c 100644 --- a/platform/platform-resources/src/META-INF/LangExtensions.xml +++ b/platform/platform-resources/src/META-INF/LangExtensions.xml @@ -1022,6 +1022,9 @@ + + + diff --git a/resources/src/META-INF/IdeaPlugin.xml b/resources/src/META-INF/IdeaPlugin.xml index 8917d1320afb..7368edd6c8e5 100644 --- a/resources/src/META-INF/IdeaPlugin.xml +++ b/resources/src/META-INF/IdeaPlugin.xml @@ -1918,6 +1918,10 @@ + + + +