6666
6767import processing .app .Base ;
6868import 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 ;
69112import processing .app .helpers .OSUtils ;
70113
71114/**
@@ -79,6 +122,8 @@ public class SketchTextArea extends RSyntaxTextArea {
79122 private final static Logger LOG = Logger .getLogger (SketchTextArea .class .getName ());
80123
81124 private PdeKeywords pdeKeywords ;
125+
126+ private SketchCompletionProvider completionProvider ;
82127
83128 public SketchTextArea (RSyntaxDocument document , PdeKeywords pdeKeywords ) throws IOException {
84129 super (document );
@@ -91,6 +136,22 @@ public void setKeywords(PdeKeywords keywords) {
91136 pdeKeywords = keywords ;
92137 setLinkGenerator (new DocLinkGenerator (pdeKeywords ));
93138 }
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+ }
94155
95156 private void installFeatures () throws IOException {
96157 setTheme (PreferencesData .get ("editor.syntax_theme" , "default" ));
0 commit comments