summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2024-08-27 19:39:09 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2024-08-27 19:41:39 +0900
commite0924d27b845582e51552f5d34a5ac2f050f0b27 (patch)
treecda1b15f9b0e4996de5c2ce6c6ca80207a002bc1
parent2775b771f27d7a1d89cdf067a56cc0e9238f101d (diff)
downloadfzf-e0924d27b845582e51552f5d34a5ac2f050f0b27.tar.gz
Change default --ellipsis to '··'
-rw-r--r--CHANGELOG.md1
-rw-r--r--man/man1/fzf.12
-rw-r--r--src/options.go14
-rw-r--r--src/terminal.go10
-rwxr-xr-xtest/test_go.rb2
5 files changed, 21 insertions, 8 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 24a13b4d..0f634155 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@ CHANGELOG
fzf --preview "printf '<< \e]8;;http://github.com/junegunn/fzf\e\\Link to \e[32mfz\e[0mf\e]8;;\e\\ >>'"
```
+- The default `--ellipsis` is now `··` instead of `..`.
- [vim] A spec can have `exit` callback that is called with the exit status of fzf
- This can be used to clean up temporary resources or restore the original state when fzf is closed without a selection
- Fixed `--tmux bottom` when the status line is not at the bottom
diff --git a/man/man1/fzf.1 b/man/man1/fzf.1
index c960891d..811de487 100644
--- a/man/man1/fzf.1
+++ b/man/man1/fzf.1
@@ -526,7 +526,7 @@ lines that follow.
Print header before the prompt line
.TP
.BI "\-\-ellipsis=" "STR"
-Ellipsis to show when line is truncated (default: '..')
+Ellipsis to show when line is truncated (default: '··')
.SS Display
.TP
.B "\-\-ansi"
diff --git a/src/options.go b/src/options.go
index 0f903df6..55030bd2 100644
--- a/src/options.go
+++ b/src/options.go
@@ -103,7 +103,7 @@ Usage: fzf [options]
--header=STR String to print as header
--header-lines=N The first N lines of the input are treated as header
--header-first Print header before the prompt line
- --ellipsis=STR Ellipsis to show when line is truncated (default: '..')
+ --ellipsis=STR Ellipsis to show when line is truncated (default: '··')
Display
--ansi Enable processing of ANSI color codes
@@ -472,7 +472,7 @@ type Options struct {
Header []string
HeaderLines int
HeaderFirst bool
- Ellipsis string
+ Ellipsis *string
Scrollbar *string
Margin [4]sizeSpec
Padding [4]sizeSpec
@@ -578,7 +578,7 @@ func defaultOptions() *Options {
Header: make([]string, 0),
HeaderLines: 0,
HeaderFirst: false,
- Ellipsis: "..",
+ Ellipsis: nil,
Scrollbar: nil,
Margin: defaultMargin(),
Padding: defaultMargin(),
@@ -2339,9 +2339,12 @@ func parseOptions(index *int, opts *Options, allArgs []string) error {
case "--no-header-first":
opts.HeaderFirst = false
case "--ellipsis":
- if opts.Ellipsis, err = nextString(allArgs, &i, "ellipsis string required"); err != nil {
+ str, err := nextString(allArgs, &i, "ellipsis string required")
+ if err != nil {
return err
}
+ str = firstLine(str)
+ opts.Ellipsis = &str
case "--preview":
if opts.Preview.command, err = nextString(allArgs, &i, "preview command required"); err != nil {
return err
@@ -2623,7 +2626,8 @@ func parseOptions(index *int, opts *Options, allArgs []string) error {
return err
}
} else if match, value := optString(arg, "--ellipsis="); match {
- opts.Ellipsis = value
+ str := firstLine(value)
+ opts.Ellipsis = &str
} else if match, value := optString(arg, "--preview="); match {
opts.Preview.command = value
} else if match, value := optString(arg, "--preview-window="); match {
diff --git a/src/terminal.go b/src/terminal.go
index 3993bce9..388548da 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -827,7 +827,6 @@ func NewTerminal(opts *Options, eventBox *util.EventBox, executor *util.Executor
headerLines: opts.HeaderLines,
header: []string{},
header0: opts.Header,
- ellipsis: opts.Ellipsis,
ansi: opts.Ansi,
tabstop: opts.Tabstop,
hasStartActions: false,
@@ -884,6 +883,15 @@ func NewTerminal(opts *Options, eventBox *util.EventBox, executor *util.Executor
}
t.separator, t.separatorLen = t.ansiLabelPrinter(bar, &tui.ColSeparator, true)
}
+
+ if opts.Ellipsis != nil {
+ t.ellipsis = *opts.Ellipsis
+ } else if t.unicode {
+ t.ellipsis = "··"
+ } else {
+ t.ellipsis = ".."
+ }
+
if t.unicode {
t.wrapSign = "↳ "
t.borderWidth = uniseg.StringWidth("│")
diff --git a/test/test_go.rb b/test/test_go.rb
index 3b5eb4ee..13b96d8b 100755
--- a/test/test_go.rb
+++ b/test/test_go.rb
@@ -1443,7 +1443,7 @@ class TestGoFZF < TestBase
[0, 3, 6].each do |off|
tmux.prepare
tmux.send_keys "#{FZF} --hscroll-off=#{off} -q 0 < #{tempname}", :Enter
- tmux.until { |lines| assert lines[-3]&.end_with?((0..off).to_a.join + '..') }
+ tmux.until { |lines| assert lines[-3]&.end_with?((0..off).to_a.join + '··') }
tmux.send_keys '9'
tmux.until { |lines| assert lines[-3]&.end_with?('789') }
tmux.send_keys :Enter