mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-65935 (Groovy + Maven + GMaven: Provide Groovy language support in Maven POMs)
This commit is contained in:
+3
-1
@@ -18,12 +18,14 @@ package org.jetbrains.idea.maven.plugins.groovy;
|
||||
import org.jetbrains.idea.maven.utils.MavenPluginConfigurationLanguageInjector;
|
||||
import org.jetbrains.plugins.groovy.GroovyFileType;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author Sergey Evdokimov
|
||||
*/
|
||||
public class MavenGroovyInjector extends MavenPluginConfigurationLanguageInjector {
|
||||
public MavenGroovyInjector() {
|
||||
super("source", "org.codehaus.groovy.maven", "gmaven-plugin", GroovyFileType.GROOVY_LANGUAGE);
|
||||
super("source", Arrays.asList("org.codehaus.groovy.maven", "org.codehaus.gmaven"), "gmaven-plugin", GroovyFileType.GROOVY_LANGUAGE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+13
-3
@@ -26,13 +26,16 @@ import com.intellij.psi.xml.XmlText;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
* @author Sergey Evdokimov
|
||||
*/
|
||||
public class MavenPluginConfigurationLanguageInjector implements LanguageInjector {
|
||||
|
||||
private final String myParameterName;
|
||||
private final String myPluginGroupId;
|
||||
private final Collection<String> myPluginGroupIds;
|
||||
private final String myPluginArtifactId;
|
||||
private final Language myLanguage;
|
||||
|
||||
@@ -40,8 +43,15 @@ public class MavenPluginConfigurationLanguageInjector implements LanguageInjecto
|
||||
@NotNull String pluginGroupId,
|
||||
@NotNull String pluginArtifactId,
|
||||
@Nullable Language language) {
|
||||
this(parameterName, Collections.singleton(pluginGroupId), pluginArtifactId, language);
|
||||
}
|
||||
|
||||
protected MavenPluginConfigurationLanguageInjector(@NotNull String parameterName,
|
||||
@NotNull Collection<String> pluginGroupIds,
|
||||
@NotNull String pluginArtifactId,
|
||||
@Nullable Language language) {
|
||||
myParameterName = parameterName;
|
||||
myPluginGroupId = pluginGroupId;
|
||||
myPluginGroupIds = pluginGroupIds;
|
||||
myPluginArtifactId = pluginArtifactId;
|
||||
myLanguage = language;
|
||||
}
|
||||
@@ -68,7 +78,7 @@ public class MavenPluginConfigurationLanguageInjector implements LanguageInjecto
|
||||
XmlTag plugin = (XmlTag)pluginTag;
|
||||
|
||||
XmlTag groupId = plugin.findFirstSubTag("groupId");
|
||||
if (groupId == null || !groupId.getValue().getText().trim().equals(myPluginGroupId)) return;
|
||||
if (groupId == null || !myPluginGroupIds.contains(groupId.getValue().getText().trim())) return;
|
||||
|
||||
XmlTag artifactId = plugin.findFirstSubTag("artifactId");
|
||||
if (artifactId == null || !artifactId.getValue().getText().trim().equals(myPluginArtifactId)) return;
|
||||
|
||||
+39
@@ -67,6 +67,45 @@ class MavenGroovyInjectionTest extends LightCodeInsightFixtureTestCase {
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
""")
|
||||
|
||||
myFixture.completeBasic()
|
||||
|
||||
def lookups = myFixture.lookupElementStrings
|
||||
assert lookups.containsAll(["String", "StringBuffer", "StringBuilder"])
|
||||
}
|
||||
|
||||
public void testCompletion2() {
|
||||
myFixture.configureByText("pom.xml", """
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>simpleMaven</groupId>
|
||||
<artifactId>simpleMaven</artifactId>
|
||||
<version>1.0</version>
|
||||
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.gmaven</groupId>
|
||||
<artifactId>gmaven-plugin</artifactId>
|
||||
<version>1.3</version>
|
||||
<configuration>
|
||||
<!-- http://groovy.codehaus.org/The+groovydoc+Ant+task -->
|
||||
<source>
|
||||
String<caret>
|
||||
</source>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
""")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user