aboutsummaryrefslogblamecommitdiff
path: root/internal/notes.txt
blob: 37b5919160e66f4f087cdb173ea6e16f16518ce7 (plain) (tree)
1
2
3
4
5
6
7
8
9
10







                                                                                                   

                                                                                                    











                                                                                                       
                                                  



                                                                                              

                                                                                                  













                                                                                                     












                                                                                                                                                                           
- battery: when state or icon change, update with _p9k_set_prompt. make sure icons can be sent with
  `typset -p` in zsh 5.1.
- ram: reduce precision to 2 digits. check if it makes sense for all segments that use the same
  function.
- to avoid resetting prompt too often (e.g., when battery remaining time changes by 1 minute), can
  do the following: send the current state from master to worker; worker sends new state if it's
  different but it only triggers prompt reset if it's sufficiently different. this requires
  disabling implicit reset on every eval in _p9k_worker_receive.
- implement fake gitstatus api on top of vcs_info (or plain git?) + worker and use it if there is no
  gitstatus.

## asdf

- https://asdf-vm.com/#/core-configuration?id=environment-variables
- https://asdf-vm.com/#/core-configuration?id=tool-versions
- https://asdf-vm.com/#/core-configuration?id=homeasdfrc
- https://asdf-vm.com/#/plugins-create?id=binlist-legacy-filenames
- https://asdf-vm.com/#/plugins-create?id=binparse-legacy-file
- `print -lr -- ${ASDF_DATA_DIR:-~/.asdf}/plugins/*(/N:t)`
- `print -lr -- $(${ASDF_DATA_DIR:-~/.asdf}/plugins/ruby/bin/list-legacy-filenames)`
- `${ASDF_DATA_DIR:-~/.asdf}/plugins/ruby/bin/parse-legacy-file ~/powerlevel10k/test/foo/.ruby-version`
  - if empty, keep looking
- ASDF_${upcase_name}_VERSION wins over everything
- deeper version overrides win
- .tool-versions wins over .ruby-version when in the same directory
- versions for different tools are looked up independently: if /foo/bar/.tool-versions doesn't
  override "ruby" it's as if it doesn't exist as far as ruby version is concerned.
- after upglob look $HOME (same file patterns)
- finally look at $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME (single file; parse it like .tool-versions)
- ${ASDF_CONFIG_FILE:-~/.asdfrc} parsing:
    opt="$(
      grep -E "^\\s*legacy_version_file\\s*=\\s*" "$config_path" |
      head                                                     |
      awk -F '=' '{print $2}'                                  |
      sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
    [[ $opt == yes ]]

Stat caches:
- ${ASDF_CONFIG_FILE:-~/.asdfrc} => legacy_version_file (yes or no)
- ${ASDF_DATA_DIR:-~/.asdf}/plugins => list of plugins
- ${ASDF_DATA_DIR:-~/.asdf}/plugins/ruby/bin => list of relevant scripts
  (list-legacy-filenames and parse-legacy-file)
- ${ASDF_DATA_DIR:-~/.asdf}/plugins/ruby/bin/list-legacy-filenames => list (or pattern made from it?)
- /foo/bar => { tool => version } (permanent cache via stat cache)

---

typeset -ga _p9k_asdf_meta_files=(
  ${ASDF_CONFIG_FILE:-~/.asdfrc}
  ${ASDF_DATA_DIR:-~/.asdf}/plugins
  ${ASDF_DATA_DIR:-~/.asdf}/plugins/*/bin{,/list-legacy-filenames,/parse-legacy-file}(N)
)
typeset -g _p9k_asdf_meta_sig  # $ASDF_CONFIG_FILE ':' $ASDF_DATA_DIR ':' $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME ':' $ASDF_DEFAULT_TOOL_VERSIONS_FILENAME ':' ${(j.:.)mtimes}

typeset -g _p9k_asdf_file_pat    # example: '(.tool-versions|.ruby-version)'
typeset -gA _p9k_asdf_file_info  # .ruby-version => ruby1 ('1' means parse-legacy-file is present)