README KVIrc Script Integration
Clone this wiki locally
Based off geany v1.23. Built-in syntax highlighting (colours), code folding and parsing (creation of the symbols/jump list on the left) for KVIrc Script files ('.kvs').
Quick example of the Topic Change Script loaded in geany (I enable 'invert syntax highlighting colours' as standard):
Now I have an IDE for KVIrc Script in a similar way mEditor was a Windows IDE for mIRC Script.
Installation And Configuration
My changes are in the kvircscript-lexer branch, so before you do anything after the clone:
git checkout kvircscript-lexer
Due to the missing 'tagmanager/ctags/Makefile.in' (why wasn't this provided?), you need to run automake and autoconf before the normal configure step (credit to Pragma of KVIrc).
Then follow geany's normal install instructions - note that you may want to install it under a different prefix so as not to overwrite a geany installation already present in the default '/usr/local' prefix.
The implementation comes with 'filetypes.kvirc' in the data directory (when installed in my '/tmp/geany_build' prefix this is located in '/tmp/geany_build/share/geany') - this includes a 'Load Script' Build menu command that I have configured to call a loader bash script to make KVIrc parse the script you are working on (binds to F8 by default):
FT_00_CM="/mnt/Storage_1/Desktop Files/Linux Programming/Bash Scripts/kvirc_script_loader.bash" "%f"
This needs to be changed to point to your own loader. I have included the simple script (depends on Zenity) that I use in the root directory of the repository, 'kvirc_script_loader.bash' - remember to change the location of KVIrc in the script - this is set to '/usr/local/bin/kvirc' here.
When the script is loaded, the message "KVIrc script parsing of '< script path >' complete" should display in the current active server window. This means that KVIrc will have updated/added all the aliases/events etc involved in the script.
Bugs, Suggestions, Improvements
Please create an issue.
Far too much time has been spent to do something conceptually simple as this, and I now need to make it work for me! However, I would like to push the changes upstream once they're demonstrated to work.
This probably means implementing the lexer in Scite, then trying to push to Scintilla/Scite, which will then filter down to geany, and then pushing my geany changes. Hopefully there'll be enough care for the changes to have this happen ;)