!!! info
We use [`docker`](https://docs.docker.com/install/) to isolate from our working environment.
Specify the FISH_VERSION
you want, and the CMD
executed by the container:
make build-pure-on FISH_VERSION=3.3.1
make dev-pure-on FISH_VERSION=3.3.1 CMD="fishtape tests/*.test.fish"
Use the idiomatic test
instead of [
brackets (as recommended by the documentation).
Use long form options, e.g. set --local
, as they are more explicit over cryptic 1-letter form.
Namespace your item with the prefix
pure_
.
- Variable:
pure_my_variable
- Function:
pure_my_public_function
- Filename:
pure_my_public_file.fish
- Test file:
pure_my_public_file.test.fish
Namespace your item with the prefix
_pure_
(begin with a single underscore).
- Variable:
_pure_my_variable
- Function:
_pure_my_private_function
- Filename:
_pure_my_private_file.fish
- Test file:
_pure_my_private_file.test.fish
No need to use namespace when your variable variable is declare locally (
set --local
) or your file/test file is related to tooling (installer.fish, testing package managers install).
- Filename:
my_tool.fish
- Test file:
my_tool.test.fish
- Public settings' default values are placed in conf.d/pure.fish
- Private settings and anything else
pure
needs to do on init are placed in _conf.d/_pure_init.fish.
Base colors should follow
$pure_color_<meaning>
pattern (cf. bootstrap naming).
$pure_color_info # cyan
$pure_color_success # green
$pure_color_warning # yellow
$pure_color_danger # red
$pure_color_light
$pure_color_dark
$pure_color_muted # gray
Each feature should have a dedicated variables to allow customization. Feature's variables (flag, symbol, color) should use
$pure_<type>_<feature>
naming pattern:
Role Name pattern flag $pure_<verb>_<feature>
color $pure_color_<feature>
symbol $pure_symbol_<feature>
$pure_enable_git_status
$pure_symbol_git_unpushed_commits
$pure_color_git_unpulled_commits
Name should follow
$pure_<verb>_<feature>
pattern, where:
verb
describe the action triggered by the feature (i.e.separate
,begin
,show
, etc.) ;feature
descibre the what of the feature (i.e.prompt_on_error
,with_current_directory
,git_status
, etc.). Value should be a boolean.
$pure_begin_prompt_with_current_directory = true
$pure_enable_git_async = false
Use complete word over abbreviation.
$pure_threshold_command_duration