44 lines
2.0 KiB
Markdown
44 lines
2.0 KiB
Markdown
# Bash-it Development
|
|
|
|
This page summarizes a couple of rules to keep in mind when developing features or making changes in Bash-it.
|
|
|
|
## Load Order
|
|
|
|
### General Load Order
|
|
|
|
The main `bash_it.sh` script loads the frameworks individual components in the following order:
|
|
|
|
* `lib/composure.bash`
|
|
* Files in `lib` with the exception of `appearance.bash` - this means that `composure.bash` is loaded again here (possible improvement?)
|
|
* Enabled `aliases`
|
|
* Enabled `plugins`
|
|
* Enabled `completions`
|
|
* `themes/colors.theme.bash`
|
|
* `themes/base.theme.bash`
|
|
* `lib/appearance.bash`, which loads the selected theme
|
|
* Custom `aliases`
|
|
* Custom `plugins`
|
|
* Custom `completions`
|
|
* Additional custom files from either `$BASH_IT/custom` or `$BASH_IT_CUSTOM`
|
|
|
|
This order is subject to change.
|
|
|
|
### Individual Component Load Order
|
|
|
|
For `aliases`, `plugins` and `completions`, the following rules are applied that influence the load order:
|
|
|
|
* Each type has its own `enabled` directory, into which the enabled components are linked into. Enabled plugins are symlinked from `$BASH_IT/plugins/available` to `$BASH_IT/plugins/enabled` for example.
|
|
* Within each of the `enabled` directories, the files are loaded in alphabetical order.
|
|
* When enabling a component, a _load priority_ is assigned to the file. The following default priorities are used:
|
|
* Aliases: 150
|
|
* Plugins: 250
|
|
* Completions: 350
|
|
* When symlinking a component into an `enabled` directory, the load priority is used as a prefix for the linked name, separated with three dashes from the name of the component. The `node.plugin.bash` would be symlinked to `250---node.plugin.bash` for example.
|
|
* Each file can override the default load priority by specifying a new value. To do this, the file needs to include a comment in the following form. This example would cause the `node.plugin.bash` (if included in that file) to be linked to `225---node.plugin.bash`:
|
|
|
|
```bash
|
|
# BASH_IT_LOAD_PRIORITY: 225
|
|
```
|
|
|
|
These items are subject to change. When making changes to the internal functionality, this page needs to be updated as well.
|