/www/tags/NOV_07_2009/htdocs/42docs/users-guide/scripts-command-line.html
HTML | 66 lines | 63 code | 3 blank | 0 comment | 0 complexity | 15318d4edb3e270cc31ff678f988aa50 MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0, Apache-2.0, LGPL-2.0, LGPL-3.0, GPL-2.0, CC-BY-SA-3.0, LGPL-2.1, GPL-3.0, MPL-2.0-no-copyleft-exception, IPL-1.0
- <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Running Scripts from the Command
- Line</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="jEdit 4.2 User's Guide"><link rel="up" href="macro-tips.html" title="Chapter 15. Macro Tips and Techniques"><link rel="previous" href="startup-scripts.html" title="Startup Scripts"><link rel="next" href="macro-tips-BeanShell.html" title="Advanced BeanShell Techniques"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Running Scripts from the Command
- Line</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="startup-scripts.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Macro Tips and Techniques</th><td width="20%" align="right"> <a accesskey="n" href="macro-tips-BeanShell.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="scripts-command-line"></a>Running Scripts from the Command
- Line</h2></div></div><div></div></div><p>
- The <b class="userinput"><tt>-run</tt></b> command line switch specifies a BeanShell
- script to run on startup:
- </p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"><tt class="prompt">$ </tt><b class="userinput"><tt>jedit -run=test.bsh</tt></b></pre></td></tr></table><p>
- Note that just like with startup scripts, the <tt class="varname">view</tt>,
- <tt class="varname">textArea</tt>, <tt class="varname">editPane</tt> and
- <tt class="varname">buffer</tt> variables are not defined.
- </p><p>
- If another instance is already running, the script will be run in that
- instance, and you will be able to use the
- <tt class="function">jEdit.getLastView()</tt> method to obtain a view.
- However, if a new instance of jEdit is being started, the script will
- be run at the same time as all other startup scripts; that is, before
- the first view is opened.
- </p><p>
- If your script needs a view instance to operate on, you can use the
- following code pattern to obtain one, no matter how or when the script is
- being run:
- </p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">void doSomethingUseful()
- {
- void run()
- {
- view = jEdit.getLastView();
- // put actual script body here
- }
- if(jEdit.getLastView() == null)
- VFSManager.runInAWTThread(this);
- else
- run();
- }
- doSomethingUseful();</pre></td></tr></table><p>
- If the script is being run in a loaded
- instance, it can be invoked to perform its work immediately.
- However, if
- the script is running at startup, before an initial view exists, its
- operation must be delayed to allow the view object first to be created
- and displayed.
- In order to queue the macro's operation, the scripted “<span class="quote">closure</span>”
- named <tt class="function">doSomethingUseful()</tt> implements the
- <tt class="classname">Runnable</tt> interface of the Java platform.
- That interface contains only
- a single <tt class="function">run()</tt> method that takes no parameters
- and has no return value. The macro's implementation of the
- <tt class="function">run()</tt> method contains the “<span class="quote">working</span>”
- portion of the macro. Then the scripted object, represented by a
- reference to <tt class="varname">this</tt>, is passed to the
- <tt class="function">runInAWTThread()</tt> method. This schedules the
- macro's operations for execution after the startup routine is complete.
- </p><p>
- As this example illustrates, the <tt class="function">runInAWTThread()</tt>
- method can be used to ensure that a macro will perform operations
- after other operations have
- completed. If it is invoked during startup, it schedules the specified
- <tt class="classname">Runnable</tt> object to run after startup is complete.
- If invoked when jEdit is fully loaded, the <tt class="classname">Runnable</tt>
- object will execute after
- all pending input/output is complete, or immediately if there are no
- pending I/O operations. This will delay operations on a new buffer,
- for example, until after the buffer is loaded and displayed.
- </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="startup-scripts.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="macro-tips.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="macro-tips-BeanShell.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Startup Scripts </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Advanced BeanShell Techniques</td></tr></table></div></body></html>