From: <ez...@us...> - 2008-09-02 17:07:59
|
Revision: 13506 http://jedit.svn.sourceforge.net/jedit/?rev=13506&view=rev Author: ezust Date: 2008-09-02 17:07:48 +0000 (Tue, 02 Sep 2008) Log Message: ----------- Added a null-check to avoid the NPE in console.java added some add'l options for qmake.xml added a some more diagnostic info to StreamThread in the event that the child process terminates before writing anything. Modified Paths: -------------- plugins/Console/trunk/console/Console.java plugins/Console/trunk/console/ConsoleProcess.java plugins/Console/trunk/console/StreamThread.java plugins/Console/trunk/console/commands/qmake.xml Modified: plugins/Console/trunk/console/Console.java =================================================================== --- plugins/Console/trunk/console/Console.java 2008-09-02 10:56:34 UTC (rev 13505) +++ plugins/Console/trunk/console/Console.java 2008-09-02 17:07:48 UTC (rev 13506) @@ -288,7 +288,8 @@ if(msg instanceof PropertiesChanged) propertiesChanged(); else if (msg instanceof DockableWindowUpdate) { DockableWindowUpdate dwu = (DockableWindowUpdate) msg; - if (dwu.getDockable().equals("console") && dwu.getWhat().equals(dwu.ACTIVATED)) + if (dwu.getWhat() != null && + dwu.getDockable().equals("console") && dwu.getWhat().equals(dwu.ACTIVATED)) scrollToBottom(); } else if(msg instanceof PluginUpdate) Modified: plugins/Console/trunk/console/ConsoleProcess.java =================================================================== --- plugins/Console/trunk/console/ConsoleProcess.java 2008-09-02 10:56:34 UTC (rev 13505) +++ plugins/Console/trunk/console/ConsoleProcess.java 2008-09-02 17:07:48 UTC (rev 13506) @@ -131,12 +131,12 @@ stderr.start(); } - + stdin = new InputThread(this, process.getOutputStream()); stdin.start(); } - catch (IOException ioe) + catch (Exception ioe) { Log.log(Log.ERROR, ioe, "ConsoleProcess()"); } Modified: plugins/Console/trunk/console/StreamThread.java =================================================================== --- plugins/Console/trunk/console/StreamThread.java 2008-09-02 10:56:34 UTC (rev 13505) +++ plugins/Console/trunk/console/StreamThread.java 2008-09-02 17:07:48 UTC (rev 13506) @@ -212,9 +212,11 @@ output.writeAttrs(color, lineBuffer.substring(uncoloredWritten) + eol); } - else + else try { output.writeAttrs(color, line + eol); + } catch (Exception err) { + Log.log (Log.ERROR, this, "Can't Flush:", err); } lineBuffer.setLength(0); Modified: plugins/Console/trunk/console/commands/qmake.xml =================================================================== --- plugins/Console/trunk/console/commands/qmake.xml 2008-09-02 10:56:34 UTC (rev 13505) +++ plugins/Console/trunk/console/commands/qmake.xml 2008-09-02 17:07:48 UTC (rev 13506) @@ -7,10 +7,19 @@ <COMMANDO> <UI> - <FILE_ENTRY LABEL="Build location" - VARNAME = "location" - EVAL = 'console.ConsolePlugin.getProjectRoot(buffer)' - /> + <CHOICE LABEL="qmake in" VARNAME="makeIn" DEFAULT="projectroot"> + <OPTION LABEL="Project Root" VALUE="projectroot" /> + <OPTION LABEL="Source Dir" VALUE="sourcedir" /> + <OPTION LABEL="Custom Location" VALUE="customloc" /> + </CHOICE> + <DIR_ENTRY LABEL="Source Dir" + VARNAME = "sourcedir" + EVAL = 'new File(buffer.getPath()).getParent()' /> + <!-- <CAPTION LABEL="Config"> --> + <DIR_ENTRY LABEL="Project Root" + VARNAME = "projectroot" + EVAL = 'console.ConsolePlugin.getProjectRoot(view, buffer)' /> + <DIR_ENTRY LABEL="Custom Location" VARNAME = "customlocation" /> <TOGGLE LABEL="Build Project file" VARNAME="makeProject" /> <ENTRY LABEL="Project file to use" VARNAME="projectFile" @@ -18,7 +27,14 @@ </UI> <COMMANDS> - <COMMAND CONFIRM="FALSE" SHELL="System"> + <COMMAND CONFIRM="FALSE" SHELL="System"> + if (makeIn.equals("projectroot")) { + location = projectroot; + } + else if (makeIn.equals("customloc")) { + location = customlocation; + } + else location=sourcedir; return "cd " + location; </COMMAND> <COMMAND SHELL="System" CONFIRM="FALSE"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2009-11-09 02:26:06
|
Revision: 16458 http://jedit.svn.sourceforge.net/jedit/?rev=16458&view=rev Author: ezust Date: 2009-11-09 02:26:00 +0000 (Mon, 09 Nov 2009) Log Message: ----------- Patch # 2893518 - synchronized to getOutput() method. This might cause some binary breakages. we will see... Modified Paths: -------------- plugins/Console/trunk/console/ConsoleProcess.java plugins/Console/trunk/console/commando/CommandoButton.java Modified: plugins/Console/trunk/console/ConsoleProcess.java =================================================================== --- plugins/Console/trunk/console/ConsoleProcess.java 2009-11-08 04:44:39 UTC (rev 16457) +++ plugins/Console/trunk/console/ConsoleProcess.java 2009-11-09 02:26:00 UTC (rev 16458) @@ -280,7 +280,7 @@ } // }}} // {{{ getPipeOutput() method - public synchronized PipedOutputStream getPipeOutput() + public PipedOutputStream getPipeOutput() { return (process != null) ? pipeOut : null; } // }}} Modified: plugins/Console/trunk/console/commando/CommandoButton.java =================================================================== --- plugins/Console/trunk/console/commando/CommandoButton.java 2009-11-08 04:44:39 UTC (rev 16457) +++ plugins/Console/trunk/console/commando/CommandoButton.java 2009-11-09 02:26:00 UTC (rev 16458) @@ -34,11 +34,9 @@ import javax.swing.JButton; import javax.swing.JMenuItem; -import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import javax.swing.SwingUtilities; -import org.gjt.sp.jedit.GUIUtilities; import org.gjt.sp.jedit.View; import org.gjt.sp.jedit.jEdit; import org.gjt.sp.jedit.browser.VFSBrowser; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sh...@us...> - 2009-12-26 06:09:02
|
Revision: 16735 http://jedit.svn.sourceforge.net/jedit/?rev=16735&view=rev Author: shlomy Date: 2009-12-26 06:08:54 +0000 (Sat, 26 Dec 2009) Log Message: ----------- Updated the plugin to use the new edit bus API wherever possible. Modified Paths: -------------- plugins/Console/trunk/console/ConsolePlugin.java plugins/Console/trunk/console/commando/CommandoToolBar.java Modified: plugins/Console/trunk/console/ConsolePlugin.java =================================================================== --- plugins/Console/trunk/console/ConsolePlugin.java 2009-12-25 22:48:52 UTC (rev 16734) +++ plugins/Console/trunk/console/ConsolePlugin.java 2009-12-26 06:08:54 UTC (rev 16735) @@ -36,6 +36,7 @@ import javax.swing.JOptionPane; import org.gjt.sp.jedit.*; +import org.gjt.sp.jedit.EditBus.EBHandler; import org.gjt.sp.jedit.gui.DockableWindowManager; import org.gjt.sp.jedit.msg.DynamicMenuChanged; import org.gjt.sp.jedit.msg.PluginUpdate; @@ -55,7 +56,7 @@ * @version $Id$ */ -public class ConsolePlugin extends EBPlugin +public class ConsolePlugin extends EditPlugin { // {{{ Instance and static variables @@ -128,6 +129,7 @@ rescanCommands(); CommandoToolBar.init(); + EditBus.addToBus(this); } // }}} @@ -153,6 +155,7 @@ // {{{ stop() method public void stop() { + EditBus.removeFromBus(this); // clean up edit bus View[] views = jEdit.getViews(); for (int i = 0; i < views.length; i++) { @@ -166,24 +169,26 @@ jEdit.removeActionSet(shellSwitchActions); } // }}} - // {{{ handleMessage() method - public void handleMessage(EBMessage msg) + // {{{ handleViewUpdate() method + @EBHandler + public void handleViewUpdate(ViewUpdate vmsg) { - if (msg instanceof ViewUpdate) + if (vmsg.getWhat() == ViewUpdate.CREATED) { - ViewUpdate vmsg = (ViewUpdate) msg; - if (vmsg.getWhat() == ViewUpdate.CREATED) - { - View v = vmsg.getView(); - CommandoToolBar.create(v); - } + View v = vmsg.getView(); + CommandoToolBar.create(v); } - if (msg instanceof PluginUpdate) { - rescanShells(); - } } // }}} + // {{{ handlePluginUpdate() method + @EBHandler + public void handlePluginUpdate(PluginUpdate msg) + { + rescanShells(); + } + // }}} + // {{{ getConsoleSettingsDirectory() method public static String getConsoleSettingsDirectory() { Modified: plugins/Console/trunk/console/commando/CommandoToolBar.java =================================================================== --- plugins/Console/trunk/console/commando/CommandoToolBar.java 2009-12-25 22:48:52 UTC (rev 16734) +++ plugins/Console/trunk/console/commando/CommandoToolBar.java 2009-12-26 06:08:54 UTC (rev 16735) @@ -34,19 +34,18 @@ import javax.swing.BoxLayout; import javax.swing.JToolBar; -import org.gjt.sp.jedit.EBComponent; -import org.gjt.sp.jedit.EBMessage; import org.gjt.sp.jedit.EditAction; import org.gjt.sp.jedit.EditBus; import org.gjt.sp.jedit.View; import org.gjt.sp.jedit.jEdit; +import org.gjt.sp.jedit.EditBus.EBHandler; import org.gjt.sp.jedit.msg.DynamicMenuChanged; import console.ConsolePlugin; // }}} // {{{ CommandoToolBar class -public class CommandoToolBar extends JToolBar implements EBComponent +public class CommandoToolBar extends JToolBar { // {{{ init() @@ -119,14 +118,11 @@ // }}} // {{{ handleMessage() method - public void handleMessage(EBMessage msg) + @EBHandler + public void handleMessage(DynamicMenuChanged msg) { - if (msg instanceof DynamicMenuChanged - && ConsolePlugin.MENU.equals(((DynamicMenuChanged) msg) - .getMenuName())) - { + if (ConsolePlugin.MENU.equals(msg.getMenuName())) updateButtons(); - } } // }}} // {{{ updateButtons() method This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2010-09-10 23:17:27
|
Revision: 18553 http://jedit.svn.sourceforge.net/jedit/?rev=18553&view=rev Author: ezust Date: 2010-09-10 23:17:21 +0000 (Fri, 10 Sep 2010) Log Message: ----------- Oops. broke "-". Fixed that and now pwd works also. Modified Paths: -------------- plugins/Console/trunk/console/SystemShell.java plugins/Console/trunk/console/SystemShellBuiltIn.java Modified: plugins/Console/trunk/console/SystemShell.java =================================================================== --- plugins/Console/trunk/console/SystemShell.java 2010-09-10 23:09:55 UTC (rev 18552) +++ plugins/Console/trunk/console/SystemShell.java 2010-09-10 23:17:21 UTC (rev 18553) @@ -705,7 +705,7 @@ commands.put("%kill", new SystemShellBuiltIn.kill()); commands.put("%popd", new SystemShellBuiltIn.popd()); commands.put("%pushd", new SystemShellBuiltIn.pushd()); - commands.put("pwd", new SystemShellBuiltIn.pwd()); + commands.put("%printwd", new SystemShellBuiltIn.pwd()); commands.put("%run", new SystemShellBuiltIn.run()); commands.put("%set", new SystemShellBuiltIn.set()); commands.put("%unalias", new SystemShellBuiltIn.unalias()); @@ -725,11 +725,11 @@ aliases.put("cd", "%cd"); aliases.put("pushd", "%pushd"); aliases.put("popd", "%popd"); - // aliases.put("pwd", "%pwd"); + aliases.put("pwd", "%printwd"); aliases.put("aliases", "%aliases"); aliases.put("alias", "%alias"); - aliases.put("-", "cd -"); + aliases.put("-", "%cd -"); /* run ant without adornments to make error parsing easier */ aliases.put("ant", "ant -emacs"); Modified: plugins/Console/trunk/console/SystemShellBuiltIn.java =================================================================== --- plugins/Console/trunk/console/SystemShellBuiltIn.java 2010-09-10 23:09:55 UTC (rev 18552) +++ plugins/Console/trunk/console/SystemShellBuiltIn.java 2010-09-10 23:17:21 UTC (rev 18553) @@ -625,7 +625,7 @@ { ConsoleState cs = getConsoleState(console); - output.writeAttrs(null, "echo " + cs.currentDirectory + "\n"); + output.writeAttrs(null, cs.currentDirectory + "\n"); // shell will print prompt with current working dir } } //}}} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2010-11-16 21:08:59
|
Revision: 18977 http://jedit.svn.sourceforge.net/jedit/?rev=18977&view=rev Author: ezust Date: 2010-11-16 21:08:53 +0000 (Tue, 16 Nov 2010) Log Message: ----------- getCommandoCommands() now only returns the visible commando buttons, making the commando dialog creation a little faster. Modified Paths: -------------- plugins/Console/trunk/console/ConsolePlugin.java plugins/Console/trunk/console/Shell.java plugins/Console/trunk/console/SystemShell.java plugins/Console/trunk/console/commando/CommandoThread.java Modified: plugins/Console/trunk/console/ConsolePlugin.java =================================================================== --- plugins/Console/trunk/console/ConsolePlugin.java 2010-11-16 21:02:10 UTC (rev 18976) +++ plugins/Console/trunk/console/ConsolePlugin.java 2010-11-16 21:08:53 UTC (rev 18977) @@ -5,7 +5,7 @@ * * Copyright (C) 1999, 2004 Slava Pestov * Portions copyright (C) 1999, 2000 Kevin A. Burton - * Revised (c) 2005 by Alan Ezust + * Revised 2005, 2010 by Alan Ezust * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -33,6 +33,8 @@ import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; +import java.util.TreeMap; + import javax.swing.JOptionPane; import org.gjt.sp.jedit.*; @@ -140,8 +142,8 @@ * * @return -1 if no error/warning, or an ErrorType. * Possible values are: - * @ref ErrorSource.ERROR - * @ref ErrorSource.WARNING + * @see ErrorSource.ERROR + * @see ErrorSource.WARNING * * Although it is possible derived ErrorSources will return custom error codes. */ @@ -320,6 +322,9 @@ } // }}} // {{{ getSwitchActions() + /** @return an array of "Shell Switcher" actions, some that toggle and others + * that just select and focus in the Console dockable. + */ public static EditAction[] getSwitchActions() { EditAction[] actions = getShellSwitchActions().getActions(); Arrays.sort(actions, new ActionCompare()); @@ -327,11 +332,25 @@ } // }}} // {{{ getCommandoCommands() method + /** @return only the visible commando commands as EditActions, in + * a sorted array */ public static EditAction[] getCommandoCommands() { - EditAction[] actions = allCommands.getActions(); - Arrays.sort(actions, new ActionCompare()); - return actions; + + String[] names = allCommands.getActionNames(); + TreeMap<String, EditAction> actions = new TreeMap<String, EditAction>(); + for (String name: names) { + String label=name; + if (label.startsWith("commando.")) { + label = name.substring(9); + } + boolean visible = jEdit.getBooleanProperty("commando.visible." + label, true); + if (visible) { + actions.put(label, allCommands.getAction(name)); + } + } + EditAction[] ar = new EditAction[actions.size()]; + return actions.values().toArray(ar); } // }}} // {{{ compile() method Modified: plugins/Console/trunk/console/Shell.java =================================================================== --- plugins/Console/trunk/console/Shell.java 2010-11-16 21:02:10 UTC (rev 18976) +++ plugins/Console/trunk/console/Shell.java 2010-11-16 21:08:53 UTC (rev 18977) @@ -28,7 +28,7 @@ import org.gjt.sp.util.StringList; - +// {{{ Shell class /** * <p> * Console has a single dockable window, which can contain multiple @@ -79,7 +79,7 @@ this.name = name; } //}}} - // {{{ Member functions + //{{{ Member functions //{{{ getShellNames() method /** @@ -109,7 +109,6 @@ // new API return (Shell)ServiceManager.getService(SERVICE,name); } //}}} - //{{{ openConsole() method /** @@ -238,7 +237,6 @@ return null; } //}}} - //{{{ getName() method /** * Returns the name of the shell. @@ -256,7 +254,7 @@ { return name; } //}}} - // }}} + // }}} Member functions // {{{ Inner classes // {{{ ShellAction class @@ -275,7 +273,6 @@ c.setShell(shellName); } }// }}} - // {{{ ToggleAction class /** A ToggleAction is a ShellAction which also toggles the visibility of the Console. @@ -327,7 +324,7 @@ super.invoke(view); } } // }}} - //{{{ CompletionInfo class + // {{{ CompletionInfo class public static class CompletionInfo { // remove from offset to command.length() @@ -336,5 +333,5 @@ // possible values to insert public String[] completions; } //}}} - // }}} + // }}} Inner classes } // }}} Modified: plugins/Console/trunk/console/SystemShell.java =================================================================== --- plugins/Console/trunk/console/SystemShell.java 2010-11-16 21:02:10 UTC (rev 18976) +++ plugins/Console/trunk/console/SystemShell.java 2010-11-16 21:08:53 UTC (rev 18977) @@ -138,7 +138,7 @@ // {{{ executeBuiltIn() method public void executeBuiltIn(Console console, Output output, Output error, String command, - Vector args) + Vector<String> args) { SystemShellBuiltIn builtIn = (SystemShellBuiltIn) commands.get(command); if (builtIn == null) Modified: plugins/Console/trunk/console/commando/CommandoThread.java =================================================================== --- plugins/Console/trunk/console/commando/CommandoThread.java 2010-11-16 21:02:10 UTC (rev 18976) +++ plugins/Console/trunk/console/commando/CommandoThread.java 2010-11-16 21:08:53 UTC (rev 18977) @@ -32,6 +32,10 @@ class CommandoThread extends Thread { //{{{ CommandoThread constructor + /** + * @param console the console to execute the command. + * @param commands a Vector of CommandoHandler.Command objects + */ CommandoThread(Console console, Vector commands) { this.console = console; @@ -113,6 +117,6 @@ } //}}} // {{{ Data Members private Console console; - private Vector commands; + private Vector<Object> commands; // }}} }// }}} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2011-11-10 20:31:35
|
Revision: 20282 http://jedit.svn.sourceforge.net/jedit/?rev=20282&view=rev Author: ezust Date: 2011-11-10 20:31:29 +0000 (Thu, 10 Nov 2011) Log Message: ----------- Making console shutdown more cleanly. Modified Paths: -------------- plugins/Console/trunk/console/ConsolePlugin.java plugins/Console/trunk/console/ProjectTreeListener.java Modified: plugins/Console/trunk/console/ConsolePlugin.java =================================================================== --- plugins/Console/trunk/console/ConsolePlugin.java 2011-11-10 20:05:38 UTC (rev 20281) +++ plugins/Console/trunk/console/ConsolePlugin.java 2011-11-10 20:31:29 UTC (rev 20282) @@ -182,9 +182,9 @@ } if (vmsg.getWhat() == ViewUpdate.CLOSED) { View v = vmsg.getView(); + Console c = getConsole(v); + if (c != null) c.unload(); CommandoToolBar.remove(v); - Console c = getConsole(v); - c.unload(); } } // }}} Modified: plugins/Console/trunk/console/ProjectTreeListener.java =================================================================== --- plugins/Console/trunk/console/ProjectTreeListener.java 2011-11-10 20:05:38 UTC (rev 20281) +++ plugins/Console/trunk/console/ProjectTreeListener.java 2011-11-10 20:31:29 UTC (rev 20282) @@ -74,8 +74,9 @@ return; if (!(msg.getClass().getName().endsWith("ViewerUpdate"))) return; final ViewerUpdate vu = (ViewerUpdate) msg; + if (vu.getType() != ViewerUpdate.Type.PROJECT_LOADED) return; + if (console == null) return; if (vu.getView() != console.getView()) return; - if (vu.getType() != ViewerUpdate.Type.PROJECT_LOADED) return; new Thread() { public void run() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2011-11-13 07:18:12
|
Revision: 20330 http://jedit.svn.sourceforge.net/jedit/?rev=20330&view=rev Author: ezust Date: 2011-11-13 07:18:06 +0000 (Sun, 13 Nov 2011) Log Message: ----------- Got rid of the "use jEdit BG color" button. Use jEdit BG color always if the "use textarea colors" appearance option is checked. Modified Paths: -------------- plugins/Console/trunk/console/Console.java plugins/Console/trunk/console/options/GeneralOptionPane.java Modified: plugins/Console/trunk/console/Console.java =================================================================== --- plugins/Console/trunk/console/Console.java 2011-11-13 06:58:19 UTC (rev 20329) +++ plugins/Console/trunk/console/Console.java 2011-11-13 07:18:06 UTC (rev 20330) @@ -124,15 +124,15 @@ propertiesChanged(); String defShell = jEdit.getProperty("console.shell.default", "System"); if (defShell.equals(jEdit.getProperty("options.last-selected"))) { - defShell = jEdit.getProperty("console.shell", "System"); + defShell = jEdit.getProperty("console.shell", "System"); } - + Shell s = Shell.getShell(defShell); if (s == null) s = Shell.getShell("System"); setShell(s); load(); - - + + } //}}} // {{{ methods @@ -150,13 +150,13 @@ addProjectListener(); errorSource = new DefaultErrorSource("error parsing"); } //}}} - + void addProjectListener() { if (listener != null) return; listener = new ProjectTreeListener(this); } - + //{{{ unload() method public void unload() { @@ -251,7 +251,7 @@ } }); } - + //{{{ getConsolePane() method public ConsolePane getConsolePane() { @@ -276,7 +276,7 @@ //{{{ getOutput() methods /** - * Returns the Output corresponding to a particular Shell, without changing + * Returns the Output corresponding to a particular Shell, without changing * the selected Shell. */ public Output getOutput(String shellName) { @@ -320,7 +320,7 @@ else if (msg instanceof DockableWindowUpdate) { DockableWindowUpdate dwu = (DockableWindowUpdate) msg; if (dwu.getWhat() != null && dwu.getWhat().equals(DockableWindowUpdate.ACTIVATED)) - if (dwu.getDockable().equals("console")) + if (dwu.getDockable().equals("console")) scrollToBottom(); } else if(msg instanceof PluginUpdate) @@ -340,7 +340,7 @@ unload(); } //}}} - + //{{{ getErrorSource() method /** * Returns this console's error source instance. Plugin shells can @@ -386,7 +386,7 @@ // {{{ getId() method /** @return a unique identifier starting at 0, representing which instance of Console this is, - or -1 if that value can not be determined. + or -1 if that value can not be determined. */ public int getId() { int retval = 0; @@ -401,7 +401,7 @@ } return -1; } // }}} - + //{{{ print() method /** * @deprecated Do not use the console as an <code>Output</code> @@ -441,7 +441,7 @@ //{{{ getShellState() method /** * @returns the Output of a Shell, assuming the Shell was already created.... - * + * * @since Console 4.0.2. */ public ShellState getShellState(Shell shell) @@ -595,7 +595,7 @@ animationLabel.setBorder(new EmptyBorder(2,3,2,3)); initAnimation(); - + animationLabel.setIcon(animation); animationLabel.setVisible(false); animation.stop(); @@ -663,25 +663,25 @@ scroller.setPreferredSize(new Dimension(400,100)); add(BorderLayout.CENTER,scroller); } //}}} - + //{{{ initAnimation() method private void initAnimation() { // TODO: First frame of animation icon should be visible at gui init - + Toolkit toolkit = getToolkit(); Image processImg = toolkit.getImage(Console.class.getResource("/console/process-working.png")); Image standbyImg = null; - + int iconSize = 22; - + ArrayList<Image> frames = new ArrayList<Image>(); - + // Wait for the image to load by setting up an icon and discarding it again new ImageIcon(processImg).getImage(); int procImgWidth = processImg.getWidth(null); int procImgHeight = processImg.getHeight(null); - + int currentX = 0, currentY = 0; int frameNo = 0; while(currentY < procImgHeight) @@ -698,13 +698,13 @@ currentX + iconSize - 1, currentY + iconSize - 1, null); - + // First frame is the standby icon if(frameNo == 0) standbyImg = bufImg; else frames.add(bufImg); - + frameNo++; currentX += iconSize; if(currentX + iconSize > procImgWidth) @@ -713,7 +713,7 @@ currentY += iconSize; } } - + animation = new AnimatedIcon( standbyImg, frames.toArray(new Image[0]), @@ -735,11 +735,16 @@ //{{{ propertiesChanged() method private void propertiesChanged() { - text.setBackground(jEdit.getColorProperty("console.bgColor")); - text.setForeground(jEdit.getColorProperty("console.plainColor")); + if (!jEdit.getBooleanProperty("textColors")) { + text.setBackground(jEdit.getColorProperty("console.bgColor")); + text.setForeground(jEdit.getColorProperty("console.plainColor")); + } + else { + text.setBackground(jEdit.getColorProperty("view.bgColor", Color.WHITE)); + text.setForeground(jEdit.getColorProperty("view.fgColor", Color.BLACK)); + } text.setCaretColor(jEdit.getColorProperty("console.caretColor")); text.setFont(jEdit.getFontProperty("console.font")); - infoColor = jEdit.getColorProperty("console.infoColor"); warningColor = jEdit.getColorProperty("console.warningColor"); errorColor = jEdit.getColorProperty("console.errorColor"); @@ -754,7 +759,7 @@ if (!jEdit.getBooleanProperty("console.changedir.nodeselect")) return; String path = msg.getPath(); File f = new File(path); - if (!f.isDirectory()) + if (!f.isDirectory()) { path = f.getParent(); f = new File(path); @@ -768,9 +773,9 @@ String cmd = "cd \"" + path + "\""; sysShell.execute(this, cmd, output); output.print(getPlainColor(), "\n"); - sysShell.printPrompt(this, output); + sysShell.printPrompt(this, output); } //}}} - + //{{{ handlePluginUpdate() method public void handlePluginUpdate(PluginUpdate pmsg) { @@ -888,7 +893,7 @@ /** * Each Shell of a Console has its own ShellState - * A ShellState is a writable Output. + * A ShellState is a writable Output. * It holds the document which is the "scrollback buffer". */ public class ShellState implements Output @@ -909,7 +914,7 @@ commandRunning = false; scrollback = new DefaultStyledDocument(); ((DefaultStyledDocument)scrollback).setDocumentFilter(new LengthFilter()); - + // ick! talk about tightly coupling two classes. shell.openConsole(Console.this); } @@ -1024,14 +1029,14 @@ { super(); } - + //{{{ insertString() method public void insertString(DocumentFilter.FilterBypass fb, int offset, String str, AttributeSet attr) throws BadLocationException { replace(fb, offset, 0, str, attr); } //}}} - + //{{{ replace() method public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String str, AttributeSet attrs) @@ -1044,7 +1049,7 @@ if(newLength > limit) fb.remove(0, newLength - limit - 1); } //}}} - + // Not so large default limit to avoid performance down // with large output. // This will be sufficient to first use. Modified: plugins/Console/trunk/console/options/GeneralOptionPane.java =================================================================== --- plugins/Console/trunk/console/options/GeneralOptionPane.java 2011-11-13 06:58:19 UTC (rev 20329) +++ plugins/Console/trunk/console/options/GeneralOptionPane.java 2011-11-13 07:18:06 UTC (rev 20330) @@ -26,6 +26,7 @@ //{{{ Imports import java.awt.Color; import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; import java.util.Arrays; @@ -47,7 +48,7 @@ import console.gui.Label; //}}} -public class GeneralOptionPane extends AbstractOptionPane implements ActionListener +public class GeneralOptionPane extends AbstractOptionPane { // {{{ data members @@ -56,7 +57,6 @@ private JComboBox encoding; private JComboBox defaultShell; private JButton bgColor; - private JButton usejEditBgColor; private JButton plainColor; private JButton caretColor; private JButton infoColor; @@ -65,8 +65,8 @@ private JCheckBox showWelcomeMessage; private JTextField limit ; private JTextField limitHistory ; - - + + // }}} //{{{ GeneralOptionPane constructor @@ -78,13 +78,13 @@ //{{{ _init() method protected void _init() { - + StringList sl = new StringList(Shell.getShellNames()); int idx = sl.indexOf("System"); if (idx != 0) { String other = sl.get(0); sl.set(idx, other); - sl.set(0, "System"); + sl.set(0, "System"); } sl.add(jEdit.getProperty("options.last-selected")); defaultShell = new JComboBox(sl.toArray()); @@ -96,8 +96,8 @@ showWelcomeMessage = new JCheckBox(); showWelcomeMessage.setText(jEdit.getProperty("options.console.general.welcome")); showWelcomeMessage.setSelected(jEdit.getBooleanProperty("console.shell.info.toggle")); - addComponent(showWelcomeMessage); - + addComponent(showWelcomeMessage); + font = new FontSelector(jEdit.getFontProperty("console.font")); addComponent(jEdit.getProperty("options.console.general.font"), font); @@ -110,20 +110,18 @@ addComponent(jEdit.getProperty("options.console.general.encoding"), encoding); - + Label limitLabel = new Label("options.console.general.charlimit"); limit = new JTextField(jEdit.getProperty("console.outputLimit")); addComponent(limitLabel, limit); - + Label limitHistoryLabel = new Label("options.console.general.historylimit"); limitHistory = new JTextField(jEdit.getProperty("console.historyLimit", String.valueOf(HistoryModel.getDefaultMax()))); addComponent(limitHistoryLabel, limitHistory); - - usejEditBgColor = new JButton("reset"); - usejEditBgColor.addActionListener(this); - addComponent(jEdit.getProperty("options.console.general.usejEditBgColor"), usejEditBgColor); + + addComponent(jEdit.getProperty("options.console.general.bgColor"), bgColor = createColorButton("console.bgColor")); addComponent(jEdit.getProperty("options.console.general.plainColor"), @@ -142,7 +140,7 @@ protected void _save() { jEdit.setBooleanProperty("console.shell.info.toggle", showWelcomeMessage.isSelected()); - + jEdit.setFontProperty("console.font",font.getFont()); String limitstr = limit.getText(); @@ -150,7 +148,7 @@ jEdit.setProperty("console.outputLimit", limitstr); else jEdit.unsetProperty("console.outputLimit"); - + String limithist = limitHistory.getText(); if(limithist != null && limithist.length() > 0 && !String.valueOf(HistoryModel.getDefaultMax()).equals(limithist)) @@ -158,12 +156,12 @@ else jEdit.unsetProperty("console.historyLimit"); - jEdit.setProperty("console.encoding", + jEdit.setProperty("console.encoding", (String)encoding.getSelectedItem()); - jEdit.setProperty("console.shell.default", + jEdit.setProperty("console.shell.default", (String)defaultShell.getSelectedItem()); - + jEdit.setColorProperty("console.bgColor", bgColor.getBackground()); jEdit.setColorProperty("console.plainColor", @@ -176,8 +174,8 @@ warningColor.getBackground()); jEdit.setColorProperty("console.errorColor", errorColor.getBackground()); - - + + } //}}} @@ -203,12 +201,4 @@ return b; } //}}} - public void actionPerformed(ActionEvent e) - { - if (e.getSource() != usejEditBgColor) return; - Color c = jEdit.getColorProperty("view.bgColor"); - jEdit.setColorProperty("console.bgColor", c); - bgColor.setBackground(c); - } - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ko...@us...> - 2012-01-13 01:26:42
|
Revision: 20768 http://jedit.svn.sourceforge.net/jedit/?rev=20768&view=rev Author: kog13 Date: 2012-01-13 01:26:36 +0000 (Fri, 13 Jan 2012) Log Message: ----------- Added support for highlighted text being sent to stdin Modified Paths: -------------- plugins/Console/trunk/console/Console.java plugins/Console/trunk/console/SystemShell.java Modified: plugins/Console/trunk/console/Console.java =================================================================== --- plugins/Console/trunk/console/Console.java 2012-01-12 23:49:39 UTC (rev 20767) +++ plugins/Console/trunk/console/Console.java 2012-01-13 01:26:36 UTC (rev 20768) @@ -1075,7 +1075,12 @@ { Console console = (Console)GUIUtilities.getComponentParent( (Component)evt.getSource(),Console.class); - console.run(console.getShell(),null, console.getOutput(), null, command); + + console.run(console.getShell(), + console.getView().getTextArea().getSelectedText(), + console.getOutput(), + null, + command); } } //}}} Modified: plugins/Console/trunk/console/SystemShell.java =================================================================== --- plugins/Console/trunk/console/SystemShell.java 2012-01-12 23:49:39 UTC (rev 20767) +++ plugins/Console/trunk/console/SystemShell.java 2012-01-13 01:26:36 UTC (rev 20768) @@ -135,8 +135,7 @@ // }}} - // {{{ executeBuiltIn() method - + // {{{ executeBuiltIn() method public void executeBuiltIn(Console console, Output output, Output error, String command, Vector<String> args) { @@ -153,6 +152,7 @@ } } // }}} + // {{{ executeInDir() public void executeInDir(final Console console, String input, final Output output, Output error, String command, String dir) { @@ -162,7 +162,7 @@ state.setCurrentDirectory(console, dir); this.execute(console, input, output, error, command); state.setCurrentDirectory(console, cwd); - } + } // }}} // {{{ execute() public void execute(final Console console, String input, final Output output, Output error, @@ -312,10 +312,8 @@ } } } - } + } // }}} - // }}} - // {{{ stop() method public void stop(Console console) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Jarek C. <jar...@po...> - 2012-01-13 07:02:09
|
Damien, could you please attach the feature request or bug number to every commit regarding such an entry? I thought it is obvious because everyone does so. I asked you about more detailed log messages. Did this post reach you? Have you seen latest comment from Kazutoshi about log messages? Jarek ko...@us... pisze: > Revision: 20768 > http://jedit.svn.sourceforge.net/jedit/?rev=20768&view=rev > Author: kog13 > Date: 2012-01-13 01:26:36 +0000 (Fri, 13 Jan 2012) > Log Message: > ----------- > Added support for highlighted text being sent to stdin > > Modified Paths: > -------------- > plugins/Console/trunk/console/Console.java > plugins/Console/trunk/console/SystemShell.java > > Modified: plugins/Console/trunk/console/Console.java > =================================================================== > --- plugins/Console/trunk/console/Console.java 2012-01-12 23:49:39 UTC (rev 20767) > +++ plugins/Console/trunk/console/Console.java 2012-01-13 01:26:36 UTC (rev 20768) > @@ -1075,7 +1075,12 @@ > { > Console console = (Console)GUIUtilities.getComponentParent( > (Component)evt.getSource(),Console.class); > - console.run(console.getShell(),null, console.getOutput(), null, command); > + > + console.run(console.getShell(), > + console.getView().getTextArea().getSelectedText(), > + console.getOutput(), > + null, > + command); > } > } //}}} > > > Modified: plugins/Console/trunk/console/SystemShell.java > =================================================================== > --- plugins/Console/trunk/console/SystemShell.java 2012-01-12 23:49:39 UTC (rev 20767) > +++ plugins/Console/trunk/console/SystemShell.java 2012-01-13 01:26:36 UTC (rev 20768) > @@ -135,8 +135,7 @@ > > // }}} > > - // {{{ executeBuiltIn() method > - > + // {{{ executeBuiltIn() method > public void executeBuiltIn(Console console, Output output, Output error, String command, > Vector<String> args) > { > @@ -153,6 +152,7 @@ > } > } // }}} > > + // {{{ executeInDir() > public void executeInDir(final Console console, String input, final Output output, Output error, > String command, String dir) > { > @@ -162,7 +162,7 @@ > state.setCurrentDirectory(console, dir); > this.execute(console, input, output, error, command); > state.setCurrentDirectory(console, cwd); > - } > + } // }}} > > // {{{ execute() > public void execute(final Console console, String input, final Output output, Output error, > @@ -312,10 +312,8 @@ > } > } > } > - } > + } // }}} > > - // }}} > - > // {{{ stop() method > public void stop(Console console) > { > > This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. > > > ------------------------------------------------------------------------------ > RSA(R) Conference 2012 > Mar 27 - Feb 2 > Save $400 by Jan. 27 > Register now! > http://p.sf.net/sfu/rsa-sfdev2dev2 > _______________________________________________ > jEdit-CVS mailing list > jEd...@li... > https://lists.sourceforge.net/lists/listinfo/jedit-cvs > > |
From: <ko...@us...> - 2012-01-13 19:13:39
|
Revision: 20773 http://jedit.svn.sourceforge.net/jedit/?rev=20773&view=rev Author: kog13 Date: 2012-01-13 19:13:33 +0000 (Fri, 13 Jan 2012) Log Message: ----------- Fixed bug 3166898 - selected text is now passed to standard input Modified Paths: -------------- plugins/Console/trunk/console/Console.java plugins/Console/trunk/console/SystemShell.java Modified: plugins/Console/trunk/console/Console.java =================================================================== --- plugins/Console/trunk/console/Console.java 2012-01-13 18:54:27 UTC (rev 20772) +++ plugins/Console/trunk/console/Console.java 2012-01-13 19:13:33 UTC (rev 20773) @@ -1076,11 +1076,8 @@ Console console = (Console)GUIUtilities.getComponentParent( (Component)evt.getSource(),Console.class); - console.run(console.getShell(), - console.getView().getTextArea().getSelectedText(), - console.getOutput(), - null, - command); + console.run(console.getShell(), null, console.getOutput(), + null, command); } } //}}} @@ -1112,7 +1109,7 @@ { String cmd = text.getInput(); Object source = evt.getSource(); - String input = null; + String input = view.getTextArea().getSelectedText(); Output output = shellState; boolean printInput = false; @@ -1120,7 +1117,6 @@ printInput = true; else if(source == toBuffer) { - input = view.getTextArea().getSelectedText(); output = new BufferOutput(Console.this); } Modified: plugins/Console/trunk/console/SystemShell.java =================================================================== --- plugins/Console/trunk/console/SystemShell.java 2012-01-13 18:54:27 UTC (rev 20772) +++ plugins/Console/trunk/console/SystemShell.java 2012-01-13 19:13:33 UTC (rev 20773) @@ -297,6 +297,7 @@ */ if (input != null) { + Log.log(Log.DEBUG, this, "sending input to system shell: "+input); OutputStream out = proc.getPipeOutput(); if (out != null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2012-03-01 02:59:06
|
Revision: 21235 http://jedit.svn.sourceforge.net/jedit/?rev=21235&view=rev Author: ezust Date: 2012-03-01 02:59:00 +0000 (Thu, 01 Mar 2012) Log Message: ----------- Also use view.caretColor if textColors is set. Modified Paths: -------------- plugins/Console/trunk/console/Console.java plugins/Console/trunk/console/options/GeneralOptionPane.java Modified: plugins/Console/trunk/console/Console.java =================================================================== --- plugins/Console/trunk/console/Console.java 2012-02-29 10:20:49 UTC (rev 21234) +++ plugins/Console/trunk/console/Console.java 2012-03-01 02:59:00 UTC (rev 21235) @@ -738,13 +738,14 @@ if (jEdit.getBooleanProperty("textColors")) { plainColor = jEdit.getColorProperty("view.fgColor", Color.BLACK); text.setBackground(jEdit.getColorProperty("view.bgColor", Color.WHITE)); + text.setCaretColor(jEdit.getColorProperty("view.caretColor", plainColor)); } else { plainColor = jEdit.getColorProperty("console.plainColor", Color.BLACK); text.setBackground(jEdit.getColorProperty("console.bgColor", Color.WHITE)); + text.setCaretColor(jEdit.getColorProperty("console.caretColor", plainColor)); } text.setForeground(plainColor); - text.setCaretColor(jEdit.getColorProperty("console.caretColor")); text.setFont(jEdit.getFontProperty("console.font")); infoColor = jEdit.getColorProperty("console.infoColor"); warningColor = jEdit.getColorProperty("console.warningColor"); Modified: plugins/Console/trunk/console/options/GeneralOptionPane.java =================================================================== --- plugins/Console/trunk/console/options/GeneralOptionPane.java 2012-02-29 10:20:49 UTC (rev 21234) +++ plugins/Console/trunk/console/options/GeneralOptionPane.java 2012-03-01 02:59:00 UTC (rev 21235) @@ -130,6 +130,7 @@ plainColor.setToolTipText(jEdit.getProperty("options.console.general.bgColor.tooltip")); addComponent(jEdit.getProperty("options.console.general.caretColor"), caretColor = createColorButton("console.caretColor")); + caretColor.setToolTipText(jEdit.getProperty("options.console.general.bgColor.tooltip")); addComponent(jEdit.getProperty("options.console.general.infoColor"), infoColor = createColorButton("console.infoColor")); addComponent(jEdit.getProperty("options.console.general.warningColor"), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2012-04-02 03:58:00
|
Revision: 21545 http://jedit.svn.sourceforge.net/jedit/?rev=21545&view=rev Author: ezust Date: 2012-04-02 03:57:54 +0000 (Mon, 02 Apr 2012) Log Message: ----------- Switch to system shell before compile/run project. Modified Paths: -------------- plugins/Console/trunk/console/ConsolePlugin.java plugins/Console/trunk/console/ErrorMatcher.java Modified: plugins/Console/trunk/console/ConsolePlugin.java =================================================================== --- plugins/Console/trunk/console/ConsolePlugin.java 2012-04-02 01:39:24 UTC (rev 21544) +++ plugins/Console/trunk/console/ConsolePlugin.java 2012-04-02 03:57:54 UTC (rev 21545) @@ -97,7 +97,7 @@ { return shellSwitchActions; } // }}} - + // {{{ getAllCommands() /** @return all commands that are represented as @@ -243,7 +243,7 @@ String key = "commando." + name; if (allCommands.contains(key)) { // skip over those that have user overridden versions already loaded - + continue; } @@ -365,14 +365,14 @@ { SystemShell systemShell = getSystemShell(); String mode = buffer.getMode().getName(); - + // Check for a custom compile command if (jEdit.getBooleanProperty("mode."+mode+".compile.use-custom")) { String command = jEdit.getProperty("mode."+mode+".compile.custom", ""); view.getDockableWindowManager().showDockableWindow("console"); Console console = (Console) getConsole(view); Console.ShellState state = console.getShellState(systemShell); - + if (buffer.isDirty()) { Object[] args = { buffer.getName() }; @@ -386,11 +386,11 @@ else if (result != JOptionPane.NO_OPTION) return; } - + systemShell.execute(console, null, state, null, command); return; } - + // If it got here, run commando as normal String compiler = buffer.getStringProperty("commando.compile"); if (compiler == null || compiler.length() == 0) @@ -437,14 +437,14 @@ { SystemShell systemShell = getSystemShell(); String mode = buffer.getMode().getName(); - + // Check for a custom compile command if (jEdit.getBooleanProperty("mode."+mode+".run.use-custom")) { String command = jEdit.getProperty("mode."+mode+".run.custom", ""); view.getDockableWindowManager().showDockableWindow("console"); Console console = (Console) getConsole(view); Console.ShellState state = console.getShellState(systemShell); - + if (buffer.isDirty()) { Object[] args = { buffer.getName() }; @@ -458,11 +458,11 @@ else if (result != JOptionPane.NO_OPTION) return; } - + systemShell.execute(console, null, state, null, command); return; } - + // If it got here, run commando as normal String interpreter = buffer.getStringProperty("commando.run"); if (interpreter == null || interpreter.length() == 0) @@ -503,7 +503,7 @@ public static void compileProject(View view) { runProjectCommand(view, "compile"); } // }}} - + // {{{ runProject() method public static void runProject(View view) { runProjectCommand(view, "run"); @@ -515,14 +515,14 @@ GUIUtilities.error(view, "console.pv.not-installed", null); return; } - + projectviewer.vpt.VPTProject project = projectviewer.ProjectViewer.getActiveProject(view); if (project == null) { GUIUtilities.error(view, "console.pv.no-active-project", null); return; } - + String cmd = project.getProperty("console."+prop); if (cmd == null) cmd = ""; if (cmd.equals("")) { @@ -540,13 +540,14 @@ if (cmd == null || cmd.trim() == "") return; } - + // Run the command in the project's root, but then return to // the original working directory final SystemShell systemShell = getSystemShell(); view.getDockableWindowManager().showDockableWindow("console"); final Console console = (Console) getConsole(view); - if (jEdit.getBooleanProperty("console.clearBeforeExecute")) + console.setShell("System"); + if (jEdit.getBooleanProperty("console.clearBeforeExecute")) console.clear(); final Console.ShellState state = console.getShellState(systemShell); @@ -555,7 +556,7 @@ "\n"+cmd+"\n"); systemShell.executeInDir(console, null, state, null, cmd, project.getRootPath()); } // }}} - + // {{{ getPackageName() method /** * A utility method that returns the name of the package containing the @@ -616,7 +617,7 @@ public static String getClassName(Buffer buffer) { String pkg = getPackageName(buffer); - // TODO: update to use jEdit 5.0 API after 5.0 is released. + // TODO: update to use jEdit 5.0 API after 5.0 is released. // String clazz = MiscUtilities.getBaseName(buffer.getPath()); String clazz = MiscUtilities.getFileNameNoExtension(buffer.getPath()); if (pkg == null) Modified: plugins/Console/trunk/console/ErrorMatcher.java =================================================================== --- plugins/Console/trunk/console/ErrorMatcher.java 2012-04-02 01:39:24 UTC (rev 21544) +++ plugins/Console/trunk/console/ErrorMatcher.java 2012-04-02 03:57:54 UTC (rev 21545) @@ -363,7 +363,7 @@ String t = matchLine(text); if (t == null) return null; - // ???: Sometimes directory is not valid. How can we know that? + // Sometimes directory is not valid String _filename = MiscUtilities.constructPath(directory, file); File f = new File(_filename); if (!f.exists()) _filename = file; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ko...@us...> - 2012-04-10 22:52:06
|
Revision: 21569 http://jedit.svn.sourceforge.net/jedit/?rev=21569&view=rev Author: kog13 Date: 2012-04-10 22:52:00 +0000 (Tue, 10 Apr 2012) Log Message: ----------- Cleaned up make, added tcl, and beginning to add support for commando directory specification. Modified Paths: -------------- plugins/Console/trunk/console/SystemShell.java plugins/Console/trunk/console/commando/CommandoHandler.java plugins/Console/trunk/console/commando/CommandoThread.java plugins/Console/trunk/console/commands/make.xml Added Paths: ----------- plugins/Console/trunk/console/commands/tcl.xml Modified: plugins/Console/trunk/console/SystemShell.java =================================================================== --- plugins/Console/trunk/console/SystemShell.java 2012-04-10 18:56:42 UTC (rev 21568) +++ plugins/Console/trunk/console/SystemShell.java 2012-04-10 22:52:00 UTC (rev 21569) @@ -55,7 +55,6 @@ private boolean initialized; private byte[] lineSep; - // }}} // {{{ SystemShell constructor @@ -169,7 +168,6 @@ public void execute(final Console console, String input, final Output output, Output error, String command) { - if (error == null) error = output; ConsoleState state = getConsoleState(console); Modified: plugins/Console/trunk/console/commando/CommandoHandler.java =================================================================== --- plugins/Console/trunk/console/commando/CommandoHandler.java 2012-04-10 18:56:42 UTC (rev 21568) +++ plugins/Console/trunk/console/commando/CommandoHandler.java 2012-04-10 22:52:00 UTC (rev 21569) @@ -104,6 +104,8 @@ mode = value; else if(aname == "SHELL") shell = value; + else if(aname == "DIR") + dir = value; } //}}} //{{{ charData() method @@ -177,10 +179,11 @@ { scripts.add(new Script( confirm,toBuffer,mode, - shell,code)); + shell,code,dir)); confirm = false; toBuffer = false; shell = code = null; + dir = "."; } else { @@ -214,6 +217,13 @@ else nameSpace.setVariable(varName,defaultValue); + if (dir != ".") + { + dir = String.valueOf(BeanShell.eval(view, tmp, dir)); + if (dir == null) + dir = "."; + } + // this stores This instances // we call valueChanged() on // them to update namespace @@ -228,6 +238,7 @@ } label = varName = defaultValue = eval = null; + dir = "."; } popElement(); @@ -268,6 +279,7 @@ private String mode; private String shell; private String code; + private String dir; private Vector<Option> options; @@ -304,15 +316,17 @@ String mode; String shell; String code; + String dir; Script(boolean confirm, boolean toBuffer, String mode, - String shell, String code) + String shell, String code, String dir) { this.confirm = confirm; this.toBuffer = toBuffer; this.mode = mode; this.shell = shell; this.code = code; + this.dir = dir; } Command getCommand() @@ -321,7 +335,7 @@ if(command == null) return null; return new Command(confirm,toBuffer,mode, - shell,String.valueOf(command)); + shell,dir,String.valueOf(command)); } } //}}} @@ -333,15 +347,17 @@ boolean toBuffer; String mode; String shell; + String dir; String command; Command(boolean confirm, boolean toBuffer, String mode, - String shell, String command) + String shell, String dir, String command) { this.confirm = confirm; this.toBuffer = toBuffer; this.mode = mode; this.shell = shell; + this.dir = dir; this.command = command; } } //}}} Modified: plugins/Console/trunk/console/commando/CommandoThread.java =================================================================== --- plugins/Console/trunk/console/commando/CommandoThread.java 2012-04-10 18:56:42 UTC (rev 21568) +++ plugins/Console/trunk/console/commando/CommandoThread.java 2012-04-10 22:52:00 UTC (rev 21569) @@ -104,6 +104,8 @@ Output out = console.getOutput(); if (command.toBuffer) out = new BufferOutput(console, command.mode); + // TODO: if running in the system shell and command.dir is set, + // change the console to that directory before running console.run(shell, null, out, null, command.command); } }); Modified: plugins/Console/trunk/console/commands/make.xml =================================================================== --- plugins/Console/trunk/console/commands/make.xml 2012-04-10 18:56:42 UTC (rev 21568) +++ plugins/Console/trunk/console/commands/make.xml 2012-04-10 22:52:00 UTC (rev 21569) @@ -10,7 +10,7 @@ <CAPTION LABEL="Makefile settings (if applicable)"> <ENTRY LABEL="Rule name" VARNAME="ruleName" DEFAULT=""/> <ENTRY LABEL="Makefile name" VARNAME="makefile" DEFAULT="Makefile"/> - <TOGGLE LABEL="Search for Makefile" VARNAME="search" DEFAULT="true"/> + <!-- <TOGGLE LABEL="Search for Makefile" VARNAME="search" DEFAULT="true"/> --> </CAPTION> <CAPTION LABEL="Advanced"> <ENTRY LABEL="Additional parameters" VARNAME="params" DEFAULT=""/> @@ -20,53 +20,20 @@ <COMMANDS> <COMMAND SHELL="System" CONFIRM="FALSE"> buf = new StringBuffer(); - fileTarget = MiscUtilities.getFileNameNoExtension(buffer.getName()); + buf.append("make"); - file = new File(makefile); - if (!search || file.exists()) { - buf.append("make"); - - if (file.exists()) { - buf.append(" -f \""+makefile+"\""); - if (!ruleName.equals("")) - buf.append(" "+ruleName); - } - else - buf.append(" \""+fileTarget+"\""); - - if (!params.equals("")) - buf.append(" "+params); - - return buf.toString(); + if (new File(makefile).exists()) { + buf.append(" -f \""+makefile+"\""); + if (!ruleName.equals("")) + buf.append(" "+ruleName); } - else { - dir = buffer.getDirectory(); - file = new File(dir, makefile); - while (!file.exists()) { - newDir = MiscUtilities.getParentOfPath(dir); - if (newDir == dir) { - // we've reached the top, no point in continuing - dir = null; - break; - } - dir = newDir; - file = new File(dir, makefile); - } + else + buf.append(" "+MiscUtilities.getFileNameNoExtension(buffer.getName()); - if (dir != null) { - buf.append("(cd \""+dir+"\" && make -f \""+makefile+"\""); - if (!ruleName.equals("")) - buf.append(" "+ruleName); - } - else - buf.append("make \""+fileTarget+"\""); + if (!params.equals("")) + buf.append(" "+params); - if (!params.equals("")) - buf.append(" "+params); - - if (dir != null) buf.append(")"); - return buf.toString(); - } + return buf.toString(); </COMMAND> </COMMANDS> </COMMANDO> Added: plugins/Console/trunk/console/commands/tcl.xml =================================================================== --- plugins/Console/trunk/console/commands/tcl.xml (rev 0) +++ plugins/Console/trunk/console/commands/tcl.xml 2012-04-10 22:52:00 UTC (rev 21569) @@ -0,0 +1,27 @@ +<?xml version="1.0" ?> + +<!DOCTYPE COMMANDO SYSTEM "commando.dtd"> + +<COMMANDO> + <UI> + <CAPTION LABEL="Application settings"> + <ENTRY LABEL="Script Name" VARNAME="scriptname" EVAL="buffer.getPath()" /> + <ENTRY LABEL="Application parameters" VARNAME="args" /> + </CAPTION> + </UI> + + <COMMANDS> + <COMMAND SHELL="System" CONFIRM="FALSE"> + buf = new StringBuffer(); + buf.append("tclsh85 " + scriptname); + if(!args.equals("")) + { + buf.append(' '); + buf.append(args); + } + + // return value + return buf.toString(); + </COMMAND> + </COMMANDS> +</COMMANDO> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ko...@us...> - 2012-04-16 21:45:58
|
Revision: 21585 http://jedit.svn.sourceforge.net/jedit/?rev=21585&view=rev Author: kog13 Date: 2012-04-16 21:45:51 +0000 (Mon, 16 Apr 2012) Log Message: ----------- Added new commando widget for entering paths. Modified Paths: -------------- plugins/Console/trunk/console/bsh/getBufferClassPath.bsh plugins/Console/trunk/console/commands/ant.xml plugins/Console/trunk/console/commands/commando.dtd plugins/Console/trunk/console/commands/gcc.xml plugins/Console/trunk/console/commands/ghc.xml plugins/Console/trunk/console/commands/groovy.xml plugins/Console/trunk/console/commands/java.xml plugins/Console/trunk/console/commands/javac.xml Added Paths: ----------- plugins/Console/trunk/console/bsh/commandoPATH_ENTRY.bsh Added: plugins/Console/trunk/console/bsh/commandoPATH_ENTRY.bsh =================================================================== --- plugins/Console/trunk/console/bsh/commandoPATH_ENTRY.bsh (rev 0) +++ plugins/Console/trunk/console/bsh/commandoPATH_ENTRY.bsh 2012-04-16 21:45:51 UTC (rev 21585) @@ -0,0 +1,49 @@ +commandoPATH_ENTRY(view,pane,ns,label,var,options) +{ + entry = new JTextField(20); + value = ns.getVariable(var); + if (value != null) + entry.setText(value.toString()); + + valueChanged() + { + ns.setVariable(var, entry.getText()); + } + + dim = entry.getPreferredSize(); + dim.width = Integer.MAX_VALUE; + entry.setMaximumSize(dim); + + box = new Box(BoxLayout.X_AXIS); + box.add(entry); + box.add(Box.createHorizontalStrut(12)); + + btn = new RolloverButton(GUIUtilities.loadIcon("Plus.png")); + btn.setToolTipText("Add file to path"); + listener = new ActionListener() + { + actionPerformed(evt) + { + files = GUIUtilities.showVFSFileDialog(view, + null, VFSBrowser.CHOOSE_DIRECTORY_DIALOG, true); + + if (files != null && files.length > 0) { + path = files[0]; + for (int i = 1; i<files.length; i++) + path += File.pathSeparator+files[i]; + + value = entry.getText(); + if (value != null && value.length() > 0) + value += File.pathSeparator; + + entry.setText(value + path); + } + } + }; + btn.addActionListener(listener); + box.add(btn); + + pane.addComponent(label, box); + + return this; +} Modified: plugins/Console/trunk/console/bsh/getBufferClassPath.bsh =================================================================== --- plugins/Console/trunk/console/bsh/getBufferClassPath.bsh 2012-04-16 12:46:32 UTC (rev 21584) +++ plugins/Console/trunk/console/bsh/getBufferClassPath.bsh 2012-04-16 21:45:51 UTC (rev 21585) @@ -4,10 +4,17 @@ { import console.ConsolePlugin; - String cp = buffer.getProperty("java.classpath"); + cp = buffer.getProperty("java.classpath"); if (cp == null || cp.equals("")) - return getenv("CLASSPATH") + File.pathSeparator - + ConsolePlugin.getPackageRoot(buffer); + cp = getenv("CLASSPATH"); + + if (cp == null) + cp = ""; + + if (cp != "") + cp += File.pathSeparator; + + cp += ConsolePlugin.getPackageRoot(buffer); return cp; } Modified: plugins/Console/trunk/console/commands/ant.xml =================================================================== --- plugins/Console/trunk/console/commands/ant.xml 2012-04-16 12:46:32 UTC (rev 21584) +++ plugins/Console/trunk/console/commands/ant.xml 2012-04-16 21:45:51 UTC (rev 21585) @@ -13,7 +13,7 @@ <ENTRY LABEL="Rule name(s)" VARNAME="rules" DEFAULT=""/> </CAPTION> <CAPTION LABEL="Advanced"> - <HIST_ENTRY LABEL="Classpath" VARNAME="classpath" EVAL="getBufferClassPath(buffer);" /> + <PATH_ENTRY LABEL="Classpath" VARNAME="classpath" EVAL="getBufferClassPath(buffer);" /> <TOGGLE LABEL="Strip adornments (Emacs style)" VARNAME="emacs" DEFAULT="FALSE"/> <ENTRY LABEL="Additional parameters" VARNAME="args" DEFAULT=""/> </CAPTION> Modified: plugins/Console/trunk/console/commands/commando.dtd =================================================================== --- plugins/Console/trunk/console/commands/commando.dtd 2012-04-16 12:46:32 UTC (rev 21584) +++ plugins/Console/trunk/console/commands/commando.dtd 2012-04-16 21:45:51 UTC (rev 21585) @@ -34,7 +34,7 @@ VARNAME CDATA #REQUIRED DEFAULT CDATA #IMPLIED EVAL CDATA #IMPLIED > - + <!ELEMENT FILE_ENTRY EMPTY > <!ATTLIST FILE_ENTRY LABEL CDATA #REQUIRED @@ -42,6 +42,13 @@ DEFAULT CDATA #IMPLIED EVAL CDATA #IMPLIED > +<!ELEMENT PATH_ENTRY EMPTY > +<!ATTLIST PATH_ENTRY + LABEL CDATA #REQUIRED + VARNAME CDATA #REQUIRED + DEFAULT CDATA #IMPLIED + EVAL CDATA #IMPLIED > + <!ELEMENT TOGGLE EMPTY > <!ATTLIST TOGGLE LABEL CDATA #REQUIRED Modified: plugins/Console/trunk/console/commands/gcc.xml =================================================================== --- plugins/Console/trunk/console/commands/gcc.xml 2012-04-16 12:46:32 UTC (rev 21584) +++ plugins/Console/trunk/console/commands/gcc.xml 2012-04-16 21:45:51 UTC (rev 21585) @@ -8,7 +8,7 @@ <FILE_ENTRY LABEL="Source file(s)" VARNAME="source" EVAL="buffer.getPath()" /> <DIR_ENTRY LABEL="Output directory" VARNAME="outputdir" EVAL="buffer.getDirectory()" /> <ENTRY LABEL="Output file name" VARNAME="executable" EVAL="getBufferOutputName(buffer);" /> - <ENTRY LABEL="Include" VARNAME="include" /> + <PATH_ENTRY LABEL="Include" VARNAME="include" /> </CAPTION> <CAPTION LABEL="Options"> Modified: plugins/Console/trunk/console/commands/ghc.xml =================================================================== --- plugins/Console/trunk/console/commands/ghc.xml 2012-04-16 12:46:32 UTC (rev 21584) +++ plugins/Console/trunk/console/commands/ghc.xml 2012-04-16 21:45:51 UTC (rev 21585) @@ -6,7 +6,7 @@ <CAPTION LABEL="Files"> <ENTRY LABEL="Source file(s)" VARNAME="source" EVAL="buffer.getPath();"/> <ENTRY LABEL="Output file name" VARNAME="output" EVAL="getBufferOutputName(buffer);"/> - <ENTRY LABEL="Module search path" VARNAME="include"/> + <PATH_ENTRY LABEL="Module search path" VARNAME="include"/> </CAPTION> <CAPTION LABEL="Options"> <TOGGLE LABEL="Compile and link imported modules" VARNAME="make" DEFAULT="true"/> Modified: plugins/Console/trunk/console/commands/groovy.xml =================================================================== --- plugins/Console/trunk/console/commands/groovy.xml 2012-04-16 12:46:32 UTC (rev 21584) +++ plugins/Console/trunk/console/commands/groovy.xml 2012-04-16 21:45:51 UTC (rev 21585) @@ -8,8 +8,7 @@ <UI> <CAPTION LABEL="Source file(s)"> <FILE_ENTRY LABEL="Source file(s)" VARNAME="scriptname" EVAL="buffer.getPath();" /> - <FILE_ENTRY LABEL="Classpath" VARNAME="classpath" - EVAL="getBufferClassPath(buffer);" /> + <PATH_ENTRY LABEL="Classpath" VARNAME="classpath" EVAL="getBufferClassPath(buffer);" /> </CAPTION> <CAPTION LABEL="Advanced"> <ENTRY LABEL="Additional parameters" VARNAME="args"/> Modified: plugins/Console/trunk/console/commands/java.xml =================================================================== --- plugins/Console/trunk/console/commands/java.xml 2012-04-16 12:46:32 UTC (rev 21584) +++ plugins/Console/trunk/console/commands/java.xml 2012-04-16 21:45:51 UTC (rev 21585) @@ -25,8 +25,7 @@ <OPTION LABEL="Classic" VALUE="classic" /> </CHOICE> --> - <ENTRY LABEL="Classpath" VARNAME="classpath" - EVAL="getBufferClassPath(buffer);" /> + <PATH_ENTRY LABEL="Classpath" VARNAME="classpath" EVAL="getBufferClassPath(buffer);" /> <!-- <TOGGLE LABEL="Verbose class loading" VARNAME="verbose_class" /> <TOGGLE LABEL="Verbose garbage collection" VARNAME="verbose_gc" /> Modified: plugins/Console/trunk/console/commands/javac.xml =================================================================== --- plugins/Console/trunk/console/commands/javac.xml 2012-04-16 12:46:32 UTC (rev 21584) +++ plugins/Console/trunk/console/commands/javac.xml 2012-04-16 21:45:51 UTC (rev 21585) @@ -11,7 +11,7 @@ </CAPTION> <CAPTION LABEL="Paths"> - <HIST_ENTRY LABEL="Classpath" VARNAME="classpath" EVAL="getBufferClassPath(buffer);" /> + <PATH_ENTRY LABEL="Classpath" VARNAME="classpath" EVAL="getBufferClassPath(buffer);" /> <!-- <HIST_ENTRY LABEL="Source path" VARNAME="sourcepath" EVAL="getProjectRoot(view, buffer);" /> --> <!-- <DIR_ENTRY LABEL="Extension directory" VARNAME="extdirs" /> --> <DIR_ENTRY LABEL="Output directory" VARNAME="outputpath" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ko...@us...> - 2012-05-10 19:57:02
|
Revision: 21654 http://jedit.svn.sourceforge.net/jedit/?rev=21654&view=rev Author: kog13 Date: 2012-05-10 19:56:56 +0000 (Thu, 10 May 2012) Log Message: ----------- Fixed plugin bug #2194479 - NullPointerException when running detached processes that print to stderr. Modified Paths: -------------- plugins/Console/trunk/console/ConsoleProcess.java plugins/Console/trunk/console/StreamThread.java Modified: plugins/Console/trunk/console/ConsoleProcess.java =================================================================== --- plugins/Console/trunk/console/ConsoleProcess.java 2012-05-10 12:34:19 UTC (rev 21653) +++ plugins/Console/trunk/console/ConsoleProcess.java 2012-05-10 19:56:56 UTC (rev 21654) @@ -148,14 +148,20 @@ // {{{ methods // {{{ showExit method synchronized void showExit () { + // make sure error isn't null + if (this.error == null) + { + this.error = this.console.getOutput(); + } + boolean showExitStatus = jEdit.getBooleanProperty("console.processrunner.showExitStatus", true); if (showExitStatus) { Object[] pp = { args[0], Integer.valueOf(exitCode) }; String msg = jEdit.getProperty("console.shell.exited", pp); - if (exitCode == 0) - error.print(console.getInfoColor(), msg); + if (this.exitCode == 0) + this.error.print(console.getInfoColor(), msg); else - error.print(console.getErrorColor(), msg); + this.error.print(console.getErrorColor(), msg); } // console.getShell().printPrompt(console, output); @@ -201,15 +207,17 @@ try { - process.destroy(); - output.commandDone(); + this.process.destroy(); + if (this.output != null) + this.output.commandDone(); } catch (Exception e) { Log.log(Log.WARNING, this, e.getMessage()); } - process = null; - if (console != null) + this.process = null; + + if (this.console != null) { /* error.print(console.getErrorColor(), jEdit.getProperty( "console.shell.killed", pp)); */ Modified: plugins/Console/trunk/console/StreamThread.java =================================================================== --- plugins/Console/trunk/console/StreamThread.java 2012-05-10 12:34:19 UTC (rev 21653) +++ plugins/Console/trunk/console/StreamThread.java 2012-05-10 19:56:56 UTC (rev 21654) @@ -200,6 +200,12 @@ // {{{ flushLine() method private void flushLine(Output output, String eol) { + // make sure that output isn't null + if (output == null) + { + output = this.process.getConsole().getOutput(); + } + // we need to write the line break to the output, but we // can't pass it to the "processLine()" method or the // regexps won't recognize anything. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2012-06-15 14:50:31
|
Revision: 21805 http://jedit.svn.sourceforge.net/jedit/?rev=21805&view=rev Author: ezust Date: 2012-06-15 14:50:21 +0000 (Fri, 15 Jun 2012) Log Message: ----------- javadocs. Modified Paths: -------------- plugins/Console/trunk/console/BufferOutput.java plugins/Console/trunk/console/Console.java plugins/Console/trunk/console/ConsolePlugin.java Modified: plugins/Console/trunk/console/BufferOutput.java =================================================================== --- plugins/Console/trunk/console/BufferOutput.java 2012-06-15 11:37:49 UTC (rev 21804) +++ plugins/Console/trunk/console/BufferOutput.java 2012-06-15 14:50:21 UTC (rev 21805) @@ -43,7 +43,7 @@ * * Output to buffer implementation. * - * @todo - add better docs here. + * TODO: add better docs here. * */ Modified: plugins/Console/trunk/console/Console.java =================================================================== --- plugins/Console/trunk/console/Console.java 2012-06-15 11:37:49 UTC (rev 21804) +++ plugins/Console/trunk/console/Console.java 2012-06-15 14:50:21 UTC (rev 21805) @@ -440,7 +440,7 @@ //{{{ getShellState() method /** - * @returns the Output of a Shell, assuming the Shell was already created.... + * @return the Output of a Shell, assuming the Shell was already created.... * * @since Console 4.0.2. */ Modified: plugins/Console/trunk/console/ConsolePlugin.java =================================================================== --- plugins/Console/trunk/console/ConsolePlugin.java 2012-06-15 11:37:49 UTC (rev 21804) +++ plugins/Console/trunk/console/ConsolePlugin.java 2012-06-15 14:50:21 UTC (rev 21805) @@ -143,8 +143,8 @@ * * @return -1 if no error/warning, or an ErrorType. * Possible values are: - * @see ErrorSource.ERROR - * @see ErrorSource.WARNING + * @see ErrorSource#ERROR + * @see ErrorSource#WARNING * * Although it is possible derived ErrorSources will return custom error codes. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sy...@us...> - 2012-06-30 10:03:43
|
Revision: 21890 http://jedit.svn.sourceforge.net/jedit/?rev=21890&view=rev Author: synh Date: 2012-06-30 10:03:36 +0000 (Sat, 30 Jun 2012) Log Message: ----------- #3539123 - Console: NPE when command starts in background. Modified Paths: -------------- plugins/Console/trunk/console/ConsoleProcess.java plugins/Console/trunk/console/SystemShell.java Modified: plugins/Console/trunk/console/ConsoleProcess.java =================================================================== --- plugins/Console/trunk/console/ConsoleProcess.java 2012-06-29 01:03:17 UTC (rev 21889) +++ plugins/Console/trunk/console/ConsoleProcess.java 2012-06-30 10:03:36 UTC (rev 21890) @@ -76,12 +76,12 @@ this.currentDirectory = consoleState.currentDirectory; this.console = console; - if (foreground) - { + //if (foreground) + //{ this.output = output; this.error = new ErrorOutput(console); this.consoleState = consoleState; - } + //} try { Modified: plugins/Console/trunk/console/SystemShell.java =================================================================== --- plugins/Console/trunk/console/SystemShell.java 2012-06-29 01:03:17 UTC (rev 21889) +++ plugins/Console/trunk/console/SystemShell.java 2012-06-30 10:03:36 UTC (rev 21890) @@ -274,7 +274,7 @@ // run in background args.removeElementAt(args.size() - 1); foreground = false; - output.commandDone(); + //output.commandDone(); // error.commandDone(); } else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2012-11-28 04:20:29
|
Revision: 22505 http://jedit.svn.sourceforge.net/jedit/?rev=22505&view=rev Author: ezust Date: 2012-11-28 04:20:22 +0000 (Wed, 28 Nov 2012) Log Message: ----------- 3590583 Console: Can't disable error patterns. Modified Paths: -------------- plugins/Console/trunk/console/CommandOutputParser.java plugins/Console/trunk/console/ErrorListModel.java Modified: plugins/Console/trunk/console/CommandOutputParser.java =================================================================== --- plugins/Console/trunk/console/CommandOutputParser.java 2012-11-26 15:52:56 UTC (rev 22504) +++ plugins/Console/trunk/console/CommandOutputParser.java 2012-11-28 04:20:22 UTC (rev 22505) @@ -110,7 +110,7 @@ int retval = DEFAULT; if (text == null) return DEFAULT; - + if (errorMatchers.m_matchers.size() == 0) return -1; if (directoryStack.processLine(text)) { if (disp) display(color, text); Modified: plugins/Console/trunk/console/ErrorListModel.java =================================================================== --- plugins/Console/trunk/console/ErrorListModel.java 2012-11-26 15:52:56 UTC (rev 22504) +++ plugins/Console/trunk/console/ErrorListModel.java 2012-11-28 04:20:22 UTC (rev 22505) @@ -72,10 +72,10 @@ m_matchers = new ArrayList<ErrorMatcher>(); m_default = StringList.split(jEdit.getProperty("console.errors.default", ""), "\\s+"); StringList visible = StringList.split(jEdit.getProperty("console.errors.list", ""), "\\s+"); - if (visible.size() == 0) { + /*if (visible.size() == 0) { jEdit.setProperty("console.errors.list", m_default.join(" ")); visible = m_default; - } + }*/ for (String key: visible) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sy...@us...> - 2012-12-01 13:14:45
|
Revision: 22514 http://jedit.svn.sourceforge.net/jedit/?rev=22514&view=rev Author: synh Date: 2012-12-01 13:14:37 +0000 (Sat, 01 Dec 2012) Log Message: ----------- Move functionality from OutputStreamTask.java to: 1. ConsolePane.java - exchange of line's breaks (EOL) 2. AnsiEscapeParser.java - parsing vt100 command Modified Paths: -------------- plugins/Console/trunk/console/CommandOutputParser.java plugins/Console/trunk/console/ConsolePane.java plugins/Console/trunk/console/OutputStreamTask.java Added Paths: ----------- plugins/Console/trunk/console/AnsiEscapeParser.java Added: plugins/Console/trunk/console/AnsiEscapeParser.java =================================================================== --- plugins/Console/trunk/console/AnsiEscapeParser.java (rev 0) +++ plugins/Console/trunk/console/AnsiEscapeParser.java 2012-12-01 13:14:37 UTC (rev 22514) @@ -0,0 +1,292 @@ +/* + * AnsiEscapeParser.java - + * + * :tabSize=4:indentSize=4:noTabs=false: + * :folding=explicit:collapseFolds=1: + * + * Copyright (C) 2012 Artem Bryantsev + * + * 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 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 console; + +// {{{ imports +import java.awt.Color; + +import java.util.ArrayList; +import java.util.regex.*; + +import javax.swing.text.SimpleAttributeSet; +import javax.swing.text.StyleConstants; + +import org.gjt.sp.jedit.jEdit; +import org.gjt.sp.util.StringList; + +import jcfunc.*; +import jcfunc.parameters.*; +// }}} + +public class AnsiEscapeParser +{ + // {{{ private members + private Behaviour ansi_Behaviour; + private escMatcher ansi_Matcher; + private Color defaultColor; + // }}} + + // {{{ constructors + public AnsiEscapeParser(int ansi_mode, Behaviour behaviour, CF[] func_arr, Color defColor) + { + ansi_Matcher = new escMatcher(ansi_mode, Pattern.DOTALL); + + setBehaviour(behaviour); + setFunctions(func_arr); + setDefaultColor(defColor); + } + + public AnsiEscapeParser(Color defColor) + { + // choose matcher's mode + int ansi_mode = Sequences.MODE_7BIT; + if ( jEdit.getProperty("options.ansi-escape.mode").contentEquals("8bit") ) + { + ansi_mode = Sequences.MODE_8BIT; + } + + // define matcher's behaviour + Behaviour behaviour = Behaviour.IGNORE_ALL; + String str = jEdit.getProperty("options.ansi-escape.behaviour"); + if ( str.contentEquals("remove") ) + { + behaviour = Behaviour.REMOVE_ALL; + } + else if ( str.contentEquals("parse") ) + { + behaviour = Behaviour.PARSE; + } + + // fill parsing control function's list + StringList funcs = StringList.split( jEdit.getProperty("options.ansi-escape.func-list").toLowerCase(), "\\s+"); + String avaible_funcs = jEdit.getProperty("options.ansi-escape.func-list-values"); + + int i = 0; + while ( i < funcs.size() ) + { + if ( !avaible_funcs.contains( funcs.get(i) ) ) + { + str = funcs.remove(i); + str = null; + i--; + } + i++; + } + + CF[] func_arr = new CF[funcs.size()]; + for (i = 0; i < funcs.size(); i++) + { + func_arr[i] = CF.valueOf(CF.class, funcs.get(i).toUpperCase() ); + } + + ansi_Matcher = new escMatcher(ansi_mode, Pattern.DOTALL); + + setBehaviour(behaviour); + setFunctions(func_arr); + setDefaultColor(defColor); + } // }}} + + // {{{ isBehaviour() method + public boolean isBehaviour(Behaviour behaviour) + { + return ansi_Behaviour == behaviour; + } // }}} + + // {{{ getBehaviour() method + public Behaviour getBehaviour() + { + return ansi_Behaviour; + } // }}} + + // {{{ getDefaultColor() method + public Color getDefaultColor() + { + return defaultColor; + } // }}} + + // {{{ matches() method + public boolean matches(String line) + { + return ansi_Matcher.matches(line); + } // }}} + + // {{{ parse() methods + public ArrayList<Description> parse(String line) + { + return ansi_Matcher.parse(line); + } + + public ArrayList<Description> parse(String line, boolean ignoreSequences) + { + return ansi_Matcher.parse(line, ignoreSequences); + } // }}} + + // {{{ remove() methods + public String remove(String line, CF func) + { + return ansi_Matcher.remove(line, func); + } // }}} + + // {{{ removeAll() method + public String removeAll(String line) + { + return ansi_Matcher.removeAll(line); + } // }}} + + // {{{ touch() method + public boolean touch(Behaviour behaviour, String line) + { + return ansi_Behaviour == behaviour && matches(line); + } // }}} + + // {{{ setBehaviour() method + public void setBehaviour(Behaviour newBehaviour) + { + ansi_Behaviour = newBehaviour; + } // }}} + + // {{{ setDefaultColor() method + public void setDefaultColor(Color newColor) + { + defaultColor = newColor; + } // }}} + + // {{{ setFunctions() method + public void setFunctions(CF... cmds) + { + ansi_Matcher.setPatterns(cmds); + } // }}} + + // {{{ processSGRparameters() method + public SimpleAttributeSet processSGRparameters(int[] parameters, SimpleAttributeSet baseAttrs) + { + SimpleAttributeSet funcAttrs = new SimpleAttributeSet(baseAttrs); + int intensity = 0; + Color clr = null; + + // go over SGR's parameters + for (int value: parameters) + { + paramSGR valSGR = paramSGR.getEnumValue(value); + + switch (valSGR) + { + case Reset: + return null; + case Bright: + intensity = 1; + break; + case Faint : + intensity = -1; + break; + case Italic: + StyleConstants.setItalic(funcAttrs, true); + break; + case Underline_Single: + case Underline_Doubly: + StyleConstants.setUnderline(funcAttrs, true); + break; + case CrossedOut: + StyleConstants.setStrikeThrough(funcAttrs, true); + break; + case Normal_Int: + intensity = 0; + break; + case Normal_Style: + StyleConstants.setItalic(funcAttrs, false); + break; + case Underline_NGT: + StyleConstants.setUnderline(funcAttrs, false); + break; + case CrossedOut_NGT: + StyleConstants.setStrikeThrough(funcAttrs, false); + break; + case Color_Text_Black : + case Color_Text_Red : + case Color_Text_Green : + case Color_Text_Yellow : + case Color_Text_Blue : + case Color_Text_Magenta : + case Color_Text_Cyan : + case Color_Text_White : + case Color_Text_Reserved: + clr = paramSGR.getColor(valSGR); + if (clr == null) + clr = defaultColor; + + switch (intensity) + { + case 1: + clr = clr.darker(); + break; + case -1: + clr = clr.brighter(); + break; + } + + StyleConstants.setForeground(funcAttrs, clr); + break; + case Color_Bkgr_Black : + case Color_Bkgr_Red : + case Color_Bkgr_Green : + case Color_Bkgr_Yellow : + case Color_Bkgr_Blue : + case Color_Bkgr_Magenta : + case Color_Bkgr_Cyan : + case Color_Bkgr_White : + case Color_Bkgr_Reserved: + clr = paramSGR.getColor(valSGR); + if (clr == null) + clr = defaultColor; + + switch (intensity) + { + case 1: + clr = clr.darker(); + break; + case -1: + clr = clr.brighter(); + break; + } + + StyleConstants.setBackground(funcAttrs, clr); + break; + default: + break; + } + } + + return funcAttrs; + } + //}}} + + // {{{ internal enum Behaviour + public enum Behaviour + { + IGNORE_ALL, + REMOVE_ALL, + PARSE + } // }}} + +} Modified: plugins/Console/trunk/console/CommandOutputParser.java =================================================================== --- plugins/Console/trunk/console/CommandOutputParser.java 2012-11-29 17:20:48 UTC (rev 22513) +++ plugins/Console/trunk/console/CommandOutputParser.java 2012-12-01 13:14:37 UTC (rev 22514) @@ -102,15 +102,16 @@ * * @param text a line of text * @param disp if true, will also send to the Output. - * @return -1 if there is no error, or ErrorSource.WARNING, + * @return DEFAULT if there is no error, or ErrorSource.WARNING, * or ErrorSource.ERROR if there is a warning or an error found in text. */ public int processLine(String text, boolean disp) { int retval = DEFAULT; - if (text == null) - return DEFAULT; - if (errorMatchers.m_matchers.size() == 0) return -1; + + if (text == null) return DEFAULT; + if (errorMatchers.m_matchers.size() == 0) return DEFAULT; + if (directoryStack.processLine(text)) { if (disp) display(color, text); Modified: plugins/Console/trunk/console/ConsolePane.java =================================================================== --- plugins/Console/trunk/console/ConsolePane.java 2012-11-29 17:20:48 UTC (rev 22513) +++ plugins/Console/trunk/console/ConsolePane.java 2012-12-01 13:14:37 UTC (rev 22514) @@ -24,6 +24,7 @@ import java.awt.*; import java.awt.event.*; +import java.util.regex.*; import javax.swing.*; import javax.swing.event.*; @@ -49,8 +50,20 @@ private ConsoleHistoryText history; transient private DocumentHandler documentHandler; + + private static Pattern eolReplacingPattern = null; // }}} + // {{{ static initialization + static + { + if ( !System.getProperty("line.separator").equals("\n") ) + { + eolReplacingPattern = Pattern.compile( System.getProperty("line.separator") ); + } + } + // }}} + // {{{ ConsolePane constructor public ConsolePane() { @@ -288,7 +301,24 @@ return style; } // }}} - + + // {{{ eolExchangeRequired() method + public static boolean eolExchangeRequired() + { + return eolReplacingPattern != null; + } // }}} + + // {{{ eolExchanging() method + public static String eolExchanging(String prevString) + { + if (eolReplacingPattern != null) + { + return eolReplacingPattern.matcher(prevString).replaceAll("\n"); + } + + return prevString; + } // }}} + // {{{ processKeyEvent method @Override protected void processKeyEvent(KeyEvent e) Modified: plugins/Console/trunk/console/OutputStreamTask.java =================================================================== --- plugins/Console/trunk/console/OutputStreamTask.java 2012-11-29 17:20:48 UTC (rev 22513) +++ plugins/Console/trunk/console/OutputStreamTask.java 2012-12-01 13:14:37 UTC (rev 22514) @@ -40,8 +40,7 @@ import errorlist.DefaultErrorSource; import errorlist.ErrorSource; -import jcfunc.*; -import jcfunc.parameters.*; +import jcfunc.Description; // }}} // {{{ class OutputStreamTask @@ -52,6 +51,7 @@ private InputStream in; CommandOutputParser copt = null; + AnsiEscapeParser ansiescp = null; private final int DEFAULT = CommandOutputParser.DEFAULT; private final int WARNING = ErrorSource.WARNING; @@ -59,12 +59,8 @@ private StringBuilder lineBuffer; private int shiftUCW; - private int ANSI_BEHAVIOUR; private Pattern eolPattern; - private Pattern eolReplacingPattern; - private escMatcher ansi_Matcher; private SimpleAttributeSet commonAttrs; - private Color defaultColor; private SimpleAttributeSet defaultAttrs, warningAttrs, errorAttrs; // }}} @@ -81,67 +77,18 @@ copt = new CommandOutputParser(console.getView(), es, defaultColor); copt.setDirectory(currentDirectory); + ansiescp = new AnsiEscapeParser(defaultColor); + lineBuffer = new StringBuilder(100); shiftUCW = 0; eolPattern = Pattern.compile("\n"); - if (!System.getProperty("line.separator").equals("\n")) - { - eolReplacingPattern = Pattern.compile( System.getProperty("line.separator") ); - } - this.defaultColor = defaultColor; - commonAttrs = new SimpleAttributeSet(); StyleConstants.setBackground(commonAttrs, console.getConsolePane().getBackground()); StyleConstants.setForeground(commonAttrs, defaultColor); defaultAttrs = setDefaultAttrs(null); - - // choose matcher's mode - int ansi_mode = Sequences.MODE_7BIT; - if ( jEdit.getProperty("options.ansi-escape.mode").contentEquals("8bit") ) - { - ansi_mode = Sequences.MODE_8BIT; - } - - ansi_Matcher = new escMatcher(ansi_mode, Pattern.DOTALL); - - // define matcher's behaviour - ANSI_BEHAVIOUR = -1; // ignor all - String str = jEdit.getProperty("options.ansi-escape.behaviour"); - if ( str.contentEquals("remove") ) - { - ANSI_BEHAVIOUR = 0; // remove all - } - else if ( str.contentEquals("parse") ) - { - ANSI_BEHAVIOUR = 1; // parse - } - - // fill parsing control function's list - StringList funcs = StringList.split( jEdit.getProperty("options.ansi-escape.func-list").toLowerCase(), "\\s+"); - String avaible_funcs = jEdit.getProperty("options.ansi-escape.func-list-values"); - - int i = 0; - while ( i < funcs.size() ) - { - if ( !avaible_funcs.contains( funcs.get(i) ) ) - { - str = funcs.remove(i); - str = null; - i--; - } - i++; - } - - CF[] func_arr = new CF[funcs.size()]; - for (i = 0; i < funcs.size(); i++) - { - func_arr[i] = CF.valueOf(CF.class, funcs.get(i).toUpperCase() ); - } - - ansi_Matcher.setPatterns(func_arr); } // }}} // {{{ run() method @@ -207,17 +154,17 @@ String line = lineBuffer.append(input, 0, read).toString(); // "111\n222\n333\n444" // convert all line breaks to internal "standard": "\n" - if (eolReplacingPattern != null) + if ( ConsolePane.eolExchangeRequired() ) { lineBuffer.setLength(0); - line = lineBuffer.append( eolReplacingPattern.matcher(line).replaceAll("\n") ).toString(); + line = lineBuffer.append( ConsolePane.eolExchanging(line) ).toString(); } // remove all ANSI escape sequences - if ( ANSI_BEHAVIOUR == 0 && ansi_Matcher.matches(line) ) + if ( ansiescp.touch(AnsiEscapeParser.Behaviour.REMOVE_ALL, line) ) { lineBuffer.setLength(0); - line = lineBuffer.append( ansi_Matcher.removeAll(line) ).toString(); + line = lineBuffer.append( ansiescp.removeAll(line) ).toString(); } Matcher matcher = eolPattern.matcher(line); @@ -302,10 +249,10 @@ //}}} // look for ANSI escape sequences - if ( ANSI_BEHAVIOUR == 1 && ansi_Matcher.matches(str) ) - { - seqs = ansi_Matcher.parse(str, true); - str = ansi_Matcher.removeAll(str); // => str's length is changed + if ( ansiescp.touch(AnsiEscapeParser.Behaviour.PARSE, str) ) + { + seqs = ansiescp.parse(str, true); + str = ansiescp.removeAll(str); // => str's length is changed } // error/warning parser @@ -357,7 +304,7 @@ // new default style's creation: // 1. always cancel previous escape-style // 2. if no any escape-styles (resetting) - setup commonAttrs - defaultAttrs = setDefaultAttrs( processSGRparameters(descr.parameters, defaultAttrs) ); + defaultAttrs = setDefaultAttrs( ansiescp.processSGRparameters(descr.parameters, defaultAttrs) ); currentAttrs = updateCurrentAttrs( errorStatus, copt.getColor() ); flushSubstring(output, str, currentAttrs, descr.bPosition, descr.ePosition); @@ -376,105 +323,6 @@ } } //}}} - //{{{ processSGRparameters() method - private SimpleAttributeSet processSGRparameters(int[] parameters, SimpleAttributeSet baseAttrs) - { - SimpleAttributeSet funcAttrs = new SimpleAttributeSet(baseAttrs); - int intensity = 0; - Color clr = null; - - // go over SGR's parameters - for (int value: parameters) - { - paramSGR valSGR = paramSGR.getEnumValue(value); - - switch (valSGR) - { - case Reset: - return null; - case Bright: - intensity = 1; - break; - case Faint : - intensity = -1; - break; - case Italic: - StyleConstants.setItalic(funcAttrs, true); - break; - case Underline_Single: - case Underline_Doubly: - StyleConstants.setUnderline(funcAttrs, true); - break; - case CrossedOut: - StyleConstants.setStrikeThrough(funcAttrs, true); - break; - case Normal_Int: - intensity = 0; - break; - case Normal_Style: - StyleConstants.setItalic(funcAttrs, false); - break; - case Underline_NGT: - StyleConstants.setUnderline(funcAttrs, false); - break; - case CrossedOut_NGT: - StyleConstants.setStrikeThrough(funcAttrs, false); - break; - case Color_Text_Black : - case Color_Text_Red : - case Color_Text_Green : - case Color_Text_Yellow : - case Color_Text_Blue : - case Color_Text_Magenta : - case Color_Text_Cyan : - case Color_Text_White : - case Color_Text_Reserved: - clr = paramSGR.getColor(valSGR); - - switch (intensity) - { - case 1: - clr = clr.darker(); - break; - case -1: - clr = clr.brighter(); - break; - } - - StyleConstants.setForeground(funcAttrs, clr == null ? defaultColor : clr); - break; - case Color_Bkgr_Black : - case Color_Bkgr_Red : - case Color_Bkgr_Green : - case Color_Bkgr_Yellow : - case Color_Bkgr_Blue : - case Color_Bkgr_Magenta : - case Color_Bkgr_Cyan : - case Color_Bkgr_White : - case Color_Bkgr_Reserved: - clr = paramSGR.getColor(valSGR); - - switch (intensity) - { - case 1: - clr = clr.darker(); - break; - case -1: - clr = clr.brighter(); - break; - } - - StyleConstants.setBackground(funcAttrs, clr == null ? defaultColor : clr); - break; - default: - break; - } - } - - return funcAttrs; - } - //}}} - //{{{ flushSubstring() method private void flushSubstring(Output output, String str, SimpleAttributeSet localAttrs, int bpos, int epos) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sy...@us...> - 2012-12-02 12:19:54
|
Revision: 22515 http://jedit.svn.sourceforge.net/jedit/?rev=22515&view=rev Author: synh Date: 2012-12-02 12:19:42 +0000 (Sun, 02 Dec 2012) Log Message: ----------- - add documentation on AnsiEscapeParser. - now can setup to parser both type of default text color: foreground (font) color and backgrond color Modified Paths: -------------- plugins/Console/trunk/console/AnsiEscapeParser.java plugins/Console/trunk/console/OutputStreamTask.java Modified: plugins/Console/trunk/console/AnsiEscapeParser.java =================================================================== --- plugins/Console/trunk/console/AnsiEscapeParser.java 2012-12-01 13:14:37 UTC (rev 22514) +++ plugins/Console/trunk/console/AnsiEscapeParser.java 2012-12-02 12:19:42 UTC (rev 22515) @@ -1,5 +1,5 @@ /* - * AnsiEscapeParser.java - + * AnsiEscapeParser.java - parser ANSI escaped sequencies. * * :tabSize=4:indentSize=4:noTabs=false: * :folding=explicit:collapseFolds=1: @@ -39,25 +39,58 @@ import jcfunc.parameters.*; // }}} +/**<p> + * AnsiEscapeParser class wraps calls of JCFunc-library's functions in itself. + * + * Workflow: + * 1) create new parser with some parameters (choose parsing MODE) + * 2) use: + * - "touch()" or "matches()" for escaped sequencies' searching in input line + * - "parse()" for parsing escaped sequencies in input line + * - "processSGRparameters()" if found escaped sequence is SGR (color) function + * 3) user may change "on-the-fly": + * - parser's behaviour (ignore, remove, parse) + * - set of parsing sequencies + * 4) user cann't change "on-the-fly" parsing MODE.</p> + */ public class AnsiEscapeParser { // {{{ private members private Behaviour ansi_Behaviour; private escMatcher ansi_Matcher; - private Color defaultColor; + private Color defaultFColor, defaultBColor; // }}} // {{{ constructors - public AnsiEscapeParser(int ansi_mode, Behaviour behaviour, CF[] func_arr, Color defColor) + /**<p> + * Parser's state is decribed by following properties: + * @param ansi_mode - type of escaped sequencies (what kind of escaped sequencies parser processes?) + * @see jcfunc.Sequences.MODE_7BIT + * @see jcfunc.Sequences.MODE_8BIT + * Usually use 7-bit mode. + * @param behaviour - parser's behaviour proper (what parser does with found sequencies?) + * @see Behaviour + * @param func_arr - array of processing functions (escaped sequence == ESC + function) + * @see jcfunc.CF + * @param defFColor - default foreground color (for SGR-function) + * @param defBColor - default background color (for SGR-function)</p> + */ + public AnsiEscapeParser(int ansi_mode, Behaviour behaviour, CF[] func_arr, Color defFColor, Color defBColor) { ansi_Matcher = new escMatcher(ansi_mode, Pattern.DOTALL); setBehaviour(behaviour); setFunctions(func_arr); - setDefaultColor(defColor); + setDefaultFColor(defFColor); + setDefaultBColor(defBColor); } - public AnsiEscapeParser(Color defColor) + /**<p> + * This constructor gets parser's properties from Console's file of properties. + * @param defFColor - default foreground color (for SGR-function) + * @param defBColor - default background color (for SGR-function)</p> + */ + public AnsiEscapeParser(Color defFColor, Color defBColor) { // choose matcher's mode int ansi_mode = Sequences.MODE_7BIT; @@ -104,7 +137,8 @@ setBehaviour(behaviour); setFunctions(func_arr); - setDefaultColor(defColor); + setDefaultFColor(defFColor); + setDefaultBColor(defBColor); } // }}} // {{{ isBehaviour() method @@ -119,12 +153,18 @@ return ansi_Behaviour; } // }}} - // {{{ getDefaultColor() method - public Color getDefaultColor() + // {{{ getDefaultFColor() method + public Color getDefaultFColor() { - return defaultColor; + return defaultFColor; } // }}} + // {{{ getDefaultBColor() method + public Color getDefaultBColor() + { + return defaultBColor; + } // }}} + // {{{ matches() method public boolean matches(String line) { @@ -155,6 +195,11 @@ } // }}} // {{{ touch() method + /**<p> + * Check two things: + * @param behaviour - is it the current parser's behaviour? + * @param line - are there any matches?</p> + */ public boolean touch(Behaviour behaviour, String line) { return ansi_Behaviour == behaviour && matches(line); @@ -166,12 +211,18 @@ ansi_Behaviour = newBehaviour; } // }}} - // {{{ setDefaultColor() method - public void setDefaultColor(Color newColor) + // {{{ setDefaultFColor() method + public void setDefaultFColor(Color newColor) { - defaultColor = newColor; + defaultFColor = newColor; } // }}} + // {{{ setDefaultBColor() method + public void setDefaultBColor(Color newColor) + { + defaultBColor = newColor; + } // }}} + // {{{ setFunctions() method public void setFunctions(CF... cmds) { @@ -179,6 +230,21 @@ } // }}} // {{{ processSGRparameters() method + /**<p> + * This method is handler of only one (but most popular) function: SGR function. + * SGR function controls substring's color and style. + * + * Usually text with SGR function looks like that: + * <em>This is #SGR#only example#/SGR#: you'll never see tag "#SGR#" in your texts.</em> + * There is used some "base" text style for whole line but under tag "#SGR#" base style is changed. + * + * Parameters: + * @param parameters - array of parameters; usually it is parser's working result. + * @see jcfunc.Description + * @param baseAttrs - base text's style + * + * @return SimpleAttributeSet - combination base text's style with SGR-parameters</p> + */ public SimpleAttributeSet processSGRparameters(int[] parameters, SimpleAttributeSet baseAttrs) { SimpleAttributeSet funcAttrs = new SimpleAttributeSet(baseAttrs); @@ -233,7 +299,7 @@ case Color_Text_Reserved: clr = paramSGR.getColor(valSGR); if (clr == null) - clr = defaultColor; + clr = defaultFColor; switch (intensity) { @@ -258,7 +324,7 @@ case Color_Bkgr_Reserved: clr = paramSGR.getColor(valSGR); if (clr == null) - clr = defaultColor; + clr = defaultBColor; switch (intensity) { @@ -282,10 +348,14 @@ //}}} // {{{ internal enum Behaviour + /** Behaviour class describes parser's behaviour */ public enum Behaviour { + /** parser ignores any sequencies */ IGNORE_ALL, + /** parser removes any sequencies from input string */ REMOVE_ALL, + /** parser processes sequencies */ PARSE } // }}} Modified: plugins/Console/trunk/console/OutputStreamTask.java =================================================================== --- plugins/Console/trunk/console/OutputStreamTask.java 2012-12-01 13:14:37 UTC (rev 22514) +++ plugins/Console/trunk/console/OutputStreamTask.java 2012-12-02 12:19:42 UTC (rev 22515) @@ -77,7 +77,7 @@ copt = new CommandOutputParser(console.getView(), es, defaultColor); copt.setDirectory(currentDirectory); - ansiescp = new AnsiEscapeParser(defaultColor); + ansiescp = new AnsiEscapeParser(defaultColor, console.getConsolePane().getBackground()); lineBuffer = new StringBuilder(100); shiftUCW = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sy...@us...> - 2013-01-02 14:51:26
|
Revision: 22632 http://jedit.svn.sourceforge.net/jedit/?rev=22632&view=rev Author: synh Date: 2013-01-02 14:51:11 +0000 (Wed, 02 Jan 2013) Log Message: ----------- Added possibility to choose between blocking and nonblocking output's. waiting algorithms. Modified Paths: -------------- plugins/Console/trunk/console/OutputStreamTask.java plugins/Console/trunk/console/ParsingOutputStreamTask.java plugins/Console/trunk/console/SimpleOutputStreamTask.java Modified: plugins/Console/trunk/console/OutputStreamTask.java =================================================================== --- plugins/Console/trunk/console/OutputStreamTask.java 2013-01-02 09:39:14 UTC (rev 22631) +++ plugins/Console/trunk/console/OutputStreamTask.java 2013-01-02 14:51:11 UTC (rev 22632) @@ -54,7 +54,7 @@ // {{{ afterWorking() method @Override - protected void afterWorking() + protected void afterWorking() throws Exception { super.afterWorking(); Modified: plugins/Console/trunk/console/ParsingOutputStreamTask.java =================================================================== --- plugins/Console/trunk/console/ParsingOutputStreamTask.java 2013-01-02 09:39:14 UTC (rev 22631) +++ plugins/Console/trunk/console/ParsingOutputStreamTask.java 2013-01-02 14:51:11 UTC (rev 22632) @@ -49,7 +49,7 @@ User can set parsers either at the moment of class's creating or after class' creation. If some parser is not defined - the class does not use that parser. - A char's sequence from an InputStream (size == SimpleOutputStreamTask.BUFFER_SIZE) + A char's sequence from an InputStream (size == SimpleOutputStreamTask.BufferSize) is divided by line's breaks (if any), because the error parser might work with individual lines only, not the whole sequence - in common case InputStream can produce really many individual lines. On the other hand, each @@ -61,8 +61,7 @@ be processed EDT, sharply reduced. For this reason after processing of each individual line ParsingOutputStreamTask tries flush one to the cache. If the cache is full (CACHE_SIZE_LIMIT) or current - style attributes are changed or the last cache's update was a long ago (CACHE_TIME_DELAY) - then the whole cache is flushed to output. + style attributes are changed then the whole cache is flushed to output. */ public class ParsingOutputStreamTask extends SimpleOutputStreamTask { @@ -81,10 +80,8 @@ // {{{ cache's members private final int CACHE_SIZE_LIMIT = 100; // line's count - private final long CACHE_TIME_DELAY = 100; // in msek private SimpleAttributeSet cache_lastAttrs; private int cache_strCount = 0; - private long cache_lastTime = 0; private StringBuilder cache = new StringBuilder(); // }}} @@ -128,7 +125,6 @@ cache.append(str); cache_strCount++; - cache_lastTime = System.currentTimeMillis(); } // }}} // {{{ printString() method @@ -366,12 +362,12 @@ lineBuffer.setLength(0); } - resetCache( System.currentTimeMillis() - cache_lastTime > CACHE_TIME_DELAY ); + resetCache( cache.length() > 0 ); } // }}} // {{{ afterWorking() method @Override - protected void afterWorking() + protected void afterWorking() throws Exception { errorParser.finishErrorParsing(); } // }}} Modified: plugins/Console/trunk/console/SimpleOutputStreamTask.java =================================================================== --- plugins/Console/trunk/console/SimpleOutputStreamTask.java 2013-01-02 09:39:14 UTC (rev 22631) +++ plugins/Console/trunk/console/SimpleOutputStreamTask.java 2013-01-02 14:51:11 UTC (rev 22632) @@ -28,7 +28,10 @@ import java.awt.Color; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.InterruptedIOException; import java.io.UnsupportedEncodingException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import org.gjt.sp.jedit.jEdit; import org.gjt.sp.util.Log; @@ -79,16 +82,16 @@ // }}} public class SimpleOutputStreamTask extends StreamTask { - private InputStream in; - private Color defaultColor; + private WaitingLoop waitingLoop; + protected int BufferSize = 1024; + protected int SleepDelayMSec = 20; + + protected InputStream in; + protected Color defaultColor; protected Output output; protected StringBuilder lineBuffer; - protected int BUILDER_CAPACITY = 100; - protected int BUFFER_SIZE = 1024; - protected int SLEEP_DELAY = 100; - // {{{ constructor public SimpleOutputStreamTask(InputStream in, Output output, Color defaultColor) { @@ -97,8 +100,6 @@ this.in = in; this.output = output; this.defaultColor = defaultColor; - - lineBuffer = new StringBuilder(BUILDER_CAPACITY); } // }}} // {{{ actionInsideWaitingLoop() method @@ -117,7 +118,7 @@ * * (under "finally" section) */ - protected void afterWorking() + protected void afterWorking() throws Exception { } // }}} @@ -167,7 +168,6 @@ } // }}} // {{{ run() method - /** Task class method */ @Override public final void run() { @@ -180,12 +180,36 @@ { throw new RuntimeException(uee); } - + + if (waitingLoop == null) + { + boolean _synchronized = false; + + Method[] methods = in.getClass().getMethods(); + for (Method method : methods) + { + String name = method.getName(); + if ( name.contentEquals("available") || + name.contentEquals("read") ) + { + if ( Modifier.isSynchronized( method.getModifiers() ) ) + { + _synchronized = true; + break; + } + } + } + + setWaitingLoop( _synchronized ? WLTypes.syncWL : WLTypes.nonsyncWL ); + } + try { - char[] input = new char[BUFFER_SIZE]; + char[] input = new char[BufferSize]; int read = 0; + lineBuffer = new StringBuilder(BufferSize); + beforeWorking(); try @@ -194,36 +218,12 @@ { try { - /* wait until: * - * - either the end of the input stream has been reached * - * - or user interrupts this thread. */ - while (true) // waiting loop - { - if (abortFlag) - { - throw new InterruptedException("Break the main loop: aborting"); - } - else if ( isr.ready() ) - { - if ((read = isr.read(input, 0, input.length)) == -1) - { - throw new InterruptedException("Break the main loop: input stream is empty"); - } - else - { - break; // break waiting loop only - } - } - else if (finishFlag) - { - throw new InterruptedException("End the main loop."); - } - - Thread.sleep(SLEEP_DELAY); - - actionInsideWaitingLoop(isr); - } + read = waitingLoop.readIfReady(isr, input, 0, input.length); } + catch (InterruptedIOException iioe) + { + break; + } catch (InterruptedException ie) { break; @@ -232,6 +232,8 @@ lineBuffer.append(input, 0, read); outputData(); + + waitingLoop.decoratedActionInsideWaitingLoop(isr); } } finally @@ -263,4 +265,170 @@ output.print( defaultColor, lineBuffer.toString() ); lineBuffer.setLength(0); } // }}} + + // {{{ setWaitingLoop() method + public void setWaitingLoop(WLTypes wl) + { + switch (wl) + { + case syncWL : + waitingLoop = new SynchronizedWL(); + break; + + case nonsyncWL : + waitingLoop = new NonsynchronizedWL(); + break; + + case blockWL : + waitingLoop = new BlockingWL(); + break; + + default: + waitingLoop = new NonsynchronizedWL(); + } + } // }}} + + // {{{ inner classes + + // {{{ enum WLTypes + public enum WLTypes + { + /** nonblocking synchronized waiting loop */ + syncWL, + + /** nonblocking asynchronized waiting loop (default) */ + nonsyncWL, + + /** blocking asynchronized waiting loop */ + blockWL + } // }}} + + // {{{ class WaitingLoop + private class WaitingLoop + { + public int readIfReady(InputStreamReader isr, char[] input, int offset, int length) + throws Exception + { + throw new InterruptedException("End the main loop."); + } + + public void decoratedActionInsideWaitingLoop(InputStreamReader isr) + throws Exception + { + } + } // }}} + + // {{{ class NonsynchronizedWL + private class NonsynchronizedWL extends WaitingLoop + { + @Override + public int readIfReady(InputStreamReader isr, char[] input, int offset, int length) + throws Exception + { + int result = 0; + + while (true) // waiting loop + { + if (SimpleOutputStreamTask.this.abortFlag) + { + throw new InterruptedException("Break the main loop: aborting"); + } + else if ( isr.ready() ) + { + if ( (result = isr.read(input, offset, length)) == -1 ) + { + throw new InterruptedException("Break the main loop: input stream is empty"); + } + else + { + break; // break waiting loop only + } + } + else if (SimpleOutputStreamTask.this.finishFlag) + { + throw new InterruptedException("End the main loop."); + } + + // sleep() + Thread.sleep(SimpleOutputStreamTask.this.SleepDelayMSec); + + SimpleOutputStreamTask.this.actionInsideWaitingLoop(isr); + } + + return result; + } + } // }}} + + // {{{ class SynchronizedWL + private class SynchronizedWL extends WaitingLoop + { + @Override + public int readIfReady(InputStreamReader isr, char[] input, int offset, int length) + throws Exception + { + int result = 0; + + synchronized (SimpleOutputStreamTask.this.in) + { + while (true) // waiting loop + { + if (SimpleOutputStreamTask.this.abortFlag) + { + throw new InterruptedException("Break the main loop: aborting"); + } + else if ( isr.ready() ) + { + if ( (result = isr.read(input, offset, length)) == -1 ) + { + throw new InterruptedException("Break the main loop: input stream is empty"); + } + else + { + break; // break waiting loop only + } + } + else if (SimpleOutputStreamTask.this.finishFlag) + { + throw new InterruptedException("End the main loop."); + } + + // wait() + SimpleOutputStreamTask.this.in.wait(SimpleOutputStreamTask.this.SleepDelayMSec); + + SimpleOutputStreamTask.this.actionInsideWaitingLoop(isr); + } + } + + return result; + } + } // }}} + + // {{{ class BlockingWL + private class BlockingWL extends WaitingLoop + { + @Override + public int readIfReady(InputStreamReader isr, char[] input, int offset, int length) + throws Exception + { + int result = isr.read(input, offset, length); + + if (result == -1) + { + throw new InterruptedException("Break the main loop: input stream is empty"); + } + + return result; + } + + @Override + public void decoratedActionInsideWaitingLoop(InputStreamReader isr) + throws Exception + { + SimpleOutputStreamTask.this.actionInsideWaitingLoop(isr); + } + } // }}} + + // }}} + + // }}} } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sy...@us...> - 2013-01-20 20:55:00
|
Revision: 22704 http://jedit.svn.sourceforge.net/jedit/?rev=22704&view=rev Author: synh Date: 2013-01-20 20:54:53 +0000 (Sun, 20 Jan 2013) Log Message: ----------- comments. Modified Paths: -------------- plugins/Console/trunk/console/Console.java plugins/Console/trunk/console/ConsolePane.java Modified: plugins/Console/trunk/console/Console.java =================================================================== --- plugins/Console/trunk/console/Console.java 2013-01-20 20:50:16 UTC (rev 22703) +++ plugins/Console/trunk/console/Console.java 2013-01-20 20:54:53 UTC (rev 22704) @@ -921,7 +921,8 @@ { return scrollback; } //}}} - + + //{{{ constructor public ShellState(Shell shell) { this.shell = shell; @@ -931,9 +932,12 @@ // ick! talk about tightly coupling two classes. shell.openConsole(Console.this); - } + } //}}} //{{{ getInputStart() method + /** + * Return InputStart position inside of document. + */ public int getInputStart() { return ((Integer)scrollback.getProperty( @@ -941,6 +945,9 @@ } //}}} //{{{ setInputStart() method + /** + * Setup InputStart position inside of document. + */ public void setInputStart(int cmdStart) { scrollback.putProperty(ConsolePane.InputStart, @@ -1018,6 +1025,10 @@ } //}}} //{{{ writeSafely() method + /** + * Output data to document and change InputStart position + * using own methods. + */ private void writeSafely(AttributeSet attrs, String msg) { try Modified: plugins/Console/trunk/console/ConsolePane.java =================================================================== --- plugins/Console/trunk/console/ConsolePane.java 2013-01-20 20:50:16 UTC (rev 22703) +++ plugins/Console/trunk/console/ConsolePane.java 2013-01-20 20:54:53 UTC (rev 22704) @@ -35,6 +35,10 @@ public class ConsolePane extends JTextPane { // {{{ Members + /** + * Name of document's property which keeps InputStart position + * inside of the document. + */ public static final String InputStart = "InputStart"; public static final Object Input = new Object(); @@ -230,6 +234,10 @@ } // }}} // {{{ getInputStart() method + /** + * Return InputStart position inside of current (associated with + * ConsolePane) document. + */ public int getInputStart() { Document d = getDocument(); @@ -244,6 +252,12 @@ } // }}} // {{{ setInputStart() method + /** + * Setup InputStart position inside of current (associated with + * ConsolePane) document. + * ShellState class changes its InputStart position by oneself. + * (see "Console.ShellState.writeSafely()" ). + */ public void setInputStart(int cmdStart) { getDocument().putProperty(InputStart, Integer.valueOf(cmdStart)); @@ -579,6 +593,10 @@ } // }}} // {{{ DocumentHandler class + /** + * This class adjusts InputStart position only when + * document's content is changed BEFORE InputStart position. + */ class DocumentHandler implements DocumentListener { public void insertUpdate(DocumentEvent e) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2013-01-27 01:51:22
|
Revision: 22729 http://jedit.svn.sourceforge.net/jedit/?rev=22729&view=rev Author: ezust Date: 2013-01-27 01:51:15 +0000 (Sun, 27 Jan 2013) Log Message: ----------- get rid of executeInDir() at SystemShell level - it's the wrong place to put that method. Modified Paths: -------------- plugins/Console/trunk/console/Console.java plugins/Console/trunk/console/ConsolePlugin.java plugins/Console/trunk/console/Shell.java plugins/Console/trunk/console/SystemShell.java plugins/Console/trunk/console/commando/CommandoThread.java Modified: plugins/Console/trunk/console/Console.java =================================================================== --- plugins/Console/trunk/console/Console.java 2013-01-26 19:47:33 UTC (rev 22728) +++ plugins/Console/trunk/console/Console.java 2013-01-27 01:51:15 UTC (rev 22729) @@ -3,9 +3,7 @@ * :tabSize=4:indentSize=4:noTabs=false: * :folding=explicit:collapseFolds=1: * - * Copyright (C) 2000, 2005 Slava Pestov - * parts Copyright (C) 2006 Alan Ezust - * parts Copyright (C) 2010 Eric Le Lay + * Copyright (C) 2000-2013 Slava Pestov, Alan Ezust, Eric Le Lay * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: plugins/Console/trunk/console/ConsolePlugin.java =================================================================== --- plugins/Console/trunk/console/ConsolePlugin.java 2013-01-26 19:47:33 UTC (rev 22728) +++ plugins/Console/trunk/console/ConsolePlugin.java 2013-01-27 01:51:15 UTC (rev 22729) @@ -551,12 +551,11 @@ console.setShell("System"); if (jEdit.getBooleanProperty("console.clearBeforeExecute")) console.clear(); - final Console.ShellState state = console.getShellState(systemShell); - - console.getOutput().writeAttrs( +/* console.getOutput().writeAttrs( ConsolePane.colorAttributes(console.getInfoColor()), - "\n"+cmd+"\n"); - systemShell.executeInDir(console, null, state, null, cmd, project.getRootPath()); + "\n"+cmd+"\n"); */ + console.chDir(project.getRootPath(), true); + console.run(console.getShell(), console.getOutput(), cmd); } // }}} // {{{ getPackageName() method Modified: plugins/Console/trunk/console/Shell.java =================================================================== --- plugins/Console/trunk/console/Shell.java 2013-01-26 19:47:33 UTC (rev 22728) +++ plugins/Console/trunk/console/Shell.java 2013-01-27 01:51:15 UTC (rev 22729) @@ -3,7 +3,7 @@ * :tabSize=4:indentSize=4:noTabs=false: * :folding=explicit:collapseFolds=1: * - * Copyright (C) 1999, 2005 Slava Pestov + * Copyright (C) 1999-2013 Slava Pestov, Alan Ezust * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -98,19 +98,21 @@ return retVal.toArray(); } //}}} + //{{{ handlesVFS() /** @param vfsPath the path to test if this shell handles - @return true if this shell handles a path that looks like vfsPath + @return true if this shell is preferred for handling a path that looks like vfsPath */ public boolean handlesVFS(String vfsPath) { return false; - } + }//}}} + //{{{ chDir() /** @param pathStr vfs path to change directory @return true if the function did something, false if not. */ public boolean chDir(Console console, String pathStr) { return false; - } + }// }}} //{{{ getShell() method /** Modified: plugins/Console/trunk/console/SystemShell.java =================================================================== --- plugins/Console/trunk/console/SystemShell.java 2013-01-26 19:47:33 UTC (rev 22728) +++ plugins/Console/trunk/console/SystemShell.java 2013-01-27 01:51:15 UTC (rev 22729) @@ -218,24 +218,6 @@ return true; } - // {{{ executeInDir() - public void executeInDir(final Console console, String input, - final Output output, Output error, String command, String dir) - { - try { - output.print(console.getInfoColor(), jEdit.getProperty( - "console.shell.runInDir", new String[] { dir, command })); - } - catch (Exception e) { - Log.log(Log.ERROR, this, e); - } - ConsoleState state = getConsoleState(console); - String cwd = state.currentDirectory; - chDir(console, dir); - this.execute(console, input, output, error, command); - chDir(console, cwd); - } // }}} - // {{{ execute() public void execute(final Console console, String input, final Output output, Output error, String command) Modified: plugins/Console/trunk/console/commando/CommandoThread.java =================================================================== --- plugins/Console/trunk/console/commando/CommandoThread.java 2013-01-26 19:47:33 UTC (rev 22728) +++ plugins/Console/trunk/console/commando/CommandoThread.java 2013-01-27 01:51:15 UTC (rev 22729) @@ -107,14 +107,8 @@ boolean needChangeDir = (shell instanceof SystemShell) && (command.dir != null); if (needChangeDir) - { - SystemShell system = (SystemShell)shell; - system.executeInDir(console, null, out, null, command.command, command.dir); - } - else - { - console.run(shell, null, out, null, command.command); - } + console.chDir(command.dir, false); + console.run(shell, null, out, null, command.command); } }); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sy...@us...> - 2013-01-28 19:26:13
|
Revision: 22736 http://jedit.svn.sourceforge.net/jedit/?rev=22736&view=rev Author: synh Date: 2013-01-28 19:26:05 +0000 (Mon, 28 Jan 2013) Log Message: ----------- Fixed regression: damage of the outputting cache in case of blocking read operation. Modified Paths: -------------- plugins/Console/trunk/console/ParsingOutputStreamTask.java plugins/Console/trunk/console/SimpleOutputStreamTask.java Modified: plugins/Console/trunk/console/ParsingOutputStreamTask.java =================================================================== --- plugins/Console/trunk/console/ParsingOutputStreamTask.java 2013-01-28 14:04:58 UTC (rev 22735) +++ plugins/Console/trunk/console/ParsingOutputStreamTask.java 2013-01-28 19:26:05 UTC (rev 22736) @@ -241,8 +241,17 @@ return defaultAttrs; } // }}} + // }}} // {{{ push() method + /** + Push a string to the outputting cache with a some AttributeSet. + If the current value of AttributeSet is not a same as one previously + saved then at first this method flushes the cached data and saves + the current value of AttributeSet. + @param currentAttrs current value of the AttributeSet + @param str outputed string + */ public void push(SimpleAttributeSet currentAttrs, String str) { if ( pop(currentAttrs != cache_lastAttrs) ) @@ -254,9 +263,15 @@ } // }}} // {{{ pop() method - public boolean pop(boolean flag) + /** + Pop the cached data from the outputting cache to Output. When "forced" is + "true" the outputting cache is flushed by force. + @param forced if "true" the cache is flushed by force + @return if the cache is flushed successfully then return "true" + */ + public boolean pop(boolean forced) { - if (flag || cache_strCount >= CACHE_SIZE_LIMIT) + if (forced || cache_strCount >= CACHE_SIZE_LIMIT) { output.writeAttrs(cache_lastAttrs, lineBuffer.substring(0, buffer_start)); @@ -277,8 +292,21 @@ return false; } // }}} - // }}} + // {{{ trim_cache() + /** + Remove a noncached data (placed AFTER the cache) from the cache. + @return return a noncached data + */ + public String trim_cache() + { + String result = lineBuffer.substring(buffer_start); + + lineBuffer.setLength(buffer_start); + + return result; + } // }}} + // {{{ constructor /** Create instance using given View and DefaultErrorSource. @@ -359,17 +387,20 @@ // {{{ actionInsideWaitingLoop() method /** * Extended outputting: working process outputs nothing a long time. - * In that case flush unterminated string. + * In that case flush and a cached data and a noncached (unterminated string). */ @Override protected void actionInsideWaitingLoop(InputStreamReader isr) throws Exception { - if ( !isr.ready() ) + if (lineBuffer.length() > 0) { - handleString(lineBuffer.substring(buffer_start), true); + if ( !isr.ready() ) + { + handleString(trim_cache(), true); + } + + pop(true); } - - pop( lineBuffer.length() > 0 ); } // }}} // {{{ afterWorking() method @@ -385,7 +416,7 @@ { if (lineBuffer.length() > 0) { - handleString(lineBuffer.substring(buffer_start), false); + handleString(trim_cache(), false); pop(true); } @@ -426,7 +457,7 @@ // now there is no necessity to use external buffer -> clean lineBuffer.ensureCapacity(buffer_start + line.length()); - lineBuffer.setLength(buffer_start); + trim_cache(); Matcher matcher = eolPattern.matcher(line); @@ -438,7 +469,7 @@ cache_strCount++; } // unterminated string -> save it to external buffer over the cache - if ( bPosition < line.length() - 1 ) + if ( bPosition < line.length() ) { lineBuffer.append(line.substring(bPosition)); } @@ -494,5 +525,6 @@ errorParser = new CommandOutputParser(view, des, defaultColor); errorParser.setDirectory(currentDirectory); } // }}} + } Modified: plugins/Console/trunk/console/SimpleOutputStreamTask.java =================================================================== --- plugins/Console/trunk/console/SimpleOutputStreamTask.java 2013-01-28 14:04:58 UTC (rev 22735) +++ plugins/Console/trunk/console/SimpleOutputStreamTask.java 2013-01-28 19:26:05 UTC (rev 22736) @@ -116,7 +116,7 @@ * - main working loop ends * - "finalOutputing()" method * - * (under "finally" section) + * (under "try" section) */ protected void afterWorking() throws Exception { @@ -183,24 +183,7 @@ if (waitingLoop == null) { - boolean _synchronized = false; - - Method[] methods = in.getClass().getMethods(); - for (Method method : methods) - { - String name = method.getName(); - if ( name.contentEquals("available") || - name.contentEquals("read") ) - { - if ( Modifier.isSynchronized( method.getModifiers() ) ) - { - _synchronized = true; - break; - } - } - } - - setWaitingLoop( _synchronized ? WLTypes.syncWL : WLTypes.nonsyncWL ); + setWaitingLoop(WLTypes.nonsyncWL); } try @@ -232,17 +215,15 @@ lineBuffer.append(input, 0, read); outputData(); - - waitingLoop.decoratedActionInsideWaitingLoop(isr); } } finally { finalOutputting(); - - afterWorking(); } + afterWorking(); + } catch (Exception e) { @@ -316,11 +297,6 @@ { throw new InterruptedException("End the main loop."); } - - public void decoratedActionInsideWaitingLoop(InputStreamReader isr) - throws Exception - { - } } // }}} // {{{ class NonsynchronizedWL @@ -415,6 +391,8 @@ public int readIfReady(InputStreamReader isr, char[] input, int offset, int length) throws Exception { + SimpleOutputStreamTask.this.actionInsideWaitingLoop(isr); + int result = isr.read(input, offset, length); if (result == -1) @@ -424,13 +402,6 @@ return result; } - - @Override - public void decoratedActionInsideWaitingLoop(InputStreamReader isr) - throws Exception - { - SimpleOutputStreamTask.this.actionInsideWaitingLoop(isr); - } } // }}} // }}} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ez...@us...> - 2013-02-18 18:34:18
|
Revision: 22798 http://jedit.svn.sourceforge.net/jedit/?rev=22798&view=rev Author: ezust Date: 2013-02-18 18:34:08 +0000 (Mon, 18 Feb 2013) Log Message: ----------- Attempt to fix #3605191 Modified Paths: -------------- plugins/Console/trunk/console/Console.java plugins/Console/trunk/console/bsh/changeToPvRoot.bsh Modified: plugins/Console/trunk/console/Console.java =================================================================== --- plugins/Console/trunk/console/Console.java 2013-02-18 04:23:30 UTC (rev 22797) +++ plugins/Console/trunk/console/Console.java 2013-02-18 18:34:08 UTC (rev 22798) @@ -796,9 +796,8 @@ if (!isVisible()) return; String path = msg.getPath(); // don't chdir to a filename - if (!msg.isDirectory()) { - path = path.substring(0, path.lastIndexOf('/')); - } + if (!msg.isDirectory()) + path = MiscUtilities.getParentOfPath(path); // sshConsole always responds to node selected. if (path.startsWith("sftp://") || jEdit.getBooleanProperty("console.changedir.nodeselect") ) chDir(path); Modified: plugins/Console/trunk/console/bsh/changeToPvRoot.bsh =================================================================== --- plugins/Console/trunk/console/bsh/changeToPvRoot.bsh 2013-02-18 04:23:30 UTC (rev 22797) +++ plugins/Console/trunk/console/bsh/changeToPvRoot.bsh 2013-02-18 18:34:08 UTC (rev 22798) @@ -1,8 +1,7 @@ /** Beanshell Script to change the current console's directory to the root of the current ProjectViewer's project. - Will switch shells if there is another shell that is more appropriate - for the root path. + Will switch shells if another is more appropriate for this project. by ezust This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |