IntelliJ Live Template: модифицированный шаблон сеттеров - PullRequest
3 голосов
/ 27 января 2010

Кто-нибудь знает, как настроить живой шаблон в intellij для выполнения специализированных сеттеров? - Я использую V5, но я с удовольствием принимаю знания для более позднего выпуска) -

Моей первой потребностью является установщик firePropertyChange:

public final static String $PROPERTY$ = "$property$"
public void set$Property$($TYPE$ $property$) {
    Object oldValue = this.$property$;
    this.$property$ = $property$;
    firePropertyChange($PROPERTY$, oldValue, $property$);
}

У меня есть полуработающая версия, которая генерирует реализацию с переменными, определенными так: $ property $ -> completeSmart () $ PROPERTY $ -> completeSmart ()

Моя вторая потребность - это установщик стиля конструктора, который вызывает обычный установщик, а затем возвращает его после набора:

public $THIS_TYPE$ with$Property$($TYPE$ $property$) {
    set$Property$($property$); 
    return this;
}

Для этого у меня нет ничего действительно хорошего: мне все еще приходится много печатать!

Есть предложения?

1 Ответ

6 голосов
/ 14 декабря 2011

как то так

private $TYPE$ $NAME$;
public $THIS$ set$BNAME$($TYPE$ $NAME$) {
    this.$NAME$ = $NAME$;
    return this;
}

, где

Type = complete()
NAME = suggestVariableName()
BNAME = capitalize(NAME)
THIS = className()

Единственная проблема заключается в том, что className не будет работать во вложенных классах, так как он будет возвращать "Outer $ Inner", но он должен работать достаточно хорошо.

...