README KVIrc Script Integration

OmegaPhil edited this page May 18, 2013 · 7 revisions
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/' (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 ;)