Revision: 1490 http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1490&view=re... Author: dmaphy Date: 2010-07-31 14:17:00 +0000 (Sat, 31 Jul 2010)
Log Message: ----------- tagged stable
Added Paths: ----------- www/stable/content/ www/stable/content/404.html www/stable/content/README www/stable/content/README.html www/stable/content/about.html www/stable/content/externdbg.html www/stable/content/geany-mini-script.html www/stable/content/geany-plugins-listing.html www/stable/content/geanyembrace.html www/stable/content/geanylatex.html www/stable/content/geanylua.html www/stable/content/geanysendmail.html www/stable/content/licensing.html www/stable/content/rst2html_config.conf www/stable/content/rst2html_template.txt www/stable/content/start.html www/stable/content/tidy.conf www/stable/favicon.ico www/stable/geanylua/ www/stable/geanylua/Makefile.am www/stable/geanylua/geanylua-index.html www/stable/geanylua/geanylua-input.html www/stable/geanylua/geanylua-intro.html www/stable/geanylua/geanylua-keyfile.html www/stable/geanylua/geanylua-keys.html www/stable/geanylua/geanylua-ref.html www/stable/geanylua/luarefv51.html www/stable/gencontent.sh www/stable/images/ www/stable/images/geany.png www/stable/index.php www/stable/rst2html_template.txt www/stable/stylesheets/ www/stable/stylesheets/mainstyle.css www/stable/templates/ www/stable/templates/no-readme-template.html www/stable/templates/template.html www/stable/tidy.conf
Added: www/stable/content/404.html =================================================================== --- www/stable/content/404.html (rev 0) +++ www/stable/content/404.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,6 @@ +<h2>Content not found</h2> +<p>Sorry, the content you requested could not be found. Any content +plugins.geany.org is able to provide can be found by clicking one of the links +in the navigation bar on the left side. If you think there is some content +missing, please contact the maintainer of this site:<br /> +Dominic Hopf <dmaphy@googlemail.com></p>
Added: www/stable/content/README =================================================================== --- www/stable/content/README (rev 0) +++ www/stable/content/README 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,69 @@ +How to get your plugin listed here +================================== + +.. contents:: + +There are different ways to get your plugin listed here. Every possibility +ends with contacting Dominic Hopf. He is the maintainer of this website and +takes care of uploading the HTML files and including new plugins into +navigation and so on. + + +Note +---- +If your plugin already is part of the Geany Plugins project, you should find +your plugin listed here. There is a cronjob running every night, which +updates the plugins.geany.org website with latest information from the +README files of the plugins. For this to work correctly, it is necessary +you have a README file in trunk/geany-plugins/{your plugin name}/ which is +written in restructuredText. + +If the README file is there, but still not listed on the plugins.geany.org +website, make sure you gave the cronjob a chance to find your README and +wait a night before contacting Dominic to have a deeper look on the issue. + + +1. Way +------ + +* create a file {your plugin name}.html +* edit the file manually, get inspired by the plugin sites already existing + and keep an eye on the validity of the HTML code. It should be XHTML 1.1 - + which is very strict. +* when your HTML file is finished, contact Dominic by mail and send him + your file. He will do the rest for you. + + +2. Way +------ + +This one will only work, if you write your README file in restructuredText +as some other plugin authors do. You will need to use two tools: rst2html +and HTML Tidy. Dominic wrote some configuration files for use with those +tools. If you do not have them yet, feel free to contact Dominic to get +them. The result should be an almost perfect HTML file which can be +included into the plugins.geany.org website. Do this steps to generate the +file: + + rst2html --config=rst2html_config.conf README > {your plugin name}.html + tidy -config tidy.conf {your plugin name}.html + +While {your plugin name} is the actual UNIX name (lowercase!) of your plugin. +Note: There is no need for HTML headers and body and so on. Those will be +provided by the website itself. Your HTML file should just provide pure +XHTML 1.1 validating content, it will appear within the body tags on the +plugins.geany.org website. + +When you're done, have a look if your HTML file looks good (get some +inspiration from already existing plugin sites) and send it to Dominic then. + + +Contact +------- + +The website plugins.geany.org is currently maintained by `Dominic Hopf +http://dominichopf.de`_. His mail address is dmaphy@googlemail.com. If +you have any questions concerning this site, please consider to contact him +first of all. If it may takes too long for an answer, feel free to kick his +butt at the `#geany irc://chat.freenode.net/geany`_ IRC channel on +chat.freenode.net.
Added: www/stable/content/README.html =================================================================== --- www/stable/content/README.html (rev 0) +++ www/stable/content/README.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,64 @@ +<div class="contents topic" id="contents"> +<p class="topic-title first">Contents</p> +<ul class="simple"> +<li><a class="reference internal" href="#note" id="id2">Note</a></li> +<li><a class="reference internal" href="#way" id="id3">1. Way</a></li> +<li><a class="reference internal" href="#id1" id="id4">2. Way</a></li> +<li><a class="reference internal" href="#contact" id="id5">Contact</a></li> +</ul> +</div> +<p>There are different ways to get your plugin listed here. Every possibility +ends with contacting Dominic Hopf. He is the maintainer of this website and +takes care of uploading the HTML files and including new plugins into +navigation and so on.</p> +<div class="section" id="note"> +<h3>Note</h3> +<p>If your plugin already is part of the Geany Plugins project, you should find +your plugin listed here. There is a cronjob running every night, which +updates the plugins.geany.org website with latest information from the +README files of the plugins. For this to work correctly, it is necessary +you have a README file in trunk/geany-plugins/{your plugin name}/ which is +written in restructuredText.</p> +<p>If the README file is there, but still not listed on the plugins.geany.org +website, make sure you gave the cronjob a chance to find your README and +wait a night before contacting Dominic to have a deeper look on the issue.</p> +</div> +<div class="section" id="way"> +<h3>1. Way</h3> +<ul class="simple"> +<li>create a file {your plugin name}.html</li> +<li>edit the file manually, get inspired by the plugin sites already existing +and keep an eye on the validity of the HTML code. It should be XHTML 1.1 - +which is very strict.</li> +<li>when your HTML file is finished, contact Dominic by mail and send him +your file. He will do the rest for you.</li> +</ul> +</div> +<div class="section" id="id1"> +<h3>2. Way</h3> +<p>This one will only work, if you write your README file in restructuredText +as some other plugin authors do. You will need to use two tools: rst2html +and HTML Tidy. Dominic wrote some configuration files for use with those +tools. If you do not have them yet, feel free to contact Dominic to get +them. The result should be an almost perfect HTML file which can be +included into the plugins.geany.org website. Do this steps to generate the +file:</p> +<blockquote> +rst2html --config=rst2html_config.conf README > {your plugin name}.html +tidy -config tidy.conf {your plugin name}.html</blockquote> +<p>While {your plugin name} is the actual UNIX name (lowercase!) of your plugin. +Note: There is no need for HTML headers and body and so on. Those will be +provided by the website itself. Your HTML file should just provide pure +XHTML 1.1 validating content, it will appear within the body tags on the +plugins.geany.org website.</p> +<p>When you're done, have a look if your HTML file looks good (get some +inspiration from already existing plugin sites) and send it to Dominic then.</p> +</div> +<div class="section" id="contact"> +<h3>Contact</h3> +<p>The website plugins.geany.org is currently maintained by <a class="reference external" href="http://dominichopf.de">Dominic Hopf</a>. His mail address is <a class="reference external" href="mailto:dmaphy%40googlemail.com">dmaphy<span>@</span>googlemail<span>.</span>com</a>. If +you have any questions concerning this site, please consider to contact him +first of all. If it may takes too long for an answer, feel free to kick his +butt at the <a class="reference external" href="irc://chat.freenode.net/geany">#geany</a> IRC channel on +chat.freenode.net.</p> +</div>
Added: www/stable/content/about.html =================================================================== --- www/stable/content/about.html (rev 0) +++ www/stable/content/about.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,11 @@ +<h2>About</h2> +<p>This site is maintained by <a href="http://dominichopf.de/">Dominic Hopf</a>. +Please contact him if you like to add some information or a new plugin or found +an error or anything else.</p> + +<p>You will find him and any other plugin developer either on the +<a href="http://www.geany.org/Support/MailingList">Geany mailing lists</a> or on +the <a href="http://www.geany.org/Support/IRC">Geany IRC channels</a>.<br /> +Any detailed information on how to contact a developer can be found in the +concerning README file of the plugin or on the concerning plugin page on this +site.</p>
Added: www/stable/content/externdbg.html =================================================================== --- www/stable/content/externdbg.html (rev 0) +++ www/stable/content/externdbg.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1 @@ +<h2>externdbg</h2>
Added: www/stable/content/geany-mini-script.html =================================================================== --- www/stable/content/geany-mini-script.html (rev 0) +++ www/stable/content/geany-mini-script.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1 @@ +<h2>Geany Mini Script</h2>
Added: www/stable/content/geany-plugins-listing.html =================================================================== --- www/stable/content/geany-plugins-listing.html (rev 0) +++ www/stable/content/geany-plugins-listing.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,14 @@ +<li><a href="index.php?site=addons">addons</a></li> +<li><a href="index.php?site=codenav">codenav</a></li> +<li><a href="index.php?site=geanydoc">geanydoc</a></li> +<li><a href="index.php?site=geanyextrasel">geanyextrasel</a></li> +<li><a href="index.php?site=geanygdb">geanygdb</a></li> +<li><a href="index.php?site=geanyinsertnum">geanyinsertnum</a></li> +<li><a href="index.php?site=geanylatex">geanylatex</a></li> +<li><a href="index.php?site=geanylipsum">geanylipsum</a></li> +<li><a href="index.php?site=geanylua">geanylua</a></li> +<li><a href="index.php?site=geanyprj">geanyprj</a></li> +<li><a href="index.php?site=geanysendmail">geanysendmail</a></li> +<li><a href="index.php?site=geanyvc">geanyvc</a></li> +<li><a href="index.php?site=shiftcolumn">shiftcolumn</a></li> +<li><a href="index.php?site=spellcheck">spellcheck</a></li>
Added: www/stable/content/geanyembrace.html =================================================================== --- www/stable/content/geanyembrace.html (rev 0) +++ www/stable/content/geanyembrace.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1 @@ +<h2>GeanyEmbrace</h2>
Added: www/stable/content/geanylatex.html =================================================================== --- www/stable/content/geanylatex.html (rev 0) +++ www/stable/content/geanylatex.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,6 @@ +<h2>GeanyLaTeX</h2> +<p> + The documentation for the GeanyLaTeX plugin can be found at + <a class="reference external" href= + "http://frank.uvena.de/en/Geany/geanylatex%22%3Ehttp://frank.uvena.de/en/Gean...</a>. +</p>
Added: www/stable/content/geanylua.html =================================================================== --- www/stable/content/geanylua.html (rev 0) +++ www/stable/content/geanylua.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,4 @@ +<p> + Please see the <a href="./geanylua/geanylua-index.html">GeanyLua + documentation</a> for information on using this plugin. +</p>
Added: www/stable/content/geanysendmail.html =================================================================== --- www/stable/content/geanysendmail.html (rev 0) +++ www/stable/content/geanysendmail.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,220 @@ +<h2>GeanySendMail</h2> +<div class="contents topic" id="contents"> + <h3 class="topic-title first"> + Contents + </h3> + <ul class="simple"> + <li> + <a class="reference internal" href="#about" id="id1" name="id1">About</a> + </li> + <li> + <a class="reference internal" href="#requirements" id="id2" name="id2">Requirements</a> + </li> + <li> + <a class="reference internal" href="#installation" id="id3" name="id3">Installation</a> + </li> + <li> + <a class="reference internal" href="#usage" id="id4" name="id4">Usage</a> + </li> + <li> + <a class="reference internal" href="#configuration" id="id5" name="id5">Configuration</a> + </li> + <li> + <a class="reference internal" href="#development" id="id6" name="id6">Development</a> + </li> + <li> + <a class="reference internal" href="#known-issues" id="id7" name="id7">Known issues</a> + </li> + <li> + <a class="reference internal" href="#license" id="id8" name="id8">License</a> + </li> + <li> + <a class="reference internal" href="#bugs-questions-bugs-homepage" id="id9" name="id9">Bugs, + questions, bugs, homepage</a> + </li> + </ul> +</div> +<div class="section" id="about"> + <h3> + About + </h3> + <p> + GeanySendMail is a little plugin to send a document as attachment using the preferred mail + client from inside Geany. It is similar to the envelope symbol of most office tools and + requires a mail client that is supporting remote calls. + </p> + + <p><a href="#contents">back to top</a></p> +</div> +<div class="section" id="requirements"> + <h3> + Requirements + </h3> + <p> + For compiling the plugin yourself, you will need the GTK (>= 2.8.0) libraries and header + files. You will also need its dependency libraries and header files, such as Pango, Glib and + ATK. All these files are available at <a class="reference external" href= + "http://www.gtk.org%22%3Ehttp://www.gtk.org</a>. + </p> + <p> + And obviously, you will need to have Geany installed. If you have Geany installed from the + sources, you should be ready to go. If you used a prepared package e.g. from your distribution + you probably need to install an additional package, this might be called geany-dev or + geany-devel. Please note that in order to compile and use this plugin, you need Geany 0.16 or + later (Geany Plugin API v116 or higher). + </p> + <p> + Furthermore you need, of course, a C compiler and the Make tool. The GNU versions of these + tools are recommended. + </p> + + <p><a href="#contents">back to top</a></p> +</div> +<div class="section" id="installation"> + <h3> + Installation + </h3> + <p> + This version of the plugin is installed with the combined geany-plugins release. Please check + README of this package or download stand alone version of plugin from <a class= + "reference external" href= + "http://frank.uvena.de/en/Geany/geanysendmail/%22%3Ehttp://frank.uvena.de/en/...</a> + </p> + + <p><a href="#contents">back to top</a></p> +</div> +<div class="section" id="usage"> + <h3> + Usage + </h3> + <p> + After installed successfully, load the plugin in Geany's plugin manager and a new menu item in + the Tools menu will appear. Before you can start you need to configure your mail client. This + can be done in the configuration dialog (details on it later). You can also assign a keyboard + shortcut in Geany's preferences dialog to send your document. + </p> + + <p><a href="#contents">back to top</a></p> +</div> +<div class="section" id="configuration"> + <h3> + Configuration + </h3> + <p> + In the configuration dialog you can set up a command that is called by the plugin to + communicate with your mail client. Depending on what's your favorite mailer, the command will + differ. A number of placeholders are available for doing this: + </p> + <ul> + <li> + %s: Will be replaced by the complete path of the file that should be send. + </li> + <li> + %r: Will be replaced by one or more recipient's email address that can be + entered inside a separate dialog. (Please remember during input, what your mail client + is expecting here) + </li> + <li> + %b: Will be replace by the file name. For a file /tmp/foo.baa it will be + replaced by foo.baa. + </li> + </ul> + <p> + Depending on how you like to use, you can combine all of the placeholders to build up your + command. It is possible to use one placeholder several times. When using keep care, as the + placeholders are replace step by step, so a filename containing %b might have some funny + outcome. However, examples could be: + </p> + <p>Sylpheed:</p> + <code>sylpheed --attach "%f" --compose "%r"</code> + + <p>mutt:</p> + <code>mutt -s "Sending '%b'" -a "%f" "%r"</code> + + <p>Mozilla Thunderbird at Windows:</p> + <code>"C:Program FilesMozilla Thunderbirdthunderbird.exe" + -compose to="%r",subject="%b",attachment="%f"</code> + + <p> + In theory it should also work together with tools like Microsoft Outlook - Unfortunately the + author wasn't able to bring it up running. Input for the correct commandline is highly welcome. + </p> + + <p><a href="#contents">back to top</a></p> +</div> +<div class="section" id="development"> + <h3> + Development + </h3> + <p> + You can checkout the current source code from the Subversion repository at Sourceforge.net. Get + the code from: + </p> + <code> + svn checkout <a class="reference external" href= + "http://geany-plugins.svn.sourceforge.net/svnroot/geany-plugins/trunk/geanyse...</a> + </code> + <p> + As this plugin is part of the combined geany-plugins release, you may also like to check its + Subversion repository by checking ou + </p> + <code> + svn checkout <a class="reference external" href= + "http://geany-plugins.svn.sourceforge.net/svnroot/geany-plugins/trunk/geany-p...</a> + </code> + <p> + If you want to create a patch, please respect the license of GeanySendMail (GPLv2 or above) as + well as intellectual property of third. Patches that should be included to the default + distribution must be licensed under the same conditions as GeanySendMail by the copyright + owner. + </p> + + <p><a href="#contents">back to top</a></p> +</div> +<div class="section" id="known-issues"> + <h3> + Known issues + </h3> + <p> + In case you are working with white spaces either in your path names, file names or at mail + addresses (e.g. for separating two addresses) you should keep care of proper quoting since %s, + %b and %r will be replaced without any quotes. + </p> + <p> + For more recent information all reported issues will be tracked at <a class= + "reference external" href= + "http://sourceforge.net/tracker/?group_id=222729%22%3Ehttp://sourceforge.net/...</a> + </p> + + <p><a href="#contents">back to top</a></p> +</div> +<div class="section" id="license"> + <h3> + License + </h3> + <p> + GeanySendMail and all its parts is distributed under the terms of the GNU General Public + License as published by the Free Software Foundation; either version 2 of the License, or (at + your option) any later version. A copy of this license can be found in the file COPYING + included with the source code of this program. If not, you will be able to get a copy by + contacting the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. + </p> + + <p><a href="#contents">back to top</a></p> +</div> +<div class="section" id="bugs-questions-bugs-homepage"> + <h3> + Bugs, questions, bugs, homepage + </h3> + <p> + If you found any bugs or want to provide a patch, please contact Frank Lanitz + (frank(at)geany(dot)org). Please also do so, if you got any questions and visiting <a class= + "reference external" href= + "http://frank.uvena.de/en/Geany/geanysendmail%22%3Ehttp://frank.uvena.de/en/G...</a> + didn't help you to figure out the answer. Visiting the website is also a good start if you want + to check for any update on this plugin. + </p> + + <p><a href="#contents">back to top</a></p> +</div>
Added: www/stable/content/licensing.html =================================================================== --- www/stable/content/licensing.html (rev 0) +++ www/stable/content/licensing.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,16 @@ +<h2>Licensing</h2> +<h3>Geany Plugins project</h3> +<p>Any plugin delivered with the Geany Plugins project is either +<a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GPLv2 or later</a> +or <a href="http://www.fsf.org/licensing/licenses/gpl.html">GPLv3 or later</a>. +The resulting license for the whole Geany Plugins project is +<a href="http://www.fsf.org/licensing/licenses/gpl.html">GPLv3 or later</a>.</p> + +<h3>other Third Party plugins</h3> +<p>Any other third party plugin not delivered with the Geany Plugins project has +it's own license.</p> +<ul> + <li>externdbg is GPLv3+</li> + <li>GeanyEmbrace is GPLv2+</li> + <li>Geany Mini Script is GPLv2+</li> +</ul>
Added: www/stable/content/rst2html_config.conf =================================================================== --- www/stable/content/rst2html_config.conf (rev 0) +++ www/stable/content/rst2html_config.conf 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,43 @@ +[general] +datestamp: %Y-%m-%d %H:%M UTC +debug: no +dump_internals: no +dump_psuedo_xml: no +dump_settings: no +dump_transforms: no +error_encoding: UTF-8 +error_encoding_error_handler: strict +footnote_backlinks: yes +generator: no +#halt_level: strict +input_encoding: UTF-8 +input_encoding_error_handler: strict +language_code: en +output_encoding: UTF-8 +output_encoding_error_handler: strict +report_level: warning +sectnum_xform: yes +source_link: yes +strip_comments: yes +toc_backlinks: toc-top-backlinks + +[restructuredtext parser] +tab_width: 4 + +[docutils_xml writer] +doctype_declaration: no +indents: yes +newlines: yes +xml_declaration: no + +[html4css1 writer] +cloak_email_addresses: yes +compact_lists: yes +compact_field_lists: yes +embed_stylesheet: no +footnote_references: superscript +initial_header_level: 3 +template: ./rst2html_template.txt +xml_declaration: no +indents: yes +newlines: yes
Added: www/stable/content/rst2html_template.txt =================================================================== --- www/stable/content/rst2html_template.txt (rev 0) +++ www/stable/content/rst2html_template.txt 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1 @@ +%(body)s
Added: www/stable/content/start.html =================================================================== --- www/stable/content/start.html (rev 0) +++ www/stable/content/start.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,3 @@ +<h2>Welcome</h2> +We like to offer you a few of plugins for the Geany IDE here.<br /> +You can browse through the plugins in the left navigation bar, you'll find there also the installation manual for each plugin.
Added: www/stable/content/tidy.conf =================================================================== --- www/stable/content/tidy.conf (rev 0) +++ www/stable/content/tidy.conf 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,34 @@ +# This is a configuration file for HMTL Tidy. See 'man tidy' for details about +# the settings wrote in here. +# This configuration file is especially written to beautify the output of +# rst2html for use in the plugins.geany.org website. If you have questions +# concerning this, feel free to contact the plugins.geany.org maintainer +# Dominic Hopf dmaphy@googlemail.com + +wrap: 100 +write-back: yes +indent: yes +tab-size: 4 +newline: LF +clean: yes +output-xhtml: yes +repeated-attributes: keep-last +doctype: strict +add-xml-decl: no +drop-empty-paras: yes +fix-uri: yes +hide-comments: yes +logical-emphasis: yes +literal-attributes: yes +lower-literals: yes +preserve-entities: yes +show-body-only: yes +show-warnings: yes +break-before-br: yes +markup: yes +sort-attributes: alpha +vertical-space: no +wrap-attributes: yes +char-encoding: utf8 +output-bom: auto +quiet: yes
Added: www/stable/favicon.ico =================================================================== (Binary files differ)
Property changes on: www/stable/favicon.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream
Added: www/stable/geanylua/Makefile.am =================================================================== --- www/stable/geanylua/Makefile.am (rev 0) +++ www/stable/geanylua/Makefile.am 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,23 @@ +# don't include if geanylua's disabled, otherwise a whole bunch of empty +# directories will be created +if ENABLE_GEANYLUA +include $(top_srcdir)/build/vars.docs.mk +endif + +plugin = geanylua + +DOCFILES = \ + geanylua-index.html \ + geanylua-input.html \ + geanylua-intro.html \ + geanylua-keyfile.html \ + geanylua-keys.html \ + geanylua-ref.html \ + luarefv51.html + +if ENABLE_GEANYLUA +htmldoc_DATA = $(DOCFILES) +endif + +# make sure that these files are distributed as well +EXTRA_DIST = $(DOCFILES)
Added: www/stable/geanylua/geanylua-index.html =================================================================== --- www/stable/geanylua/geanylua-index.html (rev 0) +++ www/stable/geanylua/geanylua-index.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,19 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title>Lua plugin for Geany - Index</title> +</head> +<body> +<center> +<h3> +<br><br> +<a href="./geanylua-intro.html">Introduction to GeanyLua.</a><br><br> +<a href="./geanylua-ref.html">Reference to functions and variables.</a><br><br> +<a href="./geanylua-keyfile.html">Accessing keyfile configuration data.</a><br><br> +<a href="./geanylua-input.html">Creating custom dialog boxes.</a><br><br> +<a href="./geanylua-keys.html">Assigning keybindings to scripts.</a><br><br> +<a href="./luarefv51.html">Lua language quick reference.</a><br><br> +</h3> +</center> +</body> +</html>
Added: www/stable/geanylua/geanylua-input.html =================================================================== --- www/stable/geanylua/geanylua-input.html (rev 0) +++ www/stable/geanylua/geanylua-input.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,179 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title>The Dialog Module for Lua</title> +</head> +<body style="margin: 32px 25% 24px 5%"> +<hr><h2>The Dialog module</h2><hr> +<p> +The <tt>dialog</tt> module provides a relatively simple way to create some fairly +complex dialog boxes for user interaction. The general idea is very loosely based on HTML forms. +<p> + + +<p>The functions are described below. The <tt>dlg</tt> argument expects a +dialog object, most other arguments are strings, unless otherwise noted.</p> + +Note that you can also use these functions in object-oriented style:<br> + For instance <tt>dialog.label(dlg, "hello")</tt> <br> + can also be written as <tt>dlg:label("hello")</tt><br></p> + + +<br> + +<hr><tt><b><big>function dialog.new ( title, buttons )</big></b></tt><br><p> +Creates a new dialog object. The <tt>title</tt> string assigns the window's title bar +text for the dialog. The <tt>buttons</tt> argument is a table of +strings, where each string will create a button with that text and add it to the +bottom row of the dialog. If a button's text contains an underscore, the letter after +it will be seen as an underlined accelerator for the button.</p> + +<br> +<hr><tt><b><big>function dialog.run ( dlg )</big></b></tt><br> +<p>Displays the dialog to the user and waits for submission.</p><p> +This function returns two values: the one-based <tt>index</tt> of the the clicked button, +and a <tt>results</tt> table containing key-value pairs collected from the dialog's elements.</p><p> +If the user cancels the dialog e.g. by pressing the <tt>[Esc]</tt> key, the <tt>index</tt> will be zero, and the <tt>results</tt> table will be <tt>nil</tt>. +</p> + +<br> +<hr><tt><b><big>function dialog.label ( dlg, text )</big></b></tt><br> +<p>Adds some informative text to the dialog.</p> + + +<br> +<hr><tt><b><big>function dialog.hr ( dlg )</big></b></tt><br> +<p>Draws a horizontal separator across the dialog.</p> + +<br> +<hr><tt><b><big>function dialog.heading ( dlg, text )</big></b></tt><br> +<p>Adds a horizontal separator with some informative text below it.</p> +<p>This function is the same as calling the <tt>hr()</tt> and <tt>label()</tt> functions individually.</p> + + +<br> +<hr><tt><b><big>function dialog.text ( dlg, key, default, prompt )</big></b></tt><br> +<p>Creates a single-line text entry widget.</p> +<p> +The value of the <tt>key</tt> field in the <tt>results</tt> table will be set to the contents of the entry box.<br> +If the <tt>default</tt> string is non-nil, that text will initially be displayed in the entry box.<br> +The <tt>prompt</tt> string displays a label in front of the entry box to describe the requested input. +</p> + + +<br> +<hr><tt><b><big>function dialog.password ( dlg, key, default, prompt )</big></b></tt><br> +<p>Identical to the <tt>text()</tt> function, except that the contents of the entry box are "masked", the characters are displayed as asterisks. </p> + + +<br> +<hr><tt><b><big>function dialog.textarea ( dlg, key, default, caption )</big></b></tt><br> +<p>Creates a multi-line text entry widget.</p> +<p> +The value of the <tt>key</tt> field in the results table will be set to the contents of the text area.<br> +If the <tt>default</tt> string is non-nil, that text will initially be displayed in the text area.<br> +The <tt>caption</tt> string displays a label above the text area to describe the requested input. +</p> + +<br> +<hr><tt><b><big>function dialog.checkbox ( dlg, key, default, caption )</big></b></tt><br> +<p>Creates an on/off toggle button.</p> +<p> +If the boolean <tt>default</tt> argument is <tt>true</tt>, the button will initially be shown in a "checked" state.<br> +The <tt>caption</tt> argument is the human-readable text to be displayed next to the button. +</p><p> +Note that although the default argument is boolean, the <tt>key</tt> value returned in the + <tt>results</tt> table will be a string, either <tt>"1"</tt> + for checked or <tt>"0"</tt> for unchecked. +</p> + + + +<br> +<hr><tt><b><big>function dialog.select ( dlg, key, default, caption )</big></b></tt><br> +<p>Creates an empty drop-down list box.</p> +<p> +The contents of the <tt>key</tt> field in the <tt>results</tt> table will be set to the value of the selected item.<br> +If the <tt>default</tt> string is non-nil, the item with that value will initially be selected in the list.<br> +The <tt>caption</tt> string displays a label in front of the list box to describe the requested input. +</p> + +<br> +<hr><tt><b><big>function dialog.option ( dlg, key, value, label )</big></b></tt><br> +<p>Adds an item to the drop-down list identified by <tt>key</tt>.</p> +<p> +The returned value of <tt>key</tt> will be set to this <tt>value</tt> in the <tt>results</tt> table if this item is selected.<br> +The <tt>label</tt> argument is the human-readable text to be displayed in the list. +</p> + + +<br> +<hr><tt><b><big>function dialog.group ( dlg, key, default, caption )</big></b></tt><br> +<p>Creates an empty group for radio buttons.</p><p> +The contents of the <tt>key</tt> field in the <tt>results</tt> table will be set to +the value of the selected radio button.<br> +If the <tt>default</tt> string is non-nil, the button with that value will initially be selected in the group.<br> +The <tt>caption</tt> string displays a label above of the group to describe the requested input. +</p> + +<br> +<hr><tt><b><big>function dialog.radio ( dlg, key, value, label )</big></b></tt><br> +<p>Adds a button to the radio group identified by <tt>key</tt>.</p> +<p> +The returned value of <tt>key</tt> will be set to this <tt>value</tt> in the <tt>results</tt> table if this button is selected.<br> +The <tt>label</tt> argument is the human-readable text to be displayed next to this button. +</p> + +<br> +<hr><tt><b><big>function dialog.file ( dlg, key, default, caption )</big></b></tt><br> +<p> +Creates a single-line text entry widget, along with a "browse" button that +invokes a separate file-selection dialog. <br> +If the user selects a filename in the file dialog, the text in the +entry widget will be set to the selected filename. +</p> +<p> +The value of the <tt>key</tt> field in the <tt>results</tt> table will be set to +the contents of the entry box.<br> +</p> + + +<br> +<hr><tt><b><big>function dialog.color ( dlg, key, default, caption )</big></b></tt><br> +<p> +Creates a single-line text entry widget, along with a "choose" button that +invokes a separate color-selection dialog. <br> +If the user selects a color from the dialog, the text in the +entry widget will be set to the selected color name in <tt>#RRGGBB</tt> format. +</p> +<p> +The value of the <tt>key</tt> field in the <tt>results</tt> table will be set to +the contents of the entry box.<br> +</p> + + +<br> +<hr><tt><b><big>function dialog.font ( dlg, key, default, caption )</big></b></tt><br> +<p> +Creates a single-line text entry widget, along with a "select" button that +invokes a separate font-selection dialog. <br> +If the user selects a font from the dialog, the text in the +entry widget will be set to the font name. +</p> +<p> +The value of the <tt>key</tt> field in the <tt>results</tt> table will be set to +the contents of the entry box.<br> +</p> +<br> + + + +<hr> +<br><br> +<div align="right"><small>© 2007-2008 <i>Jeff Pohlmeyer </i> </small></div> +<br><br> +<br><br><br><br> + + +</body> +</html>
Added: www/stable/geanylua/geanylua-intro.html =================================================================== --- www/stable/geanylua/geanylua-intro.html (rev 0) +++ www/stable/geanylua/geanylua-intro.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,131 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title>Lua plugin for Geany - Introduction</title> +</head> +<body style="margin: 32px 25% 24px 5%"> +<hr><h2>Lua scripting plugin for the Geany IDE</h2><hr> +<p> +This is a plugin for the <a href="http://www.geany.org/">Geany</a> IDE + to provide <a href="http://www.lua.org/">Lua</a> scripting. +</p><p> +To begin, you should install the plugin and the example scripts. Please +read the <tt> INSTALL </tt> file for more information. +</p><p> +The next time you start Geany, the plugin will look for a directory named <tt><b>geanylua</b></tt> +in the user's plugin directory. <br> +On Linux, this would be: <tt>~/.geany/plugins/geanylua</tt><br> +( Unless you specify another config folder by the geany <tt>--config</tt> command line.)<br> +Any scripts found in this <tt>/plugins/geanylua/</tt> directory will appear in +the <i style="font-family:sans-serif">Tools->Lua Scripts</i> menu in Geany. +</p><p> +You can create additional scripts yourself, but all script files must have +names that end with the <tt><b>.lua</b></tt> file extension. +The menu labels are generated from the filenames like this: +<ol> + <li> The <tt><b>.lua</b></tt> filename extension is removed. + <li> If the filename <i>begins</i> with two decimal digits, followed by a dot, + those three characters are stripped off. Since the list of filenames is + scanned in alphanumeric order, this convention allows for arbitrary + sorting. For example if you wanted "<tt>Zebra</tt>" to appear before "<tt>Apple</tt>" + you could name your files + "<tt>01.Zebra.lua</tt>" and "<tt>02.Apple.lua</tt>" . + <li> If the resulting label <i>ends</i> with a trailing underscore, that underscore + is removed, and replaced with an ellipsis (three dots). This notation is generally + used to indicate to the user that the menu item invokes an additional dialog. + <li> If the label contains any addtional underscores, the first (leftmost) underscore is removed, + and the letter immediately following it will be marked as the underlined + "accelerator" key for the menu item. + <li> Finally, the first letter of the label is capitalized, and all hyphens are converted to spaces. + +</ol> +<p> +No effort is made by the plugin to resolve conflicting accelerators. +While these collisions are generally harmless, you should take some +effort to make sure you don't create inaccessible (duplicate) mnemonic keys. +</p><p> +Note that if you modify an existing script, the change will take effect immediately, but if you delete an existing script, or add a new script, you must +reload the plugin in order for the change to completely take effect. + ( The plugin can be reloaded either by restarting Geany, or +by toggling it OFF/ON via Geany's Plugin Manager, +or by calling the <tt>rescan()</tt> function from inside a script. ) +</p><p> +If there are any sub-directories that contain scripts, these will be recursed +to create sub-menus, with two exceptions - folders named <tt><b>events</b></tt> or <tt><b>support</b></tt> +will be ignored, these names are considered reserved. The <tt><b>events</b></tt> folder is +described below, and the <tt><b>support</b></tt> folder can be used to store arbitrary +user data files, modules, etc. +</p><p> +<a name="events"><br></a>The special directory <tt>./plugins/geanylua/events/</tt> +can contain some scripts that +will be invoked whenever the respective event is triggered by Geany. +</p><p> +Currently, there are nine valid filenames for the event scripts: +<dl compact> + <dt><tt>init.lua </tt></dt><dd> -- Runs when the plugin is loaded.</dd> + <dt><tt>cleanup.lua </tt></dt><dd> -- Runs when the plugin is unloaded.</dd> + + <dt><tt>saved.lua </tt></dt><dd> -- Runs when an open document is saved.</dd> + <dt><tt>created.lua </tt></dt><dd> -- Runs when a new document is created.</dd> + <dt><tt>opened.lua </tt></dt><dd> -- Runs when an existing file is opened.</dd> + <dt><tt>activated.lua</tt></dt><dd> -- Runs when switching documents (notebook tabs).</dd> + + <dt><tt>proj-opened.lua </tt></dt><dd> -- Runs when a project is opened.</dd> + <dt><tt>proj-saved.lua </tt></dt><dd> -- Runs when a project is saved.</dd> + <dt><tt>proj-closed.lua </tt></dt><dd> -- Runs when a project is closed.</dd> +</dl> +<p> +Note that if any of these nine files exists, it will be executed each time +its corresponding event occurs, which will result in some increase in disk activity. +In particular, you might notice a delay in startup time with the <tt>opened.lua</tt> +script when you open a bunch of files at once from the commmand line, etc. +</p><p> +<br><br> +Consult the <a href="geanylua-ref.html">reference</a> page for documentation of the Geany-specific Lua functions. +</p><p> + +A complete discussion of the Lua language is way beyond the scope of this +plugin package, but there is plenty of information available on the net, +For starters, you can check out: +</p><p> +<dl> + +<dt> +The manual: +</dt> +<dd> +<a href="http://www.lua.org/manual/5.1/"> +http://www.lua.org/manual/5.1/ +</a><br><br> +</dd> + +<dt>The wiki:</dt> +<dd> +<a href="http://lua-users.org/wiki/TutorialDirectory"> +http://lua-users.org/wiki/TutorialDirectory +</a><br><br> +</dd> + +<dt> +The book: +</dt> +<dd> +<a href="http://www.lua.org/pil/"> +http://www.lua.org/pil/ +</a><br><br> +</dd> + +</dl> + +<p> +Also, be warned that the plugin does not place any restrictions on what +you can or can't do from inside a script. For example, if you decide to +call <tt> os.exit() </tt> from a script, you will end your current Geany session +immediately, and any unsaved changes will be lost! </p><p> +You should also take some caution not to write a script that hangs indefinitely, +if this happens, the only way out is to kill the editor. +</p> + + +</body> +</html>
Added: www/stable/geanylua/geanylua-keyfile.html =================================================================== --- www/stable/geanylua/geanylua-keyfile.html (rev 0) +++ www/stable/geanylua/geanylua-keyfile.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,62 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title>Lua plugin for Geany - The Keyfile Module</title> +</head> +<body style="margin: 32px 25% 24px 5%"> +<hr><h2>The Keyfile module</h2><hr> +<p> +The <tt>keyfile</tt> module provides a minimal Lua wrapper around the GLib library's <tt><a href="http://www.gtk.org/api/2.6/glib/glib-Key-value-file-parser.html">GKeyFile</a></tt> object, +for reading and writing of key-value file data, somewhat similar to MS-Windows <tt>*.INI</tt> files. +</p> +<p> +This file format is used by Geany for various configuration and project files. +Note that this module does not provide any functions for reading or writing disk files, +it simply receives or returns its file data as a single continuous string. If you need to +read or write a disk file, you can use Lua's built-in <tt>io</tt> module. +</p><p> +The functions are listed below... <br> +Optional parameters are noted in [ square ] brackets. +</p><p> +For get/set style functions, calling the function <i>with</i> the optional parameter +<i><u>assigns</u></i> a new value, calling the function <i>without</i> the optional +parameter <i><u>returns</u></i> the current value.<br> +</p><p> +Note that you can also use these functions in object-oriented style:<br> +For instance, <tt>keyfile.value(kf,"foo","bar")</tt> <br>can also be written +as <tt>kf:value("foo","bar")</tt><br></p><br> + + +<hr><tt><b><big>function keyfile.new ()</big></b></tt><br> +<p>Creates a new, empty <tt>keyfile</tt> object.</p><br> + +<hr><tt><b><big>function keyfile.data ( kf [, text] )</big></b></tt> -- <small>get/set</small><br> +<p>Returns or assigns the full text of the keyfile.</p><br> + +<hr><tt><b><big>function keyfile.groups ( kf )</big></b></tt><br> +<p>Returns an iterator to list the groups within the keyfile.</p><br> + +<hr><tt><b><big>function keyfile.keys ( kf, group )</big></b></tt><br> +<p>Returns an iterator to list the keys within the specified group.</p><br> + +<hr><tt><b><big>function keyfile.value ( kf, group, key [, value] )</big></b></tt> -- <small>get/set</small><br> +<p>Returns or assigns the value of the specified key.</p><br> + +<hr><tt><b><big>function keyfile.comment ( kf, group, key [, comment] )</big></b></tt> -- <small>get/set</small><br> +<p>Returns or assigns the comment for the specified key.<br> +If <tt>key</tt> is nil, it gets/sets the group comment.<br> +If <tt>group</tt> is nil, it gets/sets the comment for the file.<br> +</p><br> + +<hr><tt><b><big>function keyfile.has ( kf, group [, key] )</big></b></tt><br> +<p>Returns <tt>true</tt> if the specified group (and optionally the key) already exists.</p><br> + +<hr><tt><b><big>function keyfile.remove ( kf, group [, key] )</big></b></tt><br> +<p>Deletes the key, if specified, else it deletes the entire group.</p><br> +<hr> +<br><br> +<div align="right"><small>© 2007-2008 <i>Jeff Pohlmeyer </i> </small></div> +<br><br> +<br><br><br><br> +</body> +</html>
Added: www/stable/geanylua/geanylua-keys.html =================================================================== --- www/stable/geanylua/geanylua-keys.html (rev 0) +++ www/stable/geanylua/geanylua-keys.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,57 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title>Lua plugin for Geany - Keybindings</title> +</head> +<body style="margin: 32px 25% 24px 5%"> +<hr><h2>How to assign custom key bindings to scripts</h2><hr> +Beginning with Geany version 0.14, it is now possible to integrate plugin +key bindings with Geany's built-in preferences system. This allows for +much easier configuration, and also helps to resolve conflicts between +the editor's bindings and the bindings associated with plugins.</p> +<p> +To use the new method, you simply create a plain text file named +"<tt><b>hotkeys.cfg</b></tt>" and place it your <b>/plugins/geanylua/</b> +folder. In this file you will list any scripts that you want to configure +keybindings for. The scripts should be listed one per line and may be +specified either by using an absolute path, or with a path relative +to your <b>/plugins/geanylua/</b> folder.</p><p> +After reloading the plugin (or restarting Geany) the scripts will +appear in Geany's <b>Edit->Preferences->Keybindings</b> dialog. + The names appearing in the dialog are derived from the filenames in a +manner similar to the way menu items are created from filenames. +<br><br> +</p> +<hr> +<h3>(The old way)</h3> +<p> +<b>Important:</b> The technique described below has been deprecated in favor +of Geany's built-in keybinding API. It is still working for now, however +you are strongly urged to convert your scripts over to the new method. +The reference below is provided mainly for historical reasons... + +</p> +<p> +Before we begin, it is assumed that you are comfortable with your current +keybindings in the editor itself. If you are the sort who +likes to tweak your editor keybindings on a daily basis, adding script keybindings +into the mix will likely be an exercise in frustration! This is because there is +absolutely no coordinated way to detect conflicts between the Geany keybindings + and script keybindings, or even between the individual scripts. So you + are the only one responsible to insure that such conflicts don't occur, or at + least that they don't cause you any major problems. +</p><p> +The syntax for enabling a keybinding is quite simple, but it <i>must</i> be the very first line in the script file. +The line should begin with a double dash (the standard single-line Lua comment marker) followed by a space and the string <tt><b>@ACCEL@</b></tt> followed by another space and then the accelerator specification in standard +<a href="http://www.gtk.org/api/2.6/gtk/gtk-Keyboard-Accelerators.html#gtk-accelerator-parse">GTK syntax</a>. +</p><p> +For example, to launch a script by pressing the keys <b> <u>[Ctrl]</u> <u>[Shift]</u> <u>[J]</u> </b> you could write this as the first line of your script:<br> +<h3><tt>-- @ACCEL@ <Control><Shift>j</tt></h3> +<p>Note that such tags are scanned once only when the plugin is loaded, so any changes require reloading the plugin before the change will take effect. + The plugin can be reloaded either by restarting Geany, or +by toggling it OFF/ON via Geany's Plugin Manager, +or by calling the <tt>rescan()</tt> function from inside a script. +</p> +<br><hr> +</body> +</html>
Added: www/stable/geanylua/geanylua-ref.html =================================================================== --- www/stable/geanylua/geanylua-ref.html (rev 0) +++ www/stable/geanylua/geanylua-ref.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,1224 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title>Lua plugin for Geany - Reference</title> +<style type="text/css"> +<!-- +UL,PRE,P{ + margin: 12px 25% 12px 5% +} +.odd { + background-color:#f4f4fc +} +.even { + background-color:#ffffff +} +.desc { + font-family:sans-serif +} +--> +</style> +</head> +<body > +<hr><h2>Lua scripting plugin for the Geany IDE</h2><hr><br> +The Geany module provides these functions and variables...<br><br><br> +<div style="background-color:#fcf4f4; margin-left:12px; margin-right:12px"> +<hr> +<table summary="quick links" width="90%" align="center" > +<tr align="center" > +<td><a href="#Editor_functions">Editor functions</a></td> +<td><a href="#System_functions">System functions</a></td> +<td><a href="#Dialog_functions">Dialog functions</a></td> +</tr></table> +<hr> +</div> +<br><br> + +<b><a name="Editor_functions"></a>Editor functions:</b> + +<table style="font-family:monospace" summary="function index" width="90%"> +<tr class="odd"> + <td> function <a href="#activate"><b>activate</b></a> ( tab_id )<br></td> + <td class="desc">-- Focus the specified editor tab.</td> +</tr> +<tr class="even"> + <td> function <a href="#appinfo"><b>appinfo</b></a> ()<br></td> + <td class="desc">-- Return information about the current Geany instance.</td> +</tr> +<tr class="odd"> + <td> function <a href="#batch"><b>batch</b></a> ( start )<br></td> + <td class="desc">-- Set a marker for a reversible group of operations.</td> +</tr> + +<tr class="even"> + <td> function <a href="#byte"><b>byte</b></a> ( [position] )<br></td> + <td class="desc">-- Get the numeric value of the character at position.</td> +</tr> +<tr class="odd"> + <td> function <a href="#caret"><b>caret</b></a> ( [position] )<br></td> + <td class="desc">-- Get or set the caret position.</td> +</tr> + +<tr class="even"> + <td> function <a href="#close"><b>close</b></a> ( [filename]|[index] )<br></td> + <td class="desc">-- Close a document.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#copy"><b>copy</b></a> ( [content]|[start,stop] )<br></td> + <td class="desc">-- Copy text to the clipboard.</td> +</tr> + +<tr class="even"> + <td> function <a href="#count"><b>count</b></a> ()<br></td> + <td class="desc">-- Get the number of open tabs.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#cut"><b>cut</b></a> ()<br></td> + <td class="desc">-- Cut selection to the clipboard.</td> +</tr> + +<tr class="even"> + <td> function <a href="#documents"><b>documents</b></a> ( [doc_id] )<br></td> + <td class="desc">-- Access the list of all open documents.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#filename"><b>filename</b></a> ()<br></td> + <td class="desc">-- Get the name of the current document.</td> +</tr> + +<tr class="even"> + <td> function <a href="#fileinfo"><b>fileinfo</b></a> ()<br></td> + <td class="desc">-- Return some information about the current document.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#find"><b>find</b></a> ( phrase, start, stop, options )<br></td> + <td class="desc">-- Search for text within the document.</td> +</tr> + +<tr class="even"> + <td> function <a href="#height"><b>height</b></a> ()<br></td> + <td class="desc">-- Get the number of lines in the current document</td> +</tr> + +<tr class="odd"> + <td> function <a href="#keycmd"><b>keycmd</b></a> ( command )<br></td> + <td class="desc">-- Activate a built-in Geany menu command.</td> +</tr> + +<tr class="even"> + <td> function <a href="#keygrab"><b>keygrab</b></a> ( [prompt] )<br></td> + <td class="desc">-- Intercept a keystroke from Geany.</td> +</tr> + + +<tr class="odd"> + <td> function <a href="#length"><b>length</b></a> ()<br></td> + <td class="desc">-- Get number of characters in the current document.</td> +</tr> + +<tr class="even"> + <td> function <a href="#lines"><b>lines</b></a> ( [index] )<br></td> + <td class="desc">-- Get the text on one specific line, or all of them.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#match"><b>match</b></a> ( [position] )<br></td> + <td class="desc">-- Find a matching bracket, parenthesis, etc.</td> +</tr> + +<tr class="even"> + <td> function <a href="#navigate"><b>navigate</b></a> ( mode,count [,extend [,rect]])<br></td> + <td class="desc">-- Move the caret incrementally.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#newfile"><b>newfile</b></a> ( [filename] )<br></td> + <td class="desc">-- Create a new document.</td> +</tr> + +<tr class="even"> + <td> function <a href="#open"><b>open</b></a> ( [filename]|[index] )<br></td> + <td class="desc">-- Open or reload a file from disk.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#paste"><b>paste</b></a> ()<br></td> + <td class="desc">-- Paste text from the clipboard.</td> +</tr> + + +<tr class="even"> + <td> function <a href="#rowcol"><b>rowcol</b></a> ( [pos]|[row,col] )<br></td> + <td class="desc">-- Translate between linear and rectangular locations.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#save"><b>save</b></a> ( [filename]|[index] )<br></td> + <td class="desc">-- Save an open document to a disk file.</td> +</tr> + +<tr class="even"> + <td> function <a href="#scintilla"><b>scintilla</b></a> ( msg_id, wparam, lparam )<br></td> + <td class="desc">-- Send a message directly to the Scintilla widget.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#select"><b>select</b></a> ( [[start,] stop] )<br></td> + <td class="desc">-- Get or set the selection endpoints and caret.</td> +</tr> + +<tr class="even"> + <td> function <a href="#selection"><b>selection</b></a> ( [content] )<br></td> + <td class="desc">-- Get or set the contents of the document's selection.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#signal"><b>signal</b></a> ( widget, signal )<br></td> + <td class="desc">-- Send a GTK signal to a Geany interface widget.</td> +</tr> + +<tr class="even"> + <td> function <a href="#text"><b>text</b></a> ( [content] )<br></td> + <td class="desc">-- Get or set the contents of the entire document.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#word"><b>word</b></a> ( [position] )<br></td> + <td class="desc">-- Get the word at the specified location.</td> +</tr> + +<tr class="even"> + <td> function <a href="#xsel"><b>xsel</b></a> ( [text] )<br></td> + <td class="desc">-- Get or set the contents of the primary X selection.</td> +</tr> + +<tr class="odd"> + <td> function <a href="#yield"><b>yield</b></a> ()<br></td> + <td class="desc">-- Refreshes the user interface.</td> +</tr> + + +<tr class="even"> + <td> </td> + <td></td> +</tr> + +<tr class="odd"> +<td> var <a href="#caller"><b>caller</b></a> : <i>number</i><br> +</td><td class="desc">-- The index of the document that triggered an event.</td> +</tr> + +<tr class="even"> +<td> var <a href="#rectsel"><b>rectsel</b></a> : <i>boolean</i><br> +</td><td class="desc">-- Whether or not the selection is in rectangular mode.</td> +</tr> +<tr class="odd"> +<td> var <a href="#project"><b>project</b></a> : <i>keyfile</i><br> +</td><td class="desc">-- An object representing a project configuration event.</td> +</tr> +<tr class="even"> +<td> var <a href="#script"><b>script</b></a> : <i>string</i><br> +</td><td class="desc">-- The filename of the currently executing Lua script.</td> +</tr> +<tr class="odd"> +<td> var <a href="#wordchars"><b>wordchars</b></a> : <i>string</i><br></td> +<td class="desc">-- The characters that are considered part of a word.</td> +</tr> + +</table> + + +<br> +<br><br> + +<b><a name="System_functions"></a>System functions:</b> +<table style="font-family:monospace" summary="function index" width="90%"> +<tr class="odd"> +<td> function <a href="#basename"><b>basename</b></a>( pathstr )<br></td> +<td class="desc">-- Extract the filename portion of a path string.</td> +</tr> +<tr class="even"> +<td> function <a href="#dirlist"><b>dirlist</b></a>( path )<br></td> +<td class="desc">-- List the contents of a folder.</td> +</tr> +<tr class="odd"> +<td> function <a href="#dirname"><b>dirname</b></a>( pathstr )<br></td> +<td class="desc">-- Get the directory portion of a file's path.</td> +</tr> +<tr class="even"> +<td> function <a href="#fullpath"><b>fullpath</b></a>( filename )<br></td> +<td class="desc">-- Get the full path to a file.</td> +</tr> +<tr class="odd"> + <td> function <a href="#launch"><b>launch</b></a> ( program [, arg1 [, arg2, ...]] )<br></td> + <td class="desc">-- Execute an external application.</td> +</tr> +<tr class="even"> + <td> function <a href="#optimize"><b>optimize</b></a> ()<br></td> + <td class="desc">-- Run a script without the debug hook.</td> +</tr> +<tr class="odd"> + <td> function <a href="#rescan"><b>rescan</b></a> ()<br></td> + <td class="desc">-- Regenerate the scripts menu.</td> +</tr> +<tr class="even"> + <td> function <a href="#stat"><b>stat</b></a> ( filename [, lstat] )<br></td> + <td class="desc">-- Retrieve some information about a disk file.</td> +</tr> +<tr class="odd"> + <td> function <a href="#timeout"><b>timeout</b></a> ( seconds )<br></td> + <td class="desc">-- Control maximum time allowed for script execution.</td> +</tr> +<tr class="even"> + <td> function <a href="#wkdir"><b>wkdir</b></a> ( [folder] )<br></td> + <td class="desc">-- Get or set the current working directory.</td> +</tr> +<tr class="even"> + <td> </td> + <td></td> +</tr> +<tr class="odd"> +<td> var <a href="#dirsep"><b>dirsep</b></a> : <i>string</i><br> +</td><td class="desc">-- The default filesystem path separator, "<tt>/</tt>" or "<tt></tt>".</td> +</tr> +</table> + +<br> +<br><br> + +<b><a name="Dialog_functions"></a>Dialog functions:</b> +<table style="font-family:monospace" summary="function index" width="90%"> +<tr class="odd"> +<td> function <a href="#choose"><b>choose</b></a> ( prompt, items )</td> +<td class="desc" width="33%">-- Select an item from the list.</td> +</tr> +<tr class="even"> +<td> function <a href="#confirm"><b>confirm</b></a> ( title, question, default )</td> +<td class="desc">-- Ask a yes-or-no question.</td> +</tr> +<tr class="odd"> +<td> function <a href="#input"><b>input</b></a> ( [prompt] [,default] )</td> +<td class="desc">-- Prompt to enter some text.</td> +</tr> +<tr class="even"> +<td> function <a href="#message"><b>message</b></a> ( [title,] message )</td> +<td class="desc">-- Display some information.</td> +</tr> +<tr class="odd"> +<td> function <a href="#pickfile"><b>pickfile</b></a> ( [mode [,path [,filter]]] )</td> +<td class="desc">-- Select a file from disk.</td> +</tr> +<tr class="even"> + <td> </td> + <td></td> +</tr> +<tr class="odd"> +<td> var <a href="#banner"><b>banner</b></a> : <i>string</i><br></td> +<td class="desc">-- The window title for all dialogs.</td> +</tr> +</table><br> +If you need a more advanced dialog creation API, check out the +<tt><big><a href="geanylua-input.html">dialog</a></big></tt> module. +<br><br><br> +<hr> + + +<hr><a name="activate"></a><h3><tt>geany.activate ( tab_id )</tt></h3><p> +Activates the document specified by <tt><b>tab_id</b></tt>. +</p> +<p> +If <tt><b>tab_id</b></tt> is a number, it activates the document at that index. + A <i>positive</i> number refers to the internal document array, and a <i>negative</i> +number refers to the (absolute) GtkNotebook index.<br> +Note that the indices begin at <tt>(1)</tt> and <tt>(-1)</tt> respectively. +</p> +<p> +If <tt><b>tab_id</b></tt> is a string, the function will try to activate the +notebook tab whose filename matches that string.<br> +( The full pathname is required! ) +</p><p> +Returns <tt><b>true</b></tt> on success, or <tt><b>false</b></tt> if the tab could not be found. +</p><br><br> + +<a name="appinfo"></a><hr><h3><tt>geany.appinfo ()</tt></h3><p> +Returns a Lua table containing information about the currently running Geany instance.<br><br> +The <tt>appinfo</tt> table contains the following fields: +<br> +<table border="0" summary="appinfo table fields"> +<tr><td width="5%"></td><td><tt>debug</tt></td><td> -- <tt>true</tt> if Geany is running in debug mode.</td></tr> +<tr><td width="5%"></td><td><tt>configdir </tt></td><td> -- User's local configuration folder.</td></tr> +<tr><td width="5%"></td><td><tt>datadir</tt></td><td> -- System-wide configuration folder.</td></tr> +<tr><td width="5%"></td><td><tt>docdir</tt></td><td> -- Location of the Geany help files.</td></tr> +<tr><td width="5%"></td><td><tt>scriptdir</tt></td><td> -- Top level folder for GeanyLua scripts.</td></tr> +<tr><td width="5%"></td><td><tt>tools</tt></td><td> -- Table of user-configured tools. (see below)</td></tr> +<tr><td width="5%"></td><td><tt>template</tt></td><td> -- Table of user's template information. (see below)</td></tr> +<tr><td width="5%"></td><td><tt>project</tt></td><td> -- Table of current project information. (see below)</td></tr> +</table> +<p> +————</p><p> +The <tt>tools</tt> sub-table contains the following fields: +<br> +<table border="0" summary="tools table fields"> +<tr><td width="15%"></td><td><tt>browser</tt> </td></tr> +<tr><td width="15%"></td><td><tt>term</tt> </td><td></tr> +<tr><td width="15%"></td><td><tt>print</tt> </td></tr> +<tr><td width="15%"></td><td><tt>grep</tt> </td></tr> +<tr><td width="15%"></td><td><tt>action</tt> </td></tr> +</table> +<p> +————</p><p> +The <tt>template</tt> sub-table contains the following fields: +<br> +<table border="0" summary="template fields"> +<tr><td width="15%"></td><td><tt>developer</tt> </td></tr> +<tr><td width="15%"></td><td><tt>company</tt> </td></tr> +<tr><td width="15%"></td><td><tt>mail</tt> </td><td></tr> +<tr><td width="15%"></td><td><tt>initial</tt> </td></tr> +<tr><td width="15%"></td><td><tt>version</tt> </td></tr> +</table> +<p> +————</p><p> +The <tt>project</tt> sub-table *might* contain the following fields: +<br> +<table border="0" summary="template fields"> +<tr><td width="15%"></td><td><tt>name</tt> </td><td> -- Name of project.</td></tr> +<tr><td width="15%"></td><td><tt>desc</tt> </td><td> -- Project description.</td></tr> +<tr><td width="15%"></td><td><tt>file</tt> </td><td> -- Project filename.</td></tr> +<tr><td width="15%"></td><td><tt>base</tt> </td><td> -- Base path of project files.</td></tr> +<tr><td width="15%"></td><td><tt>mask</tt> </td><td> -- Semicolon-delimited list of filetypes.</td></tr> +</table> +<p> +<b>* Important:</b> The entire <tt>project</tt> sub-table will be <tt>nil</tt> if there is no open project!<br> +<br><br> + +<a name="basename"></a><hr><h3><tt>geany.basename ( pathstr )</tt></h3><p> +Returns the rightmost filename portion of <tt>pathstr</tt>, with the directory portion removed. +</p><br><br> + +<hr><a name="batch"></a><h3><tt>geany.batch ( start )</tt></h3><p> +This function marks the beginning or ending of a group of operations<br> +that you want the user to be able to undo in a single step.</p> +<p> +If the <tt><b>start</b></tt> argument is <tt><b>true</b></tt>, +it marks the <i>beginning</i> of a group of operations.</p> +<p> +If the <tt><b>start</b></tt> argument is <tt><b>false</b></tt>, +it marks the <i>ending</i> of a group of operations. +</p><br><br> + +<hr><a name="byte"></a><h3><tt>geany.byte ( [position] )</tt></h3><p> +When called with no arguments, returns the numeric value of the character at +the current caret position.</p><p> +When called with a numeric <tt><b>position</b></tt> argument, returns the +value of the character at that position. +</p><br><br> + + +<hr><a name="caret"></a><h3><tt>geany.caret ( [position] )</tt></h3><p> +When called with no arguments, returns the current caret position.</p> +<p> +When called with a single numeric argument, moves the caret to that position.<br> +Out-of-range values are adjusted to the nearest possible position (i.e. the start or end of the document.) +</p><br><br> + +<a name="close"></a><hr><h3><tt>geany.close ( [filename]|[index] )</tt></h3> +<p> +When called with no arguments, closes the currently active document. +</p> +<p> +When called with a numeric argument, closes the file of that document index. +</p> +<p> +When called with a string argument, it will close that named document. +</p> +<p> +If the document has unsaved changes, the user will be prompted to save before closing,<br> +and will also be given the option to cancel the operation. To avoid this, you might <br> +want to consider using the <tt>geany.save()</tt> function beforehand. +</p> +<p> +Returns <tt><b>true</b></tt> if the document was successfully closed, or <tt><b>false</b></tt> otherwise.</p> +<br><br> + +<hr><a name="copy"></a><h3><tt>geany.copy ( [content]|[start,stop] )</tt></h3><p> +When called with no arguments, copies the current selection to the clipboard. +</p><p> +When called with a single string argument, copies the contents of that string to the clipboard. +</p> +<p> +When called with two arguments, copies the portion of the current document's text +that lies between the <tt><b>start</b></tt> and <tt><b>stop</b></tt> positions. +(Both positions must be positive numbers.) +</p> +<p> +Returns the number of characters copied, or <tt><b>nil</b></tt> if there is no open document. +</p> +<br><br> + +<hr><a name="count"></a><h3><tt>geany.count ()</tt></h3><p> +Returns the number of open documents. +</p><br><br> + + +<hr><a name="cut"></a><h3><tt>geany.cut ()</tt></h3><p> +Cuts the current selection to the clipboard. +</p> +<p> +Returns the number of characters cut, or <tt><b>nil</b></tt> if there is no open document. +</p><br><br> + + +<a name="dirlist"></a><hr><h3><tt>geany.dirlist ( path )</tt></h3><p> +Returns an iterator function that will be called once for each entry (file or subdirectory) in the specified folder. +The iterator produces only the name of each entry, and in no particular order.</p><p> +This function will generate an error dialog if the specified folder does not exist or cannot be accessed. +</p><br><br> + +<a name="dirname"></a><hr><h3><tt>geany.dirname ( pathstr )</tt></h3><p> +Returns the directory portion of <tt>pathstr</tt>, with the rightmost filename portion removed. +</p><br><br> + +<hr><a name="documents"></a><h3><tt>geany.documents ( [doc_id] )</tt></h3><p> +When called with a numeric argument, returns the full path and filename of <br> +the document at the index specified by <tt><b>doc_id</b></tt>. +</p> +<p> +When called with a string argument, returns the numeric index of the document with the<br> +path/filename that matches the <tt><b>doc_id</b></tt> string.<br> +</p> +<p> +Either of the two forms above may also return <tt><b>nil</b></tt> if the argument cannot be matched.</p> +<p> +Note: The <i>index</i> here refers to the editor's internal document array, +and might not be <br> +the same as the notebook tab index, since the tabs can be re-ordered by the user. +</p> +<p> +<br><br> +When called with no arguments, the function returns an iterator to list the full path and filename +of each document currently open in the editor.</p><p> +For example:</p> +<pre> + +for filename in geany.documents() +do + print(filename) +end +</pre> + +<br><br> + + +<a name="filename"></a><hr><h3><tt>geany.filename ()</tt></h3><p> +Returns the full path and filename of the current Geany document.</p><p> +If there is no open document, or if the current document is untitled, returns <tt><b>nil</b></tt>. +</p><br><br> + + +<a name="fileinfo"></a><hr><h3><tt>geany.fileinfo ()</tt></h3><p> +Returns a Lua table containing various information about the current document.<br> +If there is no open document, returns <tt><b>nil</b></tt>. +</p><p> +The returned table contains the following fields: +<table border="0" summary="fileinfo fields"> +<tr><td width="5%"></td><td><tt>name</tt> </td><td> -- The filename, without the path.</td></tr> +<tr><td width="5%"></td><td><tt>path</tt> </td><td> -- The full path of the file's directory, including the trailing slash.</td></tr> +<tr><td width="5%"></td><td><tt>ext</tt> </td><td> -- The file extension, including the dot, e.g. "<b>.DLL</b>" or "<b>.txt</b>"</td></tr> +<tr><td width="5%"></td><td><tt>type</tt> </td><td> -- A one-word description of the filetype, e.g. "<b>C</b>" or "<b>Python</b>".</td></tr> +<tr><td width="5%"></td><td><tt>desc</tt> </td><td> -- A longer description of the filetype, e.g. "<b>Lua source file</b>" or "<b>Cascading StyleSheet</b>".</td></tr> +<tr><td width="5%"></td><td><tt>opener</tt> </td><td> -- The string used to begin a comment, e.g. "<b class="desc"><!--</b>".</td></tr> +<tr><td width="5%"></td><td><tt>closer</tt> </td><td> -- The string used to end a comment, e.g. "<b class="desc">--></b>".</td></tr> +<tr><td width="5%"></td><td><tt>action</tt> </td><td> -- The action command as executed by the context menu</td></tr> +<!-- +<tr><td width="5%"></td><td><tt>compiler</tt> </td><td> -- The command used to compile this type of file.</td></tr> +<tr><td width="5%"></td><td><tt>linker</tt> </td><td> -- The command used to link this type of file.</td></tr> +<tr><td width="5%"></td><td><tt>exec</tt> </td><td> -- The primary command used to execute this type of file.</td></tr> +<tr><td width="5%"></td><td><tt>exec2</tt> </td><td> -- An alternative command used to execute this type of file.</td></tr> +--> +<tr><td width="5%"></td><td><tt>ftid</tt> </td><td> -- The unique numeric filetype identifier, as used by Geany.</td></tr> +<tr><td width="5%"></td><td><tt>encoding</tt> </td><td> -- The file's in-memory encoding. (may differ from the on-disk encoding.)</td></tr> +<tr><td width="5%"></td><td><tt>bom</tt> </td><td> -- <tt><b>true</b></tt> if the file contains a <b>B</b>yte-<b>O</b>rder <b>M</b>arker.</td></tr> +<tr><td width="5%"></td><td><tt>changed</tt> </td><td> -- <tt><b>true</b></tt> if the file has unsaved changes.</td></tr> +<tr><td width="5%"></td><td><tt>readonly</tt> </td><td> -- <tt><b>true</b></tt> if the in-memory document is tagged as read-only.</td></tr> +</table> +<br><br> + + + +<a name="find"></a><hr><h3><tt>geany.find ( phrase, start, stop, options )</tt></h3><p> +Searches within the current document for the string <tt>phrase</tt>, beginning at <br> +the numeric <tt>start</tt> position and ending at the <tt>stop</tt> position.<br> +( To search backwards, specify a <tt>start</tt> value greater than <tt>stop</tt> . )<br><br> +</p><p> + + +The <tt>options</tt> argument is a table, each element may be one of the following strings:<br> + +<table border="0" summary="search options"> +<tr><td width="3%"> </td><td width="20%"><tt> +"matchcase"</tt></td><td> -- A match only occurs with text that matches the case of the search string. +</td></tr> +<tr><td> </td><td><tt> +"wholeword" </tt> </td><td> -- A match only occurs if the characters before and after are not word characters. +</td></tr> +<tr><td> </td><td><tt> +"wordstart" </tt> </td><td> -- A match only occurs if the character before is not a word character. +</td></tr> +<tr><td> </td><td><tt> +"regexp" </tt> </td><td> -- The search string should be interpreted as a regular expression. +</td></tr> +<tr><td> </td><td><tt> +"posix" </tt> </td><td> -- Use bare parentheses +<tt><b>(</b></tt> +<tt><b>)</b></tt> +for tagged sections rather than the escaped <tt><b>(</b></tt> and <tt><b>)</b></tt>. +</td></tr> +<tr><td colspan="3"> +( The empty set <tt><b>{}</b></tt> may also be specified, to search using the default options. ) +</td></tr> +</table> +<p> +If a match is found, the function returns the starting and ending positions of the match,<br> +otherwise it returns <tt><b>nil</b>.</tt> +</p><p> +For example, to select the first case-sensitive whole-word match of the string + '<b>foobar</b>' you could use something like this:</p> +<pre> + a,b = geany.find( "foobar", 0, geany.length(), {"wholeword","matchcase"} ) + if (a) then + geany.select(a,b) + else + geany.message("Search phrase not found.") + end +</pre><br><br> + + + +<a name="fullpath"></a><hr><h3><tt>geany.fullpath ( filename )</tt></h3><p> +Returns the fully canonicalized form of the path to an <i>existing</i> named file, or <tt>nil</tt> if the path could not be found. +</p><br><br> + + + + +<a name="height"></a><hr><h3><tt>geany.height ()</tt></h3><p> +Returns the total number of lines in the current document. +</p><br><br> + +<a name="keycmd"></a><hr><h3><tt>geany.keycmd ( command )</tt></h3><p> +Activates (runs) one of Geany's built-in menu commands.</p><p> +The <tt>command</tt> argument should be one the string constants defined in the +"<tt>glspi_keycmd.h</tt>" header from the plugin sources. +For example, to display Geany's preferences dialog, you could use:</p><p> +<tt> geany.keycmd("MENU_PREFERENCES")</tt> +</p> +<p> +This function raises an error if the command argument is invalid. +</p><br><br> + + + + + +<a name="keygrab"></a><hr><h3><tt>geany.keygrab ( [prompt] )</tt></h3><p> + +Intercepts the next keyboard key pressed, preventing the editor from receiving +that keyboard event.</p> +<p> +The function returns the value of the pressed key as a string, +alphanumeric keys will return their keyboard value, such as + <tt>"a"</tt> or <tt>"1"</tt> while other keys may +return a string describing the key, such +as <tt>"Return"</tt> or <tt>"Escape"</tt>. +( Consult the file <tt>gdk/gdkkeysyms.h</tt> in the GTK sources for some idea of the key names. ) +</p><p> +It should be possible to use this function on keyboards other than US, +although this hasn't been tested, and scripts written for one keyboard +might not be portable to another system. </p> +<p>Key combinations with the modifier keys <b>[Ctrl]</b> or <b>[Alt]</b> +are not supported. Detection of the <b>[Shift]</b> key state is somewhat supported, +although currently it may not be completely reliable. + Repeatedly calling this function in rapid succession (as in a loop) may also result in some "dropped" keys, +so for best results its use should be confined to detecting a single "lowercase" key press.</p><p> + +If the optional <tt>prompt</tt> string argument is present, its text will be shown +as a "calltip" near the upper left-hand area of the current document. +(but only if there is a document open.)</p> +<p> +This function was primarily intended for assigning "chained" sets of hot key +options, in conjunction with user-defined <a href="geanylua-keys.html">keybindings</a>. + + +</p> +<p> + +</p><br><br> + + + + + +<a name="launch"></a><hr><h3><tt>geany.launch ( program [, arg1 [, arg2, ...]] )</tt></h3><p> +Executes the external application specified by <tt>program</tt>, +passing any additional arguments to its command line. +</p> +<p> +Returns <tt>true</tt> if the process was succesfully created, else it returns <tt>false</tt> plus an error message.</p> +<p> +For example:<br><tt> + local ok,msg = geany.launch("firefox", "http://www.yahoo.com/")<br> + if not ok then geany.message(msg) end</tt> +</p> +<p> +This function returns immediately, regardless of the status of the newly-created process. +If you need to wait for a process to complete before returning, +use Lua's built-in <tt>os.execute()</tt> function instead. +</p> +<p>Note that using this function on MS-Windows might require installing the +"<b><tt>gspawn-win32-helper.exe</tt></b>" program somewhere in your <tt>PATH</tt>. +( It is included in the GTK/GLib package. )</p> +<br><br> + + +<a name="length"></a><hr><h3><tt>geany.length ()</tt></h3><p> +Returns the text length of the current document. +</p><br><br> + + +<a name="lines"></a><hr><h3><tt>geany.lines ( [index] )</tt></h3><p> +When called with one argument, returns a string containing the text at +the specified line number of the current document.<br> +It may also return <tt><b>nil</b></tt> if there is no open document, +or if the specified <tt><b>index</b></tt> is outside the range of lines. +</p><p> +When called without any arguments, it returns an iterator that steps +through each line of the current document. <br> +So you can use it like this:<pre> +for line in geany.lines() +do + print(line) +end +</pre> +<br><br> + + +<a name="match"></a><hr><h3><tt>geany.match ( [position] )</tt></h3><p> +Attempts to find a corresponding matching brace from the given <tt><b>position</b></tt> of one brace.<br> +( If the <tt><b>position</b></tt> argument is omitted, the current caret position is assumed. ) +</p> +<p>The brace characters handled are: <tt><b> () [] {} <></b></tt></p> +<p> The search is forwards from an opening brace and backwards from a closing brace.<br> +If the character at <tt><b>position</b></tt> is not a brace character, or a matching brace cannot be found,<br> +the return value is -1. Otherwise, the return value is the position of the matching brace. +</p><br><br> + + + +<a name="navigate"></a><hr><h3><tt>geany.navigate ( mode, count [,extend [,rect]] )</tt></h3><p> +Moves the caret incrementally.</p> +<p> +The <tt><b>mode</b></tt> argument must be one of the following strings: +<ul> +<li><tt>"char"</tt> -- Move by characters.</li> +<li><tt>"part"</tt> -- Move by segments in <big>MixedCase</big> or <big>under_score</big> style identifiers.</li> +<li><tt>"word"</tt> -- Move by words.</li> +<li><tt>"edge"</tt> -- Move to beginning or end of current line.</li> +<li><tt>"line"</tt> -- Move up or down by lines.</li> +<li><tt>"para"</tt> -- Move up or down by paragraphs.</li> +<li><tt>"page"</tt> -- Move up or down by pages.</li> +<li><tt>"body"</tt> -- Move to the beginning or end of the entire document.</li> +</ul> +<p> +If the numeric <tt><b>count</b></tt> argument is <i>positive</i>, the caret is moved <i>forward</i> or <i>down</i> by that many steps.<br> +If it is <i>negative</i>, the caret is moved <i>backward</i> or <i>up</i> by that many steps.<br> +( If it is <i>zero</i> there is not much point in using this function. )<br> +There is also no point in using a magnitude greater than <i>one</i> for the <tt>"edge"</tt> or <tt>"body"</tt> modes. +</p> +<p> +If the optional boolean <tt><b>extend</b></tt> argument is <tt><b>true</b></tt>, +the selection is expanded or contracted to the new caret position, +similar to holding down the <big>[Shift]</big> key when navigating with the keyboard. +</p><p> +If the optional boolean <tt><b>rect</b></tt> argument is also <tt><b>true</b></tt>, +the selection is treated as <i>rectangular</i> rather than <i>linear</i>.<br> +( Rectangular selection is only supported for <tt>char</tt>, <tt>edge</tt>, +<tt>line</tt>, or <tt>page</tt> modes. ) +</p> +<br><br> + + +<a name="newfile"></a><hr><h3><tt>geany.newfile ( [filename] )</tt></h3><p> +When called with one argument, creates a new document with the specified +<tt>filename</tt>. </p><p>When called with no arguments, creates a new, untitled document. +</p><br><br> + + + +<a name="open"></a><hr><h3><tt>geany.open ( [filename]|[index] )</tt></h3><p> +When called with no arguments, reloads the currently active document from disk. +</p><p> +When called with a numeric argument, reloads the file of that document index. +</p><p> +When called with a string argument, it will reload that filename if it is already open, +or otherwise it will open it in a new tab. <br> +It will not create a non-existent file, for that you need to use <tt>geany.newfile()</tt> +</p> +<p> +Returns the <i>one-based</i> document index on success, +or <i>zero</i> if the document could not be opened or reloaded.</p> +<br><br> + +<a name="optimize"></a><hr><h3><tt>geany.optimize ()</tt></h3><p> +Disables the Lua interpreter's "debug hook", the thing that +allows the plugin to track line number information and elapsed time.</p><p> +The advantage of calling <tt>optimize()</tt> is that a lengthy, CPU-intensive +script can sometimes run much faster. +</p><p> +The disadvantage is that you lose the line number information that helps in +debugging your script, and the built-in protection against things like endless loops. +For this reason you should only use this function if you really need it, and +only when you are reasonably sure that your script doesn't contain any errors. +</p><p>For best results this function should be called at the very +beginning of the script. + +</p> +<br><br> + +<a name="paste"></a><hr><h3><tt>geany.paste ()</tt></h3><p> +Pastes the text from the clipboard into the active document at the current caret position,<br> +replacing any current selection. +</p><p> +Returns <tt><b>nil</b></tt> if there is no open document, +or if the document is marked read-only.</p><p> +Otherwise it returns the effective change in the document's size. <br> +( Which may actually be negative, if the clipboard content size is less than the prior selection. ) +</p> +<br><br> + + +<a name="rescan"></a><hr><h3><tt>geany.rescan ()</tt></h3><p> +Scans the scripts folder, rebuilds the <b><i>Tools-><u>L</u>ua Scripts</i></b> menu, +and re-initializes the GTK accelerator group (keybindings) associated with the plugin. +</p><br><br> + + +<a name="rowcol"></a><hr><h3><tt>geany.rowcol ( [position]|[line,column] )</tt></h3><p> +This function translates between line/column coordinates and linear position (offset from beginning of document).<br> +</p> +<p>The syntax takes three forms:</p> +<ul> +<li> +With <i>no</i> arguments, it returns the rectangular coordinates of the current caret position:<br> +<tt> line, column = geany.rowcol()</tt><br> +( Note that in Lua a single function call like the one above returns both values! )<br><br> +</li> +<li> +With <i>one</i> argument, it it returns the rectangular coordinates of the specified <tt><b>position</b></tt> +argument:<br> +<tt> line, column = geany.rowcol(position)</tt><br><br> +</li> + +<li> +With <i>two</i> arguments, it translates from the given <tt><b>line</b></tt> and <tt><b>column</b></tt> +to the linear position:<br> +<tt> position = geany.rowcol(line,column)</tt> +</li> +</ul> +<p> +Out-of-range arguments are adjusted to the nearest valid possibility. +</p><br><br> + +<a name="save"></a><hr><h3><tt>geany.save ( [filename]|[index] )</tt></h3><p> +When called with no arguments, saves the currently active document to disk. +</p><p> +When called with a numeric argument, saves the file of that document index. +</p><p> +When called with a string argument, it will save that named document ( That is, of course, if it is open. ) +</p> +<p> +Returns <tt><b>true</b></tt> on success, or <tt><b>false</b></tt> if the document could not be saved.</p> +<br><br> + + +<a name="scintilla"></a><hr><h3><tt>geany.scintilla ( msg_id [, wparam [, lparam]] )</tt></h3><p> +<i>Power users only!</i> +</p> +<p> +Sends a <tt><b>SCI_*</b></tt> message directly to the Scintilla widget of the active document.</p> +<p> +The <tt><b>msg_id</b></tt> can be a numeric value, or a case-insensitive string with or +without the <tt>"SCI_"</tt> prefix, +such as <tt>"SCI_POSITIONFROMPOINT"</tt>, <tt>"POSITIONFROMPOINT"</tt>, or <tt>"PositionFromPoint"</tt>. +</p><p> +The wparam, lparam, and return types depend on the particular message, based on the +interface described in the "<tt><small>Scintilla.iface</small></tt>" file from the Scintilla sources. +</p><p> +For API calls which expect a pre-allocated char buffer as the lparam, the allocation is +automatically managed +by the GeanyLua module, your lparam is ignored, and the return value is a Lua string. +In cases where the length is specified +in the wparam, the null terminator is not counted - if you ask for 3 chars, you get 3 chars. +</p><p> +Currently only string, numeric, and boolean types are supported, any API call that +expects or returns complex types will result in an error. This function tries hard to +protect from garbage being passed to +Scintilla, but ultimately <i>you</i> are expected to know what you're doing! +</p><br><br> + +<a name="select"></a><hr><h3><tt>geany.select ( [[start,] stop]] )</tt></h3><p> +When called with no arguments, returns the beginning <b><i>and</i></b> ending points of +the current selection, in the form:<br> +<tt> + start, stop = geany.select() +</tt><br> +( Note that in Lua a single function call like the one above returns both values! )</p> +<p> +To find out if the selection is rectangular, test the +boolean variable <tt><b>geany.rectsel</b></tt> immediately after this call. +</p> +<p><br> +If this function is called with two arguments, it creates a new selection in +the current document. +<br> The selection is <i>anchored</i> at the <tt><b>start</b></tt> +position, and <i>extended</i> to the <tt><b>stop</b></tt> position.</p><p> +The boolean variable <tt><b>geany.rectsel</b></tt> can be set prior to this +call to control +whether this selection is created in normal or rectangular mode. +</p> +<p><br> +If called with one argument, the caret is moved to that position, but no selection is created,<br> +and any existing selection is lost. +</p> +<p> +<br> +Note that in all cases, the value of <tt><b>stop</b></tt> is considered to be +the end of the selection where the caret is located.</p><p> +So, if <tt><b>stop</b></tt> is less than <tt><b>start</b></tt>, the caret is postioned +at the <i>beginning</i> of the selection, <br>similar to a selection created by +dragging the mouse <i>backwards</i> in the document.</p> +<p> +<b>Hint:</b> To select the entire document, you can use: +<tt>geany.select( 0, geany.length() )</tt> +</p><br><br> + + +<a name="selection"></a><hr><h3><tt>geany.selection ( [content] )</tt></h3><p> +When called with no arguments, returns the selected text in the current Geany +document as a string. <br> +Returns the empty string if no text is selected, or <tt><b>nil</b></tt> +if there is no open document. +</p><p>When called with one argument, the selected text of the current document +will be replaced with the specified <tt>content</tt> +string.<br> +If no text is currently selected, the text will be inserted at the current +(caret) position. +</p><br><br> + +<a name="signal"></a><hr><h3><tt>geany.signal ( widget, signal )</tt></h3><p> +Emits a GTK signal to a given widget in the Geany user interface.</p><p> +The <tt>widget</tt> argument is a string identifying the widget by its Glade <tt><b>"id"</b></tt> attribute.<br> +The <tt>signal</tt> argument is a string identifying the signal to be emitted. +</p><p> +This function was primarily intended for activating Geany's builtin menu commands.<br> +For instance, to display the file open dialog you could do:<br> +<tt> geany.signal("menu_open1", "activate")</tt> +</p><p> +The function does not return a value, but may trigger an error message if the +widget name is not found or the signal name is not valid for the specified widget. + +Note that it is generally easier and more reliable to use the <tt>keycmd()</tt> function whenever possible. +</p><br><br> + +<a name="stat"></a><hr><h3><tt>geany.stat( filename [, lstat] )</tt></h3><p> +Returns a table providing some (limited) information about the specified file.<br> +If the information could not be obtained, the function returns <tt>nil</tt> plus an string describing the reason for failure. +</p> +<p> +If the file is a symbolic link, and the optional <tt>lstat</tt> argument is <tt>true</tt>, the +information is returned about the link itself, otherwise the table provides +information about the file that the link points to. +</p><p> +The returned table contains the following fields: +<table border="0" summary="stat table fields"> +<tr><td width="5%"></td><td><tt>size </tt></td><td> -- The size of the file, in bytes.</td></tr> +<tr><td width="5%"></td><td><tt>time </tt></td><td> -- Modification time, in seconds from the epoch.</td></tr> +<tr><td width="5%"></td><td><tt>type </tt></td><td> -- A single-character string that denotes the type of file (see below)</td></tr> +<tr><td width="5%"></td><td><tt>read </tt></td><td> -- <tt>true</tt> if the effective user can read from the file.</td></tr> +<tr><td width="5%"></td><td><tt>write</tt></td><td> -- <tt>true</tt> if the effective user can modify the file.</td></tr> +<tr><td width="5%"></td><td><tt>exec </tt></td><td> -- <tt>true</tt> if the effective user can execute the file.</td></tr> +</table> +<p><br> +The <tt>type</tt> field contains one of the following values: +<table border="0" summary="stat table type field values"> +<tr><td width="5%"></td><td><tt>"b" </tt></td><td> -- a block-oriented device.</td></tr> +<tr><td width="5%"></td><td><tt>"c" </tt></td><td> -- a character-special device.</td></tr> +<tr><td width="5%"></td><td><tt>"d" </tt></td><td> -- a directory.</td></tr> +<tr><td width="5%"></td><td><tt>"f" </tt></td><td> -- a FIFO or named pipe.</td></tr> +<tr><td width="5%"></td><td><tt>"l" </tt></td><td> -- a symbolic link.</td></tr> +<tr><td width="5%"></td><td><tt>"r" </tt></td><td> -- a regular file.</td></tr> +<tr><td width="5%"></td><td><tt>"s" </tt></td><td> -- a socket.</td></tr> +</table> +<p> +Note that this function does not support symbolic links or ACL permissions on MS-Windows. +</p><br><br> + + + +<a name="text"></a><hr><h3><tt>geany.text ( [content] )</tt></h3><p> +When called with no arguments, returns the entire text of the currently +active Geany document as a string.<br>( Returns <tt><b>nil</b></tt> +if there is no open document.) +</p><p> +When called with one argument, the entire text of the current +document is replaced with the specified <tt>content</tt> string. +</p><br><br> + + +<a name="timeout"></a><hr><h3><tt>geany.timeout ( seconds )</tt></h3><p> + +Attempts to control the maximum time allowed, in whole seconds, for the current script to +finish execution.</p><p> +By default, scripts are allowed 15 seconds to complete, but if your script needs +more time, you can increase it here. +</p><p> +Note that the interpreter is only able to trigger this "timeout exceeded" error when it is actually processing instructions. +This provides protection against things like accidentally creating an endless loop, +but it might still be possible to create a script that hangs indefinitely. ( For instance if +you call <tt>io.read()</tt> without access to a terminal. )</p><p> +The internal timer is paused whenever one of the dialog box functions is called, +to allow the user time to respond. +</p><p> +Setting the timeout to zero will disable it completely, that is, the script will never time out. +</p><p><br><br> + +<a name="wkdir"></a><hr><h3><tt>geany.wkdir ( [folder] )</tt></h3><p> +When called with no arguments, returns the current working directory.</p> +<p> +When called with one argument, tries to change into that <tt>folder</tt>, +and returns <tt>true</tt> on sucess, or <tt>false</tt> plus an error message +on failure. +</p><br><br> + +<a name="word"></a><hr><h3><tt>geany.word ( [position] )</tt></h3><p> +When called with no arguments, returns the word at the current caret position. +</p><p> +When called with one argument, returns the word at the specified +<tt><b>position</b></tt>. +</p><p> +This function can return an empty string if the position is not touching +a character that is considered to be part of a word. You can modify this +set of characters in the <tt><b>geany.wordchars</b></tt> variable. +</p><br><br> + + +<a name="xsel"></a><hr><h3><tt>geany.xsel ( [text] )</tt></h3><p> +When called with no arguments, returns the text-based contents of the primary X selection. +</p><p> +When called with one argument, assigns that <tt>text</tt> as the contents of the primary X selection. + +</p><p> +This function is only valid for X-Window environments, on MS-Windows, it does nothing. +</p><br><br> + +<a name="yield"></a><hr><h3><tt>geany.yield ()</tt></h3><p> +Temporarily returns control to the IDE, to allow user interface elements to +be refreshed/repainted during lengthy script operations. +</p><p>Since most scripts will probably have a run time of less than a couple of seconds, +you will likely never need this function. But if you do, it should be used with caution, +since it allows Geany's state to be changed during script execution. This could have +unpleasant consequences, for instance if the user closes a document that the script is referencing. +</p> +<br><br> +<br><br> +<hr><hr> + +<!-- Dialog functions --> +<h3> Dialog functions</h3> +<hr> + +<a name="choose"></a><hr><h3><tt>geany.choose ( prompt, items )</tt></h3><p> +Displays a dialog box to allow the user to choose from a list of items. </p><p> +The <tt>prompt</tt> argument string will display a message above the list box +to explain the request.</p><p> +The <tt>items</tt> argument is a Lua table, each element of the table must be +a string. +</p><p> +The function returns the selected item as a string:</p> +<ul> +<li>If the <b>OK</b> button is clicked, +<li>If the [Return] key is pressed while the item list is active. +<li>If the user double-clicks an item in the list. +</ul> +<p> +If the <b>Cancel</b> button is clicked, or if the dialog is is dismissed by +some other means, e.g. by pressing the [Escape] key, the function returns +<tt><b>nil</b></tt>. +</p><br><br> + + +<a name="confirm"></a><hr><h3><tt>geany.confirm ( title, question, default )</tt></h3><p> + Displays a simple yes-or-no style dialog box to ask the specified + <tt>question</tt>.<br> + The <tt>title</tt> argument is displayed as a bold-faced title for the dialog. + </p><p> + Returns <tt><b>true</b></tt> if the 'Yes' button is clicked, + or <tt><b>false</b></tt> if the 'No' button is + clicked.</p><p> + If the dialog is dismissed by some other means, e.g. by pressing the + [Escape] key, <br>the function will return the boolean value specified by the + <tt>default</tt> argument. </p> + <p>All three arguments are required, but you can pass <tt><b>nil</b></tt> + as the first argument to suppress the title. +</p><br><br> + + +<a name="input"></a><hr><h3><tt>geany.input ( [prompt] [,default] )</tt></h3><p> +Displays an input dialog to prompt the user for some text. </p><p> +The <tt>prompt</tt> argument string will display a message above the entry box +to explain what input is requested.</p><p> +The <tt>default</tt> argument string, if present, will add some pre-selected +text into the entry area.</p><p> +If the <b>OK</b> button is clicked, or if the [Return] key is pressed while the +entry field is active, the function will return the contents of the entry field + as a string.</p><p> +If the <b>Cancel</b> button is clicked, or if the dialog is is dismissed by +some other means, e.g. by pressing the + [Escape] key, the function returns <tt><b>nil</b></tt>. +</p><br><br> + + +<a name="message"></a><hr><h3><tt>geany.message ( [title,] message )</tt></h3><p> +When called with one argument, displays a simple dialog box containing +the specified <tt>message</tt> string. </p> +<p>When called with two arguments, the <tt>title</tt> argument is displayed as +a bold-faced title, +and the <tt>message</tt> argument will be the message text. +</p><br><br> +<hr> + +<a name="pickfile"></a><hr><h3><tt>geany.pickfile ( [mode [,path [,filter]]] )</tt></h3> +<p> +Displays a dialog that allows the user to select a filename.</p><p> +All three arguments are optional, but you can pass <tt>nil</tt> as a placeholder to +use the default value for any of the arguments.</p><p> +The <tt>mode</tt> argument specifies the type of dialog, and must be one +of two strings, either <tt>"open"</tt> or <tt>"save"</tt>.<br> +( passing <tt>nil</tt> is the same as <tt>"open"</tt> )<br> +In <tt>"save"</tt> mode the function will issue an overwrite confirmation prompt if the targeted file already exists. +</p><p> +The <tt>path</tt> string argument sets the initial directory for the dialog, or <tt>nil</tt> +to use the current directory.<br> +If the last (rightmost) element of the path is an existing directory, the path will be used as-is, +otherwise the last element is assumed to be a filename (whether it actually exists on disk or not) +and will be parsed off and used as the suggested filename for the dialog. +</p><p> +The <tt>filter</tt> argument controls which files are displayed, +or it can be <tt>nil</tt> to display all files.<br> +It is a string consisting of pairs of substrings, where each substring +is separated by the pipe "<tt>|</tt>" symbol.<br> +The first element in each pair of substrings is the human-readable description of the filetype,<br> +and the second element of the +pair is a set of semicolon-delimited shell wildcards to filter on.<br> +For instance, a filter for web files might look like:<br> +<tt><b> "HTML files|*.html;*.htm|PHP files|*.php;*.php4|Style sheets|*.css"</b></tt> +<br> +( Those familiar with +<a href="http://en.wikipedia.org/wiki/Borland_Delphi">Borland Delphi</a> + might recognize this syntax from the + <a href="http://www.delphibasics.co.uk/RTL.asp?Name=TOpenDialog">TOpenDialog.Filter</a> property. ) +</p> +<p><br> +Note that this function does not actually open or save anything, it merely returns the +full path and filename of the selected file, or <tt>nil</tt> if the user cancels the dialog.</p> +<br><br> +<hr> +<hr> +<h3>Module level variables</h3> +<hr> +<a name="wordchars"></a><hr><h3><tt>geany.wordchars</tt></h3><p> +This variable determines which characters are considered to be part of a word. +</p><p> +It is used by the <tt><b>geany.word()</b></tt> function and may also be reset by that +function if its current value cannot be interpreted as a string.</p><p> +The default value is:<br><tt> + <big> <big> +"_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"</big> </big></tt> +<p> +If you need to modify this string, you may want to save a copy of the original +so you can restore it later. +</p><br><br> + +<a name="rectsel"></a><hr><h3><tt>geany.rectsel</tt></h3><p> +This variable controls and/or returns the "selection mode" of the current document. +</p><p> +It is used by the <tt><b>geany.select()</b></tt> function and is adjusted +when the selection is queried, and examined when the selection is set. <br> +It may also be reset if its current value cannot be interpreted as a boolean.</p> +<p> +A value of <tt><b>true</b></tt> represents a rectangular selection +and <tt><b>false</b></tt> represents the normal linear selection mode. +</p><br><br> + +<a name="banner"></a><hr><h3><tt>geany.banner</tt></h3><p> +This variable controls the window title for dialogs displayed by the current script. +</p><p> +It may be reset by the dialog functions if its value cannot be interpreted as a string. +</p><br><br> + + +<a name="caller"></a><hr><h3><tt>geany.caller</tt></h3><p> +This variable stores the internal index of the document that triggered one of the <a href="./geanylua-intro.html#events">event scripts</a>.</p> +<p> +For example, to print the filename of a file that has just been saved, you could put<br> +this line in your <b>~/.geany/plugins/lua/events/saved.lua</b> script file:</p><p> +<tt> print(geany.documents(geany.caller))</tt> +</p><p> + + + + +This variable is only relevant for the opened, created, activated, and saved event scripts, +for all other scripts it is set to zero.<br> + +</p><br><br> + +<a name="dirsep"></a><hr><h3><tt>geany.dirsep</tt></h3><p> +This variable returns the default filesystem path separator.<br> +( A forward slash <tt><b>/</b></tt> for Unix or + a backslash <tt><b></b></tt> for MS-Windows. ) +</p><br><br> + + +<a name="project"></a><hr><h3><tt>geany.project</tt></h3><p> +This variable provides a reference to the <a href="geanylua-keyfile.html">GKeyFile</a> object +for the project that triggered a + proj-* <a href="./geanylua-intro.html#events">event script</a>.</p> +<p> +The information stored in the object can be manipulated using the <tt>keyfile</tt> module.<br> +For example, to print the description of the project that has just been opened, you could put<br> +this line in your <b>~/.geany/plugins/lua/events/proj-opened.lua</b> script file:</p><p> +<tt> print(keyfile.value(geany.project, "project", "description"))</tt> +</p><p> +This variable is only relevant for the project-based event scripts, for all other scripts it is set to <tt>nil</tt>.<br> + +</p><br><br> + + +<a name="script"></a><hr><h3><tt>geany.script</tt></h3><p> +This variable stores the full path and filename of the active script.</p> +<br><br> +<hr> +<br><br> +<div align="right"><small>© 2007-2008 <i>Jeff Pohlmeyer </i> </small></div> +<br><br> +<br><br><br><br> +<br><br><br><br> +<br><br><br><br> +<br><br><br><br> + +</body> +</html>
Added: www/stable/geanylua/luarefv51.html =================================================================== --- www/stable/geanylua/luarefv51.html (rev 0) +++ www/stable/geanylua/luarefv51.html 2010-07-31 14:17:00 UTC (rev 1490) @@ -0,0 +1,3865 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> + +<html> +<head> + <meta name="generator" content="HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org"> + <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> + + <title>Lua 5.1 short reference</title> +<style type="text/css"> +<!-- + body + {margin-left:24px; + margin-bottom:120px; + width:75%} + p.MsoNormal + {margin-top:0cm; + margin-right:0cm; + margin-bottom:0cm; + margin-left:2.85pt; + margin-bottom:.0001pt; + font-size:8.0pt; + font-family:"Times New Roman";} +span.LuaCbold + {font-weight:bold;} +span.LuaCitalic + {font-style:italic;} +p.LuaPHeader2 + {margin-top:32px; + margin-right:0cm; + margin-bottom:8px; + margin-left:0cm; + text-indent:2.85pt; + page-break-after:avoid; + font-size:10.0pt; + font-family:Arial; + color:gray; + font-weight:bold; + font-style:italic;} +p.LuaPHeader1 + {margin-top:48px; + margin-right:4.25pt; + margin-bottom:8px; + margin-left:0px; + width:100%; + page-break-after:avoid; + background:#F3F3F3; + padding:8px; + font-size:12.0pt; + font-family:Arial; + color:gray; + letter-spacing:1.2pt; + font-weight:bold;} +table.LuaTTables + {width:100%;} +td
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.