Hi, Steven.
That's awesome! I hadn't tried the lua plugin features until I tried your script (geany is still new to me).
Yeah, I only recently took a proper look at the Lua plugin myself. There don't seem to be many scripts published for people to use; wiki.geany.org is the only place I've found any (and now most of the ones there are mine).
Can you create complex UIs with them? If so, I suggest taking a look at gedit's snap-open plugin for interface ideas. It filters a list of files as you type. The list includes two column in a table: the filename, and the file path (for context).
I don't think that Lua scripting can respond to individual keystrokes that way. On the other hand, I'm not sure that I would want to, because search-as-you-type is a big performance hit. Careful use of wildcards would probably work better.
However, I will have a look at improving the dialog; it's too small, especially for displaying full paths.
I've tweaked the gedit plugin a bit for my personal use so that it always searches from my ~/work/ directory, so for geany I like that you have it search from the project directory already :-)
Yes. I might at some point add the ability to customise the base directory, but that will probably not be necessary once it supports 'path/filename' syntax.
This feature being missing from geany is one of the major reasons I still use gedit for work (that and external tools, which I hope to write my own plugin for geany unless I can get by with the build tools already in geany).
My experience thus far is that Lua scripts are excellent for integration with external tools. You can integrate them with the keybindings system, too.
I hope with a little tweak/improvement here and there, I'll feel comfortable completely abandoning gedit sooner than later.
Yeah, I use Gedit sometimes, but it seems to me that Geany comes as standard with almost everything that Gedit plugins provide.
Will try to update the script soon to filter binary file types unless you explicitly search for them.
OK, I've uploaded a new Lua script version.
- Binary file extensions are excluded unless your search string specifically includes them. At this point, the list includes .class, .pyc, .svn-base (will later replace with a directory filter), and .o; feel free to suggest more.
- If no project is open, the script will ask you for a base directory to search.
- If no files in the project/base match, then the script will scan all open files, in case you had opened one from outside.
All feedback is welcome.
Thrawn