public static void invokeInstantRename(JTextComponent target, ChangeInfo changeInfo) throws BadLocationException { Collection<CsmReference> highlights = new ArrayList<>(changeInfo.size()); int size = changeInfo.size(); int caretOffset = -1; for (int i = 0; i < size; i++) { ChangeInfo.Change change = changeInfo.get(i); highlights.add(new RefImpl(change)); if (caretOffset < 0) { caretOffset = change.getEnd().getOffset(); } } performInstantRename(target, highlights, caretOffset); }
@Override public ChangeInfo implement() throws Exception { final CharSequence typeText = getExpressionType(); if (typeText == null || "void".contentEquals(typeText)) { //NOI18N return null; } final String aName = suggestName(); final String text = typeText+" "+aName+" = "; //NOI18N doc.insertString(expression.getStartOffset(), text, null); Position startPosition = new Position() { @Override public int getOffset() { return expression.getStartOffset()+typeText.length()+1; } }; Position endPosition = new Position() { @Override public int getOffset() { return expression.getStartOffset()+text.length() - 3; } }; ChangeInfo changeInfo = new ChangeInfo(fo, startPosition, endPosition); return changeInfo; } }
@Override public void run() { try { comp.setCaretPosition(changeInfo.get(0).getEnd().getOffset()); InstantRenamePerformer.invokeInstantRename(comp, changeInfo); } catch (BadLocationException ex) { Exceptions.printStackTrace(ex); } } });
@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); } } });
final ChangeInfo changeInfo = new ChangeInfo(); final String typeTextPrefix = typeText+" ";//NOI18N final String text = typeTextPrefix+aName+" = "+expression.getText()+";\n"; //NOI18N
return new ChangeInfo(target, null, null);
if (ed != null) { Position pos = ed.getDocument().createPosition(caretPos); return new ChangeInfo(foPom, pos, pos); return new ChangeInfo();