Skip to content

Commit 48af579

Browse files
ricardojlrufinofacchinm
authored andcommitted
Refactoring autocomplete structure
1 parent 8bf9266 commit 48af579

File tree

8 files changed

+43
-123
lines changed

8 files changed

+43
-123
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package cc.arduino.autocomplete;
2+
3+
import org.fife.ui.autocomplete.DefaultCompletionProvider;
4+
5+
/**
6+
* Base completion provider for C/C++.
7+
* @author Ricardo JL Rufino (ricardo@criativasoft.com.br)
8+
* @date 28/04/2017
9+
*/
10+
public class BaseCCompletionProvider extends DefaultCompletionProvider{
11+
12+
@Override
13+
protected boolean isValidChar(char ch) {
14+
return super.isValidChar(ch) || '.' == ch || '>' == ch || '-' == ch || '<' == ch || '#' == ch || ':' == ch /**|| getParameterListStart() == ch */;
15+
}
16+
17+
}

app/src/cc/arduino/autocomplete/CompletionContext.java

Lines changed: 0 additions & 44 deletions
This file was deleted.

app/src/cc/arduino/autocomplete/CompletionProvider.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

app/src/cc/arduino/autocomplete/FakeCompletionProvider.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,26 @@
33
import java.util.LinkedList;
44
import java.util.List;
55

6+
import javax.swing.text.JTextComponent;
7+
68
import org.fife.ui.autocomplete.BasicCompletion;
79
import org.fife.ui.autocomplete.Completion;
810

9-
public class FakeCompletionProvider implements CompletionProvider {
10-
11+
import processing.app.syntax.SketchTextArea;
1112

13+
public class FakeCompletionProvider extends BaseCCompletionProvider {
14+
1215
@Override
13-
public List<Completion> getSuggestions(CompletionContext context) {
16+
protected List<Completion> getCompletionsImpl(JTextComponent comp) {
1417
List<Completion> list = new LinkedList<>();
15-
list.add(new BasicCompletion(context.getDelegate(), "Text: " + context.getAlreadyEnteredText()));
16-
list.add(new BasicCompletion(context.getDelegate(), "Line: " + context.getLineNumber()));
18+
19+
SketchTextArea area = (SketchTextArea) comp;
20+
21+
list.add(new BasicCompletion(this, "Text: " + getAlreadyEnteredText(comp)));
22+
list.add(new BasicCompletion(this, "Line: " + area.getCaretLineNumber()));
1723

1824
return list;
1925
}
20-
26+
2127

2228
}
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,27 @@
1-
package cc.arduino.autocomplete.rsyntax;
1+
package cc.arduino.autocomplete;
22

3+
import org.fife.ui.autocomplete.CompletionProvider;
34
import org.fife.ui.autocomplete.LanguageAwareCompletionProvider;
45

5-
import cc.arduino.autocomplete.CompletionContext;
6-
import cc.arduino.autocomplete.CompletionProvider;
76
import processing.app.Sketch;
87
import processing.app.syntax.SketchTextArea;
98

10-
119
/**
1210
* CompletionProvider for Arduino/CPP Language. <br/>
13-
* Setup basic logic for completions using {@link LanguageAwareCompletionProvider}
14-
* Filtering and decision will appear in the autocomplete dialog by implementations of: {@link CompletionProvider}. <br/>
11+
* Setup basic logic for completions using {@link LanguageAwareCompletionProvider}. <br/>
12+
* Filtering and decision will appear in the autocomplete dialog by implementations of: {@link CompletionProvider}.<br/>
1513
*
1614
* @author Ricardo JL Rufino (ricardo@criativasoft.com.br)
1715
* @date 28/04/2017
1816
*/
19-
public class SketchCompletionProvider extends LanguageAwareCompletionProvider{
20-
17+
public class SketchCompletionProvider extends LanguageAwareCompletionProvider {
18+
2119
public SketchCompletionProvider(Sketch sketch, SketchTextArea textArea, CompletionProvider provider) {
2220

23-
CompletionContext context = new CompletionContext(sketch, textArea, this);
24-
25-
setDefaultCompletionProvider(new CompletionProviderBridge(context, provider));
26-
// provider.setParameterChoicesProvider(new ParameterChoicesProvider(this));
27-
// provider.setParameterizedCompletionParams('(', ", ", ')');
28-
21+
setDefaultCompletionProvider(provider);
22+
// provider.setParameterChoicesProvider(new ParameterChoicesProvider(this));
23+
// provider.setParameterizedCompletionParams('(', ", ", ')');
24+
2925
}
30-
3126

32-
3327
}

app/src/cc/arduino/autocomplete/rsyntax/CompletionProviderBridge.java

Lines changed: 0 additions & 36 deletions
This file was deleted.

app/src/processing/app/syntax/SketchTextArea.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454

5555
import org.apache.commons.compress.utils.IOUtils;
5656
import org.fife.ui.autocomplete.AutoCompletion;
57+
import org.fife.ui.autocomplete.CompletionProvider;
5758
import org.fife.ui.rsyntaxtextarea.LinkGenerator;
5859
import org.fife.ui.rsyntaxtextarea.LinkGeneratorResult;
5960
import org.fife.ui.rsyntaxtextarea.RSyntaxDocument;
@@ -66,8 +67,7 @@
6667
import org.fife.ui.rtextarea.RTextArea;
6768
import org.fife.ui.rtextarea.RTextAreaUI;
6869

69-
import cc.arduino.autocomplete.CompletionProvider;
70-
import cc.arduino.autocomplete.rsyntax.SketchCompletionProvider;
70+
import cc.arduino.autocomplete.SketchCompletionProvider;
7171
import processing.app.Base;
7272
import processing.app.BaseNoGui;
7373
import processing.app.PreferencesData;
@@ -86,8 +86,6 @@ public class SketchTextArea extends RSyntaxTextArea {
8686

8787
private PdeKeywords pdeKeywords;
8888

89-
private SketchCompletionProvider completionProvider;
90-
9189
public SketchTextArea(RSyntaxDocument document, PdeKeywords pdeKeywords) throws IOException {
9290
super(document);
9391
this.pdeKeywords = pdeKeywords;
@@ -102,9 +100,9 @@ public void setKeywords(PdeKeywords keywords) {
102100

103101
public void setupAutoComplete(Sketch sketch, CompletionProvider provider) {
104102

105-
this.completionProvider = new SketchCompletionProvider(sketch, this, provider);
103+
SketchCompletionProvider completionProvider = new SketchCompletionProvider(sketch, this, provider);
106104

107-
AutoCompletion ac = new AutoCompletion( this.completionProvider);
105+
AutoCompletion ac = new AutoCompletion( completionProvider );
108106

109107
ac.setAutoActivationEnabled(true);
110108
ac.setShowDescWindow(false);

arduino-core/src/processing/app/SketchFile.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,6 @@ public boolean equals(Object o) {
247247
return (o instanceof SketchFile) && file.equals(((SketchFile) o).file);
248248
}
249249

250-
public Sketch getSketch() {
251-
return sketch;
252-
}
253-
254250
/**
255251
* Load this piece of code from a file and return the contents. This
256252
* completely ignores any changes in the linked storage, if any, and

0 commit comments

Comments
 (0)