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:
committed by
Federico Fissore
parent
45094a9d52
commit
1e61cd6b4c
@ -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);
|
||||
|
@ -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());
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user