parent
6ccc12c332
commit
ff248d566d
@ -3,6 +3,8 @@ CHANGELOG
|
|||||||
|
|
||||||
0.16.2
|
0.16.2
|
||||||
------
|
------
|
||||||
|
- Dropped ncurses dependency
|
||||||
|
- Binaries for freebsd, openbsd, arm5, arm6, arm7, and arm8
|
||||||
- Added support for composite actions in `--bind`. Multiple actions can be
|
- Added support for composite actions in `--bind`. Multiple actions can be
|
||||||
chained using `+` separator.
|
chained using `+` separator.
|
||||||
- e.g. `fzf --bind 'ctrl-y:execute(echo -n {} | pbcopy)+abort'`
|
- e.g. `fzf --bind 'ctrl-y:execute(echo -n {} | pbcopy)+abort'`
|
||||||
|
18
install
18
install
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
set -u
|
set -u
|
||||||
|
|
||||||
version=0.16.1
|
version=0.16.2-alpha
|
||||||
auto_completion=
|
auto_completion=
|
||||||
key_bindings=
|
key_bindings=
|
||||||
update_config=2
|
update_config=2
|
||||||
@ -160,10 +160,18 @@ archi=$(uname -sm)
|
|||||||
binary_available=1
|
binary_available=1
|
||||||
binary_error=""
|
binary_error=""
|
||||||
case "$archi" in
|
case "$archi" in
|
||||||
Darwin\ x86_64) download fzf-$version-darwin_${binary_arch:-amd64} ;;
|
Darwin\ *64) download fzf-$version-darwin_${binary_arch:-amd64} ;;
|
||||||
Darwin\ i*86) download fzf-$version-darwin_${binary_arch:-386} ;;
|
Darwin\ *86) download fzf-$version-darwin_${binary_arch:-386} ;;
|
||||||
Linux\ x86_64) download fzf-$version-linux_${binary_arch:-amd64} ;;
|
Linux\ *64) download fzf-$version-linux_${binary_arch:-amd64} ;;
|
||||||
Linux\ i*86) download fzf-$version-linux_${binary_arch:-386} ;;
|
Linux\ *86) download fzf-$version-linux_${binary_arch:-386} ;;
|
||||||
|
Linux\ armv5*) download fzf-$version-linux_${binary_arch:-arm5} ;;
|
||||||
|
Linux\ armv6*) download fzf-$version-linux_${binary_arch:-arm6} ;;
|
||||||
|
Linux\ armv7*) download fzf-$version-linux_${binary_arch:-arm7} ;;
|
||||||
|
Linux\ armv8*) download fzf-$version-linux_${binary_arch:-arm8} ;;
|
||||||
|
FreeBSD\ *64) download fzf-$version-freebsd_${binary_arch:-amd64} ;;
|
||||||
|
FreeBSD\ *86) download fzf-$version-freebsd_${binary_arch:-386} ;;
|
||||||
|
OpenBSD\ *64) download fzf-$version-openbsd_${binary_arch:-amd64} ;;
|
||||||
|
OpenBSD\ *86) download fzf-$version-openbsd_${binary_arch:-386} ;;
|
||||||
*) binary_available=0 binary_error=1 ;;
|
*) binary_available=0 binary_error=1 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
..
|
..
|
||||||
.TH fzf-tmux 1 "Jan 2017" "fzf 0.16.1" "fzf-tmux - open fzf in tmux split pane"
|
.TH fzf-tmux 1 "Jan 2017" "fzf 0.16.2" "fzf-tmux - open fzf in tmux split pane"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
fzf-tmux - open fzf in tmux split pane
|
fzf-tmux - open fzf in tmux split pane
|
||||||
|
@ -21,7 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
..
|
..
|
||||||
.TH fzf 1 "Jan 2017" "fzf 0.16.1" "fzf - a command-line fuzzy finder"
|
.TH fzf 1 "Jan 2017" "fzf 0.16.2" "fzf - a command-line fuzzy finder"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
fzf - a command-line fuzzy finder
|
fzf - a command-line fuzzy finder
|
||||||
|
55
src/Makefile
55
src/Makefile
@ -15,11 +15,17 @@ SRCDIR := $(GOPATH)/src/github.com/junegunn/fzf/src
|
|||||||
DOCKEROPTS := -i -t -v $(ROOTDIR):/fzf/src
|
DOCKEROPTS := -i -t -v $(ROOTDIR):/fzf/src
|
||||||
BINARY32 := fzf-$(GOOS)_386
|
BINARY32 := fzf-$(GOOS)_386
|
||||||
BINARY64 := fzf-$(GOOS)_amd64
|
BINARY64 := fzf-$(GOOS)_amd64
|
||||||
|
BINARYARM5 := fzf-$(GOOS)_arm5
|
||||||
|
BINARYARM6 := fzf-$(GOOS)_arm6
|
||||||
BINARYARM7 := fzf-$(GOOS)_arm7
|
BINARYARM7 := fzf-$(GOOS)_arm7
|
||||||
|
BINARYARM8 := fzf-$(GOOS)_arm8
|
||||||
VERSION := $(shell awk -F= '/version =/ {print $$2}' constants.go | tr -d "\" ")
|
VERSION := $(shell awk -F= '/version =/ {print $$2}' constants.go | tr -d "\" ")
|
||||||
RELEASE32 := fzf-$(VERSION)-$(GOOS)_386
|
RELEASE32 := fzf-$(VERSION)-$(GOOS)_386
|
||||||
RELEASE64 := fzf-$(VERSION)-$(GOOS)_amd64
|
RELEASE64 := fzf-$(VERSION)-$(GOOS)_amd64
|
||||||
|
RELEASEARM5 := fzf-$(VERSION)-$(GOOS)_arm5
|
||||||
|
RELEASEARM6 := fzf-$(VERSION)-$(GOOS)_arm6
|
||||||
RELEASEARM7 := fzf-$(VERSION)-$(GOOS)_arm7
|
RELEASEARM7 := fzf-$(VERSION)-$(GOOS)_arm7
|
||||||
|
RELEASEARM8 := fzf-$(VERSION)-$(GOOS)_arm8
|
||||||
export GOPATH
|
export GOPATH
|
||||||
|
|
||||||
UNAME_M := $(shell uname -m)
|
UNAME_M := $(shell uname -m)
|
||||||
@ -35,16 +41,32 @@ all: fzf/$(BINARY)
|
|||||||
|
|
||||||
ifeq ($(GOOS),windows)
|
ifeq ($(GOOS),windows)
|
||||||
release: fzf/$(BINARY32) fzf/$(BINARY64)
|
release: fzf/$(BINARY32) fzf/$(BINARY64)
|
||||||
-cd fzf && cp $(BINARY32) $(RELEASE32).exe && zip $(RELEASE32).zip $(RELEASE32).exe
|
cd fzf && cp $(BINARY32) $(RELEASE32).exe && zip $(RELEASE32).zip $(RELEASE32).exe
|
||||||
cd fzf && cp $(BINARY64) $(RELEASE64).exe && zip $(RELEASE64).zip $(RELEASE64).exe && \
|
cd fzf && cp $(BINARY64) $(RELEASE64).exe && zip $(RELEASE64).zip $(RELEASE64).exe
|
||||||
rm -f $(RELEASE32).exe $(RELEASE64).exe
|
cd fzf && rm -f $(RELEASE32).exe $(RELEASE64).exe
|
||||||
|
else ifeq ($(GOOS),linux)
|
||||||
|
release: fzf/$(BINARY32) fzf/$(BINARY64) fzf/$(BINARYARM5) fzf/$(BINARYARM6) fzf/$(BINARYARM7) fzf/$(BINARYARM8)
|
||||||
|
cd fzf && cp $(BINARY32) $(RELEASE32) && tar -czf $(RELEASE32).tgz $(RELEASE32)
|
||||||
|
cd fzf && cp $(BINARY64) $(RELEASE64) && tar -czf $(RELEASE64).tgz $(RELEASE64)
|
||||||
|
cd fzf && cp $(BINARYARM5) $(RELEASEARM5) && tar -czf $(RELEASEARM5).tgz $(RELEASEARM5)
|
||||||
|
cd fzf && cp $(BINARYARM6) $(RELEASEARM6) && tar -czf $(RELEASEARM6).tgz $(RELEASEARM6)
|
||||||
|
cd fzf && cp $(BINARYARM7) $(RELEASEARM7) && tar -czf $(RELEASEARM7).tgz $(RELEASEARM7)
|
||||||
|
cd fzf && cp $(BINARYARM8) $(RELEASEARM8) && tar -czf $(RELEASEARM8).tgz $(RELEASEARM8)
|
||||||
|
cd fzf && rm -f $(RELEASE32) $(RELEASE64) $(RELEASEARM5) $(RELEASEARM6) $(RELEASEARM7) $(RELEASEARM8)
|
||||||
else
|
else
|
||||||
release: test fzf/$(BINARY32) fzf/$(BINARY64)
|
release: fzf/$(BINARY32) fzf/$(BINARY64)
|
||||||
-cd fzf && cp $(BINARY32) $(RELEASE32) && tar -czf $(RELEASE32).tgz $(RELEASE32)
|
cd fzf && cp $(BINARY32) $(RELEASE32) && tar -czf $(RELEASE32).tgz $(RELEASE32)
|
||||||
cd fzf && cp $(BINARY64) $(RELEASE64) && tar -czf $(RELEASE64).tgz $(RELEASE64) && \
|
cd fzf && cp $(BINARY64) $(RELEASE64) && tar -czf $(RELEASE64).tgz $(RELEASE64)
|
||||||
rm -f $(RELEASE32) $(RELEASE64)
|
cd fzf && rm -f $(RELEASE32) $(RELEASE64)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
release-all: clean test
|
||||||
|
GOOS=darwin make release
|
||||||
|
GOOS=linux make release
|
||||||
|
GOOS=freebsd make release
|
||||||
|
GOOS=openbsd make release
|
||||||
|
GOOS=windows make release
|
||||||
|
|
||||||
$(SRCDIR):
|
$(SRCDIR):
|
||||||
mkdir -p $(shell dirname $(SRCDIR))
|
mkdir -p $(shell dirname $(SRCDIR))
|
||||||
ln -s $(ROOTDIR) $(SRCDIR)
|
ln -s $(ROOTDIR) $(SRCDIR)
|
||||||
@ -60,7 +82,7 @@ android-build: $(SRCDIR)
|
|||||||
rm -f $(RELEASEARM7)
|
rm -f $(RELEASEARM7)
|
||||||
|
|
||||||
test: deps
|
test: deps
|
||||||
SHELL=/bin/sh GOOS=$(GOOS) go test -v -tags "$(TAGS)" ./...
|
SHELL=/bin/sh GOOS= go test -v -tags "$(TAGS)" ./...
|
||||||
|
|
||||||
install: $(BINDIR)/fzf
|
install: $(BINDIR)/fzf
|
||||||
|
|
||||||
@ -71,10 +93,23 @@ clean:
|
|||||||
cd fzf && rm -f fzf-*
|
cd fzf && rm -f fzf-*
|
||||||
|
|
||||||
fzf/$(BINARY32): deps
|
fzf/$(BINARY32): deps
|
||||||
cd fzf && GOARCH=386 CGO_ENABLED=1 go build -a -ldflags "-w -extldflags=$(LDFLAGS)" -tags "$(TAGS)" -o $(BINARY32)
|
cd fzf && GOARCH=386 go build -a -ldflags "-w -extldflags=$(LDFLAGS)" -tags "$(TAGS)" -o $(BINARY32)
|
||||||
|
|
||||||
fzf/$(BINARY64): deps
|
fzf/$(BINARY64): deps
|
||||||
cd fzf && go build -a -ldflags "-w -extldflags=$(LDFLAGS)" -tags "$(TAGS)" -o $(BINARY64)
|
cd fzf && GOARCH=amd64 go build -a -ldflags "-w -extldflags=$(LDFLAGS)" -tags "$(TAGS)" -o $(BINARY64)
|
||||||
|
|
||||||
|
# https://github.com/golang/go/wiki/GoArm
|
||||||
|
fzf/$(BINARYARM5): deps
|
||||||
|
cd fzf && GOARCH=arm GOARM=5 go build -a -ldflags "-w -extldflags=$(LDFLAGS)" -tags "$(TAGS)" -o $(BINARYARM5)
|
||||||
|
|
||||||
|
fzf/$(BINARYARM6): deps
|
||||||
|
cd fzf && GOARCH=arm GOARM=6 go build -a -ldflags "-w -extldflags=$(LDFLAGS)" -tags "$(TAGS)" -o $(BINARYARM6)
|
||||||
|
|
||||||
|
fzf/$(BINARYARM7): deps
|
||||||
|
cd fzf && GOARCH=arm GOARM=7 go build -a -ldflags "-w -extldflags=$(LDFLAGS)" -tags "$(TAGS)" -o $(BINARYARM7)
|
||||||
|
|
||||||
|
fzf/$(BINARYARM8): deps
|
||||||
|
cd fzf && GOARCH=arm64 go build -a -ldflags "-w -extldflags=$(LDFLAGS)" -tags "$(TAGS)" -o $(BINARYARM8)
|
||||||
|
|
||||||
$(BINDIR)/fzf: fzf/$(BINARY) | $(BINDIR)
|
$(BINDIR)/fzf: fzf/$(BINARY) | $(BINDIR)
|
||||||
cp -f fzf/$(BINARY) $(BINDIR)
|
cp -f fzf/$(BINARY) $(BINDIR)
|
||||||
|
@ -59,20 +59,31 @@ Unit tests can be run with `make test`. Integration tests are written in Ruby
|
|||||||
script that should be run on tmux.
|
script that should be run on tmux.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
cd src
|
||||||
|
|
||||||
# Unit tests
|
# Unit tests
|
||||||
make test
|
make test
|
||||||
|
|
||||||
|
# Integration tests
|
||||||
|
ruby ../test/test_go.rb
|
||||||
|
|
||||||
|
# Build binary for the platform
|
||||||
|
make
|
||||||
|
|
||||||
# Install the executable to ../bin directory
|
# Install the executable to ../bin directory
|
||||||
make install
|
make install
|
||||||
|
|
||||||
# Integration tests
|
# Make release archives
|
||||||
ruby ../test/test_go.rb
|
make release
|
||||||
|
|
||||||
|
# Make release archives for all supported platforms
|
||||||
|
make release-all
|
||||||
```
|
```
|
||||||
|
|
||||||
Third-party libraries used
|
Third-party libraries used
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
- [ncurses][ncurses]
|
- ~[ncurses][ncurses]~
|
||||||
- [mattn/go-runewidth](https://github.com/mattn/go-runewidth)
|
- [mattn/go-runewidth](https://github.com/mattn/go-runewidth)
|
||||||
- Licensed under [MIT](http://mattn.mit-license.org)
|
- Licensed under [MIT](http://mattn.mit-license.org)
|
||||||
- [mattn/go-shellwords](https://github.com/mattn/go-shellwords)
|
- [mattn/go-shellwords](https://github.com/mattn/go-shellwords)
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
// Current version
|
// Current version
|
||||||
version = "0.16.1"
|
version = "0.16.2-alpha"
|
||||||
|
|
||||||
// Core
|
// Core
|
||||||
coordinatorDelayMax time.Duration = 100 * time.Millisecond
|
coordinatorDelayMax time.Duration = 100 * time.Millisecond
|
||||||
|
@ -305,8 +305,11 @@ func NewTerminal(opts *Options, eventBox *util.EventBox) *Terminal {
|
|||||||
return util.Max(maxHeight, minHeight)
|
return util.Max(maxHeight, minHeight)
|
||||||
}
|
}
|
||||||
renderer = tui.NewLightRenderer(opts.Theme, opts.Black, opts.Mouse, opts.Tabstop, maxHeightFunc)
|
renderer = tui.NewLightRenderer(opts.Theme, opts.Black, opts.Mouse, opts.Tabstop, maxHeightFunc)
|
||||||
} else {
|
} else if tui.HasFullscreenRenderer() {
|
||||||
renderer = tui.NewFullscreenRenderer(opts.Theme, opts.Black, opts.Mouse)
|
renderer = tui.NewFullscreenRenderer(opts.Theme, opts.Black, opts.Mouse)
|
||||||
|
} else {
|
||||||
|
renderer = tui.NewLightRenderer(opts.Theme, opts.Black, opts.Mouse, opts.Tabstop,
|
||||||
|
func(h int) int { return h })
|
||||||
}
|
}
|
||||||
wordRubout := "[^[:alnum:]][[:alnum:]]"
|
wordRubout := "[^[:alnum:]][[:alnum:]]"
|
||||||
wordNext := "[[:alnum:]][^[:alnum:]]|(.$)"
|
wordNext := "[[:alnum:]][^[:alnum:]]|(.$)"
|
||||||
|
45
src/tui/dummy.go
Normal file
45
src/tui/dummy.go
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
// +build !ncurses
|
||||||
|
// +build !tcell
|
||||||
|
// +build !windows
|
||||||
|
|
||||||
|
package tui
|
||||||
|
|
||||||
|
type Attr int
|
||||||
|
|
||||||
|
func HasFullscreenRenderer() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a Attr) Merge(b Attr) Attr {
|
||||||
|
return a | b
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
AttrRegular Attr = Attr(0)
|
||||||
|
Bold = Attr(1)
|
||||||
|
Dim = Attr(1 << 1)
|
||||||
|
Italic = Attr(1 << 2)
|
||||||
|
Underline = Attr(1 << 3)
|
||||||
|
Blink = Attr(1 << 4)
|
||||||
|
Blink2 = Attr(1 << 5)
|
||||||
|
Reverse = Attr(1 << 6)
|
||||||
|
)
|
||||||
|
|
||||||
|
func (r *FullscreenRenderer) Init() {}
|
||||||
|
func (r *FullscreenRenderer) Pause() {}
|
||||||
|
func (r *FullscreenRenderer) Clear() {}
|
||||||
|
func (r *FullscreenRenderer) Refresh() {}
|
||||||
|
func (r *FullscreenRenderer) Close() {}
|
||||||
|
|
||||||
|
func (r *FullscreenRenderer) Resume() bool { return false }
|
||||||
|
func (r *FullscreenRenderer) DoesAutoWrap() bool { return false }
|
||||||
|
func (r *FullscreenRenderer) IsOptimized() bool { return false }
|
||||||
|
func (r *FullscreenRenderer) GetChar() Event { return Event{} }
|
||||||
|
func (r *FullscreenRenderer) MaxX() int { return 0 }
|
||||||
|
func (r *FullscreenRenderer) MaxY() int { return 0 }
|
||||||
|
|
||||||
|
func (r *FullscreenRenderer) RefreshWindows(windows []Window) {}
|
||||||
|
|
||||||
|
func (r *FullscreenRenderer) NewWindow(top int, left int, width int, height int, border bool) Window {
|
||||||
|
return nil
|
||||||
|
}
|
@ -1,3 +1,4 @@
|
|||||||
|
// +build ncurses
|
||||||
// +build !windows
|
// +build !windows
|
||||||
// +build !tcell
|
// +build !tcell
|
||||||
|
|
||||||
@ -32,6 +33,10 @@ import (
|
|||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func HasFullscreenRenderer() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
type Attr C.uint
|
type Attr C.uint
|
||||||
|
|
||||||
type CursesWindow struct {
|
type CursesWindow struct {
|
||||||
|
@ -15,6 +15,10 @@ import (
|
|||||||
"github.com/junegunn/go-runewidth"
|
"github.com/junegunn/go-runewidth"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func HasFullscreenRenderer() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
func (p ColorPair) style() tcell.Style {
|
func (p ColorPair) style() tcell.Style {
|
||||||
style := tcell.StyleDefault
|
style := tcell.StyleDefault
|
||||||
return style.Foreground(tcell.Color(p.Fg())).Background(tcell.Color(p.Bg()))
|
return style.Foreground(tcell.Color(p.Fg())).Background(tcell.Color(p.Bg()))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user