From 770e28226c389617210af0330a959f8d76e4977a Mon Sep 17 00:00:00 2001 From: koki-develop Date: Mon, 3 Apr 2023 06:38:49 +0900 Subject: [PATCH 1/5] add WithInputPosition option --- fzf.go | 4 ++++ option.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/fzf.go b/fzf.go index b9f60f4..16da0f4 100644 --- a/fzf.go +++ b/fzf.go @@ -29,6 +29,10 @@ func New(opts ...Option) (*FZF, error) { return nil, errors.New("limit must be at least 1") } + if err := o.inputPosition.Valid(); err != nil { + return nil, err + } + m := newModel(&o) return &FZF{ diff --git a/option.go b/option.go index d732f03..e07a4c0 100644 --- a/option.go +++ b/option.go @@ -1,6 +1,7 @@ package fzf import ( + "fmt" "strconv" "strings" "sync" @@ -28,6 +29,8 @@ var defaultOption = option{ Abort: key.NewBinding(key.WithKeys("ctrl+c", "esc")), }, + inputPosition: InputPositionTop, + countViewEnabled: true, countViewFunc: func(meta CountViewMeta) string { var v strings.Builder @@ -66,6 +69,24 @@ type CountViewMeta struct { NoLimit bool } +// InputPosition represents the position of input. +type InputPosition string + +const ( + InputPositionTop InputPosition = "top" + InputPositionBottom InputPosition = "bottom" +) + +// Valid validates the value of InputPosition. +func (p InputPosition) Valid() error { + switch p { + case InputPositionTop, InputPositionBottom: + return nil + default: + return fmt.Errorf("invalid input position: %s", p) + } +} + type option struct { limit int noLimit bool @@ -80,6 +101,8 @@ type option struct { keymap *keymap + inputPosition InputPosition + countViewEnabled bool countViewFunc func(meta CountViewMeta) string @@ -197,3 +220,10 @@ func WithCaseSensitive(s bool) Option { o.caseSensitive = s } } + +// WithInputPosition sets the position of the input. +func WithInputPosition(p InputPosition) Option { + return func(o *option) { + o.inputPosition = p + } +} From ec3c3ee7767513f7256bb20e587a5c35c5c9d8d9 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Mon, 3 Apr 2023 06:40:52 +0900 Subject: [PATCH 2/5] header -> input --- model.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/model.go b/model.go index 51e3e13..4232fb2 100644 --- a/model.go +++ b/model.go @@ -125,14 +125,14 @@ func (m *model) View() string { var v strings.Builder - _, _ = v.WriteString(m.headerView()) + _, _ = v.WriteString(m.inputView()) _, _ = v.WriteRune('\n') _, _ = v.WriteString(m.itemsView()) return v.String() } -func (m *model) headerView() string { +func (m *model) inputView() string { var v strings.Builder // input @@ -153,14 +153,14 @@ func (m *model) headerView() string { return v.String() } -func (m *model) headerHeight() int { - return lipgloss.Height(m.headerView()) +func (m *model) inputHeight() int { + return lipgloss.Height(m.inputView()) } func (m *model) itemsView() string { var v strings.Builder - headerHeight := m.headerHeight() + inputHeight := m.inputHeight() for i, match := range m.matches { if i < m.windowYPosition { @@ -206,7 +206,7 @@ func (m *model) itemsView() string { } } - if i+1-m.windowYPosition >= m.windowHeight-headerHeight { + if i+1-m.windowYPosition >= m.windowHeight-inputHeight { break } v.WriteString("\n") @@ -355,9 +355,9 @@ func (m *model) fixCursor() { } func (m *model) fixYPosition() { - headerHeight := m.headerHeight() + inputHeight := m.inputHeight() - if m.windowHeight-headerHeight > len(m.matches) { + if m.windowHeight-inputHeight > len(m.matches) { m.windowYPosition = 0 return } @@ -367,8 +367,8 @@ func (m *model) fixYPosition() { return } - if m.cursorPosition+1 >= (m.windowHeight-headerHeight)+m.windowYPosition { - m.windowYPosition = max(m.cursorPosition+1-(m.windowHeight-headerHeight), 0) + if m.cursorPosition+1 >= (m.windowHeight-inputHeight)+m.windowYPosition { + m.windowYPosition = max(m.cursorPosition+1-(m.windowHeight-inputHeight), 0) return } } From 250beec1bd6af38563b8ecaceaf97b971e57dc81 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Mon, 3 Apr 2023 07:31:15 +0900 Subject: [PATCH 3/5] support custom input position --- model.go | 175 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 117 insertions(+), 58 deletions(-) diff --git a/model.go b/model.go index 4232fb2..3551526 100644 --- a/model.go +++ b/model.go @@ -125,29 +125,59 @@ func (m *model) View() string { var v strings.Builder - _, _ = v.WriteString(m.inputView()) - _, _ = v.WriteRune('\n') - _, _ = v.WriteString(m.itemsView()) + var windowStyle lipgloss.Style + switch m.option.inputPosition { + case InputPositionTop: + windowStyle = lipgloss.NewStyle().Height(m.windowHeight).AlignVertical(lipgloss.Top) + _, _ = v.WriteString(m.inputView()) + _, _ = v.WriteRune('\n') + _, _ = v.WriteString(m.itemsView()) - return v.String() + case InputPositionBottom: + windowStyle = lipgloss.NewStyle().Height(m.windowHeight).AlignVertical(lipgloss.Bottom) + _, _ = v.WriteString(m.itemsView()) + _, _ = v.WriteRune('\n') + _, _ = v.WriteString(m.inputView()) + } + + return windowStyle.Render(v.String()) } func (m *model) inputView() string { var v strings.Builder - // input - _, _ = v.WriteString(m.input.View()) - // count - if m.option.countViewEnabled { - _, _ = v.WriteRune('\n') - _, _ = v.WriteString(m.option.countViewFunc(CountViewMeta{ - ItemsCount: m.items.Len(), - MatchesCount: len(m.matches), - SelectedCount: len(m.choices), - WindowWidth: m.windowWidth, - Limit: m.option.limit, - NoLimit: m.option.noLimit, - })) + switch m.option.inputPosition { + case InputPositionTop: + // input + _, _ = v.WriteString(m.input.View()) + // count + if m.option.countViewEnabled { + _, _ = v.WriteRune('\n') + _, _ = v.WriteString(m.option.countViewFunc(CountViewMeta{ + ItemsCount: m.items.Len(), + MatchesCount: len(m.matches), + SelectedCount: len(m.choices), + WindowWidth: m.windowWidth, + Limit: m.option.limit, + NoLimit: m.option.noLimit, + })) + } + + case InputPositionBottom: + // count + if m.option.countViewEnabled { + _, _ = v.WriteString(m.option.countViewFunc(CountViewMeta{ + ItemsCount: m.items.Len(), + MatchesCount: len(m.matches), + SelectedCount: len(m.choices), + WindowWidth: m.windowWidth, + Limit: m.option.limit, + NoLimit: m.option.noLimit, + })) + _, _ = v.WriteRune('\n') + } + // input + _, _ = v.WriteString(m.input.View()) } return v.String() @@ -162,57 +192,76 @@ func (m *model) itemsView() string { inputHeight := m.inputHeight() - for i, match := range m.matches { - if i < m.windowYPosition { - continue - } - - cursorLine := m.cursorPosition == i + switch m.option.inputPosition { + case InputPositionTop: + for i, match := range m.matches { + if i < m.windowYPosition { + continue + } - // write cursor - if cursorLine { - _, _ = v.WriteString(m.cursor) - } else { - _, _ = v.WriteString(m.nocursor) + cursorLine := m.cursorPosition == i + m.writeItem(&v, match, cursorLine) + if i+1-m.windowYPosition >= m.windowHeight-inputHeight { + break + } + v.WriteRune('\n') } + case InputPositionBottom: + for i := len(m.matches) - 1; i >= 0; i-- { + if len(m.matches)-i+m.windowHeight-inputHeight < m.windowYPosition { + continue + } - // write toggle - if m.option.multiple() { - if intContains(m.choices, match.Index) { - _, _ = v.WriteString(m.selectedPrefix) - } else { - _, _ = v.WriteString(m.unselectedPrefix) + match := m.matches[i] + cursorLine := m.cursorPosition == i + m.writeItem(&v, match, cursorLine) + if i-1 < m.windowYPosition { + break } + v.WriteRune('\n') } + } - // write item prefix - if m.findOption.itemPrefixFunc != nil { - _, _ = v.WriteString(stringLinesToSpace(m.findOption.itemPrefixFunc(match.Index))) + return v.String() +} + +func (m *model) writeItem(v *strings.Builder, match Match, cursorLine bool) { + // write cursor + if cursorLine { + _, _ = v.WriteString(m.cursor) + } else { + _, _ = v.WriteString(m.nocursor) + } + + // write toggle + if m.option.multiple() { + if intContains(m.choices, match.Index) { + _, _ = v.WriteString(m.selectedPrefix) + } else { + _, _ = v.WriteString(m.unselectedPrefix) } + } - // write item - for ci, c := range match.Str { - // matches - if intContains(match.MatchedIndexes, ci) { - if cursorLine { - _, _ = v.WriteString(m.cursorLineMatchesStyle.Render(string(c))) - } else { - _, _ = v.WriteString(m.matchesStyle.Render(string(c))) - } - } else if cursorLine { - _, _ = v.WriteString(m.cursorLineStyle.Render(string(c))) + // write item prefix + if m.findOption.itemPrefixFunc != nil { + _, _ = v.WriteString(stringLinesToSpace(m.findOption.itemPrefixFunc(match.Index))) + } + + // write item + for ci, c := range match.Str { + // matches + if intContains(match.MatchedIndexes, ci) { + if cursorLine { + _, _ = v.WriteString(m.cursorLineMatchesStyle.Render(string(c))) } else { - _, _ = v.WriteRune(c) + _, _ = v.WriteString(m.matchesStyle.Render(string(c))) } + } else if cursorLine { + _, _ = v.WriteString(m.cursorLineStyle.Render(string(c))) + } else { + _, _ = v.WriteRune(c) } - - if i+1-m.windowYPosition >= m.windowHeight-inputHeight { - break - } - v.WriteString("\n") } - - return v.String() } /* @@ -245,12 +294,22 @@ func (m *model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { m.toggle() case key.Matches(msg, m.option.keymap.Up): // up - m.cursorUp() + switch m.option.inputPosition { + case InputPositionTop: + m.cursorUp() + case InputPositionBottom: + m.cursorDown() + } m.fixYPosition() m.fixCursor() case key.Matches(msg, m.option.keymap.Down): // down - m.cursorDown() + switch m.option.inputPosition { + case InputPositionTop: + m.cursorDown() + case InputPositionBottom: + m.cursorUp() + } m.fixYPosition() m.fixCursor() } From 7ecd3b6051a77a5a2bd38e76e9f5e20d3ebbf1b3 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Mon, 3 Apr 2023 07:34:16 +0900 Subject: [PATCH 4/5] add --input-position flag --- cmd/gofzf/main.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cmd/gofzf/main.go b/cmd/gofzf/main.go index ec50a17..15f5547 100644 --- a/cmd/gofzf/main.go +++ b/cmd/gofzf/main.go @@ -34,7 +34,8 @@ var ( flagSelectedPrefix string flagUnselectedPrefix string - flagCountView bool + flagInputPosition string + flagCountView bool flagPromptFg string flagPromptBg string @@ -129,6 +130,8 @@ var rootCmd = &cobra.Command{ fzf.WithSelectedPrefix(flagSelectedPrefix), fzf.WithUnselectedPrefix(flagUnselectedPrefix), + fzf.WithInputPosition(fzf.InputPosition(flagInputPosition)), + fzf.WithCountViewEnabled(flagCountView), fzf.WithStyles( @@ -340,6 +343,8 @@ func init() { rootCmd.Flags().StringVar(&flagSelectedPrefix, "selected-prefix", "● ", "") rootCmd.Flags().StringVar(&flagUnselectedPrefix, "unselected-prefix", "◯ ", "") + rootCmd.Flags().StringVar(&flagInputPosition, "input-position", string(fzf.InputPositionTop), "position of input (top|bottom)") + rootCmd.Flags().BoolVar(&flagCountView, "count-view", true, "") rootCmd.Flags().StringVar(&flagPromptFg, "prompt-fg", "", "") From 4ba1017df4a5b51a60e1beef7b02102318c1f7c6 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Mon, 3 Apr 2023 08:36:21 +0900 Subject: [PATCH 5/5] update docs --- docs/cli/README.ja.md | 7 ++++++ docs/cli/README.md | 7 ++++++ docs/library/README.ja.md | 16 ++++++++++++ docs/library/README.md | 16 ++++++++++++ examples/input-position/README.md | 1 + examples/input-position/demo.gif | Bin 0 -> 63925 bytes examples/input-position/main.go | 28 +++++++++++++++++++++ option.go | 2 +- tapes/library/input-position.tape | 39 ++++++++++++++++++++++++++++++ 9 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 examples/input-position/README.md create mode 100644 examples/input-position/demo.gif create mode 100644 examples/input-position/main.go create mode 100644 tapes/library/input-position.tape diff --git a/docs/cli/README.ja.md b/docs/cli/README.ja.md index 66c5967..59e09f7 100644 --- a/docs/cli/README.ja.md +++ b/docs/cli/README.ja.md @@ -54,6 +54,7 @@ $ go install github.com/koki-develop/go-fzf/cmd/gofzf@latest `gofzf` CLI はフラグを使用して様々な見た目のカスタマイズができます。 - [プロンプト](#プロンプト) +- [インプットの位置](#インプットの位置) - [インプットのプレースホルダ](#インプットのプレースホルダ) - [インプットのテキスト](#インプットのテキスト) - [カーソル](#カーソル) @@ -75,6 +76,12 @@ $ go install github.com/koki-develop/go-fzf/cmd/gofzf@latest | `--prompt-underline` | `false` | プロンプトに下線を引く。 | | `--prompt-faint` | `false` | プロンプトを薄く表示する。 | +#### インプットの位置 + +| フラグ | デフォルト | 説明 | +| ------------------ | ---------- | ------------------------------------------------------- | +| `--input-position` | `"top"` | インプットの位置。 `top` もしくは `bottom` が有効です。 | + #### インプットのプレースホルダ | フラグ | デフォルト | 説明 | diff --git a/docs/cli/README.md b/docs/cli/README.md index c5c97c7..41757a6 100644 --- a/docs/cli/README.md +++ b/docs/cli/README.md @@ -54,6 +54,7 @@ Setting the `--no-limit` flag allows unlimited item selection. The `gofzf` CLI allows for various visual customizations using flags. - [Prompt](#prompt) +- [Position of input](#position-of-input) - [Placeholder for input](#placeholder-for-input) - [Input text](#input-text) - [Cursor](#cursor) @@ -75,6 +76,12 @@ The `gofzf` CLI allows for various visual customizations using flags. | `--prompt-underline` | `false` | Underline prompt. | | `--prompt-faint` | `false` | Faint prompt. | +#### Position of input + +| Flag | Default | Description | +| ------------------ | ------- | ----------------------------------------------------- | +| `--input-position` | `"top"` | Position of input. Either `top` or `bottom` is valid. | + #### Placeholder for input | Flag | Default | Description | diff --git a/docs/library/README.ja.md b/docs/library/README.ja.md index d83a955..fb9a020 100644 --- a/docs/library/README.ja.md +++ b/docs/library/README.ja.md @@ -154,6 +154,7 @@ if err != nil { - [プロンプト](#プロンプト) - [カーソル](#カーソル) - [選択中 / 未選択アイテムの接頭辞](#選択中--未選択アイテムの接頭辞) +- [インプットの位置](#インプットの位置) - [インプットのプレースホルダ](#インプットのプレースホルダ) - [カウントビュー](#カウントビュー) - [スタイル](#スタイル) @@ -201,6 +202,21 @@ if err != nil { [Example](/examples/prefix/) +#### インプットの位置 + +`fzf.WithInputPosition()` を使用するとインプットの位置を設定できます。 + +```go +f, err := fzf.New( + fzf.WithInputPosition(fzf.InputPositionBottom), +) +if err != nil { + // ... +} +``` + +[Example](/examples/input-position/) + #### インプットのプレースホルダ `fzf.WithInputPlaceholder()` を使用するとインプットのプレースホルダを設定できます。 diff --git a/docs/library/README.md b/docs/library/README.md index 1a05500..211780f 100644 --- a/docs/library/README.md +++ b/docs/library/README.md @@ -155,6 +155,7 @@ if err != nil { - [Prompt](#prompt) - [Cursor](#cursor) - [Prefix of selected/unselected items](#prefix-of-selectedunselected-items) +- [Position of input](#position-of-input) - [Placeholder for input](#placeholder-for-input) - [Count View](#count-view) - [Styles](#styles) @@ -203,6 +204,21 @@ if err != nil { [Example](/examples/prefix/) +#### Position of input + +`fzf.WithInputPosition()` can be used to set the position of input. + +```go +f, err := fzf.New( + fzf.WithInputPosition(fzf.InputPositionBottom), +) +if err != nil { + // ... +} +``` + +[Example](/examples/input-position/) + #### Placeholder for input `fzf.WithCursor()` can be used to set the placeholder for input. diff --git a/examples/input-position/README.md b/examples/input-position/README.md new file mode 100644 index 0000000..b6cb717 --- /dev/null +++ b/examples/input-position/README.md @@ -0,0 +1 @@ +![](./demo.gif) diff --git a/examples/input-position/demo.gif b/examples/input-position/demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..b26f9508bf658c4d47dc1849d20985460ad8b6fa GIT binary patch literal 63925 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