Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/arduino/Arduino.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorricardo.jl.rufino@gmail.com <ricardo.jl.rufino@gmail.com>2017-05-04 03:53:29 +0300
committerMartino Facchin <m.facchin@arduino.cc>2020-04-07 15:09:06 +0300
commit2015c98908e693a1ce31ce889c4f7bcc3ffe9ff1 (patch)
treeeb2d94bd039025cfc17987dc5124462204fbff83
parentc84fd1a398866ce805e0baf78851346bc0428a4a (diff)
Refactoring autocomplete structure
-rwxr-xr-xapp/src/cc/arduino/autocomplete/BaseCCompletionProvider.java17
-rwxr-xr-xapp/src/cc/arduino/autocomplete/CompletionContext.java44
-rwxr-xr-xapp/src/cc/arduino/autocomplete/CompletionProvider.java11
-rwxr-xr-xapp/src/cc/arduino/autocomplete/FakeCompletionProvider.java18
-rwxr-xr-xapp/src/cc/arduino/autocomplete/SketchCompletionProvider.java (renamed from app/src/cc/arduino/autocomplete/rsyntax/SketchCompletionProvider.java)26
-rwxr-xr-xapp/src/cc/arduino/autocomplete/rsyntax/CompletionProviderBridge.java36
-rw-r--r--app/src/processing/app/syntax/SketchTextArea.java10
-rw-r--r--arduino-core/src/processing/app/SketchFile.java4
8 files changed, 43 insertions, 123 deletions
diff --git a/app/src/cc/arduino/autocomplete/BaseCCompletionProvider.java b/app/src/cc/arduino/autocomplete/BaseCCompletionProvider.java
new file mode 100755
index 000000000..cf0b1dae1
--- /dev/null
+++ b/app/src/cc/arduino/autocomplete/BaseCCompletionProvider.java
@@ -0,0 +1,17 @@
+package cc.arduino.autocomplete;
+
+import org.fife.ui.autocomplete.DefaultCompletionProvider;
+
+/**
+ * Base completion provider for C/C++.
+ * @author Ricardo JL Rufino (ricardo@criativasoft.com.br)
+ * @date 28/04/2017
+ */
+public class BaseCCompletionProvider extends DefaultCompletionProvider{
+
+ @Override
+ protected boolean isValidChar(char ch) {
+ return super.isValidChar(ch) || '.' == ch || '>' == ch || '-' == ch || '<' == ch || '#' == ch || ':' == ch /**|| getParameterListStart() == ch */;
+ }
+
+}
diff --git a/app/src/cc/arduino/autocomplete/CompletionContext.java b/app/src/cc/arduino/autocomplete/CompletionContext.java
deleted file mode 100755
index 18f985243..000000000
--- a/app/src/cc/arduino/autocomplete/CompletionContext.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package cc.arduino.autocomplete;
-
-import org.fife.ui.autocomplete.CompletionProvider;
-
-import processing.app.Sketch;
-import processing.app.syntax.SketchTextArea;
-
-public class CompletionContext {
-
- private Sketch sketch;
-
- private SketchTextArea textArea;
-
- private CompletionProvider delegate; // of: AutoComplete/RSyntaxTextArea
-
- public CompletionContext(Sketch sketch, SketchTextArea textArea,CompletionProvider delegate) {
- this.sketch = sketch;
- this.textArea = textArea;
- this.delegate = delegate;
- }
-
-
- public String getAlreadyEnteredText() {
- return delegate.getAlreadyEnteredText(textArea);
- }
-
- public int getLineNumber() {
- return textArea.getCaretLineNumber();
- }
-
-
- public Sketch getSketch() {
- return sketch;
- }
-
- public SketchTextArea getTextArea() {
- return textArea;
- }
-
- public CompletionProvider getDelegate() {
- return delegate;
- }
-
-}
diff --git a/app/src/cc/arduino/autocomplete/CompletionProvider.java b/app/src/cc/arduino/autocomplete/CompletionProvider.java
deleted file mode 100755
index 8f7ac8b79..000000000
--- a/app/src/cc/arduino/autocomplete/CompletionProvider.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package cc.arduino.autocomplete;
-
-import java.util.List;
-
-import org.fife.ui.autocomplete.Completion;
-
-public interface CompletionProvider {
-
- List<Completion> getSuggestions(CompletionContext context);
-
-} \ No newline at end of file
diff --git a/app/src/cc/arduino/autocomplete/FakeCompletionProvider.java b/app/src/cc/arduino/autocomplete/FakeCompletionProvider.java
index 783aefd23..681d0e81e 100755
--- a/app/src/cc/arduino/autocomplete/FakeCompletionProvider.java
+++ b/app/src/cc/arduino/autocomplete/FakeCompletionProvider.java
@@ -3,20 +3,26 @@ package cc.arduino.autocomplete;
import java.util.LinkedList;
import java.util.List;
+import javax.swing.text.JTextComponent;
+
import org.fife.ui.autocomplete.BasicCompletion;
import org.fife.ui.autocomplete.Completion;
-public class FakeCompletionProvider implements CompletionProvider {
-
+import processing.app.syntax.SketchTextArea;
+public class FakeCompletionProvider extends BaseCCompletionProvider {
+
@Override
- public List<Completion> getSuggestions(CompletionContext context) {
+ protected List<Completion> getCompletionsImpl(JTextComponent comp) {
List<Completion> list = new LinkedList<>();
- list.add(new BasicCompletion(context.getDelegate(), "Text: " + context.getAlreadyEnteredText()));
- list.add(new BasicCompletion(context.getDelegate(), "Line: " + context.getLineNumber()));
+
+ SketchTextArea area = (SketchTextArea) comp;
+
+ list.add(new BasicCompletion(this, "Text: " + getAlreadyEnteredText(comp)));
+ list.add(new BasicCompletion(this, "Line: " + area.getCaretLineNumber()));
return list;
}
-
+
}
diff --git a/app/src/cc/arduino/autocomplete/rsyntax/SketchCompletionProvider.java b/app/src/cc/arduino/autocomplete/SketchCompletionProvider.java
index 39a609d62..7c233209a 100755
--- a/app/src/cc/arduino/autocomplete/rsyntax/SketchCompletionProvider.java
+++ b/app/src/cc/arduino/autocomplete/SketchCompletionProvider.java
@@ -1,33 +1,27 @@
-package cc.arduino.autocomplete.rsyntax;
+package cc.arduino.autocomplete;
+import org.fife.ui.autocomplete.CompletionProvider;
import org.fife.ui.autocomplete.LanguageAwareCompletionProvider;
-import cc.arduino.autocomplete.CompletionContext;
-import cc.arduino.autocomplete.CompletionProvider;
import processing.app.Sketch;
import processing.app.syntax.SketchTextArea;
-
/**
* CompletionProvider for Arduino/CPP Language. <br/>
- * Setup basic logic for completions using {@link LanguageAwareCompletionProvider}
- * Filtering and decision will appear in the autocomplete dialog by implementations of: {@link CompletionProvider}. <br/>
+ * Setup basic logic for completions using {@link LanguageAwareCompletionProvider}. <br/>
+ * Filtering and decision will appear in the autocomplete dialog by implementations of: {@link CompletionProvider}.<br/>
*
* @author Ricardo JL Rufino (ricardo@criativasoft.com.br)
* @date 28/04/2017
*/
-public class SketchCompletionProvider extends LanguageAwareCompletionProvider{
-
+public class SketchCompletionProvider extends LanguageAwareCompletionProvider {
+
public SketchCompletionProvider(Sketch sketch, SketchTextArea textArea, CompletionProvider provider) {
- CompletionContext context = new CompletionContext(sketch, textArea, this);
-
- setDefaultCompletionProvider(new CompletionProviderBridge(context, provider));
-// provider.setParameterChoicesProvider(new ParameterChoicesProvider(this));
-// provider.setParameterizedCompletionParams('(', ", ", ')');
-
+ setDefaultCompletionProvider(provider);
+ // provider.setParameterChoicesProvider(new ParameterChoicesProvider(this));
+ // provider.setParameterizedCompletionParams('(', ", ", ')');
+
}
-
-
} \ No newline at end of file
diff --git a/app/src/cc/arduino/autocomplete/rsyntax/CompletionProviderBridge.java b/app/src/cc/arduino/autocomplete/rsyntax/CompletionProviderBridge.java
deleted file mode 100755
index 547668fcd..000000000
--- a/app/src/cc/arduino/autocomplete/rsyntax/CompletionProviderBridge.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package cc.arduino.autocomplete.rsyntax;
-
-import java.util.List;
-
-import javax.swing.text.JTextComponent;
-
-import org.fife.ui.autocomplete.Completion;
-import org.fife.ui.autocomplete.DefaultCompletionProvider;
-
-import cc.arduino.autocomplete.CompletionContext;
-import cc.arduino.autocomplete.CompletionProvider;
-
-public class CompletionProviderBridge extends DefaultCompletionProvider{
-
- private CompletionProvider provider;
-
- private CompletionContext context;
-
- public CompletionProviderBridge(CompletionContext context, CompletionProvider provider) {
- this.provider = provider;
- this.context = context;
- }
-
-
- @Override
- public List<Completion> getCompletionsImpl(JTextComponent comp) {
- return provider.getSuggestions(context);
-
- }
-
- @Override
- protected boolean isValidChar(char ch) {
- return super.isValidChar(ch) || '.' == ch || '>' == ch || '-' == ch || '<' == ch || '#' == ch || ':' == ch /**|| getParameterListStart() == ch */;
- }
-
-}
diff --git a/app/src/processing/app/syntax/SketchTextArea.java b/app/src/processing/app/syntax/SketchTextArea.java
index d83c5e014..95a5ec7ab 100644
--- a/app/src/processing/app/syntax/SketchTextArea.java
+++ b/app/src/processing/app/syntax/SketchTextArea.java
@@ -91,6 +91,7 @@ import javax.swing.text.Segment;
import org.apache.commons.compress.utils.IOUtils;
import org.fife.ui.autocomplete.AutoCompletion;
+import org.fife.ui.autocomplete.CompletionProvider;
import org.fife.ui.rsyntaxtextarea.LinkGenerator;
import org.fife.ui.rsyntaxtextarea.LinkGeneratorResult;
import org.fife.ui.rsyntaxtextarea.RSyntaxDocument;
@@ -103,8 +104,7 @@ import org.fife.ui.rsyntaxtextarea.TokenTypes;
import org.fife.ui.rtextarea.RTextArea;
import org.fife.ui.rtextarea.RTextAreaUI;
-import cc.arduino.autocomplete.CompletionProvider;
-import cc.arduino.autocomplete.rsyntax.SketchCompletionProvider;
+import cc.arduino.autocomplete.SketchCompletionProvider;
import processing.app.Base;
import processing.app.BaseNoGui;
import processing.app.PreferencesData;
@@ -123,8 +123,6 @@ public class SketchTextArea extends RSyntaxTextArea {
private PdeKeywords pdeKeywords;
- private SketchCompletionProvider completionProvider;
-
public SketchTextArea(RSyntaxDocument document, PdeKeywords pdeKeywords) throws IOException {
super(document);
this.pdeKeywords = pdeKeywords;
@@ -139,9 +137,9 @@ public class SketchTextArea extends RSyntaxTextArea {
public void setupAutoComplete(Sketch sketch, CompletionProvider provider) {
- this.completionProvider = new SketchCompletionProvider(sketch, this, provider);
+ SketchCompletionProvider completionProvider = new SketchCompletionProvider(sketch, this, provider);
- AutoCompletion ac = new AutoCompletion( this.completionProvider);
+ AutoCompletion ac = new AutoCompletion( completionProvider );
ac.setAutoActivationEnabled(true);
ac.setShowDescWindow(false);
diff --git a/arduino-core/src/processing/app/SketchFile.java b/arduino-core/src/processing/app/SketchFile.java
index 9e0f18732..35682da60 100644
--- a/arduino-core/src/processing/app/SketchFile.java
+++ b/arduino-core/src/processing/app/SketchFile.java
@@ -247,10 +247,6 @@ public class SketchFile {
return (o instanceof SketchFile) && file.equals(((SketchFile) o).file);
}
- public Sketch getSketch() {
- return sketch;
- }
-
/**
* Load this piece of code from a file and return the contents. This
* completely ignores any changes in the linked storage, if any, and