version 2.5.0.9 (September 10th 2013)
-------------------------------------
- added: Javascript based plugin engine with ready to use plugins >. More info below. Plugins are locked and will work only with a valid writemonkey donor key.
- added: You can optionally show non printable whitespace characters — paragraph breaks, tabs and redundant spaces. Useful if you want to keep your text file as clean and well formated as possible. Use CTRL+8 to toggle on / off.
- added: Ability to set default wm file extension other than ".txt". Preferences / Open&Save / File format.
- added: Click monkey wisdom (splash screen) to copy it to the clipboard.
- fixed: Nasty crash on combination: blinds on & info bar hidden at startup.
- removed: "Inverse colors in repository" option is no longer available in this version.
- fixed: False positive "The file was saved outside wm" message when saving files to remote machine with out of the sync system clock.
- fixed / changed: Automatic word selection (when selecting with mouse) is now disabled. This allows more precise "character per character" selecting.
- fixed: Various fixes and small improvements.
- changed: Updated sound library IrrKlang to version v1.4.0. for .NET 4.0
- removed: Tweet from wm feature (donors only) was removed due to Twitter API changes and will be ported back as a wm plugin.
## Plugins engine
This will allow 3rd party extensions/plugins to add to and interact with existing core wm functionality. Since no technical documentation exists at the moment, I will just summarize some basics.
Plugins are stored in wm/plugins folder. Each sub folder represents a plugin and it needs to contain at least one *plugin_name.js* file. Wm supports javascript as it's scripting language. It utilizes Jint javascript interpreter for .NET (*http://jint.codeplex.com*) which currently implements all concepts defined in ECMAScript version 3.0. Version 5.0 is not supported at the moment.
Javascript is commonly used for handling web browser's DOM objects but in our case it can interact with:
* .NET 4.0 core functionality – Your scripts can instantiate and use all generic classes and methods. The usage is the same as in C# (.NET flagship language) with some minor differences.
* External .net libraries (dll-s) supplied with a plugin.
* Special "monkey" object that allows you to interact with different aspects of current writemonkey instance. For example:
monkey.selectedText = "this will be inserted at current caret position";
Note that you don't need to use .NET stuff at all. You can just put together simple javascript "macros".
### Modes of deployment
Individual plugin can be initialized when wm starts or it can be deployed later using plugin menu. That depends on plugin's nature. Some plugins need to run all the time, other just do stuff when needed in a single step.
All plugin .js files with names starting with "exe_" will execute at startup. For example: exe_someplugin.js will run and someplugin.js won't.
You can deploy "one step" plugins using plugins menu - CTRL+F10. Run last used plugin with CTRL+ALT+F10. Plugin menu does show "exe" plugins (maked with green icon) but you can't re-run them. Use plugin shortcuts to deploy actions.
If implemented, running plugin can listen for keyboard (and other) events and reacts on them. Since core wm already occupies a big chunk of shortcut space, wm 2.5.0.3 adds a new feature that will allow plugins to assign shortcuts without interfering with existing combinations. To use this extended shortcut space hit CTRL+E, release, and hit another key. Plugin Quick search, for example, uses CTRL+E,S to open quick search field at the top left corner of the screen. Users can modify this shortcut by editing the plugin file.
Plugins can be disabled in Preverences / Misc.