Archived
Remove the unimplemented u and b keys
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -119,8 +119,8 @@ The mouse works too: click to select, click `▸` to toggle, wheel to move.
|
|||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
A prototype. Browsing is complete; the actions `u` (check out the pin) and `b` (bump the pin to the tip) are
|
A prototype. Browsing is complete and read-only; write actions (restore,
|
||||||
planned.
|
stage pin) are being specified in [docs/actions.md](docs/actions.md).
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -33,10 +33,10 @@ Installs `submarine` and the alias `sub` (linux/macOS, amd64/arm64) to
|
|||||||
through a git provider (`internal/submodule/git`): `submarine [dir]`. It
|
through a git provider (`internal/submodule/git`): `submarine [dir]`. It
|
||||||
fetches only when asked (`f`) and follows changes made in other shells. `submarine --mock` shows
|
fetches only when asked (`f`) and follows changes made in other shells. `submarine --mock` shows
|
||||||
the built-in mock data (`internal/submodule/mock`). `!` shows only
|
the built-in mock data (`internal/submodule/mock`). `!` shows only
|
||||||
submodules with problems. The actions `u` and `b` only show a "not
|
submodules with problems. It is read-only so far; the first write actions
|
||||||
implemented" message ([drafts of the write actions](actions.md)).
|
are [drafted](actions.md).
|
||||||
|
|
||||||
Next steps, roughly in order:
|
Next steps, roughly in order:
|
||||||
|
|
||||||
1. Actions: checkout pin (`submodule update`), bump pin to tip, init.
|
1. Write actions: restore and stage pin, see [actions.md](actions.md).
|
||||||
2. (done) "Problems only" (`!`) view, reusing the tree's filter.
|
2. (done) "Problems only" (`!`) view, reusing the tree's filter.
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ commit hashes. It doesn't answer the questions users actually have:
|
|||||||
severe first), staged pins, how many are still loading, and the time since
|
severe first), staged pins, how many are still loading, and the time since
|
||||||
the last fetch.
|
the last fetch.
|
||||||
- **F31** The footer shows key hints; `?` toggles the full help. It
|
- **F31** The footer shows key hints; `?` toggles the full help. It
|
||||||
temporarily shows short messages (e.g. "not implemented").
|
temporarily shows short messages (e.g. "copied <path>").
|
||||||
|
|
||||||
### Navigation
|
### Navigation
|
||||||
|
|
||||||
@@ -128,14 +128,10 @@ commit hashes. It doesn't answer the questions users actually have:
|
|||||||
list is not mistaken for a healthy repository. See
|
list is not mistaken for a healthy repository. See
|
||||||
[Problems only](ux-guide.md#problems-only).
|
[Problems only](ux-guide.md#problems-only).
|
||||||
|
|
||||||
### Actions (planned, not implemented)
|
### Actions (planned)
|
||||||
|
|
||||||
| Key | Action |
|
The tool is read-only so far. The first write actions, restore and stage
|
||||||
|---|---|
|
pin, are drafted in [actions.md](actions.md).
|
||||||
| `u` | Check out the pinned commit (`git submodule update`) |
|
|
||||||
| `b` | Bump the pin to the tip of its ref |
|
|
||||||
|
|
||||||
See [actions.md](actions.md) for the draft of the write actions.
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|||||||
+17
-20
@@ -221,7 +221,6 @@ colors in components.
|
|||||||
| `c` | Copy the absolute directory of the selected submodule to the clipboard (OSC 52, so it also works over SSH; needs terminal support, in tmux `set -g set-clipboard on`). The footer confirms with `copied <path>`. Without a local provider (mock) the path relative to the superproject is copied |
|
| `c` | Copy the absolute directory of the selected submodule to the clipboard (OSC 52, so it also works over SSH; needs terminal support, in tmux `set -g set-clipboard on`). The footer confirms with `copied <path>`. Without a local provider (mock) the path relative to the superproject is copied |
|
||||||
| `/` | Open the filter, see [Filter](#filter) |
|
| `/` | Open the filter, see [Filter](#filter) |
|
||||||
| `!` | Toggle problems only, see [Problems only](#problems-only) |
|
| `!` | Toggle problems only, see [Problems only](#problems-only) |
|
||||||
| `u`, `b` | Planned actions (see requirements) |
|
|
||||||
|
|
||||||
"First child" always means the first child **as displayed** (children are
|
"First child" always means the first child **as displayed** (children are
|
||||||
grouped by directory).
|
grouped by directory).
|
||||||
@@ -276,29 +275,27 @@ the term*.
|
|||||||
|
|
||||||
### Key reference
|
### Key reference
|
||||||
|
|
||||||
Every key in the UI, where it is shown, and whether it works. Update this
|
Every key in the UI, where it is shown. Update this
|
||||||
table when a key is added, moved or implemented. "Bar" is the short footer
|
table when a key is added or moved. "Bar" is the short footer
|
||||||
bar, "Palette" the detail pane's palette (the footer takes its keys over
|
bar, "Palette" the detail pane's palette (the footer takes its keys over
|
||||||
where the palette can't be shown, see [Key bar and palette](#key-bar-and-palette)),
|
where the palette can't be shown, see [Key bar and palette](#key-bar-and-palette)),
|
||||||
"Help" the full help (`?`).
|
"Help" the full help (`?`).
|
||||||
|
|
||||||
| Key | Action | Group | Shown in | Implemented |
|
| Key | Action | Group | Shown in |
|
||||||
|---|---|---|---|---|
|
|---|---|---|---|
|
||||||
| `↑` / `k`, `↓` / `j` | Move selection | Navigation | Bar, Help | yes |
|
| `↑` / `k`, `↓` / `j` | Move selection | Navigation | Bar, Help |
|
||||||
| `←` / `h`, `→` / `l` | Fold / unfold, parent / first child | Navigation | Bar, Help | yes |
|
| `←` / `h`, `→` / `l` | Fold / unfold, parent / first child | Navigation | Bar, Help |
|
||||||
| `H` / `⇧←`, `L` / `⇧→` | Collapse / expand all | Navigation | Bar, Help | yes |
|
| `H` / `⇧←`, `L` / `⇧→` | Collapse / expand all | Navigation | Bar, Help |
|
||||||
| `space` | Toggle expand/collapse | Navigation | Bar, Help | yes |
|
| `space` | Toggle expand/collapse | Navigation | Bar, Help |
|
||||||
| `home` / `g`, `end` / `G` | Header / last submodule | Navigation | Help | yes |
|
| `home` / `g`, `end` / `G` | Header / last submodule | Navigation | Help |
|
||||||
| `pgup`, `pgdn` | Move by one screen | Navigation | Help | yes |
|
| `pgup`, `pgdn` | Move by one screen | Navigation | Help |
|
||||||
| `c` | Copy path | Submodule | Palette, Help | yes |
|
| `c` | Copy path | Submodule | Palette, Help |
|
||||||
| `u` | Checkout pin | Submodule | Help | no (flashes "not implemented") |
|
| `f` | Fetch all repositories | Global | Help |
|
||||||
| `b` | Bump pin to tip | Submodule | Help | no (flashes "not implemented") |
|
| `r` | Reload everything | Global | Help |
|
||||||
| `f` | Fetch all repositories | Global | Help | yes |
|
| `/` | Filter | Global | Help |
|
||||||
| `r` | Reload everything | Global | Help | yes |
|
| `!` | Problems only (toggle) | Global | Help |
|
||||||
| `/` | Filter | Global | Help | yes |
|
| `?` | Toggle full help | Global | Bar, Help |
|
||||||
| `!` | Problems only (toggle) | Global | Help | yes |
|
| `q`, `ctrl+c` | Quit | Global | Bar, Help |
|
||||||
| `?` | Toggle full help | Global | Bar, Help | yes |
|
|
||||||
| `q`, `ctrl+c` | Quit | Global | Bar, Help | yes |
|
|
||||||
|
|
||||||
### Mouse
|
### Mouse
|
||||||
|
|
||||||
|
|||||||
@@ -380,10 +380,6 @@ func (m Model) handleKey(msg tea.KeyMsg) (tea.Model, tea.Cmd) {
|
|||||||
case key.Matches(msg, k.Issues):
|
case key.Matches(msg, k.Issues):
|
||||||
m.tree.SetProblemsOnly(!m.tree.ProblemsOnly())
|
m.tree.SetProblemsOnly(!m.tree.ProblemsOnly())
|
||||||
m.layout()
|
m.layout()
|
||||||
case key.Matches(msg, k.Update, k.Bump):
|
|
||||||
cmd := m.footer.Flash("“" + msg.String() + "” is not implemented in the prototype")
|
|
||||||
m.layout()
|
|
||||||
return m, cmd
|
|
||||||
}
|
}
|
||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package tui
|
|||||||
import "github.com/charmbracelet/bubbles/key"
|
import "github.com/charmbracelet/bubbles/key"
|
||||||
|
|
||||||
type keyMap struct {
|
type keyMap struct {
|
||||||
Up, Down, Left, Right, Toggle key.Binding
|
Up, Down, Left, Right, Toggle key.Binding
|
||||||
CollapseAll, ExpandAll key.Binding
|
CollapseAll, ExpandAll key.Binding
|
||||||
Home, End, PageUp, PageDown key.Binding
|
Home, End, PageUp, PageDown key.Binding
|
||||||
Update, Bump, Fetch, Reload, Filter, Issues key.Binding
|
Fetch, Reload, Filter, Issues key.Binding
|
||||||
Copy, Help, Quit key.Binding
|
Copy, Help, Quit key.Binding
|
||||||
}
|
}
|
||||||
|
|
||||||
func defaultKeys() keyMap {
|
func defaultKeys() keyMap {
|
||||||
@@ -23,8 +23,6 @@ func defaultKeys() keyMap {
|
|||||||
End: key.NewBinding(key.WithKeys("end", "G"), key.WithHelp("end/G", "last")),
|
End: key.NewBinding(key.WithKeys("end", "G"), key.WithHelp("end/G", "last")),
|
||||||
PageUp: key.NewBinding(key.WithKeys("pgup"), key.WithHelp("pgup", "page up")),
|
PageUp: key.NewBinding(key.WithKeys("pgup"), key.WithHelp("pgup", "page up")),
|
||||||
PageDown: key.NewBinding(key.WithKeys("pgdown"), key.WithHelp("pgdn", "page down")),
|
PageDown: key.NewBinding(key.WithKeys("pgdown"), key.WithHelp("pgdn", "page down")),
|
||||||
Update: key.NewBinding(key.WithKeys("u"), key.WithHelp("u", "checkout pin")),
|
|
||||||
Bump: key.NewBinding(key.WithKeys("b"), key.WithHelp("b", "bump pin to tip")),
|
|
||||||
Fetch: key.NewBinding(key.WithKeys("f"), key.WithHelp("f", "fetch")),
|
Fetch: key.NewBinding(key.WithKeys("f"), key.WithHelp("f", "fetch")),
|
||||||
Reload: key.NewBinding(key.WithKeys("r"), key.WithHelp("r", "reload")),
|
Reload: key.NewBinding(key.WithKeys("r"), key.WithHelp("r", "reload")),
|
||||||
Filter: key.NewBinding(key.WithKeys("/"), key.WithHelp("/", "filter")),
|
Filter: key.NewBinding(key.WithKeys("/"), key.WithHelp("/", "filter")),
|
||||||
@@ -59,7 +57,7 @@ func (k keyMap) FullHelp() [][]key.Binding {
|
|||||||
{k.Up, k.Down, k.Left, k.Right, k.Toggle},
|
{k.Up, k.Down, k.Left, k.Right, k.Toggle},
|
||||||
{k.CollapseAll, k.ExpandAll},
|
{k.CollapseAll, k.ExpandAll},
|
||||||
{k.Home, k.End, k.PageUp, k.PageDown},
|
{k.Home, k.End, k.PageUp, k.PageDown},
|
||||||
{k.Copy, k.Update, k.Bump},
|
{k.Copy},
|
||||||
{k.Fetch, k.Reload, k.Filter, k.Issues},
|
{k.Fetch, k.Reload, k.Filter, k.Issues},
|
||||||
{k.Help, k.Quit},
|
{k.Help, k.Quit},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user