30
30
31
31
package processing .app .syntax ;
32
32
33
+ import java .awt .Color ;
34
+ import java .awt .Cursor ;
35
+ import java .awt .Font ;
36
+ import java .awt .Insets ;
33
37
import java .awt .event .InputEvent ;
34
38
import java .awt .event .KeyEvent ;
35
39
import java .awt .event .MouseEvent ;
66
70
import java .net .URL ;
67
71
import java .util .Map ;
68
72
import java .util .logging .Logger ;
73
+
74
+ import javax .swing .KeyStroke ;
75
+ import javax .swing .event .EventListenerList ;
76
+ import javax .swing .event .HyperlinkEvent ;
77
+ import javax .swing .event .HyperlinkListener ;
78
+ import javax .swing .text .BadLocationException ;
79
+ import javax .swing .text .Segment ;
80
+
81
+ import org .apache .commons .compress .utils .IOUtils ;
82
+ import org .fife .ui .autocomplete .AutoCompletion ;
83
+ import org .fife .ui .rsyntaxtextarea .LinkGenerator ;
84
+ import org .fife .ui .rsyntaxtextarea .LinkGeneratorResult ;
85
+ import org .fife .ui .rsyntaxtextarea .RSyntaxDocument ;
86
+ import org .fife .ui .rsyntaxtextarea .RSyntaxTextArea ;
87
+ import org .fife .ui .rsyntaxtextarea .Style ;
88
+ import org .fife .ui .rsyntaxtextarea .Theme ;
89
+ import org .fife .ui .rsyntaxtextarea .Token ;
90
+ import org .fife .ui .rsyntaxtextarea .TokenImpl ;
91
+ import org .fife .ui .rsyntaxtextarea .TokenTypes ;
92
+ import org .fife .ui .rtextarea .RTextArea ;
93
+ import org .fife .ui .rtextarea .RTextAreaUI ;
94
+
95
+ import cc .arduino .autocomplete .CompletionProvider ;
96
+ import cc .arduino .autocomplete .rsyntax .SketchCompletionProvider ;
97
+ import processing .app .Base ;
98
+ import processing .app .BaseNoGui ;
99
+ import processing .app .PreferencesData ;
100
+ import processing .app .Sketch ;
69
101
import processing .app .helpers .OSUtils ;
70
102
71
103
/**
@@ -79,6 +111,8 @@ public class SketchTextArea extends RSyntaxTextArea {
79
111
private final static Logger LOG = Logger .getLogger (SketchTextArea .class .getName ());
80
112
81
113
private PdeKeywords pdeKeywords ;
114
+
115
+ private SketchCompletionProvider completionProvider ;
82
116
83
117
public SketchTextArea (RSyntaxDocument document , PdeKeywords pdeKeywords ) throws IOException {
84
118
super (document );
@@ -91,6 +125,22 @@ public void setKeywords(PdeKeywords keywords) {
91
125
pdeKeywords = keywords ;
92
126
setLinkGenerator (new DocLinkGenerator (pdeKeywords ));
93
127
}
128
+
129
+ public void setupAutoComplete (Sketch sketch , CompletionProvider provider ) {
130
+
131
+ this .completionProvider = new SketchCompletionProvider (sketch , this , provider );
132
+
133
+ AutoCompletion ac = new AutoCompletion ( this .completionProvider );
134
+
135
+ ac .setAutoActivationEnabled (true );
136
+ ac .setShowDescWindow (false );
137
+ ac .setAutoCompleteSingleChoices (true );
138
+ ac .setParameterAssistanceEnabled (true );
139
+ // ac.setParamChoicesRenderer(new CompletionsRenderer());
140
+ // ac.setListCellRenderer(new CompletionsRenderer());
141
+ ac .install (this );
142
+
143
+ }
94
144
95
145
private void installFeatures () throws IOException {
96
146
setTheme (PreferencesData .get ("editor.syntax_theme" , "default" ));
0 commit comments