Skip to content

Commit f20d512

Browse files
committed
ClangFormat is no more a Tool
Being a plugin Tool is not mandatory and, in this case, it just makes things more complicated without any evident benefit.
1 parent 7ef8b06 commit f20d512

File tree

3 files changed

+18
-30
lines changed

3 files changed

+18
-30
lines changed

app/src/cc/arduino/packages/formatter/clangformat/ClangFormat.java

+2-12
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,14 @@
4343
import processing.app.Base;
4444
import processing.app.Editor;
4545
import processing.app.helpers.ProcessUtils;
46-
import processing.app.tools.Tool;
4746

48-
public class ClangFormat implements Tool {
47+
public class ClangFormat implements Runnable {
4948

5049
private final String clangExecutable = Base.getContentFile("clang-format")
5150
.getAbsolutePath();
5251
private Editor editor;
5352

54-
public ClangFormat() {
55-
}
56-
57-
@Override
58-
public void init(Editor editor) {
53+
public ClangFormat(Editor editor) {
5954
this.editor = editor;
6055
}
6156

@@ -77,11 +72,6 @@ public void run() {
7772
}
7873
}
7974

80-
@Override
81-
public String getMenuTitle() {
82-
return tr("Auto Format");
83-
}
84-
8575
private Thread copyAndClose(InputStream input, OutputStream output) {
8676
Thread t = new Thread(() -> {
8777
try {

app/src/processing/app/Editor.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
import cc.arduino.packages.BoardPort;
9090
import cc.arduino.packages.MonitorFactory;
9191
import cc.arduino.packages.Uploader;
92+
import cc.arduino.packages.formatter.clangformat.ClangFormat;
9293
import cc.arduino.packages.uploaders.SerialUploader;
9394
import cc.arduino.view.GoToLineNumber;
9495
import cc.arduino.view.StubMenuListener;
@@ -236,11 +237,13 @@ public boolean test(SketchController controller) {
236237

237238
private Map<String, Tool> internalToolCache = new HashMap<String, Tool>();
238239

240+
final ClangFormat formatter;
241+
239242
public Editor(Base ibase, File file, int[] storedLocation, int[] defaultLocation, Platform platform) throws Exception {
240243
super("Arduino");
241244
this.base = ibase;
242245
this.platform = platform;
243-
246+
this.formatter = new ClangFormat(this);
244247
Base.setIcon(this);
245248

246249
// Install default actions for Run, Present, etc.
@@ -981,14 +984,12 @@ private Tool getOrCreateToolInstance(String className) {
981984
}
982985

983986
private void addInternalTools(JMenu menu) {
984-
JMenuItem formatItem = createToolMenuItem("cc.arduino.packages.formatter.clangformat.ClangFormat");
985-
if (formatItem == null) {
986-
throw new NullPointerException("Tool cc.arduino.packages.formatter.clangformat.ClangFormat");
987-
}
988-
formatItem.setName("menuToolsAutoFormat");
987+
JMenuItem autoFormat = new JMenuItem(tr("Auto Format"));
988+
autoFormat.setName("menuToolsAutoFormat");
989+
autoFormat.addActionListener(event -> SwingUtilities.invokeLater(formatter));
989990
int modifiers = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
990-
formatItem.setAccelerator(KeyStroke.getKeyStroke('T', modifiers));
991-
menu.add(formatItem);
991+
autoFormat.setAccelerator(KeyStroke.getKeyStroke('T', modifiers));
992+
menu.add(autoFormat);
992993

993994
// menu.add(createToolMenuItem("processing.app.tools.CreateFont"));
994995
// menu.add(createToolMenuItem("processing.app.tools.ColorSelector"));
@@ -1893,8 +1894,7 @@ private boolean handleSave2() {
18931894
boolean saved = false;
18941895
try {
18951896
if (PreferencesData.getBoolean("editor.autoformat_currentfile_before_saving")) {
1896-
Tool formatTool = getOrCreateToolInstance("cc.arduino.packages.formatter.AStyle");
1897-
formatTool.run();
1897+
formatter.run();
18981898
}
18991899

19001900
boolean wasReadOnly = sketchController.isReadOnly();

app/src/processing/app/EditorTab.java

+6-8
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import javax.swing.JMenuItem;
4040
import javax.swing.JPanel;
4141
import javax.swing.JPopupMenu;
42+
import javax.swing.SwingUtilities;
4243
import javax.swing.ToolTipManager;
4344
import javax.swing.border.MatteBorder;
4445
import javax.swing.event.PopupMenuEvent;
@@ -197,15 +198,12 @@ private void configurePopupMenu(final SketchTextArea textarea){
197198

198199
menu.addSeparator();
199200

200-
JMenuItem item = editor.createToolMenuItem("cc.arduino.packages.formatter.AStyle");
201-
if (item == null) {
202-
throw new NullPointerException("Tool cc.arduino.packages.formatter.AStyle unavailable");
203-
}
204-
item.setName("menuToolsAutoFormat");
205-
206-
menu.add(item);
201+
JMenuItem autoFormat = new JMenuItem(tr("Auto Format"));
202+
autoFormat.addActionListener(event -> SwingUtilities.invokeLater(editor.formatter));
203+
autoFormat.setName("menuToolsAutoFormat");
204+
menu.add(autoFormat);
207205

208-
item = new JMenuItem(tr("Comment/Uncomment"), '/');
206+
JMenuItem item = new JMenuItem(tr("Comment/Uncomment"), '/');
209207
item.addActionListener(new ActionListener() {
210208
public void actionPerformed(ActionEvent e) {
211209
handleCommentUncomment();

0 commit comments

Comments
 (0)