3030
3131package processing .app .syntax ;
3232
33+ import java .awt .Color ;
34+ import java .awt .Cursor ;
35+ import java .awt .Font ;
36+ import java .awt .Insets ;
3337import java .awt .event .InputEvent ;
3438import java .awt .event .KeyEvent ;
3539import java .awt .event .MouseEvent ;
6670import java .net .URL ;
6771import java .util .Map ;
6872import 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 ;
69101import processing .app .helpers .OSUtils ;
70102
71103/**
@@ -79,6 +111,8 @@ public class SketchTextArea extends RSyntaxTextArea {
79111 private final static Logger LOG = Logger .getLogger (SketchTextArea .class .getName ());
80112
81113 private PdeKeywords pdeKeywords ;
114+
115+ private SketchCompletionProvider completionProvider ;
82116
83117 public SketchTextArea (RSyntaxDocument document , PdeKeywords pdeKeywords ) throws IOException {
84118 super (document );
@@ -91,6 +125,22 @@ public void setKeywords(PdeKeywords keywords) {
91125 pdeKeywords = keywords ;
92126 setLinkGenerator (new DocLinkGenerator (pdeKeywords ));
93127 }
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+ }
94144
95145 private void installFeatures () throws IOException {
96146 setTheme (PreferencesData .get ("editor.syntax_theme" , "default" ));
0 commit comments