Files
starship/docs/uk-UA/advanced-config/README.md
T

613 lines
38 KiB
Markdown
Raw Normal View History

2022-12-12 14:14:19 +09:00
# Розширені налаштування
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Хоча Starship і універсальна оболонка, іноді необхідно зробити більше ніж просто змінити `star.toml`, щоб можна було робити певні речі. Ця сторінка містить деякі з найбільш докладних методів налаштувань, які використовуються у starship.
2022-10-14 21:53:32 -04:00
2025-10-25 20:33:44 +09:00
> [!WARNING] Конфігурації в цьому розділі можуть бути змінені в майбутніх випусках Starship.
2022-10-14 21:53:32 -04:00
2022-12-12 14:14:19 +09:00
## TransientPrompt у PowerShell
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Можна замінити попередній командний рядок на власний. Це корисно у випадках, коли вся інформація у ньому не завжди потрібна. Щоб увімкнути це, запустіть `Enable-TransientPrompt` в сеансі оболонки. Щоб зробити цю поведінку постійною, додайте цю команду у ваш `$PROFILE`. Перехідність можна вимкнути на льоту за допомогою `Disable-TransientPrompt`.
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Типово, ліва частина вводу буде замінена на `>`. Щоб налаштувати це, створіть нову функцію з назвою `Invoke-Starship-TransientFunction`. Наприклад, щоб показати тут модуль Starship `character`, вам потрібно
2022-10-14 21:53:32 -04:00
```powershell
function Invoke-Starship-TransientFunction {
&starship module character
}
Invoke-Expression (&starship init powershell)
Enable-TransientPrompt
```
2023-04-11 13:05:27 +09:00
## TransientPrompt та TransientRightPrompt в Cmd
2022-10-14 21:53:32 -04:00
2023-04-11 13:05:27 +09:00
Clink дозволяє замінювати попередньо надрукований командний рядок іншим рядком. Це корисно у випадках, коли вся інформація з командного рядка не потрібна. Щоб увімкнути це, виконайте `clink set prompt.transient <value>`, де \<value\> може бути одним з:
2022-10-14 21:53:32 -04:00
2023-04-11 13:05:27 +09:00
- `always`: завжди замінює попередній командний рядок
- `same_dir`: замінює попередній командний рядок тільки якщо робоча тека не змінювалась
- `off`: не змінює командний рядок (тобто функцію вимкнено)
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Це треба зробити лише один раз. Зробіть наступні зміни у `starship.lua`, щоб налаштувати, що показується ліворуч і праворуч:
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
- Типово, ліва частина вводу буде замінена на `>`. Щоб налаштувати це, створіть нову функцію з назвою `starship_transient_prompt_func`. Ця функція отримує поточний текст командного рядка, з яким ви зможете працювати. Наприклад, щоб показати тут модуль Starship `character`, вам потрібно
2022-10-14 21:53:32 -04:00
```lua
function starship_transient_prompt_func(prompt)
return io.popen("starship module character"
.." --keymap="..rl.getvariable('keymap')
):read("*a")
end
load(io.popen('starship init cmd'):read("*a"))()
```
2023-04-13 03:43:40 +09:00
- Типово, права частина вводу є порожньою. Щоб кастомізувати її, створіть нову функцію з назвою `starship_transient_rprompt_func`. Ця функція отримує поточний текст командного рядка, з яким ви зможете працювати. Наприклад, щоб показати час, коли була запущена остання команда, ви можете зробити
2022-10-14 21:53:32 -04:00
```lua
function starship_transient_rprompt_func(prompt)
return io.popen("starship module time"):read("*a")
end
load(io.popen('starship init cmd'):read("*a"))()
```
2023-04-11 13:05:27 +09:00
## TransientPrompt та TransientRightPrompt у Fish
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Можна замінити попередньо надрукований командний рядок на власний. Це корисно у випадках, коли вся інформація з командного рядка не потрібна. Щоб увімкнути це, запустіть `enable_transience` в сеансі оболонки. Щоб зробити цю змінну постійною, додайте цей вираз до ваших налаштувань `~/.config/fish/config.fish`. Перехідність може бути вимкнена за допомогою `disable_transience`.
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Зверніть увагу, що у випадку Fish, перехідний командний рядок буде надруковано лише тоді, коли командний рядок не порожній та синтаксично правильний.
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
- Типово, ліва частина вводу буде замінена на зелений символ ``. Щоб кастомізувати її, створіть нову функцію з назвою `starship_transient_prompt_func`. Наприклад, щоб показати тут модуль Starship `character`, вам потрібно
2022-10-14 21:53:32 -04:00
```fish
function starship_transient_prompt_func
starship module character
end
starship init fish | source
enable_transience
```
2023-04-13 03:43:40 +09:00
- Типово, права частина вводу є порожньою. Щоб кастомізувати її, створіть нову функцію з назвою `starship_transient_rprompt_func`. Наприклад, щоб показати час, коли була запущена остання команда, ви можете зробити
2022-10-14 21:53:32 -04:00
```fish
function starship_transient_rprompt_func
starship module time
end
starship init fish | source
enable_transience
```
2024-02-24 17:49:00 +09:00
## TransientPrompt та TransientRightPrompt в Bash
2024-05-16 02:07:00 +09:00
[Ble.sh](https://github.com/akinomyoga/ble.sh) v0.4 або вище дозволяє замінювати попередньо надрукований командний рядок іншим рядком. Це корисно у випадках, коли вся інформація з командного рядка не потрібна. Для увімкнення цього додайте до `~/.bashrc` рядок `bleopt prompt_ps1_transient=<value>`:
2024-02-24 17:49:00 +09:00
2024-05-16 02:07:00 +09:00
\<value\> тут  – це розділений двокрапкою список `always`, `same-dir` та `trim`. Якщо `prompt_ps1_final` порожній і параметр `prompt_ps1_transient` має не пусте значення \<value\>, командний рядок, вказаний у `PS1` буде стертий при виході з поточного командного рядка. Якщо \<value\> містить поле `trim`, тільки останній рядок багаторядкового `PS1` буде збережений, а інші вилучені. В іншому випадку командний рядок буде встановлено перестворено, якщо вказано `PS1=`. Коли поле `same-dir` міститься у \<value\> та поточна тека є відмінною від останньої теки у попередньому виводі командного рядка, параметр `prompt_ps1_transient` не враховується.
2024-02-24 17:49:00 +09:00
2024-05-16 02:07:00 +09:00
Зробіть наступні зміни у `~/.blerc` (або у `~/.config/blesh/init.sh`), щоб налаштувати, що показується ліворуч і праворуч:
2024-02-24 17:49:00 +09:00
- Для налаштування того, чим замінюється ліва частина вводу, налаштуйте параметр `prompt_ps1_final`. Наприклад, щоб показати тут модуль Starship `character`, вам потрібно
```bash
2024-05-16 02:07:00 +09:00
bleopt prompt_ps1_final='$(starship module character)'
2024-02-24 17:49:00 +09:00
```
- Для налаштування того, чим замінюється права частина вводу, налаштуйте параметр `prompt_rps1_final`. Наприклад, щоб показати час, коли була запущена остання команда, ви можете зробити
```bash
2024-05-16 02:07:00 +09:00
bleopt prompt_rps1_final='$(starship module time)'
2024-02-24 17:49:00 +09:00
```
2023-04-13 03:43:40 +09:00
## Власні команди pre-prompt та pre-execution в Cmd
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Clink забезпечує надзвичайно гнучкий API для виконання команд pre-prompt і pre-exec в Cmd. Його досить просто використовувати в Starship. Зробіть наступні зміни у вашому `starship.lua` відповідно до ваших вимог:
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
- Для запуску власних функцій прямо перед виводом командного рядка, визначте нову функцію з назвою `starship_preprompt_user_func`. Ця функція отримує поточний текст командного рядка, з яким ви зможете працювати. Наприклад, щоб показати ракету перед командним рядком, ви можете зробити наступне
2022-10-14 21:53:32 -04:00
```lua
function starship_preprompt_user_func(prompt)
print("🚀")
end
load(io.popen('starship init cmd'):read("*a"))()
```
2023-04-13 03:43:40 +09:00
- Для запуску власних функцій прямо перед виконанням команди, визначте нову функцію з назвою `starship_precmd_user_func`. Ця функція отримує поточний текст команди, з яким ви зможете працювати. Наприклад, для виводу команди, яка буде виконана, вам треба зробити
2022-10-14 21:53:32 -04:00
```lua
function starship_precmd_user_func(line)
print("Executing: "..line)
end
load(io.popen('starship init cmd'):read("*a"))()
```
2023-04-13 03:43:40 +09:00
## Власні команди pre-prompt та pre-execution в Bash
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Bash не має офіційної системи preexec/precmd, як більшість інших оболонок. Через це важко забезпечити повністю настроювані гачки для цього в `bash`. Однак, Starship дає можливість вставити свої власні функції в процедуру виводу командного рядка:
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
- Для запуску власних функцій прямо перед виводом командного рядка, визначте нову функцію з назвою `starship_precmd_user_func`. Наприклад, щоб показати ракету перед командним рядком, ви можете зробити наступне
2022-10-14 21:53:32 -04:00
```bash
function blastoff(){
echo "🚀"
}
starship_precmd_user_func="blastoff"
```
2023-04-13 03:43:40 +09:00
- Щоб запустити власну функцію прямо перед запуском команди, можна використати механізм [`DEBUG` trap](https://jichu4n.com/posts/debug-trap-and-prompt_command-in-bash/). Однак, ви **повинні** перехопити сигнал DEBUG _перед_ ініціалізацією Starship! Starship може зберегти значення перехоплення DEBUG, але якщо перехоплення буде перезаписане після початку запуску, деякі функції не працюватимуть.
2022-10-14 21:53:32 -04:00
```bash
function blastoff(){
echo "🚀"
}
trap blastoff DEBUG # Trap DEBUG *before* running starship
set -o functrace
eval $(starship init bash)
set +o functrace
```
2023-04-13 03:43:40 +09:00
## Власні команди pre-prompt та pre-execution в PowerShell
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
PowerShell не має офіційної системи preexec/precmd, як більшість інших оболонок. Через це важко забезпечити повністю настроювані гачки для цього в `powershell`. Однак, Starship дає можливість вставити свої власні функції в процедуру виводу командного рядка:
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Створіть функцію з назвою `Invoke-Starship-PreCommand`
2022-10-14 21:53:32 -04:00
```powershell
function Invoke-Starship-PreCommand {
$host.ui.Write("🚀")
}
```
2023-04-13 03:43:40 +09:00
## Зміна заголовка вікна
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
В деяких оболонках командний рядок автоматично змінює заголовок вікна (наприклад, на назву поточної теки). У Fish це стандартна поведінка. Starship цього не робить, але це досить просто зробити у `bash`, `zsh`, `cmd` або `powershell`.
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Спочатку визначте функцію зміни заголовка вікна (в bash і zsh – однаково):
2022-10-14 21:53:32 -04:00
```bash
function set_win_title(){
echo -ne "\033]0; YOUR_WINDOW_TITLE_HERE \007"
}
```
2023-04-13 03:43:40 +09:00
Ви можете використовувати змінні для налаштування цього заголовка (`$USER`, `$HOSTNAME`, та `$PWD` – є досить популярними).
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
У `bash` встановіть цю функцію як функцію precmd у starship:
2022-10-14 21:53:32 -04:00
```bash
starship_precmd_user_func="set_win_title"
```
2023-04-13 03:43:40 +09:00
У `zsh` додайте наступне до масиву `precmd_functions`:
2022-10-14 21:53:32 -04:00
```bash
precmd_functions+=(set_win_title)
```
2023-04-13 03:43:40 +09:00
Якщо вам подобається результат, додайте ці рядки до файлу налаштування оболонки (`~/.bashrc` чи `~/.zshrc`), щоб зробити його постійним.
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Наприклад, якщо ви хочете показати вашу поточну теку у заголовку вкладці термінала, додайте наступний сніпет до вашого `~/.bashrc` або `~/.zshrc`:
2022-10-14 21:53:32 -04:00
```bash
function set_win_title(){
echo -ne "\033]0; $(basename "$PWD") \007"
}
starship_precmd_user_func="set_win_title"
```
2023-04-13 03:43:40 +09:00
Для Cmd, ви можете змінити заголовок вікна за допомогою функції `starship_preprompt_user_func`.
2022-10-14 21:53:32 -04:00
```lua
function starship_preprompt_user_func(prompt)
console.settitle(os.getenv('USERNAME').."@"..os.getenv('COMPUTERNAME')..": "..os.getcwd())
end
load(io.popen('starship init cmd'):read("*a"))()
```
2023-04-13 03:43:40 +09:00
Ви також можете встановити подібний вивід у PowerShell, створивши функцію з назвою `Invoke-Starship-PreCommand`.
2022-10-14 21:53:32 -04:00
```powershell
# edit $PROFILE
function Invoke-Starship-PreCommand {
2023-06-06 10:10:23 -04:00
$host.ui.RawUI.WindowTitle = "$env:USERNAME@$env:COMPUTERNAME`: $pwd `a"
2022-10-14 21:53:32 -04:00
}
Invoke-Expression (&starship init powershell)
```
2026-04-18 20:11:45 +09:00
## Командний рядок праворуч {#enable-right-prompt}
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Деякі оболонки підтримують вивід командного рядка праворуч. Starship може встановити вміст правої частини командного рядка за допомогою параметра `right_format`. Будь-який модуль, який можна використовувати у `format`, також підтримується у `right_format`. Змінна `$all` міститиме лише модулі, які явно не використовується, а ні в `format`, а ні в `right_format`.
2022-10-14 21:53:32 -04:00
2024-03-21 20:42:05 +09:00
Примітка: командний рядок праворуч – це один рядок, що знаходиться праворуч у рядку вводу. Щоб вирівняти модулі праворуч над рядком введення в багаторядковому запиті, перегляньте [модуль `fill`](../config/#fill).
2022-10-14 21:53:32 -04:00
2024-02-24 17:49:00 +09:00
`right_format` наразі підтримується для таких оболонок: elvish, fish, zsh, xonsh, cmd, nushell, bash.
2024-05-16 02:07:00 +09:00
Примітка: фреймворк [Ble.sh](https://github.com/akinomyoga/ble.sh) v0.4 або вище має бути встановлений для того, щоб використовувати розташування командного рядка в bash праворуч.
2022-12-05 15:54:12 +09:00
2023-04-11 13:05:27 +09:00
### Приклад
2022-10-14 21:53:32 -04:00
```toml
# ~/.config/starship.toml
2023-04-13 03:43:40 +09:00
# Мінімум ліворуч
2022-10-14 21:53:32 -04:00
format = """$character"""
2023-04-13 03:43:40 +09:00
# решту командного рядка перенесемо праворуч
2022-10-14 21:53:32 -04:00
right_format = """$all"""
```
2023-04-13 03:43:40 +09:00
Отримаємо командний рядок наступного виду:
2022-10-14 21:53:32 -04:00
```
▶ starship on  rprompt [!] is 📦 v0.57.0 via 🦀 v1.54.0 took 17s
```
2023-04-13 03:43:40 +09:00
## Подовжений ввід
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Деякі оболонки підтримують подовження вводу так само як і звичайний ввід в командний рядок. Такий ввід буде показаний замість звичайного, колі користувач ввів символ продовження вводу (наприклад одну ліву дужку чи лапку).
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
У Starship можна встановити показ продовженого вводу за допомогою параметра `continuation_prompt`. Стандартний командний рядок — `'[∙](bright-black) '`.
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Примітка: `continuation_prompt` слід встановити на літеральний рядок без жодних змінних.
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Примітка: Подовжений ввід доступний лише для наступних оболонок:
2022-10-14 21:53:32 -04:00
- `bash`
- `zsh`
- `PowerShell`
2023-04-11 13:05:27 +09:00
### Приклад
2022-10-14 21:53:32 -04:00
```toml
# ~/.config/starship.toml
2023-04-13 03:43:40 +09:00
# Подовжений ввід позначається двома стрілками
2023-02-01 01:14:38 +09:00
continuation_prompt = '▶▶ '
2022-10-14 21:53:32 -04:00
```
2026-04-18 20:11:45 +09:00
## Рядок стану для Claude Code
Starship підтримує показ власного рядка стану під час роботи в Claude Code — інструменті командного рядка від Anthropic, призначеному для інтерактивного програмування за допомогою Claude. Ця рядок стану надає інформацію в режимі реального часу про вашу сесію Claude, зокрема про використовувану модель, використання вікна контексту та вартість сесії.
Докладнішу інформацію про функцію рядка стану Claude Code див. у [документації щодо рядка стану Claude Code](https://code.claude.com/docs/en/statusline).
### Встановлення
Щоб використовувати Starship як рядок стану Claude Code:
1. Запустіть `/statusline` в Claude Code і попросіть його налаштувати Starship, або вручну додати наступне на Ваш `.claude/settings.json`:
```json
{
"statusLine": {
"type": "command",
"command": "starship statusline claude-code"
}
}
```
2. Налаштуйте вигляд рядка стану у файлі `~/.config/starship.toml` (див. розділ [Налаштування](#configuration) нижче)
### Огляд
При запуску з параметром `starship statusline claude-code` Starship отримує дані сеансу Claude Code через стандартний ввід (stdin) і показує рядок стану, використовуючи спеціальний профіль з назвою `claude-code`.
Профіль містить три спеціалізовані модулі:
- `claude_model`: Показує поточну модель, яка використовується в Claude
- `claude_context`: Показує використання контекстного вікна за допомогою візуального індикатора
- `claude_cost`: Показує вартість сеансу та статистичні дані
Типовий формат профілю:
```toml
[profiles]
claude-code = "$claude_model$git_branch$claude_context$claude_cost"
```
### Налаштування
Ви можете налаштувати рядок стану коду Claude Code змінивши профіль `claude-code` і окремі конфігурації модулів в `~/.config/starship.toml`:
```toml
# ~/.config/starship.toml
# Customize the claude-code profile
[profiles]
claude-code = "$claude_model$claude_context$claude_cost"
# Configure individual modules
[claude_model]
format = "[$symbol$model]($style) "
symbol = "🤖 "
style = "bold blue"
[claude_context]
format = "[$gauge $percentage]($style) "
gauge_width = 10
[claude_cost]
format = "[$symbol$cost]($style) "
symbol = "💰 "
```
### Claude Model
Модуль `claude_model` показує поточну модель Claude, яка використовується в сесії.
#### Параметри
| Параметр | Стандартно | Опис |
| --------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `format` | `'[$symbol$model]($style) '` | Формат модуля. |
| `symbol` | `'🤖 '` | Симовл, який показується перед назвою моделі. |
| `style` | `'bold blue'` | Стиль модуля. |
| `model_aliases` | `{}` | Звʼязує ідентифікатори моделей або їхні назви з коротшими псевдонімами. Спочатку перевіряється ідентифікатор, потім назва. |
| `disabled` | `false` | Вимикає модуль `claude_model`. |
#### Змінні
| Змінна | Приклад | Опис |
| --------- | ------------------- | ---------------------------------------- |
| model | `Claude 3.5 Sonnet` | Імʼя поточної моделі |
| model_id | `claude-3-5-sonnet` | ID моделі |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
\*: Ця змінна може бути використана лише як частина стилю рядка
#### Приклади
```toml
# ~/.config/starship.toml
# Базові налаштування
[claude_model]
format = "on [$symbol$model]($style) "
symbol = "🧠 "
style = "bold cyan"
# Використання псевдонімів для моделей із власними назвами постачальників
# Аліаси можна створити за ідентифікатором моделі або за її назвою
[claude_model.model_aliases]
# Аліас за ID моделі від постачальника (напр. AWS Bedrock)
"global.anthropic.claude-sonnet-4-5-20250929-v1:0" = "Sonnet 4.5"
# Аліас за назвою
"Claude Sonnet 4.5 (Vendor Proxy)" = "Sonnet"
```
### Claude Context
Модуль `claude_context` показує використання контекстного вікна у вигляді відсотка і візуального індикатора. Стиль автоматично змінюється на основі налаштованих порогів.
#### Параметри
| Параметр | Стандартно | Опис |
| ---------------------- | --------------------------------- | --------------------------------------------------------------------------- |
| `format` | `'[$gauge $percentage]($style) '` | Формат модуля. |
| `symbol` | `''` | Символ, який показується перед індикатором. |
| `gauge_width` | `5` | Ширина індикатора в символах. |
| `gauge_full_symbol` | `'█'` | Символ, який використовується для заповнених сегментів індикатора. |
| `gauge_partial_symbol` | `'▒'` | Символ, який використовується для частково заповнених сегментів індикатора. |
| `gauge_empty_symbol` | `'░'` | Символ, який використовується для не заповнених сегментів індикатора. |
| `display` | [дивіться нижче](#display) | Налаштування порогів та стилів. |
| `disabled` | `false` | Вимикає модуль `claude_context`. |
##### Display
Параметр `display` — це масив об’єктів, які визначають порогові значення та стилі для різних рівнів використання. Модуль використовує стиль із найвищим порогом відповідності або приховує модуль, якщо `hidden` має значення `true`.
| Параметр | Стандартно | Опис |
| ----------- | ------------ | ----------------------------------------------------------------------------------- |
| `threshold` | `0.0` | Мінімальний відсоток використання контекстних вікон, що відповідає цій конфігурації |
| `style` | `bold green` | Значення `style`, якщо ця конфігурація візуалізації має збіг |
| `hidden` | `false` | Приховати цей модуль, якщо він збігається з конфігурацією. |
```toml
[[claude_context.display]]
threshold = 0
hidden = true
[[claude_context.display]]
threshold = 30
style = "bold green"
[[claude_context.display]]
threshold = 60
style = "bold yellow"
[[claude_context.display]]
threshold = 80
style = "bold red"
```
#### Змінні
| Змінна | Приклад | Опис |
| ---------------------------- | ------- | ------------------------------------------------------------------------- |
| gauge | `██▒░░` | Візуальне представлення використання контексту |
| percentage | `65%` | Використання контексту у відсотках |
| input_tokens | `45.2k` | Загальна кількість input-токенів, використаних у розмові |
| output_tokens | `12.3k` | Загальна кількість output-токенів, використаних у розмові |
| curr_input_tokens | `5.1k` | Кількість input-токенів в останньому API-виклику |
| curr_output_tokens | `1.2k` | Кількість output-токенів в останньому API-виклику |
| curr_cache_creation_tokens | `1.5k` | Кеш з токенів створення з останнього виклику API |
| curr_cache_read_tokens | `23.4k` | Кеш з токенів читання з останнього виклику API |
| total_tokens | `200k` | Загальний розмір контекстного вікна |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Повторює стиль, що збігається з відповідним пороговим значення для показу |
\*: Ця змінна може бути використана лише як частина стилю рядка
#### Приклади
**Тільки індикатор**
```toml
# ~/.config/starship.toml
[claude_context]
format = "[$gauge]($style) "
gauge_width = 10
```
**Докладні відомості про використання токенів**
```toml
# ~/.config/starship.toml
[claude_context]
format = "[$percentage ($input_tokens in / $output_tokens out)]($style) "
```
**Власні символи для індикатора**
```toml
# ~/.config/starship.toml
[claude_context]
gauge_full_symbol = "▰"
gauge_partial_symbol = ""
gauge_empty_symbol = "▱"
gauge_width = 10
format = "[$gauge]($style) "
```
**Власні порогові значення**
```toml
# ~/.config/starship.toml
[[claude_context.display]]
threshold = 0
style = "bold green"
[[claude_context.display]]
threshold = 50
style = "bold yellow"
[[claude_context.display]]
threshold = 75
style = "bold orange"
[[claude_context.display]]
threshold = 90
style = "bold red"
```
### Claude Cost
Модуль `claude_cost` показує загальну вартість поточної сесії Claude Code в доларах США. Як і `claude_context`, він підтримує стилізацію на основі порогових значень.
#### Параметри
| Параметр | Стандартно | Опис |
| ---------- | ---------------------------------- | -------------------------------------------- |
| `format` | `'[$symbol(\\$$cost)]($style) '` | Формат модуля. |
| `symbol` | `'💰 '` | Символ, який показується перед сумою витрат. |
| `display` | [дивіться нижче](#display-1) | Налаштування порогів та стилів. |
| `disabled` | `false` | Вимикає модуль `claude_cost`. |
##### Display
Параметр `display` — це масив об’єктів, які визначають порогові значення та стилі для порогових значень витрат. Модуль використовує стиль із найвищим порогом відповідності або приховує модуль, якщо `hidden` має значення `true`.
| Параметр | Стандартно | Опис |
| ----------- | ------------ | ------------------------------------------------------------ |
| `threshold` | `0.0` | Мінімальна вартість у доларах США для такої конфігурації |
| `style` | `bold green` | Значення `style`, якщо ця конфігурація візуалізації має збіг |
| `hidden` | `false` | Приховати цей модуль, якщо він збігається з конфігурацією. |
**Стандартні налаштування:**
```toml
[[claude_cost.display]]
threshold = 0.0
hidden = true
[[claude_cost.display]]
threshold = 1.0
style = "bold yellow"
[[claude_cost.display]]
threshold = 5.0
style = "bold red"
```
#### Змінні
| Змінна | Приклад | Опис |
| ------------- | -------- | ------------------------------------------------------------------------- |
| cost | `1.23` | Загальна вартість сесії у доларах (з центами) |
| duration | `1m 30s` | Загальна тривалість сеансу |
| api_duration | `45s` | Загальна тривалість API-виклику |
| lines_added | `1.2k` | Загальна кількість доданих рядків коду |
| lines_removed | `500` | Загальна кількість вилучених рядків коду |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Повторює стиль, що збігається з відповідним пороговим значення для показу |
\*: Ця змінна може бути використана лише як частина стилю рядка
#### Приклади
```toml
# ~/.config/starship.toml
# Витрати зі статистикою змін у коді
[claude_cost]
format = "[$symbol$cost (+$lines_added -$lines_removed)]($style) "
# Приховати модуль, доки вартість не перевищить $0,10
[[claude_cost.display]]
threshold = 0.0
hidden = true
[[claude_cost.display]]
threshold = 0.10
style = "bold yellow"
[[claude_cost.display]]
threshold = 2.0
style = "bold red"
# Показувати інформацію про тривалість роботи
[claude_cost]
format = "[$symbol$cost ($duration)]($style) "
```
## Рядки стилів {#style-strings}
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Рядки стилю — список слів, розділених пробілами. Слова не чутливі до регістру (наприклад `bold` і `BoLd` вважаються однаковими). Кожне слово може бути одним з наступних:
2022-10-14 21:53:32 -04:00
- `bold`
- `italic`
- `underline`
- `dimmed`
- `inverted`
- `blink`
- `hidden`
- `strikethrough`
- `bg:<color>`
- `fg:<color>`
- `<color>`
- `none`
2024-10-18 03:20:57 +09:00
де `<color>` є специфікацією кольору (обговорюється нижче). `fg:<color>` та `<color>` на цей час роблять те саме, хоча це може змінитися в майбутньому. `<color>` може також мати значення `prev_fg` або `prev_bg`, які обчислюють колір тексту або фону попереднього елемента відповідно, якщо він доступний, або `none` у протилежному випадку. `inverted` замінює кольори тла і тексту. Порядок слів у рядку не має значення.
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Токен `none` перевизначає всі інші токени у рядку, якщо він не є частиною `bg:`, так `fg:red none fg:blue` все одно створить рядок без стилізування. `bg:none` встановлює типовий колір фону, таким чином, `fg:red bg:none` еквівалентно `red` або `fg:red`, а `bg:green fg:red fg:none` також еквівалентно `fg:red` або `red`. Використання `none` у поєднанні з іншими токенами в майбутньому може стати помилкою.
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Визначення кольору може бути одним з наступних:
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
- Один за стандартних кольорів термінала: `black`, `red`, `green`, `blue`, `yellow`, `purple`, `cyan`, `white`. Ви можете опціонально додавати префікс `bright-`, щоб отримати яскраву версію (наприклад, `bright-white`).
- `#` за яким йде шестизначний шістнадцятковий код кольору. Цей код вказує на [шістнадцятковий код RGB](https://www.w3schools.com/colors/colors_hexadecimal.asp).
- Число від 0-255. Число визначає [8-бітний код кольору ANSI](https://i.stack.imgur.com/KTSQa.png).
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Якщо для тексту та фону задано кілька кольорів, останній в рядку буде мати вищий пріоритет.
2022-10-14 21:53:32 -04:00
2023-04-13 03:43:40 +09:00
Не кожен рядок стилю буде правильно показуватись у кожному терміналі. Зокрема, існують такі відомі примхи:
2022-10-14 21:53:32 -04:00
2024-05-16 02:07:00 +09:00
- Багато терміналів стандартно вмикають підтримку `blink`.
2023-04-13 03:43:40 +09:00
- `hidden` [не підтримується в iTerm](https://gitlab.com/gnachman/iterm2/-/issues/4564).
2024-05-16 02:07:00 +09:00
- `strikethrough` не підтримується стандартно в macOS Terminal.app.