static A setTextKeepCaret(fS text, final A c) { if (c != null) swing { int caret = c.getCaretPosition(); if (neq(c.getText(), text)) { c.setText(text); setCaretPosition(c, caret); } } ret c; } static A setTextKeepCaret(A c, S text) { ret setTextKeepCaret(text, c); }