2009-11-23 11 views

Antwort

11

Es gibt keine Vorlagen weder für Getter noch für equals/hashcode. Diese sind in IDEA fest codiert.

Source

Sie können sehen, dass in diesem IntelliJ Wishlist

+3

Es gibt jetzt (ich benutze Ultimate 2016) - siehe Antworten unter – werner

10

Sie erwähnen nicht, welche Version von IDEA Sie verwenden, so gehe ich davon die letzten 8 oder 9.

Ihre Code-Stil-Einstellungen überprüfen, unter „Ausrichtung und Zahnspange“. Dort sollten Sie die Option "Einfache Methoden in einer Zeile" finden.

+0

Wir sind 8.1.3. Das schien jedoch nicht zu funktionieren. –

+0

Haben Sie versucht, das entsprechende Feld "Zeilenumbrüche" in der Gruppe "Bei Neuformatierung beibehalten" zu deaktivieren? – seh

+3

Die einzeilige Einstellung besagt, dass IntelliJ es bei einer Neuformatierung so belassen, aber nicht so erstellen soll. –

9

Ich weiß nicht, warum Sie dies tun wollen, vermutlich zur visuellen Raum zu sparen. Wenn ja, benutze einfach die IntelliJ-Funktion, um triviale Getter/Setter zu falten und zu vergessen, wie Linien es braucht. > IDE-Einstellungen - -> Editor -> Code-Folding -> Show Code-Folding outline -> Einfache Eigenschaftenaccessoren

26

Ich benutze IntelliJ IDEA 14.1.0 und Sie können Folding-Funktion kann in

Einstellungen gefunden werden Passen Sie dieses Verhalten an.

Verwenden Sie einfach die "generieren ..." Option, oder verwenden Sie Alt + Einfügen Verknüpfung, und wählen Sie "Getter und Setter".

Im Fenster "Select Fields", das geöffnet wird, haben Sie oben die Option "Getter Template". Verwenden Sie die Schaltfläche "..." neben dem Dropdown, um die Vorlage zu bearbeiten.

Wählen Sie "IntelliJ Default" und klicken Sie auf die Schaltfläche "Kopieren", um eine neue namens "AlwayStartWithGet" zu erstellen, die Sie bearbeiten können.

Entfernen Sie einfach den folgenden Abschnitt:

#if ($field.boolean) 
    #if ($StringUtil.startsWithIgnoreCase($name, 'is')) 
    #set($name = $StringUtil.decapitalize($name)) 
    #else 
    is## 
#end 
#else 
    get## 
#end 

und ersetzen Sie es mit einem einfachen

get## 

sollten Sie mit gelassen werden:

publiC## 
#if($field.modifierStatic) 
    statiC## 
#end 
$field.type ## 
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))) 
get## 
${name}() { 
    return $field.name; 
} 

Jetzt können Sie die benutzerdefinierte Vorlage verwenden Wenn Sie Code generieren, indem Sie ihn im Dropdown-Menü der Getter-Vorlage auswählen.

+0

Dies sieht vielversprechend aus, aber ich sehe keine Schaltfläche Getter-Vorlage an den Anfang dieses Dialogfelds. Verwenden von 14.0.2. – Gervase

+2

Arbeitete für mich, aber um genau zu sein sollte der letzte Teil der Vorlage wie folgt aussehen: '$ {name}() {return $ field.name; } ' in einer Zeile –

+4

Stellen Sie sicher, auch Einstellungen/Code-Stil/Java/Einfache Blöcke in einer Zeile und einfache Methoden in einer Zeile zu überprüfen. Andernfalls werden durch die automatische Formatierung die Zeilen wieder eingefügt, und nach dem Ändern der Vorlage wird kein Effekt mehr angezeigt. – werner

3

Für Idee 2016.

Getter template

der letzten 3 Leitungen in eine einzige Leitung zusammenzuführen:

${name}() { return $field.name; } 

Setter template

Doppel Hash Hinzufügen (ohne Leerzeichen) am Ende der längste Linie:

[...] ($field.type, $paramName) {## 

Merge die letzten 2 Zeilen in einer einzigen Zeile:

$field.name = $paramName; } 

Hinweis: wie durch @mindas kommentiert, werden Sie wahrscheinlich stattdessen die visuelle Auto Falten wollen, die versioniert nicht bekommen.