1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-30 16:24:09 +03:00

preferences for syntax highlighting theme

This commit is contained in:
ricardo.jl.rufino
2015-04-22 16:57:34 -03:00
committed by Federico Fissore
parent 45094a9d52
commit 1e61cd6b4c
6 changed files with 190 additions and 14 deletions

View File

@ -253,11 +253,11 @@ public class Editor extends JFrame implements RunnerListener {
lineStatus = new EditorLineStatus(textarea);
consolePanel.add(lineStatus, BorderLayout.SOUTH);
//scrollPane = new RTextScrollPane(textarea);
// RTextScrollPane
scrollPane = new RTextScrollPane(textarea, true);
scrollPane.setViewportBorder(BorderFactory.createEmptyBorder());
scrollPane.setIconRowHeaderEnabled(true);
scrollPane.setLineNumbersEnabled(Preferences.getBoolean("editor.linenumbers"));
scrollPane.setIconRowHeaderEnabled(false);
Gutter gutter = scrollPane.getGutter();
gutter.setBookmarkingEnabled(false);
@ -450,7 +450,7 @@ public class Editor extends JFrame implements RunnerListener {
saveMenuItem.setEnabled(!external);
saveAsMenuItem.setEnabled(!external);
textarea.setMarginLineEnabled(PreferencesData.getBoolean("editor.linenumbers"));
scrollPane.setLineNumbersEnabled(PreferencesData.getBoolean("editor.linenumbers"));
if (external) {
// disable line highlight and turn off the caret when disabling
@ -479,6 +479,8 @@ public class Editor extends JFrame implements RunnerListener {
//sketchbook.rebuildMenus();
// For 0126, moved into Base, which will notify all editors.
//base.rebuildMenusAsync();
textarea.setTheme(Preferences.get("editor.syntax_theme"));
}
@ -956,6 +958,7 @@ public class Editor extends JFrame implements RunnerListener {
SketchTextArea textArea = new SketchTextArea();
textArea.requestFocusInWindow();
textArea.setMarkOccurrences(true);
textArea.setMarginLineEnabled(false);
textArea.setCodeFoldingEnabled(PreferencesData.getBoolean("editor.codefolding"));
textArea.setAntiAliasingEnabled(PreferencesData.getBoolean("editor.antialias"));
// textArea.setClearWhitespaceLinesEnabled(false);

View File

@ -230,6 +230,7 @@ public class Preferences {
JCheckBox autoAssociateBox;
JComboBox comboLanguage;
JComboBox comboWarnings;
JComboBox comboSyntaxThemes;
JCheckBox saveVerifyUploadBox;
JTextField proxyHTTPServer;
JTextField proxyHTTPPort;
@ -357,7 +358,27 @@ public class Preferences {
fontSizeField.setText(String.valueOf(editorFont.getSize()));
top += d.height + GUI_BETWEEN;
// Syntax Coloring [ ]
box = Box.createHorizontalBox();
label = new JLabel(_("Syntax Coloring: "));
box.add(label);
String[] syntaxThemes = new String[]{"default","dark"};
comboSyntaxThemes = new JComboBox(syntaxThemes);
String currentTheme = PreferencesData.get("editor.syntax_theme", "default");
for (String item : syntaxThemes) {
if (currentTheme.equals(item)) {
comboSyntaxThemes.setSelectedItem(item);
}
}
box.add(comboSyntaxThemes);
pane.add(box);
d = box.getPreferredSize();
box.setForeground(Color.gray);
box.setBounds(left, top, d.width, d.height);
right = Math.max(right, left + d.width);
top += d.height + GUI_BETWEEN;
// Show verbose output during: [ ] compilation [ ] upload
box = Box.createHorizontalBox();
@ -746,6 +767,7 @@ public class Preferences {
PreferencesData.set("sketchbook.path", newPath);
}
PreferencesData.set("editor.syntax_theme", comboSyntaxThemes.getSelectedItem().toString());
PreferencesData.setBoolean("editor.external", externalEditorBox.isSelected());
PreferencesData.setBoolean("update.check", checkUpdatesBox.isSelected());
PreferencesData.setBoolean("editor.save_on_verify", saveVerifyUploadBox.isSelected());

View File

@ -21,14 +21,12 @@ import javax.swing.text.Segment;
import javax.swing.undo.UndoManager;
import org.fife.ui.rsyntaxtextarea.*;
import org.fife.ui.rsyntaxtextarea.Theme;
import org.fife.ui.rsyntaxtextarea.Token;
import org.fife.ui.rsyntaxtextarea.focusabletip.FocusableTip;
import org.fife.ui.rtextarea.RUndoManager;
import processing.app.Base;
import processing.app.BaseNoGui;
import processing.app.EditorLineStatus;
import processing.app.EditorListener;
import processing.app.*;
/**
* Arduino Sketch code editor based on RSyntaxTextArea (http://fifesoft.com/rsyntaxtextarea)
@ -57,9 +55,18 @@ public class SketchTextArea extends RSyntaxTextArea {
protected void installFeatures(){
setTheme(PreferencesData.get("editor.syntax_theme", "default"));
setLinkGenerator(new DocLinkGenerator());
fixControlTab();
installTokenMaker();
}
public void setTheme(String name){
FileInputStream defaultXmlInputStream = null;
try {
defaultXmlInputStream = new FileInputStream(new File(BaseNoGui.getContentFile("lib"), "theme/syntax/default.xml"));
defaultXmlInputStream = new FileInputStream(new File(BaseNoGui.getContentFile("lib"), "theme/syntax/"+name+".xml"));
Theme theme = Theme.load(defaultXmlInputStream);
theme.apply(this);
} catch (IOException e) {
@ -73,11 +80,6 @@ public class SketchTextArea extends RSyntaxTextArea {
}
}
}
setLinkGenerator(new DocLinkGenerator());
fixControlTab();
installTokenMaker();
}
// Removing the default focus traversal keys