Skip to content

Latest commit

 

History

History
43 lines (32 loc) · 2.04 KB

DEVELOPMENT.md

File metadata and controls

43 lines (32 loc) · 2.04 KB

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_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.