+ - `MakeCommand(name string, action func(bp *BufPane, args[]string),
+ completer buffer.Completer)`:
+ create a command with the given name, and lua callback function when
+ the command is run. A completer may also be given to specify how
+ autocompletion should work with the custom command.
+
+ - `FileComplete`: autocomplete using files in the current directory
+ - `HelpComplete`: autocomplete using names of help documents
+ - `OptionComplete`: autocomplete using names of options
+ - `OptionValueComplete`: autocomplete using names of options, and valid
+ values afterwards
+ - `NoComplete`: no autocompletion suggestions
+
+ - `TryBindKey(k, v string, overwrite bool) (bool, error)`: bind the key
+ `k` to the string `v` in the `bindings.json` file. If `overwrite` is
+ true, this will overwrite any existing binding to key `k`. Returns true
+ if the binding was made, and a possible error (for example writing to
+ `bindings.json` can cause an error).
+
+ - `Reload()`: reload configuration files.
+
+ - `AddRuntimeFileFromMemory(filetype RTFiletype, filename, data string)`:
+ add a runtime file to the `filetype` runtime filetype, with name
+ `filename` and data `data`.
+
+ - `AddRuntimeFilesFromDirectory(plugin string, filetype RTFiletype,
+ directory, pattern string)`:
+ add runtime files for the given plugin with the given RTFiletype from
+ a directory within the plugin root. Only adds files that match the
+ pattern using Go's `filepath.Match`
+
+ - `AddRuntimeFile(plugin string, filetype RTFiletype, filepath string)`:
+ add a given file inside the plugin root directory as a runtime file
+ to the given RTFiletype category.
+
+ - `ListRuntimeFiles(fileType RTFiletype) []string`: returns a list of
+ names of runtime files of the given type.
+
+ - `ReadRuntimeFile(fileType RTFiletype, name string) string`: returns the
+ contents of a given runtime file.
+
+ - `NewRTFiletype() int`: creates a new RTFiletype, and returns its value.
+
+ - `RTColorscheme`: runtime files for colorschemes.
+ - `RTSyntax`: runtime files for syntax files.
+ - `RTHelp`: runtime files for help documents.
+ - `RTPlugin`: runtime files for plugin source code.
+
+ - `RegisterCommonOption(pl string, name string, defaultvalue interface{})`:
+ registers a new option with for the given plugin. The name of the
+ option will be `pl.name`, and will have the given default value. Since
+ this registers a common option, the option will be modifiable on a
+ per-buffer basis, while also having a global value (in the
+ GlobalSettings map).
+
+ - `RegisterGlobalOption(pl string, name string, defaultvalue interface{})`:
+ same as `RegisterCommonOption` but the option cannot be modified
+ locally to each buffer.
+
+ - `GetGlobalOption(name string) interface{}`: returns the value of a
+ given plugin in the `GlobalSettings` map.
+
+ - `SetGlobalOption(option, value string) error`: sets an option to a
+ given value. Same as using the `> set` command. This will parse the
+ value to the actual value type.
+
+ - `SetGlobalOptionNative(option string, value interface{}) error`: sets
+ an option to a given value, where the type of value is the actual
+ type of the value internally.