diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..e685822 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,31 @@ +## Summary + + + +## Details + +<-- +Start with 1-2 sentences describing *what* has changed, e.g. the "how" the +change was implemented. If the change set is small and straightforward, this +is all that's needed in this section. + +If it's a more complex change, or modifies a lot of files, also include a +bulleted list that highlights important changes in the PR. Note this doesn't +have to be a huge list, but should include anything noteworthy or that should +not be missed by a reviewer. +--> + +## Test plan + +<-- +Add any manual tests that should be performed to verify this fix before +merging. If there are none, this entire section can be omitted. +--> diff --git a/AutoComplete/src/main/java/org/fife/ui/autocomplete/AutoCompletion.java b/AutoComplete/src/main/java/org/fife/ui/autocomplete/AutoCompletion.java index 36eb615..a2a7032 100644 --- a/AutoComplete/src/main/java/org/fife/ui/autocomplete/AutoCompletion.java +++ b/AutoComplete/src/main/java/org/fife/ui/autocomplete/AutoCompletion.java @@ -1367,7 +1367,7 @@ public void insertUpdate(DocumentEvent e) { justInserted = false; if (isAutoCompleteEnabled() && isAutoActivationEnabled() && e.getLength() == 1) { - if (textComponent != null && provider.isAutoActivateOkay(textComponent)) { + if (textComponent != null && provider.isAutoActivateOkay(textComponent, e.getOffset())) { timer.restart(); justInserted = true; } diff --git a/AutoComplete/src/main/java/org/fife/ui/autocomplete/CompletionProvider.java b/AutoComplete/src/main/java/org/fife/ui/autocomplete/CompletionProvider.java index 7f7355d..95fb96d 100644 --- a/AutoComplete/src/main/java/org/fife/ui/autocomplete/CompletionProvider.java +++ b/AutoComplete/src/main/java/org/fife/ui/autocomplete/CompletionProvider.java @@ -154,16 +154,21 @@ public interface CompletionProvider { /** * This method is called if auto-activation is enabled in the parent * {@link AutoCompletion} after the user types a single character. This - * provider should check the text at the current caret position of the + * provider should check the text at the offset just inserted into the * text component, and decide whether auto-activation would be appropriate * here. For example, a CompletionProvider for Java might * want to return true for this method only if the last * character typed was a '.'. * * @param tc The text component. + * @param offs The offset of the character just inserted into the text + * component. This is passed explicitly, rather than being + * derived from the text component's caret position, since the + * caret is not guaranteed to have been updated yet when this + * method is called. * @return Whether auto-activation would be appropriate. */ - boolean isAutoActivateOkay(JTextComponent tc); + boolean isAutoActivateOkay(JTextComponent tc, int offs); /** diff --git a/AutoComplete/src/main/java/org/fife/ui/autocomplete/CompletionProviderBase.java b/AutoComplete/src/main/java/org/fife/ui/autocomplete/CompletionProviderBase.java index df6387e..9a6ba04 100644 --- a/AutoComplete/src/main/java/org/fife/ui/autocomplete/CompletionProviderBase.java +++ b/AutoComplete/src/main/java/org/fife/ui/autocomplete/CompletionProviderBase.java @@ -170,11 +170,11 @@ public CompletionProvider getParent() { @Override - public boolean isAutoActivateOkay(JTextComponent tc) { + public boolean isAutoActivateOkay(JTextComponent tc, int offs) { Document doc = tc.getDocument(); char ch = 0; try { - doc.getText(tc.getCaretPosition(), 1, s); + doc.getText(offs, 1, s); ch = s.first(); } catch (BadLocationException ble) { // Never happens ble.printStackTrace(); diff --git a/AutoComplete/src/main/java/org/fife/ui/autocomplete/LanguageAwareCompletionProvider.java b/AutoComplete/src/main/java/org/fife/ui/autocomplete/LanguageAwareCompletionProvider.java index 2f43854..905a3fb 100644 --- a/AutoComplete/src/main/java/org/fife/ui/autocomplete/LanguageAwareCompletionProvider.java +++ b/AutoComplete/src/main/java/org/fife/ui/autocomplete/LanguageAwareCompletionProvider.java @@ -303,9 +303,9 @@ public CompletionProvider getStringCompletionProvider() { @Override - public boolean isAutoActivateOkay(JTextComponent tc) { + public boolean isAutoActivateOkay(JTextComponent tc, int offs) { CompletionProvider provider = getProviderFor(tc); - return provider != null && provider.isAutoActivateOkay(tc); + return provider != null && provider.isAutoActivateOkay(tc, offs); }