mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
[jvm-lang] java: return if no method is found after reformat IDEA-188113
This commit is contained in:
@@ -31,10 +31,10 @@ internal class CreateGetterWithFieldAction(target: PsiClass, request: CreateMeth
|
||||
|
||||
override fun createRenderer(project: Project) = object : PropertyRenderer(project, target, request, propertyInfo) {
|
||||
|
||||
override fun fillTemplate(builder: TemplateBuilderImpl): RangeExpression {
|
||||
override fun fillTemplate(builder: TemplateBuilderImpl): RangeExpression? {
|
||||
val prototypeField = generatePrototypeField()
|
||||
val prototype = generateSimpleGetterPrototype(prototypeField)
|
||||
val accessor = insertAccessor(prototype)
|
||||
val accessor = insertAccessor(prototype) ?: return null
|
||||
val data = accessor.extractGetterTemplateData()
|
||||
return builder.setupInput(data)
|
||||
}
|
||||
|
||||
@@ -52,19 +52,19 @@ internal class CreatePropertyAction(target: PsiClass, request: CreateMethodReque
|
||||
return getter to setter
|
||||
}
|
||||
|
||||
private fun insertPrototypes(): Pair<PsiMethod, PsiMethod> {
|
||||
private fun insertPrototypes(): Pair<PsiMethod, PsiMethod>? {
|
||||
val (getterPrototype, setterPrototype) = generatePrototypes()
|
||||
return if (propertyKind == SETTER) {
|
||||
// Technology isn't there yet. See related: WEB-26575.
|
||||
// We can't recalculate template segments which start before the current segment,
|
||||
// so we add the setter before the getter.
|
||||
val setter = insertAccessor(setterPrototype)
|
||||
val getter = insertAccessor(getterPrototype)
|
||||
val setter = insertAccessor(setterPrototype) ?: return null
|
||||
val getter = insertAccessor(getterPrototype) ?: return null
|
||||
getter to setter
|
||||
}
|
||||
else {
|
||||
val getter = insertAccessor(getterPrototype)
|
||||
val setter = insertAccessor(setterPrototype)
|
||||
val getter = insertAccessor(getterPrototype) ?: return null
|
||||
val setter = insertAccessor(setterPrototype) ?: return null
|
||||
getter to setter
|
||||
}
|
||||
}
|
||||
@@ -83,8 +83,8 @@ internal class CreatePropertyAction(target: PsiClass, request: CreateMethodReque
|
||||
*
|
||||
* 3. Setter parameter name template is added in any case.
|
||||
*/
|
||||
override fun fillTemplate(builder: TemplateBuilderImpl): RangeExpression {
|
||||
val (getter, setter) = insertPrototypes()
|
||||
override fun fillTemplate(builder: TemplateBuilderImpl): RangeExpression? {
|
||||
val (getter, setter) = insertPrototypes() ?: return null
|
||||
|
||||
val getterData = getter.extractGetterTemplateData()
|
||||
val setterData = setter.extractSetterTemplateData()
|
||||
|
||||
@@ -31,10 +31,10 @@ internal class CreateSetterWithFieldAction(target: PsiClass, request: CreateMeth
|
||||
|
||||
override fun createRenderer(project: Project) = object : PropertyRenderer(project, target, request, propertyInfo) {
|
||||
|
||||
override fun fillTemplate(builder: TemplateBuilderImpl): RangeExpression {
|
||||
override fun fillTemplate(builder: TemplateBuilderImpl): RangeExpression? {
|
||||
val prototypeField = generatePrototypeField()
|
||||
val prototype = generateSimpleSetterPrototype(prototypeField, target)
|
||||
val accessor = insertAccessor(prototype)
|
||||
val accessor = insertAccessor(prototype) ?: return null
|
||||
val data = accessor.extractSetterTemplateData()
|
||||
val typeExpression = builder.setupInput(data)
|
||||
builder.setupSetterParameter(data)
|
||||
|
||||
@@ -27,7 +27,7 @@ internal abstract class PropertyRenderer(
|
||||
nameKind: Pair<String, PropertyKind>
|
||||
) {
|
||||
|
||||
protected val factory = JavaPsiFacade.getInstance(project).elementFactory
|
||||
private val factory = JavaPsiFacade.getInstance(project).elementFactory
|
||||
private val codeStyleManager = JavaCodeStyleManager.getInstance(project)!!
|
||||
private val javaUsage = request as? CreateMethodFromJavaUsageRequest
|
||||
private val isStatic = JvmModifier.STATIC in request.modifiers
|
||||
@@ -64,7 +64,7 @@ internal abstract class PropertyRenderer(
|
||||
if (!navigate()) return
|
||||
val builder = TemplateBuilderImpl(target)
|
||||
builder.setGreedyToRight(true)
|
||||
val typeExpression = fillTemplate(builder)
|
||||
val typeExpression = fillTemplate(builder) ?: return
|
||||
val template = builder.buildInlineTemplate().apply {
|
||||
isToShortenLongNames = true
|
||||
}
|
||||
@@ -72,10 +72,11 @@ internal abstract class PropertyRenderer(
|
||||
TemplateManager.getInstance(project).startTemplate(targetEditor, template, listener)
|
||||
}
|
||||
|
||||
protected abstract fun fillTemplate(builder: TemplateBuilderImpl): RangeExpression
|
||||
protected abstract fun fillTemplate(builder: TemplateBuilderImpl): RangeExpression?
|
||||
|
||||
protected fun insertAccessor(prototype: PsiMethod): PsiMethod {
|
||||
return forcePsiPostprocessAndRestoreElement(target.add(prototype)) as PsiMethod
|
||||
protected fun insertAccessor(prototype: PsiMethod): PsiMethod? {
|
||||
val method = target.add(prototype) as PsiMethod
|
||||
return forcePsiPostprocessAndRestoreElement(method)
|
||||
}
|
||||
|
||||
private fun TemplateBuilderImpl.createTemplateContext(): TemplateContext {
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
// "Create property 'appOutputPath' in 'X'" "true"
|
||||
class X {
|
||||
void initOutputChecker() {
|
||||
getAppOutputPath();
|
||||
}
|
||||
|
||||
protected RunContentDescriptor executeConfiguration() {
|
||||
ApplicationManager.getApplication().invokeLater(() -> {
|
||||
|
||||
public void getAppOutputPath() {
|
||||
return appOutputPath;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// "Create property 'appOutputPath' in 'X'" "true"
|
||||
class X {
|
||||
void initOutputChecker() {
|
||||
getAppOutpu<caret>tPath();
|
||||
}
|
||||
|
||||
protected RunContentDescriptor executeConfiguration() {
|
||||
ApplicationManager.getApplication().invokeLater(() -> {
|
||||
|
||||
Reference in New Issue
Block a user