v0.1.0 7deb448

Makefile RawHistoryFolder

1.PHONY: install test test-installer lint mocks demo
2
3install:
4	go install .
5	@bin="$$(go env GOBIN)"; \
6	if [ -z "$$bin" ]; then bin="$$(go env GOPATH)/bin"; fi; \
7	mkdir -p "$$bin"; \
8	install -m 0755 scripts/vev-bar-top-right scripts/vev-bar-bottom-right "$$bin"
9
10test:
11	go test ./... -race
12
13test-installer:
14	sh scripts/install_platform_test.sh
15
16lint:
17	@test -z "$$(goimports -l .)"
18	go vet ./...
19
20mocks:
21	@version="$$(mockery version 2>/dev/null || true)"; \
22	if [ "$$version" != "v3.7.1" ]; then \
23		echo "mockery v3.7.1 required; install with: go install github.com/vektra/mockery/v3@v3.7.1" >&2; \
24		exit 1; \
25	fi
26	mockery
27
28demo:
29	docker build -f scripts/demo/Dockerfile -t vev-demo .
30	./scripts/demo/run.sh demo.tape
31	# vhs cannot emit a transparent margin, so cut the window out after the
32	# fact: everything outside the rounded window rect becomes GIF
33	# transparency. The geometry mirrors demo.tape (1200x750 canvas, margin
34	# 20, border radius 10); keep them in sync.
35	docker run --rm --entrypoint magick -v "$(CURDIR)/scripts/demo/out:/out" vev-demo \
36		-size 1200x750 xc:black -fill white \
37		-draw "roundrectangle 20,20 1179,729 10,10" /out/mask.png
38	# The 2px edge is stroked before the mask is applied so the mask clips the
39	# stroke's antialiased overflow; drawing it after would leave partly
40	# transparent pixels, which a GIF's 1-bit alpha cannot represent.
41	docker run --rm --entrypoint magick -v "$(CURDIR)/scripts/demo/out:/out" vev-demo \
42		-limit memory 8GiB -limit map 12GiB /out/demo.gif -coalesce \
43		-fill none -stroke "#30363D" -strokewidth 2 \
44		-draw "roundrectangle 21,21 1178,728 9,9" \
45		null: \( /out/mask.png -alpha off \) -compose CopyOpacity \
46		-layers composite /out/demo-masked.gif
47	# --lossy above 30 smears the near-identical darks of the window chrome
48	# (window bar vs terminal background) into visible banding, and the
49	# conserve-memory fallback for huge inputs roughly doubles the output.
50	docker run --rm --entrypoint gifsicle -v "$(CURDIR)/scripts/demo/out:/out" vev-demo --no-conserve-memory -O3 --lossy=30 -o /out/demo.gif /out/demo-masked.gif
51	rm scripts/demo/out/demo-masked.gif scripts/demo/out/mask.png
52	mkdir -p docs/assets
53	cp scripts/demo/out/demo.gif docs/assets/demo.gif

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 12

Tags 11

↑↓ moveenter openesc close