/** * Overridden to allow for prepending to the replacement text. This * allows us to insert fully qualified class names. instead of * unqualified ones, if necessary (i.e. if the user tries to * auto-complete <code>javax.swing.text.Document</code>, but they've * explicitly imported <code>org.w3c.dom.Document</code> - we need to * insert the fully qualified name in that case). */ @Override protected String getReplacementText(Completion c, Document doc, int start, int len) { String text = super.getReplacementText(c, doc, start, len); if (replacementTextPrefix!=null) { text = replacementTextPrefix + text; replacementTextPrefix = null; } return text; }
@Override protected String getReplacementText(Completion c, Document doc, int start, int len) { String texto = super.getReplacementText(c, doc, start, len); if (c.getProvider() instanceof ProvedorConclusaoCodigoBibliotecas) { try { texto = doc.getText(start, len); texto = texto.substring(0, texto.lastIndexOf(".")); texto = texto.concat(".").concat(super.getReplacementText(c, doc, start, len)); return texto; } catch (BadLocationException ex) { } } return texto; } }
@Override protected String getReplacementText(Completion c, Document doc, int start, int len) { String replacement = super.getReplacementText(c, doc, start, len); if(c instanceof JavaScriptShorthandCompletion) { try { int caret = textArea.getCaretPosition(); String leadingWS = RSyntaxUtilities.getLeadingWhitespace(doc, caret); if (replacement.indexOf('\n')>-1) { replacement = replacement.replaceAll("\n", "\n" + leadingWS); } } catch(BadLocationException ble){} } return replacement; }
/** * Inserts a completion. Any time a code completion event occurs, the actual * text insertion happens through this method. * * @param c A completion to insert. This cannot be <code>null</code>. * @param typedParamListStartChar Whether the parameterized completion start * character was typed (typically <code>'('</code>). */ protected void insertCompletion(Completion c, boolean typedParamListStartChar) { JTextComponent textComp = getTextComponent(); String alreadyEntered = c.getAlreadyEntered(textComp); hidePopupWindow(); Caret caret = textComp.getCaret(); int dot = caret.getDot(); int len = alreadyEntered.length(); int start = dot - len; String replacement = getReplacementText(c, textComp.getDocument(), start, len); caret.setDot(start); caret.moveDot(dot); textComp.replaceSelection(replacement); if (isParameterAssistanceEnabled() && (c instanceof ParameterizedCompletion)) { ParameterizedCompletion pc = (ParameterizedCompletion) c; startParameterizedCompletionAssistance(pc, typedParamListStartChar); } }