public void addHighlightedIdentifier(String word, int tokenType);
public boolean removeHighlightedIdentifier(String word);
public void clearAddedHighlightedIdentifiers();
The "tokenType" parameter would allow you to specify whether to colorize it as a keyword, function, etc.
Then you could write the code that scans your beanshell folder, and uses the methods above to set the additional words to highlight. You could simply run that code when your app starts up, and also assign it to an Action for a menu item to force reloading. Or perhaps use a Timer to periodically check the modified time of the directory, and auto-reload if the directory's contents have been modified since the last load.
The more involved (but still easy) solution is to make ALL keywords be in this "identifier" list, even the predefined ones. Then you could remove standard Java keywords (for example) you don't need/want. This is much more robust, but I just can't convince myself to go this route do to the (albeit likely small) performance hit that would be incurred.
I can see where the former solution would be very handy for situations like yours, basically dynamically adding functions. It would also be handy if you used ctags to parse source, and wanted the methods/classes/etc. identified to be highlighted.
Bug me enough and I'll see what I can do.