Skip to content

[IDE] Add support for selectable, user-defined and pre-packaged themes contained in zip files #7124

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
d6563bd
Wrap the discoverers into separate threads
facchinm Sep 22, 2017
ba76927
fix NPE if CLI upload is used
facchinm Sep 30, 2017
31ce3a5
adding arduino-linux-setup.sh script
artynet Mar 10, 2017
d104123
adding arduino-linux-setup.sh call in install.sh script
artynet Mar 10, 2017
72f5b2c
adding project URL and minor bugfixing
artynet Mar 11, 2017
e776851
fixing again blank spaces / tabs
artynet Mar 11, 2017
78f2cf7
fixing spaces/tabs if...else condition
artynet Mar 11, 2017
bf7d2ad
adding DFU mode UDEV rule for Arduino 101
artynet Mar 11, 2017
6cf2a37
now *.rules files are created in /tmp folder
artynet Mar 24, 2017
e1df9ca
disable autolaunch of linux-setup
facchinm Sep 11, 2017
685d59f
Save file line by line taking care of OS EOL
facchinm Oct 16, 2017
b2e1422
Update jmdns to 3.5.3
facchinm Oct 19, 2017
65058b8
Make board disappear via ttl instead then reachability
facchinm Oct 19, 2017
c219f8a
Add on-hover selection on Board/Library manager
facchinm Oct 2, 2017
f998e98
[Lib/Board Manager] Give some padding to the dropdown lists
facchinm Oct 11, 2017
bcdc698
Solve mouseover + dropdown deadly combo
facchinm Nov 9, 2017
0ce8c5a
Fix category selection missing first input
facchinm Nov 10, 2017
ad449e7
Add watcher on sketch files
facchinm Sep 11, 2017
f019439
Avoid firing watcher if it failed to start proviously
facchinm Sep 11, 2017
af93b9c
Use WindowListener instead than FocusListener to spawn watcher
facchinm Oct 16, 2017
90eb161
watcher: move repaint to main thread
facchinm Oct 16, 2017
bce9b4c
Only reload tabs if not in modified state
facchinm Oct 17, 2017
249bf8d
Extend UpdatableBoardsLibsFakeURLsHandler to handle real links
facchinm Jan 5, 2017
b1653ea
Add clickable HTML view of Serial Monitor
facchinm Jan 9, 2017
ec2aba7
parallelize additional jsons download
facchinm Sep 11, 2017
2e35d8b
Avoid using incomplete tmp file for board manager jsons
facchinm Sep 11, 2017
2e8e21e
Shift tabs if selected one if being painted offscreen
facchinm Sep 11, 2017
4096f3e
Implement MouseWheelListener on tabs
facchinm Sep 13, 2017
3225fdf
Avoid board change during compilation/upload
facchinm Mar 22, 2017
f4855ef
Fix Increase/Decrease font size for different keyboard layouts
facchinm Sep 13, 2017
d19260a
Move AVR core to its own repo
facchinm Sep 20, 2017
10c7b4b
Download the bundled core as any other tool
facchinm Sep 20, 2017
e346ff4
fixed eclipse (neon) classpath
ricardojlrufino Apr 28, 2017
90e156f
Base implementation of autocomplete #849
ricardojlrufino Apr 29, 2017
75d5a2f
Refactoring autocomplete structure
ricardojlrufino May 4, 2017
bc76e17
fix windows build - add autocomplete libs
ricardojlrufino May 4, 2017
d915fea
Introducing arduino-preprocessor (linux64 only for now)
cmaglie Jun 8, 2017
df39eaf
pr-builder: Build linux64 first
cmaglie Jun 9, 2017
3c8c93b
Testing autocomplete with arduino-preprocessor
cmaglie May 15, 2017
8471b9e
Added CompletionsRenderer
cmaglie Jun 7, 2017
962cdb9
Added some more infos in CompletionDetails
cmaglie Jun 7, 2017
9fb728d
Use FunctionCompletion when dealing with function autocompletions
cmaglie Jun 7, 2017
52f0e90
include autocomplete icons in pde.jar
facchinm Aug 3, 2017
770f8dc
Change links for arduino-builder + preprocessor
facchinm Aug 3, 2017
21f0521
codecompletion: added function parameters support.
cmaglie Aug 3, 2017
c4486c5
Added missing licenses
cmaglie Aug 7, 2017
6ae22f7
Added method to determine board FQBN
cmaglie Sep 25, 2017
6426d07
Created getAllHardwareFolders and getAllToolsFolders
cmaglie Sep 25, 2017
9c44949
Calling arduino builder with GPRC API [experimental]
cmaglie Sep 25, 2017
92a69a1
Removed unused import
cmaglie Sep 25, 2017
7508eb8
Windows: add grpc jars to classpath
facchinm Sep 30, 2017
2a67477
eclipse: add autocomplete to classpath
facchinm Oct 5, 2017
5b39593
cache + sort for autocomplete
facchinm Oct 5, 2017
3326fb9
autocomplete: restore braces on functions
facchinm Oct 10, 2017
15dbe71
Refactored notification popup
cmaglie Oct 12, 2017
b26c47d
Increase debugging info in json parsing from autocomplete
cmaglie Oct 12, 2017
554edcb
Added more debugging output for codecompletion errors
cmaglie Oct 12, 2017
6fa3c47
Remove autocomplete for macros
facchinm Oct 13, 2017
f2fe641
autocompletion: factored filtering of completions
cmaglie Oct 16, 2017
d65f5eb
autocomplete: extracted ArduinoCompletion to Completion generation me…
cmaglie Oct 17, 2017
d96c707
autocomplete: improved rendering of completions
cmaglie Oct 17, 2017
d09aa99
[REMOVEME] Add Beta graphics and icons
facchinm Oct 10, 2017
d697959
Change revision to 1.9.0 Beta
facchinm Oct 2, 2017
bf216d5
eclipse: fix full ide project
facchinm Oct 18, 2017
58b0a84
Add symlink support for Windows
facchinm Dec 7, 2017
8dd40eb
Output column info from compiler error when available
cmaglie Nov 7, 2017
c539f7a
rescan libraries when installing from zip file
facchinm Dec 7, 2017
8c2a237
SaveAs should preserve the folder structure if user selected a sketch
facchinm Dec 11, 2017
3904570
use arduino-builder PR250
facchinm Sep 28, 2017
4ad7ed8
Apply on-the-fly setFontSize to Console
facchinm Dec 15, 2017
13d6b25
[Win] Move recoverDefaultSketchbookFolder after init() stage
facchinm Jan 10, 2018
f113a76
Support user-defined theme elements via "theme" folder in sketchbook dir
Mumfrey Jan 10, 2018
3317e84
Merge pull request #7115 from Mumfrey/feature/user-defined-themes
facchinm Jan 12, 2018
8cadab1
Support selectable, user-defined themes contained in zip files
Mumfrey Jan 12, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 3 additions & 2 deletions .classpath
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
<classpathentry kind="src" path="app/test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="app/lib/apple.jar"/>
<classpathentry kind="lib" path="app/lib/ecj.jar"/>
<classpathentry kind="lib" path="app/test-lib/junit-4.11.jar"/>
<classpathentry kind="lib" path="app/test-lib/fest-assert-1.2.jar"/>
<classpathentry kind="lib" path="app/test-lib/fest-reflect-1.2.jar"/>
Expand All @@ -19,7 +18,6 @@
<classpathentry kind="lib" path="app/lib/jmdns-3.5.1.jar"/>
<classpathentry kind="lib" path="app/lib/slf4j-api-1.7.22.jar"/>
<classpathentry kind="lib" path="app/lib/jsch-0.1.50.jar"/>
<classpathentry kind="lib" path="app/lib/jssc-2.8.0.jar"/>
<classpathentry kind="lib" path="app/lib/bcpg-jdk15on-152.jar"/>
<classpathentry kind="lib" path="app/lib/bcprov-jdk15on-152.jar"/>
<classpathentry kind="lib" path="app/lib/jackson-core-2.6.3.jar"/>
Expand All @@ -28,5 +26,8 @@
<classpathentry kind="lib" path="app/lib/jackson-annotations-2.6.3.jar"/>
<classpathentry kind="lib" path="app/lib/commons-compress-1.8.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/arduino-core"/>
<classpathentry kind="lib" path="app/lib/jssc-2.8.0-arduino1.jar"/>
<classpathentry kind="lib" path="app/lib/java-semver-0.8.0.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/app"/>
<classpathentry kind="output" path="app/bin"/>
</classpath>
5 changes: 3 additions & 2 deletions app/.classpath
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
<classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry combineaccessrules="false" kind="src" path="/arduino-core"/>
<classpathentry kind="output" path="bin"/>
<classpathentry kind="lib" path="lib/apple.jar"/>
<classpathentry kind="lib" path="lib/batik-1.8.jar"/>
<classpathentry kind="lib" path="lib/batik-anim-1.8.jar"/>
Expand Down Expand Up @@ -38,7 +37,7 @@
<classpathentry kind="lib" path="lib/jackson-databind-2.6.3.jar"/>
<classpathentry kind="lib" path="lib/jackson-module-mrbean-2.6.3.jar"/>
<classpathentry kind="lib" path="lib/java-semver-0.8.0.jar"/>
<classpathentry kind="lib" path="lib/jmdns-3.5.1.jar"/>
<classpathentry kind="lib" path="lib/jmdns-3.5.3.jar"/>
<classpathentry kind="lib" path="lib/slf4j-api-1.7.22.jar"/>
<classpathentry kind="lib" path="lib/slf4j-simple-1.7.22.jar"/>
<classpathentry kind="lib" path="lib/jsch-0.1.50.jar"/>
Expand All @@ -53,4 +52,6 @@
<classpathentry kind="lib" path="test-lib/fest-swing-1.2.jar"/>
<classpathentry kind="lib" path="test-lib/fest-util-1.1.2.jar"/>
<classpathentry kind="lib" path="test-lib/jcip-annotations-1.0.jar"/>
<classpathentry kind="lib" path="lib/autocomplete-2.6.1.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
2 changes: 1 addition & 1 deletion app/.project
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>processing</name>
<name>app</name>
<comment></comment>
<projects>
</projects>
Expand Down
4 changes: 3 additions & 1 deletion app/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@
</target>

<target name="build" depends="compile" description="Build PDE">
<jar basedir="bin" destfile="pde.jar" />
<jar basedir="bin" destfile="pde.jar" >
<fileset dir="src" includes="**/icons/**" />
</jar>
</target>
</project>
Binary file added app/lib/autocomplete-2.6.1.jar
Binary file not shown.
Binary file removed app/lib/jmdns-3.5.1.jar
Binary file not shown.
Binary file added app/lib/jmdns-3.5.3.jar
Binary file not shown.
6 changes: 5 additions & 1 deletion app/src/cc/arduino/ConsoleOutputStream.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
*/
public class ConsoleOutputStream extends ByteArrayOutputStream {

private final SimpleAttributeSet attributes;
private SimpleAttributeSet attributes;
private final PrintStream printStream;
private final Timer timer;

Expand All @@ -73,6 +73,10 @@ public ConsoleOutputStream(SimpleAttributeSet attributes, PrintStream printStrea
timer.setRepeats(false);
}

public void setAttibutes(SimpleAttributeSet attributes) {
this.attributes = attributes;
}

public void setCurrentEditorConsole(EditorConsole console) {
this.editorConsole = console;
}
Expand Down
16 changes: 16 additions & 0 deletions app/src/cc/arduino/UpdatableBoardsLibsFakeURLsHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import java.net.URL;
import java.net.URI;
import java.awt.Desktop;
import java.io.IOException;
import java.net.URISyntaxException;

public class UpdatableBoardsLibsFakeURLsHandler implements HyperlinkListener {

Expand Down Expand Up @@ -71,6 +75,18 @@ public void openBoardLibManager(URL url) {
return;
}

if(Desktop.isDesktopSupported())
{
try {
Desktop.getDesktop().browse(url.toURI());
return;
} catch (IOException e) {
throw new IllegalArgumentException(url.getHost() + " is invalid");
} catch (URISyntaxException e) {
throw new IllegalArgumentException(url.getHost() + " is invalid");
}
}

throw new IllegalArgumentException(url.getHost() + " is invalid");

}
Expand Down
134 changes: 134 additions & 0 deletions app/src/cc/arduino/autocomplete/ArduinoCompletionsList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/*
* This file is part of Arduino.
*
* Copyright 2017 Arduino LLC (http://www.arduino.cc/)
*
* Arduino is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*/

package cc.arduino.autocomplete;

import java.util.ArrayList;
import java.util.List;

public class ArduinoCompletionsList extends ArrayList<ArduinoCompletion> {
}

class ArduinoCompletion {
ArduinoCompletionDetail completion;
String type;
String location;
List<ArduinoParameter> parameters;

public ArduinoCompletionDetail getCompletion() {
return completion;
}

public String getType() {
return type;
}

public String getLocation() {
return location;
}

public List<ArduinoParameter> getParameters() {
return parameters;
}
}

class ArduinoParameter {
String name;
String type;

public String getName() {
return name;
}

public String getType() {
return type;
}
}

class ArduinoCompletionDetail {
List<CompletionChunk> chunks;
String brief;

public List<CompletionChunk> getChunks() {
return chunks;
}

public String getBrief() {
return brief;
}

public String getResultType() {
for (CompletionChunk c : chunks) {
if (c.res != null)
return c.res;
}
return null;
}

public String getTypedText() {
for (CompletionChunk c : chunks) {
if (c.typedtext != null)
return c.typedtext;
}
return null;
}
}

class CompletionChunk {
String typedtext;
String t;
String placeholder;
String res;
String info;
ArduinoCompletionDetail optional;

public String getTypedtext() {
return typedtext;
}

public String getT() {
return t;
}

public String getPlaceholder() {
return placeholder;
}

public String getRes() {
return res;
}

public ArduinoCompletionDetail getOptional() {
return optional;
}

public String getInfo() {
return info;
}
}
42 changes: 42 additions & 0 deletions app/src/cc/arduino/autocomplete/BaseCCompletionProvider.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* This file is part of Arduino.
*
* Copyright 2017 Arduino LLC (http://www.arduino.cc/)
* Ricardo JL Rufino ([email protected])
*
* Arduino is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*/

package cc.arduino.autocomplete;

import org.fife.ui.autocomplete.DefaultCompletionProvider;

public class BaseCCompletionProvider extends DefaultCompletionProvider {

@Override
protected boolean isValidChar(char ch) {
return super.isValidChar(ch) || '.' == ch || '>' == ch || '-' == ch || '<' == ch || '#' == ch || ':' == ch /**|| getParameterListStart() == ch */;
}

}
Loading