<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/library/cpp/getopt/small, branch main</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=main</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2026-05-12T14:47:32Z</updated>
<entry>
<title>make zsh completion works with first Tab</title>
<updated>2026-05-12T14:47:32Z</updated>
<author>
<name>ilikepugs</name>
<email>ilikepugs@yandex-team.com</email>
</author>
<published>2026-05-12T13:52:34Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=6ea40e24c5763afe5f4abc6fcabf2cd700799cc2'/>
<id>urn:sha1:6ea40e24c5763afe5f4abc6fcabf2cd700799cc2</id>
<content type='text'>
### Как сейчас

1. zsh подгружает `~/.zfunc/_&lt;command&gt;`, выполняет его как тело функции `_&lt;command&gt;`.

2. Это тело состоит только из определения `_&lt;command&gt;() { ... }` и helper'ов — оно переопределяет `_&lt;command&gt;`, но не вызывает новое определение.

3. Тело завершилось, ни одного `compadd` не было — completion ничего не выдал.

При втором TAB вызывается уже переопределённый "настоящий" `_&lt;command&gt;` — и тогда дополнение работает.

\--

### Что сделал

Добавил вызов `_&lt;command&gt;` в конец скрипта, так что теперь вызов переопределнного `_&lt;command&gt;` происходит на первом `Tab`.
commit_hash:9f60240a3c3d85088101570156c8bde18bf0792a
</content>
</entry>
<entry>
<title>Introduce tags for free args in opt-parser</title>
<updated>2025-12-23T16:19:02Z</updated>
<author>
<name>ilikepugs</name>
<email>ilikepugs@yandex-team.com</email>
</author>
<published>2025-12-23T15:56:01Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=9d66ab24e3973f879cae08d109a8bfadadcd1d43'/>
<id>urn:sha1:9d66ab24e3973f879cae08d109a8bfadadcd1d43</id>
<content type='text'>
### Что случилось?

- Появилась возможность размечать свободные аргументы тегами (хранятся как ui32-значения)
- Теги могут быть статические (`.SetTag(ESomeTags::Tag1)`) и динамические (`.SetTag([] (const TString&amp; a) {return a ? ESomeTags::Tag1 : ESomeTags::Tag2; })`).
- После парсинга можно получить свободные аргументы с определенным тегом (`res.GetFreeArgs(ESomeTags::Tag1)`)
commit_hash:c1a9d821da376538eb7e4251626052a9f03b941c
</content>
</entry>
<entry>
<title>Collect subcommand parts in getopt</title>
<updated>2025-11-26T06:52:47Z</updated>
<author>
<name>ilikepugs</name>
<email>ilikepugs@yandex-team.com</email>
</author>
<published>2025-11-26T06:37:33Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3344ce008b1318a27b236192ceb4fb5567ba926e'/>
<id>urn:sha1:3344ce008b1318a27b236192ceb4fb5567ba926e</id>
<content type='text'>
#### Проблема

Из TOptsParseResult сейчас невозможно понять, какую команду вызвали.

Существует метод [GetProgrammName](https://nda.ya.ru/t/SdJXhPQC7NczPm, который частично решает эту задачу, однако:

1. Его поведение зависит от флага [PrintShortCommandInUsage](https://nda.ya.ru/t/3sh6_wPV7NczPt Выставление флага меняет вывод `help`
2. Даже с флагом метод отдает одну строку вместе с запускаемым бинарем. Если хочется отделить только submod'ы, то эту строку приходится сплитить.

#### Решение

Добавил всюду где нужно InvocationParts, которые заполняются по ходу парсинга входных аргументов. В конечном итоге эти parts передаются в TOptsParseResult, откуда могут быть получены вызывающей стороной.
commit_hash:4cf72141552793b19a725b3d394b81215508b85f
</content>
</entry>
<entry>
<title>Make reset modes mutually exclusive</title>
<updated>2025-09-03T21:56:46Z</updated>
<author>
<name>thegeorg</name>
<email>thegeorg@yandex-team.com</email>
</author>
<published>2025-09-03T21:36:43Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=76db84e05fa0cd826fae55327cfaa6eaab3981d1'/>
<id>urn:sha1:76db84e05fa0cd826fae55327cfaa6eaab3981d1</id>
<content type='text'>
* Support variadic configuration of MutuallyExclusive
* Use it to forbid passing conflicting modes to `arc reset`
commit_hash:cf056645a91fde017d33cbfffe461229c9c3fc39
</content>
</entry>
<entry>
<title>remove unused include</title>
<updated>2025-04-10T00:43:59Z</updated>
<author>
<name>tobo</name>
<email>tobo@yandex-team.com</email>
</author>
<published>2025-04-10T00:32:04Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f489e479c78e4192f2d5ec693f8c1d1b5774b8a0'/>
<id>urn:sha1:f489e479c78e4192f2d5ec693f8c1d1b5774b8a0</id>
<content type='text'>
commit_hash:acb52196481fcf4c768f63b391165775d3b35e4a
</content>
</entry>
<entry>
<title>Correct grammar</title>
<updated>2025-03-17T23:05:58Z</updated>
<author>
<name>akhropov</name>
<email>akhropov@yandex-team.com</email>
</author>
<published>2025-03-17T22:53:10Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7401d01ed5463a8fb0a9afb26e42b07dbcb14116'/>
<id>urn:sha1:7401d01ed5463a8fb0a9afb26e42b07dbcb14116</id>
<content type='text'>
commit_hash:f8e992f1779214943ab68c8f592ea2f087f76eb4
</content>
</entry>
<entry>
<title>[arc][getopt]fix enforcment of RequiredArgument().DisableSpaceParse()</title>
<updated>2024-11-21T14:55:22Z</updated>
<author>
<name>tldr</name>
<email>tldr@yandex-team.com</email>
</author>
<published>2024-11-21T14:37:20Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=c8482a7c9c43883e325c2ab31b58cb62abde7eba'/>
<id>urn:sha1:c8482a7c9c43883e325c2ab31b58cb62abde7eba</id>
<content type='text'>
commit_hash:9c2ada5b95be3f810d2750406d74d839bd2598ff
</content>
</entry>
<entry>
<title>[vcs]modchooser -h should not print colored if not TTY</title>
<updated>2024-03-28T16:00:40Z</updated>
<author>
<name>tldr</name>
<email>tldr@yandex-team.com</email>
</author>
<published>2024-03-28T15:47:44Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=bb09dae0c6200b95c94dcab806f758368955b08d'/>
<id>urn:sha1:bb09dae0c6200b95c94dcab806f758368955b08d</id>
<content type='text'>
56651679ad5f4f41f350a3f125a5604495e64dae
</content>
</entry>
<entry>
<title>feat contrib: aiogram 3</title>
<updated>2024-01-19T10:10:03Z</updated>
<author>
<name>armenqa</name>
<email>armenqa@yandex-team.com</email>
</author>
<published>2024-01-19T09:23:50Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2de0149d0151c514b22bca0760b95b26c9b0b578'/>
<id>urn:sha1:2de0149d0151c514b22bca0760b95b26c9b0b578</id>
<content type='text'>
Relates: https://st.yandex-team.ru/, https://st.yandex-team.ru/
</content>
</entry>
<entry>
<title>Library import 5, delete go dependencies (#832)</title>
<updated>2024-01-04T14:09:05Z</updated>
<author>
<name>AlexSm</name>
<email>alex@ydb.tech</email>
</author>
<published>2024-01-04T14:09:05Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=dab291146f6cd7d35684e3a1150e5bb1c412982c'/>
<id>urn:sha1:dab291146f6cd7d35684e3a1150e5bb1c412982c</id>
<content type='text'>
* Library import 5, delete go dependencies

* Fix yt client</content>
</entry>
</feed>
