Browse Source

Fix broken mirc tab completing.

Change-Id: I10238e51d11ebdb7a287c16dd38010566087bdc7
Reviewed-on: http://gerrit.dmdirc.com/3925
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Chris Smith <chris@dmdirc.com>
changes/25/3925/2
Greg Holmes 9 years ago
parent
commit
8cc0bc6854

+ 9
- 6
tabcompletion_mirc/src/com/dmdirc/addons/tabcompletion_mirc/MircStyle.java View File

22
 
22
 
23
 package com.dmdirc.addons.tabcompletion_mirc;
23
 package com.dmdirc.addons.tabcompletion_mirc;
24
 
24
 
25
+import com.google.common.collect.Lists;
26
+
25
 import com.dmdirc.Channel;
27
 import com.dmdirc.Channel;
26
 import com.dmdirc.FrameContainer;
28
 import com.dmdirc.FrameContainer;
27
 import com.dmdirc.ui.input.AdditionalTabTargets;
29
 import com.dmdirc.ui.input.AdditionalTabTargets;
32
 
34
 
33
 import java.awt.Toolkit;
35
 import java.awt.Toolkit;
34
 import java.util.Collections;
36
 import java.util.Collections;
37
+import java.util.List;
35
 
38
 
36
 public class MircStyle implements TabCompletionStyle {
39
 public class MircStyle implements TabCompletionStyle {
37
 
40
 
64
         final String target;
67
         final String target;
65
         if (word.equals(lastWord)) {
68
         if (word.equals(lastWord)) {
66
             final TabCompletionMatches res = tabCompleter.complete(tabString, additional);
69
             final TabCompletionMatches res = tabCompleter.complete(tabString, additional);
67
-            Collections.sort(res.getResults(), String.CASE_INSENSITIVE_ORDER);
70
+            final List<String> results = Lists.newArrayList(res.getResults());
71
+            Collections.sort(results, String.CASE_INSENSITIVE_ORDER);
68
             // We're continuing to tab through
72
             // We're continuing to tab through
69
-            target = res.getResults().get((res.getResults().indexOf(lastWord) + (shiftPressed ? -1
70
-                    : 1) + res.getResults().size()) % res
71
-                    .getResults().size());
73
+            target = results.get((results.indexOf(lastWord) + (shiftPressed ? -1: 1) + results.size()) % results.size());
72
         } else {
74
         } else {
73
             // New tab target
75
             // New tab target
74
             final TabCompletionMatches res = tabCompleter.complete(word, additional);
76
             final TabCompletionMatches res = tabCompleter.complete(word, additional);
77
+            final List<String> results = Lists.newArrayList(res.getResults());
75
 
78
 
76
             if (res.getResultCount() == 0) {
79
             if (res.getResultCount() == 0) {
77
                 Toolkit.getDefaultToolkit().beep();
80
                 Toolkit.getDefaultToolkit().beep();
78
                 return null;
81
                 return null;
79
             } else {
82
             } else {
80
-                Collections.sort(res.getResults(), String.CASE_INSENSITIVE_ORDER);
83
+                Collections.sort(results, String.CASE_INSENSITIVE_ORDER);
81
 
84
 
82
                 if (!word.isEmpty() && window instanceof Channel
85
                 if (!word.isEmpty() && window instanceof Channel
83
                         && ((Channel) window)
86
                         && ((Channel) window)
84
                         .getChannelInfo().getName().startsWith(word)) {
87
                         .getChannelInfo().getName().startsWith(word)) {
85
                     target = ((Channel) window).getChannelInfo().getName();
88
                     target = ((Channel) window).getChannelInfo().getName();
86
                 } else {
89
                 } else {
87
-                    target = res.getResults().get(0);
90
+                    target = results.get(0);
88
                 }
91
                 }
89
                 tabString = word;
92
                 tabString = word;
90
             }
93
             }

Loading…
Cancel
Save