Implements the design captured in docs/adr/0001-docker-compose-profile-support.md
(jesseduffield/lazydocker#423). Profiles render as pseudo-projects in the
project panel; selecting one filters the services and containers panels to
the services that activate with that profile, and Up/Down/Restart on the
selection use docker compose --profile X invocations.
Key choices:
- Profile is a flag on Project (IsProfile bool), not a new type. Avoids a
generic-type split across the SideListPanel and CommandObject.
- Reuse existing command templates (Up, Down, DownWithVolumes, Restart,
AllLogs, DockerComposeConfig). NewCommandObject appends --profile X when
a profile context is set, so no separate UpProfile/DownProfile/... family
is needed. Adds a new Restart template (master had no project-level
restart at all).
- Discovery via 'docker compose config --profiles' and
'docker compose --profile X config --services', cached on DockerCommand
for the session. Soft-fails on error (logs once, caches empty) so the UI
degrades to "no profile rows" rather than popping an error.
- Per-profile service filtering uses the local project and the profile's
service set (default services + profile-X services, per docker semantics).
- No new keybinding for project/profile restart in this PR; handler exists
for follow-up discussion.
- New unit tests cover NewCommandObject --profile injection, GetProfiles
caching, GetProfileServices caching, and the soft-fail path.
fixes: https://github.com/jesseduffield/lazydocker/issues/423
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A la lazygit, we can now navigate between panels using numbers
(1,2,3,4,5,6,7)
Add translation for number navigation
reformat
oops
fix translation case & generate docs
pluralize networks
This commit fix a Portuguese word gender typo "todos as redes" as "redes" (network) represent a female portuguese word. The word "todos" (all) which is a male word should be "todas" (female) to follow the word "as" to match the gender.
Implements #224
Use sort containers by state as default behavior
Legacy sort by name behavior can be set using a user config setting.
`sortContainersByName` is false by default.
Login to container's shell is very popular operation and to make it easier it will be better to make it as a separate menu item with a dedicated hot key.