Revision: 94 http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=94&view=rev Author: ntrel Date: 2008-06-30 05:34:55 -0700 (Mon, 30 Jun 2008)
Log Message: ----------- Initial import of Jeff Pohlmeyer's GeanyLua plugin, from the 0.7 release. This currently will not build against Geany SVN, the plan is to update it to the latest plugin API. (Retrying commit ;-)).
Added Paths: ----------- trunk/geanylua/ trunk/geanylua/AUTHORS trunk/geanylua/COPYING trunk/geanylua/COPYRIGHT.LUA trunk/geanylua/ChangeLog trunk/geanylua/INSTALL trunk/geanylua/Makefile.am trunk/geanylua/Makefile.in trunk/geanylua/NEWS trunk/geanylua/README trunk/geanylua/THANKS trunk/geanylua/configure.in trunk/geanylua/docs/ trunk/geanylua/docs/geanylua-index.html trunk/geanylua/docs/geanylua-input.html trunk/geanylua/docs/geanylua-intro.html trunk/geanylua/docs/geanylua-keyfile.html trunk/geanylua/docs/geanylua-keys.html trunk/geanylua/docs/geanylua-ref.html trunk/geanylua/docs/luarefv51.html trunk/geanylua/examples/ trunk/geanylua/examples/dialogs/ trunk/geanylua/examples/dialogs/basic-dialogs.lua trunk/geanylua/examples/dialogs/complex-dialog.lua trunk/geanylua/examples/edit/ trunk/geanylua/examples/edit/calculator.lua trunk/geanylua/examples/edit/lua-replace.lua trunk/geanylua/examples/edit/proper-case.lua trunk/geanylua/examples/edit/reverse.lua trunk/geanylua/examples/edit/right-trim.lua trunk/geanylua/examples/edit/select-block.lua trunk/geanylua/examples/info/ trunk/geanylua/examples/info/about.lua trunk/geanylua/examples/info/app-information.lua trunk/geanylua/examples/info/file-information.lua trunk/geanylua/examples/info/list-open-files.lua trunk/geanylua/examples/info/show-filename.lua trunk/geanylua/examples/scripting/ trunk/geanylua/examples/scripting/help.lua trunk/geanylua/examples/scripting/open-script.lua trunk/geanylua/examples/scripting/rebuild-menu.lua trunk/geanylua/examples/scripting/show-examples.lua trunk/geanylua/examples/work/ trunk/geanylua/examples/work/01.edit-test-script.lua trunk/geanylua/examples/work/02.run-test-script.lua trunk/geanylua/examples/work/03.install-test-script.lua trunk/geanylua/geanylua.c trunk/geanylua/glspi.h trunk/geanylua/glspi_app.c trunk/geanylua/glspi_dlg.c trunk/geanylua/glspi_doc.c trunk/geanylua/glspi_init.c trunk/geanylua/glspi_keycmd.h trunk/geanylua/glspi_kfile.c trunk/geanylua/glspi_run.c trunk/geanylua/glspi_sci.c trunk/geanylua/glspi_sci.h trunk/geanylua/glspi_ver.h trunk/geanylua/gsdlg.c trunk/geanylua/gsdlg.h trunk/geanylua/gsdlg_lua.c trunk/geanylua/keywords.list trunk/geanylua/util/ trunk/geanylua/util/install.sh trunk/geanylua/util/keydummy.h trunk/geanylua/util/keywords.lua trunk/geanylua/util/mk-dialog-so.sh trunk/geanylua/util/mk-keytab.lua trunk/geanylua/util/mkiface.lua trunk/geanylua/util/real-clean.sh trunk/geanylua/win32-install.vbs trunk/geanylua/win32-uninstall.vbs
Added: trunk/geanylua/AUTHORS =================================================================== --- trunk/geanylua/AUTHORS (rev 0) +++ trunk/geanylua/AUTHORS 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1 @@ +Jeff Pohlmeyer yetanothergeek@gmail.com
Added: trunk/geanylua/COPYING =================================================================== --- trunk/geanylua/COPYING (rev 0) +++ trunk/geanylua/COPYING 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License.
Added: trunk/geanylua/COPYRIGHT.LUA =================================================================== --- trunk/geanylua/COPYRIGHT.LUA (rev 0) +++ trunk/geanylua/COPYRIGHT.LUA 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1,34 @@ +Lua License +----------- + +Lua is licensed under the terms of the MIT license reproduced below. +This means that Lua is free software and can be used for both academic +and commercial purposes at absolutely no cost. + +For details and rationale, see http://www.lua.org/license.html . + +=============================================================================== + +Copyright (C) 1994-2007 Lua.org, PUC-Rio. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +=============================================================================== + +(end of COPYRIGHT)
Added: trunk/geanylua/ChangeLog =================================================================== --- trunk/geanylua/ChangeLog (rev 0) +++ trunk/geanylua/ChangeLog 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1,281 @@ +Mar 24, 2008 + Released version 0.7.0 + +Mar 23, 2008 + Added a new examples folder "work" with three new scripts: + edit-test-script.lua; run-test-script.lua; install-test-script.lua + These should make it a little easier for users to develop and save + their own personal scripts. + Also added "examples/edit/calculator.lua" - + The idea came from the "Plugin Wishlist" on the Geany website, only + this one can even do some fancy stuff like 'sqrt(pi^2*sin(rad(45)))' + +Mar 14, 2008 + Revised configure.in and Makefile.am to support Geany's new header + installation and pkg-config features, so the build configuration + no longer requires the --with-geany-src option. + +Mar 13, 2008 + Added support for Geany's new built-in keybinding API. + This means that scripts can now take advantage of Geany's + preferences system to configure keybindings. + See ./docs/geanylua-keys.html for more info. + +Feb 21, 2008 + Code cleanup to quiet some compiler warnings. + Fix to compile with -DGEANY_DISABLE_DEPRECATED flag. + +Feb 21, 2008 + New function: optimize() disables line info and elapsed time counter + for scripts that need all the CPU time they can get. + Also found and fixed a nasty crash bug in the filter-parsing code for + the pickfile() function. + +Feb 20, 2008 + Added a copy of Enrico Colombini and Thomas Lauer's "Lua Short Reference" + to the GeanyLua docs. This provides a convenient and concise guide to the + Lua language and its core libraries. + +Feb 19, 2008 + Removed gtk_main_iteration() loop from glspi_run_script() in glspi_run.c. + I am not even sure why it was there, possibly it was needed for something, + but maybe it just seemed like a good idea at the time. It was causing some + scripts to hang under certain conditions, particularly when event scripts + were invoked while the GeanyDebug plugin was running. + +Feb 12, 2008 + Fixed missing symbols in Win32 library. + ( Thanks to Joerg Desch for reporting. ) + +Jan 28, 2008 + Released version 0.6.1 + Note that the pre-compiled binaries availiable on the website are now + statically linked to Lua-5.1.3 instead of 5.1.2. This was a bugfix-only + release of Lua, and since most of the bugs were fairly obscure and trivial, + it really shouldn't affect GeanyLua at all. + +Jan 28, 2008 + Fixed "make install" bug where ~/.geany/plugins/geanylua was not getting + created, which caused the installation to fail if the directory didn't + already exist. ( Thanks to Harri Koskinen for reporting. ) + +Jan 22, 2008 + Added the ability to show a calltip for the keygrab() function. + It might not seem like much, but I think it is a big improvement + over the previous "typing while blind" limitation. + +Jan 21, 2008 + Released version 0.6.0 + +Jan 19, 2008 + New function: keygrab() intercepts the next keystroke from Geany, useful for + creating "chained" keybindings. ( Thanks to John Gabriele for suggesting. ) + +Jan 17, 2008 + Fix missing *.vbs files from "make dist" + +Jan 16, 2008 + Major change - All of the core functionality has been moved into a support + library named "libgeanylua.so" and now the "geanylua.so" plugin is only a + thin wrapper around the core. This was done to bypass the local-binding + restriction placed on plugins by Geany, which prevented Lua API functions + from being referenced from binary Lua modules. + +Jan 14, 2008 + Major code refactoring, trying to hide as many globally-visible symbols + as possible. There is a good chance that this might introduce a bug or + two, but I also found and fixed a bug in the choose() function, so + at least maybe it won't be a total loss. + +Jan 13, 2008 + Cleaned up the documentation. + +Jan 12, 2008 + Added some code to help with repainting the GUI during lengthy operations, + using the low-level GDK paint functions instead of the usual GTK main loop. + This should help keep the window painted while still preventing too much + user interaction while a script is running. + +Jan 11, 2008 + The timeout measurement now pauses the timer while dialogs are displayed, + rather than setting the timer back to zero for each dialog. Actually it + considers the time spent as 1/10 of a second, to keep timeouts working + even if you create an endless loop with a dialog inside. But even still, + you might need to click a lot of buttons before the timer expires! + +Jan 10, 2008 + Revamped the ugly and broken goto_error() function. Trying to parse the + filename and line number from the builtin error messages was just wrong, + and couldn't possibly be reliable since Lua truncates long path names when + it formats the message. So now we store the filename and line number from + our debug_hook() in case the filename changes if the script calls Lua's + dofile() function or something. That is a really slow way to do things, + since we strcmp() the filenames every time the interpreter executes a line. + But for now it's the only way I know how, and at least now it's working. + +Jan 8, 2008 + The "geanylua.c" file was getting a bit too large to navigate easily, + so I moved most of the lua-related code into a new file, "glspi_run.c" + Added some new features to the filename-to-menu-label generator, a trailing + underscore in the filename will create an ellipsis after for the menu label, + e.g. "Files_.lua" becomes "Files..." Also, any two-digit prefix followed + by a dot is now stripped off, this gives more control over the position of + menu items, e.g. "01.Zebra.lua" and "02.Apple.lua" creates the "Zebra" label + before the "Apple" label. + +Jan 7, 2008 + Just after releasing 0.5.2, I found a mistake in the "gsdlg.c" file + that prevented the timeout reset for dialogs from working correctly. + It should be fixed now. + +Jan 7, 2008 + Released version 0.5.2 + Revised licensing clause to allow users the possibility of + choosing GPL-v2 or later versions. + +Jan 6, 2008 + New function: yield() allows lengthy script operations to call + gtk_main_iteration() occasionaly to prevent the IDE from appearing + frozen. I imagine there might be cases where using this function + might be a very bad idea, since it allows the user and the script + to interact with Geany at the same time. + +Jan 4, 2008 + Partially fixed the long-standing problem that a faulty script can + potentially lock up Geany. Scripts are now given a maximum of fifteen + seconds to complete before generating an error. This fix is not totally + idiot-proof, but it should provide adequate protection against endless loops. + ( Be warned - it might still be possible to hang up a script in some other + ways which can't currently be detected. ) + Also added a timeout() function to allow script authors to increase or even + completely disable the timeout if needed. + +Jan 2, 2008 + Released version 0.5.1 + Fix to compile against Geany-SVN-r2145 (API Ver 37) + Moved all #include's for geany source headers above the evil "pluginmacros.h" + so maybe this bug won't bite me again. + +Jan 1, 2008 + Released version 0.5.0 + +Jan 1, 2008 + Added files "win32-install.vbs" and "win32-uninstall.vbs" to hopefully + simplify windows installation. Likewise, added the file "install.sh" + to the pre-compiled Linux-x86 archive. + +Dec. 28, 2007 + New function: rescan() rebuilds the "Tools->Lua Scripts" menu + so you can update your menus on-the-fly. + +Dec. 26, 2007 + New function: launch() spawns a new process and returns immediately, + unlike Lua's standard execute() function which waits for the child + process to terminate before returning. + +Dec. 24, 2007 + Completed (?) changing the makefile over to use autotools. + IMPORTANT NOTE: The new name of the script folder is now + .../plugins/geanylua instead of the old name of .../plugins/lua, + so you should move any of your own custom scripts into the new folder. + +Dec. 23, 2007 + Following Enrico's suggestion, I converted code over to use + the "pluginmacors.h" macros. + +Dec. 18, 2007 + Added keycmd() function to activate geany menu commands, per GeanyKeyCommand + enum in geany/src/keybindings.h + +Dec 15, 2007 + Fixed a bad bug where menu items were not getting removed when + the plugin was disabled in plugin manager. + +Nov 29, 2007 + Added function wkdir() to get/set the current working directory. + +Nov 26, 2007 + Fixed a bug in the count() function - it was including documents that + were already closed. + +Nov 24, 2007 + Added a new module "dialog" to provide a more flexible means for creating + custom dialog boxes. See gsdlg* sources and ./docs/geanylua-input.html . + +Nov 21, 2007 + Added support for project opened/saved/closed event scripts. + These events receive a global variable, "geany.project" which + is a thin Lua wrapper around the GKeyFile object. Also added + a new Lua "keyfile" module to manipulate this type of object. + +Nov 20, 2007 + Added PLUGIN_AUTHOR define for API compatibility. + Added a function to display a customized configure dialog for Geany's new + plugin manager. + +Nov 19, 2007 + Released "Development snapshot" (geanylua-2007-11-19.tar.gz) + +Nov 7, 2007 + Added some filesystem-related functions: + basename(); dirname(); dirlist(); stat(); and dirsep constant. + +Nov 6, 2007 + Added support for two new 'event' scripts, "init.lua" and "cleanup.lua" + that run (respectively) when the plugin is loaded and unloaded. + +Nov 5, 2007 + New function: signal() to send signals to Geany widgets, + mostly to activate builtin menu commands. + + +Nov 4, 2007 + Renamed source files from lua_* to glspi_* ( Geany Lua Scripting Plug In ) + + +Nov 3, 2007 + New function: xsel() to get/set the primary X selection. + + +Nov 2, 2007 + New function: appinfo() to retrieve various Geany folder locations and + preferences, etc. + + +Nov 1, 2007 + New function: pickfile() to access the standard GTK file chooser + open/save dialogs. + + +Oct 31, 2007 + Added the ability to launch scripts from accelerator-key bindings + by using specially-formatted comment tags. Now your favorite script + can be right at your fingertips! + + +Oct 15, 2007 + Changed makefile to use pkg-config for Lua. + + +Oct 13, 2007 + Bumped versions: plugin=0.3, API=20 to correspond with "official" + Geany 0.12 release. + + +Oct 10, 2007 + Revised conditional to use GTK_MESSAGE_INFO instead of GTK_MESSAGE_OTHER + for all GTK versions before 2.10. + + +Sept 20, 2007 + Added an "open" button to the script error dialog, to give the user an + option to revise faulty scripts. + + +Sept 11, 2007: + Revised geany.open() function to reflect svn~1870 API changes. + + +Sept 5, 2007: + Initial release. (Version 0.1) +
Added: trunk/geanylua/INSTALL =================================================================== --- trunk/geanylua/INSTALL (rev 0) +++ trunk/geanylua/INSTALL 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1,103 @@ + +Important note! If you are upgrading from an older installation, please note +that the name of the script folder is now changed from /lua/ to /geanylua/ !!! + + + +These installation instructions are written primarily for a Linux system, +followed by some additional notes for MS-Windows users. + +If you are installing from the pre-compiled Linux plugin package, you can +just run the "install.sh" script, to install the plugin, examples, and help +files into your ~/.geany/plugins directory. + + +If you want Geany's syntax highlighter to recognize the plugin's function +names you can also modify your "filetypes.lua" file according to the notes +in the "geanylua/keywords.list" file. + + +For those of you who want to compile the plugin from scratch, keep reading... + + +At the time of this writing, building the plugin requires a recent SVN checkout +of the Geany sources (r2391+), and a properly installed copy of the Lua 5.1.x +library, headers, and pkg-config script. + + +Recent versions of Geany will now install all the necessary headers in +$PREFIX/include/geany/ along with a pkg-config script that tells configure +where to find the required files, so the old --with-geany-src option +is no longer required. Building should now be as simple as: + + % configure + % make + % make install + +The "make install" command copies the files to your personal ~/.geany/plugins/ +directory, so you don't need to be root to install. If you actually do want +everyone on the system to be able to access to the same copy of the plugin, +you can add the --enable-sys-install option to the ./configure command line. + + +To uninstall the plugin, you should be able to simply type "make uninstall" +but be warned - although it will try not to remove any of your own personal +scripts, the folder "geanylua/examples" and all its contents will always be +removed unconditionally, so any scripts in the examples directory WILL BE LOST! + + + +=========================== MS-WINDOWS NOTES =============================== + +The pre-compiled GeanyLua package includes a couple of Visual Basic scripts +that I hope will simplify installation for most users. The scripts require a +recent version of Geany (SVN-r2151 or newer) and the Windows VBS scripting +engine. ( If you have at least Internet Explorer 5.0, you probably have VBS.) + +To install geanylua using the script, just double-click the "win32-install.vbs" +file and if you don't see any error messages, you should be all set up. +( Be sure to exit any running instance of Geany before installing! ) + +If something goes wrong, you can try installing manually, as follows... + +To install the pre-compiled plugin on Windows, you can copy the "geanylua.dll" +file to the "plugins" folder in the same place where Geany is installed, that +would probably be "C:\Program Files\Geany\plugins\geanylua.dll" or somewhere +like that. + +The exact location where Geany will look for the Lua script files depends on +your Windows version, your Geany version, and possibly even your environment. + +For user "jane" it could be any one of these: + +Prior to Geany-SVN-2139, the paths would look something like this: + +Win2k: C:\Documents and Settings\jane.geany\plugins\geanylua\ +Win98: C:.geany\plugins\geanylua\ +MinGW: C:\msys\1.0\home\jane.geany\plugins\geanylua\ + + +As of Geany-SVN-2139, the configuration paths should be more like this: + +Win2k: C:\Documents and Settings\jane\Application Data\Geanyplugins\geanylua\ +Win98: C:\Windows\Profiles\jane\Application Data\Geany\plugins\geanylua\ +MinGW: Geany's config path now ignores the $HOME environment variable. + +Just in case you aren't confused yet, anonymous users on Win98 may need to +place the files in "C:\Windows\Application Data\Geany\plugins\geanylua" + + +If you want to compile the plugin from the sources on MS-Windows, you will +need a fairly complete MSYS/MINGW/GTK build system, along with a properly built +and installed "liblua.a" library, and the Lua headers. ( The "Win32_mingw3_lib" +package from http://luabinaries.luaforge.net/ worked fine for me. ) + +You also need a copy of the file "lua.pc" from the Lua sources somewhere in +your $PKG_CONFIG_PATH. The libtool I used complains about missing symbols and +refuses to build the DLL, so you may need to explicitly type "make win32" +in order to produce the ".libs/geanylua.dll" file. + +The "make install" target is badly broken for Windows, so you will probably +want to run the "win32-install.vbs" script, or copy the files manually +to their required locations, as described above. +
Added: trunk/geanylua/Makefile.am =================================================================== --- trunk/geanylua/Makefile.am (rev 0) +++ trunk/geanylua/Makefile.am 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1,183 @@ + +EXTRA_DIST = COPYRIGHT.LUA keywords.list docs examples util \ + win32-install.vbs win32-uninstall.vbs + +noinst_HEADERS = glspi.h glspi_keycmd.h glspi_sci.h glspi_ver.h gsdlg.h gsdlg.c + + +AUTOMAKE_OPTIONS = gnu + + +SNAPSHOT_NAME=date +$(PACKAGE)-%Y-%m-%d + +AM_CFLAGS = \ + -DGEANY_DISABLE_DEPRECATED \ + -Wall -g \ + @OS_FLAGS@ \ + @GEANY_CFLAGS@ \ + @LUA_CFLAGS@ + + +AM_LDFLAGS = -module -avoid-version @GEANY_LIBS@ @OS_FLAGS@ + + +plugindir = $(PLUGIN_DEST_DIR) +plugin_LTLIBRARIES = geanylua.la +geanylua_la_LDFLAGS = $(AM_LDFLAGS) + +geanylua_la_SOURCES = geanylua.c +geanylua_objects = geanylua.o + +libgeanyluadir = $(DATA_DEST_DIR) +libgeanylua_LTLIBRARIES = libgeanylua.la +libgeanylua_la_LDFLAGS = $(AM_LDFLAGS) @LUA_LIBS@ + +libgeanylua_la_SOURCES = \ +glspi_init.c \ +glspi_app.c \ +glspi_dlg.c \ +glspi_doc.c \ +glspi_kfile.c \ +glspi_run.c \ +glspi_sci.c \ +gsdlg_lua.c + +libgeanylua_objects = \ +.libs/glspi_init.o \ +.libs/glspi_app.o \ +.libs/glspi_dlg.o \ +.libs/glspi_doc.o \ +.libs/glspi_kfile.o \ +.libs/glspi_run.o \ +.libs/glspi_sci.o \ +.libs/gsdlg_lua.o + + + + + +# Libtool complains about unresolved symbols +# and refuses to build the windows plugin - +# but manual linking seems to work just fine... +.libs/$(LIBRARY).dll: $(libgeanylua_objects) + $(CC) $^ $(libgeanylua_la_LDFLAGS) --shared -o $@ + +.libs/$(PACKAGE).dll: $(geanylua_objects) + $(CC) $^ $(AM_LDFLAGS) --shared -o $@ + + +win32: all .libs/$(LIBRARY).dll .libs/$(PACKAGE).dll + + + +.libs/$(PACKAGE).so: $(PACKAGE).la + +.libs/$(LIBRARY).so: $(LIBRARY).la + + + +install-library: .libs/$(LIBRARY_FILENAME) + $(MKDIR_P) $(DATA_DEST_DIR) + $(INSTALL) $< $(DATA_DEST_DIR) + + +install-plugin: .libs/$(PLUGIN_FILENAME) + $(MKDIR_P) $(PLUGIN_DEST_DIR) + $(INSTALL) $< $(PLUGIN_DEST_DIR) + + +install-scripts: + $(MKDIR_P) $(DATA_DEST_DIR) + cp -R ./examples $(DATA_DEST_DIR) + + +install-docs: + $(MKDIR_P) $(DOC_DEST_DIR) + cp ./docs/*.html $(DOC_DEST_DIR)/. + + +keywords.list: all + cp .libs/$(LIBRARY_FILENAME) . + ./util/keywords.lua > keywords.list + rm -f $(LIBRARY_FILENAME) + + +install: install-plugin install-library install-scripts install-docs + + +uninstall: + rm -f $(DOC_DEST_DIR)/$(PACKAGE)-*.html + rmdir $(DOC_DEST_DIR) || true + rm -f $(PLUGIN_DEST_DIR)/$(PLUGIN_FILENAME) + rm -f $(DATA_DEST_DIR)/$(LIBRARY_FILENAME) + rm -rf $(DATA_DEST_DIR)/examples + rmdir $(DATA_DEST_DIR) || true + + +snapshot: + ./util/real-clean.sh + ln -sf $${PWD} ../`$(SNAPSHOT_NAME)` + rm -f ../`$(SNAPSHOT_NAME)`.tar.gz + find ../`$(SNAPSHOT_NAME)`/ -type f > ../`$(SNAPSHOT_NAME)`.list + tar --owner=0 --group=0 -zcf ../`$(SNAPSHOT_NAME)`.tar.gz -T ../`$(SNAPSHOT_NAME)`.list + rm -f ../`$(SNAPSHOT_NAME)`{.list,} + + + + +RELEASE_DIR=../$(PACKAGE)-$(VERSION)-release +WIN32_ZIP_DIR=$(PACKAGE)-$(VERSION)-win32 +WIN32_DLL_ZIP=$(RELEASE_DIR)/$(WIN32_ZIP_DIR).zip +LINUX_TAR_DIR=$(PACKAGE)-$(VERSION)-linux-x86 +LINUX_X86_SO_TAR_GZ=$(RELEASE_DIR)/$(LINUX_TAR_DIR).tar.gz + + +PKG_NOTES=docs examples AUTHORS COPYING ChangeLog INSTALL THANKS keywords.list + +win32-dll-zip: + w32-config + w32-make clean win32 + rm -f $(WIN32_DLL_ZIP) + rm -rf $(WIN32_ZIP_DIR) + mkdir $(WIN32_ZIP_DIR) + w32-strip --strip-debug .libs/$(PACKAGE).dll + w32-strip --strip-debug .libs/$(LIBRARY).dll + cp .libs/$(PACKAGE).dll .libs/$(LIBRARY).dll win32-*install.vbs $(WIN32_ZIP_DIR) + cp -ai $(PKG_NOTES) $(WIN32_ZIP_DIR) + zip -XKr -9 $(WIN32_DLL_ZIP) $(WIN32_ZIP_DIR) + rm -rf $(WIN32_ZIP_DIR) + w32-make clean + + + + +linux-x86-so-gz: + ./configure + $(MAKE) clean all + rm -f $(LINUX_X86_SO_TAR_GZ) + rm -rf $(LINUX_TAR_DIR) + mkdir $(LINUX_TAR_DIR) + strip --strip-debug .libs/$(PACKAGE).so + strip --strip-debug .libs/$(LIBRARY).so + cp .libs/$(PACKAGE).so .libs/$(LIBRARY).so util/install.sh $(LINUX_TAR_DIR) + cp -ai $(PKG_NOTES) $(LINUX_TAR_DIR) + tar --owner=0 --group=0 -zvcf $(LINUX_X86_SO_TAR_GZ) $(LINUX_TAR_DIR) + rm -rf $(LINUX_TAR_DIR) + + +release-dir: + mkdir -p $(RELEASE_DIR) + rm -f $(RELEASE_DIR)/$(distdir).tar.gz $(WIN32_DLL_ZIP) $(LINUX_X86_SO_TAR_GZ) + rmdir $(RELEASE_DIR) + mkdir $(RELEASE_DIR) + + +release: $(PKG_NOTES) release-dir win32-dll-zip linux-x86-so-gz dist + mv -v $(PACKAGE)-$(VERSION).tar.gz $(RELEASE_DIR)/ + + +pathcheck: + @echo "Install plugin: $(PLUGIN_DEST_DIR)" + @echo "Install support files: $(DATA_DEST_DIR)" + @echo "Install documentation: $(DOC_DEST_DIR)" +
Added: trunk/geanylua/Makefile.in =================================================================== --- trunk/geanylua/Makefile.in (rev 0) +++ trunk/geanylua/Makefile.in 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1,795 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +DIST_COMMON = README $(am__configure_deps) $(noinst_HEADERS) \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ + THANKS config.guess config.sub depcomp install-sh ltmain.sh \ + missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(libgeanyluadir)" \ + "$(DESTDIR)$(plugindir)" +libgeanyluaLTLIBRARIES_INSTALL = $(INSTALL) +pluginLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(libgeanylua_LTLIBRARIES) $(plugin_LTLIBRARIES) +geanylua_la_LIBADD = +am_geanylua_la_OBJECTS = geanylua.lo +geanylua_la_OBJECTS = $(am_geanylua_la_OBJECTS) +geanylua_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(geanylua_la_LDFLAGS) $(LDFLAGS) -o $@ +libgeanylua_la_LIBADD = +am_libgeanylua_la_OBJECTS = glspi_init.lo glspi_app.lo glspi_dlg.lo \ + glspi_doc.lo glspi_kfile.lo glspi_run.lo glspi_sci.lo \ + gsdlg_lua.lo +libgeanylua_la_OBJECTS = $(am_libgeanylua_la_OBJECTS) +libgeanylua_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libgeanylua_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(geanylua_la_SOURCES) $(libgeanylua_la_SOURCES) +DIST_SOURCES = $(geanylua_la_SOURCES) $(libgeanylua_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATA_DEST_DIR = @DATA_DEST_DIR@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOC_DEST_DIR = @DOC_DEST_DIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GEANY_CFLAGS = @GEANY_CFLAGS@ +GEANY_LIBS = @GEANY_LIBS@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBRARY = @LIBRARY@ +LIBRARY_FILENAME = @LIBRARY_FILENAME@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LUA_CFLAGS = @LUA_CFLAGS@ +LUA_LIBS = @LUA_LIBS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +OS_FLAGS = @OS_FLAGS@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGIN_DEST_DIR = @PLUGIN_DEST_DIR@ +PLUGIN_FILENAME = @PLUGIN_FILENAME@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +SYS_INSTALL = @SYS_INSTALL@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = COPYRIGHT.LUA keywords.list docs examples util \ + win32-install.vbs win32-uninstall.vbs + +noinst_HEADERS = glspi.h glspi_keycmd.h glspi_sci.h glspi_ver.h gsdlg.h gsdlg.c +AUTOMAKE_OPTIONS = gnu +SNAPSHOT_NAME = date +$(PACKAGE)-%Y-%m-%d +AM_CFLAGS = \ + -DGEANY_DISABLE_DEPRECATED \ + -Wall -g \ + @OS_FLAGS@ \ + @GEANY_CFLAGS@ \ + @LUA_CFLAGS@ + +AM_LDFLAGS = -module -avoid-version @GEANY_LIBS@ @OS_FLAGS@ +plugindir = $(PLUGIN_DEST_DIR) +plugin_LTLIBRARIES = geanylua.la +geanylua_la_LDFLAGS = $(AM_LDFLAGS) +geanylua_la_SOURCES = geanylua.c +geanylua_objects = geanylua.o +libgeanyluadir = $(DATA_DEST_DIR) +libgeanylua_LTLIBRARIES = libgeanylua.la +libgeanylua_la_LDFLAGS = $(AM_LDFLAGS) @LUA_LIBS@ +libgeanylua_la_SOURCES = \ +glspi_init.c \ +glspi_app.c \ +glspi_dlg.c \ +glspi_doc.c \ +glspi_kfile.c \ +glspi_run.c \ +glspi_sci.c \ +gsdlg_lua.c + +libgeanylua_objects = \ +.libs/glspi_init.o \ +.libs/glspi_app.o \ +.libs/glspi_dlg.o \ +.libs/glspi_doc.o \ +.libs/glspi_kfile.o \ +.libs/glspi_run.o \ +.libs/glspi_sci.o \ +.libs/gsdlg_lua.o + +RELEASE_DIR = ../$(PACKAGE)-$(VERSION)-release +WIN32_ZIP_DIR = $(PACKAGE)-$(VERSION)-win32 +WIN32_DLL_ZIP = $(RELEASE_DIR)/$(WIN32_ZIP_DIR).zip +LINUX_TAR_DIR = $(PACKAGE)-$(VERSION)-linux-x86 +LINUX_X86_SO_TAR_GZ = $(RELEASE_DIR)/$(LINUX_TAR_DIR).tar.gz +PKG_NOTES = docs examples AUTHORS COPYING ChangeLog INSTALL THANKS keywords.list +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ + cd $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +install-libgeanyluaLTLIBRARIES: $(libgeanylua_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libgeanyluadir)" || $(MKDIR_P) "$(DESTDIR)$(libgeanyluadir)" + @list='$(libgeanylua_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=install $(libgeanyluaLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libgeanyluadir)/$$f'"; \ + $(LIBTOOL) --mode=install $(libgeanyluaLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libgeanyluadir)/$$f"; \ + else :; fi; \ + done + +uninstall-libgeanyluaLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(libgeanylua_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libgeanyluadir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libgeanyluadir)/$$p"; \ + done + +clean-libgeanyluaLTLIBRARIES: + -test -z "$(libgeanylua_LTLIBRARIES)" || rm -f $(libgeanylua_LTLIBRARIES) + @list='$(libgeanylua_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f "$${dir}/so_locations""; \ + rm -f "$${dir}/so_locations"; \ + done +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=install $(pluginLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) --mode=install $(pluginLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(plugindir)/$$f"; \ + else :; fi; \ + done + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$p"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f "$${dir}/so_locations""; \ + rm -f "$${dir}/so_locations"; \ + done +geanylua.la: $(geanylua_la_OBJECTS) $(geanylua_la_DEPENDENCIES) + $(geanylua_la_LINK) -rpath $(plugindir) $(geanylua_la_OBJECTS) $(geanylua_la_LIBADD) $(LIBS) +libgeanylua.la: $(libgeanylua_la_OBJECTS) $(libgeanylua_la_DEPENDENCIES) + $(libgeanylua_la_LINK) -rpath $(libgeanyluadir) $(libgeanylua_la_OBJECTS) $(libgeanylua_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/geanylua.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glspi_app.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glspi_dlg.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glspi_doc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glspi_init.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glspi_kfile.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glspi_run.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glspi_sci.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsdlg_lua.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\*]/\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\*]/\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '///!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} ; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} ; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} ; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} ; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\/]:[\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(libgeanyluadir)" "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install-exec: install-exec-am +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libgeanyluaLTLIBRARIES clean-libtool \ + clean-pluginLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-libgeanyluaLTLIBRARIES \ + install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libgeanyluaLTLIBRARIES \ + uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ + clean-generic clean-libgeanyluaLTLIBRARIES clean-libtool \ + clean-pluginLTLIBRARIES ctags dist dist-all dist-bzip2 \ + dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-libgeanyluaLTLIBRARIES \ + install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-libgeanyluaLTLIBRARIES uninstall-pluginLTLIBRARIES + + +# Libtool complains about unresolved symbols +# and refuses to build the windows plugin - +# but manual linking seems to work just fine... +.libs/$(LIBRARY).dll: $(libgeanylua_objects) + $(CC) $^ $(libgeanylua_la_LDFLAGS) --shared -o $@ + +.libs/$(PACKAGE).dll: $(geanylua_objects) + $(CC) $^ $(AM_LDFLAGS) --shared -o $@ + +win32: all .libs/$(LIBRARY).dll .libs/$(PACKAGE).dll + +.libs/$(PACKAGE).so: $(PACKAGE).la + +.libs/$(LIBRARY).so: $(LIBRARY).la + +install-library: .libs/$(LIBRARY_FILENAME) + $(MKDIR_P) $(DATA_DEST_DIR) + $(INSTALL) $< $(DATA_DEST_DIR) + +install-plugin: .libs/$(PLUGIN_FILENAME) + $(MKDIR_P) $(PLUGIN_DEST_DIR) + $(INSTALL) $< $(PLUGIN_DEST_DIR) + +install-scripts: + $(MKDIR_P) $(DATA_DEST_DIR) + cp -R ./examples $(DATA_DEST_DIR) + +install-docs: + $(MKDIR_P) $(DOC_DEST_DIR) + cp ./docs/*.html $(DOC_DEST_DIR)/. + +keywords.list: all + cp .libs/$(LIBRARY_FILENAME) . + ./util/keywords.lua > keywords.list + rm -f $(LIBRARY_FILENAME) + +install: install-plugin install-library install-scripts install-docs + +uninstall: + rm -f $(DOC_DEST_DIR)/$(PACKAGE)-*.html + rmdir $(DOC_DEST_DIR) || true + rm -f $(PLUGIN_DEST_DIR)/$(PLUGIN_FILENAME) + rm -f $(DATA_DEST_DIR)/$(LIBRARY_FILENAME) + rm -rf $(DATA_DEST_DIR)/examples + rmdir $(DATA_DEST_DIR) || true + +snapshot: + ./util/real-clean.sh + ln -sf $${PWD} ../`$(SNAPSHOT_NAME)` + rm -f ../`$(SNAPSHOT_NAME)`.tar.gz + find ../`$(SNAPSHOT_NAME)`/ -type f > ../`$(SNAPSHOT_NAME)`.list + tar --owner=0 --group=0 -zcf ../`$(SNAPSHOT_NAME)`.tar.gz -T ../`$(SNAPSHOT_NAME)`.list + rm -f ../`$(SNAPSHOT_NAME)`{.list,} + +win32-dll-zip: + w32-config + w32-make clean win32 + rm -f $(WIN32_DLL_ZIP) + rm -rf $(WIN32_ZIP_DIR) + mkdir $(WIN32_ZIP_DIR) + w32-strip --strip-debug .libs/$(PACKAGE).dll + w32-strip --strip-debug .libs/$(LIBRARY).dll + cp .libs/$(PACKAGE).dll .libs/$(LIBRARY).dll win32-*install.vbs $(WIN32_ZIP_DIR) + cp -ai $(PKG_NOTES) $(WIN32_ZIP_DIR) + zip -XKr -9 $(WIN32_DLL_ZIP) $(WIN32_ZIP_DIR) + rm -rf $(WIN32_ZIP_DIR) + w32-make clean + +linux-x86-so-gz: + ./configure + $(MAKE) clean all + rm -f $(LINUX_X86_SO_TAR_GZ) + rm -rf $(LINUX_TAR_DIR) + mkdir $(LINUX_TAR_DIR) + strip --strip-debug .libs/$(PACKAGE).so + strip --strip-debug .libs/$(LIBRARY).so + cp .libs/$(PACKAGE).so .libs/$(LIBRARY).so util/install.sh $(LINUX_TAR_DIR) + cp -ai $(PKG_NOTES) $(LINUX_TAR_DIR) + tar --owner=0 --group=0 -zvcf $(LINUX_X86_SO_TAR_GZ) $(LINUX_TAR_DIR) + rm -rf $(LINUX_TAR_DIR) + +release-dir: + mkdir -p $(RELEASE_DIR) + rm -f $(RELEASE_DIR)/$(distdir).tar.gz $(WIN32_DLL_ZIP) $(LINUX_X86_SO_TAR_GZ) + rmdir $(RELEASE_DIR) + mkdir $(RELEASE_DIR) + +release: $(PKG_NOTES) release-dir win32-dll-zip linux-x86-so-gz dist + mv -v $(PACKAGE)-$(VERSION).tar.gz $(RELEASE_DIR)/ + +pathcheck: + @echo "Install plugin: $(PLUGIN_DEST_DIR)" + @echo "Install support files: $(DATA_DEST_DIR)" + @echo "Install documentation: $(DOC_DEST_DIR)" +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT:
Added: trunk/geanylua/NEWS =================================================================== --- trunk/geanylua/NEWS (rev 0) +++ trunk/geanylua/NEWS 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1 @@ +See "ChangeLog"
Added: trunk/geanylua/README =================================================================== --- trunk/geanylua/README (rev 0) +++ trunk/geanylua/README 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1 @@ +Please see ./docs/geanylua-index.html for information on using this plugin.
Added: trunk/geanylua/THANKS =================================================================== --- trunk/geanylua/THANKS (rev 0) +++ trunk/geanylua/THANKS 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1,47 @@ +What's this file about? +----------------------- +This file lists all external people that have contributed to this project. +If we missed anyone, please notify the developer ( see the AUTHORS file. ) + + +Thanks to Enrico Colombini and Thomas Lauer for the "Lua Short Reference" +which is now included in the GeanyLua documentation. (Released under the +same license as Lua itself.) + + + +Testers and contributors: +------------------------- +These people have contributed to GeanyLua by testing the software, +reporting problems, sending patches and making useful suggestions. + + +Enrico Troeger <enrico(dot)troeger(at)uvena(dot)de> - + Geany IDE author. Testing and feedback. + + +Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com> + Testing and feedback, GTK-2.8 compatibility. + + +Yura Siamashka yurand2(at)gmail(dot)com + Initial autotools scripts ( adapted from the geanyvc plugin. ) + and improvements to INSTALL instructions. + + +Steve Jacobs steve(at)trinidadgraphics(dot)com + Testing and feedback. + + +John Gabriele jmg3000(at)gmail(dot)com + Testing and feedback. + + +Harri Koskinen geany_fi(at)fastmonkey(dot)org + Testing and feedback. + + +Joerg Desch jd(dot)vvd(at)web(dot)de + Testing and feedback. + +
Added: trunk/geanylua/configure.in =================================================================== --- trunk/geanylua/configure.in (rev 0) +++ trunk/geanylua/configure.in 2008-06-30 12:34:55 UTC (rev 94) @@ -0,0 +1,144 @@ + +AC_INIT([geanylua],0.7.0, [yetanothergeek@gmail.com]) + +PACKAGE="geanylua" +VERSION=0.7.0 +GEANY_MIN_VER=0.13 + +AC_SUBST([VERSION]) +AC_SUBST([PACKAGE]) + +AM_INIT_AUTOMAKE([${PACKAGE}], ${VERSION} ) + + +AC_PROG_CC +AC_LANG_C +AC_PROG_MAKE_SET +AC_HEADER_STDC + +AC_DISABLE_STATIC +AM_PROG_LIBTOOL + + +PKG_CHECK_MODULES(GEANY, [geany]) +AC_SUBST(GEANY_CFLAGS) +AC_SUBST(GEANY_LIBS) + + +AC_ARG_WITH([lua-pkg], + AC_HELP_STRING([--with-lua-pkg=ARG],[name of Lua pkg-config script [[default=lua5.1]]]), + [LUA_PKG_NAME=${withval%.pc}], +[ +LUA_PKG_NAME=lua5.1 + +for L in lua5.1 lua51 lua-5.1 lua +do + AC_MSG_CHECKING([for $L.pc]) + if ${PKG_CONFIG} --exists ${L} + then + AC_MSG_RESULT([yes]) + LUA_PKG_NAME=${L} + break + else + AC_MSG_RESULT([no]) + fi +done +] +) + + +PKG_CHECK_MODULES([LUA], [${LUA_PKG_NAME} >= 5.1.2]) +AC_SUBST(LUA_CFLAGS) +AC_SUBST(LUA_LIBS) + + +AC_ARG_ENABLE([hidden-symbols], + AC_HELP_STRING([--enable-hidden-symbols],[Hide internal symbols in library [[default=no]]]), + [ + if ${CC} --help --verbose 2> /dev/null | grep "-fvisibility>" > /dev/null + then + AC_DEFINE([PLUGIN_EXPORT], [__attribute__ ((visibility ("default")))], [to make a symbol visible]) + OS_FLAGS="${OS_FLAGS} -fvisibility=hidden" + HIDE_SYMS="yes" + else + AC_MSG_ERROR([--enable-hidden-symbols option is not supported by compiler!]) + HIDE_SYMS="no" + fi + ], + [ + OS_FLAGS= + ] +) + + +AC_ARG_ENABLE([sys-install], +AC_HELP_STRING([--enable-sys-install],[install plugin for all users [[default=no]]]), + [ + if test "x${prefix}" = "xNONE"; then + prefix=${ac_default_prefix} + fi + SYS_INSTALL=yes + PLUGIN_DEST_DIR="${prefix}/lib/geany" + DATA_DEST_DIR="${prefix}/share/geany/plugins/${PACKAGE}" + DOC_DEST_DIR="${prefix}/share/doc/geany/plugins/${PACKAGE}" + ], + [ + SYS_INSTALL=no + PLUGIN_DEST_DIR="${HOME}/.geany/plugins" + DATA_DEST_DIR="${HOME}/.geany/plugins/${PACKAGE}" + DOC_DEST_DIR="${HOME}/.geany/plugins/${PACKAGE}/support" + ] +) + +AC_SUBST(SYS_INSTALL) +AC_SUBST(PLUGIN_DEST_DIR) +AC_SUBST(DATA_DEST_DIR) +AC_SUBST(DOC_DEST_DIR) + +case "${host_os}" in + cygwin* | mingw*) + if test "x${SYS_INSTALL}" = "xyes" + then + AC_MSG_ERROR([--enable-sys-install option is not supported on windows!]) + fi + if test "x${HIDE_SYMS}" = "xyes" + then + AC_MSG_ERROR([--enable-hidden-symbols option is not supported on windows!]) + fi + LIBEXT="dll" + OS_FLAGS="${OS_FLAGS} -mms-bitfields" + USER_CMD="'make win32'" + AC_DEFINE([PLUGIN_EXPORT], [__declspec(dllexport)], [to make a symbol visible]) + ;; + *) + LIBEXT="so" + USER_CMD="'make'" + ;; +esac + +LIBRARY="libgeanylua" + +PLUGIN_FILENAME="${PACKAGE}.${LIBEXT}" +LIBRARY_FILENAME="${LIBRARY}.${LIBEXT}" + +AC_SUBST(OS_FLAGS) +AC_SUBST(PLUGIN_FILENAME) +AC_SUBST(LIBRARY) +AC_SUBST(LIBRARY_FILENAME) + + +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT + +echo +echo "========================================" +make pathcheck + +echo +echo "Plugin filename: ${PLUGIN_FILENAME}" +echo "System-wide install: ${SYS_INSTALL}" +echo +echo "Configuration complete, now type ${USER_CMD}" +echo + +
Added: trunk/geanylua/docs/geanylua-index.html =================================================================== --- trunk/geanylua/docs/geanylua-index.html (rev 0) +++ trunk/geanylua/docs/geanylua-index.html 2008-06-30 12:34:55 UTC (rev 94) @@ -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: trunk/geanylua/docs/geanylua-input.html =================================================================== --- trunk/geanylua/docs/geanylua-input.html (rev 0) +++ trunk/geanylua/docs/geanylua-input.html 2008-06-30 12:34:55 UTC (rev 94) @@ -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: trunk/geanylua/docs/geanylua-intro.html =================================================================== --- trunk/geanylua/docs/geanylua-intro.html (rev 0) +++ trunk/geanylua/docs/geanylua-intro.html 2008-06-30 12:34:55 UTC (rev 94) @@ -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://geany.uvena.de/">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: trunk/geanylua/docs/geanylua-keyfile.html =================================================================== --- trunk/geanylua/docs/geanylua-keyfile.html (rev 0) +++ trunk/geanylua/docs/geanylua-keyfile.html 2008-06-30 12:34:55 UTC (rev 94) @@ -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: trunk/geanylua/docs/geanylua-keys.html =================================================================== --- trunk/geanylua/docs/geanylua-keys.html (rev 0) +++ trunk/geanylua/docs/geanylua-keys.html 2008-06-30 12:34:55 UTC (rev 94) @@ -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: trunk/geanylua/docs/geanylua-ref.html =================================================================== --- trunk/geanylua/docs/geanylua-ref.html (rev 0) +++ trunk/geanylua/docs/geanylua-ref.html 2008-06-30 12:34:55 UTC (rev 94) @@ -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>
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.