Added module system to changelog, commands, and hooks doc files

This commit is contained in:
Justin Frank 2019-03-15 11:52:33 -07:00
parent 49b00992ca
commit 87bcf23f3e
3 changed files with 20 additions and 1 deletions

View File

@ -15,6 +15,13 @@ released versions.
* `edit -scratch` with no buffer name will create a new * `edit -scratch` with no buffer name will create a new
scratch buffer with a unique autogenerated name. scratch buffer with a unique autogenerated name.
* Introduced a module system using the `provides-module` and
`requires-module` commands that allows for lazily loading language
support files with dependency resolution.
* Added a new hook `ModuleLoad` which is run when a module is loaded, as
now options needed by modules aren't defined until the module is loaded.
== Kakoune 2019.01.20 == Kakoune 2019.01.20
* `auto_complete` has been renamed to `autocomplete` for more * `auto_complete` has been renamed to `autocomplete` for more

View File

@ -312,6 +312,15 @@ but not really useful in that context.
*debug* {info,buffers,options,memory,shared-strings,profile-hash-maps,faces,mappings}:: *debug* {info,buffers,options,memory,shared-strings,profile-hash-maps,faces,mappings}::
print some debug information in the *\*debug** buffer print some debug information in the *\*debug** buffer
== Module commands
*provide-module* [<switches>] <name> <commands>::
declares a new module that is provided by the given commands. The commands
passed into the module are guaranteed to be run only once.
*require-module* <name>::
guarantees the <name> module is loaded before continuing command execution
== Multiple commands == Multiple commands
Commands (c.f. previous sections) can be chained, by being separated either Commands (c.f. previous sections) can be chained, by being separated either

View File

@ -180,6 +180,9 @@ name. Hooks with no description will always use an empty string.
*RawKey* `key`:: *RawKey* `key`::
Triggered whenever a key is pressed by the user Triggered whenever a key is pressed by the user
*ModuleLoad* `module`::
Triggered when a module is loaded
Note that some hooks will not consider underlying scopes depending on what Note that some hooks will not consider underlying scopes depending on what
context they are bound to be run into, e.g. the `BufWritePost` hook is a buffer context they are bound to be run into, e.g. the `BufWritePost` hook is a buffer
hook, and will not consider the `window` scope. hook, and will not consider the `window` scope.