mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 13:02:30 +07:00
provide classSignature variable to represent generic class type (IDEA-178298)
This commit is contained in:
@@ -3,7 +3,7 @@ public ##
|
||||
#if($field.modifierStatic)
|
||||
static void ##
|
||||
#else
|
||||
$classname ##
|
||||
$classSignature ##
|
||||
#end
|
||||
set$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))($field.type $paramName) {
|
||||
#if ($field.name == $paramName)
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.intellij.java.codeInsight
|
||||
import com.intellij.codeInsight.generation.ClassMember
|
||||
import com.intellij.codeInsight.generation.GenerateGetterHandler
|
||||
import com.intellij.codeInsight.generation.GenerateSetterHandler
|
||||
import com.intellij.codeInsight.generation.SetterTemplatesManager
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager
|
||||
@@ -98,6 +99,33 @@ class Foo {
|
||||
'''
|
||||
}
|
||||
|
||||
void "test builder setter template"() {
|
||||
myFixture.configureByText 'a.java', '''
|
||||
class X<T extends String> {
|
||||
T field;
|
||||
|
||||
<caret>
|
||||
}
|
||||
'''
|
||||
try {
|
||||
SetterTemplatesManager.instance.state.defaultTempalteName = "Builder"
|
||||
generateSetter()
|
||||
myFixture.checkResult '''
|
||||
class X<T extends String> {
|
||||
T field;
|
||||
|
||||
public X<T> setField(T field) {
|
||||
this.field = field;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
'''
|
||||
}
|
||||
finally {
|
||||
SetterTemplatesManager.instance.state.defaultTempalteName = null
|
||||
}
|
||||
}
|
||||
|
||||
void "test strip field prefix"() {
|
||||
def settings = CodeStyleSettingsManager.getInstance(getProject()).currentSettings.getCustomSettings(JavaCodeStyleSettings.class)
|
||||
String oldPrefix = settings.FIELD_NAME_PREFIX
|
||||
|
||||
@@ -23,13 +23,11 @@ import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiField;
|
||||
import com.intellij.psi.PsiMember;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.NameUtil;
|
||||
import com.intellij.refactoring.util.RefactoringChangeUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.apache.velocity.VelocityContext;
|
||||
import org.apache.velocity.app.VelocityEngine;
|
||||
@@ -207,6 +205,10 @@ public class GenerationUtil {
|
||||
// information to keep as it is to avoid breaking compatibility with prior releases
|
||||
vc.put("classname", useFullyQualifiedName ? ce.getQualifiedName() : ce.getName());
|
||||
vc.put("FQClassname", ce.getQualifiedName());
|
||||
PsiType type = RefactoringChangeUtil.createThisExpression(clazz.getManager(), clazz).getType();
|
||||
if (type != null) {
|
||||
vc.put("classSignature", type.getPresentableText());
|
||||
}
|
||||
}
|
||||
|
||||
if (member != null) {
|
||||
|
||||
Reference in New Issue
Block a user