mirror of
https://github.com/processing/processing4.git
synced 2026-02-03 13:49:18 +01:00
move debugging location and fix method names
This commit is contained in:
@@ -110,10 +110,10 @@ public class DebugEditor extends JavaEditor implements ActionListener {
|
||||
|
||||
// load settings from theme.txt
|
||||
DebugMode theme = dmode;
|
||||
breakpointColor = theme.loadColorFromTheme("breakpoint.bgcolor", breakpointColor);
|
||||
breakpointMarkerColor = theme.loadColorFromTheme("breakpoint.marker.color", breakpointMarkerColor);
|
||||
currentLineColor = theme.loadColorFromTheme("currentline.bgcolor", currentLineColor);
|
||||
currentLineMarkerColor = theme.loadColorFromTheme("currentline.marker.color", currentLineMarkerColor);
|
||||
breakpointColor = theme.getThemeColor("breakpoint.bgcolor", breakpointColor);
|
||||
breakpointMarkerColor = theme.getThemeColor("breakpoint.marker.color", breakpointMarkerColor);
|
||||
currentLineColor = theme.getThemeColor("currentline.bgcolor", currentLineColor);
|
||||
currentLineMarkerColor = theme.getThemeColor("currentline.marker.color", currentLineMarkerColor);
|
||||
|
||||
// set breakpoints from marker comments
|
||||
for (LineID lineID : stripBreakpointComments()) {
|
||||
|
||||
@@ -35,14 +35,13 @@ import processing.mode.java.JavaMode;
|
||||
* @author Martin Leopold <m@martinleopold.com>
|
||||
*/
|
||||
public class DebugMode extends JavaMode {
|
||||
public static final boolean VERBOSE_LOGGING = true;
|
||||
//public static final boolean VERBOSE_LOGGING = false;
|
||||
public static final int LOG_SIZE = 512 * 1024; // max log file size (in bytes)
|
||||
|
||||
public static final boolean VERBOSE_LOGGING = true;
|
||||
public static final int LOG_SIZE = 524288; // max log file size (in bytes)
|
||||
|
||||
// important inherited fields:
|
||||
// protected Base base;
|
||||
public DebugMode(Base base, File folder) {
|
||||
super(base, folder);
|
||||
|
||||
public DebugMode(Base base, File folder) {
|
||||
super(base, folder);
|
||||
|
||||
// use libraries folder from javamode. will make sketches using core libraries work, as well as import libraries and examples menus
|
||||
// for (Mode m : base.getModeList()) {
|
||||
@@ -54,125 +53,106 @@ public class DebugMode extends JavaMode {
|
||||
// }
|
||||
// }
|
||||
|
||||
// Fetch examples and reference from java mode
|
||||
// thx to Manindra (https://github.com/martinleopold/DebugMode/issues/4)
|
||||
examplesFolder = Base.getContentFile("modes/java/examples");
|
||||
// https://github.com/martinleopold/DebugMode/issues/6
|
||||
referenceFolder = Base.getContentFile("modes/java/reference");
|
||||
// Fetch examples and reference from java mode
|
||||
// thx to Manindra (https://github.com/martinleopold/DebugMode/issues/4)
|
||||
examplesFolder = Base.getContentFile("modes/java/examples");
|
||||
// https://github.com/martinleopold/DebugMode/issues/6
|
||||
referenceFolder = Base.getContentFile("modes/java/reference");
|
||||
|
||||
// set logging level
|
||||
Logger globalLogger = Logger.getLogger("");
|
||||
//Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); // doesn't work on os x
|
||||
if (VERBOSE_LOGGING) {
|
||||
globalLogger.setLevel(Level.INFO);
|
||||
} else {
|
||||
globalLogger.setLevel(Level.WARNING);
|
||||
}
|
||||
|
||||
// enable logging to file
|
||||
try {
|
||||
File logFile = getContentFile("logs/DebugMode.%g.log");
|
||||
File logFolder = logFile.getParentFile();
|
||||
if (!logFolder.exists()) {
|
||||
logFolder.mkdir();
|
||||
}
|
||||
Handler handler = new FileHandler(logFile.getAbsolutePath(), LOG_SIZE, 10, false);
|
||||
globalLogger.addHandler(handler);
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(DebugMode.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} catch (SecurityException ex) {
|
||||
Logger.getLogger(DebugMode.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
|
||||
// output version from manifest file
|
||||
Package p = DebugMode.class.getPackage();
|
||||
String titleAndVersion = p.getImplementationTitle() + " (v" + p.getImplementationVersion() + ")";
|
||||
//System.out.println(titleAndVersion);
|
||||
Logger.getLogger(DebugMode.class.getName()).log(Level.INFO, titleAndVersion);
|
||||
// set logging level
|
||||
Logger globalLogger = Logger.getLogger("");
|
||||
//Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); // doesn't work on os x
|
||||
if (VERBOSE_LOGGING) {
|
||||
globalLogger.setLevel(Level.INFO);
|
||||
} else {
|
||||
globalLogger.setLevel(Level.WARNING);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the pretty/printable/menu name for this mode. This is separate
|
||||
* from the single word name of the folder that contains this mode. It could
|
||||
* even have spaces, though that might result in sheer madness or total
|
||||
* mayhem.
|
||||
*/
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return "Debug";
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new editor associated with this mode.
|
||||
*/
|
||||
@Override
|
||||
public processing.app.Editor createEditor(Base base, String path, EditorState state) {
|
||||
return new DebugEditor(base, path, state, this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default extension for this editor setup.
|
||||
*/
|
||||
/*
|
||||
* @Override public String getDefaultExtension() { return null; }
|
||||
*/
|
||||
/**
|
||||
* Returns a String[] array of proper extensions.
|
||||
*/
|
||||
/*
|
||||
* @Override public String[] getExtensions() { return null; }
|
||||
*/
|
||||
/**
|
||||
* Get array of file/directory names that needn't be copied during "Save
|
||||
* As".
|
||||
*/
|
||||
/*
|
||||
* @Override public String[] getIgnorable() { return null; }
|
||||
*/
|
||||
/**
|
||||
* Load a String value from theme.txt
|
||||
*
|
||||
* @param attribute the attribute key to load
|
||||
* @param defaultValue the default value
|
||||
* @return the attributes value, or the default value if the attribute
|
||||
* couldn't be loaded
|
||||
*/
|
||||
public String loadStringFromTheme(String attribute, String defaultValue) {
|
||||
String newString = theme.get(attribute);
|
||||
if (newString != null) {
|
||||
return newString;
|
||||
}
|
||||
Logger.getLogger(DebugMode.class.getName()).log(Level.WARNING, "Error loading String: {0}", attribute);
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a Color value from theme.txt
|
||||
*
|
||||
* @param attribute the attribute key to load
|
||||
* @param defaultValue the default value
|
||||
* @return the attributes value, or the default value if the attribute
|
||||
* couldn't be loaded
|
||||
*/
|
||||
public Color loadColorFromTheme(String attribute, Color defaultValue) {
|
||||
Color newColor = theme.getColor(attribute);
|
||||
if (newColor != null) {
|
||||
return newColor;
|
||||
}
|
||||
System.out.println("error loading color: " + attribute);
|
||||
Logger.getLogger(DebugMode.class.getName()).log(Level.WARNING, "Error loading Color: {0}", attribute);
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
public ClassLoader getJavaModeClassLoader() {
|
||||
//return super.getClassLoader();
|
||||
for (Mode m : base.getModeList()) {
|
||||
if (m.getClass() == JavaMode.class) {
|
||||
JavaMode jMode = (JavaMode) m;
|
||||
return jMode.getClassLoader();
|
||||
}
|
||||
// enable logging to file
|
||||
try {
|
||||
// settings is writable for built-in modes, mode folder is not writable
|
||||
File logFolder = Base.getSettingsFile("debug");
|
||||
if (!logFolder.exists()) {
|
||||
logFolder.mkdir();
|
||||
}
|
||||
// badness
|
||||
return null;
|
||||
File logFile = new File(logFolder, "DebugMode.%g.log");
|
||||
Handler handler = new FileHandler(logFile.getAbsolutePath(), LOG_SIZE, 10, false);
|
||||
globalLogger.addHandler(handler);
|
||||
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(DebugMode.class.getName()).log(Level.SEVERE, null, ex);
|
||||
} catch (SecurityException ex) {
|
||||
Logger.getLogger(DebugMode.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
|
||||
// output version from manifest file
|
||||
Package p = DebugMode.class.getPackage();
|
||||
String titleAndVersion = p.getImplementationTitle() + " (v" + p.getImplementationVersion() + ")";
|
||||
//System.out.println(titleAndVersion);
|
||||
Logger.getLogger(DebugMode.class.getName()).log(Level.INFO, titleAndVersion);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getTitle() {
|
||||
return "Experimental";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a new editor associated with this mode.
|
||||
*/
|
||||
@Override
|
||||
public processing.app.Editor createEditor(Base base, String path, EditorState state) {
|
||||
return new DebugEditor(base, path, state, this);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load a String value from theme.txt
|
||||
*
|
||||
* @param attribute the attribute key to load
|
||||
* @param defaultValue the default value
|
||||
* @return the attributes value, or the default value if the attribute
|
||||
* couldn't be loaded
|
||||
*/
|
||||
public String loadThemeString(String attribute, String defaultValue) {
|
||||
String newString = theme.get(attribute);
|
||||
if (newString != null) {
|
||||
return newString;
|
||||
}
|
||||
Logger.getLogger(DebugMode.class.getName()).log(Level.WARNING, "Error loading String: {0}", attribute);
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load a Color value from theme.txt
|
||||
*
|
||||
* @param attribute the attribute key to load
|
||||
* @param defaultValue the default value
|
||||
* @return the attributes value, or the default value if the attribute
|
||||
* couldn't be loaded
|
||||
*/
|
||||
public Color getThemeColor(String attribute, Color defaultValue) {
|
||||
Color newColor = theme.getColor(attribute);
|
||||
if (newColor != null) {
|
||||
return newColor;
|
||||
}
|
||||
System.out.println("error loading color: " + attribute);
|
||||
Logger.getLogger(DebugMode.class.getName()).log(Level.WARNING, "Error loading Color: {0}", attribute);
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
|
||||
public ClassLoader getJavaModeClassLoader() {
|
||||
for (Mode m : base.getModeList()) {
|
||||
if (m.getClass() == JavaMode.class) {
|
||||
JavaMode jMode = (JavaMode) m;
|
||||
return jMode.getClassLoader();
|
||||
}
|
||||
}
|
||||
// badness
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,11 +82,11 @@ public class TextArea extends JEditTextArea {
|
||||
|
||||
// load settings from theme.txt
|
||||
DebugMode theme = (DebugMode) editor.getMode();
|
||||
gutterBgColor = theme.loadColorFromTheme("gutter.bgcolor", gutterBgColor);
|
||||
gutterLineColor = theme.loadColorFromTheme("gutter.linecolor", gutterLineColor);
|
||||
gutterBgColor = theme.getThemeColor("gutter.bgcolor", gutterBgColor);
|
||||
gutterLineColor = theme.getThemeColor("gutter.linecolor", gutterLineColor);
|
||||
gutterPadding = theme.getInteger("gutter.padding");
|
||||
breakpointMarker = theme.loadStringFromTheme("breakpoint.marker", breakpointMarker);
|
||||
currentLineMarker = theme.loadStringFromTheme("currentline.marker", currentLineMarker);
|
||||
breakpointMarker = theme.loadThemeString("breakpoint.marker", breakpointMarker);
|
||||
currentLineMarker = theme.loadThemeString("currentline.marker", currentLineMarker);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user