[java, completion] generate a provider method while using jigsaw services IDEA-347698

GitOrigin-RevId: 146fa445dcb5426eba5d8fa1d4e1a61d892cee18
This commit is contained in:
Aleksey Dobrynin
2024-02-28 12:19:51 +01:00
committed by intellij-monorepo-bot
parent 9760eeb0e6
commit 3d708aa8d7
65 changed files with 881 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/providers.iml" filepath="$PROJECT_DIR$/providers.iml" />
<module fileurl="file://$PROJECT_DIR$/sub/sub.iml" filepath="$PROJECT_DIR$/sub/sub.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="sub" />
</component>
</module>

View File

@@ -0,0 +1,18 @@
import org.jetbrains.providers.MyProviderImpl;
import org.jetbrains.providers.MySuperClass.MySubProviderImpl;
import org.jetbrains.providers.MyRecord;
import org.jetbrains.providers.WithProvider;
import org.jetbrains.providers.WrongPlace;
import org.jetbrains.providers.WrongPlace2;
import org.jetbraons.api.MyProviderInterface;
module my.providers {
uses MyProviderInterface;
requires sub.module;
provides MyProviderInterface with MyProviderImpl,
MySubProviderImpl,
MyRecord,
WithProvider,
WrongPlace,
WrongPlace2;
}

View File

@@ -0,0 +1,9 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class MyProviderImpl implements MyProviderInterface {
public static MyProviderImpl provider() {
return new MyProviderImpl(<caret>);
}
}

View File

@@ -0,0 +1,9 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public record MyRecord(String a) implements MyProviderInterface {
public static MyRecord provider() {
return new MyRecord(<caret>);
}
}

View File

@@ -0,0 +1,15 @@
package org.jetbrains.providers;
public class MySuperClass {
public static class MySubProviderImpl extends MyProviderImpl {
public MySubProviderImpl() {
}
public static MySubProviderImpl provider() {
return new MySubProviderImpl(<caret>);
}
public static void method() {
}
}
}

View File

@@ -0,0 +1,7 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class SimpleClass implements MyProviderInterface {
pr<caret>
}

View File

@@ -0,0 +1,10 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class WithProvider implements MyProviderInterface {
pr<caret>
public static WithProvider provider() {
return new WithProvider();
}
}

View File

@@ -0,0 +1,17 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class WrongPlace implements MyProviderInterface {
public static void method() {
pr<caret>
}
private static void program() {
}
private static void process() {
}
}

View File

@@ -0,0 +1,9 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class WrongPlace2 implements MyProviderInterface {
public static void pr<caret> method() {
}
}

View File

@@ -0,0 +1,3 @@
module sub.module {
exports org.jetbraons.api;
}

View File

@@ -0,0 +1,4 @@
package org.jetbraons.api;
public interface MyProviderInterface {
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/providers.iml" filepath="$PROJECT_DIR$/providers.iml" />
<module fileurl="file://$PROJECT_DIR$/sub/sub.iml" filepath="$PROJECT_DIR$/sub/sub.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="sub" />
</component>
</module>

View File

@@ -0,0 +1,18 @@
import org.jetbrains.providers.MyProviderImpl;
import org.jetbrains.providers.MySuperClass.MySubProviderImpl;
import org.jetbrains.providers.MyRecord;
import org.jetbrains.providers.WithProvider;
import org.jetbrains.providers.WrongPlace;
import org.jetbrains.providers.WrongPlace2;
import org.jetbraons.api.MyProviderInterface;
module my.providers {
uses MyProviderInterface;
requires sub.module;
provides MyProviderInterface with MyProviderImpl,
MySubProviderImpl,
MyRecord,
WithProvider,
WrongPlace,
WrongPlace2;
}

View File

@@ -0,0 +1,7 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class MyProviderImpl implements MyProviderInterface {
pr<caret>
}

View File

@@ -0,0 +1,7 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public record MyRecord(String a) implements MyProviderInterface {
pr<caret>
}

View File

@@ -0,0 +1,11 @@
package org.jetbrains.providers;
public class MySuperClass {
public static class MySubProviderImpl extends MyProviderImpl {
public MySubProviderImpl() {
}
pr<caret>public static void method() {
}
}
}

View File

@@ -0,0 +1,7 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class SimpleClass implements MyProviderInterface {
pr<caret>
}

View File

@@ -0,0 +1,10 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class WithProvider implements MyProviderInterface {
pr<caret>
public static WithProvider provider() {
return new WithProvider();
}
}

View File

@@ -0,0 +1,17 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class WrongPlace implements MyProviderInterface {
public static void method() {
pr<caret>
}
private static void program() {
}
private static void process() {
}
}

View File

@@ -0,0 +1,9 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class WrongPlace2 implements MyProviderInterface {
public static void pr<caret> method() {
}
}

View File

@@ -0,0 +1,3 @@
module sub.module {
exports org.jetbraons.api;
}

View File

@@ -0,0 +1,4 @@
package org.jetbraons.api;
public interface MyProviderInterface {
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/providers.iml" filepath="$PROJECT_DIR$/providers.iml" />
<module fileurl="file://$PROJECT_DIR$/sub/sub.iml" filepath="$PROJECT_DIR$/sub/sub.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="sub" />
</component>
</module>

View File

@@ -0,0 +1,11 @@
import org.jetbrains.providers.MyProviderImpl;
import org.jetbrains.providers.MySuperClass.MySubProviderImpl;
import org.jetbrains.providers.MyRecord;
import org.jetbrains.providers.WithProvider;
import org.jetbraons.api.MyProviderInterface;
module my.providers {
uses MyProviderInterface;
requires sub.module;
provides MyProviderInterface with MyProviderImpl, MySubProviderImpl, MyRecord, WithProvider;
}

View File

@@ -0,0 +1,9 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class MyProviderImpl implements MyProviderInterface {
public static MyProviderImpl provider() {
return new MyProviderImpl(<caret>);
}
}

View File

@@ -0,0 +1,9 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public record MyRecord(String a) implements MyProviderInterface {
public static MyRecord provider() {
return new MyRecord(<caret>);
}
}

View File

@@ -0,0 +1,9 @@
package org.jetbrains.providers;
public class MySuperClass {
public static class MySubProviderImpl extends MyProviderImpl {
public static MySubProviderImpl provider() {
return new MySubProviderImpl(<caret>);
}
}
}

View File

@@ -0,0 +1,7 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class SimpleClass implements MyProviderInterface {
<caret>
}

View File

@@ -0,0 +1,10 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class WithProvider implements MyProviderInterface {
<caret>
public static WithProvider provider() {
return new WithProvider();
}
}

View File

@@ -0,0 +1,13 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class WrongPlace implements MyProviderInterface {
private static int a = 0;
public static WrongPlace provider() {
return new WrongPlace(<caret>);
}
public WrongPlace() {}
}

View File

@@ -0,0 +1,3 @@
module sub.module {
exports org.jetbraons.api;
}

View File

@@ -0,0 +1,4 @@
package org.jetbraons.api;
public interface MyProviderInterface {
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/providers.iml" filepath="$PROJECT_DIR$/providers.iml" />
<module fileurl="file://$PROJECT_DIR$/sub/sub.iml" filepath="$PROJECT_DIR$/sub/sub.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="sub" />
</component>
</module>

View File

@@ -0,0 +1,12 @@
import org.jetbrains.providers.MyProviderImpl;
import org.jetbrains.providers.MySuperClass.MySubProviderImpl;
import org.jetbrains.providers.MyRecord;
import org.jetbrains.providers.WithProvider;
import org.jetbrains.providers.WrongPlace;
import org.jetbraons.api.MyProviderInterface;
module my.providers {
uses MyProviderInterface;
requires sub.module;
provides MyProviderInterface with MyProviderImpl, MySubProviderImpl, MyRecord, WithProvider, WrongPlace;
}

View File

@@ -0,0 +1,7 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class MyProviderImpl implements MyProviderInterface {
<caret>
}

View File

@@ -0,0 +1,7 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public record MyRecord(String a) implements MyProviderInterface {
<caret>
}

View File

@@ -0,0 +1,7 @@
package org.jetbrains.providers;
public class MySuperClass {
public static class MySubProviderImpl extends MyProviderImpl {
<caret>
}
}

View File

@@ -0,0 +1,7 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class SimpleClass implements MyProviderInterface {
<caret>
}

View File

@@ -0,0 +1,10 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class WithProvider implements MyProviderInterface {
<caret>
public static WithProvider provider() {
return new WithProvider();
}
}

View File

@@ -0,0 +1,9 @@
package org.jetbrains.providers;
import org.jetbraons.api.MyProviderInterface;
public class WrongPlace implements MyProviderInterface {
private static int a = 0;
public WrongPlace() {<caret>}
}

View File

@@ -0,0 +1,3 @@
module sub.module {
exports org.jetbraons.api;
}

View File

@@ -0,0 +1,4 @@
package org.jetbraons.api;
public interface MyProviderInterface {
}

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>