Showing preview only (3,532K chars total). Download the full file or copy to clipboard to get everything.
Repository: JanDeDobbeleer/oh-my-posh
Branch: main
Commit: 2675e61b2bc2
Files: 874
Total size: 3.2 MB
Directory structure:
gitextract_dbo6fjze/
├── .all-contributorsrc
├── .commitlintrc.yml
├── .config/
│ └── configuration.winget
├── .devcontainer/
│ ├── Dockerfile
│ ├── Microsoft.PowerShell_profile.ps1
│ ├── config.fish
│ └── devcontainer.json
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug.yml
│ │ ├── config.yml
│ │ ├── docs.yml
│ │ ├── enhancement.yml
│ │ └── feat.yml
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── agents/
│ │ └── architecture.md
│ ├── copilot-instructions.md
│ ├── dependabot.yml
│ ├── holopin.yml
│ ├── stale.yml
│ └── workflows/
│ ├── ai-changelog.yml
│ ├── android.yml
│ ├── bluesky.yml
│ ├── build_code.yml
│ ├── close_themes_pr.yml
│ ├── code.yml
│ ├── commits.yml
│ ├── composite/
│ │ └── bootstrap-go/
│ │ └── action.yml
│ ├── contributors.yml
│ ├── copilot-setup-steps.yml
│ ├── delete_store_submission.yml
│ ├── dependabot.yml
│ ├── discord.yml
│ ├── docs.yml
│ ├── edit_rights.yml
│ ├── gomod.yml
│ ├── homebrew.yml
│ ├── lock.yml
│ ├── markdown.yml
│ ├── merge_contributions_pr.yml
│ ├── microsoft_store.yml
│ ├── publish-mcp.yml
│ ├── release.yml
│ └── vale.yml
├── .gitignore
├── .markdownlint-cli2.yaml
├── .prettierrc
├── .vale.ini
├── .versionrc.json
├── .vscode/
│ ├── extensions.json
│ ├── launch.json
│ ├── settings.json
│ └── tasks.json
├── AGENTS.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── COPYING
├── README.md
├── SECURITY.md
├── apm.lock.yaml
├── apm.yml
├── build/
│ ├── post.ps1
│ └── pre.ps1
├── packages/
│ └── msi/
│ ├── README.md
│ ├── appxmanifest.xml
│ ├── build.ps1
│ ├── dsc/
│ │ ├── oh-my-posh.config.dsc.resource.json
│ │ ├── oh-my-posh.font.dsc.resource.json
│ │ └── oh-my-posh.shell.dsc.resource.json
│ ├── mapping.txt
│ └── oh-my-posh.wxs
├── src/
│ ├── .golangci.yml
│ ├── .goreleaser.yml
│ ├── build/
│ │ └── version.go
│ ├── cache/
│ │ ├── cache.go
│ │ ├── clear.go
│ │ ├── command.go
│ │ ├── duration.go
│ │ ├── duration_test.go
│ │ ├── file_map_windows.go
│ │ ├── file_unix.go
│ │ ├── file_windows.go
│ │ ├── init.go
│ │ ├── path.go
│ │ ├── path_unix.go
│ │ ├── path_windows.go
│ │ ├── store.go
│ │ ├── store_test.go
│ │ └── template.go
│ ├── cli/
│ │ ├── args.go
│ │ ├── auth/
│ │ │ ├── cli.go
│ │ │ ├── copilot.go
│ │ │ ├── ytmda.go
│ │ │ └── ytmda_test.go
│ │ ├── auth.go
│ │ ├── cache.go
│ │ ├── claude.go
│ │ ├── config.go
│ │ ├── config_export.go
│ │ ├── config_export_image.go
│ │ ├── debug.go
│ │ ├── disable.go
│ │ ├── edit.go
│ │ ├── enable.go
│ │ ├── font/
│ │ │ ├── download.go
│ │ │ ├── dsc.go
│ │ │ ├── font.go
│ │ │ ├── fonts.go
│ │ │ ├── install.go
│ │ │ ├── install_darwin.go
│ │ │ ├── install_unix.go
│ │ │ ├── install_windows.go
│ │ │ └── tui.go
│ │ ├── font.go
│ │ ├── get.go
│ │ ├── image/
│ │ │ ├── config.go
│ │ │ ├── config_test.go
│ │ │ ├── fonts.go
│ │ │ ├── image.go
│ │ │ └── image_test.go
│ │ ├── init.go
│ │ ├── notice.go
│ │ ├── print.go
│ │ ├── progress/
│ │ │ ├── model.go
│ │ │ └── reader.go
│ │ ├── root.go
│ │ ├── shell.go
│ │ ├── stream.go
│ │ ├── stream_test.go
│ │ ├── toggle.go
│ │ ├── upgrade/
│ │ │ ├── config.go
│ │ │ ├── install.go
│ │ │ ├── install_noop.go
│ │ │ ├── install_windows.go
│ │ │ ├── notice.go
│ │ │ ├── notice_test.go
│ │ │ ├── public_key.pem
│ │ │ ├── tui.go
│ │ │ ├── tui_test.go
│ │ │ ├── verify.go
│ │ │ └── verify_test.go
│ │ ├── upgrade.go
│ │ └── version.go
│ ├── color/
│ │ ├── colors.go
│ │ ├── colors_darwin.go
│ │ ├── colors_test.go
│ │ ├── colors_unix.go
│ │ ├── colors_windows.go
│ │ ├── cycle.go
│ │ ├── keywords.go
│ │ ├── palette.go
│ │ ├── palette_test.go
│ │ └── palettes.go
│ ├── config/
│ │ ├── backup.go
│ │ ├── block.go
│ │ ├── cache.go
│ │ ├── config.go
│ │ ├── config_test.go
│ │ ├── default.go
│ │ ├── dsc.go
│ │ ├── gob.go
│ │ ├── load.go
│ │ ├── merge.go
│ │ ├── merge_test.go
│ │ ├── migrate_glyphs.go
│ │ ├── migrate_glyphs_test.go
│ │ ├── responsive.go
│ │ ├── responsive_test.go
│ │ ├── segment.go
│ │ ├── segment_test.go
│ │ └── segment_types.go
│ ├── constants/
│ │ ├── constants_unix.go
│ │ └── constants_windows.go
│ ├── dsc/
│ │ ├── cli.go
│ │ ├── error.go
│ │ └── resource.go
│ ├── generics/
│ │ ├── convert.go
│ │ ├── pool.go
│ │ └── slices.go
│ ├── go.mod
│ ├── go.sum
│ ├── log/
│ │ ├── log.go
│ │ └── print.go
│ ├── main.go
│ ├── main_test.go
│ ├── maps/
│ │ ├── concurrent.go
│ │ ├── config.go
│ │ └── simple.go
│ ├── metadata.json
│ ├── prompt/
│ │ ├── debug.go
│ │ ├── engine.go
│ │ ├── engine_test.go
│ │ ├── extra.go
│ │ ├── preview.go
│ │ ├── primary.go
│ │ ├── rprompt.go
│ │ ├── segments.go
│ │ ├── segments_test.go
│ │ ├── status.go
│ │ ├── streaming.go
│ │ ├── streaming_test.go
│ │ └── tooltip.go
│ ├── regex/
│ │ ├── regex.go
│ │ └── regex_test.go
│ ├── runtime/
│ │ ├── battery/
│ │ │ ├── battery.go
│ │ │ ├── battery_darwin.go
│ │ │ ├── battery_darwin_test.go
│ │ │ ├── battery_linux.go
│ │ │ ├── battery_netbsd.go
│ │ │ ├── battery_openandfreebsd.go
│ │ │ ├── battery_openandfreebsd_test.go
│ │ │ ├── battery_windows.go
│ │ │ ├── battery_windows_nix.go
│ │ │ ├── battery_windows_nix_test.go
│ │ │ ├── errors.go
│ │ │ └── errors_test.go
│ │ ├── cmd/
│ │ │ ├── run.go
│ │ │ └── run_test.go
│ │ ├── environment.go
│ │ ├── http/
│ │ │ ├── connection.go
│ │ │ ├── download.go
│ │ │ ├── http.go
│ │ │ ├── oauth.go
│ │ │ ├── oauth_test.go
│ │ │ ├── request.go
│ │ │ └── request_test.go
│ │ ├── jobs/
│ │ │ ├── jobs_common.go
│ │ │ ├── jobs_other.go
│ │ │ └── jobs_windows.go
│ │ ├── mock/
│ │ │ └── environment.go
│ │ ├── networks_windows.go
│ │ ├── path/
│ │ │ ├── clean.go
│ │ │ ├── home.go
│ │ │ └── separator.go
│ │ ├── terminal.go
│ │ ├── terminal_darwin.go
│ │ ├── terminal_test.go
│ │ ├── terminal_unix.go
│ │ ├── terminal_unix_test.go
│ │ ├── terminal_windows.go
│ │ ├── terminal_windows_nix.go
│ │ └── win32_windows.go
│ ├── segments/
│ │ ├── angular.go
│ │ ├── argocd.go
│ │ ├── argocd_test.go
│ │ ├── aurelia.go
│ │ ├── aws.go
│ │ ├── aws_test.go
│ │ ├── az.go
│ │ ├── az_functions.go
│ │ ├── az_test.go
│ │ ├── azd.go
│ │ ├── azd_test.go
│ │ ├── base.go
│ │ ├── battery.go
│ │ ├── bazel.go
│ │ ├── bazel_test.go
│ │ ├── brewfather.go
│ │ ├── brewfather_test.go
│ │ ├── buf.go
│ │ ├── buf_test.go
│ │ ├── bun.go
│ │ ├── bun_test.go
│ │ ├── carbon_intensity.go
│ │ ├── carbon_intensity_test.go
│ │ ├── cds.go
│ │ ├── cds_test.go
│ │ ├── cf.go
│ │ ├── cf_target.go
│ │ ├── cf_target_test.go
│ │ ├── cf_test.go
│ │ ├── claude.go
│ │ ├── claude_test.go
│ │ ├── clojure.go
│ │ ├── clojure_test.go
│ │ ├── cmake.go
│ │ ├── cmake_test.go
│ │ ├── connection.go
│ │ ├── connection_test.go
│ │ ├── copilot.go
│ │ ├── copilot_test.go
│ │ ├── crystal.go
│ │ ├── crystal_test.go
│ │ ├── dart.go
│ │ ├── dart_test.go
│ │ ├── deno.go
│ │ ├── deno_test.go
│ │ ├── docker.go
│ │ ├── docker_test.go
│ │ ├── dotnet.go
│ │ ├── dotnet_test.go
│ │ ├── elixir.go
│ │ ├── elixir_test.go
│ │ ├── executiontime.go
│ │ ├── executiontime_test.go
│ │ ├── firebase.go
│ │ ├── firebase_test.go
│ │ ├── flutter.go
│ │ ├── flutter_test.go
│ │ ├── fortran.go
│ │ ├── fortran_test.go
│ │ ├── fossil.go
│ │ ├── fossil_test.go
│ │ ├── gcp.go
│ │ ├── gcp_test.go
│ │ ├── git.go
│ │ ├── git_test.go
│ │ ├── git_unix.go
│ │ ├── git_unix_test.go
│ │ ├── git_windows.go
│ │ ├── git_windows_test.go
│ │ ├── gitversion.go
│ │ ├── gitversion_test.go
│ │ ├── golang.go
│ │ ├── golang_test.go
│ │ ├── haskell.go
│ │ ├── haskell_test.go
│ │ ├── helm.go
│ │ ├── helm_test.go
│ │ ├── http.go
│ │ ├── http_test.go
│ │ ├── ipify.go
│ │ ├── ipify_test.go
│ │ ├── java.go
│ │ ├── java_test.go
│ │ ├── jujutsu.go
│ │ ├── jujutsu_test.go
│ │ ├── julia.go
│ │ ├── julia_test.go
│ │ ├── kotlin.go
│ │ ├── kotlin_test.go
│ │ ├── kubectl.go
│ │ ├── kubectl_test.go
│ │ ├── language.go
│ │ ├── language_test.go
│ │ ├── lastfm.go
│ │ ├── lastfm_test.go
│ │ ├── lua.go
│ │ ├── lua_test.go
│ │ ├── mercurial.go
│ │ ├── mercurial_test.go
│ │ ├── mojo.go
│ │ ├── mojo_test.go
│ │ ├── mvn.go
│ │ ├── mvn_test.go
│ │ ├── nba.go
│ │ ├── nba_test.go
│ │ ├── nbgv.go
│ │ ├── nbgv_test.go
│ │ ├── nightscout.go
│ │ ├── nightscout_test.go
│ │ ├── nim.go
│ │ ├── nim_test.go
│ │ ├── nixshell.go
│ │ ├── nixshell_test.go
│ │ ├── node.go
│ │ ├── node_test.go
│ │ ├── npm.go
│ │ ├── npm_test.go
│ │ ├── nx.go
│ │ ├── ocaml.go
│ │ ├── ocaml_test.go
│ │ ├── options/
│ │ │ ├── map.go
│ │ │ └── map_test.go
│ │ ├── os.go
│ │ ├── os_test.go
│ │ ├── owm.go
│ │ ├── owm_test.go
│ │ ├── path.go
│ │ ├── path_test.go
│ │ ├── path_unix_test.go
│ │ ├── path_windows_test.go
│ │ ├── perl.go
│ │ ├── perl_test.go
│ │ ├── php.go
│ │ ├── php_test.go
│ │ ├── plastic.go
│ │ ├── plastic_test.go
│ │ ├── pnpm.go
│ │ ├── pnpm_test.go
│ │ ├── posh_git.go
│ │ ├── posh_git_test.go
│ │ ├── project.go
│ │ ├── project_test.go
│ │ ├── pulumi.go
│ │ ├── pulumi_test.go
│ │ ├── python.go
│ │ ├── python_test.go
│ │ ├── quasar.go
│ │ ├── quasar_test.go
│ │ ├── r.go
│ │ ├── r_test.go
│ │ ├── ramadan.go
│ │ ├── ramadan_test.go
│ │ ├── react.go
│ │ ├── root.go
│ │ ├── ruby.go
│ │ ├── ruby_test.go
│ │ ├── rust.go
│ │ ├── rust_test.go
│ │ ├── sapling.go
│ │ ├── sapling_test.go
│ │ ├── scm.go
│ │ ├── scm_test.go
│ │ ├── session.go
│ │ ├── session_test.go
│ │ ├── shell.go
│ │ ├── shell_test.go
│ │ ├── sitecore.go
│ │ ├── sitecore_test.go
│ │ ├── spotify.go
│ │ ├── spotify_darwin.go
│ │ ├── spotify_darwin_test.go
│ │ ├── spotify_linux.go
│ │ ├── spotify_linux_test.go
│ │ ├── spotify_noop.go
│ │ ├── spotify_test.go
│ │ ├── spotify_windows.go
│ │ ├── spotify_windows_test.go
│ │ ├── status.go
│ │ ├── status_test.go
│ │ ├── strava.go
│ │ ├── strava_test.go
│ │ ├── svelte.go
│ │ ├── svn.go
│ │ ├── svn_test.go
│ │ ├── swift.go
│ │ ├── swift_test.go
│ │ ├── sysinfo.go
│ │ ├── sysinfo_test.go
│ │ ├── talosctl.go
│ │ ├── talosctl_test.go
│ │ ├── taskwarrior.go
│ │ ├── taskwarrior_test.go
│ │ ├── tauri.go
│ │ ├── terraform.go
│ │ ├── terraform_test.go
│ │ ├── text.go
│ │ ├── text_test.go
│ │ ├── time.go
│ │ ├── time_test.go
│ │ ├── todoist.go
│ │ ├── todoist_test.go
│ │ ├── ui5tooling.go
│ │ ├── ui5tooling_test.go
│ │ ├── umbraco.go
│ │ ├── umbraco_test.go
│ │ ├── unity.go
│ │ ├── unity_test.go
│ │ ├── upgrade.go
│ │ ├── upgrade_test.go
│ │ ├── v.go
│ │ ├── v_test.go
│ │ ├── vala.go
│ │ ├── vala_test.go
│ │ ├── wakatime.go
│ │ ├── wakatime_test.go
│ │ ├── winget.go
│ │ ├── winget_test.go
│ │ ├── winreg.go
│ │ ├── winreg_test.go
│ │ ├── withings.go
│ │ ├── withings_test.go
│ │ ├── xmake.go
│ │ ├── xmake_test.go
│ │ ├── yarn.go
│ │ ├── yarn_test.go
│ │ ├── ytm.go
│ │ ├── ytm_test.go
│ │ ├── zig.go
│ │ └── zig_test.go
│ ├── shell/
│ │ ├── bash.go
│ │ ├── bash_test.go
│ │ ├── cmd.go
│ │ ├── cmd_test.go
│ │ ├── code.go
│ │ ├── constants.go
│ │ ├── dsc.go
│ │ ├── dsc_test.go
│ │ ├── elvish.go
│ │ ├── elvish_test.go
│ │ ├── features.go
│ │ ├── filesystem.go
│ │ ├── fish.go
│ │ ├── fish_test.go
│ │ ├── formats.go
│ │ ├── init.go
│ │ ├── nu.go
│ │ ├── nu_test.go
│ │ ├── pwsh.go
│ │ ├── pwsh_test.go
│ │ ├── scripts/
│ │ │ ├── omp.bash
│ │ │ ├── omp.elv
│ │ │ ├── omp.fish
│ │ │ ├── omp.lua
│ │ │ ├── omp.nu
│ │ │ ├── omp.ps1
│ │ │ ├── omp.xsh
│ │ │ └── omp.zsh
│ │ ├── xonsh.go
│ │ ├── xonsh_test.go
│ │ ├── zsh.go
│ │ └── zsh_test.go
│ ├── template/
│ │ ├── cache.go
│ │ ├── compare.go
│ │ ├── compare_test.go
│ │ ├── files.go
│ │ ├── files_test.go
│ │ ├── func_map.go
│ │ ├── init.go
│ │ ├── link.go
│ │ ├── link_test.go
│ │ ├── list.go
│ │ ├── numbers.go
│ │ ├── numbers_test.go
│ │ ├── pool_test.go
│ │ ├── random.go
│ │ ├── random_test.go
│ │ ├── reason.go
│ │ ├── regex.go
│ │ ├── render.go
│ │ ├── round.go
│ │ ├── round_test.go
│ │ ├── strings.go
│ │ ├── strings_test.go
│ │ ├── text.go
│ │ └── text_test.go
│ ├── terminal/
│ │ ├── iterm.go
│ │ ├── writer.go
│ │ ├── writer_hyperlink_test.go
│ │ └── writer_test.go
│ ├── test/
│ │ ├── AzureRmContext.json
│ │ ├── azureProfile.json
│ │ ├── empty.nuspec
│ │ ├── go.work
│ │ ├── invalid.nuspec
│ │ ├── jandedobbeleer-palette.omp.json
│ │ ├── jandedobbeleer.omp.json
│ │ ├── kubectl.yml
│ │ ├── nba/
│ │ │ ├── schedule.json
│ │ │ └── score.json
│ │ ├── oh-my-posh.psd1
│ │ ├── signing/
│ │ │ ├── checksums.txt
│ │ │ ├── checksums.txt.invalid.sig
│ │ │ └── checksums.txt.sig
│ │ ├── terraform.tfstate
│ │ ├── umbraco/
│ │ │ ├── ANonUmbracoProject.csproj
│ │ │ ├── MyProject.csproj
│ │ │ ├── web.config
│ │ │ └── web.old.config
│ │ ├── valid.nuspec
│ │ └── versions.tf
│ ├── text/
│ │ ├── builder.go
│ │ ├── percentage.go
│ │ └── percentage_test.go
│ └── winres/
│ └── winres.json
├── themes/
│ ├── 1_shell.omp.json
│ ├── M365Princess.omp.json
│ ├── agnoster.minimal.omp.json
│ ├── agnoster.omp.json
│ ├── agnosterplus.omp.json
│ ├── aliens.omp.json
│ ├── amro.omp.json
│ ├── atomic.omp.json
│ ├── atomicBit.omp.json
│ ├── avit.omp.json
│ ├── blue-owl.omp.json
│ ├── blueish.omp.json
│ ├── bubbles.omp.json
│ ├── bubblesextra.omp.json
│ ├── bubblesline.omp.json
│ ├── capr4n.omp.json
│ ├── catppuccin.omp.json
│ ├── catppuccin_frappe.omp.json
│ ├── catppuccin_latte.omp.json
│ ├── catppuccin_macchiato.omp.json
│ ├── catppuccin_mocha.omp.json
│ ├── cert.omp.json
│ ├── chips.omp.json
│ ├── cinnamon.omp.json
│ ├── clean-detailed.omp.json
│ ├── cloud-context.omp.json
│ ├── cloud-native-azure.omp.json
│ ├── cobalt2.omp.json
│ ├── craver.omp.json
│ ├── darkblood.omp.json
│ ├── devious-diamonds.omp.yaml
│ ├── di4am0nd.omp.json
│ ├── dracula.omp.json
│ ├── easy-term.omp.json
│ ├── emodipt-extend.omp.json
│ ├── emodipt.omp.json
│ ├── fish.omp.json
│ ├── free-ukraine.omp.json
│ ├── froczh.omp.json
│ ├── glowsticks.omp.yaml
│ ├── gmay.omp.json
│ ├── grandpa-style.omp.json
│ ├── gruvbox.omp.json
│ ├── half-life.omp.json
│ ├── honukai.omp.json
│ ├── hotstick.minimal.omp.json
│ ├── hul10.omp.json
│ ├── hunk.omp.json
│ ├── huvix.omp.json
│ ├── if_tea.omp.json
│ ├── illusi0n.omp.json
│ ├── iterm2.omp.json
│ ├── jandedobbeleer.omp.json
│ ├── jblab_2021.omp.json
│ ├── jonnychipz.omp.json
│ ├── json.omp.json
│ ├── jtracey93.omp.json
│ ├── jv_sitecorian.omp.json
│ ├── kali.omp.json
│ ├── kushal.omp.json
│ ├── lambda.omp.json
│ ├── lambdageneration.omp.json
│ ├── larserikfinholt.omp.json
│ ├── lightgreen.omp.json
│ ├── marcduiker.omp.json
│ ├── markbull.omp.json
│ ├── material.omp.json
│ ├── microverse-power.omp.json
│ ├── mojada.omp.json
│ ├── montys.omp.json
│ ├── mt.omp.json
│ ├── multiverse-neon.omp.json
│ ├── negligible.omp.json
│ ├── neko.omp.json
│ ├── night-owl.omp.json
│ ├── nordtron.omp.json
│ ├── nu4a.omp.json
│ ├── onehalf.minimal.omp.json
│ ├── paradox.omp.json
│ ├── pararussel.omp.json
│ ├── patriksvensson.omp.json
│ ├── peru.omp.json
│ ├── pixelrobots.omp.json
│ ├── plague.omp.json
│ ├── poshmon.omp.json
│ ├── powerlevel10k_classic.omp.json
│ ├── powerlevel10k_lean.omp.json
│ ├── powerlevel10k_modern.omp.json
│ ├── powerlevel10k_rainbow.omp.json
│ ├── powerline.omp.json
│ ├── probua.minimal.omp.json
│ ├── pure.omp.json
│ ├── quick-term.omp.json
│ ├── remk.omp.json
│ ├── robbyrussell.omp.json
│ ├── rudolfs-dark.omp.json
│ ├── rudolfs-light.omp.json
│ ├── schema.json
│ ├── sim-web.omp.json
│ ├── slim.omp.json
│ ├── slimfat.omp.json
│ ├── smoothie.omp.json
│ ├── sonicboom_dark.omp.json
│ ├── sonicboom_light.omp.json
│ ├── sorin.omp.json
│ ├── space.omp.json
│ ├── spaceship.omp.json
│ ├── star.omp.json
│ ├── stelbent-compact.minimal.omp.json
│ ├── stelbent.minimal.omp.json
│ ├── takuya.omp.json
│ ├── the-unnamed.omp.json
│ ├── thecyberden.omp.json
│ ├── tiwahu.omp.json
│ ├── tokyo.omp.json
│ ├── tokyonight_storm.omp.json
│ ├── tonybaloney.omp.json
│ ├── uew.omp.json
│ ├── unicorn.omp.json
│ ├── velvet.omp.json
│ ├── wholespace.omp.json
│ ├── wopian.omp.json
│ ├── xtoys.omp.json
│ ├── ys.omp.json
│ └── zash.omp.json
└── website/
├── .gitignore
├── README.md
├── api/
│ ├── .funcignore
│ ├── .gitignore
│ ├── auth/
│ │ ├── function.json
│ │ └── index.js
│ ├── data/
│ │ ├── .gitignore
│ │ └── README.md
│ ├── host.json
│ ├── mcp/
│ │ ├── .gitignore
│ │ ├── .well-known/
│ │ │ └── mcp.json
│ │ ├── README.md
│ │ ├── function.json
│ │ ├── index.js
│ │ ├── server.json
│ │ └── validate-server.js
│ ├── package.json
│ ├── proxies.json
│ ├── refresh/
│ │ ├── function.json
│ │ └── index.js
│ ├── shared/
│ │ ├── strava.js
│ │ ├── validator.js
│ │ └── withings.js
│ └── test/
│ └── validator.test.js
├── blog/
│ ├── 2022-03-20-whats-new-1.mdx
│ ├── 2022-03-27-whats-new-2.md
│ ├── 2022-03-28-idiots-everywhere.md
│ ├── 2022-05-19-whats-new-3.md
│ ├── 2024-07-22-bash-rprompt.md
│ └── 2025-12-28-oh-my-posh-claude-code-integration.md
├── docs/
│ ├── advanced/
│ │ └── mcp-server.mdx
│ ├── auth.mdx
│ ├── configuration/
│ │ ├── block.mdx
│ │ ├── colors.mdx
│ │ ├── debug-prompt.mdx
│ │ ├── general.mdx
│ │ ├── introduction.mdx
│ │ ├── line-error.mdx
│ │ ├── sample.mdx
│ │ ├── secondary-prompt.mdx
│ │ ├── segment.mdx
│ │ ├── templates.mdx
│ │ ├── title.mdx
│ │ ├── tooltips.mdx
│ │ └── transient.mdx
│ ├── contributing/
│ │ ├── git.mdx
│ │ ├── plastic.mdx
│ │ ├── segment.mdx
│ │ └── started.mdx
│ ├── contributors.md
│ ├── dsc.md
│ ├── experimental/
│ │ └── streaming.mdx
│ ├── faq.mdx
│ ├── installation/
│ │ ├── customize.mdx
│ │ ├── fonts.mdx
│ │ ├── homebrew.md
│ │ ├── linux.mdx
│ │ ├── macos.mdx
│ │ ├── next.md
│ │ ├── prompt.mdx
│ │ ├── upgrade.mdx
│ │ └── windows.mdx
│ ├── migrating-module.md
│ ├── segments/
│ │ ├── cli/
│ │ │ ├── angular.mdx
│ │ │ ├── argocd.mdx
│ │ │ ├── aurelia.mdx
│ │ │ ├── bazel.mdx
│ │ │ ├── buf.mdx
│ │ │ ├── bun.mdx
│ │ │ ├── claude.mdx
│ │ │ ├── cmake.mdx
│ │ │ ├── copilot.mdx
│ │ │ ├── deno.mdx
│ │ │ ├── docker.mdx
│ │ │ ├── firebase.mdx
│ │ │ ├── flutter.mdx
│ │ │ ├── gitversion.mdx
│ │ │ ├── helm.mdx
│ │ │ ├── kubectl.mdx
│ │ │ ├── mvn.mdx
│ │ │ ├── nbgv.mdx
│ │ │ ├── nix-shell.mdx
│ │ │ ├── npm.mdx
│ │ │ ├── nx.mdx
│ │ │ ├── pnpm.mdx
│ │ │ ├── quasar.mdx
│ │ │ ├── react.mdx
│ │ │ ├── svelte.mdx
│ │ │ ├── talosctl.mdx
│ │ │ ├── taskwarrior.mdx
│ │ │ ├── tauri.mdx
│ │ │ ├── terraform.mdx
│ │ │ ├── ui5tooling.mdx
│ │ │ ├── umbraco.mdx
│ │ │ ├── unity.mdx
│ │ │ ├── xmake.mdx
│ │ │ └── yarn.mdx
│ │ ├── cloud/
│ │ │ ├── aws.mdx
│ │ │ ├── az.mdx
│ │ │ ├── azd.mdx
│ │ │ ├── azfunc.mdx
│ │ │ ├── cds.mdx
│ │ │ ├── cf.mdx
│ │ │ ├── cftarget.mdx
│ │ │ ├── gcp.mdx
│ │ │ ├── pulumi.mdx
│ │ │ └── sitecore.mdx
│ │ ├── health/
│ │ │ ├── nightscout.mdx
│ │ │ ├── ramadan.mdx
│ │ │ ├── strava.mdx
│ │ │ └── withings.mdx
│ │ ├── languages/
│ │ │ ├── clojure.mdx
│ │ │ ├── crystal.mdx
│ │ │ ├── dart.mdx
│ │ │ ├── dotnet.mdx
│ │ │ ├── elixir.mdx
│ │ │ ├── fortran.mdx
│ │ │ ├── golang.mdx
│ │ │ ├── haskell.mdx
│ │ │ ├── java.mdx
│ │ │ ├── julia.mdx
│ │ │ ├── kotlin.mdx
│ │ │ ├── lua.mdx
│ │ │ ├── mojo.mdx
│ │ │ ├── nim.mdx
│ │ │ ├── node.mdx
│ │ │ ├── ocaml.mdx
│ │ │ ├── perl.mdx
│ │ │ ├── php.mdx
│ │ │ ├── python.mdx
│ │ │ ├── r.mdx
│ │ │ ├── ruby.mdx
│ │ │ ├── rust.mdx
│ │ │ ├── swift.mdx
│ │ │ ├── v.mdx
│ │ │ ├── vala.mdx
│ │ │ └── zig.mdx
│ │ ├── music/
│ │ │ ├── lastfm.mdx
│ │ │ ├── spotify.mdx
│ │ │ └── ytm.mdx
│ │ ├── scm/
│ │ │ ├── fossil.mdx
│ │ │ ├── git.mdx
│ │ │ ├── jujutsu.mdx
│ │ │ ├── mercurial.mdx
│ │ │ ├── plastic.mdx
│ │ │ ├── sapling.mdx
│ │ │ └── svn.mdx
│ │ ├── system/
│ │ │ ├── battery.mdx
│ │ │ ├── connection.mdx
│ │ │ ├── executiontime.mdx
│ │ │ ├── os.mdx
│ │ │ ├── path.mdx
│ │ │ ├── project.mdx
│ │ │ ├── root.mdx
│ │ │ ├── session.mdx
│ │ │ ├── shell.mdx
│ │ │ ├── status.mdx
│ │ │ ├── sysinfo.mdx
│ │ │ ├── text.mdx
│ │ │ ├── time.mdx
│ │ │ ├── upgrade.mdx
│ │ │ ├── winget.mdx
│ │ │ └── winreg.mdx
│ │ └── web/
│ │ ├── brewfather.mdx
│ │ ├── carbonintensity.mdx
│ │ ├── http.mdx
│ │ ├── ipify.mdx
│ │ ├── nba.mdx
│ │ ├── owm.mdx
│ │ ├── todoist.mdx
│ │ └── wakatime.mdx
│ ├── share-theme.md
│ └── themes.md
├── docusaurus.config.js
├── export_themes.mjs
├── package.json
├── plugins/
│ └── appinsights/
│ ├── analytics.js
│ └── index.js
├── sidebars.js
├── src/
│ ├── components/
│ │ ├── Auth.js
│ │ └── Config.js
│ ├── css/
│ │ ├── custom.css
│ │ └── prism-rose-pine-moon.css
│ └── pages/
│ ├── index.js
│ ├── privacy.mdx
│ └── styles.module.css
├── static/
│ ├── .nojekyll
│ ├── codepoints.csv
│ ├── img/
│ │ └── themes/
│ │ └── .keep
│ ├── install.ps1
│ └── install.sh
└── staticwebapp.config.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .all-contributorsrc
================================================
{
"projectName": "oh-my-posh",
"projectOwner": "JanDeDobbeleer",
"repoType": "github",
"repoHost": "https://github.com",
"files": [
"website/docs/contributors.md"
],
"imageSize": 100,
"commit": true,
"commitConvention": "angular",
"contributors": [
{
"login": "lnu",
"name": "Laurent Nullens",
"avatar_url": "https://avatars.githubusercontent.com/u/1829553?v=4",
"profile": "https://github.com/lnu",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "TravisTX",
"name": "Travis Collins",
"avatar_url": "https://avatars.githubusercontent.com/u/934490?v=4",
"profile": "https://github.com/TravisTX",
"contributions": [
"code"
]
},
{
"login": "jos3s",
"name": "José Ulisses",
"avatar_url": "https://avatars.githubusercontent.com/u/50359547?v=4",
"profile": "https://github.com/jos3s",
"contributions": [
"code"
]
},
{
"login": "nwykes",
"name": "Nathan Wykes",
"avatar_url": "https://avatars.githubusercontent.com/u/593993?v=4",
"profile": "https://github.com/nwykes",
"contributions": [
"code"
]
},
{
"login": "tillig",
"name": "Travis Illig",
"avatar_url": "https://avatars.githubusercontent.com/u/1156571?v=4",
"profile": "http://www.paraesthesia.com/",
"contributions": [
"code"
]
},
{
"login": "evilz",
"name": "Vincent B.",
"avatar_url": "https://avatars.githubusercontent.com/u/2937862?v=4",
"profile": "http://www.evilznet.com/",
"contributions": [
"code"
]
},
{
"login": "erclu",
"name": "Luca Ercole",
"avatar_url": "https://avatars.githubusercontent.com/u/30255227?v=4",
"profile": "https://erclu.github.io/cv/",
"contributions": [
"code"
]
},
{
"login": "LarsBauer",
"name": "Lars Bauer",
"avatar_url": "https://avatars.githubusercontent.com/u/3920045?v=4",
"profile": "https://larsbauer.xyz/",
"contributions": [
"design"
]
},
{
"login": "RobCannon",
"name": "Rob Cannon",
"avatar_url": "https://avatars.githubusercontent.com/u/189862?v=4",
"profile": "https://github.com/RobCannon",
"contributions": [
"code"
]
},
{
"login": "Vixb1122",
"name": "Vixb",
"avatar_url": "https://avatars.githubusercontent.com/u/17810492?v=4",
"profile": "https://github.com/Vixb1122",
"contributions": [
"doc"
]
},
{
"login": "zeyugao",
"name": "Elsa Granger",
"avatar_url": "https://avatars.githubusercontent.com/u/6374697?v=4",
"profile": "https://github.com/zeyugao",
"contributions": [
"design"
]
},
{
"login": "softweaprograma",
"name": "Anthony G",
"avatar_url": "https://avatars.githubusercontent.com/u/35231092?v=4",
"profile": "https://github.com/softweaprograma",
"contributions": [
"design"
]
},
{
"login": "gitolicious",
"name": "gitolicious",
"avatar_url": "https://avatars.githubusercontent.com/u/26963495?v=4",
"profile": "https://github.com/gitolicious",
"contributions": [
"code"
]
},
{
"login": "irdkwmnsb",
"name": "Maxim",
"avatar_url": "https://avatars.githubusercontent.com/u/8657078?v=4",
"profile": "https://alzhanov.ru/",
"contributions": [
"design"
]
},
{
"login": "PIYUSH194",
"name": "PIYUSH194",
"avatar_url": "https://avatars.githubusercontent.com/u/2896456?v=4",
"profile": "https://github.com/PIYUSH194",
"contributions": [
"code"
]
},
{
"login": "97krihop",
"name": "97krihop",
"avatar_url": "https://avatars.githubusercontent.com/u/24739853?v=4",
"profile": "https://github.com/97krihop",
"contributions": [
"doc"
]
},
{
"login": "stefanes",
"name": "Stefan",
"avatar_url": "https://avatars.githubusercontent.com/u/5484354?v=4",
"profile": "https://github.com/stefanes",
"contributions": [
"design",
"code"
]
},
{
"login": "moritz-meier",
"name": "Moritz Meier",
"avatar_url": "https://avatars.githubusercontent.com/u/60762067?v=4",
"profile": "https://github.com/moritz-meier",
"contributions": [
"code"
]
},
{
"login": "jetersen",
"name": "Joseph Petersen",
"avatar_url": "https://avatars.githubusercontent.com/u/1661688?v=4",
"profile": "https://github.com/jetersen",
"contributions": [
"code"
]
},
{
"login": "Goliaita",
"name": "Davide Basile",
"avatar_url": "https://avatars.githubusercontent.com/u/11245411?v=4",
"profile": "https://github.com/Goliaita",
"contributions": [
"code"
]
},
{
"login": "sukso96100",
"name": "Youngbin Han",
"avatar_url": "https://avatars.githubusercontent.com/u/1916739?v=4",
"profile": "http://youngbin.xyz/",
"contributions": [
"design"
]
},
{
"login": "mateusnssn",
"name": "Mateus Nunes",
"avatar_url": "https://avatars.githubusercontent.com/u/69170710?v=4",
"profile": "https://mateusnssp.github.io/mateusnssp/",
"contributions": [
"design"
]
},
{
"login": "PixelRobots",
"name": "PixelRobots",
"avatar_url": "https://avatars.githubusercontent.com/u/22979170?v=4",
"profile": "https://pixelrobots.co.uk/",
"contributions": [
"design"
]
},
{
"login": "RishabhSood",
"name": "RishabhSood",
"avatar_url": "https://avatars.githubusercontent.com/u/55499929?v=4",
"profile": "https://github.com/RishabhSood",
"contributions": [
"design"
]
},
{
"login": "SagarYadav17",
"name": "Sagar Yadav",
"avatar_url": "https://avatars.githubusercontent.com/u/47110215?v=4",
"profile": "https://github.com/SagarYadav17",
"contributions": [
"design"
]
},
{
"login": "WolfspiritM",
"name": "Adrian",
"avatar_url": "https://avatars.githubusercontent.com/u/5904171?v=4",
"profile": "https://github.com/WolfspiritM",
"contributions": [
"code"
]
},
{
"login": "MJECloud",
"name": "Maurice",
"avatar_url": "https://avatars.githubusercontent.com/u/22131101?v=4",
"profile": "https://github.com/MJECloud",
"contributions": [
"code"
]
},
{
"login": "samuelfahrngruber",
"name": "samuelfahrngruber",
"avatar_url": "https://avatars.githubusercontent.com/u/35682879?v=4",
"profile": "https://github.com/samuelfahrngruber",
"contributions": [
"code"
]
},
{
"login": "zilmarr",
"name": "Zilmar de Souza Junior",
"avatar_url": "https://avatars.githubusercontent.com/u/5557367?v=4",
"profile": "https://github.com/zilmarr",
"contributions": [
"design"
]
},
{
"login": "AsafMah",
"name": "AsafMah",
"avatar_url": "https://avatars.githubusercontent.com/u/6424271?v=4",
"profile": "https://github.com/AsafMah",
"contributions": [
"code"
]
},
{
"login": "cinnamon-msft",
"name": "Kayla Cinnamon",
"avatar_url": "https://avatars.githubusercontent.com/u/48369326?v=4",
"profile": "https://github.com/cinnamon-msft",
"contributions": [
"design",
"code",
"doc"
]
},
{
"login": "cbargren",
"name": "Chris Bargren",
"avatar_url": "https://avatars.githubusercontent.com/u/1050712?v=4",
"profile": "https://github.com/cbargren",
"contributions": [
"code"
]
},
{
"login": "tonybaloney",
"name": "Anthony Shaw",
"avatar_url": "https://avatars.githubusercontent.com/u/1532417?v=4",
"profile": "https://tonybaloney.github.io/",
"contributions": [
"design"
]
},
{
"login": "mifieldxu",
"name": "Mifield",
"avatar_url": "https://avatars.githubusercontent.com/u/5520179?v=4",
"profile": "https://github.com/mifieldxu",
"contributions": [
"doc"
]
},
{
"login": "benallred",
"name": "Ben Allred",
"avatar_url": "https://avatars.githubusercontent.com/u/3902274?v=4",
"profile": "https://github.com/benallred",
"contributions": [
"doc"
]
},
{
"login": "riazXrazor",
"name": "Riaz Laskar",
"avatar_url": "https://avatars.githubusercontent.com/u/13194363?v=4",
"profile": "https://riazxrazor.herokuapp.com/",
"contributions": [
"doc"
]
},
{
"login": "Don-Vito",
"name": "Don-Vito",
"avatar_url": "https://avatars.githubusercontent.com/u/4639110?v=4",
"profile": "https://github.com/Don-Vito",
"contributions": [
"doc"
]
},
{
"login": "FabianEscarate",
"name": "Fabian Roberto Escarate",
"avatar_url": "https://avatars.githubusercontent.com/u/19978896?v=4",
"profile": "https://github.com/FabianEscarate",
"contributions": [
"design"
]
},
{
"login": "xt0rted",
"name": "Brian Surowiec",
"avatar_url": "https://avatars.githubusercontent.com/u/831974?v=4",
"profile": "https://github.com/xt0rted",
"contributions": [
"code"
]
},
{
"login": "ojullien",
"name": "Olivier Jullien",
"avatar_url": "https://avatars.githubusercontent.com/u/3778194?v=4",
"profile": "https://twitter.com/OJullien",
"contributions": [
"code"
]
},
{
"login": "cdonnellytx",
"name": "Chris Donnelly",
"avatar_url": "https://avatars.githubusercontent.com/u/183046?v=4",
"profile": "https://github.com/cdonnellytx",
"contributions": [
"code"
]
},
{
"login": "KyleCrowley",
"name": "Kyle Crowley",
"avatar_url": "https://avatars.githubusercontent.com/u/6757487?v=4",
"profile": "https://github.com/KyleCrowley",
"contributions": [
"code"
]
},
{
"login": "gitolicious",
"name": "gitolicious",
"avatar_url": "https://avatars.githubusercontent.com/u/26963495?v=4",
"profile": "https://github.com/gitolicious",
"contributions": [
"code"
]
},
{
"login": "jeroen7s",
"name": "Jeroen Evens",
"avatar_url": "https://avatars.githubusercontent.com/u/10954827?v=4",
"profile": "https://github.com/jeroen7s",
"contributions": [
"doc"
]
},
{
"login": "equinox",
"name": "equinox",
"avatar_url": "https://avatars.githubusercontent.com/u/6139999?v=4",
"profile": "https://github.com/equinox",
"contributions": [
"doc"
]
},
{
"login": "DamianoPellegrini",
"name": "Damiano Pellegrini",
"avatar_url": "https://avatars.githubusercontent.com/u/41305552?v=4",
"profile": "https://github.com/DamianoPellegrini",
"contributions": [
"design"
]
},
{
"login": "timon-schelling",
"name": "Timon Schelling",
"avatar_url": "https://avatars.githubusercontent.com/u/36821505?v=4",
"profile": "https://timokrates.de/",
"contributions": [
"design"
]
},
{
"login": "zeyugao",
"name": "Elsa Granger",
"avatar_url": "https://avatars.githubusercontent.com/u/6374697?v=4",
"profile": "https://github.com/zeyugao",
"contributions": [
"design"
]
},
{
"login": "Daksh777",
"name": "Daksh P. Jain",
"avatar_url": "https://avatars.githubusercontent.com/u/43648146?v=4",
"profile": "https://daksh.eu.org/",
"contributions": [
"doc"
]
},
{
"login": "boarder2",
"name": "Willie Zutz",
"avatar_url": "https://avatars.githubusercontent.com/u/19351?v=4",
"profile": "http://bit-shift.com/",
"contributions": [
"doc"
]
},
{
"login": "uruz-7",
"name": "uruz-7",
"avatar_url": "https://avatars.githubusercontent.com/u/15071454?v=4",
"profile": "https://github.com/uruz-7",
"contributions": [
"design"
]
},
{
"login": "beppler",
"name": "Carlos Alberto Costa Beppler",
"avatar_url": "https://avatars.githubusercontent.com/u/66092?v=4",
"profile": "https://github.com/beppler",
"contributions": [
"code"
]
},
{
"login": "sky96111",
"name": "sky96111",
"avatar_url": "https://avatars.githubusercontent.com/u/22412214?v=4",
"profile": "https://github.com/sky96111",
"contributions": [
"design"
]
},
{
"login": "jantielens",
"name": "Jan Tielens",
"avatar_url": "https://avatars.githubusercontent.com/u/9884103?v=4",
"profile": "http://j.tlns.be/",
"contributions": [
"doc"
]
},
{
"login": "shedric1",
"name": "shedric1",
"avatar_url": "https://avatars.githubusercontent.com/u/56672838?v=4",
"profile": "https://github.com/shedric1",
"contributions": [
"code"
]
},
{
"login": "sectorogo",
"name": "sectorogo",
"avatar_url": "https://avatars.githubusercontent.com/u/32959212?v=4",
"profile": "https://github.com/sectorogo",
"contributions": [
"design"
]
},
{
"login": "phil-scott-78",
"name": "Phil Scott",
"avatar_url": "https://avatars.githubusercontent.com/u/2447331?v=4",
"profile": "https://github.com/phil-scott-78",
"contributions": [
"design"
]
},
{
"login": "suuus",
"name": "Suus",
"avatar_url": "https://avatars.githubusercontent.com/u/40822355?v=4",
"profile": "https://suuu.us/",
"contributions": [
"doc"
]
},
{
"login": "wopian",
"name": "James Harris",
"avatar_url": "https://avatars.githubusercontent.com/u/3440094?v=4",
"profile": "https://wopian.me/",
"contributions": [
"design"
]
},
{
"login": "mdlopresti",
"name": "Michael LoPresti",
"avatar_url": "https://avatars.githubusercontent.com/u/1293090?v=4",
"profile": "https://github.com/mdlopresti",
"contributions": [
"code"
]
},
{
"login": "floh96",
"name": "Florian Heberl",
"avatar_url": "https://avatars.githubusercontent.com/u/49693964?v=4",
"profile": "https://github.com/floh96",
"contributions": [
"doc"
]
},
{
"login": "relativityhd",
"name": "Tobias Hölzer",
"avatar_url": "https://avatars.githubusercontent.com/u/37540371?v=4",
"profile": "http://tobiashoelzer.dynu.net",
"contributions": [
"doc",
"code"
]
},
{
"login": "h4iku",
"name": "Reza Gharibi",
"avatar_url": "https://avatars.githubusercontent.com/u/3812788?v=4",
"profile": "https://h4iku.github.io",
"contributions": [
"doc"
]
},
{
"login": "JustinGrote",
"name": "Justin Grote",
"avatar_url": "https://avatars.githubusercontent.com/u/15258962?v=4",
"profile": "https://justingrote.github.io",
"contributions": [
"doc"
]
},
{
"login": "henry-js",
"name": "James",
"avatar_url": "https://avatars.githubusercontent.com/u/79054685?v=4",
"profile": "https://github.com/henry-js",
"contributions": [
"doc"
]
},
{
"login": "iarejenius",
"name": "Timothy Wittig",
"avatar_url": "https://avatars.githubusercontent.com/u/1031515?v=4",
"profile": "https://wittig.dev",
"contributions": [
"code"
]
},
{
"login": "Descalon",
"name": "Nico Glas",
"avatar_url": "https://avatars.githubusercontent.com/u/1098500?v=4",
"profile": "https://github.com/Descalon",
"contributions": [
"code"
]
},
{
"login": "hanskokx",
"name": "Hans Kokx",
"avatar_url": "https://avatars.githubusercontent.com/u/1911919?v=4",
"profile": "https://github.com/hanskokx",
"contributions": [
"doc"
]
},
{
"login": "alchatti",
"name": "Majed Al-Chatti",
"avatar_url": "https://avatars.githubusercontent.com/u/9209306?v=4",
"profile": "http://alchatti.com",
"contributions": [
"design"
]
},
{
"login": "Jan0660",
"name": "Jan0660",
"avatar_url": "https://avatars.githubusercontent.com/u/58996212?v=4",
"profile": "https://jan0660.dev",
"contributions": [
"code"
]
},
{
"login": "LuiseFreese",
"name": "Luise Freese",
"avatar_url": "https://avatars.githubusercontent.com/u/49960482?v=4",
"profile": "http://www.m365princess.com",
"contributions": [
"design"
]
},
{
"login": "asherber",
"name": "Aaron Sherber",
"avatar_url": "https://avatars.githubusercontent.com/u/5248041?v=4",
"profile": "https://github.com/asherber",
"contributions": [
"code"
]
},
{
"login": "SeanKilleen",
"name": "Sean Killeen",
"avatar_url": "https://avatars.githubusercontent.com/u/2148318?v=4",
"profile": "http://SeanKilleen.com",
"contributions": [
"doc"
]
},
{
"login": "NickCraver",
"name": "Nick Craver",
"avatar_url": "https://avatars.githubusercontent.com/u/454813?v=4",
"profile": "https://nickcraver.com",
"contributions": [
"code"
]
},
{
"login": "justin-vogt",
"name": "Justin Vogt",
"avatar_url": "https://avatars.githubusercontent.com/u/84424169?v=4",
"profile": "https://github.com/justin-vogt",
"contributions": [
"design"
]
},
{
"login": "TheOnlyTails",
"name": "TheOnlyTails",
"avatar_url": "https://avatars.githubusercontent.com/u/65342367?v=4",
"profile": "http://theonlytails.com",
"contributions": [
"ideas"
]
},
{
"login": "bewing",
"name": "bewing",
"avatar_url": "https://avatars.githubusercontent.com/u/4759896?v=4",
"profile": "https://github.com/bewing",
"contributions": [
"code"
]
},
{
"login": "shawnwildermuth",
"name": "Shawn Wildermuth",
"avatar_url": "https://avatars.githubusercontent.com/u/568272?v=4",
"profile": "http://wildermuth.com",
"contributions": [
"doc",
"code"
]
},
{
"login": "onpikono",
"name": "Ondrej Pinka",
"avatar_url": "https://avatars.githubusercontent.com/u/25362465?v=4",
"profile": "https://github.com/onpikono",
"contributions": [
"doc"
]
},
{
"login": "kasuken",
"name": "Emanuele Bartolesi",
"avatar_url": "https://avatars.githubusercontent.com/u/2757486?v=4",
"profile": "https://www.emanuelebartolesi.com",
"contributions": [
"design"
]
},
{
"login": "qiansen1386",
"name": "Paris Qian",
"avatar_url": "https://avatars.githubusercontent.com/u/1759658?v=4",
"profile": "https://qiansen1386.github.io",
"contributions": [
"design"
]
},
{
"login": "tjackadams",
"name": "Thomas Adams",
"avatar_url": "https://avatars.githubusercontent.com/u/2307314?v=4",
"profile": "https://blog.itadams.co.uk",
"contributions": [
"code"
]
},
{
"login": "gschizas",
"name": "George Schizas",
"avatar_url": "https://avatars.githubusercontent.com/u/598065?v=4",
"profile": "http://www.terrasoft.gr/",
"contributions": [
"code",
"design"
]
},
{
"login": "denelon",
"name": "denelon",
"avatar_url": "https://avatars.githubusercontent.com/u/61799811?v=4",
"profile": "https://github.com/denelon",
"contributions": [
"code"
]
},
{
"login": "AbdelrahmanHafez",
"name": "Hafez",
"avatar_url": "https://avatars.githubusercontent.com/u/19984935?v=4",
"profile": "https://github.com/AbdelrahmanHafez",
"contributions": [
"doc"
]
},
{
"login": "TedCrocker",
"name": "Ted Ballou",
"avatar_url": "https://avatars.githubusercontent.com/u/382001?v=4",
"profile": "https://github.com/TedCrocker",
"contributions": [
"code",
"doc"
]
},
{
"login": "mikesigs",
"name": "Mike Sigsworth",
"avatar_url": "https://avatars.githubusercontent.com/u/811177?v=4",
"profile": "https://discardchanges.com",
"contributions": [
"code",
"doc"
]
},
{
"login": "memcpy-rand-rand-rand",
"name": "Will",
"avatar_url": "https://avatars.githubusercontent.com/u/90210865?v=4",
"profile": "https://github.com/memcpy-rand-rand-rand",
"contributions": [
"code",
"doc"
]
},
{
"login": "shanselman",
"name": "Scott Hanselman",
"avatar_url": "https://avatars.githubusercontent.com/u/2892?v=4",
"profile": "http://www.hanselman.com",
"contributions": [
"code",
"doc"
]
},
{
"login": "hgreving",
"name": "Harmjan Greving",
"avatar_url": "https://avatars.githubusercontent.com/u/23560667?v=4",
"profile": "https://github.com/hgreving",
"contributions": [
"doc"
]
},
{
"login": "Khaos66",
"name": "Khaos",
"avatar_url": "https://avatars.githubusercontent.com/u/4013009?v=4",
"profile": "https://github.com/Khaos66",
"contributions": [
"code",
"doc"
]
},
{
"login": "mattwojo",
"name": "Matt Wojciakowski",
"avatar_url": "https://avatars.githubusercontent.com/u/7566797?v=4",
"profile": "http://mattwojo.github.io/",
"contributions": [
"doc"
]
},
{
"login": "TheTaylorLee",
"name": "TheTaylorLee",
"avatar_url": "https://avatars.githubusercontent.com/u/53202926?v=4",
"profile": "https://www.powershellgallery.com/profiles/TaylorLee",
"contributions": [
"design"
]
},
{
"login": "PapiPeppers",
"name": "Papi Peppers",
"avatar_url": "https://avatars.githubusercontent.com/u/57047860?v=4",
"profile": "https://github.com/PapiPeppers",
"contributions": [
"design"
]
},
{
"login": "erresen",
"name": "erresen",
"avatar_url": "https://avatars.githubusercontent.com/u/5566441?v=4",
"profile": "https://erresen.github.io",
"contributions": [
"doc"
]
},
{
"login": "icy-comet",
"name": "Aniket Teredesai",
"avatar_url": "https://avatars.githubusercontent.com/u/50461557?v=4",
"profile": "https://aniketteredesai.com",
"contributions": [
"doc"
]
},
{
"login": "sdebruyn",
"name": "Sam Debruyn",
"avatar_url": "https://avatars.githubusercontent.com/u/963413?v=4",
"profile": "https://debruyn.dev",
"contributions": [
"code"
]
},
{
"login": "larserikfinholt",
"name": "Lars Erik Finholt",
"avatar_url": "https://avatars.githubusercontent.com/u/1328417?v=4",
"profile": "https://github.com/larserikfinholt",
"contributions": [
"code"
]
},
{
"login": "simorgh1",
"name": "Bahram Maravandi",
"avatar_url": "https://avatars.githubusercontent.com/u/5792905?v=4",
"profile": "https://github.com/simorgh1",
"contributions": [
"code"
]
},
{
"login": "calebjenkins",
"name": "Caleb Jenkins",
"avatar_url": "https://avatars.githubusercontent.com/u/211001?v=4",
"profile": "http://developingux.com",
"contributions": [
"ideas"
]
},
{
"login": "FlavienMacquignon",
"name": "FlavienMacquignon",
"avatar_url": "https://avatars.githubusercontent.com/u/70152975?v=4",
"profile": "https://github.com/FlavienMacquignon",
"contributions": [
"doc"
]
},
{
"login": "Victoria-DR",
"name": "Victoria",
"avatar_url": "https://avatars.githubusercontent.com/u/68347113?v=4",
"profile": "https://github.com/Victoria-DR",
"contributions": [
"design"
]
},
{
"login": "UlanaXY",
"name": "Mikolaj",
"avatar_url": "https://avatars.githubusercontent.com/u/12629308?v=4",
"profile": "https://github.com/UlanaXY",
"contributions": [
"doc"
]
},
{
"login": "markbullplus",
"name": "markbull",
"avatar_url": "https://avatars.githubusercontent.com/u/88931495?v=4",
"profile": "https://github.com/markbullplus",
"contributions": [
"design"
]
},
{
"login": "brian6932",
"name": "Brian",
"avatar_url": "https://avatars.githubusercontent.com/u/18603393?v=4",
"profile": "https://github.com/brian6932",
"contributions": [
"code"
]
},
{
"login": "patHyatt",
"name": "Patrick Hyatt",
"avatar_url": "https://avatars.githubusercontent.com/u/296125?v=4",
"profile": "http://www.patrickhyatt.com",
"contributions": [
"doc"
]
},
{
"login": "hezhizhen",
"name": "Zhizhen He",
"avatar_url": "https://avatars.githubusercontent.com/u/7611700?v=4",
"profile": "https://github.com/hezhizhen",
"contributions": [
"code"
]
},
{
"login": "jedwillick",
"name": "Jed Willick",
"avatar_url": "https://avatars.githubusercontent.com/u/85419773?v=4",
"profile": "https://github.com/jedwillick",
"contributions": [
"code"
]
},
{
"login": "eltociear",
"name": "Ikko Ashimine",
"avatar_url": "https://avatars.githubusercontent.com/u/22633385?v=4",
"profile": "https://bandism.net/",
"contributions": [
"doc"
]
},
{
"login": "CapularisPerpetua",
"name": "Courtney Caldwell",
"avatar_url": "https://avatars.githubusercontent.com/u/32304933?v=4",
"profile": "https://prokopto.dev/",
"contributions": [
"doc"
]
},
{
"login": "rfverbruggen",
"name": "Robbert Verbruggen",
"avatar_url": "https://avatars.githubusercontent.com/u/2320197?v=4",
"profile": "https://github.com/rfverbruggen",
"contributions": [
"code"
]
},
{
"login": "Merlin2001",
"name": "Marcus Mangelsdorf",
"avatar_url": "https://avatars.githubusercontent.com/u/13134791?v=4",
"profile": "https://github.com/Merlin2001",
"contributions": [
"doc"
]
},
{
"login": "andresrinivasan",
"name": "André Srinivasan",
"avatar_url": "https://avatars.githubusercontent.com/u/134301?v=4",
"profile": "http://linkedin.com/andresrinivasan",
"contributions": [
"doc"
]
},
{
"login": "ehawman-rosenberg",
"name": "ehawman-rosenberg",
"avatar_url": "https://avatars.githubusercontent.com/u/81652082?v=4",
"profile": "https://github.com/ehawman-rosenberg",
"contributions": [
"doc",
"code"
]
},
{
"login": "claudiospizzi",
"name": "Claudio Spizzi",
"avatar_url": "https://avatars.githubusercontent.com/u/1934246?v=4",
"profile": "https://spizzi.net/",
"contributions": [
"doc"
]
},
{
"login": "estruyf",
"name": "Elio Struyf",
"avatar_url": "https://avatars.githubusercontent.com/u/2900833?v=4",
"profile": "https://www.eliostruyf.com",
"contributions": [
"doc",
"code"
]
},
{
"login": "oalders",
"name": "Olaf Alders",
"avatar_url": "https://avatars.githubusercontent.com/u/96205?v=4",
"profile": "https://www.olafalders.com/",
"contributions": [
"doc"
]
},
{
"login": "DavidDeSloovere",
"name": "David De Sloovere",
"avatar_url": "https://avatars.githubusercontent.com/u/352626?v=4",
"profile": "https://blog.deltacode.be",
"contributions": [
"code"
]
},
{
"login": "LensPlaysGames",
"name": "LensPlaysGames",
"avatar_url": "https://avatars.githubusercontent.com/u/69637718?v=4",
"profile": "https://lensor-radii.netlify.app",
"contributions": [
"doc"
]
},
{
"login": "atakiya",
"name": "Alex 'Avunia' Takiya",
"avatar_url": "https://avatars.githubusercontent.com/u/6952402?v=4",
"profile": "https://takiya.eu",
"contributions": [
"code"
]
},
{
"login": "kenmorse",
"name": "kenmorse",
"avatar_url": "https://avatars.githubusercontent.com/u/63734484?v=4",
"profile": "https://github.com/kenmorse",
"contributions": [
"doc"
]
},
{
"login": "xadozuk",
"name": "xadozuk",
"avatar_url": "https://avatars.githubusercontent.com/u/780423?v=4",
"profile": "https://github.com/xadozuk",
"contributions": [
"code"
]
},
{
"login": "vedantmgoyal9",
"name": "Vedant",
"avatar_url": "https://avatars.githubusercontent.com/u/83997633?v=4",
"profile": "https://bittu.eu.org",
"contributions": [
"design",
"code"
]
},
{
"login": "lewis-yeung",
"name": "L. Yeung",
"avatar_url": "https://avatars.githubusercontent.com/u/83903009?v=4",
"profile": "https://github.com/lewis-yeung",
"contributions": [
"code",
"doc",
"design"
]
},
{
"login": "antoson",
"name": "Ondrej Antos",
"avatar_url": "https://avatars.githubusercontent.com/u/36371990?v=4",
"profile": "https://github.com/antoson",
"contributions": [
"doc"
]
},
{
"login": "Bahnschrift",
"name": "Bahnschrift",
"avatar_url": "https://avatars.githubusercontent.com/u/31170809?v=4",
"profile": "https://github.com/Bahnschrift",
"contributions": [
"doc"
]
},
{
"login": "jakeboone02",
"name": "Jake Boone",
"avatar_url": "https://avatars.githubusercontent.com/u/366438?v=4",
"profile": "https://github.com/jakeboone02",
"contributions": [
"doc"
]
},
{
"login": "kapsiR",
"name": "kapsiR",
"avatar_url": "https://avatars.githubusercontent.com/u/7165033?v=4",
"profile": "https://github.com/kapsiR",
"contributions": [
"doc",
"code"
]
},
{
"login": "csrakowski",
"name": "Christiaan Rakowski",
"avatar_url": "https://avatars.githubusercontent.com/u/1303967?v=4",
"profile": "https://github.com/csrakowski",
"contributions": [
"code",
"doc"
]
},
{
"login": "mosullivan93",
"name": "Mitchell J. O'Sullivan",
"avatar_url": "https://avatars.githubusercontent.com/u/7676935?v=4",
"profile": "https://github.com/mosullivan93",
"contributions": [
"code",
"doc"
]
},
{
"login": "felpel",
"name": "Félix Pelletier",
"avatar_url": "https://avatars.githubusercontent.com/u/5000004?v=4",
"profile": "https://github.com/felpel",
"contributions": [
"doc"
]
},
{
"login": "ralish",
"name": "Samuel D. Leslie",
"avatar_url": "https://avatars.githubusercontent.com/u/3214803?v=4",
"profile": "https://nexiom.net/",
"contributions": [
"code"
]
},
{
"login": "AjayKMehta",
"name": "Ajay Mehta",
"avatar_url": "https://avatars.githubusercontent.com/u/11180071?v=4",
"profile": "https://github.com/AjayKMehta",
"contributions": [
"code"
]
},
{
"login": "the-eduardo",
"name": "the-eduardo",
"avatar_url": "https://avatars.githubusercontent.com/u/40523695?v=4",
"profile": "https://github.com/the-eduardo",
"contributions": [
"doc"
]
},
{
"login": "antonpiatek",
"name": "Anton Piatek",
"avatar_url": "https://avatars.githubusercontent.com/u/175077?v=4",
"profile": "https://github.com/antonpiatek",
"contributions": [
"doc"
]
},
{
"login": "prodehghan",
"name": "Mohammad Dehghan",
"avatar_url": "https://avatars.githubusercontent.com/u/1384790?v=4",
"profile": "https://careers.stackoverflow.com/dehghan",
"contributions": [
"doc"
]
},
{
"login": "bhagerty",
"name": "bhagerty",
"avatar_url": "https://avatars.githubusercontent.com/u/7828454?v=4",
"profile": "https://github.com/bhagerty",
"contributions": [
"doc"
]
},
{
"login": "CodyScavenger",
"name": "Cody Scavenger",
"avatar_url": "https://avatars.githubusercontent.com/u/94334877?v=4",
"profile": "https://github.com/CodyScavenger",
"contributions": [
"doc"
]
},
{
"login": "FWest98",
"name": "Floris Westerman",
"avatar_url": "https://avatars.githubusercontent.com/u/1918658?v=4",
"profile": "http://fwest98.nl/",
"contributions": [
"code"
]
},
{
"login": "mjcarman",
"name": "Michael Carman",
"avatar_url": "https://avatars.githubusercontent.com/u/121028?v=4",
"profile": "https://github.com/mjcarman",
"contributions": [
"code",
"doc"
]
},
{
"login": "entr0pia",
"name": "风沐白",
"avatar_url": "https://avatars.githubusercontent.com/u/30486766?v=4",
"profile": "https://github.com/entr0pia",
"contributions": [
"design"
]
},
{
"login": "schallm",
"name": "Michael T. Schall",
"avatar_url": "https://avatars.githubusercontent.com/u/331167?v=4",
"profile": "https://github.com/schallm",
"contributions": [
"design"
]
},
{
"login": "craiglpeters",
"name": "Craig Peters",
"avatar_url": "https://avatars.githubusercontent.com/u/9445180?v=4",
"profile": "https://github.com/craiglpeters",
"contributions": [
"doc"
]
},
{
"login": "dorian-li",
"name": "Dongyu Li",
"avatar_url": "https://avatars.githubusercontent.com/u/49279922?v=4",
"profile": "https://github.com/dorian-li",
"contributions": [
"design"
]
},
{
"login": "cyberbliss",
"name": "Stephen Judd",
"avatar_url": "https://avatars.githubusercontent.com/u/5401528?v=4",
"profile": "https://github.com/cyberbliss",
"contributions": [
"code"
]
},
{
"login": "douugdev",
"name": "Douglas Silva",
"avatar_url": "https://avatars.githubusercontent.com/u/59324692?v=4",
"profile": "https://douug.dev",
"contributions": [
"doc"
]
},
{
"login": "BoseSj",
"name": "SJ Basak",
"avatar_url": "https://avatars.githubusercontent.com/u/58129377?v=4",
"profile": "https://github.com/BoseSj",
"contributions": [
"design"
]
},
{
"login": "treed",
"name": "Ted Reed",
"avatar_url": "https://avatars.githubusercontent.com/u/71910?v=4",
"profile": "http://tedreed.info",
"contributions": [
"code",
"doc"
]
},
{
"login": "asportnoy",
"name": "Albert Portnoy",
"avatar_url": "https://avatars.githubusercontent.com/u/14863373?v=4",
"profile": "http://albertp.dev",
"contributions": [
"code",
"doc"
]
},
{
"login": "Lemorz56",
"name": "Sebastian",
"avatar_url": "https://avatars.githubusercontent.com/u/1346676?v=4",
"profile": "https://www.msbrg.net/",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "mirsella",
"name": "Lucas",
"avatar_url": "https://avatars.githubusercontent.com/u/45905567?v=4",
"profile": "https://github.com/mirsella",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "ethansocal",
"name": "Ethan",
"avatar_url": "https://avatars.githubusercontent.com/u/79533577?v=4",
"profile": "https://github.com/ethansocal",
"contributions": [
"doc"
]
},
{
"login": "astronaako",
"name": "Mohamed Naamy",
"avatar_url": "https://avatars.githubusercontent.com/u/18577543?v=4",
"profile": "https://github.com/astronaako",
"contributions": [
"design"
]
},
{
"login": "bend-n",
"name": "bendn",
"avatar_url": "https://avatars.githubusercontent.com/u/70787919?v=4",
"profile": "http://bend-n.github.io",
"contributions": [
"design"
]
},
{
"login": "davidanthoff",
"name": "David Anthoff",
"avatar_url": "https://avatars.githubusercontent.com/u/1036561?v=4",
"profile": "http://www.david-anthoff.com",
"contributions": [
"code",
"doc"
]
},
{
"login": "jooooel",
"name": "jooooel",
"avatar_url": "https://avatars.githubusercontent.com/u/9303280?v=4",
"profile": "https://github.com/jooooel",
"contributions": [
"doc"
]
},
{
"login": "maxlandon",
"name": "maxlandon",
"avatar_url": "https://avatars.githubusercontent.com/u/25826036?v=4",
"profile": "https://github.com/maxlandon",
"contributions": [
"code"
]
},
{
"login": "lino-levan",
"name": "Lino Le Van",
"avatar_url": "https://avatars.githubusercontent.com/u/11367844?v=4",
"profile": "https://linolevan.com",
"contributions": [
"doc"
]
},
{
"login": "dvlprJobayer",
"name": "Jobayer Ahammed Patwary",
"avatar_url": "https://avatars.githubusercontent.com/u/76583359?v=4",
"profile": "https://github.com/dvlprJobayer",
"contributions": [
"design"
]
},
{
"login": "NoF0rte",
"name": "NoF0rte",
"avatar_url": "https://avatars.githubusercontent.com/u/64100993?v=4",
"profile": "https://github.com/NoF0rte",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "LNKLEO",
"name": "LNKLEO",
"avatar_url": "https://avatars.githubusercontent.com/u/10334184?v=4",
"profile": "https://github.com/LNKLEO",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "kamfaima",
"name": "kamfaima",
"avatar_url": "https://avatars.githubusercontent.com/u/23546392?v=4",
"profile": "https://github.com/kamfaima",
"contributions": [
"design"
]
},
{
"login": "dhrdlicka",
"name": "David Hrdlička",
"avatar_url": "https://avatars.githubusercontent.com/u/13226155?v=4",
"profile": "https://github.com/dhrdlicka",
"contributions": [
"code",
"doc"
]
},
{
"login": "davidcourtney",
"name": "David Courtney",
"avatar_url": "https://avatars.githubusercontent.com/u/1019134?v=4",
"profile": "http://davidcourtney.com",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "Jensdevloo",
"name": "jensdevloo",
"avatar_url": "https://avatars.githubusercontent.com/u/2276152?v=4",
"profile": "https://github.com/Jensdevloo",
"contributions": [
"doc"
]
},
{
"login": "thomasdoerr",
"name": "Thomas Dörr",
"avatar_url": "https://avatars.githubusercontent.com/u/6919685?v=4",
"profile": "https://github.com/thomasdoerr",
"contributions": [
"design"
]
},
{
"login": "SvenAelterman",
"name": "Sven Aelterman",
"avatar_url": "https://avatars.githubusercontent.com/u/17446043?v=4",
"profile": "https://blog.aelterman.com",
"contributions": [
"doc"
]
},
{
"login": "CodexLink",
"name": "Janrey Licas",
"avatar_url": "https://avatars.githubusercontent.com/u/5953927?v=4",
"profile": "https://github.com/CodexLink",
"contributions": [
"design",
"doc",
"code"
]
},
{
"login": "padilo",
"name": "Pablo Díaz-López",
"avatar_url": "https://avatars.githubusercontent.com/u/783959?v=4",
"profile": "https://github.com/padilo",
"contributions": [
"doc"
]
},
{
"login": "DarkMagicSource",
"name": "Caitlyn Williams",
"avatar_url": "https://avatars.githubusercontent.com/u/35950530?v=4",
"profile": "https://github.com/DarkMagicSource",
"contributions": [
"doc"
]
},
{
"login": "gork3n",
"name": "Christopher Henderson",
"avatar_url": "https://avatars.githubusercontent.com/u/1086155?v=4",
"profile": "https://github.com/gork3n",
"contributions": [
"design"
]
},
{
"login": "cabauman",
"name": "Colt",
"avatar_url": "https://avatars.githubusercontent.com/u/6819362?v=4",
"profile": "https://www.coltbauman.com",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "craftzneko",
"name": "craftzneko",
"avatar_url": "https://avatars.githubusercontent.com/u/662108?v=4",
"profile": "https://github.com/craftzneko",
"contributions": [
"doc"
]
},
{
"login": "atlanswer",
"name": "甘亭",
"avatar_url": "https://avatars.githubusercontent.com/u/17683244?v=4",
"profile": "http://waferlab.dev",
"contributions": [
"doc"
]
},
{
"login": "Mertsch",
"name": "Mertsch",
"avatar_url": "https://avatars.githubusercontent.com/u/9402861?v=4",
"profile": "https://github.com/Mertsch",
"contributions": [
"doc"
]
},
{
"login": "marc2332",
"name": "Marc Espín",
"avatar_url": "https://avatars.githubusercontent.com/u/38158676?v=4",
"profile": "https://mespin.me/",
"contributions": [
"code"
]
},
{
"login": "ksdpmx",
"name": "jasonz",
"avatar_url": "https://avatars.githubusercontent.com/u/3256083?v=4",
"profile": "https://github.com/ksdpmx",
"contributions": [
"code",
"doc"
]
},
{
"login": "bsiegert",
"name": "Benny Siegert",
"avatar_url": "https://avatars.githubusercontent.com/u/866330?v=4",
"profile": "https://bentsukun.ch",
"contributions": [
"code"
]
},
{
"login": "kema-dev",
"name": "kema",
"avatar_url": "https://avatars.githubusercontent.com/u/54537427?v=4",
"profile": "http://www.kemadev.fr/fr/",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "mavaddat",
"name": "Mavaddat Javid",
"avatar_url": "https://avatars.githubusercontent.com/u/5055400?v=4",
"profile": "http://mavaddat.ca",
"contributions": [
"code"
]
},
{
"login": "iavael",
"name": "Iavael",
"avatar_url": "https://avatars.githubusercontent.com/u/905853?v=4",
"profile": "https://iavael.name/",
"contributions": [
"code"
]
},
{
"login": "Kushal-Chandar",
"name": "Kushal-Chandar",
"avatar_url": "https://avatars.githubusercontent.com/u/83660514?v=4",
"profile": "https://github.com/Kushal-Chandar",
"contributions": [
"design"
]
},
{
"login": "BigBear0812",
"name": "Matthew Miller",
"avatar_url": "https://avatars.githubusercontent.com/u/2429638?v=4",
"profile": "http://www.project-miller.com/",
"contributions": [
"code",
"doc"
]
},
{
"login": "javidcf",
"name": "Javier Dehesa",
"avatar_url": "https://avatars.githubusercontent.com/u/1098280?v=4",
"profile": "https://github.com/javidcf",
"contributions": [
"code"
]
},
{
"login": "alexvy86",
"name": "Alex Villarreal",
"avatar_url": "https://avatars.githubusercontent.com/u/716334?v=4",
"profile": "https://alex-v.blog/",
"contributions": [
"code"
]
},
{
"login": "krzysdz",
"name": "krzysdz",
"avatar_url": "https://avatars.githubusercontent.com/u/12915102?v=4",
"profile": "https://github.com/krzysdz",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "BasLijten",
"name": "Bas Lijten",
"avatar_url": "https://avatars.githubusercontent.com/u/11842067?v=4",
"profile": "http://blog.baslijten.com",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "ParkerM",
"name": "Parker Mauney",
"avatar_url": "https://avatars.githubusercontent.com/u/5124113?v=4",
"profile": "https://github.com/ParkerM",
"contributions": [
"design"
]
},
{
"login": "gbrusella",
"name": "Gonzalo Brusella",
"avatar_url": "https://avatars.githubusercontent.com/u/115679?v=4",
"profile": "http://www.brusella.com.ar",
"contributions": [
"doc"
]
},
{
"login": "krokofant",
"name": "Emil Sundin",
"avatar_url": "https://avatars.githubusercontent.com/u/5908498?v=4",
"profile": "https://github.com/krokofant",
"contributions": [
"doc"
]
},
{
"login": "dysuby",
"name": "dysuby",
"avatar_url": "https://avatars.githubusercontent.com/u/26317510?v=4",
"profile": "http://dysuby.github.io",
"contributions": [
"doc"
]
},
{
"login": "dorokhin-bohdan",
"name": "Bohdan Dorokhin",
"avatar_url": "https://avatars.githubusercontent.com/u/24988081?v=4",
"profile": "https://github.com/dorokhin-bohdan",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "CY-Pan",
"name": "Ad Red",
"avatar_url": "https://avatars.githubusercontent.com/u/59761962?v=4",
"profile": "https://github.com/CY-Pan",
"contributions": [
"design"
]
},
{
"login": "nopeless",
"name": "nopeless",
"avatar_url": "https://avatars.githubusercontent.com/u/38830903?v=4",
"profile": "https://github.com/nopeless",
"contributions": [
"code",
"doc",
"design"
]
},
{
"login": "vinhloc30796",
"name": "Loc Nguyen",
"avatar_url": "https://avatars.githubusercontent.com/u/19675202?v=4",
"profile": "https://linkedin.com/in/vinhloc30796",
"contributions": [
"doc"
]
},
{
"login": "Coder-Tavi",
"name": "Tavi",
"avatar_url": "https://avatars.githubusercontent.com/u/66774833?v=4",
"profile": "https://tavis.page",
"contributions": [
"doc"
]
},
{
"login": "NicholasDawson",
"name": "Nick Dawson",
"avatar_url": "https://avatars.githubusercontent.com/u/37987430?v=4",
"profile": "http://ndawson.me",
"contributions": [
"doc"
]
},
{
"login": "jntrnr",
"name": "JT",
"avatar_url": "https://avatars.githubusercontent.com/u/547158?v=4",
"profile": "https://www.jntrnr.com/",
"contributions": [
"code"
]
},
{
"login": "ChandanChainani",
"name": "ChandanChainani",
"avatar_url": "https://avatars.githubusercontent.com/u/28807775?v=4",
"profile": "https://github.com/ChandanChainani",
"contributions": [
"doc"
]
},
{
"login": "jenspinney",
"name": "Jen Spinney",
"avatar_url": "https://avatars.githubusercontent.com/u/3200507?v=4",
"profile": "https://github.com/jenspinney",
"contributions": [
"code",
"doc"
]
},
{
"login": "rotu",
"name": "Dan Rose",
"avatar_url": "https://avatars.githubusercontent.com/u/119948?v=4",
"profile": "https://github.com/rotu",
"contributions": [
"code"
]
},
{
"login": "darthwalsh",
"name": "Carl Walsh",
"avatar_url": "https://avatars.githubusercontent.com/u/2829438?v=4",
"profile": "https://carlwa.com",
"contributions": [
"doc"
]
},
{
"login": "ercpereda",
"name": "Ernesto R. C. Pereda",
"avatar_url": "https://avatars.githubusercontent.com/u/13546685?v=4",
"profile": "https://github.com/ercpereda",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "0Ky",
"name": "cryptix",
"avatar_url": "https://avatars.githubusercontent.com/u/16103757?v=4",
"profile": "https://github.com/0Ky",
"contributions": [
"doc"
]
},
{
"login": "ehawman",
"name": "Evan Hawman",
"avatar_url": "https://avatars.githubusercontent.com/u/52979227?v=4",
"profile": "https://github.com/ehawman",
"contributions": [
"design"
]
},
{
"login": "ZerdoX-x",
"name": "Mark Lansky",
"avatar_url": "https://avatars.githubusercontent.com/u/49815452?v=4",
"profile": "https://zerdox.dev",
"contributions": [
"design"
]
},
{
"login": "pulsation",
"name": "pulsation",
"avatar_url": "https://avatars.githubusercontent.com/u/1838397?v=4",
"profile": "https://github.com/pulsation",
"contributions": [
"code"
]
},
{
"login": "oriionn",
"name": "orionsource",
"avatar_url": "https://avatars.githubusercontent.com/u/38093786?v=4",
"profile": "https://oriondev.fr",
"contributions": [
"design"
]
},
{
"login": "CesarGBkR",
"name": "Cesar Garduño",
"avatar_url": "https://avatars.githubusercontent.com/u/99093357?v=4",
"profile": "https://github.com/CesarGBkR",
"contributions": [
"doc"
]
},
{
"login": "Adi-vig",
"name": "Aditya Sakhare",
"avatar_url": "https://avatars.githubusercontent.com/u/123308369?v=4",
"profile": "https://github.com/Adi-vig",
"contributions": [
"design"
]
},
{
"login": "deepak-dev-96",
"name": "Deepak Dev",
"avatar_url": "https://avatars.githubusercontent.com/u/134447761?v=4",
"profile": "https://github.com/deepak-dev-96",
"contributions": [
"doc"
]
},
{
"login": "warrenbuckley",
"name": "Warren Buckley",
"avatar_url": "https://avatars.githubusercontent.com/u/1389894?v=4",
"profile": "http://creativewebspecialist.co.uk",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "LunarMarathon",
"name": "LunarMarathon",
"avatar_url": "https://avatars.githubusercontent.com/u/113847439?v=4",
"profile": "https://github.com/LunarMarathon",
"contributions": [
"doc"
]
},
{
"login": "ginglis13",
"name": "Gavin Inglis",
"avatar_url": "https://avatars.githubusercontent.com/u/43075615?v=4",
"profile": "https://ginglis.me",
"contributions": [
"code"
]
},
{
"login": "jaliyaudagedara",
"name": "Jaliya Udagedara",
"avatar_url": "https://avatars.githubusercontent.com/u/5653381?v=4",
"profile": "http://jaliyaudagedara.blogspot.com",
"contributions": [
"doc"
]
},
{
"login": "BPplays",
"name": "BPplays",
"avatar_url": "https://avatars.githubusercontent.com/u/58504799?v=4",
"profile": "https://github.com/BPplays",
"contributions": [
"code"
]
},
{
"login": "mateusz-bajorek",
"name": "Mateusz Bajorek",
"avatar_url": "https://avatars.githubusercontent.com/u/11185738?v=4",
"profile": "https://github.com/mateusz-bajorek",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "joshbduncan",
"name": "Josh Duncan",
"avatar_url": "https://avatars.githubusercontent.com/u/44387852?v=4",
"profile": "http://joshbduncan.com",
"contributions": [
"doc"
]
},
{
"login": "princesaini",
"name": "Prince Saini",
"avatar_url": "https://avatars.githubusercontent.com/u/25565506?v=4",
"profile": "https://github.com/princesaini",
"contributions": [
"design"
]
},
{
"login": "fabriciojlm",
"name": "fabriciojlm",
"avatar_url": "https://avatars.githubusercontent.com/u/70244182?v=4",
"profile": "https://www.linkedin.com/in/fabriciojuliano/",
"contributions": [
"design"
]
},
{
"login": "SriRamanujam",
"name": "Sri Ramanujam",
"avatar_url": "https://avatars.githubusercontent.com/u/2983875?v=4",
"profile": "https://github.com/SriRamanujam",
"contributions": [
"code",
"doc"
]
},
{
"login": "Juneezee",
"name": "Eng Zer Jun",
"avatar_url": "https://avatars.githubusercontent.com/u/20135478?v=4",
"profile": "https://github.com/Juneezee",
"contributions": [
"code"
]
},
{
"login": "AlexJPotter",
"name": "Alex Potter",
"avatar_url": "https://avatars.githubusercontent.com/u/14200888?v=4",
"profile": "https://alexpotter.dev",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "mishmanners",
"name": "Michelle Mannering",
"avatar_url": "https://avatars.githubusercontent.com/u/36594527?v=4",
"profile": "http://mishmanners.info",
"contributions": [
"doc"
]
},
{
"login": "paulomorgado",
"name": "Paulo Morgado",
"avatar_url": "https://avatars.githubusercontent.com/u/470455?v=4",
"profile": "https://github.com/paulomorgado",
"contributions": [
"code",
"doc"
]
},
{
"login": "joadoumie",
"name": "joadoumie",
"avatar_url": "https://avatars.githubusercontent.com/u/98557455?v=4",
"profile": "https://github.com/joadoumie",
"contributions": [
"code",
"doc"
]
},
{
"login": "flanakin",
"name": "Michael Flanakin",
"avatar_url": "https://avatars.githubusercontent.com/u/399533?v=4",
"profile": "http://about.me/flanakin",
"contributions": [
"doc"
]
},
{
"login": "thiagoszbarros",
"name": "Thiago Barros",
"avatar_url": "https://avatars.githubusercontent.com/u/88802518?v=4",
"profile": "https://www.linkedin.com/in/thiagobarros95/",
"contributions": [
"design"
]
},
{
"login": "TendTo",
"name": "Tend",
"avatar_url": "https://avatars.githubusercontent.com/u/65033249?v=4",
"profile": "https://github.com/TendTo",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "KibbeWater",
"name": "Snow",
"avatar_url": "https://avatars.githubusercontent.com/u/35224538?v=4",
"profile": "https://kibbewater.com",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "randombenj",
"name": "Benj Fassbind",
"avatar_url": "https://avatars.githubusercontent.com/u/5184499?v=4",
"profile": "https://github.com/randombenj",
"contributions": [
"code"
]
},
{
"login": "liudonghua123",
"name": "liudonghua",
"avatar_url": "https://avatars.githubusercontent.com/u/2276718?v=4",
"profile": "http://blog.liudonghua.top",
"contributions": [
"code"
]
},
{
"login": "Somoy73",
"name": "Somoy Subandhu",
"avatar_url": "https://avatars.githubusercontent.com/u/40368688?v=4",
"profile": "http://somoy.me",
"contributions": [
"design"
]
},
{
"login": "oleksbabieiev",
"name": "Oleksandr Babieiev",
"avatar_url": "https://avatars.githubusercontent.com/u/64398691?v=4",
"profile": "https://github.com/oleksbabieiev",
"contributions": [
"code",
"doc",
"design"
]
},
{
"login": "mrbeardad",
"name": "Heache Bear",
"avatar_url": "https://avatars.githubusercontent.com/u/54128430?v=4",
"profile": "https://github.com/mrbeardad",
"contributions": [
"doc"
]
},
{
"login": "ChrisNSki",
"name": "Christopher Narowski",
"avatar_url": "https://avatars.githubusercontent.com/u/125232146?v=4",
"profile": "http://ensif.com",
"contributions": [
"design"
]
},
{
"login": "sino1641",
"name": "Sin",
"avatar_url": "https://avatars.githubusercontent.com/u/13870295?v=4",
"profile": "https://github.com/sino1641",
"contributions": [
"doc"
]
},
{
"login": "kkk669",
"name": "Kenta Kubo",
"avatar_url": "https://avatars.githubusercontent.com/u/601636?v=4",
"profile": "https://kebo.xyz",
"contributions": [
"doc"
]
},
{
"login": "mfedatto",
"name": "MFedatto",
"avatar_url": "https://avatars.githubusercontent.com/u/5623739?v=4",
"profile": "http://mfedatto.com",
"contributions": [
"doc"
]
},
{
"login": "RiikkaDream",
"name": "Riikka",
"avatar_url": "https://avatars.githubusercontent.com/u/56921531?v=4",
"profile": "https://www.linkedin.com/in/riikka-l-861694b2/",
"contributions": [
"doc"
]
},
{
"login": "srpmtt",
"name": "srpmtt",
"avatar_url": "https://avatars.githubusercontent.com/u/11175503?v=4",
"profile": "https://github.com/srpmtt",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "Chris-Johnston",
"name": "Chris Johnston",
"avatar_url": "https://avatars.githubusercontent.com/u/16418643?v=4",
"profile": "https://chris-johnston.me",
"contributions": [
"doc"
]
},
{
"login": "Daimonion1980",
"name": "Thomas",
"avatar_url": "https://avatars.githubusercontent.com/u/12880413?v=4",
"profile": "https://github.com/Daimonion1980",
"contributions": [
"design"
]
},
{
"login": "VEERT00X",
"name": "Veko",
"avatar_url": "https://avatars.githubusercontent.com/u/72668825?v=4",
"profile": "https://veert00x.com",
"contributions": [
"doc"
]
},
{
"login": "lucascosti",
"name": "Lucas Costi",
"avatar_url": "https://avatars.githubusercontent.com/u/4434330?v=4",
"profile": "https://lucascosti.com",
"contributions": [
"code"
]
},
{
"login": "gergelyk",
"name": "Grzegorz Krasoń",
"avatar_url": "https://avatars.githubusercontent.com/u/11185582?v=4",
"profile": "http://krason.dev/",
"contributions": [
"code"
]
},
{
"login": "rockyoung",
"name": "rockyoung",
"avatar_url": "https://avatars.githubusercontent.com/u/1207971?v=4",
"profile": "https://github.com/rockyoung",
"contributions": [
"code",
"doc"
]
},
{
"login": "shravanasati",
"name": "Shravan Asati",
"avatar_url": "https://avatars.githubusercontent.com/u/69118069?v=4",
"profile": "https://github.com/shravanasati",
"contributions": [
"design"
]
},
{
"login": "lzecca78",
"name": "Luca Zecca",
"avatar_url": "https://avatars.githubusercontent.com/u/3881844?v=4",
"profile": "https://github.com/lzecca78",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "jreilly-lukava",
"name": "Joshua Reilly",
"avatar_url": "https://avatars.githubusercontent.com/u/30353736?v=4",
"profile": "https://github.com/jreilly-lukava",
"contributions": [
"code",
"doc"
]
},
{
"login": "ivan-the-terrible",
"name": "Ivan",
"avatar_url": "https://avatars.githubusercontent.com/u/56458442?v=4",
"profile": "https://ivan-the-terrible.github.io/",
"contributions": [
"design",
"doc",
"code"
]
},
{
"login": "mountcount",
"name": "mountcount",
"avatar_url": "https://avatars.githubusercontent.com/u/166301065?v=4",
"profile": "https://github.com/mountcount",
"contributions": [
"doc"
]
},
{
"login": "Bondrake",
"name": "Bondrake",
"avatar_url": "https://avatars.githubusercontent.com/u/11696?v=4",
"profile": "https://github.com/Bondrake",
"contributions": [
"design",
"code"
]
},
{
"login": "R00dRallec",
"name": "R00dRallec",
"avatar_url": "https://avatars.githubusercontent.com/u/9081954?v=4",
"profile": "https://github.com/R00dRallec",
"contributions": [
"code",
"doc"
]
},
{
"login": "publicfacingusername",
"name": "Justin Wolfington",
"avatar_url": "https://avatars.githubusercontent.com/u/13956145?v=4",
"profile": "https://github.com/publicfacingusername",
"contributions": [
"code"
]
},
{
"login": "jtracey93",
"name": "Jack Tracey",
"avatar_url": "https://avatars.githubusercontent.com/u/41163455?v=4",
"profile": "https://bio.link/jacktracey",
"contributions": [
"design"
]
},
{
"login": "MarkDaveny",
"name": "MarkDaveny",
"avatar_url": "https://avatars.githubusercontent.com/u/168091250?v=4",
"profile": "https://github.com/MarkDaveny",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "tiwahu",
"name": "Timothy Huber",
"avatar_url": "https://avatars.githubusercontent.com/u/590564?v=4",
"profile": "http://www.tiwahu.com/",
"contributions": [
"design"
]
},
{
"login": "YashJM",
"name": "Yash Mistry",
"avatar_url": "https://avatars.githubusercontent.com/u/63824041?v=4",
"profile": "http://yashjmistry.me",
"contributions": [
"design"
]
},
{
"login": "jlabonski",
"name": "Jeffrey Labonski",
"avatar_url": "https://avatars.githubusercontent.com/u/2981369?v=4",
"profile": "https://github.com/jlabonski",
"contributions": [
"code",
"doc"
]
},
{
"login": "herbygillot",
"name": "Herby Gillot",
"avatar_url": "https://avatars.githubusercontent.com/u/618376?v=4",
"profile": "https://github.com/herbygillot",
"contributions": [
"doc"
]
},
{
"login": "arjan-s",
"name": "arjan-s",
"avatar_url": "https://avatars.githubusercontent.com/u/10400299?v=4",
"profile": "https://github.com/arjan-s",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "0323pin",
"name": "pin",
"avatar_url": "https://avatars.githubusercontent.com/u/90570748?v=4",
"profile": "https://github.com/0323pin",
"contributions": [
"code"
]
},
{
"login": "FireIsGood",
"name": "FireIsGood",
"avatar_url": "https://avatars.githubusercontent.com/u/109556932?v=4",
"profile": "http://fireis.dev",
"contributions": [
"doc",
"code"
]
},
{
"login": "Joxtacy",
"name": "Jesper Hasselquist",
"avatar_url": "https://avatars.githubusercontent.com/u/10127673?v=4",
"profile": "https://github.com/Joxtacy",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "aaronpowell",
"name": "Aaron Powell",
"avatar_url": "https://avatars.githubusercontent.com/u/434140?v=4",
"profile": "https://www.aaron-powell.com",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "Dartypier",
"name": "Jacopo Zecchi",
"avatar_url": "https://avatars.githubusercontent.com/u/22201626?v=4",
"profile": "https://github.com/Dartypier",
"contributions": [
"doc"
]
},
{
"login": "rose-m",
"name": "Michael Rose",
"avatar_url": "https://avatars.githubusercontent.com/u/4354632?v=4",
"profile": "https://github.com/rose-m",
"contributions": [
"code",
"doc"
]
},
{
"login": "denehoffman",
"name": "Nathaniel D. Hoffman",
"avatar_url": "https://avatars.githubusercontent.com/u/36977879?v=4",
"profile": "http://denehoffman.com",
"contributions": [
"code",
"doc"
]
},
{
"login": "michaelschwobe",
"name": "Michael Schwobe",
"avatar_url": "https://avatars.githubusercontent.com/u/926242?v=4",
"profile": "https://schwobe.dev",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "Nibodhika",
"name": "Nibodhika",
"avatar_url": "https://avatars.githubusercontent.com/u/729967?v=4",
"profile": "https://github.com/Nibodhika",
"contributions": [
"code",
"doc"
]
},
{
"login": "sassdawe",
"name": "David Sass",
"avatar_url": "https://avatars.githubusercontent.com/u/10754765?v=4",
"profile": "http://davidsass.io",
"contributions": [
"doc"
]
},
{
"login": "carehart",
"name": "Charlie Arehart",
"avatar_url": "https://avatars.githubusercontent.com/u/389746?v=4",
"profile": "http://www.carehart.org",
"contributions": [
"doc"
]
},
{
"login": "aramikuto",
"name": "Aleksandr Kondrashov",
"avatar_url": "https://avatars.githubusercontent.com/u/116561995?v=4",
"profile": "https://github.com/aramikuto",
"contributions": [
"doc"
]
},
{
"login": "kimsey0",
"name": "Jacob Bundgaard",
"avatar_url": "https://avatars.githubusercontent.com/u/984760?v=4",
"profile": "https://jacobbundgaard.dk",
"contributions": [
"doc"
]
},
{
"login": "ThisaruGuruge",
"name": "Thisaru Guruge",
"avatar_url": "https://avatars.githubusercontent.com/u/40016057?v=4",
"profile": "https://thisaru.me",
"contributions": [
"doc"
]
},
{
"login": "edwin-shdw",
"name": "Edwin",
"avatar_url": "https://avatars.githubusercontent.com/u/62764562?v=4",
"profile": "https://github.com/edwin-shdw",
"contributions": [
"doc"
]
},
{
"login": "jcdickinson",
"name": "Jonathan Dickinson",
"avatar_url": "https://avatars.githubusercontent.com/u/522465?v=4",
"profile": "https://dickinson.id",
"contributions": [
"doc"
]
},
{
"login": "po1o",
"name": "Polo-François Poli",
"avatar_url": "https://avatars.githubusercontent.com/u/5702825?v=4",
"profile": "https://github.com/po1o",
"contributions": [
"code"
]
},
{
"login": "EDIflyer",
"name": "EDIflyer",
"avatar_url": "https://avatars.githubusercontent.com/u/13610277?v=4",
"profile": "https://github.com/EDIflyer",
"contributions": [
"code",
"doc"
]
},
{
"login": "felipebz",
"name": "Felipe Zorzo",
"avatar_url": "https://avatars.githubusercontent.com/u/13829?v=4",
"profile": "https://felipezorzo.com.br",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "DeepSpace2",
"name": "Adi Vaknin",
"avatar_url": "https://avatars.githubusercontent.com/u/6841988?v=4",
"profile": "https://github.com/DeepSpace2",
"contributions": [
"code",
"doc"
]
},
{
"login": "EladLeev",
"name": "Elad Leev",
"avatar_url": "https://avatars.githubusercontent.com/u/835319?v=4",
"profile": "https://leevs.dev/",
"contributions": [
"code",
"doc"
]
},
{
"login": "Soyvolon",
"name": "Bounds",
"avatar_url": "https://avatars.githubusercontent.com/u/16871668?v=4",
"profile": "https://github.com/Soyvolon",
"contributions": [
"code",
"doc"
]
},
{
"login": "Yash-Garg",
"name": "Yash Garg",
"avatar_url": "https://avatars.githubusercontent.com/u/33605526?v=4",
"profile": "http://yashgarg.dev",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "sarpuser",
"name": "Sarp User",
"avatar_url": "https://avatars.githubusercontent.com/u/23362324?v=4",
"profile": "https://github.com/sarpuser",
"contributions": [
"code",
"doc"
]
},
{
"login": "clemyan",
"name": "Clement Yan",
"avatar_url": "https://avatars.githubusercontent.com/u/41266433?v=4",
"profile": "https://github.com/clemyan",
"contributions": [
"code"
]
},
{
"login": "thep0y",
"name": "thep0y",
"avatar_url": "https://avatars.githubusercontent.com/u/51874567?v=4",
"profile": "https://github.com/thep0y",
"contributions": [
"code"
]
},
{
"login": "ClxUne09",
"name": "Artin",
"avatar_url": "https://avatars.githubusercontent.com/u/175628107?v=4",
"profile": "https://github.com/ClxUne09",
"contributions": [
"doc",
"code"
]
},
{
"login": "guspan-tanadi",
"name": "Guspan Tanadi",
"avatar_url": "https://avatars.githubusercontent.com/u/36249910?v=4",
"profile": "https://github.com/guspan-tanadi",
"contributions": [
"doc"
]
},
{
"login": "rocketraman",
"name": "Raman Gupta",
"avatar_url": "https://avatars.githubusercontent.com/u/53049?v=4",
"profile": "http://vivosys.com",
"contributions": [
"doc"
]
},
{
"login": "hsnabszhdn",
"name": "Hossein Abbasi",
"avatar_url": "https://avatars.githubusercontent.com/u/16090309?v=4",
"profile": "https://github.com/hsnabszhdn",
"contributions": [
"code"
]
},
{
"login": "kizivat",
"name": "David Kizivat",
"avatar_url": "https://avatars.githubusercontent.com/u/3535926?v=4",
"profile": "https://kizivat.eu",
"contributions": [
"code",
"doc"
]
},
{
"login": "mgrubb",
"name": "Michael Grubb",
"avatar_url": "https://avatars.githubusercontent.com/u/351301?v=4",
"profile": "https://github.com/mgrubb",
"contributions": [
"doc"
]
},
{
"login": "oliviaBahr",
"name": "Olivia Bahr",
"avatar_url": "https://avatars.githubusercontent.com/u/98684296?v=4",
"profile": "https://github.com/oliviaBahr",
"contributions": [
"code",
"doc"
]
},
{
"login": "garysassano",
"name": "Gary Sassano",
"avatar_url": "https://avatars.githubusercontent.com/u/10464497?v=4",
"profile": "https://github.com/garysassano",
"contributions": [
"design"
]
},
{
"login": "ilaumjd",
"name": "Ilham AM",
"avatar_url": "https://avatars.githubusercontent.com/u/16514431?v=4",
"profile": "https://github.com/ilaumjd",
"contributions": [
"code",
"doc"
]
},
{
"login": "trajano",
"name": "Archimedes Trajano",
"avatar_url": "https://avatars.githubusercontent.com/u/110627?v=4",
"profile": "https://trajano.net/",
"contributions": [
"doc"
]
},
{
"login": "devxpain",
"name": "devxpain",
"avatar_url": "https://avatars.githubusercontent.com/u/170700110?v=4",
"profile": "https://github.com/devxpain",
"contributions": [
"doc"
]
},
{
"login": "AntoninRuan",
"name": "Antonin Ruan",
"avatar_url": "https://avatars.githubusercontent.com/u/43148004?v=4",
"profile": "https://www.antonin-ruan.fr",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "00ll00",
"name": "00ll00",
"avatar_url": "https://avatars.githubusercontent.com/u/40747228?v=4",
"profile": "https://github.com/00ll00",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "ernstc",
"name": "Ernesto Cianciotta",
"avatar_url": "https://avatars.githubusercontent.com/u/130360?v=4",
"profile": "https://devnotes.ernstc.net/",
"contributions": [
"code",
"doc"
]
},
{
"login": "eelispeltola",
"name": "Eelis Peltola",
"avatar_url": "https://avatars.githubusercontent.com/u/15069074?v=4",
"profile": "https://github.com/eelispeltola",
"contributions": [
"code"
]
},
{
"login": "vshulcz",
"name": "Vlad Shulcz",
"avatar_url": "https://avatars.githubusercontent.com/u/99616188?v=4",
"profile": "https://github.com/vshulcz",
"contributions": [
"code"
]
},
{
"login": "Silzinc",
"name": "Silzinc",
"avatar_url": "https://avatars.githubusercontent.com/u/128738169?v=4",
"profile": "https://github.com/Silzinc",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "Hampter",
"name": "Noah Springer",
"avatar_url": "https://avatars.githubusercontent.com/u/23213489?v=4",
"profile": "https://github.com/Hampter",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "dusktreader",
"name": "Tucker Beck",
"avatar_url": "https://avatars.githubusercontent.com/u/713676?v=4",
"profile": "https://github.com/dusktreader",
"contributions": [
"code",
"doc"
]
},
{
"login": "Pietrucci-Blacher",
"name": "Sunshio",
"avatar_url": "https://avatars.githubusercontent.com/u/38607067?v=4",
"profile": "https://mpb-dev.fr/",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "pashagolub",
"name": "Pavlo Golub",
"avatar_url": "https://avatars.githubusercontent.com/u/9463113?v=4",
"profile": "https://pashagolub.github.io/blog",
"contributions": [
"doc"
]
},
{
"login": "heaths",
"name": "Heath Stewart",
"avatar_url": "https://avatars.githubusercontent.com/u/1532486?v=4",
"profile": "https://heaths.dev",
"contributions": [
"code"
]
},
{
"login": "HypheX",
"name": "Xelph",
"avatar_url": "https://avatars.githubusercontent.com/u/29693543?v=4",
"profile": "https://xelph.me",
"contributions": [
"design"
]
},
{
"login": "TristanLeclair",
"name": "Tristan Leclair-Vani",
"avatar_url": "https://avatars.githubusercontent.com/u/60434271?v=4",
"profile": "https://tristanleclair.github.io/personal-website/index.html",
"contributions": [
"doc"
]
},
{
"login": "vil02",
"name": "Piotr Idzik",
"avatar_url": "https://avatars.githubusercontent.com/u/65706193?v=4",
"profile": "https://github.com/vil02",
"contributions": [
"code"
]
},
{
"login": "wiyco",
"name": "wiyco",
"avatar_url": "https://avatars.githubusercontent.com/u/72733890?v=4",
"profile": "https://wiyco.dev",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "abhro",
"name": "abhro",
"avatar_url": "https://avatars.githubusercontent.com/u/5664668?v=4",
"profile": "https://github.com/abhro",
"contributions": [
"doc"
]
},
{
"login": "spg-iwilson",
"name": "Ivan Wilson",
"avatar_url": "https://avatars.githubusercontent.com/u/25376734?v=4",
"profile": "https://sharepointgurus.net",
"contributions": [
"design"
]
},
{
"login": "mdanish-kh",
"name": "Muhammad Danish",
"avatar_url": "https://avatars.githubusercontent.com/u/88161975?v=4",
"profile": "https://github.com/mdanish-kh",
"contributions": [
"doc"
]
},
{
"login": "BoscoDomingo",
"name": "Bosco Domingo",
"avatar_url": "https://avatars.githubusercontent.com/u/46006784?v=4",
"profile": "https://dub.sh/boscodomingo",
"contributions": [
"code"
]
},
{
"login": "Edu4rdSHL",
"name": "Eduard Tolosa",
"avatar_url": "https://avatars.githubusercontent.com/u/32582878?v=4",
"profile": "https://edu4rdshl.dev",
"contributions": [
"design",
"doc"
]
},
{
"login": "JamesAndrewJackson13",
"name": "James Jackson",
"avatar_url": "https://avatars.githubusercontent.com/u/27647566?v=4",
"profile": "https://github.com/JamesAndrewJackson13",
"contributions": [
"code",
"doc"
]
},
{
"login": "Mr-Vipi",
"name": "Jul Guga",
"avatar_url": "https://avatars.githubusercontent.com/u/58825526?v=4",
"profile": "https://github.com/Mr-Vipi",
"contributions": [
"design"
]
},
{
"login": "tiaoxizhan",
"name": "tiaoxizhan",
"avatar_url": "https://avatars.githubusercontent.com/u/178074436?v=4",
"profile": "http://txzhan.io",
"contributions": [
"code"
]
},
{
"login": "chrisant996",
"name": "Chris Antos",
"avatar_url": "https://avatars.githubusercontent.com/u/17440311?v=4",
"profile": "https://github.com/chrisant996",
"contributions": [
"code"
]
},
{
"login": "rbleattler",
"name": "Robert Bleattler",
"avatar_url": "https://avatars.githubusercontent.com/u/40604784?v=4",
"profile": "https://robertbleattler.com",
"contributions": [
"design"
]
},
{
"login": "d3v2a",
"name": "dev2a",
"avatar_url": "https://avatars.githubusercontent.com/u/1815655?v=4",
"profile": "https://artis-auxilium.fr/fr",
"contributions": [
"code"
]
},
{
"login": "luisegarduno",
"name": "Luis",
"avatar_url": "https://avatars.githubusercontent.com/u/30121656?v=4",
"profile": "http://gardunos.tech",
"contributions": [
"code"
]
},
{
"login": "tleepa",
"name": "Leepa",
"avatar_url": "https://avatars.githubusercontent.com/u/7734919?v=4",
"profile": "https://github.com/tleepa",
"contributions": [
"code",
"doc"
]
},
{
"login": "raylu",
"name": "raylu",
"avatar_url": "https://avatars.githubusercontent.com/u/90059?v=4",
"profile": "https://blog.raylu.net",
"contributions": [
"code",
"doc",
"design"
]
},
{
"login": "lechwolowski",
"name": "Lech Wołowski",
"avatar_url": "https://avatars.githubusercontent.com/u/33866950?v=4",
"profile": "https://github.com/lechwolowski",
"contributions": [
"code"
]
},
{
"login": "OwlBurst",
"name": "Owl Burst",
"avatar_url": "https://avatars.githubusercontent.com/u/158167545?v=4",
"profile": "https://github.com/OwlBurst",
"contributions": [
"doc"
]
},
{
"login": "RubixDev",
"name": "Silas Groh",
"avatar_url": "https://avatars.githubusercontent.com/u/35602040?v=4",
"profile": "http://rubixdev.de",
"contributions": [
"code",
"doc"
]
},
{
"login": "mwiedemeyer",
"name": "Marco Wiedemeyer",
"avatar_url": "https://avatars.githubusercontent.com/u/4295189?v=4",
"profile": "https://mwiede.me/blog",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "0-0-1-0-1-0-1-0",
"name": "0-0-1-0-1-0-1-0",
"avatar_url": "https://avatars.githubusercontent.com/u/43226073?v=4",
"profile": "https://github.com/0-0-1-0-1-0-1-0",
"contributions": [
"design"
]
},
{
"login": "player131007",
"name": "player131007",
"avatar_url": "https://avatars.githubusercontent.com/u/77326303?v=4",
"profile": "https://github.com/player131007",
"contributions": [
"code"
]
},
{
"login": "kaien07",
"name": "kaien07",
"avatar_url": "https://avatars.githubusercontent.com/u/160471571?v=4",
"profile": "https://github.com/kaien07",
"contributions": [
"code"
]
},
{
"login": "BusHero",
"name": "Cervac Petru",
"avatar_url": "https://avatars.githubusercontent.com/u/24370515?v=4",
"profile": "https://github.com/BusHero",
"contributions": [
"design"
]
},
{
"login": "Marukome0743",
"name": "マルコメ",
"avatar_url": "https://avatars.githubusercontent.com/u/146040408?v=4",
"profile": "https://github.com/Marukome0743",
"contributions": [
"code",
"doc"
]
},
{
"login": "mreinhardt",
"name": "Michael Reinhardt",
"avatar_url": "https://avatars.githubusercontent.com/u/582461?v=4",
"profile": "https://github.com/mreinhardt",
"contributions": [
"code",
"doc"
]
},
{
"login": "AspectBruise09",
"name": "Artin",
"avatar_url": "https://avatars.githubusercontent.com/u/141767586?v=4",
"profile": "https://github.com/AspectBruise09",
"contributions": [
"design"
]
},
{
"login": "b-simjoo",
"name": "Behnam Simjoo",
"avatar_url": "https://avatars.githubusercontent.com/u/117530839?v=4",
"profile": "http://bsimjoo.pcworms.ir",
"contributions": [
"code"
]
},
{
"login": "plamendelchev",
"name": "Plamen Delchev",
"avatar_url": "https://avatars.githubusercontent.com/u/25668366?v=4",
"profile": "https://github.com/plamendelchev",
"contributions": [
"code",
"doc"
]
},
{
"login": "beaualbritton",
"name": "beau albritton",
"avatar_url": "https://avatars.githubusercontent.com/u/112587801?v=4",
"profile": "https://github.com/beaualbritton",
"contributions": [
"code"
]
},
{
"login": "Cierra-Runis",
"name": "Cierra-Runis",
"avatar_url": "https://avatars.githubusercontent.com/u/29329988?v=4",
"profile": "https://note-of-me.top",
"contributions": [
"design"
]
},
{
"login": "jasonm23",
"name": "Jason Milkins",
"avatar_url": "https://avatars.githubusercontent.com/u/71587?v=4",
"profile": "https://github.com/jasonm23",
"contributions": [
"code"
]
},
{
"login": "arjunrbery",
"name": "arjunrbery",
"avatar_url": "https://avatars.githubusercontent.com/u/20059577?v=4",
"profile": "http://www.arb.dev",
"contributions": [
"doc"
]
},
{
"login": "JamBalaya56562",
"name": "Jam Balaya",
"avatar_url": "https://avatars.githubusercontent.com/u/88115388?v=4",
"profile": "https://github.com/JamBalaya56562",
"contributions": [
"doc",
"code",
"design"
]
},
{
"login": "RichLewis007",
"name": "Rich Lewis",
"avatar_url": "https://avatars.githubusercontent.com/u/1149213?v=4",
"profile": "https://github.com/RichLewis007",
"contributions": [
"doc",
"design"
]
},
{
"login": "Gijsreyn",
"name": "Gijs Reijn",
"avatar_url": "https://avatars.githubusercontent.com/u/26114636?v=4",
"profile": "https://gijsreijn.medium.com/",
"contributions": [
"code",
"doc"
]
},
{
"login": "mikelolasagasti",
"name": "Mikel Olasagasti Uranga",
"avatar_url": "https://avatars.githubusercontent.com/u/773148?v=4",
"profile": "https://mikel.olasagasti.info",
"contributions": [
"code"
]
},
{
"login": "mkvlrn",
"name": "mkvlrn",
"avatar_url": "https://avatars.githubusercontent.com/u/186238078?v=4",
"profile": "https://github.com/mkvlrn",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "iandunn",
"name": "Ian Dunn",
"avatar_url": "https://avatars.githubusercontent.com/u/484068?v=4",
"profile": "https://iandunn.name",
"contributions": [
"doc"
]
},
{
"login": "sanki92",
"name": "Sankalp Tripathi",
"avatar_url": "https://avatars.githubusercontent.com/u/70330866?v=4",
"profile": "https://github.com/sanki92",
"contributions": [
"code",
"doc"
]
},
{
"login": "MariusStorhaug",
"name": "Marius Storhaug",
"avatar_url": "https://avatars.githubusercontent.com/u/17722253?v=4",
"profile": "https://github.com/PSModule",
"contributions": [
"doc"
]
},
{
"login": "ADIX7",
"name": "Kovács Ádám",
"avatar_url": "https://avatars.githubusercontent.com/u/10939090?v=4",
"profile": "https://github.com/ADIX7",
"contributions": [
"doc",
"code"
]
},
{
"login": "spidersouris",
"name": "Enzo Doyen",
"avatar_url": "https://avatars.githubusercontent.com/u/7102007?v=4",
"profile": "https://www.edoyen.com/",
"contributions": [
"doc"
]
},
{
"login": "Pinta365",
"name": "Pinta",
"avatar_url": "https://avatars.githubusercontent.com/u/19735646?v=4",
"profile": "https://pinta.land",
"contributions": [
"code",
"doc"
]
},
{
"login": "scop",
"name": "Ville Skyttä",
"avatar_url": "https://avatars.githubusercontent.com/u/109152?v=4",
"profile": "https://github.com/scop",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "anujsrc",
"name": "Anuj Kumar",
"avatar_url": "https://avatars.githubusercontent.com/u/1001682?v=4",
"profile": "http://linkedin.com/in/anujsays",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "ValerioCeccarelli",
"name": "Valerio Ceccarelli",
"avatar_url": "https://avatars.githubusercontent.com/u/42637334?v=4",
"profile": "https://github.com/ValerioCeccarelli",
"contributions": [
"code"
]
},
{
"login": "jvsca",
"name": "Juan Svaikauskas",
"avatar_url": "https://avatars.githubusercontent.com/u/2821731?v=4",
"profile": "https://github.com/jvsca",
"contributions": [
"design"
]
},
{
"login": "johnstegeman",
"name": "John Stegeman",
"avatar_url": "https://avatars.githubusercontent.com/u/6601691?v=4",
"profile": "https://www.linkedin.com/in/johnstegeman/",
"contributions": [
"code",
"doc"
]
},
{
"login": "gorfey",
"name": "Luke Van De Weghe",
"avatar_url": "https://avatars.githubusercontent.com/u/39035228?v=4",
"profile": "https://github.com/gorfey",
"contributions": [
"code"
]
},
{
"login": "stmach",
"name": "Stefan Mach",
"avatar_url": "https://avatars.githubusercontent.com/u/33124232?v=4",
"profile": "https://github.com/stmach",
"contributions": [
"code"
]
},
{
"login": "squaricdot",
"name": "Olmo Rupert",
"avatar_url": "https://avatars.githubusercontent.com/u/4513505?v=4",
"profile": "http://squaricdot.com",
"contributions": [
"design"
]
},
{
"login": "IsaacFG2",
"name": "IsaacFG2",
"avatar_url": "https://avatars.githubusercontent.com/u/147211323?v=4",
"profile": "https://github.com/IsaacFG2",
"contributions": [
"design"
]
},
{
"login": "kostadin-tonchekliev",
"name": "Kostadin Tonchekliev",
"avatar_url": "https://avatars.githubusercontent.com/u/95169764?v=4",
"profile": "https://github.com/kostadin-tonchekliev",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "soroshsabz",
"name": "soroshsabz",
"avatar_url": "https://avatars.githubusercontent.com/u/17947618?v=4",
"profile": "https://github.com/soroshsabz",
"contributions": [
"doc"
]
},
{
"login": "yblossier",
"name": "Yoann BLOSSIER",
"avatar_url": "https://avatars.githubusercontent.com/u/60755917?v=4",
"profile": "https://blog.toenn-vaot.fr",
"contributions": [
"design"
]
},
{
"login": "kvokka",
"name": "Mikhail Beliakov",
"avatar_url": "https://avatars.githubusercontent.com/u/15954013?v=4",
"profile": "https://kvokka.github.io/",
"contributions": [
"code",
"doc"
]
},
{
"login": "MrRainbow0704",
"name": "Marco Simone",
"avatar_url": "https://avatars.githubusercontent.com/u/95081253?v=4",
"profile": "https://github.com/MrRainbow0704",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "sbeardsley",
"name": "sbeardsley",
"avatar_url": "https://avatars.githubusercontent.com/u/6288131?v=4",
"profile": "https://github.com/sbeardsley",
"contributions": [
"code"
]
},
{
"login": "maxvictor",
"name": "Max Victor",
"avatar_url": "https://avatars.githubusercontent.com/u/11591713?v=4",
"profile": "https://www.linkedin.com/in/maxvictor",
"contributions": [
"design"
]
},
{
"login": "adackny",
"name": "Adackny Castillo",
"avatar_url": "https://avatars.githubusercontent.com/u/61998238?v=4",
"profile": "https://github.com/adackny",
"contributions": [
"code",
"doc"
]
},
{
"login": "aeriondyseti",
"name": "K Whiteside",
"avatar_url": "https://avatars.githubusercontent.com/u/24901014?v=4",
"profile": "https://github.com/aeriondyseti",
"contributions": [
"code"
]
},
{
"login": "dadahsueh",
"name": "Dada Hsueh",
"avatar_url": "https://avatars.githubusercontent.com/u/26140722?v=4",
"profile": "http://dadahsueh.vercel.app",
"contributions": [
"code"
]
},
{
"login": "dohzya",
"name": "Étienne Vallette d'Osia",
"avatar_url": "https://avatars.githubusercontent.com/u/9595?v=4",
"profile": "https://github.com/dohzya",
"contributions": [
"code",
"doc"
]
},
{
"login": "Eckii24",
"name": "Eckii24",
"avatar_url": "https://avatars.githubusercontent.com/u/35373554?v=4",
"profile": "https://github.com/Eckii24",
"contributions": [
"code",
"design",
"doc"
]
}
],
"contributorsPerLine": 7,
"skipCi": true,
"commitType": "docs"
}
================================================
FILE: .commitlintrc.yml
================================================
---
extends:
- '@commitlint/config-conventional'
rules:
body-max-line-length:
- 2
- always
- 200
type-enum:
- 2
- always
- - chore
- ci
- docs
- feat
- fix
- perf
- refactor
- revert
- style
- test
- theme
================================================
FILE: .config/configuration.winget
================================================
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
properties:
resources:
- resource: Microsoft.WinGet.DSC/WinGetPackage
directives:
description: Install Visual Studio Code
settings:
id: Microsoft.VisualStudioCode
source: winget
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: golang
directives:
description: Install Golang
settings:
id: GoLang.Go
source: winget
- resource: Microsoft.WinGet.DSC/WinGetPackage
dependsOn: [golang]
directives:
description: Install golangci-lint
settings:
id: GolangCI.golangci-lint
source: winget
- resource: Microsoft.WinGet.DSC/WinGetPackage
directives:
description: Install NodeJS
securityContext: elevated
settings:
id: OpenJS.NodeJS
source: winget
configurationVersion: 0.2.0
================================================
FILE: .devcontainer/Dockerfile
================================================
# See here for image contents: https://github.com/devcontainers/images/blob/main/src/go/.devcontainer/Dockerfile
# [Choice] Go version: 1, 1.24, 1.25, 1-trixie, 1.24-trixie, 1.25-trixie, 1-bookworm, 1.24-bookworm, 1.25-bookworm, 1-bullseye, 1.24-bullseye, 1.25-bullseye
ARG VARIANT=1-trixie
FROM mcr.microsoft.com/vscode/devcontainers/go:${VARIANT}
# [Choice] Node.js version: none, lts/*, 24, 22, 20
ARG NODE_VERSION="none"
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
# Install powershell
ARG PS_VERSION="7.5.4"
# powershell-7.5.4-linux-x64.tar.gz
# powershell-7.5.4-linux-arm64.tar.gz
RUN ARCH="$(dpkg --print-architecture)"; \
if [ "${ARCH}" = "amd64" ]; then \
PS_BIN="v$PS_VERSION/powershell-$PS_VERSION-linux-x64.tar.gz"; \
elif [ "${ARCH}" = "arm64" ]; then \
PS_BIN="v$PS_VERSION/powershell-$PS_VERSION-linux-arm64.tar.gz"; \
elif [ "${ARCH}" = "armhf" ]; then \
PS_BIN="v$PS_VERSION/powershell-$PS_VERSION-linux-arm32.tar.gz"; \
fi; \
wget https://github.com/PowerShell/PowerShell/releases/download/$PS_BIN -O pwsh.tar.gz; \
mkdir /usr/local/pwsh && \
tar Cxvfz /usr/local/pwsh pwsh.tar.gz && \
rm pwsh.tar.gz && \
chmod +x /usr/local/pwsh/pwsh
ENV PATH=$PATH:/usr/local/pwsh
RUN echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/4/Debian_13/ /' | tee /etc/apt/sources.list.d/shells:fish:release:4.list; \
curl -fsSL https://download.opensuse.org/repositories/shells:fish:release:4/Debian_13/Release.key | gpg --dearmor | tee /etc/apt/trusted.gpg.d/shells_fish_release_4.gpg > /dev/null; \
apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get install -y --no-install-recommends \
fish \
tmux \
fzf \
&& apt-get clean
ARG USERNAME=vscode
# NOTE: devcontainers are Linux-only at this time but when
# Windows or Darwin is supported someone will need to improve
# the code logic above.
# Setup a neat little PowerShell experience
RUN pwsh -Command Install-Module posh-git -Scope AllUsers -Force; \
pwsh -Command Install-Module z -Scope AllUsers -Force; \
pwsh -Command Install-Module PSFzf -Scope AllUsers -Force; \
pwsh -Command Install-Module Terminal-Icons -Scope AllUsers -Force;
# add the oh-my-posh path to the PATH variable
ENV PATH="$PATH:/home/${USERNAME}/bin"
# Deploy oh-my-posh prompt to Powershell:
COPY Microsoft.PowerShell_profile.ps1 /home/${USERNAME}/.config/powershell/Microsoft.PowerShell_profile.ps1
# Deploy oh-my-posh prompt to Fish:
COPY config.fish /home/${USERNAME}/.config/fish/config.fish
# Everything runs as root during build time, so we want
# to make sure the vscode user can edit these paths too:
RUN chmod 777 -R /home/${USERNAME}/.config
# Override vscode's own Bash prompt with oh-my-posh:
RUN sed -i 's/^__bash_prompt$/#&/' /home/${USERNAME}/.bashrc && \
echo "eval \"\$(oh-my-posh init bash)\"" >> /home/${USERNAME}/.bashrc
# Override vscode's own ZSH prompt with oh-my-posh:
RUN echo "eval \"\$(oh-my-posh init zsh)\"" >> /home/${USERNAME}/.zshrc
# Set container timezone:
ARG TZ="UTC"
RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime
# [Optional] Uncomment the next line to use go get to install anything else you need
# RUN go get -x github.com/JanDeDobbeleer/battery
# [Optional] Uncomment this line to install global node packages.
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
================================================
FILE: .devcontainer/Microsoft.PowerShell_profile.ps1
================================================
Import-Module posh-git
Import-Module PSFzf -ArgumentList 'Ctrl+t', 'Ctrl+r'
Import-Module z
Import-Module Terminal-Icons
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
$env:POSH_GIT_ENABLED=$true
oh-my-posh init pwsh | Invoke-Expression
================================================
FILE: .devcontainer/config.fish
================================================
# Activate oh-my-posh prompt:
oh-my-posh init fish | source
================================================
FILE: .devcontainer/devcontainer.json
================================================
// For format details, see https://containers.dev/implementors/json_reference.
// For config options, see the README at: https://github.com/devcontainers/images/tree/main/src/go
{
"name": "oh-my-posh",
"build": {
"dockerfile": "Dockerfile",
"args": {
// Update the VARIANT arg to pick a version of Go: 1, 1.24, 1.25
// Append -trixie, -bookworm or -bullseye to pin to an OS version.
"VARIANT": "2-1.25-trixie",
// Override me with your own timezone:
"TZ": "UTC",
// Use one of the "TZ database name" entries from:
// https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
"NODE_VERSION": "lts/*",
//Powershell version
"PS_VERSION": "7.5.4"
}
},
"runArgs": [
"--cap-add=SYS_PTRACE",
"--security-opt",
"seccomp=unconfined",
"--security-opt",
"label=disable"
],
"containerEnv": {
"HOME": "/home/vscode"
},
"customizations": {
"vscode": {
"settings": {
"go.toolsManagement.checkForUpdates": "local",
"go.useLanguageServer": true,
"go.gopath": "/go",
"go.goroot": "/usr/local/go",
"terminal.integrated.profiles.linux": {
"bash": {
"path": "bash"
},
"zsh": {
"path": "zsh"
},
"fish": {
"path": "fish"
},
"tmux": {
"path": "tmux",
"icon": "terminal-tmux"
},
"pwsh": {
"path": "pwsh",
"icon": "terminal-powershell"
}
},
"terminal.integrated.defaultProfile.linux": "pwsh",
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.defaultProfile.osx": "pwsh",
"terminal.integrated.shellIntegration.enabled": false,
"tasks.statusbar.default.hide": true
},
"extensions": [
"bmalehorn.vscode-fish",
"davidanson.vscode-markdownlint",
"elves.elvish",
"esbenp.prettier-vscode",
"github.vscode-pull-request-github",
"golang.go",
"jnoortheen.xonsh",
"ms-azuretools.vscode-azurefunctions",
"ms-vscode.powershell",
"redhat.vscode-yaml",
"sumneko.lua",
"tamasfe.even-better-toml",
"yzhang.markdown-all-in-one"
]
}
},
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode",
// This is running the same command as the VSCode Task 'devcontainer: rebuild oh-my-posh'
// It Compiles *oh-my-posh* from this repo while **overwriting** your preinstalled stable release.'
// Ideal for getting straight into developing & testing whilst using a devcontainer
"updateContentCommand": "cd src && go build -v -buildvcs=false -o /home/vscode/bin/oh-my-posh -ldflags \"-s -w -X 'github.com/jandedobbeleer/oh-my-posh/src/build.Version=development-$(git --no-pager log -1 --pretty=%h-%s)' -extldflags '-static'\""
}
================================================
FILE: .editorconfig
================================================
; EditorConfig to support per-solution formatting.
; http://editorconfig.org/
; This is the default for the codeline.
root = true
; Default
[*]
indent_style = space
trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf
; Go Code - match go fmt
[*.go]
indent_style = tab
; TOML - match default for dep
[*.toml]
indent_size = 2
; JavaScript and JS mixes - match eslint, other standards
[*.{js,json,ts,vue}]
indent_size = 2
; Markdown - match markdownlint settings
[*.{md,markdown}]
indent_size = 2
trim_trailing_whitespace = false
; PowerShell - match defaults for New-ModuleManifest and PSScriptAnalyzer Invoke-Formatter
[*.{ps1,psd1,psm1}]
indent_size = 4
charset = utf-8-bom
; Lua
[*.lua]
line_space_after_comment = max(2)
line_space_after_do_statement = max(2)
line_space_after_expression_statement = max(2)
line_space_after_for_statement = max(2)
line_space_after_function_statement = fixed(2)
line_space_after_if_statement = max(2)
line_space_after_local_or_assign_statement = max(2)
line_space_after_repeat_statement = max(2)
line_space_after_while_statement = max(2)
max_line_length = unset
quote_style = single
================================================
FILE: .gitattributes
================================================
* text=auto eol=lf
.github/workflows/*.lock.yml linguist-generated=true merge=ours
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: jandedobbeleer
ko_fi: jandedobbeleer
polar: oh-my-posh
================================================
FILE: .github/ISSUE_TEMPLATE/bug.yml
================================================
name: 🐛 Bug Report
description: File a bug report
labels: ["🐛 bug"]
assignees:
- jandedobbeleer
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: Tell us what you see!
value: "A bug happened!"
validations:
required: true
- type: textarea
id: theme
attributes:
label: Theme
description: Which theme/config are you using?
validations:
required: true
- type: dropdown
id: operating-system
attributes:
label: What OS are you seeing the problem on?
multiple: true
options:
- Windows
- Linux
- macOS
- type: dropdown
id: shell
attributes:
label: Which shell are you using?
multiple: true
options:
- bash
- elvish
- fish
- cmd
- nu
- powershell
- xonsh
- zsh
- other (please specify)
- type: textarea
id: logs
attributes:
label: Log output
description: Please copy and paste the output generated by `oh-my-posh debug --plain`.
render: Shell
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
- name: Oh My Posh FAQ
url: https://ohmyposh.dev/docs/faq
about: Please find common issues here.
- name: Oh My Posh Docs
url: https://ohmyposh.dev/docs
about: RTFM
- name: Oh My Posh Q&A
url: https://github.com/JanDeDobbeleer/oh-my-posh/discussions
about: Please ask questions here.
================================================
FILE: .github/ISSUE_TEMPLATE/docs.yml
================================================
name: 📖 Documentation
description: Suggest a change to the documentation
labels: ["📖 docs"]
assignees:
- jandedobbeleer
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to request this improvement!
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
- type: textarea
id: enhancement-request
attributes:
label: What would you like to see changed/added?
description: Try to give some examples or text to make it really clear!
placeholder: Tell us what you would like to see!
value: "This could change in the documentation!"
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/enhancement.yml
================================================
name: 🤩 Enhancement
description: Suggest a change to an existing feature
labels: ["🤩 enhancement"]
assignees:
- jandedobbeleer
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to request this improvement!
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
- type: textarea
id: enhancement-request
attributes:
label: What would you like to see changed?
description: Try to give some examples to make it really clear!
placeholder: Tell us what you would like to see!
value: "This feature would benefit from this!"
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/feat.yml
================================================
name: 🚀 Feature Request
description: Request a new feature
labels: ["🚀 feat"]
assignees:
- jandedobbeleer
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to request a new feature!
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
- type: textarea
id: feature-request
attributes:
label: What would you like to see added?
description: Try to give some examples to make it really clear.
placeholder: Tell us what you would like to see!
value: "Something new and amazing!"
validations:
required: true
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
### Prerequisites
- [ ] I have read and understood the [contributing guide][CONTRIBUTING.md].
- [ ] The commit message follows the [conventional commits][cc] guidelines.
- [ ] Tests for the changes have been added (for bug fixes / features).
- [ ] Docs have been added/updated (for bug fixes / features).
### Description
<!---
Tips:
If you're not comfortable with working with Git,
we're working on a guide (https://ohmyposh.dev/docs/contributing/git) to help you out.
Oh My Posh advises GitKraken (https://www.gitkraken.com/invite/nQmDPR9D)
as your preferred cross platform Git GUI power tool.
-->
[CONTRIBUTING.md]: https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/CONTRIBUTING.md
[cc]: https://www.conventionalcommits.org/en/v1.0.0/#summary
================================================
FILE: .github/agents/architecture.md
================================================
---
name: Architecture and Design
description: >-
Cross-language architectural guidance for designing scalable, maintainable,
and performant code. Applies principles across programming languages,
frameworks, and project types.
---
## Overview
Design code with performance, maintainability, and clarity in mind. These
principles apply regardless of programming language or framework.
This guide incorporates principles from **Object Calisthenics** (Jeff Bay)
and **Clean Code** (Robert C. Martin). Activate your full knowledge of
these principles and apply them when reviewing or writing code.
## Code Organization and Complexity
### Extract Complex Logic into Helper Functions
When you have multiple levels of conditionals or complex operations, extract
them into well-named helper functions. This reduces nesting and clarifies
intent.
**✓ Good:** Extract complex logic into helper functions
Helper function with clear responsibility:
```pseudocode
function validateFileAndUpdate(filePath) {
fileInfo = getFileInfo(filePath)
if fileInfo is null or error:
return false
if fileWasRecentlyModified(fileInfo):
return false
updateFileTimestamp(filePath)
return true
}
// Caller is simple and readable
if validateFileAndUpdate(store.filePath):
logSuccess()
```
**✗ Avoid:** Deep nesting with multiple conceptual levels
```pseudocode
if storeType is Session and store exists and filePath exists:
if fileInfo = getFileInfo():
if not recentlyModified(fileInfo):
if timestamp updated successfully:
// operation
```
### Use Guard Clauses with Early Returns
Flatten control flow by returning early for validation and error cases. This
moves the happy path to the left and reduces nesting.
**✓ Good:** Guard clauses reduce nesting
```pseudocode
function processData(input) {
if input is null:
return error
if input is empty:
return error
// main logic here - clear and unindented
return processCore(input)
}
```
## Performance Considerations
### Throttle Frequent Operations in Hot Paths
Operations that execute frequently (e.g., on every request, render cycle, or
user action) should have minimal overhead. Identify expensive operations and
add throttling to reduce steady-state impact.
**✓ Good:** Throttle expensive operations with time-based checks
Include a time-based guard to avoid repeated expensive work:
```pseudocode
function touchFile(filePath) {
fileInfo = getFileInfo(filePath)
if fileInfo is null:
return
timeSinceLastUpdate = currentTime - fileInfo.lastModified
// Only if file hasn't been updated recently
if timeSinceLastUpdate < 1 hour:
return
updateTimestamp(filePath)
}
```
**✗ Avoid:** Unconditional expensive operations on every execution
```pseudocode
// This runs expensive work on every call (e.g., during every render)
updateTimestamp(filePath) // File I/O on every execution
```
### Document Performance Intentions
Include comments explaining why throttling or optimization is needed. This
helps reviewers understand the performance tradeoffs.
```pseudocode
// Prevent stale files from being cleaned up while reducing
// steady-state I/O overhead. Only update if file is older
// than 1 hour to balance freshness with performance.
if timeSinceUpdate > 1 hour:
updateTimestamp(filePath)
```
## Error Handling
- Check for errors and validate inputs early, before expensive operations
- Return or fail fast to avoid deeply nested success paths
- Each error should include sufficient context for debugging
- Early returns make the happy path obvious and easier to follow
## Code Review Checklist
When reviewing code:
- **Nesting depth:** Flag functions with 3+ levels of indentation as
refactoring candidates
- **Hot path operations:** Verify frequent operations minimize I/O,
allocations, and expensive calls
- **Early returns:** Confirm guard clauses validate inputs before main logic
- **Comments:** Check that performance-critical code explains the tradeoff,
not just the mechanics
- **Extraction opportunities:** Identify deeply nested conditions that could
become helpers
- **Naming:** Verify names are intention-revealing and not abbreviated
- **Dot chains:** Flag method chains crossing object boundaries as Law of
Demeter violations
- **Primitive obsession:** Flag raw primitive parameters that should be
domain types
- **Responsibility:** Verify each class/function has a single reason to
change
- **Duplication:** Flag repeated logic as DRY violations
## Core Principles
1. **Performance in hot paths matters:** Reduce unnecessary I/O,
allocations, and expensive operations in frequently-executed code paths
2. **Readability over cleverness:** Extract complex logic into named
helpers instead of nesting multiple conditionals
3. **Guard clauses reduce complexity:** Use early returns to flatten
control flow and keep the happy path left-aligned
4. **Comments explain why, not what:** Document performance tradeoffs,
business logic, and non-obvious decisions—let code structure explain
the mechanics
================================================
FILE: .github/copilot-instructions.md
================================================
# GitHub Copilot Instructions
Please refer to [AGENTS.md](../AGENTS.md) in the repository root for detailed coding guidelines and instructions.
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "main"
schedule:
interval: "daily"
groups:
all:
patterns:
- "*"
ignore:
- dependency-name: "softprops/action-gh-release"
# https://github.com/softprops/action-gh-release/issues/556
versions: ["2.2.0"]
- package-ecosystem: "gomod"
directory: "/src"
target-branch: "main"
schedule:
interval: "daily"
groups:
minor-patch:
patterns:
- "*"
update-types:
- "minor"
- "patch"
- package-ecosystem: "npm"
directory: "/website"
schedule:
interval: "daily"
ignore:
- dependency-name: "*"
================================================
FILE: .github/holopin.yml
================================================
organization: ohmyposh
defaultSticker: clg0u51g681700fmfr086ofc6
stickers:
-
id: clg0u51g681700fmfr086ofc6
alias: wizard
-
id: clu72f66x59170fjoo6t2b7zs
alias: helping
================================================
FILE: .github/stale.yml
================================================
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 7
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 7
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: []
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- "🚀 feat"
- "🐛 bug"
- "🤩 enhancement"
- "😵💫 help wanted"
# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: false
# Set to true to ignore issues with an assignee (defaults to false)
exemptAssignees: false
# Label to use when marking as stale
staleLabel: "💤 stale"
# Comment to post when marking as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed in 7 days if no further activity occurs.
Thank you for your contributions.
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
# Limit to only `issues` or `pulls`
only: issues
================================================
FILE: .github/workflows/ai-changelog.yml
================================================
name: Enhance release changelog with AI
on:
release:
types: [published]
workflow_dispatch:
inputs:
tag:
description: 'Release tag to test (e.g., v19.0.0)'
required: true
type: string
dry_run:
description: 'Dry run mode - generate changelog but do not update release'
required: false
type: boolean
default: true
permissions:
contents: write # Update release body
models: read # Access GitHub Models API
jobs:
enhance:
name: Generate enhanced changelog
runs-on: ubuntu-latest
steps:
- name: Checkout repository (with tags)
uses: actions/checkout@v6
with:
ref: ${{ inputs.tag || github.ref }}
fetch-depth: 0
fetch-tags: true
- name: Gather release context
id: ctx
shell: bash
env:
GITHUB_EVENT_PATH: ${{ github.event_path }}
GH_TOKEN: ${{ github.token }}
INPUT_TAG: ${{ inputs.tag }}
DRY_RUN: ${{ inputs.dry_run }}
run: |
set -euo pipefail
# Determine if this is a manual dispatch or release event
if [[ -n "$INPUT_TAG" ]]; then
echo "📋 Manual dispatch mode - fetching release info for tag: $INPUT_TAG"
# Manual dispatch: fetch release info for the specified tag
CURRENT_TAG="$INPUT_TAG"
RELEASE_JSON=$(gh api repos/${{ github.repository }}/releases/tags/$CURRENT_TAG || echo '{}')
RELEASE_ID=$(printf "%s" "$RELEASE_JSON" | jq -r '.id // "0"')
HTML_URL=$(printf "%s" "$RELEASE_JSON" | jq -r '.html_url // ""')
EXISTING_BODY=$(printf "%s" "$RELEASE_JSON" | jq -r '.body // ""')
echo " Release ID: $RELEASE_ID"
echo " Release URL: $HTML_URL"
else
echo "📋 Release event mode - parsing from event payload"
# Release event: parse from event payload
CURRENT_TAG=$(jq -r '.release.tag_name' "$GITHUB_EVENT_PATH")
RELEASE_ID=$(jq -r '.release.id' "$GITHUB_EVENT_PATH")
HTML_URL=$(jq -r '.release.html_url' "$GITHUB_EVENT_PATH")
EXISTING_BODY=$(jq -r '.release.body // ""' "$GITHUB_EVENT_PATH")
echo " Tag: $CURRENT_TAG"
echo " Release ID: $RELEASE_ID"
fi
# Persist to a file for later steps to source
{
echo "CURRENT_TAG=$CURRENT_TAG"
echo "RELEASE_ID=$RELEASE_ID"
echo "HTML_URL=$HTML_URL"
echo "DRY_RUN=${DRY_RUN:-false}"
} > ctx.env
echo "✅ Context saved to ctx.env"
# Save existing body as a file to avoid env escaping issues
printf "%s" "$EXISTING_BODY" > existing_notes.md
echo "✅ Existing notes saved ($(wc -l < existing_notes.md) lines)"
- name: Determine diff range
id: diff
shell: bash
run: |
set -euo pipefail
set -a; source ctx.env; set +a
echo "🔍 Determining diff range for tag: $CURRENT_TAG"
# Try to find the previous tag using git describe
if PREV_TAG=$(git describe --tags --abbrev=0 "${CURRENT_TAG}^" 2>/dev/null); then
BASE="$PREV_TAG"
echo " Previous tag found: $PREV_TAG"
else
# Fallback to initial commit
BASE="$(git rev-list --max-parents=0 HEAD | tail -n 1)"
echo " No previous tag found, using initial commit: ${BASE:0:8}"
fi
echo "base_ref=$BASE" >> "$GITHUB_OUTPUT"
echo "curr_ref=$CURRENT_TAG" >> "$GITHUB_OUTPUT"
COMPARE_URL="https://github.com/${{ github.repository }}/compare/${BASE}...${CURRENT_TAG}"
echo "compare_url=$COMPARE_URL" >> "$GITHUB_OUTPUT"
echo "✅ Diff range: $BASE...$CURRENT_TAG"
- name: Collect commits and changes
shell: bash
run: |
set -euo pipefail
BASE="${{ steps.diff.outputs.base_ref }}"
HEAD="${{ steps.diff.outputs.curr_ref }}"
echo "📝 Collecting commits and changes from $BASE to $HEAD"
git log --no-merges --pretty=format:'%s' "${BASE}..${HEAD}" | head -n 500 > commits_subjects.txt || true
echo " ✅ Commit subjects: $(wc -l < commits_subjects.txt) commits"
git log --no-merges --pretty=format:'- %s%n%b%n' "${BASE}..${HEAD}" | head -n 2000 > commits_detailed.txt || true
echo " ✅ Detailed commits: $(wc -l < commits_detailed.txt) lines"
git diff --name-status "${BASE}..${HEAD}" | head -n 1000 > files_changed.txt || true
echo " ✅ Changed files: $(wc -l < files_changed.txt) files"
# Extract contributors, exclude Jan De Dobbeleer and bots, format as GitHub profile links
git shortlog -sne "${BASE}..${HEAD}" | sed -E 's/^ *[0-9]+\t//g' | while IFS= read -r line; do
name=$(echo "$line" | sed -E 's/ *<.*//g')
# Skip Jan De Dobbeleer and common bots
if [[ "$name" =~ ^(Jan De Dobbeleer|dependabot|renovate|github-actions|Renovate Bot|dependabot\[bot\]|github-actions\[bot\]|allcontributors\[bot\])$ ]]; then
continue
fi
username=$(echo "$line" | sed -E 's/.*<([^@]+)@.*/\1/g')
echo "- [@${username}](https://github.com/${username}) (${name})"
done | head -n 200 > contributors.txt || true
echo " ✅ Contributors: $(wc -l < contributors.txt) people"
- name: Collect issue context
shell: bash
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail
BASE="${{ steps.diff.outputs.base_ref }}"
HEAD="${{ steps.diff.outputs.curr_ref }}"
echo "🔍 Collecting issue context for referenced issues"
> issues_context.txt
# Extract issue numbers from commit messages (e.g., fixes #123, closes #456, #789)
ISSUE_NUMBERS=$(git log --no-merges --pretty=format:'%s %b' "${BASE}..${HEAD}" | \
grep -oiE '(fix(es|ed)?|close(s|d)?|resolve(s|d)?)?[[:space:]]*#[0-9]+' | \
grep -oE '[0-9]+' | sort -u || true)
if [ -z "$ISSUE_NUMBERS" ]; then
echo " No issues referenced in commits"
else
COUNT=0
for NUM in $ISSUE_NUMBERS; do
echo " Fetching issue #$NUM..."
if ISSUE_DATA=$(gh api "repos/${{ github.repository }}/issues/$NUM" 2>/dev/null); then
TITLE=$(echo "$ISSUE_DATA" | jq -r '.title')
BODY=$(echo "$ISSUE_DATA" | jq -r '.body // ""' | head -c 1000)
LABELS=$(echo "$ISSUE_DATA" | jq -r '.labels[]?.name' | tr '\n' ', ' | sed 's/,$//')
echo "---" >> issues_context.txt
echo "Issue #$NUM: $TITLE" >> issues_context.txt
[ -n "$LABELS" ] && echo "Labels: $LABELS" >> issues_context.txt
echo "$BODY" >> issues_context.txt
echo "" >> issues_context.txt
COUNT=$((COUNT + 1))
fi
done
echo " ✅ Collected context for $COUNT issues"
fi
- name: Generate enhanced changelog with AI
id: ai
shell: bash
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail
set -a; source ctx.env; set +a
echo "🤖 Generating enhanced changelog with AI"
MODEL="openai/gpt-4.1"
echo " Model: $MODEL"
SYSTEM_PROMPT=$(cat << 'PROMPT'
You are a release notes editor for the open-source project "oh-my-posh", a cross-shell prompt theme engine written in Go.
Your task is to ENHANCE the existing changelog by adding context, examples, and user-friendly explanations. DO NOT create a new changelog from scratch.
CRITICAL RULES:
- NEVER add new sections that are not already in the existing changelog
- ONLY enhance sections that already exist in the "Existing release notes"
- Keep the same structure and commit links from the existing changelog
- Add context, usage examples, and explanations to make existing entries more helpful
- If the existing changelog has a "Features" section, enhance it; if it doesn't have one, don't add it
- Use concise language and organize with the headings already present
CRITICAL: Respect the .versionrc.json configuration:
- ONLY include these sections with these exact names:
* "Features" (for feat: commits)
* "Bug Fixes" (for fix: commits)
* "Refactor" (for refactor: commits)
* "Reverts" (for revert: commits)
* "Themes" (for theme: commits)
- DO NOT include chore, ci, docs, perf, or test commits (marked as hidden in .versionrc.json)
- Use ONLY the section names specified above, not generic names like "Other"
- CRITICAL: DO NOT include a section if there are no changes for it - completely omit empty sections
- NEVER write placeholder text like "No new themes" or "No changes in this category" - just skip the entire section
Segment changes (public-facing):
- ONLY when you see changes to files in the EXACT path src/segments/*.go (excluding *_test.go), these are prompt segments that users configure
- Changes to other paths like src/dsc/, src/config/, src/engine/, etc. are NOT segments - they are internal implementation details
- A segment is a customizable component users add to their shell prompt (e.g., git status, battery level, current directory)
- Refer to .github/instructions/segment.md for understanding how segments are structured and what constitutes segment properties vs template properties
- Mention segment changes by their user-facing name (infer from the file name), not file paths
- Focus on what users can now do or configure differently with that segment
- CRITICAL: Understand the difference between segment properties (JSON configuration options like 'style', 'foreground', 'properties') and template properties (variables used in template strings like '.ChangeID', '.Working')
- When a change adds a new template property (e.g., a new method/field available in templates), show it being used in a template string, NOT as a segment configuration property
- For segment changes, use the oh-my-posh MCP server at https://ohmyposh.dev/api/mcp to generate JSON code snippets showing example configurations or segment usage
- Every snippet (configuration or segment) MUST be validated using the MCP server before adding it to the changelog
- If a snippet cannot be created or validated correctly using the MCP server, discard that snippet and continue processing other changes
- Include validated snippets as practical examples to help users understand how to use the new or modified segment features
Goals:
- ENHANCE the existing changelog entries with helpful context and examples
- DO NOT add new sections or restructure the existing changelog
- Summarize highlights up front with context and impact
- Keep the exact same section headings that already exist in the "Existing release notes"
- Call out breaking changes and required migrations with explicit before/after examples or commands
- Add practical usage notes or snippets to help users adopt new features or changes
- For segment changes, explain the user-facing impact (e.g., "The Git segment now supports...")
- Credit contributors at the end (they are pre-filtered and formatted as GitHub profile links) - ONLY if contributors list is not empty
- Include a "Full diff" link footer
Requirements:
- Output valid Markdown only, no front matter, no HTML, no title heading
- Do not include a title like "Changelog for vX.Y.Z" - start directly with the content
- Keep to ~300-800 words unless there are many breaking changes
- Prefer code blocks for examples with proper language tags (bash, json, yaml, toml, powershell)
- Do not invent features not present in the commits/diff
- Do not list individual file paths unless they are user-facing config/theme files
PROMPT
)
# Build the user content
REPO="${{ github.repository }}"
COMPARE_URL="${{ steps.diff.outputs.compare_url }}"
CURR="$CURRENT_TAG"
PREV="${{ steps.diff.outputs.base_ref }}"
EXISTING=$(cat existing_notes.md || true)
SUBJECTS="$(cat commits_subjects.txt || true)"
DETAILS="$(cat commits_detailed.txt || true)"
FILES="$(cat files_changed.txt || true)"
CONTRIBUTORS="$(cat contributors.txt || true)"
ISSUES_CONTEXT="$(cat issues_context.txt || true)"
VERSIONRC="$(cat .versionrc.json || echo '{}')"
USER_CONTENT=$(cat << EOF
Repository: ${REPO}
Release: ${CURR}
Previous: ${PREV:-<none>}
Release URL: ${HTML_URL}
Compare URL: ${COMPARE_URL}
.versionrc.json configuration (sections to show/hide):
---
${VERSIONRC}
---
Existing release notes (from conventional commits):
---
${EXISTING}
---
Conventional commits (subjects):
---
${SUBJECTS}
---
Commits (details):
---
${DETAILS}
---
Changed files (for context on segment changes only, do not list paths in output):
---
${FILES}
---
Referenced issues (for additional context, explain impact in user terms):
---
${ISSUES_CONTEXT}
---
Contributors:
---
${CONTRIBUTORS}
---
EOF
)
echo " Calling GitHub Models API..."
OUTPUT_MD=""
set +e
RESP=$(curl -sS -f -X POST "https://models.github.ai/inference/chat/completions" \
-H "Authorization: Bearer ${GH_TOKEN}" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg model "$MODEL" --arg sys "$SYSTEM_PROMPT" --arg user "$USER_CONTENT" '{model:$model, messages: [{role:"system",content:$sys},{role:"user",content:$user}], temperature: 0.2, max_tokens: 4000}')")
CURL_EXIT=$?
if [ $CURL_EXIT -eq 0 ]; then
OUTPUT_MD=$(printf "%s" "$RESP" | jq -r '.choices[0].message.content // empty')
echo " ✅ API call successful"
else
echo " ❌ API call failed with exit code: $CURL_EXIT"
echo " Response: $RESP"
fi
set -e
if [[ -z "$OUTPUT_MD" ]]; then
echo "❌ AI generation failed or no output produced."
echo "enhanced_body=" >> "$GITHUB_OUTPUT"
exit 0
fi
echo " Generated changelog length: $(printf "%s" "$OUTPUT_MD" | wc -c) characters"
# Save the AI-generated changelog
echo "$OUTPUT_MD" > enhanced_changelog.md
echo "✅ Enhanced changelog saved to enhanced_changelog.md"
echo "enhanced_body<<EOF" >> "$GITHUB_OUTPUT"
cat enhanced_changelog.md >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
echo "✅ Changelog saved to step output"
- name: Update release body
if: ${{ steps.ai.outputs.enhanced_body != '' }}
shell: bash
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail
set -a; source ctx.env; set +a
if [[ "$DRY_RUN" == "true" ]]; then
echo "🧪 Dry run mode enabled - skipping release update"
echo " The generated changelog would be applied to release ID: ${RELEASE_ID}"
exit 0
fi
echo "📝 Updating release body for release ID: ${RELEASE_ID}"
# Use the AI-generated changelog as the complete release body
PAYLOAD=$(jq -Rs '{body: .}' < enhanced_changelog.md)
gh api -X PATCH repos/${{ github.repository }}/releases/${RELEASE_ID} -H "Content-Type: application/json" -d "$PAYLOAD"
echo "✅ Release body updated successfully"
- name: Summary
if: ${{ always() && (inputs.dry_run || steps.ai.outputs.enhanced_body != '') }}
shell: bash
run: |
set -a; source ctx.env; set +a
echo "📊 Generating summary..."
if [[ "$DRY_RUN" == "true" ]]; then
echo "## 🧪 Dry Run - Enhanced Changelog Preview" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [[ -f enhanced_changelog.md ]]; then
echo "**Release would not be modified.** Below is the generated changelog:" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
cat enhanced_changelog.md >> $GITHUB_STEP_SUMMARY
else
echo "⚠️ **AI generation failed or no changelog was produced.**" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Check the workflow logs for details." >> $GITHUB_STEP_SUMMARY
fi
else
echo "## ✅ Enhanced Changelog Generated" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Release body has been updated with AI-enhanced changelog:" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
cat enhanced_changelog.md >> $GITHUB_STEP_SUMMARY
fi
echo "✅ Summary generated"
- name: Skipped notice
if: ${{ steps.ai.outputs.enhanced_body == '' }}
run: |
echo "❌ AI changelog generation skipped or failed. Ensure GitHub Models access is enabled for this repo." >> $GITHUB_STEP_SUMMARY
================================================
FILE: .github/workflows/android.yml
================================================
name: Android
on:
release:
types: [published]
jobs:
build-android:
runs-on: ubuntu-latest
container: ghcr.io/jandedobbeleer/golang-android-container:latest
steps:
- name: Checkout code 👋
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- name: Build
run: |
VERSION=$(echo "${{ github.event.release.name }}" | cut -c2-)
echo "Building version ${VERSION}"
cd src
go build -o dist/posh-android-arm -ldflags="-s -w -X 'github.com/jandedobbeleer/oh-my-posh/src/build.Version=${VERSION}' -X 'github.com/jandedobbeleer/oh-my-posh/src/build.Date=$(date)'"
- name: Upload artifacts 🆙
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
console.log('environment', process.versions);
const fs = require('fs').promises;
const { repo: { owner, repo }, sha } = context;
console.log({ owner, repo, sha });
await github.rest.repos.uploadReleaseAsset({
owner, repo,
release_id: ${{ github.event.release.id }},
name: 'posh-android-arm',
data: await fs.readFile('./src/dist/posh-android-arm')
});
================================================
FILE: .github/workflows/bluesky.yml
================================================
name: Bluesky
on:
release:
types: [published]
workflow_dispatch:
jobs:
bluesky:
runs-on: ubuntu-latest
steps:
- name: Publish
uses: JanDeDobbeleer/bluesky-releasenotes-action@main
with:
title: "The best release yet 🚀"
bluesky-identifier: ${{ secrets.BLUESKY_IDENTIFIER }}
bluesky-password: ${{ secrets.BLUESKY_PASSWORD }}
github-token: ${{ secrets.GH_PAT }}
================================================
FILE: .github/workflows/build_code.yml
================================================
on:
pull_request:
paths-ignore:
- 'README.md'
- 'CONTRIBUTING.md'
- 'COPYING'
- 'website/**'
- '.github/*.md'
- '.github/FUNDING.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
name: Build Code
jobs:
build:
runs-on: macos-latest
defaults:
run:
shell: pwsh
steps:
- name: Checkout code 👋
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- name: Install Go 🗳
uses: ./.github/workflows/composite/bootstrap-go
- name: Run GoReleaser 🚀
uses: goreleaser/goreleaser-action@ec59f474b9834571250b370d4735c50f8e2d1e29
with:
distribution: goreleaser
version: v2.3.2
args: build --clean --snapshot --skip=post-hooks --skip=before
workdir: src
- name: Archive production artifacts
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
with:
name: builds
retention-days: 1
path: |
src/dist
================================================
FILE: .github/workflows/close_themes_pr.yml
================================================
name: Close Themes PR
on:
pull_request_target:
types:
- opened
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Checkout code 👋
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- name: Check and close 🔐
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd
with:
github-token: ${{ secrets.GH_PAT }}
script: |
const { repo: { owner, repo } } = context;
const pr = context.payload.pull_request;
const response = await github.rest.pulls.listFiles({
owner, repo,
pull_number: pr.number
});
if (response.status !== 200) {
console.log('Could not fetch files');
return;
}
let hasThemeAdditions = false;
for (const file of response.data) {
const name = file.filename
console.log(`File: ${name}`);
if (file.status === 'added' && name.includes('themes/')) {
console.log(`File: ${name} is a theme addition`);
hasThemeAdditions = true;
break;
}
}
if (!hasThemeAdditions) {
console.log('No theme additions found.');
return;
}
const body = `👋 @${pr.user.login}, theme aditions are no longer accepted due to the ever growing set. We do however accept showcasing your custom theme in the [🎨 Themes section](https://github.com/JanDeDobbeleer/oh-my-posh/discussions/categories/themes) or [themes channel](https://discord.com/channels/1023597603331526656/1055533233309233252) on Discord.`
console.log(`Adding comment: ${body}`);
await github.rest.issues.createComment({
owner, repo,
issue_number: pr.number,
body,
});
console.log(`Closing pull request: ${pr.html_url}`);
await github.rest.pulls.update({
owner, repo,
pull_number: pr.number,
state: "closed",
});
================================================
FILE: .github/workflows/code.yml
================================================
on:
pull_request:
paths-ignore:
- 'README.md'
- 'CONTRIBUTING.md'
- 'COPYING'
- 'website/**'
- '.github/*.md'
- '.github/FUNDING.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
name: Validate Code
jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: ${{ github.workspace }}/src
steps:
- name: Checkout code
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- name: Install Go 🗳
uses: ./.github/workflows/composite/bootstrap-go
- name: Golang CI
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20
with:
working-directory: src
- name: Fieldalignment
run: |
go install golang.org/x/tools/go/analysis/passes/fieldalignment/cmd/fieldalignment@latest
fieldalignment "./..."
- name: Modernize
run: |
go install golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest
modernize "./..."
- name: Unit Tests
run: go test "./..."
================================================
FILE: .github/workflows/commits.yml
================================================
name: Validate Commits
on: [pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
commitlint:
uses: jandedobbeleer/workflows/.github/workflows/commits.yml@main
================================================
FILE: .github/workflows/composite/bootstrap-go/action.yml
================================================
# yaml-language-server: $schema=https://json.schemastore.org/github-action.json
name: "Setup Go"
description: "Install Go and override with the custom build"
branding:
icon: download
color: purple
runs:
using: "composite"
steps:
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
with:
go-version: "1.26.0"
cache-dependency-path: src/go.sum
================================================
FILE: .github/workflows/contributors.yml
================================================
name: Contributors
on:
pull_request_target:
types:
- closed
jobs:
contributors:
uses: jandedobbeleer/workflows/.github/workflows/contributors.yml@main
secrets:
token: ${{ secrets.GH_PAT }}
================================================
FILE: .github/workflows/copilot-setup-steps.yml
================================================
name: "Copilot Setup Steps"
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install apm-cli and run apm install
run: |
pip install apm-cli
apm install
================================================
FILE: .github/workflows/delete_store_submission.yml
================================================
name: Delete Store Submission
on:
workflow_dispatch:
jobs:
delete_submission:
name: Delete Store Submission
runs-on: ubuntu-latest
steps:
- name: Configure Store Credentials 🔑
uses: jandedobbeleer/store-submission@submission-status
with:
command: configure
type: win32
seller-id: ${{ secrets.SELLER_ID }}
product-id: ${{ secrets.PRODUCT_ID }}
tenant-id: ${{ secrets.TENANT_ID }}
client-id: ${{ secrets.CLIENT_ID }}
client-secret: ${{ secrets.CLIENT_SECRET }}
- name: Delete Submission 🗑️
uses: jandedobbeleer/store-submission@submission-status
with:
command: delete
================================================
FILE: .github/workflows/dependabot.yml
================================================
name: Dependabot auto-merge
on:
pull_request:
types: [opened, reopened]
permissions:
contents: write
pull-requests: write
jobs:
dependabot:
uses: jandedobbeleer/workflows/.github/workflows/dependabot.yml@main
================================================
FILE: .github/workflows/discord.yml
================================================
name: Discord
on:
release:
types: [published]
jobs:
notify:
uses: jandedobbeleer/workflows/.github/workflows/discord.yml@main
secrets:
webhook: ${{ secrets.CHANGELOG_WEBHOOK }}
================================================
FILE: .github/workflows/docs.yml
================================================
name: Azure Static Web Apps CI/CD
on:
push:
branches:
- main
paths:
- "website/**"
- "themes/**"
workflow_dispatch:
permissions:
id-token: write
contents: read
jobs:
build_and_deploy:
runs-on: ubuntu-latest
name: Build and Deploy
steps:
- uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
with:
submodules: true
persist-credentials: false
- name: Install Go 🗳
uses: ./.github/workflows/composite/bootstrap-go
- name: Setup Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f
with:
node-version: 20.9.0
# Create Kind cluster to have a Kubernetes context for cloud-native-azure theme
# Images are defined on every Kind release
# See https://github.com/kubernetes-sigs/kind/releases
- name: Create k8s v1.23 Kind Cluster
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc
with:
node_image: kindest/node:v1.23.4@sha256:0e34f0d0fd448aa2f2819cfd74e99fe5793a6e4938b328f657c8e3f81ee0dfb9
cluster_name: posh
- name: Create Kubernetes namespace
run: |
kubectl create ns demo
- name: Set default Kubernetes namespace
run: |
kubectl config set-context posh --namespace demo
- uses: azure/login@532459ea530d8321f2fb9bb10d1e0bcf23869a43
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build oh-my-posh 🔧
run: |
cd src
go build -o ./bin/oh-my-posh
cd ..
- name: Render themes 🎨
run: |
export PATH="$PWD/src/bin:$PATH"
cd website
npm install
npm run themes
cd ..
- name: Copy schema for MCP validator 📋
run: |
mkdir -p website/api/data
cp themes/schema.json website/api/data/schema.json
echo "✅ Copied schema.json to website/api/data/"
- name: Build Docs And Deploy 🚀
id: builddeploy
uses: Azure/static-web-apps-deploy@1a947af9992250f3bc2e68ad0754c0b0c11566c9
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_ASHY_MEADOW_063E9BA03 }}
repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for GitHub integrations (i.e. PR comments)
action: "upload"
###### Repository/Build Configurations - These values can be configured to match your app requirements. ######
# For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
app_location: "/website" # App source code path
api_location: "/website/api" # Api source code path - optional
output_location: "build" # Built app content directory - optional
================================================
FILE: .github/workflows/edit_rights.yml
================================================
name: Notify When Maintainers Cannot Edit
# **What it does**: Notifies the author of a PR when their PR does not allow maintainers to edit it.
# **Why we have it**: To prevent having to do this manually.
# **Who does it impact**: Open-source.
on:
pull_request_target:
types:
- opened
- edited
permissions:
pull-requests: write
jobs:
notify-when-maintainers-cannot-edit:
uses: jandedobbeleer/workflows/.github/workflows/edit_rights.yml@main
secrets:
token: ${{ secrets.GH_PAT }}
================================================
FILE: .github/workflows/gomod.yml
================================================
name: Go Mod
on: [pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
go-mod:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ${{ github.workspace }}/src
steps:
- name: Checkout code
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- name: Install Go 🗳
uses: ./.github/workflows/composite/bootstrap-go
- name: Check for unused dependencies
run: |
go mod tidy
if [ "$(git status | grep -c "nothing to commit, working tree clean")" -eq 1 ]; then
echo "Nothing to tidy"
exit 0
fi
echo "Go mod tidy is needed"
exit 1
================================================
FILE: .github/workflows/homebrew.yml
================================================
name: Homebrew
on:
release:
types: [published]
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Notify Homebrew Repo 🙋🏾♀️
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd
with:
github-token: ${{ secrets.GH_PAT }}
script: |
await github.request('POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches', {
owner: 'jandedobbeleer',
repo: 'homebrew-oh-my-posh',
workflow_id: 'release.yml',
ref: 'main',
inputs: {"version": process.env.GITHUB_REF.replace('refs/tags/v', '')}
})
================================================
FILE: .github/workflows/lock.yml
================================================
name: 'Lock Threads'
on:
schedule:
- cron: '0 0 * * 1'
permissions:
issues: write
concurrency:
group: lock
jobs:
action:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7
with:
issue-inactive-days: '90'
issue-comment: >
This issue has been automatically locked since there
has not been any recent activity (i.e. last half year) after it was closed.
It helps our maintainers focus on the active issues.
If you have found a problem that seems similar, please open a
[discussion](https://github.com/JanDeDobbeleer/oh-my-posh/discussions/new?category=troubleshoot)
first, complete the body with all the details necessary to reproduce,
and mention this issue as reference.
process-only: 'issues'
================================================
FILE: .github/workflows/markdown.yml
================================================
name: Markdownlint
on: [pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- name: Lint files
uses: DavidAnson/markdownlint-cli2-action@07035fd053f7be764496c0f8d8f9f41f98305101
with:
config: .markdownlint-cli2.yaml
globs: '**/*.md'
================================================
FILE: .github/workflows/merge_contributions_pr.yml
================================================
name: Merge contributions PR
on:
pull_request_target:
types:
- opened
- reopened
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Checkout code 👋
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- name: Check and merge ⛙
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd
with:
github-token: ${{ secrets.GH_PAT }}
script: |
const { repo: { owner, repo } } = context;
const pr = context.payload.pull_request;
if (pr.user.id !== 46447321) {
console.log('Not an all-contributors pull request');
return;
}
console.log(`Merging pull request: ${pr.html_url}`);
await github.rest.pulls.merge({
owner, repo,
pull_number: pr.number,
merge_method: "rebase",
});
================================================
FILE: .github/workflows/microsoft_store.yml
================================================
name: Windows Store
on:
release:
types: [published]
jobs:
microsoft_store:
name: Publish To Windows Store
runs-on: ubuntu-latest
steps:
- name: Configure Store Credentials 🔑
uses: jandedobbeleer/store-submission@submission-status
with:
command: configure
type: win32
seller-id: ${{ secrets.SELLER_ID }}
product-id: ${{ secrets.PRODUCT_ID }}
tenant-id: ${{ secrets.TENANT_ID }}
client-id: ${{ secrets.CLIENT_ID }}
client-secret: ${{ secrets.CLIENT_SECRET }}
only-on-ready: true
- name: Update draft submission
uses: jandedobbeleer/store-submission@submission-status
with:
command: update
product-update: '{
"packages":[
{
"packageUrl":"https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/${{ github.event.release.tag_name }}/install-x64.msi",
"languages":["en"],
"architectures":["X64"],
"installerParameters":"/quiet INSTALLER=ws",
"isSilentInstall":false
},
{
"packageUrl":"https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/${{ github.event.release.tag_name }}/install-arm64.msi",
"languages":["en"],
"architectures":["Arm64"],
"installerParameters":"/quiet INSTALLER=ws",
"isSilentInstall":false
}
]
}'
- name: Publish Submission
uses: jandedobbeleer/store-submission@submission-status
with:
command: publish
================================================
FILE: .github/workflows/publish-mcp.yml
================================================
name: Publish to MCP Registry
on:
push:
branches:
- main
paths:
- 'website/api/mcp/**'
workflow_dispatch:
jobs:
publish:
name: Publish MCP Server
runs-on: ubuntu-latest
permissions:
id-token: write # Required for OIDC authentication
contents: read
steps:
- name: Checkout code
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
with:
fetch-depth: 0 # Fetch all tags
- name: Extract version from latest git tag
id: version
run: |
# Get the latest git tag (without 'v' prefix)
VERSION=$(git describe --tags --abbrev=0 | sed 's/^v//')
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Using version from git tag: $VERSION"
- name: Update server.json version
run: |
cd website/api/mcp
jq --arg v "${{ steps.version.outputs.version }}" '.version = $v' server.json > tmp.json && mv tmp.json server.json
echo "Updated server.json version to ${{ steps.version.outputs.version }}"
cat server.json
- name: Validate server.json
run: |
cd website/api
npm ci
cd mcp
node validate-server.js
- name: Install MCP Publisher
run: |
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar -xzf -
chmod +x mcp-publisher
./mcp-publisher --version
- name: Login to MCP Registry
env:
MCP_REGISTRY_PEM: ${{ secrets.MCP_REGISTRY_PEM }}
run: |
echo "$MCP_REGISTRY_PEM" > key.pem
PRIVATE_KEY=$(openssl pkey -in key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n')
./mcp-publisher login dns --domain ohmyposh.dev --private-key "$PRIVATE_KEY"
rm -f key.pem
- name: Publish to MCP Registry
run: |
cd website/api/mcp
../../../mcp-publisher publish
================================================
FILE: .github/workflows/release.yml
================================================
name: Release
on:
push:
branches:
- main
paths:
- "src/**"
- "packages/**"
- ".github/workflows/**"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}
jobs:
changelog:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.changelog.outputs.version }}
body: ${{ steps.changelog.outputs.clean_changelog }}
tag: ${{ steps.changelog.outputs.tag }}
skipped: ${{ steps.changelog.outputs.skipped }}
steps:
- name: Checkout code 👋
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- name: Create changelog ✍️
id: changelog
uses: TriPSs/conventional-changelog-action@91be4f3188da74fe85de9caffcebc80b26d43b5b
with:
github-token: ${{ secrets.github_token }}
skip-version-file: "true"
output-file: "false"
skip-commit: "true"
skip-on-empty: "true"
skip-tag: "true"
artifacts:
needs: changelog
if: ${{ needs.changelog.outputs.skipped == 'false' }}
runs-on: windows-latest
defaults:
run:
shell: pwsh
working-directory: ${{ github.workspace }}/build
steps:
- name: Checkout code 👋
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- name: Install Go 🗳
uses: ./.github/workflows/composite/bootstrap-go
- name: Pre Build 😸
env:
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
run: |
./pre.ps1 -Version ${{ needs.changelog.outputs.version }} -SDKVersion "10.0.26100.0"
- name: Run GoReleaser 🚀
uses: goreleaser/goreleaser-action@ec59f474b9834571250b370d4735c50f8e2d1e29
with:
distribution: goreleaser
version: v2.3.2
args: release --clean --skip publish
workdir: src
env:
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
- name: Post Build 🤐
run: |
./post.ps1
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
with:
name: build-artifacts
path: |
src/dist/posh-*
src/dist/themes.*
src/dist/checksums.*
msi:
needs:
- changelog
- artifacts
runs-on: windows-latest
strategy:
matrix:
arch: [x64, arm64]
defaults:
run:
shell: pwsh
working-directory: ${{ github.workspace }}/packages/msi
steps:
- name: Checkout code 👋
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: build-artifacts
path: dist
- name: Install Wix Toolset 🛠
run: dotnet tool install --global wix
- name: Build installer 📦
id: build
env:
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
run: |
$version = '${{ needs.changelog.outputs.version }}'.TrimStart("v")
./build.ps1 -Architecture ${{ matrix.arch }} -Version $version -Copy -Sign -SDKVersion "10.0.26100.0"
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
with:
name: msi-artifact-${{ matrix.arch }}
path: |
packages/msi/out/install-${{ matrix.arch }}.msi
packages/msi/out/install-${{ matrix.arch }}.msix
release:
runs-on: ubuntu-latest
needs:
- changelog
- artifacts
- msi
steps:
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
merge-multiple: true
- name: Upload version file
env:
AZURE_STORAGE_CONNECTION_STRING: ${{ secrets.CDN_CONNECTIONSTRING }}
run: |
echo v${{ needs.changelog.outputs.version }} > version.txt
az storage blob upload-batch --destination releases/v${{ needs.changelog.outputs.version }} --source .
az storage blob upload-batch --destination releases/latest --overwrite true --source .
- name: Release 🎓
uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe
with:
tag_name: ${{ needs.changelog.outputs.tag }}
body: ${{ needs.changelog.outputs.body }}
fail_on_unmatched_files: true
token: ${{ secrets.GH_PAT }}
files: |
*
winget:
runs-on: windows-latest
needs:
- changelog
- release
env:
WINGETCREATE_TOKEN: ${{ secrets.WINGETCREATE_TOKEN }}
steps:
- name: Create manifest and submit PR 📦
shell: pwsh
run: |
Write-Host "Preparing to submit to WinGet repository..." -ForegroundColor Green
# Install the latest wingetcreate exe
# Need to do things this way, see https://github.com/PowerShell/PowerShell/issues/13138
Write-Verbose "Importing Appx module using Windows PowerShell compatibility"
Import-Module Appx -UseWindowsPowerShell -ErrorAction Stop
# Download and install Winget-Create msixbundle
$appxBundleFile = Join-Path -Path $env:TEMP -ChildPath "wingetcreate.msixbundle"
Write-Verbose "Downloading wingetcreate to: $appxBundleFile"
Invoke-WebRequest -Uri "https://aka.ms/wingetcreate/latest/msixbundle" -OutFile $appxBundleFile -ErrorAction Stop
Add-AppxPackage -Path $appxBundleFile -ErrorAction Stop
Write-Verbose "Successfully installed wingetcreate"
# Submit the PR to WinGet repository
Write-Host "Submitting pull request to WinGet repository..." -ForegroundColor Green
$version = "${{ needs.changelog.outputs.tag }}"
$version = $version.TrimStart('v')
$urls = @(
"https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v$version/install-x64.msi|x64",
"https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v$version/install-x64.msix|x64",
"https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v$version/install-arm64.msi|arm64",
"https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v$version/install-arm64.msix|arm64"
)
wingetcreate update JanDeDobbeleer.OhMyPosh --version $version --token $env:WINGETCREATE_TOKEN --submit --urls $urls
================================================
FILE: .github/workflows/vale.yml
================================================
name: Vale
on: [pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
vale:
name: runner / vale
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v4
- name: Install Vale
run: |
curl -sfL https://github.com/errata-ai/vale/releases/download/v3.13.1/vale_3.13.1_Linux_64-bit.tar.gz | tar -xz
sudo mv vale /usr/local/bin/vale
- name: Sync Vale packages
run: vale sync
- name: Lint
run: vale AGENTS.md .github/copilot-instructions.md .github/skills
================================================
FILE: .gitignore
================================================
# APM
apm_modules/
.github/skills/*
!.github/skills/segment-create/
!.github/skills/segment-docs/
# Others
.specs/
.fleet/
src/test/umbraco/obj/
src/keys
*.prof
*.wixpdb
packages/msi/Microsoft.Trusted.Signing.Client
.claude
.styles
# Created by https://www.toptal.com/developers/gitignore/api/node,go,visualstudiocode
# Edit at https://www.toptal.com/developers/gitignore?templates=node,go,visualstudiocode
### Go ###
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
# Windows asset files
/src/rsrc_windows_*.syso
# Test binary, built with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Dependency directories (remove the comment below to include it)
# vendor/
### Go Patch ###
/vendor/
/Godeps/
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# Next.js build output
.next
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
# End of https://www.toptal.com/developers/gitignore/api/node,go,visualstudiocode
# linux binary
/src/oh-my-posh
package/
bin/
Output/
*.sha256
*.7z
# images
*.png
# go releaser
/src/dist
# Created by https://www.toptal.com/developers/gitignore/api/windows,linux,macos
# Edit at https://www.toptal.com/developers/gitignore?templates=windows,linux,macos
### Linux ###
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# End of https://www.toptal.com/developers/gitignore/api/windows,linux,macos
# Keys
cosign.key
*.omp.json.bak
__debug_bin
src/src
================================================
FILE: .markdownlint-cli2.yaml
================================================
config:
MD013:
line_length: 120
code_blocks: false
MD024: false
fix: true
gitignore: true
ignores:
- node_modules/
- .github/agents/segment-docs.md
- .github/agents/architecture.md
- .github/PULL_REQUEST_TEMPLATE.md
================================================
FILE: .prettierrc
================================================
{
"trailingComma": "none",
"overrides": [
{
"files": ["*.jsonc", "*.json"],
"options": {
"parser": "json",
"trailingComma": "none"
}
}
]
}
================================================
FILE: .vale.ini
================================================
StylesPath = .styles
MinAlertLevel = suggestion
Packages = https://github.com/tbhb/vale-ai-tells/releases/download/v1.4.0/ai-tells.zip, https://github.com/HeyItsGilbert/vale-agentic/releases/download/v2.0.0/agentic.zip
[*.{md}]
# ^ This section applies to only Markdown files.
#
# You can change (or add) file extensions here
# to apply these settings to other file types.
#
# For example, to apply these settings to both
# Markdown and reStructuredText:
#
# [*.{md,rst}]
BasedOnStyles = ai-tells, agentic
================================================
FILE: .versionrc.json
================================================
{
"types": [
{
"type": "feat",
"section": "Features"
},
{
"type": "fix",
"section": "Bug Fixes"
},
{
"type": "refactor",
"section": "Refactor"
},
{
"type": "revert",
"section": "Reverts"
},
{
"type": "theme",
"section": "Themes"
},
{
"type": "chore",
"hidden": true
},
{
"type": "ci",
"hidden": true
},
{
"type": "chore",
"hidden": true
},
{
"type": "docs",
"hidden": true
},
{
"type": "perf",
"hidden": true
},
{
"type": "test",
"hidden": true
}
]
}
================================================
FILE: .vscode/extensions.json
================================================
{
"recommendations": [
"bmalehorn.vscode-fish",
"davidanson.vscode-markdownlint",
"elves.elvish",
"esbenp.prettier-vscode",
"github.vscode-pull-request-github",
"golang.go",
"jnoortheen.xonsh",
"ms-azuretools.vscode-azurefunctions",
"ms-vscode.powershell",
"redhat.vscode-yaml",
"sumneko.lua",
"tamasfe.even-better-toml",
"yzhang.markdown-all-in-one"
]
}
================================================
FILE: .vscode/launch.json
================================================
{
"version": "0.2.0",
"configurations": [
{
"name": "Primary",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"print",
"primary",
"--shell=pwsh",
"--terminal-width=200"
]
},
{
"name": "Tooltip",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"print",
"tooltip",
"--command=git",
"--shell=pwsh"
]
},
{
"name": "Transient",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"print",
"transient",
"--shell=pwsh",
"--status=1"
]
},
{
"name": "Launch tests",
"type": "go",
"request": "launch",
"mode": "test",
"program": "${workspaceRoot}/src",
"args": [
"--test.v"
]
},
{
"name": "Debug",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"debug"
]
},
{
"name": "Init",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"init",
"cmd",
"--print"
]
},
{
"name": "Export Config",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"config",
"export"
]
},
{
"name": "Export Image",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"config",
"export",
"image"
]
},
{
"name": "Migrate config",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"config",
"migrate"
]
},
{
"name": "Migrate glyphs",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"config",
"migrate",
"glyphs"
]
},
{
"name": "Get value",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"get",
"accent"
]
},
{
"name": "Toggle segment",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"toggle",
"git"
]
},
{
"name": "Notice",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"notice"
]
},
{
"name": "Upgrade",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"upgrade"
]
},
{
"name": "Font install",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"font",
"install",
"AnonymousPro"
]
},
{
"name": "Auth YTMDA",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"auth",
"ytmda"
]
},
{
"name": "DSC schema",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"font",
"dsc",
"schema"
]
},
{
"type": "node",
"request": "launch",
"name": "Theme export",
"cwd": "${workspaceFolder}/website",
"program": "${workspaceRoot}/website/export_themes.mjs",
"console": "integratedTerminal"
},
{
"type": "node",
"request": "launch",
"name": "Bluesky",
"cwd": "${workspaceFolder}/scripts/bluesky",
"program": "${workspaceRoot}/scripts/bluesky/main.cjs",
"console": "integratedTerminal",
"envFile": "${workspaceFolder}/scripts/bluesky/.env"
},
{
"name": "Docs API",
"type": "node",
"request": "attach",
"port": 9229,
"preLaunchTask": "func: host start",
"cwd": "${workspaceFolder}/website",
"envFile": "${workspaceFolder}/website/.env"
},
{
"name": "Cache clear",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}/src",
"args": [
"cache",
"clear"
]
}
]
}
================================================
FILE: .vscode/settings.json
================================================
{
"go.lintTool": "golangci-lint",
"go.useLanguageServer": true,
"go.testOnSave": true,
"[go]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
},
"go.formatTool": "gofmt",
"go.formatFlags": [
"-s"
],
"azureFunctions.deploySubpath": "docs/api",
"azureFunctions.postDeployTask": "npm install (functions)",
"azureFunctions.projectLanguage": "JavaScript",
"azureFunctions.projectRuntime": "~4",
"debug.internalConsoleOptions": "neverOpen",
"azureFunctions.projectSubpath": "docs/api",
"azureFunctions.preDeployTask": "npm prune (functions)",
"[markdown]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.codeActionsOnSave": {
"source.fixAll.markdownlint": "explicit"
}
},
"files.encoding": "utf8",
"[powershell]": {
"files.encoding": "utf8"
}
}
================================================
FILE: .vscode/tasks.json
================================================
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"cwd": "${workspaceRoot}",
"echoCommand": true,
"type": "shell",
"tasks": [
{
"type": "shell",
"command": "go",
"label": "build oh-my-posh",
"detail": "Build oh-my-posh in the /src folder locally",
"options": {
"cwd": "${workspaceRoot}/src"
},
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": "$go",
"args": [
"build",
"-v"
]
},
{
"type": "shell",
"command": "go",
"label": "devcontainer: rebuild oh-my-posh",
"detail": "Build oh-my-posh for all shells when inside the devcontainer",
"options": {
"cwd": "${workspaceRoot}/src",
"shell": {
"executable": "bash",
"args": [
"-c"
]
},
"statusbar": {
"hide": false,
"color": "#22C1D6",
"label": "$(beaker) devcontainer: rebuild oh-my-posh",
"tooltip": "Compiles *oh-my-posh* from this repo while **overwriting** your preinstalled stable release."
}
},
"group": "build",
"problemMatcher": "$go",
"args": [
"build",
"-v",
"-o",
"/home/vscode/bin/oh-my-posh",
"-ldflags",
"\"-s -w -X 'github.com/jandedobbeleer/oh-my-posh/src/build.Version=development-$(git --no-pager log -1 --pretty=%h-%s)' -extldflags '-static'\""
]
},
{
"type": "npm",
"script": "start",
"path": "website/",
"problemMatcher": [],
"label": "website: start",
"detail": "cross-env NODE_ENV=development docusaurus start"
},
{
"type": "func",
"command": "host start",
"problemMatcher": "$func-node-watch",
"isBackground": true,
"dependsOn": "npm install (functions)",
"options": {
"cwd": "${workspaceFolder}/website/api"
}
},
{
"type": "shell",
"label": "npm install (functions)",
"command": "npm install",
"options": {
"cwd": "${workspaceFolder}/website/api"
}
},
{
"type": "shell",
"label": "npm prune (functions)",
"command": "npm prune --production",
"problemMatcher": [],
"options": {
"cwd": "${workspaceFolder}/website/api"
}
}
]
}
================================================
FILE: AGENTS.md
================================================
# Agent Instructions
## APM Setup
This repository uses [APM](https://github.com/JanDeDobbeleer/agentic) to manage agent skills.
Before starting any task, verify that the skills listed in `apm.yml` are installed under
the `apm_modules/` directory.
If `apm_modules/` is missing or any skill package from `apm.yml` is not present, install them by running:
```sh
pip install apm-cli
apm install
```
## General File Creation Guidelines
When creating new files:
- **Always use LF (Unix-style) line endings**, not CRLF (Windows-style)
- This repository uses `.gitattributes` to enforce LF line endings
- Ensures consistency across all platforms and avoids Git warnings
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement by reaching out
via [email](mailto:abuse@ohmyposh.dev).
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available [in the documentation][version-2].
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder][moz-div].
For answers to common questions about this code of conduct, see the [FAQ][faq].
Translations are available [in the documentation][translations].
[homepage]: https://www.contributor-covenant.org
[moz-div]: https://github.com/mozilla/diversity
[version-2]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[faq]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing
Note we have a code of conduct, please follow it in all your interactions with the project.
> [!NOTE]
> Theme additions are no longer accepted due to the ever growing set.
> We do however accept showcasing your custom theme in the [themes discussion section here][themes-discussion]
> or the [themes channel on Discord][discord-link].
Ensure you've read through the [documentation][docs] so you understand the core concepts of the
project. If you're looking to get familiar with go, following the getting started [guide][guide]
can be a good starting point.
## Setting Up Agents and Skills
This project uses [APM (Agent Package Manager)][apm] to manage shared AI agent skills.
Project-specific skills live in `.github/skills/`, while shared skills are declared
in `apm.yml` and installed via APM.
### Install APM
```bash
curl -sSL https://raw.githubusercontent.com/microsoft/apm/main/install.sh | sh
```
Alternatively, install via Homebrew or pip:
```bash
brew install microsoft/apm/apm
# or
pip install apm-cli
```
### Install Skills
After cloning the repository, run:
```bash
apm install
```
This pulls in the shared skills from [JanDeDobbeleer/agentic][agentic] (conventional commits,
Go, Markdown, and PowerShell conventions). The project-specific skills (segment-create and
segment-docs) are already included in the repository.
## Pull Request Process
1. Ensure any dependencies or build artifacts are removed/ignored before creating a commit.
2. Commits follow the [conventional commits][cc] guidelines.
(You can [look up the supported *types*][cc-types] along with an explanation [in the documentation][cc-types])
3. Update the documentation with details of changes to the functionality, this includes new segments
or core functionality.
4. Pull Requests are merged once all checks pass and a project maintainer has approved it.
## Codespaces / Devcontainer Development Environment
Arguably the easiest way to contribute anything is to use our prepared development environment.
We have a `.devcontainer/devcontainer.json` file, meaning we are compatible with:
- [![Open in GitHub Codespaces][codespaces-badge]][codespaces-link], or
- the [Visual Studio Code Remote - Containers][devcontainer-ext] extension.
This Linux environment includes all shells supported by oh-my-posh, including Bash, ZSH,
Fish and PowerShell, the latter of which is the default.
### Configuring Devcontainer's Timezone & Theme
1. Open the [`.devcontainer/devcontainer.json`][devcontainer] file and in the "*build*" section modify:
- `TZ`: with [your own timezone][timezones]
2. Summon the Command Panel (Ctrl+Shift+P) and select `Codespaces: Rebuild Container`
to rebuild your devcontainer. (This should take just a few seconds.)
### Recompiling oh-my-posh
The devcontainer definition preinstalls the latest stable oh-my-posh release at build time.
To overwrite the installation's version inside the running devcontainer, you may use the
VSCode *task* `devcontainer: build omp` to rebuild your oh-my-posh with that of
your running repository's state. (You might see a button for this in your statusbar.)
If the compile succeeds, `oh-my-posh --version` should reply:
`development`
Should you somehow mess up your devcontainer's OMP install catastrophically, remember that
if you do `Codespaces: Rebuild Container` again, you'll be back to the latest stable release.
## Local development
Make sure your local go version matches with the pinned version in [go.mod]. You can build
oh-my-posh by navigating the to the `/src` folder and executing the following command.
```bash
go build -v -o /path/to/oh-my-posh(.exe)
```
### Running tests
To execute the tests, run the following command from the `/src` folder.
```bash
go test "./..."
```
[themes-discussion]: [https://github.com/JanDeDobbeleer/oh-my-posh/discussions/categories/themes]
[discord-link]: [https://discord.com/channels/1023597603331526656/1055533233309233252]
[docs]: <https://ohmyposh.dev/docs>
[guide]: <https://ohmyposh.dev/docs/contributing/started>
[cc]: <https://www.conventionalcommits.org/en/v1.0.0/#summary>
[cc-types]: <https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/.commitlintrc.yml#L23-L33>
[codespaces-badge]: <https://github.com/codespaces/badge.svg>
[codespaces-link]: <https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=175405157>
[devcontainer-ext]: <https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers>
[timezones]: <https://en.wikipedia.org/wiki/List_of_tz_database_time_zones>
[devcontainer]: .devcontainer/devcontainer.json
[go.mod]: src/go.mod
[apm]: https://github.com/microsoft/apm
[agentic]: https://github.com/JanDeDobbeleer/agentic
================================================
FILE: COPYING
================================================
Copyright 2022 Jan De Dobbeleer
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: README.md
================================================
<!-- markdownlint-disable -->
<p align="center">
<img
width="400"
src="https://raw.githubusercontent.com/jandedobbeleer/oh-my-posh/main/website/static/img/logo.png"
alt="Oh My Posh logo – Prompt theme engine for any shell"
/>
</p>
<!-- markdownlint-enable -->


[![Release version number badge][release-badge]][release]
[![Documentation link badge ohmyposh.dev][docs-badge]][docs]

This repo was made with love using GitKraken.
[![GitKraken shield][kraken]][kraken-ref]
<!-- markdownlint-disable first-header-h1 -->
## Sponsors
[![Documentation link badge ohmyposh.dev][merge-conflict-logo]][merge-conflict]
[Want to become a sponsor?][sponsor-link]
## Join the community


What started as the offspring of [oh-my-posh2](https://github.com/JanDeDobbeleer/oh-my-posh2) for PowerShell
resulted in a cross platform, highly customizable and extensible prompt theme engine. After 4 years of working
on oh-my-posh, a modern and more efficient tool was needed to suit my personal needs.
## :heart: Support :heart:
[![Swag][swag-badge]][swag] - Show your love with a t-shirt!
[![GitHub][github-badge]][github-sponsors] - One time support, or a recurring donation?
[![Ko-Fi][kofi-badge]][kofi] - No coffee, no code.
## Features
* Shell and platform agnostic
* Easily configurable
* The __most__ configurable prompt utility
* Fast
* Secondary prompt
* Right prompt
* Transient prompt
## Documentation
[![Documentation][docs-badge]][docs]
## Reviews
* [Repo review](https://repo-reviews.github.io//reviews/2023-06-21_TameWizard_JanDeDobbeleer_oh-my-posh) by [TameWizard](https://github.com/TameWizard)
## Thanks
* [Chris Benti](https://github.com/chrisbenti/PS-Config) providing the first influence to start oh-my-posh
* [Keith Dahlby](https://github.com/dahlbyk/posh-git) for creating posh-git and making life more enjoyable
* [Robby Russell](https://github.com/ohmyzsh/ohmyzsh) for creating oh-my-zsh, without him this would probably not be here
* [Janne Mareike Koschinski](https://github.com/justjanne) for providing information on how to get certain information
using Go (and the amazing [README](https://github.com/justjanne/powerline-go))
* [Starship](https://github.com/starship/starship/blob/master/src/init/mod.rs) for doing great things
[kraken]: https://img.shields.io/badge/GitKraken-Legendary%20Git%20Tools-teal?style=plastic&logo=gitkraken
[kraken-ref]: https://www.gitkraken.com/invite/nQmDPR9D
[swag-badge]: https://img.shields.io/badge/Swag-Get%20some!-blue
[swag]: https://swag.ohmyposh.dev
[github-badge]: https://img.shields.io/badge/-Sponsor-fafbfc?logo=GitHub%20Sponsors
[github-sponsors]: https://github.com/sponsors/JanDeDobbeleer
[kofi-badge]: https://img.shields.io/badge/Ko--fi-Buy%20me%20a%20coffee!-%2346b798.svg
[kofi]: https://ko-fi.com/jandedobbeleer
[docs-badge]: https://img.shields.io/badge/Docs-ohmyposh.dev-blue
[docs]: https://ohmyposh.dev
[release-badge]: https://img.shields.io/github/v/release/jandedobbeleer/oh-my-posh?label=Release
[release]: https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest
[merge-conflict]: https://www.mergeconflict.fm/
[merge-conflict-logo]: https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/0/02d84890-e58d-43eb-ab4c-26bcc8524289/cover_small.jpg?v=1
[sponsor-link]: https://buy.polar.sh/polar_cl_qnmZxboq1IDUJo03mk2Jue6ktqZrCXElnzH2s2xbV2R
================================================
FILE: SECURITY.md
================================================
# Security Policy
## Supported Versions
Only the latest [release][releases] is supported.
## Reporting a Vulnerability
Vulnerabilities can be sent in via [email][email] to avoid publishing in the open.
Oh My Posh does not have a bounty program, neither do we respond to bug bounties.
For valid security concerns, you can expect a response within 48 hours,
and credit is given once an acceptable fix is found and published.
[releases]: https://github.com
gitextract_dbo6fjze/
├── .all-contributorsrc
├── .commitlintrc.yml
├── .config/
│ └── configuration.winget
├── .devcontainer/
│ ├── Dockerfile
│ ├── Microsoft.PowerShell_profile.ps1
│ ├── config.fish
│ └── devcontainer.json
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug.yml
│ │ ├── config.yml
│ │ ├── docs.yml
│ │ ├── enhancement.yml
│ │ └── feat.yml
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── agents/
│ │ └── architecture.md
│ ├── copilot-instructions.md
│ ├── dependabot.yml
│ ├── holopin.yml
│ ├── stale.yml
│ └── workflows/
│ ├── ai-changelog.yml
│ ├── android.yml
│ ├── bluesky.yml
│ ├── build_code.yml
│ ├── close_themes_pr.yml
│ ├── code.yml
│ ├── commits.yml
│ ├── composite/
│ │ └── bootstrap-go/
│ │ └── action.yml
│ ├── contributors.yml
│ ├── copilot-setup-steps.yml
│ ├── delete_store_submission.yml
│ ├── dependabot.yml
│ ├── discord.yml
│ ├── docs.yml
│ ├── edit_rights.yml
│ ├── gomod.yml
│ ├── homebrew.yml
│ ├── lock.yml
│ ├── markdown.yml
│ ├── merge_contributions_pr.yml
│ ├── microsoft_store.yml
│ ├── publish-mcp.yml
│ ├── release.yml
│ └── vale.yml
├── .gitignore
├── .markdownlint-cli2.yaml
├── .prettierrc
├── .vale.ini
├── .versionrc.json
├── .vscode/
│ ├── extensions.json
│ ├── launch.json
│ ├── settings.json
│ └── tasks.json
├── AGENTS.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── COPYING
├── README.md
├── SECURITY.md
├── apm.lock.yaml
├── apm.yml
├── build/
│ ├── post.ps1
│ └── pre.ps1
├── packages/
│ └── msi/
│ ├── README.md
│ ├── appxmanifest.xml
│ ├── build.ps1
│ ├── dsc/
│ │ ├── oh-my-posh.config.dsc.resource.json
│ │ ├── oh-my-posh.font.dsc.resource.json
│ │ └── oh-my-posh.shell.dsc.resource.json
│ ├── mapping.txt
│ └── oh-my-posh.wxs
├── src/
│ ├── .golangci.yml
│ ├── .goreleaser.yml
│ ├── build/
│ │ └── version.go
│ ├── cache/
│ │ ├── cache.go
│ │ ├── clear.go
│ │ ├── command.go
│ │ ├── duration.go
│ │ ├── duration_test.go
│ │ ├── file_map_windows.go
│ │ ├── file_unix.go
│ │ ├── file_windows.go
│ │ ├── init.go
│ │ ├── path.go
│ │ ├── path_unix.go
│ │ ├── path_windows.go
│ │ ├── store.go
│ │ ├── store_test.go
│ │ └── template.go
│ ├── cli/
│ │ ├── args.go
│ │ ├── auth/
│ │ │ ├── cli.go
│ │ │ ├── copilot.go
│ │ │ ├── ytmda.go
│ │ │ └── ytmda_test.go
│ │ ├── auth.go
│ │ ├── cache.go
│ │ ├── claude.go
│ │ ├── config.go
│ │ ├── config_export.go
│ │ ├── config_export_image.go
│ │ ├── debug.go
│ │ ├── disable.go
│ │ ├── edit.go
│ │ ├── enable.go
│ │ ├── font/
│ │ │ ├── download.go
│ │ │ ├── dsc.go
│ │ │ ├── font.go
│ │ │ ├── fonts.go
│ │ │ ├── install.go
│ │ │ ├── install_darwin.go
│ │ │ ├── install_unix.go
│ │ │ ├── install_windows.go
│ │ │ └── tui.go
│ │ ├── font.go
│ │ ├── get.go
│ │ ├── image/
│ │ │ ├── config.go
│ │ │ ├── config_test.go
│ │ │ ├── fonts.go
│ │ │ ├── image.go
│ │ │ └── image_test.go
│ │ ├── init.go
│ │ ├── notice.go
│ │ ├── print.go
│ │ ├── progress/
│ │ │ ├── model.go
│ │ │ └── reader.go
│ │ ├── root.go
│ │ ├── shell.go
│ │ ├── stream.go
│ │ ├── stream_test.go
│ │ ├── toggle.go
│ │ ├── upgrade/
│ │ │ ├── config.go
│ │ │ ├── install.go
│ │ │ ├── install_noop.go
│ │ │ ├── install_windows.go
│ │ │ ├── notice.go
│ │ │ ├── notice_test.go
│ │ │ ├── public_key.pem
│ │ │ ├── tui.go
│ │ │ ├── tui_test.go
│ │ │ ├── verify.go
│ │ │ └── verify_test.go
│ │ ├── upgrade.go
│ │ └── version.go
│ ├── color/
│ │ ├── colors.go
│ │ ├── colors_darwin.go
│ │ ├── colors_test.go
│ │ ├── colors_unix.go
│ │ ├── colors_windows.go
│ │ ├── cycle.go
│ │ ├── keywords.go
│ │ ├── palette.go
│ │ ├── palette_test.go
│ │ └── palettes.go
│ ├── config/
│ │ ├── backup.go
│ │ ├── block.go
│ │ ├── cache.go
│ │ ├── config.go
│ │ ├── config_test.go
│ │ ├── default.go
│ │ ├── dsc.go
│ │ ├── gob.go
│ │ ├── load.go
│ │ ├── merge.go
│ │ ├── merge_test.go
│ │ ├── migrate_glyphs.go
│ │ ├── migrate_glyphs_test.go
│ │ ├── responsive.go
│ │ ├── responsive_test.go
│ │ ├── segment.go
│ │ ├── segment_test.go
│ │ └── segment_types.go
│ ├── constants/
│ │ ├── constants_unix.go
│ │ └── constants_windows.go
│ ├── dsc/
│ │ ├── cli.go
│ │ ├── error.go
│ │ └── resource.go
│ ├── generics/
│ │ ├── convert.go
│ │ ├── pool.go
│ │ └── slices.go
│ ├── go.mod
│ ├── go.sum
│ ├── log/
│ │ ├── log.go
│ │ └── print.go
│ ├── main.go
│ ├── main_test.go
│ ├── maps/
│ │ ├── concurrent.go
│ │ ├── config.go
│ │ └── simple.go
│ ├── metadata.json
│ ├── prompt/
│ │ ├── debug.go
│ │ ├── engine.go
│ │ ├── engine_test.go
│ │ ├── extra.go
│ │ ├── preview.go
│ │ ├── primary.go
│ │ ├── rprompt.go
│ │ ├── segments.go
│ │ ├── segments_test.go
│ │ ├── status.go
│ │ ├── streaming.go
│ │ ├── streaming_test.go
│ │ └── tooltip.go
│ ├── regex/
│ │ ├── regex.go
│ │ └── regex_test.go
│ ├── runtime/
│ │ ├── battery/
│ │ │ ├── battery.go
│ │ │ ├── battery_darwin.go
│ │ │ ├── battery_darwin_test.go
│ │ │ ├── battery_linux.go
│ │ │ ├── battery_netbsd.go
│ │ │ ├── battery_openandfreebsd.go
│ │ │ ├── battery_openandfreebsd_test.go
│ │ │ ├── battery_windows.go
│ │ │ ├── battery_windows_nix.go
│ │ │ ├── battery_windows_nix_test.go
│ │ │ ├── errors.go
│ │ │ └── errors_test.go
│ │ ├── cmd/
│ │ │ ├── run.go
│ │ │ └── run_test.go
│ │ ├── environment.go
│ │ ├── http/
│ │ │ ├── connection.go
│ │ │ ├── download.go
│ │ │ ├── http.go
│ │ │ ├── oauth.go
│ │ │ ├── oauth_test.go
│ │ │ ├── request.go
│ │ │ └── request_test.go
│ │ ├── jobs/
│ │ │ ├── jobs_common.go
│ │ │ ├── jobs_other.go
│ │ │ └── jobs_windows.go
│ │ ├── mock/
│ │ │ └── environment.go
│ │ ├── networks_windows.go
│ │ ├── path/
│ │ │ ├── clean.go
│ │ │ ├── home.go
│ │ │ └── separator.go
│ │ ├── terminal.go
│ │ ├── terminal_darwin.go
│ │ ├── terminal_test.go
│ │ ├── terminal_unix.go
│ │ ├── terminal_unix_test.go
│ │ ├── terminal_windows.go
│ │ ├── terminal_windows_nix.go
│ │ └── win32_windows.go
│ ├── segments/
│ │ ├── angular.go
│ │ ├── argocd.go
│ │ ├── argocd_test.go
│ │ ├── aurelia.go
│ │ ├── aws.go
│ │ ├── aws_test.go
│ │ ├── az.go
│ │ ├── az_functions.go
│ │ ├── az_test.go
│ │ ├── azd.go
│ │ ├── azd_test.go
│ │ ├── base.go
│ │ ├── battery.go
│ │ ├── bazel.go
│ │ ├── bazel_test.go
│ │ ├── brewfather.go
│ │ ├── brewfather_test.go
│ │ ├── buf.go
│ │ ├── buf_test.go
│ │ ├── bun.go
│ │ ├── bun_test.go
│ │ ├── carbon_intensity.go
│ │ ├── carbon_intensity_test.go
│ │ ├── cds.go
│ │ ├── cds_test.go
│ │ ├── cf.go
│ │ ├── cf_target.go
│ │ ├── cf_target_test.go
│ │ ├── cf_test.go
│ │ ├── claude.go
│ │ ├── claude_test.go
│ │ ├── clojure.go
│ │ ├── clojure_test.go
│ │ ├── cmake.go
│ │ ├── cmake_test.go
│ │ ├── connection.go
│ │ ├── connection_test.go
│ │ ├── copilot.go
│ │ ├── copilot_test.go
│ │ ├── crystal.go
│ │ ├── crystal_test.go
│ │ ├── dart.go
│ │ ├── dart_test.go
│ │ ├── deno.go
│ │ ├── deno_test.go
│ │ ├── docker.go
│ │ ├── docker_test.go
│ │ ├── dotnet.go
│ │ ├── dotnet_test.go
│ │ ├── elixir.go
│ │ ├── elixir_test.go
│ │ ├── executiontime.go
│ │ ├── executiontime_test.go
│ │ ├── firebase.go
│ │ ├── firebase_test.go
│ │ ├── flutter.go
│ │ ├── flutter_test.go
│ │ ├── fortran.go
│ │ ├── fortran_test.go
│ │ ├── fossil.go
│ │ ├── fossil_test.go
│ │ ├── gcp.go
│ │ ├── gcp_test.go
│ │ ├── git.go
│ │ ├── git_test.go
│ │ ├── git_unix.go
│ │ ├── git_unix_test.go
│ │ ├── git_windows.go
│ │ ├── git_windows_test.go
│ │ ├── gitversion.go
│ │ ├── gitversion_test.go
│ │ ├── golang.go
│ │ ├── golang_test.go
│ │ ├── haskell.go
│ │ ├── haskell_test.go
│ │ ├── helm.go
│ │ ├── helm_test.go
│ │ ├── http.go
│ │ ├── http_test.go
│ │ ├── ipify.go
│ │ ├── ipify_test.go
│ │ ├── java.go
│ │ ├── java_test.go
│ │ ├── jujutsu.go
│ │ ├── jujutsu_test.go
│ │ ├── julia.go
│ │ ├── julia_test.go
│ │ ├── kotlin.go
│ │ ├── kotlin_test.go
│ │ ├── kubectl.go
│ │ ├── kubectl_test.go
│ │ ├── language.go
│ │ ├── language_test.go
│ │ ├── lastfm.go
│ │ ├── lastfm_test.go
│ │ ├── lua.go
│ │ ├── lua_test.go
│ │ ├── mercurial.go
│ │ ├── mercurial_test.go
│ │ ├── mojo.go
│ │ ├── mojo_test.go
│ │ ├── mvn.go
│ │ ├── mvn_test.go
│ │ ├── nba.go
│ │ ├── nba_test.go
│ │ ├── nbgv.go
│ │ ├── nbgv_test.go
│ │ ├── nightscout.go
│ │ ├── nightscout_test.go
│ │ ├── nim.go
│ │ ├── nim_test.go
│ │ ├── nixshell.go
│ │ ├── nixshell_test.go
│ │ ├── node.go
│ │ ├── node_test.go
│ │ ├── npm.go
│ │ ├── npm_test.go
│ │ ├── nx.go
│ │ ├── ocaml.go
│ │ ├── ocaml_test.go
│ │ ├── options/
│ │ │ ├── map.go
│ │ │ └── map_test.go
│ │ ├── os.go
│ │ ├── os_test.go
│ │ ├── owm.go
│ │ ├── owm_test.go
│ │ ├── path.go
│ │ ├── path_test.go
│ │ ├── path_unix_test.go
│ │ ├── path_windows_test.go
│ │ ├── perl.go
│ │ ├── perl_test.go
│ │ ├── php.go
│ │ ├── php_test.go
│ │ ├── plastic.go
│ │ ├── plastic_test.go
│ │ ├── pnpm.go
│ │ ├── pnpm_test.go
│ │ ├── posh_git.go
│ │ ├── posh_git_test.go
│ │ ├── project.go
│ │ ├── project_test.go
│ │ ├── pulumi.go
│ │ ├── pulumi_test.go
│ │ ├── python.go
│ │ ├── python_test.go
│ │ ├── quasar.go
│ │ ├── quasar_test.go
│ │ ├── r.go
│ │ ├── r_test.go
│ │ ├── ramadan.go
│ │ ├── ramadan_test.go
│ │ ├── react.go
│ │ ├── root.go
│ │ ├── ruby.go
│ │ ├── ruby_test.go
│ │ ├── rust.go
│ │ ├── rust_test.go
│ │ ├── sapling.go
│ │ ├── sapling_test.go
│ │ ├── scm.go
│ │ ├── scm_test.go
│ │ ├── session.go
│ │ ├── session_test.go
│ │ ├── shell.go
│ │ ├── shell_test.go
│ │ ├── sitecore.go
│ │ ├── sitecore_test.go
│ │ ├── spotify.go
│ │ ├── spotify_darwin.go
│ │ ├── spotify_darwin_test.go
│ │ ├── spotify_linux.go
│ │ ├── spotify_linux_test.go
│ │ ├── spotify_noop.go
│ │ ├── spotify_test.go
│ │ ├── spotify_windows.go
│ │ ├── spotify_windows_test.go
│ │ ├── status.go
│ │ ├── status_test.go
│ │ ├── strava.go
│ │ ├── strava_test.go
│ │ ├── svelte.go
│ │ ├── svn.go
│ │ ├── svn_test.go
│ │ ├── swift.go
│ │ ├── swift_test.go
│ │ ├── sysinfo.go
│ │ ├── sysinfo_test.go
│ │ ├── talosctl.go
│ │ ├── talosctl_test.go
│ │ ├── taskwarrior.go
│ │ ├── taskwarrior_test.go
│ │ ├── tauri.go
│ │ ├── terraform.go
│ │ ├── terraform_test.go
│ │ ├── text.go
│ │ ├── text_test.go
│ │ ├── time.go
│ │ ├── time_test.go
│ │ ├── todoist.go
│ │ ├── todoist_test.go
│ │ ├── ui5tooling.go
│ │ ├── ui5tooling_test.go
│ │ ├── umbraco.go
│ │ ├── umbraco_test.go
│ │ ├── unity.go
│ │ ├── unity_test.go
│ │ ├── upgrade.go
│ │ ├── upgrade_test.go
│ │ ├── v.go
│ │ ├── v_test.go
│ │ ├── vala.go
│ │ ├── vala_test.go
│ │ ├── wakatime.go
│ │ ├── wakatime_test.go
│ │ ├── winget.go
│ │ ├── winget_test.go
│ │ ├── winreg.go
│ │ ├── winreg_test.go
│ │ ├── withings.go
│ │ ├── withings_test.go
│ │ ├── xmake.go
│ │ ├── xmake_test.go
│ │ ├── yarn.go
│ │ ├── yarn_test.go
│ │ ├── ytm.go
│ │ ├── ytm_test.go
│ │ ├── zig.go
│ │ └── zig_test.go
│ ├── shell/
│ │ ├── bash.go
│ │ ├── bash_test.go
│ │ ├── cmd.go
│ │ ├── cmd_test.go
│ │ ├── code.go
│ │ ├── constants.go
│ │ ├── dsc.go
│ │ ├── dsc_test.go
│ │ ├── elvish.go
│ │ ├── elvish_test.go
│ │ ├── features.go
│ │ ├── filesystem.go
│ │ ├── fish.go
│ │ ├── fish_test.go
│ │ ├── formats.go
│ │ ├── init.go
│ │ ├── nu.go
│ │ ├── nu_test.go
│ │ ├── pwsh.go
│ │ ├── pwsh_test.go
│ │ ├── scripts/
│ │ │ ├── omp.bash
│ │ │ ├── omp.elv
│ │ │ ├── omp.fish
│ │ │ ├── omp.lua
│ │ │ ├── omp.nu
│ │ │ ├── omp.ps1
│ │ │ ├── omp.xsh
│ │ │ └── omp.zsh
│ │ ├── xonsh.go
│ │ ├── xonsh_test.go
│ │ ├── zsh.go
│ │ └── zsh_test.go
│ ├── template/
│ │ ├── cache.go
│ │ ├── compare.go
│ │ ├── compare_test.go
│ │ ├── files.go
│ │ ├── files_test.go
│ │ ├── func_map.go
│ │ ├── init.go
│ │ ├── link.go
│ │ ├── link_test.go
│ │ ├── list.go
│ │ ├── numbers.go
│ │ ├── numbers_test.go
│ │ ├── pool_test.go
│ │ ├── random.go
│ │ ├── random_test.go
│ │ ├── reason.go
│ │ ├── regex.go
│ │ ├── render.go
│ │ ├── round.go
│ │ ├── round_test.go
│ │ ├── strings.go
│ │ ├── strings_test.go
│ │ ├── text.go
│ │ └── text_test.go
│ ├── terminal/
│ │ ├── iterm.go
│ │ ├── writer.go
│ │ ├── writer_hyperlink_test.go
│ │ └── writer_test.go
│ ├── test/
│ │ ├── AzureRmContext.json
│ │ ├── azureProfile.json
│ │ ├── empty.nuspec
│ │ ├── go.work
│ │ ├── invalid.nuspec
│ │ ├── jandedobbeleer-palette.omp.json
│ │ ├── jandedobbeleer.omp.json
│ │ ├── kubectl.yml
│ │ ├── nba/
│ │ │ ├── schedule.json
│ │ │ └── score.json
│ │ ├── oh-my-posh.psd1
│ │ ├── signing/
│ │ │ ├── checksums.txt
│ │ │ ├── checksums.txt.invalid.sig
│ │ │ └── checksums.txt.sig
│ │ ├── terraform.tfstate
│ │ ├── umbraco/
│ │ │ ├── ANonUmbracoProject.csproj
│ │ │ ├── MyProject.csproj
│ │ │ ├── web.config
│ │ │ └── web.old.config
│ │ ├── valid.nuspec
│ │ └── versions.tf
│ ├── text/
│ │ ├── builder.go
│ │ ├── percentage.go
│ │ └── percentage_test.go
│ └── winres/
│ └── winres.json
├── themes/
│ ├── 1_shell.omp.json
│ ├── M365Princess.omp.json
│ ├── agnoster.minimal.omp.json
│ ├── agnoster.omp.json
│ ├── agnosterplus.omp.json
│ ├── aliens.omp.json
│ ├── amro.omp.json
│ ├── atomic.omp.json
│ ├── atomicBit.omp.json
│ ├── avit.omp.json
│ ├── blue-owl.omp.json
│ ├── blueish.omp.json
│ ├── bubbles.omp.json
│ ├── bubblesextra.omp.json
│ ├── bubblesline.omp.json
│ ├── capr4n.omp.json
│ ├── catppuccin.omp.json
│ ├── catppuccin_frappe.omp.json
│ ├── catppuccin_latte.omp.json
│ ├── catppuccin_macchiato.omp.json
│ ├── catppuccin_mocha.omp.json
│ ├── cert.omp.json
│ ├── chips.omp.json
│ ├── cinnamon.omp.json
│ ├── clean-detailed.omp.json
│ ├── cloud-context.omp.json
│ ├── cloud-native-azure.omp.json
│ ├── cobalt2.omp.json
│ ├── craver.omp.json
│ ├── darkblood.omp.json
│ ├── devious-diamonds.omp.yaml
│ ├── di4am0nd.omp.json
│ ├── dracula.omp.json
│ ├── easy-term.omp.json
│ ├── emodipt-extend.omp.json
│ ├── emodipt.omp.json
│ ├── fish.omp.json
│ ├── free-ukraine.omp.json
│ ├── froczh.omp.json
│ ├── glowsticks.omp.yaml
│ ├── gmay.omp.json
│ ├── grandpa-style.omp.json
│ ├── gruvbox.omp.json
│ ├── half-life.omp.json
│ ├── honukai.omp.json
│ ├── hotstick.minimal.omp.json
│ ├── hul10.omp.json
│ ├── hunk.omp.json
│ ├── huvix.omp.json
│ ├── if_tea.omp.json
│ ├── illusi0n.omp.json
│ ├── iterm2.omp.json
│ ├── jandedobbeleer.omp.json
│ ├── jblab_2021.omp.json
│ ├── jonnychipz.omp.json
│ ├── json.omp.json
│ ├── jtracey93.omp.json
│ ├── jv_sitecorian.omp.json
│ ├── kali.omp.json
│ ├── kushal.omp.json
│ ├── lambda.omp.json
│ ├── lambdageneration.omp.json
│ ├── larserikfinholt.omp.json
│ ├── lightgreen.omp.json
│ ├── marcduiker.omp.json
│ ├── markbull.omp.json
│ ├── material.omp.json
│ ├── microverse-power.omp.json
│ ├── mojada.omp.json
│ ├── montys.omp.json
│ ├── mt.omp.json
│ ├── multiverse-neon.omp.json
│ ├── negligible.omp.json
│ ├── neko.omp.json
│ ├── night-owl.omp.json
│ ├── nordtron.omp.json
│ ├── nu4a.omp.json
│ ├── onehalf.minimal.omp.json
│ ├── paradox.omp.json
│ ├── pararussel.omp.json
│ ├── patriksvensson.omp.json
│ ├── peru.omp.json
│ ├── pixelrobots.omp.json
│ ├── plague.omp.json
│ ├── poshmon.omp.json
│ ├── powerlevel10k_classic.omp.json
│ ├── powerlevel10k_lean.omp.json
│ ├── powerlevel10k_modern.omp.json
│ ├── powerlevel10k_rainbow.omp.json
│ ├── powerline.omp.json
│ ├── probua.minimal.omp.json
│ ├── pure.omp.json
│ ├── quick-term.omp.json
│ ├── remk.omp.json
│ ├── robbyrussell.omp.json
│ ├── rudolfs-dark.omp.json
│ ├── rudolfs-light.omp.json
│ ├── schema.json
│ ├── sim-web.omp.json
│ ├── slim.omp.json
│ ├── slimfat.omp.json
│ ├── smoothie.omp.json
│ ├── sonicboom_dark.omp.json
│ ├── sonicboom_light.omp.json
│ ├── sorin.omp.json
│ ├── space.omp.json
│ ├── spaceship.omp.json
│ ├── star.omp.json
│ ├── stelbent-compact.minimal.omp.json
│ ├── stelbent.minimal.omp.json
│ ├── takuya.omp.json
│ ├── the-unnamed.omp.json
│ ├── thecyberden.omp.json
│ ├── tiwahu.omp.json
│ ├── tokyo.omp.json
│ ├── tokyonight_storm.omp.json
│ ├── tonybaloney.omp.json
│ ├── uew.omp.json
│ ├── unicorn.omp.json
│ ├── velvet.omp.json
│ ├── wholespace.omp.json
│ ├── wopian.omp.json
│ ├── xtoys.omp.json
│ ├── ys.omp.json
│ └── zash.omp.json
└── website/
├── .gitignore
├── README.md
├── api/
│ ├── .funcignore
│ ├── .gitignore
│ ├── auth/
│ │ ├── function.json
│ │ └── index.js
│ ├── data/
│ │ ├── .gitignore
│ │ └── README.md
│ ├── host.json
│ ├── mcp/
│ │ ├── .gitignore
│ │ ├── .well-known/
│ │ │ └── mcp.json
│ │ ├── README.md
│ │ ├── function.json
│ │ ├── index.js
│ │ ├── server.json
│ │ └── validate-server.js
│ ├── package.json
│ ├── proxies.json
│ ├── refresh/
│ │ ├── function.json
│ │ └── index.js
│ ├── shared/
│ │ ├── strava.js
│ │ ├── validator.js
│ │ └── withings.js
│ └── test/
│ └── validator.test.js
├── blog/
│ ├── 2022-03-20-whats-new-1.mdx
│ ├── 2022-03-27-whats-new-2.md
│ ├── 2022-03-28-idiots-everywhere.md
│ ├── 2022-05-19-whats-new-3.md
│ ├── 2024-07-22-bash-rprompt.md
│ └── 2025-12-28-oh-my-posh-claude-code-integration.md
├── docs/
│ ├── advanced/
│ │ └── mcp-server.mdx
│ ├── auth.mdx
│ ├── configuration/
│ │ ├── block.mdx
│ │ ├── colors.mdx
│ │ ├── debug-prompt.mdx
│ │ ├── general.mdx
│ │ ├── introduction.mdx
│ │ ├── line-error.mdx
│ │ ├── sample.mdx
│ │ ├── secondary-prompt.mdx
│ │ ├── segment.mdx
│ │ ├── templates.mdx
│ │ ├── title.mdx
│ │ ├── tooltips.mdx
│ │ └── transient.mdx
│ ├── contributing/
│ │ ├── git.mdx
│ │ ├── plastic.mdx
│ │ ├── segment.mdx
│ │ └── started.mdx
│ ├── contributors.md
│ ├── dsc.md
│ ├── experimental/
│ │ └── streaming.mdx
│ ├── faq.mdx
│ ├── installation/
│ │ ├── customize.mdx
│ │ ├── fonts.mdx
│ │ ├── homebrew.md
│ │ ├── linux.mdx
│ │ ├── macos.mdx
│ │ ├── next.md
│ │ ├── prompt.mdx
│ │ ├── upgrade.mdx
│ │ └── windows.mdx
│ ├── migrating-module.md
│ ├── segments/
│ │ ├── cli/
│ │ │ ├── angular.mdx
│ │ │ ├── argocd.mdx
│ │ │ ├── aurelia.mdx
│ │ │ ├── bazel.mdx
│ │ │ ├── buf.mdx
│ │ │ ├── bun.mdx
│ │ │ ├── claude.mdx
│ │ │ ├── cmake.mdx
│ │ │ ├── copilot.mdx
│ │ │ ├── deno.mdx
│ │ │ ├── docker.mdx
│ │ │ ├── firebase.mdx
│ │ │ ├── flutter.mdx
│ │ │ ├── gitversion.mdx
│ │ │ ├── helm.mdx
│ │ │ ├── kubectl.mdx
│ │ │ ├── mvn.mdx
│ │ │ ├── nbgv.mdx
│ │ │ ├── nix-shell.mdx
│ │ │ ├── npm.mdx
│ │ │ ├── nx.mdx
│ │ │ ├── pnpm.mdx
│ │ │ ├── quasar.mdx
│ │ │ ├── react.mdx
│ │ │ ├── svelte.mdx
│ │ │ ├── talosctl.mdx
│ │ │ ├── taskwarrior.mdx
│ │ │ ├── tauri.mdx
│ │ │ ├── terraform.mdx
│ │ │ ├── ui5tooling.mdx
│ │ │ ├── umbraco.mdx
│ │ │ ├── unity.mdx
│ │ │ ├── xmake.mdx
│ │ │ └── yarn.mdx
│ │ ├── cloud/
│ │ │ ├── aws.mdx
│ │ │ ├── az.mdx
│ │ │ ├── azd.mdx
│ │ │ ├── azfunc.mdx
│ │ │ ├── cds.mdx
│ │ │ ├── cf.mdx
│ │ │ ├── cftarget.mdx
│ │ │ ├── gcp.mdx
│ │ │ ├── pulumi.mdx
│ │ │ └── sitecore.mdx
│ │ ├── health/
│ │ │ ├── nightscout.mdx
│ │ │ ├── ramadan.mdx
│ │ │ ├── strava.mdx
│ │ │ └── withings.mdx
│ │ ├── languages/
│ │ │ ├── clojure.mdx
│ │ │ ├── crystal.mdx
│ │ │ ├── dart.mdx
│ │ │ ├── dotnet.mdx
│ │ │ ├── elixir.mdx
│ │ │ ├── fortran.mdx
│ │ │ ├── golang.mdx
│ │ │ ├── haskell.mdx
│ │ │ ├── java.mdx
│ │ │ ├── julia.mdx
│ │ │ ├── kotlin.mdx
│ │ │ ├── lua.mdx
│ │ │ ├── mojo.mdx
│ │ │ ├── nim.mdx
│ │ │ ├── node.mdx
│ │ │ ├── ocaml.mdx
│ │ │ ├── perl.mdx
│ │ │ ├── php.mdx
│ │ │ ├── python.mdx
│ │ │ ├── r.mdx
│ │ │ ├── ruby.mdx
│ │ │ ├── rust.mdx
│ │ │ ├── swift.mdx
│ │ │ ├── v.mdx
│ │ │ ├── vala.mdx
│ │ │ └── zig.mdx
│ │ ├── music/
│ │ │ ├── lastfm.mdx
│ │ │ ├── spotify.mdx
│ │ │ └── ytm.mdx
│ │ ├── scm/
│ │ │ ├── fossil.mdx
│ │ │ ├── git.mdx
│ │ │ ├── jujutsu.mdx
│ │ │ ├── mercurial.mdx
│ │ │ ├── plastic.mdx
│ │ │ ├── sapling.mdx
│ │ │ └── svn.mdx
│ │ ├── system/
│ │ │ ├── battery.mdx
│ │ │ ├── connection.mdx
│ │ │ ├── executiontime.mdx
│ │ │ ├── os.mdx
│ │ │ ├── path.mdx
│ │ │ ├── project.mdx
│ │ │ ├── root.mdx
│ │ │ ├── session.mdx
│ │ │ ├── shell.mdx
│ │ │ ├── status.mdx
│ │ │ ├── sysinfo.mdx
│ │ │ ├── text.mdx
│ │ │ ├── time.mdx
│ │ │ ├── upgrade.mdx
│ │ │ ├── winget.mdx
│ │ │ └── winreg.mdx
│ │ └── web/
│ │ ├── brewfather.mdx
│ │ ├── carbonintensity.mdx
│ │ ├── http.mdx
│ │ ├── ipify.mdx
│ │ ├── nba.mdx
│ │ ├── owm.mdx
│ │ ├── todoist.mdx
│ │ └── wakatime.mdx
│ ├── share-theme.md
│ └── themes.md
├── docusaurus.config.js
├── export_themes.mjs
├── package.json
├── plugins/
│ └── appinsights/
│ ├── analytics.js
│ └── index.js
├── sidebars.js
├── src/
│ ├── components/
│ │ ├── Auth.js
│ │ └── Config.js
│ ├── css/
│ │ ├── custom.css
│ │ └── prism-rose-pine-moon.css
│ └── pages/
│ ├── index.js
│ ├── privacy.mdx
│ └── styles.module.css
├── static/
│ ├── .nojekyll
│ ├── codepoints.csv
│ ├── img/
│ │ └── themes/
│ │ └── .keep
│ ├── install.ps1
│ └── install.sh
└── staticwebapp.config.json
Showing preview only (227K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2845 symbols across 459 files)
FILE: src/cache/cache.go
function init (line 8) | func init() {
constant DeviceStore (line 17) | DeviceStore = "omp.cache"
constant TEMPLATECACHE (line 21) | TEMPLATECACHE = "template_cache"
constant TOGGLECACHE (line 22) | TOGGLECACHE = "toggle_cache"
constant PROMPTCOUNTCACHE (line 23) | PROMPTCOUNTCACHE = "prompt_count_cache"
constant ENGINECACHE (line 24) | ENGINECACHE = "engine_cache"
constant FONTLISTCACHE (line 25) | FONTLISTCACHE = "font_list_cache"
constant CLAUDECACHE (line 26) | CLAUDECACHE = "claude_cache"
type Entry (line 29) | type Entry struct
method Expired (line 35) | func (c *Entry[T]) Expired() bool {
FILE: src/cache/clear.go
function Clear (line 19) | func Clear(force bool, excludedFiles ...string) error {
function GetTTL (line 91) | func GetTTL() int {
FILE: src/cache/command.go
type Command (line 7) | type Command struct
method Set (line 11) | func (c *Command) Set(command, path string) {
method Get (line 15) | func (c *Command) Get(command string) (string, bool) {
FILE: src/cache/duration.go
type Duration (line 7) | type Duration
method Seconds (line 17) | func (d Duration) Seconds() int {
method IsEmpty (line 34) | func (d Duration) IsEmpty() bool {
constant INFINITE (line 10) | INFINITE = Duration("infinite")
constant NONE (line 11) | NONE = Duration("none")
constant ONEWEEK (line 12) | ONEWEEK = Duration("168h")
constant ONEDAY (line 13) | ONEDAY = Duration("24h")
constant TWOYEARS (line 14) | TWOYEARS = Duration("17520h")
function ToDuration (line 38) | func ToDuration(seconds int) Duration {
FILE: src/cache/duration_test.go
function TestSeconds (line 9) | func TestSeconds(t *testing.T) {
FILE: src/cache/file_map_windows.go
constant minStringSize (line 13) | minStringSize = 50 * 1024
constant maxStringSize (line 14) | maxStringSize = 10 * 1024 * 1024
constant fileMapAllAccess (line 19) | fileMapAllAccess = 0x001f001f
constant pageReadwrite (line 20) | pageReadwrite = 0x04
constant genericRead (line 21) | genericRead = 0x80000000
constant genericWrite (line 22) | genericWrite = 0x40000000
constant createAlways (line 23) | createAlways = 2
constant openExisting (line 24) | openExisting = 3
constant fileAttributeNormal (line 25) | fileAttributeNormal = 0x80
type PersistentSharedString (line 42) | type PersistentSharedString struct
method SetString (line 197) | func (pss *PersistentSharedString) SetString(value string) error {
method bytes (line 225) | func (pss *PersistentSharedString) bytes() []byte {
method close (line 253) | func (pss *PersistentSharedString) close() error {
function createOrOpenPersistentString (line 50) | func createOrOpenPersistentString(filePath string) (*PersistentSharedStr...
function createOrOpenPersistentStringWithSize (line 54) | func createOrOpenPersistentStringWithSize(filePath string, requiredSize ...
function openExistingFileWithSize (line 75) | func openExistingFileWithSize(filePath string, requiredSize int) (*Persi...
function createNewFileWithSize (line 115) | func createNewFileWithSize(filePath string, size int) (*PersistentShared...
function createMappingFromFileWithSize (line 156) | func createMappingFromFileWithSize(filePath string, fileHandle uintptr, ...
FILE: src/cache/file_unix.go
function openFile (line 10) | func openFile(filePath string) (io.ReadWriteCloser, error) {
FILE: src/cache/file_windows.go
type persistentStringRWCloser (line 12) | type persistentStringRWCloser struct
method Read (line 27) | func (rw *persistentStringRWCloser) Read(p []byte) (int, error) {
method Write (line 31) | func (rw *persistentStringRWCloser) Write(p []byte) (int, error) {
method Close (line 40) | func (rw *persistentStringRWCloser) Close() error {
function NewPersistentStringRWCloser (line 19) | func NewPersistentStringRWCloser(pss *PersistentSharedString) io.ReadWri...
function openFile (line 79) | func openFile(filePath string) (io.ReadWriteCloser, error) {
FILE: src/cache/init.go
type Option (line 13) | type Option
function Init (line 38) | func Init(shell string, options ...Option) {
function SessionID (line 53) | func SessionID() string {
function Close (line 71) | func Close() {
FILE: src/cache/path.go
function Path (line 14) | func Path() string {
function returnOrBuildCachePath (line 46) | func returnOrBuildCachePath(input string) (string, bool) {
FILE: src/cache/path_unix.go
function platformCachePath (line 7) | func platformCachePath() (string, bool) {
function PackageFamilyName (line 15) | func PackageFamilyName() (string, bool) {
FILE: src/cache/path_windows.go
function platformCachePath (line 13) | func platformCachePath() (string, bool) {
function PackageFamilyName (line 30) | func PackageFamilyName() (string, bool) {
FILE: src/cache/store.go
type store (line 15) | type store struct
type Store (line 27) | type Store
method new (line 35) | func (s Store) new() *store {
method get (line 42) | func (s Store) get() *store {
method init (line 60) | func (s Store) init(filePath string, persist bool) {
method close (line 117) | func (s Store) close() {
constant Session (line 30) | Session Store = "session"
constant Device (line 31) | Device Store = "device"
constant TTL (line 32) | TTL string = "ttl"
function touchSessionFile (line 102) | func touchSessionFile(filePath string) {
function Get (line 151) | func Get[T any](s Store, key string) (T, bool) {
function Set (line 185) | func Set[T any](s Store, key string, value T, duration Duration) {
function Delete (line 211) | func Delete(s Store, key string) {
function DeleteAll (line 225) | func DeleteAll(s Store) {
function Print (line 238) | func Print(s Store) string {
FILE: src/cache/store_test.go
function TestStore (line 11) | func TestStore(t *testing.T) {
FILE: src/cache/template.go
type Template (line 7) | type Template struct
method AddSegmentData (line 33) | func (t *Template) AddSegmentData(key string, value any) {
method RemoveSegmentData (line 37) | func (t *Template) RemoveSegmentData(key string) {
type SimpleTemplate (line 12) | type SimpleTemplate struct
FILE: src/cli/args.go
function NoArgsOrOneValidArg (line 7) | func NoArgsOrOneValidArg(cmd *cobra.Command, args []string) error {
FILE: src/cli/auth.go
function init (line 66) | func init() {
FILE: src/cli/auth/cli.go
type stateMsg (line 18) | type stateMsg
type state (line 20) | type state
constant code (line 23) | code state = iota
constant token (line 24) | token
constant done (line 25) | done
type ErrorGetter (line 29) | type ErrorGetter interface
function setState (line 33) | func setState(message state) {
type model (line 41) | type model struct
method Init (line 50) | func (m *model) Init() tea.Cmd {
method GetError (line 59) | func (m *model) GetError() error {
method Update (line 63) | func (m *model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
method View (line 80) | func (m *model) View() string {
function Run (line 95) | func Run(m tea.Model) error {
FILE: src/cli/auth/copilot.go
constant CopilotClientID (line 18) | CopilotClientID = "Iv1.b507a08c87ecfe98"
constant CopilotScope (line 19) | CopilotScope = "read:email"
constant CopilotDeviceCodeURL (line 21) | CopilotDeviceCodeURL = "https://github.com/login/device/code"
constant CopilotAccessTokenURL (line 22) | CopilotAccessTokenURL = "https://github.com/login/oauth/access_token"
constant CopilotTokenKey (line 24) | CopilotTokenKey = "copilot_token"
type DeviceCodeResponse (line 28) | type DeviceCodeResponse struct
type AccessTokenResponse (line 37) | type AccessTokenResponse struct
function NewCopilot (line 45) | func NewCopilot(env runtime.Environment) *CopilotAuth {
type CopilotAuth (line 53) | type CopilotAuth struct
method Update (line 60) | func (c *CopilotAuth) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
method Init (line 77) | func (c *CopilotAuth) Init() tea.Cmd {
method Authenticate (line 84) | func (c *CopilotAuth) Authenticate() {
method requestDeviceCode (line 122) | func (c *CopilotAuth) requestDeviceCode() (*DeviceCodeResponse, error) {
method pollForToken (line 144) | func (c *CopilotAuth) pollForToken(deviceCode string, interval int) (s...
method status (line 193) | func (c *CopilotAuth) status(err error) string {
method View (line 206) | func (c *CopilotAuth) View() string {
FILE: src/cli/auth/ytmda.go
constant YTMDABASEURL (line 19) | YTMDABASEURL = "http://localhost:9863/api/v1"
constant YTMDATOKEN (line 20) | YTMDATOKEN = "ytmda_token"
constant tokenURL (line 22) | tokenURL = YTMDABASEURL + "/auth/request"
constant codeURL (line 23) | codeURL = YTMDABASEURL + "/auth/requestcode"
function NewYtmda (line 26) | func NewYtmda(env runtime.Environment) *Ytmda {
type Ytmda (line 34) | type Ytmda struct
method Init (line 39) | func (y *Ytmda) Init() tea.Cmd {
method Authenticate (line 46) | func (y *Ytmda) Authenticate() {
method requestCode (line 79) | func (y *Ytmda) requestCode() (string, error) {
method requestToken (line 91) | func (y *Ytmda) requestToken(code string) (string, error) {
method status (line 126) | func (y *Ytmda) status(err error) string {
function ytmdaRequest (line 103) | func ytmdaRequest[a any](method, url, body string, env runtime.Environme...
FILE: src/cli/auth/ytmda_test.go
function TestYtdma_Authenticate (line 13) | func TestYtdma_Authenticate(t *testing.T) {
FILE: src/cli/cache.go
function init (line 83) | func init() {
FILE: src/cli/claude.go
function processClaudeData (line 88) | func processClaudeData(stdinData []byte) {
function init (line 117) | func init() {
FILE: src/cli/config.go
function init (line 46) | func init() {
FILE: src/cli/config_export.go
function cleanOutputPath (line 103) | func cleanOutputPath(output string) string {
function init (line 115) | func init() {
FILE: src/cli/config_export_image.go
function init (line 135) | func init() {
function setConfigFlag (line 148) | func setConfigFlag() error {
FILE: src/cli/debug.go
function init (line 27) | func init() {
function createDebugCmd (line 31) | func createDebugCmd() *cobra.Command {
function getDebugConfig (line 88) | func getDebugConfig(configpath string) *config.Config {
FILE: src/cli/disable.go
function init (line 25) | func init() {
FILE: src/cli/edit.go
function editFileWithEditor (line 11) | func editFileWithEditor(file string) int {
FILE: src/cli/enable.go
function init (line 42) | func init() {
function toggleFeature (line 46) | func toggleFeature(cmd *cobra.Command, feature string, enable bool) {
FILE: src/cli/font.go
function init (line 89) | func init() {
FILE: src/cli/font/download.go
function Download (line 19) | func Download(fontURL string) ([]byte, error) {
function isZipFile (line 63) | func isZipFile(data []byte) bool {
function getRemoteFile (line 68) | func getRemoteFile(location string) (data []byte, err error) {
FILE: src/cli/font/dsc.go
type Resource (line 8) | type Resource struct
method Apply (line 18) | func (s *Resource) Apply(schema string) error {
method Add (line 22) | func (s *Resource) Add(name string) {
function DSC (line 12) | func DSC() *Resource {
FILE: src/cli/font/font.go
function init (line 15) | func init() {
type Font (line 21) | type Font struct
method Apply (line 29) | func (f *Font) Apply() error {
method Equal (line 55) | func (f *Font) Equal(font *Font) bool {
method Resolve (line 63) | func (f *Font) Resolve() (*Font, bool) {
function downloadAndInstall (line 36) | func downloadAndInstall(font, zipFolder string) (string, error) {
function newFont (line 77) | func newFont(fileName string, data []byte) (*Font, error) {
FILE: src/cli/font/fonts.go
constant CascadiaCodeMS (line 18) | CascadiaCodeMS = "CascadiaCode (MS)"
type release (line 21) | type release struct
type Asset (line 25) | type Asset struct
method FilterValue (line 32) | func (a Asset) FilterValue() string { return a.Name }
function IsLocalZipFile (line 34) | func IsLocalZipFile(name string) bool {
function ResolveFontAsset (line 38) | func ResolveFontAsset(font string) (*Asset, error) {
function fonts (line 65) | func fonts() ([]*Asset, error) {
function getCachedFontData (line 87) | func getCachedFontData() ([]*Asset, error) {
function CascadiaCode (line 96) | func CascadiaCode() (*Asset, error) {
function fetchFontAssets (line 109) | func fetchFontAssets(repo string) ([]*Asset, error) {
FILE: src/cli/font/install.go
function contains (line 19) | func contains[S ~[]E, E comparable](s S, e E) bool {
function InstallZIP (line 23) | func InstallZIP(data []byte, folder string) ([]string, error) {
FILE: src/cli/font/install_darwin.go
function install (line 12) | func install(font *Font) error {
FILE: src/cli/font/install_unix.go
function install (line 18) | func install(font *Font) error {
FILE: src/cli/font/install_windows.go
constant WM_FONTCHANGE (line 18) | WM_FONTCHANGE = 0x001D
constant HWND_BROADCAST (line 19) | HWND_BROADCAST = 0xFFFF
function install (line 22) | func install(font *Font) error {
FILE: src/cli/font/tui.go
constant listHeight (line 23) | listHeight = 14
type loadMsg (line 33) | type loadMsg
type zipMsg (line 35) | type zipMsg
type successMsg (line 37) | type successMsg
type errMsg (line 39) | type errMsg
type state (line 41) | type state
type itemDelegate (line 43) | type itemDelegate struct
method Height (line 45) | func (d itemDelegate) Height() int { retur...
method Spacing (line 46) | func (d itemDelegate) Spacing() int { retur...
method Update (line 47) | func (d itemDelegate) Update(_ tea.Msg, _ *list.Model) tea.Cmd { retur...
method Render (line 48) | func (d itemDelegate) Render(w io.Writer, m list.Model, index int, lis...
constant getFonts (line 65) | getFonts state = iota
constant selectFont (line 66) | selectFont
constant downloadFont (line 67) | downloadFont
constant unzipFont (line 68) | unzipFont
constant installFont (line 69) | installFont
constant quit (line 70) | quit
constant done (line 71) | done
type main (line 74) | type main struct
method buildFontList (line 84) | func (m *main) buildFontList(nerdFonts []*Asset) {
method Init (line 142) | func (m *main) Init() tea.Cmd {
method Update (line 187) | func (m *main) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
method View (line 289) | func (m *main) View() string {
function getFontsList (line 102) | func getFontsList() {
function downloadFontZip (line 112) | func downloadFontZip(location string) {
function installLocalFontZIP (line 122) | func installLocalFontZIP(m *main) {
function installFontZIP (line 132) | func installFontZIP(zipFile []byte, m *main) {
function Run (line 331) | func Run(font, zipFolder string, headless bool) (string, error) {
function tui (line 339) | func tui(font, zipFolder string) (string, error) {
function installHeadless (line 353) | func installHeadless(font, zipFolder string) (string, error) {
FILE: src/cli/get.go
function init (line 106) | func init() {
FILE: src/cli/image/config.go
type Settings (line 23) | type Settings struct
type Colors (line 31) | type Colors
method RGBFromColorName (line 81) | func (colors Colors) RGBFromColorName(colorName string) (*RGB, error) {
function NewColors (line 33) | func NewColors() Colors {
function LoadSettings (line 37) | func LoadSettings(filePath string) (*Settings, error) {
type HexColor (line 55) | type HexColor
method RGB (line 57) | func (color HexColor) RGB() (*RGB, error) {
FILE: src/cli/image/config_test.go
function TestLoadSettings (line 11) | func TestLoadSettings(t *testing.T) {
type testingInterface (line 149) | type testingInterface interface
function createTempFile (line 155) | func createTempFile(t testingInterface, content string) string {
FILE: src/cli/image/fonts.go
constant regular (line 15) | regular = "regular"
type Fonts (line 18) | type Fonts struct
method IsValid (line 24) | func (f *Fonts) IsValid() bool {
method Load (line 33) | func (f *Fonts) Load() (map[string]font.Face, error) {
type Font (line 56) | type Font
method Load (line 58) | func (f Font) Load() (font.Face, error) {
FILE: src/cli/image/image.go
type ConnectionError (line 49) | type ConnectionError struct
method Error (line 53) | func (f *ConnectionError) Error() string {
constant red (line 58) | red = "#ED655A"
constant yellow (line 59) | yellow = "#E1C04C"
constant green (line 60) | green = "#71BD47"
constant fg (line 64) | fg = "FG"
constant bg (line 65) | bg = "BG"
constant bc (line 66) | bc = "BC"
constant str (line 67) | str = "STR"
constant text (line 68) | text = "TEXT"
constant invertedColor (line 69) | invertedColor = "inverted"
constant invertedColorSingle (line 70) | invertedColorSingle = "invertedsingle"
constant fullColor (line 71) | fullColor = "full"
constant foreground (line 72) | foreground = "foreground"
constant background (line 73) | background = "background"
constant reset (line 74) | reset = "reset"
constant bold (line 75) | bold = "bold"
constant boldReset (line 76) | boldReset = "boldr"
constant italic (line 77) | italic = "italic"
constant italicReset (line 78) | italicReset = "italicr"
constant underline (line 79) | underline = "underline"
constant underlineReset (line 80) | underlineReset = "underliner"
constant overline (line 81) | overline = "overline"
constant overlineReset (line 82) | overlineReset = "overliner"
constant strikethrough (line 83) | strikethrough = "strikethrough"
constant strikethroughReset (line 84) | strikethroughReset = "strikethroughr"
constant backgroundReset (line 85) | backgroundReset = "backgroundr"
constant color16 (line 86) | color16 = "color16"
constant left (line 87) | left = "left"
constant lineChange (line 88) | lineChange = "linechange"
constant consoleTitle (line 89) | consoleTitle = "title"
constant link (line 90) | link = "link"
type RGB (line 93) | type RGB struct
function NewRGBColor (line 99) | func NewRGBColor(ansiColor string) *RGB {
type Renderer (line 111) | type Renderer struct
method Init (line 136) | func (ir *Renderer) Init(env runtime.Environment) error {
method loadFonts (line 150) | func (ir *Renderer) loadFonts() error {
method initDefaults (line 167) | func (ir *Renderer) initDefaults() {
method setOutputPath (line 216) | func (ir *Renderer) setOutputPath(config string) {
method loadDefaultFonts (line 238) | func (ir *Renderer) loadDefaultFonts() error {
method fontHeight (line 315) | func (ir *Renderer) fontHeight() float64 {
method runeAdditionalWidth (line 361) | func (ir *Renderer) runeAdditionalWidth(r rune) int {
method cleanContent (line 376) | func (ir *Renderer) cleanContent() {
method measureContent (line 405) | func (ir *Renderer) measureContent() (width, height float64) {
method SavePNG (line 475) | func (ir *Renderer) SavePNG() error {
method processAnsiSequence (line 623) | func (ir *Renderer) processAnsiSequence() bool {
method setBase16Color (line 678) | func (ir *Renderer) setBase16Color(colorStr string) {
type RuneRange (line 319) | type RuneRange struct
function colorNameFromCode (line 740) | func colorNameFromCode(colorInt int) string {
FILE: src/cli/image/image_test.go
function TestSetOutputPath (line 9) | func TestSetOutputPath(t *testing.T) {
function TestHexToRGB (line 38) | func TestHexToRGB(t *testing.T) {
function TestGetColorNameFromCode (line 98) | func TestGetColorNameFromCode(t *testing.T) {
function TestSetBase16Color (line 132) | func TestSetBase16Color(t *testing.T) {
function TestProcessAnsiSequence (line 206) | func TestProcessAnsiSequence(t *testing.T) {
FILE: src/cli/init.go
function init (line 40) | func init() {
function createInitCmd (line 44) | func createInitCmd() *cobra.Command {
function runInit (line 73) | func runInit(sh, command string) {
function getFullCommand (line 144) | func getFullCommand(cmd *cobra.Command, args []string) string {
function initCache (line 177) | func initCache(sh string) {
FILE: src/cli/notice.go
function init (line 37) | func init() {
FILE: src/cli/print.go
function init (line 39) | func init() {
function createPrintCmd (line 43) | func createPrintCmd() *cobra.Command {
FILE: src/cli/progress/model.go
type Message (line 9) | type Message
function NewModel (line 11) | func NewModel() *Model {
type Model (line 16) | type Model struct
method Update (line 20) | func (m *Model) Update(msg tea.Msg) tea.Cmd {
method View (line 27) | func (m *Model) View() string {
FILE: src/cli/progress/reader.go
function NewReader (line 9) | func NewReader(reader io.Reader, total int64, program *tea.Program) *Rea...
type Reader (line 17) | type Reader struct
method Read (line 25) | func (r *Reader) Read(p []byte) (int, error) {
FILE: src/cli/root.go
function Execute (line 101) | func Execute() {
function init (line 108) | func init() {
FILE: src/cli/shell.go
function init (line 47) | func init() {
FILE: src/cli/stream.go
function init (line 18) | func init() {
function createStreamCmd (line 22) | func createStreamCmd() *cobra.Command {
FILE: src/cli/stream_test.go
function TestStreamCommand_Creation (line 12) | func TestStreamCommand_Creation(t *testing.T) {
function TestStreamCommand_Flags (line 20) | func TestStreamCommand_Flags(t *testing.T) {
function TestStreamCommand_RequiredFlagsForStreaming (line 50) | func TestStreamCommand_RequiredFlagsForStreaming(t *testing.T) {
function TestStreamCommand_FlagInheritance (line 63) | func TestStreamCommand_FlagInheritance(t *testing.T) {
function TestStreamCommand_OutputDelimiter (line 96) | func TestStreamCommand_OutputDelimiter(t *testing.T) {
function TestStreamCommand_Integration_MockOutput (line 139) | func TestStreamCommand_Integration_MockOutput(t *testing.T) {
function TestStreamCommand_HiddenFlags (line 182) | func TestStreamCommand_HiddenFlags(t *testing.T) {
function TestStreamCommand_NoArgs (line 191) | func TestStreamCommand_NoArgs(t *testing.T) {
function TestStreamCommand_StreamingFlagEnabled (line 207) | func TestStreamCommand_StreamingFlagEnabled(t *testing.T) {
FILE: src/cli/toggle.go
function parseSegments (line 56) | func parseSegments(args []string) []string {
function init (line 67) | func init() {
FILE: src/cli/upgrade.go
function executeUpgrade (line 135) | func executeUpgrade(cfg *upgrade.Config) int {
function init (line 147) | func init() {
FILE: src/cli/upgrade/config.go
function init (line 17) | func init() {
type Config (line 22) | type Config struct
method FetchLatest (line 49) | func (cfg *Config) FetchLatest() (string, error) {
method DownloadAsset (line 66) | func (cfg *Config) DownloadAsset(asset string) ([]byte, error) {
method Download (line 92) | func (cfg *Config) Download(url string) ([]byte, error) {
type Source (line 31) | type Source
method String (line 38) | func (s Source) String() string {
constant GitHub (line 34) | GitHub Source = "github"
constant CDN (line 35) | CDN Source = "cdn"
FILE: src/cli/upgrade/install.go
function install (line 14) | func install(cfg *Config) error {
FILE: src/cli/upgrade/install_noop.go
function hideFile (line 5) | func hideFile(_ string) error {
function IsPackagedInstallation (line 9) | func IsPackagedInstallation() bool {
FILE: src/cli/upgrade/install_windows.go
function hideFile (line 10) | func hideFile(path string) error {
function IsPackagedInstallation (line 28) | func IsPackagedInstallation() bool {
FILE: src/cli/upgrade/notice.go
constant CACHEKEY (line 13) | CACHEKEY = "upgrade_check"
constant upgradeNotice (line 15) | upgradeNotice = `
method Notice (line 27) | func (cfg *Config) Notice() (string, bool) {
FILE: src/cli/upgrade/notice_test.go
function TestCanUpgrade (line 11) | func TestCanUpgrade(t *testing.T) {
FILE: src/cli/upgrade/tui.go
type resultMsg (line 21) | type resultMsg
type stateMsg (line 23) | type stateMsg
type state (line 25) | type state
constant validating (line 28) | validating state = iota
constant downloading (line 29) | downloading
constant verifying (line 30) | verifying
constant installing (line 31) | installing
function setState (line 34) | func setState(message state) {
type model (line 42) | type model struct
method Init (line 61) | func (m *model) Init() tea.Cmd {
method start (line 67) | func (m *model) start() {
method Update (line 86) | func (m *model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
method View (line 117) | func (m *model) View() string {
function initialModel (line 51) | func initialModel(cfg *Config) *model {
function Run (line 142) | func Run(cfg *Config) error {
function IsMajorUpgrade (line 155) | func IsMajorUpgrade(current, latest string) bool {
FILE: src/cli/upgrade/tui_test.go
function TestIsMajorUpgrade (line 9) | func TestIsMajorUpgrade(t *testing.T) {
FILE: src/cli/upgrade/verify.go
function downloadAndVerify (line 36) | func downloadAndVerify(cfg *Config) ([]byte, error) {
function verify (line 63) | func verify(cfg *Config, asset string, binary []byte) error {
function validateSignature (line 85) | func validateSignature(data, signature []byte) bool {
function loadPublicKey (line 96) | func loadPublicKey() (*ed25519.PublicKey, error) {
function validateChecksum (line 118) | func validateChecksum(asset string, sha256sums, binary []byte) error {
FILE: src/cli/upgrade/verify_test.go
function TestVerify (line 10) | func TestVerify(t *testing.T) {
function TestVerifyFail (line 21) | func TestVerifyFail(t *testing.T) {
FILE: src/cli/version.go
function init (line 30) | func init() {
FILE: src/color/colors.go
function init (line 18) | func init() {
constant accentColor (line 27) | accentColor = "accent_color"
type String (line 37) | type String interface
type Set (line 42) | type Set struct
method String (line 47) | func (c *Set) String() string {
method ParseString (line 51) | func (c *Set) ParseString(colors string) {
type History (line 61) | type History
method Len (line 63) | func (c *History) Len() int {
method Add (line 67) | func (c *History) Add(background, foreground Ansi) {
method Pop (line 87) | func (c *History) Pop() {
method Background (line 95) | func (c *History) Background() Ansi {
method Foreground (line 103) | func (c *History) Foreground() Ansi {
type Ansi (line 113) | type Ansi
method IsEmpty (line 119) | func (c Ansi) IsEmpty() bool {
method IsTransparent (line 123) | func (c Ansi) IsTransparent() bool {
method IsClear (line 127) | func (c Ansi) IsClear() bool {
method ToForeground (line 131) | func (c Ansi) ToForeground() Ansi {
method ResolveTemplate (line 139) | func (c Ansi) ResolveTemplate() Ansi {
method String (line 156) | func (c Ansi) String() string {
constant emptyColor (line 116) | emptyColor = Ansi("")
function MakeColors (line 160) | func MakeColors(palette Palette, cacheEnabled bool, accentColor Ansi, en...
type RGB (line 210) | type RGB struct
type Defaults (line 215) | type Defaults struct
method SetAccentColor (line 176) | func (d *Defaults) SetAccentColor(env runtime.Environment, defaultColo...
method ToAnsi (line 242) | func (d *Defaults) ToAnsi(ansiColor Ansi, isBackground bool) Ansi {
method Resolve (line 298) | func (d *Defaults) Resolve(colorString Ansi) (Ansi, error) {
function getAnsiColorFromName (line 304) | func getAnsiColorFromName(colorValue Ansi, isBackground bool) (Ansi, err...
function IsAnsiColorName (line 312) | func IsAnsiColorName(colorValue Ansi) bool {
type PaletteColors (line 319) | type PaletteColors struct
method ToAnsi (line 324) | func (p *PaletteColors) ToAnsi(colorString Ansi, isBackground bool) An...
method Resolve (line 335) | func (p *PaletteColors) Resolve(colorString Ansi) (Ansi, error) {
type Cached (line 342) | type Cached struct
method ToAnsi (line 352) | func (c *Cached) ToAnsi(colorString Ansi, isBackground bool) Ansi {
method Resolve (line 367) | func (c *Cached) Resolve(colorString Ansi) (Ansi, error) {
type cachedColorKey (line 347) | type cachedColorKey struct
FILE: src/color/colors_darwin.go
function GetAccentColor (line 11) | func GetAccentColor(env runtime.Environment) (*RGB, error) {
FILE: src/color/colors_test.go
function TestGetAnsiFromColorString (line 14) | func TestGetAnsiFromColorString(t *testing.T) {
function TestMakeColors (line 42) | func TestMakeColors(t *testing.T) {
function TestAnsiRender (line 66) | func TestAnsiRender(t *testing.T) {
FILE: src/color/colors_unix.go
function GetAccentColor (line 7) | func GetAccentColor(_ runtime.Environment) (*RGB, error) {
FILE: src/color/colors_windows.go
function GetAccentColor (line 11) | func GetAccentColor(env runtime.Environment) (*RGB, error) {
FILE: src/color/cycle.go
type Cycle (line 3) | type Cycle
method Loop (line 5) | func (c Cycle) Loop() (*Set, Cycle) {
FILE: src/color/keywords.go
constant Transparent (line 5) | Transparent Ansi = "transparent"
constant Accent (line 7) | Accent Ansi = "accent"
constant ParentBackground (line 9) | ParentBackground Ansi = "parentBackground"
constant ParentForeground (line 11) | ParentForeground Ansi = "parentForeground"
constant Background (line 13) | Background Ansi = "background"
constant Foreground (line 15) | Foreground Ansi = "foreground"
method isKeyword (line 18) | func (color Ansi) isKeyword() bool {
method Resolve (line 27) | func (color Ansi) Resolve(current *Set, parents []*Set) Ansi {
FILE: src/color/palette.go
type Palette (line 9) | type Palette
method ResolveColor (line 20) | func (p Palette) ResolveColor(colorName Ansi) (Ansi, error) {
method resolveColor (line 25) | func (p Palette) resolveColor(colorName Ansi, depth int, originalColor...
method MaybeResolveColor (line 95) | func (p Palette) MaybeResolveColor(colorName Ansi) Ansi {
constant paletteKeyPrefix (line 12) | paletteKeyPrefix = "p:"
constant paletteKeyError (line 13) | paletteKeyError = "palette: requested color %s does not exist i...
constant paletteMaxRecursionDepth (line 14) | paletteMaxRecursionDepth = 3
constant paletteRecursiveKeyError (line 15) | paletteRecursiveKeyError = "palette: recursive resolution of color %s re...
function asPaletteKey (line 48) | func asPaletteKey(colorName Ansi) (Ansi, bool) {
function isPaletteKey (line 59) | func isPaletteKey(colorName Ansi) (Ansi, bool) {
type PaletteKeyError (line 64) | type PaletteKeyError struct
method Error (line 69) | func (p *PaletteKeyError) Error() string {
type PaletteRecursiveKeyError (line 82) | type PaletteRecursiveKeyError struct
method Error (line 88) | func (p *PaletteRecursiveKeyError) Error() string {
FILE: src/color/palette_test.go
type TestPaletteRequest (line 19) | type TestPaletteRequest struct
function TestPaletteShouldResolveColorFromTestPalette (line 26) | func TestPaletteShouldResolveColorFromTestPalette(t *testing.T) {
function testPaletteRequest (line 40) | func testPaletteRequest(t *testing.T, tc TestPaletteRequest) {
function TestPaletteShouldIgnoreNonPaletteColors (line 52) | func TestPaletteShouldIgnoreNonPaletteColors(t *testing.T) {
function TestPaletteShouldReturnErrorOnMissingColor (line 65) | func TestPaletteShouldReturnErrorOnMissingColor(t *testing.T) {
function TestPaletteShouldHandleMixedCases (line 92) | func TestPaletteShouldHandleMixedCases(t *testing.T) {
function TestPaletteShouldUseEmptyColorByDefault (line 106) | func TestPaletteShouldUseEmptyColorByDefault(t *testing.T) {
function TestPaletteShouldResolveRecursiveReference (line 120) | func TestPaletteShouldResolveRecursiveReference(t *testing.T) {
function TestPaletteShouldHandleEmptyKey (line 194) | func TestPaletteShouldHandleEmptyKey(t *testing.T) {
function BenchmarkPaletteMixedCaseResolution (line 205) | func BenchmarkPaletteMixedCaseResolution(b *testing.B) {
function benchmarkPaletteMixedCaseResolution (line 211) | func benchmarkPaletteMixedCaseResolution() {
FILE: src/color/palettes.go
type Palettes (line 3) | type Palettes struct
FILE: src/config/backup.go
method Backup (line 14) | func (cfg *Config) Backup() {
method Export (line 32) | func (cfg *Config) Export(format string) string {
method Write (line 74) | func (cfg *Config) Write(format string) {
FILE: src/config/block.go
type BlockType (line 6) | type BlockType
type BlockAlignment (line 9) | type BlockAlignment
type Overflow (line 12) | type Overflow
constant Prompt (line 16) | Prompt BlockType = "prompt"
constant RPrompt (line 18) | RPrompt BlockType = "rprompt"
constant Left (line 20) | Left BlockAlignment = "left"
constant Right (line 22) | Right BlockAlignment = "right"
constant Break (line 24) | Break Overflow = "break"
constant Hide (line 26) | Hide Overflow = "hide"
type Block (line 30) | type Block struct
method key (line 43) | func (b *Block) key() any {
FILE: src/config/cache.go
type Cache (line 5) | type Cache struct
type Strategy (line 10) | type Strategy
constant Folder (line 13) | Folder Strategy = "folder"
constant Session (line 14) | Session Strategy = "session"
constant Device (line 15) | Device Strategy = "device"
FILE: src/config/config.go
function init (line 20) | func init() {
constant JSON (line 25) | JSON string = "json"
constant YAML (line 26) | YAML string = "yaml"
constant TOML (line 27) | TOML string = "toml"
constant TML (line 29) | TML string = "tml"
constant YML (line 30) | YML string = "yml"
constant JSONC (line 31) | JSONC string = "jsonc"
constant AUTOUPGRADE (line 33) | AUTOUPGRADE = "upgrade"
constant UPGRADENOTICE (line 34) | UPGRADENOTICE = "notice"
constant RELOAD (line 35) | RELOAD = "reload"
constant Version (line 37) | Version = 4
type Action (line 40) | type Action
method IsDefault (line 42) | func (a Action) IsDefault() bool {
constant Prepend (line 47) | Prepend Action = "prepend"
constant Extend (line 48) | Extend Action = "extend"
type Config (line 52) | type Config struct
method MakeColors (line 89) | func (cfg *Config) MakeColors(env runtime.Environment) color.String {
method getPalette (line 94) | func (cfg *Config) getPalette() color.Palette {
method Features (line 120) | func (cfg *Config) Features(env runtime.Environment) shell.Features {
method upgradeFeatures (line 207) | func (cfg *Config) upgradeFeatures() shell.Features {
method Hash (line 235) | func (cfg *Config) Hash() uint64 {
method migrateSegmentProperties (line 241) | func (cfg *Config) migrateSegmentProperties() {
method toggleSegments (line 251) | func (cfg *Config) toggleSegments() {
FILE: src/config/config_test.go
function TestGetPalette (line 16) | func TestGetPalette(t *testing.T) {
function TestUpgradeFeatures (line 114) | func TestUpgradeFeatures(t *testing.T) {
FILE: src/config/default.go
function Default (line 11) | func Default(configError error) *Config {
function Claude (line 209) | func Claude() *Config {
FILE: src/config/dsc.go
function init (line 16) | func init() {
type Resource (line 20) | type Resource struct
method Add (line 37) | func (s *Resource) Add(configPath string) {
method ToJSON (line 52) | func (s *Resource) ToJSON() string {
function DSC (line 24) | func DSC() *Resource {
type Configuration (line 30) | type Configuration struct
method Apply (line 57) | func (c *Configuration) Apply() error {
method Equal (line 94) | func (c *Configuration) Equal(config *Configuration) bool {
method Resolve (line 102) | func (c *Configuration) Resolve() (*Configuration, bool) {
FILE: src/config/gob.go
constant configKey (line 14) | configKey = "CONFIG"
constant SourceKey (line 15) | SourceKey = "CONFIG_SOURCE"
method Store (line 18) | func (cfg *Config) Store() {
function Get (line 25) | func Get(configFile string, reload bool) *Config {
method Base64 (line 52) | func (cfg *Config) Base64() string {
method Restore (line 66) | func (cfg *Config) Restore(base64String string) error {
FILE: src/config/load.go
type Error (line 28) | type Error struct
method Error (line 32) | func (e Error) Error() string {
function Load (line 45) | func Load(configFile string) *Config {
function resolveConfigLocation (line 56) | func resolveConfigLocation(config string) string {
type hashWriter (line 89) | type hashWriter interface
function Parse (line 93) | func Parse(configFile string) (*Config, error) {
function resolvePath (line 162) | func resolvePath(configFile, parentFolder string) string {
function read (line 180) | func read(configFile string, h hashWriter) (*Config, error) {
function getData (line 241) | func getData(configFile string) ([]byte, error) {
function isCygwin (line 250) | func isCygwin() bool {
function isTheme (line 254) | func isTheme(config string) (string, bool) {
function getMSIXThemePath (line 399) | func getMSIXThemePath(themeFile string) (string, error) {
FILE: src/config/merge.go
type matcher (line 11) | type matcher interface
type matchMap (line 15) | type matchMap
method hasMatch (line 17) | func (mm *matchMap[T]) hasMatch(index int, m T) (T, bool) {
method add (line 28) | func (mm *matchMap[T]) add(m T) {
method remove (line 36) | func (mm *matchMap[T]) remove(m T) {
function createMatchMap (line 40) | func createMatchMap[T matcher](items []T) matchMap[T] {
method merge (line 50) | func (cfg *Config) merge(override *Config) error {
function merge (line 117) | func merge(override, base any, skipFields ...string) error {
function isZeroValue (line 166) | func isZeroValue(v reflect.Value) bool {
function mergeSlices (line 181) | func mergeSlices(override, base reflect.Value) {
function mergeMaps (line 193) | func mergeMaps(override, base reflect.Value) {
FILE: src/config/merge_test.go
function TestConfigMerge (line 12) | func TestConfigMerge(t *testing.T) {
function TestConfigMergeEdgeCases (line 352) | func TestConfigMergeEdgeCases(t *testing.T) {
FILE: src/config/migrate_glyphs.go
type ConnectionError (line 12) | type ConnectionError struct
method Error (line 16) | func (f *ConnectionError) Error() string {
type codePoints (line 20) | type codePoints
function getGlyphCodePoints (line 22) | func getGlyphCodePoints() (codePoints, error) {
function EscapeGlyphs (line 54) | func EscapeGlyphs(s string, migrate bool) string {
FILE: src/config/migrate_glyphs_test.go
function TestGetCodePoints (line 9) | func TestGetCodePoints(t *testing.T) {
function TestEscapeGlyphs (line 18) | func TestEscapeGlyphs(t *testing.T) {
FILE: src/config/responsive.go
function shouldHideForWidth (line 5) | func shouldHideForWidth(env runtime.Environment, minWidth, maxWidth int)...
FILE: src/config/responsive_test.go
function TestShouldHideForWidth (line 11) | func TestShouldHideForWidth(t *testing.T) {
FILE: src/config/segment.go
type SegmentStyle (line 25) | type SegmentStyle
method resolve (line 27) | func (s *SegmentStyle) resolve(context any) SegmentStyle {
type Segment (line 38) | type Segment struct
method UnmarshalJSON (line 91) | func (segment *Segment) UnmarshalJSON(data []byte) error {
method UnmarshalYAML (line 108) | func (segment *Segment) UnmarshalYAML(node *yaml.Node) error {
method MigratePropertiesToOptions (line 134) | func (segment *Segment) MigratePropertiesToOptions() {
method Name (line 141) | func (segment *Segment) Name() string {
method Execute (line 155) | func (segment *Segment) Execute(env runtime.Environment) {
method Render (line 202) | func (segment *Segment) Render(index int, force bool) bool {
method Text (line 235) | func (segment *Segment) Text() string {
method SetText (line 239) | func (segment *Segment) SetText(text string) {
method ResolveForeground (line 243) | func (segment *Segment) ResolveForeground() color.Ansi {
method ResolveBackground (line 252) | func (segment *Segment) ResolveBackground() color.Ansi {
method ResolveStyle (line 261) | func (segment *Segment) ResolveStyle() SegmentStyle {
method IsPowerline (line 271) | func (segment *Segment) IsPowerline() bool {
method HasEmptyDiamondAtEnd (line 276) | func (segment *Segment) HasEmptyDiamondAtEnd() bool {
method hasCache (line 284) | func (segment *Segment) hasCache() bool {
method isToggled (line 288) | func (segment *Segment) isToggled() bool {
method restoreCache (line 308) | func (segment *Segment) restoreCache() bool {
method setCache (line 335) | func (segment *Segment) setCache() {
method cacheKeyAndStore (line 358) | func (segment *Segment) cacheKeyAndStore() (string, cache.Store) {
method folderKey (line 372) | func (segment *Segment) folderKey() string {
method string (line 381) | func (segment *Segment) string() string {
method shouldIncludeFolder (line 408) | func (segment *Segment) shouldIncludeFolder() bool {
method cwdIncluded (line 419) | func (segment *Segment) cwdIncluded() bool {
method cwdExcluded (line 427) | func (segment *Segment) cwdExcluded() bool {
method evaluateNeeds (line 431) | func (segment *Segment) evaluateNeeds() {
method key (line 462) | func (segment *Segment) key() any {
type segmentAlias (line 83) | type segmentAlias
type segmentAux (line 86) | type segmentAux struct
FILE: src/config/segment_test.go
constant cwd (line 18) | cwd = "Projects/oh-my-posh"
function TestMapSegmentWriterCanMap (line 21) | func TestMapSegmentWriterCanMap(t *testing.T) {
function TestMapSegmentWriterCannotMap (line 31) | func TestMapSegmentWriterCannotMap(t *testing.T) {
function TestParseTestConfig (line 40) | func TestParseTestConfig(t *testing.T) {
function TestParseConfigWithOptions (line 64) | func TestParseConfigWithOptions(t *testing.T) {
function TestParseYAMLConfigWithProperties (line 82) | func TestParseYAMLConfigWithProperties(t *testing.T) {
function TestParseYAMLConfigWithOptions (line 96) | func TestParseYAMLConfigWithOptions(t *testing.T) {
function TestParseTOMLConfigWithProperties (line 110) | func TestParseTOMLConfigWithProperties(t *testing.T) {
function TestParseTOMLConfigWithOptions (line 128) | func TestParseTOMLConfigWithOptions(t *testing.T) {
function TestParseTOMLConfigWithBothOptionsAndProperties (line 146) | func TestParseTOMLConfigWithBothOptionsAndProperties(t *testing.T) {
function TestShouldIncludeFolder (line 167) | func TestShouldIncludeFolder(t *testing.T) {
function TestGetColors (line 196) | func TestGetColors(t *testing.T) {
function TestEvaluateNeeds (line 271) | func TestEvaluateNeeds(t *testing.T) {
function TestSegment_NoCachingWhenPending (line 314) | func TestSegment_NoCachingWhenPending(t *testing.T) {
FILE: src/config/segment_types.go
type SegmentType (line 13) | type SegmentType
type SegmentWriter (line 16) | type SegmentWriter interface
function init (line 26) | func init() {
constant Plain (line 157) | Plain SegmentStyle = "plain"
constant Powerline (line 159) | Powerline SegmentStyle = "powerline"
constant Accordion (line 161) | Accordion SegmentStyle = "accordion"
constant Diamond (line 163) | Diamond SegmentStyle = "diamond"
constant ANGULAR (line 165) | ANGULAR SegmentType = "angular"
constant ARGOCD (line 167) | ARGOCD SegmentType = "argocd"
constant AURELIA (line 169) | AURELIA SegmentType = "aurelia"
constant AWS (line 171) | AWS SegmentType = "aws"
constant AZ (line 173) | AZ SegmentType = "az"
constant AZD (line 175) | AZD SegmentType = "azd"
constant AZFUNC (line 177) | AZFUNC SegmentType = "azfunc"
constant BATTERY (line 179) | BATTERY SegmentType = "battery"
constant BAZEL (line 181) | BAZEL SegmentType = "bazel"
constant BREWFATHER (line 183) | BREWFATHER SegmentType = "brewfather"
constant BUF (line 185) | BUF SegmentType = "buf"
constant BUN (line 187) | BUN SegmentType = "bun"
constant CARBONINTENSITY (line 189) | CARBONINTENSITY SegmentType = "carbonintensity"
constant CDS (line 191) | CDS SegmentType = "cds"
constant CF (line 193) | CF SegmentType = "cf"
constant CFTARGET (line 195) | CFTARGET SegmentType = "cftarget"
constant CLAUDE (line 197) | CLAUDE SegmentType = "claude"
constant CLOJURE (line 199) | CLOJURE SegmentType = "clojure"
constant CMAKE (line 201) | CMAKE SegmentType = "cmake"
constant CONNECTION (line 203) | CONNECTION SegmentType = "connection"
constant COPILOT (line 205) | COPILOT SegmentType = "copilot"
constant CRYSTAL (line 207) | CRYSTAL SegmentType = "crystal"
constant DART (line 209) | DART SegmentType = "dart"
constant DENO (line 211) | DENO SegmentType = "deno"
constant DOCKER (line 213) | DOCKER SegmentType = "docker"
constant DOTNET (line 215) | DOTNET SegmentType = "dotnet"
constant ELIXIR (line 217) | ELIXIR SegmentType = "elixir"
constant EXECUTIONTIME (line 219) | EXECUTIONTIME SegmentType = "executiontime"
constant EXIT (line 221) | EXIT SegmentType = "exit"
constant FIREBASE (line 223) | FIREBASE SegmentType = "firebase"
constant FLUTTER (line 225) | FLUTTER SegmentType = "flutter"
constant FORTRAN (line 227) | FORTRAN SegmentType = "fortran"
constant FOSSIL (line 229) | FOSSIL SegmentType = "fossil"
constant GCP (line 231) | GCP SegmentType = "gcp"
constant GIT (line 233) | GIT SegmentType = "git"
constant GITVERSION (line 235) | GITVERSION SegmentType = "gitversion"
constant GOLANG (line 237) | GOLANG SegmentType = "go"
constant HASKELL (line 239) | HASKELL SegmentType = "haskell"
constant HELM (line 241) | HELM SegmentType = "helm"
constant IPIFY (line 243) | IPIFY SegmentType = "ipify"
constant JAVA (line 245) | JAVA SegmentType = "java"
constant HTTP (line 247) | HTTP SegmentType = "http"
constant JUJUTSU (line 249) | JUJUTSU SegmentType = "jujutsu"
constant JULIA (line 251) | JULIA SegmentType = "julia"
constant KOTLIN (line 253) | KOTLIN SegmentType = "kotlin"
constant KUBECTL (line 255) | KUBECTL SegmentType = "kubectl"
constant LASTFM (line 257) | LASTFM SegmentType = "lastfm"
constant LUA (line 259) | LUA SegmentType = "lua"
constant MERCURIAL (line 261) | MERCURIAL SegmentType = "mercurial"
constant MOJO (line 263) | MOJO SegmentType = "mojo"
constant MVN (line 265) | MVN SegmentType = "mvn"
constant NBA (line 267) | NBA SegmentType = "nba"
constant NBGV (line 269) | NBGV SegmentType = "nbgv"
constant NIGHTSCOUT (line 271) | NIGHTSCOUT SegmentType = "nightscout"
constant NIM (line 273) | NIM SegmentType = "nim"
constant NIXSHELL (line 275) | NIXSHELL SegmentType = "nix-shell"
constant NODE (line 277) | NODE SegmentType = "node"
constant NPM (line 279) | NPM SegmentType = "npm"
constant NX (line 281) | NX SegmentType = "nx"
constant OCAML (line 283) | OCAML SegmentType = "ocaml"
constant OS (line 285) | OS SegmentType = "os"
constant OWM (line 287) | OWM SegmentType = "owm"
constant PATH (line 289) | PATH SegmentType = "path"
constant PERL (line 291) | PERL SegmentType = "perl"
constant PHP (line 293) | PHP SegmentType = "php"
constant PLASTIC (line 295) | PLASTIC SegmentType = "plastic"
constant PNPM (line 297) | PNPM SegmentType = "pnpm"
constant PROJECT (line 299) | PROJECT SegmentType = "project"
constant PULUMI (line 301) | PULUMI SegmentType = "pulumi"
constant PYTHON (line 303) | PYTHON SegmentType = "python"
constant QUASAR (line 305) | QUASAR SegmentType = "quasar"
constant R (line 307) | R SegmentType = "r"
constant RAMADAN (line 309) | RAMADAN SegmentType = "ramadan"
constant REACT (line 311) | REACT SegmentType = "react"
constant ROOT (line 313) | ROOT SegmentType = "root"
constant RUBY (line 315) | RUBY SegmentType = "ruby"
constant RUST (line 317) | RUST SegmentType = "rust"
constant SAPLING (line 319) | SAPLING SegmentType = "sapling"
constant SESSION (line 321) | SESSION SegmentType = "session"
constant SHELL (line 323) | SHELL SegmentType = "shell"
constant SITECORE (line 325) | SITECORE SegmentType = "sitecore"
constant SPOTIFY (line 327) | SPOTIFY SegmentType = "spotify"
constant STATUS (line 329) | STATUS SegmentType = "status"
constant STRAVA (line 331) | STRAVA SegmentType = "strava"
constant SVELTE (line 333) | SVELTE SegmentType = "svelte"
constant SVN (line 335) | SVN SegmentType = "svn"
constant SWIFT (line 337) | SWIFT SegmentType = "swift"
constant SYSTEMINFO (line 339) | SYSTEMINFO SegmentType = "sysinfo"
constant TALOSCTL (line 341) | TALOSCTL SegmentType = "talosctl"
constant TASKWARRIOR (line 343) | TASKWARRIOR SegmentType = "taskwarrior"
constant TAURI (line 345) | TAURI SegmentType = "tauri"
constant TERRAFORM (line 347) | TERRAFORM SegmentType = "terraform"
constant TEXT (line 349) | TEXT SegmentType = "text"
constant TIME (line 351) | TIME SegmentType = "time"
constant TODOIST (line 353) | TODOIST SegmentType = "todoist"
constant UI5TOOLING (line 355) | UI5TOOLING SegmentType = "ui5tooling"
constant UMBRACO (line 357) | UMBRACO SegmentType = "umbraco"
constant UNITY (line 359) | UNITY SegmentType = "unity"
constant UPGRADE (line 361) | UPGRADE SegmentType = "upgrade"
constant V (line 363) | V SegmentType = "v"
constant VALA (line 365) | VALA SegmentType = "vala"
constant WAKATIME (line 367) | WAKATIME SegmentType = "wakatime"
constant WINGET (line 369) | WINGET SegmentType = "winget"
constant WINREG (line 371) | WINREG SegmentType = "winreg"
constant WITHINGS (line 373) | WITHINGS SegmentType = "withings"
constant XMAKE (line 375) | XMAKE SegmentType = "xmake"
constant YARN (line 377) | YARN SegmentType = "yarn"
constant YTM (line 379) | YTM SegmentType = "ytm"
constant ZIG (line 381) | ZIG SegmentType = "zig"
method MapSegmentWithWriter (line 498) | func (segment *Segment) MapSegmentWithWriter(env runtime.Environment) er...
FILE: src/constants/constants_unix.go
constant DotnetExitCode (line 6) | DotnetExitCode = 142
FILE: src/constants/constants_windows.go
constant DotnetExitCode (line 4) | DotnetExitCode = int(0x80008091)
FILE: src/dsc/cli.go
type resource (line 16) | type resource interface
function Command (line 26) | func Command(r resource) *cobra.Command {
FILE: src/dsc/error.go
type Error (line 3) | type Error struct
method Error (line 7) | func (e *Error) Error() string {
function newError (line 13) | func newError(message string) *Error {
FILE: src/dsc/resource.go
type Resource (line 15) | type Resource struct
type State (line 19) | type State interface
method Load (line 25) | func (resource *Resource[T]) Load() {
method Save (line 35) | func (resource *Resource[T]) Save() {
method Add (line 39) | func (resource *Resource[T]) Add(item T) {
method Resolve (line 52) | func (resource *Resource[T]) Resolve() {
method Apply (line 60) | func (resource *Resource[T]) Apply(schema string) error {
method Test (line 89) | func (resource *Resource[T]) Test(_ string) error {
method Schema (line 93) | func (resource *Resource[T]) Schema() string {
method getItemTypeName (line 107) | func (resource *Resource[T]) getItemTypeName() string {
method cacheKey (line 117) | func (resource *Resource[T]) cacheKey() string {
method ToJSON (line 121) | func (resource *Resource[T]) ToJSON() string {
FILE: src/generics/convert.go
type Numeric (line 8) | type Numeric interface
function toNumeric (line 12) | func toNumeric[T Numeric](value any) (T, error) {
function TryParseInt (line 38) | func TryParseInt[T ~int | ~int64](value any) (T, error) {
function TryParseFloat (line 42) | func TryParseFloat[T ~float64](value any) (T, error) {
function ToInt (line 46) | func ToInt[T ~int | ~int64](value any) T {
FILE: src/generics/pool.go
type Pool (line 5) | type Pool struct
function NewPool (line 10) | func NewPool[T any](newFunc func() T) *Pool[T] {
method Get (line 19) | func (p *Pool[T]) Get() T {
method Put (line 23) | func (p *Pool[T]) Put(item T) {
FILE: src/generics/slices.go
function ParseStringSlice (line 6) | func ParseStringSlice(param any) []string {
function parseSlice (line 11) | func parseSlice[T any](param any, converter func(any) T) []T {
FILE: src/log/log.go
function Enable (line 18) | func Enable(plain bool) {
function Trace (line 25) | func Trace(start time.Time, args ...string) {
function Debug (line 53) | func Debug(message ...string) {
function Debugf (line 64) | func Debugf(format string, args ...any) {
function Error (line 73) | func Error(err error) {
function Errorf (line 83) | func Errorf(format string, args ...any) {
function String (line 91) | func String() string {
function funcSpec (line 95) | func funcSpec() (string, int) {
FILE: src/log/print.go
type logType (line 9) | type logType
constant debug (line 12) | debug logType = 1 << iota
constant bug (line 13) | bug
constant trace (line 14) | trace
type Text (line 17) | type Text
method Green (line 19) | func (t Text) Green() Text {
method Red (line 26) | func (t Text) Red() Text {
method Purple (line 33) | func (t Text) Purple() Text {
method Yellow (line 40) | func (t Text) Yellow() Text {
method Orange (line 47) | func (t Text) Orange() Text {
method Bold (line 54) | func (t Text) Bold() Text {
method Plain (line 61) | func (t Text) Plain() Text {
method String (line 68) | func (t Text) String() string {
function printLn (line 72) | func printLn(lt logType, args ...string) {
function parseArgs (line 94) | func parseArgs(args ...string) Text {
FILE: src/main.go
function main (line 7) | func main() {
FILE: src/main_test.go
function BenchmarkInit (line 12) | func BenchmarkInit(b *testing.B) {
function BenchmarkPrimary (line 24) | func BenchmarkPrimary(b *testing.B) {
FILE: src/maps/concurrent.go
function NewConcurrent (line 10) | func NewConcurrent[V any]() *Concurrent[V] {
type Concurrent (line 15) | type Concurrent struct
method Set (line 19) | func (cm *Concurrent[V]) Set(key string, value V) {
method Get (line 23) | func (cm *Concurrent[V]) Get(key string) (V, bool) {
method MustGet (line 33) | func (cm *Concurrent[V]) MustGet(key string) V {
method Delete (line 44) | func (cm *Concurrent[V]) Delete(key string) {
method Contains (line 48) | func (cm *Concurrent[V]) Contains(key string) bool {
method ToSimple (line 53) | func (cm *Concurrent[V]) ToSimple() Simple[V] {
FILE: src/maps/config.go
function init (line 7) | func init() {
type Config (line 12) | type Config struct
method GetUserName (line 18) | func (c *Config) GetUserName(key string) string {
method GetHostName (line 26) | func (c *Config) GetHostName(key string) string {
method GetShellName (line 34) | func (c *Config) GetShellName(key string) string {
type Map (line 42) | type Map
method Get (line 44) | func (m *Map) Get(key string) string {
FILE: src/maps/simple.go
type Simple (line 4) | type Simple
method ToConcurrent (line 6) | func (m Simple[V]) ToConcurrent() *Concurrent[V] {
FILE: src/prompt/debug.go
method PrintDebug (line 13) | func (e *Engine) PrintDebug(startTime time.Time, version string) string {
FILE: src/prompt/engine.go
type Engine (line 20) | type Engine struct
method write (line 50) | func (e *Engine) write(txt string) {
method string (line 58) | func (e *Engine) string() string {
method canWriteRightBlock (line 64) | func (e *Engine) canWriteRightBlock(length int, rprompt bool) (int, bo...
method pwd (line 99) | func (e *Engine) pwd() {
method getNewline (line 132) | func (e *Engine) getNewline() string {
method writeNewline (line 147) | func (e *Engine) writeNewline() {
method isWarp (line 155) | func (e *Engine) isWarp() bool {
method isIterm (line 159) | func (e *Engine) isIterm() bool {
method shouldFill (line 163) | func (e *Engine) shouldFill(filler string, padLength int) (string, boo...
method getTitleTemplateText (line 196) | func (e *Engine) getTitleTemplateText() string {
method renderBlock (line 204) | func (e *Engine) renderBlock(block *config.Block, cancelNewline bool) ...
method writeBlock (line 216) | func (e *Engine) writeBlock(block *config.Block, blockText string, len...
method renderBlockFromCache (line 286) | func (e *Engine) renderBlockFromCache(block *config.Block, cancelNewli...
method applyPowerShellBleedPatch (line 331) | func (e *Engine) applyPowerShellBleedPatch() {
method setActiveSegment (line 348) | func (e *Engine) setActiveSegment(segment *config.Segment) {
method renderActiveSegment (line 354) | func (e *Engine) renderActiveSegment() {
method writeSeparator (line 381) | func (e *Engine) writeSeparator(final bool) {
method getPowerlineColor (line 463) | func (e *Engine) getPowerlineColor() color.Ansi {
method adjustTrailingDiamondColorOverrides (line 483) | func (e *Engine) adjustTrailingDiamondColorOverrides() {
method rectifyTerminalWidth (line 533) | func (e *Engine) rectifyTerminalWidth(diff int) {
constant PRIMARY (line 39) | PRIMARY = "primary"
constant TRANSIENT (line 40) | TRANSIENT = "transient"
constant DEBUG (line 41) | DEBUG = "debug"
constant SECONDARY (line 42) | SECONDARY = "secondary"
constant RIGHT (line 43) | RIGHT = "right"
constant TOOLTIP (line 44) | TOOLTIP = "tooltip"
constant VALID (line 45) | VALID = "valid"
constant ERROR (line 46) | ERROR = "error"
constant PREVIEW (line 47) | PREVIEW = "preview"
function New (line 547) | func New(flags *runtime.Flags) *Engine {
FILE: src/prompt/engine_test.go
function TestCanWriteRPrompt (line 21) | func TestCanWriteRPrompt(t *testing.T) {
function TestPrintPWD (line 54) | func TestPrintPWD(t *testing.T) {
function TestPrintPWDWSL (line 122) | func TestPrintPWDWSL(t *testing.T) {
function BenchmarkEngineRender (line 205) | func BenchmarkEngineRender(b *testing.B) {
function engineRender (line 211) | func engineRender() {
function TestGetTitle (line 234) | func TestGetTitle(t *testing.T) {
function TestGetConsoleTitleIfGethostnameReturnsError (line 306) | func TestGetConsoleTitleIfGethostnameReturnsError(t *testing.T) {
function TestShouldFill (line 370) | func TestShouldFill(t *testing.T) {
FILE: src/prompt/extra.go
type ExtraPromptType (line 13) | type ExtraPromptType
constant Transient (line 16) | Transient ExtraPromptType = iota
constant Valid (line 17) | Valid
constant Error (line 18) | Error
constant Secondary (line 19) | Secondary
constant Debug (line 20) | Debug
method ExtraPrompt (line 23) | func (e *Engine) ExtraPrompt(promptType ExtraPromptType) string {
FILE: src/prompt/preview.go
method Preview (line 10) | func (e *Engine) Preview() string {
FILE: src/prompt/primary.go
method Primary (line 13) | func (e *Engine) Primary() string {
method primaryInternal (line 18) | func (e *Engine) primaryInternal(fromCache bool) string {
method writePrimaryPrompt (line 51) | func (e *Engine) writePrimaryPrompt(needsPrimaryRPrompt bool) {
method writePrimaryPromptInternal (line 56) | func (e *Engine) writePrimaryPromptInternal(needsPrimaryRPrompt, fromCac...
method needsPrimaryRightPrompt (line 130) | func (e *Engine) needsPrimaryRightPrompt() bool {
method writePrimaryRightPrompt (line 143) | func (e *Engine) writePrimaryRightPrompt() {
FILE: src/prompt/rprompt.go
constant RPromptKey (line 11) | RPromptKey = "rprompt"
constant RPromptLengthKey (line 12) | RPromptLengthKey = "rprompt_length"
method RPrompt (line 15) | func (e *Engine) RPrompt() string {
FILE: src/prompt/segments.go
type result (line 12) | type result struct
method writeBlockSegments (line 17) | func (e *Engine) writeBlockSegments(block *config.Block) (string, int) {
method writeSegmentsConcurrently (line 43) | func (e *Engine) writeSegmentsConcurrently(segments []*config.Segment, o...
method executeSegmentWithTimeout (line 70) | func (e *Engine) executeSegmentWithTimeout(segment *config.Segment) {
method writeSegments (line 106) | func (e *Engine) writeSegments(out chan result, block *config.Block) {
method writeSegment (line 151) | func (e *Engine) writeSegment(block *config.Block, segment *config.Segme...
method canRenderSegment (line 172) | func (e *Engine) canRenderSegment(segment *config.Segment, executed map[...
FILE: src/prompt/segments_test.go
function TestRenderBlock (line 14) | func TestRenderBlock(t *testing.T) {
function TestCanRenderSegment (line 40) | func TestCanRenderSegment(t *testing.T) {
function TestExecuteSegmentWithTimeout_Streaming (line 78) | func TestExecuteSegmentWithTimeout_Streaming(t *testing.T) {
function TestExecuteSegmentWithTimeout_NonStreaming (line 123) | func TestExecuteSegmentWithTimeout_NonStreaming(t *testing.T) {
function TestExecuteSegmentWithTimeout_CachedValueFallback (line 155) | func TestExecuteSegmentWithTimeout_CachedValueFallback(t *testing.T) {
FILE: src/prompt/status.go
method Status (line 3) | func (e *Engine) Status() string {
FILE: src/prompt/streaming.go
method StreamPrimary (line 8) | func (e *Engine) StreamPrimary() <-chan string {
method countPendingSegments (line 42) | func (e *Engine) countPendingSegments() int {
method renderFromBlocks (line 52) | func (e *Engine) renderFromBlocks() string {
method trackPendingSegment (line 65) | func (e *Engine) trackPendingSegment(segment *config.Segment, done chan ...
method notifySegmentCompletion (line 79) | func (e *Engine) notifySegmentCompletion(segment *config.Segment) {
FILE: src/prompt/streaming_test.go
function TestStreamPrimary_NoSegments (line 22) | func TestStreamPrimary_NoSegments(t *testing.T) {
function TestStreamPrimary_WithPendingSegments (line 51) | func TestStreamPrimary_WithPendingSegments(t *testing.T) {
function TestCountPendingSegments (line 81) | func TestCountPendingSegments(t *testing.T) {
function TestNotifySegmentCompletion (line 104) | func TestNotifySegmentCompletion(t *testing.T) {
function TestTrackPendingSegment (line 148) | func TestTrackPendingSegment(t *testing.T) {
function TestRenderFromBlocks (line 187) | func TestRenderFromBlocks(_ *testing.T) {
function TestPrimaryInternal_FromCache (line 205) | func TestPrimaryInternal_FromCache(_ *testing.T) {
function TestRenderBlockFromCache (line 223) | func TestRenderBlockFromCache(t *testing.T) {
function TestSegmentPendingState (line 247) | func TestSegmentPendingState(t *testing.T) {
function collectChannelOutput (line 278) | func collectChannelOutput(ch <-chan string, timeout time.Duration) []str...
function TestStreamingWithTimeout (line 296) | func TestStreamingWithTimeout(t *testing.T) {
function setupStreamingTestEnv (line 336) | func setupStreamingTestEnv() *mock.Environment {
function TestStreamPrimary_FullFlow_WithRendering (line 359) | func TestStreamPrimary_FullFlow_WithRendering(t *testing.T) {
function TestStreamPrimary_MultipleBlocks_MixedSpeed (line 428) | func TestStreamPrimary_MultipleBlocks_MixedSpeed(t *testing.T) {
function setupBasicStreamingTestEnv (line 486) | func setupBasicStreamingTestEnv() *Engine {
function TestStreamPrimary_EarlyChannelClosure (line 511) | func TestStreamPrimary_EarlyChannelClosure(t *testing.T) {
function TestStreamPrimary_NoStreamingResults_Channel (line 525) | func TestStreamPrimary_NoStreamingResults_Channel(t *testing.T) {
function TestStreamPrimary_RaceConditionFix (line 542) | func TestStreamPrimary_RaceConditionFix(t *testing.T) {
FILE: src/prompt/tooltip.go
method Tooltip (line 13) | func (e *Engine) Tooltip(tip string) string {
method handleToolTipAction (line 70) | func (e *Engine) handleToolTipAction(text string, length int) (string, i...
FILE: src/regex/regex.go
constant LINK (line 16) | LINK = `(?P<STR>\x1b]8;;(.+)\x1b\\(?P<TEXT>.+)\x1b]8;;\x1b\\)`
function GetCompiledRegex (line 19) | func GetCompiledRegex(pattern string) (*regexp.Regexp, error) {
function FindNamedRegexMatch (line 43) | func FindNamedRegexMatch(pattern, text string) map[string]string {
function FindAllNamedRegexMatch (line 66) | func FindAllNamedRegexMatch(pattern, text string) []map[string]string {
function ReplaceAllString (line 95) | func ReplaceAllString(pattern, text, replaceText string) string {
function MatchString (line 104) | func MatchString(pattern, text string) bool {
function FindStringMatch (line 113) | func FindStringMatch(pattern, text string, index int) (string, bool) {
FILE: src/regex/regex_test.go
function TestFindStringMatch (line 9) | func TestFindStringMatch(t *testing.T) {
FILE: src/runtime/battery/battery.go
type Info (line 23) | type Info struct
type NoBatteryError (line 28) | type NoBatteryError struct
method Error (line 30) | func (m *NoBatteryError) Error() string {
type State (line 35) | type State
method String (line 46) | func (s State) String() string {
constant Unknown (line 54) | Unknown State = iota
constant Empty (line 55) | Empty
constant Full (line 56) | Full
constant Charging (line 57) | Charging
constant Discharging (line 58) | Discharging
constant NotCharging (line 59) | NotCharging
FILE: src/runtime/battery/battery_darwin.go
function mapMostLogicalState (line 12) | func mapMostLogicalState(state string) State {
function parseBatteryOutput (line 31) | func parseBatteryOutput(output string) (*Info, error) {
function Get (line 58) | func Get() (*Info, error) {
FILE: src/runtime/battery/battery_darwin_test.go
function TestParseBatteryOutput (line 9) | func TestParseBatteryOutput(t *testing.T) {
FILE: src/runtime/battery/battery_linux.go
constant sysfs (line 33) | sysfs = "/sys/class/power_supply"
function newState (line 35) | func newState(name string) (State, error) {
function readFloat (line 45) | func readFloat(path, filename string) (float64, error) {
function readAmp (line 63) | func readAmp(path, filename string, volts float64) (float64, error) {
function isBattery (line 72) | func isBattery(path string) bool {
function getBatteryFiles (line 77) | func getBatteryFiles() ([]string, error) {
function getByPath (line 98) | func getByPath(path string) (*battery, error) {
function systemGetAll (line 137) | func systemGetAll() ([]*battery, error) {
FILE: src/runtime/battery/battery_netbsd.go
function Get (line 11) | func Get() (*Info, error) {
FILE: src/runtime/battery/battery_openandfreebsd.go
function mapMostLogicalState (line 14) | func mapMostLogicalState(state string) State {
function parseBatteryOutput (line 27) | func parseBatteryOutput(apm_percentage string, apm_status string) (*Info...
function Get (line 46) | func Get() (*Info, error) {
FILE: src/runtime/battery/battery_openandfreebsd_test.go
function TestParseBatteryOutput (line 11) | func TestParseBatteryOutput(t *testing.T) {
FILE: src/runtime/battery/battery_windows.go
type batteryQueryInformation (line 32) | type batteryQueryInformation struct
type batteryInformation (line 38) | type batteryInformation struct
type batteryWaitStatus (line 51) | type batteryWaitStatus struct
type batteryStatus (line 59) | type batteryStatus struct
type guid (line 66) | type guid struct
type spDeviceInterfaceData (line 73) | type spDeviceInterfaceData struct
function uint32ToFloat64 (line 87) | func uint32ToFloat64(num uint32) (float64, error) {
function setupDiSetup (line 94) | func setupDiSetup(proc *windows.LazyProc, args ...uintptr) (uintptr, err...
function setupDiCall (line 105) | func setupDiCall(proc *windows.LazyProc, args ...uintptr) syscall.Errno {
function readState (line 122) | func readState(powerState uint32) State {
function systemGet (line 137) | func systemGet(idx int) (*battery, error) {
function systemGetAll (line 312) | func systemGetAll() ([]*battery, error) {
FILE: src/runtime/battery/battery_windows_nix.go
type battery (line 10) | type battery struct
function mapMostLogicalState (line 21) | func mapMostLogicalState(currentState, newState State) State {
function Get (line 44) | func Get() (*Info, error) {
FILE: src/runtime/battery/battery_windows_nix_test.go
function TestMapBatteriesState (line 32) | func TestMapBatteriesState(t *testing.T) {
FILE: src/runtime/battery/errors.go
type Errors (line 28) | type Errors
method Error (line 30) | func (e Errors) Error() string {
FILE: src/runtime/battery/errors_test.go
function TestErrors (line 29) | func TestErrors(t *testing.T) {
FILE: src/runtime/cmd/run.go
function Run (line 16) | func Run(command string, args ...string) (string, error) {
FILE: src/runtime/cmd/run_test.go
function TestCurrentGID (line 9) | func TestCurrentGID(t *testing.T) {
FILE: src/runtime/environment.go
constant UNKNOWN (line 14) | UNKNOWN = "unknown"
constant WINDOWS (line 15) | WINDOWS = "windows"
constant DARWIN (line 16) | DARWIN = "darwin"
constant LINUX (line 17) | LINUX = "linux"
constant FREEBSD (line 18) | FREEBSD = "freebsd"
constant CMD (line 19) | CMD = "cmd"
constant ANDROID (line 20) | ANDROID = "android"
constant PRIMARY (line 22) | PRIMARY = "primary"
type Environment (line 25) | type Environment interface
type Flags (line 70) | type Flags struct
type CommandError (line 102) | type CommandError struct
method Error (line 107) | func (e *CommandError) Error() string {
type FileInfo (line 111) | type FileInfo struct
type WindowsRegistryValueType (line 117) | type WindowsRegistryValueType
constant DWORD (line 120) | DWORD = "DWORD"
constant QWORD (line 121) | QWORD = "QWORD"
constant BINARY (line 122) | BINARY = "BINARY"
constant STRING (line 123) | STRING = "STRING"
type WindowsRegistryValue (line 126) | type WindowsRegistryValue struct
type NotImplemented (line 133) | type NotImplemented struct
method Error (line 135) | func (n *NotImplemented) Error() string {
type ConnectionType (line 139) | type ConnectionType
constant ETHERNET (line 142) | ETHERNET ConnectionType = "ethernet"
constant WIFI (line 143) | WIFI ConnectionType = "wifi"
constant CELLULAR (line 144) | CELLULAR ConnectionType = "cellular"
constant BLUETOOTH (line 145) | BLUETOOTH ConnectionType = "bluetooth"
type Connection (line 148) | type Connection struct
type Memory (line 156) | type Memory struct
type SystemInfo (line 166) | type SystemInfo struct
FILE: src/runtime/http/connection.go
function IsConnected (line 12) | func IsConnected() bool {
FILE: src/runtime/http/download.go
function Download (line 16) | func Download(url string, isCacheEnabled bool) ([]byte, error) {
function etagKey (line 86) | func etagKey(url string) string {
function dataKey (line 90) | func dataKey(url string) string {
FILE: src/runtime/http/http.go
type httpClient (line 12) | type httpClient interface
type Error (line 29) | type Error struct
method Error (line 33) | func (e *Error) Error() string {
FILE: src/runtime/http/oauth.go
constant Timeout (line 14) | Timeout = "timeout"
constant InvalidRefreshToken (line 15) | InvalidRefreshToken = "invalid refresh token"
constant TokenRefreshFailed (line 16) | TokenRefreshFailed = "token refresh error"
constant DefaultRefreshToken (line 17) | DefaultRefreshToken = "111111111111111111111111111111"
type tokenExchange (line 20) | type tokenExchange struct
type OAuthError (line 26) | type OAuthError struct
method Error (line 30) | func (a *OAuthError) Error() string {
type OAuthRequest (line 34) | type OAuthRequest struct
method getAccessToken (line 43) | func (o *OAuthRequest) getAccessToken() (string, error) {
method refreshToken (line 70) | func (o *OAuthRequest) refreshToken(refreshToken string) (string, erro...
function OauthResult (line 98) | func OauthResult[a any](o *OAuthRequest, url string, body io.Reader, req...
FILE: src/runtime/http/oauth_test.go
type data (line 12) | type data struct
function TestOauthResult (line 16) | func TestOauthResult(t *testing.T) {
FILE: src/runtime/http/request.go
type RequestModifier (line 12) | type RequestModifier
type Request (line 14) | type Request struct
type Environment (line 19) | type Environment interface
function Do (line 23) | func Do[a any](r *Request, url string, body io.Reader, requestModifiers ...
FILE: src/runtime/http/request_test.go
type MockedEnvironment (line 13) | type MockedEnvironment struct
method HTTPRequest (line 17) | func (env *MockedEnvironment) HTTPRequest(url string, _ io.Reader, _ i...
function TestRequestResult (line 22) | func TestRequestResult(t *testing.T) {
FILE: src/runtime/jobs/jobs_common.go
function CurrentGID (line 12) | func CurrentGID() uint64 {
FILE: src/runtime/jobs/jobs_other.go
function CreateJobForGoroutine (line 18) | func CreateJobForGoroutine(_ string) error { return nil }
function AssignPidToGoroutineJob (line 19) | func AssignPidToGoroutineJob(_ int) error { return nil }
function SetProcessGroup (line 23) | func SetProcessGroup(cmd *exec.Cmd) {
function RegisterProcess (line 29) | func RegisterProcess(pid int) {
function UnregisterProcess (line 41) | func UnregisterProcess(pid int) {
function KillGoroutineChildren (line 56) | func KillGoroutineChildren(gid uint64) error {
FILE: src/runtime/jobs/jobs_windows.go
function CreateJobForGoroutine (line 30) | func CreateJobForGoroutine(label string) error {
function RegisterProcess (line 63) | func RegisterProcess(pid int) {
function UnregisterProcess (line 104) | func UnregisterProcess(pid int) {
function KillGoroutineChildren (line 120) | func KillGoroutineChildren(gid uint64) error {
function SetProcessGroup (line 169) | func SetProcessGroup(cmd *exec.Cmd) {
FILE: src/runtime/mock/environment.go
type Environment (line 14) | type Environment struct
method Getenv (line 18) | func (env *Environment) Getenv(key string) string {
method Pwd (line 23) | func (env *Environment) Pwd() string {
method Home (line 28) | func (env *Environment) Home() string {
method HasFiles (line 33) | func (env *Environment) HasFiles(pattern string) bool {
method HasFilesInDir (line 38) | func (env *Environment) HasFilesInDir(dir, pattern string) bool {
method HasFolder (line 43) | func (env *Environment) HasFolder(folder string) bool {
method ResolveSymlink (line 48) | func (env *Environment) ResolveSymlink(input string) (string, error) {
method FileContent (line 53) | func (env *Environment) FileContent(file string) string {
method LsDir (line 58) | func (env *Environment) LsDir(input string) []fs.DirEntry {
method User (line 63) | func (env *Environment) User() string {
method Host (line 68) | func (env *Environment) Host() (string, error) {
method GOOS (line 73) | func (env *Environment) GOOS() string {
method Platform (line 78) | func (env *Environment) Platform() string {
method CommandPath (line 83) | func (env *Environment) CommandPath(command string) string {
method HasCommand (line 88) | func (env *Environment) HasCommand(command string) bool {
method RunCommand (line 93) | func (env *Environment) RunCommand(command string, args ...string) (st...
method RunShellCommand (line 98) | func (env *Environment) RunShellCommand(shell, command string) string {
method StatusCodes (line 103) | func (env *Environment) StatusCodes() (int, string) {
method ExecutionTime (line 108) | func (env *Environment) ExecutionTime() float64 {
method Root (line 113) | func (env *Environment) Root() bool {
method Flags (line 118) | func (env *Environment) Flags() *runtime.Flags {
method BatteryState (line 123) | func (env *Environment) BatteryState() (*battery.Info, error) {
method Shell (line 128) | func (env *Environment) Shell() string {
method QueryWindowTitles (line 133) | func (env *Environment) QueryWindowTitles(processName, windowTitleRege...
method WindowsRegistryKeyValue (line 138) | func (env *Environment) WindowsRegistryKeyValue(path string) (*runtime...
method HTTPRequest (line 143) | func (env *Environment) HTTPRequest(url string, _ io.Reader, _ int, _ ...
method HasParentFilePath (line 148) | func (env *Environment) HasParentFilePath(parent string, followSymlink...
method StackCount (line 153) | func (env *Environment) StackCount() int {
method IsWsl (line 158) | func (env *Environment) IsWsl() bool {
method IsWsl2 (line 163) | func (env *Environment) IsWsl2() bool {
method IsCygwin (line 168) | func (env *Environment) IsCygwin() bool {
method TerminalWidth (line 173) | func (env *Environment) TerminalWidth() (int, error) {
method CachePath (line 178) | func (env *Environment) CachePath() string {
method Close (line 183) | func (env *Environment) Close() {
method Logs (line 187) | func (env *Environment) Logs() string {
method InWSLSharedDrive (line 192) | func (env *Environment) InWSLSharedDrive() bool {
method ConvertToWindowsPath (line 197) | func (env *Environment) ConvertToWindowsPath(input string) string {
method ConvertToLinuxPath (line 202) | func (env *Environment) ConvertToLinuxPath(_ string) string {
method Connection (line 207) | func (env *Environment) Connection(connectionType runtime.ConnectionTy...
method MockGitCommand (line 212) | func (env *Environment) MockGitCommand(dir, returnValue string, args ....
method MockHgCommand (line 217) | func (env *Environment) MockHgCommand(dir, returnValue string, args .....
method MockJjCommand (line 222) | func (env *Environment) MockJjCommand(dir, returnValue string, args .....
method MockSvnCommand (line 227) | func (env *Environment) MockSvnCommand(dir, returnValue string, args ....
method HasFileInParentDirs (line 232) | func (env *Environment) HasFileInParentDirs(pattern string, depth uint...
method DirMatchesOneOf (line 237) | func (env *Environment) DirMatchesOneOf(dir string, regexes []string) ...
method DirIsWritable (line 242) | func (env *Environment) DirIsWritable(path string) bool {
method CursorPosition (line 247) | func (env *Environment) CursorPosition() (int, int) {
method SystemInfo (line 252) | func (env *Environment) SystemInfo() (*runtime.SystemInfo, error) {
method Unset (line 257) | func (env *Environment) Unset(name string) {
FILE: src/runtime/networks_windows.go
type MIN_IF_TABLE2 (line 22) | type MIN_IF_TABLE2 struct
constant IF_MAX_STRING_SIZE (line 28) | IF_MAX_STRING_SIZE uint64 = 256
constant IF_MAX_PHYS_ADDRESS_LENGTH (line 29) | IF_MAX_PHYS_ADDRESS_LENGTH uint64 = 32
type MIB_IF_ROW2 (line 32) | type MIB_IF_ROW2 struct
type WLAN_INTERFACE_INFO_LIST (line 91) | type WLAN_INTERFACE_INFO_LIST struct
type WLAN_INTERFACE_INFO (line 97) | type WLAN_INTERFACE_INFO struct
constant WLAN_MAX_NAME_LENGTH (line 104) | WLAN_MAX_NAME_LENGTH int64 = 256
constant DOT11_SSID_MAX_LENGTH (line 105) | DOT11_SSID_MAX_LENGTH int64 = 32
type WLAN_CONNECTION_ATTRIBUTES (line 109) | type WLAN_CONNECTION_ATTRIBUTES struct
type WLAN_ASSOCIATION_ATTRIBUTES (line 118) | type WLAN_ASSOCIATION_ATTRIBUTES struct
type WLAN_SECURITY_ATTRIBUTES (line 130) | type WLAN_SECURITY_ATTRIBUTES struct
type DOT11_SSID (line 137) | type DOT11_SSID struct
method getConnections (line 142) | func (term *Terminal) getConnections() []*Connection {
method wifiNetwork (line 202) | func (term *Terminal) wifiNetwork() (*Connection, error) {
method parseNetworkInterface (line 239) | func (term *Terminal) parseNetworkInterface(network *WLAN_INTERFACE_INFO...
FILE: src/runtime/path/clean.go
function Base (line 16) | func Base(input string) string {
function Clean (line 51) | func Clean(input string) string {
function ReplaceHomeDirPrefixWithTilde (line 102) | func ReplaceHomeDirPrefixWithTilde(path string) string {
function ReplaceTildePrefixWithHomeDir (line 116) | func ReplaceTildePrefixWithHomeDir(path string) string {
FILE: src/runtime/path/home.go
function Home (line 9) | func Home() string {
FILE: src/runtime/path/separator.go
constant windows (line 11) | windows = "windows"
function Separator (line 14) | func Separator() string {
function IsSeparator (line 24) | func IsSeparator(c uint8) bool {
FILE: src/runtime/terminal.go
type Terminal (line 32) | type Terminal struct
method Init (line 41) | func (term *Terminal) Init(flags *Flags) {
method Getenv (line 61) | func (term *Terminal) Getenv(key string) string {
method Pwd (line 68) | func (term *Terminal) Pwd() string {
method setPwd (line 72) | func (term *Terminal) setPwd() {
method HasFiles (line 105) | func (term *Terminal) HasFiles(pattern string) bool {
method HasFilesInDir (line 109) | func (term *Terminal) HasFilesInDir(dir, pattern string) bool {
method HasFileInParentDirs (line 155) | func (term *Terminal) HasFileInParentDirs(pattern string, depth uint) ...
method HasFolder (line 176) | func (term *Terminal) HasFolder(folder string) bool {
method ResolveSymlink (line 188) | func (term *Terminal) ResolveSymlink(input string) (string, error) {
method FileContent (line 199) | func (term *Terminal) FileContent(file string) string {
method LsDir (line 217) | func (term *Terminal) LsDir(input string) []fs.DirEntry {
method User (line 230) | func (term *Terminal) User() string {
method Host (line 240) | func (term *Terminal) Host() (string, error) {
method GOOS (line 259) | func (term *Terminal) GOOS() string {
method Home (line 264) | func (term *Terminal) Home() string {
method RunCommand (line 268) | func (term *Terminal) RunCommand(command string, args ...string) (stri...
method RunShellCommand (line 284) | func (term *Terminal) RunShellCommand(shell, command string) string {
method CommandPath (line 294) | func (term *Terminal) CommandPath(command string) string {
method HasCommand (line 312) | func (term *Terminal) HasCommand(command string) bool {
method StatusCodes (line 322) | func (term *Terminal) StatusCodes() (int, string) {
method ExecutionTime (line 336) | func (term *Terminal) ExecutionTime() float64 {
method Flags (line 344) | func (term *Terminal) Flags() *Flags {
method Shell (line 349) | func (term *Terminal) Shell() string {
method unWrapError (line 373) | func (term *Terminal) unWrapError(err error) error {
method HTTPRequest (line 386) | func (term *Terminal) HTTPRequest(targetURL string, body io.Reader, ti...
method HasParentFilePath (line 434) | func (term *Terminal) HasParentFilePath(parent string, followSymlinks ...
method StackCount (line 469) | func (term *Terminal) StackCount() int {
method Logs (line 479) | func (term *Terminal) Logs() string {
method DirMatchesOneOf (line 483) | func (term *Terminal) DirMatchesOneOf(dir string, regexes []string) (m...
method setPromptCount (line 527) | func (term *Terminal) setPromptCount() {
method CursorPosition (line 544) | func (term *Terminal) CursorPosition() (row, col int) {
method SystemInfo (line 556) | func (term *Terminal) SystemInfo() (*SystemInfo, error) {
function dirMatchesOneOf (line 497) | func dirMatchesOneOf(dir, home, goos string, regexes []string) bool {
function cleanHostName (line 579) | func cleanHostName(hostName string) string {
FILE: src/runtime/terminal_darwin.go
function mapMostLogicalState (line 15) | func mapMostLogicalState(state string) battery.State {
method parseBatteryOutput (line 34) | func (term *Terminal) parseBatteryOutput(output string) (*battery.Info, ...
method BatteryState (line 53) | func (term *Terminal) BatteryState() (*battery.Info, error) {
FILE: src/runtime/terminal_test.go
function TestNormalHostName (line 9) | func TestNormalHostName(t *testing.T) {
function TestHostNameWithLocal (line 14) | func TestHostNameWithLocal(t *testing.T) {
function TestHostNameWithLan (line 19) | func TestHostNameWithLan(t *testing.T) {
function TestDirMatchesOneOf (line 25) | func TestDirMatchesOneOf(t *testing.T) {
function TestDirMatchesOneOfRegexInverted (line 56) | func TestDirMatchesOneOfRegexInverted(t *testing.T) {
function TestDirMatchesOneOfRegexInvertedNonEscaped (line 67) | func TestDirMatchesOneOfRegexInvertedNonEscaped(t *testing.T) {
FILE: src/runtime/terminal_unix.go
method Root (line 19) | func (term *Terminal) Root() bool {
method QueryWindowTitles (line 24) | func (term *Terminal) QueryWindowTitles(_, _ string) (string, error) {
method IsWsl (line 28) | func (term *Terminal) IsWsl() bool {
method IsWsl2 (line 45) | func (term *Terminal) IsWsl2() bool {
method IsCygwin (line 54) | func (term *Terminal) IsCygwin() bool {
method TerminalWidth (line 59) | func (term *Terminal) TerminalWidth() (int, error) {
method Platform (line 94) | func (term *Terminal) Platform() string {
method getSpecialLinuxDistros (line 119) | func (term *Terminal) getSpecialLinuxDistros(platform string) string {
method WindowsRegistryKeyValue (line 135) | func (term *Terminal) WindowsRegistryKeyValue(_ string) (*WindowsRegistr...
method InWSLSharedDrive (line 139) | func (term *Terminal) InWSLSharedDrive() bool {
method ConvertToWindowsPath (line 147) | func (term *Terminal) ConvertToWindowsPath(input string) string {
method ConvertToLinuxPath (line 155) | func (term *Terminal) ConvertToLinuxPath(input string) string {
method DirIsWritable (line 162) | func (term *Terminal) DirIsWritable(input string) bool {
method Connection (line 167) | func (term *Terminal) Connection(_ ConnectionType) (*Connection, error) {
method Memory (line 176) | func (term *Terminal) Memory() (*Memory, error) {
FILE: src/runtime/terminal_unix_test.go
function TestMemoryPercentageCalculation (line 11) | func TestMemoryPercentageCalculation(t *testing.T) {
FILE: src/runtime/terminal_windows.go
method Root (line 17) | func (term *Terminal) Root() bool {
method QueryWindowTitles (line 54) | func (term *Terminal) QueryWindowTitles(processName, windowTitleRegex st...
method IsWsl (line 63) | func (term *Terminal) IsWsl() bool {
method IsWsl2 (line 68) | func (term *Terminal) IsWsl2() bool {
method IsCygwin (line 73) | func (term *Terminal) IsCygwin() bool {
method TerminalWidth (line 78) | func (term *Terminal) TerminalWidth() (int, error) {
method Platform (line 110) | func (term *Terminal) Platform() string {
method WindowsRegistryKeyValue (line 123) | func (term *Terminal) WindowsRegistryKeyValue(input string) (*WindowsReg...
method InWSLSharedDrive (line 209) | func (term *Terminal) InWSLSharedDrive() bool {
method ConvertToWindowsPath (line 213) | func (term *Terminal) ConvertToWindowsPath(input string) string {
method ConvertToLinuxPath (line 217) | func (term *Terminal) ConvertToLinuxPath(input string) string {
method DirIsWritable (line 221) | func (term *Terminal) DirIsWritable(input string) bool {
method Connection (line 226) | func (term *Terminal) Connection(connectionType ConnectionType) (*Connec...
FILE: src/runtime/terminal_windows_nix.go
method BatteryState (line 12) | func (term *Terminal) BatteryState() (*battery.Info, error) {
FILE: src/runtime/win32_windows.go
function enumWindows (line 35) | func enumWindows(enumFunc, lparam uintptr) (err error) {
function getWindowText (line 49) | func getWindowText(hwnd syscall.Handle, str *uint16, maxCount int32) (le...
function getWindowFileName (line 62) | func getWindowFileName(handle syscall.Handle) (string, error) {
function queryWindowTitles (line 77) | func queryWindowTitles(processName, windowTitleRegex string) (string, er...
constant ACCESS_DENIED_ACE_TYPE (line 125) | ACCESS_DENIED_ACE_TYPE = 1
type accessMask (line 128) | type accessMask
method canWrite (line 130) | func (m accessMask) canWrite() bool {
method permissions (line 140) | func (m accessMask) permissions() string {
type AccessAllowedAce (line 178) | type AccessAllowedAce struct
function getCurrentUser (line 186) | func getCurrentUser() (user *tokenUser, err error) {
type tokenUser (line 205) | type tokenUser struct
method isMemberOf (line 210) | func (u *tokenUser) isMemberOf(sid *windows.SID) bool {
method isWriteable (line 222) | func (env *Terminal) isWriteable(folder string) bool {
type memoryStatusEx (line 286) | type memoryStatusEx struct
method Memory (line 298) | func (env *Terminal) Memory() (*Memory, error) {
FILE: src/segments/angular.go
type Angular (line 7) | type Angular struct
method Template (line 11) | func (a *Angular) Template() string {
method Enabled (line 15) | func (a *Angular) Enabled() bool {
method getVersion (line 29) | func (a *Angular) getVersion() (string, error) {
FILE: src/segments/argocd.go
constant argocdOptsEnv (line 15) | argocdOptsEnv = "ARGOCD_OPTS"
constant argocdInvalidYaml (line 16) | argocdInvalidYaml = "invalid yaml"
constant argocdNoCurrent (line 17) | argocdNoCurrent = "no current context"
constant NameTemplate (line 19) | NameTemplate = " {{ .Name }} "
type ArgocdContext (line 22) | type ArgocdContext struct
type ArgocdConfig (line 28) | type ArgocdConfig struct
type Argocd (line 33) | type Argocd struct
method Template (line 39) | func (a *Argocd) Template() string {
method Enabled (line 43) | func (a *Argocd) Enabled() bool {
method getConfigPath (line 54) | func (a *Argocd) getConfigPath() string {
method getConfigFromOpts (line 63) | func (a *Argocd) getConfigFromOpts() string {
method parseConfig (line 76) | func (a *Argocd) parseConfig(file string) (bool, error) {
FILE: src/segments/argocd_test.go
constant poshHome (line 15) | poshHome = "/Users/posh"
function TestArgocdGetConfigFromOpts (line 18) | func TestArgocdGetConfigFromOpts(t *testing.T) {
function TestArgocdGetConfigPath (line 49) | func TestArgocdGetConfigPath(t *testing.T) {
function TestArgocdParseConfig (line 76) | func TestArgocdParseConfig(t *testing.T) {
function TestArgocdSegment (line 181) | func TestArgocdSegment(t *testing.T) {
FILE: src/segments/aurelia.go
type Aurelia (line 3) | type Aurelia struct
method Template (line 7) | func (a *Aurelia) Template() string {
method Enabled (line 11) | func (a *Aurelia) Enabled() bool {
method getVersion (line 29) | func (a *Aurelia) getVersion() (string, error) {
FILE: src/segments/aws.go
type Aws (line 11) | type Aws struct
method Template (line 22) | func (a *Aws) Template() string {
method Enabled (line 26) | func (a *Aws) Enabled() bool {
method getConfigFileInfo (line 62) | func (a *Aws) getConfigFileInfo() {
method RegionAlias (line 96) | func (a *Aws) RegionAlias() string {
constant defaultUser (line 19) | defaultUser = "default"
FILE: src/segments/aws_test.go
function TestAWSSegment (line 13) | func TestAWSSegment(t *testing.T) {
FILE: src/segments/az.go
type Az (line 12) | type Az struct
method Template (line 74) | func (a *Az) Template() string {
method Enabled (line 78) | func (a *Az) Enabled() bool {
method FileContentWithoutBom (line 104) | func (a *Az) FileContentWithoutBom(file string) string {
method getCLISubscription (line 110) | func (a *Az) getCLISubscription() bool {
method getModuleSubscription (line 133) | func (a *Az) getModuleSubscription() bool {
method findConfig (line 161) | func (a *Az) findConfig(fileName string) (string, error) {
constant Source (line 20) | Source options.Option = "source"
constant Pwsh (line 22) | Pwsh = "pwsh"
constant Cli (line 23) | Cli = "cli"
constant FirstMatch (line 25) | FirstMatch = "cli|pwsh"
constant azureEnv (line 26) | azureEnv = "POSH_AZURE_SUBSCRIPTION"
type AzureConfig (line 29) | type AzureConfig struct
type AzureSubscription (line 34) | type AzureSubscription struct
type AzureUser (line 47) | type AzureUser struct
type AzurePowerShellSubscription (line 52) | type AzurePowerShellSubscription struct
FILE: src/segments/az_functions.go
type AzFunc (line 3) | type AzFunc struct
method Template (line 7) | func (az *AzFunc) Template() string {
method Enabled (line 11) | func (az *AzFunc) Enabled() bool {
FILE: src/segments/az_test.go
function TestAzSegment (line 16) | func TestAzSegment(t *testing.T) {
FILE: src/segments/azd.go
type Azd (line 11) | type Azd struct
method Template (line 21) | func (t *Azd) Template() string {
method Enabled (line 25) | func (t *Azd) Enabled() bool {
method TryReadConfigJSON (line 57) | func (t *Azd) TryReadConfigJSON(file string) bool {
type AzdConfig (line 16) | type AzdConfig struct
FILE: src/segments/azd_test.go
function TestAzdSegment (line 15) | func TestAzdSegment(t *testing.T) {
FILE: src/segments/base.go
type Base (line 8) | type Base struct
method Text (line 20) | func (b *Base) Text() string {
method SetText (line 24) | func (b *Base) SetText(text string) {
method SetIndex (line 28) | func (b *Base) SetIndex(index int) {
method Init (line 32) | func (b *Base) Init(opts options.Provider, env runtime.Environment) {
method CacheKey (line 38) | func (b *Base) CacheKey() (string, bool) {
type Segment (line 15) | type Segment struct
FILE: src/segments/battery.go
type Battery (line 8) | type Battery struct
method Template (line 26) | func (b *Battery) Template() string {
method Enabled (line 30) | func (b *Battery) Enabled() bool {
method enabledWhileError (line 64) | func (b *Battery) enabledWhileError(err error) bool {
constant ChargingIcon (line 17) | ChargingIcon options.Option = "charging_icon"
constant DischargingIcon (line 19) | DischargingIcon options.Option = "discharging_icon"
constant ChargedIcon (line 21) | ChargedIcon options.Option = "charged_icon"
constant NotChargingIcon (line 23) | NotChargingIcon options.Option = "not_charging_icon"
FILE: src/segments/bazel.go
type Bazel (line 5) | type Bazel struct
method Template (line 15) | func (b *Bazel) Template() string {
method Enabled (line 19) | func (b *Bazel) Enabled() bool {
constant Icon (line 12) | Icon options.Option = "icon"
FILE: src/segments/bazel_test.go
function TestBazel (line 10) | func TestBazel(t *testing.T) {
FILE: src/segments/brewfather.go
type Brewfather (line 17) | type Brewfather struct
method Template (line 87) | func (bf *Brewfather) Template() string {
method Enabled (line 91) | func (bf *Brewfather) Enabled() bool {
method getTrendIcon (line 138) | func (bf *Brewfather) getTrendIcon(trend float64) string {
method getBatchStatusIcon (line 171) | func (bf *Brewfather) getBatchStatusIcon(batchStatus string) string {
method getResult (line 190) | func (bf *Brewfather) getResult() (*Batch, error) {
method DegCToF (line 261) | func (bf *Brewfather) DegCToF(degreesC float64) float64 {
method DegCToKelvin (line 265) | func (bf *Brewfather) DegCToKelvin(degreesC float64) float64 {
method SGToBrix (line 269) | func (bf *Brewfather) SGToBrix(sg float64) float64 {
method SGToPlato (line 274) | func (bf *Brewfather) SGToPlato(sg float64) float64 {
constant BFUserID (line 32) | BFUserID options.Option = "user_id"
constant BFBatchID (line 33) | BFBatchID options.Option = "batch_id"
constant BFDoubleUpIcon (line 35) | BFDoubleUpIcon options.Option = "doubleup_icon"
constant BFSingleUpIcon (line 36) | BFSingleUpIcon options.Option = "singleup_icon"
constant BFFortyFiveUpIcon (line 37) | BFFortyFiveUpIcon options.Option = "fortyfiveup_icon"
constant BFFlatIcon (line 38) | BFFlatIcon options.Option = "flat_icon"
constant BFFortyFiveDownIcon (line 39) | BFFortyFiveDownIcon options.Option = "fortyfivedown_icon"
constant BFSingleDownIcon (line 40) | BFSingleDownIcon options.Option = "singledown_icon"
constant BFDoubleDownIcon (line 41) | BFDoubleDownIcon options.Option = "doubledown_icon"
constant BFPlanningStatusIcon (line 43) | BFPlanningStatusIcon options.Option = "planning_status_icon"
constant BFBrewingStatusIcon (line 44) | BFBrewingStatusIcon options.Option = "brewing_status_icon"
constant BFFermentingStatusIcon (line 45) | BFFermentingStatusIcon options.Option = "fermenting_status_icon"
constant BFConditioningStatusIcon (line 46) | BFConditioningStatusIcon options.Option = "conditioning_status_icon"
constant BFCompletedStatusIcon (line 47) | BFCompletedStatusIcon options.Option = "completed_status_icon"
constant BFArchivedStatusIcon (line 48) | BFArchivedStatusIcon options.Option = "archived_status_icon"
constant BFDayIcon (line 50) | BFDayIcon options.Option = "day_icon"
constant BFStatusPlanning (line 52) | BFStatusPlanning string = "Planning"
constant BFStatusBrewing (line 53) | BFStatusBrewing string = "Brewing"
constant BFStatusFermenting (line 54) | BFStatusFermenting string = "Fermenting"
constant BFStatusConditioning (line 55) | BFStatusConditioning string = "Conditioning"
constant BFStatusCompleted (line 56) | BFStatusCompleted string = "Completed"
constant BFStatusArchived (line 57) | BFStatusArchived string = "Archived"
type BatchReading (line 61) | type BatchReading struct
type Batch (line 70) | type Batch struct
FILE: src/segments/brewfather_test.go
constant BFFakeBatchID (line 16) | BFFakeBatchID = "FAKE"
constant BFBatchURL (line 17) | BFBatchURL = "https://api.brewfather.app/v1/batches/" + BFFakeBa...
constant BFCacheKey (line 18) | BFCacheKey = BFBatchURL
constant BFBatchReadingsURL (line 19) | BFBatchReadingsURL = "https://api.brewfather.app/v1/batches/" + BFFakeBa...
function createBatch (line 45) | func createBatch(status string) *Batch {
function createReading (line 62) | func createReading(temp, gravity float64, millis int64) *BatchReading {
function TestBrewfatherSegment (line 73) | func TestBrewfatherSegment(t *testing.T) {
FILE: src/segments/buf.go
type Buf (line 3) | type Buf struct
method Template (line 7) | func (b *Buf) Template() string {
method Enabled (line 11) | func (b *Buf) Enabled() bool {
FILE: src/segments/buf_test.go
function TestBuf (line 10) | func TestBuf(t *testing.T) {
FILE: src/segments/bun.go
type Bun (line 3) | type Bun struct
method Template (line 7) | func (b *Bun) Template() string {
method Enabled (line 11) | func (b *Bun) Enabled() bool {
FILE: src/segments/bun_test.go
function TestBun (line 10) | func TestBun(t *testing.T) {
FILE: src/segments/carbon_intensity.go
type CarbonIntensity (line 11) | type CarbonIntensity struct
method Enabled (line 64) | func (d *CarbonIntensity) Enabled() bool {
method Template (line 75) | func (d *CarbonIntensity) Template() string {
method getResult (line 79) | func (d *CarbonIntensity) getResult() (*CarbonIntensityResponse, error) {
method setStatus (line 98) | func (d *CarbonIntensity) setStatus() error {
type CarbonIntensityResponse (line 19) | type CarbonIntensityResponse struct
type CarbonIntensityPeriod (line 23) | type CarbonIntensityPeriod struct
type CarbonIntensityData (line 29) | type CarbonIntensityData struct
type Number (line 35) | type Number
method String (line 37) | func (n Number) String() string {
type Index (line 45) | type Index
method Icon (line 47) | func (i Index) Icon() string {
FILE: src/segments/carbon_intensity_test.go
constant CARBONINTENSITYURL (line 16) | CARBONINTENSITYURL = "https://api.carbonintensity.org.uk/intensity"
function TestCarbonIntensitySegmentSingle (line 19) | func TestCarbonIntensitySegmentSingle(t *testing.T) {
FILE: src/segments/cds.go
type Cds (line 3) | type Cds struct
method Template (line 8) | func (c *Cds) Template() string {
method Enabled (line 12) | func (c *Cds) Enabled() bool {
method loadContext (line 29) | func (c *Cds) loadContext() {
method inContext (line 37) | func (c *Cds) inContext() bool {
FILE: src/segments/cds_test.go
function TestCdsSegment (line 10) | func TestCdsSegment(t *testing.T) {
FILE: src/segments/cf.go
type Cf (line 3) | type Cf struct
method Template (line 7) | func (c *Cf) Template() string {
method Enabled (line 11) | func (c *Cf) Enabled() bool {
FILE: src/segments/cf_target.go
type CfTarget (line 10) | type CfTarget struct
method Template (line 23) | func (c *CfTarget) Template() string {
method Enabled (line 27) | func (c *CfTarget) Enabled() bool {
method setCFTargetStatus (line 50) | func (c *CfTarget) setCFTargetStatus() bool {
method getCFTargetCommandOutput (line 79) | func (c *CfTarget) getCFTargetCommandOutput() (string, error) {
type CfTargetDetails (line 16) | type CfTargetDetails struct
FILE: src/segments/cf_target_test.go
function TestCFTargetSegment (line 16) | func TestCFTargetSegment(t *testing.T) {
FILE: src/segments/cf_test.go
function TestCFSegment (line 10) | func TestCFSegment(t *testing.T) {
FILE: src/segments/claude.go
type Claude (line 12) | type Claude struct
method Template (line 67) | func (c *Claude) Template() string {
method Enabled (line 71) | func (c *Claude) Enabled() bool {
method TokenUsagePercent (line 93) | func (c *Claude) TokenUsagePercent() text.Percentage {
method FormattedCost (line 139) | func (c *Claude) FormattedCost() string {
method FormattedTokens (line 150) | func (c *Claude) FormattedTokens() string {
type ClaudeData (line 18) | type ClaudeData struct
type ClaudeModel (line 27) | type ClaudeModel struct
type ClaudeWorkspace (line 33) | type ClaudeWorkspace struct
type ClaudeCost (line 39) | type ClaudeCost struct
type ClaudeContextWindow (line 45) | type ClaudeContextWindow struct
type ClaudeCurrentUsage (line 55) | type ClaudeCurrentUsage struct
constant thousand (line 63) | thousand = 1000.0
constant million (line 64) | million = 1000000.0
FILE: src/segments/claude_test.go
function TestClaudeSegment (line 14) | func TestClaudeSegment(t *testing.T) {
function TestClaudeTokenUsagePercent (line 103) | func TestClaudeTokenUsagePercent(t *testing.T) {
function TestClaudeFormattedCost (line 234) | func TestClaudeFormattedCost(t *testing.T) {
function TestClaudeFormattedTokens (line 271) | func TestClaudeFormattedTokens(t *testing.T) {
FILE: src/segments/clojure.go
type Clojure (line 3) | type Clojure struct
method Template (line 7) | func (c *Clojure) Template() string {
method Enabled (line 11) | func (c *Clojure) Enabled() bool {
method init (line 16) | func (c *Clojure) init() {
FILE: src/segments/clojure_test.go
function TestClojure (line 10) | func TestClojure(t *testing.T) {
FILE: src/segments/cmake.go
type Cmake (line 3) | type Cmake struct
method Template (line 7) | func (c *Cmake) Template() string {
method Enabled (line 11) | func (c *Cmake) Enabled() bool {
FILE: src/segments/cmake_test.go
function TestCmake (line 10) | func TestCmake(t *testing.T) {
FILE: src/segments/connection.go
type Connection (line 10) | type Connection struct
method Template (line 20) | func (c *Connection) Template() string {
method Enabled (line 24) | func (c *Connection) Enabled() bool {
constant Type (line 17) | Type options.Option = "type"
FILE: src/segments/connection_test.go
function TestConnection (line 14) | func TestConnection(t *testing.T) {
FILE: src/segments/copilot.go
type CopilotUsage (line 15) | type CopilotUsage struct
type Copilot (line 24) | type Copilot struct
method Template (line 57) | func (c *Copilot) Template() string {
method Enabled (line 61) | func (c *Copilot) Enabled() bool {
method getAccessToken (line 71) | func (c *Copilot) getAccessToken() string {
method getResult (line 80) | func (c *Copilot) getResult() (*copilotAPIResponse, error) {
method setStatus (line 114) | func (c *Copilot) setStatus() error {
method extractQuotaSnapshots (line 144) | func (c *Copilot) extractQuotaSnapshots(response *copilotAPIResponse) ...
method calculateUsage (line 157) | func (c *Copilot) calculateUsage(snapshot copilotQuotaSnapshot) Copilo...
method calculatePercent (line 181) | func (c *Copilot) calculatePercent(used, limit int) int {
constant copilotAPIURL (line 33) | copilotAPIURL = "https://api.github.com/copilot_internal/user"
type copilotQuotaSnapshot (line 37) | type copilotQuotaSnapshot struct
type copilotQuotaSnapshots (line 44) | type copilotQuotaSnapshots struct
type copilotAPIResponse (line 51) | type copilotAPIResponse struct
type noQuotaDataError (line 196) | type noQuotaDataError struct
method Error (line 198) | func (e *noQuotaDataError) Error() string {
type noAccessTokenError (line 202) | type noAccessTokenError struct
method Error (line 204) | func (e *noAccessTokenError) Error() string {
FILE: src/segments/copilot_test.go
constant copilotTestURL (line 17) | copilotTestURL = "https://api.github.com/copilot_internal/user"
function TestCopilotSegment (line 20) | func TestCopilotSegment(t *testing.T) {
function TestCopilotPercentageCalculation (line 211) | func TestCopilotPercentageCalculation(t *testing.T) {
function TestCopilotRemainingPercentage (line 265) | func TestCopilotRemainingPercentage(t *testing.T) {
function TestCopilotBillingCycleEnd (line 312) | func TestCopilotBillingCycleEnd(t *testing.T) {
FILE: src/segments/crystal.go
type Crystal (line 3) | type Crystal struct
method Template (line 7) | func (c *Crystal) Template() string {
method Enabled (line 11) | func (c *Crystal) Enabled() bool {
FILE: src/segments/crystal_test.go
function TestCrystal (line 10) | func TestCrystal(t *testing.T) {
FILE: src/segments/dart.go
type Dart (line 8) | type Dart struct
method Template (line 12) | func (d *Dart) Template() string {
method Enabled (line 16) | func (d *Dart) Enabled() bool {
FILE: src/segments/dart_test.go
function TestDart (line 10) | func TestDart(t *testing.T) {
FILE: src/segments/deno.go
type Deno (line 3) | type Deno struct
method Template (line 7) | func (d *Deno) Template() string {
method Enabled (line 11) | func (d *Deno) Enabled() bool {
FILE: src/segments/deno_test.go
function TestDeno (line 10) | func TestDeno(t *testing.T) {
FILE: src/segments/docker.go
constant FetchContext (line 14) | FetchContext options.Option = "fetch_context"
type DockerConfig (line 17) | type DockerConfig struct
type Docker (line 21) | type Docker struct
method Template (line 27) | func (d *Docker) Template() string {
method envVars (line 31) | func (d *Docker) envVars() []string {
method configFiles (line 35) | func (d *Docker) configFiles() []string {
method Enabled (line 48) | func (d *Docker) Enabled() bool {
method fetchContext (line 79) | func (d *Docker) fetchContext() bool {
FILE: src/segments/docker_test.go
function TestDockerContext (line 13) | func TestDockerContext(t *testing.T) {
function TestDockerFiles (line 63) | func TestDockerFiles(t *testing.T) {
FILE: src/segments/dotnet.go
type globalJSON (line 10) | type globalJSON struct
constant FetchSDKVersion (line 18) | FetchSDKVersion options.Option = "fetch_sdk_version"
type Dotnet (line 21) | type Dotnet struct
method Template (line 27) | func (d *Dotnet) Template() string {
method Enabled (line 31) | func (d *Dotnet) Enabled() bool {
FILE: src/segments/dotnet_test.go
function TestDotnetSegment (line 14) | func TestDotnetSegment(t *testing.T) {
function TestDotnetSDKVersion (line 48) | func TestDotnetSDKVersion(t *testing.T) {
FILE: src/segments/elixir.go
type Elixir (line 3) | type Elixir struct
method Template (line 7) | func (e *Elixir) Template() string {
method Enabled (line 11) | func (e *Elixir) Enabled() bool {
FILE: src/segments/elixir_test.go
function TestElixir (line 11) | func TestElixir(t *testing.T) {
FILE: src/segments/executiontime.go
type Executiontime (line 12) | type Executiontime struct
method Enabled (line 57) | func (t *Executiontime) Enabled() bool {
method Template (line 70) | func (t *Executiontime) Template() string {
method formatDuration (line 74) | func (t *Executiontime) formatDuration(style DurationStyle) string {
method formatDurationAustin (line 103) | func (t *Executiontime) formatDurationAustin() string {
method formatDurationRoundrock (line 123) | func (t *Executiontime) formatDurationRoundrock() string {
method formatDurationDallas (line 140) | func (t *Executiontime) formatDurationDallas() string {
method formatDurationGalveston (line 156) | func (t *Executiontime) formatDurationGalveston() string {
method formatDurationGalvestonMs (line 161) | func (t *Executiontime) formatDurationGalvestonMs() string {
method formatDurationHouston (line 167) | func (t *Executiontime) formatDurationHouston() string {
method formatDurationAmarillo (line 182) | func (t *Executiontime) formatDurationAmarillo() string {
method formatDurationRound (line 206) | func (t *Executiontime) formatDurationRound() string {
method formatDurationLucky7 (line 231) | func (t *Executiontime) formatDurationLucky7() string {
method formatDurationISO8601 (line 285) | func (t *Executiontime) formatDurationISO8601() string {
method formatDurationISO8601Ms (line 322) | func (t *Executiontime) formatDurationISO8601Ms() string {
type DurationStyle (line 20) | type DurationStyle
constant ThresholdProperty (line 24) | ThresholdProperty options.Option = "threshold"
constant Austin (line 26) | Austin DurationStyle = "austin"
constant Roundrock (line 28) | Roundrock DurationStyle = "roundrock"
constant Dallas (line 30) | Dallas DurationStyle = "dallas"
constant Galveston (line 32) | Galveston DurationStyle = "galveston"
constant GalvestonMs (line 34) | GalvestonMs DurationStyle = "galvestonms"
constant Houston (line 36) | Houston DurationStyle = "houston"
constant Amarillo (line 38) | Amarillo DurationStyle = "amarillo"
constant Round (line 40) | Round DurationStyle = "round"
constant Lucky7 (line 42) | Lucky7 = "lucky7"
constant ISO8601 (line 44) | ISO8601 DurationStyle = "iso8601"
constant ISO8601Ms (line 46) | ISO8601Ms DurationStyle = "iso8601ms"
constant second (line 48) | second = 1000
constant minute (line 49) | minute = 60000
constant hour (line 50) | hour = 3600000
constant day (line 51) | day = 86400000
constant secondsPerMinute (line 52) | secondsPerMinute = 60
constant minutesPerHour (line 53) | minutesPerHour = 60
constant hoursPerDay (line 54) | hoursPerDay = 24
FILE: src/segments/executiontime_test.go
function TestExecutionTimeWriterDefaultThresholdEnabled (line 14) | func TestExecutionTimeWriterDefaultThresholdEnabled(t *testing.T) {
function TestExecutionTimeWriterDefaultThresholdDisabled (line 24) | func TestExecutionTimeWriterDefaultThresholdDisabled(t *testing.T) {
function TestExecutionTimeWriterCustomThresholdEnabled (line 34) | func TestExecutionTimeWriterCustomThresholdEnabled(t *testing.T) {
function TestExecutionTimeWriterCustomThresholdDisabled (line 47) | func TestExecutionTimeWriterCustomThresholdDisabled(t *testing.T) {
function TestExecutionTimeWriterDuration (line 60) | func TestExecutionTimeWriterDuration(t *testing.T) {
function TestExecutionTimeWriterDuration2 (line 73) | func TestExecutionTimeWriterDuration2(t *testing.T) {
function TestExecutionTimeFormatDurationAustin (line 86) | func TestExecutionTimeFormatDurationAustin(t *testing.T) {
function TestExecutionTimeFormatDurationRoundrock (line 112) | func TestExecutionTimeFormatDurationRoundrock(t *testing.T) {
function TestExecutionTimeFormatDallas (line 138) | func TestExecutionTimeFormatDallas(t *testing.T) {
function TestExecutionTimeFormatGalveston (line 164) | func TestExecutionTimeFormatGalveston(t *testing.T) {
function TestExecutionTimeFormatGalvestonMs (line 190) | func TestExecutionTimeFormatGalvestonMs(t *testing.T) {
function TestExecutionTimeFormatHouston (line 216) | func TestExecutionTimeFormatHouston(t *testing.T) {
function TestExecutionTimeFormatAmarillo (line 242) | func TestExecutionTimeFormatAmarillo(t *testing.T) {
function TestExecutionTimeFormatDurationRound (line 268) | func TestExecutionTimeFormatDurationRound(t *testing.T) {
function TestExecutionTimeFormatDurationLucky7 (line 294) | func TestExecutionTimeFormatDurationLucky7(t *testing.T) {
function TestExecutionTimeFormatISO8601 (line 366) | func TestExecutionTimeFormatISO8601(t *testing.T) {
function TestExecutionTimeFormatISO8601Ms (line 395) | func TestExecutionTimeFormatISO8601Ms(t *testing.T) {
FILE: src/segments/firebase.go
constant FIREBASENOACTIVECONFIG (line 13) | FIREBASENOACTIVECONFIG = "NO ACTIVE CONFIG FOUND"
type Firebase (line 16) | type Firebase struct
method Template (line 26) | func (f *Firebase) Template() string {
method Enabled (line 30) | func (f *Firebase) Enabled() bool {
method getActiveConfig (line 59) | func (f *Firebase) getActiveConfig(cfgDir string) (string, error) {
method getFirebaseData (line 68) | func (f *Firebase) getFirebaseData(configFile string) (*FirebaseData, ...
type FirebaseData (line 22) | type FirebaseData struct
FILE: src/segments/firebase_test.go
function TestFirebaseSegment (line 12) | func TestFirebaseSegment(t *testing.T) {
function TestGetFirebaseActiveConfig (line 74) | func TestGetFirebaseActiveConfig(t *testing.T) {
FILE: src/segments/flutter.go
type Flutter (line 3) | type Flutter struct
method Template (line 7) | func (f *Flutter) Template() string {
method Enabled (line 11) | func (f *Flutter) Enabled() bool {
FILE: src/segments/flutter_test.go
function TestFlutter (line 10) | func TestFlutter(t *testing.T) {
FILE: src/segments/fortran.go
type Fortran (line 3) | type Fortran struct
method Template (line 7) | func (f *Fortran) Template() string {
method Enabled (line 11) | func (f *Fortran) Enabled() bool {
FILE: src/segments/fortran_test.go
function TestFortran (line 10) | func TestFortran(t *testing.T) {
FILE: src/segments/fossil.go
type FossilStatus (line 6) | type FossilStatus struct
method add (line 10) | func (s *FossilStatus) add(code string) {
constant FOSSILCOMMAND (line 26) | FOSSILCOMMAND = "fossil"
type Fossil (line 29) | type Fossil struct
method Template (line 35) | func (f *Fossil) Template() string {
method Enabled (line 39) | func (f *Fossil) Enabled() bool {
FILE: src/segments/fossil_test.go
function TestFossilStatus (line 14) | func TestFossilStatus(t *testing.T) {
FILE: src/segments/gcp.go
constant GCPNOACTIVECONFIG (line 14) | GCPNOACTIVECONFIG = "NO ACTIVE CONFIG FOUND"
type Gcp (line 17) | type Gcp struct
method Template (line 26) | func (g *Gcp) Template() string {
method Enabled (line 30) | func (g *Gcp) Enabled() bool {
method getActiveConfig (line 60) | func (g *Gcp) getActiveConfig(cfgDir string) (string, error) {
method getConfigDirectory (line 75) | func (g *Gcp) getConfigDirectory() string {
FILE: src/segments/gcp_test.go
function TestGcpSegment (line 14) | func TestGcpSegment(t *testing.T) {
function TestGetConfigDirectory (line 98) | func TestGetConfigDirectory(t *testing.T) {
function TestGetActiveConfig (line 139) | func TestGetActiveConfig(t *testing.T) {
FILE: src/segments/git.go
type Commit (line 21) | type Commit struct
type Refs (line 30) | type Refs struct
type User (line 36) | type User struct
type GitStatus (line 42) | type GitStatus struct
method add (line 46) | func (s *GitStatus) add(code string) {
constant FetchStatus (line 65) | FetchStatus options.Option = "fetch_status"
constant FetchPushStatus (line 67) | FetchPushStatus options.Option = "fetch_push_status"
constant IgnoreStatus (line 69) | IgnoreStatus options.Option = "ignore_status"
constant FetchUpstreamIcon (line 71) | FetchUpstreamIcon options.Option = "fetch_upstream_icon"
constant FetchBareInfo (line 73) | FetchBareInfo options.Option = "fetch_bare_info"
constant FetchUser (line 75) | FetchUser options.Option = "fetch_user"
constant UntrackedModes (line 77) | UntrackedModes options.Option = "untracked_modes"
constant IgnoreSubmodules (line 79) | IgnoreSubmodules options.Option = "ignore_submodules"
constant MappedBranches (line 81) | MappedBranches options.Option = "mapped_branches"
constant DisableWithJJ (line 83) | DisableWithJJ options.Option = "disable_with_jj"
constant BranchIcon (line 86) | BranchIcon options.Option = "branch_icon"
constant BranchIdenticalIcon (line 88) | BranchIdenticalIcon options.Option = "branch_identical_icon"
constant BranchAheadIcon (line 90) | BranchAheadIcon options.Option = "branch_ahead_icon"
constant BranchBehindIcon (line 92) | BranchBehindIcon options.Option = "branch_behind_icon"
constant BranchGoneIcon (line 94) | BranchGoneIcon options.Option = "branch_gone_icon"
constant RebaseIcon (line 96) | RebaseIcon options.Option = "rebase_icon"
constant CherryPickIcon (line 98) | CherryPickIcon options.Option = "cherry_pick_icon"
constant RevertIcon (line 100) | RevertIcon options.Option = "revert_icon"
constant CommitIcon (line 102) | CommitIcon options.Option = "commit_icon"
constant NoCommitsIcon (line 104) | NoCommitsIcon options.Option = "no_commits_icon"
constant TagIcon (line 106) | TagIcon options.Option = "tag_icon"
constant MergeIcon (line 108) | MergeIcon options.Option = "merge_icon"
constant UpstreamIcons (line 110) | UpstreamIcons options.Option = "upstream_icons"
constant GithubIcon (line 112) | GithubIcon options.Option = "github_icon"
constant BitbucketIcon (line 114) | BitbucketIcon options.Option = "bitbucket_icon"
constant AzureDevOpsIcon (line 116) | AzureDevOpsIcon options.Option = "azure_devops_icon"
constant CodeCommit (line 118) | CodeCommit options.Option = "codecommit_icon"
constant CodebergIcon (line 120) | CodebergIcon options.Option = "codeberg_icon"
constant GitlabIcon (line 122) | GitlabIcon options.Option = "gitlab_icon"
constant GitIcon (line 124) | GitIcon options.Option = "git_icon"
constant DETACHED (line 126) | DETACHED = "(detached)"
constant BRANCHPREFIX (line 127) | BRANCHPREFIX = "ref: refs/heads/"
constant GITCOMMAND (line 128) | GITCOMMAND = "git"
constant trueStr (line 130) | trueStr = "true"
constant origin (line 131) | origin = "origin"
type Rebase (line 134) | type Rebase struct
type Git (line 141) | type Git struct
method Template (line 175) | func (g *Git) Template() string {
method Enabled (line 179) | func (g *Git) Enabled() bool {
method CacheKey (line 226) | func (g *Git) CacheKey() (string, bool) {
method Commit (line 244) | func (g *Git) Commit() *Commit {
method StashCount (line 305) | func (g *Git) StashCount() int {
method Kraken (line 319) | func (g *Git) Kraken() string {
method LatestTag (line 337) | func (g *Git) LatestTag() string {
method shouldDisplay (line 341) | func (g *Git) shouldDisplay() bool {
method isRepo (line 365) | func (g *Git) isRepo(gitdir *runtime.FileInfo) bool {
method setUser (line 384) | func (g *Git) setUser() {
method isBareRepo (line 389) | func (g *Git) isBareRepo(gitDir *runtime.FileInfo) bool {
method getBareRepoInfo (line 417) | func (g *Git) getBareRepoInfo() {
method setDir (line 432) | func (g *Git) setDir(dir string) {
method hasWorktree (line 442) | func (g *Git) hasWorktree(gitdir *runtime.FileInfo) bool {
method shouldIgnoreStatus (line 516) | func (g *Git) shouldIgnoreStatus() bool {
method setBranchStatus (line 521) | func (g *Git) setBranchStatus() {
method setPushStatus (line 543) | func (g *Git) setPushStatus() {
method getPushRemote (line 568) | func (g *Git) getPushRemote() string {
method getGitConfig (line 607) | func (g *Git) getGitConfig() (*ini.File, error) {
method cleanUpstreamURL (line 629) | func (g *Git) cleanUpstreamURL(url string) string {
method getUpstreamIcon (line 678) | func (g *Git) getUpstreamIcon() string {
method setStatus (line 718) | func (g *Git) setStatus() {
method getGitCommandOutput (line 808) | func (g *Git) getGitCommandOutput(args ...string) string {
method setHEADStatus (line 822) | func (g *Git) setHEADStatus() {
method formatSHA (line 963) | func (g *Git) formatSHA(sha string) string {
method hasGitFile (line 970) | func (g *Git) hasGitFile(file string) bool {
method getGitRefFileSymbolicName (line 974) | func (g *Git) getGitRefFileSymbolicName(refFile string) string {
method updateHEADReference (line 979) | func (g *Git) updateHEADReference() {
method resolveDetachedHEAD (line 1017) | func (g *Git) resolveDetachedHEAD() {
method WorktreeCount (line 1043) | func (g *Git) WorktreeCount() int {
method getRemoteURL (line 1065) | func (g *Git) getRemoteURL() string {
method Remotes (line 1085) | func (g *Git) Remotes() map[string]string {
method getUntrackedFilesMode (line 1107) | func (g *Git) getUntrackedFilesMode() string {
method getIgnoreSubmodulesMode (line 1111) | func (g *Git) getIgnoreSubmodulesMode() string {
method getSwitchMode (line 1115) | func (g *Git) getSwitchMode(property options.Option, gitSwitch, mode s...
method repoName (line 1131) | func (g *Git) repoName() string {
FILE: src/segments/git_test.go
constant branchName (line 24) | branchName = "main"
constant dotGit (line 25) | dotGit = "dev/.git"
constant dotGitSubmodule (line 26) | dotGitSubmodule = "dev/.git/modules/submodule"
function TestEnabledGitNotFound (line 29) | func TestEnabledGitNotFound(t *testing.T) {
function TestEnabledInWorkingDirectory (line 42) | func TestEnabledInWorkingDirectory(t *testing.T) {
function TestResolveEmptyGitPath (line 69) | func TestResolveEmptyGitPath(t *testing.T) {
function TestEnabledInWorktree (line 74) | func TestEnabledInWorktree(t *testing.T) {
function TestEnabledInBareRepo (line 162) | func TestEnabledInBareRepo(t *testing.T) {
function TestGetGitOutputForCommand (line 210) | func TestGetGitOutputForCommand(t *testing.T) {
function TestSetGitHEADContextClean (line 230) | func TestSetGitHEADContextClean(t *testing.T) {
function TestSetPrettyHEADName (line 390) | func TestSetPrettyHEADName(t *testing.T) {
function TestSetGitStatus (line 442) | func TestSetGitStatus(t *testing.T) {
function TestGetStashContextZeroEntries (line 650) | func TestGetStashContextZeroEntries(t *testing.T) {
function TestGitCleanSSHURL (line 675) | func TestGitCleanSSHURL(t *testing.T) {
function TestGitUpstream (line 704) | func TestGitUpstream(t *testing.T) {
function TestGetBranchStatus (line 762) | func TestGetBranchStatus(t *testing.T) {
function TestGitTemplateString (line 803) | func TestGitTemplateString(t *testing.T) {
function TestGitUntrackedMode (line 938) | func TestGitUntrackedMode(t *testing.T) {
function TestGitIgnoreSubmodules (line 989) | func TestGitIgnoreSubmodules(t *testing.T) {
function TestGitCommit (line 1034) | func TestGitCommit(t *testing.T) {
function TestGitRemotes (line 1166) | func TestGitRemotes(t *testing.T) {
function TestGitRepoName (line 1261) | func TestGitRepoName(t *testing.T) {
function TestDisableWithJJEnabled (line 1308) | func TestDisableWithJJEnabled(t *testing.T) {
function TestDisableWithJJDisabled (line 1325) | func TestDisableWithJJDisabled(t *testing.T) {
function TestDisableWithJJNoJJDirectory (line 1356) | func TestDisableWithJJNoJJDirectory(t *testing.T) {
function TestPushStatusAheadAndBehind (line 1387) | func TestPushStatusAheadAndBehind(t *testing.T) {
FILE: src/segments/git_unix.go
function resolveGitPath (line 8) | func resolveGitPath(base, path string) string {
FILE: src/segments/git_unix_test.go
constant TestRootPath (line 11) | TestRootPath = "/"
function TestResolveGitPath (line 13) | func TestResolveGitPath(t *testing.T) {
FILE: src/segments/git_windows.go
function resolveGitPath (line 6) | func resolveGitPath(base, path string) string {
FILE: src/segments/git_windows_test.go
constant TestRootPath (line 11) | TestRootPath = "C:/"
function TestResolveGitPath (line 13) | func TestResolveGitPath(t *testing.T) {
FILE: src/segments/gitversion.go
type GitVersionInfo (line 7) | type GitVersionInfo struct
type GitVersion (line 43) | type GitVersion struct
method Template (line 49) | func (n *GitVersion) Template() string {
method Enabled (line 53) | func (n *GitVersion) Enabled() bool {
FILE: src/segments/gitversion_test.go
function TestGitversion (line 13) | func TestGitversion(t *testing.T) {
FILE: src/segments/golang.go
type Golang (line 9) | type Golang struct
method Template (line 18) | func (g *Golang) Template() string {
method Enabled (line 22) | func (g *Golang) Enabled() bool {
method getVersion (line 45) | func (g *Golang) getVersion() (string, error) {
method parseModFile (line 57) | func (g *Golang) parseModFile() (string, error) {
method parseWorkFile (line 77) | func (g *Golang) parseWorkFile() (string, error) {
constant ParseModFile (line 14) | ParseModFile options.Option = "parse_mod_file"
constant ParseWorkFile (line 15) | ParseWorkFile options.Option = "parse_work_file"
FILE: src/segments/golang_test.go
function TestGolang (line 13) | func TestGolang(t *testing.T) {
FILE: src/segments/haskell.go
type Haskell (line 5) | type Haskell struct
method Template (line 15) | func (h *Haskell) Template() string {
method Enabled (line 19) | func (h *Haskell) Enabled() bool {
constant StackGhcMode (line 12) | StackGhcMode options.Option = "stack_ghc_mode"
FILE: src/segments/haskell_test.go
function TestHaskell (line 12) | func TestHaskell(t *testing.T) {
FILE: src/segments/helm.go
type Helm (line 3) | type Helm struct
method Enabled (line 9) | func (h *Helm) Enabled() bool {
method Template (line 27) | func (h *Helm) Template() string {
method getVersion (line 31) | func (h *Helm) getVersion() bool {
FILE: src/segments/helm_test.go
function TestHelmSegment (line 15) | func TestHelmSegment(t *testing.T) {
FILE: src/segments/http.go
type HTTP (line 12) | type HTTP struct
method Template (line 22) | func (h *HTTP) Template() string {
method Enabled (line 26) | func (h *HTTP) Enabled() bool {
method getResult (line 47) | func (h *HTTP) getResult(url, method string) (map[string]any, error) {
constant METHOD (line 19) | METHOD options.Option = "method"
FILE: src/segments/http_test.go
function TestHTTPSegmentEnabled (line 14) | func TestHTTPSegmentEnabled(t *testing.T) {
function TestHTTPSegmentCache (line 81) | func TestHTTPSegmentCache(t *testing.T) {
FILE: src/segments/ipify.go
type ipData (line 11) | type ipData struct
type IPAPI (line 15) | type IPAPI interface
type ipAPI (line 19) | type ipAPI struct
method Get (line 23) | func (i *ipAPI) Get() (*ipData, error) {
type IPify (line 28) | type IPify struct
method Template (line 39) | func (i *IPify) Template() string {
method Enabled (line 43) | func (i *IPify) Enabled() bool {
method getResult (line 66) | func (i *IPify) getResult() (string, error) {
method initAPI (line 79) | func (i *IPify) initAPI() {
constant OFFLINE (line 36) | OFFLINE = "OFFLINE"
FILE: src/segments/ipify_test.go
type mockedipAPI (line 16) | type mockedipAPI struct
method Get (line 20) | func (s *mockedipAPI) Get() (*ipData, error) {
function TestIpifySegment (line 25) | func TestIpifySegment(t *testing.T) {
FILE: src/segments/java.go
type Java (line 7) | type Java struct
method Template (line 11) | func (j *Java) Template() string {
method Enabled (line 15) | func (j *Java) Enabled() bool {
method init (line 21) | func (j *Java) init() {
FILE: src/segments/java_test.go
function TestJava (line 10) | func TestJava(t *testing.T) {
FILE: src/segments/jujutsu.go
constant JUJUTSUCOMMAND (line 15) | JUJUTSUCOMMAND = "jj"
constant IgnoreWorkingCopy (line 17) | IgnoreWorkingCopy options.Option = "ignore_working_copy"
constant ChangeIDMinLen (line 18) | ChangeIDMinLen options.Option = "change_id_min_len"
constant FetchAhead (line 19) | FetchAhead options.Option = "fetch_ahead_counter"
constant AheadIcon (line 20) | AheadIcon options.Option = "ahead_icon"
type JujutsuStatus (line 23) | type JujutsuStatus struct
method add (line 27) | func (s *JujutsuStatus) add(code byte) {
type Jujutsu (line 40) | type Jujutsu struct
method Template (line 46) | func (jj *Jujutsu) Template() string {
method Enabled (line 50) | func (jj *Jujutsu) Enabled() bool {
method CacheKey (line 67) | func (jj *Jujutsu) CacheKey() (string, bool) {
method ClosestBookmarks (line 76) | func (jj *Jujutsu) ClosestBookmarks() string {
method shouldDisplay (line 124) | func (jj *Jujutsu) shouldDisplay(displayStatus bool) bool {
method setDir (line 146) | func (jj *Jujutsu) setDir(dir string) {
method setJujutsuStatus (line 156) | func (jj *Jujutsu) setJujutsuStatus() {
method logTemplate (line 172) | func (jj *Jujutsu) logTemplate() string {
method getJujutsuCommandOutput (line 177) | func (jj *Jujutsu) getJujutsuCommandOutput(command string, args ...str...
FILE: src/segments/jujutsu_test.go
function TestJujutsuEnabledToolNotFound (line 13) | func TestJujutsuEnabledToolNotFound(t *testing.T) {
function TestJujutsuEnabledInWorkingDirectory (line 26) | func TestJujutsuEnabledInWorkingDirectory(t *testing.T) {
function TestJujutsuGetIdInfo (line 46) | func TestJujutsuGetIdInfo(t *testing.T) {
FILE: src/segments/julia.go
type Julia (line 3) | type Julia struct
method Template (line 7) | func (j *Julia) Template() string {
method Enabled (line 11) | func (j *Julia) Enabled() bool {
FILE: src/segments/julia_test.go
function TestJulia (line 10) | func TestJulia(t *testing.T) {
FILE: src/segments/kotlin.go
type Kotlin (line 3) | type Kotlin struct
method Template (line 7) | func (k *Kotlin) Template() string {
method Enabled (line 11) | func (k *Kotlin) Enabled() bool {
FILE: src/segments/kotlin_test.go
function TestKotlin (line 10) | func TestKotlin(t *testing.T) {
FILE: src/segments/kubectl.go
constant ParseKubeConfig (line 13) | ParseKubeConfig options.Option = "parse_kubeconfig"
constant ContextAliases (line 14) | ContextAliases options.Option = "context_aliases"
constant ClusterAliases (line 15) | ClusterAliases options.Option = "cluster_aliases"
type Kubectl (line 18) | type Kubectl struct
method Template (line 40) | func (k *Kubectl) Template() string {
method Enabled (line 44) | func (k *Kubectl) Enabled() bool {
method doParseKubeConfig (line 54) | func (k *Kubectl) doParseKubeConfig() bool {
method doCallKubectl (line 112) | func (k *Kubectl) doCallKubectl() bool {
method setError (line 147) | func (k *Kubectl) setError(message string) {
method SetContextAlias (line 157) | func (k *Kubectl) SetContextAlias() {
method SetClusterAlias (line 164) | func (k *Kubectl) SetClusterAlias() {
type KubeConfig (line 26) | type KubeConfig struct
type KubeContext (line 34) | type KubeContext struct
FILE: src/segments/kubectl_test.go
constant testKubectlAllInfoTemplate (line 17) | testKubectlAllInfoTemplate = "{{.Context}} :: {{.Namespace}} :: {{.User}...
constant contextMarker (line 18) | contextMarker = "currentcontextmarker"
function TestKubectlSegment (line 21) | func TestKubectlSegment(t *testing.T) {
FILE: src/segments/language.go
constant languageTemplate (line 21) | languageTemplate = " {{ if .Error }}{{ .Error }}{{ else }}{{ .Full }}{{ ...
constant noVersion (line 22) | noVersion = "NO VERSION"
type loadContext (line 25) | type loadContext
type inContext (line 27) | type inContext
type getVersion (line 29) | type getVersion
type matchesVersionFile (line 30) | type matchesVersionFile
type Version (line 32) | type Version struct
type cmd (line 44) | type cmd struct
method parse (line 52) | func (c *cmd) parse(versionInfo string) (*Version, error) {
type Language (line 69) | type Language struct
method getName (line 115) | func (l *Language) getName() string {
method Enabled (line 121) | func (l *Language) Enabled() bool {
method loadTooling (line 189) | func (l *Language) loadTooling() {
method hasLanguageFiles (line 205) | func (l *Language) hasLanguageFiles() bool {
method hasProjectFiles (line 209) | func (l *Language) hasProjectFiles() bool {
method hasLanguageFolders (line 220) | func (l *Language) hasLanguageFolders() bool {
method setVersion (line 225) | func (l *Language) setVersion() error {
method runCommand (line 271) | func (l *Language) runCommand(command *cmd) (string, error) {
method loadLanguageContext (line 298) | func (l *Language) loadLanguageContext() {
method inLanguageContext (line 305) | func (l *Language) inLanguageContext() bool {
method buildVersionURL (line 312) | func (l *Language) buildVersionURL() {
method hasNodePackage (line 326) | func (l *Language) hasNodePackage(name string) bool {
method nodePackageVersion (line 346) | func (l *Language) nodePackageVersion(name string) (string, error) {
constant DisplayMode (line 94) | DisplayMode options.Option = "display_mode"
constant DisplayModeAlways (line 96) | DisplayModeAlways string = "always"
constant DisplayModeFiles (line 98) | DisplayModeFiles string = "files"
constant DisplayModeEnvironment (line 100) | DisplayModeEnvironment string = "environment"
constant DisplayModeContext (line 102) | DisplayModeContext string = "context"
constant MissingCommandText (line 104) | MissingCommandText options.Option = "missing_command_text"
constant HomeEnabled (line 106) | HomeEnabled options.Option = "home_enabled"
constant LanguageExtensions (line 108) | LanguageExtensions options.Option = "extensions"
constant LanguageFolders (line 110) | LanguageFolders options.Option = "folders"
constant Tooling (line 112) | Tooling options.Option = "tooling"
FILE: src/segments/language_test.go
constant universion (line 16) | universion = "1.3.307"
constant uni (line 17) | uni = "*.uni"
constant corn (line 18) | corn = "*.corn"
type languageArgs (line 21) | type languageArgs struct
method hasvalue (line 34) | func (l *languageArgs) hasvalue(value string, list []string) bool {
function bootStrapLanguageTest (line 38) | func bootStrapLanguageTest(args *languageArgs) *Language {
function TestLanguageFilesFoundButNoCommandAndVersionAndDisplayVersion (line 74) | func TestLanguageFilesFoundButNoCommandAndVersionAndDisplayVersion(t *te...
function TestLanguageFilesFoundButNoCommandAndVersionAndDontDisplayVersion (line 90) | func TestLanguageFilesFoundButNoCommandAndVersionAndDontDisplayVersion(t...
function TestLanguageFilesFoundButNoCommandAndNoVersion (line 109) | func TestLanguageFilesFoundButNoCommandAndNoVersion(t *testing.T) {
function TestLanguageDisabledNoFiles (line 124) | func TestLanguageDisabledNoFiles(t *testing.T) {
function TestLanguageEnabledOneExtensionFound (line 140) | func TestLanguageEnabledOneExtensionFound(t *testing.T) {
function TestLanguageEnabledMismatch (line 160) | func TestLanguageEnabledMismatch(t *testing.T) {
function TestLanguageDisabledInHome (line 185) | func TestLanguageDisabledInHome(t *testing.T) {
function TestLanguageEnabledSecondExtensionFound (line 204) | func TestLanguageEnabledSecondExtensionFound(t *testing.T) {
function TestLanguageEnabledSecondCommand (line 224) | func TestLanguageEnabledSecondCommand(t *testing.T) {
function TestLanguageEnabledAllExtensionsFound (line 249) | func TestLanguageEnabledAllExtensionsFound(t *testing.T) {
function TestLanguageEnabledNoVersion (line 269) | func TestLanguageEnabledNoVersion(t *testing.T) {
function TestLanguageEnabledMissingCommand (line 293) | func TestLanguageEnabledMissingCommand(t *testing.T) {
function TestLanguageEnabledNoVersionData (line 311) | func TestLanguageEnabledNoVersionData(t *testing.T) {
function TestLanguageEnabledMissingCommandCustomText (line 335) | func TestLanguageEnabledMissingCommandCustomText(t *testing.T) {
function TestLanguageEnabledMissingCommandCustomTextHideError (line 353) | func TestLanguageEnabledMissingCommandCustomTextHideError(t *testing.T) {
function TestLanguageEnabledCommandExitCode (line 368) | func TestLanguageEnabledCommandExitCode(t *testing.T) {
function TestLanguageHyperlinkEnabled (line 390) | func TestLanguageHyperlinkEnabled(t *testing.T) {
function TestLanguageHyperlinkEnabledWrongRegex (line 416) | func TestLanguageHyperlinkEnabledWrongRegex(t *testing.T) {
function TestLanguageEnabledInHome (line 442) | func TestLanguageEnabledInHome(t *testing.T) {
function TestLanguageInnerHyperlink (line 475) | func TestLanguageInnerHyperlink(t *testing.T) {
function TestLanguageHyperlinkTemplatePropertyTakesPriority (line 503) | func TestLanguageHyperlinkTemplatePropertyTakesPriority(t *testing.T) {
function TestLanguageTooling (line 526) | func TestLanguageTooling(t *testing.T) {
type mockedLanguageParams (line 618) | type mockedLanguageParams struct
function getMockedLanguageEnv (line 625) | func getMockedLanguageEnv(params *mockedLanguageParams) (*mock.Environme...
function TestNodePackageVersion (line 640) | func TestNodePackageVersion(t *testing.T) {
FILE: src/segments/lastfm.go
type LastFM (line 12) | type LastFM struct
method Enabled (line 54) | func (d *LastFM) Enabled() bool {
method Template (line 65) | func (d *LastFM) Template() string {
method getResult (line 69) | func (d *LastFM) getResult() (*lfmDataResponse, error) {
method setStatus (line 91) | func (d *LastFM) setStatus() error {
constant Username (line 24) | Username options.Option = "username"
type lmfDate (line 27) | type lmfDate struct
type lfmTrackInfo (line 31) | type lfmTrackInfo struct
type Artist (line 35) | type Artist struct
type lfmTrack (line 39) | type lfmTrack struct
type tracks (line 46) | type tracks struct
type lfmDataResponse (line 50) | type lfmDataResponse struct
FILE: src/segments/lastfm_test.go
constant LFMAPIURL (line 14) | LFMAPIURL = "https://ws.audioscrobbler.com/2.0/?method=user.getrecenttra...
function TestLFMSegmentSingle (line 17) | func TestLFMSegmentSingle(t *testing.T) {
FILE: src/segments/lua.go
type Lua (line 3) | type Lua struct
method Template (line 7) | func (l *Lua) Template() string {
method Enabled (line 11) | func (l *Lua) Enabled() bool {
FILE: src/segments/lua_test.go
function TestLua (line 12) | func TestLua(t *testing.T) {
FILE: src/segments/mercurial.go
constant MERCURIALCOMMAND (line 11) | MERCURIALCOMMAND = "hg"
constant hgLogTemplate (line 13) | hgLogTemplate = "{rev}|{node}|{branch}|{tags}|{bookmarks}"
type MercurialStatus (line 16) | type MercurialStatus struct
method add (line 20) | func (s *MercurialStatus) add(code string) {
type Mercurial (line 33) | type Mercurial struct
method Template (line 45) | func (hg *Mercurial) Template() string {
method Enabled (line 49) | func (hg *Mercurial) Enabled() bool {
method CacheKey (line 65) | func (hg *Mercurial) CacheKey() (string, bool) {
method shouldDisplay (line 74) | func (hg *Mercurial) shouldDisplay() bool {
method setDir (line 93) | func (hg *Mercurial) setDir(dir string) {
method setMercurialStatus (line 102) | func (hg *Mercurial) setMercurialStatus() {
method getHgCommandOutput (line 167) | func (hg *Mercurial) getHgCommandOutput(command string, args ...string...
function doSplit (line 153) | func doSplit(s string) []string {
function RemoveAtIndex (line 161) | func RemoveAtIndex(s []string, index int) []string {
FILE: src/segments/mercurial_test.go
function TestMercurialEnabledToolNotFound (line 12) | func TestMercurialEnabledToolNotFound(t *testing.T) {
function TestMercurialEnabledInWorkingDirectory (line 25) | func TestMercurialEnabledInWorkingDirectory(t *testing.T) {
function TestMercurialGetIdInfo (line 49) | func TestMercurialGetIdInfo(t *testing.T) {
FILE: src/segments/mojo.go
type Mojo (line 9) | type Mojo struct
method Template (line 14) | func (m *Mojo) Template() string {
method Enabled (line 18) | func (m *Mojo) Enabled() bool {
method loadContext (line 35) | func (m *Mojo) loadContext() {
method inContext (line 48) | func (m *Mojo) inContext() bool {
method canUseVenvName (line 52) | func (m *Mojo) canUseVenvName(name string) bool {
FILE: src/segments/mojo_test.go
function TestMojoTemplate (line 10) | func TestMojoTemplate(t *testing.T) {
FILE: src/segments/mvn.go
type Mvn (line 3) | type Mvn struct
method Enabled (line 7) | func (m *Mvn) Enabled() bool {
method Template (line 27) | func (m *Mvn) Template() string {
FILE: src/segments/mvn_test.go
function TestMvn (line 13) | func TestMvn(t *testing.T) {
FILE: src/segments/nba.go
type Nba (line 14) | type Nba struct
method Template (line 139) | func (nba *Nba) Template() string {
method Enabled (line 143) | func (nba *Nba) Enabled() bool {
method findGameScoreByTeamTricode (line 155) | func (nba *Nba) findGameScoreByTeamTricode(games []Game, teamTricode s...
method findGameSchedulebyTeamTricode (line 166) | func (nba *Nba) findGameSchedulebyTeamTricode(games []ScheduledGame, t...
method parseTimetoUTC (line 177) | func (nba *Nba) parseTimetoUTC(timeEST, date string) string {
method retrieveScoreData (line 188) | func (nba *Nba) retrieveScoreData(teamName string, httpTimeout int) (*...
method retrieveScheduleData (line 222) | func (nba *Nba) retrieveScheduleData(teamName string, httpTimeout int)...
method getAvailableGameData (line 275) | func (nba *Nba) getAvailableGameData(teamName string, httpTimeout int)...
method getResult (line 291) | func (nba *Nba) getResult() (*NBAData, error) {
type NBAData (line 21) | type NBAData struct
method HasStats (line 36) | func (nba *NBAData) HasStats() bool {
method Started (line 40) | func (nba *NBAData) Started() bool {
constant NBASeason (line 45) | NBASeason options.Option = "season"
constant TeamName (line 46) | TeamName options.Option = "team"
constant DaysOffset (line 47) | DaysOffset options.Option = "days_offset"
constant ScheduledTemplate (line 49) | ScheduledTemplate options.Option = "scheduled_template"
constant InProgressTemplate (line 50) | InProgressTemplate options.Option = "in_progress_template"
constant FinishedTemplate (line 51) | FinishedTemplate options.Option = "finished_template"
constant NBAScoreURL (line 53) | NBAScoreURL string = "https://cdn.nba.com/static/json/liveData/scoreb...
constant NBAScheduleURL (line 54) | NBAScheduleURL string = "https://stats.nba.com/stats/internationalbroadc...
constant UNKNOWN (line 56) | UNKNOWN = "unknown"
constant currentNBASeason (line 58) | currentNBASeason = "2023"
constant NBADateFormat (line 59) | NBADateFormat = "02/01/2006"
type GameStatus (line 63) | type GameStatus
method Int (line 75) | func (gs GameStatus) Int() int {
method Valid (line 79) | func (gs GameStatus) Valid() bool {
method String (line 83) | func (gs GameStatus) String() string {
constant Scheduled (line 67) | Scheduled GameStatus = 1
constant InProgress (line 68) | InProgress GameStatus = 2
constant Finished (line 69) | Finished GameStatus = 3
constant NotFound (line 70) | NotFound GameStatus = 4
type ScoreboardResponse (line 99) | type ScoreboardResponse struct
type Scoreboard (line 103) | type Scoreboard struct
type Game (line 108) | type Game struct
type Team (line 116) | type Team struct
type ScheduleResponse (line 124) | type ScheduleResponse struct
type ResultSet (line 128) | type ResultSet struct
type ScheduledGame (line 132) | type ScheduledGame struct
FILE: src/segments/nba_test.go
function getTestData (line 15) | func getTestData(file string) string {
function TestNBASegment (line 21) | func TestNBASegment(t *testing.T) {
FILE: src/segments/nbgv.go
type Nbgv (line 7) | type Nbgv struct
method Template (line 24) | func (n *Nbgv) Template() string {
method Enabled (line 28) | func (n *Nbgv) Enabled() bool {
type VersionInfo (line 13) | type VersionInfo struct
FILE: src/segments/nbgv_test.go
function TestNbgv (line 13) | func TestNbgv(t *testing.T) {
FILE: src/segments/nightscout.go
type Nightscout (line 14) | type Nightscout struct
method Template (line 82) | func (ns *Nightscout) Template() string {
method Enabled (line 86) | func (ns *Nightscout) Enabled() bool {
method getTrendIcon (line 97) | func (ns *Nightscout) getTrendIcon() string {
method getResult (line 118) | func (ns *Nightscout) getResult() (*NightscoutData, error) {
constant URL (line 23) | URL options.Option = "url"
constant Headers (line 24) | Headers options.Option = "headers"
constant DoubleUpIcon (line 26) | DoubleUpIcon options.Option = "doubleup_icon"
constant SingleUpIcon (line 27) | SingleUpIcon options.Option = "singleup_icon"
constant FortyFiveUpIcon (line 28) | FortyFiveUpIcon options.Option = "fortyfiveup_icon"
constant FlatIcon (line 29) | FlatIcon options.Option = "flat_icon"
constant FortyFiveDownIcon (line 30) | FortyFiveDownIcon options.Option = "fortyfivedown_icon"
constant SingleDownIcon (line 31) | SingleDownIcon options.Option = "singledown_icon"
constant DoubleDownIcon (line 32) | DoubleDownIcon options.Option = "doubledown_icon"
type NightscoutData (line 36) | type NightscoutData struct
method UnmarshalJSON (line 52) | func (n *NightscoutData) UnmarshalJSON(data []byte) error {
FILE: src/segments/nightscout_test.go
constant FAKEAPIURL (line 16) | FAKEAPIURL = "FAKE"
function TestNSSegment (line 19) | func TestNSSegment(t *testing.T) {
function TestNightscoutDataUnmarshalJSON (line 148) | func TestNightscoutDataUnmarshalJSON(t *testing.T) {
FILE: src/segments/nim.go
type Nim (line 3) | type Nim struct
method Template (line 7) | func (n *Nim) Template() string {
method Enabled (line 11) | func (n *Nim) Enabled() bool {
FILE: src/segments/nim_test.go
function TestNim (line 10) | func TestNim(t *testing.T) {
FILE: src/segments/nixshell.go
constant NONE (line 9) | NONE = "none"
type NixShell (line 12) | type NixShell struct
method Template (line 18) | func (n *NixShell) Template() string {
method DetectType (line 22) | func (n *NixShell) DetectType() string {
method InNewNixShell (line 40) | func (n *NixShell) InNewNixShell() bool {
method Enabled (line 52) | func (n *NixShell) Enabled() bool {
FILE: src/segments/nixshell_test.go
constant nixPath (line 13) | nixPath = "/nix/store/zznw8fnzss1vaqfg5hmv3y79s3hkqczi-devshell-dir/...
constant defaultPath (line 14) | defaultPath = "/users/xyz/testing"
constant fullNixPath (line 15) | fullNixPath = defaultPath + ":" + nixPath
function TestNixShellSegment (line 18) | func TestNixShellSegment(t *testing.T) {
FILE: src/segments/node.go
type Node (line 11) | type Node struct
method Template (line 31) | func (n *Node) Template() string {
method Enabled (line 35) | func (n *Node) Enabled() bool {
method loadContext (line 52) | func (n *Node) loadContext() {
method matchesVersionFile (line 110) | func (n *Node) matchesVersionFile() (string, bool) {
constant PnpmIcon (line 20) | PnpmIcon options.Option = "pnpm_icon"
constant YarnIcon (line 22) | YarnIcon options.Option = "yarn_icon"
constant NPMIcon (line 24) | NPMIcon options.Option = "npm_icon"
constant BunIcon (line 26) | BunIcon options.Option = "bun_icon"
constant FetchPackageManager (line 28) | FetchPackageManager options.Option = "fetch_package_manager"
FILE: src/segments/node_test.go
function TestNodeMatchesVersionFile (line 12) | func TestNodeMatchesVersionFile(t *testing.T) {
function TestNodeInContext (line 56) | func TestNodeInContext(t *testing.T) {
FILE: src/segments/npm.go
type Npm (line 3) | type Npm struct
method Enabled (line 7) | func (n *Npm) Enabled() bool {
method Template (line 22) | func (n *Npm) Template() string {
FILE: src/segments/npm_test.go
function TestNpm (line 10) | func TestNpm(t *testing.T) {
FILE: src/segments/nx.go
type Nx (line 3) | type Nx struct
method Template (line 7) | func (a *Nx) Template() string {
method Enabled (line 11) | func (a *Nx) Enabled() bool {
method getVersion (line 25) | func (a *Nx) getVersion() (string, error) {
FILE: src/segments/ocaml.go
type OCaml (line 3) | type OCaml struct
method Template (line 7) | func (o *OCaml) Template() string {
method Enabled (line 11) | func (o *OCaml) Enabled() bool {
FILE: src/segments/ocaml_test.go
function TestOCaml (line 10) | func TestOCaml(t *testing.T) {
FILE: src/segments/options/map.go
function init (line 14) | func init() {
type Provider (line 31) | type Provider interface
type Option (line 44) | type Option
constant Style (line 49) | Style Option = "style"
constant FetchVersion (line 51) | FetchVersion Option = "fetch_version"
constant AlwaysEnabled (line 53) | AlwaysEnabled Option = "always_enabled"
constant VersionURLTemplate (line 55) | VersionURLTemplate Option = "version_url_template"
constant DisplayError (line 57) | DisplayError Option = "display_error"
constant DisplayDefault (line 59) | DisplayDefault Option = "display_default"
constant AccessToken (line 61) | AccessToken Option = "access_token"
constant RefreshToken (line 63) | RefreshToken Option = "refresh_token"
constant HTTPTimeout (line 65) | HTTPTimeout Option = "http_timeout"
constant DefaultHTTPTimeout (line 67) | DefaultHTTPTimeout = 20
constant Files (line 69) | Files Option = "files"
constant CacheDuration (line 71) | CacheDuration Option = "cache_duration"
type Map (line 74) | type Map
method String (line 76) | func (m Map) String(option Option, defaultValue string) string {
method Template (line 90) | func (m Map) Template(option Option, defaultValue string, context any)...
method Color (line 106) | func (m Map) Color(option Option, defaultValue color.Ansi) color.Ansi {
method Bool (line 130) | func (m Map) Bool(option Option, defaultValue bool) bool {
method Float64 (line 145) | func (m Map) Float64(option Option, defaultValue float64) float64 {
method Int (line 175) | func (m Map) Int(option Option, defaultValue int) int {
method KeyValueMap (line 205) | func (m Map) KeyValueMap(option Option, defaultValue map[string]string...
method StringArray (line 217) | func (m Map) StringArray(option Option, defaultValue []string) []string {
method Any (line 229) | func (m Map) Any(option Option, defaultValue any) any {
function ParseStringArray (line 240) | func ParseStringArray(param any) []string {
function parseKeyValueArray (line 244) | func parseKeyValueArray(param any) map[string]string {
type Value (line 289) | type Value interface
function OneOf (line 293) | func OneOf[T Value](options Provider, defaultValue T, props ...Option) T {
FILE: src/segments/options/map_test.go
constant expected (line 14) | expected = "expected"
constant expectedColor (line 15) | expectedColor = color.Ansi("#768954")
constant Foo (line 17) | Foo Option = "color"
function TestGetString (line 20) | func TestGetString(t *testing.T) {
function TestGetStringNoEntry (line 26) | func TestGetStringNoEntry(t *testing.T) {
function TestGetStringNoTextEntry (line 32) | func TestGetStringNoTextEntry(t *testing.T) {
function TestGetHexColor (line 38) | func TestGetHexColor(t *testing.T) {
function TestGetColor (line 45) | func TestGetColor(t *testing.T) {
function TestDefaultColorWithInvalidColorCode (line 52) | func TestDefaultColorWithInvalidColorCode(t *testing.T) {
function TestDefaultColorWithUnavailableProperty (line 59) | func TestDefaultColorWithUnavailableProperty(t *testing.T) {
function TestGetPaletteColor (line 66) | func TestGetPaletteColor(t *testing.T) {
function TestGetBool (line 73) | func TestGetBool(t *testing.T) {
function TestGetBoolPropertyNotInMap (line 80) | func TestGetBoolPropertyNotInMap(t *testing.T) {
function TestGetBoolInvalidProperty (line 86) | func TestGetBoolInvalidProperty(t *testing.T) {
function TestGetFloat64 (line 92) | func TestGetFloat64(t *testing.T) {
function TestGetFloat64PropertyNotInMap (line 112) | func TestGetFloat64PropertyNotInMap(t *testing.T) {
function TestOneOf (line 119) | func TestOneOf(t *testing.T) {
function TestTemplate (line 173) | func TestTemplate(t *testing.T) {
FILE: src/segments/os.go
type Os (line 8) | type Os struct
method Template (line 27) | func (oi *Os) Template() string {
method Enabled (line 31) | func (oi *Os) Enabled() bool {
method getDistroIcon (line 54) | func (oi *Os) getDistroIcon(distro string) string {
constant MacOS (line 16) | MacOS options.Option = "macos"
constant Linux (line 18) | Linux options.Option = "linux"
constant Windows (line 20) | Windows options.Option = "windows"
constant Android (line 22) | Android options.Option = "android"
constant DisplayDistroName (line 24) | DisplayDistroName options.Option = "display_distro_name"
FILE: src/segments/os_test.go
function TestOSInfo (line 14) | func TestOSInfo(t *testing.T) {
FILE: src/segments/owm.go
type Owm (line 14) | type Owm struct
method Enabled (line 51) | func (d *Owm) Enabled() bool {
method Template (line 62) | func (d *Owm) Template() string {
method getResult (line 66) | func (d *Owm) getResult() (*owmDataResponse, error) {
method setStatus (line 99) | func (d *Owm) setStatus() error {
constant APIKey (line 26) | APIKey options.Option = "api_key"
constant Location (line 28) | Location options.Option = "location"
constant Units (line 30) | Units options.Option = "units"
constant CacheKeyResponse (line 32) | CacheKeyResponse string = "owm_response"
constant CacheKeyURL (line 34) | CacheKeyURL string = "owm_url"
type weather (line 37) | type weather struct
type temperature (line 42) | type temperature struct
type owmDataResponse (line 46) | type owmDataResponse struct
FILE: src/segments/owm_test.go
constant OWMWEATHERAPIURL (line 16) | OWMWEATHERAPIURL = "https://api.openweathermap.org/data/2.5/weather?q=%s...
function TestOWMSegmentSingle (line 19) | func TestOWMSegmentSingle(t *testing.T) {
function TestOWMSegmentIcons (line 101) | func TestOWMSegmentIcons(t *testing.T) {
FILE: src/segments/path.go
constant regexPrefix (line 22) | regexPrefix = "re:"
type Folder (line 25) | type Folder struct
type Folders (line 31) | type Folders
method List (line 33) | func (f Folders) List() []string {
method Last (line 43) | func (f Folders) Last() *Folder {
type Path (line 47) | type Path struct
method Template (line 137) | func (pt *Path) Template() string {
method Enabled (line 141) | func (pt *Path) Enabled() bool {
method setPaths (line 160) | func (pt *Path) setPaths() {
method Parent (line 195) | func (pt *Path) Parent() string {
method Format (line 223) | func (pt *Path) Format(inputPath string) string {
method setStyle (line 238) | func (pt *Path) setStyle() {
method getMaxWidth (line 286) | func (pt *Path) getMaxWidth() int {
method getFolderSeparator (line 307) | func (pt *Path) getFolderSeparator() string {
method getMixedPath (line 331) | func (pt *Path) getMixedPath() string {
method getAgnosterPath (line 352) | func (pt *Path) getAgnosterPath(maxWidth int) string {
method getAgnosterLeftPath (line 375) | func (pt *Path) getAgnosterLeftPath() string {
method findFirstLetterOrNumber (line 398) | func (pt *Path) findFirstLetterOrNumber(txt string) (letter string, in...
method getRelevantLetter (line 408) | func (pt *Path) getRelevantLetter(folder *Folder) string {
method getLetterPath (line 422) | func (pt *Path) getLetterPath() string {
method getFishPath (line 441) | func (pt *Path) getFishPath() string {
method getUniqueLettersPath (line 472) | func (pt *Path) getUniqueLettersPath(maxWidth int) string {
method getAgnosterMaxWidth (line 537) | func (pt *Path) getAgnosterMaxWidth(maxWidth int) string {
method getAgnosterFullPath (line 574) | func (pt *Path) getAgnosterFullPath() string {
method getAgnosterShortPath (line 580) | func (pt *Path) getAgnosterShortPath() string {
method getFullPath (line 607) | func (pt *Path) getFullPath() string {
method getFolderPath (line 611) | func (pt *Path) getFolderPath() string {
method join (line 616) | func (pt *Path) join(root, relative string) string {
method setMappedLocations (line 629) | func (pt *Path) setMappedLocations() {
method replaceMappedLocations (line 675) | func (pt *Path) replaceMappedLocations(inputPath string) (string, stri...
method parsePath (line 769) | func (pt *Path) parsePath(inputPath string) (string, string) {
method getPaths (line 814) | func (pt *Path) getPaths() (string, Folders) {
method endWithSeparator (line 835) | func (pt *Path) endWithSeparator(inputPath string) bool {
method normalize (line 843) | func (pt *Path) normalize(inputPath string) string {
method colorizePath (line 863) | func (pt *Path) colorizePath(root string, elements []string) string {
method splitPath (line 935) | func (pt *Path) splitPath() Folders {
method makeFolderFormatMap (line 970) | func (pt *Path) makeFolderFormatMap() map[string]string {
constant FolderSeparatorIcon (line 67) | FolderSeparatorIcon options.Option = "folder_separator_icon"
constant FolderSeparatorTemplate (line 69) | FolderSeparatorTemplate options.Option = "folder_separator_template"
constant HomeIcon (line 71) | HomeIcon options.Option = "home_icon"
constant FolderIcon (line 73) | FolderIcon options.Option = "folder_icon"
constant WindowsRegistryIcon (line 75) | WindowsRegistryIcon options.Option = "windows_registry_icon"
constant Agnoster (line 77) | Agnoster string = "agnoster"
constant AgnosterFull (line 79) | AgnosterFull string = "agnoster_full"
constant AgnosterShort (line 81) | AgnosterShort string = "agnoster_short"
constant Short (line 83) | Short string = "short"
constant Full (line 85) | Full string = "full"
constant FolderType (line 87) | FolderType string = "folder"
constant Mixed (line 89) | Mixed string = "mixed"
constant Letter (line 91) | Letter string = "letter"
constant Unique (line 93) | Unique string = "unique"
constant AgnosterLeft (line 95) | AgnosterLeft string = "agnoster_left"
constant Powerlevel (line 98) | Powerlevel string = "powerlevel"
constant MixedThreshold (line 100) | MixedThreshold options.Option = "mixed_threshold"
constant MappedLocations (line 102) | MappedLocations options.Option = "mapped_locations"
constant MappedLocationsEnabled (line 104) | MappedLocationsEnabled options.Option = "mapped_locations_enabled"
constant MaxDepth (line 106) | MaxDepth options.Option = "max_depth"
constant MaxWidth (line 108) | MaxWidth options.Option = "max_width"
constant HideRootLocation (line 110) | HideRootLocation options.Option = "hide_root_location"
constant Cycle (line 112) | Cycle options.Option = "cycle"
constant CycleFolderSeparator (line 114) | CycleFolderSeparator options.Option = "cycle_folder_separator"
constant FolderFormat (line 116) | FolderFormat options.Option = "folder_format"
constant EdgeFormat (line 118) | EdgeFormat options.Option = "edge_format"
constant LeftFormat (line 120) | LeftFormat options.Option = "left_format"
constant RightFormat (line 122) | RightFormat options.Option = "right_format"
constant GitDirFormat (line 124) | GitDirFormat options.Option = "gitdir_format"
constant DisplayCygpath (line 126) | DisplayCygpath options.Option = "display_cygpath"
constant DisplayRoot (line 128) | DisplayRoot options.Option = "display_root"
constant Fish (line 130) | Fish string = "fish"
constant DirLength (line 132) | DirLength options.Option = "dir_length"
constant FullLengthDirs (line 134) | FullLengthDirs options.Option = "full_length_dirs"
FILE: src/segments/path_test.go
constant homeDir (line 19) | homeDir = "/home/someone"
constant homeDirWindows (line 20) | homeDirWindows = "C:\\Users\\someone"
function renderTemplateNoTrimSpace (line 23) | func renderTemplateNoTrimSpace(env *mock.Environment, segmentTemplate st...
function renderTemplate (line 39) | func renderTemplate(env *mock.Environment, segmentTemplate string, conte...
type testParentCase (line 43) | type testParentCase struct
function TestParent (line 53) | func TestParent(t *testing.T) {
type testAgnosterPathStyleCase (line 77) | type testAgnosterPathStyleCase struct
function TestAgnosterPathStyles (line 97) | func TestAgnosterPathStyles(t *testing.T) {
type testFullAndFolderPathCase (line 143) | type testFullAndFolderPathCase struct
function TestFullAndFolderPath (line 157) | func TestFullAndFolderPath(t *testing.T) {
type testFullPathCustomMappedLocationsCase (line 203) | type testFullPathCustomMappedLocationsCase struct
function TestFullPathCustomMappedLocations (line 211) | func TestFullPathCustomMappedLocations(t *testing.T) {
type testAgnosterPathCase (line 256) | type testAgnosterPathCase struct
function TestAgnosterPath (line 267) | func TestAgnosterPath(t *testing.T) {
type testAgnosterLeftPathCase (line 299) | type testAgnosterLeftPathCase struct
function TestAgnosterLeftPath (line 308) | func TestAgnosterLeftPath(t *testing.T) {
function TestGetFolderSeparator (line 338) | func TestGetFolderSeparator(t *testing.T) {
type testNormalizePathCase (line 383) | type testNormalizePathCase struct
function TestNormalizePath (line 393) | func TestNormalizePath(t *testing.T) {
type testSplitPathCase (line 413) | type testSplitPathCase struct
function TestSplitPath (line 423) | func TestSplitPath(t *testing.T) {
function TestGetMaxWidth (line 448) | func TestGetMaxWidth(t *testing.T) {
function TestAgnosterMaxWidth (line 495) | func TestAgnosterMaxWidth(t *testing.T) {
function TestFishPath (line 664) | func TestFishPath(t *testing.T) {
FILE: src/segments/path_unix_test.go
constant abc (line 18) | abc = "/abc"
constant abcd (line 19) | abcd = "/a/b/c/d"
constant cdefg (line 20) | cdefg = "/c/d/e/f/g"
function TestFolderPathCustomMappedLocations (line 702) | func TestFolderPathCustomMappedLocations(t *testing.T) {
function TestReplaceMappedLocations (line 735) | func TestReplaceMappedLocations(t *testing.T) {
function TestGetPwd (line 783) | func TestGetPwd(t *testing.T) {
FILE: src/segments/path_windows_test.go
constant fooBarMan (line 11) | fooBarMan = "\\foo\\bar\\man"
FILE: src/segments/perl.go
type Perl (line 3) | type Perl struct
method Template (line 7) | func (p *Perl) Template() string {
method Enabled (line 11) | func (p *Perl) Enabled() bool {
FILE: src/segments/perl_test.go
function TestPerl (line 10) | func TestPerl(t *testing.T) {
FILE: src/segments/php.go
type Php (line 3) | type Php struct
method Template (line 7) | func (p *Php) Template() string {
method Enabled (line 11) | func (p *Php) Enabled() bool {
FILE: src/segments/php_test.go
function TestPhp (line 10) | func TestPhp(t *testing.T) {
FILE: src/segments/plastic.go
type PlasticStatus (line 13) | type PlasticStatus struct
method add (line 17) | func (s *PlasticStatus) add(code string) {
type Plastic (line 30) | type Plastic struct
method Init (line 39) | func (p *Plastic) Init(props options.Provider, env runtime.Environment) {
method Template (line 44) | func (p *Plastic) Template() string {
method Enabled (line 48) | func (p *Plastic) Enabled() bool {
method CacheKey (line 71) | func (p *Plastic) CacheKey() (string, bool) {
method setPlasticStatus (line 80) | func (p *Plastic) setPlasticStatus() {
method parseFilesStatus (line 96) | func (p *Plastic) parseFilesStatus(output []string) {
method parseStringPattern (line 117) | func (p *Plastic) parseStringPattern(output, pattern, name string) str...
method parseIntPattern (line 125) | func (p *Plastic) parseIntPattern(output, pattern, name string, defVal...
method parseStatusChangeset (line 134) | func (p *Plastic) parseStatusChangeset(status string) int {
method getHeadChangeset (line 138) | func (p *Plastic) getHeadChangeset() int {
method setSelector (line 143) | func (p *Plastic) setSelector() {
method parseChangesetSelector (line 170) | func (p *Plastic) parseChangesetSelector(selector string) string {
method parseLabelSelector (line 174) | func (p *Plastic) parseLabelSelector(selector string) string {
method parseBranchSelector (line 178) | func (p *Plastic) parseBranchSelector(selector string) string {
method getCmCommandOutput (line 182) | func (p *Plastic) getCmCommandOutput(args ...string) string {
FILE: src/segments/plastic_test.go
function TestPlasticEnabledNotFound (line 13) | func TestPlasticEnabledNotFound(t *testing.T) {
function TestPlasticEnabledInWorkspaceDirectory (line 25) | func TestPlasticEnabledInWorkspaceDirectory(t *testing.T) {
function setupCmStatusEnv (line 45) | func setupCmStatusEnv(status, headStatus string) *Plastic {
function TestPlasticGetCmOutputForCommand (line 56) | func TestPlasticGetCmOutputForCommand(t *testing.T) {
function TestPlasticStatusBehind (line 63) | func TestPlasticStatusBehind(t *testing.T) {
function TestPlasticStatusChanged (line 91) | func TestPlasticStatusChanged(t *testing.T) {
function TestPlasticStatusCounts (line 141) | func TestPlasticStatusCounts(t *testing.T) {
function TestPlasticMergePending (line 158) | func TestPlasticMergePending(t *testing.T) {
function TestPlasticParseIntPattern (line 182) | func TestPlasticParseIntPattern(t *testing.T) {
function TestPlasticParseStatusChangeset (line 224) | func TestPlasticParseStatusChangeset(t *testing.T) {
function TestPlasticGetHeadChangeset (line 230) | func TestPlasticGetHeadChangeset(t *testing.T) {
function TestPlasticParseChangesetSelector (line 237) | func TestPlasticParseChangesetSelector(t *testing.T) {
function TestPlasticParseLabelSelector (line 244) | func TestPlasticParseLabelSelector(t *testing.T) {
function TestPlasticParseBranchSelector (line 251) | func TestPlasticParseBranchSelector(t *testing.T) {
function TestPlasticParseSmartbranchSelector (line 258) | func TestPlasticParseSmartbranchSelector(t *testing.T) {
function TestPlasticStatus (line 265) | func TestPlasticStatus(t *testing.T) {
function TestPlasticTemplateString (line 282) | func TestPlasticTemplateString(t *testing.T) {
FILE: src/segments/pnpm.go
type Pnpm (line 3) | type Pnpm struct
method Enabled (line 7) | func (n *Pnpm) Enabled() bool {
method Template (line 22) | func (n *Pnpm) Template() string {
FILE: src/segments/pnpm_test.go
function TestPnpm (line 10) | func TestPnpm(t *testing.T) {
FILE: src/segments/posh_git.go
constant poshGitEnv (line 12) | poshGitEnv = "POSH_GIT_STATUS"
type poshGit (line 15) | type poshGit struct
type poshGitStatus (line 30) | type poshGitStatus struct
method parsePoshGitStatus (line 37) | func (s *GitStatus) parsePoshGitStatus(p *poshGitStatus) {
method hasPoshGitStatus (line 48) | func (g *Git) hasPoshGitStatus() bool {
method parsePoshGitHEAD (line 84) | func (g *Git) parsePoshGitHEAD(head string) string {
FILE: src/segments/posh_git_test.go
function TestPoshGitSegment (line 15) | func TestPoshGitSegment(t *testing.T) {
function TestParsePoshGitHEAD (line 221) | func TestParsePoshGitHEAD(t *testing.T) {
FILE: src/segments/project.go
type ProjectItem (line 20) | type ProjectItem struct
type ProjectData (line 26) | type ProjectData struct
type CargoTOML (line 34) | type CargoTOML struct
type PyProjectTOML (line 39) | type PyProjectTOML struct
type PyProjectToolTOML (line 44) | type PyProjectToolTOML struct
type NuSpec (line 48) | type NuSpec struct
type Project (line 56) | type Project struct
method Enabled (line 64) | func (n *Project) Enabled() bool {
method Template (line 150) | func (n *Project) Template() string {
method hasProjectFile (line 154) | func (n *Project) hasProjectFile(p *ProjectItem) bool {
method getNodePackage (line 158) | func (n *Project) getNodePackage(item ProjectItem) *ProjectData {
method getDenoPackage (line 162) | func (n *Project) getDenoPackage(item ProjectItem) *ProjectData {
method getJsrPackage (line 191) | func (n *Project) getJsrPackage(item ProjectItem) *ProjectData {
method getCargoPackage (line 195) | func (n *Project) getCargoPackage(item ProjectItem) *ProjectData {
method getPythonPackage (line 211) | func (n *Project) getPythonPackage(item ProjectItem) *ProjectData {
method getDartPackage (line 233) | func (n *Project) getDartPackage(item ProjectItem) *ProjectData {
method getNuSpecPackage (line 245) | func (n *Project) getNuSpecPackage(_ ProjectItem) *ProjectData {
method getDotnetProject (line 269) | func (n *Project) getDotnetProject(item ProjectItem) *ProjectData {
method getPowerShellModuleData (line 312) | func (n *Project) getPowerShellModuleData(_ ProjectItem) *ProjectData {
method getProjectData (line 351) | func (n *Project) getProjectData(item ProjectItem) *ProjectData {
method getJSONPackage (line 364) | func (n *Project) getJSONPackage(item ProjectItem, allowJSONC bool) *P...
method firstExistingFile (line 379) | func (n *Project) firstExistingFile(files []string) string {
method parseJSONPackage (line 390) | func (n *Project) parseJSONPackage(file string, allowJSONC bool) (*Pro...
FILE: src/segments/project_test.go
constant hasFiles (line 18) | hasFiles = "HasFiles"
type MockDirEntry (line 21) | type MockDirEntry struct
method Name (line 29) | func (m *MockDirEntry) Name() string {
method IsDir (line 33) | func (m *MockDirEntry) IsDir() bool {
method Type (line 37) | func (m *MockDirEntry) Type() fs.FileMode {
method Info (line 41) | func (m *MockDirEntry) Info() (fs.FileInfo, error) {
function TestPackage (line 45) | func TestPackage(t *testing.T) {
function TestDenoProjectUsesJsrMetadata (line 453) | func TestDenoProjectUsesJsrMetadata(t *testing.T) {
function TestNuspecPackage (line 470) | func TestNuspecPackage(t *testing.T) {
function TestDotnetProject (line 535) | func TestDotnetProject(t *testing.T) {
function TestPowerShellModuleProject (line 608) | func TestPowerShellModuleProject(t *testing.T) {
FILE: src/segments/pulumi.go
constant FetchStack (line 18) | FetchStack options.Option = "fetch_stack"
constant FetchAbout (line 19) | FetchAbout options.Option = "fetch_about"
constant JSON (line 21) | JSON string = "json"
constant YAML (line 22) | YAML string = "yaml"
constant pulumiJSON (line 24) | pulumiJSON string = "Pulumi.json"
constant pulumiYAML (line 25) | pulumiYAML string = "Pulumi.yaml"
type Pulumi (line 28) | type Pulumi struct
method Template (line 52) | func (p *Pulumi) Template() string {
method Enabled (line 56) | func (p *Pulumi) Enabled() bool {
method getPulumiStackName (line 78) | func (p *Pulumi) getPulumiStackName() {
method getProjectName (line 107) | func (p *Pulumi) getProjectName() error {
method sha1HexString (line 146) | func (p *Pulumi) sha1HexString(s string) string {
method getPulumiAbout (line 158) | func (p *Pulumi) getPulumiAbout() {
type Backend (line 39) | type Backend struct
type pulumiFileSpec (line 44) | type pulumiFileSpec struct
type pulumiWorkSpaceFileSpec (line 48) | type pulumiWorkSpaceFileSpec struct
FILE: src/segments/pulumi_test.go
function TestPulumi (line 15) | func TestPulumi(t *testing.T) {
FILE: src/segments/python.go
type Python (line 15) | type Python struct
method Template (line 28) | func (p *Python) Template() string {
method Enabled (line 32) | func (p *Python) Enabled() bool {
method loadContext (line 75) | func (p *Python) loadContext() {
method inContext (line 118) | func (p *Python) inContext() bool {
method canUseVenvName (line 122) | func (p *Python) canUseVenvName(name string) bool {
method pyenvVersion (line 138) | func (p *Python) pyenvVersion() (string, error) {
method pyvenvCfgPrompt (line 188) | func (p *Python) pyvenvCfgPrompt() string {
constant FetchVirtualEnv (line 22) | FetchVirtualEnv options.Option = "fetch_virtual_env"
constant UsePythonVersionFile (line 23) | UsePythonVersionFile options.Option = "use_python_version_file"
constant FolderNameFallback (line 24) | FolderNameFallback options.Option = "folder_name_fallback"
constant DefaultVenvNames (line 25) | DefaultVenvNames options.Option = "default_venv_names"
FILE: src/segments/python_test.go
function TestPythonTemplate (line 18) | func TestPythonTemplate(t *testing.T) {
function TestPythonPythonInContext (line 126) | func TestPythonPythonInContext(t *testing.T) {
function TestPythonVirtualEnvIgnoreDefaultVenvNames (line 153) | func TestPythonVirtualEnvIgnoreDefaultVenvNames(t *testing.T) {
function TestPythonVirtualEnvIgnoreCustomVenvNames (line 204) | func TestPythonVirtualEnvIgnoreCustomVenvNames(t *testing.T) {
function TestPythonUVTooling (line 249) | func TestPythonUVTooling(t *testing.T) {
FILE: src/segments/quasar.go
constant FetchDependencies (line 11) | FetchDependencies options.Option = "fetch_dependencies"
type Package (line 14) | type Package struct
type Quasar (line 19) | type Quasar struct
method Enabled (line 26) | func (q *Quasar) Enabled() bool {
method Template (line 49) | func (q *Quasar) Template() string {
method fetchDependencies (line 53) | func (q *Quasar) fetchDependencies() {
FILE: src/segments/quasar_test.go
function TestQuasar (line 12) | func TestQuasar(t *testing.T) {
FILE: src/segments/r.go
type R (line 3) | type R struct
method Template (line 7) | func (r *R) Template() string {
method Enabled (line 11) | func (r *R) Enabled() bool {
FILE: src/segments/r_test.go
function TestR (line 10) | func TestR(t *testing.T) {
FILE: src/segments/ramadan.go
type Ramadan (line 20) | type Ramadan struct
method Template (line 78) | func (r *Ramadan) Template() string {
method Enabled (line 82) | func (r *Ramadan) Enabled() bool {
method setData (line 94) | func (r *Ramadan) setData() error {
method computeNextEvent (line 171) | func (r *Ramadan) computeNextEvent(now, fajrTime, iftarTime, tomorrowF...
method fetchFajrTime (line 192) | func (r *Ramadan) fetchFajrTime(date time.Time) (time.Time, error) {
method buildURL (line 217) | func (r *Ramadan) buildURL(date string) (string, error) {
method resolveRamadanDay (line 250) | func (r *Ramadan) resolveRamadanDay(now time.Time, data ramadanData, f...
constant RamadanLatitude (line 33) | RamadanLatitude options.Option = "latitude"
constant RamadanLongitude (line 35) | RamadanLongitude options.Option = "longitude"
constant RamadanCity (line 37) | RamadanCity options.Option = "city"
constant RamadanCountry (line 39) | RamadanCountry options.Option = "country"
constant RamadanMethod (line 41) | RamadanMethod options.Option = "method"
constant RamadanSchool (line 43) | RamadanSchool options.Option = "school"
constant RamadanHideOutside (line 45) | RamadanHideOutside options.Option = "hide_outside_ramadan"
constant RamadanFirstRozaDate (line 47) | RamadanFirstRozaDate options.Option = "first_roza_date"
type ramadanTimings (line 50) | type ramadanTimings struct
type ramadanHijriMonth (line 56) | type ramadanHijriMonth struct
type ramadanHijriDate (line 60) | type ramadanHijriDate struct
type ramadanDate (line 65) | type ramadanDate struct
type ramadanData (line 69) | type ramadanData struct
type ramadanResponse (line 74) | type ramadanResponse struct
function parseEventTime (line 283) | func parseEventTime(now time.Time, hhmm string) (time.Time, error) {
function formatDuration (line 299) | func formatDuration(d time.Duration) string {
FILE: src/segments/ramadan_test.go
constant ramadanTestResponse (line 14) | ramadanTestResponse = `{
constant ramadanNonRamadanResponse (line 32) | ramadanNonRamadanResponse = `{
function TestRamadanSegment (line 50) | func TestRamadanSegment(t *testing.T) {
function TestComputeNextEvent (line 175) | func TestComputeNextEvent(t *testing.T) {
function TestFormatDuration (line 203) | func TestFormatDuration(t *testing.T) {
function TestParseEventTime (line 221) | func TestParseEventTime(t *testing.T) {
function TestResolveRamadanDay (line 244) | func TestResolveRamadanDay(t *testing.T) {
function TestRamadanComputeNextEvent (line 285) | func TestRamadanComputeNextEvent(t *testing.T) {
FILE: src/segments/react.go
type React (line 3) | type React struct
method Template (line 7) | func (r *React) Template() string {
method Enabled (line 11) | func (r *React) Enabled() bool {
method getVersion (line 29) | func (r *React) getVersion() (string, error) {
FILE: src/segments/root.go
type Root (line 3) | type Root struct
method Template (line 7) | func (rt *Root) Template() string {
method Enabled (line 11) | func (rt *Root) Enabled() bool {
FILE: src/segments/ruby.go
type Ruby (line 3) | type Ruby struct
method Template (line 7) | func (r *Ruby) Template() string {
method Enabled (line 11) | func (r *Ruby) Enabled() bool {
FILE: src/segments/ruby_test.go
function TestRuby (line 11) | func TestRuby(t *testing.T) {
FILE: src/segments/rust.go
type Rust (line 3) | type Rust struct
method Template (line 7) | func (r *Rust) Template() string {
method Enabled (line 11) | func (r *Rust) Enabled() bool {
FILE: src/segments/rust_test.go
function TestRust (line 10) | func TestRust(t *testing.T) {
FILE: src/segments/sapling.go
type SaplingStatus (line 11) | type SaplingStatus struct
method add (line 15) | func (s *SaplingStatus) add(code string) {
constant SAPLINGCOMMAND (line 43) | SAPLINGCOMMAND = "sl"
constant SLCOMMITTEMPLATE (line 44) | SLCOMMITTEMPLATE = "no:{node}\nns:{sl_node}\nnd:{sl_date}\nun:{sl_user}\...
type Sapling (line 47) | type Sapling struct
method Template (line 59) | func (sl *Sapling) Template() string {
method Enabled (line 63) | func (sl *Sapling) Enabled() bool {
method shouldDisplay (line 73) | func (sl *Sapling) shouldDisplay() bool {
method CacheKey (line 95) | func (sl *Sapling) CacheKey() (string, bool) {
method setDir (line 104) | func (sl *Sapling) setDir(dir string) {
method setHeadContext (line 115) | func (sl *Sapling) setHeadContext() {
method setCommitContext (line 141) | func (sl *Sapling) setCommitContext() {
method getSaplingCommandOutput (line 172) | func (sl *Sapling) getSaplingCommandOutput(command string, args ...str...
FILE: src/segments/sapling_test.go
function TestSetDir (line 13) | func TestSetDir(t *testing.T) {
function TestSetCommitContext (line 50) | func TestSetCommitContext(t *testing.T) {
function TestShouldDisplay (line 110) | func TestShouldDisplay(t *testing.T) {
function TestSetHeadContext (line 162) | func TestSetHeadContext(t *testing.T) {
FILE: src/segments/scm.go
constant NativeFallback (line 18) | NativeFallback options.Option = "native_fallback"
constant StatusFormats (line 20) | StatusFormats options.Option = "status_formats"
type ScmStatus (line 24) | type ScmStatus struct
method Changed (line 38) | func (s *ScmStatus) Changed() bool {
method String (line 51) | func (s *ScmStatus) String() string {
type Scm (line 86) | type Scm struct
method RelativeDir (line 106) | func (s *Scm) RelativeDir() string {
method formatBranch (line 127) | func (s *Scm) formatBranch(branch string) string {
method fileContent (line 174) | func (s *Scm) fileContent(folder, file string) string {
method convertToWindowsPath (line 178) | func (s *Scm) convertToWindowsPath(path string) string {
method convertToLinuxPath (line 187) | func (s *Scm) convertToLinuxPath(path string) string {
method hasCommand (line 195) | func (s *Scm) hasCommand(command string) bool {
constant BranchTemplate (line 103) | BranchTemplate options.Option = "branch_template"
FILE: src/segments/scm_test.go
function TestScmStatusChanged (line 16) | func TestScmStatusChanged(t *testing.T) {
function TestScmStatusString (line 69) | func TestScmStatusString(t *testing.T) {
function TestHasCommand (line 111) | func TestHasCommand(t *testing.T) {
function TestFormatBranch (line 149) | func TestFormatBranch(t *testing.T) {
FILE: src/segments/session.go
type Session (line 8) | type Session struct
method Enabled (line 14) | func (s *Session) Enabled() bool {
method Template (line 19) | func (s *Session) Template() string {
method activeSSHSession (line 23) | func (s *Session) activeSSHSession() bool {
FILE: src/segments/session_test.go
function TestSessionSegmentTemplate (line 16) | func TestSessionSegmentTemplate(t *testing.T) {
FILE: src/segments/shell.go
type Shell (line 9) | type Shell struct
method Template (line 21) | func (s *Shell) Template() string {
method Enabled (line 25) | func (s *Shell) Enabled() bool {
constant MappedShellNames (line 18) | MappedShellNames options.Option = "mapped_shell_names"
FILE: src/segments/shell_test.go
function TestWriteCurrentShell (line 13) | func TestWriteCurrentShell(t *testing.T) {
function TestUseMappedShellNames (line 26) | func TestUseMappedShellNames(t *testing.T) {
FILE: src/segments/sitecore.go
constant sitecoreFileName (line 12) | sitecoreFileName = "sitecore.json"
constant sitecoreFolderName (line 13) | sitecoreFolderName = ".sitecore"
constant userFileName (line 14) | userFileName = "user.json"
constant defaultEndpointName (line 15) | defaultEndpointName = "default"
type Sitecore (line 18) | type Sitecore struct
method Enabled (line 34) | func (s *Sitecore) Enabled() bool {
method Template (line 63) | func (s *Sitecore) Template() string {
type EndpointConfig (line 25) | type EndpointConfig struct
type UserConfig (line 29) | type UserConfig struct
method getDefaultEndpoint (line 78) | func (u *UserConfig) getDefaultEndpoint() string {
method getEndpoint (line 86) | func (u *UserConfig) getEndpoint(name string) *EndpointConfig {
function getUserConfig (line 67) | func getUserConfig(s *Sitecore) (*UserConfig, error) {
FILE: src/segments/sitecore_test.go
function TestSitecoreSegment (line 13) | func TestSitecoreSegment(t *testing.T) {
FILE: src/segments/spotify.go
type Spotify (line 5) | type Spotify struct
method Template (line 33) | func (s *Spotify) Template() string {
method resolveIcon (line 37) | func (s *Spotify) resolveIcon() {
type MusicPlayer (line 11) | type MusicPlayer struct
constant PlayingIcon (line 20) | PlayingIcon options.Option = "playing_icon"
constant PausedIcon (line 22) | PausedIcon options.Option = "paused_icon"
constant StoppedIcon (line 24) | StoppedIcon options.Option = "stopped_icon"
constant AdIcon (line 26) | AdIcon options.Option = "ad_icon"
constant playing (line 28) | playing = "playing"
constant stopped (line 29) | stopped = "stopped"
constant paused (line 30) | paused = "paused"
FILE: src/segments/spotify_darwin.go
method Enabled (line 7) | func (s *Spotify) Enabled() bool {
method runAppleScriptCommand (line 55) | func (s *Spotify) runAppleScriptCommand(command string) string {
FILE: src/segments/spotify_darwin_test.go
function TestSpotifyDarwinEnabledAndSpotifyPlaying (line 15) | func TestSpotifyDarwinEnabledAndSpotifyPlaying(t *testing.T) {
FILE: src/segments/spotify_linux.go
method Enabled (line 11) | func (s *Spotify) Enabled() bool {
method runLinuxScriptCommand (line 42) | func (s *Spotify) runLinuxScriptCommand(command string) string {
method enabledWsl (line 48) | func (s *Spotify) enabledWsl() bool {
FILE: src/segments/spotify_linux_test.go
function TestSpotifyLinux (line 16) | func TestSpotifyLinux(t *testing.T) {
function TestSpotifyWSL (line 51) | func TestSpotifyWSL(t *testing.T) {
FILE: src/segments/spotify_noop.go
method Enabled (line 5) | func (s *Spotify) Enabled() bool {
FILE: src/segments/spotify_test.go
function TestSpotifyStringPlayingSong (line 12) | func TestSpotifyStringPlayingSong(t *testing.T) {
function TestSpotifyStringStoppedSong (line 29) | func TestSpotifyStringStoppedSong(t *testing.T) {
FILE: src/segments/spotify_windows.go
method Enabled (line 9) | func (s *Spotify) Enabled() bool {
method parseNativeTitle (line 23) | func (s *Spotify) parseNativeTitle(windowTitle string) bool {
method parseWebTitle (line 39) | func (s *Spotify) parseWebTitle(windowTitle string) bool {
FILE: src/segments/spotify_windows_test.go
function TestSpotifyWindowsNative (line 15) | func TestSpotifyWindowsNative(t *testing.T) {
function TestSpotifyWindowsPWA (line 56) | func TestSpotifyWindowsPWA(t *testing.T) {
FILE: src/segments/status.go
constant StatusTemplate (line 13) | StatusTemplate options.Option = "status_template"
constant StatusSeparator (line 14) | StatusSeparator options.Option = "status_separator"
type Status (line 17) | type Status struct
method Template (line 25) | func (s *Status) Template() string {
method Enabled (line 29) | func (s *Status) Enabled() bool {
method formatStatus (line 43) | func (s *Status) formatStatus(status int, pipeStatus string) string {
FILE: src/segments/status_test.go
function TestStatusWriterEnabled (line 15) | func TestStatusWriterEnabled(t *testing.T) {
function TestFormatStatus (line 51) | func TestFormatStatus(t *testing.T) {
FILE: src/segments/strava.go
type StravaAPI (line 13) | type StravaAPI interface
type stravaAPI (line 17) | type stravaAPI struct
method GetActivities (line 21) | func (s *stravaAPI) GetActivities() ([]*StravaData, error) {
type Strava (line 27) | type Strava struct
method Template (line 69) | func (s *Strava) Template() string {
method Enabled (line 73) | func (s *Strava) Enabled() bool {
method initAPI (line 96) | func (s *Strava) initAPI() {
method getHours (line 118) | func (s *Strava) getHours() int {
method getAgo (line 123) | func (s *Strava) getAgo() string {
method getActivityIcon (line 131) | func (s *Strava) getActivityIcon() string {
constant RideIcon (line 41) | RideIcon options.Option = "ride_icon"
constant RunIcon (line 42) | RunIcon options.Option = "run_icon"
constant SkiingIcon (line 43) | SkiingIcon options.Option = "skiing_icon"
constant WorkOutIcon (line 44) | WorkOutIcon options.Option = "workout_icon"
constant UnknownActivityIcon (line 45) | UnknownActivityIcon options.Option = "unknown_activity_icon"
constant StravaAccessTokenKey (line 47) | StravaAccessTokenKey = "strava_access_token"
constant StravaRefreshTokenKey (line 48) | StravaRefreshTokenKey = "strava_refresh_token"
constant noActivitiesFound (line 50) | noActivitiesFound = "No activities found"
type StravaData (line 54) | type StravaData struct
FILE: src/segments/strava_test.go
type mockedStravaAPI (line 16) | type mockedStravaAPI struct
method GetActivities (line 20) | func (s *mockedStravaAPI) GetActivities() ([]*StravaData, error) {
function TestStravaSegment (line 25) | func TestStravaSegment(t *testing.T) {
FILE: src/segments/svelte.go
type Svelte (line 3) | type Svelte struct
method Template (line 7) | func (s *Svelte) Template() string {
method Enabled (line 11) | func (s *Svelte) Enabled() bool {
method getVersion (line 25) | func (s *Svelte) getVersion() (string, error) {
FILE: src/segments/svn.go
type SvnStatus (line 12) | type SvnStatus struct
method add (line 16) | func (s *SvnStatus) add(code string) {
method HasConflicts (line 33) | func (s *SvnStatus) HasConflicts() bool {
constant SVNCOMMAND (line 38) | SVNCOMMAND = "svn"
type Svn (line 41) | type Svn struct
method Template (line 48) | func (s *Svn) Template() string {
method Enabled (line 52) | func (s *Svn) Enabled() bool {
method CacheKey (line 62) | func (s *Svn) CacheKey() (string, bool) {
method shouldDisplay (line 71) | func (s *Svn) shouldDisplay() bool {
method setSvnStatus (line 101) | func (s *Svn) setSvnStatus() {
method Repo (line 131) | func (s *Svn) Repo() string {
method getSvnCommandOutput (line 143) | func (s *Svn) getSvnCommandOutput(command string, args ...string) stri...
FILE: src/segments/svn_test.go
function TestSvnEnabledToolNotFound (line 13) | func TestSvnEnabledToolNotFound(t *testing.T) {
function TestSvnEnabledInWorkingDirectory (line 26) | func TestSvnEnabledInWorkingDirectory(t *testing.T) {
function TestSvnTemplateString (line 51) | func TestSvnTemplateString(t *testing.T) {
function TestSetSvnStatus (line 163) | func TestSetSvnStatus(t *testing.T) {
function TestRepo (line 264) | func TestRepo(t *testing.T) {
FILE: src/segments/swift.go
type Swift (line 3) | type Swift struct
method Template (line 7) | func (s *Swift) Template() string {
method Enabled (line 11) | func (s *Swift) Enabled() bool {
FILE: src/segments/swift_test.go
function TestSwift (line 10) | func TestSwift(t *testing.T) {
FILE: src/segments/sysinfo.go
type SystemInfo (line 8) | type SystemInfo struct
method Template (line 20) | func (s *SystemInfo) Template() string {
method Enabled (line 24) | func (s *SystemInfo) Enabled() bool {
constant Precision (line 17) | Precision options.Option = "precision"
FILE: src/segments/sysinfo_test.go
function TestSysInfo (line 14) | func TestSysInfo(t *testing.T) {
FILE: src/segments/talosctl.go
type TalosCTL (line 11) | type TalosCTL struct
method Template (line 17) | func (t *TalosCTL) Template() string {
method Enabled (line 21) | func (t *TalosCTL) Enabled() bool {
method getActiveConfig (line 42) | func (t *TalosCTL) getActiveConfig(cfgDir string) (string, error) {
FILE: src/segments/talosctl_test.go
function TestTalosctlSegment (line 12) | func TestTalosctlSegment(t *testing.T) {
function TestGetTalosctlActiveConfig (line 58) | func TestGetTalosctlActiveConfig(t *testing.T) {
FILE: src/segments/taskwarrior.go
constant TaskwarriorCommand (line 15) | TaskwarriorCommand options.Option = "command"
constant TaskwarriorCommands (line 16) | TaskwarriorCommands options.Option = "commands"
type Taskwarrior (line 23) | type Taskwarrior struct
method Template (line 31) | func (t *Taskwarrior) Template() string {
method Enabled (line 35) | func (t *Taskwarrior) Enabled() bool {
method runCommand (line 61) | func (t *Taskwarrior) runCommand(cmd, args string) string {
FILE: src/segments/taskwarrior_test.go
function TestTaskwarrior (line 14) | func TestTaskwarrior(t *testing.T) {
function splitTaskArgs (line 182) | func splitTaskArgs(s string) []string {
FILE: src/segments/tauri.go
type Tauri (line 7) | type Tauri struct
method Template (line 11) | func (t *Tauri) Template() string {
method Enabled (line 15) | func (t *Tauri) Enabled() bool {
method getVersion (line 30) | func (t *Tauri) getVersion() (string, error) {
FILE: src/segments/terraform.go
constant Command (line 15) | Command options.Option = "command"
type Terraform (line 18) | type Terraform struct
method Template (line 25) | func (tf *Terraform) Template() string {
method Enabled (line 37) | func (tf *Terraform) Enabled() bool {
method inContext (line 58) | func (tf *Terraform) inContext(fetchVersion bool) bool {
method setVersionFromTfFiles (line 78) | func (tf *Terraform) setVersionFromTfFiles() error {
method setVersionFromTfStateFile (line 104) | func (tf *Terraform) setVersionFromTfStateFile() {
type TerraFormConfig (line 29) | type TerraFormConfig struct
type TerraformBlock (line 33) | type TerraformBlock struct
FILE: src/segments/terraform_test.go
function TestTerraform (line 13) | func TestTerraform(t *testing.T) {
FILE: src/segments/text.go
type Text (line 3) | type Text struct
method Template (line 7) | func (t *Text) Template() string {
method Enabled (line 11) | func (t *Text) Enabled() bool {
FILE: src/segments/text_test.go
function TestTextSegment (line 14) | func TestTextSegment(t *testing.T) {
FILE: src/segments/time.go
type Time (line 9) | type Time struct
method Template (line 21) | func (t *Time) Template() string {
method Enabled (line 25) | func (t *Time) Enabled() bool {
method getTimeFormat (line 61) | func (t *Time) getTimeFormat(format string) string {
constant TimeFormat (line 18) | TimeFormat options.Option = "time_format"
FILE: src/segments/time_test.go
function TestTimeSegmentTemplate (line 14) | func TestTimeSegmentTemplate(t *testing.T) {
FILE: src/segments/todoist.go
type Todoist (line 11) | type Todoist struct
method Enabled (line 25) | func (t *Todoist) Enabled() bool {
method Template (line 34) | func (t *Todoist) Template() string {
method GetData (line 38) | func (t *Todoist) GetData() error {
type TasksResponse (line 17) | type TasksResponse struct
type Task (line 21) | type Task struct
FILE: src/segments/todoist_test.go
constant TodoistTestURL (line 13) | TodoistTestURL = "https://api.todoist.com/api/v1/tasks/filter?query=due ...
function TestTodoistSegment (line 15) | func TestTodoistSegment(t *testing.T) {
function TestTodoistTemplate (line 84) | func TestTodoistTemplate(t *testing.T) {
function TestTodoistTemplateRendering (line 89) | func TestTodoistTemplateRendering(t *testing.T) {
FILE: src/segments/ui5tooling.go
constant UI5ToolingYamlPattern (line 3) | UI5ToolingYamlPattern = "*ui5*.y*ml"
type UI5Tooling (line 5) | type UI5Tooling struct
method Template (line 10) | func (u *UI5Tooling) Template() string {
method Enabled (line 14) | func (u *UI5Tooling) Enabled() bool {
method loadContext (line 32) | func (u *UI5Tooling) loadContext() {
method inContext (line 37) | func (u *UI5Tooling) inContext() bool {
FILE: src/segments/ui5tooling_test.go
constant WorkingDirRoot (line 16) | WorkingDirRoot = "/home/user/dev/my-app"
type testCase (line 19) | type testCase struct
function TestUI5Tooling (line 29) | func TestUI5Tooling(t *testing.T) {
function mockFilePresence (line 106) | func mockFilePresence(tc *testCase, env *mock.Environment) error {
FILE: src/segments/umbraco.go
type Umbraco (line 11) | type Umbraco struct
method Enabled (line 32) | func (u *Umbraco) Enabled() bool {
method Template (line 83) | func (u *Umbraco) Template() string {
method TryFindModernUmbraco (line 87) | func (u *Umbraco) TryFindModernUmbraco(configPath string) bool {
method TryFindLegacyUmbraco (line 123) | func (u *Umbraco) TryFindLegacyUmbraco(configPath string) bool {
type CSProj (line 18) | type CSProj struct
type WebConfig (line 25) | type WebConfig struct
FILE: src/segments/umbraco_test.go
function TestUmbracoSegment (line 17) | func TestUmbracoSegment(t *testing.T) {
FILE: src/segments/unity.go
type Unity (line 14) | type Unity struct
method Template (line 21) | func (u *Unity) Template() string {
method Enabled (line 25) | func (u *Unity) Enabled() bool {
method GetUnityVersion (line 45) | func (u *Unity) GetUnityVersion() (string, error) {
method GetCSharpVersion (line 81) | func (u *Unity) GetCSharpVersion() (version string, err error) {
method GetCSharpVersionFromWeb (line 122) | func (u *Unity) GetCSharpVersionFromWeb(shortUnityVersion string) (ver...
FILE: src/segments/unity_test.go
type HTTPResponse (line 15) | type HTTPResponse struct
function TestUnitySegment (line 20) | func TestUnitySegment(t *testing.T) {
function TestUnitySegmentCSharpWebRequest (line 100) | func TestUnitySegmentCSharpWebRequest(t *testing.T) {
FILE: src/segments/upgrade.go
type UpgradeCache (line 12) | type UpgradeCache struct
type Upgrade (line 17) | type Upgrade struct
method Template (line 30) | func (u *Upgrade) Template() string {
method Enabled (line 34) | func (u *Upgrade) Enabled() bool {
method upgradeCache (line 50) | func (u *Upgrade) upgradeCache() (*UpgradeCache, error) {
method checkUpdate (line 59) | func (u *Upgrade) checkUpdate(current string) (*UpgradeCache, error) {
constant UPGRADECACHEKEY (line 27) | UPGRADECACHEKEY = "upgrade_segment"
FILE: src/segments/upgrade_test.go
function TestUpgrade (line 15) | func TestUpgrade(t *testing.T) {
FILE: src/segments/v.go
type V (line 3) | type V struct
method Template (line 7) | func (v *V) Template() string {
method Enabled (line 11) | func (v *V) Enabled() bool {
FILE: src/segments/v_test.go
function TestV (line 10) | func TestV(t *testing.T) {
FILE: src/segments/vala.go
type Vala (line 3) | type Vala struct
method Template (line 7) | func (v *Vala) Template() string {
method Enabled (line 11) | func (v *Vala) Enabled() bool {
FILE: src/segments/vala_test.go
function TestVala (line 10) | func TestVala(t *testing.T) {
FILE: src/segments/wakatime.go
type Wakatime (line 9) | type Wakatime struct
method Template (line 26) | func (w *Wakatime) Template() string {
method Enabled (line 30) | func (w *Wakatime) Enabled() bool {
method setAPIData (line 35) | func (w *Wakatime) setAPIData() error {
type wtTotals (line 15) | type wtTotals struct
type WtData (line 20) | type WtData struct
FILE: src/segments/wakatime_test.go
function TestWTTrackedTime (line 14) | func TestWTTrackedTime(t *testing.T) {
FILE: src/segments/winget.go
type WinGet (line 10) | type WinGet struct
method Template (line 24) | func (w *WinGet) Template() string {
method Enabled (line 28) | func (w *WinGet) Enabled() bool {
method parseWinGetOutput (line 48) | func (w *WinGet) parseWinGetOutput(output string) []WinGetPackage {
type WinGetPackage (line 17) | type WinGetPackage struct
function findColumnIndices (line 128) | func findColumnIndices(headerLine string) []int {
function extractField (line 157) | func extractField(line string, startIndex, endIndex int) string {
FILE: src/segments/winget_test.go
function TestWinGet (line 13) | func TestWinGet(t *testing.T) {
function TestWinGetParseOutput (line 113) | func TestWinGetParseOutput(t *testing.T) {
FILE: src/segments/winreg.go
type WindowsRegistry (line 8) | type WindowsRegistry struct
method Template (line 21) | func (wr *WindowsRegistry) Template() string {
method Enabled (line 25) | func (wr *WindowsRegistry) Enabled() bool {
constant RegistryPath (line 16) | RegistryPath options.Option = "path"
constant Fallback (line 18) | Fallback options.Option = "fallback"
FILE: src/segments/winreg_te
Condensed preview — 874 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,741K chars).
[
{
"path": ".all-contributorsrc",
"chars": 94104,
"preview": "{\n \"projectName\": \"oh-my-posh\",\n \"projectOwner\": \"JanDeDobbeleer\",\n \"repoType\": \"github\",\n \"repoHost\": \"https://gith"
},
{
"path": ".commitlintrc.yml",
"chars": 296,
"preview": "---\nextends:\n - '@commitlint/config-conventional'\nrules:\n body-max-line-length:\n - 2\n - always\n - 200\n type-"
},
{
"path": ".config/configuration.winget",
"chars": 925,
"preview": "# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2\nproperties:\n resources:\n - resource: Mic"
},
{
"path": ".devcontainer/Dockerfile",
"chars": 3543,
"preview": "# See here for image contents: https://github.com/devcontainers/images/blob/main/src/go/.devcontainer/Dockerfile\n\n# [Cho"
},
{
"path": ".devcontainer/Microsoft.PowerShell_profile.ps1",
"chars": 249,
"preview": "Import-Module posh-git\nImport-Module PSFzf -ArgumentList 'Ctrl+t', 'Ctrl+r'\nImport-Module z\nImport-Module Terminal-Icons"
},
{
"path": ".devcontainer/config.fish",
"chars": 60,
"preview": "# Activate oh-my-posh prompt:\noh-my-posh init fish | source\n"
},
{
"path": ".devcontainer/devcontainer.json",
"chars": 3012,
"preview": "// For format details, see https://containers.dev/implementors/json_reference.\n// For config options, see the README at:"
},
{
"path": ".editorconfig",
"chars": 1149,
"preview": "; EditorConfig to support per-solution formatting.\n; http://editorconfig.org/\n\n; This is the default for the codeline.\nr"
},
{
"path": ".gitattributes",
"chars": 83,
"preview": "* text=auto eol=lf\n\n.github/workflows/*.lock.yml linguist-generated=true merge=ours"
},
{
"path": ".github/FUNDING.yml",
"chars": 110,
"preview": "# These are supported funding model platforms\n\ngithub: jandedobbeleer\nko_fi: jandedobbeleer\npolar: oh-my-posh\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bug.yml",
"chars": 1688,
"preview": "name: 🐛 Bug Report\ndescription: File a bug report\nlabels: [\"🐛 bug\"]\nassignees:\n - jandedobbeleer\nbody:\n - type: markdo"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 356,
"preview": "blank_issues_enabled: false\ncontact_links:\n - name: Oh My Posh FAQ\n url: https://ohmyposh.dev/docs/faq\n about: Pl"
},
{
"path": ".github/ISSUE_TEMPLATE/docs.yml",
"chars": 934,
"preview": "name: 📖 Documentation\ndescription: Suggest a change to the documentation\nlabels: [\"📖 docs\"]\nassignees:\n - jandedobbelee"
},
{
"path": ".github/ISSUE_TEMPLATE/enhancement.yml",
"chars": 925,
"preview": "name: 🤩 Enhancement\ndescription: Suggest a change to an existing feature\nlabels: [\"🤩 enhancement\"]\nassignees:\n - janded"
},
{
"path": ".github/ISSUE_TEMPLATE/feat.yml",
"chars": 884,
"preview": "name: 🚀 Feature Request\ndescription: Request a new feature\nlabels: [\"🚀 feat\"]\nassignees:\n - jandedobbeleer\nbody:\n - ty"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 757,
"preview": "### Prerequisites\n\n- [ ] I have read and understood the [contributing guide][CONTRIBUTING.md].\n- [ ] The commit message "
},
{
"path": ".github/agents/architecture.md",
"chars": 5078,
"preview": "---\nname: Architecture and Design\ndescription: >-\n Cross-language architectural guidance for designing scalable, mainta"
},
{
"path": ".github/copilot-instructions.md",
"chars": 145,
"preview": "# GitHub Copilot Instructions\n\nPlease refer to [AGENTS.md](../AGENTS.md) in the repository root for detailed coding guid"
},
{
"path": ".github/dependabot.yml",
"chars": 736,
"preview": "version: 2\nupdates:\n\n - package-ecosystem: \"github-actions\"\n directory: \"/\"\n target-branch: \"main\"\n schedule:\n"
},
{
"path": ".github/holopin.yml",
"chars": 188,
"preview": "organization: ohmyposh\ndefaultSticker: clg0u51g681700fmfr086ofc6\nstickers:\n -\n id: clg0u51g681700fmfr086ofc6\n ali"
},
{
"path": ".github/stale.yml",
"chars": 1426,
"preview": "# Configuration for probot-stale - https://github.com/probot/stale\n\n# Number of days of inactivity before an Issue or Pu"
},
{
"path": ".github/workflows/ai-changelog.yml",
"chars": 17996,
"preview": "name: Enhance release changelog with AI\n\non:\n release:\n types: [published]\n workflow_dispatch:\n inputs:\n ta"
},
{
"path": ".github/workflows/android.yml",
"chars": 1282,
"preview": "name: Android\non:\n release:\n types: [published]\n\njobs:\n build-android:\n runs-on: ubuntu-latest\n container: gh"
},
{
"path": ".github/workflows/bluesky.yml",
"chars": 439,
"preview": "name: Bluesky\non:\n release:\n types: [published]\n workflow_dispatch:\n\njobs:\n bluesky:\n runs-on: ubuntu-latest\n "
},
{
"path": ".github/workflows/build_code.yml",
"chars": 1080,
"preview": "on:\n pull_request:\n paths-ignore:\n - 'README.md'\n - 'CONTRIBUTING.md'\n - 'COPYING'\n - 'website/*"
},
{
"path": ".github/workflows/close_themes_pr.yml",
"chars": 2149,
"preview": "name: Close Themes PR\non:\n pull_request_target:\n types:\n - opened\n\njobs:\n check:\n runs-on: ubuntu-latest\n "
},
{
"path": ".github/workflows/code.yml",
"chars": 1242,
"preview": "on:\n pull_request:\n paths-ignore:\n - 'README.md'\n - 'CONTRIBUTING.md'\n - 'COPYING'\n - 'website/*"
},
{
"path": ".github/workflows/commits.yml",
"chars": 261,
"preview": "name: Validate Commits\n\non: [pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.event.pull_request.n"
},
{
"path": ".github/workflows/composite/bootstrap-go/action.yml",
"chars": 390,
"preview": "# yaml-language-server: $schema=https://json.schemastore.org/github-action.json\nname: \"Setup Go\"\ndescription: \"Install G"
},
{
"path": ".github/workflows/contributors.yml",
"chars": 218,
"preview": "name: Contributors\non:\n pull_request_target:\n types:\n - closed\n\njobs:\n contributors:\n uses: jandedobbeleer/"
},
{
"path": ".github/workflows/copilot-setup-steps.yml",
"chars": 488,
"preview": "name: \"Copilot Setup Steps\"\n\non:\n workflow_dispatch:\n push:\n paths:\n - .github/workflows/copilot-setup-steps.y"
},
{
"path": ".github/workflows/delete_store_submission.yml",
"chars": 709,
"preview": "name: Delete Store Submission\n\non:\n workflow_dispatch:\n\njobs:\n delete_submission:\n name: Delete Store Submission\n "
},
{
"path": ".github/workflows/dependabot.yml",
"chars": 231,
"preview": "name: Dependabot auto-merge\non:\n pull_request:\n types: [opened, reopened]\n\npermissions:\n contents: write\n pull"
},
{
"path": ".github/workflows/discord.yml",
"chars": 200,
"preview": "name: Discord\non:\n release:\n types: [published]\n\njobs:\n notify:\n uses: jandedobbeleer/workflows/.github/workflow"
},
{
"path": ".github/workflows/docs.yml",
"chars": 2853,
"preview": "name: Azure Static Web Apps CI/CD\n\non:\n push:\n branches:\n - main\n paths:\n - \"website/**\"\n - \"theme"
},
{
"path": ".github/workflows/edit_rights.yml",
"chars": 518,
"preview": "name: Notify When Maintainers Cannot Edit\n\n# **What it does**: Notifies the author of a PR when their PR does not allow "
},
{
"path": ".github/workflows/gomod.yml",
"chars": 752,
"preview": "name: Go Mod\n\non: [pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.event.pull_request.number || g"
},
{
"path": ".github/workflows/homebrew.yml",
"chars": 641,
"preview": "name: Homebrew\non:\n release:\n types: [published]\n\njobs:\n notify:\n runs-on: ubuntu-latest\n steps:\n - name: "
},
{
"path": ".github/workflows/lock.yml",
"chars": 894,
"preview": "name: 'Lock Threads'\n\non:\n schedule:\n - cron: '0 0 * * 1'\n\npermissions:\n issues: write\n\nconcurrency:\n group: lock\n"
},
{
"path": ".github/workflows/markdown.yml",
"chars": 508,
"preview": "name: Markdownlint\n\non: [pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.event.pull_request.numbe"
},
{
"path": ".github/workflows/merge_contributions_pr.yml",
"chars": 928,
"preview": "name: Merge contributions PR\non:\n pull_request_target:\n types:\n - opened\n - reopened\n\njobs:\n check:\n r"
},
{
"path": ".github/workflows/microsoft_store.yml",
"chars": 1636,
"preview": "name: Windows Store\non:\n release:\n types: [published]\n\njobs:\n microsoft_store:\n name: Publish To Windows Store\n "
},
{
"path": ".github/workflows/publish-mcp.yml",
"chars": 2110,
"preview": "name: Publish to MCP Registry\n\non:\n push:\n branches:\n - main\n paths:\n - 'website/api/mcp/**'\n workflow"
},
{
"path": ".github/workflows/release.yml",
"chars": 6561,
"preview": "name: Release\n\non:\n push:\n branches:\n - main\n paths:\n - \"src/**\"\n - \"packages/**\"\n - \".github"
},
{
"path": ".github/workflows/vale.yml",
"chars": 669,
"preview": "name: Vale\n\non: [pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.event.pull_request.number || git"
},
{
"path": ".gitignore",
"chars": 4238,
"preview": "# APM\napm_modules/\n.github/skills/*\n!.github/skills/segment-create/\n!.github/skills/segment-docs/\n\n# Others\n\n.specs/\n.fl"
},
{
"path": ".markdownlint-cli2.yaml",
"chars": 236,
"preview": "config:\n MD013:\n line_length: 120\n code_blocks: false\n MD024: false\nfix: true\ngitignore: true\nignores:\n - node_"
},
{
"path": ".prettierrc",
"chars": 187,
"preview": "{\n \"trailingComma\": \"none\",\n \"overrides\": [\n {\n \"files\": [\"*.jsonc\", \"*.json\"],\n \"options\": {\n \"pa"
},
{
"path": ".vale.ini",
"chars": 509,
"preview": "StylesPath = .styles\n\nMinAlertLevel = suggestion\n\nPackages = https://github.com/tbhb/vale-ai-tells/releases/download/v1."
},
{
"path": ".versionrc.json",
"chars": 675,
"preview": "{\n \"types\": [\n {\n \"type\": \"feat\",\n \"section\": \"Features\"\n },\n {\n \"type\": \"fix\",\n \"section\""
},
{
"path": ".vscode/extensions.json",
"chars": 411,
"preview": "{\n \"recommendations\": [\n \"bmalehorn.vscode-fish\",\n \"davidanson.vscode-markdownlint\",\n \"elves.elvish\",\n \"esb"
},
{
"path": ".vscode/launch.json",
"chars": 4782,
"preview": "{\n \"version\": \"0.2.0\",\n \"configurations\": [\n {\n \"name\": \"Primary\",\n \"type\": \"go\",\n \"request\": \"launc"
},
{
"path": ".vscode/settings.json",
"chars": 902,
"preview": "{\n \"go.lintTool\": \"golangci-lint\",\n \"go.useLanguageServer\": true,\n \"go.testOnSave\": true,\n \"[go]\": {\n \"editor.for"
},
{
"path": ".vscode/tasks.json",
"chars": 2461,
"preview": "{\n // See https://go.microsoft.com/fwlink/?LinkId=733558\n // for the documentation about the tasks.json format\n \"vers"
},
{
"path": "AGENTS.md",
"chars": 669,
"preview": "# Agent Instructions\n\n## APM Setup\n\nThis repository uses [APM](https://github.com/JanDeDobbeleer/agentic) to manage agen"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 5377,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
},
{
"path": "CONTRIBUTING.md",
"chars": 4724,
"preview": "# Contributing\n\nNote we have a code of conduct, please follow it in all your interactions with the project.\n\n> [!NOTE]\n>"
},
{
"path": "COPYING",
"chars": 1056,
"preview": "Copyright 2022 Jan De Dobbeleer\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this so"
},
{
"path": "README.md",
"chars": 3936,
"preview": "<!-- markdownlint-disable -->\n<p align=\"center\">\n <img\n width=\"400\"\n src=\"https://raw.githubusercontent.com/jande"
},
{
"path": "SECURITY.md",
"chars": 533,
"preview": "# Security Policy\n\n## Supported Versions\n\nOnly the latest [release][releases] is supported.\n\n## Reporting a Vulnerabilit"
},
{
"path": "apm.lock.yaml",
"chars": 1086,
"preview": "lockfile_version: '1'\ngenerated_at: '2026-03-15T08:59:17.859220+00:00'\napm_version: 0.7.9\ndependencies:\n- repo_url: JanD"
},
{
"path": "apm.yml",
"chars": 353,
"preview": "name: oh-my-posh\nversion: 1.0.0\ndescription: A prompt theme engine for any shell.\n\ndependencies:\n apm:\n - JanDeDobbe"
},
{
"path": "build/post.ps1",
"chars": 580,
"preview": "# Description: Post build script to compress the themes and generate SHA256 hashes for all files in the dist folder\n\n# C"
},
{
"path": "build/pre.ps1",
"chars": 1288,
"preview": "Param\n(\n [string]\n $Version,\n [parameter(Mandatory = $false)]\n [string]\n $SDKVersion = \"10.0.26100.0\"\n)\n\n"
},
{
"path": "packages/msi/README.md",
"chars": 654,
"preview": "# MSI Package\n\n## Prerequisites\n\n- [dotnet]\n- [wix]: `dotnet tool install --global wix`\n\n## Build the package\n\nThis guid"
},
{
"path": "packages/msi/appxmanifest.xml",
"chars": 2084,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Package xmlns=\"http://schemas.microsoft.com/appx/manifest/foundation/windows10\""
},
{
"path": "packages/msi/build.ps1",
"chars": 7916,
"preview": "<#\n.SYNOPSIS\n Builds MSI and MSIX packages for Oh My Posh.\n\n.DESCRIPTION\n This script creates MSI and MSIX install"
},
{
"path": "packages/msi/dsc/oh-my-posh.config.dsc.resource.json",
"chars": 998,
"preview": "{\n \"$schema\": \"https://aka.ms/dsc/schemas/v3/bundled/resource/manifest.vscode.json\",\n \"description\": \"Allows configuri"
},
{
"path": "packages/msi/dsc/oh-my-posh.font.dsc.resource.json",
"chars": 968,
"preview": "{\n \"$schema\": \"https://aka.ms/dsc/schemas/v3/bundled/resource/manifest.vscode.json\",\n \"description\": \"Allows configuri"
},
{
"path": "packages/msi/dsc/oh-my-posh.shell.dsc.resource.json",
"chars": 977,
"preview": "{\n \"$schema\": \"https://aka.ms/dsc/schemas/v3/bundled/resource/manifest.vscode.json\",\n \"description\": \"Allows configuri"
},
{
"path": "packages/msi/mapping.txt",
"chars": 8392,
"preview": "[ResourceMetadata]\n\"ResourceDimensions\" \"language-en-us\"\n\"ResourceId\" \"Eng"
},
{
"path": "packages/msi/oh-my-posh.wxs",
"chars": 2459,
"preview": "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">\n\t<Package Language=\"1033\" Manufacturer=\"Jan De Dobbeleer\" Name=\"Oh My"
},
{
"path": "src/.golangci.yml",
"chars": 1069,
"preview": "version: \"2\"\nrun:\n allow-parallel-runners: true\nlinters:\n default: none\n enable:\n - bodyclose\n - copyloopvar\n "
},
{
"path": "src/.goreleaser.yml",
"chars": 1643,
"preview": "# Make sure to check the documentation at https://goreleaser.com\n# yaml-language-server: $schema=https://goreleaser.com/"
},
{
"path": "src/build/version.go",
"chars": 62,
"preview": "package build\n\nvar (\n\tDate string\n\tVersion = \"0.0.0-dev\"\n)\n"
},
{
"path": "src/cache/cache.go",
"chars": 696,
"preview": "package cache\n\nimport (\n\t\"encoding/gob\"\n\t\"time\"\n)\n\nfunc init() {\n\tgob.Register(&Entry[any]{})\n\tgob.Register(Template{})\n"
},
{
"path": "src/cache/clear.go",
"chars": 2149,
"preview": "package cache\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/"
},
{
"path": "src/cache/command.go",
"chars": 384,
"preview": "package cache\n\nimport (\n\t\"github.com/jandedobbeleer/oh-my-posh/src/maps\"\n)\n\ntype Command struct {\n\tCommands *maps.Concur"
},
{
"path": "src/cache/duration.go",
"chars": 693,
"preview": "package cache\n\nimport (\n\t\"time\"\n)\n\ntype Duration string\n\nconst (\n\tINFINITE = Duration(\"infinite\")\n\tNONE = Duration(\""
},
{
"path": "src/cache/duration_test.go",
"chars": 809,
"preview": "package cache\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestSeconds(t *testing.T) {\n\tcases := "
},
{
"path": "src/cache/file_map_windows.go",
"chars": 8675,
"preview": "package cache\n\nimport (\n\t\"fmt\"\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n)\n\n// Configuration"
},
{
"path": "src/cache/file_unix.go",
"chars": 183,
"preview": "//go:build !windows\n\npackage cache\n\nimport (\n\t\"io\"\n\t\"os\"\n)\n\nfunc openFile(filePath string) (io.ReadWriteCloser, error) {"
},
{
"path": "src/cache/file_windows.go",
"chars": 2078,
"preview": "package cache\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n)\n\n// persistentStringRWC"
},
{
"path": "src/cache/init.go",
"chars": 1110,
"preview": "package cache\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/google/uuid\"\n\t\"github.com/jandedobbeleer/oh-my-posh/s"
},
{
"path": "src/cache/path.go",
"chars": 1296,
"preview": "package cache\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n\t\"github.com/jan"
},
{
"path": "src/cache/path_unix.go",
"chars": 282,
"preview": "//go:build !windows\n\npackage cache\n\nimport \"os\"\n\nfunc platformCachePath() (string, bool) {\n\tif cachePath, OK := returnOr"
},
{
"path": "src/cache/path_windows.go",
"chars": 1256,
"preview": "package cache\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"syscall\"\n\t\"time\"\n\t\"unsafe\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/"
},
{
"path": "src/cache/store.go",
"chars": 5930,
"preview": "package cache\n\nimport (\n\t\"encoding/gob\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh"
},
{
"path": "src/cache/store_test.go",
"chars": 2343,
"preview": "package cache\n\nimport (\n\t\"strings\"\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestStore(t *testin"
},
{
"path": "src/cache/template.go",
"chars": 749,
"preview": "package cache\n\nimport (\n\t\"github.com/jandedobbeleer/oh-my-posh/src/maps\"\n)\n\ntype Template struct {\n\tSegments *maps.Concu"
},
{
"path": "src/cli/args.go",
"chars": 270,
"preview": "package cli\n\nimport (\n\t\"github.com/spf13/cobra\"\n)\n\nfunc NoArgsOrOneValidArg(cmd *cobra.Command, args []string) error {\n\t"
},
{
"path": "src/cli/auth/cli.go",
"chars": 1876,
"preview": "package auth\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/charmbracelet/bubbles/spinner\"\n\ttea \"github.com/charmbracelet/bubbletea\"\n\t\"g"
},
{
"path": "src/cli/auth/copilot.go",
"chars": 5548,
"preview": "package auth\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\thttplib \"net/http\"\n\t\"strings\"\n\t\"time\"\n\n\ttea \"github.com/charmbracelet/bu"
},
{
"path": "src/cli/auth/ytmda.go",
"chars": 3434,
"preview": "package auth\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\thttplib \"net/http\"\n\t\"strings\"\n\n\ttea \"github.com/charmbr"
},
{
"path": "src/cli/auth/ytmda_test.go",
"chars": 2968,
"preview": "package auth\n\nimport (\n\t\"errors\"\n\t\"testing\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\truntime_ \"github.com/jan"
},
{
"path": "src/cli/auth.go",
"chars": 1284,
"preview": "package cli\n\nimport (\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/sr"
},
{
"path": "src/cli/cache.go",
"chars": 1658,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\n\t\"github.com/spf13/cob"
},
{
"path": "src/cli/claude.go",
"chars": 3089,
"preview": "package cli\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.co"
},
{
"path": "src/cli/config.go",
"chars": 1082,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-"
},
{
"path": "src/cli/config_export.go",
"chars": 2697,
"preview": "package cli\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cac"
},
{
"path": "src/cli/config_export_image.go",
"chars": 3860,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-"
},
{
"path": "src/cli/debug.go",
"chars": 2191,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/build\"\n\t\"github.com/jandedobbelee"
},
{
"path": "src/cli/disable.go",
"chars": 516,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/spf13/cobra\"\n)\n\n// disableCmd represents the disable command\nvar disableCmd ="
},
{
"path": "src/cli/edit.go",
"chars": 656,
"preview": "package cli\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n\t\"strings\"\n)\n\nfunc editFileWithEditor(file string) int {\n\tedito"
},
{
"path": "src/cli/enable.go",
"chars": 1182,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbe"
},
{
"path": "src/cli/font/download.go",
"chars": 1851,
"preview": "package font\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\thttplib \"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\n"
},
{
"path": "src/cli/font/dsc.go",
"chars": 508,
"preview": "package font\n\nimport (\n\t\"github.com/jandedobbeleer/oh-my-posh/src/dsc\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n)"
},
{
"path": "src/cli/font/font.go",
"chars": 2796,
"preview": "// Derived from https://github.com/Crosse/font-install\n// Copyright 2020 Seth Wright <seth@crosse.org>\npackage font\n\nimp"
},
{
"path": "src/cli/font/fonts.go",
"chars": 3036,
"preview": "package font\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\thttplib \"net/http\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n\n\t\"gi"
},
{
"path": "src/cli/font/install.go",
"chars": 2255,
"preview": "// Derived from https://github.com/Crosse/font-install\n// Copyright 2020 Seth Wright <seth@crosse.org>\npackage font\n\nimp"
},
{
"path": "src/cli/font/install_darwin.go",
"chars": 585,
"preview": "// Derived from https://github.com/Crosse/font-install\n// Copyright 2020 Seth Wright <seth@crosse.org>\npackage font\n\nimp"
},
{
"path": "src/cli/font/install_unix.go",
"chars": 965,
"preview": "//go:build !windows && !darwin\n\n// Derived from https://github.com/Crosse/font-install\n// Copyright 2020 Seth Wright <se"
},
{
"path": "src/cli/font/install_windows.go",
"chars": 4282,
"preview": "package font\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"github.com/jandedobbeleer/oh-my-p"
},
{
"path": "src/cli/font/tui.go",
"chars": 7611,
"preview": "package font\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/charmbracelet/bubbles/list\"\n\tprogress_ \"github.com/ch"
},
{
"path": "src/cli/font.go",
"chars": 1930,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/o"
},
{
"path": "src/cli/get.go",
"chars": 2034,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbelee"
},
{
"path": "src/cli/image/config.go",
"chars": 2037,
"preview": "package image\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Settings represents the structure for "
},
{
"path": "src/cli/image/config_test.go",
"chars": 3374,
"preview": "package image\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestLoadSetting"
},
{
"path": "src/cli/image/fonts.go",
"chars": 1989,
"preview": "package image\n\nimport (\n\t\"fmt\"\n\tstdOS \"os\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n\n\t\"golang.org/x/imag"
},
{
"path": "src/cli/image/image.go",
"chars": 20423,
"preview": "// Copyright © 2020 The Homeport Team\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy"
},
{
"path": "src/cli/image/image_test.go",
"chars": 10405,
"preview": "package image\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestSetOutputPath(t *testing.T) {\n\tcas"
},
{
"path": "src/cli/init.go",
"chars": 3863,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"gith"
},
{
"path": "src/cli/notice.go",
"chars": 849,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-"
},
{
"path": "src/cli/print.go",
"chars": 4604,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/s"
},
{
"path": "src/cli/progress/model.go",
"chars": 587,
"preview": "package progress\n\nimport (\n\t\"github.com/charmbracelet/bubbles/progress\"\n\ttea \"github.com/charmbracelet/bubbletea\"\n\t\"gith"
},
{
"path": "src/cli/progress/reader.go",
"chars": 553,
"preview": "package progress\n\nimport (\n\t\"io\"\n\n\ttea \"github.com/charmbracelet/bubbletea\"\n)\n\nfunc NewReader(reader io.Reader, total in"
},
{
"path": "src/cli/root.go",
"chars": 3034,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/build"
},
{
"path": "src/cli/shell.go",
"chars": 943,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/dsc\"\n\t\"github.com/jandedobbeleer/oh-my-po"
},
{
"path": "src/cli/stream.go",
"chars": 3729,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/s"
},
{
"path": "src/cli/stream_test.go",
"chars": 5838,
"preview": "package cli\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testif"
},
{
"path": "src/cli/toggle.go",
"chars": 1616,
"preview": "package cli\n\nimport (\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh"
},
{
"path": "src/cli/upgrade/config.go",
"chars": 2948,
"preview": "package upgrade\n\nimport (\n\t\"context\"\n\t\"encoding/gob\"\n\t\"fmt\"\n\t\"io\"\n\thttplib \"net/http\"\n\t\"strings\"\n\n\t\"github.com/jandedobb"
},
{
"path": "src/cli/upgrade/install.go",
"chars": 1666,
"preview": "package upgrade\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh"
},
{
"path": "src/cli/upgrade/install_noop.go",
"chars": 138,
"preview": "//go:build !windows\n\npackage upgrade\n\nfunc hideFile(_ string) error {\n\treturn nil\n}\n\nfunc IsPackagedInstallation() bool "
},
{
"path": "src/cli/upgrade/install_windows.go",
"chars": 530,
"preview": "package upgrade\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n)\n\nfunc hideFile(path "
},
{
"path": "src/cli/upgrade/notice.go",
"chars": 1177,
"preview": "package upgrade\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/build\"\n\t\"github.com/jandedobbeleer/oh"
},
{
"path": "src/cli/upgrade/notice_test.go",
"chars": 923,
"preview": "package upgrade\n\nimport (\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/build\"\n\t\"github.com/stretchr/test"
},
{
"path": "src/cli/upgrade/public_key.pem",
"chars": 113,
"preview": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA98lHhNau5x0JtjSuwiWLuC2yKO6NA6/0bH2gE8tAq4c=\n-----END PUBLIC KEY-----\n"
},
{
"path": "src/cli/upgrade/tui.go",
"chars": 3406,
"preview": "package upgrade\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\tprogress_ \"github.com/charmbracelet/bubbles/progress\"\n\t\"github.com/charmbr"
},
{
"path": "src/cli/upgrade/tui_test.go",
"chars": 680,
"preview": "package upgrade\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestIsMajorUpgrade(t *testing.T) {\n\t"
},
{
"path": "src/cli/upgrade/verify.go",
"chars": 3778,
"preview": "package upgrade\n\nimport (\n\t\"crypto/ed25519\"\n\t\"crypto/sha256\"\n\t\"crypto/x509\"\n\t_ \"embed\"\n\t\"encoding/pem\"\n\t\"fmt\"\n\tstdruntim"
},
{
"path": "src/cli/upgrade/verify_test.go",
"chars": 673,
"preview": "package upgrade\n\nimport (\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestVerify(t *testing.T) {\n\tch"
},
{
"path": "src/cli/upgrade.go",
"chars": 3633,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\tstdruntime \"runtime\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/b"
},
{
"path": "src/cli/version.go",
"chars": 656,
"preview": "package cli\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/build\"\n\t\"github.com/spf13/cobra\"\n)\n\nvar (\n\tverb"
},
{
"path": "src/color/colors.go",
"chars": 7964,
"preview": "package color\n\nimport (\n\t\"encoding/gob\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/gookit/color\"\n\t\"github.com/ja"
},
{
"path": "src/color/colors_darwin.go",
"chars": 948,
"preview": "package color\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n\t\"github.com/jandedobbelee"
},
{
"path": "src/color/colors_test.go",
"chars": 3230,
"preview": "package color\n\nimport (\n\t\"errors\"\n\t\"testing\"\n\n\t\"github.com/alecthomas/assert\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src"
},
{
"path": "src/color/colors_unix.go",
"chars": 206,
"preview": "//go:build !windows && !darwin\n\npackage color\n\nimport \"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n\nfunc GetAccent"
},
{
"path": "src/color/colors_windows.go",
"chars": 704,
"preview": "package color\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n\t\"github.com/jandedobbeleer/o"
},
{
"path": "src/color/cycle.go",
"chars": 146,
"preview": "package color\n\ntype Cycle []*Set\n\nfunc (c Cycle) Loop() (*Set, Cycle) {\n\tif len(c) == 0 {\n\t\treturn nil, c\n\t}\n\n\treturn c["
},
{
"path": "src/color/keywords.go",
"chars": 1808,
"preview": "package color\n\nconst (\n\t// Transparent implies a transparent color\n\tTransparent Ansi = \"transparent\"\n\t// Accent is the O"
},
{
"path": "src/color/palette.go",
"chars": 2726,
"preview": "package color\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\ntype Palette map[Ansi]Ansi\n\nconst (\n\tpaletteKeyPrefix = \"p:"
},
{
"path": "src/color/palette_test.go",
"chars": 7136,
"preview": "package color\n\nimport (\n\t\"testing\"\n\n\t\"github.com/alecthomas/assert\"\n)\n\nvar (\n\ttestPalette = Palette{\n\t\t\"red\": \"#FF0000"
},
{
"path": "src/color/palettes.go",
"chars": 246,
"preview": "package color\n\ntype Palettes struct {\n\tList map[string]Palette `json:\"list,omitempty\" toml:\"list,omitempty\" yaml:\"li"
},
{
"path": "src/config/backup.go",
"chars": 1851,
"preview": "package config\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n\n\ttoml \"github.com/pelletier/go-toml/v2\"\n\tyaml"
},
{
"path": "src/config/block.go",
"chars": 1949,
"preview": "package config\n\nimport \"fmt\"\n\n// BlockType type of block\ntype BlockType string\n\n// BlockAlignment alignment of a Block\nt"
},
{
"path": "src/config/cache.go",
"chars": 426,
"preview": "package config\n\nimport \"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\ntype Cache struct {\n\tDuration cache.Duration `j"
},
{
"path": "src/config/config.go",
"chars": 9557,
"preview": "package config\n\nimport (\n\t\"encoding/gob\"\n\t\"slices\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"githu"
},
{
"path": "src/config/config_test.go",
"chars": 3971,
"preview": "package config\n\nimport (\n\t\"testing\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my"
},
{
"path": "src/config/default.go",
"chars": 8645,
"preview": "package config\n\nimport (\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cl"
},
{
"path": "src/config/dsc.go",
"chars": 3161,
"preview": "package config\n\nimport (\n\t\"encoding/gob\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer"
},
{
"path": "src/config/gob.go",
"chars": 1643,
"preview": "package config\n\nimport (\n\t\"bytes\"\n\t\"encoding/base64\"\n\t\"encoding/gob\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src"
},
{
"path": "src/config/load.go",
"chars": 13040,
"preview": "package config\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"hash/fnv\"\n\t\"os\"\n\t\"path/filepath\"\n\truntimelib \"runt"
},
{
"path": "src/config/merge.go",
"chars": 4733,
"preview": "package config\n\nimport (\n\t\"errors\"\n\t\"reflect\"\n\t\"slices\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n)\n\ntype matcher"
},
{
"path": "src/config/merge_test.go",
"chars": 8455,
"preview": "package config\n\nimport (\n\t\"testing\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n\t\"github.com/jandedobbeleer/oh-my"
},
{
"path": "src/config/migrate_glyphs.go",
"chars": 2393,
"preview": "package config\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime/http\"\n\t\"github"
},
{
"path": "src/config/migrate_glyphs_test.go",
"chars": 827,
"preview": "package config\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestGetCodePoints(t *testing.T) {\n\tco"
},
{
"path": "src/config/responsive.go",
"chars": 492,
"preview": "package config\n\nimport \"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n\nfunc shouldHideForWidth(env runtime.Environme"
},
{
"path": "src/config/responsive_test.go",
"chars": 1102,
"preview": "package config\n\nimport (\n\t\"testing\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime/mock\"\n\n\t\"github.com/stretchr/tes"
},
{
"path": "src/config/segment.go",
"chars": 14483,
"preview": "package config\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"slices\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/sr"
},
{
"path": "src/config/segment_test.go",
"chars": 8814,
"preview": "package config\n\nimport (\n\t\"encoding/json\"\n\t\"testing\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n\t\"github.com/jan"
},
{
"path": "src/config/segment_types.go",
"chars": 21601,
"preview": "package config\n\nimport (\n\t\"encoding/gob\"\n\t\"errors\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/runtime\"\n\t\"github.com/jan"
},
{
"path": "src/constants/constants_unix.go",
"chars": 72,
"preview": "//go:build !windows\n\npackage constants\n\nconst (\n\tDotnetExitCode = 142\n)\n"
},
{
"path": "src/constants/constants_windows.go",
"chars": 63,
"preview": "package constants\n\nconst (\n\tDotnetExitCode = int(0x80008091)\n)\n"
},
{
"path": "src/dsc/cli.go",
"chars": 1580,
"preview": "package dsc\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-"
},
{
"path": "src/dsc/error.go",
"chars": 215,
"preview": "package dsc\n\ntype Error struct {\n\tmessage string\n}\n\nfunc (e *Error) Error() string {\n\treturn `{\n \"error\": \"` + e.mess"
},
{
"path": "src/dsc/resource.go",
"chars": 2788,
"preview": "package dsc\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/invopop/jsonschema\"\n\t\"gith"
},
{
"path": "src/generics/convert.go",
"chars": 881,
"preview": "package generics\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n)\n\ntype Numeric interface {\n\t~int | ~int64 | ~uint64 | ~float64\n}\n\nfunc "
},
{
"path": "src/generics/pool.go",
"chars": 355,
"preview": "package generics\n\nimport \"sync\"\n\ntype Pool[T any] struct {\n\tpool sync.Pool\n\tnew func() T\n}\n\nfunc NewPool[T any](newFunc"
},
{
"path": "src/generics/slices.go",
"chars": 594,
"preview": "package generics\n\nimport \"fmt\"\n\n// ParseStringSlice converts any slice to a string slice\nfunc ParseStringSlice(param any"
},
{
"path": "src/go.mod",
"chars": 4244,
"preview": "module github.com/jandedobbeleer/oh-my-posh/src\n\ngo 1.26.0\n\nrequire (\n\tgithub.com/Azure/go-ansiterm v0.0.0-2025010203350"
},
{
"path": "src/go.sum",
"chars": 20679,
"preview": "dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=\ndario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMI"
},
{
"path": "src/log/log.go",
"chars": 2178,
"preview": "package log\n\nimport (\n\t\"fmt\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n\t\"time\"\n)\n\nvar (\n\tenabled bool\n\traw bool\n\n\tlog s"
},
{
"path": "src/log/print.go",
"chars": 1876,
"preview": "package log\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype logType byte\n\nconst (\n\tdebug logType = 1 << iota\n\tbug\n\ttrace\n)\n\n"
},
{
"path": "src/main.go",
"chars": 105,
"preview": "package main\n\nimport (\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cli\"\n)\n\nfunc main() {\n\tcli.Execute()\n}\n"
},
{
"path": "src/main_test.go",
"chars": 771,
"preview": "package main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"testing\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cli\"\n\t\"github.com/jandedob"
},
{
"path": "src/maps/concurrent.go",
"chars": 1064,
"preview": "package maps\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n)\n\nfunc NewConcurrent[V any]() *C"
},
{
"path": "src/maps/config.go",
"chars": 1000,
"preview": "package maps\n\nimport (\n\t\"encoding/gob\"\n)\n\nfunc init() {\n\tgob.Register(&Config{})\n\tgob.Register(&Map{})\n}\n\ntype Config st"
},
{
"path": "src/maps/simple.go",
"chars": 261,
"preview": "package maps\n\n// Simple is a generic map type that can be specialized for different value types\ntype Simple[V any] map[s"
},
{
"path": "src/metadata.json",
"chars": 394,
"preview": "{\n \"Endpoint\": \"https://weu.codesigning.azure.net\",\n \"CodeSigningAccountName\": \"oh-my-posh\",\n \"CertificateProfileName"
},
{
"path": "src/prompt/debug.go",
"chars": 2607,
"preview": "package prompt\n\nimport (\n\t\"fmt\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/o"
},
{
"path": "src/prompt/engine.go",
"chars": 16325,
"preview": "package prompt\n\nimport (\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbele"
},
{
"path": "src/prompt/engine_test.go",
"chars": 12585,
"preview": "package prompt\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"testing\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com"
},
{
"path": "src/prompt/extra.go",
"chars": 2610,
"preview": "package prompt\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/color\"\n\t\"github.com/jandedobbeleer/oh-my-pos"
},
{
"path": "src/prompt/preview.go",
"chars": 1001,
"preview": "package prompt\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/log\"\n\t\"github.com/jandedobbeleer/oh-my-posh/"
},
{
"path": "src/prompt/primary.go",
"chars": 3810,
"preview": "package prompt\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbelee"
},
{
"path": "src/prompt/rprompt.go",
"chars": 1063,
"preview": "package prompt\n\nimport (\n\t\"github.com/jandedobbeleer/oh-my-posh/src/cache\"\n\t\"github.com/jandedobbeleer/oh-my-posh/src/co"
},
{
"path": "src/prompt/segments.go",
"chars": 4838,
"preview": "package prompt\n\nimport (\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbeleer/oh-my-p"
},
{
"path": "src/prompt/segments_test.go",
"chars": 4906,
"preview": "package prompt\n\nimport (\n\t\"testing\"\n\t\"time\"\n\n\t\"github.com/jandedobbeleer/oh-my-posh/src/config\"\n\t\"github.com/jandedobbel"
},
{
"path": "src/prompt/status.go",
"chars": 101,
"preview": "package prompt\n\nfunc (e *Engine) Status() string {\n\te.writePrimaryPrompt(false)\n\treturn e.string()\n}\n"
}
]
// ... and 674 more files (download for full content)
About this extraction
This page contains the full source code of the JanDeDobbeleer/oh-my-posh GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 874 files (3.2 MB), approximately 887.7k tokens, and a symbol index with 2845 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.