66
66
67
67
import processing .app .Base ;
68
68
import processing .app .PreferencesData ;
69
+
70
+ import javax .swing .event .EventListenerList ;
71
+ import javax .swing .event .HyperlinkEvent ;
72
+ import javax .swing .event .HyperlinkListener ;
73
+ import javax .swing .text .BadLocationException ;
74
+ import javax .swing .text .Segment ;
75
+ import java .awt .*;
76
+ import java .awt .event .MouseEvent ;
77
+ import java .io .File ;
78
+ import java .io .FileInputStream ;
79
+ import java .io .IOException ;
80
+ import java .net .MalformedURLException ;
81
+ import java .net .URL ;
82
+ import java .util .Map ;
83
+ import java .util .logging .Logger ;
84
+
85
+ import javax .swing .KeyStroke ;
86
+ import javax .swing .event .EventListenerList ;
87
+ import javax .swing .event .HyperlinkEvent ;
88
+ import javax .swing .event .HyperlinkListener ;
89
+ import javax .swing .text .BadLocationException ;
90
+ import javax .swing .text .Segment ;
91
+
92
+ import org .apache .commons .compress .utils .IOUtils ;
93
+ import org .fife .ui .autocomplete .AutoCompletion ;
94
+ import org .fife .ui .rsyntaxtextarea .LinkGenerator ;
95
+ import org .fife .ui .rsyntaxtextarea .LinkGeneratorResult ;
96
+ import org .fife .ui .rsyntaxtextarea .RSyntaxDocument ;
97
+ import org .fife .ui .rsyntaxtextarea .RSyntaxTextArea ;
98
+ import org .fife .ui .rsyntaxtextarea .Style ;
99
+ import org .fife .ui .rsyntaxtextarea .Theme ;
100
+ import org .fife .ui .rsyntaxtextarea .Token ;
101
+ import org .fife .ui .rsyntaxtextarea .TokenImpl ;
102
+ import org .fife .ui .rsyntaxtextarea .TokenTypes ;
103
+ import org .fife .ui .rtextarea .RTextArea ;
104
+ import org .fife .ui .rtextarea .RTextAreaUI ;
105
+
106
+ import cc .arduino .autocomplete .CompletionProvider ;
107
+ import cc .arduino .autocomplete .rsyntax .SketchCompletionProvider ;
108
+ import processing .app .Base ;
109
+ import processing .app .BaseNoGui ;
110
+ import processing .app .PreferencesData ;
111
+ import processing .app .Sketch ;
69
112
import processing .app .helpers .OSUtils ;
70
113
71
114
/**
@@ -79,6 +122,8 @@ public class SketchTextArea extends RSyntaxTextArea {
79
122
private final static Logger LOG = Logger .getLogger (SketchTextArea .class .getName ());
80
123
81
124
private PdeKeywords pdeKeywords ;
125
+
126
+ private SketchCompletionProvider completionProvider ;
82
127
83
128
public SketchTextArea (RSyntaxDocument document , PdeKeywords pdeKeywords ) throws IOException {
84
129
super (document );
@@ -91,6 +136,22 @@ public void setKeywords(PdeKeywords keywords) {
91
136
pdeKeywords = keywords ;
92
137
setLinkGenerator (new DocLinkGenerator (pdeKeywords ));
93
138
}
139
+
140
+ public void setupAutoComplete (Sketch sketch , CompletionProvider provider ) {
141
+
142
+ this .completionProvider = new SketchCompletionProvider (sketch , this , provider );
143
+
144
+ AutoCompletion ac = new AutoCompletion ( this .completionProvider );
145
+
146
+ ac .setAutoActivationEnabled (true );
147
+ ac .setShowDescWindow (false );
148
+ ac .setAutoCompleteSingleChoices (true );
149
+ ac .setParameterAssistanceEnabled (true );
150
+ // ac.setParamChoicesRenderer(new CompletionsRenderer());
151
+ // ac.setListCellRenderer(new CompletionsRenderer());
152
+ ac .install (this );
153
+
154
+ }
94
155
95
156
private void installFeatures () throws IOException {
96
157
setTheme (PreferencesData .get ("editor.syntax_theme" , "default" ));
0 commit comments