@Override public void run() { try { doc.remove(expression.getStartOffset(), exprText.length()); doc.insertString(expression.getStartOffset(), aName, null); Position exprStart = NbDocument.createPosition(doc, expression.getStartOffset(), Position.Bias.Forward); Position exprEnd = NbDocument.createPosition(doc, expression.getStartOffset() + aName.length(), Position.Bias.Backward); doc.insertString(st.getStartOffset(), text, null); Position stmtStart = NbDocument.createPosition(doc, st.getStartOffset() + typeTextPrefix.length(), Position.Bias.Forward); Position stmtEnd = NbDocument.createPosition(doc, st.getStartOffset() + typeTextPrefix.length() +aName.length(), Position.Bias.Backward); changeInfo.add(fo, stmtStart, stmtEnd); changeInfo.add(fo, exprStart, exprEnd); Indent indent = Indent.get(doc); indent.lock(); try { indent.reindent(st.getStartOffset()+text.length()+1); } finally { indent.unlock(); } } catch (BadLocationException ex) { Exceptions.printStackTrace(ex); } } });