blob: 6f82eaa09938cdf6289f8909d84fb8f4f3a38ef9 [file] [log] [blame]
/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */
/*
Part of the Processing project - http://processing.org
Copyright (c) 2006 Ben Fry and Casey Reas
This program 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package processing.app.tools;
import processing.app.*;
import processing.core.*;
import static processing.app.I18n._;
import java.io.*;
/**
* Tool for auto-formatting code that interfaces to
* <A HREF="http://jalopy.sourceforge.net/">Jalopy</A>. This is to replace
* the buggy code formatter found in previous releases.
*/
public class AutoFormat {
Editor editor;
public AutoFormat(Editor editor) {
this.editor = editor;
}
public void show() {
String originalText = editor.textarea.getText();
int indentSize = Preferences.getInteger("editor.tabs.size");
//
String formattedText = null; //strOut.toString();
if (formattedText.equals(originalText)) {
editor.message(_("No changes necessary for Auto Format."));
} else {
// replace with new bootiful text
// selectionEnd hopefully at least in the neighborhood
editor.setText(formattedText, selectionEnd, selectionEnd);
editor.sketch.setModified(true);
/*
// warn user if there are too many parens in either direction
if (paren != 0) {
editor.error("Warning: Too many " +
((paren < 0) ? "right" : "left") +
" parentheses.");
} else if (c_level != 0) { // check braces only if parens are ok
editor.error("Warning: Too many " +
((c_level < 0) ? "right" : "left") +
" curly braces.");
} else {
editor.message("Auto Format finished.");
}
*/
}
}
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
private static class PluginImpl extends AbstractPlugin {
JEditStatusBar statusBar;
Project project;
/**
* Creates a new PluginImpl object.
*/
public PluginImpl()
{
super(new JEditAppender());
}
public Project getActiveProject()
{
if (this.project == null)
{
this.project = new JEditProject();
}
return this.project;
}
public FileFormat getFileFormat()
{
// there is a bug(?) in jEdit's text area whereas inserting text with
// DOS file format results in displaying EOF characters, so we always
// use UNIX format and let jEdit handle the specified file format upon
// file saving
return FileFormat.UNIX;
}
public Frame getMainWindow()
{
return jEdit.getActiveView();
}
public StatusBar getStatusBar()
{
return this.statusBar;
}
public void afterEnd()
{
super.afterEnd();
MessageView.getInstance().update();
}
/**
* Formats the currently active buffer.
*/
public void formatActive()
{
// only perform the action if the current Buffer contains
// a Java source file
//if (isJava(jEdit.getActiveView().getBuffer()))
//{
performAction(Action.FORMAT_ACTIVE);
//}
}
/**
* Formats the currently open buffers.
*/
public void formatOpen()
{
performAction(Action.FORMAT_OPEN);
}
}
}