Explorar el Código

mIRC tab completer does not cache results.

fixes issue 3883

Change-Id: Id6dc34d0dabb763a8ac03ef20ee66fd9caf6d8eb
Reviewed-on: http://gerrit.dmdirc.com/1110
Reviewed-by: Gregory Holmes <greg@dmdirc.com>
Reviewed-by: Shane Mc Cormack <shane@dmdirc.com>
Reviewed-by: Chris Smith <chris@dmdirc.com>
Automatic-Compile: DMDirc Local Commits <dmdirc@googlemail.com>
tags/0.6.4
Simon Mott hace 14 años
padre
commit
a24dbcff2b
Se han modificado 1 ficheros con 9 adiciones y 7 borrados
  1. 9
    7
      src/com/dmdirc/addons/tabcompletion_mirc/MircStyle.java

+ 9
- 7
src/com/dmdirc/addons/tabcompletion_mirc/MircStyle.java Ver fichero

32
 
32
 
33
 import java.awt.Toolkit;
33
 import java.awt.Toolkit;
34
 import java.util.Collections;
34
 import java.util.Collections;
35
-import java.util.List;
36
 
35
 
37
 public class MircStyle implements TabCompletionStyle {
36
 public class MircStyle implements TabCompletionStyle {
38
     
37
     
39
-    /** The last set of results we retrieved. */
40
-    private List<String> lastResult;
41
-    
42
     /** The last word that was tab completed. */
38
     /** The last word that was tab completed. */
43
     private String lastWord;
39
     private String lastWord;
40
+
41
+    /** The last string we tried to tab complete. */
42
+    private String tabString;
44
     
43
     
45
     /** The tab completer that we use. */
44
     /** The tab completer that we use. */
46
     protected final TabCompleter tabCompleter;
45
     protected final TabCompleter tabCompleter;
68
         final String word = original.substring(start, end);
67
         final String word = original.substring(start, end);
69
         String target = "";
68
         String target = "";
70
         if (word.equals(lastWord)) {
69
         if (word.equals(lastWord)) {
70
+            final TabCompleterResult res = tabCompleter.complete(tabString, additional);
71
+            Collections.sort(res.getResults(), String.CASE_INSENSITIVE_ORDER);
71
             // We're continuing to tab through
72
             // We're continuing to tab through
72
-            target = lastResult.get((lastResult.indexOf(lastWord) + 
73
-                    (shiftPressed ? -1 : 1) + lastResult.size()) % lastResult.size());
73
+            target = res.getResults().get((res.getResults().indexOf(lastWord) +
74
+                    (shiftPressed ? -1 : 1) + res.getResults().size()) % res
75
+                    .getResults().size());
74
         } else {
76
         } else {
75
             // New tab target
77
             // New tab target
76
             final TabCompleterResult res = tabCompleter.complete(word, additional);
78
             final TabCompleterResult res = tabCompleter.complete(word, additional);
88
                 } else {
90
                 } else {
89
                     target = res.getResults().get(0);
91
                     target = res.getResults().get(0);
90
                 }
92
                 }
91
-                lastResult = res.getResults();
93
+                tabString = word;
92
             }
94
             }
93
         }
95
         }
94
         
96
         

Loading…
Cancelar
Guardar