# Налаштування
Щоб почати налаштування starship, створіть наступний файл: `~/.config/starship.toml`.
```sh
mkdir -p ~/.config && touch ~/.config/starship.toml
```
Всі налаштування для starship виконуються в цьому [TOML](https://github.com/toml-lang/toml) файлі:
```toml
# Отримання автозавершення вводу команд з config-schema.json
"$schema" = 'https://starship.rs/config-schema.json'
# Додавати порожні рядки між командними рядками
add_newline = true
# Заміняти символ '❯' в командному рядку на символ '➜'
[character] # Назва модуля, який ми налаштовуємо – 'character'
success_symbol = '[➜](bold green)' # Частина 'success_symbol' буде використовувати символ '➜' підсвічений значенням 'bold green'
# Вимкнути модуль package, повністю приховавши його в командному рядку
[package]
disabled = true
```
### Розташування файлу налаштувань
Ви можете змінити типове розташування файлу налаштувань за допомогою змінної середовища `STARSHIP_CONFIG`:
```sh
export STARSHIP_CONFIG=~/example/non/default/path/starship.toml
```
Так само і в PowerShell (Windows), можна додати цей рядок до `$PROFILE`:
```powershell
$ENV:STARSHIP_CONFIG = "$HOME\example\non\default\path\starship.toml"
```
Або для Cmd (Windows), додайте рядок до вашого файлу `starship.lua`:
```lua
os.setenv('STARSHIP_CONFIG', 'C:\\Users\\user\\example\\non\\default\\path\\starship.toml')
```
### Ведення журналу
Стандартно starship виводить попередження та інформацію про помилки у файл `~/.cache/starship/session_${STARSHIP_SESSION_KEY}.log`, де ключ сесії відповідає екземпляру вашого термінала. Це, однак, може бути змінено за допомогою змінної середовища `STARSHIP_CACHE`:
```sh
export STARSHIP_CACHE=~/.starship/cache
```
Так само і в PowerShell (Windows), можна додати цей рядок до `$PROFILE`:
```powershell
$ENV:STARSHIP_CACHE = "$HOME\AppData\Local\Temp"
```
Або для Cmd (Windows), додайте рядок до вашого файлу `starship.lua`:
```lua
os.setenv('STARSHIP_CACHE', 'C:\\Users\\user\\AppData\\Local\\Temp')
```
### Термінологія
**Модуль**: Компонент командного рядка, що надає інформацію на основі контексту з вашої ОС. Наприклад, модуль "nodejs" показує версію Node.js, яка встановлена на вашому компʼютері, якщо ваша поточна тека є проєктом Node.js.
**Змінна**: менші субкомпоненти, що містять інформацію, що надається модулем. Наприклад, змінна "version" в модулі "nodejs" містить поточну версію Node.js.
Згідно з правилами, більшість модулів мають префікс стандартного кольору термінала (наприклад, `via` в "nodejs") та порожнє місце як суфікс.
### Рядки
В синтаксисі TOML [текстові значення](https://toml.io/en/v1.0.0#string) оголошуються за допомогою лапок `'`, `"`, `'''`, or `"""`.
Наступні символи синтаксису Starship мають спеціальне призначення у форматуванні рядків і повинні бути екрановані, якщо ви хочете показувати їх як символи: `$ [ ] ( )`.
| Символ | Тип | Примітки |
| ------ | ---------------------- | --------------------------------------------------------------------- |
| `'` | літерал | менш екранований |
| `"` | рядок | більш екранований |
| `'''` | багаторядковий літерал | менш екранований |
| `"""` | багаторядковий рядок | більш екранований, нові рядки в оголошеннях можуть бути проігноровані |
Наприклад:
```toml
# літерал
format = '☺\☻ '
# звичайний рядок
format = "☺\\☻ "
# екрановані службові символи Starship
format = '\[\$\] '
```
При використанні символів розриву рядків можна використовувати багаторядкові оголошення. Наприклад, якщо ви хочете вивести символ `$` на новий рядок, такі значення для `format` є еквівалентними:
```toml
# для літералів
format = '''
\$'''
# для звичайних багаторядкових рядків
format = """
\\$"""
# для звичайних рядків
format = "\n\\$"
```
У звичайних рядках, символ нового рядка можна використовувати наступним чином, щоб уникнути його показу.
```toml
format = """
line1\
line1\
line1
line2\
line2\
line2
"""
```
### Формат рядків
Формат рядків це формат, з яким модуль виводить всі змінні. У більшості модулів є запис з назвою `format`, який налаштовує формат виводу модуля. Можна використовувати текст, змінні та текстові групи у форматуванні рядків.
#### Змінна
Змінна починається з символу `$`, за яким йде назва змінної. Назва змінною може складатись лише з літер та цифр та символу `_`.
Наприклад:
- `'$version` – це форматований рядок зі змінною з назвою `version`.
- `$git_branch$git_commit'` – рядок з двома змінними `git_branch` і `git_commit`.
- `'$git_branch $git_commit'` має дві змінні, розділені пробілом.
#### Текстова група
Текстова група складається з двох різних частин.
Перша частина, яка вкладена у квадратні дужки `[]` – це [форматований рядок](#format-strings). Ви можете додати текст, змінні або навіть вкладені текстові групи.
В наступній частині, що вкладена в круглі дужки `()`, міститься [опис стилю рядка](#style-strings). Ця частина використовується для стилізації першої частини.
Наприклад:
- `'[on](red bold)'` – виведе рядок `on` жирним шрифтом підсвічений червоним.
- `'[⌘ $version](bold green)'` – виведе символ `⌘` разом з вмістом змінної `version` жирним шрифтом підсвіченим зеленим.
- `'[a [b](red) c](green)'` – виведе `a b c`, де `b` – червона, а `a` та `c` – зелені.
#### Рядки стилів
Більшість модулів в starship дозволяють вам налаштовувати стилі їх виводу. Це робиться за допомогою запису (зазвичай `style`), який є рядком, що вказує на конфігурацію. Ось деякі приклади стилів поряд з тим, що вони роблять. За деталями щодо повного синтаксису зверніться до [Довідника з розширеного налаштування](/advanced-config/).
- `'fg:green bg:blue'` – зелений текст на блакитному фоні
- `'bg:blue fg:bright-green'` – яскраво зелений текст на блакитному фоні
- `'bold fg:27'` – жирний текст з [ANSI кольором](https://i.stack.imgur.com/KTSQa.png) 27
- `'underline bg:#bf5700'` – підкреслений текст на яскраво помаранчевому фоні
- `'bold italic fg:purple'` – жирний курсив пурпурового кольору
- `''` – явним чином вимикає всі стилі
Зверніть увагу, що те, як виглядатиме стиль, як буде залежати від вашого емулятора термінала. Наприклад, деякі емулятори терміналів будуть виділяти кольори замість показу жирного тексту, а також деякі кольорові теми використовують однакові значення для нормального і яскравого кольорів. Також, щоб отримати курсив, ваш термінал має містити його підтримку.
#### Умовне форматування
Рядок з умовним форматуванням, огорнутий в круглі дужки `(` та `)`, не буде показуватись якщо змінні в середині не містять значень.
Наприклад:
- `'(@$region)'` – не буде показуватись, якщо змінна `region` дорівнює `None` чи є порожнім рядком, в іншому випадку вона буде показана разом з `@`, за яким йде значення регіону.
- `'(якийсь текст)'` ніколи не буде показуватись, через те, що немає змінних, загорнутих в дужки.
- Коли `$combined` є посиланням для `\[$a$b\]`, `'($combined)'` не показуватиме нічого, лише якщо `$a` і `$b` одночасно містять `None`. Це працює так само й для `'(\[$a$b\] )'`.
### Негативний збіг
Багато модулів мають змінні `detect_extensions`, `detect_files` та `detect_folders`. Вони отримують перелік рядків для порівняння, чи в них є збіги, чи – немає. Символ для перевірки "негативного збігу" (негативний збіг – те що не має мати збігу з вказаним значенням) – '!' знак оклику, вказується на початку параметра, що перевіряється. Наявність _будь-якого_ індикатора негативного збігу в теці призведе до того, що результат роботи модуля буде перевірятись на негативний збіг.
Розширення зіставляються як із символами після останньої крапки в назві файлу, так і з символами після першої крапки в назві файлу. Наприклад, `foo.bar.tar.gz` буде збігатись з `bar.tar.gz` і `gz` у змінній `detect_extensions`. Файли, назва яких починається з крапки, взагалі не вважаються такими, що мають розширення.
Щоб побачити, як це працює на практиці, ви можете шукати збіг для файлів TypeScript, але не для MPEG Transport Stream, таким чином:
```toml
detect_extensions = ['ts', '!video.ts', '!audio.ts']
```
## Командний рядок
Це перелік параметрів налаштувань, що використовуються для всього командного рядка.
### Параметри
| Параметр | Стандартно | Опис |
| ----------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `format` | [link](#default-prompt-format) | Налаштовує формат командного рядка. |
| `right_format` | `''` | Див [Увімкнути командний рядок праворуч](/advanced-config/#enable-right-prompt) |
| `scan_timeout` | `30` | Тайм-аут для сканування файлів (у мілісекундах). |
| `command_timeout` | `500` | Тайм-аут для команд, виконаних starship (у мілісекундах). |
| `add_newline` | `true` | Вставити порожній рядок між командними рядками в оболонці. |
| `palette` | `''` | Встановлює кольорову палітру використовуючи `palettes`. |
| `palettes` | `{}` | Колекція кольорових палітр, для призначення [кольорів](/advanced-config/#style-strings) до назв визначених користувачем. Зверніть увагу, що кольорові палітри не можуть посилатися на їх власні визначення кольору. |
### Приклад
```toml
# ~/.config/starship.toml
# Використовуємо власний формат
format = '''
[┌───────────────────>](bold green)
[│](bold green)$directory$rust$package
[└─>](bold green) '''
# Чекаємо 10 мілісекунд, поки starship перевірить файли в поточній теці.
scan_timeout = 10
# Не додавати порожній рядок на початку командного рядка
add_newline = false
# Встановлює власну кольорову палітру 'foo'
palette = 'foo'
# Визначає власні кольори
[palettes.foo]
# Перевизначає наявний колір
blue = '21'
# Визначає новий колір
mustard = '#af8700'
```
### Стандартний формат командного рядка
Стандартне значення змінної `format` використовується для визначення вигляду командного рядка, якщо вона пуста або змінна `format` відсутня. Стандартне значення є таким, як зазначено нижче:
```toml
format = '$all'
# Which is equivalent to
format = """
$username\
$hostname\
$localip\
$shlvl\
$singularity\
$kubernetes\
$directory\
$vcsh\
$fossil_branch\
$fossil_metrics\
$git_branch\
$git_commit\
$git_state\
$git_metrics\
$git_status\
$hg_branch\
$pijul_channel\
$docker_context\
$package\
$c\
$cmake\
$cobol\
$daml\
$dart\
$deno\
$dotnet\
$elixir\
$elm\
$erlang\
$fennel\
$golang\
$guix_shell\
$haskell\
$haxe\
$helm\
$java\
$julia\
$kotlin\
$gradle\
$lua\
$nim\
$nodejs\
$ocaml\
$opa\
$perl\
$php\
$pulumi\
$purescript\
$python\
$raku\
$rlang\
$red\
$ruby\
$rust\
$scala\
$solidity\
$swift\
$terraform\
$vlang\
$vagrant\
$zig\
$buf\
$nix_shell\
$conda\
$meson\
$spack\
$memory_usage\
$aws\
$gcloud\
$openstack\
$azure\
$env_var\
$crystal\
$custom\
$sudo\
$cmd_duration\
$line_break\
$jobs\
$battery\
$time\
$status\
$os\
$container\
$shell\
$character"""
```
Якщо ви просто хочете розширити стандартний формат, можете використовувати `$all`; модулі, які ви явно додали до формату, не будуть подвоєні. Напр.
```toml
# Перемістити назву теки на другий рядок
format = '$all$directory$character'
```
## AWS
Модуль `aws` показує поточний регіон AWS і профіль, а також час, що залишився до кінця сесії при використанні тимчасових облікових даних. Для виводу модуль використовує змінні `AWS_REGION`, `AWS_DEFAULT_REGION` і `AWS_PROFILE` та файли `~/.aws/config` і `~/.aws/credentials`, коли треба.
Модуль показуватиме профіль якщо облікові дані знаходяться в `~/.aws/credentials` або коли `credential_process`, `sso_start_url`, чи `sso_session` визначені в `~/.aws/config`. Крім того, достатньо буде визначити будь-яку змінну `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` або `AWS_SESSION_TOKEN`. Якщо для параметра `force_display` встановлено значення `true`, уся доступна інформація буде показуватись, навіть якщо не буде виявлено жодних облікових даних відповідно до наведених вище умов.
Під час використання [aws-vault](https://github.com/99designs/aws-vault) профіль зчитується зі змінної `AWS_VAULT`, а дата закінчення терміну дії облікових даних зчитується зі змінної `AWS_SESSION_EXPIRATION`.
Під час використання [awsu](https://github.com/kreuzwerker/awsu) профіль читається зі змінної `AWSU_PROFILE`.
Під час використання [AWSume](https://awsu.me) профіль зчитується зі змінної `AWSUME_PROFILE`, а дата закінчення терміну дії облікових даних зчитується зі змінної `AWSUME_EXPIRATION`.
Під час використання [saml2aws](https://github.com/Versent/saml2aws) інформація про закінчення терміну дії, отримана з `~/.aws/credentials`, повертається до ключа `x_security_token_expires`.
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `format` | `'on [$symbol($profile )(\($region\) )(\[$duration\] )]($style)'` | Формат модуля. |
| `symbol` | `'☁️ '` | Символ, який використовується під час показу перед поточним профілем AWS. |
| `region_aliases` | `{}` | Таблиця псевдонімів регіону для показу на додачу до назви AWS. |
| `profile_aliases` | `{}` | Таблиця псевдонімів профілю для показу на додачу до назви AWS. |
| `style` | `'bold yellow'` | Стиль модуля. |
| `expiration_symbol` | `X` | Символ, який показується, коли закінчився термін дії тимчасових облікових даних. |
| `disabled` | `false` | Вимикає модуль `AWS`. |
| `force_display` | `false` | Якщо `true`, інформація показується, навіть якщо `credentials`, `credential_process` або `sso_start_url` не вказано. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | ---------------- | ---------------------------------------- |
| region | `ap-northeast-1` | Поточний регіон AWS |
| profile | `astronauts` | Поточний профіль AWS |
| duration | `2h27m20s` | Термін дії тимчасових облікових даних |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклади
#### Показати все
```toml
# ~/.config/starship.toml
[aws]
format = 'on [$symbol($profile )(\($region\) )]($style)'
style = 'bold blue'
symbol = '🅰 '
[aws.region_aliases]
ap-southeast-2 = 'au'
us-east-1 = 'va'
[aws.profile_aliases]
CompanyGroupFrobozzOnCallAccess = 'Frobozz'
```
#### Показати регіон
```toml
# ~/.config/starship.toml
[aws]
format = 'on [$symbol$region]($style) '
style = 'bold blue'
symbol = '🅰 '
[aws.region_aliases]
ap-southeast-2 = 'au'
us-east-1 = 'va'
```
#### Показати профіль
```toml
# ~/.config/starship.toml
[aws]
format = 'on [$symbol$profile]($style) '
style = 'bold blue'
symbol = '🅰 '
[aws.profile_aliases]
Enterprise_Naming_Scheme-voidstars = 'void**'
```
## Azure
Модуль `azure` показує поточну підписку Azure. Інформація заснована на назві стандартної підписки або імені користувача, як визначено у файлі `~/.azure/azureProfile.json`.
### Параметри
| Змінна | Стандартно | Опис |
| ---------------------- | ---------------------------------------- | -------------------------------------------------------------------------- |
| `format` | `'on [$symbol($subscription)]($style) '` | Формат для модуля Azure. |
| `symbol` | `' '` | Символ, який використовується. |
| `style` | `'blue bold'` | Стиль, який використовується. |
| `disabled` | `true` | Вимикає модуль `azure`. |
| `subscription_aliases` | `{}` | Таблиця псевдонімів підписки для показу на додачу до назви підписки Azure. |
### Приклади
#### Показ назви підписки
```toml
# ~/.config/starship.toml
[azure]
disabled = false
format = 'on [$symbol($subscription)]($style) '
symbol = ' '
style = 'blue bold'
```
#### Показ імені користувача
```toml
# ~/.config/starship.toml
[azure]
disabled = false
format = "on [$symbol($username)]($style) "
symbol = " "
style = "blue bold"
```
#### Показ псевдонімів підписки
```toml
# ~/.config/starship.toml
[azure.subscription_aliases]
very-long-subscription-name = 'vlsn'
```
## Battery
Модуль `battery` показує наскільки заряджена батарея пристрою і стан заряджання. Модуль показується лише тоді, коли заряд акумулятора пристрою нижче 10%.
### Параметри
| Параметр | Стандартно | Опис |
| -------------------- | --------------------------------- | ------------------------------------ |
| `full_symbol` | `' '` | Символ, повного заряду батареї. |
| `charging_symbol` | `' '` | Символ процесу заряджання. |
| `discharging_symbol` | `' '` | Символ, коли батарея розряджається. |
| `unknown_symbol` | `' '` | Символ, коли стан батареї невідомий. |
| `empty_symbol` | `' '` | Символ повністю розрядженої батареї. |
| `format` | `'[$symbol$percentage]($style) '` | Формат модуля. |
| `display` | [link](#battery-display) | Граничні значення і стиль модуля. |
| `disabled` | `false` | Вимикає модуль `battery`. |
### Приклад
```toml
# ~/.config/starship.toml
[battery]
full_symbol = '🔋 '
charging_symbol = '⚡️ '
discharging_symbol = '💀 '
```
### Показ модуля Battery
Параметр конфігурації `display` використовується для визначення, коли має показуватись індикатор заряду батареї (threshold), який символ використовуватиметься (symbol) і як він виглядає (style). Якщо параметр `display` не встановлено. Стандартне значення є таким, як зазначено нижче:
```toml
[[battery.display]]
threshold = 10
style = 'bold red'
```
Типові значення для опції `charging_symbol` і `discharging_symbol` є відповідно типовими значеннями параметрів `charging_symbol` та `discharging_symbol` `батареї`.
#### Параметри
Параметр `display` є масивом з наступної таблиці.
| Параметр | Стандартно | Опис |
| -------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `threshold` | `10` | Верхня межа для параметра. |
| `style` | `'red bold'` | Стиль, який використовується, якщо параметр використовується. |
| `charging_symbol` | | Необов'язковий символ, що показується якщо параметр display використовується, стандартно використовується параметр `charging_symbol`. |
| `discharging_symbol` | | Необов'язковий символ, що показується якщо параметр display використовується, стандартно використовується параметр `discharging_symbol`. |
#### Приклад
```toml
[[battery.display]] # стиль 'bold red' та discharging_symbol, якщо заряд між 0% та 10%
threshold = 10
style = 'bold red'
[[battery.display]] # стиль 'bold yellow' та символ 💦, якщо заряд між 10% та 30%
threshold = 30
style = 'bold yellow'
discharging_symbol = '💦'
# якщо рівень заряду понад 30%, індикатор заряду не показується
```
## Buf
Модуль `buf` показує поточну встановлену версію [Buf](https://buf.build). Типово, модуль показується, якщо всі наступні умови виконуються:
- Встановлено [`buf`](https://github.com/bufbuild/buf) CLI.
- Поточна тека містить файли налаштувань [`buf.yaml`](https://docs.buf.build/configuration/v1/buf-yaml), [`buf.gen.yaml`](https://docs.buf.build/configuration/v1/buf-gen-yaml), чи [`buf.work.yaml`](https://docs.buf.build/configuration/v1/buf-work-yaml).
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ----------------------------------------------- | -------------------------------------------- |
| `format` | `'with [$symbol($version )]($style)'` | Формат для модуля `buf`. |
| `version_format` | `'v${raw}'` | Формат версії. |
| `symbol` | `'🐃 '` | Символ, який знаходиться перед версією Buf. |
| `detect_extensions` | `[]` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `['buf.yaml', 'buf.gen.yaml', 'buf.work.yaml']` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | Які теки мають запускати цей модуль. |
| `style` | `'bold blue'` | Стиль модуля. |
| `disabled` | `false` | Вимкнути модуль `elixir`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | -------- | ---------------------------------------- |
| `version` | `v1.0.0` | Версія `buf` |
| `symbol` | | Віддзеркалює значення параметра `symbol` |
| `style`* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[buf]
symbol = '🦬 '
```
## Bun
Модуль `bun` показує поточну встановлену версію рушія JavaScript – [bun](https://bun.sh). Типово, модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файл `bun.lockb`
- Поточна тека містить файл `bunfig.toml`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ------------------------------------ | ----------------------------------------------------------------- |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'🍞 '` | Формат рядка, що представляє символ Bun. |
| `detect_extensions` | `[]` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `['bun.lockb', 'bunfig.toml']` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. |
| `style` | `'bold red'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `bun`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | -------- | ---------------------------------------- |
| version | `v0.1.4` | Версія `bun` |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[bun]
format = 'via [🍔 $version](bold green) '
```
## C
Модуль `c` показує інформацію про ваш C компілятор. Стандартно модуль буде показаний, якщо поточна тека містить файли `.c` чи `.h`.
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| `format` | `'via [$symbol($version(-$name) )]($style)'` | Формат рядка модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'C '` | Символ, який знаходиться перед інформацією про компілятор |
| `detect_extensions` | `['c', 'h']` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. |
| `commands` | [ [ 'cc', '--version' ], [ 'gcc', '--version' ], [ 'clang', '--version' ] ] | Як виявити компілятор |
| `style` | `'bold 149'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `c`. |
### Змінні
| Змінна | Приклад | Опис |
| ------- | ------- | ---------------------------------------- |
| name | clang | Назва компілятора |
| version | 13.0.0 | Версія компілятора |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style | | Віддзеркалює значення параметра `style` |
NB `версія` не має стандартного формату.
### Commands
Параметр `commands` отримує список команд для визначення версії та назви компілятора.
Кожна команда представлена списком з назви виконавчого файлу та аргументів, зазвичай `['myc', '--version']`. Starship спробує виконати кожну команду, поки не отримає результат в STDOUT.
Якщо C-компілятор не підтримується цим модулем, ви можете зробити [запит на GitHub](https://github.com/starship/starship/).
### Приклад
```toml
# ~/.config/starship.toml
[c]
format = 'via [$name $version]($style)'
```
## Character
Модуль `character` показує символ (зазвичай стрілку) поруч з текстом, який вводиться в терміналі.
Символ підкаже вам, чи була остання команда успішною, чи ні. Це можна зробити двома способами:
- зміною кольору (`red`/`green`)
- зміною символу (`❯`/`✖`)
Стандартно відбувається зміна кольору. Якщо ви також хочете змінювати й символ, подивитися на [цей приклад](#with-custom-error-shape).
::: warning
`vimcmd_symbol` працює лише з cmd, fish та zsh. `vimcmd_replace_one_symbol`, `vimcmd_replace_symbol`, and `vimcmd_visual_symbol` працює лише з fish через [проблемою визначення режиму роботи в zsh](https://github.com/starship/starship/issues/625#issuecomment-732454148).
:::
### Параметри
| Параметр | Стандартно | Опис |
| --------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------- |
| `format` | `'$symbol '` | Формат рядка, що знаходиться перед введенням тексту. |
| `success_symbol` | `'[❯](bold green)'` | Формат рядка, що знаходиться перед введенням тексту, якщо попередня команда була успішно виконана. |
| `error_symbol` | `'[❯](bold red)'` | Формат рядка, що знаходиться перед введенням тексту, якщо попередня команда не була успішно виконана. |
| `vimcmd_symbol` | `'[❮](bold green)'` | Формат рядка, що знаходиться перед введенням тексту, якщо оболонка перебуває у звичайному режимі vim. |
| `vimcmd_replace_one_symbol` | `'[❮](bold purple)'` | Формат рядка, що знаходиться перед введенням тексту, якщо оболонка перебуває у режимі vim `replace_one`. |
| `vimcmd_replace_symbol` | `'[❮](bold purple)'` | Формат рядка, що знаходиться перед введенням тексту, якщо оболонка перебуває у режимі заміни vim. |
| `vimcmd_visual_symbol` | `'[❮](bold yellow)'` | Формат рядка, що знаходиться перед введенням тексту, якщо оболонка перебуває у візуальному режимі vim. |
| `disabled` | `false` | Вимикає модуль `character`. |
### Змінні
| Змінна | Приклад | Опис |
| ------ | ------- | ------------------------------------------------------------------------------------------------------------------ |
| symbol | | Віддзеркалює значення `success_symbol`, `error_symbol`, `vimcmd_symbol` або `vimcmd_replace_one_symbol` і подібне. |
### Приклади
#### З власним значком помилки
```toml
# ~/.config/starship.toml
[character]
success_symbol = '[➜](bold green) '
error_symbol = '[✗](bold red) '
```
#### Без власного значка помилки
```toml
# ~/.config/starship.toml
[character]
success_symbol = '[➜](bold green) '
error_symbol = '[➜](bold red) '
```
#### Значок vim
```toml
# ~/.config/starship.toml
[character]
vimcmd_symbol = '[V](bold green) '
```
## CMake
Модуль `cmake` показує поточну встановлену версію [CMake](https://cmake.org/). Типово, модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файл `CMakeLists.txt`
- Поточна тека містить файл `CMakeCache.txt`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | -------------------------------------- | ----------------------------------------------------------------- |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'△ '` | Символ, який йде перед версією cmak. |
| `detect_extensions` | `[]` | Які розширення повинні запускати цей модуль |
| `detect_files` | `['CMakeLists.txt', 'CMakeCache.txt']` | Назви файлів, які активують модуль |
| `detect_folders` | `[]` | Назви тек, що активують модуль |
| `style` | `'bold blue'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `cmake`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | --------- | ---------------------------------------- |
| version | `v3.17.3` | Версія cmake |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
## COBOL / GNUCOBOL
Модуль `cobol` показує встановлену версію COBOL. Типово, модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файли `.cob` або `.COB`
- Поточна тека містить файли `.cbl` або `.CBL`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ------------------------------------ | ----------------------------------------------------------------- |
| `symbol` | `'⚙️ '` | Символ, який знаходиться перед версією COBOL. |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `style` | `'bold blue'` | Стиль модуля. |
| `detect_extensions` | `['cbl', 'cob', 'CBL', 'COB']` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. |
| `disabled` | `false` | Вимикає модуль `cobol`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | ---------- | ---------------------------------------- |
| version | `v3.1.2.0` | Версія `cobol` |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
## Command Duration – час виконання
Модуль `cmd_duration` показує, скільки часу виконувалась остання команда. Модуль буде показаний лише в тому випадку, якщо на виконання команди пішло понад дві секунди або більше, ніж значення змінної `min_time`, якщо воно задане.
::: warning Не вмикайте DEBUG trap в Bash
Якщо ви запускаєте Starship у `bash`, не вмикайте `DEBUG` trap після запуску `eval $(starship init $0)`, або цей модуль **** не працюватиме.
:::
Користувачі Bash, яким потрібна функція preexec, можуть використовувати [фреймворк bash_preexec від rcaloras](https://github.com/rcaloras/bash-preexec). Просто визначте масиви `preexec_function` і `precmd_functions` перед запуском `eval $(starship init $0)`, а потім продовжуй як зазвичай.
### Параметри
| Параметр | Стандартно | Опис |
| ---------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `min_time` | `2_000` | Найменший час виконання для показу (в мілісекундах). |
| `show_milliseconds` | `false` | Показувати мілісекунди на додачу для секунд. |
| `format` | `'took [$duration]($style) '` | Формат модуля. |
| `style` | `'bold yellow'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `cmd_duration`. |
| `show_notifications` | `false` | Показувати сповіщення на робочому столі після закінчення команди. |
| `min_time_to_notify` | `45_000` | Найменший час виконання для сповіщення (в мілісекундах). |
| `notification_timeout` | | Тривалість показу сповіщення (у мілісекундах). Якщо не налаштовано, час очікування сповіщень визначатиметься демоном. Не всі демони сповіщень підтримують цю опцію. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | -------- | --------------------------------------- |
| duration | `16m40s` | Час, витрачений на виконання команди |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[cmd_duration]
min_time = 500
format = 'underwent [$duration](bold yellow)'
```
## Conda
Модуль `conda` показує інформацію про поточне оточення [Conda](https://docs.conda.io/en/latest/), якщо змінна `$CONDA_DEFAULT_ENV` встановлена.
::: tip
Це не призводить до придушення власного модифікатора командного рядка в conda. Можливо, вам доведеться виконати `conda config --set changeps1 False`.
:::
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `truncation_length` | `1` | Кількість тек, на які повинен бути скорочений шлях середовища, якщо середовище було створено за допомогою `conda create -p [path]`. `0` – означає без скорочення. Також подивіться модуль [`directory`](#directory). |
| `symbol` | `'🅒 '` | Символ що передує назві оточення. |
| `style` | `'bold green'` | Стиль модуля. |
| `format` | `'via [$symbol$environment]($style) '` | Формат модуля. |
| `ignore_base` | `true` | Ігнорувати середовище `base`. |
| `disabled` | `false` | Вимикає модуль `conda`. |
### Змінні
| Змінна | Приклад | Опис |
| ----------- | ------------ | ---------------------------------------- |
| environment | `astronauts` | Поточне середовище conda |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[conda]
format = '[$symbol$environment](dimmed green) '
```
## Container
Модуль `container` показує символ та назву контейнера, коли ви перебуваєте в ньому.
### Параметри
| Параметр | Стандартно | Опис |
| ---------- | ---------------------------------- | ------------------------------------------------------- |
| `symbol` | `'⬢'` | Символ, що показується під час перебування в контейнері |
| `style` | `'bold red dimmed'` | Стиль модуля. |
| `format` | `'[$symbol \[$name\]]($style) '` | Формат модуля. |
| `disabled` | `false` | Вимикає модуль `container`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | ------------------- | ---------------------------------------- |
| name | `fedora-toolbox:35` | Назва контейнера |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[container]
format = '[$symbol \[$name\]]($style) '
```
## Crystal
Модуль `crystal` показує поточну встановлену версію [Crystal](https://crystal-lang.org/). Типово, модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файл `shard.yml`
- Поточна тека містить файл `.cr`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ------------------------------------ | ----------------------------------------------------------------- |
| `symbol` | `'🔮 '` | Символ, який знаходиться перед версією crystal. |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `style` | `'bold red'` | Стиль модуля. |
| `detect_extensions` | `['cr']` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `['shard.yml']` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. |
| `disabled` | `false` | Вимикає модуль `crystal`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | --------- | ---------------------------------------- |
| version | `v0.32.1` | Версія `crystal` |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[crystal]
format = 'via [✨ $version](bold blue) '
```
## Daml
Модуль `daml` показує поточну версію SDK [Daml](https://www.digitalasset.com/developers), коли ви перебуваєте в кореневій теці проєкту Daml. `sdk-version` у файлі `daml.yaml` буде використовуватись, якщо значення не буде перевизначене змінною оточення `DAML_SDK_VERSION`. Типово, модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файл `daml.yaml`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ------------------------------------ | ----------------------------------------------------------------- |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'Λ '` | Формат рядка, що представляє символ Daml |
| `style` | `'bold cyan'` | Стиль модуля. |
| `detect_extensions` | `[]` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `['daml.yaml']` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. |
| `disabled` | `false` | Вимикає модуль `daml`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | -------- | ---------------------------------------- |
| version | `v2.2.0` | Версія `daml` |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[daml]
format = 'via [D $version](bold bright-green) '
```
## Dart
Модуль `dart` показує поточну встановлену версію [Dart](https://dart.dev/). Типово, модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файл `.dart`
- Поточна тека містить файл `.dart_tool`
- Поточна тека містить файли `pubspec.yaml`, `pubspec.yml` або `pubspec.lock`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ------------------------------------------------- | ----------------------------------------------------------------- |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'🎯 '` | Формат рядка, що представляє символ Dart |
| `detect_extensions` | `['dart']` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `['pubspec.yaml', 'pubspec.yml', 'pubspec.lock']` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `['.dart_tool']` | В яких теках цей модуль має запускатись. |
| `style` | `'bold blue'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `dart`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | -------- | ---------------------------------------- |
| version | `v2.8.4` | Версія `dart` |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[dart]
format = 'via [🔰 $version](bold red) '
```
## Deno
Модуль `deno` показує поточну встановлену версію [Deno](https://deno.land/). Типово, модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файли `deno.json`, `deno.jsonc`, `mod.ts`, `mod.js`, `deps.ts` чи `deps.js`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------- |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'🦕 '` | Формат рядка, що представляє символ Deno |
| `detect_extensions` | `[]` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `['deno.json', 'deno.jsonc', 'mod.ts', 'mod.js', 'deps.ts', 'deps.js']` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. |
| `style` | `'green bold'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `deno`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | -------- | ---------------------------------------- |
| version | `v1.8.3` | Версія `deno` |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
### Приклад
```toml
# ~/.config/starship.toml
[deno]
format = 'via [🦕 $version](green bold) '
```
## Directory
Модуль `directory` показує шлях до поточної теки, урізаючи його до трьох останніх батьківських тек. Шлях до теки також буде скорочений до кореня git-репозиторію, якому ви перебуваєте.
Якщо використовується параметр `fish_style_pwd_dir_length`, замість того, щоб приховувати скорочений шлях, ви побачите скорочену назву кожної теки в залежності від числа, яке ви вказали для цього параметра.
Наприклад, маємо `~/Dev/Nix/nixpkgs/pkgs` де `nixpkgs` є коренем репозиторію, а параметр — `1`. Ви побачите `~/D/N/nixpkgs/pkgs`, тоді як до цього було `nixpkgs/pkg`.
### Параметри
| Параметр | Стандартно | Опис |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `truncation_length` | `3` | Кількість батьківських тек, до яких слід скоротити шлях до поточної теку. |
| `truncate_to_repo` | `true` | Скорочувати чи ні шлях до кореня git-репозиторію, коли ви перебуваєте в ньому. |
| `format` | `'[$path]($style)[$read_only]($read_only_style) '` | Формат модуля. |
| `style` | `'bold cyan'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `directory`. |
| `read_only` | `'🔒'` | Символ, який вказує, що поточна тека доступна лише для читання. |
| `read_only_style` | `'red'` | Стиль символу для елементів read only. |
| `truncation_symbol` | `''` | Символ на початку урізаних шляхів. напр: '…/' |
| `before_repo_root_style` | | Стиль частини шляху, що передує кореню git-репозиторію. Стандартне значення дорівнює `style`. |
| `repo_root_style` | | Стиль кореня git-репозиторію. Стандартне значення дорівнює `style`. |
| `repo_root_format` | `'[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style) '` | Формат git-репозиторію, коли задані `before_repo_root_style` та `repo_root_style`. |
| `home_symbol` | `'~'` | Символ, що позначає домашню теку. |
| `use_os_path_sep` | `true` | Використовувати розділювач шляхів, що притаманній вашій OS, замість того, щоб завжди використовувати `/` (напр `\` у Windows) |
Цей модуль має декілька додаткових опцій, які контролюють показ шляхів до тек.
| Додатковий параметр | Стандартно | Опис |
| --------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `substitutions` | | Таблиця підстановок, які буде зроблена у шляху теки. |
| `fish_style_pwd_dir_length` | `0` | Кількість символів, які використовуються при застосуванні логіки шляху fish shell pwd. |
| `use_logical_path` | `true` | Якщо `true` показувати логічний шлях оболонки через `PWD` або `--logical-path`. Якщо `false` – показувати шлях фізичної файлової системи з розвʼязанням шляхів для символічних посилань. |
`substitutions` дозволяє визначити довільні заміни літер рядків, що зустрічаються в шляху, наприклад, довга префікси мережа або теки розробки (в Java). Зауважте, що це відключить стиль fish у PWD.
```toml
[directory.substitutions]
'/Volumes/network/path' = '/net'
'src/com/long/java/path' = 'mypath'
```
`fish_style_pwd_dir_length` взаємодіє зі стандартними опціями скорочення, по-перше, що може бути дивним, якщо значення не нуль, замість цього будуть показуватись компоненти шляху, які звичайно скорочені, зі вказаною кількістю символів. Наприклад, шлях `/built/this/on/on/rock/and/roll`, який зазвичай показуватиметься як `rock/and/roll`, буде показаний як `/b/t/c/o/rock/and/roll` з `fish_style_pwd_dir_length = 1` — шлях компонентів, які зазвичай вилучаються, показуються одним символом. Для `fish_style_pwd_dir_length = 2` це буде `/bu/th/ci/on/rock/and/roll`.
Git-репозиторії мають додаткові змінні.
Розгляньмо шлях `/path/to/home/git_repo/src/lib`
| Змінна | Приклад | Опис |
| ------------------ | --------------------- | --------------------------------------- |
| before_root_path | `≠` | Шлях до кореневої теки git |
| repo_root | `'git_repo'` | Назва кореневої теки git |
| path | `'/src/lib'` | Залишок шляху |
| style | `'black bold dimmed'` | Віддзеркалює значення параметра `style` |
| repo_root_style | `'underline white'` | Стиль кореневої теки git |
|
| Символ, що використовується для розділення сегментів конвеєра (підтримує форматування) |
| `pipestatus_format` | `'\[$pipestatus\] => [$symbol$common_meaning$signal_name$maybe_int]($style)'` | Формат модуля, коли команда є конвеєром |
| `pipestatus_segment_format` | | Якщо вказано, замінює `format` під час форматування сегментів конвеєра |
| `disabled` | `true` | Вимикає модуль `status`. |
### Змінні
| Змінна | Приклад | Опис |
| -------------- | ------- | -------------------------------------------------------------------------------- |
| status | `127` | Код виходу останньої команди |
| hex_status | `0x7F` | Код виходу останньої команди в hex |
| int | `127` | Код виходу останньої команди |
| common_meaning | `ERROR` | Значення коду, якщо не сигнал |
| signal_number | `9` | Номер сигналу, що відповідає коду завершення, за наявності |
| signal_name | `KILL` | Назва сигналу, що відповідає коду виходу лише в тому випадку, якщо його записано |
| maybe_int | `7` | Містить номер коду виходу, коли значення не знайдено |
| pipestatus | | Показує коду виходу конвеєра, доступно тільки в форматі pipestatus_format |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[status]
style = 'bg:blue'
symbol = '🔴 '
success_symbol = '🟢 SUCCESS'
format = '[\[$symbol$common_meaning$signal_name$maybe_int\]]($style) '
map_symbol = true
disabled = false
```
## Sudo
Модуль `sudo` показує, чи облікові дані sudo зараз є в кеші. Модуль показується лише за наявності даних в кеші.
::: tip
За замовчуванням цей модуль вимкнутий. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань.
:::
### Параметри
| Параметр | Стандартно | Опис |
| --------------- | ------------------------ | ----------------------------------------------------------------- |
| `format` | `'[as $symbol]($style)'` | Формат модуля |
| `symbol` | `'🧙 '` | Символ, що показується, коли облікові дані є в кеші |
| `style` | `'bold blue'` | Стиль модуля. |
| `allow_windows` | `false` | Оскільки Windows не має sudo, для цієї Ос модуль типово вимкнено. |
| `disabled` | `true` | Вимикає модуль `sudo`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | ------- | ---------------------------------------- |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[sudo]
style = 'bold green'
symbol = '👩💻 '
disabled = false
```
```toml
# On windows
# $HOME\.starship\config.toml
[sudo]
allow_windows = true
disabled = false
```
## Swift
Модуль `swift` показує поточну встановлену версію [Swift](https://swift.org/). Модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файл `Package.swift`
- Поточна тека містить файли з розширенням `.swift`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ------------------------------------ | ----------------------------------------------------------------- |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'🐦 '` | Формат рядка, що представляє символ Swift |
| `detect_extensions` | `['swift']` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `['Package.swift']` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. |
| `style` | `'bold 202'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `swift`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | -------- | ---------------------------------------- |
| version | `v5.2.4` | Версія `swift` |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[swift]
format = 'via [🏎 $version](red bold)'
```
## Terraform
Модуль `terraform` показує поточну вибрану [робочу область Terraform](https://www.terraform.io/docs/language/state/workspaces.html) і версію.
::: tip
Стандартно версія Terraform не показується, оскільки це повільно для поточних версій Terraform, особливо коли використовується багато втулків. Якщо ви все ще хочете увімкнути показ версії, [дивіться приклад нижче](#with-terraform-version).
:::
Типово, модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файл `.terraform`
- Поточна тека містить файли з розширеннями`.tf`, `.tfplan` або `.tfstate`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ------------------------------------ | ----------------------------------------------------------------- |
| `format` | `'via [$symbol$workspace]($style) '` | Формат рядка модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'💠'` | Формат рядка, що відображається перед робочою областю terraform. |
| `detect_extensions` | `['tf', 'tfplan', 'tfstate']` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `['.terraform']` | В яких теках цей модуль має запускатись. |
| `style` | `'bold 105'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `terraform`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | ---------- | ---------------------------------------- |
| version | `v0.12.24` | Версія `terraform` |
| workspace | `default` | Поточна робоча область Terraform |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
#### За версією Terraform
```toml
# ~/.config/starship.toml
[terraform]
format = '[🏎💨 $version$workspace]($style) '
```
#### Без версії Terraform
```toml
# ~/.config/starship.toml
[terraform]
format = '[🏎💨 $workspace]($style) '
```
## Time
Модуль `time` показує поточний **місцевий** час. Значення `format` використовується крейтом [`chrono`](https://crates.io/crates/chrono) для визначення формату показу часу. Перегляньте [документацію chrono strftime](https://docs.rs/chrono/0.4.7/chrono/format/strftime/index.html), щоб побачити, які параметри доступні.
::: tip
За замовчуванням цей модуль вимкнутий. Щоб його увімкнути, встановіть значення параметра `disabled` в `false` у вашому файлі налаштувань.
:::
### Параметри
| Параметр | Стандартно | Опис |
| ----------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `format` | `'at [$time]($style) '` | Формат рядка модуля. |
| `use_12hr` | `false` | Вмикає 12-годинний формат |
| `time_format` | дивіться нижче | Формат [chrono](https://docs.rs/chrono/0.4.7/chrono/format/strftime/index.html) використовується для форматування часу. |
| `style` | `'bold yellow'` | Стиль модуля time |
| `utc_time_offset` | `'local'` | Встановлює зсув від UTC. Діапазон від -24 < x < 24. Дозволяє часові пояси із сувом 30/45 хвилин. |
| `disabled` | `true` | Вимикає модуль `time`. |
| `time_range` | `'-'` | Встановлює діапазон часу, протягом якого модуль показується. Час має бути зазначений у 24-годинному форматі |
Якщо `use_12hr` є `true`, то стандартно `time_format` — `'%r'`. В іншому випадку стандартне значення — `'%T'`. Налаштований вручну `time_format` має перевагу над параметром `use_12hr`.
### Змінні
| Змінна | Приклад | Опис |
| --------- | ---------- | --------------------------------------- |
| time | `13:08:10` | Поточний час. |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[time]
disabled = false
format = '🕙[\[ $time \]]($style) '
time_format = '%T'
utc_time_offset = '-5'
time_range = '10:00:00-14:00:00'
```
## Username
Модуль `username` показує імʼя активного користувача. Модуль показується, якщо виконується будь-яка з наступних умов:
- Поточний користувач має права суперкористувача
- Поточний користувач не є таким же, як той, який увійшов до системи
- Користувач зараз підключений через SSH
- Змінна `show_always` встановлена в true
::: tip
Модуль виявляє підключення SSH перевіряючи змінні середовища `SSH_CONNECTION`, `SSH_CLIENT` і `SSH_TTY`. Якщо ваш хост SSH не налаштував ці змінні, одним зі способів розвʼязання проблеми є встановлення для однієї з них фіктивного значення.
:::
### Параметри
| Параметр | Стандартно | Опис |
| ------------- | ----------------------- | ---------------------------------------------------------- |
| `style_root` | `'bold red'` | Стиль, який використовується коли користувач є root/admin. |
| `style_user` | `'bold yellow'` | Стиль для звичайних користувачів. |
| `format` | `'[$user]($style) in '` | Формат модуля. |
| `show_always` | `false` | Завжди показувати модуль `username`. |
| `disabled` | `false` | Вимикає модуль `username`. |
### Змінні
| Змінна | Приклад | Опис |
| ------- | ------------ | --------------------------------------------------------------------------------------------------- |
| `style` | `'red bold'` | Віддзеркалює значення параметра `style_root` коли користувач root, і `style_user` в іншому випадку. |
| `user` | `'matchai'` | Поточний користувач. |
### Приклад
```toml
# ~/.config/starship.toml
[username]
style_user = 'white bold'
style_root = 'black bold'
format = 'user: [$user]($style) '
disabled = false
show_always = true
```
## Vagrant
Модуль `vagrant` показує поточну встановлену версію [Vagrant](https://www.vagrantup.com/). Типово, модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файл `Vagrantfile`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ------------------------------------ | ----------------------------------------------------------------- |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'⍱ '` | Формат рядка, що представляє символ Vagrant. |
| `detect_extensions` | `[]` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `['Vagrantfile']` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. |
| `style` | `'cyan bold'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `vagrant`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | ---------------- | ---------------------------------------- |
| version | `Vagrant 2.2.10` | Версія `Vagrant` |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[vagrant]
format = 'via [⍱ $version](bold white) '
```
## V
Модуль `vlang` показує поточну встановлену версію [V](https://vlang.io/). Типово, модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файли з розширенням `.v`
- Поточна тека містить файли `v.mod`, `vpkg.json` або `.vpkg-lock.json`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | -------------------------------------------- | ----------------------------------------------------------------- |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'V '` | Формат рядка, що представляє символ V |
| `detect_extensions` | `['v']` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `['v.mod', 'vpkg.json', '.vpkg-lock.json' ]` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. |
| `style` | `'blue bold'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `vlang`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | ------- | ---------------------------------------- |
| version | `v0.2` | Версія `v` |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
### Приклад
```toml
# ~/.config/starship.toml
[vlang]
format = 'via [V $version](blue bold) '
```
## VCSH
Модуль `vcsh` показує поточний репозиторій [VCSH](https://github.com/RichiH/vcsh). Модуль показується лише в тому випадку, якщо репозиторій використовується.
### Параметри
| Параметр | Стандартно | Опис |
| ---------- | -------------------------------- | -------------------------------------------------- |
| `symbol` | `''` | Символ, який знаходиться перед назвою репозиторію. |
| `style` | `'bold yellow'` | Стиль модуля. |
| `format` | `'vcsh [$symbol$repo]($style) '` | Формат модуля. |
| `disabled` | `false` | Вимикає модуль `vcsh`. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | --------------------------------------------- | ---------------------------------------- |
| repo | `dotfiles` якщо в VCSH repo з іменем dotfiles | Назва поточного репозиторію |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | `black bold dimmed` | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[vcsh]
format = '[🆅 $repo](bold blue) '
```
## Zig
Модуль `zig` показує поточну встановлену версію [Zig](https://ziglang.org/). Модуль показується, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файл `.zig`
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ------------------------------------ | ----------------------------------------------------------------- |
| `format` | `'via [$symbol($version )]($style)'` | Формат модуля. |
| `version_format` | `'v${raw}'` | Формат версії. Доступні змінні `raw`, `major`, `minor` та `patch` |
| `symbol` | `'↯ '` | Символ, який знаходиться перед версією Zig. |
| `style` | `'bold yellow'` | Стиль модуля. |
| `disabled` | `false` | Вимикає модуль `zig`. |
| `detect_extensions` | `['zig']` | Які розширення повинні запускати цей модуль. |
| `detect_files` | `[]` | Які імена файлів мають запускати цей модуль. |
| `detect_folders` | `[]` | В яких теках цей модуль має запускатись. |
### Змінні
| Змінна | Приклад | Опис |
| --------- | -------- | ---------------------------------------- |
| version | `v0.6.0` | Версія `zig` |
| symbol | | Віддзеркалює значення параметра `symbol` |
| style\* | | Віддзеркалює значення параметра `style` |
*: Ця змінна може бути використана лише як частина стилю рядка
### Приклад
```toml
# ~/.config/starship.toml
[zig]
symbol = '⚡️ '
```
## Власні команди
Модулі `custom` показують результат виконання певних довільних команд.
Модулі показуються, якщо виконується будь-яка з наступних умов:
- Поточна тека містить файл, ім'я якого є в `detect_files`
- Поточна тека містить теки, ім'я яких вказано в `detect_folders`
- Поточна тека містить файл, розширення якого є в `detect_extensions`
- Команда `when` повертає 0
- Поточна операційна система (std::env::consts::OS) збігається з полем `os`, якщо визначено.
::: tip
Кілька власних модулів можна визначити за допомогою символу "`.`".
:::
::: tip
Порядок в якому власні модулі будуть показуватись може бути встановлений індивідуально додаванням `${custom.foo}` до змінної `format` верхнього рівня (через те, що назви містять точки вам треба використовувати`${...}`). Типово, модуль `custom` покаже усі модулі custom, в тому порядку, в якому вони були визначені.
:::
::: tip
[Квиток #1252](https://github.com/starship/starship/discussions/1252) містить приклади власних модулів. Якщо у вас є цікавий приклад ще не розкритий там, не соромтеся, поділитися ним!
:::
::: warning Вихідні дані команди друкуються без екранування
Незалежно від результату, який генерує команда, він виводиться в командний рядок у незміненому вигляді. Це означає, що якщо вивід містить спеціальні послідовності, які інтерпретуються оболонкою, вони будуть оброблені та перетворені оболонкою при виводі. Ці спеціальні послідовності є специфічними для оболонки, напр. ви можете написати модуль, який записує послідовності bash, наприклад. `\h`, але цей модуль не працюватиме в оболонці fish або zsh.
Рядок формату також може містити специфічні послідовності командного рядка, наприклад [Bash](https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html), [Zsh](https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html).
:::
### Параметри
| Параметр | Стандартно | Опис |
| ------------------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `command` | `''` | Команда, вивід якої потрібно показувати. Команду буде передано до оболонки через stdin. |
| `when` | `false` | Або булеве значення (`true` чи `false`, без лапок) або команди shell, що використовуються як умова для показу модуля. У випадку рядка команди, модуль буде показаний, якщо команда повертає код завершення `0`. |
| `require_repo` | `false` | Якщо `true`, модуль буде показано лише в шляхах, що містять репозиторій (git). Цей параметр сам по собі не є достатньою умовою для показу модуля за відсутності інших варіантів. |
| `shell` | | [Дивіться нижче](#custom-command-shell) |
| `description` | `'