August 16, 2010 (ntrel) Fix building against recent Geany trunk (patch from Enrico Tröger, thanks). September 29, 2009 (ntrel) Update to API 159. September 24, 2009 (ntrel) Use new plugin_configure_single() instead of using plugin_configure() wrongly. Fix wrong ABI mismatch error message format. September 16, 2009 (ntrel) Fix possible memory leak; use keybindings_set_item() so we don't leave Geany to free our memory (bad practice). September 1, 2009 (ntrel) Try loading system support library if user library fails. Check support library ABI version matches. August 31, 2009 (ntrel) Print support library path if Geany is in debug mode. August 28, 2009 (ntrel) Upgrade to API 153 except for plugin_key_group change (TODO). This removes the "make" tool field, "exec" project field, "BUILD_RUN2" keybinding, filetype build commands - the latter might be readded if/when the API makes it possible. Remove obsolete usage of plugin_key_group symbol. July 15, 2009 (ntrel) Update to API 146 (but require 147). July 13, 2009 (ntrel) Fix using datadir for scripts. June 24, 2009 (eht16) Build libdir and datadir paths on Windows using the installation directory as prefix. This still can be improved. June 23, 2009 (ntrel) Look for support library in LIBDIR/geany-plugins/geanylua. Read scripts from DATADIR/geany-plugins/geanylua. Init plugin_key_group fields to zero in case support library is not found. Make Help script look in: $prefix/share/doc/geany-plugins/geanylua/ - but $prefix is currently Geany's install prefix, which works in most cases. Really this should be fixed by exposing GeanyLua's $DOCDIR to Lua scripts. June 19, 2009 (ntrel) Move to geany-plugins project, add i18n support. Rename from GeanyLua to 'Lua Script'. Temporarily fix plugin_configure(). December 5, 2008 (ntrel) Update to Geany API v115. September 17, 2008 (eht16) Fix to work with Geany API v93. September 11, 2008 (ntrel) Fix wrong argument for "project-close" signal. Fix document signal callbacks to use document pointers. August 8, 2008 (ntrel) Fix to work with Geany API v86. August 7, 2008 (ntrel) Use $(mkdir_p) instead of $(MKDIR_P) in Makefile, so it works with automake <= 1.96. July 17, 2008 (ntrel) Fix use of old app macro. Fix segfault in last commit in glspi_init() (oops). Don't install .svn subdirectories in examples. July 15, 2008 (ntrel) Fix for GeanyEditor changes. July 11, 2008 (ntrel) Use plugin_init(), plugin_cleanup(). Add macro for main_widgets, fix project access. Require Lua >= 5.1, not 5.1.2. July 10, 2008 (ntrel) Convert doc_array usage to documents_array. July 2, 2008 (ntrel) Update to use document pointers. Update MY_GEANY_API_VER now we use p_document->close(). Update for new PLUGIN_ macro names. Add comment about reloading in glspi_open(). Rename GeanyCallbacks, geany_callbacks symbol. Rename document -> GeanyDocument. July 1, 2008 (ntrel) Begin updating for Geany 0.15 API changes. Use main_widgets instead of old app. Include some Geany headers due to moved definitions. Add glspi_geany_functions. Use new _prefs structs. Update DOCS macro usage for documents_array. 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)