Configure Kotlin: do not show notification when apply directive contains double quotes

This commit is contained in:
Natalia Ukhorskaya
2016-04-05 13:58:50 +03:00
parent e2f464ccc6
commit 3301f1f614
4 changed files with 63 additions and 3 deletions
@@ -81,7 +81,13 @@ public abstract class KotlinWithGradleConfigurator implements KotlinProjectConfi
private boolean isFileConfigured(GroovyFile projectGradleFile) {
String fileText = projectGradleFile.getText();
return fileText.contains(getApplyPluginDirective()) && fileText.contains(LIBRARY);
return containsDirective(fileText, getApplyPluginDirective()) && fileText.contains(LIBRARY);
}
private static boolean containsDirective(@NotNull String fileText, @NotNull String directive) {
return fileText.contains(directive)
|| fileText.contains(directive.replace("\"", "'"))
|| fileText.contains(directive.replace("'", "\""));
}
@Override
@@ -160,7 +166,8 @@ public abstract class KotlinWithGradleConfigurator implements KotlinProjectConfi
String dependencyString = String.format(
"%s \"%s:%s:%s\"",
groovyScope, libraryDescriptor.getLibraryGroupId(), libraryDescriptor.getLibraryArtifactId(), libraryDescriptor.getMaxVersion());
groovyScope, libraryDescriptor.getLibraryGroupId(), libraryDescriptor.getLibraryArtifactId(),
libraryDescriptor.getMaxVersion());
GrClosableBlock dependenciesBlock = getDependenciesBlock(gradleFile);
addLastExpressionInBlockIfNeeded(dependencyString, dependenciesBlock);
@@ -228,7 +235,7 @@ public abstract class KotlinWithGradleConfigurator implements KotlinProjectConfi
protected boolean addElementsToModuleFile(@NotNull GroovyFile file, @NotNull String version) {
boolean wasModified = false;
if (!file.getText().contains(getApplyPluginDirective())) {
if (!containsDirective(file.getText(), getApplyPluginDirective())) {
GrExpression apply = GroovyPsiElementFactory.getInstance(file.getProject()).createExpressionFromText(getApplyPluginDirective());
GrApplicationStatement applyStatement = getApplyStatement(file);
if (applyStatement != null) {
@@ -0,0 +1,26 @@
apply plugin: "java"
apply plugin: "kotlin"
sourceCompatibility = 1.5
version = '1.0'
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
buildscript {
ext.kotlin_version = '$VERSION$'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
repositories {
mavenCentral()
}
@@ -0,0 +1,21 @@
apply plugin: "java"
apply plugin: "kotlin"
sourceCompatibility = 1.5
version = '1.0'
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
@@ -48,6 +48,12 @@ public class ConfigureProjectByChangingFileTestGenerated extends AbstractConfigu
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/configuration/gradle/missedLibrary_before.gradle");
doTestGradle(fileName);
}
@TestMetadata("plugin_present_before.gradle")
public void testPlugin_present() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/configuration/gradle/plugin_present_before.gradle");
doTestGradle(fileName);
}
}
@TestMetadata("idea/testData/configuration/maven")