From: Kazutoshi S. <k_s...@f2...> - 2007-08-23 18:51:39
|
Hi Alan, ez...@us... wrote: > Revision: 10427 > http://jedit.svn.sourceforge.net/jedit/?rev=10427&view=rev > Author: ezust > Date: 2007-08-22 15:43:15 -0700 (Wed, 22 Aug 2007) > > Log Message: > ----------- > [ 1752044 ] API Proposal: CompletionPopup Thank you for catching up my work. But is was not a pure refactoring. It contained some changes of behavior. Please verify the following. > Modified: plugins/SideKick/trunk/SideKick.props (snip) > -plugin.sidekick.SideKickPlugin.depend.0=jedit 04.03.08.00 > +plugin.sidekick.SideKickPlugin.depend.0=jedit 04.03.10.00 Here should be "04.03.11.00". > Modified: plugins/SideKick/trunk/sidekick/SideKickCompletionPopup.java (snip) > + //{{{ keyTyped() method > + private void keyTyped(char ch) > { > + // If no completion is selected, do not pass the key to > + // handleKeystroke() method. This avoids interfering > + // between a bit intermittent user typing and automatic > + // completion (which is not selected initially). > + int selected = getSelectedIndex(); > + if(selected == -1) As described in this comment, SideKick completion is not selected initially. This is a user visible change of behavior in this patch. Are you sure of this? I'm afraid of someone dislike this behavior. Here is the background of this change: In C/C++ mode, if I type "const" and think something for a few second, a completion popup for "const_cast" is shown. Before the change, if I type " int" to make "const int", the result became "const_cast int" since the first space is handled as acceptance of the completion. The same problem often happened with "static int" or "in ..." in comments. The old behavior can be restored by changing the "false" at "reset(new Candidates(), false)" in the constructor of SideKickCompletionPopup to "true". > Modified: plugins/SideKick/trunk/sidekick/SideKickParser.java (snip) > - String[] keywords = editPane.getBuffer().getMode().getTokenMarker().getMainRuleSet().getKeywords().getKeywords(); > + String[] keywords = editPane.getBuffer().getKeywordMapAtOffset(caret).getKeywords(); This is another user visible change. The default keyword completion now aware of the mode of caret position instead of the buffer. I think this change is good and don't break anything. -- k_satoda |