From 727382c2283c8969ddcfbbb73b1cf28f2982fe23 Mon Sep 17 00:00:00 2001 From: Redowan Delowar Date: Thu, 29 Oct 2026 18:15:11 +0100 Subject: [PATCH 1/5] feat: fast and bounded review of large diffs, a roomier layout, and a settled library API Diff - Use znkr.io/diff in place of go-udiff. Diffs match git, also for large rewrites. A file over 10,000 lines uses the fast diff. - A file version over 2,000,000 bytes or 50,000 lines shows "file too large to show". A diff holds at most 128 MiB of text, and a change of more than 20,000 files shows only the count. Speed - Render lines only when they come into view, and highlight in the background with time limits. Slow lexers and very long lines show plain. - Read blobs in parallel with a cache. List files, watch, and load the commit picker off the UI goroutine. Reloads wait less after an edit. - Cap Markdown size, depth and work, PR text, find, and grep, so no input freezes the UI. Layout - A narrower file list, the full path above the diff, a thinner separator and gutter, and no rule above the footer. - The left arrow closes an expanded fold. The hover tooltip is gone. Fixes - Scroll through a wrapped line taller than the pane. Keep the cursor visible in a one-row body and in a tall rendered block. - Show invisible characters in names and code, and cut wide names to the list width. - ] and [ step over removed blocks in rendered Markdown. - The PR tab counts every check, and names the failed ones. - Send a review over 64 KB in parts. - -log files are private, hold no typed text, and a FIFO with no reader fails at once. - -check validates -scope and -layout. A branch with no commits, a binary file, and tiny panes show clear notes. - A file created and deleted around a reload leaves the list. API - diff: real Row, Fold, Kind and Side types; RenderFile takes FileOptions; SplitLines; always lazy. - vcs: PR with Tally, File.Err, TooManyFilesError.Count, Watcher.Reset. - rex: New and update.NewInstaller return (value, ok); Paste sends in parts; update.Restart takes env first. - Code names follow the herdr-reviewr settings (navigator, hunk, scope, allFiles). Settings, keys, flags and resume state are unchanged. --- cmd/rexdiff/install.go | 205 ++- cmd/rexdiff/main.go | 170 +- diff/bench_test.go | 156 ++ diff/cell.go | 122 +- diff/cell_test.go | 142 +- diff/comment.go | 145 +- diff/comment_test.go | 191 ++- diff/diff.go | 262 ++- diff/diff_test.go | 315 ++-- diff/file.go | 237 ++- diff/fold_test.go | 50 +- diff/fuzz_test.go | 218 ++- diff/hostile_test.go | 150 +- diff/lazy_test.go | 173 ++ diff/main_test.go | 6 + diff/review.go | 44 +- .../testdata/fuzz/FuzzRender/03c1cdf0ef3dea55 | 8 + .../testdata/fuzz/FuzzRender/597030a707a26025 | 8 + .../fuzz/FuzzRenderFile/3ed8df90f10ed889 | 7 + diff/theme.go | 19 +- go.mod | 4 +- go.sum | 4 + internal/diffview/edits.go | 94 ++ internal/diffview/fold.go | 91 +- internal/diffview/highlight.go | 598 +++++-- internal/diffview/render.go | 558 ++++-- internal/diffview/split.go | 70 +- internal/diffview/style.go | 71 +- internal/diffview/text.go | 99 +- internal/diffview/text_test.go | 33 + internal/diffview/view.go | 476 ++++-- internal/editor/editor.go | 68 +- internal/editor/editor_test.go | 77 +- internal/search/match.go | 58 +- internal/search/search.go | 95 +- internal/search/search_test.go | 89 +- internal/turn/turn.go | 72 +- internal/turn/turn_test.go | 72 +- rex/rex.go | 362 ++-- rex/rex_test.go | 166 +- test/changes_test.go | 275 ++- test/cli_test.go | 15 +- test/comment_test.go | 382 ++++- test/fake_test.go | 66 +- test/files_test.go | 172 +- test/main_test.go | 8 +- test/{upgrade_test.go => migratelua_test.go} | 35 +- test/navigator_test.go | 214 +++ test/norace_test.go | 2 +- test/race_test.go | 2 +- test/resize_test.go | 65 + test/rexdiff_test.go | 187 ++- test/testdata/script/cli.txt | 45 + test/update_test.go | 109 +- tui/agentpick.go | 31 +- tui/basepick.go | 54 +- tui/comment.go | 297 ++-- tui/commentlist.go | 107 -- tui/comments.go | 115 ++ tui/commitpick.go | 143 +- tui/config.go | 207 +-- tui/editor.go | 124 +- tui/find.go | 264 ++- tui/keys.go | 704 +++++--- tui/model.go | 1495 +++++++++++------ tui/mouse.go | 318 ++-- tui/nav.go | 1115 +++++++----- tui/navigator.go | 337 ++++ tui/overlay.go | 344 ++-- tui/palette.go | 26 +- tui/pr.go | 369 ++-- tui/preview.go | 100 +- tui/release.go | 67 +- tui/render.go | 1123 ++++++++++--- tui/resume.go | 165 +- tui/search.go | 223 ++- tui/send.go | 189 ++- tui/tree.go | 299 ---- tui/tui.go | 139 +- tui/turn.go | 243 +-- tui/view.go | 826 +++++---- update/update.go | 249 ++- update/update_test.go | 180 +- vcs/export_test.go | 8 +- vcs/hostile_test.go | 163 +- vcs/pr.go | 198 ++- vcs/pr_test.go | 159 +- vcs/refs.go | 234 ++- vcs/repo.go | 610 +++++-- vcs/repo_test.go | 434 +++-- vcs/saved_test.go | 28 +- vcs/watch.go | 298 ++-- vcs/watch_test.go | 209 ++- 93 files changed, 12876 insertions(+), 6680 deletions(-) create mode 100644 diff/bench_test.go create mode 100644 diff/lazy_test.go create mode 100644 diff/testdata/fuzz/FuzzRender/03c1cdf0ef3dea55 create mode 100644 diff/testdata/fuzz/FuzzRender/597030a707a26025 create mode 100644 diff/testdata/fuzz/FuzzRenderFile/3ed8df90f10ed889 create mode 100644 internal/diffview/edits.go create mode 100644 internal/diffview/text_test.go rename test/{upgrade_test.go => migratelua_test.go} (76%) create mode 100644 test/navigator_test.go create mode 100644 test/resize_test.go delete mode 100644 tui/commentlist.go create mode 100644 tui/comments.go create mode 100644 tui/navigator.go delete mode 100644 tui/tree.go diff --git a/cmd/rexdiff/install.go b/cmd/rexdiff/install.go index d9eb447..8795251 100644 --- a/cmd/rexdiff/install.go +++ b/cmd/rexdiff/install.go @@ -14,48 +14,40 @@ import ( "strings" "time" + "github.com/rednafi/rexdiff/internal/xctx" "github.com/rednafi/rexdiff/rex" ) -// The install command adds a Rex action, "Toggle rexdiff", to the command -// palette and binds it to a key. The action opens rexdiff beside the agent -// in focus. If rexdiff runs in the session, the action closes each block -// that runs rexdiff instead. The action finds these blocks by the program -// status that rexdiff reports. A Rex session is the same as a herdr -// workspace. -// -// The action is in two files beside Rex's init.lua, and init.lua loads them -// with one line. rexdiff.lua has the settings of the user. Install writes -// it only if it is not there, and rexdiff does not change it after that. -// rexdiff_toggle.lua has the toggle action. Install and upgrades write -// it whole. - +// The require line in init.lua loads rexdiff.lua, which holds the user's +// settings and loads rexdiff_toggle.lua, which holds the action. const ( - // requireLine is the line of init.lua that loads rexdiff.lua. + // requireLine is the line in init.lua that loads rexdiff.lua. requireLine = `require("rexdiff")` - luaFile = "rexdiff.lua" // beside init.lua - toggleFile = "rexdiff_toggle.lua" // beside init.lua + luaFile = "rexdiff.lua" // in the same directory as init.lua + toggleFile = "rexdiff_toggle.lua" // in the same directory as init.lua ) -// settingsLua is the content of a new rexdiff.lua: the settings, then the -// loader of rexdiff_toggle.lua. If rexdiff_toggle.lua fails, the loader keeps -// the rest of Rex's config, and the key shows why. +// settingsLua is the content of a new rexdiff.lua: the settings, followed +// by code that loads rexdiff_toggle.lua. If rexdiff_toggle.lua fails to +// load, the rest of the Rex config still works, and pressing the key shows +// the error. // //go:embed rexdiff.lua var settingsLua string -// loaderMark is the first line of the loader in settingsLua. +// loaderMark is the first line of the loading code in settingsLua. const loaderMark = "-- rexdiff_toggle.lua has the toggle action" -// oldMark is the line of a rexdiff.lua from rexdiff 0.2.7 above its code. -// The text above the line is the settings of the user. -const oldMark = "-- rexdiff code below. Install and upgrades replace it. Do not edit this line." +// v027Mark is the line that separates the user's settings, above it, from +// the action code, below it, in a rexdiff.lua written by rexdiff 0.2.7. +const v027Mark = "-- rexdiff code below. Install and upgrades replace it. Do not edit this line." -// fromOld returns the new rexdiff.lua for old, a rexdiff.lua from rexdiff -// 0.2.7. It keeps the settings of old, and puts the loader in place of the -// code. ok is false if old is not from 0.2.7. -func fromOld(old string) (s string, ok bool) { - above, _, ok := strings.Cut(old, oldMark) +// migrateV027 converts oldLua, a rexdiff.lua written by rexdiff 0.2.7, to +// the current format. It keeps the settings and replaces the action code +// with the code that loads rexdiff_toggle.lua. ok is false if oldLua was +// not written by 0.2.7. +func migrateV027(oldLua string) (s string, ok bool) { + above, _, ok := strings.Cut(oldLua, v027Mark) if !ok { return "", false } @@ -63,39 +55,38 @@ func fromOld(old string) (s string, ok bool) { return strings.TrimRight(above, "\n") + "\n\n" + loaderMark + loader, true } -// toggleCode is the code of the toggle action. It needs BIN, the path of -// rexdiff. +// toggleCode is the Lua code of the toggle action. It uses the variable +// BIN for the path of rexdiff. // //go:embed rexdiff_toggle.lua var toggleCode string -// toggleLua returns the content of rexdiff_toggle.lua for bin, the path of -// rexdiff. +// toggleLua returns the content of rexdiff_toggle.lua for the rexdiff +// binary at bin. func toggleLua(bin string) string { return "-- rexdiff writes this file. Do not edit it. Your settings are in rexdiff.lua.\n" + binLine(bin) + "\n" + toggleCode } -// binLine returns the line of rexdiff_toggle.lua that names bin. upgrade uses -// it to find which rexdiff the file runs. +// binLine returns the line of rexdiff_toggle.lua that sets BIN to bin. func binLine(bin string) string { return "local BIN = " + luaQuote(bin) } -// luaEscapes escapes the characters that a Lua string cannot have as they -// are. A Replacer is safe for concurrent use. +// luaEscapes escapes the characters that cannot appear unescaped in a Lua +// string literal. var luaEscapes = strings.NewReplacer(`\`, `\\`, `"`, `\"`, "\n", `\n`, "\r", `\r`, "\x00", `\0`) -// luaQuote returns s as a Lua string. Go's %q writes escapes, such as -// \u200b, that Lua 5.1 does not know. +// luaQuote returns s as a Lua string literal. It does not use %q, because +// Lua 5.1 does not support escapes such as \u200b. func luaQuote(s string) string { return `"` + luaEscapes.Replace(s) + `"` } -// luaPath returns the path of the file name in the environment env, -// beside the init.lua of Rex. +// luaPath returns the path of the file called name in the directory of +// the Rex init.lua for env. func luaPath(env []string, name string) string { return filepath.Join(filepath.Dir(rex.ConfigPath(env)), name) } -// readFile returns the content of the file at path, or "" if there is no -// file. +// readFile returns the content of the file at path, or "" if the file does +// not exist. func readFile(path string) (string, error) { b, err := os.ReadFile(path) if errors.Is(err, fs.ErrNotExist) { @@ -104,32 +95,35 @@ func readFile(path string) (string, error) { return string(b), err } -// executable returns the path of the rexdiff binary, for the Rex action. It -// keeps a symlink, such as the one from Homebrew, because the target of the -// link changes at each upgrade. -func executable() (string, error) { +// executablePath returns the path of the rexdiff binary for the Rex action +// to run. It does not resolve symbolic links, such as the one Homebrew +// creates, because the link target changes with every upgrade. +func executablePath() (string, error) { bin, err := os.Executable() if err != nil { return "", err } - // go run deletes its binary at exit, so the action cannot run it. + // go run deletes its binary when it exits, so the action could not run + // it later. if strings.Contains(bin, string(filepath.Separator)+"go-build") { return "", errors.New("install the binary first, for example with go install, then run rexdiff install") } return bin, nil } -// install writes rexdiff_toggle.lua with the action that runs bin, the path -// of rexdiff. It writes rexdiff.lua if it is not there, and moves the code -// out of a rexdiff.lua from rexdiff 0.2.7. It adds the require line to -// init.lua. env is the environment of rexdiff. +// install writes rexdiff_toggle.lua with the Rex action "Toggle rexdiff", +// bound to a key, which opens bin next to the focused agent or, if +// rexdiff is already running in the session, closes every rexdiff block. +// It writes rexdiff.lua if it does not exist, migrates a rexdiff.lua from +// 0.2.7, adds the require line to init.lua and reloads the Rex config. +// env is the environment of rexdiff. func install(ctx context.Context, env []string, bin string, args []string, stdout, stderr io.Writer) error { if err := parseSub("install", args, env, stderr); err != nil { return err } settingsPath, togglePath := luaPath(env, luaFile), luaPath(env, toggleFile) - old, err := readFile(settingsPath) + oldLua, err := readFile(settingsPath) if err != nil { return err } @@ -140,9 +134,9 @@ func install(ctx context.Context, env []string, bin string, args []string, stdou return err } fmt.Fprintf(stdout, "wrote %s\n", togglePath) - next, fromV027 := fromOld(old) + next, fromV027 := migrateV027(oldLua) switch { - case old == "": + case oldLua == "": next = settingsLua fmt.Fprintf(stdout, "wrote %s with your settings\n", settingsPath) case fromV027: @@ -163,25 +157,25 @@ func install(ctx context.Context, env []string, bin string, args []string, stdou if added { fmt.Fprintf(stdout, "added %s to %s\n", requireLine, initPath) } - reload(ctx, env, stdout, stderr) + reloadRex(ctx, env, stdout, stderr) fmt.Fprintln(stdout, "press the key of the settings (shift+cmd+r by default), or run \"Toggle rexdiff\" from the command palette, beside an agent") return nil } -// upgradeReloadTimeout is the longest time of the reload of the Rex -// config after an upgrade. -const upgradeReloadTimeout = 10 * time.Second +// migrateReloadTimeout limits how long migrateLua waits for Rex to reload +// its config. +const migrateReloadTimeout = 10 * time.Second -// upgrade writes rexdiff_toggle.lua with the code for bin, if the file is -// there and differs, and reloads Rex's config. A rexdiff.lua from rexdiff -// 0.2.7 gets its code moved to rexdiff_toggle.lua, and keeps its settings. -// It is not the update of rexdiff itself (see the update package). It -// upgrades only the Lua code of the action. It does nothing if the files -// run another rexdiff, for example a build for development. It returns -// what the user must know, or "". env is the environment of rexdiff. -func upgrade(ctx context.Context, env []string, bin string) string { +// migrateLua rewrites rexdiff_toggle.lua with the current code for bin if +// the file exists and is out of date, migrates a rexdiff.lua from 0.2.7, +// and then reloads the Rex config. It does nothing if the files run a +// different rexdiff binary, for example a development build. It returns a +// message for the user, or "". env is the environment of rexdiff. +func migrateLua(ctx context.Context, env []string, bin string) string { settingsPath, togglePath := luaPath(env, luaFile), luaPath(env, toggleFile) - old, err := readFile(settingsPath) + // The migration is best effort: if a file cannot be read, rexdiff + // starts as usual and leaves the files as they are. + oldLua, err := readFile(settingsPath) if err != nil { return "" } @@ -189,10 +183,11 @@ func upgrade(ctx context.Context, env []string, bin string) string { if err != nil { return "" } - // Each file names the rexdiff that it runs on this line. + // Each file contains this line, which names the rexdiff binary that it + // runs. mine := "\n" + binLine(bin) + "\n" - next, fromV027 := fromOld(old) - fromV027 = fromV027 && strings.Contains(old, mine) + next, fromV027 := migrateV027(oldLua) + fromV027 = fromV027 && strings.Contains(oldLua, mine) want := toggleLua(bin) if !fromV027 && (code == want || !strings.Contains(code, mine)) { return "" @@ -205,29 +200,26 @@ func upgrade(ctx context.Context, env []string, bin string) string { return luaFile + " upgrade failed: " + err.Error() } } - // The upgrade runs before the first frame, and the user does not see - // it. Thus the reload has a deadline. - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, upgradeReloadTimeout, - fmt.Errorf("rex config reload: %v timeout: %w", upgradeReloadTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("rex config reload: done: %w", context.Canceled)) + // migrateLua runs before rexdiff draws its first frame, so the user + // cannot see or cancel it. Give the reload a deadline. + ctx, cancel := xctx.WithTimeout(ctx, migrateReloadTimeout, "rex config reload") + defer cancel() if err := rex.ReloadConfig(ctx, env); err != nil { return "upgraded " + toggleFile + ". Reload Rex's config yourself: rex config reload" } return "" } -// addRequire adds the require line to the end of the init.lua at path. It -// creates the file if it is not there. If the file has the line, addRequire -// does not change it. It reports whether it adds the line. +// addRequire appends the require line to the init.lua at path, creating +// the file if needed. It does nothing if the line is already there, and +// reports whether it added the line. func addRequire(path string) (bool, error) { s, err := readFile(path) if err != nil { return false, err } for line := range strings.Lines(s) { - if isRequire(line) { + if isRequireLine(line) { return false, nil } } @@ -237,35 +229,36 @@ func addRequire(path string) (bool, error) { return true, os.WriteFile(path, []byte(s+requireLine+"\n"), 0o644) } -// isRequire reports whether line is the require line of rexdiff, maybe -// with a comment after it. -func isRequire(line string) bool { +// isRequireLine reports whether line is rexdiff's require line, possibly +// followed by a Lua comment. +func isRequireLine(line string) bool { t := strings.TrimSpace(line) return t == requireLine || strings.HasPrefix(t, requireLine+" --") } -// parseSub parses the arguments of the subcommand name, which has no -// flags. It returns the errors of parseFlags. env is the environment of +// parseSub parses the arguments of the subcommand name, which takes no +// flags or arguments. For -h it returns [flag.ErrHelp]. For an unknown +// flag or any argument it returns errUsage. env is the environment of // rexdiff. func parseSub(name string, args, env []string, stderr io.Writer) error { - fs := flag.NewFlagSet("rexdiff "+name, flag.ContinueOnError) - fs.SetOutput(stderr) - if err := fs.Parse(args); err != nil { + flags := flag.NewFlagSet("rexdiff "+name, flag.ContinueOnError) + flags.SetOutput(stderr) + if err := flags.Parse(args); err != nil { return usageError(err) } - if fs.NArg() > 0 { - // Show the usage, as the flag package does for a bad flag. + if flags.NArg() > 0 { + // Print the usage, as the flag package does for an unknown flag. fmt.Fprintf(stderr, "unknown argument %q (set the key and the placement in the settings in %s)\n", - fs.Arg(0), luaPath(env, luaFile)) - fs.Usage() + flags.Arg(0), luaPath(env, luaFile)) + flags.Usage() return errUsage } return nil } -// uninstall removes the require line from init.lua, then rexdiff.lua with -// the settings, and rexdiff_toggle.lua. In this order, a failure does not -// leave init.lua with a require of a file that is not there. env is the +// uninstall removes the require line from init.lua, then deletes +// rexdiff.lua and rexdiff_toggle.lua. Because of this order, a failure +// never leaves init.lua requiring a file that no longer exists. env is the // environment of rexdiff. func uninstall(ctx context.Context, env, args []string, stdout, stderr io.Writer) error { if err := parseSub("uninstall", args, env, stderr); err != nil { @@ -281,27 +274,27 @@ func uninstall(ctx context.Context, env, args []string, stdout, stderr io.Writer } } fmt.Fprintln(stdout, "removed the rexdiff action, its key, and its settings from Rex") - reload(ctx, env, stdout, stderr) + reloadRex(ctx, env, stdout, stderr) return nil } -// removeRequire removes the require line of rexdiff from the init.lua at -// path. If the file is not there, it does nothing. +// removeRequire removes rexdiff's require line from the init.lua at path. +// If the file does not exist, it does nothing. func removeRequire(path string) error { s, err := readFile(path) if err != nil || s == "" { return err } - // Split, not Lines, because Join needs the lines without their ends. - lines := slices.DeleteFunc(strings.Split(s, "\n"), isRequire) + // Use Split, not Lines, because Join needs lines without their + // newlines. + lines := slices.DeleteFunc(strings.Split(s, "\n"), isRequireLine) return os.WriteFile(path, []byte(strings.Join(lines, "\n")), 0o644) } -// reload tells Rex to read its configuration file again. rex runs with -// the environment env. If Rex fails, reload tells the user on stderr how -// to reload. The reload has no deadline, because the user sees it in a -// terminal and can press Ctrl-C. -func reload(ctx context.Context, env []string, stdout, stderr io.Writer) { +// reloadRex runs rex with env to make Rex read its configuration file +// again. If that fails, reloadRex tells the user on stderr how to reload +// by hand. The reload has no deadline, because the user can press Ctrl-C. +func reloadRex(ctx context.Context, env []string, stdout, stderr io.Writer) { if err := rex.ReloadConfig(ctx, env); err != nil { fmt.Fprintf(stderr, "reload Rex's config yourself: rex config reload (%v)\n", err) return diff --git a/cmd/rexdiff/main.go b/cmd/rexdiff/main.go index 8aae8ff..cd7fc5d 100644 --- a/cmd/rexdiff/main.go +++ b/cmd/rexdiff/main.go @@ -1,9 +1,8 @@ -// Rexdiff shows the changes that a coding agent makes, beside the agent in -// Rex. You can comment on the changed lines, then paste the comments into the -// agent. "rexdiff install" adds a "Toggle rexdiff" action and a key to the Rex -// configuration, in two files beside Rex's init.lua. rexdiff.lua has the -// settings of rexdiff, and rexdiff_toggle.lua has the code of the action. The -// action gives the settings to rexdiff in the --config flag. +// Command rexdiff shows the changes that a coding agent makes, in a Rex +// pane next to the agent. You can comment on changed lines and paste the +// comments into the agent. "rexdiff install" adds a "Toggle rexdiff" action and a +// key binding to the Rex configuration. The action passes the settings +// from rexdiff.lua to rexdiff with the --config flag. // // rexdiff [flags] [repo] // rexdiff install @@ -32,34 +31,39 @@ import ( ) func main() { - // A closed pane sends SIGHUP. The stop of ctx lets rexdiff remove its - // files before it exits. + // Closing the pane sends SIGHUP. Cancel ctx on these signals so rexdiff + // can remove its temporary files before it exits. ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM, syscall.SIGHUP) - // rexdiff reads the environment once, here. The packages get it as a + // Read the environment only here, and pass it to the packages as a // value. err := run(ctx, os.Environ(), os.Args[1:], os.Stdout, os.Stderr) if err != nil && ctx.Err() != nil { - // The error of a stopped program tells only "context canceled". - // The cause names the signal. + // The error says only "context canceled", but the cause names the + // signal. err = context.Cause(ctx) } stop() switch { case errors.Is(err, flag.ErrHelp): + // -h printed the usage, which is a success. case errors.Is(err, errUsage): - os.Exit(2) // stderr already has the error + os.Exit(exitUsage) // the error is already printed on stderr case err != nil: fmt.Fprintln(os.Stderr, "rexdiff:", err) os.Exit(1) } } -// errUsage is the error of a bad flag or argument. stderr already has the -// error and the usage. +// exitUsage is the exit status for an invalid flag or argument, as with +// the flag package. +const exitUsage = 2 + +// errUsage is the error for an invalid flag or argument. By the time it is +// returned, the error message and the usage are already printed on +// stderr. var errUsage = errors.New("bad usage") -// usageError returns err of flag parsing for -h, and errUsage for the -// other errors. +// usageError returns err for -h, and errUsage for other flag errors. func usageError(err error) error { if errors.Is(err, flag.ErrHelp) { return err @@ -67,7 +71,8 @@ func usageError(err error) error { return errUsage } -// usage is the text above the flags in the help of the diff viewer. +// usage is the help text printed before the list of the diff viewer's +// flags. const usage = `usage: rexdiff [flags] [repo] rexdiff install rexdiff uninstall @@ -75,13 +80,13 @@ const usage = `usage: rexdiff [flags] [repo] flags: ` -// run runs the subcommand in args, or else the diff viewer. env is the -// environment of rexdiff, as "key=value" pairs. +// run runs the subcommand named in args, or the diff viewer if there is +// none. env is the environment of rexdiff, as "key=value" pairs. func run(ctx context.Context, env, args []string, stdout, stderr io.Writer) error { if len(args) > 0 { switch args[0] { case "install": - bin, err := executable() + bin, err := executablePath() if err != nil { return err } @@ -98,15 +103,15 @@ func run(ctx context.Context, env, args []string, stdout, stderr io.Writer) erro fmt.Fprintln(stdout, cmp.Or(update.Version(version), "(devel)")) return nil } - if f.check { - return tui.CheckConfig(f.config) - } - if err := tui.CheckFlags(tui.Layout(f.layout), tui.Scope(f.scope)); err != nil { + if err := tui.ValidateFlags(tui.Layout(f.layout), tui.Scope(f.scope)); err != nil { return err } + if f.check { + return tui.ValidateConfig(f.config) + } - // The programs that rexdiff starts, such as an editor, do not get the - // variable of the resume file. + // Remove the resume variable, so programs that rexdiff starts, such as + // an editor, do not inherit it. resumePath, env := takeResume(env) dir := cmp.Or(f.repo, ".") repo, err := vcs.Open(ctx, env, dir) @@ -120,68 +125,70 @@ func run(ctx context.Context, env, args []string, stdout, stderr io.Writer) erro } defer closeLog() - // In Rex, upgrade writes rexdiff_toggle.lua if it differs from the code - // of this rexdiff. - client := rex.New(env) + // When running in Rex, update rexdiff_toggle.lua if it differs from + // the code that this rexdiff would write. + client, inRex := rex.New(env) var notice string - bin, binErr := executable() - if binErr == nil && client != nil { - notice = upgrade(ctx, env, bin) + bin, binErr := executablePath() + if binErr == nil && inRex { + notice = migrateLua(ctx, env, bin) } + installer, _ := update.NewInstaller(env, bin, version) // nil if rexdiff cannot update itself resume, err := tui.Run(ctx, tui.Options{ - Repo: repo, - Rex: client, - Notice: notice, - Updater: update.Detect(env, bin, version), - Resume: resumePath, - Env: env, - Config: f.config, - Layout: tui.Layout(f.layout), - Scope: tui.Scope(f.scope), - Agent: f.agent, - Base: f.base, - Wrap: f.wrap, - Log: log, + Repo: repo, + Rex: client, + Notice: notice, + Installer: installer, + Resume: resumePath, + Env: env, + Config: f.config, + Layout: tui.Layout(f.layout), + Scope: tui.Scope(f.scope), + Agent: f.agent, + Base: f.base, + Wrap: f.wrap, + Log: log, }) if err != nil || resume == "" { return err } - // After an update, the new rexdiff runs in this process. + // After an update, the new rexdiff replaces this process. closeLog() - _ = repo.Close() // the new process does not run the deferred calls - return restart(bin, args, env, resume, stdout) + _ = repo.Close() // the deferred calls never run once the process is replaced + return restart(env, bin, args, resume, stdout) } -// restart runs the new rexdiff at bin in this process after an update, -// with the same args and env. resumeEnv gives it the saved state in the -// file resume. restart returns only if it fails. -func restart(bin string, args, env []string, resume string, stdout io.Writer) error { +// restart replaces this process with the new rexdiff at bin after an +// update. The new rexdiff gets the same env and args, plus the path of the +// file resume, which holds the saved state. restart returns only if it +// fails. +func restart(env []string, bin string, args []string, resume string, stdout io.Writer) error { env = slices.Concat(env, []string{resumeEnv + "=" + resume}) - err := update.Restart(bin, args, env) // returns only if it fails - // Run keeps the alternate screen for the restart. Leave that screen and - // show the cursor. + err := update.Restart(env, bin, args) // returns only if it fails + // tui.Run leaves the terminal on the alternate screen for the new + // process. Since the restart failed, switch back and show the cursor. fmt.Fprint(stdout, "\x1b[?1049l\x1b[?25h") return fmt.Errorf("start the new rexdiff (your comments are saved in %s): %w", resume, err) } -// resumeEnv is the variable that gives a restarted rexdiff the path of the -// file with the state from before the update. rexdiff uses a variable, not a -// flag, so that the arguments of the user do not change. +// resumeEnv is the environment variable that tells a restarted rexdiff +// where to find the state saved before the update. It is an environment +// variable, not a flag, so the user's arguments stay the same. const resumeEnv = "REXDIFF_RESUME" -// takeResume returns the file in the variable resumeEnv of env, or "". It -// also returns a copy of env without the variable. +// takeResume returns the value of resumeEnv in env, or "" if it is not +// set, and a copy of env without that variable. func takeResume(env []string) (path string, rest []string) { path = proc.Getenv(env, resumeEnv) isResume := func(kv string) bool { return strings.HasPrefix(kv, resumeEnv+"=") } return path, slices.DeleteFunc(slices.Clone(env), isResume) } -// version is the version of rexdiff that GoReleaser sets, for example -// "0.2.0". It is "" in other builds. +// version is the rexdiff version that GoReleaser sets at build time, for +// example "0.2.0". It is "" in other builds. var version string -// flags are the command-line arguments of the diff viewer. +// flags holds the command-line arguments of the diff viewer. type flags struct { layout string scope string @@ -190,23 +197,24 @@ type flags struct { agent string logPath string config string // the settings as JSON, or "" - check bool // check the settings and exit + check bool // validate the settings and exit version bool // print the version and exit - repo string // the repo argument, or "" + repo string // the repository argument, or "" } -// parseFlags parses the arguments of the diff viewer. The defaults of -// -agent and -log come from env. It writes the usage and the errors of the -// flags to stderr. For -h, it returns [flag.ErrHelp], and for a bad flag -// or argument errUsage. +// parseFlags parses the arguments of the diff viewer. The defaults for +// -agent and -log come from env. It prints the usage and flag errors on +// stderr. For -h it returns [flag.ErrHelp]. For an invalid flag or an +// extra argument it returns errUsage. func parseFlags(args, env []string, stderr io.Writer) (flags, error) { var f flags fs := flag.NewFlagSet("rexdiff", flag.ContinueOnError) fs.SetOutput(stderr) - // tui.Run checks the layout and the scope, as in the settings. + // The caller validates the layout and scope values. fs.StringVar(&f.layout, "layout", "", "diff layout: unified (top to bottom) or split (side by side)") fs.StringVar(&f.scope, "scope", "", "start scope: uncommitted, branch, or last-turn") - // As in herdr-reviewr, -wrap takes on or off, so "-wrap off" works. + // -wrap is a string flag that takes on or off, so that "-wrap off" + // works. A boolean flag would need "-wrap=false". wrap := fs.String("wrap", "on", "wrap of long lines: on or off (the key w toggles it)") fs.StringVar(&f.base, "base", "", "base for the branch scope (default: the picked base, else the repo's default branch)") fs.StringVar(&f.agent, "agent", proc.Getenv(env, "REXDIFF_AGENT"), "Rex block (ID or label) of the agent beside this pane") @@ -222,7 +230,7 @@ func parseFlags(args, env []string, stderr io.Writer) (flags, error) { return flags{}, usageError(err) } if fs.NArg() > 1 { - // Show the usage, as the flag package does for a bad flag. + // Print the usage, as the flag package does for an unknown flag. fmt.Fprintf(stderr, "unknown argument %q (flags go before the repo)\n", fs.Arg(1)) fs.Usage() return flags{}, errUsage @@ -235,15 +243,25 @@ func parseFlags(args, env []string, stderr io.Writer) (flags, error) { } // openLog returns a logger that appends to the file at path, and a function -// that closes the file. If path is empty, the logger discards everything. -// The log is only for debugging, so the close ignores errors. +// that closes the file, ignoring any error. If path is empty, the logger +// discards all output. A new file is readable only by the user, because +// the log names files and agents. The path may also be a terminal or a +// FIFO, but opening a FIFO with no reader fails at once instead of +// waiting for one. func openLog(path string) (*slog.Logger, func(), error) { if path == "" { return slog.New(slog.DiscardHandler), func() {}, nil } - f, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644) + flags := os.O_APPEND | os.O_CREATE | os.O_WRONLY | syscall.O_NONBLOCK + f, err := os.OpenFile(path, flags, 0o600) + if pe, ok := errors.AsType[*os.PathError](err); ok { + err = pe.Err // the path is in the message already + } + if errors.Is(err, syscall.ENXIO) { + err = errors.New("the FIFO has no reader, start one first") + } if err != nil { - return nil, nil, err + return nil, nil, fmt.Errorf("open log %s: %w", path, err) } h := slog.NewTextHandler(f, &slog.HandlerOptions{Level: slog.LevelDebug}) return slog.New(h), func() { _ = f.Close() }, nil diff --git a/diff/bench_test.go b/diff/bench_test.go new file mode 100644 index 0000000..275f310 --- /dev/null +++ b/diff/bench_test.go @@ -0,0 +1,156 @@ +package diff_test + +import ( + "fmt" + "math/rand/v2" + "strings" + "testing" + + "github.com/rednafi/rexdiff/diff" +) + +// benchFile returns a Go file of n lines, and a copy in which about one in +// every edit lines is changed. With edit 1, every line changes. +func benchFile(n, edit int) (oldText, newText string) { + var o, c strings.Builder + r := rand.New(rand.NewPCG(1, uint64(n))) //nolint:gosec // a fixed seed produces the same files on every run + for i := range n { + line := fmt.Sprintf("\tx += compute(%d, \"s%d\") // L%d\n", i, i*7, i) + if i%20 == 0 { + line = fmt.Sprintf("func f%d(x int) int { // L%d\n", i, i) + } + o.WriteString(line) + if edit == 1 || r.IntN(edit) == 0 { + line = strings.Replace(line, "// L", "// M", 1) + } + c.WriteString(line) + } + return o.String(), c.String() +} + +// benchSizes lists the benchmark files, with their line counts and edit +// rates for benchFile. +var benchSizes = []struct { + name string + n, edit int +}{ + {"7k-changed", 7_000, 3}, + {"20k-rewrite", 20_000, 1}, + {"50k-scattered", 50_000, 250}, + {"200k-scattered", 200_000, 1000}, +} + +// screen reads one screen of lines from d, starting at line top, as a +// view does. +func screen(d *diff.Diff, top int) { + for i := top; i < min(top+50, len(d.Rows)); i++ { + d.Line(i) + } +} + +// BenchmarkRender measures rendering a diff and reading its first screen. +// The cold cases use a new Cache each time. The scroll cases render again +// after a horizontal scroll, which reuses the cached diff and rows. +func BenchmarkRender(b *testing.B) { + for _, s := range benchSizes { + oldText, newText := benchFile(s.n, s.edit) + for _, layout := range []string{"unified", "split", "wrap"} { + o := diff.Options{Width: 130, Split: layout == "split", Wrap: layout == "wrap"} + b.Run(s.name+"/"+layout+"/cold", func(b *testing.B) { + for b.Loop() { + o.Cache = &diff.Cache{} + screen(diff.Render("x.go", oldText, newText, o), 0) + } + }) + b.Run(s.name+"/"+layout+"/scroll", func(b *testing.B) { + o.Cache = &diff.Cache{} + diff.Render("x.go", oldText, newText, o) + for b.Loop() { + if !o.Wrap { + o.ScrollX = 8 - o.ScrollX + } + screen(diff.Render("x.go", oldText, newText, o), 0) + } + }) + } + b.Run(s.name+"/eager", func(b *testing.B) { + if s.n > 20_000 { + b.Skip("an eager render of a large file is slow") + } + for b.Loop() { + diff.Render("x.go", oldText, newText, diff.Options{Width: 130, Cache: &diff.Cache{}}) + } + }) + } +} + +// BenchmarkLines measures reading the next screen of lines from a lazy +// diff, as when paging down. +func BenchmarkLines(b *testing.B) { + oldText, newText := benchFile(50_000, 3) + o := diff.Options{Width: 130, Cache: &diff.Cache{}} + d := diff.Render("x.go", oldText, newText, o) + top := 0 + for b.Loop() { + if top+50 >= len(d.Rows) { + b.StopTimer() + d, top = diff.Render("x.go", oldText, newText, o), 0 + b.StartTimer() + } + screen(d, top) + top += 50 + } +} + +// BenchmarkRenderFile measures what the Files tab does: rendering a file +// and reading its first screen. Each render uses a different file from the +// previous one, so the Cache stops the previous background highlighting. +func BenchmarkRenderFile(b *testing.B) { + for _, s := range benchSizes { + srcs := [2]string{} + srcs[0], srcs[1] = benchFile(s.n, s.edit) + for _, wrap := range []bool{false, true} { + b.Run(fmt.Sprintf("%s/wrap=%v", s.name, wrap), func(b *testing.B) { + o := diff.Options{Width: 130, Wrap: wrap, Cache: &diff.Cache{}} + i := 0 + for b.Loop() { + screen(diff.RenderFile("x.go", srcs[i%2], fileOptions(o)), 0) + i++ + } + diff.RenderFile("x.go", "", fileOptions(o)) // stops the last background highlighting + }) + } + } +} + +// BenchmarkCountLines measures counting added and deleted lines, as the +// file list does. +func BenchmarkCountLines(b *testing.B) { + for _, s := range benchSizes { + oldText, newText := benchFile(s.n, s.edit) + b.Run(s.name, func(b *testing.B) { + for b.Loop() { + diff.CountLines(oldText, newText) + } + }) + } + oldText, newText := fewValues(25_000) + b.Run("50k-few-values", func(b *testing.B) { + for b.Loop() { + diff.CountLines(oldText, newText) + } + }) +} + +// fewValues returns two texts of n lines each, made of random lines from a +// few distinct values. Such texts are the slowest input for a diff. +func fewValues(n int) (oldText, newText string) { + r := rand.New(rand.NewPCG(1, 2)) //nolint:gosec // a fixed seed produces the same texts on every run + values := []string{"a\n", "b\n", "}\n", "\n", "return\n"} + var o, c strings.Builder + for range n { + o.WriteString(values[r.IntN(len(values))]) + c.WriteString(values[r.IntN(len(values))]) + } + return o.String(), c.String() +} diff --git a/diff/cell.go b/diff/cell.go index 710f9e1..1fa37a6 100644 --- a/diff/cell.go +++ b/diff/cell.go @@ -9,56 +9,99 @@ import ( "github.com/rednafi/rexdiff/internal/diffview" ) -// Cell tells which source character the cell at column x of line row -// shows. Column 0 is the first column of the line. It returns the side, -// the line number from 1, and the index of the rune in [Lines] of that -// side. The index can be past the end of the line, for a cell after the -// code. ok is false if the cell is not on code, for example on a line -// number, a mark, or a hunk header. -func (d *Diff) Cell(row, x int) (s Side, line, index int, ok bool) { +// Cell reports which source character is shown in the cell at column x of +// screen line row, where column 0 is the first column. It returns the +// side, the 1-based line number, and the rune index within that line as +// split by [SplitLines]. For a cell after the end of the code, the index is the +// line's length in runes. ok is false if the cell is not on code, for +// example on a line number, a sign or a hunk header. +func (d *Diff) Cell(row, x int) (side Side, line, index int, ok bool) { if row < 0 || row >= len(d.Rows) || d.Rows[row].Kind == KindHunk { return 0, 0, 0, false } r := d.Rows[row] - s, onNumber := d.SideAt(x) + var onGutter bool + side, onGutter = d.SideAt(x) if !d.split { - s = SideNew + side = SideNew if r.New == 0 { - s = SideOld + side = SideOld } } - line = r.Line(s) - if onNumber || line == 0 || x < d.codeAt[s] { + line = r.Line(side) + if onGutter || line == 0 || x < d.codeAt[side] { return 0, 0, 0, false } - text, ok := lineAt(d.src[s], line) - if !ok { + text, found := lineAt(d.texts[side], line) + if !found { return 0, 0, 0, false } - col := x - d.codeAt[s] + d.offset + col := x - d.codeAt[side] + d.scrollX if d.wrap { - start, width := d.segmentStart(row, s, text) - if col >= width { // the blank cells after a wrapped part - return s, line, utf8.RuneCountInString(text), true + start, width := d.segmentStart(row, side, text) + if col >= width { // a blank cell after the end of a wrapped part + return side, line, utf8.RuneCountInString(text), true } col += start } - return s, line, runeAt(text, col), true + return side, line, runeAt(text, col), true } -// segmentStart returns the column in the source line text where the -// screen line row starts on side s, and the width of its code. A wrapped -// line can drop the spaces where it breaks. Thus it finds each screen line -// in the text, in order. -func (d *Diff) segmentStart(row int, s Side, text string) (start, width int) { +// CodeWidth returns the number of columns that show code on side, or 0 if +// the lines have no width limit. +func (d *Diff) CodeWidth(side Side) int { return max(d.codeWidth[side], 0) } + +// Locate finds where the byte at offset i of a source line is shown. row +// is the first screen line of the source line, and side the side that +// shows it. Locate returns the screen line that shows the byte, which is +// row unless the line wraps, and the column of the byte counted from the +// start of the code on that screen line, as if not scrolled. +func (d *Diff) Locate(row int, side Side, i int) (line, col int) { + if row < 0 || row >= len(d.Rows) { + return row, 0 + } + text, found := lineAt(d.texts[side], d.Rows[row].Line(side)) + if !found { + return row, 0 + } + col = ansi.StringWidth(expand(text[:min(max(i, 0), len(text))])) + if !d.wrap { + return row, col + } + // Go through the screen lines of the wrapped line in order, as + // segmentStart does, keeping the width of the code before each one. + shown := expand(text) + at, start := 0, 0 // the byte offset in shown and the column after the previous screen line + for r := row; r < len(d.Rows) && (r == row || d.Rows[r].Continued); r++ { + seg := d.segment(r, side) + k := strings.Index(shown[at:], seg) + if k < 0 { + break + } + start += ansi.StringWidth(shown[at : at+k]) + width := ansi.StringWidth(seg) + last := r+1 >= len(d.Rows) || !d.Rows[r+1].Continued + if col < start+width || last { + return r, col - start + } + at, start = at+k+len(seg), start+width + } + return row, col +} + +// segmentStart returns the column in the source line text where screen +// line row starts on the given side, and the width of the code on that +// screen line. It searches text for each screen line of the wrapped line +// in order, because wrapping can drop spaces at the breaks. +func (d *Diff) segmentStart(row int, side Side, text string) (start, width int) { first := row for first > 0 && d.Rows[first].Continued { first-- } shown := expand(text) - at := 0 // the byte in shown after the last screen line + at := 0 // byte offset in shown just after the previous screen line for i := first; i <= row; i++ { - seg := d.segment(i, s) + seg := d.segment(i, side) k := strings.Index(shown[at:], seg) if k < 0 { break @@ -71,26 +114,26 @@ func (d *Diff) segmentStart(row int, s Side, text string) (start, width int) { return ansi.StringWidth(shown[:at]), 0 } -// segment returns the code of side s on screen line i, without the -// spaces at the end. -func (d *Diff) segment(i int, s Side) string { - plain := ansi.Strip(d.Lines[i]) +// segment returns the code of the given side on screen line i, without +// trailing spaces. +func (d *Diff) segment(i int, side Side) string { + plain := ansi.Strip(d.Line(i)) end := ansi.StringWidth(plain) - if d.split && s == SideOld { + if d.split && side == SideOld { end = d.newNumAt } - return strings.TrimRight(ansi.Cut(plain, d.codeAt[s], end), " ") + return strings.TrimRight(ansi.Cut(plain, d.codeAt[side], end), " ") } -// expand returns line as the screen shows it, with the tabs as spaces and -// the control characters as symbols. +// expand returns line as it appears on screen, with tabs replaced by +// spaces and control characters replaced by symbols. func expand(line string) string { - return diffview.Escape(strings.ReplaceAll(line, "\t", strings.Repeat(" ", diffview.TabWidth))) + return diffview.Escape(diffview.ExpandTabs(line)) } -// runeAt returns the index of the first rune of the grapheme cluster of -// line that covers column col. It returns the number of runes if col is -// past the end. +// runeAt returns the index of the first rune of the grapheme cluster in +// line that covers column col. If col is past the end, it returns the +// number of runes in line. func runeAt(line string, col int) int { i, c := 0, 0 for line != "" { @@ -109,7 +152,8 @@ func runeAt(line string, col int) int { return i } -// lineAt returns line n of src, from 1, as [Lines] splits it. +// lineAt returns the 1-based line n of src, as split by [SplitLines]. It +// returns false if src has fewer than n lines. func lineAt(src string, n int) (string, bool) { for l := range strings.Lines(src) { if n--; n == 0 { diff --git a/diff/cell_test.go b/diff/cell_test.go index a041ed4..5493e55 100644 --- a/diff/cell_test.go +++ b/diff/cell_test.go @@ -9,7 +9,8 @@ import ( "github.com/rednafi/rexdiff/diff" ) -// screenRune returns the rune of the plain line that covers column x. +// screenRune returns the rune of plain that covers column x. It returns +// false if x is past the end of the line. func screenRune(plain string, x int) (rune, bool) { c := 0 for _, r := range plain { @@ -22,18 +23,18 @@ func screenRune(plain string, x int) (rune, bool) { return 0, false } -// plainLine returns line i of d without the escapes. It stops the test if d -// has no line i. +// plainLine returns line i of d without escape sequences. It fails the +// test if d has no line i. func plainLine(t *testing.T, d *diff.Diff, i int) string { t.Helper() - if i < 0 || i >= len(d.Lines) { - t.Fatalf("line %d of a diff with %d lines", i, len(d.Lines)) + if i < 0 || i >= len(screenLines(d)) { + t.Fatalf("line %d of a diff with %d lines", i, len(screenLines(d))) } - return ansi.Strip(d.Lines[i]) + return ansi.Strip(screenLines(d)[i]) } -// column returns the column of the first cell of needle in line i of d. -// With last, it finds the last needle. +// column returns the screen column where needle starts in line i of d. If +// last is true, it uses the last occurrence of needle. func column(t *testing.T, d *diff.Diff, i int, needle string, last bool) int { t.Helper() plain := plainLine(t, d, i) @@ -47,18 +48,24 @@ func column(t *testing.T, d *diff.Diff, i int, needle string, last bool) int { return ansi.StringWidth(plain[:k]) } -// TestCell checks the source character of a cell, with tabs, an offset, -// the split layout, and a file. +// TestCell checks the source character that [Diff.Cell] returns for +// various cells, with tabs, a horizontal scroll, split view and a file +// view. func TestCell(t *testing.T) { t.Parallel() - const before, after = "a\n\told_name := 1\n", "a\n\tnew_name := 1\n" - u := diff.Render("x.go", before, after, diff.Options{Width: 80}) - off := diff.Render("x.go", before, after, diff.Options{Width: 80, Offset: 6}) - s := diff.Render("x.go", before, after, diff.Options{Width: 80, Split: true}) - f := diff.RenderFile("x.go", after, diff.Options{Width: 80}) + const oldSrc, newSrc = "a\n\told_name := 1\n", "a\n\tnew_name := 1\n" + // Each subtest renders its own Diff, because a Diff is not safe for + // concurrent use. + render := func(o diff.Options) func() *diff.Diff { + return func() *diff.Diff { return diff.Render("x.go", oldSrc, newSrc, o) } + } + u := render(diff.Options{Width: 80}) + off := render(diff.Options{Width: 80, ScrollX: 6}) + s := render(diff.Options{Width: 80, Split: true}) + f := func() *diff.Diff { return diff.RenderFile("x.go", newSrc, diff.FileOptions{Width: 80}) } tests := []struct { name string - d *diff.Diff + d func() *diff.Diff row int needle string last bool @@ -77,8 +84,9 @@ func TestCell(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() - x := column(t, tt.d, tt.row, tt.needle, tt.last) - side, line, char, ok := tt.d.Cell(tt.row, x) + d := tt.d() + x := column(t, d, tt.row, tt.needle, tt.last) + side, line, char, ok := d.Cell(tt.row, x) if !ok || side != tt.side || line != tt.line || char != tt.char { t.Errorf("Cell(%d, %d) = %v, %d, %d, %v, want %v, %d, %d, true", tt.row, x, side, line, char, ok, @@ -86,21 +94,23 @@ func TestCell(t *testing.T) { } }) } - // A cell of the tab gives the tab. A cell after the code gives the end. - x := column(t, u, 3, "new", false) - if _, _, char, _ := u.Cell(3, x-1); char != 0 { + ud := u() + // A cell inside a tab returns the tab. A cell after the code returns + // the line's length. + x := column(t, ud, 3, "new", false) + if _, _, char, _ := ud.Cell(3, x-1); char != 0 { t.Errorf("the tab: char %d, want 0", char) } - if _, _, char, ok := u.Cell(3, 79); !ok || char != 14 { + if _, _, char, ok := ud.Cell(3, 79); !ok || char != 14 { t.Errorf("after the code: char %d, %v, want 14, true", char, ok) } - // The numbers, the mark, and the hunk header are not code. + // Line numbers, signs and hunk headers are not code. for _, c := range []struct{ row, x int }{{3, 0}, {3, 4}, {3, x - 5}, {0, 20}, {9, 20}} { - if _, _, _, ok := u.Cell(c.row, c.x); ok { + if _, _, _, ok := ud.Cell(c.row, c.x); ok { t.Errorf("Cell(%d, %d) is code, want not code", c.row, c.x) } } - // The other side of a split insert has no line. + // In split view, the old side of an added line is empty. ins := diff.Render("x.go", "a\n", "a\nb\n", diff.Options{Width: 80, Split: true}) if _, _, _, ok := ins.Cell(2, 10); ok { t.Error("the empty old side of an insert is code, want not code") @@ -108,7 +118,8 @@ func TestCell(t *testing.T) { } // TestCellMatchesScreen checks that each code cell shows the character -// that Cell gives, in each layout, with wrap, and with an offset. +// that [Diff.Cell] returns, for each renderer, with cut, scrolled and +// wrapped lines. func TestCellMatchesScreen(t *testing.T) { t.Parallel() var words []string @@ -116,14 +127,14 @@ func TestCellMatchesScreen(t *testing.T) { words = append(words, "w"+string(rune('a'+i%26))+strings.Repeat("x", i%4)) } long := "\t" + strings.Join(words, " ") + " 日本 end" - before, after := "a\nb\n", "a\n"+long+"\nb\n" + oldSrc, newSrc := "a\nb\n", "a\n"+long+"\nb\n" opts := map[string]diff.Options{ "cut": {Width: 60}, - "offset": {Width: 60, Offset: 13}, + "offset": {Width: 60, ScrollX: 13}, "wrap": {Width: 60, Wrap: true}, } - src := map[diff.Side][]string{diff.SideOld: diff.Lines(before), diff.SideNew: diff.Lines(after)} - for _, tt := range renderers(before, after) { + src := map[diff.Side][]string{diff.SideOld: diff.SplitLines(oldSrc), diff.SideNew: diff.SplitLines(newSrc)} + for _, tt := range renderers(oldSrc, newSrc) { t.Run(tt.name, func(t *testing.T) { t.Parallel() for on, o := range opts { @@ -134,11 +145,11 @@ func TestCellMatchesScreen(t *testing.T) { } // checkCells checks that each code cell of d shows the character that -// Cell gives. The lines of src are the source of each side. +// [Diff.Cell] returns. src holds the source lines of each side. func checkCells(t *testing.T, on string, d *diff.Diff, src map[diff.Side][]string) { t.Helper() checked := 0 - for i, l := range d.Lines { + for i, l := range screenLines(d) { plain := ansi.Strip(l) for x := range ansi.StringWidth(plain) { side, line, char, ok := d.Cell(i, x) @@ -170,17 +181,17 @@ func checkCells(t *testing.T, on string, d *diff.Diff, src map[diff.Side][]strin } } -// TestCellGraphemes checks Cell after grapheme clusters of more than one -// code point, in a cut line and in a wrapped line. +// TestCellGraphemes checks [Diff.Cell] after grapheme clusters made of +// several code points, in a cut line and in a wrapped line. func TestCellGraphemes(t *testing.T) { t.Parallel() for _, g := range []string{"❤️", "👨‍👩‍👧", "🇺🇸"} { line := strings.Repeat(g+"x ", 20) src := []rune(line) for _, o := range []diff.Options{{Width: 200}, {Width: 40, Wrap: true}} { - d := diff.RenderFile("x.txt", line+"\n", o) + d := diff.RenderFile("x.txt", line+"\n", fileOptions(o)) found := 0 - for i, l := range d.Lines { + for i, l := range screenLines(d) { plain := ansi.Strip(l) for k := range len(plain) { if plain[k] != 'x' { @@ -202,17 +213,16 @@ func TestCellGraphemes(t *testing.T) { } } -// TestCellOffsetInWideChar checks Cell when the offset cuts a wide -// character. The content moves by the offset, so Cell agrees with the -// screen. +// TestCellOffsetInWideChar checks that [Diff.Cell] agrees with the screen +// when the horizontal scroll cuts through a wide character. func TestCellOffsetInWideChar(t *testing.T) { t.Parallel() const line = "日本x" for _, off := range []int{1, 3} { - o := diff.Options{Width: 40, Offset: off} + o := diff.Options{Width: 40, ScrollX: off} for name, d := range map[string]*diff.Diff{ "diff": diff.Render("x.txt", "", line+"\n", o), - "file": diff.RenderFile("x.txt", line+"\n", o), + "file": diff.RenderFile("x.txt", line+"\n", fileOptions(o)), } { row := len(d.Rows) - 1 for char, needle := range []rune(line) { @@ -228,3 +238,53 @@ func TestCellOffsetInWideChar(t *testing.T) { } } } + +// TestLocate checks that Locate finds the screen line and column of a +// match in a long line, with and without wrapping, in a diff and in a +// file view. +func TestLocate(t *testing.T) { + t.Parallel() + line := "\tstart " + strings.Repeat("word ", 40) + "HIT end" + at := strings.Index(line, "HIT") + src := "a\n" + line + "\n" + for _, tt := range []struct { + name string + o diff.Options + file bool // render a file view instead of a diff + row int // the first screen line of line + }{ + {"diff", diff.Options{Width: 60}, false, 2}, + {"diff wrapped", diff.Options{Width: 60, Wrap: true}, false, 2}, + {"split wrapped", diff.Options{Width: 90, Split: true, Wrap: true}, false, 2}, + {"file", diff.Options{Width: 60}, true, 1}, + {"file wrapped", diff.Options{Width: 60, Wrap: true}, true, 1}, + } { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + d := diff.Render("x.txt", "a\n", src, tt.o) + if tt.file { + d = diff.RenderFile("x.txt", src, fileOptions(tt.o)) + } + if len(d.Rows) == 0 { + t.Fatal("no lines") + } + got, col := d.Locate(tt.row, diff.SideNew, at) + // The column of the code start, found from the "start" word on + // the first screen line. + codeAt := column(t, d, tt.row, "start", false) - len(" ") + width := d.CodeWidth(diff.SideNew) + if !strings.HasSuffix(tt.name, "wrapped") { + if got != tt.row || col <= width { + t.Errorf("Locate = %d, %d, want line %d and a column past the width %d", got, col, tt.row, width) + } + return + } + if got == tt.row || col >= width { + t.Fatalf("Locate = %d, %d, want a later screen line and a column within the width %d", got, col, width) + } + if r, ok := screenRune(plainLine(t, d, got), codeAt+col); !ok || r != 'H' { + t.Errorf("screen line %d shows %q at column %d, want 'H'", got, r, codeAt+col) + } + }) + } +} diff --git a/diff/comment.go b/diff/comment.go index 3b4e2cc..bfe2472 100644 --- a/diff/comment.go +++ b/diff/comment.go @@ -12,49 +12,45 @@ import ( ) // Comment is a review note on a range of lines on one side of a file. Use -// [NewComment] to make one. A comment keeps the text of its lines and its -// diff rows, for [Comments.Review]. As in herdr-reviewr, a comment does not -// move when its file changes. It stays on its line numbers. +// [NewComment] to create one. A comment stores the text of its lines and +// its diff rows for [Comments.Review]. When the file changes, the comment +// keeps its line numbers and does not follow its code; [Comment.Moved] +// reports whether its lines still hold that code. type Comment struct { ID int // [Comments.Add] sets it Path string Side Side - // Start and End are the first and the last line of the range. They - // start at 1. + // Start and End are the 1-based first and last lines of the range. Start, End int Text string - // Anchor tells the view that the comment shows in. + // Anchor identifies the view that shows the comment. Anchor Anchor code []string // the text of the lines Start to End - snippet []string // the rows as unified diff lines, or empty to use code - // noAnchor is true for a comment from a file with no anchors. + snippet []string // the rows as unified diff lines, or empty to use code instead + // noAnchor is true for a comment loaded from a file without anchors. noAnchor bool } -// Anchor is the view that a comment is made in. A comment shows only in a -// view with the same anchor. +// Anchor identifies the view in which a comment was written. A comment is +// shown only in a view with the same anchor. type Anchor struct { - // InDiff is true for a comment on a diff, and false for a comment on - // a file view. + // InDiff is true for a comment on a diff, and false for a comment in + // the file view. InDiff bool - // Rev names the commits of the diff, or is "" for the working tree. + // Rev names the commits being compared, or is "" for the working tree. Rev string } -// NewComment returns a comment with no text on side s of the file at path. -// Rows are rows of the [Diff] of before and after. Start and End are the -// first and the last line of the rows on side s. They are 0 if no row has -// a line on s. -// -// In the diff rows of the comment, equal, deleted, and inserted lines start -// with " ", "-", and "+". The text comes from before and after, so tabs -// stay. In each block of changes, deleted lines come before inserted -// lines, also in the split layout. Continued rows add nothing. -func NewComment(path string, s Side, rows []Row, before, after string) Comment { - c := Comment{Path: path, Side: s, snippet: snippet(rows, before, after)} +// NewComment returns an empty comment on side of the file at path, for +// rows of the [Diff] between oldText and newText. Start and End are the +// first and last lines of the rows on that side, or 0 if there are none. +// The comment keeps the rows as unified diff lines taken from oldText and +// newText, with deleted lines before added ones. +func NewComment(path string, side Side, rows []Row, oldText, newText string) Comment { + c := Comment{Path: path, Side: side, snippet: snippet(rows, oldText, newText)} for _, r := range rows { - n := r.Line(s) + n := r.Line(side) if n == 0 { continue } @@ -66,14 +62,14 @@ func NewComment(path string, s Side, rows []Row, before, after string) Comment { if c.Start == 0 { return c } - lines := Lines(version(s, before, after)) + lines := SplitLines(versionText(side, oldText, newText)) c.code = slices.Clone(lines[min(c.Start-1, len(lines)):min(c.End, len(lines))]) return c } -// Location returns the path and the lines of c, for example "a.go:3-4". -// A comment on the old side has " (removed)" at the end. [termtext.Quote] -// quotes the path. +// Location returns the path and line range of c, for example "a.go:3-4". +// For a comment on the old side, it appends " (removed)". The path is +// quoted with [termtext.Quote]. func (c *Comment) Location() string { loc := fmt.Sprintf("%s:%d", termtext.Quote(c.Path), c.Start) if c.End != c.Start { @@ -85,8 +81,29 @@ func (c *Comment) Location() string { return loc } -// Comments is the set of comments of a review. The zero value is an empty -// set that is ready to use. +// Moved reports whether text, the version of the file on the side of c, +// no longer holds the code of c on lines Start to End: the lines hold +// other code, or text has fewer lines. It reports false for a comment +// with no code to compare, such as one read from an older file. +func (c *Comment) Moved(text string) bool { + if c.Start == 0 || len(c.code) != c.End-c.Start+1 { + return false + } + n := 0 + for l := range strings.Lines(text) { + n++ + if n > c.End { + break + } + if n >= c.Start && trimEOL(l) != c.code[n-c.Start] { + return true + } + } + return n < c.End +} + +// Comments is the set of comments in a review. The zero value is an empty +// set ready to use. type Comments struct { last int items []*Comment @@ -95,15 +112,15 @@ type Comments struct { // Len returns the number of comments. func (cs *Comments) Len() int { return len(cs.items) } -// Add adds c with a new ID. +// Add adds c and gives it a new ID. func (cs *Comments) Add(c Comment) { cs.last++ c.ID = cs.last cs.items = append(cs.items, &c) } -// Remove removes the comment with the given ID, if there is one. -func (cs *Comments) Remove(id int) { +// Delete removes the comment with the given ID, if there is one. +func (cs *Comments) Delete(id int) { cs.items = slices.DeleteFunc(cs.items, func(c *Comment) bool { return c.ID == id }) } @@ -114,10 +131,9 @@ func (cs *Comments) All() []*Comment { }) } -// SetOldRev sets the Rev of each comment that [Comments.UnmarshalJSON] -// reads from the file of an older rexdiff. Such a file has no anchors, and -// its comments are on the diff of the scope that the file saves. -func (cs *Comments) SetOldRev(rev string) { +// SetRev sets the Rev of each comment that [Comments.UnmarshalJSON] read +// from a file without anchors. +func (cs *Comments) SetRev(rev string) { for _, c := range cs.items { if c.noAnchor { c.Anchor.Rev, c.noAnchor = rev, false @@ -133,23 +149,24 @@ func (cs *Comments) Find(id int) *Comment { return nil } -// At returns the first comment with anchor a whose range includes line, or -// nil. -func (cs *Comments) At(a Anchor, path string, s Side, line int) *Comment { - for _, c := range cs.items { - if c.Anchor == a && c.Path == path && c.Side == s && - line >= c.Start && line <= c.End { - return c - } +// At returns the first comment with anchor a whose range includes line, +// or nil if there is none. +func (cs *Comments) At(a Anchor, path string, side Side, line int) *Comment { + i := slices.IndexFunc(cs.items, func(c *Comment) bool { + return c.Anchor == a && c.Path == path && c.Side == side && + line >= c.Start && line <= c.End + }) + if i < 0 { + return nil } - return nil + return cs.items[i] } // EndingAt returns the comments with anchor a whose range ends on line. -func (cs *Comments) EndingAt(a Anchor, path string, s Side, line int) []*Comment { +func (cs *Comments) EndingAt(a Anchor, path string, side Side, line int) []*Comment { var ending []*Comment for _, c := range cs.items { - if c.Anchor == a && c.Path == path && c.Side == s && c.End == line { + if c.Anchor == a && c.Path == path && c.Side == side && c.End == line { ending = append(ending, c) } } @@ -167,16 +184,16 @@ func (cs *Comments) Count(a Anchor, path string) int { return n } -// version returns before for the [SideOld] side, and after for the -// [SideNew] side. -func version(s Side, before, after string) string { - if s == SideOld { - return before +// versionText returns oldText for [SideOld] and newText for [SideNew]. +func versionText(side Side, oldText, newText string) string { + if side == SideOld { + return oldText } - return after + return newText } -// savedComment is a [Comment] with its private fields, for MarshalJSON. +// savedComment is the JSON form of a [Comment], including its unexported +// fields. type savedComment struct { ID int `json:"id"` Path string `json:"path"` @@ -184,24 +201,24 @@ type savedComment struct { Start int `json:"start"` End int `json:"end"` Text string `json:"text"` - // InDiff is nil in a file of an older rexdiff. Most comments of - // such a file are on a diff. + // InDiff is nil in files from older versions, and such a comment is + // read as a comment on a diff. InDiff *bool `json:"in_diff"` Rev string `json:"rev"` Code []string `json:"code"` Snippet []string `json:"snippet"` } -// savedComments is a [Comments] with its private fields. +// savedComments is the JSON form of [Comments], including its unexported +// fields. type savedComments struct { Last int `json:"last"` Items []savedComment `json:"items"` } -// MarshalJSON encodes the comments with their code and their diff rows, -// so that UnmarshalJSON restores the same comments, for example after a -// restart. Bytes that are not UTF-8, for example in a Latin-1 file, -// become U+FFFD. +// MarshalJSON encodes the comments with their code and diff rows, so that +// [Comments.UnmarshalJSON] restores the same comments. Invalid UTF-8 bytes +// are replaced with U+FFFD. func (cs *Comments) MarshalJSON() ([]byte, error) { saved := savedComments{Last: cs.last} for _, c := range cs.items { @@ -214,7 +231,7 @@ func (cs *Comments) MarshalJSON() ([]byte, error) { return json.Marshal(saved, jsontext.AllowInvalidUTF8(true)) } -// UnmarshalJSON reads comments that MarshalJSON wrote. +// UnmarshalJSON decodes comments encoded by [Comments.MarshalJSON]. func (cs *Comments) UnmarshalJSON(b []byte) error { var saved savedComments if err := json.Unmarshal(b, &saved); err != nil { diff --git a/diff/comment_test.go b/diff/comment_test.go index 73d3752..c38c313 100644 --- a/diff/comment_test.go +++ b/diff/comment_test.go @@ -14,32 +14,33 @@ import ( "github.com/rednafi/rexdiff/internal/testgit" ) -// comment returns a comment with text on all rows of the diff of before -// and after. -func comment(path string, s diff.Side, before, after, text string) diff.Comment { - rows := diff.Render(path, before, after, diff.Options{}).Rows - c := diff.NewComment(path, s, rows, before, after) +// comment returns a comment with the given text on all rows of the diff +// between oldText and newText. +func comment(path string, side diff.Side, oldText, newText, text string) diff.Comment { + rows := diff.Render(path, oldText, newText, diff.Options{}).Rows + c := diff.NewComment(path, side, rows, oldText, newText) c.Text = text return c } -// commentOn returns a comment on lines start to end of src, the file at -// path. The rows come from [diff.RenderFile]. -func commentOn(path string, s diff.Side, src string, start, end int) diff.Comment { - rows := diff.RenderFile(path, src, diff.Options{}).Rows - return diff.NewComment(path, s, rows[start-1:end], src, src) +// commentOn returns a comment on lines start to end of src, the content of +// the file at path, using rows from [diff.RenderFile]. +func commentOn(path string, side diff.Side, src string, start, end int) diff.Comment { + rows := diff.RenderFile(path, src, diff.FileOptions{}).Rows + return diff.NewComment(path, side, rows[start-1:end], src, src) } -// review returns the text of [diff.Comments.Review] for c only. +// review returns the output of [diff.Comments.Review] for a set that holds +// only c. func review(c diff.Comment) string { var cs diff.Comments cs.Add(c) - return cs.Review("") + return cs.Review("", nil) } -// TestReviewMatchesHerdrReviewr checks that Review writes the text format -// of herdr-reviewr. -func TestReviewMatchesHerdrReviewr(t *testing.T) { +// TestReview checks the text that Review writes: the prompt, then each +// comment's location, diff lines and text, sorted by path. +func TestReview(t *testing.T) { t.Parallel() var cs diff.Comments cs.Add(comment("c.go", diff.SideNew, @@ -54,7 +55,7 @@ func TestReviewMatchesHerdrReviewr(t *testing.T) { "merge these\n\n \nplease ", )) - got := cs.Review("Fix each comment.\r\n") + got := cs.Review("Fix each comment.\r\n", nil) want := "Fix each comment.\n\n" + "a.go:1-2\n+x := 1\n+y := 2\nmerge these\nplease\n\n" + "b.go:1 (removed)\n-gone()\nwhy?\n\n" + @@ -63,56 +64,58 @@ func TestReviewMatchesHerdrReviewr(t *testing.T) { if got != want { t.Errorf("Review = \n%s\nwant:\n%s", got, want) } - if got := new(diff.Comments).Review(""); got != "" { + if got := new(diff.Comments).Review("", nil); got != "" { t.Errorf("Review with no comments = %q, want \"\"", got) } } -// TestReviewContinuedRows checks a comment on only continued rows. +// TestReviewContinuedRows checks Review for a comment that covers only +// continued rows. func TestReviewContinuedRows(t *testing.T) { t.Parallel() - before, after := "", strings.Repeat("word ", 20)+"\n" - d := diff.Render("a.go", before, after, diff.Options{Width: 30, Wrap: true}) + oldSrc, newSrc := "", strings.Repeat("word ", 20)+"\n" + d := diff.Render("a.go", oldSrc, newSrc, diff.Options{Width: 30, Wrap: true}) var cont []diff.Row for _, r := range d.Rows { if r.Continued { cont = append(cont, r) } } - c := diff.NewComment("a.go", diff.SideNew, cont, before, after) + c := diff.NewComment("a.go", diff.SideNew, cont, oldSrc, newSrc) c.Text = "long" - // The comment has no diff lines, so Review writes the lines of its range. - want := "a.go:1\n+" + strings.TrimSuffix(after, "\n") + "\nlong" + // The comment has no diff lines, so Review writes the lines in its range. + want := "a.go:1\n+" + strings.TrimSuffix(newSrc, "\n") + "\nlong" if got := review(c); len(cont) == 0 || got != want { t.Errorf("%d continued rows, Review = \n%s\nwant:\n%s", len(cont), got, want) } } -// TestComments checks Add, Find, At, EndingAt, Count, and Remove. +// TestComments checks Add, Find, At, EndingAt, Count and Delete. func TestComments(t *testing.T) { t.Parallel() var cs diff.Comments - d := diff.Anchor{InDiff: true} - cs.Add(diff.Comment{Path: "a.go", Side: diff.SideNew, Start: 2, End: 4, Anchor: d}) - cs.Add(diff.Comment{Path: "a.go", Side: diff.SideOld, Start: 4, End: 4, Anchor: d}) - cs.Add(diff.Comment{Path: "b.go", Side: diff.SideNew, Start: 1, End: 1, Anchor: d}) + anchor := diff.Anchor{InDiff: true} + cs.Add(diff.Comment{Path: "a.go", Side: diff.SideNew, Start: 2, End: 4, Anchor: anchor}) + cs.Add(diff.Comment{Path: "a.go", Side: diff.SideOld, Start: 4, End: 4, Anchor: anchor}) + cs.Add(diff.Comment{Path: "b.go", Side: diff.SideNew, Start: 1, End: 1, Anchor: anchor}) a, b := cs.All()[0], cs.All()[1] - if cs.Len() != 3 || cs.Count(d, "a.go") != 2 || a.ID == b.ID { + if cs.Len() != 3 || cs.Count(anchor, "a.go") != 2 || a.ID == b.ID { t.Fatalf("Len = %d, Count(a.go) = %d, IDs %d %d; "+ "want 3, 2, two different IDs", - cs.Len(), cs.Count(d, "a.go"), a.ID, b.ID) + cs.Len(), cs.Count(anchor, "a.go"), a.ID, b.ID) } - if c := cs.At(d, "a.go", diff.SideNew, 3); c != a { + if c := cs.At(anchor, "a.go", diff.SideNew, 3); c != a { t.Errorf("At(a.go, New, 3) = %v, want %v", c, a) } - if c := cs.At(d, "a.go", diff.SideNew, 5); c != nil { + if c := cs.At(anchor, "a.go", diff.SideNew, 5); c != nil { t.Errorf("At(a.go, New, 5) = %v, want nil", c) } - if got := cs.EndingAt(d, "a.go", diff.SideOld, 4); len(got) != 1 || got[0] != b { + if got := cs.EndingAt(anchor, "a.go", diff.SideOld, 4); len(got) != 1 || got[0] != b { t.Errorf("EndingAt(a.go, Old, 4) = %v, want [%v]", got, b) } - // A comment shows only in its kind of view, and at its revision. + // A comment shows only in the same kind of view and at the same + // revision. for _, other := range []diff.Anchor{{}, {InDiff: true, Rev: "a..b"}} { if c := cs.At(other, "a.go", diff.SideNew, 3); c != nil { t.Errorf("At(%+v, a.go, New, 3) = %v, want nil", other, c) @@ -127,7 +130,7 @@ func TestComments(t *testing.T) { if cs.Find(b.ID) != b { t.Errorf("Find(%d) = %v, want %v", b.ID, cs.Find(b.ID), b) } - cs.Remove(b.ID) + cs.Delete(b.ID) if cs.Find(b.ID) != nil || cs.Len() != 2 { t.Errorf("after Remove(%d): Find = %v, Len = %d, want nil, 2", b.ID, cs.Find(b.ID), cs.Len()) @@ -139,73 +142,73 @@ func TestComments(t *testing.T) { } } -// TestNewComment checks comments from the rows of a change, in the two -// layouts, on each side. +// TestNewComment checks the line range and the Review text of comments +// created from the rows of a change, in both layouts and on both sides. func TestNewComment(t *testing.T) { t.Parallel() - before := "a\nb\nc\nd\n" - after := "a\nB\nC\nd\n" + oldSrc := "a\nb\nc\nd\n" + newSrc := "a\nB\nC\nd\n" for _, split := range []bool{false, true} { - rows := diff.Render("x.txt", before, after, diff.Options{Split: split}).Rows - // The rows from "a" to "d". + rows := diff.Render("x.txt", oldSrc, newSrc, diff.Options{Split: split}).Rows + // The rows from "a" to "d", after the hunk header. lo := slices.IndexFunc(rows, isEqual) - for _, s := range []diff.Side{diff.SideNew, diff.SideOld} { - c := diff.NewComment("x.txt", s, rows[lo:], before, after) - if c.Path != "x.txt" || c.Side != s || c.Start != 1 || c.End != 4 { - t.Errorf("split %v, side %d: %+v, want lines 1-4", split, s, c) + for _, side := range []diff.Side{diff.SideNew, diff.SideOld} { + c := diff.NewComment("x.txt", side, rows[lo:], oldSrc, newSrc) + if c.Path != "x.txt" || c.Side != side || c.Start != 1 || c.End != 4 { + t.Errorf("split %v, side %d: %+v, want lines 1-4", split, side, c) } want := "x.txt:1-4" - if s == diff.SideOld { + if side == diff.SideOld { want += " (removed)" } want += "\n a\n-b\n-c\n+B\n+C\n d\n" if got := review(c); got != want { t.Errorf("split %v, side %d: Review = \n%s\nwant:\n%s", - split, s, got, want) + split, side, got, want) } } - // A comment on only the inserted lines has its range on the new side. + // A comment on only the added lines gets its range from the new side. var ins []diff.Row for _, r := range rows { - if r.Kind == diff.KindInsert || r.Kind == diff.KindChange { + if r.Kind == diff.KindAdded || r.Kind == diff.KindChanged { ins = append(ins, r) } } - got := diff.NewComment("x.txt", diff.SideNew, ins, before, after) + got := diff.NewComment("x.txt", diff.SideNew, ins, oldSrc, newSrc) if got.Start != 2 || got.End != 3 { t.Errorf("split %v, the new lines: %+v, want lines 2-3", split, got) } } - // A hunk header has no line. - rows := diff.Render("x.txt", before, after, diff.Options{}).Rows + // A comment on only a hunk header has no lines. + rows := diff.Render("x.txt", oldSrc, newSrc, diff.Options{}).Rows hunk := rows[:slices.IndexFunc(rows, isEqual)] - got := diff.NewComment("x.txt", diff.SideNew, hunk, before, after) + got := diff.NewComment("x.txt", diff.SideNew, hunk, oldSrc, newSrc) if len(hunk) == 0 || got.Start != 0 || got.End != 0 { t.Errorf("a hunk header %v: %+v, want no lines", hunk, got) } } -// TestSnippetIsTheRealDiff checks that the snippet matches git diff, with raw -// text and tabs, in both layouts. +// TestSnippetIsTheRealDiff checks that a comment's diff lines match the +// output of git diff, including tabs, in both layouts. func TestSnippetIsTheRealDiff(t *testing.T) { t.Parallel() - before := "func a() {\n\treturn 1\n}\n" - after := "func a() {\n\t// two\n\treturn 2\n}\n" + oldSrc := "func a() {\n\treturn 1\n}\n" + newSrc := "func a() {\n\t// two\n\treturn 2\n}\n" want := " func a() {\n-\treturn 1\n+\t// two\n+\treturn 2\n }" for _, split := range []bool{false, true} { - d := diff.Render("x.go", before, after, diff.Options{Split: split}) - got := strings.Join(snippet(d.Rows, before, after), "\n") + d := diff.Render("x.go", oldSrc, newSrc, diff.Options{Split: split}) + got := strings.Join(snippet(d.Rows, oldSrc, newSrc), "\n") if got != want { t.Errorf("split %v: snippet = \n%s\nwant:\n%s", split, got, want) } } dir := t.TempDir() - for name, src := range map[string]string{"old": before, "new": after} { + for name, src := range map[string]string{"old": oldSrc, "new": newSrc} { testgit.WriteFile(t, dir, name, src) } - // git diff exits with 1 when the files differ. - // No diff setting of the user applies. + // git diff exits with status 1 when the files differ. The user's git + // diff settings do not apply. git := proc.Command(t.Context(), testgit.ToolEnv(t), "git", "diff", "--no-index", "-U1", filepath.Join(dir, "old"), @@ -221,9 +224,53 @@ func TestSnippetIsTheRealDiff(t *testing.T) { } } -// TestCommentsJSON checks that the JSON keeps the anchor of a comment. It -// also checks a file of an older rexdiff, which has a stale field and no -// anchor. +// TestReviewStale checks that Review marks the comments that stale +// reports after their location, and leaves the others as they are. +func TestReviewStale(t *testing.T) { + t.Parallel() + var cs diff.Comments + cs.Add(comment("a.go", diff.SideNew, "", "x := 1\n", "fresh")) + cs.Add(comment("b.go", diff.SideOld, "gone()\n", "", "moved")) + got := cs.Review("", func(c *diff.Comment) bool { return c.Path == "b.go" }) + want := "a.go:1\n+x := 1\nfresh\n\n" + + "b.go:1 (removed) (stale)\n-gone()\nmoved" + if got != want { + t.Errorf("Review = \n%s\nwant:\n%s", got, want) + } +} + +// TestCommentMoved checks that Moved reports a comment whose lines hold +// other code or are past the end of the file, and not one whose code is +// still on its lines. +func TestCommentMoved(t *testing.T) { + t.Parallel() + src := "a\nb\nc\nd\n" + c := commentOn("x.txt", diff.SideNew, src, 2, 3) // b and c + tests := []struct { + text string + want bool + }{ + {src, false}, + {"a\r\nb\r\nc\r\n", false}, // CRLF line endings, d removed + {"a\nb\nc", false}, // no newline at the end + {"new\na\nb\nc\nd\n", true}, // a line added above + {"a\nb\nC\nd\n", true}, + {"a\nb\n", true}, // c removed: line 3 is past the end + {"", true}, + } + for _, tt := range tests { + if got := c.Moved(tt.text); got != tt.want { + t.Errorf("Moved(%q) = %t, want %t", tt.text, got, tt.want) + } + } + if (&diff.Comment{Start: 1, End: 1}).Moved("x\n") { + t.Error("Moved of a comment without code = true, want false") + } +} + +// TestCommentsJSON checks that a JSON round trip keeps each comment's +// anchor. It also checks reading a file from an older rexdiff, which has a +// stale field and no anchor, and the effect of SetRev. func TestCommentsJSON(t *testing.T) { t.Parallel() var cs diff.Comments @@ -258,21 +305,21 @@ func TestCommentsJSON(t *testing.T) { if c.Anchor != (diff.Anchor{InDiff: true}) || c.Start != 2 { t.Errorf("comment of an old file = %+v, want lines 2-3 on a diff", c) } - back.SetOldRev("x..y") - cs2.SetOldRev("a..b") + back.SetRev("x..y") + cs2.SetRev("a..b") for i, c := range back.All() { if c.Anchor != anchors[i] { - t.Errorf("comment %d after SetOldRev: anchor %+v, want %+v", i, c.Anchor, anchors[i]) + t.Errorf("comment %d after SetRev: anchor %+v, want %+v", i, c.Anchor, anchors[i]) } } if want := (diff.Anchor{InDiff: true, Rev: "a..b"}); c.Anchor != want { - t.Errorf("comment of an old file after SetOldRev: anchor %+v, want %+v", c.Anchor, want) + t.Errorf("comment of an old file after SetRev: anchor %+v, want %+v", c.Anchor, want) } } -// TestCommentsJSONLatin1 checks that a comment on a file that is not UTF-8, -// for example a Latin-1 file, survives a JSON round trip. The bytes that -// are not UTF-8 become U+FFFD. +// TestCommentsJSONLatin1 checks that a comment on a file that is not +// UTF-8, such as a Latin-1 file, survives a JSON round trip, with invalid +// bytes replaced by U+FFFD. func TestCommentsJSONLatin1(t *testing.T) { t.Parallel() const path = "caf\xe9.txt" diff --git a/diff/diff.go b/diff/diff.go index 337e2a4..d72a831 100644 --- a/diff/diff.go +++ b/diff/diff.go @@ -1,128 +1,138 @@ -// Package diff renders the changes to a file as terminal lines, and keeps -// review comments on the lines. +// Package diff renders the changes to a file as lines for a terminal, and +// stores review comments on those lines. // -// [Render] and [RenderFile] return a [Diff]. Each line in [Diff.Lines] has a -// [Row] that tells which source lines it shows. Use the rows to put a cursor -// or a [Comment] on a source line. The colours come from the terminal -// palette. +// [Render] and [RenderFile] return a [Diff]. Each of its lines has a [Row] +// that records which source lines it shows. The colours come from the +// terminal's palette. package diff import ( + "slices" "strings" - "github.com/aymanbagabas/go-udiff" - "github.com/rednafi/rexdiff/internal/diffview" ) -// Kind is the type of a rendered row. +// Kind is the kind of a rendered row. type Kind int -// These are the kinds of a row. +// The kinds of row. const ( - KindHunk Kind = iota // a hunk header, with no source line - KindEqual // a line that is the same on the two sides - KindInsert // a line that only the new side has - KindDelete // a line that only the old side has - KindChange // a deleted line beside an inserted line (split) + KindHunk Kind = iota // a hunk header, with no source line + KindEqual // a line that is the same on both sides + KindAdded // a line that exists only on the new side + KindDeleted // a line that exists only on the old side + KindChanged // a deleted line next to an added line, in split view ) // Side identifies one version of a file. type Side int -// These are the two sides of a file. +// The two sides of a file. const ( SideOld Side = iota // the version before the change SideNew // the version after the change ) -// Row tells which source lines one rendered line shows. Old and New are -// line numbers that start at 1. A value of 0 means that the row has no line -// on that side. Continued is true if the line continues the source lines of -// the line above, because [Options.Wrap] wraps them. -// -// A long run of equal lines folds into the hunk header below it. For a -// hunk header, Fold is that run. +// Row describes the source lines that one rendered line shows. type Row struct { - Kind Kind - Old, New int + Kind Kind + // Old and New are 1-based line numbers, or 0 if the row has no line on + // that side. + Old, New int + // Continued is true if the row continues the line above it because of + // [Options.Wrap]. Continued bool - Fold Fold -} - -// Fold is a run of equal lines that the diff hides. Old and New are the -// line numbers of its first line. Lines is the number of lines. Lines is 0 -// if the diff hides no line. -type Fold struct { - Old, New, Lines int + // Fold is the run of hidden equal lines above a hunk header. + Fold Fold } -// Line returns the line number of the row on side s. -func (r Row) Line(s Side) int { - if s == SideOld { +// Line returns the row's line number on side. +func (r Row) Line(side Side) int { + if side == SideOld { return r.Old } return r.New } -// Options control how [Render] and [RenderFile] draw their output. +// Fold is a run of equal lines that the diff hides. Old and New are the +// line numbers of its first line, and Lines is the number of lines. Lines +// is 0 if no lines are hidden. +type Fold struct { + Old, New, Lines int +} + +// Options controls how [Render] draws a diff. type Options struct { // Split shows the old lines on the left and the new lines on the right. - // If it is false, the old and the new lines are in one column. + // If it is false, the old and new lines share one column. Split bool // Width is the maximum width of a line, in cells. Zero means no limit. Width int - // Offset is the number of cells to scroll the code to the right. - Offset int - // Wrap continues a line that is wider than Width on the next lines, - // instead of cutting it. Then Offset does not apply. + // ScrollX is the number of cells to scroll the code to the right. + ScrollX int + // Wrap continues a line that is wider than Width on the following + // lines, instead of cutting it off. ScrollX is ignored when Wrap is set. Wrap bool - // Expanded reports whether the lines of a fold show. If Expanded is - // nil, no fold shows. RenderFile does not use it. + // Expanded reports whether the hidden lines of a fold are shown. If + // Expanded is nil, all folds stay hidden. Expanded func(Fold) bool - // Signs marks a changed line with + or -. Without Signs, a bar in the - // colour of the line marks it. + // Signs marks each changed line with + or -. Without Signs, a coloured + // bar marks it. Signs bool // Theme sets the colours. Theme Theme - // Cache makes a new render of the same lines fast. If Cache is nil, the - // render keeps nothing. + // Cache stores results for reuse by later renders. If Cache is nil, + // nothing is reused. Cache *Cache } -// Cache keeps the syntax colours of the lines between renders, for example -// for a sideways scroll. The zero value is an empty Cache. A Cache is not -// safe for concurrent use. +// Cache stores highlighted lines, the computed diff and the rows between +// renders. The zero value is an empty Cache. A Cache is not safe for +// concurrent use. type Cache struct { - lines diffview.Cache // the lines of Render - file struct{ path, src, out string } // the last file of RenderFile + lines diffview.Cache // highlighted lines and the last diff, for Render + rows struct { // the last rows that Render converted + from []diffview.Row + to []Row + } + file struct { // the last file passed to RenderFile + path, src string + raw string // the original content, before shownFile converted it to src + h *diffview.Highlighter + } } -// Diff is the rendered output. Lines[i] is the screen line for Rows[i]. -// Lines is empty when there is nothing to show, for example when the two -// versions are the same. +// Diff is the rendered output. [Diff.Line] returns the screen line for +// Rows[i], and renders it the first time it is requested. There are no +// lines if the two versions are the same. Do not modify Rows, because +// later renders with the same Cache may share them. A Diff uses its Cache +// and is not safe for concurrent use. type Diff struct { - Lines []string Rows []Row + lines *diffview.Lines split bool oldNum int // width of the old line-number column newNum int // width of the new line-number column newNumAt int // column where the new line numbers start - // The fields below are for [Diff.Cell]. - src [2]string // the content of each side + // The fields below are used by [Diff.Cell]. + texts [2]string // the content of each side codeAt [2]int // column where the code of each side starts - offset int // the sideways scroll, or 0 with wrap - wrap bool + // codeWidth is the width of the code of each side, or 0 if the lines + // have no width limit. + codeWidth [2]int + scrollX int // the horizontal scroll, or 0 when wrapping + wrap bool } -// Render compares before, the old content of the file at path, with after, -// its new content. The path selects the syntax highlighter. -func Render(path, before, after string, o Options) *Diff { - dv := diffview.New(path, before, after). +// Render returns the diff between oldText and newText, the old and new +// content of the file at path. The path selects the syntax highlighting. +func Render(path, oldText, newText string, o Options) *Diff { + dv := diffview.New(path, oldText, newText). Width(o.Width). - XOffset(o.Offset). + ScrollX(o.ScrollX). Split(o.Split). Signs(o.Signs). Wrap(o.Wrap). @@ -132,54 +142,32 @@ func Render(path, before, after string, o Options) *Diff { dv = dv.Cache(&o.Cache.lines) } if o.Expanded != nil { - dv = dv.Expand(func(f diffview.Fold) bool { return o.Expanded(foldOf(f)) }) + dv = dv.Expanded(func(f diffview.Fold) bool { return o.Expanded(Fold(f)) }) } - out, rows, g := dv.Render() - - d := &Diff{split: o.Split, src: [2]string{before, after}, wrap: o.Wrap} + ls, rows, g := dv.RenderLines() + d := &Diff{lines: ls, split: o.Split, texts: [2]string{oldText, newText}, wrap: o.Wrap} if !o.Wrap { - d.offset = o.Offset + d.scrollX = o.ScrollX } - for _, r := range rows { - d.Rows = append(d.Rows, Row{ - Kind: kindOf(r.Kind), - Old: r.Before, - New: r.After, - Continued: r.Continued, - Fold: foldOf(r.Fold), - }) - } - if len(d.Rows) > 0 { - d.Lines = strings.Split(out, "\n") + d.Rows = o.Cache.convert(rows) + d.oldNum, d.newNum, d.newNumAt = g.OldNum, g.NewNum, g.NewNumStart + d.codeAt = [2]int{g.OldCode, g.NewCode} + if o.Width > 0 { + d.codeWidth = [2]int{o.Width - g.OldCode, o.Width - g.NewCode} + if o.Split { + d.codeWidth[SideOld] = g.NewNumStart - g.OldCode + } } - d.oldNum, d.newNum, d.newNumAt = g.BeforeNum, g.AfterNum, g.AfterNumStart - d.codeAt = [2]int{g.BeforeCode, g.AfterCode} return d } -// foldOf returns the Fold of the diffview fold f. -func foldOf(f diffview.Fold) Fold { - return Fold{Old: f.Before, New: f.After, Lines: f.Lines} -} - -// kindOf returns the Kind of the diffview row kind k. -func kindOf(k diffview.RowKind) Kind { - switch k { - case diffview.RowHunk: - return KindHunk - case diffview.RowInsert: - return KindInsert - case diffview.RowDelete: - return KindDelete - case diffview.RowChange: - return KindChange - } - return KindEqual // diffview.RowEqual -} +// Line returns screen line i, which belongs to Rows[i]. +func (d *Diff) Line(i int) string { return d.lines.Line(i) } -// SideAt tells which side column x of a line belongs to. Column 0 is the -// first column of the line. If onNumber is true, x is on a line number. -func (d *Diff) SideAt(x int) (s Side, onNumber bool) { +// SideAt reports which side column x of a screen line belongs to, where +// column 0 is the first column. onGutter is true if x is in a line-number +// column. +func (d *Diff) SideAt(x int) (side Side, onGutter bool) { if d.split { switch { case x < d.oldNum: @@ -197,33 +185,21 @@ func (d *Diff) SideAt(x int) (s Side, onNumber bool) { return SideNew, x < d.oldNum+d.newNum } -// Count returns the number of lines that a change from before to after adds -// and deletes. As in herdr-reviewr, a change from a CRLF to an LF line -// ending, or back, is a change of the line. -func Count(before, after string) (added, deleted int) { - u, err := udiff.ToUnifiedDiff("", "", before, udiff.Lines(before, after), 0) - if err != nil { - return 0, 0 - } - for _, h := range u.Hunks { - for _, l := range h.Lines { - switch l.Kind { - case udiff.Insert: - added++ - case udiff.Delete: - deleted++ - } - } - } - return added, deleted +// CountLines returns the number of lines added and deleted by the change +// from oldText to newText. A line whose ending changes between CRLF and LF +// counts as changed. +func CountLines(oldText, newText string) (added, deleted int) { + return diffview.CountLines(oldText, newText) } -// Lines splits s into lines, without the LF or CRLF line endings. Line n of -// s is Lines(s)[n-1]. The lines of a [Comment] count in this way. -func Lines(s string) []string { - var lines []string - for l := range strings.Lines(s) { - lines = append(lines, trimEOL(l)) +// SplitLines splits s into lines and removes the LF or CRLF line endings. +// Line n of s is SplitLines(s)[n-1]. [Comment] line numbers use the same +// counting. Unlike [strings.Split], it returns no empty line after a final +// line ending. +func SplitLines(s string) []string { + lines := slices.Collect(strings.Lines(s)) + for i, l := range lines { + lines[i] = trimEOL(l) } return lines } @@ -233,8 +209,28 @@ func trimEOL(line string) string { return strings.TrimSuffix(strings.TrimSuffix(line, "\n"), "\r") } -// countLines returns the number of lines of s, as [Lines] counts them. A -// last line without a newline counts as a line. +// convert returns rows as the rows of a [Diff], or nil if there are none. +// c keeps the result, because the next render often has the same rows. A +// nil c keeps nothing. +func (c *Cache) convert(rows []diffview.Row) []Row { + if len(rows) == 0 { + return nil + } + if c != nil && len(c.rows.from) == len(rows) && &c.rows.from[0] == &rows[0] { + return c.rows.to + } + out := make([]Row, len(rows)) + for i, r := range rows { + out[i] = Row{Kind: Kind(r.Kind), Old: r.Old, New: r.New, Continued: r.Continued, Fold: Fold(r.Fold)} + } + if c != nil { + c.rows.from, c.rows.to = rows, out + } + return out +} + +// countLines returns the number of lines in s, counted as [SplitLines] counts +// them. A final line without a newline counts as a line. func countLines(s string) int { n := strings.Count(s, "\n") if s != "" && !strings.HasSuffix(s, "\n") { diff --git a/diff/diff_test.go b/diff/diff_test.go index 3d5a2bc..b4f69c8 100644 --- a/diff/diff_test.go +++ b/diff/diff_test.go @@ -13,23 +13,32 @@ import ( ) const ( - oldSrc = "a\nb\nc\n" - newSrc = "a\nB\nc\nd\n" + oldText = "a\nb\nc\n" + newText = "a\nB\nc\nd\n" ) -// snippet returns the diff lines of a comment on rows, as -// [diff.Comments.Review] writes them. -func snippet(rows []diff.Row, before, after string) []string { +// screenLines returns every screen line of d, first to last. +func screenLines(d *diff.Diff) []string { + var lines []string + for i := range len(d.Rows) { + lines = append(lines, d.Line(i)) + } + return lines +} + +// snippet returns the diff lines that [diff.Comments.Review] writes for a +// comment on rows. +func snippet(rows []diff.Row, oldText, newText string) []string { var cs diff.Comments - cs.Add(diff.NewComment("x", diff.SideNew, rows, before, after)) - lines := strings.Split(cs.Review(""), "\n") - return lines[1 : len(lines)-1] // not the location and the empty text + cs.Add(diff.NewComment("x", diff.SideNew, rows, oldText, newText)) + lines := strings.Split(cs.Review("", nil), "\n") + return lines[1 : len(lines)-1] // drop the location and the empty comment text } // isEqual reports whether r is a [diff.KindEqual] row. func isEqual(r diff.Row) bool { return r.Kind == diff.KindEqual } -// kinds writes the rows as one character each, for example "@=-+=+". +// kinds returns one character for each row's kind, for example "@=-+=+". func kinds(rows []diff.Row) string { var b strings.Builder for _, r := range rows { @@ -38,30 +47,31 @@ func kinds(rows []diff.Row) string { return b.String() } -// renderer is a way to show two versions of a file. +// renderer is a named way to render two versions of a file. type renderer struct { name string render func(o diff.Options) *diff.Diff } -// renderers returns the unified and the split diff of before and after, -// and the file after. -func renderers(before, after string) []renderer { +// renderers returns renderers for the unified diff and the split diff of +// oldText and newText, and for the file view of newText. +func renderers(oldText, newText string) []renderer { return []renderer{ {"unified", func(o diff.Options) *diff.Diff { - return diff.Render("x.go", before, after, o) + return diff.Render("x.go", oldText, newText, o) }}, {"split", func(o diff.Options) *diff.Diff { o.Split = true - return diff.Render("x.go", before, after, o) + return diff.Render("x.go", oldText, newText, o) }}, {"file", func(o diff.Options) *diff.Diff { - return diff.RenderFile("x.go", after, o) + return diff.RenderFile("x.go", newText, fileOptions(o)) }}, } } -// TestRenderRowsFollowLines checks the row of each line, in each layout and +// TestRenderRowsFollowLines checks the row of each line, that there is one +// line for each row and that lines fit the width, in each layout and // theme. func TestRenderRowsFollowLines(t *testing.T) { t.Parallel() @@ -82,10 +92,10 @@ func TestRenderRowsFollowLines(t *testing.T) { rows: []diff.Row{ {Kind: diff.KindHunk}, {Kind: diff.KindEqual, Old: 1, New: 1}, - {Kind: diff.KindDelete, Old: 2}, - {Kind: diff.KindInsert, New: 2}, + {Kind: diff.KindDeleted, Old: 2}, + {Kind: diff.KindAdded, New: 2}, {Kind: diff.KindEqual, Old: 3, New: 3}, - {Kind: diff.KindInsert, New: 4}, + {Kind: diff.KindAdded, New: 4}, }, }, { @@ -94,19 +104,19 @@ func TestRenderRowsFollowLines(t *testing.T) { rows: []diff.Row{ {Kind: diff.KindHunk}, {Kind: diff.KindEqual, Old: 1, New: 1}, - {Kind: diff.KindChange, Old: 2, New: 2}, + {Kind: diff.KindChanged, Old: 2, New: 2}, {Kind: diff.KindEqual, Old: 3, New: 3}, - {Kind: diff.KindInsert, New: 4}, + {Kind: diff.KindAdded, New: 4}, }, }, } - for ti, th := range themes { + for ti, theme := range themes { for _, tt := range tests { name := fmt.Sprintf("split %v, theme %d", tt.split, ti) t.Run(name, func(t *testing.T) { t.Parallel() - o := diff.Options{Split: tt.split, Width: width, Theme: th} - d := diff.Render("x.go", oldSrc, newSrc, o) + o := diff.Options{Split: tt.split, Width: width, Theme: theme} + d := diff.Render("x.go", oldText, newText, o) if got := kinds(d.Rows); got != tt.kinds { t.Errorf("kinds = %q, want %q", got, tt.kinds) } @@ -115,11 +125,11 @@ func TestRenderRowsFollowLines(t *testing.T) { t.Errorf("row %d = %+v, want %+v", i, d.Rows[i], r) } } - if len(d.Lines) != len(d.Rows) { + if len(screenLines(d)) != len(d.Rows) { t.Errorf("%d lines for %d rows, want one line for each row", - len(d.Lines), len(d.Rows)) + len(screenLines(d)), len(d.Rows)) } - for i, l := range d.Lines { + for i, l := range screenLines(d) { if w := ansi.StringWidth(l); w > width { t.Errorf("line %d is %d cells wide, want %d or fewer", i, w, width) @@ -130,31 +140,31 @@ func TestRenderRowsFollowLines(t *testing.T) { } } -// TestRenderKinds checks the kinds of the rows of a diff. Equal versions -// give no rows. A change of a tab to spaces is a change, as Count and git -// tell. +// TestRenderKinds checks the row kinds of a diff. Equal versions produce +// no rows. Replacing a tab with spaces counts as a change, as it does in +// CountLines and git. func TestRenderKinds(t *testing.T) { t.Parallel() tests := []struct{ old, new, want string }{ - {oldSrc, oldSrc, ""}, + {oldText, oldText, ""}, {"\tx\n", " x\n", "@-+"}, } for _, tt := range tests { d := diff.Render("x.go", tt.old, tt.new, diff.Options{Width: 80}) - if got := kinds(d.Rows); got != tt.want || len(d.Lines) != len(d.Rows) { + if got := kinds(d.Rows); got != tt.want || len(screenLines(d)) != len(d.Rows) { t.Errorf("Render(%q, %q): kinds %q, %d lines, want %q, one line each", - tt.old, tt.new, got, len(d.Lines), tt.want) + tt.old, tt.new, got, len(screenLines(d)), tt.want) } } } -// TestRenderLineEnding checks that a change of only the line ending shows, -// as in herdr-reviewr. The line with the CR has a ^M. A CRLF that does not -// change shows nothing. +// TestRenderLineEnding checks that a change to only the line ending is +// shown, with ^M at the end of the CRLF line. An unchanged CRLF line is +// shown as equal, without ^M. func TestRenderLineEnding(t *testing.T) { t.Parallel() d := diff.Render("x.txt", "a\nb\r\nc\r\n", "a\r\nb\nc\r\n", diff.Options{Width: 80}) - var got []string // the kind and the last word of each row + var got []string // the kind and last word of each row for i, r := range d.Rows { words := strings.Fields(plainLine(t, d, i)) got = append(got, fmt.Sprintf("%c %s", "@=+-~"[r.Kind], words[len(words)-1])) @@ -165,29 +175,29 @@ func TestRenderLineEnding(t *testing.T) { } } -// TestRenderTabsAndOffset checks that a tab becomes spaces and that Offset -// scrolls the code. +// TestRenderTabsAndOffset checks that a tab is shown as spaces and that +// ScrollX scrolls the code. func TestRenderTabsAndOffset(t *testing.T) { t.Parallel() d := diff.Render("x.go", "", "\tx := 1\n", diff.Options{Width: 80}) - if got := plainLine(t, d, 1); !strings.Contains(got, "▌ x := 1") { - t.Errorf("tab: line = %q, want %q in it", got, "▌ x := 1") + if got := plainLine(t, d, 1); !strings.Contains(got, "▎ x := 1") { + t.Errorf("tab: line = %q, want %q in it", got, "▎ x := 1") } - d = diff.Render("x.go", "", "\tx := 1\n", diff.Options{Width: 80, Offset: 6}) + d = diff.Render("x.go", "", "\tx := 1\n", diff.Options{Width: 80, ScrollX: 6}) got := plainLine(t, d, 1) if strings.Contains(got, "x :=") || !strings.Contains(got, "= 1") { t.Errorf("offset 6: line = %q, want \"= 1\" and no \"x :=\"", got) } } -// TestMarks checks the mark at the start of the code of each line, in the two -// layouts. +// TestMarks checks the bar or sign at the start of the code on each line, +// in both layouts. func TestMarks(t *testing.T) { t.Parallel() - const before, after = "a\nb\nc\n", "a\nB\nc\n" - // By default a bar marks a changed line, as in herdr-reviewr. Signs gives - // + and -. The mark takes two cells in both cases, so the columns do not - // move. + const oldSrc, newSrc = "a\nb\nc\n", "a\nB\nc\n" + // By default a bar marks a changed line, and Signs uses + and - + // instead. The mark is two cells wide in both cases, so the columns + // stay in place. theme := diff.Theme{ Background: color.Black, Green: color.RGBA{G: 0xff, A: 0xff}, @@ -196,17 +206,17 @@ func TestMarks(t *testing.T) { tests := []struct { name string o diff.Options - lines []string // lines under the hunk header, no colours + lines []string // lines below the hunk header, without colours }{ {"unified bar", diff.Options{Width: 40}, []string{ - " 1 1 a", " 2 ▌ b", " 2 ▌ B", " 3 3 c", + " 1 1 a", " 2 ▎ b", " 2 ▎ B", " 3 3 c", }}, {"unified signs", diff.Options{Width: 40, Signs: true}, []string{ " 1 1 a", " 2 - b", " 2 + B", " 3 3 c", }}, {"split bar", diff.Options{Width: 40, Split: true}, []string{ " 1 a 1 a", - " 2 ▌ b 2 ▌ B", + " 2 ▎ b 2 ▎ B", " 3 c 3 c", }}, {"split signs", diff.Options{Width: 40, Split: true, Signs: true}, []string{ @@ -219,47 +229,47 @@ func TestMarks(t *testing.T) { t.Run(tt.name, func(t *testing.T) { t.Parallel() tt.o.Theme = theme - d := diff.Render("x.txt", before, after, tt.o) - if len(d.Lines) != 1+len(tt.lines) { - t.Fatalf("%d lines, want %d", len(d.Lines), 1+len(tt.lines)) + d := diff.Render("x.txt", oldSrc, newSrc, tt.o) + if len(screenLines(d)) != 1+len(tt.lines) { + t.Fatalf("%d lines, want %d", len(screenLines(d)), 1+len(tt.lines)) } for i, want := range tt.lines { - got := strings.TrimRight(ansi.Strip(d.Lines[i+1]), " ") + got := strings.TrimRight(ansi.Strip(screenLines(d)[i+1]), " ") if got != want { t.Errorf("line %d = %q, want %q", i+1, got, want) } } - // The marks have the colour of their lines: ANSI red for the - // delete, then ANSI green for the insert. - got := markColours(d.Lines[1:]) + // Each mark has the colour of its line: ANSI red for the deleted + // line, then ANSI green for the added line. + got := markColors(screenLines(d)[1:]) if !slices.Equal(got, []string{"31", "32"}) { t.Errorf("the marks have colours %q, want 31 and 32", got) } }) } - // With a scroll to the right, an ellipsis shows after the bar. - d := diff.Render("x.txt", "", "abcdefgh\n", diff.Options{Width: 40, Offset: 2}) - if got := plainLine(t, d, 1); !strings.Contains(got, "▌…cdefgh") { - t.Errorf("offset: line = %q, want ▌…cdefgh", got) + // When the code is scrolled to the right, an ellipsis follows the bar. + d := diff.Render("x.txt", "", "abcdefgh\n", diff.Options{Width: 40, ScrollX: 2}) + if got := plainLine(t, d, 1); !strings.Contains(got, "▎…cdefgh") { + t.Errorf("offset: line = %q, want ▎…cdefgh", got) } - // The review text of a comment uses + and - for both kinds of mark. + // A comment's review text uses + and - with either kind of mark. for _, signs := range []bool{false, true} { - d := diff.Render("x.txt", before, after, diff.Options{Width: 40, Signs: signs}) - got := snippet(d.Rows[2:5], before, after) + d := diff.Render("x.txt", oldSrc, newSrc, diff.Options{Width: 40, Signs: signs}) + got := snippet(d.Rows[2:5], oldSrc, newSrc) if want := []string{"-b", "+B", " c"}; !slices.Equal(got, want) { t.Errorf("signs %v: snippet = %q, want %q", signs, got, want) } } } -// markColours returns the foreground of each bar, + or - in lines, in -// order, for example "31". The foreground is in the SGR sequence in front -// of the mark. -func markColours(lines []string) []string { +// markColors returns the foreground colour code, such as "31", of each +// bar, + or - in lines, in order. It reads the code from the SGR sequence +// before the mark. +func markColors(lines []string) []string { var out []string for _, l := range lines { for { - i := strings.IndexAny(l, "▌+-") + i := strings.IndexAny(l, "▎+-") if i < 0 { break } @@ -272,18 +282,18 @@ func markColours(lines []string) []string { return out } -// TestSideAt checks the side of each column, and if the column is on a line -// number. +// TestSideAt checks the side of various columns, and whether each column +// is on a line number. func TestSideAt(t *testing.T) { t.Parallel() - // The unified layout has " 1 " old numbers, " 1 " new numbers, and the - // code. - u := diff.Render("x.go", oldSrc, newSrc, diff.Options{Width: 80}) - // The split layout has old numbers, old code, new numbers, and new code. + // The unified layout has old line numbers like " 1 ", then new line + // numbers, then the code. + u := diff.Render("x.go", oldText, newText, diff.Options{Width: 80}) + // The split layout has old numbers, old code, new numbers and new code. split := diff.Options{Split: true, Width: 80} - s := diff.Render("x.go", oldSrc, newSrc, split) - // A file has line numbers, and then the code. - f := diff.RenderFile("x.go", oldSrc, diff.Options{Width: 80}) + s := diff.Render("x.go", oldText, newText, split) + // The file view has line numbers, then the code. + f := diff.RenderFile("x.go", oldText, diff.FileOptions{Width: 80}) tests := []struct { name string d *diff.Diff @@ -313,67 +323,127 @@ func TestSideAt(t *testing.T) { } } -// TestCount checks the numbers of added and deleted lines. -func TestCount(t *testing.T) { +// TestCountLines checks the counts of added and deleted lines. +func TestCountLines(t *testing.T) { t.Parallel() tests := []struct { old, new string added, deleted int }{ - {oldSrc, newSrc, 2, 1}, + {oldText, newText, 2, 1}, {"", "a\nb\n", 2, 0}, {"a\r\nb\r\n", "a\nb\n", 2, 2}, - {oldSrc, oldSrc, 0, 0}, + {oldText, oldText, 0, 0}, } for _, tt := range tests { - a, d := diff.Count(tt.old, tt.new) + a, d := diff.CountLines(tt.old, tt.new) if a != tt.added || d != tt.deleted { - t.Errorf("Count(%q, %q) = %d, %d, want %d, %d", + t.Errorf("CountLines(%q, %q) = %d, %d, want %d, %d", tt.old, tt.new, a, d, tt.added, tt.deleted) } } } -// TestRenderFile checks the line numbers and the rows of a file. +// TestManySpreadEdits checks that a file with many changes spread through +// it gets a diff of just those changes, as git finds. The diff of a +// 10,000-line file with 100 one-line edits once marked thousands of equal +// lines as changed. The 50,000-line files use the fast diff. +func TestManySpreadEdits(t *testing.T) { + t.Parallel() + for _, size := range []struct{ lines, edits int }{{10_000, 100}, {10_000, 1000}, {50_000, 100}, {50_000, 1000}} { + t.Run(fmt.Sprint(size.lines, "x", size.edits), func(t *testing.T) { + t.Parallel() + var o, n strings.Builder + every := size.lines / size.edits + for i := range size.lines { + line := fmt.Sprintf("line %d\n", i) + o.WriteString(line) + if i%every == every/2 { + line = fmt.Sprintf("edited %d\n", i) + } + n.WriteString(line) + } + oldSrc, newSrc := o.String(), n.String() + want := size.edits + if a, d := diff.CountLines(oldSrc, newSrc); a != want || d != want { + t.Errorf("CountLines = +%d -%d, want +%d -%d", a, d, want, want) + } + // Only the rows are needed, so the lines are not rendered. + u := diff.Render("x.txt", oldSrc, newSrc, diff.Options{Width: 80}) + if a, d := countKind(u.Rows, diff.KindAdded), countKind(u.Rows, diff.KindDeleted); a != want || d != want { + t.Errorf("unified: %d added and %d deleted rows, want %d and %d", a, d, want, want) + } + s := diff.Render("x.txt", oldSrc, newSrc, diff.Options{Width: 80, Split: true}) + if c := countKind(s.Rows, diff.KindChanged); c != want { + t.Errorf("split: %d changed rows, want %d", c, want) + } + }) + } +} + +// countKind returns the number of rows of kind k. +func countKind(rows []diff.Row, k diff.Kind) int { + n := 0 + for _, r := range rows { + if r.Kind == k { + n++ + } + } + return n +} + +// TestFewValues checks that the counts of a large diff of lines with few +// distinct values match the rows of its rendered diff. +func TestFewValues(t *testing.T) { + t.Parallel() + oldSrc, newSrc := fewValues(25_000) + a, d := diff.CountLines(oldSrc, newSrc) + u := diff.Render("x.txt", oldSrc, newSrc, diff.Options{Width: 80}) + if ra, rd := countKind(u.Rows, diff.KindAdded), countKind(u.Rows, diff.KindDeleted); ra != a || rd != d { + t.Errorf("the diff has %d added and %d deleted rows, but CountLines = +%d -%d", ra, rd, a, d) + } +} + +// TestRenderFile checks the line numbers and rows of a rendered file. func TestRenderFile(t *testing.T) { t.Parallel() src := "package x\n\nfunc f() {\n\treturn\n}\n" - d := diff.RenderFile("x.go", src, diff.Options{Width: 14}) - if len(d.Lines) != 5 || len(d.Rows) != 5 { + d := diff.RenderFile("x.go", src, diff.FileOptions{Width: 14}) + if len(screenLines(d)) != 5 || len(d.Rows) != 5 { t.Fatalf("RenderFile: %d lines and %d rows, want 5", - len(d.Lines), len(d.Rows)) + len(screenLines(d)), len(d.Rows)) } if d.Rows[3] != (diff.Row{Kind: diff.KindEqual, Old: 4, New: 4}) { t.Errorf("row 3 = %+v, want %+v", d.Rows[3], diff.Row{Kind: diff.KindEqual, Old: 4, New: 4}) } - if got := ansi.Strip(d.Lines[2]); got != " 3 func f() {" { + if got := ansi.Strip(screenLines(d)[2]); got != " 3 func f() {" { t.Errorf("line 2 = %q, want %q", got, " 3 func f() {") } - if got := ansi.Strip(d.Lines[0]); got != " 1 package x" { + if got := ansi.Strip(screenLines(d)[0]); got != " 1 package x" { t.Errorf("line 0 = %q, want %q", got, " 1 package x") } } -// TestWrap checks that a wrapped long line shows all of its text and fits the -// width. +// TestWrap checks that a wrapped long line shows all of its text and fits +// the width. func TestWrap(t *testing.T) { t.Parallel() long := "x := []string{" + strings.Repeat(`"word", `, 12) + "}" - before, after := "a\nb\n", "a\n"+long+"\nb\n" + oldSrc, newSrc := "a\nb\n", "a\n"+long+"\nb\n" const width = 40 - for _, tt := range renderers(before, after) { + for _, tt := range renderers(oldSrc, newSrc) { t.Run(tt.name, func(t *testing.T) { t.Parallel() cut := tt.render(diff.Options{Width: width}) d := tt.render(diff.Options{Width: width, Wrap: true}) - if len(d.Lines) != len(d.Rows) || len(d.Lines) <= len(cut.Lines) { + if len(screenLines(d)) != len(d.Rows) || len(screenLines(d)) <= len(screenLines(cut)) { t.Fatalf("%d lines and %d rows, "+ "want more than the %d lines without wrap", - len(d.Lines), len(d.Rows), len(cut.Lines)) + len(screenLines(d)), len(d.Rows), len(screenLines(cut))) } var text strings.Builder - for i, l := range d.Lines { + for i, l := range screenLines(d) { if w := ansi.StringWidth(l); w > width { t.Errorf("line %d is %d cells wide, want %d or fewer", i, w, width) @@ -382,8 +452,7 @@ func TestWrap(t *testing.T) { if r.New == 2 { text.WriteString(ansi.Strip(l)) } - // A continued row points at the same source lines as the - // row above. + // A continued row has the same source lines as the row above. prev := d.Rows[max(i-1, 0)] sameLines := prev.Old == r.Old && prev.New == r.New if r.Continued && !sameLines { @@ -398,8 +467,8 @@ func TestWrap(t *testing.T) { t.Errorf("wrapped lines = \n%s\nwant all of:\n%s", text.String(), long) } - // Wrap does not change the snippet of a comment. - got, want := snippet(d.Rows, before, after), snippet(cut.Rows, before, after) + // Wrapping does not change a comment's diff lines. + got, want := snippet(d.Rows, oldSrc, newSrc), snippet(cut.Rows, oldSrc, newSrc) if !slices.Equal(got, want) { t.Errorf("snippet with wrap = %q, want %q", got, want) } @@ -407,14 +476,15 @@ func TestWrap(t *testing.T) { } } -// TestCache checks that a shared [diff.Cache] gives the same lines as no -// cache. It tries other offsets, other languages, and new content. +// TestCache checks that renders sharing a [diff.Cache] return the same +// lines as renders without one, as the scroll offset, language and content +// change. func TestCache(t *testing.T) { t.Parallel() const src = "def f(): # a comment\n\treturn 1\n" tests := []struct { path, old, new string - file bool // RenderFile, of new + file bool // use RenderFile on new offset int }{ {path: "a.go", old: src, new: src + "x\n"}, @@ -427,11 +497,15 @@ func TestCache(t *testing.T) { var c diff.Cache for _, tt := range tests { render := func(c *diff.Cache) []string { - o := diff.Options{Width: 40, Offset: tt.offset, Cache: c} + o := diff.Options{Width: 40, ScrollX: tt.offset, Cache: c} if tt.file { - return diff.RenderFile(tt.path, tt.new, o).Lines + d := diff.RenderFile(tt.path, tt.new, fileOptions(o)) + if c != nil { // a busy machine can highlight later than a line needs + waitHighlighted(t, c) + } + return screenLines(d) } - return diff.Render(tt.path, tt.old, tt.new, o).Lines + return screenLines(diff.Render(tt.path, tt.old, tt.new, o)) } if got, want := render(&c), render(nil); !slices.Equal(got, want) { t.Errorf("%+v: lines with the cache = \n%q\nwant:\n%q", @@ -439,3 +513,26 @@ func TestCache(t *testing.T) { } } } + +// TestNoNewline checks that a changed last line without a line ending is +// marked, and that an unchanged one is not. +func TestNoNewline(t *testing.T) { + t.Parallel() + const mark = `\ No newline at end of file` + d := diff.Render("x.txt", "a\nb", "a\nb\n", diff.Options{Width: 80}) + var marked []string + for i := range screenLines(d) { + if l := plainLine(t, d, i); strings.Contains(l, mark) { + marked = append(marked, l) + } + } + if len(marked) != 1 || !strings.Contains(marked[0], "b") { + t.Errorf("Render(%q, %q) marks %q, want only the deleted b", "a\nb", "a\nb\n", marked) + } + d = diff.Render("x.txt", "a\nb", "c\nb", diff.Options{Width: 80}) + for i := range screenLines(d) { + if l := plainLine(t, d, i); strings.Contains(l, mark) { + t.Errorf("Render(%q, %q) line %d = %q, want no mark on the equal b", "a\nb", "c\nb", i, l) + } + } +} diff --git a/diff/file.go b/diff/file.go index 02f90fe..77aaa70 100644 --- a/diff/file.go +++ b/diff/file.go @@ -11,112 +11,185 @@ import ( "github.com/rednafi/rexdiff/internal/diffview" ) -// lineNumberColor is the ANSI palette colour of the line numbers. Colour 8 -// is bright black. -const lineNumberColor = "8" - -// RenderFile shows src, the content of the file at path, with line numbers -// and syntax colours. Each row is a [KindEqual] row, with the same line -// number on the two sides. The line numbers count as the [SideNew] side. -// RenderFile uses only the Width, Offset, Wrap, and Cache fields of o. -func RenderFile(path, src string, o Options) *Diff { - // Chroma makes a lone CR a line break. RenderFile shows a lone CR as a - // symbol, so that the lines are the same as [Lines] gives. +// lineNumColor is the ANSI palette colour of the line numbers (bright +// black). +const lineNumColor = "8" + +// FileOptions controls how [RenderFile] draws a file. The fields do what +// the fields of [Options] with the same names do. +type FileOptions struct { + Width int // the maximum width of a line, or 0 for no limit + ScrollX int // the cells to scroll the code to the right + Wrap bool // continue a long line on the following lines + Cache *Cache // the results to reuse, or nil +} + +// RenderFile renders src, the content of the file at path, with line +// numbers and syntax highlighting. Every row is a [KindEqual] row with the +// same line number on both sides, and the line numbers belong to +// [SideNew]. +func RenderFile(path, src string, o FileOptions) *Diff { raw := src - src = strings.NewReplacer( - "\r\n", "\n", - "\r", "\u240d", - "\t", strings.Repeat(" ", diffview.TabWidth), - ).Replace(src) - hl := strings.Split(o.Cache.fileColors(path, src), "\n") - hl = hl[:min(len(hl), countLines(src))] // chroma can add a final newline - digits := len(strconv.Itoa(len(hl))) + src, hl := o.Cache.fileColors(path, raw) + n := countLines(src) + digits := len(strconv.Itoa(n)) numWidth := digits + 2 // a space on each side of the number - // The style renders once, around a format for the number. - numFmt := lipgloss.NewStyle().Foreground(lipgloss.Color(lineNumberColor)). - Render(" %*d ") + " " - d := &Diff{newNum: numWidth, src: [2]string{raw, raw}, wrap: o.Wrap} + f := &fileLines{ + hl: hl, + o: o, + digits: digits, + // Render the style once, around a format verb for the number. + numFmt: lipgloss.NewStyle().Foreground(lipgloss.Color(lineNumColor)). + Render(" %*d ") + " ", + codeWidth: o.Width - numWidth - 1, // the width left after the number and a space + blank: strings.Repeat(" ", numWidth+1), + src: strings.Split(src, "\n"), + } + d := &Diff{newNum: numWidth, texts: [2]string{raw, raw}, wrap: o.Wrap} d.codeAt = [2]int{numWidth + 1, numWidth + 1} + if o.Width > 0 { + d.codeWidth = [2]int{f.codeWidth, f.codeWidth} + } if !o.Wrap { - d.offset = o.Offset + d.scrollX = o.ScrollX } - code := o.Width - numWidth - 1 // the width after the number and a space - blank := strings.Repeat(" ", numWidth+1) - for i, l := range hl { - for k, p := range fileLineParts(l, code, o) { - num := blank - if k == 0 { - num = fmt.Sprintf(numFmt, digits, i+1) - } - line := num + p - if o.Width > 0 { // the number or a wide character can be too wide - line = ansi.Truncate(line, o.Width, "") - } - d.Lines = append(d.Lines, line) - d.Rows = append(d.Rows, Row{ - Kind: KindEqual, - Old: i + 1, - New: i + 1, - Continued: k > 0, - }) + // Only a wrapped line that does not fit uses more than one screen line. + // The count comes from the plain text, so no line is highlighted here. + wraps := o.Wrap && o.Width > 0 && f.codeWidth > 0 + start := make([]int, n) + d.Rows = make([]Row, 0, n) + for i := range n { + parts := 1 + if wraps && !diffview.Fits(f.source(i), f.codeWidth) { + parts = len(diffview.WrapParts(f.plain(i), f.codeWidth)) + } + start[i] = len(d.Rows) + for k := range parts { + d.Rows = append(d.Rows, Row{Kind: KindEqual, Old: i + 1, New: i + 1, Continued: k > 0}) } } + d.lines = diffview.NewLines(len(d.Rows), start, f.render) return d } -// fileLineParts returns the screen lines of the highlighted line l. If o has -// a width, each part fits in code cells. With [Options.Wrap], a long line -// gives more than one part. Without Wrap, the line skips [Options.Offset] -// cells and is cut. -func fileLineParts(l string, code int, o Options) []string { +// fileLines renders the screen lines of [RenderFile]. +type fileLines struct { + hl *diffview.Highlighter // the highlighted source lines + o FileOptions + digits int // the number of digits in line numbers + codeWidth int // the width left for code + numFmt, blank string // the line-number format, and blank space of the same width + src []string // the source lines, as the highlighter got them +} + +// render returns the screen lines of the 0-based source line i. final is +// false if the highlighter did not have the line ready, so the lines have +// no colours for now. +func (f *fileLines) render(i int) (lines []string, final bool) { + l, _, final := f.hl.Line(i) + parts := fileLineParts(f.plain(i), l, f.codeWidth, f.o) + out := make([]string, len(parts)) + for k, p := range parts { + num := f.blank + if k == 0 { + num = fmt.Sprintf(f.numFmt, f.digits, i+1) + } + line := num + p + if f.o.Width > 0 { // the number or a wide character can overflow the width + line = ansi.Truncate(line, f.o.Width, "") + } + out[k] = line + } + return out, final +} + +// source returns the 0-based source line i, or "" if there is none. +func (f *fileLines) source(i int) string { + if i < len(f.src) { + return f.src[i] + } + return "" +} + +// plain returns the 0-based source line i escaped and without colours, as +// the highlighter shows a line that it does not highlight. +func (f *fileLines) plain(i int) string { return diffview.Escape(f.source(i)) } + +// fileLineParts splits the highlighted line l, whose plain text is plain, +// into screen lines. If o sets a width, each part fits in codeWidth cells. +// With [FileOptions.Wrap], a long line becomes several parts, broken where +// the plain text breaks. Without Wrap, the first [FileOptions.ScrollX] +// cells are skipped and the rest is cut to fit. +func fileLineParts(plain, l string, codeWidth int, o FileOptions) []string { switch { - case o.Width > 0 && code <= 0: + case o.Width > 0 && codeWidth <= 0: return []string{""} + case o.Width > 0 && o.Wrap && diffview.Fits(plain, codeWidth): + return []string{l} case o.Width > 0 && o.Wrap: - // Wrap can keep a leading space on a full line, so cut again. - wrapped := ansi.Hardwrap(lipgloss.Wrap(l, code, ""), code, true) - return strings.Split(wrapped, "\n") + return diffview.WrapLine(plain, l, codeWidth) case o.Width > 0: - return []string{ansi.Truncate(diffview.CutLeft(l, o.Offset), code, "…")} + return []string{ansi.Truncate(diffview.CutLeft(l, o.ScrollX), codeWidth, "…")} } - return []string{diffview.CutLeft(l, o.Offset)} + return []string{diffview.CutLeft(l, o.ScrollX)} } -// fileColors returns highlight(path, src), and keeps it for the next -// call. A nil c keeps nothing. -func (c *Cache) fileColors(path, src string) string { +// fileColors converts raw, the content of the file at path, for display by +// RenderFile, and returns the converted text and a highlighter for it. c +// stores both for the next call, and stops the old highlighter when the +// file changes. A nil c stores nothing. +func (c *Cache) fileColors(path, raw string) (string, *diffview.Highlighter) { if c == nil { - return highlight(path, src) + // Nothing stops this highlighter; its goroutine ends when it + // reaches the end of src. + src := shownFile(raw) + return src, highlighter(path, src) } f := &c.file - if f.path != path || f.src != src { - f.path, f.src, f.out = path, src, highlight(path, src) + src := f.src + if f.h == nil || f.raw != raw { + src = shownFile(raw) + } + if f.h == nil || f.path != path || f.src != src { + if f.h != nil { + f.h.Stop() // a Diff that uses it starts it again for the lines it reads + } + f.path, f.src, f.h = path, src, highlighter(path, src) } - return f.out + f.raw = raw + return src, f.h } -// highlight colours src, the whole file at path, at once, so that tokens -// that span lines get the correct colour. If it cannot highlight src, it -// returns src with its control characters replaced. -func highlight(path, src string) string { - it, err := diffview.Lexer(path, src).Tokenise(nil, src) - if err != nil { - return escapeKeepNewlines(src) +// StopHighlighting stops the background highlighting of the last file +// passed to [RenderFile] with c, for example when the file is no longer +// shown. A [Diff] of the file starts it again for the lines that it reads. +func (c *Cache) StopHighlighting() { + if c != nil && c.file.h != nil { + c.file.h.Stop() } - f := diffview.ANSIFormatter(lipgloss.NoColor{}, escapeKeepNewlines) - var b strings.Builder - if f.Format(&b, nil, it) != nil { - return escapeKeepNewlines(src) - } - return b.String() } -// escapeKeepNewlines replaces the control characters in a token, but keeps -// its line breaks. The caller splits the output into lines. -func escapeKeepNewlines(s string) string { - parts := strings.Split(s, "\n") - for i, p := range parts { - parts[i] = diffview.Escape(p) - } - return strings.Join(parts, "\n") +// Highlighting reports whether the last file passed to [RenderFile] with +// c is still being highlighted in the background. While it is, lines that +// were drawn without colours can get them, so the screen should be drawn +// again. +func (c *Cache) Highlighting() bool { return c != nil && c.file.h != nil && c.file.h.Busy() } + +// fileChars replaces CRLF with LF and each tab with spaces. It replaces a +// lone CR with a symbol, because chroma treats it as a line break. The +// resulting lines match those of [SplitLines]. +var fileChars = strings.NewReplacer("\r\n", "\n", "\r", diffview.CRSymbol, "\t", strings.Repeat(" ", diffview.TabWidth)) + +// shownFile returns raw converted for display by RenderFile. +func shownFile(raw string) string { return fileChars.Replace(raw) } + +// highlighter returns a [diffview.Highlighter] for src, the whole content +// of the file at path. If src cannot be highlighted, the lines are those +// of src with control characters escaped. +func highlighter(path, src string) *diffview.Highlighter { + return diffview.NewHighlighter(path, src, lipgloss.NoColor{}, escapeKeepNewlines, escapeKeepNewlines) } + +// escapeKeepNewlines escapes the control characters in s but keeps its +// line breaks. +func escapeKeepNewlines(s string) string { return diffview.EachLine(s, diffview.Escape) } diff --git a/diff/fold_test.go b/diff/fold_test.go index ec1d143..0c8bbeb 100644 --- a/diff/fold_test.go +++ b/diff/fold_test.go @@ -11,8 +11,8 @@ import ( "github.com/rednafi/rexdiff/diff" ) -// numbered returns lines "line 1" to "line n". The lines in upper are -// "LINE 1" and so on. +// numbered returns the lines "line 1" to "line n". The line numbers in +// upper use "LINE" instead of "line". func numbered(n int, upper ...int) string { var b strings.Builder for i := 1; i <= n; i++ { @@ -25,11 +25,12 @@ func numbered(n int, upper ...int) string { return b.String() } -// foldText writes a hunk header with fold f, for example "@14/14+13". -func foldText(f diff.Fold) string { return fmt.Sprintf("@%d/%d+%d", f.Old, f.New, f.Lines) } +// foldText formats a fold as text, for example "@14/14+13". +func foldText(fold diff.Fold) string { return fmt.Sprintf("@%d/%d+%d", fold.Old, fold.New, fold.Lines) } -// layout writes each row of d as one entry. A hunk header is "@" and its -// fold. Another row is its old and its new line number. +// layout returns one entry for each row of d. A hunk header becomes its +// fold, as written by foldText. Any other row becomes "old:new", its old +// and new line numbers. func layout(d *diff.Diff) []string { var out []string for _, r := range d.Rows { @@ -42,12 +43,12 @@ func layout(d *diff.Diff) []string { return out } -// headers returns the text of the hunk headers of d. +// headers returns the text of the hunk headers of d, one per line. func headers(d *diff.Diff) string { var out []string for i, r := range d.Rows { if r.Kind == diff.KindHunk { - out = append(out, strings.TrimSpace(ansi.Strip(d.Lines[i]))) + out = append(out, strings.TrimSpace(ansi.Strip(screenLines(d)[i]))) } } return strings.Join(out, "\n") @@ -57,7 +58,7 @@ func headers(d *diff.Diff) string { // header below it. func TestFolds(t *testing.T) { t.Parallel() - before, after := numbered(40), numbered(40, 10, 30) + oldText, newText := numbered(40), numbered(40, 10, 30) header := func(o, n, lines int) []string { return []string{foldText(diff.Fold{Old: o, New: n, Lines: lines})} } lines := func(lo, hi int) []string { var out []string @@ -67,8 +68,8 @@ func TestFolds(t *testing.T) { return out } change := func(n int) []string { return []string{fmt.Sprintf("%d:0", n), fmt.Sprintf("0:%d", n)} } - // Three lines show beside each change. A fold that Expanded accepts shows - // all of its lines. + // Three lines of context are shown around each change. A fold that + // Expanded accepts shows all of its lines. top, middle, tail, none := header(1, 1, 6), header(14, 14, 13), header(34, 34, 7), header(0, 0, 0) tests := []struct { name string @@ -80,11 +81,11 @@ func TestFolds(t *testing.T) { middle, lines(27, 29), change(30), lines(31, 33), tail, )}, - {"middle shows", func(f diff.Fold) bool { return f.New == 14 }, slices.Concat( + {"middle shows", func(fold diff.Fold) bool { return fold.New == 14 }, slices.Concat( top, lines(7, 9), change(10), lines(11, 29), change(30), lines(31, 33), tail, )}, - {"top and tail show", func(f diff.Fold) bool { return f.New != 14 }, slices.Concat( + {"top and tail show", func(fold diff.Fold) bool { return fold.New != 14 }, slices.Concat( none, lines(1, 9), change(10), lines(11, 13), middle, lines(27, 29), change(30), lines(31, 40), )}, @@ -96,16 +97,16 @@ func TestFolds(t *testing.T) { t.Run(tt.name, func(t *testing.T) { t.Parallel() o := diff.Options{Width: 60, Expanded: tt.expanded} - d := diff.Render("f.txt", before, after, o) + d := diff.Render("f.txt", oldText, newText, o) if got := layout(d); !slices.Equal(got, tt.want) { t.Errorf("layout = \n%v\nwant:\n%v", got, tt.want) } }) } - // The header gives the number of hidden lines. A fold at the end has no - // hunk header. In the split layout, the header continues across the - // right side. No line is wider than the screen. + // Each header shows the number of hidden lines. A fold at the end has + // no hunk range. In the split layout, the header spans both sides. No + // line is wider than the screen. for _, tt := range []struct { o diff.Options want string @@ -117,12 +118,12 @@ func TestFolds(t *testing.T) { "… ⋯ 13 unmodified lines @@ -27,7 +27,7 @@\n" + "… ⋯ 7 unmodified lines"}, } { - d := diff.Render("f.txt", before, after, tt.o) + d := diff.Render("f.txt", oldText, newText, tt.o) if got := headers(d); got != tt.want { t.Errorf("split %v: headers = \n%s\nwant:\n%s", tt.o.Split, got, tt.want) } - for i, l := range d.Lines { + for i, l := range screenLines(d) { if w := ansi.StringWidth(l); w > tt.o.Width { t.Errorf("split %v: line %d is %d cells wide, want %d or fewer", tt.o.Split, i, w, tt.o.Width) @@ -131,7 +132,8 @@ func TestFolds(t *testing.T) { } } -// TestFoldEdges checks the folds that show no line. +// TestFoldEdges checks folds in edge cases: a single equal line between +// two changes, a line added at the top, and a file with no equal lines. func TestFoldEdges(t *testing.T) { t.Parallel() tests := []struct { @@ -139,13 +141,13 @@ func TestFoldEdges(t *testing.T) { old, new string want string }{ - // Changes at 10 and 18 leave line 14 alone between the margins. The - // line shows, because a fold of one line saves no row. + // Changes at lines 10 and 18 leave only line 14 between the context + // lines. It is shown, because folding one line saves no rows. { "one line", numbered(21), numbered(21, 10, 18), "@1/1+6 7:7 8:8 9:9 10:0 0:10 11:11 12:12 13:13 14:14 15:15 16:16 17:17 18:0 0:18 19:19 20:20 21:21", }, - // After an insert, the old and the new numbers of a fold differ. + // After an added line, the old and new line numbers of a fold differ. { "insert at the top", numbered(12), "new\n" + numbered(12), "@0/0+0 0:1 1:2 2:3 3:4 @4/5+9", @@ -170,7 +172,7 @@ func TestFoldEdges(t *testing.T) { } } -// folds returns the folds of the hunk headers of d. +// folds returns the folds of the hunk headers in d. func folds(d *diff.Diff) []diff.Fold { var out []diff.Fold for _, r := range d.Rows { diff --git a/diff/fuzz_test.go b/diff/fuzz_test.go index 2207078..55023d8 100644 --- a/diff/fuzz_test.go +++ b/diff/fuzz_test.go @@ -13,10 +13,12 @@ import ( "github.com/rednafi/rexdiff/diff" ) -// paths select the lexers that the fuzz tests use. +// paths are file names that select the syntax highlighting in the fuzz +// tests. var paths = []string{"x.go", "x.py", "x.txt", "x.md", "x.html", "x.json", "Makefile", "x"} -// hostile is file content that can attack a terminal or break the layout. +// hostile holds file contents that could attack a terminal or break the +// layout. var hostile = []string{ "", "\n", @@ -32,11 +34,13 @@ var hostile = []string{ "\x9b31m\xff\xfe\n", "日本語のテキスト😀👨‍👩‍👧\n", "a\u0301\u200d\u202e\n", + "/*\u202e } \u2066if\u2069 \u2066*/\u200b\ufeff\u061c\u200e\u200f\n", + strings.Repeat("中\u202e文\u2066", 40) + "\n", strings.Repeat("long ", 200) + "\n", "no newline at end", } -// sgr matches the colour sequences that the renderer writes. +// sgr matches the colour escape sequences that the renderer writes. var sgr = regexp.MustCompile(`\x1b\[[0-9;:]*m`) // isUnsafeControl reports whether r is a control character other than a @@ -45,13 +49,20 @@ func isUnsafeControl(r rune) bool { return r != '\t' && r != '\n' && unicode.IsControl(r) } -// fuzzOptions makes Options from the fuzz values. -func fuzzOptions(layout, width, offset uint8, colored bool) diff.Options { +// isBidiControl reports whether r is a bidirectional control character, +// which can reorder the text that a terminal shows. +func isBidiControl(r rune) bool { + return r == '\u061c' || r == '\u200e' || r == '\u200f' || + r >= '\u202a' && r <= '\u202e' || r >= '\u2066' && r <= '\u2069' +} + +// fuzzOptions builds Options from fuzz inputs. +func fuzzOptions(layout, width, scrollX uint8, colored bool) diff.Options { o := diff.Options{ - Split: layout&1 != 0, - Wrap: layout&2 != 0, - Width: int(width % 60), - Offset: int(offset % 20), + Split: layout&1 != 0, + Wrap: layout&2 != 0, + Width: int(width % 60), + ScrollX: int(scrollX % 20), } if colored { o.Theme = diff.Theme{ @@ -62,14 +73,16 @@ func fuzzOptions(layout, width, offset uint8, colored bool) diff.Options { return o } -// checkLines checks the invariants that all rendered output must keep. +// checkLines checks that d has one line for each row, that each line fits +// the width in o, and that no line contains control characters other than +// colour sequences. func checkLines(t *testing.T, d *diff.Diff, o diff.Options) { t.Helper() - if len(d.Lines) != len(d.Rows) { + if len(screenLines(d)) != len(d.Rows) { t.Fatalf("%d lines for %d rows, want one line for each row", - len(d.Lines), len(d.Rows)) + len(screenLines(d)), len(d.Rows)) } - for i, l := range d.Lines { + for i, l := range screenLines(d) { if w := ansi.StringWidth(l); o.Width > 0 && w > o.Width { t.Errorf("line %d is %d cells wide, want %d or fewer: %q", i, w, o.Width, l) @@ -78,18 +91,40 @@ func checkLines(t *testing.T, d *diff.Diff, o diff.Options) { if strings.ContainsFunc(rest, unicode.IsControl) { t.Errorf("line %d = %q, want no control characters", i, l) } + if strings.ContainsFunc(rest, isBidiControl) { + t.Errorf("line %d = %q, want no bidirectional controls", i, l) + } + } +} + +// checkSameText checks that two renders of the same diff show the same +// rows and text when their lines are read in opposite orders. The colours +// can differ: a long line that misses its highlighting time limit shows +// plain. +func checkSameText(t *testing.T, a, b *diff.Diff) { + t.Helper() + want := screenLines(a) + if !slices.Equal(a.Rows, b.Rows) { + t.Fatalf("rows differ:\n first %v\n second %v", a.Rows, b.Rows) + } + for i := range slices.Backward(b.Rows) { + if got := ansi.Strip(b.Line(i)); got != ansi.Strip(want[i]) { + t.Fatalf("line %d = %q, want %q", i, got, ansi.Strip(want[i])) + } } } -// checkRows checks that each row points at real lines, in order. -func checkRows(t *testing.T, rows []diff.Row, before, after string) { +// checkRows checks that each row refers to existing lines, that line +// numbers increase, and that a continued row repeats the lines of the row +// above. +func checkRows(t *testing.T, rows []diff.Row, oldText, newText string) { t.Helper() - nOld, nNew := len(diff.Lines(before)), len(diff.Lines(after)) + oldCount, newCount := len(diff.SplitLines(oldText)), len(diff.SplitLines(newText)) lastOld, lastNew := 0, 0 for i, r := range rows { - if r.Old < 0 || r.Old > nOld || r.New < 0 || r.New > nNew { + if r.Old < 0 || r.Old > oldCount || r.New < 0 || r.New > newCount { t.Fatalf("row %d = %+v, want Old in 0-%d and New in 0-%d", - i, r, nOld, nNew) + i, r, oldCount, newCount) } if r.Continued { if i == 0 || rows[i-1].Old != r.Old || rows[i-1].New != r.New { @@ -108,29 +143,31 @@ func checkRows(t *testing.T, rows []diff.Row, before, after string) { } } -// FuzzRender checks the invariants of Render. It also checks that Count -// agrees with the snippet. +// FuzzRender checks that the output of Render is well formed, that a lazy +// render matches it, and that CountLines agrees with a comment's diff +// lines. func FuzzRender(f *testing.F) { for i, s := range hostile { f.Add(uint8(i), "a\nb\n", s, uint8(i), uint8(i*7), uint8(i%3), i%2 == 0) f.Add(uint8(i), s, "a\n"+s+"b\n", uint8(i+1), uint8(i*5), uint8(0), i%2 == 1) } - f.Add(uint8(0), oldSrc, newSrc, uint8(3), uint8(1), uint8(0), false) + f.Add(uint8(0), oldText, newText, uint8(3), uint8(1), uint8(0), false) f.Add(uint8(0), "\tx\n", " x\n", uint8(0), uint8(0), uint8(0), false) f.Fuzz(func( t *testing.T, p uint8, - before, after string, - layout, width, offset uint8, + oldSrc, newSrc string, + layout, width, scrollX uint8, colored bool, ) { - o := fuzzOptions(layout, width, offset, colored) - d := diff.Render(paths[int(p)%len(paths)], before, after, o) + o := fuzzOptions(layout, width, scrollX, colored) + d := diff.Render(paths[int(p)%len(paths)], oldSrc, newSrc, o) checkLines(t, d, o) - checkRows(t, d.Rows, before, after) - if o.Width == 0 && o.Offset == 0 && !strings.Contains(before+after, "…") { - // With no width limit, no line is cut. - for i, l := range d.Lines { + checkSameText(t, d, diff.Render(paths[int(p)%len(paths)], oldSrc, newSrc, o)) + checkRows(t, d.Rows, oldSrc, newSrc) + if o.Width == 0 && o.ScrollX == 0 && !strings.Contains(oldSrc+newSrc, "…") { + // Without a width limit, no line is cut. + for i, l := range screenLines(d) { cut := strings.Contains(ansi.Strip(l), "…") if cut && d.Rows[i].Kind != diff.KindHunk { t.Fatalf("line %d = %q, want no cut with no width limit", i, l) @@ -138,14 +175,14 @@ func FuzzRender(f *testing.F) { } } - added, deleted := diff.Count(before, after) - if (added == 0 && deleted == 0) != (len(d.Lines) == 0) { + added, deleted := diff.CountLines(oldSrc, newSrc) + if (added == 0 && deleted == 0) != (len(screenLines(d)) == 0) { t.Fatalf("Count = %d, %d and Render has %d lines, "+ "want zero counts only for zero lines", - added, deleted, len(d.Lines)) + added, deleted, len(screenLines(d))) } var plus, minus int - for _, l := range snippet(d.Rows, before, after) { + for _, l := range snippet(d.Rows, oldSrc, newSrc) { switch l[0] { case '+': plus++ @@ -160,17 +197,67 @@ func FuzzRender(f *testing.F) { }) } -// FuzzSnippetSameInLayouts checks that the split and the unified layouts give -// the same snippet. +// FuzzRenderApply checks that a diff with every fold expanded changes the +// old text into the new one: its rows list every old line and every new +// line once and in order, and each equal row joins two identical lines, +// line endings included. +func FuzzRenderApply(f *testing.F) { + for _, s := range hostile { + f.Add("a\nb\n", s) + f.Add(s, "a\n"+s+"b\n") + } + f.Add(oldText, newText) + f.Add("a\nb\nc\nd\n", "x\nb\ny\nz\nd\n") + f.Add("a\r\nb\r\n", "a\nb\r\n") + f.Add("x\ny\nz\n", "y\nx\nz") + f.Fuzz(func(t *testing.T, oldSrc, newSrc string) { + o := diff.Options{Expanded: func(diff.Fold) bool { return true }} + d := diff.Render("x.txt", oldSrc, newSrc, o) + oldLines := slices.Collect(strings.Lines(oldSrc)) + newLines := slices.Collect(strings.Lines(newSrc)) + if len(d.Rows) == 0 && oldSrc != newSrc { + t.Fatalf("no rows for different texts %q and %q", oldSrc, newSrc) + } + nextOld, nextNew := 1, 1 + for i, r := range d.Rows { + if r.Continued || r.Kind == diff.KindHunk { + continue + } + if r.Kind != diff.KindAdded { + if r.Old != nextOld { + t.Fatalf("row %d = %+v, want old line %d", i, r, nextOld) + } + nextOld++ + } + if r.Kind != diff.KindDeleted { + if r.New != nextNew { + t.Fatalf("row %d = %+v, want new line %d", i, r, nextNew) + } + nextNew++ + } + if r.Kind == diff.KindEqual && oldLines[r.Old-1] != newLines[r.New-1] { + t.Fatalf("equal row %d joins different lines %q and %q", + i, oldLines[r.Old-1], newLines[r.New-1]) + } + } + if len(d.Rows) > 0 && (nextOld != len(oldLines)+1 || nextNew != len(newLines)+1) { + t.Fatalf("the rows end before old line %d and new line %d, want %d and %d", + nextOld, nextNew, len(oldLines)+1, len(newLines)+1) + } + }) +} + +// FuzzSnippetSameInLayouts checks that a comment gets the same diff lines +// from the split layout as from the unified layout. func FuzzSnippetSameInLayouts(f *testing.F) { - f.Add(oldSrc, newSrc) + f.Add(oldText, newText) f.Add("a\nb\nc\nd\n", "x\nb\ny\nz\nd\n") f.Add("\tx\r\n", "\ty\n") - f.Fuzz(func(t *testing.T, before, after string) { - u := diff.Render("x.txt", before, after, diff.Options{}) + f.Fuzz(func(t *testing.T, oldSrc, newSrc string) { + u := diff.Render("x.txt", oldSrc, newSrc, diff.Options{}) o := diff.Options{Split: true, Width: 30, Wrap: true} - s := diff.Render("x.txt", before, after, o) - got, want := snippet(s.Rows, before, after), snippet(u.Rows, before, after) + s := diff.Render("x.txt", oldSrc, newSrc, o) + got, want := snippet(s.Rows, oldSrc, newSrc), snippet(u.Rows, oldSrc, newSrc) if !slices.Equal(got, want) { t.Fatalf("split snippet = %q, want the unified snippet %q", got, want) @@ -178,7 +265,9 @@ func FuzzSnippetSameInLayouts(f *testing.F) { }) } -// FuzzRenderFile checks that RenderFile gives one row for each source line. +// FuzzRenderFile checks that the output of RenderFile is well formed, that +// a lazy render matches it, and that it has one non-continued row for each +// source line. func FuzzRenderFile(f *testing.F) { for i, s := range hostile { f.Add(uint8(i), s, uint8(i), uint8(i*7), uint8(i%3), i%2 == 0) @@ -189,11 +278,12 @@ func FuzzRenderFile(f *testing.F) { t *testing.T, p uint8, src string, - layout, width, offset uint8, + layout, width, scrollX uint8, colored bool, ) { - o := fuzzOptions(layout, width, offset, colored) - d := diff.RenderFile(paths[int(p)%len(paths)], src, o) + o := fuzzOptions(layout, width, scrollX, colored) + d := diff.RenderFile(paths[int(p)%len(paths)], src, fileOptions(o)) + checkLazyFile(t, paths[int(p)%len(paths)], src, o) checkLines(t, d, o) checkRows(t, d.Rows, src, src) n := 0 @@ -202,40 +292,42 @@ func FuzzRenderFile(f *testing.F) { n++ } } - if want := len(diff.Lines(src)); n != want { + if want := len(diff.SplitLines(src)); n != want { t.Fatalf("RenderFile gives %d rows, want %d", n, want) } }) } -// FuzzCount checks that the counts of Count are in the range of the line -// counts. -func FuzzCount(f *testing.F) { +// FuzzCountLines checks that CountLines returns zero for equal texts, the +// full line count against an empty text, and otherwise counts no larger +// than the texts' line counts. +func FuzzCountLines(f *testing.F) { for _, s := range hostile { f.Add(s, "a\n") } f.Fuzz(func(t *testing.T, a, b string) { - if added, deleted := diff.Count(a, a); added != 0 || deleted != 0 { - t.Errorf("Count(%q, %q) = %d, %d, want 0, 0", a, a, added, deleted) + if added, deleted := diff.CountLines(a, a); added != 0 || deleted != 0 { + t.Errorf("CountLines(%q, %q) = %d, %d, want 0, 0", a, a, added, deleted) } - na, nb := len(diff.Lines(a)), len(diff.Lines(b)) - if added, deleted := diff.Count("", a); added != na || deleted != 0 { - t.Errorf("Count(\"\", %q) = %d, %d, want %d, 0", + na, nb := len(diff.SplitLines(a)), len(diff.SplitLines(b)) + if added, deleted := diff.CountLines("", a); added != na || deleted != 0 { + t.Errorf("CountLines(\"\", %q) = %d, %d, want %d, 0", a, added, deleted, na) } - if added, deleted := diff.Count(a, ""); added != 0 || deleted != na { - t.Errorf("Count(%q, \"\") = %d, %d, want 0, %d", + if added, deleted := diff.CountLines(a, ""); added != 0 || deleted != na { + t.Errorf("CountLines(%q, \"\") = %d, %d, want 0, %d", a, added, deleted, na) } - added, deleted := diff.Count(a, b) + added, deleted := diff.CountLines(a, b) if added < 0 || deleted < 0 || added > nb || deleted > na { - t.Errorf("Count(%q, %q) = %d, %d, want 0-%d, 0-%d", + t.Errorf("CountLines(%q, %q) = %d, %d, want 0-%d, 0-%d", a, b, added, deleted, nb, na) } }) } -// FuzzComments checks that the review text has no control characters. +// FuzzComments checks that the review text and comment locations contain +// no control characters. func FuzzComments(f *testing.F) { for i, s := range hostile { f.Add("a\nb\nc\n", s, "a.go", s, uint8(i), uint8(i%3)) @@ -248,23 +340,23 @@ func FuzzComments(f *testing.F) { uint8(1), uint8(1), ) - f.Fuzz(func(t *testing.T, before, after, path, text string, start, size uint8) { - lines := diff.Lines(before) + f.Fuzz(func(t *testing.T, oldText, newText, path, text string, start, size uint8) { + lines := diff.SplitLines(oldText) if len(lines) == 0 { return } s := int(start) % len(lines) e := min(s+int(size), len(lines)-1) var cs diff.Comments - c := commentOn(path, diff.SideNew, before, s+1, e+1) + c := commentOn(path, diff.SideNew, oldText, s+1, e+1) c.Text = text if c.Start != s+1 || c.End != e+1 { t.Errorf("commentOn lines %d-%d = %+v, want lines %d-%d", s+1, e+1, c, s+1, e+1) } cs.Add(c) - cs.Add(comment(path, diff.SideOld, before, after, text)) - r := cs.Review(text) + cs.Add(comment(path, diff.SideOld, oldText, newText, text)) + r := cs.Review(text, nil) if strings.ContainsFunc(r, isUnsafeControl) { t.Errorf("Review = %q, want no control characters", r) } diff --git a/diff/hostile_test.go b/diff/hostile_test.go index 9ac0746..86a7fb6 100644 --- a/diff/hostile_test.go +++ b/diff/hostile_test.go @@ -1,17 +1,19 @@ package diff_test import ( + "fmt" "image/color" "strings" "testing" + "time" "github.com/charmbracelet/x/ansi" "github.com/rednafi/rexdiff/diff" ) -// TestHostileContent checks the lines and the rows of each hostile file, in -// all layouts. +// TestHostileContent checks the lines and rows of [Render] and +// [RenderFile] for each hostile input, with several layout options. func TestHostileContent(t *testing.T) { t.Parallel() opts := []diff.Options{ @@ -21,14 +23,14 @@ func TestHostileContent(t *testing.T) { {Width: 9, Wrap: true}, {Split: true, Width: 30}, {Split: true, Width: 30, Wrap: true}, - {Width: 20, Offset: 3}, + {Width: 20, ScrollX: 3}, } for _, s := range hostile { for _, o := range opts { d := diff.Render("x.go", "a\n", s, o) checkLines(t, d, o) checkRows(t, d.Rows, "a\n", s) - f := diff.RenderFile("x.go", s, o) + f := diff.RenderFile("x.go", s, fileOptions(o)) checkLines(t, f, o) checkRows(t, f.Rows, s, s) if t.Failed() { @@ -38,8 +40,8 @@ func TestHostileContent(t *testing.T) { } } -// TestEscapesAreVisible checks that an escape in a file shows as a symbol, -// so that the reader sees it. +// TestEscapesAreVisible checks that escape sequences and control +// characters in a file are shown as visible symbols. func TestEscapesAreVisible(t *testing.T) { t.Parallel() tests := []struct{ src, want string }{ @@ -55,16 +57,117 @@ func TestEscapesAreVisible(t *testing.T) { if got := plainLine(t, d, 1); !strings.Contains(got, tt.want) { t.Errorf("Render(%q) = %q, want it to show %q", tt.src, got, tt.want) } - f := diff.RenderFile("x.txt", tt.src, diff.Options{}) - if len(f.Lines) != 1 || !strings.Contains(ansi.Strip(f.Lines[0]), tt.want) { + f := diff.RenderFile("x.txt", tt.src, diff.FileOptions{}) + if len(screenLines(f)) != 1 || !strings.Contains(ansi.Strip(screenLines(f)[0]), tt.want) { t.Errorf("RenderFile(%q) = %q, want one line that shows %q", - tt.src, f.Lines, tt.want) + tt.src, screenLines(f), tt.want) } } } +// TestBidiControlsAreVisible checks that bidirectional controls and +// zero-width characters in a file are shown as their code points, so that +// they cannot reorder or hide the code on screen, in a highlighted file +// and in a plain one. The zero-width joiner and variation selectors stay, +// because emoji need them. +func TestBidiControlsAreVisible(t *testing.T) { + t.Parallel() + tests := []struct{ src, want string }{ + // A "Trojan Source" line: the override makes the comment appear + // after the return on screen. + {"if admin { /*\u202e } \u2066if user\u2069 \u2066*/ return\n", "/* } if user */ return"}, + {"a\u202ab\u202bc\u202cd\u202de\n", "abcde"}, + {"a\u2067b\u2068c\n", "abc"}, + {"a\u200eb\u200fc\u061cd\n", "abcd"}, + {"\ufeffa\u200bb\u2060c\n", "abc"}, + {"x := \"👨\u200d👩\u200d👧 ❤\ufe0f\"\n", "x := \"👨\u200d👩\u200d👧 ❤\ufe0f\""}, + } + for _, tt := range tests { + for _, name := range []string{"x.go", "x.txt"} { + d := diff.Render(name, "", tt.src, diff.Options{}) + if got := plainLine(t, d, 1); !strings.Contains(got, tt.want) { + t.Errorf("Render(%q, %q) = %q, want it to show %q", name, tt.src, got, tt.want) + } + f := diff.RenderFile(name, tt.src, diff.FileOptions{}) + if len(screenLines(f)) != 1 || !strings.Contains(ansi.Strip(screenLines(f)[0]), tt.want) { + t.Errorf("RenderFile(%q, %q) = %q, want one line that shows %q", + name, tt.src, screenLines(f), tt.want) + } + } + } +} + +// TestBidiControlCell checks that a click on any cell of a shown bidi +// control finds that control, and that a click after it finds the +// character after it. +func TestBidiControlCell(t *testing.T) { + t.Parallel() + d := diff.Render("x.txt", "", "a\u202eb\n", diff.Options{Width: 40}) + at := column(t, d, 1, "", false) + for x := at; x < at+len(""); x++ { + if _, _, i, ok := d.Cell(1, x); !ok || i != 1 { + t.Errorf("Cell(1, %d) = index %d, %t, want 1, true", x, i, ok) + } + } + if _, _, i, ok := d.Cell(1, at+len("")); !ok || i != 2 { + t.Errorf("Cell after the control = index %d, %t, want 2, true", i, ok) + } +} + +// TestSlowLexers checks that files whose chroma lexers never stop, or +// take seconds, on some lines are drawn quickly. Each line used to take +// more than 40 s or never finish. +func TestSlowLexers(t *testing.T) { + t.Parallel() + tests := []struct{ name, line string }{ + {"x.jungle", strings.Repeat(`"`, 100)}, + {"x.jungle", strings.Repeat("x := 1 // y", 10)}, + {"x.jsonata", strings.Repeat(`\`, 100)}, + {"x.ly", strings.Repeat("a", 1500)}, + {"x.mess", strings.Repeat("a", 1500)}, + {"x.dts", strings.Repeat("a", 1500)}, + {"x.service", strings.Repeat("a", 1500)}, + } + for _, tt := range tests { + within(t, 10*time.Second, tt.name, func() { + for _, o := range []diff.Options{{}, {Width: 40, Wrap: true}} { + diff.Render(tt.name, "", tt.line+"\n", o) + diff.RenderFile(tt.name, tt.line+"\n", fileOptions(o)) + } + }) + } +} + +// TestSlowLines checks that a diff of long lines that a lexer takes +// seconds to highlight is drawn quickly. Without a time limit, the V +// shell lexer takes 2 s on each of these lines. +func TestSlowLines(t *testing.T) { + t.Parallel() + var src strings.Builder + for i := range 4 { + fmt.Fprintf(&src, "%s%d\n", strings.Repeat("/*a", 499), i) + } + within(t, 6*time.Second, "x.vsh", func() { diff.Render("x.vsh", "", src.String(), diff.Options{}) }) +} + +// within fails the test if f takes longer than limit. f keeps running +// after the failure. +func within(t *testing.T, limit time.Duration, what string, f func()) { + t.Helper() + done := make(chan struct{}) + go func() { + defer close(done) + f() + }() + select { + case <-done: + case <-time.After(limit): + t.Fatalf("%s takes more than %s to draw", what, limit) + } +} + // TestWrapWideText checks that wrapped CJK and emoji text fits the width -// and that no character is lost. +// and that no characters are lost. func TestWrapWideText(t *testing.T) { t.Parallel() line := strings.Repeat("日本語😀", 10) @@ -75,7 +178,7 @@ func TestWrapWideText(t *testing.T) { d := diff.Render("x.txt", "", line+"\n", o) checkLines(t, d, o) var text strings.Builder - for i, l := range d.Lines { + for i, l := range screenLines(d) { if d.Rows[i].New == 1 { text.WriteString(ansi.Strip(l)) } @@ -88,8 +191,8 @@ func TestWrapWideText(t *testing.T) { } } -// TestRenderFileLineCount checks the number of rows for each kind of line -// ending. +// TestRenderFileLineCount checks the number of rows that [RenderFile] +// returns for different line endings. func TestRenderFileLineCount(t *testing.T) { t.Parallel() tests := []struct { @@ -105,7 +208,7 @@ func TestRenderFileLineCount(t *testing.T) { } for _, tt := range tests { for _, path := range []string{"x.txt", "Makefile", "x.go"} { - if d := diff.RenderFile(path, tt.src, diff.Options{}); len(d.Rows) != tt.rows { + if d := diff.RenderFile(path, tt.src, diff.FileOptions{}); len(d.Rows) != tt.rows { t.Errorf("RenderFile(%q, %q) has %d rows, want %d", path, tt.src, len(d.Rows), tt.rows) } @@ -113,17 +216,18 @@ func TestRenderFileLineCount(t *testing.T) { } } -// TestRenderFileNarrow checks that wide text fits a width of 1 to 7 cells. +// TestRenderFileNarrow checks that wrapped wide text fits widths of 1 to 7 +// cells. func TestRenderFileNarrow(t *testing.T) { t.Parallel() for w := 1; w < 8; w++ { o := diff.Options{Width: w, Wrap: true} - checkLines(t, diff.RenderFile("x.txt", "日本\n 0000\n", o), o) + checkLines(t, diff.RenderFile("x.txt", "日本\n 0000\n", fileOptions(o)), o) } } // TestReviewHostileComment checks that Review quotes a hostile path and -// removes the control characters from the code and the text. +// removes control characters from the code and the comment text. func TestReviewHostileComment(t *testing.T) { t.Parallel() c := comment("a\x1b]52;c;aGk=\x07.go", diff.SideNew, @@ -137,17 +241,17 @@ func TestReviewHostileComment(t *testing.T) { } } -// TestBlackTint checks that an equal line with the text of a deleted line has -// no background when the tint of deleted lines is black. +// TestBlackTint checks that an equal line with the same text as a deleted +// line has no background colour when deleted lines are tinted black. func TestBlackTint(t *testing.T) { t.Parallel() black := color.RGBA{A: 255} - th := diff.Theme{Background: black, Foreground: color.White, Red: black} - d := diff.Render("a.txt", "x\ny\nx\n", "y\nx\n", diff.Options{Theme: th}) + theme := diff.Theme{Background: black, Foreground: color.White, Red: black} + d := diff.Render("a.txt", "x\ny\nx\n", "y\nx\n", diff.Options{Theme: theme}) for i, r := range d.Rows { - if r.Kind == diff.KindEqual && strings.Contains(d.Lines[i], "48;2;0;0;0mx") { + if r.Kind == diff.KindEqual && strings.Contains(screenLines(d)[i], "48;2;0;0;0mx") { t.Errorf("equal line %d = %q, want no background of a deleted line", - r.New, d.Lines[i]) + r.New, screenLines(d)[i]) } } } diff --git a/diff/lazy_test.go b/diff/lazy_test.go new file mode 100644 index 0000000..5536e1e --- /dev/null +++ b/diff/lazy_test.go @@ -0,0 +1,173 @@ +package diff_test + +import ( + "fmt" + "image/color" + "slices" + "strings" + "testing" + "time" + + "github.com/charmbracelet/x/ansi" + + "github.com/rednafi/rexdiff/diff" +) + +// checkLazy checks that lazy has the same rows and lines as eager. It +// reads the lines of lazy from last to first, so that no line relies on +// earlier lines having been rendered. +func checkLazy(t *testing.T, eager, lazy *diff.Diff) { + t.Helper() + want := screenLines(eager) + if !slices.Equal(eager.Rows, lazy.Rows) { + t.Fatalf("lazy rows differ:\n eager %v\n lazy %v", eager.Rows, lazy.Rows) + } + if len(lazy.Rows) != len(want) { + t.Fatalf("rows = %d, want %d", len(lazy.Rows), len(want)) + } + for i := range slices.Backward(lazy.Rows) { + if got := lazy.Line(i); got != want[i] { + t.Fatalf("lazy line %d = %q, want %q", i, got, want[i]) + } + } +} + +// checkLazyFile checks that two RenderFiles of src at path with the +// options o return the same rows and lines, whatever order they are read +// in. The first waits for the highlighting that both use: a line that the +// highlighter has not reached in time shows without colours. +func checkLazyFile(t *testing.T, path, src string, o diff.Options) { + t.Helper() + o.Cache = &diff.Cache{} + eager := diff.RenderFile(path, src, fileOptions(o)) + waitHighlighted(t, o.Cache) + checkLazy(t, eager, diff.RenderFile(path, src, fileOptions(o))) +} + +// lazyFile returns a Go file of about n lines that includes long lines, +// lines with wide characters and indented lines. If edit is true, some +// lines differ and end in CRLF. No line is longer than 256 bytes, so that +// the time limit on highlighting a long line on its own never applies. +func lazyFile(n int, edit bool) string { + var b strings.Builder + b.WriteString("package x\n\n") + for i := range n { + switch { + case i%17 == 0: + fmt.Fprintf(&b, "\tlong%d := %q\n", i, strings.Repeat("word ", 5+i%40)) + case i%13 == 0: + fmt.Fprintf(&b, "\t\tw%d := \"日本語のテキスト😀 %s\"\n", i, strings.Repeat("中文", i%30)) + case i%11 == 0 && edit: + fmt.Fprintf(&b, "\tx%d := %d // edited\r\n", i, i) + default: + fmt.Fprintf(&b, "\tx%d := %d\n", i, i) + } + } + return b.String() +} + +// TestLazy checks that a lazy render returns the same rows and lines as an +// eager render, for both layouts, several widths and scroll offsets, and +// with and without wrapping. +func TestLazy(t *testing.T) { + t.Parallel() + oldSrc, newSrc := lazyFile(300, false), lazyFile(310, true) + for _, split := range []bool{false, true} { + for _, wrap := range []bool{false, true} { + for _, width := range []int{0, 1, 10, 30, 80, 141} { + for _, scrollX := range []int{0, 9} { + name := fmt.Sprintf("split=%v,wrap=%v,width=%d,scrollX=%d", split, wrap, width, scrollX) + t.Run(name, func(t *testing.T) { + t.Parallel() + expanded := func(f diff.Fold) bool { return f.Old%2 == 0 } + o := diff.Options{ + Split: split, Wrap: wrap, Width: width, ScrollX: scrollX, + Signs: scrollX > 0, Expanded: expanded, + Theme: diff.Theme{Background: color.Black, Foreground: color.White}, + } + lo := o + lo.Cache = &diff.Cache{} + checkLazy(t, diff.Render("x.go", oldSrc, newSrc, o), diff.Render("x.go", oldSrc, newSrc, lo)) + checkLazyFile(t, "x.go", newSrc, o) + for _, s := range hostile { + checkLazy(t, diff.Render("x.txt", "a\n"+s, s+"b\n", o), diff.Render("x.txt", "a\n"+s, s+"b\n", lo)) + checkLazyFile(t, "x.txt", s, o) + } + }) + } + } + } + } + // Test non-ASCII lines that fit or wrap at each width. Colour codes + // between the runes of an emoji can change its width. + wide := []string{"é 日本\n", "x := 👨‍👩 + 🇬🇧 é\n", "x := 👨‍👩 + 🇬🇧 " + strings.Repeat("日本 ", 20) + "\n"} + for width := range 40 { + o := diff.Options{Wrap: true, Width: width, Theme: diff.Theme{Background: color.Black, Foreground: color.White}} + lo := o + lo.Cache = &diff.Cache{} + for _, s := range wide { + checkLazy(t, diff.Render("x.go", "a\n"+s, s+"b\n", o), diff.Render("x.go", "a\n"+s, s+"b\n", lo)) + checkLazyFile(t, "x.go", s, o) + } + } +} + +// TestCacheKeepsDiff checks that lazy renders that reuse one Cache return +// the same rows and lines as renders without a Cache, while the layout, +// wrapping, folds, width and horizontal scroll change between renders. +func TestCacheKeepsDiff(t *testing.T) { + t.Parallel() + oldSrc, newSrc := lazyFile(120, false), lazyFile(110, true) + c := &diff.Cache{} + for range 2 { + for _, split := range []bool{true, false} { + for _, wrap := range []bool{false, true} { + for _, all := range []bool{false, true} { + for _, width := range []int{90, 60} { + for _, scrollX := range []int{0, 7} { + expanded := func(diff.Fold) bool { return all } + o := diff.Options{Split: split, Wrap: wrap, Width: width, ScrollX: scrollX, Expanded: expanded} + want := diff.Render("x.go", oldSrc, newSrc, o) + o.Cache = c + checkLazy(t, want, diff.Render("x.go", oldSrc, newSrc, o)) + } + } + } + } + } + } +} + +// waitHighlighted waits until c highlights no file in the background. +func waitHighlighted(t *testing.T, c *diff.Cache) { + t.Helper() + for deadline := time.Now().Add(time.Minute); c.Highlighting(); time.Sleep(time.Millisecond) { + if time.Now().After(deadline) { + t.Fatal("the highlighting runs for a minute") + } + } +} + +// TestFileKeepsLines checks that a lazy Diff still renders its last line +// highlighted after the same Cache renders another file, which stops the +// background highlighting of the first. +func TestFileKeepsLines(t *testing.T) { + t.Parallel() + src := lazyFile(3000, false) + o := diff.Options{Width: 80, Cache: &diff.Cache{}} + big := diff.RenderFile("x.go", src, fileOptions(o)) + diff.RenderFile("y.go", "package y\n", fileOptions(o)) + wc := &diff.Cache{} + want := diff.RenderFile("x.go", src, diff.FileOptions{Width: 80, Cache: wc}) + waitHighlighted(t, wc) + // The lazy Diff highlights the line again, and shows it plain until + // then. + last := len(big.Rows) - 1 + deadline := time.Now().Add(time.Minute) + for got := big.Line(last); got != want.Line(last); got = big.Line(last) { + if ansi.Strip(got) != ansi.Strip(want.Line(last)) || time.Now().After(deadline) { + t.Fatalf("last line = %q, want %q", got, want.Line(last)) + } + time.Sleep(time.Millisecond) + } +} diff --git a/diff/main_test.go b/diff/main_test.go index b37f0ec..1c6d42b 100644 --- a/diff/main_test.go +++ b/diff/main_test.go @@ -3,7 +3,13 @@ package diff_test import ( "testing" + "github.com/rednafi/rexdiff/diff" "github.com/rednafi/rexdiff/internal/testgit" ) func TestMain(m *testing.M) { testgit.Main(m) } + +// fileOptions returns the fields of o that [diff.RenderFile] uses. +func fileOptions(o diff.Options) diff.FileOptions { + return diff.FileOptions{Width: o.Width, ScrollX: o.ScrollX, Wrap: o.Wrap, Cache: o.Cache} +} diff --git a/diff/review.go b/diff/review.go index 4fa69f6..95981f0 100644 --- a/diff/review.go +++ b/diff/review.go @@ -6,36 +6,44 @@ import ( "github.com/rednafi/rexdiff/internal/termtext" ) -// Review returns the comments as herdr-reviewr text for a coding agent. It -// writes the prefix, if not empty, then the comments in [Comments.All] order. -// Blank lines separate them. The text has no control characters. +// Review returns the comments as text for a coding agent. The text starts +// with prefix, if it is not empty, followed by the comments in +// [Comments.All] order, separated by blank lines. The text contains no +// control characters. // -// This is an example of a comment: +// A comment looks like this: // // a.go:3-4 // x := 1 // +y := 2 // Merge these lines. -func (cs *Comments) Review(prefix string) string { +// +// If stale is not nil and reports true for a comment, " (stale)" follows +// its location, because its lines may no longer hold the code shown. +func (cs *Comments) Review(prefix string, stale func(*Comment) bool) string { var parts []string if p := strings.TrimRight(termtext.Plain(prefix), " \n\t"); p != "" { parts = append(parts, p) } for _, c := range cs.All() { - parts = append(parts, format(c)) + parts = append(parts, formatComment(c, stale != nil && stale(c))) } return strings.Join(parts, "\n\n") } -// format returns c as text for [Comments.Review]. -func format(c *Comment) string { +// formatComment returns c as text for [Comments.Review], marked stale if +// stale is true. +func formatComment(c *Comment, stale bool) string { var b strings.Builder b.WriteString(termtext.Plain(c.Location())) - // Write the rows as the diff shows them, so that the agent reads a real - // diff. + if stale { + b.WriteString(" (stale)") + } + // Write the rows as unified diff lines, or the code lines if there are + // no rows. if len(c.snippet) > 0 { for _, l := range c.snippet { - b.WriteString("\n") + b.WriteByte('\n') b.WriteString(termtext.Plain(l)) } } else { @@ -44,7 +52,7 @@ func format(c *Comment) string { mark = "-" } for _, l := range c.code { - b.WriteString("\n") + b.WriteByte('\n') b.WriteString(mark) b.WriteString(termtext.Plain(l)) } @@ -55,14 +63,14 @@ func format(c *Comment) string { text = append(text, strings.TrimRight(l, " \t")) } } - b.WriteString("\n") + b.WriteByte('\n') b.WriteString(strings.Join(text, "\n")) return b.String() } // snippet returns rows as unified diff lines. See [NewComment]. -func snippet(rows []Row, before, after string) []string { - oldLines, newLines := Lines(before), Lines(after) +func snippet(rows []Row, oldText, newText string) []string { + oldLines, newLines := SplitLines(oldText), SplitLines(newText) line := func(ls []string, n int) string { if n >= 1 && n-1 < len(ls) { return ls[n-1] @@ -82,11 +90,11 @@ func snippet(rows []Row, before, after string) []string { case KindEqual: flush() out = append(out, " "+line(newLines, r.New)) - case KindInsert: + case KindAdded: plus = append(plus, "+"+line(newLines, r.New)) - case KindDelete: + case KindDeleted: minus = append(minus, "-"+line(oldLines, r.Old)) - case KindChange: + case KindChanged: minus = append(minus, "-"+line(oldLines, r.Old)) plus = append(plus, "+"+line(newLines, r.New)) } diff --git a/diff/testdata/fuzz/FuzzRender/03c1cdf0ef3dea55 b/diff/testdata/fuzz/FuzzRender/03c1cdf0ef3dea55 new file mode 100644 index 0000000..f248bb0 --- /dev/null +++ b/diff/testdata/fuzz/FuzzRender/03c1cdf0ef3dea55 @@ -0,0 +1,8 @@ +go test fuzz v1 +byte('a') +string("0\x9e0") +string("0") +byte('\x01') +byte('\x00') +byte('\x00') +bool(false) diff --git a/diff/testdata/fuzz/FuzzRender/597030a707a26025 b/diff/testdata/fuzz/FuzzRender/597030a707a26025 new file mode 100644 index 0000000..4091cc7 --- /dev/null +++ b/diff/testdata/fuzz/FuzzRender/597030a707a26025 @@ -0,0 +1,8 @@ +go test fuzz v1 +byte('\b') +string("") +string("👨\u200d👩") +byte('\x04') +byte('\x00') +byte('\x00') +bool(true) diff --git a/diff/testdata/fuzz/FuzzRenderFile/3ed8df90f10ed889 b/diff/testdata/fuzz/FuzzRenderFile/3ed8df90f10ed889 new file mode 100644 index 0000000..d72b42d --- /dev/null +++ b/diff/testdata/fuzz/FuzzRenderFile/3ed8df90f10ed889 @@ -0,0 +1,7 @@ +go test fuzz v1 +byte('\f') +string("0\x8b") +byte('/') +byte('\x05') +byte('z') +bool(false) diff --git a/diff/theme.go b/diff/theme.go index b3025e5..50902c4 100644 --- a/diff/theme.go +++ b/diff/theme.go @@ -4,26 +4,27 @@ import ( "image/color" ) -// Theme sets the colours of the output. The lightness of Background selects -// the dark or the light diff colours. +// Theme sets the colours of the output. The lightness of Background +// selects the dark or light diff colours. type Theme struct { - // Background and Foreground are the colours of the terminal. They are nil - // if the terminal does not report them. Then the diff tints no background. + // Background and Foreground are the terminal's colours, or nil if the + // terminal does not report them. If Background is nil, lines are not + // tinted. Background, Foreground color.Color - // Green and Red are the ANSI colours 2 and 1 of the terminal. Inserted and - // deleted lines get a tint towards them. If they are nil, the diff uses + // Green and Red are the terminal's ANSI colours 2 and 1. Added and + // deleted lines are tinted towards them. If they are nil, the diff uses // fixed colours. Green, Red color.Color } -// dark reports whether the background is dark. An unknown background counts -// as dark. +// dark reports whether the background is dark. A nil background counts as +// dark. func (t Theme) dark() bool { if t.Background == nil { return true } r, g, b, _ := t.Background.RGBA() hi, lo := max(r, g, b), min(r, g, b) - // The HSL lightness, from 0 to 1. + // HSL lightness, from 0 to 1. return float64(hi+lo)/2/0xffff < 0.5 } diff --git a/go.mod b/go.mod index d1ffb2a..c02aab0 100644 --- a/go.mod +++ b/go.mod @@ -8,13 +8,14 @@ require ( charm.land/glamour/v2 v2.0.1 charm.land/lipgloss/v2 v2.0.6 github.com/alecthomas/chroma/v2 v2.27.0 - github.com/aymanbagabas/go-udiff v0.4.1 github.com/charmbracelet/ultraviolet v0.0.0-20261008173134-6b8d4baf91b4 github.com/charmbracelet/x/ansi v0.11.9 github.com/charmbracelet/x/vt v0.1.0 github.com/creack/pty v1.1.24 github.com/rogpeppe/go-internal v1.16.0 github.com/sahilm/fuzzy v0.1.3 + github.com/yuin/goldmark v1.8.6 + znkr.io/diff v1.1.4 ) require ( @@ -36,7 +37,6 @@ require ( github.com/muesli/cancelreader v0.2.2 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/xo/terminfo v1.0.0 // indirect - github.com/yuin/goldmark v1.8.6 // indirect github.com/yuin/goldmark-emoji v1.0.5 // indirect golang.org/x/net v0.59.0 // indirect golang.org/x/sync v0.24.0 // indirect diff --git a/go.sum b/go.sum index 27a9607..26dfbf3 100644 --- a/go.sum +++ b/go.sum @@ -48,6 +48,8 @@ github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= github.com/dlclark/regexp2/v2 v2.2.1 h1:mf4KkFUj0gJuarK8P+LgiS+Lit7m9N1yAwEfPbee7R0= github.com/dlclark/regexp2/v2 v2.2.1/go.mod h1:avUrQvPaLz2DrFNHJF0taWAFFX2C1GMSSoeiqFjcBmU= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8= github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= @@ -87,3 +89,5 @@ golang.org/x/text v0.43.0 h1:1QivrlhwAsnMOcqgOdl9my7s9OyZl8O5/UGUTJVXoWc= golang.org/x/text v0.43.0/go.mod h1:hbSIYA/amXcRXTFSZqh8tWHEoqRvvbKPJ2uz/KU+a+s= golang.org/x/tools v0.51.0 h1:k4Xc/1Om9jwkBJBo4NVLMSARBoWtK10mx+W5BnXCeAI= golang.org/x/tools v0.51.0/go.mod h1:9eEncMayCV6zRMGhR5eZEC2iBx98qWcF1HZ9Z7wJOoA= +znkr.io/diff v1.1.4 h1:ib4zEF5iyjcudfZGW5tCxiSitY+o4ZOz1gwEJ8KJFj8= +znkr.io/diff v1.1.4/go.mod h1:NGb8XOI3voBG4nlWWNB2NulIQzdCfe9igGPVSXs6oSM= diff --git a/internal/diffview/edits.go b/internal/diffview/edits.go new file mode 100644 index 0000000..7a09e38 --- /dev/null +++ b/internal/diffview/edits.go @@ -0,0 +1,94 @@ +package diffview + +import ( + "strings" + + zdiff "znkr.io/diff" + "znkr.io/diff/textdiff" +) + +// hunk is a run of lines of a diff. OldStart and NewStart are the old +// and new line numbers of its first line. +type hunk struct { + OldStart, NewStart int + Lines []diffLine +} + +// diffLine is one line of a hunk. Content keeps its line ending. +type diffLine struct { + Kind Kind // KindEqual, KindAdded, or KindDeleted + Content string +} + +// next returns the old and new line numbers of the line after l, where +// oldNum and newNum are those of l. +func (l diffLine) next(oldNum, newNum int) (int, int) { + if l.Kind != KindAdded { + oldNum++ + } + if l.Kind != KindDeleted { + newNum++ + } + return oldNum, newNum +} + +// fastDiffLines is the number of lines, old and new together, above which +// edits uses the fast diff. The diff runs while the screen is drawn, and +// the default diff becomes slow on large rewrites. The fast diff can mark +// a few extra lines as changed. +const fastDiffLines = 10_000 + +// edits returns the line edits between oldText and newText, from newText +// to oldText: a Delete is a line of newText, and an Insert a line of +// oldText. Reversing makes textdiff pick the same diff as git when two +// diffs are equally short. Above fastDiffLines lines, edits uses the fast +// diff, so that no input makes it slow. +func edits(oldText, newText string) []textdiff.Edit[string] { + opts := []textdiff.Option{textdiff.IndentHeuristic()} + if strings.Count(oldText, "\n")+strings.Count(newText, "\n") > fastDiffLines { + opts = append(opts, zdiff.Fast()) + } + return textdiff.Edits(newText, oldText, opts...) +} + +// lineDiff returns a hunk that holds every line of oldText and newText, or +// nil if the texts are equal. In each run of changes, the deleted lines +// come before the added lines. A line whose ending changes counts as +// changed. +func lineDiff(oldText, newText string) *hunk { + h := &hunk{OldStart: 1, NewStart: 1} + var added []diffLine // the added lines of the current run + changed := false + for _, e := range edits(oldText, newText) { + switch e.Op { + case zdiff.Delete: + added = append(added, diffLine{Kind: KindAdded, Content: e.Line}) + changed = true + case zdiff.Insert: + h.Lines = append(h.Lines, diffLine{Kind: KindDeleted, Content: e.Line}) + changed = true + case zdiff.Match: + h.Lines = append(append(h.Lines, added...), diffLine{Kind: KindEqual, Content: e.Line}) + added = added[:0] + } + } + h.Lines = append(h.Lines, added...) + if !changed { + return nil + } + return h +} + +// CountLines returns the number of lines added and deleted by the change +// from oldText to newText. +func CountLines(oldText, newText string) (added, deleted int) { + for _, e := range edits(oldText, newText) { + switch e.Op { + case zdiff.Delete: + added++ + case zdiff.Insert: + deleted++ + } + } + return added, deleted +} diff --git a/internal/diffview/fold.go b/internal/diffview/fold.go index b3396fc..09bdf13 100644 --- a/internal/diffview/fold.go +++ b/internal/diffview/fold.go @@ -1,71 +1,96 @@ package diffview -import "github.com/aymanbagabas/go-udiff" - -// foldMargin is the number of equal lines that show beside a change. A -// longer run of equal lines folds into one row, as in herdr-reviewr. +// foldMargin is the number of equal lines shown before and after each +// change. const foldMargin = 3 -// Fold is a run of equal lines that the view hides. Before and After are -// the line numbers of its first line. Lines is the number of lines. Lines -// is 0 if the view hides no line. +// Fold is a run of equal lines that the diff hides. Old and New are the +// line numbers of its first line, and Lines is the number of lines. Lines +// is 0 if no lines are hidden. type Fold struct { - Before, After, Lines int + Old, New, Lines int } -// foldHunk splits h into the hunks that show. folds[i] is the run of lines -// that hides above hunks[i]. If the last run hides, the last hunk has no -// lines. A run of equal lines hides if it has more than one line and no -// line of it is within foldMargin of a change. A run does not hide if -// expanded returns true for it. -func foldHunk(h *udiff.Hunk, expanded func(Fold) bool) (hunks []*udiff.Hunk, folds []Fold) { +// keptLines reports, for each line of h, whether it is within foldMargin +// lines of a change. Such lines are never hidden. +func keptLines(h *hunk) []bool { n := len(h.Lines) keep := make([]bool, n) for i, l := range h.Lines { - if l.Kind != udiff.Equal { + if l.Kind != KindEqual { for j := max(i-foldMargin, 0); j <= min(i+foldMargin, n-1); j++ { keep[j] = true } } } - var cur *udiff.Hunk + return keep +} + +// hiddenFolds returns, in order, the runs of equal lines in h that are +// hidden. A run is hidden if it has more than one line, keep marks none of +// its lines, and expanded is nil or returns false for it. keep is +// keptLines(h). +func hiddenFolds(h *hunk, keep []bool, expanded func(Fold) bool) []Fold { + var hidden []Fold + oldNum, newNum := h.OldStart, h.NewStart + for i := 0; i < len(h.Lines); { + if keep[i] { + oldNum, newNum = h.Lines[i].next(oldNum, newNum) + i++ + continue + } + j := i + for j < len(h.Lines) && !keep[j] { + j++ + } + fold := Fold{Old: oldNum, New: newNum, Lines: j - i} + if fold.Lines > 1 && (expanded == nil || !expanded(fold)) { + hidden = append(hidden, fold) + } + // The run has only equal lines. + oldNum, newNum, i = oldNum+fold.Lines, newNum+fold.Lines, j + } + return hidden +} + +// foldHunk splits h into visible hunks around the hidden runs from +// hiddenFolds. folds[i] is the fold above hunks[i]. If the last run is +// hidden, the last hunk has no lines. keep is keptLines(h). +func foldHunk(h *hunk, keep []bool, hidden []Fold) (hunks []*hunk, folds []Fold) { + n := len(h.Lines) + var cur *hunk var above Fold - b, a := h.FromLine, h.ToLine + oldNum, newNum := h.OldStart, h.NewStart i := 0 + shown := 0 // lines before this index belong to a run that is shown for i < n { - if !keep[i] { + if !keep[i] && i >= shown { j := i for j < n && !keep[j] { j++ } - f := Fold{Before: b, After: a, Lines: j - i} - if f.Lines > 1 && (expanded == nil || !expanded(f)) { - above, cur = f, nil - b, a, i = b+f.Lines, a+f.Lines, j + fold := Fold{Old: oldNum, New: newNum, Lines: j - i} + if len(hidden) > 0 && hidden[0] == fold { + hidden = hidden[1:] + above, cur = fold, nil + oldNum, newNum, i = oldNum+fold.Lines, newNum+fold.Lines, j continue } - for k := i; k < j; k++ { - keep[k] = true // the run shows as a whole - } + shown = j // the whole run is shown } if cur == nil { - cur = &udiff.Hunk{FromLine: b, ToLine: a} + cur = &hunk{OldStart: oldNum, NewStart: newNum} hunks = append(hunks, cur) folds = append(folds, above) above = Fold{} } l := h.Lines[i] cur.Lines = append(cur.Lines, l) - if l.Kind != udiff.Insert { - b++ - } - if l.Kind != udiff.Delete { - a++ - } + oldNum, newNum = l.next(oldNum, newNum) i++ } if above.Lines > 0 { - hunks = append(hunks, &udiff.Hunk{FromLine: b, ToLine: a}) + hunks = append(hunks, &hunk{OldStart: oldNum, NewStart: newNum}) folds = append(folds, above) } return hunks, folds diff --git a/internal/diffview/highlight.go b/internal/diffview/highlight.go index fff826f..0d0f5a2 100644 --- a/internal/diffview/highlight.go +++ b/internal/diffview/highlight.go @@ -5,177 +5,563 @@ package diffview import ( "cmp" "image/color" - "io" + "slices" "strings" "sync" + "sync/atomic" + "time" "charm.land/lipgloss/v2" "github.com/alecthomas/chroma/v2" "github.com/alecthomas/chroma/v2/lexers" ) -// Cache keeps highlighted lines, so that chroma highlights each line once. -// Views that share a Cache reuse its lines and its last lexer. The zero -// value is an empty Cache. A Cache is not safe for concurrent use. +// Cache stores highlighted lines, the last lexer and the last diff for the +// views that share it. The zero value is an empty Cache. A Cache is not +// safe for concurrent use. type Cache struct { lines map[syntaxKey]string - size int // the bytes of the lines and their sources + size int // the total size in bytes of the lines and their sources - // lexer keeps the last lexer, because to select a lexer from the - // content is slow. + // lexer is the most recently used lexer. lexer struct { path, content string l chroma.Lexer } + + // diff is the most recent diff. gen counts the diffs computed, starting + // at 1. + diff struct { + oldText, newText string + hunks []*hunk + keep [][]bool // the keptLines of each hunk + gen int + } + folded foldedDiff // the most recent diff after folding } -// maxCacheSize limits the bytes of the lines and the sources in a Cache. -// If a put goes above this size, put empties the Cache first. -const maxCacheSize = 32 << 20 +// maxCacheBytes limits the total size of the lines and sources in a Cache. +// When a new line would exceed it, the Cache is emptied first. +const maxCacheBytes = 32 << 20 -// put keeps the highlighted line s for key k. -func (c *Cache) put(k syntaxKey, s string) { - // k.source is a part of the file string. A copy lets the cache keep - // the line without the whole file. - k.source = strings.Clone(k.source) - n := len(k.source) + len(s) - if c.lines == nil || c.size+n > maxCacheSize { +// put stores the highlighted line s under key. +func (c *Cache) put(key syntaxKey, s string) { + // key.source is a substring of the whole file. Copying it lets the + // cache keep the line without keeping the whole file in memory. + key.source = strings.Clone(key.source) + n := len(key.source) + len(s) + if c.lines == nil || c.size+n > maxCacheBytes { c.lines, c.size = make(map[syntaxKey]string), 0 } - c.lines[k] = s + c.lines[key] = s c.size += n } -// syntaxKey is the key of a [Cache]. It has the lexer, the source, and the -// background colour of the source. noColor is true for no background, because -// lipgloss.NoColor has the same RGBA value as black. +// syntaxKey is the key of a line in a [Cache]: the lexer, the source and +// the background colour. noColor is true when there is no background, +// because lipgloss.NoColor has the same RGBA value as black. type syntaxKey struct { lexer, source string noColor bool r, g, b, a uint32 } -// newSyntaxKey returns the key of source for the lexer named lexer, on -// bgColor. -func newSyntaxKey(lexer, source string, bgColor color.Color) syntaxKey { - k := syntaxKey{lexer: lexer, source: source} - if _, none := bgColor.(lipgloss.NoColor); bgColor == nil || none { - k.noColor = true - return k +// newSyntaxKey returns the key for source highlighted by the lexer named +// lexer on the background bg. +func newSyntaxKey(lexer, source string, bg color.Color) syntaxKey { + key := syntaxKey{lexer: lexer, source: source} + if _, none := bg.(lipgloss.NoColor); bg == nil || none { + key.noColor = true + return key } - k.r, k.g, k.b, k.a = bgColor.RGBA() - return k + key.r, key.g, key.b, key.a = bg.RGBA() + return key } -// highlightCode returns source with syntax colours on the background -// bgColor. The cache keeps the result. If chroma fails, highlightCode -// returns source as it is. -func (v *View) highlightCode(source string, bgColor color.Color) string { - // Chroma makes a lone CR a line break. Thus show each CR as a symbol - // first. - source = strings.ReplaceAll(source, "\r", "\u240d") +// Limits on syntax highlighting, because chroma's lexers take time that +// grows with the square of the length of a line, or worse. A line longer +// than maxHighlightLine bytes is drawn plain, with control characters +// escaped. A [Highlighter] lexes a file longer than maxHighlightFile bytes, or with +// a line longer than maxHighlightLine, one line at a time. +const ( + maxHighlightLine = 1500 + maxHighlightFile = 512 << 10 +) + +// Some lexers take far longer than the length of a line suggests on +// unusual text, such as a line of one repeated character, and the Changes +// tab highlights its lines while the screen is drawn. So highlighting a +// line on its own that is longer than budgetFreeLine bytes stops after +// lineBudget, and the line is drawn plain. Highlighting stops only between +// two tokens, so a line can take longer than lineBudget. A shorter line is +// always highlighted in full. +const ( + lineBudget = 5 * time.Millisecond + budgetFreeLine = 256 +) + +// highlightLine highlights source, a single line, with lexer, passing the +// text of each token through value. ok is false if the lexer fails or +// panics, or if source is longer than budgetFreeLine bytes and takes +// longer than lineBudget. +func highlightLine(lexer chroma.Lexer, source string, ts *tokenStyler, value func(string) string) (out string, ok bool) { + it, err := lexer.Tokenise(nil, source) + if err != nil { + return "", false + } + var deadline time.Time + if len(source) > budgetFreeLine { + deadline = time.Now().Add(lineBudget) + } + return renderTokens(it, ts, value, deadline) +} + +// slowLexers are the chroma lexers that are never used. On some short +// lines, Jungle and JSONata never stop, and the others take far longer +// than lineBudget for a single token, which lineBudget cannot cut short. Their files are drawn plain. +var slowLexers = []string{"Devicetree", "JSONata", "Jungle", "LilyPond", "Markless", "SYSTEMD"} + +// highlightCode returns source with syntax highlighting on the background +// bg, and stores the result in the cache. If source is longer than +// maxHighlightLine or chroma fails, highlightCode returns source escaped +// and without colours. +func (v *View) highlightCode(source string, bg color.Color) string { + // Chroma treats a lone CR as a line break. + source = strings.ReplaceAll(source, "\r", CRSymbol) + if len(source) > maxHighlightLine { + return Escape(source) + } lexer := v.chromaLexer() - key := newSyntaxKey(lexer.Config().Name, source, bgColor) + key := newSyntaxKey(lexer.Config().Name, source, bg) if cached, ok := v.cache.lines[key]; ok { return cached } - it, err := lexer.Tokenise(nil, source) - if err != nil { - return source - } - var b strings.Builder - f := ANSIFormatter(bgColor, processChromaValue) - if err := f.Format(&b, nil, it); err != nil { - return source + out, ok := highlightLine(lexer, source, newTokenStyler(bg), escapeChromaValue) + if !ok { + // Keep the plain line too, so that a line that was too slow once + // does not get its colours on a later draw and flicker. + out = Escape(source) } - out := b.String() v.cache.put(key, out) return out } -// processChromaValue escapes the text of a token for the terminal. A code -// line has no line break. Thus processChromaValue removes the trailing line -// breaks. -func processChromaValue(value string) string { +// renderTokens renders the tokens of it with ts, passing the text of each +// token through value first. Like [chroma.Coalesce], it joins adjacent +// tokens of the same type. ok is false if the lexer panics or the tokens +// are not all read by deadline, unless deadline is the zero time. it must +// come from a lexer that is not coalesced, because a coalesced lexer can +// take a long time to return a token, or never return one. +func renderTokens(it chroma.Iterator, ts *tokenStyler, value func(string) string, deadline time.Time) (out string, ok bool) { + defer func() { + if recover() != nil { + ok = false + } + }() + var b, run strings.Builder // run holds the text of the tokens of type t + var t chroma.TokenType + for token := it(); token != chroma.EOF; token = it() { + if !deadline.IsZero() && time.Now().After(deadline) { + return "", false + } + if token.Value == "" { + continue + } + if token.Type != t && run.Len() > 0 { + b.WriteString(ts.render(t, value(run.String()))) + run.Reset() + } + t = token.Type + run.WriteString(token.Value) + } + if run.Len() > 0 { + b.WriteString(ts.render(t, value(run.String()))) + } + return b.String(), true +} + +// escapeChromaValue escapes the text of a token for the terminal and +// removes its trailing line breaks. +func escapeChromaValue(value string) string { return Escape(strings.TrimRight(value, "\n")) } -// chromaLexer returns the lexer of the old file, or of the new file if -// the old file is empty, and keeps it in the cache. +// chromaLexer returns the lexer for the old file, or for the new file if +// the old file is empty, and stores it in the cache. func (v *View) chromaLexer() chroma.Lexer { lx := &v.cache.lexer - content := cmp.Or(v.before, v.after) + content := cmp.Or(v.oldText, v.newText) if lx.l == nil || lx.path != v.path || lx.content != content { lx.path, lx.content = v.path, content - lx.l = Lexer(lx.path, lx.content) + lx.l = fileLexer(lx.path, lx.content) } return lx.l } -// Lexer returns the coalesced lexer for the file at path. If no lexer -// matches the name, it selects one from the content. If no lexer matches -// the content, it returns the fallback lexer. -func Lexer(path, content string) chroma.Lexer { - // matchLexer caches the lexer, and the lexer is already coalesced. - if l := matchLexer(path); l != nil { - return l +// maxAnalyseBytes limits the content that fileLexer looks at, because the +// time that chroma takes to pick a lexer grows with the content. +const maxAnalyseBytes = 64 << 10 + +// fileLexer returns the chroma lexer for the file at path. If no lexer +// matches the file name, it picks one based on the start of content. If +// none matches the content either, or the lexer is one of slowLexers, it +// returns the fallback lexer. The lexer is not coalesced. +func fileLexer(path, content string) chroma.Lexer { + lexer := matchLexer(path) + if lexer == nil { + lexer = lexers.Analyse(content[:min(len(content), maxAnalyseBytes)]) } - l := lexers.Analyse(content) - if l == nil { - l = lexers.Fallback + if lexer == nil || slices.Contains(slowLexers, lexer.Config().Name) { + lexer = lexers.Fallback } - return chroma.Coalesce(l) + return lexer } -// lexerCache keeps the lexer of each file name, or nil if none matches. To -// match a name is slow, because lexers.Match tests the patterns of each -// lexer. The mutex makes the cache safe for more than one goroutine. +// lexerCache maps each file name to its lexer, or to nil if none matches. +// lexerCacheMu guards it. var ( lexerCacheMu sync.RWMutex lexerCache = map[string]chroma.Lexer{} ) -// matchLexer returns the coalesced chroma lexer for the file name, or nil if -// no lexer matches. The lexer is safe to use again. +// matchLexer returns the chroma lexer for fileName, or nil if no lexer +// matches. It stores the result in lexerCache. func matchLexer(fileName string) chroma.Lexer { lexerCacheMu.RLock() - l, ok := lexerCache[fileName] + lexer, ok := lexerCache[fileName] lexerCacheMu.RUnlock() if ok { - return l - } - if l = lexers.Match(fileName); l != nil { - l = chroma.Coalesce(l) + return lexer } + lexer = lexers.Match(fileName) lexerCacheMu.Lock() - lexerCache[fileName] = l + lexerCache[fileName] = lexer lexerCacheMu.Unlock() - return l + return lexer +} + +// tokenStyler colours chroma tokens with the terminal's ANSI palette on a +// background, ignoring the chroma style. It renders each style once and +// reuses its escape codes around the text of each token. A tokenStyler is +// not safe for concurrent use. +type tokenStyler struct { + plain lipgloss.Style + parts map[chroma.TokenType][2]string // the escape codes before and after the text +} + +// newTokenStyler returns a tokenStyler for the background bg. +func newTokenStyler(bg color.Color) *tokenStyler { + return &tokenStyler{ + plain: lipgloss.NewStyle().Background(bg), + parts: map[chroma.TokenType][2]string{}, + } +} + +// style returns the style for a token of type t. +func (ts *tokenStyler) style(t chroma.TokenType) lipgloss.Style { + if c, italic, ok := ansiFor(t); ok { + return ts.plain.Foreground(lipgloss.Color(c)).Italic(italic) + } + return ts.plain +} + +// render returns the same result as renderLines(ts.style(t), value), but +// faster. +func (ts *tokenStyler) render(t chroma.TokenType, value string) string { + if strings.ContainsAny(value, "\t\r") { + return renderLines(ts.style(t), value) // the style changes tabs and CRs + } + p, ok := ts.parts[t] + if !ok { + // Escape codes contain only digits and punctuation, so they cannot + // contain X. + before, after, _ := strings.Cut(ts.style(t).Render("X"), "X") + p = [2]string{before, after} + ts.parts[t] = p + } + if p == [2]string{} { + return value + } + // Style each line on its own, so that a line shown alone keeps its + // colour. + return p[0] + strings.ReplaceAll(value, "\n", p[1]+"\n"+p[0]) + p[1] +} + +// Highlighter highlights a whole source with the same colours as a +// [View], so tokens that span several lines get the correct colour. A +// background goroutine highlights the source until it reaches the end or +// [Highlighter.Stop] is called. A source longer than maxHighlightFile, or +// with a line longer than maxHighlightLine, is highlighted one line at a +// time instead, and its long lines are plain. Lexing a source takes at +// most lexBudget in all, and the lines that it has not reached by then +// are plain. [Highlighter.Line] waits a little for its line, and returns +// the line plain if it is not ready by then. While [Highlighter.Busy] +// reports true, such lines can get their colours, so the screen should be +// drawn again. The methods are safe for concurrent use. +type Highlighter struct { + mu sync.Mutex + grew chan struct{} // closed, and replaced, when lexing adds lines or ends + lines []string // the lines highlighted so far + done bool // lines holds every line + stop atomic.Bool // Stop has asked the background goroutine to end + running bool // the background goroutine is running + // Line has given up waiting for line lateUntil-1, so it does not wait + // again until lexing gets past that line. + lateUntil int + + // plain holds the lines of the source, for a line that is not ready + // and for lexing line by line. + plain []string + fallback func(string) string + + // The lexer state, used only by the background goroutine. + lexer chroma.Lexer // the lexer for each line, or nil to lex the whole source + it chroma.Iterator // the tokens of the whole source, not coalesced + ts *tokenStyler + process func(string) string + cur strings.Builder // the start of the line being highlighted + run strings.Builder // the text of the tokens of type runType not yet rendered + runType chroma.TokenType + src string // the source, used by fallback after a panic + spent time.Duration // the time spent lexing so far } -// ANSIFormatter returns a chroma formatter that colours the tokens with the -// ANSI palette colours, on the background bgColor. It ignores the chroma -// style. It calls processValue on the text of each token first. -func ANSIFormatter(bgColor color.Color, processValue func(string) string) chroma.Formatter { - format := func(w io.Writer, _ *chroma.Style, it chroma.Iterator) error { - plain := lipgloss.NewStyle().Background(bgColor) - for token := it(); token != chroma.EOF; token = it() { - value := processValue(token.Value) - s := plain - if c, italic, ok := ansiFor(token.Type); ok { - s = plain.Foreground(lipgloss.Color(c)).Italic(italic) - } - if _, err := io.WriteString(w, renderLines(s, value)); err != nil { - return err - } +// lexBatch is the number of lines that lexAll adds at a time. +const lexBatch = 256 + +// lexBudget limits the time that a Highlighter spends lexing its source, +// because some lexers take far longer on some text than its size +// suggests. A typical file of maxHighlightFile bytes takes far less. +const lexBudget = 2 * time.Second + +// lineWait is how long Line waits for the background goroutine to reach +// its line. It is short, because Line runs while the screen is drawn and +// so holds up the next key press. The first lexBatch lines of a typical +// file are ready well within it. +const lineWait = 25 * time.Millisecond + +// NewHighlighter returns a Highlighter for src, the content of the file at +// path, on the background bg, and starts its background goroutine. It +// passes the text of each token through processValue. If chroma cannot +// lex src, the lines are those of fallback(src). If the lexer panics, the +// lines from the panic onwards are those of fallback(src). A line that is +// not highlighted is fallback(line). +func NewHighlighter(path, src string, bg color.Color, processValue, fallback func(string) string) *Highlighter { + h := &Highlighter{grew: make(chan struct{}), plain: strings.Split(src, "\n"), fallback: fallback} + h.ts, h.process = newTokenStyler(bg), processValue + lexer := fileLexer(path, src) + if len(src) > maxHighlightFile || slices.ContainsFunc(h.plain, func(l string) bool { return len(l) > maxHighlightLine }) { + h.lexer = lexer + } else { + // The whole source is lexed in the background, so a slow token + // does not hold up the screen. The lexer is not coalesced, so that + // Stop and lexBudget take effect between any two tokens. + it, err := lexer.Tokenise(nil, src) + if err != nil { + h.lines, h.done = strings.Split(fallback(src), "\n"), true + return h } - return nil + h.it, h.src = it, src } - return chroma.FormatterFunc(format) + h.start() + return h +} + +// start starts the background goroutine. h.mu must be held, or h must not +// yet be shared. +func (h *Highlighter) start() { + h.running = true + h.stop.Store(false) + go h.lexAll(len(h.lines)) } -// ansiFor returns the ANSI palette colour of a token type. If ok is false, -// the token has the default foreground of the terminal. +// lexAll highlights the source from line n until it reaches the end or +// Stop is called. It runs in its own goroutine. +func (h *Highlighter) lexAll(n int) { + for { + lines, eof := h.lex(n, lexBatch) + n += len(lines) + h.mu.Lock() + h.lines = append(h.lines, lines...) + h.done = eof + stop := eof || h.stop.Load() + if stop { + h.running = false + } + close(h.grew) + h.grew = make(chan struct{}) + h.mu.Unlock() + if stop { + return + } + } +} + +// lex highlights up to n more lines and returns them. done is the number +// of lines already highlighted. eof is true if lex reached the end of the +// source, and then the last line returned holds the rest of the source. +// lex returns early, with the lines so far, if Stop is called. Once lexing +// has taken lexBudget, the remaining lines are plain. +func (h *Highlighter) lex(done, n int) (lines []string, eof bool) { + start := time.Now() + defer func() { h.spent += time.Since(start) }() + overBudget := func() bool { return h.spent+time.Since(start) > lexBudget } + if h.lexer != nil { + return h.lexLines(done, n, overBudget) + } + return h.lexTokens(done, n, overBudget) +} + +// lexLines is lex for a source that is highlighted one line at a time. +func (h *Highlighter) lexLines(done, n int, overBudget func() bool) (lines []string, eof bool) { + end := min(done+n, len(h.plain)) + for _, l := range h.plain[done:end] { + switch { + case h.stop.Load(): + return lines, false + case overBudget(): + lines = append(lines, h.fallback(l)) + default: + lines = append(lines, h.lexLine(l)) + } + } + return lines, end == len(h.plain) +} + +// lexTokens is lex for a source that is highlighted as a whole. It reads +// tokens until it has n more lines. +func (h *Highlighter) lexTokens(done, n int, overBudget func() bool) (lines []string, eof bool) { + for len(lines) < n { + if h.stop.Load() { + return lines, false + } + token, ok := h.next() + if !ok || overBudget() { + return append(lines, h.plainFrom(done+len(lines))...), true + } + if token.Value == "" && token != chroma.EOF { + continue + } + if h.run.Len() > 0 && (token.Type != h.runType || token == chroma.EOF) { + // Like chroma.Coalesce, render adjacent tokens of the same + // type together. + lines = h.addRun(lines) + } + if token == chroma.EOF { + lines = append(lines, h.cur.String()) + h.it, h.cur, h.src = nil, strings.Builder{}, "" + return lines, true + } + h.runType = token.Type + h.run.WriteString(token.Value) + } + return lines, false +} + +// addRun renders the tokens in h.run, appends the lines that they end to +// lines, and keeps the start of the next line in h.cur. +func (h *Highlighter) addRun(lines []string) []string { + s := h.ts.render(h.runType, h.process(h.run.String())) + h.run.Reset() + for { + before, after, found := strings.Cut(s, "\n") + h.cur.WriteString(before) + if !found { + return lines + } + lines = append(lines, h.cur.String()) + h.cur.Reset() + s = after + } +} + +// plainFrom returns the lines of the source from the 0-based line i on, +// as fallback gives them, and ends lexing. +func (h *Highlighter) plainFrom(i int) []string { + all := strings.Split(h.fallback(h.src), "\n") + h.it, h.cur, h.run, h.src = nil, strings.Builder{}, strings.Builder{}, "" + return all[min(i, len(all)):] +} + +// lexLine highlights the source line l on its own. It returns fallback(l) +// if l is longer than maxHighlightLine or the lexer fails. +func (h *Highlighter) lexLine(l string) string { + if len(l) <= maxHighlightLine { + value := func(v string) string { return h.process(strings.TrimRight(v, "\n")) } + if out, ok := highlightLine(h.lexer, l, h.ts, value); ok { + return out + } + } + return h.fallback(l) +} + +// next returns the next token. If the lexer panics, next recovers and +// returns ok false. +func (h *Highlighter) next() (token chroma.Token, ok bool) { + defer func() { + if recover() != nil { + ok = false + } + }() + return h.it(), true +} + +// Line returns the 0-based line i of the highlighted output, as +// strings.Split would split the whole output. ok is false if i is past the +// last line. If the background goroutine has not reached the line within +// lineWait, Line returns it plain, with final false, and does not wait +// again until the goroutine has passed it. A later call returns the line +// highlighted. After Stop, Line starts the goroutine again. +func (h *Highlighter) Line(i int) (line string, ok, final bool) { + h.mu.Lock() + defer h.mu.Unlock() + if len(h.lines) <= i && !h.done && !h.running { + h.start() + } + var timeout <-chan time.Time + for len(h.lines) <= i && !h.done && len(h.lines) >= h.lateUntil { + if timeout == nil { + t := time.NewTimer(lineWait) + defer t.Stop() + timeout = t.C + } + grew := h.grew + h.mu.Unlock() + select { + case <-grew: + h.mu.Lock() + case <-timeout: + h.mu.Lock() + h.lateUntil = i + 1 + } + } + switch { + case i < len(h.lines): + return h.lines[i], true, true + case h.done: + return "", false, true + } + h.lateUntil = max(h.lateUntil, i+1) + if i < len(h.plain) { + return h.fallback(h.plain[i]), true, false + } + return "", false, false +} + +// Busy reports whether the background goroutine is still highlighting, +// so that lines that Line returned plain can get their colours. +func (h *Highlighter) Busy() bool { + h.mu.Lock() + defer h.mu.Unlock() + return h.running && !h.done +} + +// Stop ends the background goroutine after its current token or line. A +// later call to Line starts it again. +func (h *Highlighter) Stop() { h.stop.Store(true) } + +// ansiFor returns the ANSI palette colour for a token type. If ok is +// false, the token uses the terminal's default foreground. func ansiFor(t chroma.TokenType) (c string, italic, ok bool) { switch { case t.InCategory(chroma.Comment): @@ -196,18 +582,10 @@ func ansiFor(t chroma.TokenType) (c string, italic, ok bool) { return "", false, false } -// renderLines styles each line of value alone, and joins them with plain -// newlines. A token can contain newlines. For example, a chroma -// CommentSingle ends with one. Lip Gloss pads all lines of a multi-line -// string to one width. Without renderLines, this padding adds spaces to -// the line after a comment. +// renderLines styles each line of value separately and joins them with +// plain newlines. This avoids the padding that Lip Gloss adds to a +// multi-line string, for example a chroma CommentSingle token, which ends +// with a newline. func renderLines(s lipgloss.Style, value string) string { - if !strings.Contains(value, "\n") { - return s.Render(value) - } - lines := strings.Split(value, "\n") - for i, line := range lines { - lines[i] = s.Render(line) - } - return strings.Join(lines, "\n") + return EachLine(value, func(l string) string { return s.Render(l) }) } diff --git a/internal/diffview/render.go b/internal/diffview/render.go index 1f8e247..0ee1424 100644 --- a/internal/diffview/render.go +++ b/internal/diffview/render.go @@ -5,173 +5,296 @@ package diffview import ( "fmt" "slices" + "strconv" "strings" + "unicode/utf8" "charm.land/lipgloss/v2" - "github.com/aymanbagabas/go-udiff" "github.com/charmbracelet/x/ansi" ) const ( - leadingSymbolsSize = 2 // the width of a symbol, such as symInsert - lineNumPadding = 1 // the space on each side of a line number - ellipsis = "…" // shows where a line is cut + leadingMarksWidth = 2 // the width of a mark, such as markAdded + lineNumPadding = 1 // the spaces on each side of a line number + ellipsis = "…" // marks where a line is cut off ) -// These symbols are at the start of the code of a line. A bar in the colour -// of the line marks each changed line. [View.Signs] shows + and - in place -// of the bar. +// The marks shown before the code on each line. A changed line has a bar +// in its colour, or + or - with [View.Signs]. const ( - symNone = " " // an equal line, a missing line, or a continued line - symBar = "▌ " - symInsert = "+ " - symDelete = "- " + markNone = " " // an equal line, a missing line, or a continued line + markBar = "▎ " + markAdded = "+ " + markDeleted = "- " ) -// RowKind is the type of a rendered row. -type RowKind int +// Kind is the kind of a rendered row. +type Kind int -// The values of RowKind. +// The kinds of row. const ( - RowHunk RowKind = iota // a hunk header - RowEqual // a line that is the same in the two versions - RowInsert // an inserted line - RowDelete // a deleted line - RowChange // a deleted line beside an inserted line (split) + KindHunk Kind = iota // a hunk header, with no source line + KindEqual // a line that is the same on both sides + KindAdded // a line that exists only on the new side + KindDeleted // a line that exists only on the old side + KindChanged // a deleted line next to an added line, in split view ) -// Row tells which source lines one rendered line shows. Before and After are -// line numbers from 1, or 0 if the row has no line on that side. Continued -// is true for the second and the next screen lines of a wrapped line. -// For a hunk header, Fold is the run of lines that hides above the header. +// Side identifies one version of a file. +type Side int + +// The two sides of a file. +const ( + SideOld Side = iota // the version before the change + SideNew // the version after the change +) + +// Row describes the source lines that one rendered line shows. Old and New +// are 1-based line numbers, or 0 if the row has no line on that side. +// Continued is true if the row continues the line above it because of +// wrapping. For a hunk header, Fold is the run of hidden equal lines above +// the header. type Row struct { - Kind RowKind - Before, After int - Continued bool - Fold Fold + Kind Kind + Old, New int + Continued bool + Fold Fold } -// renderUnified renders the unified layout. Each line has the old and the -// new line numbers, then the code. -func (v *View) renderUnified() string { - var b strings.Builder - nums := func(ls lineStyle, before, after any) string { - return lineNum(ls, before, v.beforeNumDigits) + - lineNum(ls, after, v.afterNumDigits) +// Line returns the row's line number on the given side. +func (r Row) Line(side Side) int { + if side == SideOld { + return r.Old } + return r.New +} + +// item is one row of the diff before it is rendered to screen lines: a +// hunk header, a line in the unified layout, or a pair of lines in the +// split layout. +type item struct { + row Row + header int // the hunk index for a header, or -1 + line *diffLine // the line, in the unified layout + pair splitLine // the pair of lines, in the split layout + oldNum, newNum int // the line numbers of the line or pair +} + +// items returns the items of the layout in order: each hunk's header, +// followed by its lines. +func (v *View) items() []item { + n := len(v.hunks) // one header per hunk, and at most one item per line + for _, h := range v.hunks { + n += len(h.Lines) + } + out := make([]item, 0, n) for i, h := range v.hunks { - v.writeHeader(&b, i, v.unifiedHeader(i)) - oldN, newN := h.FromLine, h.ToLine - for _, l := range h.Lines { - ls, sym := v.kindStyle(l.Kind) - var r Row - var num string + out = append(out, item{row: Row{Kind: KindHunk, Fold: v.folds[i]}, header: i}) + oldNum, newNum := h.OldStart, h.NewStart + if v.split { + for _, l := range hunkToSplit(h) { + it := item{row: Row{Kind: splitKind(l)}, header: -1, pair: l, oldNum: oldNum, newNum: newNum} + if l.old != nil { + it.row.Old = oldNum + oldNum++ + } + if l.new != nil { + it.row.New = newNum + newNum++ + } + out = append(out, it) + } + continue + } + for k := range h.Lines { + l := &h.Lines[k] + it := item{header: -1, line: l, oldNum: oldNum, newNum: newNum} switch l.Kind { - case udiff.Equal: - r = Row{Kind: RowEqual, Before: oldN, After: newN} - num = nums(ls, oldN, newN) - oldN++ - newN++ - case udiff.Insert: - r = Row{Kind: RowInsert, After: newN} - num = nums(ls, " ", newN) - newN++ - case udiff.Delete: - r = Row{Kind: RowDelete, Before: oldN} - num = nums(ls, oldN, " ") - oldN++ + case KindEqual: + it.row = Row{Kind: KindEqual, Old: oldNum, New: newNum} + oldNum++ + newNum++ + case KindAdded: + it.row = Row{Kind: KindAdded, New: newNum} + newNum++ + case KindDeleted: + it.row = Row{Kind: KindDeleted, Old: oldNum} + oldNum++ } - blank := nums(ls, " ", " ") - v.writeRow(&b, r, v.codeLines(ls, num, blank, sym, l.Content, v.codeWidth)) + out = append(out, it) } } - return b.String() + return out +} + +// itemLines renders it as screen lines. +func (v *View) itemLines(it *item) []string { + switch { + case it.header >= 0 && v.split: + return []string{v.splitHeader(it.header)} + case it.header >= 0: + return []string{v.unifiedHeader(it.header)} + case v.split: + return v.splitLines(it) + } + return v.unifiedLines(it) +} + +// unifiedLines renders the line of it in the unified layout. Each screen +// line has the old and new line numbers, followed by the code. +func (v *View) unifiedLines(it *item) []string { + nums := func(ls lineStyle, oldNum, newNum string) string { + return lineNum(ls, oldNum, v.oldNumDigits) + + lineNum(ls, newNum, v.newNumDigits) + } + l := it.line + ls, mark := v.kindStyle(l.Kind) + var num string + switch l.Kind { + case KindEqual: + num = nums(ls, strconv.Itoa(it.oldNum), strconv.Itoa(it.newNum)) + case KindAdded: + num = nums(ls, " ", strconv.Itoa(it.newNum)) + case KindDeleted: + num = nums(ls, strconv.Itoa(it.oldNum), " ") + } + blank := nums(ls, " ", " ") + return v.codeLines(ls, num, blank, mark, l.Content, v.codeWidth) +} + +// splitLines renders the pair of lines of it in the split layout, with the +// old line on the left and the new line on the right. +func (v *View) splitLines(it *item) []string { + l := it.pair + left, leftFill := v.splitSide(l.old, it.oldNum, v.oldNumDigits, v.codeWidth) + right, rightFill := v.splitSide(l.new, it.newNum, v.newNumDigits, v.newWidth()) + n := max(len(left), len(right)) + left, right = fillTo(left, n, leftFill), fillTo(right, n, rightFill) + lines := make([]string, n) + for k := range n { + lines[k] = left[k] + right[k] + } + return lines +} + +// newWidth returns the code width of the new side in the split layout. +func (v *View) newWidth() int { return v.codeWidth + btoi(v.extraColOnNew) } + +// itemHeight returns the number of screen lines that itemLines renders +// for it. It does not render lines that fit in the width. +func (v *View) itemHeight(it *item) int { + switch { + case it.header >= 0 || !v.wrap: + return 1 + case v.split: + return max(v.partCount(it.pair.old, v.codeWidth), v.partCount(it.pair.new, v.newWidth())) + } + return v.partCount(it.line, v.codeWidth) +} + +// partCount returns the number of screen lines that line l needs when +// wrapped to width cells. A nil l needs one line. +func (v *View) partCount(l *diffLine, width int) int { + if l == nil { + return 1 + } + content := strings.TrimSuffix(l.Content, "\n") + if Fits(content, width) { + return 1 + } + // codeLines breaks the line where WrapParts breaks its plain text, so + // the count needs no highlighting. + return len(WrapParts(plainCode(content), width)) +} + +// plainCode returns the code line content escaped and without colours, as +// highlightCode returns it when it cannot highlight. +func plainCode(content string) string { return Escape(strings.ReplaceAll(content, "\r", CRSymbol)) } + +// Fits reports whether line s, after escaping, fits in width cells both +// with and without colours. It returns false if any grapheme cluster has +// more than one rune, because colour codes between the runes can change +// its width. +func Fits(s string, width int) bool { + width = max(width, 1) + if len(s) <= width && isPrintableASCII(s) { + return true + } + s, w := Escape(s), 0 + for s != "" { + c, cw := ansi.FirstGraphemeCluster(s, ansi.GraphemeWidth) + if w += cw; w > width || utf8.RuneCountInString(c) > 1 { + return false + } + s = s[len(c):] + } + return true +} + +// isPrintableASCII reports whether s contains only printable ASCII +// characters. Each byte of such a string is one cell wide, and [Escape] +// leaves it unchanged. +func isPrintableASCII(s string) bool { + for i := range len(s) { + if s[i] < ' ' || s[i] > '~' { + return false + } + } + return true } // unifiedHeader renders the divider line of hunk i in the unified layout. func (v *View) unifiedHeader(i int) string { div := v.style.dividerLine header := ansi.Truncate(v.headerText(i), v.fullCodeWidth, ellipsis) - return div.lineNumber.Render(pad(ellipsis, v.beforeNumDigits)) + - div.lineNumber.Render(pad(ellipsis, v.afterNumDigits)) + + return div.num.Render(pad(ellipsis, v.oldNumDigits)) + + div.num.Render(pad(ellipsis, v.newNumDigits)) + div.code.Width(v.fullCodeWidth).Render(header) } -// renderSplit renders the split layout. The old lines are on the left and -// the new lines are on the right. -func (v *View) renderSplit() string { - var b strings.Builder - afterWidth := v.codeWidth + btoi(v.extraColOnAfter) - for i, h := range v.hunks { - v.writeHeader(&b, i, v.splitHeader(i)) - oldN, newN := h.FromLine, h.ToLine - for _, l := range hunkToSplit(h) { - r := Row{Kind: splitKind(l)} - left, leftFill := v.splitSide(l.before, oldN, v.beforeNumDigits, v.codeWidth) - right, rightFill := v.splitSide(l.after, newN, v.afterNumDigits, afterWidth) - if l.before != nil { - r.Before = oldN - oldN++ - } - if l.after != nil { - r.After = newN - newN++ - } - n := max(len(left), len(right)) - left, right = fillTo(left, n, leftFill), fillTo(right, n, rightFill) - lines := make([]string, n) - for k := range n { - lines[k] = left[k] + right[k] - } - v.writeRow(&b, r, lines) - } - } - return b.String() -} - // splitHeader renders the divider line of hunk i in the split layout. The -// header starts on the left side and can go on across the right side. +// header starts on the left side and can extend across the right side. func (v *View) splitHeader(i int) string { div := v.style.dividerLine - // The header covers the two code columns and the new line numbers. - width := 2*v.fullCodeWidth + btoi(v.extraColOnAfter) + v.afterNumDigits + lineNumPadding*2 - return div.lineNumber.Render(pad(ellipsis, v.beforeNumDigits)) + + // The header spans both code columns and the new line numbers. + width := 2*v.fullCodeWidth + btoi(v.extraColOnNew) + v.newNumDigits + lineNumPadding*2 + return div.num.Render(pad(ellipsis, v.oldNumDigits)) + div.code.Width(width).Render(ansi.Truncate(v.headerText(i), width, ellipsis)) } -// splitSide renders line l on one side of the split layout, one string for -// each screen line. l is nil if that side has no line. n is the line number -// of l. The fill function renders an empty screen line. Use fill when the -// other side has more screen lines. -func (v *View) splitSide(l *udiff.Line, n, digits, width int) (lines []string, fill func() string) { - ls, sym, content := v.style.missingLine, symNone, "" +// splitSide renders line l, with line number n, on one side of the split +// layout, returning one string per screen line. A nil l means the line is +// missing on this side. fill renders an empty screen line, used when the +// other side has more lines. +func (v *View) splitSide(l *diffLine, n, digits, width int) (lines []string, fill func() string) { + ls, mark, content := v.style.missingLine, markNone, "" if l != nil { - ls, sym = v.kindStyle(l.Kind) + ls, mark = v.kindStyle(l.Kind) content = l.Content } noNum := lineNum(ls, " ", digits) num := noNum if l != nil { - num = lineNum(ls, n, digits) + num = lineNum(ls, strconv.Itoa(n), digits) } - fill = func() string { return v.codeLines(ls, noNum, "", symNone, "", width)[0] } - return v.codeLines(ls, num, noNum, sym, content, width), fill + fill = func() string { return v.codeLines(ls, noNum, "", markNone, "", width)[0] } + return v.codeLines(ls, num, noNum, mark, content, width), fill } -// splitKind returns the kind of the row of l in the split layout. -func splitKind(l splitLine) RowKind { +// splitKind returns the row kind of l in the split layout. +func splitKind(l splitLine) Kind { switch { - case l.before != nil && l.after != nil && l.before.Kind == udiff.Equal: - return RowEqual - case l.before != nil && l.after != nil: - return RowChange - case l.before != nil: - return RowDelete + case l.old != nil && l.new != nil && l.old.Kind == KindEqual: + return KindEqual + case l.old != nil && l.new != nil: + return KindChanged + case l.old != nil: + return KindDeleted } - return RowInsert + return KindAdded } -// fillTo adds the line that fill renders to lines, until lines has n lines. +// fillTo appends lines rendered by fill until lines has n lines. func fillTo(lines []string, n int, fill func() string) []string { if len(lines) >= n { return lines @@ -179,87 +302,172 @@ func fillTo(lines []string, n int, fill func() string) []string { return append(lines, slices.Repeat([]string{fill()}, n-len(lines))...) } -// kindStyle returns the style and the symbol of a line of kind k. -func (v *View) kindStyle(k udiff.OpKind) (lineStyle, string) { +// kindStyle returns the style and mark for a line of kind k. +func (v *View) kindStyle(k Kind) (lineStyle, string) { switch k { - case udiff.Insert: - return v.style.insertLine, v.mark(symInsert) - case udiff.Delete: - return v.style.deleteLine, v.mark(symDelete) + case KindAdded: + return v.style.addedLine, v.mark(markAdded) + case KindDeleted: + return v.style.deletedLine, v.mark(markDeleted) } - return v.style.equalLine, symNone + return v.style.equalLine, markNone } -// mark returns sign if the View shows signs, else the bar. +// mark returns sign if v shows signs, and the bar otherwise. func (v *View) mark(sign string) string { if v.signs { return sign } - return symBar -} - -// writeHeader writes header, the divider line of hunk i, to b, with its -// row. -func (v *View) writeHeader(b *strings.Builder, i int, header string) { - v.writeRow(b, Row{Kind: RowHunk, Fold: v.folds[i]}, []string{header}) -} - -// writeRow writes the screen lines of one row to b. It adds r to the rows -// once for each screen line. -func (v *View) writeRow(b *strings.Builder, r Row, lines []string) { - for k, l := range lines { - b.WriteString(l) - b.WriteByte('\n') - r.Continued = k > 0 - v.rows = append(v.rows, r) - } + return markBar } -// lineNum renders the line number n in a column of digits cells. -func lineNum(ls lineStyle, n any, digits int) string { - return ls.lineNumber.Render(pad(n, digits)) +// lineNum renders the line number n in a column that is digits cells wide. +func lineNum(ls lineStyle, n string, digits int) string { + return ls.num.Render(pad(n, digits)) } -// codeLines renders one source line with nums, sym, and the code in width -// cells. It cuts a long line. With wrap, the line continues on more screen -// lines, which show blank in place of nums and no sym. -func (v *View) codeLines(ls lineStyle, nums, blank, sym, content string, width int) []string { - code := v.highlightCode(strings.TrimSuffix(content, "\n"), ls.code.GetBackground()) +// codeLines renders one source line as nums, then mark, then the code in +// width cells. Without wrapping, it cuts off a long line. With wrapping, +// the line continues on more screen lines, which show blank instead of +// nums and no mark. +func (v *View) codeLines(ls lineStyle, nums, blank, mark, content string, width int) []string { + content = strings.TrimSuffix(content, "\n") + code := v.highlightCode(content, ls.code.GetBackground()) parts := []string{code} if v.wrap { - // Wrap can keep a leading space on a full line, so cut again. + if !Fits(content, width) { + parts = WrapLine(plainCode(content), code, width) + } w := max(width, 1) - parts = strings.Split(ansi.Hardwrap(lipgloss.Wrap(code, w, ""), w, true), "\n") for i, p := range parts { - // A wide character can be wider than w. + // A single wide character can be wider than w. parts[i] = ansi.Truncate(p, w, "") } } else { - code = CutLeft(code, v.xOffset) - parts[0] = ansi.Truncate(code, width, ellipsis) - if v.xOffset > 0 && strings.TrimSpace(parts[0]) != "" { - sym = strings.TrimSuffix(sym, " ") + ellipsis + parts[0] = CutLeft(code, v.scrollX) + if v.width > 0 { + parts[0] = ansi.Truncate(parts[0], width, ellipsis) + } + if v.scrollX > 0 && strings.TrimSpace(parts[0]) != "" { + mark = strings.TrimSuffix(mark, " ") + ellipsis } } - full := lipgloss.NewStyle().MaxWidth(width + leadingSymbolsSize) + full := lipgloss.NewStyle().MaxWidth(width + leadingMarksWidth) lines := make([]string, len(parts)) for i, p := range parts { if i > 0 { - nums, sym = blank, symNone + nums, mark = blank, markNone + } + if v.width <= 0 && !v.wrap { + // With no width limit nothing is cut. Colours can make a + // cluster of runes measure wider than its plain text, so the + // line is padded, not cut, to width. + pad := strings.Repeat(" ", max(width-ansi.StringWidth(p), 0)) + lines[i] = nums + ls.mark.Render(mark) + ls.code.Render(p+pad) + continue } - lines[i] = nums + full.Render(ls.symbol.Render(sym)+ls.code.Width(width).Render(p)) + lines[i] = nums + full.Render(ls.mark.Render(mark)+ls.code.Width(width).Render(p)) } return lines } -// headerText returns the text of the header of hunk i, for example -// " ⋯ 12 unmodified lines @@ -15,7 +15,8 @@ ". The text has the fold -// above the hunk if lines hide. It has the hunk header if the hunk has -// lines. The text ends with a space, as the hunk header does. +// WrapLine wraps a line to width cells and returns the screen lines. +// plain is the text of the line, escaped, and code is the same text with +// colours. The lines break where [WrapParts] breaks plain, so their number +// does not depend on the colours, which can change the width of a +// grapheme cluster of several runes. If code does not hold the text of +// plain with only escape sequences added, the lines have no colours. +func WrapLine(plain, code string, width int) []string { + parts := WrapParts(plain, width) + if code != plain { + if coloured, ok := colourParts(plain, code, parts); ok { + return coloured + } + } + return parts +} + +// colourParts returns parts, the screen lines that wrapping took from +// plain in order, with the colours that code gives their text. Each line +// starts with the escape sequences in effect at its first character, and +// ends with a reset if any are in effect at its end. ok is false if code +// is not plain with escape sequences added. +func colourParts(plain, code string, parts []string) (out []string, ok bool) { + pos, i := 0, 0 // the bytes of plain and code read so far + var sgr string // the escape sequences since the last reset + // escapes reads the escape sequences at code[i:], and writes them to b + // if b is not nil. + escapes := func(b *strings.Builder) { + for i < len(code) && code[i] == ansi.ESC { + seq, _, n, _ := ansi.DecodeSequence(code[i:], ansi.NormalState, nil) + if seq == "\x1b[m" || seq == "\x1b[0m" { + sgr = "" + } else { + sgr += seq + } + if b != nil { + b.WriteString(seq) + } + i += n + } + } + // text reads the next byte of plain from code, writing it to b if b + // is not nil. It reports whether code has that byte there. + text := func(b *strings.Builder) bool { + escapes(b) + if i >= len(code) || code[i] != plain[pos] { + return false + } + if b != nil { + b.WriteByte(code[i]) + } + i, pos = i+1, pos+1 + return true + } + out = make([]string, len(parts)) + for k, part := range parts { + start := strings.Index(plain[pos:], part) + if start < 0 { + return nil, false + } + for end := pos + start; pos < end; { // the text that wrapping dropped + if !text(nil) { + return nil, false + } + } + escapes(nil) + var b strings.Builder + b.WriteString(sgr) + for end := pos + len(part); pos < end; { + if !text(&b) { + return nil, false + } + } + if sgr != "" { + b.WriteString("\x1b[m") + } + out[k] = b.String() + } + return out, true +} + +// WrapParts wraps the highlighted code to width cells and returns the +// screen lines. +func WrapParts(code string, width int) []string { + // lipgloss.Wrap can leave a leading space on a full line, so hard-wrap + // the result again. + w := max(width, 1) + return strings.Split(ansi.Hardwrap(lipgloss.Wrap(code, w, ""), w, true), "\n") +} + +// headerText returns the header text of hunk i, for example +// " ⋯ 12 unmodified lines @@ -15,7 +15,8 @@ ". It includes the size of +// the fold above the hunk if the fold hides lines, and the hunk range if +// the hunk has lines. It ends with a space. func (v *View) headerText(i int) string { h, s := v.hunks[i], "" - if f := v.folds[i]; f.Lines > 0 { - s = fmt.Sprintf(" ⋯ %d unmodified lines", f.Lines) + if fold := v.folds[i]; fold.Lines > 0 { + s = fmt.Sprintf(" ⋯ %d unmodified lines", fold.Lines) } if len(h.Lines) == 0 { return s + " " @@ -267,25 +475,17 @@ func (v *View) headerText(i int) string { return s + hunkHeader(h) } -// hunkHeader returns the header line of hunk h, for example +// hunkHeader returns the range header of hunk h, for example // " @@ -1,3 +1,4 @@ ". -func hunkHeader(h *udiff.Hunk) string { - before, after := hunkLineCounts(h) - return fmt.Sprintf(" @@ -%d,%d +%d,%d @@ ", h.FromLine, before, h.ToLine, after) +func hunkHeader(h *hunk) string { + oldCount, newCount := hunkLineCounts(h) + return fmt.Sprintf(" @@ -%d,%d +%d,%d @@ ", h.OldStart, oldCount, h.NewStart, newCount) } // hunkLineCounts returns the number of old and new lines in hunk h. -func hunkLineCounts(h *udiff.Hunk) (before, after int) { +func hunkLineCounts(h *hunk) (oldCount, newCount int) { for _, l := range h.Lines { - switch l.Kind { - case udiff.Equal: - before++ - after++ - case udiff.Insert: - after++ - case udiff.Delete: - before++ - } + oldCount, newCount = l.next(oldCount, newCount) } - return before, after + return oldCount, newCount } diff --git a/internal/diffview/split.go b/internal/diffview/split.go index 5bc7d7a..c645e8d 100644 --- a/internal/diffview/split.go +++ b/internal/diffview/split.go @@ -4,50 +4,50 @@ package diffview import ( "slices" - - "github.com/aymanbagabas/go-udiff" ) -// splitLine is one row of the split layout. A nil side has no line. +// splitLine is one row of the split layout. A nil field means that side +// has no line. type splitLine struct { - before *udiff.Line - after *udiff.Line + old *diffLine + new *diffLine } -// hunkToSplit pairs the lines of h for the split layout. An equal line is on -// both sides. A deleted line gets the next inserted line beside it, if no -// equal line comes first. -func hunkToSplit(h *udiff.Hunk) []splitLine { +// hunkToSplit pairs the lines of h for the split layout. An equal line +// appears on both sides. A deleted line is paired with the next unpaired +// added line, unless an equal line comes first. Any other added line +// appears alone on the new side, in its original position. +func hunkToSplit(h *hunk) []splitLine { lines := slices.Clone(h.Lines) out := make([]splitLine, 0, len(lines)) - for len(lines) > 0 { - ul := lines[0] - lines = lines[1:] - var sl splitLine + taken := make([]bool, len(lines)) // added lines already paired with a deleted line + // next is the index where the search for an added line to pair starts. + // Every line before it is either already paired or not an added line. + next := 0 + for i := range lines { + ul := &lines[i] + var l splitLine switch ul.Kind { - case udiff.Equal: - sl.before, sl.after = &ul, &ul - case udiff.Insert: - sl.after = &ul - case udiff.Delete: - sl.before = &ul - sl.after, lines = takeInsert(lines) + case KindEqual: + l.old, l.new = ul, ul + case KindAdded: + if taken[i] { + continue + } + l.new = ul + case KindDeleted: + l.old = ul + next = max(next, i+1) + for next < len(lines) && lines[next].Kind != KindEqual && + (lines[next].Kind != KindAdded || taken[next]) { + next++ + } + if next < len(lines) && lines[next].Kind == KindAdded { + l.new, taken[next] = &lines[next], true + next++ + } } - out = append(out, sl) + out = append(out, l) } return out } - -// takeInsert removes the first inserted line before the next equal line from -// lines. It returns that line, or nil if there is none, and the other lines. -func takeInsert(lines []udiff.Line) (*udiff.Line, []udiff.Line) { - for i, l := range lines { - switch l.Kind { - case udiff.Insert: - return &l, slices.Delete(lines, i, i+1) - case udiff.Equal: - return nil, lines - } - } - return nil, lines -} diff --git a/internal/diffview/style.go b/internal/diffview/style.go index 694fcfe..f68d04e 100644 --- a/internal/diffview/style.go +++ b/internal/diffview/style.go @@ -9,23 +9,23 @@ import ( "charm.land/lipgloss/v2" ) -// lineStyle is the style of the parts of one type of line. +// lineStyle holds the styles of the parts of one kind of line. type lineStyle struct { - lineNumber lipgloss.Style - symbol lipgloss.Style - code lipgloss.Style + num lipgloss.Style + mark lipgloss.Style + code lipgloss.Style } -// style is the style of each type of line. +// style holds the style of each kind of line. type style struct { dividerLine lineStyle missingLine lineStyle equalLine lineStyle - insertLine lineStyle - deleteLine lineStyle + addedLine lineStyle + deletedLine lineStyle } -// The colours of the ANSI palette of the terminal, as Lip Gloss colours. +// Colours from the terminal's ANSI palette, as Lip Gloss colours. const ( ansiRed = "1" ansiGreen = "2" @@ -36,22 +36,24 @@ const ( ansiGrey = "8" // bright black ) -// The amounts that terminalStyle mixes into the background. +// The amounts of colour that terminalStyle mixes into the background. const ( - tintDark = 0.16 // inserted and deleted lines on a dark background - tintLight = 0.13 // inserted and deleted lines on a light background - tintNumber = 1.7 // multiplies the tint for the numbers of those lines - shadeDivider = 0.07 // the hunk headers, toward the foreground - shadeMissing = 0.03 // the empty side of a split row, toward the foreground + tintDark = 0.16 // added and deleted lines on a dark background + tintLight = 0.13 // added and deleted lines on a light background + tintNum = 1.7 // multiplies the tint for the line numbers of those lines + shadeDivider = 0.07 // hunk headers, towards the foreground + shadeMissing = 0.03 // the empty side of a split row, towards the foreground ) -// The tint colours when the terminal does not report its green or red. +// The tint colours used when the terminal does not report its green or +// red. const ( fallbackGreen = "#2ea043" fallbackRed = "#f85149" ) -// terminalStyle makes the style of [View.Theme] from the terminal colours. +// terminalStyle builds the style for [View.Theme] from the terminal's +// colours. func terminalStyle(bg, fg, green, red color.Color, dark bool) style { none := lipgloss.NoColor{} green = cmp.Or(green, lipgloss.Color(fallbackGreen)) @@ -73,42 +75,43 @@ func terminalStyle(bg, fg, green, red color.Color, dark bool) style { return mix(bg, fg, t) } plain := lipgloss.NewStyle() - // number is the style of a line number: right-aligned, with a space on - // each side. - number := func(s lipgloss.Style) lipgloss.Style { + // num returns the style of a line number: right-aligned, with a space + // on each side. + num := func(s lipgloss.Style) lipgloss.Style { return s.Padding(0, lineNumPadding).Align(lipgloss.Right) } - // changed is the style of an inserted or a deleted line, tinted toward c. + // changed returns the style of an added or deleted line, tinted + // towards c. changed := func(text string, c color.Color) lineStyle { - fg := plain.Foreground(lipgloss.Color(text)) + textStyle := plain.Foreground(lipgloss.Color(text)) return lineStyle{ - lineNumber: number(fg.Background(tint(c, amt*tintNumber))), - symbol: fg.Background(tint(c, amt)), - code: plain.Background(tint(c, amt)), + num: num(textStyle.Background(tint(c, amt*tintNum))), + mark: textStyle.Background(tint(c, amt)), + code: plain.Background(tint(c, amt)), } } divider := plain.Background(subtle(shadeDivider)) missing := plain.Background(subtle(shadeMissing)) return style{ dividerLine: lineStyle{ - lineNumber: number(divider.Foreground(lipgloss.Color(ansiGrey))), - code: divider.Foreground(lipgloss.Color(ansiCyan)), + num: num(divider.Foreground(lipgloss.Color(ansiGrey))), + code: divider.Foreground(lipgloss.Color(ansiCyan)), }, missingLine: lineStyle{ - lineNumber: number(missing), - symbol: missing, - code: missing, + num: num(missing), + mark: missing, + code: missing, }, equalLine: lineStyle{ - lineNumber: number(plain.Foreground(lipgloss.Color(ansiGrey))), - code: plain, + num: num(plain.Foreground(lipgloss.Color(ansiGrey))), + code: plain, }, - insertLine: changed(ansiGreen, green), - deleteLine: changed(ansiRed, red), + addedLine: changed(ansiGreen, green), + deletedLine: changed(ansiRed, red), } } -// mix mixes a toward b by the amount t, from 0 to 1. +// mix blends colour a towards b by the amount t, from 0 to 1. func mix(a, b color.Color, t float64) color.Color { ar, ag, ab, _ := a.RGBA() br, bg, bb, _ := b.RGBA() diff --git a/internal/diffview/text.go b/internal/diffview/text.go index 552410c..f2f7b7c 100644 --- a/internal/diffview/text.go +++ b/internal/diffview/text.go @@ -5,43 +5,107 @@ package diffview import ( "fmt" "strings" + "unicode" "unicode/utf8" "github.com/charmbracelet/x/ansi" + + "github.com/rednafi/rexdiff/internal/termtext" ) // TabWidth is the number of spaces that replace a tab. const TabWidth = 4 -// The Unicode Control Pictures that Escape shows in place of a control -// character. +// tabSpaces is the text that replaces a tab. +var tabSpaces = strings.Repeat(" ", TabWidth) + +// ExpandTabs replaces each tab in s with TabWidth spaces. +func ExpandTabs(s string) string { return strings.ReplaceAll(s, "\t", tabSpaces) } + +// EachLine applies f to each line of s, split at the LFs, and joins the +// results with LFs. +func EachLine(s string, f func(string) string) string { + if !strings.Contains(s, "\n") { + return f(s) + } + lines := strings.Split(s, "\n") + for i, l := range lines { + lines[i] = f(l) + } + return strings.Join(lines, "\n") +} + +// CRSymbol replaces a lone CR before highlighting, because chroma treats +// a CR as a line break. It is the picture that Escape shows for a CR. +const CRSymbol = "\u240d" + +// The Unicode Control Pictures that Escape uses in place of control +// characters. const ( - // The picture of U+0000. The pictures of U+0001 to U+001F follow it. + // The picture for U+0000. The pictures for U+0001 to U+001F follow it + // in order. controlPictures = '\u2400' delPicture = '\u2421' ) // Escape replaces each control character with its Unicode Control Picture, -// so the terminal shows it and does not run it. A C1 control becomes -// U+FFFD, because it has no picture. +// so that the terminal displays it instead of acting on it. C1 control +// characters have no picture and become U+FFFD. Escape also shows each +// other invisible character, as [isHidden] reports, as its code point in +// angle brackets, for example . A bidirectional control would +// otherwise reorder the text that the terminal shows, so that code reads +// differently from how it runs, and a zero-width character would hide in +// plain sight. Bytes that are not valid UTF-8 become U+FFFD. func Escape(content string) string { - return strings.Map(func(r rune) rune { + if utf8.ValidString(content) && !strings.ContainsFunc(content, needsEscape) { + return content + } + var b strings.Builder + b.Grow(len(content)) + for _, r := range content { switch { case r <= 0x1f: // C0 controls - return controlPictures + r + b.WriteRune(controlPictures + r) case r == ansi.DEL: - return delPicture + b.WriteRune(delPicture) case r >= 0x80 && r <= 0x9f: // C1 controls - return utf8.RuneError + b.WriteRune(utf8.RuneError) + case isHidden(r): + fmt.Fprintf(&b, "", r) + default: + b.WriteRune(r) } - return r - }, content) + } + return b.String() +} + +// needsEscape reports whether [Escape] replaces r. +func needsEscape(r rune) bool { + if r < utf8.RuneSelf { + return r <= 0x1f || r == ansi.DEL + } + return r <= 0x9f || isHidden(r) +} + +// isHidden reports whether r is a character other than a control +// character that a terminal does not show as a mark of its own, or that +// changes the order of the text around it: a format character, such as +// U+202E (right-to-left override), U+00AD (soft hyphen) or a tag character +// (U+E0001 to U+E007F), a line or paragraph separator, or a filler, such as +// U+3164 (Hangul filler). It leaves out U+200C and U+200D (zero-width +// non-joiner and joiner), which some scripts and emoji sequences need. The +// variation selectors, which emoji need too, are not format characters. +func isHidden(r rune) bool { + return r != '\u200c' && r != '\u200d' && !unicode.IsControl(r) && termtext.Invisible(r) } -// CutLeft removes the first n cells of s, which can have ANSI codes. If -// the cut is inside a wide character, a space takes the place of the rest -// of that character. Thus the text after the cut moves by n cells. +// CutLeft removes the first n cells of s, which can contain ANSI codes. If +// the cut falls inside a wide character, spaces replace the rest of that +// character, so the remaining text moves left by exactly n cells. func CutLeft(s string, n int) string { + if n <= 0 { + return s // nothing to remove; a negative n would otherwise add spaces + } want := max(ansi.StringWidth(s)-n, 0) cut := ansi.TruncateLeft(s, n, "") for ansi.StringWidth(cut) > want { @@ -51,9 +115,8 @@ func CutLeft(s string, n int) string { return strings.Repeat(" ", want-ansi.StringWidth(cut)) + cut } -// pad right-aligns v in a column of width cells. -func pad(v any, width int) string { - s := fmt.Sprint(v) +// pad right-aligns s in a column of width cells. +func pad(s string, width int) string { w := ansi.StringWidth(s) if w >= width { return s @@ -61,7 +124,7 @@ func pad(v any, width int) string { return strings.Repeat(" ", width-w) + s } -// btoi returns 1 if b is true, else 0. +// btoi returns 1 if b is true, and 0 otherwise. func btoi(b bool) int { if b { return 1 diff --git a/internal/diffview/text_test.go b/internal/diffview/text_test.go new file mode 100644 index 0000000..30e97dc --- /dev/null +++ b/internal/diffview/text_test.go @@ -0,0 +1,33 @@ +package diffview_test + +import ( + "testing" + + "github.com/rednafi/rexdiff/internal/diffview" +) + +// TestEscapeInvisible checks that Escape shows invisible characters as +// their code points, so that none hides or takes a width that the +// terminal does not show. It also checks that Escape keeps the joiners and +// variation selectors that emoji and some scripts need, and visible blanks +// such as U+2800 (Braille pattern blank). +func TestEscapeInvisible(t *testing.T) { + t.Parallel() + tests := []struct{ in, want string }{ + {"a\u3164b", "ab"}, + {"\u115f\u1160\uffa0", ""}, + {"a\u2028b\u2029c", "abc"}, + {"soft\u00adhyphen", "softhyphen"}, + {"tag\U000e0041\U000e007f", "tag"}, + {"a\u180eb", "ab"}, + {"👨\u200d👩\u200d👧 ❤\ufe0f", "👨\u200d👩\u200d👧 ❤\ufe0f"}, + {"a\u200cb", "a\u200cb"}, + {"braille\u2800", "braille\u2800"}, + {"a\x00b\x7f\u0085", "a\u2400b\u2421\ufffd"}, + } + for _, tt := range tests { + if got := diffview.Escape(tt.in); got != tt.want { + t.Errorf("Escape(%q) = %q, want %q", tt.in, got, tt.want) + } + } +} diff --git a/internal/diffview/view.go b/internal/diffview/view.go index e2af0ec..17ee2b3 100644 --- a/internal/diffview/view.go +++ b/internal/diffview/view.go @@ -1,59 +1,60 @@ // Derived from charmbracelet/crush (FSL-1.1-MIT). See ../DERIVED.md. -// Package diffview draws the difference between two versions of a file in -// the terminal, with syntax colours. +// Package diffview draws the difference between two versions of a file for +// a terminal, with syntax highlighting. package diffview import ( "image/color" + "slices" + "sort" "strconv" "strings" "charm.land/lipgloss/v2" - "github.com/aymanbagabas/go-udiff" "github.com/charmbracelet/x/ansi" ) -// View draws the difference between two versions of a file. Make one with -// [New], set its options, and call [View.Render]. +// View draws the difference between two versions of a file. Create one +// with [New], set its options, and call [View.RenderLines]. type View struct { - path string // selects the lexer - before, after string - split bool // the old and the new lines side by side - width int - xOffset int - wrap bool // wrap long lines instead of cutting them - signs bool // mark a changed line with + or -, not with a bar - style style - expanded func(Fold) bool // the folds that show, see [View.Expand] - cache *Cache - - // Render sets the fields below. - hunks []*udiff.Hunk - folds []Fold // folds[i] hides above hunks[i] - rows []Row - codeWidth int - fullCodeWidth int // with the leading symbols - extraColOnAfter bool // the new side of the split layout is one cell wider - beforeNumDigits int - afterNumDigits int + path string // selects the syntax highlighting + oldText, newText string + split bool // show the old and new lines side by side + width int + scrollX int + wrap bool // wrap long lines instead of cutting them + signs bool // mark changed lines with + or - instead of a bar + style style + expanded func(Fold) bool // reports which folds are expanded; see [View.Expanded] + cache *Cache + + // prepare sets the fields below. + hunks []*hunk + folds []Fold // folds[i] is the fold above hunks[i] + codeWidth int + fullCodeWidth int // codeWidth plus the leading marks + extraColOnNew bool // in split view, the new side is one cell wider + oldNumDigits int + newNumDigits int } -// New returns a View of the change from before to after, the old and the -// new content of the file at path. The path selects the syntax colours. -// The View has the unified layout, no width limit, and no tints. -func New(path, before, after string) *View { +// New returns a View of the change from oldText to newText, the old and +// new content of the file at path. The path selects the syntax +// highlighting. The View starts with the unified layout, no width limit +// and no tints. +func New(path, oldText, newText string) *View { return &View{ - path: path, - before: before, - after: after, - style: terminalStyle(nil, nil, nil, nil, true), - cache: &Cache{}, + path: path, + oldText: oldText, + newText: newText, + style: terminalStyle(nil, nil, nil, nil, true), + cache: &Cache{}, } } -// Split sets the split layout if split is true. The old lines are on the -// left and the new lines are on the right. +// Split selects the split layout if split is true, with the old lines on +// the left and the new lines on the right. func (v *View) Split(split bool) *View { v.split = split return v @@ -65,146 +66,319 @@ func (v *View) Width(width int) *View { return v } -// XOffset sets the number of cells to scroll the code to the right. -func (v *View) XOffset(xOffset int) *View { - v.xOffset = xOffset +// ScrollX sets the number of cells to scroll the code to the right. +func (v *View) ScrollX(scrollX int) *View { + v.scrollX = scrollX return v } -// Wrap makes long lines continue on the next screen lines if wrap is -// true, instead of cutting them. Then the x offset does not apply. +// Wrap sets whether long lines continue on the following screen lines +// instead of being cut off. When wrap is true, [View.ScrollX] is ignored. func (v *View) Wrap(wrap bool) *View { v.wrap = wrap return v } -// Signs marks an inserted line with + and a deleted line with - if signs -// is true, in place of a bar. +// Signs sets whether added lines are marked with + and deleted lines with +// -, instead of a bar. func (v *View) Signs(signs bool) *View { v.signs = signs return v } -// Expand shows the lines of each fold for which expanded returns true. -func (v *View) Expand(expanded func(Fold) bool) *View { +// Expanded shows the hidden lines of each fold for which expanded returns +// true. +func (v *View) Expanded(expanded func(Fold) bool) *View { v.expanded = expanded return v } -// Cache makes v keep its highlighted lines in c. The Cache c must not be +// Cache makes v store its highlighted lines and diff in c. c must not be // nil. func (v *View) Cache(c *Cache) *View { v.cache = c return v } -// Theme sets the colours from the colours of the terminal. These are the -// background, the foreground, and the ANSI green and red. The text colours -// are ANSI palette indices, so the terminal selects the real colours. -// Theme mixes the tints of inserted and deleted lines from the background -// toward green and red. If green or red is nil, it uses a fixed green or -// red. If bg is nil, it adds no tint. Dark selects the tint amounts for a -// dark background. +// Theme sets the colours from the terminal's background, foreground, green +// and red. Text colours are ANSI palette indices. Added and deleted lines +// are tinted by mixing the background towards green and red. If green or +// red is nil, a fixed colour is used instead. If bg is nil, lines are not +// tinted. dark selects the tint strengths for a dark background. func (v *View) Theme(bg, fg, green, red color.Color, dark bool) *View { v.style = terminalStyle(bg, fg, green, red, dark) return v } -// Render returns the rendered diff, one row for each of its lines, and the -// columns of the line numbers. -func (v *View) Render() (string, []Row, Geometry) { - v.rows = nil - if err := v.computeDiff(); err != nil { - return err.Error(), nil, v.geometry() +// renderAll renders every line of the prepared view and returns them with +// their rows. +func (v *View) renderAll() (string, []Row) { + var b strings.Builder + var rows []Row + items := v.items() + for k := range items { + it := &items[k] + for i, l := range v.itemLines(it) { + b.WriteString(l) + b.WriteByte('\n') + r := it.row + r.Continued = i > 0 + rows = append(rows, r) + } + } + frame := lipgloss.NewStyle() + if v.width > 0 { + frame = frame.MaxWidth(v.width) } - v.markEndings() - v.replaceTabs() - v.detectNumDigits() + return frame.Render(strings.TrimSuffix(b.String(), "\n")), rows +} + +// prepare computes the hunks, folds and column widths of the view. +func (v *View) prepare() { + v.computeDiff() + v.computeNumDigits() if v.width <= 0 { - v.detectCodeWidth() + v.computeCodeWidth() } else { v.resizeCodeWidth() } +} - style := lipgloss.NewStyle() - if v.width > 0 { - style = style.MaxWidth(v.width) +// Lines holds screen lines that are rendered when they are first +// requested. Each unit of the output, such as a line of a diff, takes one +// or more screen lines, which are rendered together. Lines is not safe for +// concurrent use. +type Lines struct { + render func(k int) (lines []string, final bool) // renders unit k + start []int // start[k] is the first screen line of unit k + lines []string + done []bool // done[i] is true if lines[i] is rendered for good +} + +// NewLines returns n screen lines, where start[k] is the first screen line +// of unit k, and render renders the screen lines of unit k. If render +// returns fewer lines than the unit has, the rest are blank. If final is +// false, Lines renders the unit again the next time one of its lines is +// requested. +func NewLines(n int, start []int, render func(k int) (lines []string, final bool)) *Lines { + return &Lines{render: render, start: start, lines: make([]string, n), done: make([]bool, n)} +} + +// Line returns screen line i. +func (ls *Lines) Line(i int) string { + if ls.done[i] { + return ls.lines[i] } - var out string - if v.split { - out = v.renderSplit() - } else { - out = v.renderUnified() + // The last unit that starts at or before i. A unit with no lines + // starts at the same line as the next unit, so it is never chosen. + k := sort.Search(len(ls.start), func(k int) bool { return ls.start[k] > i }) - 1 + first, end := ls.start[k], len(ls.lines) + if k+1 < len(ls.start) { + end = ls.start[k+1] + } + out, final := ls.render(k) + for j := first; j < end; j++ { + l := "" + if j-first < len(out) { + l = out[j-first] + } + ls.lines[j], ls.done[j] = l, final } - return style.Render(strings.TrimSuffix(out, "\n")), v.rows, v.geometry() + return ls.lines[i] } -// computeDiff computes the hunks and the folds of the diff. -func (v *View) computeDiff() error { - edits := udiff.Lines(v.before, v.after) - // With a context as long as the file, the diff has one hunk with all - // the lines. foldHunk then hides the long runs of equal lines. - context := strings.Count(v.before, "\n") + 1 - unified, err := udiff.ToUnifiedDiff("", "", v.before, edits, context) - if err != nil { - return err +// fit pads or cuts l to the width of v, as renderAll does. If v has no +// width, fit returns l unchanged. l contains no tabs, because +// replaceTabs has already replaced them. +func (v *View) fit(l string) string { + if v.width <= 0 { + return l + } + switch w := ansi.StringWidth(l); { + case w < v.width: + return l + strings.Repeat(" ", v.width-w) + case w > v.width: + return ansi.Truncate(l, v.width, "") + } + return l +} + +// RenderLines returns the lines of the rendered diff, one row for each +// of them, and the positions of the line-number and code columns. Each +// line is rendered when it is first requested, unless the width leaves no +// room for the code: then all lines are rendered at once. +func (v *View) RenderLines() (*Lines, []Row, Geometry) { + v.prepare() + if v.width > 0 && v.codeWidth < 1 { + // The lines can have different widths, so render them all to find + // the widest. + out, rows := v.renderAll() + ls := &Lines{} + if len(rows) > 0 { + ls.lines = strings.Split(out, "\n") + ls.done = make([]bool, len(ls.lines)) + for i := range ls.done { + ls.done[i] = true + } + } + return ls, rows, v.geometry() + } + f := &v.cache.folded + key := itemsKey{split: v.split, wrap: v.wrap, codeWidth: v.codeWidth, extraColOnNew: v.extraColOnNew} + if f.items == nil || f.key != key { + f.key, f.items = key, v.items() + f.start = make([]int, len(f.items)) + f.rows = make([]Row, 0, len(f.items)) + for k := range f.items { + it := &f.items[k] + f.start[k] = len(f.rows) + for i := range v.itemHeight(it) { + r := it.row + r.Continued = i > 0 + f.rows = append(f.rows, r) + } + } + } + items := f.items + ls := NewLines(len(f.rows), f.start, func(k int) ([]string, bool) { + out := v.itemLines(&items[k]) + for i, l := range out { + out[i] = v.fit(l) + } + return out, true + }) + return ls, f.rows, v.geometry() +} + +// computeDiff computes the hunks and folds of the diff. The [Cache] +// stores them for reuse by the next View with the same diff and hidden +// folds. +func (v *View) computeDiff() { + whole, keep := v.cache.unified(v.oldText, v.newText) + hidden := make([][]Fold, len(whole)) + for i, h := range whole { + hidden[i] = hiddenFolds(h, keep[i], v.expanded) + } + f := &v.cache.folded + if f.gen == v.cache.diff.gen && slices.EqualFunc(f.hunkFolds, hidden, slices.Equal) { + v.hunks, v.folds = f.hunks, f.folds + return } v.hunks, v.folds = nil, nil - for _, h := range unified.Hunks { - hs, fs := foldHunk(h, v.expanded) + for i, h := range whole { + hs, fs := foldHunk(h, keep[i], hidden[i]) v.hunks = append(v.hunks, hs...) v.folds = append(v.folds, fs...) } - return nil + *f = foldedDiff{gen: v.cache.diff.gen, hunkFolds: hidden, hunks: v.hunks, folds: v.folds} +} + +// foldedDiff is the diff of a View after folding, and its items for one +// layout. A [Cache] stores the most recent one. The hunks, items and rows +// are not modified after they are built. +type foldedDiff struct { + gen int // the generation of the Cache diff that the hunks come from + hunkFolds [][]Fold // the hidden folds of each hunk in that diff + hunks []*hunk + folds []Fold + + // The items of [View.RenderLines], for the layout described by key. + key itemsKey + items []item + rows []Row + start []int // start[k] is the first row of items[k] +} + +// itemsKey holds the values other than the hunks that the items and their +// heights depend on. +type itemsKey struct { + split, wrap bool + codeWidth int + extraColOnNew bool +} + +// unified returns the diff from oldText to newText as at most one hunk +// that holds every line, with CRs marked and tabs replaced, and the +// keptLines of each hunk. c stores the last result, which the caller must +// not modify. +func (c *Cache) unified(oldText, newText string) (hunks []*hunk, keep [][]bool) { + u := &c.diff + if u.gen > 0 && u.oldText == oldText && u.newText == newText { + return u.hunks, u.keep + } + // One hunk holds every line. foldHunk hides long runs of equal lines + // later. + u.hunks = nil + if h := lineDiff(oldText, newText); h != nil { + u.hunks = []*hunk{h} + } + // A fold hides only equal lines, so these steps have the same result + // before and after folding. + markEndings(u.hunks) + replaceTabs(u.hunks) + u.oldText, u.newText = oldText, newText + u.keep = make([][]bool, len(u.hunks)) + for i, h := range u.hunks { + u.keep[i] = keptLines(h) + } + u.gen++ + return u.hunks, u.keep } -// crMark shows a CR at the end of a line, as less and vim show it. +// crMark marks a CR at the end of a line. const crMark = "^M" -// markEndings removes the CR of each line ending, so that it does not -// show. In a block of changes, the deleted lines and the inserted lines -// pair up in their order. As in herdr-reviewr, a line of a pair that -// differs from the other line only in a CR gets crMark. A change of only -// the line ending shows. -func (v *View) markEndings() { - for _, h := range v.hunks { +// noNewlineMark follows a changed line that has no line ending, the last +// line of its file. +const noNewlineMark = " \\ No newline at end of file" + +// markEndings removes the CR from each line ending. In each block of +// changes, it pairs deleted lines with added lines in order. If the two +// lines of a pair differ only by a CR, it adds crMark to the line that had +// the CR. It adds noNewlineMark to each changed line without a line +// ending. +func markEndings(hunks []*hunk) { + for _, h := range hunks { ls := h.Lines for i := 0; i < len(ls); { - dels := i - for i < len(ls) && ls[i].Kind == udiff.Delete { + deleted := i + for i < len(ls) && ls[i].Kind == KindDeleted { i++ } ins := i - for i < len(ls) && ls[i].Kind == udiff.Insert { + for i < len(ls) && ls[i].Kind == KindAdded { i++ } - for k := 0; dels+k < ins && ins+k < i; k++ { - markPair(&ls[dels+k], &ls[ins+k]) + for k := 0; deleted+k < ins && ins+k < i; k++ { + markPair(&ls[deleted+k], &ls[ins+k]) } - if i == dels { // an equal line + if i == deleted { // an equal line i++ } } for i := range ls { ls[i].Content, _ = cutCR(ls[i].Content, "") + if ls[i].Kind != KindEqual && !strings.HasSuffix(ls[i].Content, "\n") { + ls[i].Content += noNewlineMark + } } } } -// markPair adds crMark to old or to new if the two lines differ only in -// the CR of the line ending. -func markPair(old, new *udiff.Line) { - o, oCR := cutCR(old.Content, "") - n, nCR := cutCR(new.Content, "") +// markPair adds crMark to the line that has a CR if oldLine and newLine +// differ only by the CR in the line ending. +func markPair(oldLine, newLine *diffLine) { + o, oCR := cutCR(oldLine.Content, "") + n, nCR := cutCR(newLine.Content, "") if oCR != nCR && o == n { - old.Content, _ = cutCR(old.Content, crMark) - new.Content, _ = cutCR(new.Content, crMark) + oldLine.Content, _ = cutCR(oldLine.Content, crMark) + newLine.Content, _ = cutCR(newLine.Content, crMark) } } -// cutCR returns line with mark in place of the CR of its line ending, and -// reports whether line has that CR. The last line of a file can have a CR -// and no LF. +// cutCR returns line with mark in place of the CR in its line ending, and +// reports whether line had that CR. The last line of a file can end in a +// CR without an LF. func cutCR(line, mark string) (string, bool) { body, cr := strings.CutSuffix(strings.TrimSuffix(line, "\n"), "\r") if !cr { @@ -213,34 +387,33 @@ func cutCR(line, mark string) (string, bool) { return body + mark + line[len(body)+1:], true } -// replaceTabs replaces the tabs in the lines of the diff with spaces. It runs -// after computeDiff, so that a change from a tab to spaces is a change. -func (v *View) replaceTabs() { - spaces := strings.Repeat(" ", TabWidth) - for _, h := range v.hunks { +// replaceTabs replaces tabs with spaces in the lines of the hunks. It runs +// after the diff is computed, so that replacing a tab with spaces still +// counts as a change. +func replaceTabs(hunks []*hunk) { + for _, h := range hunks { for i := range h.Lines { - h.Lines[i].Content = strings.ReplaceAll(h.Lines[i].Content, "\t", spaces) + h.Lines[i].Content = ExpandTabs(h.Lines[i].Content) } } } -// detectNumDigits finds the number of digits of the largest old and new line -// numbers. -func (v *View) detectNumDigits() { - v.beforeNumDigits = 0 - v.afterNumDigits = 0 +// computeNumDigits sets the number of digits in the largest old and new +// line numbers. +func (v *View) computeNumDigits() { + v.oldNumDigits = 0 + v.newNumDigits = 0 for _, h := range v.hunks { - before := len(strconv.Itoa(h.FromLine + len(h.Lines))) - after := len(strconv.Itoa(h.ToLine + len(h.Lines))) - v.beforeNumDigits = max(v.beforeNumDigits, before) - v.afterNumDigits = max(v.afterNumDigits, after) + oldNum := len(strconv.Itoa(h.OldStart + len(h.Lines))) + newNum := len(strconv.Itoa(h.NewStart + len(h.Lines))) + v.oldNumDigits = max(v.oldNumDigits, oldNum) + v.newNumDigits = max(v.newNumDigits, newNum) } } -// detectCodeWidth finds the width of the widest code line or hunk header. -// The split layout shows the same lines, so the width is the same for the -// two layouts. -func (v *View) detectCodeWidth() { +// computeCodeWidth sets the code width to the width of the widest code +// line or hunk header. The width is the same in both layouts. +func (v *View) computeCodeWidth() { v.codeWidth = 0 for i, h := range v.hunks { v.codeWidth = max(v.codeWidth, ansi.StringWidth(v.headerText(i))) @@ -249,48 +422,49 @@ func (v *View) detectCodeWidth() { v.codeWidth = max(v.codeWidth, w) } } - v.fullCodeWidth = v.codeWidth + leadingSymbolsSize + v.fullCodeWidth = v.codeWidth + leadingMarksWidth } -// resizeCodeWidth sets the code width so that the lines fit in the width. +// resizeCodeWidth sets the code width so that the lines fit in v.width. func (v *View) resizeCodeWidth() { - fullNumWidth := v.beforeNumDigits + v.afterNumDigits - fullNumWidth += lineNumPadding * 4 // two sides of two line numbers + fullNumWidth := v.oldNumDigits + v.newNumDigits + fullNumWidth += lineNumPadding * 4 // padding on both sides of two line numbers if v.split { - remainingWidth := v.width - fullNumWidth - leadingSymbolsSize*2 + remainingWidth := v.width - fullNumWidth - leadingMarksWidth*2 v.codeWidth = remainingWidth / 2 - v.extraColOnAfter = remainingWidth%2 != 0 + v.extraColOnNew = remainingWidth%2 != 0 } else { - v.codeWidth = v.width - fullNumWidth - leadingSymbolsSize + v.codeWidth = v.width - fullNumWidth - leadingMarksWidth } - v.fullCodeWidth = v.codeWidth + leadingSymbolsSize + v.fullCodeWidth = v.codeWidth + leadingMarksWidth } -// Geometry gives the columns of the line numbers and of the code in the -// output of [View.Render]. Use it to tell a line number from the code. +// Geometry describes the line-number and code columns in the output of +// [View.RenderLines]. Use it to tell whether a column is on a line number or on +// code. type Geometry struct { - BeforeNum int // the width of the old line-number column, in cells - AfterNum int // the width of the new line-number column, in cells - AfterNumStart int // the column where the new line numbers start, from 0 - BeforeCode int // the column where the old code starts, from 0 - AfterCode int // the column where the new code starts, from 0 + OldNum int // the width of the old line-number column, in cells + NewNum int // the width of the new line-number column, in cells + NewNumStart int // the 0-based column where the new line numbers start + OldCode int // the 0-based column where the old code starts + NewCode int // the 0-based column where the new code starts } -// geometry returns the columns of the line numbers and of the code. +// geometry returns the positions of the line-number and code columns. func (v *View) geometry() Geometry { g := Geometry{ - BeforeNum: v.beforeNumDigits + lineNumPadding*2, - AfterNum: v.afterNumDigits + lineNumPadding*2, + OldNum: v.oldNumDigits + lineNumPadding*2, + NewNum: v.newNumDigits + lineNumPadding*2, } - g.AfterNumStart = g.BeforeNum + g.NewNumStart = g.OldNum if v.split { - g.AfterNumStart = g.BeforeNum + v.fullCodeWidth - g.BeforeCode = g.BeforeNum + leadingSymbolsSize - g.AfterCode = g.AfterNumStart + g.AfterNum + leadingSymbolsSize + g.NewNumStart = g.OldNum + v.fullCodeWidth + g.OldCode = g.OldNum + leadingMarksWidth + g.NewCode = g.NewNumStart + g.NewNum + leadingMarksWidth return g } - g.BeforeCode = g.BeforeNum + g.AfterNum + leadingSymbolsSize - g.AfterCode = g.BeforeCode + g.OldCode = g.OldNum + g.NewNum + leadingMarksWidth + g.NewCode = g.OldCode return g } diff --git a/internal/editor/editor.go b/internal/editor/editor.go index 235e8aa..2620db4 100644 --- a/internal/editor/editor.go +++ b/internal/editor/editor.go @@ -1,6 +1,6 @@ -// Package editor picks the text editor of the user, and makes the sh -// command that opens a file at a line in it. It also reports whether the -// editor opens a window or draws in the terminal. +// Package editor chooses the user's text editor and builds the sh command +// that opens a file at a given line. It also reports whether the editor +// opens its own window or runs in the terminal. package editor import ( @@ -13,27 +13,27 @@ import ( "strings" ) -// Command is a command that opens a file at a line. +// Command is a command that opens a file at a given line. type Command struct { Script string // the command, for sh -c - Program string // the first word of the command, or "" if it has none - Window bool // the editor opens a window, not a terminal editor + Program string // the first word of the command, or "" if there is none + Window bool // the editor opens its own window instead of running in the terminal } -// Sources are the places that can name the editor, in the order that -// Resolve tries them. +// Sources holds the places that can name the editor, in the order that +// CommandFor tries them. type Sources struct { - Template string // the editor command of the settings + Template string // the editor command from the settings Visual string // $VISUAL Editor string // $EDITOR Git string // core.editor } -// Resolve returns the command that opens file at line. It uses -// s.Template if it is not empty. Else it uses the first of s.Visual, -// s.Editor, and s.Git that is not blank. Each error is a message for the -// user. -func Resolve(s Sources, file string, line int) (Command, error) { +// CommandFor returns the command that opens file at line. It uses +// s.Template if it is not empty. Otherwise it uses the first non-blank +// value of s.Visual, s.Editor and s.Git. The error messages are written +// for the user. +func CommandFor(s Sources, file string, line int) (Command, error) { var c Command if s.Template != "" { c = fromTemplate(s.Template, file, line) @@ -50,10 +50,9 @@ func Resolve(s Sources, file string, line int) (Command, error) { return c, nil } -// fromTemplate returns the command that opens file at line with template, -// a command that the user writes. The template gets file in place of -// {file}, and line in place of {line}. Without {file}, file goes at the -// end. +// fromTemplate returns the command that opens file at line using the +// user's command template. It replaces {file} and {line}. If template has +// no {file}, the file is added at the end. func fromTemplate(template, file string, line int) Command { r := strings.NewReplacer("{file}", shellQuote(file), "{line}", strconv.Itoa(line)) script := r.Replace(template) @@ -63,9 +62,9 @@ func fromTemplate(template, file string, line int) Command { return Command{Script: script, Program: program(template), Window: dialectOf(template).window} } -// fromEditor returns the command that opens file at line in an editor. -// command starts the editor, for example the value of $EDITOR. fromEditor -// adds file and line in the form that the editor expects. +// fromEditor returns the command that opens file at line using an editor +// command such as $EDITOR. It adds the file and line in the form that the +// editor expects. func fromEditor(command, file string, line int) Command { d := dialectOf(command) n, f := strconv.Itoa(line), shellQuote(file) @@ -86,10 +85,10 @@ func fromEditor(command, file string, line int) Command { return Command{Script: command + " " + args, Program: program(command), Window: d.window} } -// shellQuote quotes s as one word for sh. +// shellQuote quotes s as a single word for sh. func shellQuote(s string) string { return "'" + strings.ReplaceAll(s, "'", `'\''`) + "'" } -// lineArg is how an editor takes the line to open at. +// lineArg is the way an editor accepts the line number to open at. type lineArg int const ( @@ -100,17 +99,17 @@ const ( argFlag // --line 42 file ) -// dialect tells how an editor takes the line, and if it opens a window. +// dialect describes how an editor accepts the line number, and whether it +// opens a window. type dialect struct { line lineArg window bool } -// dialects has the known editors, by program name. The table is the same -// as in herdr-reviewr. The table also lists fresh, open, and xdg-open. +// dialects maps the program names of known editors to their dialects. var dialects = knownDialects() -// knownDialects returns the table of dialects. +// knownDialects builds the dialects table. func knownDialects() map[string]dialect { d := map[string]dialect{} add := func(dl dialect, names ...string) { @@ -119,10 +118,10 @@ func knownDialects() map[string]dialect { } } add(dialect{argPlus, false}, "vi", "vim", "nvim", "lvim", "vis", "joe", "nano", "micro", "kak") - // Emacs can open a window or not. In a pane, it works in both cases. + // Emacs may or may not open a window. Both work in a pane. add(dialect{argPlus, false}, "emacs", "emacsclient") add(dialect{argSuffix, false}, "hx", "helix", "fresh") - // MacVim and gVim open a window, unlike the other vi editors. + // MacVim, gVim, BBEdit and gedit open a window. add(dialect{argPlus, true}, "mvim", "gvim", "bbedit", "gedit") add(dialect{argGoto, true}, "code", "code-insiders", "codium", "vscodium", "cursor", "windsurf", "positron") @@ -131,15 +130,14 @@ func knownDialects() map[string]dialect { "clion", "phpstorm", "rubymine", "rider", "datagrip", "rustrover", "dataspell", "fleet") add(dialect{argNone, true}, "open", "xdg-open") if runtime.GOOS == "darwin" { - add(dialect{argFlag, true}, "xed") // the opener of Xcode + add(dialect{argFlag, true}, "xed") // the Xcode command-line launcher } return d } -// dialectOf returns the dialect of the program of command. An unknown -// editor takes +line and draws in the terminal. Most terminal editors take -// +line. A window editor also works in a pane. A wait flag tells that the -// editor has a window. +// dialectOf returns the dialect for the program in command. An unknown +// editor is assumed to accept +line and run in the terminal. A --wait or +// --block flag marks an editor that opens a window. func dialectOf(command string) dialect { d := dialect{line: argPlus} if known, ok := dialects[filepath.Base(program(command))]; ok { @@ -152,7 +150,7 @@ func dialectOf(command string) dialect { return d } -// program returns the first word of command. A word in quotes can have +// program returns the first word of command. A quoted word can contain // spaces, for example "/Applications/Visual Studio Code.app/.../code". func program(command string) string { command = strings.TrimSpace(command) diff --git a/internal/editor/editor_test.go b/internal/editor/editor_test.go index 4709e0f..da31b8c 100644 --- a/internal/editor/editor_test.go +++ b/internal/editor/editor_test.go @@ -6,7 +6,8 @@ import ( "github.com/rednafi/rexdiff/internal/editor" ) -// TestCommands checks the command and the kind of each editor. +// TestCommands checks the command that CommandFor builds for each editor, +// and whether it reports that the editor opens a window. func TestCommands(t *testing.T) { t.Parallel() const abs = "/r/a b.go" @@ -15,41 +16,41 @@ func TestCommands(t *testing.T) { script string window bool }{ - // The editor of the settings gets the placeholders. - {"/opt/homebrew/bin/nvim +{line} {file}", "", `/opt/homebrew/bin/nvim +12 '/r/a b.go'`, false}, - {"code -g {file}:{line}", "", `code -g '/r/a b.go':12`, true}, - {"zed {file}:{line}", "", `zed '/r/a b.go':12`, true}, - {"open -a Zed {file}", "", `open -a Zed '/r/a b.go'`, true}, - {"myeditor --at {line}", "", `myeditor --at 12 '/r/a b.go'`, false}, - // The editor of the environment gets the line as it expects it. - {"", "nvim", `nvim +12 '/r/a b.go'`, false}, - {"", "/usr/bin/vim -u NONE", `/usr/bin/vim -u NONE +12 '/r/a b.go'`, false}, - {"", "micro", `micro +12 '/r/a b.go'`, false}, - {"", "hx", `hx '/r/a b.go:12'`, false}, - {"", "fresh", `fresh '/r/a b.go:12'`, false}, - {"", "code --wait", `code --wait -g '/r/a b.go:12'`, true}, - {"", "subl", `subl '/r/a b.go:12'`, true}, - {"", "idea", `idea --line 12 '/r/a b.go'`, true}, - {"", "mvim", `mvim +12 '/r/a b.go'`, true}, - // A path in quotes can have spaces. - {"", `"/Apps/VS Code.app/bin/code" -w`, `"/Apps/VS Code.app/bin/code" -w -g '/r/a b.go:12'`, true}, - {"", `'/my apps/nvim'`, `'/my apps/nvim' +12 '/r/a b.go'`, false}, - // An unknown editor gets +line, and draws in the terminal. - {"", "vim.basic", `vim.basic +12 '/r/a b.go'`, false}, - // A wait flag tells that an unknown editor has a window. - {"", "myeditor --wait", `myeditor --wait +12 '/r/a b.go'`, true}, + // The editor command from the settings has its placeholders filled in. + {template: "/opt/homebrew/bin/nvim +{line} {file}", script: `/opt/homebrew/bin/nvim +12 '/r/a b.go'`}, + {template: "code -g {file}:{line}", script: `code -g '/r/a b.go':12`, window: true}, + {template: "zed {file}:{line}", script: `zed '/r/a b.go':12`, window: true}, + {template: "open -a Zed {file}", script: `open -a Zed '/r/a b.go'`, window: true}, + {template: "myeditor --at {line}", script: `myeditor --at 12 '/r/a b.go'`}, + // An editor from the environment gets the line in the form it expects. + {editor: "nvim", script: `nvim +12 '/r/a b.go'`}, + {editor: "/usr/bin/vim -u NONE", script: `/usr/bin/vim -u NONE +12 '/r/a b.go'`}, + {editor: "micro", script: `micro +12 '/r/a b.go'`}, + {editor: "hx", script: `hx '/r/a b.go:12'`}, + {editor: "fresh", script: `fresh '/r/a b.go:12'`}, + {editor: "code --wait", script: `code --wait -g '/r/a b.go:12'`, window: true}, + {editor: "subl", script: `subl '/r/a b.go:12'`, window: true}, + {editor: "idea", script: `idea --line 12 '/r/a b.go'`, window: true}, + {editor: "mvim", script: `mvim +12 '/r/a b.go'`, window: true}, + // A quoted path can contain spaces. + {editor: `"/Apps/VS Code.app/bin/code" -w`, script: `"/Apps/VS Code.app/bin/code" -w -g '/r/a b.go:12'`, window: true}, + {editor: `'/my apps/nvim'`, script: `'/my apps/nvim' +12 '/r/a b.go'`}, + // An unknown editor gets +line and is assumed to run in the terminal. + {editor: "vim.basic", script: `vim.basic +12 '/r/a b.go'`}, + // A --wait flag shows that an unknown editor opens a window. + {editor: "myeditor --wait", script: `myeditor --wait +12 '/r/a b.go'`, window: true}, } for _, tt := range tests { - got, err := editor.Resolve(editor.Sources{Template: tt.template, Editor: tt.editor}, abs, 12) + got, err := editor.CommandFor(editor.Sources{Template: tt.template, Editor: tt.editor}, abs, 12) if err != nil || got.Script != tt.script || got.Window != tt.window { - t.Errorf("editor %q%q = %+v, %v, want script %q, window %v", + t.Errorf("CommandFor(%q, %q) = %+v, %v, want script %q, window %v", tt.template, tt.editor, got, err, tt.script, tt.window) } } } -// TestCommandProgram checks the program of a command. An empty word in -// quotes names no program. +// TestCommandProgram checks the program name that CommandFor finds in a +// command. An empty quoted word names no program. func TestCommandProgram(t *testing.T) { t.Parallel() tests := []struct{ command, want string }{ @@ -63,20 +64,20 @@ func TestCommandProgram(t *testing.T) { const noProgram = "the editor command names no program" for _, tt := range tests { for _, c := range []struct{ template, env string }{{tt.command, ""}, {"", tt.command}} { - got, err := editor.Resolve(editor.Sources{Template: c.template, Editor: c.env}, "/a", 1) + got, err := editor.CommandFor(editor.Sources{Template: c.template, Editor: c.env}, "/a", 1) switch { case tt.want == "" && (err == nil || err.Error() != noProgram): - t.Errorf("Resolve(%q, %q) error = %v, want %q", c.template, c.env, err, noProgram) + t.Errorf("CommandFor(%q, %q) error = %v, want %q", c.template, c.env, err, noProgram) case tt.want != "" && got.Program != tt.want: - t.Errorf("Resolve(%q, %q).Program = %q, want %q", c.template, c.env, got.Program, tt.want) + t.Errorf("CommandFor(%q, %q).Program = %q, want %q", c.template, c.env, got.Program, tt.want) } } } } -// TestResolveOrder checks that the settings come first, then $VISUAL, -// $EDITOR, and core.editor. A blank value does not count. -func TestResolveOrder(t *testing.T) { +// TestCommandForOrder checks that CommandFor prefers the settings, then +// $VISUAL, $EDITOR and core.editor, and that it skips blank values. +func TestCommandForOrder(t *testing.T) { t.Parallel() tests := []struct { template, visual, env, git string @@ -88,14 +89,14 @@ func TestResolveOrder(t *testing.T) { {"", "", "\t", "hx", "hx"}, } for _, tt := range tests { - got, err := editor.Resolve(editor.Sources{Template: tt.template, Visual: tt.visual, Editor: tt.env, Git: tt.git}, "/a", 1) + got, err := editor.CommandFor(editor.Sources{Template: tt.template, Visual: tt.visual, Editor: tt.env, Git: tt.git}, "/a", 1) if err != nil || got.Program != tt.want { - t.Errorf("Resolve(%q, %q, %q, %q) = %q, %v, want %q", + t.Errorf("CommandFor(%q, %q, %q, %q) = %q, %v, want %q", tt.template, tt.visual, tt.env, tt.git, got.Program, err, tt.want) } } const noEditor = `no editor: set "editor" in rexdiff.lua, $EDITOR, or git's core.editor` - if _, err := editor.Resolve(editor.Sources{Visual: " ", Git: "\n"}, "/a", 1); err == nil || err.Error() != noEditor { - t.Errorf("Resolve with no editor: error = %v, want %q", err, noEditor) + if _, err := editor.CommandFor(editor.Sources{Visual: " ", Git: "\n"}, "/a", 1); err == nil || err.Error() != noEditor { + t.Errorf("CommandFor with no editor: error = %v, want %q", err, noEditor) } } diff --git a/internal/search/match.go b/internal/search/match.go index acf5e21..59002bb 100644 --- a/internal/search/match.go +++ b/internal/search/match.go @@ -5,42 +5,40 @@ import ( "unicode" ) -// Match reports whether text has query, with smart case as in -// herdr-reviewr. A query with an upper case letter matches only the same -// case. Else Match ignores the case of ASCII letters only. An empty query -// matches nothing. -func Match(text, query string) bool { +// Matches reports whether text contains query, using smart case. A query +// with an upper-case letter must match case exactly. Otherwise Matches +// ignores case, but only for ASCII letters. An empty query matches +// nothing. +func Matches(text, query string) bool { return Index(text, query) >= 0 } + +// Index returns the byte offset of the first match of query in text, as +// [Matches] finds it, or -1 if there is none. It takes time linear in the +// lengths of text and query. +func Index(text, query string) int { if query == "" { - return false + return -1 } if strings.ContainsFunc(query, unicode.IsUpper) { - return strings.Contains(text, query) - } - for i := 0; i+len(query) <= len(text); i++ { - if foldEqual(text[i:i+len(query)], query) { - return true - } + return strings.Index(text, query) } - return false + // query has no upper-case letter, so it matches the text with its + // ASCII letters in lower case. Lowering ASCII letters keeps the byte + // offsets. + return strings.Index(lowerASCII(text), query) } -// foldEqual reports whether a and b, which have the same length, are equal -// when ASCII letters ignore case. The bytes of a UTF-8 character other -// than ASCII never fold, so a byte compare is correct. -func foldEqual(a, b string) bool { - for i := range len(a) { - if lowerASCII(a[i]) != lowerASCII(b[i]) { - return false - } - } - return true -} - -// lowerASCII returns the lower case of the ASCII letter c. It returns +// lowerASCII returns s with its ASCII letters in lower case. It leaves the // other bytes as they are. -func lowerASCII(c byte) byte { - if 'A' <= c && c <= 'Z' { - return c + 'a' - 'A' +func lowerASCII(s string) string { + i := strings.IndexFunc(s, func(r rune) bool { return 'A' <= r && r <= 'Z' }) + if i < 0 { + return s + } + b := []byte(s) + for k := i; k < len(b); k++ { + if c := b[k]; 'A' <= c && c <= 'Z' { + b[k] = c + 'a' - 'A' + } } - return c + return string(b) } diff --git a/internal/search/search.go b/internal/search/search.go index 1eb10b3..0e2b1fb 100644 --- a/internal/search/search.go +++ b/internal/search/search.go @@ -1,59 +1,72 @@ -// Package search finds the files of the search screen, and the lines of -// the find band. The limits and the smart case come from herdr-reviewr. +// Package search finds the files shown on the search screen and the lines +// shown in the find bar. package search -import ( - "slices" +import "github.com/sahilm/fuzzy" - "github.com/sahilm/fuzzy" -) - -// The limits of the results. A "… more" row tells that there are others. +// Limits on the number of results. A "… more" row shows that there are +// more. const ( - // MaxFiles is the largest number of files that the search shows. + // MaxFiles is the maximum number of files that the search shows. MaxFiles = 50 - // MaxCodeLines is the largest number of matching lines that the search + // MaxGrepLines is the maximum number of matching lines that the search // shows. - MaxCodeLines = 200 + MaxGrepLines = 200 ) -// Files returns at most limit of paths that match q, the best match -// first, and the number of all the matches. For an empty q, the paths in -// recent come first, in their order, and then the other paths. -// herdr-reviewr ranks the files of an empty query by use. rexdiff keeps -// no history, so recent has the picks of this session. -func Files(paths, recent []string, q string, limit int) (hits []string, total int) { - if q == "" { - for _, p := range recent { - if slices.Contains(paths, p) && !slices.Contains(hits, p) { - hits = append(hits, p) - } - } - total = len(paths) - for _, p := range paths { - if len(hits) >= limit { - break - } - if !slices.Contains(hits, p) { - hits = append(hits, p) - } - } - return hits[:min(len(hits), limit)], total +// Files returns up to limit paths that match query, best match first, and +// the total number of matches. If query is empty, it returns the paths in +// recent first, in their order, followed by the other paths. +func Files(paths, recent []string, query string, limit int) (hits []string, total int) { + if query == "" { + return recentFirst(paths, recent, limit), len(paths) } - ms := fuzzy.Find(q, paths) + ms := fuzzy.Find(query, paths) for _, m := range ms[:min(len(ms), limit)] { hits = append(hits, m.Str) } return hits, len(ms) } -// Indices returns the indices of the labels that match q, the best match -// first. The match is the same fuzzy match as in Files. -func Indices(q string, labels []string) []int { - ms := fuzzy.Find(q, labels) - is := make([]int, len(ms)) +// Indices returns the indices of the labels that match query, best match +// first. It uses the same fuzzy matching as [Files]. +func Indices(query string, labels []string) []int { + ms := fuzzy.Find(query, labels) + indices := make([]int, len(ms)) for i, m := range ms { - is[i] = m.Index + indices[i] = m.Index + } + return indices +} + +// recentFirst returns up to limit paths: the paths in recent first, in +// their order, followed by the other paths. It goes through paths once, +// and stops once it has found every recent path and enough others. +func recentFirst(paths, recent []string, limit int) []string { + isRecent := make(map[string]bool, len(recent)) + for _, p := range recent { + isRecent[p] = true + } + found := make(map[string]bool, len(recent)) // the recent paths in paths + var others []string + for _, p := range paths { + if len(found) == len(isRecent) && len(others) >= limit { + break + } + switch { + case isRecent[p]: + found[p] = true + case len(others) < limit: + others = append(others, p) + } + } + var hits []string + for _, p := range recent { + if found[p] { + hits = append(hits, p) + delete(found, p) // a path listed twice in recent appears once + } } - return is + hits = append(hits, others...) + return hits[:min(len(hits), limit)] } diff --git a/internal/search/search_test.go b/internal/search/search_test.go index 2a6ca13..8ffc13c 100644 --- a/internal/search/search_test.go +++ b/internal/search/search_test.go @@ -3,12 +3,14 @@ package search_test import ( "fmt" "slices" + "strings" "testing" "github.com/rednafi/rexdiff/internal/search" ) -// TestFiles checks the order and the limit of the files. +// TestFiles checks the order, limit and total count of the files that +// Files returns. func TestFiles(t *testing.T) { t.Parallel() paths := []string{"a.go", "b.go", "c/d.go", "main.go"} @@ -24,15 +26,15 @@ func TestFiles(t *testing.T) { want []string wantTotal int }{ - {"empty query", "", paths, nil, 50, paths, 4}, - {"recent first", "", paths, []string{"main.go", "b.go"}, 50, []string{"main.go", "b.go", "a.go", "c/d.go"}, 4}, - {"a gone recent pick", "", paths, []string{"gone.go", "b.go"}, 50, []string{"b.go", "a.go", "c/d.go", "main.go"}, 4}, - {"empty query limit", "", paths, []string{"main.go"}, 2, []string{"main.go", "a.go"}, 4}, - {"fuzzy", "dgo", paths, nil, 50, []string{"c/d.go"}, 1}, - {"recent does not rank a query", "go", paths, []string{"main.go"}, 2, []string{"a.go", "b.go"}, 4}, - {"no match", "zzz", paths, nil, 50, nil, 0}, - // A query shows at most the limit, and counts all the matches. - {"query limit", "f", many, nil, search.MaxFiles, many[:search.MaxFiles], 60}, + {name: "empty query", paths: paths, limit: 50, want: paths, wantTotal: 4}, + {name: "recent first", paths: paths, recent: []string{"main.go", "b.go"}, limit: 50, want: []string{"main.go", "b.go", "a.go", "c/d.go"}, wantTotal: 4}, + {name: "a gone recent pick", paths: paths, recent: []string{"gone.go", "b.go"}, limit: 50, want: []string{"b.go", "a.go", "c/d.go", "main.go"}, wantTotal: 4}, + {name: "empty query limit", paths: paths, recent: []string{"main.go"}, limit: 2, want: []string{"main.go", "a.go"}, wantTotal: 4}, + {name: "fuzzy", q: "dgo", paths: paths, limit: 50, want: []string{"c/d.go"}, wantTotal: 1}, + {name: "recent does not rank a query", q: "go", paths: paths, recent: []string{"main.go"}, limit: 2, want: []string{"a.go", "b.go"}, wantTotal: 4}, + {name: "no match", q: "zzz", paths: paths, limit: 50, wantTotal: 0}, + // A query returns at most limit files, but counts every match. + {name: "query limit", q: "f", paths: many, limit: search.MaxFiles, want: many[:search.MaxFiles], wantTotal: 60}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -46,8 +48,8 @@ func TestFiles(t *testing.T) { } } -// TestMatch checks the smart case of herdr-reviewr. -func TestMatch(t *testing.T) { +// TestMatches checks smart-case matching. +func TestMatches(t *testing.T) { t.Parallel() tests := []struct { text, query string @@ -59,23 +61,76 @@ func TestMatch(t *testing.T) { {"FOO", "foo", true}, {"x := 1", "", false}, {"", "a", false}, - {"ÉCOLE", "école", false}, // only ASCII ignores case + {"ÉCOLE", "école", false}, // case is ignored only for ASCII letters {"école", "école", true}, {"Éa", "Éa", true}, {"\tx", "\tx", true}, {"ab", "abc", false}, } for _, tt := range tests { - got := search.Match(tt.text, tt.query) + got := search.Matches(tt.text, tt.query) if got != tt.want { - t.Errorf("Match(%q, %q) = %v, want %v", + t.Errorf("Matches(%q, %q) = %v, want %v", tt.text, tt.query, got, tt.want) } } } -// TestIndices checks that Indices returns the indices of the labels that -// match, the best match first. +// TestIndex checks the offset of the first smart-case match. +func TestIndex(t *testing.T) { + t.Parallel() + tests := []struct { + text, query string + want int + }{ + {"Foo bar foo", "foo", 0}, + {"xx FOO", "foo", 3}, + {"foo Foo", "Foo", 4}, + {"éA", "a", 2}, // offsets count bytes + {"abc", "", -1}, + {"abc", "d", -1}, + } + for _, tt := range tests { + if got := search.Index(tt.text, tt.query); got != tt.want { + t.Errorf("Index(%q, %q) = %d, want %d", tt.text, tt.query, got, tt.want) + } + } +} + +// longFind returns a line of about 2 MB and a 1001-byte query that +// almost matches it everywhere, the slowest input for a naive search. +func longFind() (text, query string) { + return strings.Repeat("a", 2_000_000), strings.Repeat("a", 1000) + "b" +} + +// TestIndexLong checks a query that almost matches a long line at every +// offset. +func TestIndexLong(t *testing.T) { + t.Parallel() + text, query := longFind() + if got := search.Index(text, query); got != -1 { + t.Errorf("Index = %d, want -1", got) + } + if got := search.Index(text+"A"+query, query); got != len(text)+1 { + t.Errorf("Index = %d, want %d", got, len(text)+1) + } +} + +// BenchmarkMatchesLong measures a search in a long line, as the find bar +// does in a minified file. +func BenchmarkMatchesLong(b *testing.B) { + text, query := longFind() + for _, q := range []string{query, strings.ToUpper(query)} { + b.Run(fmt.Sprintf("upper=%v", q != query), func(b *testing.B) { + for b.Loop() { + search.Matches(text, q) + } + }) + } +} + +// TestIndices checks that Indices returns the indices of the matching +// labels, best match first. func TestIndices(t *testing.T) { t.Parallel() labels := []string{"main feat", "dev", "feature x"} diff --git a/internal/turn/turn.go b/internal/turn/turn.go index d925308..c252570 100644 --- a/internal/turn/turn.go +++ b/internal/turn/turn.go @@ -1,59 +1,63 @@ -// Package turn finds the start and the end of each turn of the agents in -// a repository, from the states of the agents. A turn starts when the -// agents go from rest to work. It ends when they rest again. The rules -// come from herdr-reviewr. +// Package turn detects the start and end of each turn of the agents in a +// repository, based on the agents' states. A turn starts when the agents +// go from resting to working, and ends when they rest again. package turn -import "slices" +import ( + "slices" -// state is the work state of a repository. fold makes it from the states -// of all the agents in the repository. + "github.com/rednafi/rexdiff/rex" +) + +// state is the work state of a repository. combine computes it from the +// states of all agents in the repository. type state int const ( - // stateResting tells that each agent rests, or that there is no agent. + // stateResting means that every agent is resting, or that there are no + // agents. stateResting state = iota - // stateWorking tells that at least one agent works. + // stateWorking means that at least one agent is working. stateWorking - // stateHeld tells that no agent works, but one does not rest. For - // example, it waits at a prompt. A turn that is open stays open. + // stateHeld means that no agent is working but at least one is not + // resting, for example because it waits at a prompt. An open turn stays + // open. stateHeld ) -// rests reports whether s is a state between turns. A blocked agent and an -// unknown state are in the middle of a turn. -func rests(s string) bool { return s == "idle" || s == "done" } +// isResting reports whether s is a state between turns. A blocked or +// unknown state counts as part of a turn. +func isResting(s rex.State) bool { return s == rex.StateIdle || s == rex.StateDone } -// fold returns the state of a repository whose agents are in the states -// states. One working agent makes the repository work. -func fold(states ...string) state { - if slices.Contains(states, "working") { +// combine returns the state of a repository whose agents are in the given +// states. A single working agent puts the repository in stateWorking. +func combine(states ...rex.State) state { + if slices.Contains(states, rex.StateWorking) { return stateWorking } - if slices.ContainsFunc(states, func(s string) bool { return !rests(s) }) { + if slices.ContainsFunc(states, func(s rex.State) bool { return !isResting(s) }) { return stateHeld } return stateResting } -// Tracker finds the start and the end of each turn in a series of states. +// Tracker detects the start and end of each turn in a sequence of states. // The zero Tracker is ready to use. type Tracker struct { - // prevResting is true if the last state is resting. It is false at - // first, so the first state starts no turn. + // prevResting is true if the previous state was resting. It starts + // false, so the first state never starts a turn. prevResting bool - // worked is true if the repository works after its last rest. An end - // can come through held, but a start cannot. Thus the two edges keep - // different memories. + // worked is true if the repository has worked since its last rest. It + // stays set while held, because a turn can end after a held state. worked bool } -// Observe takes the states of all the agents in the repository at one -// time. The states are those of the OSC 7501 protocol, for example -// "idle". A turn starts when one agent works after all rest. A turn ends -// when all rest after work, also through a prompt. -func (t *Tracker) Observe(states ...string) (started, ended bool) { - s := fold(states...) +// Observe records the states of all agents in the repository at one +// moment. It reports whether a turn starts or ends. A turn starts when an +// agent starts working after all agents were resting. It ends when all +// agents rest after work, even if a held state came in between. +func (t *Tracker) Observe(states ...rex.State) (started, ended bool) { + s := combine(states...) started = s == stateWorking && t.prevResting ended = t.worked && s == stateResting t.prevResting = s == stateResting @@ -66,6 +70,6 @@ func (t *Tracker) Observe(states ...string) (started, ended bool) { return started, ended } -// Gap tells the Tracker that nobody sees the agents for some time. Then -// the next state cannot start a turn. -func (t *Tracker) Gap() { t.prevResting = false } +// MarkGap tells t that the agents were not observed for some time, so the +// next state cannot start a turn. +func (t *Tracker) MarkGap() { t.prevResting = false } diff --git a/internal/turn/turn_test.go b/internal/turn/turn_test.go index 843757e..49c49b3 100644 --- a/internal/turn/turn_test.go +++ b/internal/turn/turn_test.go @@ -4,44 +4,47 @@ import ( "testing" "github.com/rednafi/rexdiff/internal/turn" + "github.com/rednafi/rexdiff/rex" ) -// The tests come from turn.rs of herdr-reviewr. - -// The states of one agent that give each state of a repository. +// Agent states that put a repository in each of its states. var ( - resting = []string{"idle"} - working = []string{"working"} - held = []string{"blocked"} + resting = []rex.State{"idle"} + working = []rex.State{"working"} + held = []rex.State{"blocked"} ) -// step is one call to a Tracker and the edges that it gives. With gap, -// the step calls Gap and not Observe. +// step is one call to a Tracker and the turn start and end it should +// report. If gap is true, the step calls MarkGap instead of Observe. type step struct { - states []string + states []rex.State gap bool started, ended bool } -// TestFold checks how the states of the agents fold into one state. After a -// rest, only work starts a turn. After work, only a rest ends it. -func TestFold(t *testing.T) { +// TestCombine checks how the states of several agents combine into one +// repository state. After a rest, only work starts a turn. After work, +// only a rest ends it. +func TestCombine(t *testing.T) { t.Parallel() tests := []struct { name string - states []string - // starts tells that the states start a turn after a rest. ends - // tells that they end a turn after work. A held state does neither. + states []rex.State + // starts reports whether the states start a turn after a rest. ends + // reports whether they end a turn after work. A held state does + // neither. starts, ends bool }{ - // No agent rests, so a fresh pane tracks the next turn it sees. + // Having no agents counts as a rest, so a new pane tracks the next + // turn. {"no agent", nil, false, true}, - {"idle and working", []string{"idle", "working"}, true, false}, - {"blocked and working", []string{"blocked", "working"}, true, false}, - {"idle and done", []string{"idle", "done"}, false, true}, - {"blocked and idle", []string{"blocked", "idle"}, false, false}, - // An unknown state never rests, so it starts no turn. - {"unknown", []string{"compacting"}, false, false}, + {"idle and working", []rex.State{"idle", "working"}, true, false}, + {"blocked and working", []rex.State{"blocked", "working"}, true, false}, + {"idle and done", []rex.State{"idle", "done"}, false, true}, + {"blocked and idle", []rex.State{"blocked", "idle"}, false, false}, + // An unknown state never counts as a rest, and it does not start a + // turn. + {"unknown", []rex.State{"compacting"}, false, false}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -49,19 +52,20 @@ func TestFold(t *testing.T) { var rest turn.Tracker rest.Observe(resting...) if started, _ := rest.Observe(tt.states...); started != tt.starts { - t.Errorf("after a rest: started %v, want %v", started, tt.starts) + t.Errorf("after a rest: Observe(%q) started = %v, want %v", tt.states, started, tt.starts) } var work turn.Tracker work.Observe(resting...) work.Observe(working...) if _, ended := work.Observe(tt.states...); ended != tt.ends { - t.Errorf("after work: ended %v, want %v", ended, tt.ends) + t.Errorf("after work: Observe(%q) ended = %v, want %v", tt.states, ended, tt.ends) } }) } } -// TestTracker checks the edges of a series of states. +// TestTracker checks the turn starts and ends that a Tracker reports for +// sequences of states. func TestTracker(t *testing.T) { t.Parallel() tests := []struct { @@ -72,12 +76,12 @@ func TestTracker(t *testing.T) { {states: nil}, {states: working, started: true}, }}, - // The first state never starts a turn. + // The first state observed never starts a turn. {"start after a rest", []step{ {states: resting}, {states: working, started: true}, }}, - // A prompt in the middle of a turn does not start another turn. + // A prompt in the middle of a turn does not start a new turn. {"held back to work continues", []step{ {states: resting}, {states: working, started: true}, @@ -85,13 +89,14 @@ func TestTracker(t *testing.T) { {states: working}, }}, {"end only after work", []step{ - {states: resting}, // no work before, so no end - {states: working, started: true}, // a start is never an end + {states: resting}, // no earlier work, so no end + {states: working, started: true}, // a start is never also an end {states: held}, // a pause, not an end {states: working}, {states: resting, ended: true}, }}, - // The prompt keeps the turn open. A rest after it ends the turn once. + // The prompt keeps the turn open. A rest after it ends the turn, + // and only once. {"end through held", []step{ {states: resting}, {states: working, started: true}, @@ -99,11 +104,12 @@ func TestTracker(t *testing.T) { {states: resting, ended: true}, {states: resting}, }}, - // The start of this turn is not seen. + // The start of this turn was not observed. {"lone first working starts nothing", []step{ {states: working}, }}, - // Nobody sees the agents in a gap, so the next work starts no turn. + // The agents are not observed during a gap, so the next work does + // not start a turn. {"gap", []step{ {states: resting}, {gap: true}, @@ -116,7 +122,7 @@ func TestTracker(t *testing.T) { var tr turn.Tracker for i, st := range tt.steps { if st.gap { - tr.Gap() + tr.MarkGap() continue } started, ended := tr.Observe(st.states...) diff --git a/rex/rex.go b/rex/rex.go index 8a31eb1..90e59b3 100644 --- a/rex/rex.go +++ b/rex/rex.go @@ -1,22 +1,16 @@ -// Package rex controls the Rex terminal through the rex command. In Rex, a -// session has windows, and a window has blocks. A block is one pane, for -// example a terminal that runs a shell or a coding agent. +// Package rex controls the Rex terminal through the rex command. // -// An agent sends its name and state to Rex with the OSC 7501 escape code, -// for example "pi" and "working". This is the status of the program. A -// [Client] finds the agents in a session, pastes text into an agent, and -// gets each status change. -// -// The caller gives the environment as a value, as in [exec.Cmd.Env]. The -// package finds rex with it and runs rex with it. It does not read the -// environment of the process. +// A Rex session has windows, and a window has blocks, which are panes +// such as a terminal that runs a coding agent. An agent reports its app +// name and state with the OSC 7501 escape sequence. A [Client] lists the +// agents in a session, pastes text into them and watches their status. package rex import ( "bufio" - "bytes" "cmp" "context" + "encoding/json/jsontext" "encoding/json/v2" "fmt" "os" @@ -27,44 +21,46 @@ import ( "strings" "sync" "time" + "unicode/utf8" "github.com/rednafi/rexdiff/internal/proc" ) // Client runs rex commands in one Rex session. type Client struct { - block string // the block of this process, or "" - session string // the ID of the session - bin string // the path of the rex command, or "" for "rex" in PATH - env []string // the environment of rex + block string // the ID of the block that runs this process, or "" + session string // the session ID + bin string // the path of the rex binary, or "" to use "rex" from PATH + env []string // the environment for rex } -// New returns a client for the session in the environment env, for -// example the environment of the process from [os.Environ]. Rex sets -// REX_SESSION and REX_BLOCK in each block. New returns nil if env is not -// the environment of a Rex block. The client runs rex with env. -func New(env []string) *Client { +// New returns a client for the Rex session described by env, such as the +// result of [os.Environ]. It reads REX_SESSION and REX_BLOCK, which Rex +// sets in every block. If REX_SESSION is not set, the process does not run +// in Rex, and New returns nil and false. The client runs rex with env. +func New(env []string) (*Client, bool) { session := proc.Getenv(env, "REX_SESSION") if session == "" { - return nil + return nil, false } - return &Client{ + c := &Client{ block: proc.Getenv(env, "REX_BLOCK"), session: session, - bin: binFromEnv(env), + bin: binPath(env), env: env, } + return c, true } -// Block returns the block of this process, or "" if Rex does not tell it. +// Block returns the ID of the block that runs this process, or "" if it is +// not known. func (c *Client) Block() string { return c.block } -// binFromEnv returns the path of the rex command in env, or "" for the rex -// in PATH. Rex sets REX_BIN_DIR in its terminals. Other programs, for -// example brew, do not have it. If REX_BIN_DIR is empty and PATH has no -// rex, binFromEnv looks in HOME on macOS. It returns the rex of the Rex -// server app, if it is there. -func binFromEnv(env []string) string { +// binPath returns the path of the rex binary to use for env, or "" to use +// rex from PATH. It prefers REX_BIN_DIR, which Rex sets in its terminals. +// If that is not set and PATH has no rex, on macOS it returns the rex +// binary inside the Rex Server app in HOME, if it exists. +func binPath(env []string) string { if dir := proc.Getenv(env, "REX_BIN_DIR"); dir != "" { return filepath.Join(dir, "rex") } @@ -75,7 +71,7 @@ func binFromEnv(env []string) string { if runtime.GOOS != "darwin" || home == "" { return "" } - // The app is in the directory of os.UserConfigDir on macOS. + // On macOS, this is the directory that os.UserConfigDir returns. dir := filepath.Join(home, "Library", "Application Support") bin := filepath.Join(dir, "com.superlogical.rex", "RexServer", "Versions", "Current", "Rex Server.app", "Contents", "MacOS", "rex") if _, err := os.Stat(bin); err != nil { @@ -84,16 +80,16 @@ func binFromEnv(env []string) string { return bin } -// command returns the command "rex args...". +// command returns a command that runs rex with args. func (c *Client) command(ctx context.Context, args ...string) *exec.Cmd { return proc.Command(ctx, c.env, cmp.Or(c.bin, "rex"), args...) } -// runRex runs "rex args..." and returns the output. If rex fails, the -// error is the first line of the error output of rex. -func (c *Client) runRex(ctx context.Context, args ...string) ([]byte, error) { +// run runs rex with args and returns its standard output. If rex fails, +// the error includes the first line of its standard error. +func (c *Client) run(ctx context.Context, args ...string) ([]byte, error) { cmd := c.command(ctx, args...) - var stderr bytes.Buffer + var stderr proc.Head cmd.Stderr = &stderr out, err := cmd.Output() if err != nil { @@ -102,10 +98,10 @@ func (c *Client) runRex(ctx context.Context, args ...string) ([]byte, error) { return out, nil } -// runRexJSON runs "rex args..." and decodes the JSON output into v. An -// error of the decoder names the rex command. -func (c *Client) runRexJSON(ctx context.Context, v any, args ...string) error { - out, err := c.runRex(ctx, args...) +// runJSON runs rex with args and decodes its JSON output into v. A +// decoding error names the rex subcommand. +func (c *Client) runJSON(ctx context.Context, v any, args ...string) error { + out, err := c.run(ctx, args...) if err != nil { return err } @@ -115,15 +111,17 @@ func (c *Client) runRexJSON(ctx context.Context, v any, args ...string) error { return nil } -// request sends a request to the API of the session. It runs -// "rex api call -s SESSION METHOD ARGS", with args as JSON. If reply is -// not nil, request decodes the reply of Rex into it. +// request calls the session API method with args encoded as JSON. If +// reply is not nil, request decodes the response into it. func (c *Client) request(ctx context.Context, method string, args, reply any) error { - body, err := json.Marshal(args) + // Rex encodes the request again, with its own escaping, so whether + // this escapes HTML characters does not change the size Rex measures. + // Leaving them unescaped keeps the command line short and readable. + body, err := json.Marshal(args, jsontext.EscapeForHTML(false)) if err != nil { return err } - out, err := c.runRex(ctx, "api", "call", "-s", c.session, method, string(body)) + out, err := c.run(ctx, "api", "call", "-s", c.session, method, string(body)) if err != nil || reply == nil { return err } @@ -133,41 +131,40 @@ func (c *Client) request(ctx context.Context, method string, args, reply any) er return nil } -// Status is the status that a program sends to Rex with OSC 7501. +// Status is the status that a program reports to Rex with OSC 7501. type Status struct { - App string // the name of the program, for example "pi" or "claude-code" + App string // the program name, for example "pi" or "claude-code" State State - At time.Time // when Rex got the status, or zero if Rex does not tell + At time.Time // when Rex received the status, or zero if Rex does not say } -// State tells what a program does. The zero State means that the program -// sends no status. +// State describes what a program is doing. The zero State means that the +// program reports no status. type State string -// The known states of the OSC 7501 protocol. A State can have other -// values, for example "error". +// The states that the OSC 7501 protocol defines. A State can also have +// other values, such as "error". const ( - StateIdle State = "idle" // waits for the next instruction of the user - StateWorking State = "working" // does a task - StateDone State = "done" // waits for the user to see the done task - StateBlocked State = "blocked" // waits for an action of the user + StateIdle State = "idle" // waiting for the user's next instruction + StateWorking State = "working" // working on a task + StateDone State = "done" // finished a task that the user has not seen yet + StateBlocked State = "blocked" // waiting for the user to act ) -// statusEntry is a status as Rex sends it. A program can send one status -// for itself and one for each of its sub-agents. The status of the -// program itself has no ID. +// statusEntry is a status as Rex returns it. A program can report one +// status for itself, with an empty ID, and one for each of its sub-agents. type statusEntry struct { ID string `json:"id"` State State `json:"state"` App string `json:"app"` - // EffectiveApp is the name that Rex shows. It can differ from App. + // EffectiveApp is the name that Rex displays. It can differ from App. EffectiveApp string `json:"effective_app"` UpdatedAt string `json:"updated_at"` // RFC 3339 } -// status returns the entry as a Status, with the name that Rex shows. +// status converts e to a Status, using the name that Rex displays. func (e statusEntry) status() Status { - at, _ := time.Parse(time.RFC3339Nano, e.UpdatedAt) // zero if bad + at, _ := time.Parse(time.RFC3339Nano, e.UpdatedAt) // zero if the time does not parse return Status{ App: cmp.Or(e.EffectiveApp, e.App), State: e.State, @@ -175,15 +172,15 @@ func (e statusEntry) status() Status { } } -// Status returns the status of the program in block. If the program sends -// no status, Status returns the zero Status. The statuses of the -// sub-agents of the program do not count, as in [Client.Watch]. +// Status returns the status of the program in block, or the zero Status if +// the program reports none. Like [Client.Events], it ignores the statuses +// of sub-agents. func (c *Client) Status(ctx context.Context, block string) (Status, error) { var reply struct { Entries []statusEntry `json:"records"` } args := []string{"block", "call", "-s", c.session, "-b", block, "program_status"} - if err := c.runRexJSON(ctx, &reply, args...); err != nil { + if err := c.runJSON(ctx, &reply, args...); err != nil { return Status{}, err } if i := slices.IndexFunc(reply.Entries, func(e statusEntry) bool { return e.ID == "" }); i >= 0 { @@ -197,38 +194,37 @@ func (c *Client) Cwd(ctx context.Context, block string) (string, error) { type process struct { Cwd string `json:"cwd"` // a path, or a file:// URL } - // The foreground process is the program that holds the terminal, for - // example an agent that runs in a shell. The child is the shell. + // Foreground is the process that owns the terminal, for example an + // agent started from a shell. Child is the shell itself. var reply struct { Foreground process `json:"foreground"` Child process `json:"child"` } args := []string{"block", "call", "-s", c.session, "-b", block, "process"} - if err := c.runRexJSON(ctx, &reply, args...); err != nil { + if err := c.runJSON(ctx, &reply, args...); err != nil { return "", err } cwd := cmp.Or(reply.Foreground.Cwd, reply.Child.Cwd) return strings.TrimPrefix(cwd, "file://"), nil } -// Agent is a block whose program sends a status with an app name. +// Agent is a block whose program reports a status with an app name. type Agent struct { - Block string // the ID of the block - Name string // the label of the block, or else the app name - Window string // the label of the window of the block, or "" + Block string // the block ID + Name string // the block label, or the app name if the block has no label + Window string // the label of the block's window, or "" Cwd string // the working directory of the program Status Status } -// terminalCreator is the creator that Rex gives to a terminal block. -// Other blocks, for example a browser, cannot run an agent. +// terminalCreator is the creator name of terminal blocks. Only a terminal +// block can run an agent. const terminalCreator = "com.superlogical.terminal" -// Agents returns the agents in the session, in the order of the layout. -// It does not return the block of the client. If ctx ends, Agents returns -// the cause of ctx. +// Agents returns the agents in the session in layout order, leaving out +// the client's own block. If ctx ends, Agents returns the cause of ctx. func (c *Client) Agents(ctx context.Context) ([]Agent, error) { - // Get the windows at the same time as the blocks. + // List the windows while the blocks are being listed. var windows []window var wg sync.WaitGroup wg.Go(func() { windows = c.windows(ctx) }) @@ -246,8 +242,8 @@ func (c *Client) Agents(ctx context.Context) ([]Agent, error) { return nil, err } - // Ask each terminal block for its status at the same time. A block is - // an agent if its program sends an app name. + // Fetch the status of each terminal block in parallel. A block is an + // agent if its program reports an app name. agents := make([]Agent, len(reply.Blocks)) for i, b := range reply.Blocks { if b.ID == c.block || b.Creator != terminalCreator { @@ -258,8 +254,7 @@ func (c *Client) Agents(ctx context.Context) ([]Agent, error) { if err != nil || status.App == "" { return } - // If Rex cannot tell the directory, Cwd is "". The agent stays - // in the list. + // If Cwd fails, keep the agent with an empty working directory. cwd, _ := c.Cwd(ctx, b.ID) agents[i] = Agent{ Block: b.ID, @@ -271,8 +266,8 @@ func (c *Client) Agents(ctx context.Context) ([]Agent, error) { } wg.Wait() if ctx.Err() != nil { - // A status call that fails at the deadline does not tell that the - // block is not an agent. + // A status call that failed because ctx ended does not mean that + // the block is not an agent. return nil, context.Cause(ctx) } @@ -289,20 +284,19 @@ type window struct { Label string `json:"label"` } -// windows returns the windows of the session. If rex fails, windows returns -// nil. +// windows returns the windows of the session, or nil if rex fails. func (c *Client) windows(ctx context.Context) []window { var reply struct { Windows []window `json:"windows"` } - if c.runRexJSON(ctx, &reply, "session", "inspect", c.session, "--json") != nil { + if c.runJSON(ctx, &reply, "session", "inspect", c.session, "--json") != nil { return nil } return reply.Windows } -// windowLabel returns the label of the window with the ID id. If no window -// has this ID, it returns "". +// windowLabel returns the label of the window with the given id, or "" if +// there is no such window. func windowLabel(windows []window, id string) string { if i := slices.IndexFunc(windows, func(w window) bool { return w.ID == id }); i >= 0 { return windows[i].Label @@ -310,9 +304,9 @@ func windowLabel(windows []window, id string) string { return "" } -// Resolve returns the ID of the block that target names. The target is a -// block ID, a block label, or the end of a block ID. -func (c *Client) Resolve(ctx context.Context, target string) (string, error) { +// ResolveBlock returns the ID of the block that target refers to. target +// can be a block ID, a block label or the end of a block ID. +func (c *Client) ResolveBlock(ctx context.Context, target string) (string, error) { if strings.HasPrefix(target, "block:") { return target, nil } @@ -321,16 +315,56 @@ func (c *Client) Resolve(ctx context.Context, target string) (string, error) { ID string `json:"block_id"` } `json:"block"` } - err := c.runRexJSON(ctx, &reply, "block", "inspect", target, "-s", c.session, "--json") + err := c.runJSON(ctx, &reply, "block", "inspect", target, "-s", c.session, "--json") if err != nil { return "", err } return reply.Block.ID, nil } -// Paste pastes text into the program in block, as if the user pasted it. -// Paste does not press Enter, so the program does not submit the text. +// maxPastePart is the most bytes that the text of one paste event may take +// once Rex encodes it as JSON. Rex refuses a control message larger than +// 65,536 bytes, and the rest of the message takes a few hundred bytes, so +// this leaves a wide margin. +const maxPastePart = 48 << 10 + +// PasteError is the error from a [Client.Paste] that failed after it had +// pasted some parts of the text. +type PasteError struct { + Pasted, Parts int // the number of parts pasted, and of all parts + Err error // the error from the part that failed +} + +// Error returns the counts of parts and the error of the part that failed. +func (e *PasteError) Error() string { + return fmt.Sprintf("pasted only %d of %d parts: %v", e.Pasted, e.Parts, e.Err) +} + +// Unwrap returns e.Err. +func (e *PasteError) Unwrap() error { return e.Err } + +// Paste pastes text into the program in block as if the user had pasted +// it. Paste does not press Enter, so the program does not submit the text. +// +// Rex limits the size of one paste, so Paste splits a long text into parts +// and pastes them in order, which the program sees as several pastes. It +// splits only between characters, after a newline where it can. If a part +// fails after others were pasted, the error is a [*PasteError]. func (c *Client) Paste(ctx context.Context, block, text string) error { + parts := pasteParts(text, maxPastePart) + for i, part := range parts { + if err := c.pastePart(ctx, block, part); err != nil { + if i == 0 { + return err + } + return &PasteError{Pasted: i, Parts: len(parts), Err: err} + } + } + return nil +} + +// pastePart pastes text with one paste event. +func (c *Client) pastePart(ctx context.Context, block, text string) error { type paste struct { Text string `json:"text"` } @@ -348,6 +382,52 @@ func (c *Client) Paste(ctx context.Context, block, text string) error { return c.request(ctx, "block.event", args, nil) } +// pasteParts splits text into parts whose JSON encoding, as Rex measures +// it, takes at most limit bytes. Each part ends between two characters, +// after the last newline that fits if it is in the second half of the +// part. It returns one part for a text that fits, including the empty text. +func pasteParts(text string, limit int) []string { + var parts []string + for { + end, newline, size := 0, 0, 0 + for end < len(text) { + r, n := utf8.DecodeRuneInString(text[end:]) + size += encodedLen(r, n) + if size > limit && end > 0 { + break + } + end += n + if r == '\n' { + newline = end + } + } + if end == len(text) { + return append(parts, text) + } + if newline > end/2 { + end = newline + } + parts = append(parts, text[:end]) + text = text[end:] + } +} + +// encodedLen returns the most bytes that the rune r, which takes n bytes +// of the text, can take in a JSON string. Rex encodes like Go's +// encoding/json package, which escapes the HTML characters <, > and &, the +// line and paragraph separators and most control characters as \uXXXX, +// and replaces an invalid byte with \ufffd. +func encodedLen(r rune, n int) int { + switch { + case r == '"' || r == '\\' || r == '\n' || r == '\r' || r == '\t': + return 2 + case r < 0x20 || r == '<' || r == '>' || r == '&' || + r == '\u2028' || r == '\u2029' || r == utf8.RuneError && n == 1: + return 6 + } + return n +} + // Focus moves the keyboard focus to block. func (c *Client) Focus(ctx context.Context, block string) error { args := struct { @@ -365,17 +445,17 @@ func (c *Client) SetLabel(ctx context.Context, block, label string) error { return c.request(ctx, "session.set_block_label", args, nil) } -// Split opens a new terminal block next to the block of the client. The -// new block runs the command argv in the directory cwd. +// Split opens a new terminal block next to the client's block and runs +// the command argv in it, in the directory cwd. func (c *Client) Split(ctx context.Context, cwd string, argv ...string) error { args := []string{"split", "-s", c.session, "-b", c.block, "--cwd", cwd, "--"} - _, err := c.runRex(ctx, append(args, argv...)...) + _, err := c.run(ctx, append(args, argv...)...) return err } -// ConfigPath returns the path of the configuration file of Rex in the -// environment env. This is $REX_CONFIG if it is set. If not, it is -// init.lua in the rex directory of $XDG_CONFIG_HOME, or of $HOME/.config. +// ConfigPath returns the path of the Rex configuration file for env. It is +// $REX_CONFIG if set, or else rex/init.lua in $XDG_CONFIG_HOME or +// $HOME/.config. func ConfigPath(env []string) string { if path := proc.Getenv(env, "REX_CONFIG"); path != "" { return path @@ -387,45 +467,46 @@ func ConfigPath(env []string) string { return filepath.Join(dir, "rex", "init.lua") } -// ReloadConfig tells Rex to read its configuration file again. It runs -// rex with the environment env. It also works outside a Rex session. +// ReloadConfig tells Rex to read its configuration file again. It runs rex +// with env and also works outside a Rex session. func ReloadConfig(ctx context.Context, env []string) error { - c := &Client{bin: binFromEnv(env), env: env} - _, err := c.runRex(ctx, "config", "reload") + c := &Client{bin: binPath(env), env: env} + _, err := c.run(ctx, "config", "reload") return err } -// Event is a change to a block in the session, or a reconnect. +// Event is a change to a block in the session, or a notice that +// [Client.Events] has restarted rex. type Event struct { - Block string // the ID of the block + Block string // the block ID Closed bool // true if the block closed - // Status is the new status of the program in the block. If the program - // removes its status, Status is the zero Status. + // Status is the new status of the program in the block, or the zero + // Status if the program removed its status. Status Status - // Reconnect is true if Watch starts rex again. The events between the - // two runs of rex are lost. A Reconnect event has no block. + // Reconnect is true if Events restarted rex. Events that happened while + // rex was not running are lost. A Reconnect event has no block. Reconnect bool - // Err is the error of a run of rex that fails, with the first line - // of its stderr. An event with Err has no block. Watch starts rex - // again after the event. + // Err is the error from a failed rex run, including the first line of + // its standard error. An event with Err has no block, and Events + // restarts rex after it. Err error } const ( - // reconnectDelay is the time that Watch waits before it starts rex again. + // reconnectDelay is how long Events waits before it restarts rex. reconnectDelay = 2 * time.Second - // maxEventLine is the length of the longest event line that Watch reads. + // maxEventLine is the longest event line, in bytes, that Events accepts. maxEventLine = 1 << 20 ) -// Watch calls fn for each event in the session, from one goroutine. It -// runs "rex events" to get the events. If rex fails, Watch calls fn with -// an event that has the error. If rex stops, Watch starts it again after -// 2 seconds. Then it calls fn with a Reconnect event before the next -// events. Watch returns the cause of ctx when ctx is done. -func (c *Client) Watch(ctx context.Context, fn func(Event)) error { +// Events runs "rex events" and calls fn for each event in the session, +// from a single goroutine. If rex fails, Events calls fn with an event +// that holds the error. When rex stops, Events restarts it after +// 2 seconds and reports a Reconnect event before any new events. +// Events returns the cause of ctx when ctx is done. +func (c *Client) Events(ctx context.Context, fn func(Event)) error { for again := false; ; again = true { - if err := c.watchOnce(ctx, again, fn); err != nil && ctx.Err() == nil { + if err := c.eventsOnce(ctx, again, fn); err != nil && ctx.Err() == nil { fn(Event{Err: err}) } select { @@ -436,12 +517,12 @@ func (c *Client) Watch(ctx context.Context, fn func(Event)) error { } } -// watchOnce runs "rex events" and calls fn for each event until rex stops. -// If again is true, the first event is a Reconnect event. It returns the -// error of rex, with the first line of its stderr. -func (c *Client) watchOnce(ctx context.Context, again bool, fn func(Event)) error { +// eventsOnce runs "rex events" once and calls fn for each event until rex +// stops. If again is true, it first reports a Reconnect event. The +// returned error includes the first line of rex's standard error. +func (c *Client) eventsOnce(ctx context.Context, again bool, fn func(Event)) error { cmd := c.command(ctx, "events", "-s", c.session, "--json") - var stderr bytes.Buffer + var stderr proc.Head cmd.Stderr = &stderr out, err := cmd.StdoutPipe() if err != nil { @@ -461,8 +542,8 @@ func (c *Client) watchOnce(ctx context.Context, again bool, fn func(Event)) erro } } if err := lines.Err(); err != nil { - // A line is too long. Stop rex, because rex can wait until Watch - // reads the rest of its output. + // A line is too long. Kill rex, because it can block until someone + // reads its output. _ = cmd.Process.Kill() _ = cmd.Wait() return fmt.Errorf("rex events: %w", err) @@ -473,23 +554,24 @@ func (c *Client) watchOnce(ctx context.Context, again bool, fn func(Event)) erro return nil } -// blockEvent is an event of one block in "rex events --json". +// blockEvent is an event about one block in the output of +// "rex events --json". type blockEvent struct { Block string `json:"block_id"` Name string `json:"name"` // for example "program_status_changed" Data statusData `json:"payload"` } -// statusData is the data of a status event. Changed has the new status. -// Removed has the IDs of the removed statuses. +// statusData is the payload of a status event. Changed holds the new +// status and Removed holds the IDs of the removed statuses. type statusData struct { ID string `json:"id"` Changed statusEntry `json:"record"` Removed []string `json:"ids"` } -// parseEvent decodes one line of "rex events --json". It returns false if -// the line is not an event that Watch reports. +// parseEvent decodes one line of "rex events --json" output. It returns +// false if the line is not an event that Events reports. func parseEvent(line []byte) (Event, bool) { var msg struct { Payload struct { @@ -513,9 +595,9 @@ func parseEvent(line []byte) (Event, bool) { return Event{}, false } -// statusEvent returns the change of status in b. It reports only the -// status of the program itself, which has no ID. It ignores the statuses -// of its sub-agents. It returns false if b changes no such status. +// statusEvent returns the status change in b. It reports only changes to +// the program's own status, which has an empty ID, and ignores sub-agents. +// It returns false if b does not change that status. func statusEvent(b blockEvent) (Event, bool) { ev := Event{Block: b.Block} switch b.Name { diff --git a/rex/rex_test.go b/rex/rex_test.go index 93db25a..eb2a951 100644 --- a/rex/rex_test.go +++ b/rex/rex_test.go @@ -2,6 +2,7 @@ package rex_test import ( "context" + jsonv1 "encoding/json" "errors" "fmt" "os" @@ -13,14 +14,15 @@ import ( "testing" "testing/synctest" "time" + "unicode/utf8" "github.com/rednafi/rexdiff/internal/testgit" "github.com/rednafi/rexdiff/rex" ) -// client writes a rex script with body in a new directory. It returns the -// client of New in the environment of the block block:self in the session -// S, and the directory. +// client writes a fake rex script with the given body to a new directory. +// It returns a client for the block block:self in the session S that runs +// the script, and the directory. func client(t *testing.T, body string) (*rex.Client, string) { t.Helper() dir := t.TempDir() @@ -31,16 +33,16 @@ func client(t *testing.T, body string) (*rex.Client, string) { "REX_BLOCK=block:self", "REX_BIN_DIR=" + dir, } - c := rex.New(env) - if c == nil || c.Block() != "block:self" { + c, ok := rex.New(env) + if !ok || c.Block() != "block:self" { t.Fatalf("New(%q) = %+v, want the block block:self", env, c) } return c, dir } -// fakeRex returns a client of a rex script that answers with recorded -// output. The script logs each call to the file "calls" in its directory, -// and prints the file "events" for "rex events". +// fakeRex returns a client that runs a fake rex script with canned +// responses. The script appends each call to the file "calls" in its +// directory, and for "rex events" it prints the file "events". func fakeRex(t *testing.T) (*rex.Client, string) { t.Helper() script := `printf "%s\n" "$*" >> "${0%/*}/calls" @@ -84,8 +86,9 @@ esac return client(t, script) } -// TestAgents checks that Agents returns only the terminal blocks that send -// an app name, without the block of the client. +// TestAgents checks that Agents returns only the terminal blocks whose +// program reports an app name, leaves out the client's own block, and +// fills in the window label and working directory. func TestAgents(t *testing.T) { t.Parallel() c, _ := fakeRex(t) @@ -114,21 +117,22 @@ func TestAgents(t *testing.T) { } } -// TestCommands checks the rex calls of Resolve, Paste, Focus, Split, and -// SetLabel. +// TestCommands checks the rex commands that ResolveBlock, Paste, Focus, +// Split and SetLabel run, and the error that ResolveBlock returns for an +// unknown block. func TestCommands(t *testing.T) { t.Parallel() c, dir := fakeRex(t) ctx := t.Context() - if id, err := c.Resolve(ctx, "agent"); err != nil || id != "block:pi" { - t.Errorf("Resolve(agent) = %q, %v, want block:pi, nil", id, err) + if id, err := c.ResolveBlock(ctx, "agent"); err != nil || id != "block:pi" { + t.Errorf("ResolveBlock(agent) = %q, %v, want block:pi, nil", id, err) } - if id, _ := c.Resolve(ctx, "block:x"); id != "block:x" { - t.Errorf("Resolve(block:x) = %q, want block:x", id) + if id, _ := c.ResolveBlock(ctx, "block:x"); id != "block:x" { + t.Errorf("ResolveBlock(block:x) = %q, want block:x", id) } - _, err := c.Resolve(ctx, "nosuch") + _, err := c.ResolveBlock(ctx, "nosuch") if err == nil || err.Error() != "no block matches nosuch" { - t.Errorf("Resolve(nosuch): err = %v, want %q", + t.Errorf("ResolveBlock(nosuch): err = %v, want %q", err, "no block matches nosuch") } if err := c.Paste(ctx, "block:pi", "a\n\tb"); err != nil { @@ -162,22 +166,22 @@ func TestCommands(t *testing.T) { } } -// blockEvent returns a line of "rex events --json" for an event of block -// with the name and the payload. +// blockEvent returns a "rex events --json" line for an event with the +// given name and payload in block. func blockEvent(block, name, payload string) string { return `{"type":"session_event","payload":{"session_id":"S",` + `"event":{"type":"block_event","payload":{"block_id":"` + block + `","name":"` + name + `","payload":` + payload + `}}}}` } -// TestWatch checks that Watch reports only the changes of the status of -// the program, with the time of Rex, and closed blocks. The fake rex stops -// after the events, so Watch reports a reconnect and then the events -// again. -func TestWatch(t *testing.T) { +// TestEvents checks that Events reports changes to the program's own +// status, with the time from Rex, and closed blocks, and ignores sub-agent +// statuses and lines that are not JSON. It also checks that Events sends a +// Reconnect event after rex stops and then reports the events again. +func TestEvents(t *testing.T) { t.Parallel() - // synctest has a fake clock. Thus the test does not wait 2 seconds - // before rex starts again. + // synctest uses a fake clock, so the test does not wait 2 seconds for + // rex to restart. synctest.Test(t, func(t *testing.T) { c, dir := fakeRex(t) events := strings.Join([]string{ @@ -188,7 +192,7 @@ func TestWatch(t *testing.T) { blockEvent("block:pi", "program_status_changed", `{"id":"sub","record":{"state":"idle"}}`), `not json`, - // The removal of a sub record is not a change of the agent. + // Removing a sub-agent status is not reported. blockEvent("block:pi", "program_status_removed", `{"ids":["sub"],"reason":"clear"}`), blockEvent("block:pi", "program_status_removed", @@ -205,18 +209,18 @@ func TestWatch(t *testing.T) { {Block: "block:pi", Closed: true}, } want := slices.Concat(once, []rex.Event{{Reconnect: true}}, once) - // Stop Watch when it reports all the events. + // Stop Events once it has reported every expected event. ctx, cancel := context.WithCancelCause(t.Context()) defer cancel(fmt.Errorf("test: done: %w", context.Canceled)) errAll := errors.New("the test has all the events") var got []rex.Event - err := c.Watch(ctx, func(e rex.Event) { + err := c.Events(ctx, func(e rex.Event) { if got = append(got, e); len(got) == len(want) { cancel(errAll) } }) if !errors.Is(err, errAll) { - t.Errorf("Watch = %v, want the cause %v", err, errAll) + t.Errorf("Events = %v, want the cause %v", err, errAll) } if !slices.Equal(got, want) { t.Errorf("events = \n%+v\nwant:\n%+v", got, want) @@ -224,18 +228,19 @@ func TestWatch(t *testing.T) { }) } -// TestNew checks that New returns nil outside Rex. The client of the -// other tests comes from New in a fake block. +// TestNew checks that New returns nil and false when REX_SESSION is +// missing or empty. func TestNew(t *testing.T) { t.Parallel() for _, env := range [][]string{nil, {"REX_SESSION=S", "REX_SESSION="}} { - if c := rex.New(env); c != nil { - t.Errorf("New(%q) outside Rex = %+v, want nil", env, c) + if c, ok := rex.New(env); c != nil || ok { + t.Errorf("New(%q) outside Rex = %+v, %t, want nil, false", env, c, ok) } } } -// TestConfigPath checks the places of the configuration file of Rex. +// TestConfigPath checks that ConfigPath prefers REX_CONFIG, then +// XDG_CONFIG_HOME, then HOME. func TestConfigPath(t *testing.T) { t.Parallel() tests := []struct { @@ -253,15 +258,15 @@ func TestConfigPath(t *testing.T) { } } -// TestReloadConfigOutsideRex checks that ReloadConfig runs the rex of the -// Rex server app outside a Rex terminal. +// TestReloadConfigOutsideRex checks that, outside a Rex terminal, +// ReloadConfig runs the rex binary inside the Rex Server app. func TestReloadConfigOutsideRex(t *testing.T) { t.Parallel() if runtime.GOOS != "darwin" { t.Skip("the Rex server app is on macOS") } - // Outside a Rex terminal, for example under brew, REX_BIN_DIR is not set - // and rex is not in PATH. + // Outside a Rex terminal, for example when brew runs rexdiff, + // REX_BIN_DIR is not set and rex is not in PATH. home := t.TempDir() env := []string{"HOME=" + home, "REX_BIN_DIR=", "PATH=" + t.TempDir()} dir := filepath.Join(home, "Library", "Application Support", "com.superlogical.rex", "RexServer", "Versions", "Current", "Rex Server.app", "Contents", "MacOS") @@ -282,8 +287,8 @@ func TestReloadConfigOutsideRex(t *testing.T) { } } -// TestErrorKeepsCause checks that the error of a failed rex is the message -// of rex. The error also wraps the exit error of the process. +// TestErrorKeepsCause checks that when rex fails, the error has rex's +// message and wraps the [*exec.ExitError]. func TestErrorKeepsCause(t *testing.T) { t.Parallel() c, _ := client(t, "echo 'Error: no Rex server' >&2\nexit 3\n") @@ -291,6 +296,81 @@ func TestErrorKeepsCause(t *testing.T) { ee, ok := errors.AsType[*exec.ExitError](err) if err == nil || err.Error() != "no Rex server" || !ok || ee.ExitCode() != 3 { t.Errorf("Focus error = %v, exit error %v, want %q wrapping exit 3", - err, ok, "no Rex server") + err, ee, "no Rex server") + } +} + +// TestPasteLong checks that Paste sends a text that Rex would refuse in one +// message as several paste events, in order, each well under Rex's limit +// of 65,536 bytes once encoded, and that the parts join to the text. Each +// part holds whole characters and, as the lines are short, ends after a +// newline. +func TestPasteLong(t *testing.T) { + t.Parallel() + // Each call saves its last argument, the JSON arguments, to a file. + c, dir := client(t, `d="${0%/*}" +n=$(ls "$d" | grep -c '^call') +for last; do :; done +printf '%s' "$last" > "$d/call$n" +`) + // Rex escapes each of <, & and > as 6 bytes, so this text of 150 KB + // takes 600 KB once encoded. The other characters take 1 to 6 bytes. + text := strings.Repeat("<&>\n", 12_500) + strings.Repeat("日本é\u2028\x01\"\\\t\n", 5000) + "日本" + if err := c.Paste(t.Context(), "block:pi", text); err != nil { + t.Fatal(err) + } + var parts []string + for i := 0; ; i++ { + b, err := os.ReadFile(filepath.Join(dir, fmt.Sprintf("call%d", i))) + if errors.Is(err, os.ErrNotExist) { + if i < 2 { + t.Fatalf("Paste made %d calls, want several", i) + } + break + } + if err != nil { + t.Fatal(err) + } + var args struct { + Event struct { + Type string + Payload struct{ Text string } + } + } + if err := jsonv1.Unmarshal(b, &args); err != nil { + t.Fatalf("call %d: %v", i, err) + } + // Rex encodes the text again, escaping HTML characters. + encoded, _ := jsonv1.Marshal(args.Event.Payload.Text) + if n := len(encoded); n > 60_000 { + t.Errorf("call %d holds %d bytes once encoded, want at most 60,000", i, n) + } + parts = append(parts, args.Event.Payload.Text) + } + for i, p := range parts[:len(parts)-1] { + if !utf8.ValidString(p) || !strings.HasSuffix(p, "\n") { + t.Errorf("part %d ends with %q, want whole characters and a newline", i, p[max(0, len(p)-8):]) + } + } + if got := strings.Join(parts, ""); got != text { + t.Errorf("the pasted parts join to %d bytes that differ from the %d of the text", + len(got), len(text)) + } +} + +// TestPastePartFails checks that when a part after the first fails, Paste +// returns a PasteError that says how many parts were pasted. +func TestPastePartFails(t *testing.T) { + t.Parallel() + c, _ := client(t, `d="${0%/*}" +echo >> "$d/calls" +if [ "$(wc -l < "$d/calls")" -ge 2 ]; then echo "Error: block closed" >&2; exit 1; fi +`) + err := c.Paste(t.Context(), "block:pi", strings.Repeat("x", 200_000)) + if pe, ok := errors.AsType[*rex.PasteError](err); !ok || pe.Pasted != 1 || pe.Parts < 3 { + t.Fatalf("Paste: err = %v, want a PasteError after 1 part of several", err) + } + if !strings.Contains(err.Error(), "block closed") { + t.Errorf("Paste: err = %q, want rex's message in it", err) } } diff --git a/test/changes_test.go b/test/changes_test.go index 49ebc43..6a38408 100644 --- a/test/changes_test.go +++ b/test/changes_test.go @@ -5,34 +5,57 @@ import ( "path/filepath" "slices" "strings" + "syscall" "testing" + "github.com/charmbracelet/x/ansi" + "github.com/rednafi/rexdiff/internal/testgit" ) -// TestChanges checks the Changes tab. It checks the file list with its -// counts, the diff of a file, and the next and the previous file. It also -// checks a fold that opens. +// TestChanges checks that the Changes tab lists the changed files with +// their added and removed line counts and shows the diff of the selected +// file, that f and F move to the next and previous file, and that right +// and left expand and collapse a fold of unchanged lines. func TestChanges(t *testing.T) { tm := start(t, newRepo(t), opts{}) tm.waitFor("Changes (2)", "M a.go", "+2 -1", "M long.txt", "+2 -2", - "return 1", "x := 2", "not in Rex") + "return 1", "x := 2", "not in Rex", "a.go +2 -1") tm.keys("f") - tm.waitFor("first", "last", "⋯ 32 unmodified lines") + tm.waitFor("first", "last", "⋯ 32 unmodified lines", "long.txt +2 -2") tm.keys("j", "j", "j", "j", "j", "j") tm.waitFor("→ expand fold") tm.keys("right") - tm.waitFor("line 20") + tm.waitFor("line 20", "← collapse fold") tm.waitGone("unmodified lines") + tm.keys("left") + tm.waitFor("⋯ 32 unmodified lines", "→ expand fold") + tm.waitGone("line 20") + tm.keys("right") + tm.waitFor("line 20") tm.keys("F") tm.waitFor("x := 2") } -// TestMove checks the keys that move the cursor. They go to the next and -// the previous change, a page, half a page, a line, and a line number. +// TestCollapseSelection checks that collapsing a fold that contains the +// selected lines clears the selection. +func TestCollapseSelection(t *testing.T) { + tm := start(t, newRepo(t), opts{}) + tm.keys("f", "j", "j", "j", "j", "j", "j", "right") + tm.waitFor("line 20", "← collapse fold") + tm.keys("j", "v", "j", "j") + tm.waitFor("extend", "clear") + tm.keys("left") + tm.waitFor("⋯ 32 unmodified lines", "→ expand fold") + tm.waitGone("extend") +} + +// TestMove checks the keys that move the cursor: ] and [ to the next and +// previous change, page and half-page keys, : to go to a line number, and +// the arrow keys. func TestMove(t *testing.T) { tm := start(t, newRepo(t), opts{height: 16}) - tm.keys("f", "j", "j", "j", "j", "j", "j", "right") // all of long.txt + tm.keys("f", "j", "j", "j", "j", "j", "j", "right") // expand the fold to show all of long.txt tm.waitFor("line 10") tm.keys("]", "]") tm.waitCursor("line 40") @@ -56,11 +79,13 @@ func TestMove(t *testing.T) { tm.waitCursor("first") } -// TestScopes checks that each scope shows its changes, and the pickers of -// the commits and the base. +// TestScopes checks that the branch, uncommitted and last-turn scopes +// show the right changes, that the commit picker shows a single commit, +// and that the base picker marks the current base and switches to +// another one. func TestScopes(t *testing.T) { repo := newRepo(t) - // origin/main hides main in the base picker. + // In the base picker, origin/main replaces main. testgit.Git(t, repo, "update-ref", "refs/remotes/origin/main", "main") tm := start(t, repo, opts{}) tm.keys("b") @@ -87,9 +112,58 @@ func TestScopes(t *testing.T) { tm.waitFor("vs feat", "Changes (2)") } -// TestFlags checks that -scope, -base, -layout, and -wrap set the start, -// and that -log writes a log. As in herdr-reviewr, -wrap off cuts a long -// line at the start. +// TestSlowCommitPicker checks that while the commit list loads, the +// commit picker shows that it is loading, q does not quit, and esc closes +// the picker for good: the end of the cancelled list does not open it +// again. +func TestSlowCommitPicker(t *testing.T) { + // The fake git lists no commits until the test lets it. The first list + // notes in the file ready that it can be stopped. It waits until rexdiff + // stops it and then notes that in the file stopped. + // The second waits for the FIFO gate. Then it runs the real git, which + // is next on PATH. + bin := tools(t, map[string]string{"git": `d="${0%/*}" +case "$*" in +*--first-parent*) + if mkdir "$d/first" 2>/dev/null; then + trap 'kill $!; echo stopped > "$d/stopped"; exit 1' TERM + sleep 60 & + echo ready > "$d/ready" + wait + fi + cat "$d/gate" >/dev/null ;; +esac +PATH=${PATH#*:} exec git "$@" +`}) + gate := filepath.Join(bin, "gate") + if err := syscall.Mkfifo(gate, 0o600); err != nil { + t.Fatal(err) + } + log := filepath.Join(t.TempDir(), "log") + tm := start(t, newRepo(t), opts{path: bin, args: []string{"-log", log}}) + tm.keys("G") + tm.waitFor("loading commits…", "esc cancel") + waitFile(t, filepath.Join(bin, "ready"), "ready", func(s string) bool { return s == "ready\n" }) + tm.keys("esc") + tm.waitGone("loading commits…") + waitFile(t, filepath.Join(bin, "stopped"), "stopped", func(s string) bool { return s == "stopped\n" }) + tm.keys("G") + tm.waitFor("loading commits…") + tm.keys("q", "2") + // Let the list end once rexdiff has read G, esc, G, q and 2. + waitFile(t, log, "five keys", func(s string) bool { return strings.Count(s, "msg=key") == 5 }) + if err := os.WriteFile(gate, nil, 0o600); err != nil { + t.Fatal(err) + } + tm.waitFor("commits · 1 over main", "add b") + tm.keys("esc") + tm.waitGone("commits · 1 over main") + tm.waitFor("1 Changes", "Changes (") +} + +// TestFlags checks that -scope, -base, -layout and -wrap set the initial +// state, that -wrap off does not wrap a long line, and that -log writes a +// log file. func TestFlags(t *testing.T) { repo := newRepo(t) long := "var long = \"" + strings.Repeat("ab", 100) + "end\"\n" @@ -98,10 +172,11 @@ func TestFlags(t *testing.T) { tm := start(t, repo, opts{width: 220, args: []string{ "-scope", "branch", "-base", "main", "-layout", "split", "-wrap", "off", "-log", log, }}) - s := tm.waitFor("vs main", "Changes (3)") - if !sameLine(s, "return 1", "x := 2") { - t.Errorf("the screen does not show return 1 beside x := 2. It shows:\n%s", s) - } + // Wait for the whole frame, because the top lines can appear before the + // rest. + tm.waitUntil(func(s string) bool { + return hasAll(s, "vs main", "Changes (3)") && sameLine(s, "return 1", "x := 2") + }, "show return 1 beside x := 2 vs main") tm.keys("f") if s := tm.waitFor("var long"); strings.Contains(s, "end\"") { t.Errorf("-wrap off wraps the long line. The screen shows:\n%s", s) @@ -115,8 +190,8 @@ func TestFlags(t *testing.T) { } } -// TestSplit checks that | shows the old and the new lines side by side -// on a wide screen. On a narrow screen, it tells why it cannot. +// TestSplit checks that | shows the old and new lines side by side on a +// wide screen, and shows a message instead on a narrow screen. func TestSplit(t *testing.T) { tm := start(t, newRepo(t), opts{width: 220}) tm.keys("|") @@ -128,8 +203,9 @@ func TestSplit(t *testing.T) { narrow.waitFor("too narrow for split") } -// TestWrap checks that rexdiff wraps a long line, that w cuts it, and -// that → scrolls to its end. +// TestWrap checks that rexdiff wraps a long line by default, that w turns +// wrapping off, and that the right arrow then scrolls to the end of the +// line. func TestWrap(t *testing.T) { repo := newRepo(t) long := "var long = \"" + strings.Repeat("ab", 60) + "end\"\n" @@ -139,14 +215,14 @@ func TestWrap(t *testing.T) { tm.waitFor("end\"") tm.keys("w") tm.waitGone("end\"") - // Each → scrolls 8 columns. 12 of them show the end of the line, and - // keep its start in the view. + // Each right arrow scrolls 8 columns, so 12 presses reach the end of + // the line. tm.keys(slices.Repeat([]string{"right"}, 12)...) tm.waitFor("end\"") } -// column returns the column of text in the first line of s that has it, -// or -1. +// column returns the column of the first occurrence of text in s, or -1 +// if s does not contain text. func column(s, text string) int { if x, _, ok := position(s, text); ok { return x @@ -155,7 +231,7 @@ func column(s, text string) int { } // TestFileList checks that < and > change the width of the file list, p -// moves it, z hides it, and tab shows it again. +// moves it to the bottom, z hides it, and tab shows it again. func TestFileList(t *testing.T) { tm := start(t, newRepo(t), opts{}) right := column(tm.waitFor("Changes (2)"), "Changes (2)") @@ -163,18 +239,19 @@ func TestFileList(t *testing.T) { tm.waitUntil(func(s string) bool { return column(s, "Changes (2)") < right }, "widen the list") tm.keys(">", ">") tm.waitUntil(func(s string) bool { return column(s, "Changes (2)") > right }, "narrow the list") - tm.keys("p") // bottom + tm.keys("p") // move the list to the bottom tm.waitUntil(func(s string) bool { _, y, ok := position(s, "Changes (2)") return ok && y > 10 }, "show the list at the bottom") tm.keys("z") tm.waitGone("Changes (2)") - tm.keys("tab") // the focus shows a hidden list + tm.keys("tab") // moving the focus to a hidden list shows it tm.waitFor("Changes (2)") } -// TestKeys checks that ? shows all the keys. +// TestKeys checks that ? opens the help with all the keys and esc closes +// it. func TestKeys(t *testing.T) { tm := start(t, newRepo(t), opts{}) tm.keys("?") @@ -183,22 +260,87 @@ func TestKeys(t *testing.T) { tm.waitGone("pick commits") } -// TestFind checks that ctrl+f counts the lines with a text, and that -// enter moves to a hit. +// TestFind checks that ctrl+f counts the lines that contain the typed +// text, that enter moves the cursor to the first match, and that a pasted +// \r\n becomes a single space. func TestFind(t *testing.T) { tm := start(t, newRepo(t), opts{}) tm.keys("f", "ctrl+f") tm.typed("line 3") - // line 3, and line 30 to line 39 + // "line 3" matches line 3 and lines 30 to 39. tm.waitUntil(func(s string) bool { return sameLine(s, "find line 3", " 11") }, "count 11 lines") tm.keys("enter") tm.waitCursor("line 3") + tm.keys("esc") + tm.waitGone("find line 3") + tm.keys("ctrl+f") + tm.paste("line\r\n3") + tm.waitUntil(func(s string) bool { return sameLine(s, "find line 3", "1/11") }, + "count 11 lines for the pasted query") +} + +// TestFindInFiles checks that ctrl+f finds text in a file of the Files +// tab, and in a Markdown file shown rendered. +func TestFindInFiles(t *testing.T) { + tm := start(t, newRepo(t), opts{}) + tm.keys("2") + tm.waitFor("Files (6)") + tm.click("long.txt", 1) + tm.waitFor("line 37") + tm.keys("ctrl+f") + tm.typed("line 3") + tm.keys("enter") + tm.waitCursor("line 3") + tm.keys("esc") + tm.waitGone("find line 3") + tm.click("README.md", 1) + tm.keys("m") + tm.waitGone("# Title") + tm.keys("ctrl+f") + tm.typed("text") + tm.keys("enter") + tm.waitCursor("Some text.") +} + +// TestFindNothing checks that ctrl+f opens the find bar on a binary file, +// which has no text to find, so that the typed text goes into the bar and +// does not run commands such as t, which switches the scope. +func TestFindNothing(t *testing.T) { + repo := newRepo(t) + testgit.WriteFile(t, repo, "bin.dat", "a\x00b\n") + tm := start(t, repo, opts{}) + tm.keys("f") + tm.waitFor("bin.dat binary") + tm.keys("ctrl+f") + tm.typed("test") + tm.waitUntil(func(s string) bool { return sameLine(s, "find test", "nothing to find here") }, + "the query in the find bar with a note") +} + +// TestBranchNoCommits checks that the branch scope in a repository with +// no commits says so in plain words, as the commit picker does, and that +// a long error keeps its indent on every line when it wraps. +func TestBranchNoCommits(t *testing.T) { + repo := filepath.Join(t.TempDir(), "repo") + testgit.InitRepo(t, repo) + testgit.WriteFile(t, repo, "a.txt", "a\n") + tm := start(t, repo, opts{args: []string{"-scope", "branch"}}) + tm.waitFor("no commits yet") + tm.waitGone("merge-base") + + tm = start(t, newRepo(t), opts{width: 50, args: []string{"-scope", "branch", "-base", "nosuchbranch"}}) + s := tm.waitFor("no merge base with") + _, y, _ := position(s, "no merge base with") + ls := strings.Split(s, "\n") + if len(ls) <= y+1 || !strings.HasPrefix(ls[y+1], " ") || strings.TrimSpace(ls[y+1]) == "" { + t.Errorf("the error does not wrap with its indent. The screen shows:\n%s", s) + } } -// TestSettings checks that the settings change the layout and the marks -// of the changed lines. They also change the place and the width of the -// file list, the scope, and the keys. +// TestSettings checks that -config settings change the layout, the +/- +// signs, the position and width of the file list, the default scope, and +// the key bindings. func TestSettings(t *testing.T) { tm := start(t, newRepo(t), opts{width: 220, args: []string{ "-config", @@ -220,7 +362,8 @@ func TestSettings(t *testing.T) { tm.waitFor("var B = 2") } -// TestReviewPrefix checks that review_prefix comes before the review. +// TestReviewPrefix checks that the review_prefix setting is added before +// the copied review. func TestReviewPrefix(t *testing.T) { bin := clipboard(t) tm := start(t, newRepo(t), opts{path: bin, env: clipEnv, args: []string{ @@ -229,13 +372,13 @@ func TestReviewPrefix(t *testing.T) { }}) comment(tm, "hi") tm.keys("y") - waitFile(t, filepath.Join(bin, "clip"), func(s string) bool { + waitFile(t, filepath.Join(bin, "clip"), "the review after \"Please fix:\"", func(s string) bool { return s == "Please fix:\n\n"+review }) } -// TestTinyScreen checks that rexdiff draws and takes keys in a small -// terminal. +// TestTinyScreen checks that rexdiff draws its screen and responds to keys +// in a 40 by 8 terminal. func TestTinyScreen(t *testing.T) { tm := start(t, newRepo(t), opts{width: 40, height: 8}) tm.keys("f", "j", "2", "/") @@ -250,8 +393,8 @@ func TestTinyScreen(t *testing.T) { tm.waitFor("1 Changes") } -// TestHostileText checks that the escape codes in a file show as text, so -// a file cannot change the terminal. +// TestHostileText checks that escape sequences in a file are shown as +// visible symbols and do not affect the terminal. func TestHostileText(t *testing.T) { repo := newRepo(t) testgit.WriteFile(t, repo, "evil.txt", "a\x1b[2Jb\x1b]0;title\x07c\n") @@ -259,3 +402,49 @@ func TestHostileText(t *testing.T) { tm.keys("f") tm.waitFor("a␛[2Jb␛]0;title␇c") } + +// TestTinyStackedNavigator checks that a file list placed above or below +// the main pane is hidden when the terminal is too short for it, and that +// no line is wider than the terminal. +func TestTinyStackedNavigator(t *testing.T) { + for _, pos := range []string{"top", "bottom"} { + t.Run(pos, func(t *testing.T) { + const width = 60 + tm := start(t, newRepo(t), opts{width: width, height: 6, args: []string{ + "-config", `{"file_list": "` + pos + `"}`, + }}) + s := tm.waitFor("a.go", "package a") + if strings.Contains(s, "Changes (2)") { + t.Errorf("the list shows with no rows for it:\n%s", s) + } + for i, l := range strings.Split(s, "\n") { + if w := ansi.StringWidth(l); w > width { + t.Errorf("line %d is %d columns wide, want %d or less: %q", i, w, width, l) + } + } + }) + } +} + +// TestSkippedCounts checks that the file list and the title say why a +// binary or too large file has no counts. +func TestSkippedCounts(t *testing.T) { + repo := newRepo(t) + testgit.WriteFile(t, repo, "bin.dat", "a\x00b\n") + testgit.WriteFile(t, repo, "huge.txt", strings.Repeat("x\n", 60_000)) + tm := start(t, repo, opts{}) + tm.waitUntil(func(s string) bool { + return sameLine(s, "bin.dat", "binary") && sameLine(s, "huge.txt", "too large") + }, "show binary and too large in the list") +} + +// TestEmptyFile checks that a new empty file shows in the list with no +// counts, and that its diff says that the content did not change. +func TestEmptyFile(t *testing.T) { + repo := newRepo(t) + testgit.WriteFile(t, repo, "empty.txt", "") + tm := start(t, repo, opts{}) + tm.waitUntil(func(s string) bool { return sameLine(s, "A empty.txt", "+0 -0") }, "list empty.txt with +0 -0") + tm.keys("f") + tm.waitFor("empty.txt +0 -0", "no change to the content") +} diff --git a/test/cli_test.go b/test/cli_test.go index 9e11f59..c5043ef 100644 --- a/test/cli_test.go +++ b/test/cli_test.go @@ -12,18 +12,17 @@ import ( "github.com/rednafi/rexdiff/internal/testgit" ) -// fakeRexCLI is the rex of the scripts. +// fakeRexCLI is the fake rex command that the test scripts use. const fakeRexCLI = `#!/bin/sh printf '%s\n' "$*" >> "$WORK/rex.log" if [ -n "$REX_FAIL" ]; then echo 'no Rex server' >&2; exit 1; fi echo 'config reloaded' ` -// TestScripts runs the scripts in testdata/script. A script runs the -// rexdiff binary and a fake rex. The fake writes its arguments to -// $WORK/rex.log, and fails if $REX_FAIL is set. If REXDIFF_REX is the -// path of a real rex, $REALREX is that rex, and the condition [realrex] is -// true. +// TestScripts runs the scripts in testdata/script with the rexdiff binary +// and a fake rex. The fake rex appends its arguments to $WORK/rex.log and +// fails if $REX_FAIL is set. If REXDIFF_REX is the path of a real rex, +// $REALREX is set to that path and the condition [realrex] is true. func TestScripts(t *testing.T) { bin := filepath.Dir(binary(t)) realRex := os.Getenv("REXDIFF_REX") @@ -40,8 +39,8 @@ func TestScripts(t *testing.T) { if err != nil { return err } - // $WORK is also $HOME, so rexdiff and git see no file of the - // user. + // Use $WORK as $HOME too, so rexdiff and git see none of the + // user's files. env.Setenv("HOME", env.WorkDir) env.Setenv("XDG_CONFIG_HOME", "") env.Setenv("PATH", bin+string(os.PathListSeparator)+os.Getenv("PATH")) diff --git a/test/comment_test.go b/test/comment_test.go index 263999a..2b67c3c 100644 --- a/test/comment_test.go +++ b/test/comment_test.go @@ -1,6 +1,8 @@ package test import ( + "encoding/json/v2" + "fmt" "os" "path/filepath" "slices" @@ -11,10 +13,13 @@ import ( "github.com/rednafi/rexdiff/internal/testgit" ) -// review is the text of the comment "hi" on the first change of a.go. +// review is the review text that rexdiff produces for the comment "hi" +// on the first change in a.go. const review = "a.go:4 (removed)\n-\treturn 1\nhi" -// comment adds the comment text on the first changed line of a.go. +// comment moves to the first change in the current file, adds a comment +// with the given text, and waits until it is shown. In the fixture, the +// first file is a.go. func comment(tm *term, text string) { tm.t.Helper() tm.keys("]", "c") @@ -23,23 +28,23 @@ func comment(tm *term, text string) { tm.waitFor("💬 " + text) } -// TestCommentList checks that a comment shows on its line and in the -// list. n and N move to it. The list edits the comment and deletes it. As -// in herdr-reviewr, an edit keeps the place of the comment in the list. An -// edit with blank text keeps the comment. +// TestCommentList checks that a comment appears on its line and in the +// comment list, that n and N move to the next and previous comment, and +// that the list can edit and delete comments. Editing a comment keeps its +// position in the list, and saving empty text keeps the old text. func TestCommentList(t *testing.T) { tm := start(t, newRepo(t), opts{}) comment(tm, "hi") tm.waitFor("comment added", "●1") tm.keys("k") tm.waitCursor("func A") - tm.keys("n") // n stays in the file, as in herdr-reviewr + tm.keys("n") // n stays in the current file tm.waitCursor("return 1") tm.keys("j", "j") tm.waitCursor("return x") tm.keys("N") tm.waitCursor("return 1") - tm.keys("c", "z", "enter") // a second comment on the line + tm.keys("c", "z", "enter") // a second comment on the same line tm.waitFor("💬 z") tm.keys("l") tm.waitFor("Comments (2)", "a.go:4 (removed) hi") @@ -51,20 +56,50 @@ func TestCommentList(t *testing.T) { if _, other, _ := position(s, "(removed) z"); edited > other { t.Errorf("the edit moves the comment down. The screen shows:\n%s", s) } - // The flash of the edit hides the badge of the draft, so wait for - // the keys of the box. + // The flash message after the edit hides the draft badge, so wait for + // the comment box's key hints instead. tm.keys("e") tm.waitFor("enter save") tm.keys(slices.Repeat([]string{"bs"}, len("hi more"))...) tm.keys("enter") tm.waitGone("enter save") tm.waitFor("a.go:4 (removed) hi more") - tm.keys("d", "d") // the list closes with its last comment + tm.keys("d", "d") // deleting the last comment closes the list tm.waitGone("Comments (", "💬") } -// TestCommentDrag checks that a drag on the line numbers comments on a -// range of lines. +// TestCommentListPages checks that the page and half-page keys move the +// cursor in the comment list. +func TestCommentListPages(t *testing.T) { + repo := filepath.Join(t.TempDir(), "repo") + testgit.InitRepo(t, repo) + testgit.WriteFile(t, repo, "u.txt", numbered("line", 1, 30)) + testgit.Git(t, repo, "add", ".") + testgit.Git(t, repo, "commit", "-qm", "first") + tm := start(t, repo, opts{}) + tm.keys("2") + tm.waitCursor("line 1") + for i := 1; i <= 20; i++ { + tm.keys("c") + tm.typed(fmt.Sprintf("note %d", i)) + tm.keys("enter", "j") + } + tm.waitFor("20 unsent comments") + tm.keys("l") + tm.waitFor("Comments (20)") + for _, step := range []struct{ key, want string }{ + {"pgdown", "u.txt:16 note 16"}, + {"ctrl+u", "u.txt:8 note 8"}, + {"ctrl+d", "u.txt:16 note 16"}, + {"pgup", "u.txt:1 note 1"}, + } { + tm.keys(step.key) + tm.waitCursor(step.want) + } +} + +// TestCommentDrag checks that dragging over the line numbers starts a +// comment on that range of lines. func TestCommentDrag(t *testing.T) { tm := start(t, newRepo(t), opts{}) tm.drag(" 1 1 ", " 3 3 ") @@ -73,20 +108,20 @@ func TestCommentDrag(t *testing.T) { tm.waitGone("✎ a.go:1-3") } -// TestCommentBox checks that the box takes more than one line, and that -// esc drops a new comment. It also checks that v comments on a range of -// lines, and that e does not end the range. +// TestCommentBox checks that the comment box accepts more than one line, +// that esc discards a new comment, and that a comment started on a v +// selection covers the whole range and is not interrupted by e. func TestCommentBox(t *testing.T) { tm := start(t, newRepo(t), opts{}) - // The draft comes first, because the flash of an added comment hides - // the badge of the draft. + // Check the draft badge first, because the flash message after adding + // a comment hides it. tm.keys("]", "j", "c", "x") tm.waitFor("✎ a.go:4 ") tm.keys("esc") tm.waitGone("✎") tm.keys("k", "c", "a", "ctrl+j", "b", "enter") tm.waitFor("💬 a", "b") - // As in herdr-reviewr, e does nothing while a selection is active. + // e does nothing while a selection is active. tm.keys("j", "v", "j", "e", "c") if s := tm.waitFor("enter save"); strings.Contains(s, "editor failed") { t.Errorf("e with a selection opens the editor. The screen shows:\n%s", s) @@ -95,9 +130,21 @@ func TestCommentBox(t *testing.T) { tm.waitFor("a.go:4-5 r") } -// TestSend checks that s pastes the review into the agent and gives it -// the focus. S does the same, and so does s in the question before a quit. -// A comment that the user edits during the send stays. +// TestCommentBoxAtBottom checks that a comment box opened on the last line +// of the pane is shown in full, below the existing comments on that line. +func TestCommentBoxAtBottom(t *testing.T) { + tm := start(t, newRepo(t), opts{height: 16}) + tm.keys("f", ":", "$", "enter") + tm.waitCursor("last") + tm.keys("c", "a", "ctrl+j", "b", "ctrl+j", "d", "enter") + tm.waitFor("💬 a") + tm.keys("c", "x", "ctrl+j", "y", "ctrl+j", "z") + tm.waitFor("💬 a", "│ x", "│ y", "│ z", "enter save") +} + +// TestSend checks that s, S, and s in the quit prompt paste the review +// into the agent and move the focus to it. A comment that is edited while +// the paste is in progress is kept. func TestSend(t *testing.T) { repo := newRepo(t) rex := newRex(t, repo) @@ -134,7 +181,8 @@ func TestSend(t *testing.T) { tm.waitFor("sent 1 comment to agent", "💬 hi edit") } -// TestSendWithoutAgent checks that s outside Rex tells the user to copy. +// TestSendWithoutAgent checks that outside Rex, s shows a "not in Rex" +// message and keeps the comment. func TestSendWithoutAgent(t *testing.T) { tm := start(t, newRepo(t), opts{}) comment(tm, "hi") @@ -143,8 +191,8 @@ func TestSendWithoutAgent(t *testing.T) { tm.waitFor("💬 hi") } -// TestAgentPicker checks that a send with two agents asks which one. As -// in herdr-reviewr, a digit moves the cursor to an agent, and enter sends. +// TestAgentPicker checks that with two agents, s asks which agent to send +// to, a digit moves the cursor to that agent, and enter sends. func TestAgentPicker(t *testing.T) { repo := newRepo(t) rex := newRex(t, repo) @@ -161,8 +209,8 @@ func TestAgentPicker(t *testing.T) { rex.expectCalls(t, `block.event {"block_id":"block:cc"`) } -// TestAgentElsewhere checks that the last-turn scope tells when no agent -// works in the repository. +// TestAgentElsewhere checks that the last-turn scope says so when no +// agent is working in the repository. func TestAgentElsewhere(t *testing.T) { repo := newRepo(t) rex := newRex(t, repo) @@ -172,8 +220,8 @@ func TestAgentElsewhere(t *testing.T) { tm.waitFor("no agent works here") } -// TestCopy checks that y and Y copy the review and clear the comments. y -// in the question before a quit does the same. +// TestCopy checks that y, Y, and y in the quit prompt copy the review to +// the clipboard and clear the comments. func TestCopy(t *testing.T) { bin := clipboard(t) clip := filepath.Join(bin, "clip") @@ -187,18 +235,16 @@ func TestCopy(t *testing.T) { tm.keys(keys...) tm.waitFor("copied 1 comment") tm.waitGone("💬") - waitFile(t, clip, func(s string) bool { return s == review }) + waitFile(t, clip, "the review", func(s string) bool { return s == review }) } } -// TestMouse checks that a click picks a file, and a triple click copies a -// line. It also checks that a drag on the code copies the lines, and that -// the wheel scrolls. As in herdr-reviewr, the wheel on the file list does -// not pick a file. +// TestMouse checks that clicking a file opens it, that a triple click or a +// drag over code copies the text, and that the wheel scrolls without +// selecting anything. func TestMouse(t *testing.T) { - // The fake pbcopy is slow, as a real tool can be. Its copy takes longer - // than the time between the clicks of a triple click. The triple click - // still copies the line. + // The fake pbcopy takes longer than the gap between the clicks of a + // triple click, and the triple click must still copy the line. slow := `sleep 0.5; cat > "${0%/*}/clip"` + "\n" bin := tools(t, map[string]string{"pbcopy": slow, "wl-copy": slow}) clip := filepath.Join(bin, "clip") @@ -209,14 +255,14 @@ func TestMouse(t *testing.T) { tm.wheel("M a.go", 1) tm.click("func A() int {", 3) tm.waitFor("copied 14 chars") - waitFile(t, clip, func(s string) bool { return s == "func A() int {" }) + waitFile(t, clip, `"func A() int {"`, func(s string) bool { return s == "func A() int {" }) tm.drag("package a", "func A()") - waitFile(t, clip, func(s string) bool { return s == "package a\n\nf" }) + waitFile(t, clip, `"package a\n\nf"`, func(s string) bool { return s == "package a\n\nf" }) tm.drag("A() int", "func A") - waitFile(t, clip, func(s string) bool { return s == "func A" }) + waitFile(t, clip, `"func A"`, func(s string) bool { return s == "func A" }) tm.click("M long.txt", 1) - tm.keys(":", "2", "0", "enter") // opens the fold + tm.keys(":", "2", "0", "enter") // going to line 20 expands the fold tm.waitCursor("line 20") tm.keys(":", "1", "enter") tm.waitFor(" first") @@ -224,11 +270,12 @@ func TestMouse(t *testing.T) { tm.waitGone(" first") } -// TestQuit checks that q with a comment asks first. +// TestQuit checks that q asks for confirmation when there are unsent +// comments, that esc cancels, and that Q in the prompt quits. func TestQuit(t *testing.T) { tm := start(t, newRepo(t), opts{}) comment(tm, "hi") - tm.keys("Q", "q") // Q does nothing outside the prompt + tm.keys("Q", "q") // Q does nothing outside the quit prompt tm.waitFor("1 unsent comment will be lost", "Q quit (1 pending) · esc cancel · s send 1 · y copy") tm.keys("esc") @@ -240,17 +287,17 @@ func TestQuit(t *testing.T) { } } -// TestCommentStays checks that a comment stays when the agent edits the -// file. As in herdr-reviewr, it keeps its line number. When the file -// leaves the changes, the list marks the comment stale. +// TestCommentStays checks that a comment keeps its line number and stays +// fresh when the agent edits other lines, and is marked stale once the +// file no longer has changes. func TestCommentStays(t *testing.T) { repo := newRepo(t) tm := start(t, repo, opts{}) - tm.keys("]", "j", "c", "h", "i", "enter") // on x := 2 + tm.keys("]", "j", "c", "h", "i", "enter") // comment on x := 2 tm.waitFor("💬 hi") testgit.WriteFile(t, repo, "a.go", - "package a\n\n// A adds.\n// It is new.\nfunc A() int {\n\tx := 2\n\treturn x\n}\n") - tm.waitFor("It is new.") + "package a\n\nfunc A() int {\n\tx := 2\n\treturn x + 1\n}\n") + tm.waitFor("return x + 1", "💬 hi") tm.keys("l") tm.waitFor("a.go:4 hi") tm.waitGone("stale") @@ -263,8 +310,89 @@ func TestCommentStays(t *testing.T) { "mark the comment stale") } -// TestEditorInPane checks that e opens a terminal editor at the line, in -// a new Rex pane. +// TestCommentStaleMoved checks that a comment does not follow its code +// when the agent adds lines above it: the comment stays on its line +// number, is marked stale below the code and in the comment list, and the +// copied review marks it stale with the code it was made on. +func TestCommentStaleMoved(t *testing.T) { + bin := clipboard(t) + clip := filepath.Join(bin, "clip") + repo := newRepo(t) + tm := start(t, repo, opts{path: bin, env: clipEnv}) + tm.keys("]", "j", "c", "h", "i", "enter") // comment on x := 2, line 4 + tm.waitFor("💬 hi") + testgit.WriteFile(t, repo, "a.go", + "package a\n\n// A adds.\n// It is new.\nfunc A() int {\n\tx := 2\n\treturn x\n}\n") + tm.waitFor("It is new.", "💬 stale hi") + tm.keys("l") + tm.waitUntil(func(s string) bool { return sameLine(s, "a.go:4 hi", "stale") }, + "mark the comment stale in the list") + tm.keys("esc") + tm.waitGone("Comments (") + tm.keys("y") + tm.waitFor("copied 1 comment") + want := "a.go:4 (stale)\n+\tx := 2\nhi" + waitFile(t, clip, "the review", func(s string) bool { return s == want }) +} + +// TestCommentStaleGone checks that a comment on lines past the new end of +// a shorter file is marked stale in the comment list and still sent, and +// that enter in the list goes to the nearest line. +func TestCommentStaleGone(t *testing.T) { + bin := clipboard(t) + clip := filepath.Join(bin, "clip") + repo := newRepo(t) + tm := start(t, repo, opts{path: bin, env: clipEnv}) + tm.keys("]", "j", "j", "c", "h", "i", "enter") // comment on return x, line 5 + tm.waitFor("💬 hi") + testgit.WriteFile(t, repo, "a.go", "package a\n\nvar A = 2\n") + tm.waitGone("💬") + tm.waitFor("var A = 2") + tm.keys(":") + tm.typed("1") + tm.keys("enter") + tm.waitCursor("package a") + tm.keys("l") + tm.waitUntil(func(s string) bool { return sameLine(s, "a.go:5 hi", "stale") }, + "mark the comment stale in the list") + tm.keys("enter") + tm.waitGone("Comments (") + tm.waitCursor("var A = 2") + tm.keys("y") + tm.waitFor("copied 1 comment") + want := "a.go:5 (stale)\n+\treturn x\nhi" + waitFile(t, clip, "the review", func(s string) bool { return s == want }) +} + +// TestCommentStaleWhileOpen checks that a comment written while the agent +// rewrites the file keeps the code that was on its line when the comment +// box opened, and is marked stale once the new file shows. +func TestCommentStaleWhileOpen(t *testing.T) { + bin := clipboard(t) + clip := filepath.Join(bin, "clip") + repo := newRepo(t) + log := filepath.Join(t.TempDir(), "log") + tm := start(t, repo, opts{path: bin, env: clipEnv, args: []string{"-log", log}}) + tm.keys("]", "j", "c") // a comment on x := 2, line 4 + tm.waitFor("enter save") + testgit.WriteFile(t, repo, "a.go", + "package a\n\nfunc A() int {\n\ty := 3\n\treturn y\n}\n") + // Type once rexdiff has seen the change, while the box is open. + waitFile(t, log, "a watch message with files=true after the key c", func(s string) bool { + _, after, _ := strings.Cut(s, "key=c ") + return sameLine(after, "msg=watch", "files=true") + }) + tm.typed("hi") + tm.keys("enter") + tm.waitFor("y := 3", "💬 stale hi") + tm.keys("y") + tm.waitFor("copied 1 comment") + want := "a.go:4 (stale)\n+\tx := 2\nhi" + waitFile(t, clip, "the review", func(s string) bool { return s == want }) +} + +// TestEditorInPane checks that inside Rex, e opens a terminal editor at +// the cursor line in a new Rex pane. func TestEditorInPane(t *testing.T) { repo := newRepo(t) rex := newRex(t, repo) @@ -276,8 +404,8 @@ func TestEditorInPane(t *testing.T) { tm.waitFor("opened a.go") } -// TestWindowEditor checks that e starts a window editor at the line, and -// that the editor setting picks the editor. +// TestWindowEditor checks that e starts a GUI editor from $VISUAL at the +// cursor line, and that the editor setting overrides the choice of editor. func TestWindowEditor(t *testing.T) { bin := tools(t, map[string]string{ "code": `printf '%s\n' "$@" > "${0%/*}/code"` + "\n", @@ -285,7 +413,7 @@ func TestWindowEditor(t *testing.T) { }) tm := start(t, newRepo(t), opts{path: bin, env: []string{"VISUAL=code --wait"}}) tm.keys("]", "j", "e") - waitFile(t, filepath.Join(bin, "code"), func(s string) bool { + waitFile(t, filepath.Join(bin, "code"), "arguments that start with --wait -g and end with a.go:4", func(s string) bool { return strings.HasPrefix(s, "--wait\n-g\n") && strings.HasSuffix(s, "a.go:4\n") }) @@ -294,20 +422,21 @@ func TestWindowEditor(t *testing.T) { `{"editor": "mine --line {line} {file}"}`, }}) tm.keys("]", "j", "e") - waitFile(t, filepath.Join(bin, "mine"), func(s string) bool { + waitFile(t, filepath.Join(bin, "mine"), "arguments that start with --line 4 and end with a.go", func(s string) bool { return strings.HasPrefix(s, "--line\n4\n") && strings.HasSuffix(s, "a.go\n") }) } -// TestNoEditor checks that e tells how to set an editor when none is set. +// TestNoEditor checks that when no editor is configured, e shows how to +// set one. func TestNoEditor(t *testing.T) { tm := start(t, newRepo(t), opts{}) tm.keys("]", "j", "e") tm.waitFor(`editor failed: no editor: set "editor" in rexdiff.lua, $EDITOR, or git's core.editor`) } -// TestCopyHangs checks that a clipboard tool that does not answer fails -// the copy, and rexdiff still takes keys. +// TestCopyHangs checks that when the clipboard tool hangs, the copy fails, +// the comment is kept, and rexdiff still responds to keys. func TestCopyHangs(t *testing.T) { hang := "exec sleep 60\n" bin := tools(t, map[string]string{"pbcopy": hang, "wl-copy": hang}) @@ -319,3 +448,140 @@ func TestCopyHangs(t *testing.T) { tm.keys("f") tm.waitFor("⋯ 32 unmodified lines") } + +// TestCommentPaste checks that a pasted \r\n or lone \r is a single line +// break in the comment box, and that the box scrolls to the cursor after +// a long paste. +func TestCommentPaste(t *testing.T) { + tm := start(t, newRepo(t), opts{width: 100, height: 20}) + tm.keys("]", "c") + tm.waitFor("enter save") + tm.paste("first pasted\r\nsecond pasted\rthird pasted") + s := tm.waitFor("third pasted") + first, second, third := rowY(s, "first pasted"), rowY(s, "second pasted"), rowY(s, "third pasted") + if second != first+1 || third != second+1 { + t.Errorf("the pasted lines are on lines %d, %d and %d, want one after another. The screen shows:\n%s", + first, second, third, s) + } + tm.keys("esc") + tm.waitGone("enter save") + + var long []string + for i := 1; i <= 20; i++ { + long = append(long, fmt.Sprintf("pasted %02d %s", i, strings.Repeat("x", 90))) + } + tm.keys("c") + tm.waitFor("enter save") + tm.paste(strings.Join(long, "\n")) + tm.waitFor("pasted 20") +} + +// TestCommentStaleInFile checks that a comment in the Files tab is marked +// stale when the agent adds a line above it, and fresh again when the +// line comes back. +func TestCommentStaleInFile(t *testing.T) { + repo := filepath.Join(t.TempDir(), "repo") + testgit.InitRepo(t, repo) + testgit.WriteFile(t, repo, "x.txt", "one\ntwo\n") + testgit.Git(t, repo, "add", ".") + testgit.Git(t, repo, "commit", "-qm", "first") + tm := start(t, repo, opts{}) + tm.keys("2") + tm.waitCursor("one") + tm.keys("c") + tm.typed("hi") + tm.keys("enter") + tm.waitFor("💬 hi") + testgit.WriteFile(t, repo, "x.txt", "zero\none\ntwo\n") + tm.waitFor("zero", "💬 stale hi") + tm.keys("l") + tm.waitUntil(func(s string) bool { return sameLine(s, "x.txt:1 hi", "stale") }, + "mark the comment stale in the list") + tm.keys("esc") + tm.waitGone("Comments (") + testgit.WriteFile(t, repo, "x.txt", "one\ntwo\n") + tm.waitGone("zero", "stale") + tm.waitFor("💬 hi") +} + +// TestCommentStaleInFileFromChanges checks that a comment made in the +// Files tab is marked stale in the comment list, and copied as stale, when +// the agent adds a line above it while the Changes tab is shown. +func TestCommentStaleInFileFromChanges(t *testing.T) { + bin := clipboard(t) + clip := filepath.Join(bin, "clip") + repo := filepath.Join(t.TempDir(), "repo") + testgit.InitRepo(t, repo) + testgit.WriteFile(t, repo, "u.txt", numbered("line", 1, 9)) + testgit.Git(t, repo, "add", ".") + testgit.Git(t, repo, "commit", "-qm", "first") + tm := start(t, repo, opts{path: bin, env: clipEnv}) + tm.keys("2") + tm.waitCursor("line 1") + tm.keys(":") + tm.typed("5") + tm.keys("enter") + tm.waitCursor("line 5") + tm.keys("c") + tm.typed("hi") + tm.keys("enter") + tm.waitFor("💬 hi") + tm.keys("1") + tm.waitFor("no changes") + testgit.WriteFile(t, repo, "u.txt", "line 0\n"+numbered("line", 1, 9)) + tm.waitFor("Changes (1)") + tm.keys("l") + tm.waitUntil(func(s string) bool { return sameLine(s, "u.txt:5 hi", "stale") }, + "mark the comment stale in the list") + tm.keys("esc") + tm.waitGone("Comments (") + tm.keys("y") + tm.waitFor("copied 1 comment") + waitFile(t, clip, "the review with the comment marked stale", func(s string) bool { + return strings.HasPrefix(s, "u.txt:5 (stale)\n") + }) +} + +// TestSendLong checks that a review that Rex would refuse as one paste, +// a comment of 30,000 bytes that Rex encodes as 180,000 because it escapes +// <, & and >, is pasted in several parts that join to the review. +func TestSendLong(t *testing.T) { + repo := newRepo(t) + rex := newRex(t, repo) + tm := start(t, repo, opts{rex: rex}) + tm.waitFor("send → 1 agent") + long := strings.Repeat("<&>", 10_000) + tm.keys("]", "c") + tm.paste(long) + tm.keys("enter") + tm.waitFor("comment added") + tm.keys("s") + tm.waitFor("sent 1 comment to agent") + var text strings.Builder + parts := 0 + for line := range strings.Lines(rex.calls(t)) { + args, ok := strings.CutPrefix(line, "api call -s S block.event ") + if !ok { + continue + } + var call struct { + Event struct { + Payload struct { + Text string `json:"text"` + } `json:"payload"` + } `json:"event"` + } + if err := json.Unmarshal([]byte(args), &call); err != nil { + t.Fatal(err) + } + text.WriteString(call.Event.Payload.Text) + parts++ + } + if want := "a.go:4 (removed)\n-\treturn 1\n" + long; text.String() != want { + t.Errorf("the pasted parts join to %d bytes that differ from the %d of the review", + text.Len(), len(want)) + } + if parts < 4 { + t.Errorf("the review was pasted in %d parts, want at least 4", parts) + } +} diff --git a/test/fake_test.go b/test/fake_test.go index 1c4259c..0fc9738 100644 --- a/test/fake_test.go +++ b/test/fake_test.go @@ -13,9 +13,9 @@ import ( "github.com/rednafi/rexdiff/internal/testgit" ) -// repoFixture is a repository with a commit on main and on the branch -// feat. It has uncommitted edits of a.go, and of the first and the last -// line of long.txt. +// repoFixture is a repository with one commit on main and one on the +// branch feat, which is checked out. It has uncommitted edits to a.go and +// to the first and last lines of long.txt, and an ignored directory out/. var repoFixture = testgit.NewFixture(func(tb testing.TB, dir string) { tb.Helper() testgit.InitRepo(tb, dir) @@ -36,7 +36,7 @@ var repoFixture = testgit.NewFixture(func(tb testing.TB, dir string) { "first\n"+numbered("line", 2, 39)+"last\n") }) -// numbered returns the lines " " for n from first to last. +// numbered returns the lines " " for each n from first to last. func numbered(word string, first, last int) string { var b strings.Builder for n := first; n <= last; n++ { @@ -45,8 +45,9 @@ func numbered(word string, first, last int) string { return b.String() } -// newRepo returns a copy of the fixture repository. The path has no -// symbolic link, as the root that git gives. +// newRepo returns the path of a new copy of the fixture repository. The +// path contains no symbolic links, so it matches the root that git +// reports. func newRepo(t *testing.T) string { t.Helper() tmp, err := filepath.EvalSymlinks(t.TempDir()) @@ -58,17 +59,19 @@ func newRepo(t *testing.T) string { return dir } -// fakeRex is a rex for the session S. rexdiff runs in the block -// block:self. The agents run in repo. The fake logs each call and prints -// the output of a real rex from testdata/rex, with the values of the test. -// "rex events" prints the lines that the test adds. If the FIFO gate -// exists, a paste waits until the test writes to it. +// fakeRex is a fake rex command for the session S, with rexdiff in the +// block block:self and agents working in the test repository. It logs +// each call and prints responses from the templates in testdata/rex, +// filled in with the test's values. "rex events" prints the lines that +// the test adds. If the FIFO named gate exists, a paste waits until the +// test writes to it. type fakeRex struct { dir string - blocks []string // the JSON of each block + blocks []string // the JSON for each block } -// newRex returns a fake rex with the agent pi in the block block:pi. +// newRex returns a fake rex with an idle agent pi in the block block:pi, +// whose working directory is repo. func newRex(t *testing.T, repo string) *fakeRex { t.Helper() r := &fakeRex{dir: t.TempDir()} @@ -91,8 +94,8 @@ esac return r } -// recorded returns the content of the file name in testdata/rex, with -// each pair of old and new values replaced. +// recorded returns the content of the template file name in testdata/rex, +// with each placeholder in oldNew replaced by the value that follows it. func recorded(t *testing.T, name string, oldNew ...string) string { t.Helper() b, err := os.ReadFile(filepath.Join("testdata", "rex", name)) @@ -102,7 +105,7 @@ func recorded(t *testing.T, name string, oldNew ...string) string { return strings.TrimSpace(strings.NewReplacer(oldNew...).Replace(string(b))) } -// addBlock adds a terminal block with the label. +// addBlock adds a terminal block with the given ID and label. func (r *fakeRex) addBlock(t *testing.T, block, label string) { t.Helper() r.blocks = append(r.blocks, recorded(t, "block.json", "{{ID}}", block, "{{LABEL}}", label)) @@ -110,15 +113,16 @@ func (r *fakeRex) addBlock(t *testing.T, block, label string) { r.write(t, "inspect."+label, recorded(t, "inspect.json", "{{ID}}", block, "{{LABEL}}", label)) } -// addAgent adds a block with the label, and an idle agent app in it. +// addAgent adds a terminal block with the given label in which the agent +// app runs and is idle. func (r *fakeRex) addAgent(t *testing.T, block, label, app string) { t.Helper() r.addBlock(t, block, label) r.status(t, block, app, "idle") } -// status sets the state of the agent app in block. It returns the values -// for the recorded files. +// status sets the state of the agent app in block. It returns the +// placeholder values, so the caller can fill in other templates with them. func (r *fakeRex) status(t *testing.T, block, app, state string) []string { t.Helper() values := []string{ @@ -129,7 +133,8 @@ func (r *fakeRex) status(t *testing.T, block, app, state string) []string { return values } -// write writes content to the file name of the fake. +// write writes content and a newline to the file name in the fake's +// directory. func (r *fakeRex) write(t *testing.T, name, content string) { t.Helper() if err := os.WriteFile(filepath.Join(r.dir, name), []byte(content+"\n"), 0o644); err != nil { @@ -137,7 +142,7 @@ func (r *fakeRex) write(t *testing.T, name, content string) { } } -// add adds the line to the file name of the fake. +// add appends line to the file name in the fake's directory. func (r *fakeRex) add(t *testing.T, name, line string) { t.Helper() f, err := os.OpenFile(filepath.Join(r.dir, name), os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0o644) @@ -153,7 +158,8 @@ func (r *fakeRex) add(t *testing.T, name, line string) { } } -// calls returns the calls of rex, one a line. +// calls returns the arguments of each call to the fake rex so far, one +// call per line. func (r *fakeRex) calls(t *testing.T) string { t.Helper() b, err := os.ReadFile(filepath.Join(r.dir, "calls")) @@ -163,7 +169,7 @@ func (r *fakeRex) calls(t *testing.T) string { return string(b) } -// expectCalls waits until the calls of rex have each of wants. +// expectCalls waits until the calls to the fake rex contain all of wants. func (r *fakeRex) expectCalls(t *testing.T, wants ...string) { t.Helper() var calls string @@ -172,16 +178,16 @@ func (r *fakeRex) expectCalls(t *testing.T, wants ...string) { }) } -// setState sets the state of the agent pi and sends the event of the -// change. +// setState sets the state of the agent pi and sends the matching status +// event. func (r *fakeRex) setState(t *testing.T, state string) { t.Helper() values := r.status(t, "block:pi", "pi", state) r.add(t, "events", recorded(t, "event.json", values...)) } -// tools writes a fake program for each name in bodies, with its body, to -// a new directory. It returns the directory, for opts.path. +// tools writes a fake program for each entry in bodies to a new directory +// and returns the directory, for use as opts.path. func tools(t *testing.T, bodies map[string]string) string { t.Helper() dir := t.TempDir() @@ -191,15 +197,15 @@ func tools(t *testing.T, bodies map[string]string) string { return dir } -// clipboard returns a directory with a fake pbcopy and wl-copy, for -// opts.path. Each writes what it gets to the file clip in the directory. +// clipboard returns a directory with a fake pbcopy and wl-copy, for use +// as opts.path. Both write their input to the file clip in that directory. func clipboard(t *testing.T) string { t.Helper() const body = `cat > "${0%/*}/clip"` + "\n" return tools(t, map[string]string{"pbcopy": body, "wl-copy": body}) } -// clipEnv makes rexdiff take the fake clipboard on Linux too. +// clipEnv makes rexdiff use the fake wl-copy on Linux too. var clipEnv = []string{"WAYLAND_DISPLAY=w"} // lines returns the lines of s that contain text. diff --git a/test/files_test.go b/test/files_test.go index ece0849..9995d8b 100644 --- a/test/files_test.go +++ b/test/files_test.go @@ -1,8 +1,10 @@ package test import ( + "fmt" "os" "path/filepath" + "slices" "strings" "testing" "time" @@ -10,8 +12,9 @@ import ( "github.com/rednafi/rexdiff/internal/testgit" ) -// TestFilesTab checks that the Files tab lists all the files, expands and -// collapses an ignored directory, opens a file, and renders markdown. +// TestFilesTab checks that the Files tab lists every file, expands and +// collapses an ignored directory, opens a file, and that m switches a +// Markdown file to rendered view. func TestFilesTab(t *testing.T) { tm := start(t, newRepo(t), opts{}) tm.keys("2") @@ -28,11 +31,37 @@ func TestFilesTab(t *testing.T) { tm.waitFor("Title", "Some text.") } -// TestMarkdownSetting checks that markdown_view shows rendered markdown -// at the start. As in herdr-reviewr, a changed block of rendered markdown -// has the bar, and a comment on it is on all the lines of the block. A -// drag copies the rendered text. n goes to a comment that starts in a -// block. +// TestFilesTabDeleted checks that the Files tab leaves out a tracked file +// that was deleted from the working tree, while the Changes tab still +// shows the deletion. +func TestFilesTabDeleted(t *testing.T) { + repo := newRepo(t) + if err := os.Remove(filepath.Join(repo, "docs", "guide.txt")); err != nil { + t.Fatal(err) + } + tm := start(t, repo, opts{}) + tm.waitFor("D docs/guide.txt") + tm.keys("2") + tm.waitFor("Files (5)", "long.txt") + tm.waitGone("guide.txt") +} + +// TestInvisibleNames checks that the file list shows a zero-width space, +// a byte order mark and a right-to-left override in a file name as +// escapes. +func TestInvisibleNames(t *testing.T) { + repo := newRepo(t) + testgit.WriteFile(t, repo, "zero\u200bwidth.txt", "a\n") + testgit.WriteFile(t, repo, "\ufeffbom.txt", "b\n") + testgit.WriteFile(t, repo, "evil\u202etxt.exe", "c\n") + tm := start(t, repo, opts{}) + tm.waitFor(`"zero\u200bwidth.txt"`, `"\ufeffbom.txt"`, `"evil\u202etxt.exe"`) +} + +// TestMarkdownSetting checks that the markdown_view setting shows Markdown +// rendered from the start. It also checks, in rendered view, the change +// bars on changed blocks, comments and copying on a block, and moving to +// the next comment with n. func TestMarkdownSetting(t *testing.T) { repo := newRepo(t) testgit.WriteFile(t, repo, "README.md", "# Title\n\nGone.\n\nSome text.\n\n\n") @@ -49,9 +78,9 @@ func TestMarkdownSetting(t *testing.T) { tm.keys("1", "tab") tm.waitFor("Some text.") tm.waitUntil(func(s string) bool { - return sameLine(s, "▌", "New text on three lines.") && !sameLine(s, "▌", "Some text.") && - sameLine(s, "▌", "− 1 line removed") && - sameLine(s, "▌", "⚠ 1 changed line doesn't render · m to see") + return sameLine(s, "▎", "New text on three lines.") && !sameLine(s, "▎", "Some text.") && + sameLine(s, "▎", "− 1 line removed") && + sameLine(s, "▎", "⚠ 1 changed line doesn't render · m to see") }, "mark the changed blocks, the removed block, and the changed comment") tm.keys(":", "8", "enter") tm.waitCursor("New text on three lines.") @@ -60,11 +89,11 @@ func TestMarkdownSetting(t *testing.T) { tm.keys("enter") tm.waitFor("💬 hi") tm.keys("y") - waitFile(t, filepath.Join(bin, "clip"), func(s string) bool { + waitFile(t, filepath.Join(bin, "clip"), "the three new lines of README.md with their location", func(s string) bool { return s == "README.md:7-9\n+New text\n+on\n+three lines.\nhi" }) tm.drag("Some", "text.") - waitFile(t, filepath.Join(bin, "clip"), func(s string) bool { return s == "Some t" }) + waitFile(t, filepath.Join(bin, "clip"), `"Some t"`, func(s string) bool { return s == "Some t" }) tm.keys("m", ":", "8", "enter") tm.waitCursor("on") tm.keys("c") @@ -77,9 +106,50 @@ func TestMarkdownSetting(t *testing.T) { tm.waitCursor("New text on three lines.") } -// TestSearch checks that / finds files by name and lines by code, shows a -// preview, and opens the pick. The wheel scrolls the preview. A changed -// file opens in the Changes tab, at the line, even in a fold. +// TestMarkdownHunks checks that ] and [ in rendered Markdown visit every +// changed block in turn, including the marker of a removed block, and do +// not get stuck at that marker. +func TestMarkdownHunks(t *testing.T) { + repo, err := filepath.EvalSymlinks(t.TempDir()) + if err != nil { + t.Fatal(err) + } + testgit.InitRepo(t, repo) + var old, cur strings.Builder + for n := 1; n <= 30; n++ { + fmt.Fprintf(&old, "## Section %d\n\nParagraph %d text.\n\n", n, n) + if n == 25 { + fmt.Fprintf(&cur, "## Section %d\n\n", n) // paragraph 25 is removed + continue + } + word := "text" + if n == 5 || n == 20 || n == 27 { + word = "CHANGED" + } + fmt.Fprintf(&cur, "## Section %d\n\nParagraph %d %s.\n\n", n, n, word) + } + testgit.WriteFile(t, repo, "doc.md", old.String()) + testgit.Git(t, repo, "add", "doc.md") + testgit.Git(t, repo, "commit", "-qm", "doc") + testgit.WriteFile(t, repo, "doc.md", cur.String()) + tm := start(t, repo, opts{width: 120, height: 20, args: []string{ + "-config", `{"markdown_view": "rendered"}`, + }}) + tm.waitFor("Section 1") + stops := []string{"Paragraph 5 CHANGED", "Paragraph 20 CHANGED", "1 line removed", "Paragraph 27 CHANGED"} + for _, s := range stops { + tm.keys("]") + tm.waitCursor(s) + } + for _, s := range slices.Backward(stops[:3]) { + tm.keys("[") + tm.waitCursor(s) + } +} + +// TestSearch checks that / finds files by name and lines by content, +// shows a preview that the mouse wheel scrolls, and opens a changed file +// in the Changes tab at the matching line. func TestSearch(t *testing.T) { tm := start(t, newRepo(t), opts{}) tm.keys("/") @@ -98,8 +168,8 @@ func TestSearch(t *testing.T) { tm.waitCursor("line 7") } -// TestLiveReload checks that the Changes tab shows an edit, a new file, -// and a removed file without a key. +// TestLiveReload checks that the Changes tab picks up an edit, a new file +// and a removed file without any key press. func TestLiveReload(t *testing.T) { repo := newRepo(t) tm := start(t, repo, opts{}) @@ -114,27 +184,59 @@ func TestLiveReload(t *testing.T) { tm.waitFor("Changes (2)") } -// TestLastTurn checks that the last-turn scope shows what the agent -// changes in its last turn. +// TestRemoveAfterRefresh checks that the Changes tab drops a file that +// was added, shown by r, and removed before the next check of the watcher. +func TestRemoveAfterRefresh(t *testing.T) { + repo := newRepo(t) + log := filepath.Join(t.TempDir(), "log") + tm := start(t, repo, opts{args: []string{"-log", log}}) + tm.waitFor("Changes (2)") + // After the first check, a check reports only what changed since the + // last one. + waitFile(t, log, "a watcher check", func(s string) bool { return strings.Contains(s, "msg=watch") }) + testgit.WriteFile(t, repo, "fresh.txt", "fresh\n") + tm.keys("r") + tm.waitFor("Changes (3)", "fresh.txt") + if err := os.Remove(filepath.Join(repo, "fresh.txt")); err != nil { + t.Fatal(err) + } + tm.waitFor("Changes (2)") +} + +// TestReloadStorm checks that after many quick writes to a file, as an +// agent makes, the Changes tab shows the content of the last write. +func TestReloadStorm(t *testing.T) { + repo := newRepo(t) + tm := start(t, repo, opts{}) + tm.waitFor("Changes (2)") + for i := 1; i <= 200; i++ { + testgit.WriteFile(t, repo, "a.go", fmt.Sprintf("package a\n\nfunc A() int { return %d }\n", i)) + testgit.WriteFile(t, repo, fmt.Sprintf("storm/%d.go", i%10), fmt.Sprintf("package storm // %d\n", i)) + } + tm.waitFor("return 200 }", "Changes (12)") +} + +// TestLastTurn checks that the last-turn scope shows the changes made +// while the agent was working. func TestLastTurn(t *testing.T) { repo := newRepo(t) rex := newRex(t, repo) log := filepath.Join(t.TempDir(), "log") tm := start(t, repo, opts{rex: rex, args: []string{"-log", log}}) tm.keys("t") - // rexdiff takes the states of an agent after its first list of them. + // rexdiff follows agent states only after it has listed the agents once. tm.waitFor("waiting for the first turn", "send → 1 agent") rex.setState(t, "working") - // The turn starts with a snapshot of the files. - waitFile(t, log, func(s string) bool { return strings.Contains(s, "msg=\"turn start\"") }) + // Wait until rexdiff has taken the snapshot that starts the turn. + waitFile(t, log, "a turn start message", func(s string) bool { return strings.Contains(s, "msg=\"turn start\"") }) testgit.WriteFile(t, repo, "turn.go", "package a\n") rex.setState(t, "idle") tm.waitFor("Changes (1)", "turn.go", "pi") } -// TestTurnRaced checks that a turn whose start comes right after a write -// is not known, because its start snapshot can have the write. The scope -// tells so, as herdr-reviewr does. +// TestTurnRaced checks that when a file is written just before a turn +// starts, the last-turn scope says that it could not snapshot the turn, +// because the snapshot may already include that write. func TestTurnRaced(t *testing.T) { repo := newRepo(t) rex := newRex(t, repo) @@ -146,12 +248,10 @@ func TestTurnRaced(t *testing.T) { tm.waitFor("the last turn started before rexdiff could snapshot it") } -// TestPR checks that the PR tab shows the pull request of the branch from -// gh, with its checks and comments, and the age of each comment. It also -// checks that o opens it, as in herdr-reviewr. Without {url}, the URL goes -// at the end of the opener command. o does not open a URL that is not -// http or https. The keys of the scopes and of the base picker do nothing -// on the PR tab, and r reads the pull request again. +// TestPR checks the PR tab: the pull request with its checks and comment +// ages, collapsible details blocks, o and links opening in the url_opener +// command, scope keys that leave the tab alone, a link with an unsupported +// scheme, and r to reload. func TestPR(t *testing.T) { repo := newRepo(t) testgit.Git(t, repo, "remote", "add", "origin", "https://github.com/o/r.git") @@ -187,12 +287,12 @@ EOF if s := tm.waitFor("opened PR in browser"); !strings.Contains(s, "Add b #7") { t.Errorf("a key of a scope leaves the PR tab. The screen shows:\n%s", s) } - waitFile(t, filepath.Join(bin, "opened"), func(s string) bool { + waitFile(t, filepath.Join(bin, "opened"), "the pull request URL", func(s string) bool { return s == "https://github.com/o/r/pull/7\n" }) tm.click("the docs", 1) tm.waitFor("opened link in browser") - waitFile(t, filepath.Join(bin, "opened"), func(s string) bool { + waitFile(t, filepath.Join(bin, "opened"), "the docs URL", func(s string) bool { return s == "https://example.com/docs\n" }) @@ -210,8 +310,8 @@ EOF tm.waitFor("Add b again #7") } -// TestNoPR checks that the PR tab tells why it has no pull request. The -// repository has no remote, or the tool of the remote is not installed. +// TestNoPR checks that the PR tab explains why it shows no pull request: +// the repository has no remote, or the forge tool is not installed. func TestNoPR(t *testing.T) { tm := start(t, newRepo(t), opts{}) tm.keys("3") @@ -219,7 +319,7 @@ func TestNoPR(t *testing.T) { repo := newRepo(t) testgit.Git(t, repo, "remote", "add", "origin", "https://github.com/o/r.git") - // The PATH has only git, as /usr/bin can have gh. + // The PATH holds only git, because /usr/bin can contain gh. bin := t.TempDir() testgit.LinkGit(t, bin) tm = start(t, repo, opts{env: []string{"PATH=" + bin}}) diff --git a/test/main_test.go b/test/main_test.go index ba06638..7b2588d 100644 --- a/test/main_test.go +++ b/test/main_test.go @@ -9,12 +9,12 @@ import ( ) var ( - buildDir string // the directory of the binaries that the tests build - homeDir string // the HOME of rexdiff, an empty directory + buildDir string // the directory for the binaries that the tests build + homeDir string // an empty directory that rexdiff uses as HOME ) -// TestMain makes the directories of the binaries and of HOME. Then it -// runs the tests with testgit. +// TestMain creates the directories for the binaries and for HOME, then +// runs the tests through testgit.Main. func TestMain(m *testing.M) { var err error if buildDir, err = os.MkdirTemp("", "rexdiff-test"); err != nil { diff --git a/test/upgrade_test.go b/test/migratelua_test.go similarity index 76% rename from test/upgrade_test.go rename to test/migratelua_test.go index 3081861..bfbc045 100644 --- a/test/upgrade_test.go +++ b/test/migratelua_test.go @@ -11,11 +11,11 @@ import ( "testing" ) -// TestUpgradeAtStart checks that rexdiff in Rex writes a changed -// rexdiff_toggle.lua again, keeps rexdiff.lua, and reloads Rex. It does not -// change a rexdiff_toggle.lua that runs another rexdiff. Without -// rexdiff_toggle.lua, it writes no file. -func TestUpgradeAtStart(t *testing.T) { +// TestMigrateLuaAtStart checks that when rexdiff starts in Rex, it +// restores an edited rexdiff_toggle.lua, keeps the user's rexdiff.lua and +// reloads the Rex config. It must leave alone a rexdiff_toggle.lua that +// runs a different rexdiff binary, and must not create a missing one. +func TestMigrateLuaAtStart(t *testing.T) { repo := newRepo(t) rex := newRex(t, repo) config := filepath.Join(t.TempDir(), "init.lua") @@ -43,7 +43,7 @@ func TestUpgradeAtStart(t *testing.T) { if got := read(t, lua); got != edited { t.Errorf("rexdiff.lua after the start = \n%s\nwant:\n%s", got, edited) } - // The install reloads once, and the upgrade once. + // Expect one reload from the install and one from the start. if n := strings.Count(rex.calls(t), "config reload"); n != 2 { t.Errorf("config reloads = %d, want 2", n) } @@ -72,22 +72,22 @@ func TestUpgradeAtStart(t *testing.T) { } } -// TestUpgradeFrom027 checks the first start of rexdiff in Rex after an -// upgrade from rexdiff 0.2.7. The rexdiff.lua of 0.2.7 has the settings, -// then the code under a marker line. rexdiff keeps the settings, puts the -// loader in place of the code, writes rexdiff_toggle.lua, and reloads Rex. -func TestUpgradeFrom027(t *testing.T) { +// TestMigrateLuaFromV027 checks that the first start after an update from +// 0.2.7 keeps the user's settings in rexdiff.lua, moves the action code to +// rexdiff_toggle.lua, and reloads the Rex config once. With a real rex, it +// also checks that Rex accepts the new config. +func TestMigrateLuaFromV027(t *testing.T) { repo := newRepo(t) rex := newRex(t, repo) dir := t.TempDir() config := filepath.Join(dir, "init.lua") write(t, config, "require(\"rexdiff\")\n") lua := filepath.Join(dir, "rexdiff.lua") - old := strings.Replace(read(t, filepath.Join("testdata", "rexdiff-0.2.7.lua")), + oldLua := strings.Replace(read(t, filepath.Join("testdata", "rexdiff-0.2.7.lua")), "{{BIN}}", binary(t), 1) - old = strings.Replace(old, " -- layout = \"split\",", " layout = \"split\",", 1) - write(t, lua, old) - settings, _, _ := strings.Cut(old, "-- rexdiff code below.") + oldLua = strings.Replace(oldLua, " -- layout = \"split\",", " layout = \"split\",", 1) + write(t, lua, oldLua) + settings, _, _ := strings.Cut(oldLua, "-- rexdiff code below.") tm := start(t, repo, opts{rex: rex, env: []string{"REX_CONFIG=" + config}}) tm.keys("q") @@ -111,7 +111,7 @@ func TestUpgradeFrom027(t *testing.T) { check.Env = append(cleanEnv(), "REX_CONFIG="+config) out, err := check.CombinedOutput() if err != nil || !strings.Contains(string(out), "actions: 1") { - t.Errorf("rex config check after the upgrade: %v\n%s", err, out) + t.Errorf("rex config check after migrateLua: %v\n%s", err, out) } } } @@ -126,7 +126,8 @@ func read(t *testing.T, path string) string { return string(b) } -// write writes content to the file at path. +// write writes content to the file at path, replacing any existing +// content. func write(t *testing.T, path, content string) { t.Helper() if err := os.WriteFile(path, []byte(content), 0o644); err != nil { diff --git a/test/navigator_test.go b/test/navigator_test.go new file mode 100644 index 0000000..579d7e1 --- /dev/null +++ b/test/navigator_test.go @@ -0,0 +1,214 @@ +package test + +import ( + "fmt" + "path/filepath" + "strconv" + "strings" + "testing" + + "github.com/rednafi/rexdiff/internal/testgit" +) + +// manyFiles is a repository with navigatorFiles committed files, f00.txt to +// f59.txt, each with an uncommitted new first line. +var manyFiles = testgit.NewFixture(func(tb testing.TB, dir string) { + tb.Helper() + testgit.InitRepo(tb, dir) + for i := range navigatorFiles { + testgit.WriteFile(tb, dir, fileName(i), numbered("old", 1, 3)) + } + testgit.Git(tb, dir, "add", ".") + testgit.Git(tb, dir, "commit", "-qm", "first") + for i := range navigatorFiles { + testgit.WriteFile(tb, dir, fileName(i), content(i)+"\n"+numbered("old", 1, 3)) + } +}) + +// navigatorFiles is the number of files in manyFiles. +const navigatorFiles = 60 + +// fileName returns the name of file i in manyFiles. +func fileName(i int) string { return fmt.Sprintf("f%02d.txt", i) } + +// content returns the uncommitted first line of file i in manyFiles. +func content(i int) string { return fmt.Sprintf("content of file %02d", i) } + +// navigatorRow returns the text of the file list row for file i. +func navigatorRow(i int) string { return "M " + fileName(i) } + +// newManyFiles returns the path of a new copy of the manyFiles +// repository. The path contains no symbolic links. +func newManyFiles(t *testing.T) string { + t.Helper() + tmp, err := filepath.EvalSymlinks(t.TempDir()) + if err != nil { + t.Fatal(err) + } + dir := filepath.Join(tmp, "repo") + manyFiles.Copy(t, dir) + return dir +} + +// rowY returns the screen line of s on which text first appears, or -1. +func rowY(s, text string) int { + if _, y, ok := position(s, text); ok { + return y + } + return -1 +} + +// shownFiles returns the indices of the first and last files of manyFiles +// that the file list on the screen s shows, or -1 and -1 if it shows none. +func shownFiles(s string) (first, last int) { + first, last = -1, -1 + for i := range navigatorFiles { + if rowY(s, navigatorRow(i)) >= 0 { + if first < 0 { + first = i + } + last = i + } + } + return first, last +} + +// TestNavigatorWheelClick checks that after scrolling the file list with +// the wheel, a click opens the file under the pointer without scrolling +// the list again. It also checks that j and k scroll the list by one row +// only when the cursor moves past its top or bottom edge, and that the +// list keeps its scroll position when hidden and shown again. +func TestNavigatorWheelClick(t *testing.T) { + tm := start(t, newManyFiles(t), opts{height: 20}) + tm.waitFor(navigatorRow(0), content(0)) + // The wheel scrolls the list but does not move the cursor. Ten wheel + // steps of three rows each put file 30 at the top. + tm.wheel(navigatorRow(0), 10) + s := tm.waitUntil(func(s string) bool { + first, _ := shownFiles(s) + return first == 30 + }, "scroll the list to file 30") + if strings.Contains(s, navigatorRow(0)) || !strings.Contains(s, content(0)) { + t.Fatalf("the wheel does not scroll the list only:\n%s", s) + } + first, last := shownFiles(s) + y := rowY(s, navigatorRow(40)) + tm.click(navigatorRow(40), 1) + // A frame can be drawn in parts, so each wait checks the whole screen. + tm.waitUntil(func(s string) bool { + return strings.Contains(s, content(40)) && rowY(s, navigatorRow(40)) == y + }, fmt.Sprintf("open file 40 with its row on line %d", y)) + + // Inside the visible rows, the cursor moves and the list stays put. + // Past the top or bottom row, the list scrolls by one row. + for _, step := range []struct { + key string + from, to int // the cursor position before and after the keys + first, last int // the first and last files shown afterwards + }{ + {key: "k", from: 40, to: first, first: first, last: last}, + {key: "k", from: first, to: first - 1, first: first - 1, last: last - 1}, + {key: "j", from: first - 1, to: last - 1, first: first - 1, last: last - 1}, + {key: "j", from: last - 1, to: last, first: first, last: last}, + } { + for i := step.from; i != step.to; { + if step.key == "j" { + i++ + } else { + i-- + } + tm.keys(step.key) + } + tm.waitUntil(func(s string) bool { + f, l := shownFiles(s) + return strings.Contains(s, content(step.to)) && f == step.first && l == step.last + }, fmt.Sprintf("open file %d with files %d to %d in the list", step.to, step.first, step.last)) + } + // After the list is hidden and shown again, it shows the same rows. + tm.keys("z") + tm.waitGone(navigatorRow(first)) + tm.keys("z") + tm.waitUntil(func(s string) bool { + f, l := shownFiles(s) + return f == first && l == last + }, fmt.Sprintf("show files %d to %d in the list", first, last)) +} + +// TestMainWheelClick checks that after scrolling the main pane with the +// wheel, a click puts the cursor on the line under the pointer without +// scrolling the pane. +func TestMainWheelClick(t *testing.T) { + tm := start(t, newRepo(t), opts{height: 20}) + tm.click("M long.txt", 1) + tm.waitFor("⋯ 32 unmodified lines") + tm.keys(":", "2", "0", "enter") // going to line 20 expands the fold + tm.waitCursor("line 20") + tm.keys(":", "1", "enter") + tm.waitFor(" first") + // Five wheel steps of three rows each put line 16 at the top of the + // code, below the header and the first line. + tm.wheel(" first", 5) + s := tm.waitUntil(func(s string) bool { + return strings.Contains(s, "line 16") && !strings.Contains(s, "line 15") + }, "scroll to line 16") + y := rowY(s, "line 25") + tm.click("line 25", 1) + tm.waitUntil(func(s string) bool { + return sameLine(s, "▶", "line 25") && rowY(s, "line 25") == y + }, fmt.Sprintf("put the cursor on line 25, on line %d", y)) +} + +// TestWideNameCut checks that a file list row with a cut name of wide +// characters still shows the whole line count, for list widths of either +// parity, so that the cut falls both between and inside wide characters. +func TestWideNameCut(t *testing.T) { + repo := filepath.Join(t.TempDir(), "repo") + testgit.InitRepo(t, repo) + names := []string{strings.Repeat("中文", 10) + ".txt", strings.Repeat("😀", 20) + ".md"} + for _, n := range names { + testgit.WriteFile(t, repo, n, "old\n") + } + testgit.Git(t, repo, "add", ".") + testgit.Git(t, repo, "commit", "-qm", "first") + for _, n := range names { + testgit.WriteFile(t, repo, n, "new\n") + } + for _, w := range []int{30, 31} { + t.Run(strconv.Itoa(w), func(t *testing.T) { + tm := start(t, repo, opts{width: 90, height: 14, args: []string{ + "-config", fmt.Sprintf(`{"file_list_width": %d}`, w), + }}) + tm.waitUntil(func(s string) bool { + return sameLine(s, "M …", "文.txt", "+1 -1") && sameLine(s, "M …😀", "😀.md", "+1 -1") + }, "the cut names with their whole line counts") + }) + } +} + +// TestWideTitleCut checks that the main pane title with a cut path of wide +// characters fits in the pane and keeps its line count, for widths of +// either parity, so that the cut falls both between and inside wide +// characters. A title that is too wide pushes the file list to the right, +// so the end of its rows falls off the screen. +func TestWideTitleCut(t *testing.T) { + for _, name := range []string{strings.Repeat("中文", 30) + ".txt", strings.Repeat("😀", 60) + ".md"} { + repo := filepath.Join(t.TempDir(), "repo") + testgit.InitRepo(t, repo) + testgit.WriteFile(t, repo, name, "old\n") + testgit.Git(t, repo, "add", ".") + testgit.Git(t, repo, "commit", "-qm", "first") + testgit.WriteFile(t, repo, name, "new\n") + end := string([]rune(name)[len([]rune(name))-5:]) + for _, width := range []uint16{80, 81} { + t.Run(end+"/"+strconv.Itoa(int(width)), func(t *testing.T) { + tm := start(t, repo, opts{width: width, height: 14}) + s := tm.waitUntil(func(s string) bool { + return sameLine(s, "…", end+" +1 -1") && sameLine(s, "Changes (1)") + }, "the cut title with its line count") + if !sameLine(s, "M …", "+1 -1") { + t.Errorf("the file list row is cut short:\n%s", s) + } + }) + } + } +} diff --git a/test/norace_test.go b/test/norace_test.go index 6283e17..96586e4 100644 --- a/test/norace_test.go +++ b/test/norace_test.go @@ -2,5 +2,5 @@ package test -// raceOn is true in a run with the race detector. +// raceOn reports whether the tests run with the race detector. const raceOn = false diff --git a/test/race_test.go b/test/race_test.go index 63cb408..a4172a5 100644 --- a/test/race_test.go +++ b/test/race_test.go @@ -2,5 +2,5 @@ package test -// raceOn is true in a run with the race detector. +// raceOn reports whether the tests run with the race detector. const raceOn = true diff --git a/test/resize_test.go b/test/resize_test.go new file mode 100644 index 0000000..92ca632 --- /dev/null +++ b/test/resize_test.go @@ -0,0 +1,65 @@ +package test + +import ( + "fmt" + "strings" + "testing" + + "github.com/charmbracelet/x/ansi" +) + +// drawn reports whether s is a whole frame of a w by h terminal: it is +// not blank, it has at most h lines and none wider than w, and on a +// terminal big enough for them it has the tab bar on the first line and +// the key hints on the last, or a whole box that covers the screen. +func drawn(s string, w, h int) bool { + lines := strings.Split(s, "\n") + if strings.TrimSpace(s) == "" || len(lines) > h { + return false + } + for _, l := range lines { + if ansi.StringWidth(l) > w { + return false + } + } + if w < 60 || h < 5 { + return true + } + if strings.HasPrefix(strings.TrimSpace(lines[0]), "╭") { + return sameLine(s, "╰", "╯") + } + return len(lines) == h && strings.Contains(lines[0], "1 Changes") && strings.TrimSpace(lines[h-1]) != "" +} + +// TestResize checks that rexdiff draws a whole frame at each size while a +// box or bar is open, from 1 by 1 up to 300 by 80, and that the box is +// still open and closes at the end. +func TestResize(t *testing.T) { + sizes := [][2]int{{1, 1}, {10, 3}, {300, 80}, {40, 10}, {160, 40}} + tests := []struct { + name string + open []string + shows string + }{ + {"help", []string{"?"}, "pick commits"}, + {"search", []string{"/", "l", "o", "n", "g"}, "preview · long.txt"}, + {"comment box", []string{"]", "c", "t", "y", "p", "e", "d"}, "enter save"}, + {"quit prompt", []string{"]", "c", "h", "i", "enter", "q"}, "unsent comment will be lost"}, + {"find bar", []string{"ctrl+f", "r", "e", "t"}, "find ret"}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tm := start(t, newRepo(t), opts{}) + tm.keys(tt.open...) + tm.waitFor(tt.shows) + for _, size := range sizes { + w, h := size[0], size[1] + tm.resize(w, h) + tm.waitUntil(func(s string) bool { return drawn(s, w, h) }, fmt.Sprintf("draw a whole %dx%d frame", w, h)) + } + tm.waitFor(tt.shows) + tm.keys("esc") + tm.waitGone(tt.shows) + }) + } +} diff --git a/test/rexdiff_test.go b/test/rexdiff_test.go index 6e8e3e3..f83124c 100644 --- a/test/rexdiff_test.go +++ b/test/rexdiff_test.go @@ -1,8 +1,7 @@ -// Package test runs the rexdiff program as a user does. Each test starts -// the binary in a terminal, types keys, clicks, and reads the screen. A -// fake rex stands in for Rex, and the other tools are fakes on PATH. git -// is real. The tests run one at a time, because each runs a program in a -// terminal. +// Package test runs the rexdiff program the way a user does. Each test +// starts the binary in a terminal emulator, types keys, clicks, and reads +// the screen. Rex and the other tools are fake scripts on PATH, but git is +// the real git. package test import ( @@ -28,13 +27,14 @@ import ( "github.com/rednafi/rexdiff/internal/testgit" ) -// buildDev builds rexdiff once. The build serves all the tests, as -// TestMain does, so it has the context of no test. +// buildDev builds rexdiff once and shares the result between all tests, +// so it uses context.Background instead of a test's context. var buildDev = sync.OnceValues(func() (string, error) { return build(context.Background(), filepath.Join(buildDir, "dev"), "") }) -// binary returns the path of a rexdiff that the package builds once. +// binary returns the path of the development rexdiff binary, building it +// on the first call. func binary(t *testing.T) string { t.Helper() bin, err := buildDev() @@ -44,10 +44,10 @@ func binary(t *testing.T) string { return bin } -// build builds rexdiff with the version into dir, and returns its path. -// A run with the race detector builds a rexdiff with it. The build stops -// when ctx is done. -buildvcs=false keeps the version of a git tag out, -// so a build with no version does not look for updates. +// build builds rexdiff into dir with the given version and returns the +// binary's path. When the tests run with the race detector, it builds with +// -race too. The build stops when ctx is done. -buildvcs=false stops a +// build with an empty version from picking up a version from git tags. func build(ctx context.Context, dir, version string) (string, error) { bin := filepath.Join(dir, "rexdiff") args := []string{"build", "-buildvcs=false", "-o", bin, "-ldflags", "-X main.version=" + version} @@ -61,24 +61,18 @@ func build(ctx context.Context, dir, version string) (string, error) { return bin, nil } -// userEnv are the variables of the user that change what rexdiff does. -// Each run starts with them empty. +// userEnv lists the user's environment variables that change how rexdiff +// behaves. Each run sets them to empty values. var userEnv = []string{ "REX_SESSION", "REX_BLOCK", "REX_BIN_DIR", "REX_CONFIG", "REXDIFF_AGENT", "REXDIFF_LOG", "REXDIFF_RESUME", "EDITOR", "VISUAL", } -// cleanEnv returns the environment of the process for a run of rexdiff. -// It has no git variable of the user, and the variables of userEnv are -// empty. HOME is homeDir, so no file of the user applies. Git gets the -// variables of testgit.Env. +// cleanEnv returns the environment for running rexdiff. It drops the +// user's GIT_ variables, empties the variables in userEnv, sets HOME to +// homeDir, and adds the git settings from testgit.Env. func cleanEnv() []string { - var env []string - for _, kv := range os.Environ() { - if !strings.HasPrefix(kv, "GIT_") { - env = append(env, kv) - } - } + env := slices.DeleteFunc(os.Environ(), func(kv string) bool { return strings.HasPrefix(kv, "GIT_") }) for _, k := range userEnv { env = append(env, k+"=") } @@ -86,34 +80,36 @@ func cleanEnv() []string { return append(env, testgit.Env()...) } -// opts are the options of a rexdiff run. +// opts holds the options for running rexdiff. type opts struct { - args []string // the flags. start adds the repo. - bin string // the rexdiff to run, or "" for the one of binary + args []string // the flags; start appends the repository path + bin string // the rexdiff binary to run, or "" for the one from binary width uint16 // 0 means 160 height uint16 // 0 means 40 rex *fakeRex // nil runs rexdiff outside Rex - path string // a directory of fake tools, or "" - env []string // more variables + path string // a directory of fake tools to put on PATH, or "" + env []string // extra environment variables } -// term is a rexdiff that runs in a terminal. +// term is a rexdiff process running in a terminal emulator. type term struct { t *testing.T emu *vt.Emulator mu sync.Mutex // guards emu - wait func() error // waits for rexdiff once, and keeps its error - // changed gets a value after each write to the screen. It holds one - // value, so a write that comes before a wait is not lost. + pty *os.File // the terminal of rexdiff + wait func() error // waits for rexdiff to exit; later calls return the same error + // changed receives a value after each write to the screen. Its buffer + // holds one value, so a write that happens before a wait is not lost. changed chan struct{} - done chan struct{} // closed when the screen gets no more output + done chan struct{} // closed when rexdiff's output ends } -// waitTime is how long a test waits for the screen or for a file. +// waitTime is how long a test waits for the screen or a file to change +// before it fails. const waitTime = 15 * time.Second -// start runs rexdiff on repo in a new terminal. The test stops it at the -// end. +// start runs rexdiff on repo in a new terminal and waits for the first +// screen. rexdiff is stopped when the test ends. func start(t *testing.T, repo string, o opts) *term { t.Helper() w, h := cmp.Or(o.width, 160), cmp.Or(o.height, 40) @@ -123,14 +119,16 @@ func start(t *testing.T, repo string, o opts) *term { } cmd := exec.CommandContext(t.Context(), bin, append(o.args, repo)...) cmd.Dir = repo - // A stop lets rexdiff remove its files before it exits. + // SIGTERM, unlike a kill, lets rexdiff remove its files before it + // exits. cmd.Cancel = func() error { return cmd.Process.Signal(syscall.SIGTERM) } cmd.WaitDelay = 2 * time.Second var dirs []string if o.path != "" { dirs = append(dirs, o.path) } - // The PATH of ToolEnv has git, but no other tool of the user. + // The PATH from ToolEnv includes git but none of the user's other + // tools. cmd.Env = append(cleanEnv(), "TERM=xterm-256color") cmd.Env = append(cmd.Env, testgit.ToolEnv(t, dirs...)...) if o.rex != nil { @@ -145,6 +143,7 @@ func start(t *testing.T, repo string, o opts) *term { tm := &term{ t: t, emu: vt.NewEmulator(int(w), int(h)), + pty: f, wait: sync.OnceValue(cmd.Wait), changed: make(chan struct{}, 1), done: make(chan struct{}), @@ -160,7 +159,7 @@ func start(t *testing.T, repo string, o opts) *term { tm.mu.Unlock() select { case tm.changed <- struct{}{}: - default: // the wait has a value that it does not take yet + default: // a change is already pending } } if err != nil { @@ -168,20 +167,20 @@ func start(t *testing.T, repo string, o opts) *term { } } }() - // The input of rexdiff comes from the emulator, as from a terminal. It - // has the keys and the mouse of the test. It also has the answers to - // the queries of rexdiff, for example for the colours. + // The emulator produces rexdiff's input: the test's key presses and + // mouse events, and replies to terminal queries, such as colour + // queries. input := make(chan struct{}) go func() { defer close(input) _, _ = io.Copy(f, tm.emu) }() t.Cleanup(func() { - _ = tm.wait() // t.Context is done, so Cancel stops rexdiff + _ = tm.wait() // t.Context is done by now, so cmd.Cancel stops rexdiff _ = f.Close() <-tm.done - // Close of the pipe, not of the emulator, ends the copy. The Close - // of the emulator races with its Read. + // Close the input pipe, not the emulator, to end the copy, because + // closing the emulator races with its Read. _ = tm.emu.InputPipe().(io.Closer).Close() <-input }) @@ -189,6 +188,20 @@ func start(t *testing.T, repo string, o opts) *term { return tm } +// resize changes the size of the terminal, as a user does who resizes +// the window. It clears the screen, so that what shows next is what +// rexdiff draws at the new size. +func (tm *term) resize(w, h int) { + tm.t.Helper() + tm.mu.Lock() + tm.emu.Resize(w, h) + _, _ = tm.emu.Write([]byte("\x1b[2J")) + tm.mu.Unlock() + if err := pty.Setsize(tm.pty, &pty.Winsize{Cols: uint16(w), Rows: uint16(h)}); err != nil { //nolint:gosec // the sizes of the tests fit + tm.t.Fatal(err) + } +} + // screen returns the text on the screen. func (tm *term) screen() string { tm.mu.Lock() @@ -196,9 +209,10 @@ func (tm *term) screen() string { return tm.emu.String() } -// keys types each key. A key is a name in keyCodes, or else a text. As -// in a terminal, an esc and the key after it can join into one key, so esc -// must be the last key. Wait for the screen after it, as a user does. +// keys types each key in turn. A key is either a name from keyCodes or +// literal text. An esc followed by another key can be read as a single +// key, so esc must come last; wait for the screen before sending more +// keys. func (tm *term) keys(keys ...string) { tm.t.Helper() if i := slices.Index(keys, "esc"); i >= 0 && i != len(keys)-1 { @@ -215,13 +229,20 @@ func (tm *term) keys(keys ...string) { } } -// typed types each character of text. +// paste pastes text as a terminal does, in bracketed paste mode. +func (tm *term) paste(text string) { + tm.mu.Lock() + defer tm.mu.Unlock() + tm.emu.Paste(text) +} + +// typed types text one character at a time. func (tm *term) typed(text string) { tm.t.Helper() tm.keys(strings.Split(text, "")...) } -// keyCodes are the named keys. +// keyCodes maps key names to key presses. var keyCodes = map[string]vt.KeyPressEvent{ "enter": {Code: vt.KeyEnter}, "esc": {Code: vt.KeyEscape}, @@ -239,15 +260,16 @@ var keyCodes = map[string]vt.KeyPressEvent{ "bs": {Code: vt.KeyBackspace}, } -// at returns the column and the line of text on the screen, from 0. +// at waits until the screen shows text and returns its column and line, +// counting from 0. func (tm *term) at(text string) (x, y int) { tm.t.Helper() x, y, _ = position(tm.waitFor(text), text) return x, y } -// position returns the column and the line of the first text in s, from -// 0. ok is false if s does not have text. +// position returns the column and line of the first occurrence of text in +// s, counting from 0. ok is false if s does not contain text. func position(s, text string) (x, y int, ok bool) { for i, l := range strings.Split(s, "\n") { if before, _, found := strings.Cut(l, text); found { @@ -257,14 +279,15 @@ func position(s, text string) (x, y int, ok bool) { return 0, 0, false } -// mouse sends the mouse event m, as the terminal encodes it. +// mouse sends the mouse event m to rexdiff, encoded as a terminal would +// encode it. func (tm *term) mouse(m vt.Mouse) { tm.mu.Lock() defer tm.mu.Unlock() tm.emu.SendMouse(m) } -// click clicks text on the screen the given number of times in a row. +// click clicks on text on the screen the given number of times in a row. func (tm *term) click(text string, times int) { tm.t.Helper() x, y := tm.at(text) @@ -274,8 +297,8 @@ func (tm *term) click(text string, times int) { } } -// drag drags the mouse from the start of text from to the start of text -// to. +// drag drags the mouse from the start of the text from to the start of +// the text to, holding the left button. func (tm *term) drag(from, to string) { tm.t.Helper() x0, y0 := tm.at(from) @@ -294,7 +317,7 @@ func (tm *term) wheel(text string, n int) { } } -// waitFor waits until the screen shows each of texts, and returns the +// waitFor waits until the screen shows all of texts, and returns the // screen. func (tm *term) waitFor(texts ...string) string { tm.t.Helper() @@ -306,20 +329,20 @@ func (tm *term) waitFor(texts ...string) string { func (tm *term) waitGone(texts ...string) string { tm.t.Helper() return tm.waitUntil(func(s string) bool { return !hasAny(s, texts...) }, - "not show "+strings.Join(texts, ", ")) + "stop showing "+strings.Join(texts, ", ")) } -// hasAll reports whether s has each of texts. +// hasAll reports whether s contains all of texts. func hasAll(s string, texts ...string) bool { return !slices.ContainsFunc(texts, func(t string) bool { return !strings.Contains(s, t) }) } -// hasAny reports whether s has one of texts. +// hasAny reports whether s contains at least one of texts. func hasAny(s string, texts ...string) bool { return slices.ContainsFunc(texts, func(t string) bool { return strings.Contains(s, t) }) } -// sameLine reports whether a line of s has each of texts. +// sameLine reports whether a single line of s contains all of texts. func sameLine(s string, texts ...string) bool { for l := range strings.Lines(s) { if hasAll(l, texts...) { @@ -329,15 +352,17 @@ func sameLine(s string, texts ...string) bool { return false } -// waitCursor waits until the line of the cursor shows text. +// waitCursor waits until the line with the cursor marker ▶ also +// shows text. func (tm *term) waitCursor(text string) { tm.t.Helper() tm.waitUntil(func(s string) bool { return sameLine(s, "▶", text) }, "put the cursor on "+text) } -// waitUntil waits until ok is true for the screen, and returns the screen. -// It checks the screen after each write to it. +// waitUntil waits until ok reports true for the screen, and returns the +// screen. It checks again after every write to the screen. what describes +// the condition in the failure message. func (tm *term) waitUntil(ok func(string) bool, what string) string { tm.t.Helper() timeout := time.NewTimer(waitTime) @@ -350,8 +375,8 @@ func (tm *term) waitUntil(ok func(string) bool, what string) string { select { case <-tm.changed: case <-tm.done: - // rexdiff writes no more. The last write can come after the - // check. + // The output has ended, but the last write may have arrived + // after the check above, so check once more. if s = tm.screen(); ok(s) { return s } @@ -362,40 +387,42 @@ func (tm *term) waitUntil(ok func(string) bool, what string) string { } } -// pollTime is the time between two checks of poll. -const pollTime = 20 * time.Millisecond +// pollInterval is how often poll checks its condition. +const pollInterval = 20 * time.Millisecond -// poll checks again and again until ok is true. It is for the files that -// the fake tools write, and for other programs, because they give no -// event. It fails the test with the text of why after waitTime. +// poll calls ok until it reports true. Use it for files that the fake +// tools write and for other programs, which send no notification when +// they change. If ok is still false after waitTime, poll fails the test +// with the message from why. func poll(t *testing.T, ok func() bool, why func() string) { t.Helper() timeout := time.NewTimer(waitTime) defer timeout.Stop() - tick := time.NewTicker(pollTime) - defer tick.Stop() + tick := time.Tick(pollInterval) for !ok() { select { - case <-tick.C: + case <-tick: case <-timeout.C: t.Fatal(why()) } } } -// waitFile waits until the file at path has content, and returns it. -func waitFile(t *testing.T, path string, content func(string) bool) string { +// waitFile waits until content reports true for the content of the file +// at path, and returns that content. want describes the expected content +// for the failure message. +func waitFile(t *testing.T, path, want string, content func(string) bool) string { t.Helper() var s string poll(t, func() bool { b, _ := os.ReadFile(path) s = string(b) return content(s) - }, func() string { return path + " has " + strconv.Quote(s) }) + }, func() string { return path + " has " + strconv.Quote(s) + ", want " + want }) return s } -// exited waits until rexdiff exits and returns its error. +// exited waits for rexdiff to exit and returns its exit error. func (tm *term) exited() error { tm.t.Helper() errc := make(chan error, 1) diff --git a/test/testdata/script/cli.txt b/test/testdata/script/cli.txt index 04d2de2..86821b4 100644 --- a/test/testdata/script/cli.txt +++ b/test/testdata/script/cli.txt @@ -8,6 +8,11 @@ stderr '^usage: rexdiff' ! exec rexdiff -nope stderr -count=1 'flag provided but not defined: -nope' +# A -log FIFO with no reader is an error at once, not a wait for a reader. +exec mkfifo fifo +! exec rexdiff -log fifo repo +stderr '^rexdiff: open log fifo: the FIFO has no reader, start one first$' + # -check checks the settings without a repository, for the Rex action. ! exec rexdiff -check -config '{"layuot": "split"}' stderr '^rexdiff: config: unknown key "layuot"$' @@ -23,6 +28,39 @@ exec rexdiff -check -config '{"keybindings": {"list-wider": ["W"], "preview": [" ! exec rexdiff -check -config '{"keybindings": {"rendered": ["M"], "preview": ["P"]}}' stderr '^rexdiff: config: invalid value for keybindings: "rendered" and "preview" name the same action$' +# The names of the settings and of the actions are those of herdr-reviewr. +exec rexdiff -check -config '{"keybindings": {"next-hunk": ["x"], "send": ["S"], "navigator-hide": ["Z"], "keys": ["H"]}, "file_list": "left", "file_list_width": 40, "url_opener": "open {url}"}' +! exec rexdiff -check -config '{"file_list_width": 3}' +stderr '^rexdiff: config: invalid value for file_list_width: expected 16 or more, not "3"$' +! exec rexdiff -check -config '{"keybindings": {"down": ["bogus"]}}' +stderr '^rexdiff: config: invalid value for keybindings.down: expected a list of keys' +! exec rexdiff -check -config '{"keybindings": {"down": ["x"], "up": ["x"]}}' +stderr '^rexdiff: config: invalid value for keybindings: "x" is bound to both "down" and "up"$' +! exec rexdiff -check -config '{"keybindings": {"down": ["x", "x"]}}' +stderr '^rexdiff: config: invalid value for keybindings: "x" is bound twice to "down"$' +! exec rexdiff -check -config '{"keybindings": {"down": ["U"]}}' +stderr '^rexdiff: config: invalid value for keybindings: "U" is bound to both "down" and "update"$' +! exec rexdiff -check -config '{"keybindings": {"next-hunk": ["j"]}}' +stderr '^rexdiff: config: invalid value for keybindings: "j" is bound to both "down" and "next-hunk"$' + +# Other names of the settings and of the actions are unknown keys. +! exec rexdiff -check -config '{"list_position": "left"}' +stderr '^rexdiff: config: unknown key "list_position"$' +! exec rexdiff -check -config '{"list_width": 40}' +stderr '^rexdiff: config: unknown key "list_width"$' +! exec rexdiff -check -config '{"browser": "open {url}"}' +stderr '^rexdiff: config: unknown key "browser"$' +! exec rexdiff -check -config '{"keybindings": {"move-down": ["x"]}}' +stderr '^rexdiff: config: unknown key "keybindings.move-down"$' +! exec rexdiff -check -config '{"keybindings": {"next-change": ["x"]}}' +stderr '^rexdiff: config: unknown key "keybindings.next-change"$' +! exec rexdiff -check -config '{"keybindings": {"toggle-split": ["x"]}}' +stderr '^rexdiff: config: unknown key "keybindings.toggle-split"$' +! exec rexdiff -check -config '{"keybindings": {"toggle-help": ["x"]}}' +stderr '^rexdiff: config: unknown key "keybindings.toggle-help"$' +! exec rexdiff -check -config '{"keybindings": {"upgrade": ["x"]}}' +stderr '^rexdiff: config: unknown key "keybindings.upgrade"$' + # A bad value of a flag names the flag, as the settings do. ! exec rexdiff -layout sideways repo stderr '^rexdiff: invalid value for -layout: expected one of unified, split, not "sideways"$' @@ -30,3 +68,10 @@ stderr '^rexdiff: invalid value for -layout: expected one of unified, split, not stderr '^rexdiff: invalid value for -scope: expected one of uncommitted, branch, last-turn, not "all"$' ! exec rexdiff -wrap no repo stderr '^rexdiff: invalid value for -wrap: expected one of on, off, not "no"$' + +# -check checks the flags as a normal start does. +! exec rexdiff -check -layout sideways +stderr '^rexdiff: invalid value for -layout: expected one of unified, split, not "sideways"$' +! exec rexdiff -check -scope all +stderr '^rexdiff: invalid value for -scope: expected one of uncommitted, branch, last-turn, not "all"$' +exec rexdiff -check -layout split -scope branch diff --git a/test/update_test.go b/test/update_test.go index 426078a..0374245 100644 --- a/test/update_test.go +++ b/test/update_test.go @@ -7,10 +7,13 @@ import ( "compress/gzip" "crypto/sha256" "encoding/hex" + "fmt" + "hash/fnv" "net/http" "net/http/httptest" "os" "os/exec" + "path/filepath" "runtime" "strings" "sync" @@ -18,22 +21,24 @@ import ( "testing/fstest" ) -// release serves the latest release tag with the binary at bin, as GitHub -// does. It returns the address of the latest release. -func release(t *testing.T, tag, bin string) string { +// release starts a fake GitHub release server whose latest release is +// tag, with an archive of the binary at bin and its checksum. If tampered, +// the checksum does not match the archive. It returns the URL of the +// latest release. +func release(t *testing.T, tag, bin string, tampered bool) string { t.Helper() - content, err := os.ReadFile(bin) + binData, err := os.ReadFile(bin) if err != nil { t.Fatal(err) } var b bytes.Buffer gz := gzip.NewWriter(&b) tw := tar.NewWriter(gz) - hdr := &tar.Header{Name: "rexdiff", Mode: 0o755, Size: int64(len(content)), Typeflag: tar.TypeReg} + hdr := &tar.Header{Name: "rexdiff", Mode: 0o755, Size: int64(len(binData)), Typeflag: tar.TypeReg} if err := tw.WriteHeader(hdr); err != nil { t.Fatal(err) } - if _, err := tw.Write(content); err != nil { + if _, err := tw.Write(binData); err != nil { t.Fatal(err) } if err := tw.Close(); err != nil { @@ -45,6 +50,9 @@ func release(t *testing.T, tag, bin string) string { name := "rexdiff-" + tag + "-" + runtime.GOOS + "-" + runtime.GOARCH + ".tar.gz" archive := b.Bytes() sum := sha256.Sum256(archive) + if tampered { + sum[0]++ + } files := fstest.MapFS{ name: {Data: archive}, "sha256sums.txt": {Data: []byte(hex.EncodeToString(sum[:]) + " " + name + "\n")}, @@ -57,10 +65,10 @@ func release(t *testing.T, tag, bin string) string { return srv.URL + "/latest" } -// TestUpdate checks that U installs the latest release and starts it in -// the same terminal, with the comments and the place of the user. +// TestUpdate checks that U replaces the binary with the latest release +// and starts it in the same terminal, keeping the user's comments. func TestUpdate(t *testing.T) { - // The two builds run at once. + // Build the old and new versions in parallel. var next string var nextErr error var wg sync.WaitGroup @@ -71,13 +79,13 @@ func TestUpdate(t *testing.T) { if err = cmp.Or(err, nextErr); err != nil { t.Fatal(err) } - latest := release(t, "v0.2.0", next) + latest := release(t, "v0.2.0", next, false) tm := start(t, newRepo(t), opts{bin: bin, env: []string{"REXDIFF_LATEST_URL=" + latest}}) tm.waitFor("rexdiff v0.2.0 is out: press U or click here to update") comment(tm, "hi") tm.keys("U") - // The new rexdiff is the latest, so it shows no update. It has the - // comment, but not the message of the old one. + // The new rexdiff is the latest version, so it offers no update. It + // shows the comment, but not the flash message from the old process. tm.waitUntil(func(s string) bool { return strings.Contains(s, "💬 hi") && !hasAny(s, "is out", "updating", "comment added") }, "show the comment in the new rexdiff") @@ -86,3 +94,80 @@ func TestUpdate(t *testing.T) { t.Errorf("rexdiff -version = %q (%v), want v0.2.0", got, err) } } + +// TestUpdateBadChecksum checks that when the archive of the latest +// release does not match its checksum, U shows the error and rexdiff keeps +// running. The tests of update check that the binary stays the same. +func TestUpdateBadChecksum(t *testing.T) { + bin, err := build(t.Context(), t.TempDir(), "0.1.0") + if err != nil { + t.Fatal(err) + } + latest := release(t, "v0.2.0", bin, true) + tm := start(t, newRepo(t), opts{bin: bin, env: []string{"REXDIFF_LATEST_URL=" + latest}}) + tm.waitFor("rexdiff v0.2.0 is out") + tm.keys("U") + tm.waitFor("update failed", "does not match its checksum") + tm.keys("2") + tm.waitFor("Files (6)") +} + +// headState writes a resume state file, like the one rexdiff saves before +// an update, and returns its path. The state shows long.txt with the +// cursor on row 3 and a sideways scroll of xoff, the file list on the left +// with a width of 50, and the fold at line 20 expanded. Line 20 has an +// unsent comment. hidden hides the file list, and focus gives it the +// focus. +func headState(t *testing.T, xoff int, hidden, focus bool) string { + t.Helper() + h := fnv.New64a() + _, _ = h.Write([]byte(numbered("line", 1, 40))) // the committed content of long.txt; Write on a hash.Hash never fails + state := fmt.Sprintf(`{"tab": 0, "scope": "uncommitted", "base": "", "from": "", "to": "", + "turn": null, "change_path": "long.txt", "file_path": "", + "changes": {"cur": 3, "top": 0, "xoff": %d}, "viewer": {"cur": 0, "top": 0, "xoff": 0}, + "pr": {"cur": 0, "top": 0, "xoff": 0}, "split": false, "wrap": false, "rendered": false, + "list_pos": "left", "list_hidden": %t, "focus_list": %t, "list_w": 50, + "folds": {"long.txt": {"old": %d, "ranges": [[20, 20]]}}, + "comments": {"last": 1, "items": [{"id": 1, "path": "long.txt", "side": 1, + "start": 20, "end": 20, "text": "kept", "in_diff": true, "rev": "", + "code": ["line 20"], "snippet": null}]}, + "last_sent": "", "beside": ""}`, xoff, hidden, focus, h.Sum64()) + path := filepath.Join(t.TempDir(), "state.json") + if err := os.WriteFile(path, []byte(state), 0o600); err != nil { + t.Fatal(err) + } + return path +} + +// TestResumeState checks that rexdiff restores every part of the resume +// state that it saves before an update: the file, cursor, sideways +// scroll, expanded fold, comment, and the position, width, visibility and +// focus of the file list. +func TestResumeState(t *testing.T) { + t.Run("shown", func(t *testing.T) { + path := headState(t, 0, false, true) + tm := start(t, newRepo(t), opts{width: 160, env: []string{"REXDIFF_RESUME=" + path}}) + s := tm.waitFor("long.txt +2 -2", "line 20", "💬 kept", "●1") + if strings.Contains(s, "unmodified lines") { + t.Errorf("the fold of the state is not expanded. The screen shows:\n%s", s) + } + if c := column(s, "Changes (2)"); c < 0 || c > 5 { + t.Errorf("the file list starts at column %d, want it at the left", c) + } + if ls := lines(s, "M a.go"); len(ls) == 0 || column(ls[0], "│") < 48 || column(ls[0], "│") > 52 { + t.Errorf("the file list rows %q, want a width of 50", ls) + } + tm.waitCursor("line 2") // row 3, after the header and the first change + // The file list has the focus, so k selects the previous file. + tm.keys("k") + tm.waitFor("a.go +2 -1") + }) + t.Run("scrolled and hidden", func(t *testing.T) { + path := headState(t, 3, true, false) + tm := start(t, newRepo(t), opts{width: 160, env: []string{"REXDIFF_RESUME=" + path}}) + s := tm.waitFor("long.txt +2 -2", "e 20", "💬 kept") + if hasAny(s, "Changes (2)", "line 20") { + t.Errorf("the file list shows, or the lines do not scroll sideways. The screen shows:\n%s", s) + } + }) +} diff --git a/tui/agentpick.go b/tui/agentpick.go index 06c3a02..c8f6101 100644 --- a/tui/agentpick.go +++ b/tui/agentpick.go @@ -1,6 +1,6 @@ package tui -// The agent picker picks the agent that gets the review. +// The agent picker lets the user choose which agent receives the review. import ( "fmt" @@ -9,13 +9,14 @@ import ( "github.com/rednafi/rexdiff/rex" ) -// openAgentPicker lets the user pick the agent to send to. The cursor -// starts on the agent of the last send, else the agent beside the pane. +// openAgentPicker opens a list of agents for the user to send the review +// to. The cursor starts on the agent that was used last or, failing that, +// on the agent in the pane beside rexdiff. func (m *model) openAgentPicker(agents []rex.Agent) { ov := newOverlay(overlayAgents, "send to which agent?") ov.agents = agents - var items []pickItem - armed := 0 + var items []overlayItem + crossing := 0 for i, a := range agents { detail := a.Status.App + " · " + string(a.Status.State) if a.Status.State == rex.StateBlocked { @@ -27,14 +28,14 @@ func (m *model) openAgentPicker(agents []rex.Agent) { tag := "" switch a.Block { case m.lastSent: - tag, armed = "last used", i + tag, crossing = "last used", i case m.beside: tag = "opened beside" if m.lastSent == "" { - armed = i + crossing = i } } - items = append(items, pickItem{ + items = append(items, overlayItem{ label: fmt.Sprintf("%d %s", i+1, a.Name), detail: detail, tag: tag, @@ -42,19 +43,19 @@ func (m *model) openAgentPicker(agents []rex.Agent) { }) } ov.setItems(items) - ov.cur = armed - m.open(ov) + ov.cur = crossing + m.openOverlay(ov) } -// agent returns the agent of item it of the agent picker. If it is nil, -// ok is false. -func (o *overlay) agent(it *pickItem) (a rex.Agent, ok bool) { +// agent returns the agent of the agent picker item it. ok is false if it +// is nil or matches no agent. +func (ov *overlay) agent(it *overlayItem) (a rex.Agent, ok bool) { if it == nil { return rex.Agent{}, false } - i := slices.IndexFunc(o.agents, func(a rex.Agent) bool { return a.Block == it.id }) + i := slices.IndexFunc(ov.agents, func(a rex.Agent) bool { return a.Block == it.id }) if i < 0 { return rex.Agent{}, false } - return o.agents[i], true + return ov.agents[i], true } diff --git a/tui/basepick.go b/tui/basepick.go index 158cbf0..7078f3e 100644 --- a/tui/basepick.go +++ b/tui/basepick.go @@ -1,49 +1,45 @@ package tui -// The base picker picks the base of the branch scope. +// The base picker lets the user choose the base branch for the branch scope. import ( - "context" - "fmt" "slices" "strings" "time" tea "charm.land/bubbletea/v2" + "github.com/rednafi/rexdiff/internal/xctx" "github.com/rednafi/rexdiff/vcs" ) -// branchTimeout is the longest time of the branch list. +// branchTimeout limits how long listing the branches can take. const branchTimeout = 5 * time.Second -// branchesMsg has the branch list of the base picker. +// branchesMsg carries the list of branches for the base picker. type branchesMsg struct { branches []string err error } -// openBasePicker lists the branches for the base picker. The list does -// nothing on the PR tab, or if the base comes from the flag. +// openBasePicker returns a command that lists the branches for the base +// picker. It returns nil on the PR tab, or when the base was set by a flag. func (m *model) openBasePicker() tea.Cmd { - if m.baseFlag || m.tab == tabPR { + if m.baseFromFlag || m.tab == tabPR { return nil } - ctx, cancel := context.WithCancelCause(m.ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, branchTimeout, - fmt.Errorf("branch list: %v timeout: %w", branchTimeout, context.DeadlineExceeded)) + ctx, cancel := xctx.WithTimeout(m.ctx, branchTimeout, "branch list") repo := m.repo return func() tea.Msg { - defer cancelTimeout() - defer cancel(fmt.Errorf("branch list: done: %w", context.Canceled)) + defer cancel() branches, err := repo.Branches(ctx) return branchesMsg{branches: branches, err: err} } } -// onBranches opens the base picker with the branch list of msg. The -// current base has a tag. As in herdr-reviewr, the base of an open pull -// request and the default branch come first, with a tag. +// onBranches opens the base picker with the branches in msg. The base of +// an open pull request comes first, then the default branch. These two and +// the current base are tagged. func (m *model) onBranches(msg branchesMsg) { if msg.err != nil { m.flash("branch list failed: " + msg.err.Error()) @@ -59,9 +55,9 @@ func (m *model) onBranches(msg branchesMsg) { } defaultBase := strings.TrimPrefix(m.defaultBase, "origin/") current := strings.TrimPrefix(m.base, "origin/") - // groups has the PR base, then the default branch, then the others. - // Each group keeps the newest first. - var groups [3][]pickItem + // groups holds the PR base, then the default branch, then the rest. + // Each group keeps the order of msg.branches, newest first. + var groups [3][]overlayItem for _, b := range msg.branches { var tags []string name, g := strings.TrimPrefix(b, "origin/"), 2 @@ -74,22 +70,24 @@ func (m *model) onBranches(msg branchesMsg) { if name == current { tags = append(tags, "current") } - groups[g] = append(groups[g], pickItem{label: b, id: b, tag: strings.Join(tags, " ")}) + groups[g] = append(groups[g], overlayItem{label: b, id: b, tag: strings.Join(tags, " ")}) } ov.setItems(slices.Concat(groups[:]...)) - m.open(ov) + m.openOverlay(ov) } -// baseRef returns the ref that the base picker picks, with the selected -// item it. A typed ref, for example a tag, wins over the first match. A -// match that the user moves to wins over the typed text. If the ref is -// not valid, ok is false. -func (m *model) baseRef(it *pickItem) (ref string, ok bool) { +// baseRef returns the ref chosen in the base picker, given the selected +// item it. A valid typed ref, such as a tag, is preferred over the +// first match, but a match that the user moves the cursor to is preferred +// over the typed text. It returns ok false if the ref does not resolve. +func (m *model) baseRef(it *overlayItem) (ref string, ok bool) { + ctx, done := m.gitContext("base resolve") + defer done() ref = strings.TrimSpace(m.overlay.input.Value()) - _, err := m.repo.Resolve(m.ctx, ref) + _, err := m.repo.ResolveRev(ctx, ref) if it != nil && (ref == "" || err != nil || m.overlay.cur > 0) { ref = it.id - _, err = m.repo.Resolve(m.ctx, ref) + _, err = m.repo.ResolveRev(ctx, ref) } return ref, ref != "" && err == nil } diff --git a/tui/comment.go b/tui/comment.go index 00e8aff..2af6db0 100644 --- a/tui/comment.go +++ b/tui/comment.go @@ -5,6 +5,7 @@ import ( "path/filepath" "slices" "strings" + "time" "charm.land/bubbles/v2/key" tea "charm.land/bubbletea/v2" @@ -12,24 +13,24 @@ import ( "github.com/rednafi/rexdiff/diff" ) -// targetLine is the source line that a comment on a row attaches to. +// targetLine is the source line that a comment on a row is attached to. type targetLine struct { side diff.Side line int } -// target returns the line that a comment on row i of the current pane -// attaches to, or nil. If the row changes a line on side pref, target uses -// that side. Else target uses the new side. Thus a comment on an unchanged -// line is on the new side. -func (m *model) target(i int, pref diff.Side) *targetLine { - p := m.cur() +// targetAt returns the line that a comment on row i of the current pane +// would attach to, or nil if there is none. If the row changes a line on +// side prefer, targetAt uses that side. Otherwise it uses the new side when +// the row has one. +func (m *model) targetAt(i int, prefer diff.Side) *targetLine { + p := m.curPane() if p.path == "" || i < 0 || i >= len(p.rows) { return nil } r := p.rows[i] switch { - case pref == diff.SideOld && r.Old > 0 && r.Kind != diff.KindEqual: + case prefer == diff.SideOld && r.Old > 0 && r.Kind != diff.KindEqual: return &targetLine{diff.SideOld, r.Old} case r.New > 0: return &targetLine{diff.SideNew, r.New} @@ -39,41 +40,42 @@ func (m *model) target(i int, pref diff.Side) *targetLine { return nil } -// selectedChange returns the selected file of the Changes tab, or nil. -func (m *model) selectedChange() *changedFile { - if m.changeSel >= len(m.changeFiles) { +// curChangedFile returns the selected file in the Changes tab, or nil. +func (m *model) curChangedFile() *changedFile { + if m.changes.cur >= len(m.changes.files) { return nil } - return &m.changeFiles[m.changeSel] + return &m.changes.files[m.changes.cur] } -// contentFor returns the text of side s of the file at path, as the pane -// shows it. Thus a comment quotes the lines on the screen, and not a newer -// version of the file. A file that the pane does not show gives "". -func (m *model) contentFor(path string, s diff.Side) string { - if f := m.selectedChange(); m.tab == tabChanges && f != nil && f.Path == path { - if s == diff.SideOld { - return f.Old +// contentFor returns the text of the given side of the file at path, as +// the current tab shows it. It returns "" if the tab is not showing that +// file. +func (m *model) contentFor(path string, side diff.Side) string { + if f := m.curChangedFile(); m.tab == tabChanges && f != nil && f.Path == path { + if side == diff.SideOld { + return f.OldText } - return f.New + return f.NewText } - if m.tab == tabFiles && path == m.viewedPath { - return m.viewed + if m.tab == tabAllFiles && path == m.allFiles.shownPath { + return m.allFiles.shownText } return "" } -// diffRev returns the revision of the diff in the Changes tab, for -// [diff.Anchor]. That is the picked commits, or "" for the working tree. +// diffRev returns the revision range of the diff in the Changes tab, for +// use in a [diff.Anchor]. It returns "" when the diff is of the working +// tree. func (m *model) diffRev() string { if m.scope == scopeCommits { - return m.from + ".." + m.to + return m.oldest + ".." + m.newest } return "" } -// anchorOf returns the anchor of a comment made in tab t. As in -// herdr-reviewr, a comment on a file view is always on the working tree. +// anchorOf returns the anchor for a comment made in tab t. A comment made +// outside the Changes tab is always on the working tree. func (m *model) anchorOf(t tab) diff.Anchor { if t == tabChanges { return diff.Anchor{InDiff: true, Rev: m.diffRev()} @@ -81,117 +83,170 @@ func (m *model) anchorOf(t tab) diff.Anchor { return diff.Anchor{} } -// anchor returns the anchor of a comment made in the current tab. -func (m *model) anchor() diff.Anchor { return m.anchorOf(m.tab) } +// curAnchor returns the anchor for a comment made in the current tab. +func (m *model) curAnchor() diff.Anchor { return m.anchorOf(m.tab) } -// revCurrent reports whether the scope shows the diff that c is made on. -// Only then can the user edit c from the comment list. -func (m *model) revCurrent(c *diff.Comment) bool { +// commentOnCurRev reports whether the current scope shows the diff that c +// was made on. The user can edit c from the comment list only if it does. +func (m *model) commentOnCurRev(c *diff.Comment) bool { return !c.Anchor.InDiff || c.Anchor.Rev == m.diffRev() } -// stale reports whether the lines of c can have moved. A comment on a diff -// is stale if its file leaves the changes. A comment on a file view is -// stale if its file is gone. -func (m *model) stale(c *diff.Comment) bool { +// commentStale reports whether the lines of c may no longer hold the code +// that c was made on. Comments do not follow moved code, so a comment is +// stale when its lines now hold other code or are past the end of the +// file, as [diff.Comment.Moved] reports. A comment on a diff is also stale +// when its file is no longer among the changed files, and any other +// comment when its file no longer exists. The code of a comment on a +// different diff than the one shown is not checked. +func (m *model) commentStale(c *diff.Comment) bool { if c.Anchor.InDiff { - return !slices.ContainsFunc(m.changeFiles, func(f changedFile) bool { return f.Path == c.Path }) + i := slices.IndexFunc(m.changes.files, func(f changedFile) bool { return f.Path == c.Path }) + switch { + case i < 0: + return true + case c.Anchor.Rev != m.diffRev() || m.changes.files[i].Err != nil: + return false + case c.Side == diff.SideOld: + return c.Moved(m.changes.files[i].OldText) + } + return c.Moved(m.changes.files[i].NewText) } - _, err := os.Lstat(filepath.Join(m.repo.Root(), c.Path)) - return err != nil + // Check the file as it is now, not as the Files tab last showed it, + // so that the answer is right on every tab. + full := filepath.Join(m.repo.Root(), c.Path) + info, err := os.Stat(full) + if err != nil { + _, err := os.Lstat(full) // a broken symbolic link still exists + return err != nil + } + f, ok := m.commentFiles[c.Path] + if !ok || f.size != info.Size() || !f.modTime.Equal(info.ModTime()) { + text, err := m.repo.ReadFile(c.Path) + f = fileCopy{size: info.Size(), modTime: info.ModTime(), text: text, err: err} + if m.commentFiles == nil { + m.commentFiles = make(map[string]fileCopy) + } + m.commentFiles[c.Path] = f + } + // The code of a binary or unreadable file is not checked. + return f.err == nil && c.Moved(f.text) +} + +// fileCopy is the content of a file in the working tree, read when the +// file had the given size and modification time. err is the error from +// reading it. +type fileCopy struct { + size int64 + modTime time.Time + text string + err error } -// commentAtCursor returns the comment on the cursor line, or nil. -func (m *model) commentAtCursor() *diff.Comment { - p := m.cur() - t := m.target(p.cur, diff.SideNew) - if t == nil { +// jumpToNearLine moves the cursor to the line nearest line Start of c if +// the current pane shows the file of c but not that line, for example +// because the file is now shorter. +func (m *model) jumpToNearLine(c *diff.Comment) { + p := m.curPane() + hasSide := func(r diff.Row) bool { return r.Line(c.Side) > 0 } + if p.path != c.Path || p.rowOf(c.Side, c.Start) >= 0 || !slices.ContainsFunc(p.rows, hasSide) { + return + } + p.cur = p.lineStart(lineRow(p.rows, c.Side, c.Start)) +} + +// curComment returns the comment on the cursor line, or nil. +func (m *model) curComment() *diff.Comment { + p := m.curPane() + target := m.targetAt(p.cur, diff.SideNew) + if target == nil { return nil } - return m.commentOn(p.cur, t) + return m.commentOn(p.cur, target) } -// selection returns the first and the last row of the visual selection. -// With no selection, it returns the rows of the cursor line. -func (p *pane) selection() (lo, hi int) { - if p.anchor < 0 { - return p.cur, p.end(p.cur) +// selRange returns the first and last rows of the visual selection. With +// no selection, it returns the rows of the cursor line. +func (p *pane) selRange() (lo, hi int) { + if p.selStart < 0 { + return p.cur, p.lineEnd(p.cur) } - return p.span(p.anchor, p.cur) + return p.span(p.selStart, p.cur) } -// selectedRows returns the source rows of the selection. In rendered -// markdown, they are all the rows of the selected blocks, with the +// selRows returns the source rows of the selection. In rendered Markdown, +// these are all the source rows of the selected blocks, including any // deleted lines between them. -func (p *pane) selectedRows() []diff.Row { - lo, hi := p.selection() - if p.src == nil { +func (p *pane) selRows() []diff.Row { + lo, hi := p.selRange() + if p.srcRows == nil { return p.rows[lo : hi+1] } - first, last := p.rows[p.head(lo)].New, p.rows[hi].New - i := slices.IndexFunc(p.src, func(r diff.Row) bool { return r.New == first }) - j := slices.IndexFunc(p.src, func(r diff.Row) bool { return r.New == last }) - return p.src[i : j+1] + first, last := p.rows[p.lineStart(lo)].New, p.rows[hi].New + i := slices.IndexFunc(p.srcRows, func(r diff.Row) bool { return r.New == first }) + j := slices.IndexFunc(p.srcRows, func(r diff.Row) bool { return r.New == last }) + return p.srcRows[i : j+1] } -// span returns the first and the last row of the lines between rows a and -// b, in either order. +// span returns the first and last rows of the lines from row a to row b. +// a and b can be in either order. func (p *pane) span(a, b int) (lo, hi int) { - return min(a, b), p.end(max(a, b)) + return min(a, b), p.lineEnd(max(a, b)) } -// startComment opens the comment box for a new comment on the selection, -// or on the cursor line. A line can have more than one comment. -func (m *model) startComment(pref diff.Side) tea.Cmd { - p := m.cur() - t := m.target(p.cur, pref) - if t == nil { +// openComment opens the comment box for a new comment on the selection or, +// with no selection, on the cursor line. A line can have more than one +// comment. +func (m *model) openComment(prefer diff.Side) tea.Cmd { + p := m.curPane() + target := m.targetAt(p.cur, prefer) + if target == nil { return nil } c := diff.NewComment( p.path, - t.side, - p.selectedRows(), + target.side, + p.selRows(), m.contentFor(p.path, diff.SideOld), m.contentFor(p.path, diff.SideNew), ) - c.Anchor = m.anchor() - m.draft = &draft{Comment: c, listRow: -1} - m.sizeEditor() - m.editor.SetValue("") + c.Anchor = m.curAnchor() + m.draft = &draft{Comment: c, itemRow: -1} + m.sizeCommentInput() + m.commentInput.SetValue("") m.mode = modeComment - // Put the cursor on the last line of the range, so that the box opens - // below the range. - cursorToLine(p, c.Side, c.End) - return m.editor.Focus() + // The box opens below the cursor, so move the cursor to the last + // commented line. + jumpToLine(p, c.Side, c.End) + return m.commentInput.Focus() } -// editComment opens the comment box with the text of c. After the edit, -// the comment list opens at listRow, if listRow is 0 or more. -func (m *model) editComment(c *diff.Comment, listRow int) tea.Cmd { - m.draft = &draft{Comment: *c, editID: c.ID, listRow: listRow} - m.sizeEditor() - m.editor.SetValue(c.Text) +// editComment opens the comment box with the text of c. If itemRow is 0 +// or more, the comment list opens again at that row when the box closes. +func (m *model) editComment(c *diff.Comment, itemRow int) tea.Cmd { + m.draft = &draft{Comment: *c, editID: c.ID, itemRow: itemRow} + m.sizeCommentInput() + m.commentInput.SetValue(c.Text) m.mode = modeComment - cursorToLine(m.cur(), c.Side, c.End) - return m.editor.Focus() + jumpToLine(m.curPane(), c.Side, c.End) + return m.commentInput.Focus() } -// showsLine reports whether the current pane shows the last line of c, -// with the anchor of c. -func (m *model) showsLine(c *diff.Comment) bool { - p := m.cur() - return m.anchor() == c.Anchor && p.path == c.Path && p.rowOf(c.Side, c.End) >= 0 +// commentShown reports whether the current pane shows the last line of c +// in the same diff or file view that c was made on. +func (m *model) commentShown(c *diff.Comment) bool { + p := m.curPane() + return m.curAnchor() == c.Anchor && p.path == c.Path && p.rowOf(c.Side, c.End) >= 0 } // updateComment handles a key while the comment box is open. func (m *model) updateComment(msg tea.KeyPressMsg) tea.Cmd { switch { - case key.Matches(msg, m.keys.Save): - // As in herdr-reviewr, blank text cancels. An edit keeps the - // comment, its ID, and its place in the list. + case key.Matches(msg, m.keys.SaveComment): + // Blank text cancels. Editing keeps the comment's ID and its place + // in the list. d := m.draft - text := strings.TrimSpace(m.editor.Value()) + text := strings.TrimSpace(m.commentInput.Value()) edited := m.comments.Find(d.editID) switch { case text == "": @@ -211,34 +266,32 @@ func (m *model) updateComment(msg tea.KeyPressMsg) tea.Cmd { return nil } var cmd tea.Cmd - m.editor, cmd = m.editor.Update(msg) - m.ensureVisible() + m.commentInput, cmd = m.commentInput.Update(msg) + m.scrollToCursor() return cmd } -// closeComment closes the comment box and clears the selection. Then it -// does the reload that waits for the box. After an edit from the comment -// list, it opens the list again. +// closeComment closes the comment box, clears the selection and runs any +// reload that was put off while the box was open. If the edit started from +// the comment list, it opens the list again. func (m *model) closeComment() { - row := m.draft.listRow + row := m.draft.itemRow m.mode, m.draft = modeNormal, nil - m.cur().anchor = -1 - m.editor.Blur() - m.reloadDue() + m.curPane().selStart = -1 + m.commentInput.Blur() + m.reloadIfDue() if row >= 0 && m.comments.Len() > 0 { - m.openCommentList() + m.openComments() m.overlay.cur = min(row, len(m.overlay.shown)-1) } } -// nearNewLine returns the new line of row i. A row with no new line, such -// as a deleted line, gives the next new line below it. If there is none, it -// gives the last new line above it. If there is none, it gives 1. -func nearNewLine(rows []diff.Row, i int) int { - for _, r := range rows[i:] { - if r.New > 0 { - return r.New - } +// nearestNewLine returns the new-side line number of row i. For a row with +// no new line, such as a deleted line, it returns the next new line below, +// then the nearest one above, and 1 if there are none. +func nearestNewLine(rows []diff.Row, i int) int { + if j := slices.IndexFunc(rows[i:], func(r diff.Row) bool { return r.New > 0 }); j >= 0 { + return rows[i+j].New } for _, r := range slices.Backward(rows[:i]) { if r.New > 0 { @@ -248,19 +301,19 @@ func nearNewLine(rows []diff.Row, i int) int { return 1 } -// editOrOpen edits the comment at the cursor. If there is no comment, it -// opens the file in an editor at the cursor line. As in herdr-reviewr, it -// does nothing while a selection is active, so the selection stays. -func (m *model) editOrOpen() tea.Cmd { - if m.cur().anchor >= 0 { +// onEdit edits the comment on the cursor line or, if there is none, opens +// the file in an editor at that line. It does nothing while a selection is +// active. +func (m *model) onEdit() tea.Cmd { + if m.curPane().selStart >= 0 { return nil } - if c := m.commentAtCursor(); c != nil { + if c := m.curComment(); c != nil { return m.editComment(c, -1) } - p := m.cur() + p := m.curPane() if p.path == "" { return nil } - return m.openEditor(p.path, nearNewLine(p.rows, p.cur)) + return m.launchEditor(p.path, nearestNewLine(p.rows, p.cur)) } diff --git a/tui/commentlist.go b/tui/commentlist.go deleted file mode 100644 index 0216f0a..0000000 --- a/tui/commentlist.go +++ /dev/null @@ -1,107 +0,0 @@ -package tui - -// The comment list shows all the comments. The user can jump to a -// comment, edit it, delete it, or send or copy all the comments. - -import ( - "fmt" - "strings" - - "charm.land/bubbles/v2/key" - tea "charm.land/bubbletea/v2" -) - -// openCommentList lists the comments, to jump to one, edit one, delete -// one, or send or copy them all. -func (m *model) openCommentList() { - if m.comments.Len() == 0 { - m.flash("no comments yet") - return - } - ov := newOverlay(overlayComments, "") - m.fillCommentList(ov) - m.open(ov) -} - -// fillCommentList sets the comments as the items of ov, and the count in -// the title, as in herdr-reviewr. -func (m *model) fillCommentList(ov *overlay) { - ov.title = fmt.Sprintf("Comments (%d)", m.comments.Len()) - var items []pickItem - for _, c := range m.comments.All() { - tag := "" - if m.stale(c) { - tag = "stale" - } - text, _, _ := strings.Cut(c.Text, "\n") - items = append(items, pickItem{ - label: c.Location(), - detail: text, - tag: tag, - comment: c.ID, - }) - } - ov.setItems(items) -} - -// updateCommentList handles a key in the comment list. The keys are those -// of herdr-reviewr. Enter also jumps to the comment. -func (m *model) updateCommentList(msg tea.KeyPressMsg) tea.Cmd { - ov, k := m.overlay, m.keys - it := ov.selected() - switch { - case key.Matches(msg, k.Comments, k.Cancel): - m.closeOverlay() - case key.Matches(msg, overlayKeys.Choose): - return m.chooseOverlay() - case key.Matches(msg, k.Down): - ov.move(1) - case key.Matches(msg, k.Up): - ov.move(-1) - case key.Matches(msg, k.Send): - return m.startSend() - case key.Matches(msg, k.Copy): - m.copyComments() - case key.Matches(msg, k.Edit) && it != nil: - // As in herdr-reviewr, a comment on another diff takes no edit. - c := m.comments.Find(it.comment) - if c == nil || !m.revCurrent(c) { - return nil - } - row := ov.cur - m.closeOverlay() - m.jumpToComment(c) - m.focusList = false - if !m.showsLine(c) { - m.flash("the line of the comment does not show") - return nil - } - m.ensureVisible() - return m.editComment(c, row) - case key.Matches(msg, k.Delete) && it != nil: - m.comments.Remove(it.comment) - m.flash("comment deleted") - if m.comments.Len() == 0 { - m.closeOverlay() - return nil - } - m.fillCommentList(ov) - } - return nil -} - -// listHint returns the keys of the comment list, as the footer of -// herdr-reviewr shows them. The edit key shows only if the selected -// comment takes an edit. -func (m *model) listHint() string { - k := m.keys - edit := "" - if it := m.overlay.selected(); it != nil { - if c := m.comments.Find(it.comment); c != nil && m.revCurrent(c) { - edit = fmt.Sprintf(" · %s edit", firstKey(k.Edit)) - } - } - return fmt.Sprintf("%s send %d · esc close · %s copy%s · %s delete · enter jump", - firstKey(k.Send), m.comments.Len(), firstKey(k.Copy), edit, - firstKey(k.Delete)) -} diff --git a/tui/comments.go b/tui/comments.go new file mode 100644 index 0000000..6c7d58b --- /dev/null +++ b/tui/comments.go @@ -0,0 +1,115 @@ +package tui + +// The comment list shows every comment. From it the user can jump to a +// comment, edit or delete it, or send or copy all the comments. + +import ( + "fmt" + "strings" + + "charm.land/bubbles/v2/key" + tea "charm.land/bubbletea/v2" +) + +// openComments opens the comment list, or shows a message if there are no +// comments. +func (m *model) openComments() { + if m.comments.Len() == 0 { + m.flash("no comments yet") + return + } + ov := newOverlay(overlayComments, "") + m.setCommentItems(ov) + m.openOverlay(ov) +} + +// setCommentItems fills ov with one item per comment and puts the number +// of comments in its title. +func (m *model) setCommentItems(ov *overlay) { + ov.title = fmt.Sprintf("Comments (%d)", m.comments.Len()) + var items []overlayItem + for _, c := range m.comments.All() { + tag := "" + if m.commentStale(c) { + tag = "stale" + } + text, _, _ := strings.Cut(c.Text, "\n") + items = append(items, overlayItem{ + label: c.Location(), + detail: text, + tag: tag, + comment: c.ID, + }) + } + ov.setItems(items) +} + +// updateComments handles a key press in the comment list. Enter jumps to +// the selected comment. The page and half-page keys move the cursor as in +// the commit picker. +func (m *model) updateComments(msg tea.KeyPressMsg) tea.Cmd { + ov, k := m.overlay, m.keys + it := ov.curItem() + switch { + case key.Matches(msg, k.Comments, k.Cancel): + m.closeOverlay() + case key.Matches(msg, overlayKeys.Choose): + return m.choose() + case key.Matches(msg, k.Down): + ov.move(1) + case key.Matches(msg, k.Up): + ov.move(-1) + case key.Matches(msg, k.PageDown): + ov.move(itemsPage) + case key.Matches(msg, k.PageUp): + ov.move(-itemsPage) + case key.Matches(msg, k.HalfDown): + ov.move(itemsHalf) + case key.Matches(msg, k.HalfUp): + ov.move(-itemsHalf) + case key.Matches(msg, k.Send): + return m.startSend() + case key.Matches(msg, k.Copy): + m.copyComments() + case key.Matches(msg, k.Edit) && it != nil: + // A comment made on a different diff cannot be edited here. + c := m.comments.Find(it.comment) + if c == nil || !m.commentOnCurRev(c) { + return nil + } + row := ov.cur + m.closeOverlay() + m.jumpToComment(c) + m.navigatorFocused = false + if !m.commentShown(c) { + m.flash("the line of the comment does not show") + return nil + } + m.scrollToCursor() + return m.editComment(c, row) + case key.Matches(msg, k.Delete) && it != nil: + m.comments.Delete(it.comment) + m.flash("comment deleted") + if m.comments.Len() == 0 { + m.closeOverlay() + return nil + } + m.setCommentItems(ov) + } + return nil +} + +// commentsHint returns the key hints for the comment list. The edit key +// is listed only if the user can edit the selected comment. +func (m *model) commentsHint() string { + k := m.keys + edit := "" + if it := m.overlay.curItem(); it != nil { + if c := m.comments.Find(it.comment); c != nil && m.commentOnCurRev(c) { + edit = fmt.Sprintf(" · %s edit", firstKey(k.Edit)) + } + } + return fmt.Sprintf("%s send %d · esc close · %s copy%s · %s delete · enter jump", + firstKey(k.Send), m.comments.Len(), firstKey(k.Copy), edit, + firstKey(k.Delete)) +} diff --git a/tui/commitpick.go b/tui/commitpick.go index 697c4e4..8e67725 100644 --- a/tui/commitpick.go +++ b/tui/commitpick.go @@ -1,109 +1,149 @@ package tui -// The commit picker picks a commit or a range of commits for the commits -// scope. +// The commit picker lets the user choose a commit, or a range of commits, +// for the commits scope. import ( "fmt" "slices" + "time" "charm.land/bubbles/v2/key" tea "charm.land/bubbletea/v2" + "github.com/rednafi/rexdiff/internal/xctx" "github.com/rednafi/rexdiff/vcs" ) -// openCommitPicker lets the user pick a commit or a range of commits for -// the commits scope, as in herdr-reviewr. It lists the first-parent -// commits after the fork point of the base, the newest first. On the base -// itself, or with no fork point, it lists the last commits. The current -// pick has the cursor and the anchor. -func (m *model) openCommitPicker() { +// commitTimeout limits how long listing the commits can take. +const commitTimeout = 10 * time.Second + +// commitsMsg carries the commits for the commit picker ov. since is the +// merge base that they come after, or "" for the most recent commits. +type commitsMsg struct { + ov *overlay + commits []vcs.Commit + since string + err error +} + +// openCommitPicker opens the commit picker and returns a command that +// lists its commits: the first-parent commits since the merge base with +// the base branch, newest first, up to vcs.MaxCommits. If HEAD is the +// merge base, or there is none, it lists the most recent commits instead. +// Listing can take a while in a large repository, so the picker shows that +// it is loading until the commits arrive, and closing it stops the +// listing. It does nothing on the PR tab. +func (m *model) openCommitPicker() tea.Cmd { if m.tab == tabPR { - return + return nil } - since, err := m.repo.MergeBaseCommit(m.ctx, m.base) - if head, herr := m.repo.Resolve(m.ctx, "HEAD"); err != nil || herr != nil || since == head { - since = "" + ctx, cancel := xctx.WithTimeout(m.ctx, commitTimeout, "commit list") + ov := newOverlay(overlayCommits, "commits") + ov.loading, ov.stop = true, cancel + m.openOverlay(ov) + repo, base := m.repo, m.base + return func() tea.Msg { + defer cancel() + since, err := repo.MergeBaseCommit(ctx, base) + if head, headErr := repo.ResolveRev(ctx, "HEAD"); err != nil || headErr != nil || since == head { + since = "" + } + commits, err := repo.Commits(ctx, since) + return commitsMsg{ov: ov, commits: commits, since: since, err: err} } - commits, err := m.repo.Commits(m.ctx, since) - if err != nil { - m.flash("commit list failed: " + err.Error()) +} + +// onCommits fills the commit picker with the commits in msg. The cursor +// and range anchor start on the current choice. If the picker that asked +// for the commits has closed, onCommits does nothing, so that a slow list +// does not open the picker again after the user has moved on. +func (m *model) onCommits(msg commitsMsg) { + ov := msg.ov + if m.overlay != ov || m.tab == tabPR { return } + ov.loading, ov.stop = false, nil + if msg.err != nil { + m.closeOverlay() + m.flash("commit list failed: " + msg.err.Error()) + return + } + commits := msg.commits title := fmt.Sprintf("commits · last %d", vcs.LastCommits) - if since != "" { + switch { + case msg.since != "" && len(commits) >= vcs.MaxCommits: + title = fmt.Sprintf("commits · newest %d over %s", len(commits), m.base) + case msg.since != "": title = fmt.Sprintf("commits · %d over %s", len(commits), m.base) } - ov := newOverlay(overlayCommits, title) - var items []pickItem + ov.title = title + var items []overlayItem for _, c := range commits { - items = append(items, pickItem{ + items = append(items, overlayItem{ label: c.Short + " " + c.Subject, detail: c.Author + ", " + c.When, id: c.SHA, }) } ov.setItems(items) - isSHA := func(sha string) func(pickItem) bool { - return func(it pickItem) bool { return it.id == sha } + isSHA := func(sha string) func(overlayItem) bool { + return func(it overlayItem) bool { return it.id == sha } } - newest := slices.IndexFunc(items, isSHA(m.to)) - oldest := slices.IndexFunc(items, isSHA(m.from)) - if m.to != "" && newest >= 0 && oldest >= 0 { + newest := slices.IndexFunc(items, isSHA(m.newest)) + oldest := slices.IndexFunc(items, isSHA(m.oldest)) + if m.newest != "" && newest >= 0 && oldest >= 0 { ov.cur = newest if oldest > newest { - ov.mark = oldest + ov.rangeStart = oldest } } - m.open(ov) } -// updateCommitPicker handles a key in the commit picker, as herdr-reviewr -// does. The key of Select sets or clears the anchor of a range. Esc clears -// the anchor, else it closes the picker. +// updateCommitPicker handles a key press in the commit picker. The Select +// key sets or clears the start of a range. Esc clears the range start if +// there is one, and otherwise closes the picker. func (m *model) updateCommitPicker(msg tea.KeyPressMsg) tea.Cmd { ov, k := m.overlay, m.keys switch { - case key.Matches(msg, overlayKeys.Close) && ov.mark >= 0: - ov.mark = -1 + case key.Matches(msg, overlayKeys.Close) && ov.rangeStart >= 0: + ov.rangeStart = -1 case key.Matches(msg, overlayKeys.Close): m.closeOverlay() case key.Matches(msg, overlayKeys.Choose): - return m.chooseOverlay() + return m.choose() case key.Matches(msg, k.Down): ov.move(1) case key.Matches(msg, k.Up): ov.move(-1) case key.Matches(msg, k.PageDown): - ov.move(pickerPage) + ov.move(itemsPage) case key.Matches(msg, k.PageUp): - ov.move(-pickerPage) + ov.move(-itemsPage) case key.Matches(msg, k.HalfDown): - ov.move(pickerHalf) + ov.move(itemsHalf) case key.Matches(msg, k.HalfUp): - ov.move(-pickerHalf) + ov.move(-itemsHalf) case key.Matches(msg, k.Select) && ov.cur < len(ov.shown): - if ov.mark == ov.shown[ov.cur] { - ov.mark = -1 + if ov.rangeStart == ov.shown[ov.cur] { + ov.rangeStart = -1 } else { - ov.mark = ov.shown[ov.cur] + ov.rangeStart = ov.shown[ov.cur] } } return nil } -// commitHint returns the keys of the commit picker, as the footer of -// herdr-reviewr shows them. +// commitHint returns the key hints for the commit picker. func (m *model) commitHint() string { ov, k := m.overlay, m.keys - if len(ov.shown) == 0 { + if ov.loading || len(ov.shown) == 0 { return "esc cancel" } open, esc := "open", "cancel" - if ov.mark >= 0 { + if ov.rangeStart >= 0 { esc = "clear" - if n := max(ov.mark, ov.cur) - min(ov.mark, ov.cur) + 1; n > 1 { + if n := max(ov.rangeStart, ov.cur) - min(ov.rangeStart, ov.cur) + 1; n > 1 { open = fmt.Sprintf("open %d", n) } } @@ -111,13 +151,14 @@ func (m *model) commitHint() string { open, esc, firstKey(k.Down), firstKey(k.Up), firstKey(k.Select)) } -// commitRange returns the oldest and the newest commit that the commit -// picker picks with item it. That is one commit, or the range from the -// mark to it. The list shows the newest commit first. -func (o *overlay) commitRange(it *pickItem) (oldest, newest string) { - if o.mark < 0 { +// commitRange returns the oldest and newest commits chosen in the commit +// picker, given the selected item it. Without a range start, both are the +// commit of it. Otherwise they are the ends of the range from the start +// to the cursor. +func (ov *overlay) commitRange(it *overlayItem) (oldest, newest string) { + if ov.rangeStart < 0 { return it.id, it.id } - a, b := o.mark, o.shown[o.cur] - return o.items[max(a, b)].id, o.items[min(a, b)].id + a, b := ov.rangeStart, ov.shown[ov.cur] + return ov.items[max(a, b)].id, ov.items[min(a, b)].id } diff --git a/tui/config.go b/tui/config.go index 35379f6..efcd8c5 100644 --- a/tui/config.go +++ b/tui/config.go @@ -12,26 +12,28 @@ import ( "strings" ) -// Layout is the layout of the diff. +// Layout is the way a diff is laid out on screen. type Layout string -// The layouts. +// The supported layouts. const ( - LayoutUnified Layout = "unified" // the old and the new lines in one column - LayoutSplit Layout = "split" // the old lines beside the new lines + LayoutUnified Layout = "unified" // old and new lines in one column + LayoutSplit Layout = "split" // old lines on the left, new lines on the right ) -// Scope tells what the Changes tab compares with the working tree. +// Scope selects what the Changes tab compares the working tree with. type Scope string -// The scopes, and what they compare with the working tree. +// The scopes that can be set in the config. Each comment says what the +// working tree is compared with. const ( ScopeUncommitted Scope = "uncommitted" // HEAD ScopeBranch Scope = "branch" // the base branch ScopeLastTurn Scope = "last-turn" // the start of the last agent turn ) -// markdownView tells how the program shows a Markdown file. +// markdownView selects whether a Markdown file is shown as source or +// rendered. type markdownView string const ( @@ -39,7 +41,7 @@ const ( markdownViewRendered markdownView = "rendered" ) -// position is the place of the file list around the main pane. +// position is where the file list sits relative to the main pane. type position string const ( @@ -49,8 +51,7 @@ const ( positionTop position = "top" ) -// next returns the position after p, clockwise around the main pane, as -// the key p of herdr-reviewr moves it. +// next returns the position after p, clockwise around the main pane. func (p position) next() position { switch p { case positionRight: @@ -63,11 +64,12 @@ func (p position) next() position { return positionRight } -// stacked reports whether the file list is above or below the main pane. -// Then the list splits the rows of the body, not the columns. +// stacked reports whether the file list is above or below the main pane, +// in which case it takes rows from the body rather than columns. func (p position) stacked() bool { return p == positionTop || p == positionBottom } -// The values that the settings accept, in the order of the error messages. +// The values that each setting accepts, in the order the error messages +// list them. var ( layouts = []Layout{LayoutUnified, LayoutSplit} configScopes = []Scope{ScopeUncommitted, ScopeBranch, ScopeLastTurn} @@ -75,32 +77,31 @@ var ( positions = []position{positionRight, positionBottom, positionLeft, positionTop} ) -// config holds the settings of rexdiff. The settings are in rexdiff.lua, -// beside the configuration file (init.lua) of Rex. The toggle action gives -// them to rexdiff as JSON in --config. +// config holds the rexdiff settings. The toggle action reads them from +// rexdiff.lua, in the same directory as the Rex init.lua, and passes them +// as JSON in --config. type config struct { Layout Layout `json:"layout"` DefaultScope Scope `json:"default_scope"` - // ReviewPrefix is the text above each review that rexdiff sends or - // copies. + // ReviewPrefix is the text that starts each sent or copied review. ReviewPrefix string `json:"review_prefix"` - // Editor is a command, for example "code -g {file}:{line}". + // Editor is the command that opens a file, such as + // "code -g {file}:{line}". Editor string `json:"editor"` - // URLOpener is a command, for example "open {url}". + // URLOpener is the command that opens a URL, such as "open {url}". URLOpener string `json:"url_opener"` MarkdownView markdownView `json:"markdown_view"` - // FileList is the place of the list of files: right, bottom, left, or - // top. + // FileList is where the file list goes: right, bottom, left or top. FileList position `json:"file_list"` - // FileListWidth is the width of the file list at a side, in columns. - // It is minListWidth or more, or 0 if the text does not set it. + // FileListWidth is the width in columns of the file list when it is at + // the left or right. It is at least minNavigatorWidth, or 0 if not set. FileListWidth int `json:"file_list_width"` - // DiffSigns marks a changed line with + or -, in place of a bar. + // DiffSigns marks changed lines with + or - instead of a coloured bar. DiffSigns bool `json:"diff_signs"` - // FocusAgent is true if the focus moves to the agent after a send. - // Nil means true. + // FocusAgent reports whether focus moves to the agent after sending a + // review. Nil means true. FocusAgent *bool `json:"focus_agent_after_send"` - // GitHubHost, GitLabHost, and AzureHost are bare hostnames of + // GitHubHost, GitLabHost and AzureHost are the bare hostnames of // self-hosted forges. GitHubHost string `json:"github_host"` GitLabHost string `json:"gitlab_host"` @@ -108,10 +109,10 @@ type config struct { Keybindings keybindings `json:"keybindings"` } -// keybindings sets the keys of each action. The JSON keys are the names of -// the actions. A nil list keeps the default keys. +// keybindings holds the keys bound to each action. The JSON names are the +// action names. A nil list keeps the default keys. type keybindings struct { - // Move. + // Movement. Down []string `json:"down"` Up []string `json:"up"` PageDown []string `json:"page-down"` @@ -165,15 +166,14 @@ type keybindings struct { Quit []string `json:"quit"` QuitDiscard []string `json:"quit-discard"` - // The old names of navigator-grow, navigator-shrink, and rendered. - // herdr-reviewr also takes them. + // Former names of navigator-grow, navigator-shrink and rendered. ListWider []string `json:"list-wider"` ListNarrower []string `json:"list-narrower"` Preview []string `json:"preview"` } -// useOldNames gives the keys of each old name to its action. An action -// and its old name cannot both have keys. +// useOldNames moves keys set under a former action name to the current +// name. It returns an error if both names have keys. func (kb *keybindings) useOldNames() error { names := []struct { name, old string @@ -196,10 +196,11 @@ func (kb *keybindings) useOldNames() error { return nil } -// minListWidth is the smallest width of the file list, in columns. -const minListWidth = 16 +// minNavigatorWidth is the smallest allowed width of the file list, in +// columns. +const minNavigatorWidth = 16 -// defaultConfig returns the value of each setting that --config does not +// defaultConfig returns the settings used for anything --config does not // set. func defaultConfig() config { return config{ @@ -210,16 +211,16 @@ func defaultConfig() config { } } -// parseConfig reads the JSON text over the default settings. An empty -// text gives the default settings. An unknown key, a key in the wrong -// case, or a bad value gives an error. +// parseConfig decodes the JSON text on top of the default settings. An +// empty text returns the defaults. It returns an error for an unknown key, +// a key in the wrong case, or an invalid value. func parseConfig(text string) (config, error) { c := defaultConfig() if text == "" { return c, nil } - // set tells which keys the text has. A blank text is an error only if - // the user sets it. + // set records which keys the text sets, so that a blank value is an + // error only when the user sets it. var set map[string]jsontext.Value if err := json.Unmarshal([]byte(text), &set); err != nil { return config{}, configError(err) @@ -230,14 +231,14 @@ func parseConfig(text string) (config, error) { if err := c.Keybindings.useOldNames(); err != nil { return config{}, fmt.Errorf("config: %w", err) } - if err := c.check(set); err != nil { + if err := c.validate(set); err != nil { return config{}, fmt.Errorf("config: %w", err) } return c, nil } -// configError changes an error of the JSON decoder into an error that -// uses the names of the settings, for example "keybindings.send". +// configError converts a JSON decoding error into one that names the +// setting, such as "keybindings.send". func configError(err error) error { se, ok := errors.AsType[*json.SemanticError](err) if !ok { @@ -265,7 +266,7 @@ func configError(err error) error { key, want, jsonKinds[se.JSONKind]) } -// jsonKinds names the kinds of JSON values in the words of Lua. +// jsonKinds describes each kind of JSON value in Lua terms. var jsonKinds = map[jsontext.Kind]string{ '"': "text", '0': "a number", @@ -276,43 +277,43 @@ var jsonKinds = map[jsontext.Kind]string{ 'n': "nil", } -// check returns an error for the first value that rexdiff does not accept. -// set has the keys that the text sets. -func (c config) check(set map[string]jsontext.Value) error { - if err := c.checkChoices(set); err != nil { +// validate returns an error for the first invalid setting. set holds the +// keys that the config text sets. +func (c config) validate(set map[string]jsontext.Value) error { + if err := c.validateChoices(set); err != nil { return err } - if err := c.checkTexts(set); err != nil { + if err := c.validateTexts(set); err != nil { return err } - if err := c.checkHosts(set); err != nil { + if err := c.validateHosts(set); err != nil { return err } - return c.checkKeybindings() + return c.validateKeybindings() } -// checkChoices checks the values that have fixed choices or a range. They -// are the layout, the scope, the markdown view, and the file list. set -// has the keys that the text sets. -func (c config) checkChoices(set map[string]jsontext.Value) error { +// validateChoices checks the layout, default scope, Markdown view and file +// list settings. set holds the keys that the config text sets. +func (c config) validateChoices(set map[string]jsontext.Value) error { if err := cmp.Or( - choice("layout", c.Layout, layouts), - choice("default_scope", c.DefaultScope, configScopes), - choice("markdown_view", c.MarkdownView, markdownViews), - choice("file_list", c.FileList, positions), + validateChoice("layout", c.Layout, layouts), + validateChoice("default_scope", c.DefaultScope, configScopes), + validateChoice("markdown_view", c.MarkdownView, markdownViews), + validateChoice("file_list", c.FileList, positions), ); err != nil { return err } - if set["file_list_width"] != nil && c.FileListWidth < minListWidth { - want := strconv.Itoa(minListWidth) + " or more" - return invalid("file_list_width", want, strconv.Itoa(c.FileListWidth)) + if set["file_list_width"] != nil && c.FileListWidth < minNavigatorWidth { + want := strconv.Itoa(minNavigatorWidth) + " or more" + return invalidError("file_list_width", want, strconv.Itoa(c.FileListWidth)) } return nil } -// checkTexts checks the commands and the review prefix. A command can use -// only its placeholders. A text that the user sets must not be blank. -func (c config) checkTexts(set map[string]jsontext.Value) error { +// validateTexts checks the commands and the review prefix. A command may +// use only its own placeholders, and a value that the user sets must not +// be blank. +func (c config) validateTexts(set map[string]jsontext.Value) error { commands := []struct { key, value, want string known []string @@ -332,24 +333,24 @@ func (c config) checkTexts(set map[string]jsontext.Value) error { } for _, k := range commands { blank := set[k.key] != nil && strings.TrimSpace(k.value) == "" - if blank || !onlyPlaceholders(k.value, k.known...) { - return invalid(k.key, k.want, k.value) + if blank || !hasOnlyPlaceholders(k.value, k.known...) { + return invalidError(k.key, k.want, k.value) } } - // As in herdr-reviewr, the first word of the URL opener is a program, - // and not the URL. - if w := splitWords(c.URLOpener); c.URLOpener != "" && - (len(w) == 0 || w[0] == "" || strings.Contains(w[0], "{url}")) { - return invalid("url_opener", "a command that names a program first", c.URLOpener) + // The first word of the URL opener must name a program, not the URL. + w := splitWords(c.URLOpener) + noProgram := len(w) == 0 || w[0] == "" || strings.Contains(w[0], "{url}") + if c.URLOpener != "" && noProgram { + return invalidError("url_opener", "a command that names a program first", c.URLOpener) } if set["review_prefix"] != nil && strings.TrimSpace(c.ReviewPrefix) == "" { - return invalid("review_prefix", "text", c.ReviewPrefix) + return invalidError("review_prefix", "text", c.ReviewPrefix) } return nil } -// checkHosts checks the hostnames of the self-hosted forges. -func (c config) checkHosts(set map[string]jsontext.Value) error { +// validateHosts checks the hostnames of the self-hosted forges. +func (c config) validateHosts(set map[string]jsontext.Value) error { hosts := []struct{ key, value string }{ {"github_host", c.GitHubHost}, {"gitlab_host", c.GitLabHost}, @@ -357,17 +358,16 @@ func (c config) checkHosts(set map[string]jsontext.Value) error { } for _, k := range hosts { if set[k.key] != nil && !isHostname(k.value) { - return invalid(k.key, "a bare hostname", k.value) + return invalidError(k.key, "a bare hostname", k.value) } } return nil } -// checkKeybindings checks the keys of the actions, as herdr-reviewr does. -// The decoder rejects an unknown action. A list that is set must have -// keys, and each key must have a valid name. Then no key can have two -// actions, after the setting changes the default keys. -func (c config) checkKeybindings() error { +// validateKeybindings checks the key bindings. A list that is set must not +// be empty, and each key must have a valid name. Once the settings are +// applied to the default keys, no key may be bound to two actions. +func (c config) validateKeybindings() error { k := defaultKeys() bs := k.bindings(c.Keybindings) for _, b := range bs { @@ -377,25 +377,25 @@ func (c config) checkKeybindings() error { want := "a list of keys, each a character or a named key (" + keyNames() + "), alone or after ctrl+ or alt+" if len(b.keys) == 0 { - return invalid("keybindings."+b.name, want, "[]") + return invalidError("keybindings."+b.name, want, "[]") } for _, s := range b.keys { if _, ok := keyName(s); !ok { - return invalid("keybindings."+b.name, want, s) + return invalidError("keybindings."+b.name, want, s) } } } k.applyConfig(c.Keybindings) - first := map[string]string{} // the first action of each key + first := map[string]string{} // the first action bound to each key for _, b := range bs { for _, key := range b.key.Keys() { switch a, ok := first[key]; { case ok && a == b.name: return fmt.Errorf("invalid value for keybindings: %q is bound twice to %q", - herdrReviewrKeyName(key), b.name) + settingKeyName(key), b.name) case ok: return fmt.Errorf("invalid value for keybindings: %q is bound to both %q and %q", - herdrReviewrKeyName(key), a, b.name) + settingKeyName(key), a, b.name) } first[key] = b.name } @@ -403,15 +403,15 @@ func (c config) checkKeybindings() error { return nil } -// invalid returns the error for a value of the setting key that rexdiff -// does not accept. want tells the values that rexdiff accepts. -func invalid(key, want, value string) error { +// invalidError returns an error for an invalid value of the setting key. +// want describes the accepted values. +func invalidError(key, want, value string) error { return fmt.Errorf("invalid value for %s: expected %s, not %q", key, want, value) } -// onlyPlaceholders reports whether each { in command opens one of the -// known placeholders, for example {file}. -func onlyPlaceholders(command string, known ...string) bool { +// hasOnlyPlaceholders reports whether every { in command starts one of the +// known placeholders, such as {file}. +func hasOnlyPlaceholders(command string, known ...string) bool { for _, rest, ok := strings.Cut(command, "{"); ok; _, rest, ok = strings.Cut(rest, "{") { name, _, closed := strings.Cut(rest, "}") if !closed || !slices.Contains(known, name) { @@ -421,13 +421,13 @@ func onlyPlaceholders(command string, known ...string) bool { return true } -// The longest DNS name and the longest label of a DNS name (RFC 1035). +// The maximum lengths of a DNS name and of one of its labels (RFC 1035). const ( maxHostname = 253 maxHostLabel = 63 ) -// isHostname reports whether s is a bare DNS name, for example +// isHostname reports whether s is a bare DNS name, such as // "git.example.com", with no scheme, port, or path. func isHostname(s string) bool { if len(s) > maxHostname { @@ -441,7 +441,7 @@ func isHostname(s string) bool { return true } -// isHostLabel reports whether s is one valid label of a DNS name. +// isHostLabel reports whether s is a valid label of a DNS name. func isHostLabel(s string) bool { if s == "" || len(s) > maxHostLabel || s[0] == '-' || s[len(s)-1] == '-' { return false @@ -452,12 +452,13 @@ func isHostLabel(s string) bool { }) } -// focusesAgent reports whether the focus moves to the agent after a send. +// focusesAgent reports whether focus moves to the agent after sending a +// review. func (c config) focusesAgent() bool { return c.FocusAgent == nil || *c.FocusAgent } -// choice returns an error if value is not one of allowed. key is the name -// of the value in the error. -func choice[T ~string](key string, value T, allowed []T) error { +// validateChoice returns an error if value is not in allowed. key names +// the setting in the error message. +func validateChoice[T ~string](key string, value T, allowed []T) error { if slices.Contains(allowed, value) { return nil } @@ -465,5 +466,5 @@ func choice[T ~string](key string, value T, allowed []T) error { for i, a := range allowed { want[i] = string(a) } - return invalid(key, "one of "+strings.Join(want, ", "), string(value)) + return invalidError(key, "one of "+strings.Join(want, ", "), string(value)) } diff --git a/tui/editor.go b/tui/editor.go index 6dbd3eb..54c5673 100644 --- a/tui/editor.go +++ b/tui/editor.go @@ -17,32 +17,35 @@ import ( "github.com/rednafi/rexdiff/internal/editor" "github.com/rednafi/rexdiff/internal/proc" + "github.com/rednafi/rexdiff/internal/xctx" ) -// openEditor opens the file at path, at line. It uses the editor of the -// settings, else $VISUAL, $EDITOR, or core.editor. The variables come from -// m.env. The editor runs with m.env. A terminal editor opens in a new -// block beside rexdiff in Rex. Outside Rex, a terminal editor takes the -// screen until the editor stops. A window editor starts in the background. -// The messages are the same as in herdr-reviewr. -func (m *model) openEditor(path string, line int) tea.Cmd { +// launchEditor opens the file at path on the given line. It uses the +// editor from the settings or, if none is set, $VISUAL, $EDITOR or +// core.editor, read from m.env. The editor runs with m.env. Inside Rex, a +// terminal editor opens in a new block beside rexdiff. Outside Rex, it +// takes over the screen until it exits. A GUI editor starts in the +// background. +func (m *model) launchEditor(path string, line int) tea.Cmd { abs := filepath.Join(m.repo.Root(), path) - src := editor.Sources{ + sources := editor.Sources{ Template: m.cfg.Editor, Visual: proc.Getenv(m.env, "VISUAL"), Editor: proc.Getenv(m.env, "EDITOR"), } - if src.Template == "" { - src.Git = m.repo.Editor(m.ctx) + if sources.Template == "" { + ctx, done := m.gitContext("git editor") + sources.Git = m.repo.GitEditor(ctx) + done() } - ed, err := editor.Resolve(src, abs, line) + ed, err := editor.CommandFor(sources, abs, line) if err != nil { m.flash("editor failed: " + err.Error()) return nil } - // The editor makes the file again when it saves, so do not open a - // file that is not on disk. - if fi, err := os.Stat(abs); err != nil || !fi.Mode().IsRegular() { + // Saving in the editor would create the file again, so do not open a + // file that no longer exists. + if info, err := os.Stat(abs); err != nil || !info.Mode().IsRegular() { m.flash(path + " is gone") return nil } @@ -52,46 +55,41 @@ func (m *model) openEditor(path string, line int) tea.Cmd { } m.log.Debug("editor", "command", ed.Script, "window", ed.Window) if ed.Window { - return m.runWindowEditor(path, ed.Script) + return m.runEditorWindow(path, ed.Script) } if m.rex == nil { - return m.runHere(path, ed.Script) + return m.runEditorHere(path, ed.Script) } c, ctx, root := m.rex, m.ctx, m.repo.Root() return func() tea.Msg { - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, rexTimeout, - fmt.Errorf("editor split: %v timeout: %w", rexTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("editor split: done: %w", context.Canceled)) + ctx, cancel := xctx.WithTimeout(ctx, rexTimeout, "editor split") + defer cancel() err := c.Split(ctx, root, "sh", "-c", ed.Script) - return splitMsg{path: path, script: ed.Script, err: err} + return editorPaneMsg{path: path, script: ed.Script, err: err} } } -// onSplit tells that the editor opens in a new pane. If Rex cannot open -// the pane, the editor runs in this pane. -func (m *model) onSplit(msg splitMsg) tea.Cmd { +// onEditorPane handles the result of opening the editor in a new pane. If +// Rex could not open the pane, the editor runs in this pane instead. +func (m *model) onEditorPane(msg editorPaneMsg) tea.Cmd { if msg.err == nil { m.flash("opened " + msg.path) return nil } m.log.Debug("editor split failed", "err", msg.err) - return m.runHere(msg.path, msg.script) + return m.runEditorHere(msg.path, msg.script) } -// runHere runs the editor script in this pane, in place of rexdiff. -func (m *model) runHere(path, script string) tea.Cmd { +// runEditorHere runs the editor script in this pane, suspending rexdiff +// until it exits. +func (m *model) runEditorHere(path, script string) tea.Cmd { return tea.ExecProcess(command(m.env, "sh", "-c", script), func(err error) tea.Msg { return editorDoneMsg{path: path, err: err} }) } -// runWindowEditor starts a window editor for path. The editor gets its -// own session and no terminal, so that it cannot read the keys of rexdiff. -// If the editor fails, the returned command gives the error and the last -// line of the stderr of the editor. -func (m *model) runWindowEditor(path, script string) tea.Cmd { +// runEditorWindow starts a GUI editor for path with [detach]. +func (m *model) runEditorWindow(path, script string) tea.Cmd { wait, err := detach(m.env, "editor", "sh", "-c", script) if err != nil { m.flash("editor failed: " + err.Error()) @@ -101,11 +99,10 @@ func (m *model) runWindowEditor(path, script string) tea.Cmd { return wait } -// detach starts a program with the environment env in its own session. -// The program has no terminal, so it cannot read the keys of rexdiff. The -// returned command waits for the program. If the program fails, the -// command gives a detachedMsg with the last line of the stderr of the -// program. +// detach starts a program with the environment env in its own session, +// with no controlling terminal. The returned command waits for the program +// to exit. If the program fails, the command returns a detachedMsg that +// includes the last line of its stderr. func detach(env []string, what, name string, args ...string) (tea.Cmd, error) { cmd := command(env, name, args...) var stderr bytes.Buffer @@ -126,8 +123,9 @@ func detach(env []string, what, name string, args ...string) (tea.Cmd, error) { }, nil } -// onEditorDone shows how the editor in this pane stops. An editor that -// stops with an error code can still save the file. +// onEditorDone reports how the editor in this pane exited and renders the +// file again, because an editor that exits with an error may still have +// saved it. func (m *model) onEditorDone(msg editorDoneMsg) { exit, isExit := errors.AsType[*exec.ExitError](msg.err) switch { @@ -141,12 +139,13 @@ func (m *model) onEditorDone(msg editorDoneMsg) { m.rerender() } -// openURL opens url with the URL opener of the settings, else with -// the opener of the system. As in herdr-reviewr, it opens only an http or -// an https URL. The opener runs with the environment env, and with no -// shell. A missing opener gives the error of [proc.NotInstalled]. The -// command waits for the opener. -func openURL(env []string, cfg config, url string) (tea.Cmd, error) { +// urlOpenerCmd returns a command that opens url with the URL opener from +// the settings or, if none is set, the system opener. It accepts only http +// and https URLs. The opener runs with the environment env and without a +// shell. If the opener is not installed, it returns a +// [proc.NotInstalled]. The returned command waits for the opener to +// exit. +func urlOpenerCmd(env []string, cfg config, url string) (tea.Cmd, error) { url = strings.TrimSpace(url) if !isWebURL(url) { return nil, errors.New("unsupported link scheme") @@ -165,9 +164,9 @@ func openURL(env []string, cfg config, url string) (tea.Cmd, error) { return detach(env, "open", name, args...) } -// isWebURL reports whether url is http or https with text after the -// scheme, as herdr-reviewr checks it. A control character or a bidi -// mark can hide a part of the URL, so url must have none. +// isWebURL reports whether url is an http or https URL with something +// after the scheme. It rejects URLs that contain control characters or +// bidi marks, because these can hide part of the URL. func isWebURL(url string) bool { lower := strings.ToLower(url) web := len(url) > len("http://") && strings.HasPrefix(lower, "http://") || @@ -177,25 +176,22 @@ func isWebURL(url string) bool { }) } -// openerArgs returns the program and the arguments of the URL opener -// command, as herdr-reviewr splits it. The words split at spaces, and a -// quoted text is one word. Each {url} becomes url. Without {url}, url is -// the last argument. The check of the settings makes sure that the first -// word is a program. -func openerArgs(command, url string) []string { +// openerArgs splits spec, the URL opener command, with [splitWords] and +// returns the program followed by its arguments. Each {url} is replaced +// with url. If spec has no {url}, url is added as the last argument. +func openerArgs(spec, url string) []string { var args []string - for _, w := range splitWords(command) { + for _, w := range splitWords(spec) { args = append(args, strings.ReplaceAll(w, "{url}", url)) } - if !strings.Contains(command, "{url}") { + if !strings.Contains(spec, "{url}") { args = append(args, url) } return args } -// splitWords splits command into words at spaces, as herdr-reviewr does. -// Single or double quotes keep the spaces in a word. The quotes do not -// stay in the word. +// splitWords splits command into words at white space. Single or double +// quotes keep spaces inside a word, and the quotes themselves are removed. func splitWords(command string) []string { var words []string var quote rune @@ -222,10 +218,10 @@ func splitWords(command string) []string { return words } -// command returns the command for an editor or a URL opener, with the -// environment env. The context of the command has no end, because the -// program must not stop when rexdiff stops. For example, a kill of the -// editor can lose the edits of the user. +// command returns the command for an editor or URL opener, with the +// environment env. It uses [context.Background] so that the program keeps +// running when rexdiff exits, because killing an editor can lose the +// user's edits. func command(env []string, name string, args ...string) *exec.Cmd { return proc.Command(context.Background(), env, name, args...) } diff --git a/tui/find.go b/tui/find.go index 0228f88..3eb63cf 100644 --- a/tui/find.go +++ b/tui/find.go @@ -14,60 +14,80 @@ import ( "github.com/rednafi/rexdiff/internal/search" ) -// This file has the find band of herdr-reviewr. The band opens at the -// bottom of the screen and stays open. Enter or down goes to the next hit, -// up goes to the previous hit, and esc closes the band. +// The find bar opens at the bottom of the screen and stays open. Enter or +// Down moves to the next match, Up moves to the previous match, and Esc +// closes the bar. -// findState is the query of the find band. The band is open in modeFind. +// maxFindQuery is the most characters that the find query can hold. The +// input stops taking characters there. +const maxFindQuery = 256 + +// findState is the state of the find bar, which is open in modeFind. hits +// caches the matches of the last search, because View needs them on every +// frame. type findState struct { input textinput.Model + hits findCache +} + +// findCache holds the matches of a search together with what they +// depend on: the query, the tab, which selects the pane, and the pane's +// render count. The rows, lines, path and file texts of a pane change +// only when it is rendered again, which increments the count. +type findCache struct { + ok bool + q string + tab tab + renders int + hits []findHit } -// findHit is a line that matches the query. row is its first row in the -// pane. A line in a fold that hides it has the row of the fold, and its -// new line in line. Else line is 0. +// findHit is a line that matches the query. row is the first pane row of +// the line. For a line inside a fold, row is the fold row and line is the +// new-side line number. Otherwise line is 0. type findHit struct { row, line int } -// findable reports whether the find band can open: on a file tab, with -// a row that shows text. -func (m *model) findable() bool { +// canFind reports whether the current view has text to find, which needs +// a file tab with at least one row of searchable text. +func (m *model) canFind() bool { if m.tab == tabPR { return false } - p := m.cur() + p := m.curPane() for i := range p.rows { - if p.hasContent(i) { + if p.canFindRow(i) { return true } } return false } -// hasContent reports whether row i of p shows text that a find can match. -// A note has no such text. The text of a row of rendered markdown is the -// rendered line. -func (p *pane) hasContent(i int) bool { +// canFindRow reports whether row i of p has text that find can match. +// Rows that only show a note have no such text. For rendered Markdown, +// the text is the rendered line. +func (p *pane) canFindRow(i int) bool { r := p.rows[i] - return r.Old > 0 || r.New > 0 || r.Fold.Lines > 0 || (p.path == "" && i < len(p.lines)) + return r.Old > 0 || r.New > 0 || r.Fold.Lines > 0 || (p.path == "" && i < p.count()) } -// openFind opens the find band with an empty query. +// openFind opens the find bar with an empty query. The bar opens even +// when there is nothing to find, such as for a binary file, so that the +// keys typed next go into the query and do not run commands. func (m *model) openFind() tea.Cmd { - if !m.findable() { - return nil - } ti := textinput.New() + ti.CharLimit = maxFindQuery ti.Prompt = "find " ti.Placeholder = "Find in file…" m.find = findState{input: ti} - m.mode, m.focusList = modeFind, false - m.cur().anchor = -1 + m.mode, m.navigatorFocused = modeFind, false + m.curPane().selStart = -1 return m.find.input.Focus() } -// closeFind closes the find band and drops the query. The cursor stays. +// closeFind closes the find bar and clears the query. The cursor does not +// move. func (m *model) closeFind() { if m.mode == modeFind { m.mode = modeNormal @@ -75,8 +95,8 @@ func (m *model) closeFind() { m.find = findState{} } -// updateFind handles a key while the find band is open. As in -// herdr-reviewr, the other keys edit the query. +// updateFind handles a key press while the find bar is open. Keys other +// than Esc, Enter, Up and Down edit the query. func (m *model) updateFind(msg tea.KeyPressMsg) tea.Cmd { switch msg.Code { case tea.KeyEscape: @@ -84,9 +104,11 @@ func (m *model) updateFind(msg tea.KeyPressMsg) tea.Cmd { return nil case tea.KeyEnter, tea.KeyDown: m.stepFind(1) + m.scrollToCursor() // otherwise the view only catches up on the next tick return nil case tea.KeyUp: m.stepFind(-1) + m.scrollToCursor() return nil } var cmd tea.Cmd @@ -94,44 +116,60 @@ func (m *model) updateFind(msg tea.KeyPressMsg) tea.Cmd { return cmd } -// paneSource returns the lines of the two sides of the file in the -// current pane. -func (m *model) paneSource() (before, after []string) { +// findSource returns the lines of both sides of the file in the current +// pane. +func (m *model) findSource() (oldLines, newLines []string) { switch m.tab { case tabChanges: - if f := m.selectedChange(); f != nil { - return m.findLines.of(f.Old, f.New) + if f := m.curChangedFile(); f != nil { + return m.findSides.of(f.OldText, f.NewText) } - case tabFiles: - return m.findLines.of("", m.viewed) + case tabAllFiles: + return m.findSides.of("", m.allFiles.shownText) } return nil, nil } -// splitLines keeps the lines of the last two sides, so a find does not -// split the file again on each frame. -type splitLines struct { +// sideLines caches the split lines of the most recent pair of sides, so +// that find does not split the file again on every frame. +type sideLines struct { old, new string oldLines, newLines []string } -// of returns the lines of before and after. -func (s *splitLines) of(before, after string) ([]string, []string) { - if before != s.old || after != s.new { - *s = splitLines{before, after, diff.Lines(before), diff.Lines(after)} +// of returns the lines of oldText and newText, splitting them only if they +// differ from the cached texts. +func (s *sideLines) of(oldText, newText string) ([]string, []string) { + if oldText != s.old || newText != s.new { + *s = sideLines{oldText, newText, diff.SplitLines(oldText), diff.SplitLines(newText)} } return s.oldLines, s.newLines } -// findHits returns the lines of the pane that match q, in order. It -// matches the source text of a line, and not the line numbers. A line on -// both sides, as in the split layout, is one hit. +// findHits returns the lines of the current pane that match q, in order. +// It matches the source text, not the line numbers. A line present on +// both sides counts as one match. It searches again only when the query, +// tab, pane or lines have changed. func (m *model) findHits(q string) []findHit { - if q == "" { + if q == "" || !m.canFind() { return nil } - p := m.cur() - before, after := m.paneSource() + p := m.curPane() + next := findCache{ok: true, q: q, tab: m.tab, renders: p.renders} + c := &m.find.hits + if c.ok && c.q == next.q && c.tab == next.tab && c.renders == next.renders { + return c.hits + } + oldLines, newLines := m.findSource() + next.hits = p.findHits(q, oldLines, newLines) + *c = next + return next.hits +} + +// findHits returns the lines of p that match q, as [model.findHits] +// describes. oldLines and newLines are the lines of the two sides of the +// file. +func (p *pane) findHits(q string, oldLines, newLines []string) []findHit { line := func(ls []string, n int) string { if n >= 1 && n <= len(ls) { return ls[n-1] @@ -141,27 +179,27 @@ func (m *model) findHits(q string) []findHit { var hits []findHit for i, r := range p.rows { switch { - case p.src != nil: - // A hit in rendered markdown is on its block, as the cursor is. - if !r.Continued && slices.ContainsFunc(p.lines[i:p.end(i)+1], func(l string) bool { - return search.Match(ansi.Strip(l), q) - }) { + case p.srcRows != nil: + // In rendered Markdown, a match points at the start of its + // block, just as the cursor does. + if !r.Continued && p.blockMatches(i, q) { hits = append(hits, findHit{i, 0}) } case r.Continued: case r.Fold.Lines > 0: for n := r.Fold.New; n < r.Fold.New+r.Fold.Lines; n++ { - if search.Match(line(after, n), q) { + if search.Matches(line(newLines, n), q) { hits = append(hits, findHit{i, n}) } } case r.Old > 0 || r.New > 0: - if (r.New > 0 && search.Match(line(after, r.New), q)) || - (r.Old > 0 && search.Match(line(before, r.Old), q)) { + newHit := r.New > 0 && search.Matches(line(newLines, r.New), q) + oldHit := r.Old > 0 && search.Matches(line(oldLines, r.Old), q) + if newHit || oldHit { hits = append(hits, findHit{i, 0}) } - case p.hasContent(i): - if search.Match(ansi.Strip(p.lines[i]), q) { + case p.canFindRow(i): + if search.Matches(ansi.Strip(p.line(i)), q) { hits = append(hits, findHit{i, 0}) } } @@ -169,49 +207,104 @@ func (m *model) findHits(q string) []findHit { return hits } -// findPlace returns the number of hits before the cursor, and if the -// cursor is on a hit. -func (m *model) findPlace(hits []findHit) (before int, on bool) { - cur := m.cur().head(m.cur().cur) +// blockMatches reports whether any line of the rendered Markdown block at +// row i matches q. +func (p *pane) blockMatches(i int, q string) bool { + return slices.ContainsFunc(p.lines[i:p.lineEnd(i)+1], func(l string) bool { + return search.Matches(ansi.Strip(l), q) + }) +} + +// findPlace returns the number of matches before the cursor, and whether +// the cursor is on a match. +func (m *model) findPlace(hits []findHit) (hitsBefore int, on bool) { + cur := m.curPane().lineStart(m.curPane().cur) for _, h := range hits { switch { case h.row < cur: - before++ + hitsBefore++ case h.row == cur && h.line == 0: - return before, true + return hitsBefore, true } } - return before, false + return hitsBefore, false } -// stepFind moves the cursor to the next (d = 1) or the previous (d = -1) -// hit. It wraps around. Forward skips the hit at the cursor. A hit in a -// fold opens the fold. +// stepFind moves the cursor to the next (d = 1) or previous (d = -1) +// match, wrapping around at the ends. Moving forward skips the match under +// the cursor. Moving to a match inside a fold expands the fold. func (m *model) stepFind(d int) { hits := m.findHits(m.find.input.Value()) if len(hits) == 0 { return } - before, on := m.findPlace(hits) + hitsBefore, on := m.findPlace(hits) n := len(hits) - i := (before + n - 1) % n + i := (hitsBefore + n - 1) % n if d > 0 { - i = before % n + i = hitsBefore % n if on { - i = (before + 1) % n + i = (hitsBefore + 1) % n } } - h, p := hits[i], m.cur() + h, p := hits[i], m.curPane() if h.line == 0 { p.cur = h.row + } else { + m.expandFold(p.rows[h.row].Fold) + jumpToLine(p, diff.SideNew, h.line) + } + m.showMatch(m.find.input.Value()) +} + +// showMatch brings the first match of q in the source line at the cursor +// into view. If lines wrap and the line is taller than the screen, it +// scrolls the view down to the screen line that holds the match, as +// moveCur scrolls through such a line. If lines do not wrap, it scrolls +// the view sideways. It does nothing in rendered Markdown. +func (m *model) showMatch(q string) { + p := m.curPane() + if p.diff == nil || p.srcRows != nil { + return + } + row := p.lineStart(p.cur) + if row >= len(p.rows) { + return + } + r := p.rows[row] + oldLines, newLines := m.findSource() + side, at := diff.SideNew, -1 + if r.New >= 1 && r.New <= len(newLines) { + at = search.Index(newLines[r.New-1], q) + } + if at < 0 && r.Old >= 1 && r.Old <= len(oldLines) { + side, at = diff.SideOld, search.Index(oldLines[r.Old-1], q) + } + if at < 0 { + return + } + line, col := p.diff.Locate(row, side, at) + if m.wrap { + m.scrollToCursor() + if h := max(m.mainHeight(), 1); line >= p.top+h { + // Show the match a third of the way down, but no further than + // the end of the line. + p.top = min(max(line-h/3, row), max(p.lineEnd(row)-h+1, row)) + p.following = false + } + return + } + w, qw := p.diff.CodeWidth(side), ansi.StringWidth(q) + if w == 0 || (col >= p.scrollX && col+qw <= p.scrollX+w) { return } - m.expandFold(p.rows[h.row].Fold) - cursorToLine(p, diff.SideNew, h.line) + // Put the match a third of the way into the code. + p.scrollX = max(col-w/3, 0) + m.rerender() } -// shownHits returns the hits of the query in the find band, or nil if -// the band is closed. +// shownHits returns the matches for the query in the find bar, or nil if +// the bar is closed. func (m *model) shownHits() []findHit { if m.mode != modeFind { return nil @@ -219,25 +312,30 @@ func (m *model) shownHits() []findHit { return m.findHits(m.find.input.Value()) } -// findBand renders the find band: the query, and the count at the right. -// The count is "i/n" on a hit, n off a hit, or "no matches". hits are the -// hits of the query. +// findBand renders the find bar: the query, with the match count on the +// right. The count is "i/n" when the cursor is on a match, "n" when it is +// not, and "no matches" when nothing matches. In a view with no text to +// search, a note takes the place of the count. func (m *model) findBand(hits []findHit) string { count := "" - if m.find.input.Value() != "" { - before, on := m.findPlace(hits) + switch { + case !m.canFind(): + count = "nothing to find here" + case m.find.input.Value() != "": + hitsBefore, on := m.findPlace(hits) switch { case len(hits) == 0: count = "no matches" case on: - count = fmt.Sprintf("%d/%d", before+1, len(hits)) + count = fmt.Sprintf("%d/%d", hitsBefore+1, len(hits)) default: count = strconv.Itoa(len(hits)) } } - w := max(m.w-ansi.StringWidth(count)-1, 1) + fw := m.footerWidth() + w := max(fw-ansi.StringWidth(count)-1, 1) m.find.input.SetWidth(max(w-ansi.StringWidth(m.find.input.Prompt)-1, 1)) band := truncate(m.find.input.View(), w) - pad := strings.Repeat(" ", max(m.w-ansi.StringWidth(band)-ansi.StringWidth(count), 0)) + pad := strings.Repeat(" ", max(fw-ansi.StringWidth(band)-ansi.StringWidth(count), 0)) return band + pad + dimStyle.Render(count) } diff --git a/tui/keys.go b/tui/keys.go index 03fde7d..dce2505 100644 --- a/tui/keys.go +++ b/tui/keys.go @@ -8,15 +8,16 @@ import ( "charm.land/bubbles/v2/help" "charm.land/bubbles/v2/key" + tea "charm.land/bubbletea/v2" "github.com/charmbracelet/x/ansi" ) -// keyMap uses the action names and the default keys of herdr-reviewr. -// The fields have the names of the actions in the keybindings setting. -// Focus and Update are actions of rexdiff only. The settings do not change -// the keys of the comment box and of the find. +// keyMap holds the key binding for each action. Each field is named after +// the action in the keybindings setting, such as NextHunk for next-hunk +// (see [keyActions]). The settings cannot change the keys of the comment +// box or the find bar. type keyMap struct { - // Move. + // Movement. Down, Up, PageDown, PageUp, HalfDown, HalfUp, Collapse, Expand key.Binding NextHunk, PrevHunk, NextFile, PrevFile, Focus key.Binding @@ -32,188 +33,475 @@ type keyMap struct { Search, Find, GotoLine, Rendered, Split, Wrap key.Binding NavigatorPosition, NavigatorHide, NavigatorGrow, NavigatorShrink key.Binding OpenPR, Refresh, Keys, Quit, QuitDiscard key.Binding - // Update installs a newer release. It works only while the footer - // tells about a newer release. + // Update installs a newer release. It works only while the footer is + // announcing one. Update key.Binding - // The comment box. Cancel also clears the selection. - Save, Newline, Cancel key.Binding + // Keys of the comment box. Cancel also clears the selection. + SaveComment, InsertNewline, Cancel key.Binding } -// bind returns a binding of keys, with helpKey and desc in the help. +// bind returns a binding for keys, with helpKey and desc as its help text. func bind(keys []string, helpKey, desc string) key.Binding { return key.NewBinding(key.WithKeys(keys...), key.WithHelp(helpKey, desc)) } -// hint returns a copy of b with other help text. The copy keeps the keys -// of b, because the help does not show a binding that has no keys. +// hint returns a copy of b with different help text. The copy keeps the +// keys of b, because the help view hides bindings that have no keys. func hint(b key.Binding, helpKey, desc string) key.Binding { b.SetHelp(helpKey, desc) return b } -// defaultKeys returns the keys of herdr-reviewr, with the help text of -// each action. Some actions share one help label, for example "j/k move". -// Then the label is on the first action of the pair. +// keyAction describes an action that can be bound to keys. +type keyAction struct { + // name is the action name in the keybindings setting, or "" for a + // key of the comment box. + name string + keys []string // the default keys + helpKey, help string + field func(*keyMap) *key.Binding + // setting returns the keys that the keybindings setting assigns to + // the action. It is nil if the setting cannot change them. + setting func(*keybindings) []string + // handle runs the action when no box is open. It is nil if the key + // does nothing in that state. The QuitDiscard key only answers the + // quit prompt. + handle func(*model) tea.Cmd + // keepView reports whether the view stays put, rather than scrolling + // to the cursor, after the action runs. + keepView bool +} + +// keyActions lists every key action, in the order that keybinding errors +// name them. The update action, whose key is fixed, follows the +// configurable actions, and the comment box keys come last. A help label +// shared by a group, such as "j/k move", belongs to its first action (see +// [keyMap.pairs]). +var keyActions = []keyAction{ + { + name: "down", + keys: []string{"j", "down"}, helpKey: "j/k", help: "move", + field: func(k *keyMap) *key.Binding { return &k.Down }, + setting: func(c *keybindings) []string { return c.Down }, + handle: (*model).onDown, + }, + { + name: "up", + keys: []string{"k", "up"}, helpKey: "k", help: "up", + field: func(k *keyMap) *key.Binding { return &k.Up }, + setting: func(c *keybindings) []string { return c.Up }, + handle: (*model).onUp, + }, + { + name: "next-hunk", + keys: []string{"]"}, helpKey: "]/[", help: "next/prev change", + field: func(k *keyMap) *key.Binding { return &k.NextHunk }, + setting: func(c *keybindings) []string { return c.NextHunk }, + handle: (*model).onNextHunk, + }, + { + name: "prev-hunk", + keys: []string{"["}, helpKey: "[", help: "prev change", + field: func(k *keyMap) *key.Binding { return &k.PrevHunk }, + setting: func(c *keybindings) []string { return c.PrevHunk }, + handle: (*model).onPrevHunk, + }, + { + name: "next-file", + keys: []string{"f"}, helpKey: "f/F", help: "next/prev file", + field: func(k *keyMap) *key.Binding { return &k.NextFile }, + setting: func(c *keybindings) []string { return c.NextFile }, + handle: (*model).onNextFile, + }, + { + name: "prev-file", + keys: []string{"F"}, helpKey: "F", help: "prev file", + field: func(k *keyMap) *key.Binding { return &k.PrevFile }, + setting: func(c *keybindings) []string { return c.PrevFile }, + handle: (*model).onPrevFile, + }, + { + name: "collapse", + keys: []string{"left"}, helpKey: "←/→", help: "scroll sideways", + field: func(k *keyMap) *key.Binding { return &k.Collapse }, + setting: func(c *keybindings) []string { return c.Collapse }, + handle: (*model).onCollapse, + }, + { + name: "expand", + keys: []string{"right"}, helpKey: "→", help: "scroll right", + field: func(k *keyMap) *key.Binding { return &k.Expand }, + setting: func(c *keybindings) []string { return c.Expand }, + handle: (*model).onExpand, + }, + { + name: "page-up", + keys: []string{"pgup"}, helpKey: "pgup", help: "page up", + field: func(k *keyMap) *key.Binding { return &k.PageUp }, + setting: func(c *keybindings) []string { return c.PageUp }, + handle: (*model).onPageUp, + }, + { + name: "page-down", + keys: []string{"pgdown"}, helpKey: "pgdn", help: "page down", + field: func(k *keyMap) *key.Binding { return &k.PageDown }, + setting: func(c *keybindings) []string { return c.PageDown }, + handle: (*model).onPageDown, + }, + { + name: "half-up", + keys: []string{"ctrl+u"}, helpKey: "ctrl+u", help: "half page up", + field: func(k *keyMap) *key.Binding { return &k.HalfUp }, + setting: func(c *keybindings) []string { return c.HalfUp }, + handle: (*model).onHalfUp, + }, + { + name: "half-down", + keys: []string{"ctrl+d"}, helpKey: "ctrl+d/u", help: "half page", + field: func(k *keyMap) *key.Binding { return &k.HalfDown }, + setting: func(c *keybindings) []string { return c.HalfDown }, + handle: (*model).onHalfDown, + }, + { + name: "focus", + keys: []string{"tab"}, helpKey: "tab", help: "switch pane", + field: func(k *keyMap) *key.Binding { return &k.Focus }, + setting: func(c *keybindings) []string { return c.Focus }, + handle: (*model).onFocus, + }, + { + name: "scope-uncommitted", + keys: []string{"u"}, helpKey: "u", help: "uncommitted", + field: func(k *keyMap) *key.Binding { return &k.ScopeUncommitted }, + setting: func(c *keybindings) []string { return c.ScopeUncommitted }, + handle: (*model).onScopeUncommitted, + }, + { + name: "scope-branch", + keys: []string{"b"}, helpKey: "b", help: "branch", + field: func(k *keyMap) *key.Binding { return &k.ScopeBranch }, + setting: func(c *keybindings) []string { return c.ScopeBranch }, + handle: (*model).onScopeBranch, + }, + { + name: "scope-last-turn", + keys: []string{"t"}, helpKey: "t", help: "last turn", + field: func(k *keyMap) *key.Binding { return &k.ScopeLastTurn }, + setting: func(c *keybindings) []string { return c.ScopeLastTurn }, + handle: (*model).onScopeLastTurn, + }, + { + name: "scope-commits", + keys: []string{"g"}, helpKey: "g", help: "commits", + field: func(k *keyMap) *key.Binding { return &k.ScopeCommits }, + setting: func(c *keybindings) []string { return c.ScopeCommits }, + handle: (*model).onScopeCommits, + }, + { + name: "base-pick", + keys: []string{"B"}, helpKey: "B", help: "pick base branch", + field: func(k *keyMap) *key.Binding { return &k.BasePick }, + setting: func(c *keybindings) []string { return c.BasePick }, + handle: (*model).onBasePick, + }, + { + name: "commit-pick", + keys: []string{"G"}, helpKey: "G", help: "pick commits", + field: func(k *keyMap) *key.Binding { return &k.CommitPick }, + setting: func(c *keybindings) []string { return c.CommitPick }, + handle: (*model).onCommitPick, + }, + { + name: "tab-changes", + keys: []string{"1"}, helpKey: "1/2/3", help: "changes/files/PR", + field: func(k *keyMap) *key.Binding { return &k.TabChanges }, + setting: func(c *keybindings) []string { return c.TabChanges }, + handle: (*model).onTabChanges, + }, + { + name: "tab-all-files", + keys: []string{"2"}, helpKey: "2", help: "all files", + field: func(k *keyMap) *key.Binding { return &k.TabAllFiles }, + setting: func(c *keybindings) []string { return c.TabAllFiles }, + handle: (*model).onTabAllFiles, + }, + { + name: "tab-pr", + keys: []string{"3"}, helpKey: "3", help: "PR", + field: func(k *keyMap) *key.Binding { return &k.TabPR }, + setting: func(c *keybindings) []string { return c.TabPR }, + handle: (*model).onTabPR, + }, + { + name: "wrap", + keys: []string{"w"}, helpKey: "w", help: "wrap lines", + field: func(k *keyMap) *key.Binding { return &k.Wrap }, + setting: func(c *keybindings) []string { return c.Wrap }, + handle: (*model).onWrap, + }, + { + name: "rendered", + keys: []string{"m"}, helpKey: "m", help: "rendered markdown", + field: func(k *keyMap) *key.Binding { return &k.Rendered }, + setting: func(c *keybindings) []string { return c.Rendered }, + handle: (*model).onRendered, + }, + { + name: "split", + keys: []string{"|"}, helpKey: "|", help: "side by side", + field: func(k *keyMap) *key.Binding { return &k.Split }, + setting: func(c *keybindings) []string { return c.Split }, + handle: (*model).onSplit, + }, + { + name: "navigator-position", + keys: []string{"p"}, helpKey: "p", help: "move list", + field: func(k *keyMap) *key.Binding { return &k.NavigatorPosition }, + setting: func(c *keybindings) []string { return c.NavigatorPosition }, + handle: (*model).onNavigatorPosition, + }, + { + name: "navigator-hide", + keys: []string{"z"}, helpKey: "z", help: "hide list", + field: func(k *keyMap) *key.Binding { return &k.NavigatorHide }, + setting: func(c *keybindings) []string { return c.NavigatorHide }, + handle: (*model).onNavigatorHide, + }, + { + name: "navigator-grow", + keys: []string{"<"}, helpKey: "", help: "resize list", + field: func(k *keyMap) *key.Binding { return &k.NavigatorGrow }, + setting: func(c *keybindings) []string { return c.NavigatorGrow }, + handle: (*model).onNavigatorGrow, + }, + { + name: "navigator-shrink", + keys: []string{">"}, helpKey: ">", help: "narrow list", + field: func(k *keyMap) *key.Binding { return &k.NavigatorShrink }, + setting: func(c *keybindings) []string { return c.NavigatorShrink }, + handle: (*model).onNavigatorShrink, + }, + { + name: "select", + keys: []string{"v"}, helpKey: "v", help: "select lines", + field: func(k *keyMap) *key.Binding { return &k.Select }, + setting: func(c *keybindings) []string { return c.Select }, + handle: (*model).onSelect, + }, + { + name: "comment", + keys: []string{"c"}, helpKey: "c", help: "comment", + field: func(k *keyMap) *key.Binding { return &k.Comment }, + setting: func(c *keybindings) []string { return c.Comment }, + handle: (*model).onComment, + }, + { + name: "edit", + keys: []string{"e"}, helpKey: "e", help: "edit comment/open editor", + field: func(k *keyMap) *key.Binding { return &k.Edit }, + setting: func(c *keybindings) []string { return c.Edit }, + handle: (*model).onEdit, + }, + { + name: "delete", + keys: []string{"d"}, helpKey: "d", help: "delete comment", + field: func(k *keyMap) *key.Binding { return &k.Delete }, + setting: func(c *keybindings) []string { return c.Delete }, + handle: (*model).onDelete, + }, + { + name: "next-comment", + keys: []string{"n"}, helpKey: "n/N", help: "next/prev comment", + field: func(k *keyMap) *key.Binding { return &k.NextComment }, + setting: func(c *keybindings) []string { return c.NextComment }, + handle: (*model).onNextComment, + }, + { + name: "prev-comment", + keys: []string{"N"}, helpKey: "N", help: "prev comment", + field: func(k *keyMap) *key.Binding { return &k.PrevComment }, + setting: func(c *keybindings) []string { return c.PrevComment }, + handle: (*model).onPrevComment, + }, + { + name: "comments", + keys: []string{"l"}, helpKey: "l", help: "list comments", + field: func(k *keyMap) *key.Binding { return &k.Comments }, + setting: func(c *keybindings) []string { return c.Comments }, + handle: (*model).onComments, + }, + { + name: "search", + keys: []string{"/"}, helpKey: "/", help: "search files and code", + field: func(k *keyMap) *key.Binding { return &k.Search }, + setting: func(c *keybindings) []string { return c.Search }, + handle: (*model).onSearch, + }, + { + name: "find", + keys: []string{"ctrl+f"}, helpKey: "ctrl+f", help: "find in file", + field: func(k *keyMap) *key.Binding { return &k.Find }, + setting: func(c *keybindings) []string { return c.Find }, + handle: (*model).onFind, + }, + { + name: "goto-line", + keys: []string{":"}, helpKey: ":", help: "go to line", + field: func(k *keyMap) *key.Binding { return &k.GotoLine }, + setting: func(c *keybindings) []string { return c.GotoLine }, + handle: (*model).onGotoLine, + }, + { + name: "keys", + keys: []string{"?"}, helpKey: "?", help: "all keys", + field: func(k *keyMap) *key.Binding { return &k.Keys }, + setting: func(c *keybindings) []string { return c.Keys }, + handle: (*model).onKeys, + }, + { + name: "send", + keys: []string{"s", "S"}, helpKey: "s", help: "send to agent", + field: func(k *keyMap) *key.Binding { return &k.Send }, + setting: func(c *keybindings) []string { return c.Send }, + handle: (*model).onSend, + }, + { + name: "copy", + keys: []string{"y", "Y"}, helpKey: "y", help: "copy comments", + field: func(k *keyMap) *key.Binding { return &k.Copy }, + setting: func(c *keybindings) []string { return c.Copy }, + handle: (*model).onCopy, + }, + { + name: "open-pr", + keys: []string{"o"}, helpKey: "o", help: "open PR in browser", + field: func(k *keyMap) *key.Binding { return &k.OpenPR }, + setting: func(c *keybindings) []string { return c.OpenPR }, + handle: (*model).onOpenPR, + }, + { + name: "refresh", + keys: []string{"r"}, helpKey: "r", help: "refresh", + field: func(k *keyMap) *key.Binding { return &k.Refresh }, + setting: func(c *keybindings) []string { return c.Refresh }, + handle: (*model).onRefresh, + }, + { + name: "quit", + keys: []string{"q"}, helpKey: "q", help: "quit", + field: func(k *keyMap) *key.Binding { return &k.Quit }, + setting: func(c *keybindings) []string { return c.Quit }, + handle: (*model).onQuit, + keepView: true, + }, + { + name: "quit-discard", + keys: []string{"Q"}, helpKey: "Q", help: "quit, drop comments", + field: func(k *keyMap) *key.Binding { return &k.QuitDiscard }, + setting: func(c *keybindings) []string { return c.QuitDiscard }, + }, + { + name: "update", + keys: []string{"U"}, helpKey: "U", help: "update rexdiff", + field: func(k *keyMap) *key.Binding { return &k.Update }, + handle: (*model).onUpdate, + }, + { + keys: []string{"enter"}, helpKey: "enter", help: "save", + field: func(k *keyMap) *key.Binding { return &k.SaveComment }, + }, + { + keys: []string{"shift+enter", "alt+enter", "ctrl+j"}, helpKey: "shift+enter", help: "new line", + field: func(k *keyMap) *key.Binding { return &k.InsertNewline }, + }, + { + keys: []string{"esc"}, helpKey: "esc", help: "cancel", + field: func(k *keyMap) *key.Binding { return &k.Cancel }, + handle: (*model).onCancel, + }, +} + +// defaultKeys returns the default key bindings, with the help text for +// each action. func defaultKeys() keyMap { - return keyMap{ - Down: bind([]string{"j", "down"}, "j/k", "move"), - Up: bind([]string{"k", "up"}, "k", "up"), - PageDown: bind([]string{"pgdown"}, "pgdn", "page down"), - PageUp: bind([]string{"pgup"}, "pgup", "page up"), - HalfDown: bind([]string{"ctrl+d"}, "ctrl+d/u", "half page"), - HalfUp: bind([]string{"ctrl+u"}, "ctrl+u", "half page up"), - NextHunk: bind([]string{"]"}, "]/[", "next/prev change"), - PrevHunk: bind([]string{"["}, "[", "prev change"), - NextFile: bind([]string{"f"}, "f/F", "next/prev file"), - PrevFile: bind([]string{"F"}, "F", "prev file"), - Focus: bind([]string{"tab"}, "tab", "switch pane"), - Collapse: bind([]string{"left"}, "←/→", "scroll sideways"), - Expand: bind([]string{"right"}, "→", "scroll right"), - - ScopeUncommitted: bind([]string{"u"}, "u", "uncommitted"), - ScopeBranch: bind([]string{"b"}, "b", "branch"), - ScopeLastTurn: bind([]string{"t"}, "t", "last turn"), - ScopeCommits: bind([]string{"g"}, "g", "commits"), - BasePick: bind([]string{"B"}, "B", "pick base branch"), - CommitPick: bind([]string{"G"}, "G", "pick commits"), - TabChanges: bind([]string{"1"}, "1/2/3", "changes/files/PR"), - TabAllFiles: bind([]string{"2"}, "2", "all files"), - TabPR: bind([]string{"3"}, "3", "PR"), - - Select: bind([]string{"v"}, "v", "select lines"), - Comment: bind([]string{"c"}, "c", "comment"), - Edit: bind([]string{"e"}, "e", "edit comment/open editor"), - Delete: bind([]string{"d"}, "d", "delete comment"), - NextComment: bind([]string{"n"}, "n/N", "next/prev comment"), - PrevComment: bind([]string{"N"}, "N", "prev comment"), - Comments: bind([]string{"l"}, "l", "list comments"), - Send: bind([]string{"s", "S"}, "s", "send to agent"), - Copy: bind([]string{"y", "Y"}, "y", "copy comments"), - - Search: bind([]string{"/"}, "/", "search files and code"), - Find: bind([]string{"ctrl+f"}, "ctrl+f", "find in file"), - GotoLine: bind([]string{":"}, ":", "go to line"), - Rendered: bind([]string{"m"}, "m", "rendered markdown"), - Split: bind([]string{"|"}, "|", "side by side"), - Wrap: bind([]string{"w"}, "w", "wrap lines"), - NavigatorPosition: bind([]string{"p"}, "p", "move list"), - NavigatorHide: bind([]string{"z"}, "z", "hide list"), - NavigatorGrow: bind([]string{"<"}, "", "resize list"), - NavigatorShrink: bind([]string{">"}, ">", "narrow list"), - OpenPR: bind([]string{"o"}, "o", "open PR in browser"), - Refresh: bind([]string{"r"}, "r", "refresh"), - Update: bind([]string{"U"}, "U", "update rexdiff"), - Keys: bind([]string{"?"}, "?", "all keys"), - Quit: bind([]string{"q"}, "q", "quit"), - QuitDiscard: bind([]string{"Q"}, "Q", "quit, drop comments"), - - Save: bind([]string{"enter"}, "enter", "save"), - Newline: bind( - []string{"shift+enter", "alt+enter", "ctrl+j"}, - "shift+enter", - "new line", - ), - Cancel: bind([]string{"esc"}, "esc", "cancel"), + var k keyMap + for _, a := range keyActions { + *a.field(&k) = bind(a.keys, a.helpKey, a.help) } + return k } -// overlayKeyMap has the keys of the overlays. The settings do not change -// them. +// action returns the action that msg triggers when no box is open, or +// nil. The order of the actions does not matter, because checking the +// keybindings setting ensures that each key has at most one action. +func (k *keyMap) action(msg tea.KeyPressMsg) *keyAction { + for i, a := range keyActions { + if a.handle != nil && key.Matches(msg, *a.field(k)) { + return &keyActions[i] + } + } + return nil +} + +// overlayKeyMap holds the keys used in overlays. The settings cannot +// change them. type overlayKeyMap struct { + // Up and Down move the cursor through the items. Their letter keys, k + // and j, move the cursor only in an overlay without a text input, such + // as the agent picker. A text input types them instead (see + // [overlay.isCursorKey]). Choose, Close, Up, Down key.Binding - // ListDown and ListUp work in the agent picker. - ListDown, ListUp key.Binding - // Flip switches the mode of the search. PreviewUp and PreviewDown - // scroll the preview of the search. - Flip, PreviewUp, PreviewDown key.Binding + // ToggleSearchMode switches the search mode. ScrollPreviewUp and + // ScrollPreviewDown scroll the search preview. + ToggleSearchMode, ScrollPreviewUp, ScrollPreviewDown key.Binding } -// overlayKeys has the keys of the overlays. The settings do not change -// these keys. +// overlayKeys holds the keys used in overlays. var overlayKeys = overlayKeyMap{ - Choose: key.NewBinding(key.WithKeys("enter")), - Close: key.NewBinding(key.WithKeys("esc")), - Up: key.NewBinding(key.WithKeys("up", "ctrl+p", "ctrl+k")), - Down: key.NewBinding(key.WithKeys("down", "ctrl+n", "ctrl+j")), - Flip: key.NewBinding(key.WithKeys("tab")), - // The keys of the search are the same as in herdr-reviewr. - PreviewUp: key.NewBinding(key.WithKeys("pgup")), - PreviewDown: key.NewBinding(key.WithKeys("pgdown")), - ListDown: key.NewBinding(key.WithKeys("j")), - ListUp: key.NewBinding(key.WithKeys("k")), + Choose: key.NewBinding(key.WithKeys("enter")), + Close: key.NewBinding(key.WithKeys("esc")), + Up: key.NewBinding(key.WithKeys("up", "ctrl+p", "ctrl+k", "k")), + Down: key.NewBinding(key.WithKeys("down", "ctrl+n", "ctrl+j", "j")), + ToggleSearchMode: key.NewBinding(key.WithKeys("tab")), + ScrollPreviewUp: key.NewBinding(key.WithKeys("pgup")), + ScrollPreviewDown: key.NewBinding(key.WithKeys("pgdown")), } -// binding is an action of the keybindings setting and the key binding that -// it changes. +// letterMoveKeys are the keys of overlayKeys.Up and Down that are also +// letters. +var letterMoveKeys = []string{"j", "k"} + +// binding pairs an action from the keybindings setting with the key +// binding that it changes. type binding struct { - name string // the name in the keybindings setting + name string // the action name in the keybindings setting keys []string key *key.Binding } -// bindings returns each action of c with its key binding in k, in the -// order of the table of herdr-reviewr. The check of the keybindings -// setting uses this order to name the actions of a key that two actions -// use. herdr-reviewr has no focus action. The update is last. Its key is -// fixed, and the check keeps it free. +// bindings returns each configurable action with the keys that c sets for +// it and its binding in k, in the order of keyActions. func (k *keyMap) bindings(c keybindings) []binding { - return []binding{ - {"down", c.Down, &k.Down}, - {"up", c.Up, &k.Up}, - {"next-hunk", c.NextHunk, &k.NextHunk}, - {"prev-hunk", c.PrevHunk, &k.PrevHunk}, - {"next-file", c.NextFile, &k.NextFile}, - {"prev-file", c.PrevFile, &k.PrevFile}, - {"collapse", c.Collapse, &k.Collapse}, - {"expand", c.Expand, &k.Expand}, - {"page-up", c.PageUp, &k.PageUp}, - {"page-down", c.PageDown, &k.PageDown}, - {"half-up", c.HalfUp, &k.HalfUp}, - {"half-down", c.HalfDown, &k.HalfDown}, - {"focus", c.Focus, &k.Focus}, - {"scope-uncommitted", c.ScopeUncommitted, &k.ScopeUncommitted}, - {"scope-branch", c.ScopeBranch, &k.ScopeBranch}, - {"scope-last-turn", c.ScopeLastTurn, &k.ScopeLastTurn}, - {"scope-commits", c.ScopeCommits, &k.ScopeCommits}, - {"base-pick", c.BasePick, &k.BasePick}, - {"commit-pick", c.CommitPick, &k.CommitPick}, - {"tab-changes", c.TabChanges, &k.TabChanges}, - {"tab-all-files", c.TabAllFiles, &k.TabAllFiles}, - {"tab-pr", c.TabPR, &k.TabPR}, - {"wrap", c.Wrap, &k.Wrap}, - {"rendered", c.Rendered, &k.Rendered}, - {"split", c.Split, &k.Split}, - {"navigator-position", c.NavigatorPosition, &k.NavigatorPosition}, - {"navigator-hide", c.NavigatorHide, &k.NavigatorHide}, - {"navigator-grow", c.NavigatorGrow, &k.NavigatorGrow}, - {"navigator-shrink", c.NavigatorShrink, &k.NavigatorShrink}, - {"select", c.Select, &k.Select}, - {"comment", c.Comment, &k.Comment}, - {"edit", c.Edit, &k.Edit}, - {"delete", c.Delete, &k.Delete}, - {"next-comment", c.NextComment, &k.NextComment}, - {"prev-comment", c.PrevComment, &k.PrevComment}, - {"comments", c.Comments, &k.Comments}, - {"search", c.Search, &k.Search}, - {"find", c.Find, &k.Find}, - {"goto-line", c.GotoLine, &k.GotoLine}, - {"keys", c.Keys, &k.Keys}, - {"send", c.Send, &k.Send}, - {"copy", c.Copy, &k.Copy}, - {"open-pr", c.OpenPR, &k.OpenPR}, - {"refresh", c.Refresh, &k.Refresh}, - {"quit", c.Quit, &k.Quit}, - {"quit-discard", c.QuitDiscard, &k.QuitDiscard}, - {"update", nil, &k.Update}, + var bs []binding + for _, a := range keyActions { + if a.name == "" { + continue + } + var keys []string + if a.setting != nil { + keys = a.setting(&c) + } + bs = append(bs, binding{a.name, keys, a.field(k)}) } + return bs } -// applyConfig sets the keys of each action that c sets. The check of the -// setting accepts each key, so keyName does not fail. The help shows the -// first key of a changed action, as herdr-reviewr spells it. A label of a -// pair, for example "j/k move", shows the first key of each action. +// applyConfig sets the keys of each action that c configures. c must +// already have passed validation. The help for a changed action shows its +// first key, and a shared label such as "j/k move" shows the first key of +// each action in the group. func (k *keyMap) applyConfig(c keybindings) { changed := map[*key.Binding]bool{} for _, b := range k.bindings(c) { @@ -222,7 +510,7 @@ func (k *keyMap) applyConfig(c keybindings) { } keys := make([]string, len(b.keys)) for i, s := range b.keys { - keys[i], _ = keyName(s) + keys[i], _ = keyName(s) // cannot fail: c has passed validation } b.key.SetKeys(keys...) b.key.SetHelp(firstKey(*b.key), b.key.Help().Desc) @@ -240,8 +528,8 @@ func (k *keyMap) applyConfig(c keybindings) { } } -// pairs returns the groups of actions that share one help label, for -// example "j/k move". The label is on the first action of each group. +// pairs returns the groups of actions that share one help label, such as +// "j/k move". The label belongs to the first action of each group. func (k *keyMap) pairs() [][]*key.Binding { return [][]*key.Binding{ {&k.Down, &k.Up}, @@ -255,9 +543,9 @@ func (k *keyMap) pairs() [][]*key.Binding { } } -// namedKeys are the keys that are not one character. Each has its name as -// herdr-reviewr spells it, its bubbletea name, and its label on the -// screen. +// namedKeys are the keys that are not a single character. Each has its +// name in the keybindings setting, its bubbletea name and its on-screen +// label. var namedKeys = []namedKey{ {"left", "left", "←"}, {"right", "right", "→"}, @@ -267,25 +555,25 @@ var namedKeys = []namedKey{ {"pagedown", "pgdown", "PageDown"}, } -// namedKey is a key that is not one character. +// namedKey is a key that is not a single character. type namedKey struct{ name, tea, label string } -// teaKey returns the named key whose bubbletea name is name without its -// modifier, and the modifier. ok is false if no named key has this name. +// teaKey splits the bubbletea key name into its modifier and the named +// key it refers to. ok is false if no named key matches. func teaKey(name string) (mod string, k namedKey, ok bool) { mod, rest := cutModifier(name) - i := slices.IndexFunc(namedKeys, func(k namedKey) bool { return k.tea == rest }) + i := slices.IndexFunc(namedKeys, func(nk namedKey) bool { return nk.tea == rest }) if i < 0 { return mod, namedKey{}, false } return mod, namedKeys[i], true } -// keyName returns the bubbletea name of the key s of the keybindings -// setting. It is the inverse of [herdrReviewrKeyName]. s is one character -// or a named key, alone or after "ctrl+" or "alt+", as in herdr-reviewr. -// The bubbletea names "pgup" and "pgdown" are also valid. ok is false if s -// is not a valid key. +// keyName converts the key s from the keybindings setting to its +// bubbletea name. It is the inverse of [settingKeyName]. s is a +// single character or a named key, optionally after "ctrl+" or "alt+". +// The bubbletea names "pgup" and "pgdown" are also accepted. ok is false +// if s is not a valid key. func keyName(s string) (name string, ok bool) { mod, rest := cutModifier(s) named := func(k namedKey) bool { return rest == k.name || rest == k.tea } @@ -293,25 +581,25 @@ func keyName(s string) (name string, ok bool) { return mod + namedKeys[i].tea, true } r, size := utf8.DecodeRuneInString(rest) - if size == 0 || size != len(rest) || r == utf8.RuneError || unicode.IsSpace(r) || - ansi.StringWidth(rest) == 0 { + oneRune := size > 0 && size == len(rest) && r != utf8.RuneError + if !oneRune || unicode.IsSpace(r) || ansi.StringWidth(rest) == 0 { return "", false } return s, true } -// herdrReviewrKeyName returns the bubbletea key name as herdr-reviewr -// spells it, for example "pageup" for "pgup". It is the inverse of +// settingKeyName converts a bubbletea key name to its name in the +// keybindings setting, such as "pageup" for "pgup". It is the inverse of // [keyName]. -func herdrReviewrKeyName(name string) string { +func settingKeyName(name string) string { if mod, k, ok := teaKey(name); ok { return mod + k.name } return name } -// cutModifier returns the "ctrl+" or "alt+" at the start of s, if any, and -// the rest of s. +// cutModifier splits a leading "ctrl+" or "alt+" from s. mod is "" if s +// has neither. func cutModifier(s string) (mod, rest string) { for _, m := range []string{"ctrl+", "alt+"} { if r, ok := strings.CutPrefix(s, m); ok { @@ -321,7 +609,8 @@ func cutModifier(s string) (mod, rest string) { return "", s } -// keyNames lists the named keys for an error message. +// keyNames returns a comma-separated list of the named keys, for use in +// error messages. func keyNames() string { names := make([]string, len(namedKeys)) for i, k := range namedKeys { @@ -330,37 +619,34 @@ func keyNames() string { return strings.Join(names, ", ") } -// helpKeys implements help.KeyMap for the mode and the tab of the program. +// helpKeys implements [help.KeyMap] for the current mode and tab. type helpKeys struct { - k keyMap - mode mode - tab tab - split bool - visual bool - atFold bool // the cursor is on a fold - armed int // the direction of an armed crossing, or 0 + keys keyMap + mode mode + tab tab + split bool + selecting bool + cursorOnFold bool // the cursor is on a fold + cursorInExpandedFold bool // the collapse key would collapse the expanded fold under the cursor + crossStep int // the direction of a pending jump to another file, or 0 } -// ShortHelp returns the keys of the footer. +// ShortHelp returns the keys shown in the footer. func (h helpKeys) ShortHelp() []key.Binding { - k := h.k + k := h.keys if h.split { k.Split.SetHelp(k.Split.Help().Key, "top to bottom") } switch { case h.mode == modeComment: - return []key.Binding{k.Save, k.Newline, k.Cancel} - case h.armed > 0: - return []key.Binding{ - hint(k.NextHunk, firstKey(k.NextHunk), "next file"), - k.Comment, k.Send, k.Keys, k.Quit, + return []key.Binding{k.SaveComment, k.InsertNewline, k.Cancel} + case h.crossStep != 0: + b, label := k.NextHunk, "next file" + if h.crossStep < 0 { + b, label = k.PrevHunk, "prev file" } - case h.armed < 0: - return []key.Binding{ - hint(k.PrevHunk, firstKey(k.PrevHunk), "prev file"), - k.Comment, k.Send, k.Keys, k.Quit, - } - case h.visual: + return []key.Binding{hint(b, firstKey(b), label), k.Comment, k.Send, k.Keys, k.Quit} + case h.selecting: return []key.Binding{ k.Comment, hint(k.Down, k.Down.Help().Key, "extend"), @@ -368,18 +654,22 @@ func (h helpKeys) ShortHelp() []key.Binding { } case h.tab == tabPR: return []key.Binding{k.Down, k.OpenPR, k.Refresh, k.TabChanges, k.Keys, k.Quit} - case h.atFold: + case h.cursorOnFold || h.cursorInExpandedFold: + b, label := k.Expand, "expand fold" + if !h.cursorOnFold { + b, label = k.Collapse, "collapse fold" + } return []key.Binding{ - hint(k.Expand, firstKey(k.Expand), "expand fold"), + hint(b, firstKey(b), label), k.Comment, k.Send, k.NextHunk, k.Keys, k.Quit, } } return []key.Binding{k.Comment, k.Send, k.NextHunk, k.NextFile, k.Split, k.Keys, k.Quit} } -// FullHelp returns the columns of keys that ? shows. +// FullHelp returns the columns of keys shown by the ? key. func (h helpKeys) FullHelp() [][]key.Binding { - k := h.k + k := h.keys move := []key.Binding{ k.Down, k.HalfDown, k.NextHunk, k.NextFile, k.Focus, k.Collapse, k.GotoLine, } @@ -397,19 +687,23 @@ func (h helpKeys) FullHelp() [][]key.Binding { return [][]key.Binding{move, scopes, comments, view, other} } -// newHelp styles the footer with the terminal palette. +// helpGap separates the keys in the short help. The header uses the same +// gap between scopes. +const helpGap = " " + +// newHelp returns the footer help, styled with the terminal palette. func newHelp() help.Model { h := help.New() h.Styles.ShortKey, h.Styles.FullKey = boldStyle, boldStyle h.Styles.ShortDesc, h.Styles.FullDesc = dimStyle, dimStyle h.Styles.ShortSeparator, h.Styles.FullSeparator = dimStyle, dimStyle h.Styles.Ellipsis = dimStyle - h.ShortSeparator, h.FullSeparator = " ", " " + h.ShortSeparator, h.FullSeparator = helpGap, " " return h } -// firstKey returns the label of the first key of b, as herdr-reviewr -// shows it, or "". +// firstKey returns the on-screen label of the first key of b, or "" if b +// has no keys. func firstKey(b key.Binding) string { ks := b.Keys() if len(ks) == 0 { diff --git a/tui/model.go b/tui/model.go index 8a766b8..c337023 100644 --- a/tui/model.go +++ b/tui/model.go @@ -3,12 +3,18 @@ package tui import ( "cmp" "context" + "errors" "fmt" + "hash/fnv" "image/color" "log/slog" + "maps" + "runtime" "slices" "strconv" "strings" + "sync" + "sync/atomic" "time" "charm.land/bubbles/v2/help" @@ -20,41 +26,42 @@ import ( "github.com/rednafi/rexdiff/diff" "github.com/rednafi/rexdiff/internal/termtext" "github.com/rednafi/rexdiff/internal/turn" + "github.com/rednafi/rexdiff/internal/xctx" "github.com/rednafi/rexdiff/rex" "github.com/rednafi/rexdiff/update" "github.com/rednafi/rexdiff/vcs" ) -// tab is a tab of the program: Changes, Files, or PR. +// tab is one of the program's tabs: Changes, Files or PR. type tab int const ( tabChanges tab = iota - tabFiles + tabAllFiles tabPR ) -// scopeCommits compares the commits that the user picks. It is not a -// value of Config.DefaultScope. +// scopeCommits shows the commits that the user chooses in the commit +// picker. It cannot be used as the default scope. const scopeCommits Scope = "commits" -// scopes are the scopes in the order of the header. +// scopes lists the scopes in the order the header shows them. var scopes = [...]Scope{ScopeUncommitted, ScopeBranch, ScopeLastTurn, scopeCommits} -// label returns the name of the scope in the header. +// label returns the name that the header shows for s. func (s Scope) label() string { return strings.ReplaceAll(string(s), "-", " ") } -// mode tells which part of the screen takes the keys. +// mode says which part of the screen receives key presses. type mode int const ( modeNormal mode = iota modeComment modeOverlay - modeFind // the find band + modeFind // the find bar ) -// String returns the name of the mode, for the log. +// String returns the name of the mode, for logging. func (md mode) String() string { switch md { case modeNormal: @@ -69,307 +76,404 @@ func (md mode) String() string { return "mode(" + strconv.Itoa(int(md)) + ")" } -// pane is one view that scrolls and takes comments. It has the rendered -// lines and the source lines that they show. +// pane is a scrollable view that the user can comment on. It holds the +// rendered lines and the source rows they display. type pane struct { - lines []string - rows []diff.Row // rows[i] is the source line that lines[i] shows - diff *diff.Diff // the render for mouse hits, or nil for Markdown or PR - path string // the file of the rows, or "" for a pane with no comments - src []diff.Row // the source rows of rendered markdown, or nil - cur int // the row of the cursor - top int // the first row on the screen - anchor int // the start of the visual selection, or -1 - xoff int // the sideways scroll, in columns - note string // the text that shows if there are no lines - // free is true after the wheel moves the view. Then the cursor can - // be off the screen until the next key or click. - free bool -} - -// set shows lines, and rows tells which source lines they show. It keeps -// the cursor, the top, and the selection in the new lines. + // lines holds the lines of a pane without a diff. A pane with a diff + // renders each line from diff when it is first needed. Read lines + // through line and count. + lines []string + rows []diff.Row // rows[i] is the source line that line(i) displays + diff *diff.Diff // the rendered diff, which renders the lines and maps clicks; nil for Markdown or PR + path string // the file the rows come from, or "" if the pane takes no comments + srcRows []diff.Row // the source rows behind rendered Markdown, or nil + cur int // the cursor row + top int // the first row on screen + selStart int // the first row of the visual selection, or -1 + scrollX int // the horizontal scroll, in columns + note string // the text shown when there are no lines + renders int // incremented whenever the lines change, so cached find results can tell + // following is true while the view keeps the cursor on screen. The + // mouse wheel sets it to false, which lets the cursor go off screen + // until the next key press or click. + following bool +} + +// set replaces the lines and the source rows they display. It keeps the +// cursor, top row and selection within the new lines. func (p *pane) set(lines []string, rows []diff.Row) { - p.lines, p.rows, p.diff, p.src = lines, rows, nil, nil - p.cur = min(p.cur, max(len(lines)-1, 0)) - p.top = min(p.top, max(len(lines)-1, 0)) - if p.anchor >= len(rows) { // the file is shorter than before - p.anchor = -1 + p.lines, p.rows, p.diff, p.srcRows = lines, rows, nil, nil + p.renders++ + p.clamp() +} + +// clamp moves the cursor, top row and selection back within the lines. +func (p *pane) clamp() { + p.cur = min(p.cur, p.last()) + p.top = min(p.top, p.last()) + if p.selStart >= len(p.rows) { // the file got shorter + p.selStart = -1 + } +} + +// count returns the number of lines in the pane. +func (p *pane) count() int { + if p.diff != nil { + return len(p.diff.Rows) } + return len(p.lines) } -// cont reports whether line i continues the source line of the line above. +// last returns the index of the last line in the pane, or 0 if it has none. +func (p *pane) last() int { return max(p.count()-1, 0) } + +// line returns line i of the pane. With a diff, the line is rendered the +// first time it is needed. +func (p *pane) line(i int) string { + if p.diff != nil { + return p.diff.Line(i) + } + return p.lines[i] +} + +// cont reports whether line i is a continuation of the source line above +// it, as happens with wrapped lines. func (p *pane) cont(i int) bool { return i > 0 && i < len(p.rows) && p.rows[i].Continued } -// head returns the first line of the source line that line i shows. -func (p *pane) head(i int) int { +// lineStart returns the first pane line of the source line shown at line i. +func (p *pane) lineStart(i int) int { for p.cont(i) { i-- } return i } -// end returns the last line of the source line that line i shows. -func (p *pane) end(i int) int { +// lineEnd returns the last pane line of the source line shown at line i. +func (p *pane) lineEnd(i int) int { for p.cont(i + 1) { i++ } return i } -// toStart moves the cursor and the view to the first row. It clears the -// selection and the sideways scroll. -func (p *pane) toStart() { p.cur, p.top, p.anchor, p.xoff = 0, 0, -1, 0 } +// reset moves the cursor and view to the first row, and clears the +// selection and horizontal scroll. +func (p *pane) reset() { p.cur, p.top, p.selStart, p.scrollX = 0, 0, -1, 0 } -// setDiff shows the lines of d. +// setDiff makes the pane display d. func (p *pane) setDiff(d *diff.Diff) { - p.set(d.Lines, d.Rows) - p.diff = d + p.lines, p.rows, p.diff, p.srcRows = nil, d.Rows, d, nil + p.renders++ + p.clamp() } -// side tells which side column x of the screen is on, and if x is on a line -// number. -func (p *pane) side(x int) (s diff.Side, onNumber bool) { +// side returns the diff side at screen column x, and reports whether x is +// in the line number gutter. +func (p *pane) side(x int) (side diff.Side, onGutter bool) { if p.diff == nil { return diff.SideNew, false } return p.diff.SideAt(x) } -// changedFile is a changed file with its line counts and the hash of its -// old content, which names its folds. +// changedFile is a changed file with its added and deleted line counts +// and a hash of its old content. The hash identifies the file's folds. type changedFile struct { vcs.File - adds, dels int - oldHash uint64 + added, deleted int + oldHash uint64 +} + +// stat returns the counts of the added and deleted lines of f, such as +// "+3 -1". For a file that rexdiff does not diff, it says why. +func (f changedFile) stat() string { + switch { + case errors.Is(f.Err, vcs.ErrBinary): + return dimStyle.Render("binary") + case errors.Is(f.Err, vcs.ErrTooBig): + return dimStyle.Render("too large") + } + return addedStyle.Render(fmt.Sprintf("+%d", f.added)) + " " + + deletedStyle.Render(fmt.Sprintf("-%d", f.deleted)) } -// turnState is a turn of the agents in the repository. It keeps a -// snapshot of the working tree from the start of the turn. +// turnState describes an agent turn in the repository, with a snapshot of +// the working tree taken when the turn started. type turnState struct { - app string // the name of the first agent of the turn, for example "pi" - tree string // the snapshot at the start of the turn + app string // the name of the first agent in the turn, for example "pi" + tree string // the snapshot taken when the turn started running bool - at time.Time // the start of the turn + at time.Time // when the turn started } -// dragState is a drag of the left mouse button in the main pane. +// dragState tracks a drag with the left mouse button in the main pane. type dragState struct { - active bool // the button is down - moved bool // the cursor has left the start row - gutter bool // the drag starts on the line numbers - start int // the row where the drag starts - pref diff.Side // the side of the line numbers or the code at the start - // The screen line and the code column of the press and of the pointer. - row, x, toRow, toX int - link string // the URL under the press, or "" -} - -// draft is the comment that the user writes. It is a new comment, or an -// edit of the comment with ID editID. An edit from the comment list goes -// back to the list at row listRow. Else listRow is -1. + active bool // the button is held down + moved bool // the cursor has left the starting row + gutter bool // the drag started in the line number gutter + startRow int // the row where the drag started + prefer diff.Side // the diff side where the drag started + // The screen line and code column where the button was pressed and + // where the pointer is now. + startY, startX, endY, endX int + link string // the URL under the initial press, or "" +} + +// draft is the comment that the user is writing: either a new comment or +// an edit of the comment with ID editID. If the edit started from the +// comment list, itemRow is the list row to return to. Otherwise itemRow is +// -1. type draft struct { diff.Comment editID int - listRow int + itemRow int +} + +// changesTab holds the state of the Changes tab. +type changesTab struct { + files []changedFile + // tooMany is the number of changed files when there are too many to + // show, and 0 otherwise. + tooMany int + cur int // the index of the file being shown + navigator navigator + pane pane +} + +// allFilesTab holds the state of the Files tab. +type allFilesTab struct { + entries []vcs.Entry + fileCount int // how many entries are files, for the list title + more int // how many entries the list leaves out, past maxListedFiles + listing listState + listed bool // a read of the entries has finished, even if it failed + // jump is a jump to a file that waits for the entries to load, or nil. + jump *fileJump + cur int + navigator navigator + pane pane + // shownText and shownPath are the content and path of the file being + // shown, used to detect edits. shownErr is the error from reading it. + shownText, shownPath string + shownErr error } -// prState is the content of the PR tab. -type prState struct { - pr *vcs.PullRequest - err string +// prTab holds the state of the PR tab. +type prTab struct { + pr *vcs.PR + err string + fetch prFetch + pane pane + place *resumePane // the scroll position to restore in pane after a restart + detailsExpanded bool // whether the PR's
blocks are expanded } -// agentState is what the program knows about the agent in a block. +// agentState is what rexdiff knows about the agent in a Rex block. type agentState struct { app string // the name of the agent, for example "pi" - state rex.State // "" if the program sends no status - since time.Time // when Rex got the state + state rex.State // "" if the agent reports no status + since time.Time // when Rex received the state cwd string // the working directory, or "" if Rex does not know it - hasCwd bool // the program has the answer of Rex for cwd - asking bool // a question to Rex for cwd runs + hasCwd bool // Rex has answered the request for cwd + asking bool // a request to Rex for cwd is in progress } -// model is the state of the program. It implements tea.Model. +// model is the state of the program. It implements [tea.Model]. type model struct { - // ctx comes from Run. The methods of tea.Model have fixed signatures, - // so the model keeps ctx for its git and Rex calls. + // ctx comes from Run. The model stores it for git and Rex calls, + // because the tea.Model methods do not take a context. ctx context.Context repo *vcs.Repo rex *rex.Client // nil outside Rex log *slog.Logger - env []string // for the editor, the URL opener, and the clipboard + env []string // the environment for the editor, URL opener and clipboard cfg config keys keyMap - notice string // a problem that the footer shows, or "" + notice string // a problem to show in the footer, or "" - updater *update.Updater // nil if rexdiff cannot update itself - release *update.Release // a newer release, or nil - phase updatePhase - resumePath string // the file of the resume state for the restart, or "" + installer *update.Installer // nil if rexdiff cannot update itself + release *update.Release // a newer release, or nil + updatePhase updatePhase + resumePath string // the file that saves the state across a restart, or "" - // The size of the terminal. Until the terminal tells it, w and h are - // a guess, and sized is false. + // The terminal size. Until the terminal reports it, w and h are a + // guess and sized is false. w, h int sized bool bg, fg color.Color - red color.Color // the ANSI red of the terminal, or nil - green color.Color // the ANSI green of the terminal, or nil + red color.Color // the terminal's ANSI red, or nil + green color.Color // the terminal's ANSI green, or nil ticks int - // watch tells when the files or the refs change, or is nil. If it is - // nil, a tick reloads the current tab every reloadPoll, after polled. - // After a failure of the watcher, a tick starts it again. - watch *vcs.Watcher - polled time.Time - watchRetry retryTimer - // reloadOwed is true if a change is seen but the Changes tab does not - // show it yet. A reload waits until reloadAt, after the pause of the - // last one, and until the retry, after a failure. - reloadOwed bool - filesOwed bool // the same for the list of all files - reloadAt time.Time - reloadRetry retryTimer - loads reloads - // turnChecking is true while a check of the pending turn runs. + // watch reports changes to files and refs, or is nil. While it is + // nil, a tick reloads the current tab once reloadInterval has passed + // since polled. If the watcher fails, a later tick starts it again. + watch *vcs.Watcher + watchStarting bool // a command is starting the watcher + watching bool // a check of watch is in progress + // watchReset makes the next check call [vcs.Watcher.Reset] first. The + // check calls it in its command, because Reset waits for a check in + // progress. + watchReset bool + // watchedDirs and watchedFile are the expanded ignored directories and + // the open file of the Files tab that the last check covered. + watchedDirs []string + watchedFile string + polled time.Time + watchRetry retryTimer + // reloadPending is true if the Changes tab is not yet showing a + // change. The reload waits until reloadAt and, after a failure, until + // the retry. + reloadPending bool + allFilesPending bool // like reloadPending, for the Files tab + reloadAt time.Time + reloadRetry retryTimer + reloads reloadState + changesLoaded bool // the first reload has finished + // held is the input that waits for the tab to load; see holdInput. + held []tea.Msg + // resumeChanges and resumeFiles hold the state of the previous process + // after a restart, until the first reload and the first file list have + // loaded and its places are restored. Otherwise they are nil. + resumeChanges, resumeFiles *resumeState + // turnChecking is true while the pending turn is being checked. turnChecking bool - // turnGen counts the starts and the ends of the turns. A snapshot - // from before the last start or end is stale. + // turnGen counts turn starts and ends. A snapshot taken before the + // latest start or end is stale. turnGen int tab tab scope Scope - // folds has the folds that the user expands in the Changes tab, by path. - folds map[string]*openFolds - base string - // defaultBase is the default branch at the start, for the base picker. + // expandedFolds holds the folds that the user has expanded in the + // Changes tab, keyed by path. + expandedFolds map[string]*expandedFolds + base string + // defaultBase is the default branch found at startup, for the base + // picker. defaultBase string - // baseFlag is true if the base comes from the flag. Then the user - // cannot pick another. - baseFlag bool - from string // the commits scope: the oldest commit that the user picks - to string // the commits scope: the newest commit that the user picks - - // turn is the last turn that changes a file, or nil. The last-turn - // scope compares with it. pending is a turn that starts but changes - // no file yet, or nil. - turn, pending *turnState - // raced is true if the last turn starts too close to a write. Then - // its start snapshot can have the write, and the scope shows no turn. - raced bool - tracker turn.Tracker - // sampled is true after the first list of the agents. An edge before - // it can be wrong, so the tracker gets no states before it. - sampled bool - // After a failed list, a tick lists the agents again, as in - // herdr-reviewr. + // baseFromFlag is true if the base was set by a flag, in which case + // the user cannot choose another. + baseFromFlag bool + oldest string // the oldest commit chosen for the commits scope + newest string // the newest commit chosen for the commits scope + + // turn is the latest turn that changed a file, or nil. The last-turn + // scope compares against it. pendingTurn is a turn that has started + // but not yet changed a file, or nil. + turn, pendingTurn *turnState + // turnRaced is true if the last turn started too close to a file + // write. Its starting snapshot may then include that write, so the + // scope shows no turn. + turnRaced bool + tracker turn.Tracker + // agentsSampled is true once the agents have been listed for the + // first time. State changes seen before then may be wrong, so the + // tracker receives no states until then. + agentsSampled bool + // sampleRetry schedules the next agent listing after a failed one. sampleRetry retryTimer - // agentsGen counts the reconnects to Rex. A list of the agents with - // an older gen is from before a gap. + // agentsGen counts reconnections to Rex. An agent list with an older + // generation was taken before a disconnection. agentsGen int - // agentsHere points to true if an agent works in the repository. It - // is nil if the program does not know. - agentsHere *bool - memberDirs map[string]bool // the working directories of the members - ownsErr string // the last error of owns, which the log has - - changeFiles []changedFile // the Changes tab - changeSel int // the file that shows in the Changes tab - shownTrees string // the two trees of files, to notice a change - shownScope Scope // the scope of changeFiles - changeTree fileListTree - allFiles []vcs.Entry // the Files tab - allSel int - allTree fileListTree - // viewed and viewedPath are the content and the path in the Files - // tab, to notice edits. - viewed string - viewedPath string - readErr string // the last error of the read, which the log has - - changePane, allPane, prPane pane - pr prState - prf prFetch - prPlace *resumePane // prPane's place after a restart - prDetails bool // the PR
blocks are open - - split bool // show the diff side by side - wrap bool - rendered bool // show markdown rendered - listPos position - listHidden bool - focusList bool // the keys j and k move in the file list - // armed is 1 or -1 after a ] or a [ past the last change arms a - // crossing to the file at armedPath. Else it is 0. - armed int - armedPath string - // listW is the width of the file list at a side, in columns, or 0 for - // the default share of the width. - listW int - listPct int // the share of the body rows, above or below - cache diff.Cache // the syntax colours, for a fast sideways scroll + // agentInRepo points to true if an agent is in the repository, and to + // false if none is. It is nil until this is known. + agentInRepo *bool + ownsDir map[string]bool // the answers of owns, by directory + ownsErr string // the last error from owns, already logged + + changes changesTab + shownTrees string // the two trees being compared, used to detect a change + shownScope Scope // the scope that changes.files was loaded for + allFiles allFilesTab + readErr string // the last read error, already logged + pr prTab + + split bool // show the diff side by side + wrap bool + rendered bool // show Markdown rendered + navigatorPosition position + navigatorHidden bool + navigatorFocused bool // j and k move in the file list + // crossStep is 1 or -1 when ] or [ was pressed past the last change + // and the next press in the same direction will jump to the file at + // crossPath. Otherwise it is 0. + crossStep int + crossPath string + // navigatorWidthSet is the width in columns of the file list when it + // is at the left or right, or 0 for the default share of the width. + navigatorWidthSet int + navigatorPct int // the percentage of body rows used by the file list when above or below + cache diff.Cache // the highlighted lines and diff, reused between renders + colorsTicking bool // a colorsMsg is on its way; see [model.awaitColors] comments diff.Comments - editor textarea.Model - draft *draft - mode mode - overlay *overlay - // recent has the files that the user picks in the search in this - // session, the last pick first. + // commentFiles holds the files of the comments made outside the + // Changes tab, by path, so that checking whether a comment is stale + // reads its file again only after the file changes. + commentFiles map[string]fileCopy + commentInput textarea.Model + draft *draft + mode mode + overlay *overlay + // recent holds the files that the user opened from the search in this + // session, most recent first. recent []string - grepCancel context.CancelCauseFunc // stops the code search that runs - grepGen int // the last code search + grepCancel context.CancelFunc // stops the code search in progress + grepGen int // identifies the latest code search + fileGen int // identifies the latest search of file names find findState - findLines splitLines // the lines that find searches - md mdRenderer // the last markdown renderer + findSides sideLines // the lines that find searches + markdown markdownCache // the most recently used Markdown renderer drag dragState - click clickChain + click clickState help help.Model - status string - statusTill time.Time + flashText string + flashUntil time.Time - agents map[string]*agentState // by block - sends int // the steps of the sends that run - lastSent string // the block of the last send - beside string // the agent block beside the pane + agents map[string]*agentState // keyed by block + sends int // the number of send steps in progress + lastSent string // the block that the last review was sent to + beside string // the agent block in the pane beside rexdiff } -// newModel returns the model of the program with the options o and the -// settings cfg. +// newModel returns the program's model for the options o and the settings +// cfg. func newModel(ctx context.Context, o Options, cfg config) model { ta := textarea.New() ta.ShowLineNumbers = false ta.Prompt = "│ " ta.SetHeight(3) - ta.KeyMap.InsertNewline.SetKeys(defaultKeys().Newline.Keys()...) + ta.KeyMap.InsertNewline.SetKeys(defaultKeys().InsertNewline.Keys()...) m := model{ - ctx: ctx, - repo: o.Repo, - rex: o.Rex, - log: o.Log, - env: o.Env, - notice: o.Notice, - updater: o.Updater, - w: 120, - h: 40, - base: o.Base, - baseFlag: o.Base != "", - wrap: o.Wrap, - editor: ta, - help: newHelp(), - agents: map[string]*agentState{}, + ctx: ctx, + repo: o.Repo, + rex: o.Rex, + log: o.Log, + env: o.Env, + notice: o.Notice, + installer: o.Installer, + w: 120, + h: 40, + base: o.Base, + baseFromFlag: o.Base != "", + wrap: o.Wrap, + commentInput: ta, + help: newHelp(), + agents: map[string]*agentState{}, } if m.log == nil { m.log = slog.New(slog.DiscardHandler) } - // As in herdr-reviewr, the flag wins over the saved base, and a saved - // base that does not resolve does not count. + // The flag takes priority over the saved base. A saved base that does + // not resolve is ignored. + ctx, done := m.gitContext("startup") + defer done() if m.base == "" { if b := o.Repo.SavedBase(ctx); b != "" { - if _, err := o.Repo.Resolve(ctx, b); err == nil { + if _, err := o.Repo.ResolveRev(ctx, b); err == nil { m.base = b } } @@ -382,92 +486,109 @@ func newModel(ctx context.Context, o Options, cfg config) model { m.turn = &turnState{tree: tree} } if o.Rex != nil && o.Agent != "" { - // If Rex does not know the agent, the picker selects no agent - // first. The picker still lists all the agents. - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, rexTimeout, - fmt.Errorf("rex resolve: %v timeout: %w", rexTimeout, context.DeadlineExceeded)) - m.beside, _ = o.Rex.Resolve(ctx, o.Agent) - cancel(fmt.Errorf("rex resolve: done: %w", context.Canceled)) - cancelTimeout() - } - m.changePane.anchor, m.allPane.anchor, m.prPane.anchor = -1, -1, -1 + // If Rex does not know the agent, the picker starts with no agent + // selected, but still lists every agent. + ctx, cancel := xctx.WithTimeout(ctx, rexTimeout, "rex resolve") + m.beside, _ = o.Rex.ResolveBlock(ctx, o.Agent) + cancel() + } + m.changes.pane.selStart, m.allFiles.pane.selStart, m.pr.pane.selStart = -1, -1, -1 + m.followCursor() m.cfg = cfg m.keys = defaultKeys() m.keys.applyConfig(cfg.Keybindings) - m.listPos, m.listW, m.listPct = cfg.FileList, cfg.FileListWidth, listStackPct + m.navigatorPosition, m.navigatorWidthSet, m.navigatorPct = cfg.FileList, cfg.FileListWidth, navigatorStackPct m.rendered = cfg.MarkdownView == markdownViewRendered - // The flags win over the settings. + // Flags take priority over the settings. m.split = cmp.Or(o.Layout, cfg.Layout) == LayoutSplit m.scope = cmp.Or(o.Scope, cfg.DefaultScope) return m } -// These are the messages of the program. +// Messages used by the program. type ( - tickMsg struct{} + tickMsg struct{} + watchedMsg struct { + ch vcs.Change + err error + at time.Time // the tick that started the check + took time.Duration // how long the check took + // The expanded ignored directories and the open file of the Files + // tab that the check covered. + dirs []string + file string + } + + // reloadDueMsg reports that the pause after a reload has ended, so a + // change seen during the pause need not wait for the next tick. + reloadDueMsg struct{} + agentsMsg struct { agents []rex.Agent err error - send bool // true if the list is for a send, not to learn the states - gen int // the agentsGen at the start of the list + send bool // true if the list is for sending a review, not for updating states + gen int // the value of agentsGen when the listing started } sentMsg struct { agent rex.Agent - sent map[int]string // the texts of the sent comments, by ID + sent map[int]string // the text of each sent comment, keyed by ID err error } grepMsg struct { - gen int // the search whose result shows. Other searches are stale. + gen int // identifies the search; results of older searches are stale hits []vcs.Match - more bool // git finds more matches than hits has + more bool // git found more matches than hits holds err error } prMsg struct { - gen int // the read, see prFetch - pr *vcs.PullRequest + gen int // identifies the fetch; see prFetch + pr *vcs.PR err error } eventMsg rex.Event - // splitMsg is the answer of Rex to the split for the editor of path. - splitMsg struct { + // editorPaneMsg is the result of asking Rex to open a split for the + // editor of path. + editorPaneMsg struct { path, script string err error } - // cwdMsg is the answer of Rex for the working directory of an agent. + // cwdMsg is Rex's answer to a request for an agent's working + // directory. cwdMsg struct { block, cwd string err error } - // editorDoneMsg tells that the editor of path in this pane stops. + // editorDoneMsg reports that the editor for path, running in this + // pane, has exited. editorDoneMsg struct { path string err error } - // detachedMsg tells that a detached program, for what, fails. + // detachedMsg reports that a detached program failed. what describes + // the program's purpose. detachedMsg struct { what string err error } - // releaseMsg has a release that is newer than this rexdiff. + // releaseMsg carries a release that is newer than the running rexdiff. releaseMsg struct { release update.Release } - // updatedMsg reports the end of the update to the release. + // updatedMsg reports that the update to the new release has finished. updatedMsg struct { err error } ) // requestColors are the commands that ask the terminal for its colours. -// The replies change the tints of the diff. +// The replies set the colours used for the diff. var requestColors = []tea.Cmd{ tea.RequestBackgroundColor, tea.RequestForegroundColor, requestPalette, } -// tickInterval is the time between two ticks. +// tickInterval is the time between ticks. const tickInterval = time.Second // tick returns a command that sends a tickMsg after d. @@ -475,75 +596,79 @@ func tick(d time.Duration) tea.Cmd { return tea.Tick(d, func(time.Time) tea.Msg { return tickMsg{} }) } -// Init starts the ticks, asks for the colours of the terminal, and loads -// the pull request and the agents. +// Init starts the ticks and the watcher, asks the terminal for its +// colours, and loads the changes, the pull request and the agents. func (m *model) Init() tea.Cmd { - cmds := []tea.Cmd{tick(tickInterval), m.requestPR(true)} - // After a restart, the PR tab can show first. It tells that the read - // runs. + cmds := []tea.Cmd{tick(tickInterval), m.requestPR(true), m.startWatch(), m.startReload(), m.startFiles()} + // After a restart the PR tab may be the first tab shown, so render it + // now to show that loading is in progress. m.renderPR() cmds = append(cmds, requestColors...) if m.rex != nil { - cmds = append(cmds, m.listAgents(agentsMsg{})) + cmds = append(cmds, m.fetchAgents(agentsMsg{})) } - if m.updater != nil { - cmds = append(cmds, m.checkRelease()) + if m.installer != nil { + cmds = append(cmds, m.fetchRelease()) } return tea.Batch(cmds...) } -// flashTime is how long a flash shows in the footer. herdr-reviewr uses -// the same time. -const flashTime = 4 * time.Second +// flashTimeout is how long a flash message stays in the footer. +const flashTimeout = 4 * time.Second -// flash shows s in the footer for a short time. The text can come from Rex -// or from git, so flash quotes it if it has control characters. +// flash shows s in the footer for flashTimeout. It quotes s if it contains +// control characters, because s can come from Rex or git. func (m *model) flash(s string) { - m.status, m.statusTill = termtext.Quote(s), time.Now().Add(flashTime) + m.flashText, m.flashUntil = termtext.Quote(s), time.Now().Add(flashTimeout) } -// reload reads the changes of the scope again, even if the trees do not -// change. -// A reload that runs is then stale, because the view can change. -func (m *model) reload() { - l := &m.loads +// requestReload asks for the changes in the scope to be read again, even +// if the trees have not changed. Any reload in progress becomes stale. The +// watcher did not cause this reload, so its next check resets it. +func (m *model) requestReload() { + l := &m.reloads l.want, l.force, l.stale = true, true, l.running + m.watchReset = true } -// reloadIfChanged reads the changes of the scope again if the trees differ -// from the shown trees. -func (m *model) reloadIfChanged() { m.loads.want = true } +// requestReloadIfChanged asks for the changes in the scope to be read +// again if the trees differ from the ones shown. +func (m *model) requestReloadIfChanged() { m.reloads.want = true } -// reloads follows the reloads of the Changes tab. A reload runs git, so -// it runs in a command, one at a time. A request during a reload starts -// one more reload after it. -type reloads struct { - gen int // the reload whose result shows. Other reloads are stale. - running bool // the reload gen runs +// reloadState tracks reloads of the Changes tab. Each reload runs git in +// a command, one at a time. A request made during a reload starts another +// reload once it finishes. +type reloadState struct { + gen int // identifies the latest reload; results of older reloads are stale + running bool // reload gen is in progress want bool // a reload is due - // The due reload shows the changes, also for equal trees. + // The due reload shows the changes even if the trees are unchanged. force bool - // The view changes while the reload gen runs, so its result is old. + // The view changed while reload gen was running, so its result is + // out of date. stale bool } -// loadNow reads the changes at once, for the first screen. Nothing shows -// yet, so the wait blocks nothing. -func (m *model) loadNow() { - m.loads.gen++ - m.loads.want, m.loads.force = false, false - m.onChanges(m.reloadInput(true).run(m.ctx)) +// gitTimeout limits a short git command that runs on the UI goroutine, +// such as one that resolves a ref. +const gitTimeout = 5 * time.Second + +// gitContext returns a context for a short git command on the UI +// goroutine, which ends after gitTimeout. Call done when the command has +// finished. +func (m *model) gitContext(what string) (ctx context.Context, done func()) { + return xctx.WithTimeout(m.ctx, gitTimeout, what) } -// reloadTimeout is the longest time of a reload. A git that hangs then -// fails the reload, and the next tick tries again. +// reloadTimeout limits how long a reload can take. If git hangs, the +// reload fails and the next tick tries again. const reloadTimeout = time.Minute -// startReload returns a command for the reload that is due, if no reload -// runs. While the comment box is open, the reload waits until the box -// closes, as in herdr-reviewr. +// startReload returns a command for the due reload, or nil if none is due +// or one is already running. While the comment box is open, the reload +// waits until the box closes. func (m *model) startReload() tea.Cmd { - l := &m.loads + l := &m.reloads if !l.want || l.running || m.mode == modeComment { return nil } @@ -554,142 +679,171 @@ func (m *model) startReload() tea.Cmd { return func() tea.Msg { return in.run(ctx) } } -// reloadInput returns what a reload needs, copied from the model, so that -// the reload can run in a command. +// reloadInput copies what a reload needs from the model, so that the +// reload can run in a command. func (m *model) reloadInput(force bool) reloadInput { in := reloadInput{ - repo: m.repo, gen: m.loads.gen, scope: m.scope, - base: m.base, from: m.from, to: m.to, force: force, shown: m.shownTrees, - prev: make(map[string]changedFile, len(m.changeFiles)), + repo: m.repo, gen: m.reloads.gen, scope: m.scope, + base: m.base, oldest: m.oldest, newest: m.newest, force: force, shownTrees: m.shownTrees, + prevFiles: make(map[string]changedFile, len(m.changes.files)), } - for _, c := range m.changeFiles { - in.prev[c.Path] = c + for _, f := range m.changes.files { + in.prevFiles[f.Path] = f } switch { - case m.scope == scopeCommits && m.to == "": + case m.scope == scopeCommits && m.newest == "": in.note = "no commits picked: press " + firstKey(m.keys.CommitPick) + " to pick one or a range" case m.scope == ScopeLastTurn && m.turn == nil: - in.note = m.turnWaitMessage() + in.note = m.turnWaitNote() case m.scope == ScopeLastTurn: in.turnTree = m.turn.tree } return in } -// reloadInput is the input of a reload. note tells why there is nothing -// to compare, or is "". +// reloadInput is the input to a reload. note explains why there is +// nothing to compare, or is "". type reloadInput struct { - repo *vcs.Repo - gen int - scope Scope - base, from, to, note string - turnTree, shown string - force bool - prev map[string]changedFile // the shown files, by path + repo *vcs.Repo + gen int + scope Scope + base, oldest, newest, note string + turnTree, shownTrees string + force bool + prevFiles map[string]changedFile // the files currently shown, keyed by path } // changesMsg is the result of a reload. type changesMsg struct { - gen int - trees string // the two trees, as "from..to" - same bool // the trees are the shown trees, and the reload is not forced - files []changedFile - note string - err error - took time.Duration + gen int + trees string // the two trees, as "from..to" + unchanged bool // the trees match those shown and the reload was not forced + files []changedFile + note string + tooMany int // the number of changed files, if there are too many to show + err error + start time.Time // when the reload started + elapsed time.Duration // how long it took } -// run reads the changes of in. It counts the lines of each file that is -// not in in.prev with the same content. +// run reads the changes described by in. It counts added and deleted +// lines only for files whose content differs from in.prevFiles. func (in reloadInput) run(ctx context.Context) changesMsg { - start := time.Now() - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, reloadTimeout, - fmt.Errorf("reload: %v timeout: %w", reloadTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("reload: done: %w", context.Canceled)) - msg := changesMsg{gen: in.gen, note: in.note} + msg := changesMsg{gen: in.gen, note: in.note, start: time.Now()} + ctx, cancel := xctx.WithTimeout(ctx, reloadTimeout, "reload") + defer cancel() if msg.note == "" { - from, to, err := in.trees(ctx) - msg.trees, msg.err = from+".."+to, err - msg.same = err == nil && msg.trees == in.shown && !in.force - if err == nil && !msg.same { - msg.files, msg.err = in.changedFiles(ctx, from, to) + oldTree, newTree, err := in.trees(ctx) + msg.trees, msg.err = oldTree+".."+newTree, err + msg.unchanged = err == nil && msg.trees == in.shownTrees && !in.force + if err == nil && !msg.unchanged { + msg.files, msg.err = in.changes(ctx, oldTree, newTree) + } + if e, ok := errors.AsType[*vcs.TooManyFilesError](msg.err); ok { + msg.note, msg.tooMany, msg.err = fmt.Sprintf("%d files changed — too many to show", e.Count), e.Count, nil } } - msg.took = time.Since(start) + msg.elapsed = time.Since(msg.start) return msg } -// trees returns the IDs of the two trees that the Changes tab compares in -// the scope. -func (in reloadInput) trees(ctx context.Context) (from, to string, err error) { +// trees returns the IDs of the two trees that the Changes tab compares +// for the scope. +func (in reloadInput) trees(ctx context.Context) (oldTree, newTree string, err error) { switch in.scope { case scopeCommits: - if from, err = in.repo.ParentTree(ctx, in.from); err != nil { + if oldTree, err = in.repo.ParentTree(ctx, in.oldest); err != nil { return "", "", err } - to, err = in.repo.Tree(ctx, in.to) - return from, to, err + newTree, err = in.repo.Tree(ctx, in.newest) + return oldTree, newTree, err case ScopeLastTurn: - from = in.turnTree + oldTree = in.turnTree case ScopeBranch: - from, err = in.repo.MergeBaseTree(ctx, in.base) + oldTree, err = in.repo.MergeBaseTree(ctx, in.base) default: - from, err = in.repo.HeadTree(ctx) + oldTree, err = in.repo.HeadTree(ctx) } if err != nil { return "", "", err } - to, err = in.repo.Snapshot(ctx) - return from, to, err + newTree, err = in.repo.SnapshotTree(ctx) + return oldTree, newTree, err } -// changedFiles returns the changes from the tree from to the tree to, -// with their line counts. -func (in reloadInput) changedFiles(ctx context.Context, from, to string) ([]changedFile, error) { - files, err := in.repo.Diff(ctx, from, to) +// changes returns the changed files between oldTree and newTree, with +// their line counts. +func (in reloadInput) changes(ctx context.Context, oldTree, newTree string) ([]changedFile, error) { + files, err := in.repo.Diff(ctx, oldTree, newTree) if err != nil { return nil, err } out := make([]changedFile, len(files)) + var count []int // indexes of the files whose lines need counting for i, f := range files { c := &out[i] - if p, ok := in.prev[f.Path]; ok && p.Old == f.Old && p.New == f.New { - *c = p // the same change, so the counts stay - } else if f.Skip == nil { - c.adds, c.dels = diff.Count(f.Old, f.New) - c.oldHash = hash(f.Old) + if p, ok := in.prevFiles[f.Path]; ok && p.OldText == f.OldText && p.NewText == f.NewText { + *c = p // unchanged, so reuse the previous counts + } else if f.Err == nil { + count = append(count, i) } c.File = f } + // Count in parallel on all cores. Each goroutine writes only to its + // own elements of out, so no locking is needed. + var next atomic.Int64 + var wg sync.WaitGroup + for range min(runtime.GOMAXPROCS(0), len(count)) { + wg.Go(func() { + for k := int(next.Add(1)) - 1; k < len(count); k = int(next.Add(1)) - 1 { + c := &out[count[k]] + c.added, c.deleted = diff.CountLines(c.OldText, c.NewText) + c.oldHash = textHash(c.OldText) + } + }) + } + wg.Wait() return out, nil } -// onChanges shows the result of a reload. After a failure, the next tick -// tries again after a wait. As in herdr-reviewr, a failure keeps the files -// of the scope that show, and the error shows in their place only if no -// files show. A change of the view during the reload starts one more. +// textHash returns the 64-bit FNV-1a hash of s. +func textHash(s string) uint64 { + h := fnv.New64a() + _, _ = h.Write([]byte(s)) // writing to a hash.Hash never fails + return h.Sum64() +} + +// onChanges shows the result of a reload. After a failure, a later tick +// tries again after a delay. A failure keeps the files that are shown, and +// the error replaces them only if no files are shown. If the view changed +// during the reload, another reload starts. func (m *model) onChanges(msg changesMsg) { - l := &m.loads + l := &m.reloads if msg.gen != l.gen { return } l.running = false if l.stale || m.mode == modeComment { - // As in herdr-reviewr, the view does not change under the comment - // box. The reload runs again later. + // Do not change the view while the comment box is open. The reload + // runs again later. l.want, l.stale = true, false return } - m.reloadAt = time.Now().Add(reloadPauseFactor * msg.took) + // The first load reads files and objects that are not yet cached, so + // its duration says nothing about later reloads. After a failure, the + // retry delay applies instead. + m.reloadAt = time.Time{} + if m.changesLoaded && msg.err == nil { + m.reloadAt = msg.start.Add(min(reloadPauseFactor*msg.elapsed, maxReloadPause)) + } + m.changesLoaded = true m.retry(msg.err) note, err := msg.note, msg.err - if err == nil && note == "" && msg.same { + if err == nil && note == "" && msg.unchanged { return } - if err != nil && len(m.changeFiles) > 0 && m.shownScope == m.scope { + if err != nil && len(m.changes.files) > 0 && m.shownScope == m.scope { m.flash("refresh failed: " + err.Error()) return } @@ -698,112 +852,275 @@ func (m *model) onChanges(msg changesMsg) { } m.shownScope = m.scope if note != "" { - m.changePane.note, m.changeFiles, m.shownTrees = note, nil, "" - m.buildTrees() + // A note for too many files comes with the trees, so that the next + // reload of the same trees does nothing. + m.changes.pane.note, m.changes.files, m.shownTrees = note, nil, "" + m.changes.tooMany = msg.tooMany + if err == nil { + m.shownTrees = msg.trees + } + m.buildBothNavigators() m.renderChanges() return } - var selPath string - if f := m.selectedChange(); f != nil { - selPath = f.Path + var curPath string + if f := m.curChangedFile(); f != nil { + curPath = f.Path } - m.changeFiles = msg.files - m.shownTrees, m.changePane.note = msg.trees, "" - m.changeSel = slices.IndexFunc(m.changeFiles, func(c changedFile) bool { return c.Path == selPath }) - m.buildTrees() - if f := m.selectedChange(); f == nil || f.Path != selPath { - // Another file shows, so the cursor and the selection do not apply. - m.changePane.cur, m.changePane.top, m.changePane.anchor = 0, 0, -1 + m.changes.files, m.changes.tooMany = msg.files, 0 + m.shownTrees, m.changes.pane.note = msg.trees, "" + m.changes.cur = slices.IndexFunc(m.changes.files, func(f changedFile) bool { return f.Path == curPath }) + m.buildBothNavigators() + if f := m.curChangedFile(); f == nil || f.Path != curPath { + // A different file is now shown, so reset the cursor and the + // selection, but keep the horizontal scroll. + m.changes.pane.cur, m.changes.pane.top, m.changes.pane.selStart = 0, 0, -1 } - if len(m.changeFiles) == 0 { - m.changePane.note = "no changes" + if len(m.changes.files) == 0 { + m.changes.pane.note = "no changes" } m.renderChanges() } -// loadFiles reads the list of all files if the model does not have it. -func (m *model) loadFiles() { - if m.allFiles == nil { - m.readFiles() +// ensureAllFiles starts reading the entries of the Files tab if they +// have not been read yet. +func (m *model) ensureAllFiles() { + if m.allFiles.entries == nil { + m.allFiles.listing.want = true } } -// reloadFiles reads the list of all files again. -func (m *model) reloadFiles() { - m.filesOwed = false - m.readFiles() - m.refreshViewer() +// reloadAllFiles reads the shown file of the Files tab again, and starts +// reading the entries again. +func (m *model) reloadAllFiles() { + m.allFilesPending = false + m.allFiles.listing.want = true + m.reloadShownFile() } -// readFiles reads the list of all files. The selected file stays. On an -// error, it keeps the old list and shows the error. -func (m *model) readFiles() { - files, err := m.repo.Files(m.ctx) - if err != nil { - m.flash("refresh failed: " + err.Error()) - return +// listState tracks the reads of the entries of the Files tab. Each read +// runs git in a command, one at a time. A request made during a read +// starts another read once it finishes. +type listState struct { + gen int // identifies the latest read; results of older reads are stale + running bool // read gen is in progress + want bool // a read is due +} + +// maxListedFiles is the most entries that the Files tab lists. Building +// the tree of the file list takes time in proportion to the entries. +const maxListedFiles = 200_000 + +// filesMsg is the result of reading the entries of the Files tab. more +// counts the entries left out past maxListedFiles. +type filesMsg struct { + gen int + entries []vcs.Entry + more int + err error +} + +// startFiles returns a command for the due read of the entries of the +// Files tab, or nil if none is due or one is already running. While the +// comment box is open, the read waits until the box closes. +func (m *model) startFiles() tea.Cmd { + l := &m.allFiles.listing + if !l.want || l.running || m.mode == modeComment { + return nil } - var sel string - if m.allSel < len(m.allFiles) { - sel = m.allFiles[m.allSel].Path + l.gen++ + l.running, l.want = true, false + repo, ctx, gen := m.repo, m.ctx, l.gen + expanded := maps.Clone(m.allFiles.navigator.toggled) + return func() tea.Msg { + ctx, cancel := xctx.WithTimeout(ctx, reloadTimeout, "file list") + defer cancel() + es, err := repo.Files(ctx) + if err != nil { + return filesMsg{gen: gen, err: err} + } + es = withIgnored(repo, es, expanded) + more := max(len(es)-maxListedFiles, 0) + return filesMsg{gen: gen, entries: es[:len(es)-more], more: more} } - m.allFiles = m.withIgnored(files) - m.allSel = slices.IndexFunc(m.allFiles, func(e vcs.Entry) bool { return e.Path == sel }) - m.buildFileTree() } -// buildTrees makes the rows of the file lists after a change of the -// Changes tab. The Files tab marks the directories with a change. -func (m *model) buildTrees() { - m.buildChangeTree() - if m.allFiles != nil { - m.buildFileTree() +// fileJump is a jump to a line of a file in the Files tab. +type fileJump struct { + path string + side diff.Side + line int +} + +// onFiles shows the entries read for the Files tab, keeping the current +// file selected. On error, it keeps the old list and shows the error. It +// then does the jump that waited for the entries, if any. It returns the +// command that searches the new entries if the search is open. +func (m *model) onFiles(msg filesMsg) tea.Cmd { + l, af := &m.allFiles.listing, &m.allFiles + if msg.gen != l.gen { + return nil + } + l.running, af.listed = false, true + jump := af.jump + af.jump = nil + if msg.err != nil { + m.flash("file list failed: " + msg.err.Error()) + return nil + } + var cur string + if af.cur < len(af.entries) { + cur = af.entries[af.cur].Path + } + s := m.resumeFiles + if s != nil { + cur = s.FilePath + af.navigator.cur = -1 // put the list cursor on the current file + } + af.entries, af.more = msg.entries, msg.more + if af.entries == nil { + af.entries = []vcs.Entry{} // read, though empty + } + af.cur = slices.IndexFunc(af.entries, func(e vcs.Entry) bool { return e.Path == cur }) + m.buildAllFilesNavigator() + m.reloadShownFile() + if s != nil { + m.resumeFiles = nil + af.pane.restore(s.Viewer) + } + if jump != nil { + m.jumpToFile(jump.path, jump.side, jump.line) + } + if ov := m.overlay; ov != nil && ov.kind == overlaySearch { + ov.search.paths = searchPaths(af.entries) + cmd := m.findFiles() + ov.setSearchItems() + return cmd + } + return nil +} + +// buildBothNavigators rebuilds the rows of both file lists after the +// Changes tab changes, because the Files tab marks directories that +// contain changes. +func (m *model) buildBothNavigators() { + m.buildChangesNavigator() + if m.allFiles.entries != nil { + m.buildAllFilesNavigator() } } -// Update handles a message. After an update, Update restarts the program -// when no work can get lost. +// Update handles a message. After a self-update, it restarts the program +// once no work can be lost. func (m *model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - cmd := m.handle(msg) - if m.phase != phaseUpdated { - return m, cmd + var cmd tea.Cmd + if m.holdInput(msg) { + m.held = append(m.held, msg) + } else { + cmd = m.handleMsg(msg) + } + // Start any reload that handling the messages requested. + cmd = tea.Batch(cmd, m.releaseInput(), m.startReload(), m.startFiles()) + // The colours only draw the screen again, so they are not pending work. + colors := m.awaitColors() + if m.updatePhase != updateDone { + return m, tea.Batch(cmd, colors) + } + // The new process runs ticks and watcher checks itself, so they do + // not count as pending work. + hasPending := cmd != nil + switch msg.(type) { + case tickMsg, watchedMsg, reloadDueMsg: + hasPending = false + } + if m.restartIfUpdated(hasPending) { + return m, tea.Quit } - // The work of a tick runs again in the new process, so it is not - // pending work. - pending := cmd - if _, ok := msg.(tickMsg); ok { - pending = nil + return m, tea.Batch(cmd, colors) +} + +// waiting reports whether the shown tab is still loading the data that +// key presses act on: the first changes, or the first list of the Files +// tab. +func (m *model) waiting() bool { + switch m.tab { + case tabChanges: + return !m.changesLoaded + case tabAllFiles: + return !m.allFiles.listed } - if m.restartIfReady(pending) { - return m, tea.Quit + return false +} + +// holdInput reports whether Update must hold the input msg until the tab +// stops [model.waiting], as if the program were busy loading. Input is +// then handled in the order it came. A key that quits or switches tabs +// does not wait if no other input is held, so the user can leave a tab +// that loads slowly. +func (m *model) holdInput(msg tea.Msg) bool { + switch msg.(type) { + case tea.KeyPressMsg, tea.PasteMsg, tea.MouseClickMsg, tea.MouseMotionMsg, + tea.MouseReleaseMsg, tea.MouseWheelMsg: + default: + return false + } + if len(m.held) > 0 { + return true + } + if !m.waiting() { + return false } - return m, cmd + k, ok := msg.(tea.KeyPressMsg) + return !ok || m.mode != modeNormal || !key.Matches(k, m.keys.Quit, m.keys.QuitDiscard, + m.keys.TabChanges, m.keys.TabAllFiles, m.keys.TabPR) } -// handle does the work of Update. Update then checks for a restart. -func (m *model) handle(msg tea.Msg) tea.Cmd { - cmd := m.handleMsg(msg) - return tea.Batch(cmd, m.startReload()) +// releaseInput handles the held input, in order, until a tab is waiting +// again. +func (m *model) releaseInput() tea.Cmd { + var cmds []tea.Cmd + for len(m.held) > 0 && !m.waiting() { + msg := m.held[0] + m.held = m.held[1:] + cmds = append(cmds, m.handleMsg(msg)) + } + return tea.Batch(cmds...) } -// handleMsg handles msg. A reload that it asks for starts after it. +// handleMsg does the work of Update for msg. func (m *model) handleMsg(msg tea.Msg) tea.Cmd { var cmd tea.Cmd switch msg := msg.(type) { case changesMsg: m.onChanges(msg) + m.restoreChanges() + if wait := time.Until(m.reloadAt); wait > 0 { + cmd = tea.Tick(wait, func(time.Time) tea.Msg { return reloadDueMsg{} }) + } + case reloadDueMsg: + m.reloadIfDue() + case filesMsg: + cmd = m.onFiles(msg) + case fileSearchMsg: + m.onFileSearch(msg) + case watchStartedMsg: + m.onWatchStarted(msg) case turnStartMsg: cmd = m.onTurnStart(msg) case turnCheckMsg: cmd = m.onTurnCheck(msg) case tea.WindowSizeMsg: - m.click = clickChain{} + m.click = clickState{} m.w, m.h, m.sized = msg.Width, msg.Height, true m.rerender() case tea.FocusMsg: - m.reloadIfChanged() + m.requestReloadIfChanged() case tickMsg: cmd = tea.Batch(tick(tickInterval), m.onTick()) + case colorsMsg: + m.colorsTicking = false // Update asks for the next one + case watchedMsg: + cmd = m.onWatched(msg) case tea.BackgroundColorMsg: if !sameColor(m.bg, msg.Color) { m.bg = msg.Color @@ -828,6 +1145,8 @@ func (m *model) handleMsg(msg tea.Msg) tea.Cmd { m.onGrep(msg) case branchesMsg: m.onBranches(msg) + case commitsMsg: + m.onCommits(msg) case releaseMsg: m.release = &msg.release case updatedMsg: @@ -838,44 +1157,48 @@ func (m *model) handleMsg(msg tea.Msg) tea.Cmd { m.flash(msg.what + " failed: " + msg.err.Error()) case cwdMsg: cmd = m.onCwd(msg) - case splitMsg: - cmd = m.onSplit(msg) + case editorPaneMsg: + cmd = m.onEditorPane(msg) case tea.MouseClickMsg: + // Find the clicked row on the current screen first, then make the + // view follow the cursor. + cmd = m.onClick(msg.Mouse()) m.followCursor() - return m.onClick(msg.Mouse()) + m.scrollToCursor() + return cmd case tea.MouseMotionMsg: m.onDrag(msg.Mouse()) case tea.MouseReleaseMsg: - cmd = m.onMouseUp(msg.Mouse()) // the comment box can open below the screen + cmd = m.onMouseUp(msg.Mouse()) // may open the comment box, which can be off screen case tea.MouseWheelMsg: m.onWheel(msg.Mouse()) case tea.PasteMsg: cmd = m.onPaste(msg.Content) case tea.KeyPressMsg: - m.click = clickChain{} + m.click = clickState{} m.followCursor() return m.onKey(msg) } - m.ensureVisible() + m.scrollToCursor() return cmd } -// followCursor makes the panes keep the cursor on the screen again. A key -// or a click can move the cursor. +// followCursor makes every pane and file list keep its cursor on screen +// again. func (m *model) followCursor() { - m.changePane.free, m.allPane.free, m.prPane.free = false, false, false - m.changeTree.free, m.allTree.free = false, false + m.changes.pane.following, m.allFiles.pane.following, m.pr.pane.following = true, true, true + m.changes.navigator.following, m.allFiles.navigator.following = true, true } -// onKey gives a key to the part of the screen that takes the keys. +// onKey passes a key press to the part of the screen that has focus. func (m *model) onKey(msg tea.KeyPressMsg) tea.Cmd { - m.log.Debug("key", "key", msg.String(), "mode", m.mode, "scope", m.scope) - // As in herdr-reviewr, a key other than ], [, or esc drops an armed - // crossing. The keys of the prompt before a quit do not. - inQuit := m.mode == modeOverlay && m.overlay != nil && m.overlay.kind == overlayQuit + m.log.Debug("key", "key", m.loggedKey(msg), "mode", m.mode, "scope", m.scope) + // Any key other than ], [ or Esc cancels a pending jump to another + // file, except keys pressed in the quit prompt. + inQuit := m.overlay != nil && m.overlay.kind == overlayQuit step := key.Matches(msg, m.keys.NextHunk, m.keys.PrevHunk) if !inQuit && !step && msg.Code != tea.KeyEscape { - m.armed = 0 + m.crossStep = 0 } switch m.mode { case modeComment: @@ -888,16 +1211,36 @@ func (m *model) onKey(msg tea.KeyPressMsg) tea.Cmd { return m.updateNormal(msg) } -// onPaste adds text to the comment box or to the input of the overlay. +// loggedKey returns the name of the key press msg for the debug log. While +// the user types into the comment box or another text input, the log must +// not hold what they type, so it names only keys that type no text, such +// as enter, and gives "text" for the others. +func (m *model) loggedKey(msg tea.KeyPressMsg) string { + typing := m.mode == modeComment || m.mode == modeFind || + m.mode == modeOverlay && m.overlay != nil && m.overlay.hasInput() + if typing && msg.Text != "" { + return "text" + } + return msg.String() +} + +// onPaste inserts pasted text into the comment box, the overlay input or +// the find bar. Line breaks become \n; the one-line inputs turn them into +// spaces. func (m *model) onPaste(text string) tea.Cmd { + text = unixLines(text) switch { case m.mode == modeComment: - m.editor.InsertString(text) - case m.mode == modeOverlay && m.overlay != nil && m.overlay.kind == overlayGoto: + // The text area scrolls its view to the cursor only in Update. + var cmd tea.Cmd + m.commentInput, cmd = m.commentInput.Update(tea.PasteMsg{Content: text}) + m.scrollToCursor() + return cmd + case m.overlay != nil && m.overlay.kind == overlayGotoLine: if n, ok := pastedLine(text); ok { m.overlay.input.SetValue(n) } - case m.mode == modeOverlay && m.overlay != nil && m.overlay.hasInput(): + case m.overlay != nil && m.overlay.hasInput(): m.overlay.input.SetValue(m.overlay.input.Value() + text) return m.inputChanged() case m.mode == modeFind: @@ -906,171 +1249,251 @@ func (m *model) onPaste(text string) tea.Cmd { return nil } -// colorTicks is the interval of the requests for the colours of the -// terminal, in ticks of one second. +// unixLines replaces each \r\n and each lone \r in s with \n. Terminals +// often paste \r\n, which the inputs would otherwise read as two line +// breaks. +func unixLines(s string) string { + return strings.NewReplacer("\r\n", "\n", "\r", "\n").Replace(s) +} + +// colorTicks is how often, in one-second ticks, rexdiff asks the terminal +// for its colours. const colorTicks = 3 -// The waits of a reload, as in herdr-reviewr. +// Delays between reloads. const ( - // reloadPauseFactor sets the pause after a reload on a tick. The - // next reload waits this many times as long as the last one took. - // The pause of the watcher in vcs has the same value, but it is a - // different pause. Thus each package has its own constant. + // reloadPauseFactor sets the pause between reloads: the next reload + // starts this many times as long as the last one took after the start + // of the last one, but at most maxReloadPause after it, so reloading + // takes at most 1/reloadPauseFactor of the time. The watcher in vcs + // has its own pause. reloadPauseFactor = 20 - retryFirst = time.Second // the first wait after a failure - retryMax = time.Minute // the longest wait after a failure + maxReloadPause = 30 * time.Second + minRetryDelay = time.Second // the first delay after a failure + maxRetryDelay = time.Minute // the longest delay after a failure ) -// reloadPoll is the time between two reloads without a watcher, as in -// herdr-reviewr. -const reloadPoll = 5 * time.Second +// reloadInterval is the time between reloads when there is no watcher. +const reloadInterval = 5 * time.Second -// retryTimer tells when to try again after a failure. Each failure -// doubles the wait, from retryFirst to retryMax. +// retryTimer schedules the next attempt after a failure. Each failure +// doubles the delay, from minRetryDelay up to maxRetryDelay. type retryTimer struct { - at time.Time // the next try, or zero - wait time.Duration // the wait after the next failure, or 0 + at time.Time // the time of the next attempt, or zero + wait time.Duration // the delay to use after the next failure, or 0 } -// fail sets the next try after a failure at now. +// fail records a failure at now and schedules the next attempt. func (r *retryTimer) fail(now time.Time) { - w := max(r.wait, retryFirst) - r.at, r.wait = now.Add(w), min(2*w, retryMax) + w := max(r.wait, minRetryDelay) + r.at, r.wait = now.Add(w), min(2*w, maxRetryDelay) } -// due reports whether a try waits and its time is at or before now. +// due reports whether an attempt is scheduled at or before now. func (r *retryTimer) due(now time.Time) bool { return !r.at.IsZero() && !now.Before(r.at) } -// retry sets the wait before the next reload after the error err. Each -// failure doubles the wait, from 1 s to 60 s. A reload with no error -// clears the wait. +// retry schedules the next reload after the failure err, with a delay +// that doubles on each failure. A nil err clears the delay. func (m *model) retry(err error) { if err == nil { m.reloadRetry = retryTimer{} return } m.reloadRetry.fail(time.Now()) - m.reloadOwed = true + m.reloadPending = true } -// dropWatch drops the watcher after the error err. A tick starts it again -// after a wait. -func (m *model) dropWatch(err error) { +// stopWatch logs err and drops the watcher. A later tick starts it again +// after a delay. +func (m *model) stopWatch(err error) { m.log.Warn("watch failed", "err", err) m.watch = nil m.watchRetry.fail(time.Now()) } -// startWatch starts the watcher of the repository. -func (m *model) startWatch() error { - w, err := m.repo.Watch(m.ctx) - if err != nil { - return err +// watchStartedMsg carries a new watcher, or the error from starting it. +type watchStartedMsg struct { + w *vcs.Watcher + err error +} + +// startWatch returns a command that starts watching the repository for +// changes. Starting lists the files, which can take seconds in a large +// repository. +func (m *model) startWatch() tea.Cmd { + m.watchStarting = true + repo, ctx := m.repo, m.ctx + return func() tea.Msg { + ctx, cancel := xctx.WithTimeout(ctx, reloadTimeout, "watch start") + defer cancel() + w, err := repo.Watch(ctx) + return watchStartedMsg{w: w, err: err} } - m.watch, m.watchRetry.at = w, time.Time{} - return nil } -// watchChanges tells what the watcher sees. Without a watcher, it tells -// that both change every reloadPoll. After an error, it drops the watcher -// and tells that both change. -func (m *model) watchChanges() vcs.Change { - all := vcs.Change{Files: true, Refs: true} - now := time.Now() - if m.watch == nil && m.watchRetry.due(now) { - if err := m.startWatch(); err != nil { - m.dropWatch(err) - } +// onWatchStarted keeps the new watcher. After an error, a later tick +// tries again. +func (m *model) onWatchStarted(msg watchStartedMsg) { + m.watchStarting = false + if msg.err != nil { + m.stopWatch(msg.err) + return } - if m.watch == nil { - if now.Sub(m.polled) < reloadPoll { - return vcs.Change{} - } + m.watch, m.watchRetry.at = msg.w, time.Time{} +} + +// watchChanges reports the changes seen on a tick. With a watcher, it +// returns a command that checks the watcher, and onWatched handles the +// result. Only one check runs at a time, and a tick during a check sees no +// change. Without a watcher, it reports that both files and refs changed +// once every reloadInterval. While the watcher starts, it reports no +// change: the first check of the new watcher reports both kinds. +func (m *model) watchChanges() (vcs.Change, tea.Cmd) { + now := time.Now() + switch { + case m.watchStarting: + return vcs.Change{}, nil + case m.watch == nil && m.watchRetry.due(now): + return vcs.Change{}, m.startWatch() + case m.watch == nil && now.Sub(m.polled) < reloadInterval: + return vcs.Change{}, nil + case m.watch == nil: m.polled = now - return all + return vcs.Change{Files: true, Refs: true}, nil + case m.watching: + return vcs.Change{}, nil + } + m.watching = true + w, ctx, reset := m.watch, m.ctx, m.watchReset + m.watchReset = false + dirs, file := m.includedPaths() + paths := dirs + if file != "" { + paths = append(slices.Clip(dirs), file) + } + return vcs.Change{}, func() tea.Msg { + ctx, cancel := xctx.WithTimeout(ctx, reloadTimeout, "watch") + defer cancel() + w.Include(paths) + if reset { + w.Reset() + } + ch, err := w.Changed(ctx) + return watchedMsg{ch: ch, err: err, at: now, took: time.Since(now), dirs: dirs, file: file} } - m.watch.Show(m.shownPaths()) - ch, err := m.watch.Changed(m.ctx) - m.log.Debug("watch", "took", time.Since(now), "files", ch.Files, "refs", ch.Refs) - if err != nil { - m.dropWatch(err) - m.polled = now - return all +} + +// onWatched handles the result of a watcher check. After an error, it +// drops the watcher and treats both files and refs as changed. +func (m *model) onWatched(msg watchedMsg) tea.Cmd { + m.watching = false + m.log.Debug("watch", "took", msg.took, "files", msg.ch.Files, "refs", msg.ch.Refs) + if msg.err != nil { + m.stopWatch(msg.err) + m.polled = msg.at + return m.onChange(vcs.Change{Files: true, Refs: true}) } m.watchRetry = retryTimer{} - return ch + // The watcher misses writes made to a path before Include added it, so + // when the watched paths change, the Files tab rereads what the new + // paths cover: just the shown file if only the shown file is new, + // otherwise the file list as well. The reload waits while another tab + // is shown or the comment box is open. + sameDirs := slices.Equal(msg.dirs, m.watchedDirs) + if !sameDirs || msg.file != m.watchedFile { + switch { + case m.tab != tabAllFiles || m.mode == modeComment: + m.allFilesPending = true + case sameDirs: + m.reloadShownFile() + default: + m.reloadAllFiles() + } + } + m.watchedDirs, m.watchedFile = msg.dirs, msg.file + return m.onChange(msg.ch) } -// onTick reloads the current tab if the watcher sees a change. It -// returns the work of the tick. Update adds the next tick. +// onTick checks for changes and does the periodic work. Update schedules +// the next tick. func (m *model) onTick() tea.Cmd { m.ticks++ - ch := m.watchChanges() - var cmds []tea.Cmd - if ch.Files && m.pending != nil { - cmds = append(cmds, m.checkTurnLater(false)) + ch, check := m.watchChanges() + if check == nil { + check = m.onChange(ch) } - m.reloadOwed = m.reloadOwed || ch.Files || ch.Refs - m.filesOwed = m.filesOwed || ch.Files + cmds := []tea.Cmd{check} now := time.Now() - m.reloadDue() - if m.status != "" && now.After(m.statusTill) { - m.status = "" - } - // Without a watcher, each tick reports a change of the refs. Then only - // the poll reads the pull request. - if ch.Refs && m.watch != nil { - cmds = append(cmds, m.refsChanged()) + if m.flashText != "" && now.After(m.flashUntil) { + m.flashText = "" } - if m.rex != nil && !m.sampled && m.sampleRetry.due(now) { - m.sampleRetry.at = time.Time{} // one list at a time - cmds = append(cmds, m.listAgents(agentsMsg{})) + if m.rex != nil && !m.agentsSampled && m.sampleRetry.due(now) { + m.sampleRetry.at = time.Time{} // only one listing at a time + cmds = append(cmds, m.fetchAgents(agentsMsg{})) } - if m.tab == tabPR && time.Since(m.prf.polled) >= prPoll { + if m.tab == tabPR && time.Since(m.pr.fetch.polled) >= prInterval { cmds = append(cmds, m.requestPR(false)) } - if m.ticks%colorTicks == 0 { // follow the changes of the terminal theme + if m.ticks%colorTicks == 0 { // pick up changes to the terminal theme cmds = append(cmds, requestColors...) } return tea.Batch(cmds...) } -// reloadDue reloads the current tab if a change waits for it. On the -// Changes tab, a reload waits for the pause after the last one, and for -// the wait after a failure. As in herdr-reviewr, the view does not change -// while the comment box is open. -func (m *model) reloadDue() { +// onChange reloads the current tab if ch reports a change or one is +// pending. Each tick calls it once. +func (m *model) onChange(ch vcs.Change) tea.Cmd { + var cmds []tea.Cmd + if ch.Files && m.pendingTurn != nil { + cmds = append(cmds, m.scheduleTurnCheck(false)) + } + m.reloadPending = m.reloadPending || ch.Files || ch.Refs + m.allFilesPending = m.allFilesPending || ch.Files + m.reloadIfDue() + // Without a watcher, every tick reports a ref change, so leave the + // pull request to its own polling. + if ch.Refs && m.watch != nil { + cmds = append(cmds, m.reloadPR()) + } + return tea.Batch(cmds...) +} + +// reloadIfDue reloads the current tab if a change is pending. On the +// Changes tab, the reload also waits for the pause after the last reload +// and for any retry delay. Nothing is reloaded while the comment box is +// open. +func (m *model) reloadIfDue() { if m.mode == modeComment { return } now := time.Now() switch { - case m.tab == tabChanges && m.reloadOwed && !m.loads.running && + case m.tab == tabChanges && m.reloadPending && !m.reloads.running && !now.Before(m.reloadAt) && !now.Before(m.reloadRetry.at): - m.reloadOwed = false - m.reloadIfChanged() // onChanges sets reloadAt after the pause - case m.tab == tabFiles && m.filesOwed: - m.reloadFiles() // reloadFiles renders the file too - case m.tab == tabFiles && m.watch == nil: - m.refreshViewer() // without a watcher, each tick reads the file + m.reloadPending = false + m.requestReloadIfChanged() // onChanges sets the next reloadAt + case m.tab == tabAllFiles && m.allFilesPending: + m.reloadAllFiles() // also renders the shown file + case m.tab == tabAllFiles && m.watch == nil: + m.reloadShownFile() // without a watcher, every tick reads the file again } } -// cur returns the pane of the current tab. -func (m *model) cur() *pane { +// curPane returns the pane of the current tab. +func (m *model) curPane() *pane { switch m.tab { - case tabFiles: - return &m.allPane + case tabAllFiles: + return &m.allFiles.pane case tabPR: - return &m.prPane + return &m.pr.pane } - return &m.changePane + return &m.changes.pane } -// sameColor reports whether a and b are the same colour. Nil is the same -// only as nil. +// sameColor reports whether a and b are the same colour, ignoring alpha. +// A nil colour equals only another nil. func sameColor(a, b color.Color) bool { if a == nil || b == nil { return a == b diff --git a/tui/mouse.go b/tui/mouse.go index ea2d547..e7edad5 100644 --- a/tui/mouse.go +++ b/tui/mouse.go @@ -1,10 +1,5 @@ package tui -// The mouse works as in herdr-reviewr. Click or drag on the line numbers to -// comment on a line or a range. Drag on the code to copy it. Double-click -// to copy a word, and triple-click to copy a line. Click a file or a tab to -// open it. Double-click a file to copy its path. Click a link to open it. - import ( "strings" "time" @@ -19,17 +14,21 @@ import ( "github.com/rednafi/rexdiff/diff" ) -// onClick handles a press of a mouse button. +// onClick handles a mouse button press. Only the left button does +// anything. A click or drag in the gutter comments on lines, a drag over +// code copies it, and a double or triple click copies a word or a line. +// A click opens a file, tab or link, and a double click copies a file's +// path. func (m *model) onClick(mouse tea.Mouse) tea.Cmd { if mouse.Button != tea.MouseLeft { return nil } - m.armed = 0 // as a key does - if m.mode == modeOverlay && m.overlay != nil { + m.crossStep = 0 // a click cancels a pending file jump, as a key press does + if m.overlay != nil { return m.clickOverlay(mouse) } if m.mode == modeComment { - // A click does nothing while the comment box is open. + // Clicks are ignored while the comment box is open. return nil } if mouse.Y == 0 { @@ -41,31 +40,32 @@ func (m *model) onClick(mouse tea.Mouse) tea.Cmd { } return nil } - if y := mouse.Y - bodyY; y > m.bodyHeight() { // the footer, under the rule + if y := mouse.Y - bodyY; y >= m.shownBodyHeight() { // the footer return m.startUpdate() } - // The window of the next click starts after the work of this one, for - // example a copy. A slow copy then does not break a triple click. + // Time the next click from the end of this one, so that a slow copy + // does not break a triple click. defer func() { m.click.at = time.Now() }() - if m.inList(mouse.X, mouse.Y) { - if y := mouse.Y - m.listY(); y >= 1 { - r := m.listStart(m.listRows()) + y - 1 - if m.countClick(mouse) >= 2 { - if path := m.rowPath(r); path != "" { - m.copyChars(path) - return nil - } - } - m.clickRow(r) + if m.inNavigator(mouse.X, mouse.Y) { + y := mouse.Y - m.navigatorY() + if y < 1 { // the title + return nil } + r := m.navigatorStart(m.navigatorRows()) + y - 1 + double := m.countClick(mouse) >= 2 + if path := m.navigatorRowPath(r); double && path != "" { + m.copyWithCount(path) + return nil + } + m.clickNavigatorRow(r) return nil } return m.clickMain(mouse) } -// clickMain handles a press of the left button on the main pane. A click -// moves the cursor and starts a drag. A double or a triple click copies -// the text. +// clickMain handles a left button press in the main pane. A single click +// moves the cursor and starts a drag. A double or triple click copies +// text. func (m *model) clickMain(mouse tea.Mouse) tea.Cmd { h := m.mainHeight() y := mouse.Y - m.mainY() @@ -76,43 +76,42 @@ func (m *model) clickMain(mouse tea.Mouse) tea.Cmd { if y >= len(rowAt) || rowAt[y] < 0 { return nil } - p := m.cur() + p := m.curPane() x := mouse.X - m.mainX() - gutter if n := m.countClick(mouse); n >= 2 { if text := m.clickText(rowAt[y], x, n); text != "" { - m.copyChars(text) + m.copyWithCount(text) return nil } } - m.focusList = false + m.navigatorFocused = false link := "" - if p.diff == nil { // a markdown view or the PR tab - if url := linkAt(p.lines[rowAt[y]], x); isWebURL(url) { + if p.diff == nil { // rendered Markdown or the PR tab + if url := linkAt(p.line(rowAt[y]), x); isWebURL(url) { link = url } } - p.cur, p.anchor = p.head(rowAt[y]), -1 - if m.atFold() { + p.cur, p.selStart = p.lineStart(rowAt[y]), -1 + if m.cursorOnFold() { m.expandFold(p.rows[p.cur].Fold) return nil } - side, onNumber := p.side(x) + side, onGutter := p.side(x) m.drag = dragState{ - active: true, - start: p.cur, - gutter: onNumber, - pref: side, - row: rowAt[y], - x: x, - toRow: rowAt[y], - toX: x, - link: link, + active: true, + startRow: p.cur, + gutter: onGutter, + prefer: side, + startY: rowAt[y], + startX: x, + endY: rowAt[y], + endX: x, + link: link, } return nil } // linkAt returns the URL of the hyperlink at column x of line, or "". -// The markdown renderer puts a hyperlink on each link. func linkAt(line string, x int) string { w := ansi.StringWidth(line) if x < 0 || x >= w { @@ -123,20 +122,20 @@ func linkAt(line string, x int) string { return buf.CellAt(x, 0).Link.URL } -// inList reports whether the screen cell at column x and line y is on -// the file list. -func (m *model) inList(x, y int) bool { - lw, ly := m.listWidth(), m.listY() - return lw > 0 && x >= m.listX() && x < m.listX()+lw && y >= ly && y < ly+m.listRows() +// inNavigator reports whether the screen cell at column x and line y is +// inside the file list. +func (m *model) inNavigator(x, y int) bool { + lw, ly := m.navigatorWidth(), m.navigatorY() + return lw > 0 && x >= m.navigatorX() && x < m.navigatorX()+lw && y >= ly && y < ly+m.navigatorRows() } -// onDrag moves the cursor with a drag. A drag past the top or the bottom -// scrolls. +// onDrag moves the cursor to follow a drag. Dragging above or below the +// pane scrolls it. func (m *model) onDrag(mouse tea.Mouse) { if !m.drag.active || mouse.Button != tea.MouseLeft { return } - p := m.cur() + p := m.curPane() h := m.mainHeight() y := mouse.Y - m.mainY() switch { @@ -144,8 +143,8 @@ func (m *model) onDrag(mouse tea.Mouse) { p.top = max(p.top-1, 0) p.cur = p.top case y >= h: - p.top = min(p.top+1, max(len(p.lines)-1, 0)) - p.cur = max(min(p.top+h-1, len(p.lines)-1), 0) + p.top = min(p.top+1, p.last()) + p.cur = max(min(p.top+h-1, p.count()-1), 0) default: _, rowAt := m.mainLines(h, nil) for yy := min(y, len(rowAt)-1); yy >= 0; yy-- { @@ -155,41 +154,47 @@ func (m *model) onDrag(mouse tea.Mouse) { } } } - m.drag.toRow, m.drag.toX = p.cur, mouse.X-m.mainX()-gutter - p.cur = p.head(p.cur) // the drag moves by source lines - m.drag.moved = p.cur != m.drag.start - if m.drag.moved || m.drag.toX != m.drag.x { - m.click = clickChain{} // a drag is not a click + m.drag.endY, m.drag.endX = p.cur, mouse.X-m.mainX()-gutter + p.cur = p.lineStart(p.cur) // the cursor moves by whole source lines + m.drag.moved = p.cur != m.drag.startRow + if m.drag.moved || m.drag.endX != m.drag.startX { + m.click = clickState{} // a drag does not count as a click } } -// clickWindow is the longest time between the clicks of a double or a -// triple click, as in herdr-reviewr. -const clickWindow = 400 * time.Millisecond +// clickInterval is the longest time allowed between the clicks of a +// double or triple click. +const clickInterval = 400 * time.Millisecond + +// maxClicks is the most presses that a click sequence counts. It makes a +// triple click. +const maxClicks = 3 -// clickChain is the last press of the left button on text. -type clickChain struct { +// clickState records the last left button press on text. +type clickState struct { at time.Time x, y int - n int // the number of presses in the chain, up to 3 + n int // the number of presses in the sequence, up to maxClicks } -// countClick adds a press to the chain and returns the count. A press on -// another cell, or after [clickWindow], starts a new chain. The time of -// the chain is the end of the last press. +// countClick adds a press to the current click sequence and returns the +// number of presses in it. A press on a different cell, or after +// [clickInterval], starts a new sequence. The interval is measured from +// the end of the previous press. func (m *model) countClick(mouse tea.Mouse) int { c, now := m.click, time.Now() n := 1 - if c.n > 0 && c.x == mouse.X && c.y == mouse.Y && now.Sub(c.at) < clickWindow { - n = min(c.n+1, 3) + if c.n > 0 && c.x == mouse.X && c.y == mouse.Y && now.Sub(c.at) < clickInterval { + n = min(c.n+1, maxClicks) } - m.click = clickChain{at: now, x: mouse.X, y: mouse.Y, n: n} + m.click = clickState{at: now, x: mouse.X, y: mouse.Y, n: n} return n } -// rowPath returns the path of row r of the file list, or "". -func (m *model) rowPath(r int) string { - t := m.list() +// navigatorRowPath returns the file or directory path of row r in the +// file list, or "". +func (m *model) navigatorRowPath(r int) string { + t := m.curNavigator() if t == nil || r < 0 || r >= len(t.rows) { return "" } @@ -199,13 +204,13 @@ func (m *model) rowPath(r int) string { return t.rows[r].Dir } -// clickText returns the text that a click of count n copies at column x -// of line i of the main pane. A double click gives the word under x, and -// a triple click gives the source line. It returns "" off a word or on an -// empty line. +// clickText returns the text that n clicks copy at column x of line i in +// the main pane. A double click copies the word under x and a triple click +// copies the source line. It returns "" if x is not on a word or the line +// is empty. func (m *model) clickText(i, x, n int) string { line, char, ok := m.textAt(i, x) - if !ok || n >= 3 { + if !ok || n >= maxClicks { return line } runes := []rune(line) @@ -223,16 +228,16 @@ func (m *model) clickText(i, x, n int) string { return string(runes[s:e]) } -// textAt returns the source line that column x of line i of the main pane -// shows, and the index of the rune under x. A pane with no source shows -// its text on the screen. +// textAt returns the source line shown at column x of line i in the main +// pane, and the index of the rune under x. For a pane without a diff, +// line is the text as shown on screen. func (m *model) textAt(i, x int) (line string, char int, ok bool) { - p := m.cur() - if i < 0 || i >= len(p.lines) { + p := m.curPane() + if i < 0 || i >= p.count() { return "", 0, false } if p.diff == nil { - line = strings.TrimRight(ansi.Strip(p.lines[i]), " ") + line = strings.TrimRight(ansi.Strip(p.line(i)), " ") c := 0 for _, r := range line { if c += ansi.StringWidth(string(r)); x < c { @@ -242,75 +247,74 @@ func (m *model) textAt(i, x int) (line string, char int, ok bool) { } return line, char, true } - s, n, char, ok := p.diff.Cell(i, x) + side, n, char, ok := p.diff.Cell(i, x) if !ok { return "", 0, false } - if lines := diff.Lines(m.contentFor(p.path, s)); n <= len(lines) { + if lines := diff.SplitLines(m.contentFor(p.path, side)); n <= len(lines) { return lines[n-1], char, true } return "", 0, false } -// copyChars copies text and then shows the count of its characters, as -// herdr-reviewr does. -func (m *model) copyChars(text string) { +// copyWithCount copies text to the clipboard and shows how many +// characters were copied. It does nothing if text is empty. +func (m *model) copyWithCount(text string) { if text != "" { m.copyText(text, "copied "+plural(utf8.RuneCountInString(text), "char"), nil) } } -// onMouseUp ends a drag at mouse. As in herdr-reviewr, a release on the -// cell of the press opens the link there. A drag on the line numbers -// opens the comment box. A drag on the code copies the text from the -// press to the pointer. +// onMouseUp ends a drag at mouse. Releasing on the cell that was pressed +// opens the link there. A drag in the line number gutter opens the comment +// box. A drag over code copies the text from the press to the pointer. func (m *model) onMouseUp(mouse tea.Mouse) tea.Cmd { d := m.drag m.drag.active = false if d.active && d.link != "" && m.click.x == mouse.X && m.click.y == mouse.Y { - return m.browse(d.link, "link") + return m.openURL(d.link, "link") } - p := m.cur() - // A reload during the drag can make the pane shorter than the start. - if !d.active || d.start >= len(p.rows) { + p := m.curPane() + // A reload during the drag can leave the pane shorter than the + // starting row. + if !d.active || d.startRow >= len(p.rows) { return nil } - if d.gutter { // a drag on the line numbers opens the comment box + if d.gutter { if d.moved { - p.anchor = d.start + p.selStart = d.startRow } - return m.startComment(d.pref) + return m.openComment(d.prefer) } - m.copyChars(m.dragText(d)) + m.copyWithCount(m.dragText(d)) return nil } -// dragText returns the text of drag d on the code, as herdr-reviewr -// copies it. The text starts at the rune under the press and ends at the -// rune under the pointer, both included. A drag that ends on its start -// rune is a click, and gives "". +// dragText returns the code text covered by drag d, from the rune under +// the press to the rune under the pointer, inclusive. A drag that ends on +// the rune where it started counts as a click and returns "". func (m *model) dragText(d dragState) string { - p := m.cur() - a, b := d.row, d.toRow // rendered markdown gives the text on the screen - if p.src == nil { - a, b = p.head(a), p.head(b) + p := m.curPane() + a, b := d.startY, d.endY // rendered Markdown copies the text as shown on screen + if p.srcRows == nil { + a, b = p.lineStart(a), p.lineStart(b) } - _, ca, _ := m.textAt(d.row, d.x) - _, cb, _ := m.textAt(d.toRow, d.toX) + _, ca, _ := m.textAt(d.startY, d.startX) + _, cb, _ := m.textAt(d.endY, d.endX) if a > b || a == b && ca > cb { a, b, ca, cb = b, a, cb, ca } - // A reload during the drag can make the pane shorter than the drag. - if a == b && ca == cb || b >= len(p.lines) { + // A reload during the drag can leave the pane shorter than the drag. + if a == b && ca == cb || b >= p.count() { return "" } var lines []string - if p.src != nil { - for _, l := range p.lines[a : b+1] { + if p.srcRows != nil { + for _, l := range p.lines[a : b+1] { // rendered Markdown keeps its lines in p.lines lines = append(lines, strings.TrimRight(ansi.Strip(l), " ")) } } else { - lines = m.sourceLines(a, p.end(b), d.pref) + lines = m.sourceLines(a, p.lineEnd(b), d.prefer) } if len(lines) == 0 { return "" @@ -322,41 +326,41 @@ func (m *model) dragText(d dragState) string { return strings.Join(lines, "\n") } -// sourceLines returns the source lines of rows lo to hi of the current -// pane. It picks the side of each row as [model.target] does with pref. A -// row with no source line gives its text on the screen. -func (m *model) sourceLines(lo, hi int, pref diff.Side) []string { - p := m.cur() +// sourceLines returns the source lines for rows lo to hi of the current +// pane. It chooses the side of each row as [model.targetAt] does with +// prefer. For a row with no source line, it uses the text shown on +// screen. +func (m *model) sourceLines(lo, hi int, prefer diff.Side) []string { + p := m.curPane() var out []string - var src [2][]string // the lines of each side, read once + var src [2][]string // the lines of each side, split on first use for i := lo; i <= hi; i++ { if p.cont(i) { continue } - t := m.target(i, pref) - if t == nil { - if i < len(p.lines) { - out = append(out, strings.TrimRight(ansi.Strip(p.lines[i]), " ")) + target := m.targetAt(i, prefer) + if target == nil { + if i < p.count() { + out = append(out, strings.TrimRight(ansi.Strip(p.line(i)), " ")) } continue } - if src[t.side] == nil { - src[t.side] = diff.Lines(m.contentFor(p.path, t.side)) + if src[target.side] == nil { + src[target.side] = diff.SplitLines(m.contentFor(p.path, target.side)) } - if lines := src[t.side]; t.line-1 < len(lines) { - out = append(out, lines[t.line-1]) + if lines := src[target.side]; target.line-1 < len(lines) { + out = append(out, lines[target.line-1]) } } return out } -// wheelStep is the number of rows that one step of the wheel scrolls. +// wheelStep is the number of rows scrolled by one step of the mouse wheel. const wheelStep = 3 -// onWheel scrolls the overlay, the file list, or the main pane. As in -// herdr-reviewr, the wheel moves the view of the file list, of the main -// pane, and of the preview of the search, and not the cursor. In the other -// parts of an overlay, it moves the cursor. +// onWheel scrolls the overlay, the file list or the main pane. In the file +// list, the main pane and the search preview, the wheel scrolls the view +// without moving the cursor. Elsewhere in an overlay, it moves the cursor. func (m *model) onWheel(mouse tea.Mouse) { var d int switch mouse.Button { @@ -367,7 +371,7 @@ func (m *model) onWheel(mouse tea.Mouse) { default: return } - if ov := m.overlay; m.mode == modeOverlay && ov != nil { + if ov := m.overlay; ov != nil { _, _, y, _ := m.overlayBox() if pv := ov.search.preview; pv != nil && mouse.Y >= y+ov.search.previewY { pv.scroll(wheelStep * d) @@ -376,23 +380,24 @@ func (m *model) onWheel(mouse tea.Mouse) { ov.move(d) return } - if t := m.list(); t != nil && m.inList(mouse.X, mouse.Y) { - h := m.listRows() - top := m.listStart(h) + wheelStep*d - t.top, t.free = min(max(top, 0), max(len(t.rows)-(h-1), 0)), true + if t := m.curNavigator(); t != nil && m.inNavigator(mouse.X, mouse.Y) { + h := m.navigatorRows() - 1 // the first row is the title + t.top = clampTop(t.start(h)+wheelStep*d, len(t.rows), max(h, 1)) + t.following = false return } - p := m.cur() + p := m.curPane() h := m.mainHeight() - p.top = min(max(p.top+wheelStep*d, 0), max(len(p.lines)-h, 0)) - // The wheel moves the view and not the cursor. - p.free = true + p.top = clampTop(p.top+wheelStep*d, p.count(), h) + // Let the cursor go off screen until the next key press or click. + p.following = false } // clickOverlay handles a click while an overlay is open. A click outside -// the box closes the overlay. The prompt before a quit does not close. +// the box closes the overlay, unless it is the quit prompt. Clicking the +// selected item chooses it. func (m *model) clickOverlay(mouse tea.Mouse) tea.Cmd { - box, x, y, listY := m.overlayBox() + box, x, y, itemsY := m.overlayBox() w, h := lipgloss.Width(box), lipgloss.Height(box) inBox := mouse.X >= x && mouse.X < x+w && mouse.Y >= y && mouse.Y < y+h if !inBox { @@ -401,34 +406,33 @@ func (m *model) clickOverlay(mouse tea.Mouse) tea.Cmd { } return nil } - idx := mouse.Y - y - listY - if idx < m.overlay.rowsFrom || idx >= min(len(m.overlay.shown), m.overlay.rowsTo) || - !m.overlay.pickable(idx) { + idx := mouse.Y - y - itemsY + onItem := idx >= m.overlay.itemsLo && idx < min(len(m.overlay.shown), m.overlay.itemsHi) + if !onItem || !m.overlay.canHaveCursor(idx) { return nil } - if idx == m.overlay.cur { // a click on the selected row picks it - return m.chooseOverlay() + if idx == m.overlay.cur { + return m.choose() } m.overlay.cur = idx return nil } -// clickHeader does action a of a click on the header. +// clickHeader runs the action a of the clicked header item. func (m *model) clickHeader(a headerAction) tea.Cmd { switch { case a >= headerTabChanges && a <= headerTabPR: m.setTab(tab(a - headerTabChanges)) case a >= headerScope0 && a < headerBase: s := scopes[a-headerScope0] - if s == scopeCommits && m.to == "" { - m.openCommitPicker() - } else { - m.setScope(s) + if s == scopeCommits && m.newest == "" { + return m.openCommitPicker() } + m.setScope(s) case a == headerBase: return m.openBasePicker() case a == headerCommits: - m.openCommitPicker() + return m.openCommitPicker() case a == headerAgent: return m.startSend() } diff --git a/tui/nav.go b/tui/nav.go index b29f82b..f88f305 100644 --- a/tui/nav.go +++ b/tui/nav.go @@ -1,323 +1,498 @@ package tui import ( - "hash/fnv" "math" "slices" "strconv" "strings" + "time" - "charm.land/bubbles/v2/key" tea "charm.land/bubbletea/v2" "github.com/rednafi/rexdiff/diff" "github.com/rednafi/rexdiff/vcs" ) -// These are the steps of the keys that move or resize. +// Step sizes for the keys that scroll or resize. const ( - scrollStep = 8 // the sideways scroll, in columns - // listStep resizes the file list. It is in columns at a side, and in - // percent of the body rows above or below. - listStep = 4 + scrollStep = 8 // the horizontal scroll step, in columns + // navigatorWidthStep is the resize step for the file list: columns + // when it is at the left or right, and a percentage of the body rows + // when it is above or below. + navigatorWidthStep = 4 ) -// updateNormal handles a key when no box is open. As in herdr-reviewr, -// the key of QuitDiscard does nothing here. It only answers the prompt -// before a quit. +// updateNormal handles a key press when no box is open. It runs the +// handler of the key's action and then, unless the action keeps the view, +// scrolls the view to the cursor. func (m *model) updateNormal(msg tea.KeyPressMsg) tea.Cmd { - k := m.keys - var cmd tea.Cmd - switch { - case key.Matches(msg, k.Quit): - if m.comments.Len() > 0 { - m.openConfirmQuit() - return nil - } - return tea.Quit - case key.Matches(msg, k.Cancel): - m.escape() - case key.Matches(msg, k.Keys): - m.help.ShowAll = !m.help.ShowAll - default: - cmd = m.actionKey(msg) + a := m.keys.action(msg) + if a == nil { + m.scrollToCursor() + return nil + } + cmd := a.handle(m) + if !a.keepView { + m.scrollToCursor() } - m.ensureVisible() return cmd } -// escape drops one layer with each press, as in herdr-reviewr: the -// selection, then the armed crossing, then the list of all keys. -func (m *model) escape() { - if p := m.cur(); m.tab != tabPR { - switch { - case p.anchor >= 0: - p.anchor = -1 - return - case m.armed != 0: - m.armed = 0 - return - } +// colorsTick is how often the screen is drawn again while the shown file +// is being highlighted, so that lines drawn without colours get them +// soon. It is about one frame. +const colorsTick = 16 * time.Millisecond + +// colorsMsg asks for the screen to be drawn again, because lines that +// were drawn without colours may have them now. +type colorsMsg struct{} + +// awaitColors returns a command that sends colorsMsg after colorsTick if +// the last file shown with syntax highlighting is still being +// highlighted. It returns nil if it is not, or if a colorsMsg is already +// on its way. Update calls it after every message. +func (m *model) awaitColors() tea.Cmd { + if m.colorsTicking || !m.cache.Highlighting() { + return nil } - m.help.ShowAll = false + m.colorsTicking = true + return tea.Tick(colorsTick, func(time.Time) tea.Msg { return colorsMsg{} }) } -// actionKey gives a key to the handlers of the actions, by topic. The -// first handler that takes the key wins, as in one switch. -func (m *model) actionKey(msg tea.KeyPressMsg) tea.Cmd { - handlers := []func(tea.KeyPressMsg) (tea.Cmd, bool){ - m.scopeKey, - m.moveKey, - m.commentKey, - m.viewKey, +// onQuit quits, asking first if there are comments. +func (m *model) onQuit() tea.Cmd { + if m.comments.Len() > 0 { + m.openQuit() + return nil } - for _, handle := range handlers { - if cmd, ok := handle(msg); ok { - return cmd + return tea.Quit +} + +// onCancel undoes one thing per press: first the selection, then a +// pending jump to another file, then the full key list. +func (m *model) onCancel() tea.Cmd { + if p := m.curPane(); m.tab != tabPR { + switch { + case p.selStart >= 0: + p.selStart = -1 + return nil + case m.crossStep != 0: + m.crossStep = 0 + return nil } } + m.help.ShowAll = false return nil } -// scopeKey handles a key that changes the tab or the scope. It reports -// whether it takes the key. As in herdr-reviewr, the keys of the scopes -// and of the pickers do nothing on the PR tab. -func (m *model) scopeKey(msg tea.KeyPressMsg) (tea.Cmd, bool) { - k := m.keys - onPR := m.tab == tabPR && key.Matches(msg, k.ScopeUncommitted, k.ScopeBranch, - k.ScopeLastTurn, k.ScopeCommits, k.BasePick, k.CommitPick) - switch { - case onPR: - case key.Matches(msg, k.TabChanges): - m.setTab(tabChanges) - case key.Matches(msg, k.TabAllFiles): - m.setTab(tabFiles) - case key.Matches(msg, k.TabPR): - m.setTab(tabPR) - case key.Matches(msg, k.ScopeUncommitted): +// onKeys shows or hides the full key list. +func (m *model) onKeys() tea.Cmd { + m.help.ShowAll = !m.help.ShowAll + return nil +} + +// onTabChanges shows the Changes tab. +func (m *model) onTabChanges() tea.Cmd { + m.setTab(tabChanges) + return nil +} + +// onTabAllFiles shows the Files tab. +func (m *model) onTabAllFiles() tea.Cmd { + m.setTab(tabAllFiles) + return nil +} + +// onTabPR shows the PR tab. +func (m *model) onTabPR() tea.Cmd { + m.setTab(tabPR) + return nil +} + +// The scope and picker keys do nothing on the PR tab. + +// onScopeUncommitted shows the uncommitted changes. +func (m *model) onScopeUncommitted() tea.Cmd { + if m.tab != tabPR { m.setScope(ScopeUncommitted) - case key.Matches(msg, k.ScopeBranch): + } + return nil +} + +// onScopeBranch shows the changes on the branch. +func (m *model) onScopeBranch() tea.Cmd { + if m.tab != tabPR { m.setScope(ScopeBranch) - case key.Matches(msg, k.ScopeLastTurn): + } + return nil +} + +// onScopeLastTurn shows the changes made in the last agent turn. +func (m *model) onScopeLastTurn() tea.Cmd { + if m.tab != tabPR { m.setScope(ScopeLastTurn) - case key.Matches(msg, k.ScopeCommits) && m.to == "": - m.openCommitPicker() - case key.Matches(msg, k.ScopeCommits): - m.setScope(scopeCommits) - case key.Matches(msg, k.BasePick): - return m.openBasePicker(), true - case key.Matches(msg, k.CommitPick): - m.openCommitPicker() - default: - return nil, false } - return nil, true + return nil } -// moveKey handles a key that moves the cursor, the file selection, or -// the sideways scroll. The wrap is here because it ends the sideways -// scroll. moveKey reports whether it takes the key. -func (m *model) moveKey(msg tea.KeyPressMsg) (tea.Cmd, bool) { - k, p := m.keys, m.cur() - last := max(len(p.lines)-1, 0) - inList := m.focusList && m.tab != tabPR +// onScopeCommits shows the chosen commits. If no commits have been +// chosen, it opens the commit picker. +func (m *model) onScopeCommits() tea.Cmd { switch { - case key.Matches(msg, k.Focus) && m.listHiddenHere(): - // As in herdr-reviewr, tab shows a hidden list with the focus. - m.listHidden, m.focusList = false, true + case m.tab == tabPR: + case m.newest == "": + return m.openCommitPicker() + default: + m.setScope(scopeCommits) + } + return nil +} + +// onBasePick opens the base picker. +func (m *model) onBasePick() tea.Cmd { + if m.tab == tabPR { + return nil + } + return m.openBasePicker() +} + +// onCommitPick opens the commit picker. +func (m *model) onCommitPick() tea.Cmd { return m.openCommitPicker() } + +// onFocus moves focus between the file list and the main pane. If the +// file list is hidden, it shows it and gives it focus. +func (m *model) onFocus() tea.Cmd { + if m.navigatorHidden && m.tab != tabPR { + m.navigatorHidden, m.navigatorFocused = false, true m.rerender() - case key.Matches(msg, k.Focus): - m.focusList = !m.focusList - case key.Matches(msg, k.Down) && inList: - m.stepRow(1) - case key.Matches(msg, k.Down): - p.cur = min(p.end(p.cur)+1, last) - case key.Matches(msg, k.Up) && inList: - m.stepRow(-1) - case key.Matches(msg, k.Up): - p.cur = max(p.cur-1, 0) - case key.Matches(msg, k.PageDown): - p.cur = min(p.cur+m.mainHeight(), last) - case key.Matches(msg, k.PageUp): - p.cur = max(p.cur-m.mainHeight(), 0) - case key.Matches(msg, k.HalfDown): - p.cur = min(p.cur+m.mainHeight()/2, last) - case key.Matches(msg, k.HalfUp): - p.cur = max(p.cur-m.mainHeight()/2, 0) - case key.Matches(msg, k.NextHunk): - m.stepChange(1) - case key.Matches(msg, k.PrevHunk): - m.stepChange(-1) - case key.Matches(msg, k.NextFile): - m.stepFile(1) - case key.Matches(msg, k.PrevFile): - m.stepFile(-1) - case key.Matches(msg, k.Expand) && m.atDir(): - m.setDir(true) - case key.Matches(msg, k.Collapse) && m.atDir(): - m.setDir(false) - case key.Matches(msg, k.Expand) && m.atFold(): + return nil + } + m.navigatorFocused = !m.navigatorFocused + return nil +} + +// onDown moves the cursor down one line, or down one row in the file list. +func (m *model) onDown() tea.Cmd { + if m.navigatorFocused && m.tab != tabPR { + m.stepNavigatorRow(1) + } else { + m.moveCur(1) + } + return nil +} + +// onUp moves the cursor up one line, or up one row in the file list. +func (m *model) onUp() tea.Cmd { + if m.navigatorFocused && m.tab != tabPR { + m.stepNavigatorRow(-1) + } else { + m.moveCur(-1) + } + return nil +} + +// onPageDown moves the cursor down one screen. +func (m *model) onPageDown() tea.Cmd { return m.moveCur(m.mainHeight()) } + +// onPageUp moves the cursor up one screen. +func (m *model) onPageUp() tea.Cmd { return m.moveCur(-m.mainHeight()) } + +// onHalfDown moves the cursor down half a screen. +func (m *model) onHalfDown() tea.Cmd { return m.moveCur(m.mainHeight() / 2) } + +// onHalfUp moves the cursor up half a screen. +func (m *model) onHalfUp() tea.Cmd { return m.moveCur(-m.mainHeight() / 2) } + +// moveCur moves the cursor of the current pane by d rows, stopping at the +// first and last rows. A move down always leaves the cursor line. The +// cursor stays on the first row of a wrapped line, so a line taller than +// the screen scrolls instead: the view moves through its rows until it +// shows the end of the line going down, or its start going up. Moving up +// onto such a line shows its end. +func (m *model) moveCur(d int) tea.Cmd { + p := m.curPane() + h := max(m.mainHeight(), 1) + first, last := p.lineStart(p.cur), p.lineEnd(p.cur) + if end := last - h + 1; end > first { // the top row that shows the end of the line + top := min(max(p.top, first), end) + if d > 0 && top < end || d < 0 && top > first { + p.top, p.following = min(max(top+d, first), end), false + return nil + } + } + to := min(max(p.cur+d, 0), p.last()) + if d > 0 { + if last == p.last() { // no line below, so the view stays where it is + p.following = p.top <= first + return nil + } + to = max(to, last+1) + } + p.cur, p.following = to, true // the view follows the cursor again + if first, last := p.lineStart(to), p.lineEnd(to); d < 0 && last-first+1 > h { + p.cur, p.top, p.following = first, last-h+1, false + } + return nil +} + +// onNextHunk moves the cursor to the next hunk. +func (m *model) onNextHunk() tea.Cmd { + m.stepHunk(1) + return nil +} + +// onPrevHunk moves the cursor to the previous hunk. +func (m *model) onPrevHunk() tea.Cmd { + m.stepHunk(-1) + return nil +} + +// onNextFile shows the next file. +func (m *model) onNextFile() tea.Cmd { + m.stepFile(1) + return nil +} + +// onPrevFile shows the previous file. +func (m *model) onPrevFile() tea.Cmd { + m.stepFile(-1) + return nil +} + +// onExpand expands the directory or fold at the cursor. On the PR tab, it +// expands every
block. Otherwise, when lines are not wrapped, it +// scrolls right. +func (m *model) onExpand() tea.Cmd { + p := m.curPane() + switch { + case m.cursorOnDir(): + m.setDirExpanded(true) + case m.cursorOnFold(): m.expandFold(p.rows[p.cur].Fold) - case key.Matches(msg, k.Expand, k.Collapse) && m.tab == tabPR: - // As in herdr-reviewr, right opens all the
blocks of - // the PR tab, and left closes them. - m.prDetails = key.Matches(msg, k.Expand) + case m.tab == tabPR: + m.pr.detailsExpanded = true m.renderPR() - case key.Matches(msg, k.Expand) && !m.wrap: - p.xoff += scrollStep - m.rerender() - case key.Matches(msg, k.Collapse) && !m.wrap: - p.xoff = max(p.xoff-scrollStep, 0) + case !m.wrap: + p.scrollX += scrollStep m.rerender() - case key.Matches(msg, k.Wrap) && p.diff != nil: - // The wrap key works only on a diff, because rendered markdown - // has its own wrap. The sideways scroll works only without wrap. - m.wrap = !m.wrap - m.changePane.xoff, m.allPane.xoff = 0, 0 + } + return nil +} + +// onCollapse collapses the directory at the cursor, or the expanded fold +// at the cursor once the view is scrolled fully left. On the PR tab, it +// collapses every
block. Otherwise, when lines are not wrapped, +// it scrolls left. +func (m *model) onCollapse() tea.Cmd { + p := m.curPane() + switch { + case m.cursorOnDir(): + m.setDirExpanded(false) + case m.canCollapseFold(): + m.collapseFold() + case m.tab == tabPR: + m.pr.detailsExpanded = false + m.renderPR() + case !m.wrap: + p.scrollX = max(p.scrollX-scrollStep, 0) m.rerender() - default: - return nil, false } - return nil, true + return nil } -// commentKey handles a key that adds, changes, or sends comments. It -// reports whether it takes the key. -func (m *model) commentKey(msg tea.KeyPressMsg) (tea.Cmd, bool) { - k, p := m.keys, m.cur() +// onWrap turns wrapping of long diff lines on or off and resets the +// horizontal scroll. It does nothing outside a diff, because rendered +// Markdown does its own wrapping. +func (m *model) onWrap() tea.Cmd { + if m.curPane().diff == nil { + return nil + } + m.wrap = !m.wrap + m.changes.pane.scrollX, m.allFiles.pane.scrollX = 0, 0 + m.rerender() + return nil +} + +// onSelect starts a visual selection at the cursor, or clears the current +// one. +func (m *model) onSelect() tea.Cmd { + p := m.curPane() switch { - case key.Matches(msg, k.Select) && p.anchor >= 0: - p.anchor = -1 - case key.Matches(msg, k.Select): - if m.target(p.cur, diff.SideNew) != nil { - p.anchor = p.cur - } - case key.Matches(msg, k.Comment) && !m.focusList: - // As in herdr-reviewr, a new comment and a delete need the focus - // on the diff. - return m.startComment(diff.SideNew), true - case key.Matches(msg, k.Edit): - return m.editOrOpen(), true - case key.Matches(msg, k.Delete) && !m.focusList: - if c := m.commentAtCursor(); c != nil { - m.comments.Remove(c.ID) - m.flash("comment deleted") - } - case key.Matches(msg, k.NextComment): - m.stepComment(1) - case key.Matches(msg, k.PrevComment): - m.stepComment(-1) - case key.Matches(msg, k.Comments): - m.openCommentList() - case key.Matches(msg, k.Send): - return m.startSend(), true - case key.Matches(msg, k.Copy): - m.copyComments() - return nil, true - default: - return nil, false + case p.selStart >= 0: + p.selStart = -1 + case m.targetAt(p.cur, diff.SideNew) != nil: + p.selStart = p.cur } - return nil, true + return nil +} + +// onComment opens the comment box for a new comment. It does nothing +// while the file list has focus. +func (m *model) onComment() tea.Cmd { + if m.navigatorFocused { + return nil + } + return m.openComment(diff.SideNew) +} + +// onDelete deletes the comment on the cursor line. It does nothing while +// the file list has focus. +func (m *model) onDelete() tea.Cmd { + if m.navigatorFocused { + return nil + } + if c := m.curComment(); c != nil { + m.comments.Delete(c.ID) + m.flash("comment deleted") + } + return nil +} + +// onNextComment moves the cursor to the next comment. +func (m *model) onNextComment() tea.Cmd { + m.stepComment(1) + return nil +} + +// onPrevComment moves the cursor to the previous comment. +func (m *model) onPrevComment() tea.Cmd { + m.stepComment(-1) + return nil +} + +// onComments opens the comment list. +func (m *model) onComments() tea.Cmd { + m.openComments() + return nil +} + +// onSend starts sending the comments to an agent. +func (m *model) onSend() tea.Cmd { return m.startSend() } + +// onCopy copies the comments to the clipboard. +func (m *model) onCopy() tea.Cmd { + m.copyComments() + return nil +} + +// onSearch opens the search over file names and code. +func (m *model) onSearch() tea.Cmd { + m.ensureAllFiles() + m.openSearch() + return nil } -// viewKey handles a key that searches, changes the view, or opens or -// reloads something. It reports whether it takes the key. -func (m *model) viewKey(msg tea.KeyPressMsg) (tea.Cmd, bool) { - k := m.keys +// onFind opens the find bar. +func (m *model) onFind() tea.Cmd { return m.openFind() } + +// onGotoLine opens the go-to-line prompt. +func (m *model) onGotoLine() tea.Cmd { + m.openInput(overlayGotoLine, "go to line (:0 first, :$ last)", "") + return nil +} + +// onRendered switches a Markdown file between rendered and source views. +// It does nothing unless the current file is Markdown with text to render. +func (m *model) onRendered() tea.Cmd { + src, ok := m.markdownSource() switch { - case key.Matches(msg, k.Search): - m.loadFiles() - m.openSearch() - case key.Matches(msg, k.Find): - return m.openFind(), true - case key.Matches(msg, k.GotoLine): - m.openInput(overlayGoto, "go to line (:0 first, :$ last)", "") - case key.Matches(msg, k.Rendered): - // As in herdr-reviewr, m acts only on a markdown file with text. - src, ok := m.markdownSource() - switch { - case !ok: - case m.rendersNothing(src): - m.flash("nothing here renders") - default: - m.rendered = !m.rendered - m.rerender() - } - case key.Matches(msg, k.Split): - // As in herdr-reviewr, | acts only if the file can show in split - // at this width. Only a pane that is too narrow tells why. - shown := m.splitShown() - switch { - case shown || m.codeWidth() >= splitMinWidth && m.splitAllowed(): - m.split = !shown - m.rerender() - case m.splitAllowed(): - m.flash("too narrow for split") - } - case key.Matches(msg, k.NavigatorPosition): - m.moveList() - case key.Matches(msg, k.NavigatorHide): - m.hideList() - case key.Matches(msg, k.NavigatorGrow): - m.resizeList(listStep) - case key.Matches(msg, k.NavigatorShrink): - m.resizeList(-listStep) - case key.Matches(msg, k.OpenPR): - return m.openPR(), true - case key.Matches(msg, k.Refresh): - return m.refresh(), true - case m.release != nil && key.Matches(msg, k.Update): - return m.startUpdate(), true + case !ok: + case m.rendersNothing(src): + m.flash("nothing here renders") default: - return nil, false + m.rendered = !m.rendered + m.rerender() } - return nil, true + return nil } -// listHiddenHere reports whether the user hides the file list on this -// tab. The PR tab never hides it. -func (m *model) listHiddenHere() bool { return m.listHidden && m.tab != tabPR } +// onSplit switches the diff between the split and unified layouts. It +// turns split on only if the file allows it and the pane is wide enough. +// It shows a message only when the pane is too narrow. +func (m *model) onSplit() tea.Cmd { + shown := m.splitShown() + switch { + case shown || m.codeWidth() >= minSplitWidth && m.splitAllowed(): + m.split = !shown + m.rerender() + case m.splitAllowed(): + m.flash("too narrow for split") + } + return nil +} + +// onNavigatorPosition moves the file list to its next position. +func (m *model) onNavigatorPosition() tea.Cmd { + m.moveNavigator() + return nil +} + +// onNavigatorHide hides or shows the file list. +func (m *model) onNavigatorHide() tea.Cmd { + m.toggleNavigator() + return nil +} + +// onNavigatorGrow makes the file list larger. +func (m *model) onNavigatorGrow() tea.Cmd { + m.resizeNavigator(navigatorWidthStep) + return nil +} + +// onNavigatorShrink makes the file list smaller. +func (m *model) onNavigatorShrink() tea.Cmd { + m.resizeNavigator(-navigatorWidthStep) + return nil +} -// moveList moves the file list clockwise around the main pane. A hidden -// list does not move. -func (m *model) moveList() { - if m.listHiddenHere() { +// onUpdate starts updating to the newer release. It does nothing unless +// the footer is announcing one. +func (m *model) onUpdate() tea.Cmd { + if m.release == nil { + return nil + } + return m.startUpdate() +} + +// moveNavigator moves the file list clockwise around the main pane. A +// hidden file list does not move. +func (m *model) moveNavigator() { + if m.navigatorHidden && m.tab != tabPR { return } - m.listPos = m.listPos.next() + m.navigatorPosition = m.navigatorPosition.next() m.rerender() } -// hideList hides the file list and gives the focus to the main pane, or -// shows the list again. The PR tab does not hide it. -func (m *model) hideList() { +// toggleNavigator hides the file list and gives focus to the main pane, +// or shows the file list again. It does nothing on the PR tab. +func (m *model) toggleNavigator() { if m.tab == tabPR { return } - m.listHidden = !m.listHidden - if m.listHidden { - m.focusList = false + m.navigatorHidden = !m.navigatorHidden + if m.navigatorHidden { + m.navigatorFocused = false } m.rerender() } -// resizeList makes the file list larger by d, or smaller for a negative -// d. A hidden list keeps its size. -func (m *model) resizeList(d int) { - if m.listHiddenHere() { +// resizeNavigator grows the file list by d, or shrinks it if d is +// negative. A hidden file list keeps its size. +func (m *model) resizeNavigator(d int) { + if m.navigatorHidden && m.tab != tabPR { return } - if m.listPos.stacked() { - m.listPct = min(max(m.listPct+d, listMinPct), listMaxStackPct) + if m.navigatorPosition.stacked() { + m.navigatorPct = min(max(m.navigatorPct+d, minNavigatorPct), maxNavigatorStackPct) } else { - m.listW = m.clampSide(m.sideWidth() + d) + m.navigatorWidthSet = m.clampNavigatorWidth(m.navigatorSideWidth() + d) } m.rerender() } -// openPR opens the pull request in the browser, and tells it as -// herdr-reviewr does. -func (m *model) openPR() tea.Cmd { +// onOpenPR opens the pull request in the browser. +func (m *model) onOpenPR() tea.Cmd { pr := m.pr.pr if pr == nil || pr.URL == "" { return nil @@ -326,13 +501,13 @@ func (m *model) openPR() tea.Cmd { if pr.Forge == vcs.ForgeGitLab { kind = "MR" } - return m.browse(pr.URL, kind) + return m.openURL(pr.URL, kind) } -// browse opens url in the browser, and tells that it opened what, as -// herdr-reviewr does. -func (m *model) browse(url, what string) tea.Cmd { - wait, err := openURL(m.env, m.cfg, url) +// openURL opens url in the browser and shows a message naming what was +// opened. +func (m *model) openURL(url, what string) tea.Cmd { + wait, err := urlOpenerCmd(m.env, m.cfg, url) if err != nil { m.flash("open failed: " + err.Error()) return nil @@ -341,11 +516,11 @@ func (m *model) browse(url, what string) tea.Cmd { return wait } -// refresh reads the current tab again. -func (m *model) refresh() tea.Cmd { - m.reload() - if m.tab == tabFiles { - m.reloadFiles() +// onRefresh reloads the current tab. +func (m *model) onRefresh() tea.Cmd { + m.requestReload() + if m.tab == tabAllFiles { + m.reloadAllFiles() } if m.tab != tabPR { return nil @@ -355,206 +530,247 @@ func (m *model) refresh() tea.Cmd { return cmd } -// setTab shows tab t. +// setTab switches to tab t. func (m *model) setTab(t tab) { m.tab = t m.drag = dragState{} - // As in herdr-reviewr, the PR tab has no find band. + // The PR tab has no find bar. if t == tabPR { m.closeFind() } + if t != tabAllFiles { + // No other tab shows the file that the Files tab highlights. + m.cache.StopHighlighting() + } switch t { - case tabFiles: - if m.allFiles == nil || m.filesOwed { - m.reloadFiles() + case tabAllFiles: + if m.allFiles.entries == nil || m.allFilesPending { + m.reloadAllFiles() } case tabChanges: - m.reloadIfChanged() + m.requestReloadIfChanged() } - // The layout, the wrap, or the terminal colours can change in another - // tab. + // The layout, wrapping or terminal colours may have changed while + // another tab was shown. m.rerender() } -// setScope shows the Changes tab in scope s, from its first row. +// setScope switches to the Changes tab with scope s, starting at the +// first row. func (m *model) setScope(s Scope) { - // The files of the last scope do not show while the new one fails. - m.tab, m.scope, m.folds, m.shownTrees = tabChanges, s, nil, "" - m.reload() - m.changePane.toStart() - m.armed = 0 -} - -// atFold reports whether the cursor is on a fold of the Changes tab. -func (m *model) atFold() bool { - p := m.cur() + // If loading the new scope fails, the error replaces the files of + // the previous scope. + m.tab, m.scope, m.expandedFolds, m.shownTrees = tabChanges, s, nil, "" + m.cache.StopHighlighting() + m.requestReload() + m.changes.pane.reset() + m.crossStep = 0 +} + +// cursorOnFold reports whether the cursor is on a fold in the Changes tab. +func (m *model) cursorOnFold() bool { + p := m.curPane() return m.tab == tabChanges && p.cur < len(p.rows) && p.rows[p.cur].Fold.Lines > 0 } -// openFolds has the folds that the user expands in one file, as ranges of -// old line numbers. The old side does not change while the agent edits the -// file, so an edit keeps the lines of a range open. The ranges are for the -// old content with the hash Old. A different old content, for example -// after a commit, closes the ranges. -type openFolds struct { +// expandedFolds records the folds that the user has expanded in one file, +// as ranges of old line numbers, which stay valid while the agent edits +// the file. They apply only while the old content has the hash Old. The +// JSON names are used in the resume state. +type expandedFolds struct { Old uint64 `json:"old"` - Ranges [][2]int `json:"ranges"` // the first and the last line of each range -} - -// hash returns the 64-bit FNV-1a hash of s. -func hash(s string) uint64 { - h := fnv.New64a() - _, _ = h.Write([]byte(s)) // a hash.Hash does not fail - return h.Sum64() + Ranges [][2]int `json:"ranges"` // the first and last line of each range } -// expanded reports whether the lines of fold f of the file at path show. -// They show if the user expands the fold, or if a comment is on one of -// them. -func (m *model) expanded(path string, comments []*diff.Comment, f diff.Fold) bool { - // A fold that overlaps a range shows. An undo of a change next to a - // range makes a larger fold, which shows as a whole. - if o := m.folds[path]; o != nil && slices.ContainsFunc(o.Ranges, func(r [2]int) bool { - return f.Old <= r[1] && f.Old+f.Lines-1 >= r[0] +// foldExpanded reports whether the lines of fold in the file at path are +// shown. They are shown if the user expanded the fold or if one of the +// comments is on one of its lines. +func (m *model) foldExpanded(path string, comments []*diff.Comment, fold diff.Fold) bool { + // A fold that overlaps an expanded range is shown. Undoing a change + // next to a range creates a larger fold, which is then shown in full. + if o := m.expandedFolds[path]; o != nil && slices.ContainsFunc(o.Ranges, func(r [2]int) bool { + return fold.Old <= r[1] && fold.Old+fold.Lines-1 >= r[0] }) { return true } for _, c := range comments { - lo := f.New + lo := fold.New if c.Side == diff.SideOld { - lo = f.Old + lo = fold.Old } - if c.Path == path && c.Start < lo+f.Lines && c.End >= lo { + if c.Path == path && c.Start < lo+fold.Lines && c.End >= lo { return true } } return false } -// expandFold shows the lines of fold f in the Changes tab, and moves the -// cursor to the first of them. The selection stays on its lines. -func (m *model) expandFold(f diff.Fold) { - p := &m.changePane - file := m.selectedChange() - if file == nil { +// expandFold shows the hidden lines of fold in the Changes tab and moves +// the cursor to the first of them. The selection stays on the same lines. +func (m *model) expandFold(fold diff.Fold) { + p := &m.changes.pane + f := m.curChangedFile() + if f == nil { return } - if m.folds == nil { - m.folds = map[string]*openFolds{} + if m.expandedFolds == nil { + m.expandedFolds = map[string]*expandedFolds{} } - o := m.folds[file.Path] + o := m.expandedFolds[f.Path] if o == nil { - o = &openFolds{Old: file.oldHash} - m.folds[file.Path] = o + o = &expandedFolds{Old: f.oldHash} + m.expandedFolds[f.Path] = o } - o.Ranges = append(o.Ranges, [2]int{f.Old, f.Old + f.Lines - 1}) + o.Ranges = append(o.Ranges, [2]int{fold.Old, fold.Old + fold.Lines - 1}) m.rerender() - p.cur = max(p.rowOf(diff.SideNew, f.New), 0) + p.cur = max(p.rowOf(diff.SideNew, fold.New), 0) } -// listSel returns the index of the selected file in the file list. -func (m *model) listSel() int { - if m.tab == tabFiles { - return m.allSel +// cursorInExpandedFold reports whether the cursor is on a line of a fold +// that the user has expanded in the Changes tab. +func (m *model) cursorInExpandedFold() bool { + p := m.curPane() + f := m.curChangedFile() + if m.tab != tabChanges || f == nil || p.cur >= len(p.rows) { + return false } - return m.changeSel + o := m.expandedFolds[f.Path] + row := p.rows[p.cur] + line := row.Old + if o == nil || line == 0 || row.Kind != diff.KindEqual || row.Fold.Lines > 0 { + return false + } + return slices.ContainsFunc(o.Ranges, func(r [2]int) bool { return inRange(r, line) }) +} + +// canCollapseFold reports whether the collapse key would collapse the +// expanded fold at the cursor. That needs the cursor to be in an expanded +// fold and the view to be scrolled fully left. +func (m *model) canCollapseFold() bool { + return m.curPane().scrollX == 0 && m.cursorInExpandedFold() } -// pickFile selects file i of the file list of the current tab. The -// cursor of the list goes to the row of the file, if the row shows. The -// pick drops an armed crossing. -func (m *model) pickFile(i int) { - if t := m.list(); t != nil { +// collapseFold hides the expanded lines around the cursor again and moves +// the cursor to the fold that replaces them. A fold with a comment on it +// stays open. The caller must check canCollapseFold first. +func (m *model) collapseFold() { + p := m.curPane() + f := m.curChangedFile() + o := m.expandedFolds[f.Path] + line := p.rows[p.cur].Old + o.Ranges = slices.DeleteFunc(o.Ranges, func(r [2]int) bool { return inRange(r, line) }) + if len(o.Ranges) == 0 { + delete(m.expandedFolds, f.Path) + } + p.selStart = -1 // the selection could end inside the new fold + m.rerender() + if i := slices.IndexFunc(p.rows, func(r diff.Row) bool { return foldHas(r.Fold, diff.SideOld, line) }); i >= 0 { + p.cur = i + } +} + +// curFileIndex returns the index of the current file in the current tab. +func (m *model) curFileIndex() int { + if m.tab == tabAllFiles { + return m.allFiles.cur + } + return m.changes.cur +} + +// setCurFile selects file i in the current tab. If the file's row is +// visible in the file list, the list cursor moves to it. Any pending jump +// to another file is cancelled. +func (m *model) setCurFile(i int) { + if t := m.curNavigator(); t != nil { if r := t.rowOf(i); r >= 0 { t.cur = r } } - m.armed = 0 + m.crossStep = 0 switch m.tab { case tabChanges: - if i < 0 || i >= len(m.changeFiles) { + if i < 0 || i >= len(m.changes.files) { return } - m.changeSel = i - m.changePane.toStart() + m.changes.cur = i + m.changes.pane.reset() m.renderChanges() - case tabFiles: - if i < 0 || i >= len(m.allFiles) { + case tabAllFiles: + if i < 0 || i >= len(m.allFiles.entries) { return } - m.allSel = i - m.allPane.toStart() - m.renderViewer() + m.allFiles.cur = i + m.allFiles.pane.reset() + m.renderAllFiles() } m.drag = dragState{} } -// stepChange moves the cursor to the next (d = 1) or the previous (d = -1) -// block of changed rows, as in herdr-reviewr. Past the last block, one -// press arms a crossing to the next file with a change in that direction. -// A second press the same way crosses, and lands on the first block in -// that direction. A selection holds the cursor. -func (m *model) stepChange(d int) { - armed := m.armed == d - m.armed = 0 - p := &m.changePane - if m.tab != tabChanges || p.anchor >= 0 { +// stepHunk moves the cursor to the next (d = 1) or previous (d = -1) hunk. +// When there are no more hunks in that direction, the first press arms a +// jump to the nearest file with changes, and a second press in the same +// direction opens that file at its first hunk in that direction. It does +// nothing while a selection is active. +func (m *model) stepHunk(d int) { + armed := m.crossStep == d + m.crossStep = 0 + p := &m.changes.pane + if m.tab != tabChanges || p.selStart >= 0 { return } - if i := changeRow(p.rows, p.cur, d); i >= 0 { + if i := nextHunkRow(p.rows, p.cur, d); i >= 0 { p.cur = i return } - target := m.crossTarget(d) + target := m.crossFile(d) if !armed { if target >= 0 { - m.armed, m.armedPath = d, m.changeFiles[target].Path + m.crossStep, m.crossPath = d, m.changes.files[target].Path } return } - // A reload can drop the armed file. - isArmed := func(f changedFile) bool { return f.Path == m.armedPath } - if i := slices.IndexFunc(m.changeFiles, isArmed); i >= 0 { + // A reload may have removed the target file or changed its index. + crossing := func(f changedFile) bool { return f.Path == m.crossPath } + if i := slices.IndexFunc(m.changes.files, crossing); i >= 0 { target = i } if target < 0 { return } - m.pickFile(target) + m.setCurFile(target) from := -1 if d < 0 { from = len(p.rows) } - p.cur = max(changeRow(p.rows, from, d), 0) + p.cur = max(nextHunkRow(p.rows, from, d), 0) } -// changeRow returns the first row of a block of changed rows, or -1. It -// starts at row from and goes in the direction d. A d of 1 finds the next -// block, and a d of -1 finds the previous block. -func changeRow(rows []diff.Row, from, d int) int { - isChange := func(i int) bool { +// nextHunkRow returns the first row of the next (d = 1) or previous +// (d = -1) hunk after row from, or -1 if there is none. +func nextHunkRow(rows []diff.Row, from, d int) int { + isChanged := func(i int) bool { k := rows[i].Kind - return k == diff.KindInsert || k == diff.KindDelete || k == diff.KindChange + return k == diff.KindAdded || k == diff.KindDeleted || k == diff.KindChanged } for i := from + d; i >= 0 && i < len(rows); i += d { - if isChange(i) && (i == 0 || !isChange(i-1)) { + if isChanged(i) && (i == 0 || !isChanged(i-1)) { return i } } return -1 } -// crossTarget returns the index of the nearest file in direction d that -// has a changed line, or -1. It goes in the order of the rows of the file -// list, from the row of the file that shows. -func (m *model) crossTarget(d int) int { - t := &m.changeTree - from := t.rowOf(m.changeSel) +// crossFile returns the index of the nearest file in direction d that has +// a changed line, or -1. It follows the order of the file list, starting +// from the row of the shown file. +func (m *model) crossFile(d int) int { + t := &m.changes.navigator + from := t.rowOf(m.changes.cur) if from < 0 { from = t.cur } for r := t.nextFile(from, d); r >= 0; r = t.nextFile(r, d) { - if i := t.rows[r].File; m.changeFiles[i].adds+m.changeFiles[i].dels > 0 { + if i := t.rows[r].File; m.changes.files[i].added+m.changes.files[i].deleted > 0 { return i } } @@ -562,12 +778,11 @@ func (m *model) crossTarget(d int) int { } // stepComment moves the cursor to the next (d = 1) or previous (d = -1) -// comment of the open file, by row. It wraps around in the file. As in -// herdr-reviewr, n and N step only through the comments on the rows that -// show. +// comment in the open file, in row order, wrapping around at the ends. It +// skips comments whose lines are not shown. func (m *model) stepComment(d int) { - p := m.cur() - a := m.anchor() + p := m.curPane() + a := m.curAnchor() var stops []int // the first row of each comment for _, c := range m.comments.All() { if c.Anchor != a || c.Path != p.path || p.path == "" { @@ -588,89 +803,111 @@ func (m *model) stepComment(d int) { k = i - 1 } } - m.focusList = false - p.cur, p.anchor = stops[k], -1 + m.navigatorFocused = false + p.cur, p.selStart = stops[k], -1 } -// jumpToComment shows comment c in the tab of its anchor. +// jumpToComment shows comment c in the tab that it was made on. func (m *model) jumpToComment(c *diff.Comment) { if c.Anchor.InDiff { m.jumpTo(c.Path, c.Side, c.Start) - return + } else { + m.jumpToFile(c.Path, c.Side, c.Start) } - m.jumpToFile(c.Path, c.Side, c.Start) + m.jumpToNearLine(c) } // jumpTo shows path with the cursor on line. It uses the Changes tab if -// the file has changes, else the Files tab. -func (m *model) jumpTo(path string, s diff.Side, line int) { +// the file has changes, and the Files tab otherwise. +func (m *model) jumpTo(path string, side diff.Side, line int) { inChanges := func(f changedFile) bool { return f.Path == path } - if i := slices.IndexFunc(m.changeFiles, inChanges); i >= 0 { + if i := slices.IndexFunc(m.changes.files, inChanges); i >= 0 { m.tab = tabChanges + m.cache.StopHighlighting() m.revealFile(path) - m.pickFile(i) - m.openFoldAt(s, line) - cursorToLine(&m.changePane, s, line) + m.setCurFile(i) + m.expandFoldAt(side, line) + jumpToLine(&m.changes.pane, side, line) return } - m.jumpToFile(path, s, line) + m.jumpToFile(path, side, line) } -// openFoldAt opens the fold of the Changes tab that has line on side s. -func (m *model) openFoldAt(s diff.Side, line int) { - for _, r := range m.changePane.rows { - if f := r.Fold; f.Lines > 0 && line >= foldStart(f, s) && line <= foldEnd(f, s) { - m.expandFold(f) +// expandFoldAt expands the fold in the Changes tab that hides line on +// side. +func (m *model) expandFoldAt(side diff.Side, line int) { + for _, r := range m.changes.pane.rows { + if foldHas(r.Fold, side, line) { + m.expandFold(r.Fold) return } } } // jumpToFile shows path in the Files tab with the cursor on line. -func (m *model) jumpToFile(path string, s diff.Side, line int) { - m.loadFiles() - i := slices.IndexFunc(m.allFiles, func(e vcs.Entry) bool { return e.Path == path }) +func (m *model) jumpToFile(path string, side diff.Side, line int) { + if m.allFiles.entries == nil { + // Jump once the entries have loaded. + m.ensureAllFiles() + m.allFiles.jump = &fileJump{path, side, line} + return + } + i := slices.IndexFunc(m.allFiles.entries, func(e vcs.Entry) bool { return e.Path == path }) if i < 0 { m.flash("no such file: " + path) return } - m.tab = tabFiles + m.tab = tabAllFiles m.revealFile(path) - m.pickFile(i) - if s == diff.SideOld { // the Files tab shows only the new side + m.setCurFile(i) + if side == diff.SideOld { // the Files tab shows only the new side m.flash("the removed line is not in the file now") return } - cursorToLine(&m.allPane, diff.SideNew, line) + jumpToLine(&m.allFiles.pane, diff.SideNew, line) } -// cursorToLine puts the cursor of p on the row that shows line on side s. -func cursorToLine(p *pane, s diff.Side, line int) { - if i := p.rowOf(s, line); i >= 0 { +// jumpToLine moves the cursor of p to the row that shows line on side. It +// does nothing if no row shows it. +func jumpToLine(p *pane, side diff.Side, line int) { + if i := p.rowOf(side, line); i >= 0 { p.cur = i } } -// rowOf returns the first row of p that shows line on side s, or -1. In -// rendered markdown, a line in a block is on the first row of the block, -// as in gotoLine. -func (p *pane) rowOf(s diff.Side, line int) int { - i := slices.IndexFunc(p.rows, func(r diff.Row) bool { return r.Line(s) == line }) - if i < 0 && p.src != nil && slices.ContainsFunc(p.src, func(r diff.Row) bool { return r.Line(s) == line }) { - return p.head(lineRow(p.rows, s, line)) +// rowOf returns the first row of p that shows line on side, or -1. In +// rendered Markdown, a line inside a block maps to the first row of the +// block, as in gotoLine. +func (p *pane) rowOf(side diff.Side, line int) int { + shows := func(r diff.Row) bool { return r.Line(side) == line } + if i := slices.IndexFunc(p.rows, shows); i >= 0 { + return i + } + i := slices.IndexFunc(p.srcRows, shows) + if i < 0 { + return -1 } - return i + // Rendered Markdown shows only the new side. An old line maps to the + // first new line from it on, or to the last new line before it. + newLine := 1 + if j := slices.IndexFunc(p.srcRows[i:], func(r diff.Row) bool { return r.New > 0 }); j >= 0 { + newLine = p.srcRows[i+j].New + } else { + for _, r := range p.srcRows[:i] { + newLine = max(newLine, r.New) + } + } + return p.lineStart(lineRow(p.rows, diff.SideNew, newLine)) } -// gotoLine moves the cursor to the line in text, as herdr-reviewr does. -// text is digits or "$" for the last line. The line is clamped to the -// file, so "0" is the first line. The line numbers are of the new side, -// or of the old side if no row has a new line. gotoLine opens the fold -// that has the line. In rendered markdown, the cursor goes to the block -// of the line. Without line numbers, text is the row on the screen. +// gotoLine moves the cursor to the line number in text: digits, clamped to +// the file, or "$" for the last line. The number is on the new side if any +// row has one, else the old side, or a row number in a pane without line +// numbers. It expands a fold that hides the line, and in rendered Markdown +// goes to the line's block. func (m *model) gotoLine(text string) { - p := m.cur() - n, ok := lineNumber(text) + p := m.curPane() + n, ok := parseLineNum(text) if !ok || len(p.rows) == 0 { return } @@ -688,14 +925,14 @@ func (m *model) gotoLine(text string) { } n = min(max(n, 1), last) if m.tab == tabChanges { - m.openFoldAt(side, n) + m.expandFoldAt(side, n) } - p.cur = p.head(lineRow(p.rows, side, n)) + p.cur = p.lineStart(lineRow(p.rows, side, n)) } -// lineRow returns the row of line on side. If no row has the line, it -// returns the first row with a larger line, else the last row with a -// line. +// lineRow returns the row that shows line on side. If no row shows it, it +// returns the first row with a larger line number or, failing that, the +// last row that has a line number on side. func lineRow(rows []diff.Row, side diff.Side, line int) int { if i := slices.IndexFunc(rows, func(r diff.Row) bool { return r.Line(side) == line }); i >= 0 { return i @@ -711,25 +948,35 @@ func lineRow(rows []diff.Row, side diff.Side, line int) int { return len(rows) - 1 } -// foldStart returns the first line of fold f on side. -func foldStart(f diff.Fold, side diff.Side) int { +// foldStart returns the first line that fold hides on side. +func foldStart(fold diff.Fold, side diff.Side) int { if side == diff.SideOld { - return f.Old + return fold.Old } - return f.New + return fold.New } -// foldEnd returns the last line of fold f on side, or 0 for no fold. -func foldEnd(f diff.Fold, side diff.Side) int { - if f.Lines == 0 { +// foldEnd returns the last line that fold hides on side, or 0 if fold is +// empty. +func foldEnd(fold diff.Fold, side diff.Side) int { + if fold.Lines == 0 { return 0 } - return foldStart(f, side) + f.Lines - 1 + return foldStart(fold, side) + fold.Lines - 1 } -// lineNumber returns the line in s, the text of the go-to-line prompt. "$" -// gives the largest int. ok is false if s is not digits or "$". -func lineNumber(s string) (n int, ok bool) { +// foldHas reports whether fold hides line on side. +func foldHas(fold diff.Fold, side diff.Side, line int) bool { + return fold.Lines > 0 && line >= foldStart(fold, side) && line <= foldEnd(fold, side) +} + +// inRange reports whether line is in the range r of expanded lines, +// including both ends. +func inRange(r [2]int, line int) bool { return line >= r[0] && line <= r[1] } + +// parseLineNum parses s, the text of the go-to-line prompt. "$" returns +// the largest int. ok is false unless s is all digits or "$". +func parseLineNum(s string) (n int, ok bool) { if s == "$" { return math.MaxInt, true } @@ -738,13 +985,13 @@ func lineNumber(s string) (n int, ok bool) { } n, err := strconv.Atoi(s) if err != nil { - n = math.MaxInt // too many digits + n = math.MaxInt // too many digits for an int } return n, true } -// isLineKey reports whether the go-to-line prompt takes the key msg. It -// takes a digit, "$", and the keys that move in the text or delete. +// isLineKey reports whether the go-to-line prompt accepts msg: a digit, +// "$", or a key that moves the text cursor or deletes. func isLineKey(msg tea.KeyPressMsg) bool { if msg.Mod&^tea.ModShift != 0 { return false @@ -756,11 +1003,11 @@ func isLineKey(msg tea.KeyPressMsg) bool { return len(msg.Text) == 1 && strings.ContainsAny(msg.Text, "0123456789$") } -// pastedLine returns the line in pasted text for the go-to-line prompt. -// It removes the quotes, the brackets, and the punctuation around the -// text. ok is false if the rest is not digits or "$". +// pastedLine extracts a line number from text pasted into the go-to-line +// prompt. It strips surrounding quotes, brackets and punctuation. ok is +// false unless what remains is all digits or "$". func pastedLine(text string) (line string, ok bool) { line = strings.Trim(strings.TrimSpace(text), "`'\"“”‘’()[]<>:.,;") - _, ok = lineNumber(line) + _, ok = parseLineNum(line) return line, ok } diff --git a/tui/navigator.go b/tui/navigator.go new file mode 100644 index 0000000..b410d4c --- /dev/null +++ b/tui/navigator.go @@ -0,0 +1,337 @@ +package tui + +// The navigator is the file list. It shows the files of a tab as a tree of +// directories, and its cursor moves over both directories and files. The +// main pane shows the last file that the cursor was on. + +import ( + "slices" + "strings" + + "github.com/rednafi/rexdiff/internal/tree" + "github.com/rednafi/rexdiff/vcs" +) + +// navigator is the file list of a tab. +type navigator struct { + entries []tree.Entry + rows []tree.Row + cur int // the cursor row + // top is the first row on screen. It moves only as far as needed to + // keep the cursor visible. following is true while the view keeps the + // cursor on screen. The mouse wheel sets it to false, which lets the + // cursor go off screen until the next key press or click. + top int + following bool + // expandAll is true if directories start expanded. toggled holds the + // directories that the user has switched away from that default. + expandAll bool + toggled map[string]bool +} + +// build rebuilds the rows from es. The cursor stays on the same directory +// or file. If that row is gone, or the cursor is -1, the cursor moves to +// the file with index cur or, failing that, to the first file. +func (t *navigator) build(es []tree.Entry, expandAll bool, cur int) { + var dir, path string + if t.cur >= 0 && t.cur < len(t.rows) { + if r := t.rows[t.cur]; r.File < 0 { + dir = r.Dir + } else { + path = t.entries[r.File].Path + } + } + t.entries, t.expandAll = es, expandAll + t.rows = tree.Build(es, t.toggled, expandAll) + t.cur = slices.IndexFunc(t.rows, func(r tree.Row) bool { + if r.File < 0 { + return dir != "" && r.Dir == dir + } + return path != "" && es[r.File].Path == path + }) + if t.cur < 0 { + t.cur = t.rowOf(cur) + } + if t.cur < 0 { + t.cur = t.nextFile(-1, 1) + } + t.cur = max(t.cur, 0) +} + +// scrollToCursor scrolls a list h rows high as little as possible so that +// the cursor is visible. If the list is not following the cursor, it only +// keeps top within the rows. +func (t *navigator) scrollToCursor(h int) { + h = max(h, 1) + if t.following { + t.top = keepInView(t.top, t.cur, h) + } + t.top = t.start(h) +} + +// keepInView returns the new top row of a view h rows high, moved as +// little as possible from top so that row cur is visible. h must be at +// least 1. +func keepInView(top, cur, h int) int { return min(cur, max(top, cur-h+1)) } + +// clampTop clamps top for a view h rows high over n rows, keeping the last +// screen full when possible. +func clampTop(top, n, h int) int { return max(min(top, n-h), 0) } + +// start returns the first visible row in a view h rows high: top, clamped +// to the rows. +func (t *navigator) start(h int) int { + return clampTop(t.top, len(t.rows), max(h, 1)) +} + +// curFile returns the index of the file at the cursor, or -1 if the +// cursor is on a directory. +func (t *navigator) curFile() int { + if t.cur >= len(t.rows) { + return -1 + } + return t.rows[t.cur].File +} + +// fileOr returns the index of the file at the cursor, or cur if the +// cursor is on a directory. It never returns less than 0. +func (t *navigator) fileOr(cur int) int { + if i := t.curFile(); i >= 0 { + return i + } + return max(cur, 0) +} + +// curDir returns the row at the cursor and true if it is a directory. +func (t *navigator) curDir() (tree.Row, bool) { + if t.cur >= len(t.rows) || t.rows[t.cur].File >= 0 { + return tree.Row{}, false + } + return t.rows[t.cur], true +} + +// rowOf returns the row of the file with index i, or -1 if it has no +// visible row. +func (t *navigator) rowOf(i int) int { + if i < 0 { + return -1 + } + return slices.IndexFunc(t.rows, func(r tree.Row) bool { return r.File == i }) +} + +// nextFile returns the first file row after row from in direction d (1 or +// -1), or -1 if there is none. +func (t *navigator) nextFile(from, d int) int { + for r := from + d; r >= 0 && r < len(t.rows); r += d { + if t.rows[r].File >= 0 { + return r + } + } + return -1 +} + +// setExpanded expands or collapses the directory dir. It reports whether +// anything changed. +func (t *navigator) setExpanded(dir string, expanded bool) bool { + // A toggled directory is in the opposite state to expandAll. + toggled := t.expandAll != expanded + if t.toggled[dir] == toggled { + return false + } + if toggled { + if t.toggled == nil { + t.toggled = map[string]bool{} + } + t.toggled[dir] = true + } else { + delete(t.toggled, dir) + } + return true +} + +// reveal expands every directory above path. It reports whether any of +// them changed. +func (t *navigator) reveal(path string) bool { + changed := false + for dir, _, ok := strings.CutLast(path, "/"); ok; dir, _, ok = strings.CutLast(dir, "/") { + changed = t.setExpanded(dir, true) || changed + } + return changed +} + +// curNavigator returns the file list of the current tab, or nil on the PR +// tab. +func (m *model) curNavigator() *navigator { + switch m.tab { + case tabChanges: + return &m.changes.navigator + case tabAllFiles: + return &m.allFiles.navigator + } + return nil +} + +// buildChangesNavigator rebuilds the file list of the Changes tab. If the +// cursor ends up on a file, that file becomes the current file. +func (m *model) buildChangesNavigator() { + es := make([]tree.Entry, len(m.changes.files)) + for i, f := range m.changes.files { + es[i] = tree.Entry{Path: f.Path, Changed: true} + } + t := &m.changes.navigator + t.build(es, true, m.changes.cur) + m.changes.cur = t.fileOr(m.changes.cur) +} + +// buildAllFilesNavigator rebuilds the file list of the Files tab. Files +// that are in the Changes tab are marked as changed. If the cursor ends up +// on a file, that file becomes the current file. +func (m *model) buildAllFilesNavigator() { + changed := make(map[string]bool, len(m.changes.files)) + for _, f := range m.changes.files { + changed[f.Path] = true + } + es := make([]tree.Entry, len(m.allFiles.entries)) + m.allFiles.fileCount = 0 + for i, e := range m.allFiles.entries { + p, isDir := strings.CutSuffix(e.Path, "/") + es[i] = tree.Entry{Path: p, Changed: changed[p], Ignored: e.Ignored, Dir: isDir} + if !isDir { + m.allFiles.fileCount++ + } + } + t := &m.allFiles.navigator + t.build(es, false, m.allFiles.cur) + m.allFiles.cur = min(t.fileOr(m.allFiles.cur), max(len(m.allFiles.entries)-1, 0)) +} + +// buildNavigator rebuilds the file list of the current tab. +func (m *model) buildNavigator() { + switch m.tab { + case tabChanges: + m.buildChangesNavigator() + case tabAllFiles: + m.buildAllFilesNavigator() + } +} + +// withIgnored adds to es the contents of each ignored directory in +// expanded, the directories that the user has expanded in the Files tab, +// and sorts es by path. +func withIgnored(repo *vcs.Repo, es []vcs.Entry, expanded map[string]bool) []vcs.Entry { + // The loop also visits the entries it appends, so that expanded + // ignored directories nested inside others are read too. + for i := 0; i < len(es); i++ { + if dir, ok := expandedIgnoredDir(es[i], expanded); ok { + es = append(es, repo.IgnoredDir(dir)...) + } + } + slices.SortStableFunc(es, func(a, b vcs.Entry) int { return strings.Compare(a.Path, b.Path) }) + return es +} + +// includedPaths returns the paths to pass to [vcs.Watcher.Include] while +// the Files tab is shown: the ignored directories that the user has +// expanded, and the open file. On other tabs, it returns nil and "". +func (m *model) includedPaths() (dirs []string, file string) { + if m.tab != tabAllFiles { + return nil, "" + } + for _, e := range m.allFiles.entries { + if dir, ok := expandedIgnoredDir(e, m.allFiles.navigator.toggled); ok { + dirs = append(dirs, dir) + } + } + if m.allFiles.cur < len(m.allFiles.entries) { + if e := m.allFiles.entries[m.allFiles.cur]; !strings.HasSuffix(e.Path, "/") { + file = e.Path + } + } + return dirs, file +} + +// expandedIgnoredDir returns the path of e without its trailing "/", and +// reports whether e is an ignored directory in expanded, the directories +// that the user has expanded in the Files tab. +func expandedIgnoredDir(e vcs.Entry, expanded map[string]bool) (string, bool) { + dir, isDir := strings.CutSuffix(e.Path, "/") + return dir, isDir && e.Ignored && expanded[dir] +} + +// cursorOnDir reports whether the file list has focus and its cursor is on +// a directory. +func (m *model) cursorOnDir() bool { + if t := m.curNavigator(); t != nil && m.navigatorFocused { + _, ok := t.curDir() + return ok + } + return false +} + +// setDirExpanded expands or collapses the directory at the file list +// cursor. Expanding an ignored directory reads its contents. +func (m *model) setDirExpanded(expanded bool) { + t := m.curNavigator() + r, ok := t.curDir() + if !ok || !t.setExpanded(r.Dir, expanded) { + return + } + if expanded && m.tab == tabAllFiles && r.Ignored { + m.allFiles.listing.want = true + } + m.buildNavigator() +} + +// stepNavigatorRow moves the file list cursor by d rows. If the cursor +// lands on a file, the main pane shows it. +func (m *model) stepNavigatorRow(d int) { + t := m.curNavigator() + if t == nil || len(t.rows) == 0 { + return + } + t.cur = min(max(t.cur+d, 0), len(t.rows)-1) + if i := t.curFile(); i >= 0 && i != m.curFileIndex() { + m.setCurFile(i) + } +} + +// stepFile shows the next (d = 1) or previous (d = -1) file in the file +// list, skipping directories. It starts from the file list cursor when the +// file list has focus, and from the shown file otherwise. +func (m *model) stepFile(d int) { + t := m.curNavigator() + if t == nil { + return + } + from := t.cur + if r := t.rowOf(m.curFileIndex()); !m.navigatorFocused && r >= 0 { + from = r + } + if r := t.nextFile(from, d); r >= 0 { + m.setCurFile(t.rows[r].File) + } +} + +// clickNavigatorRow handles a click on row r of the file list. Clicking a +// file shows it, and clicking a directory expands or collapses it. +func (m *model) clickNavigatorRow(r int) { + t := m.curNavigator() + if t == nil || r < 0 || r >= len(t.rows) { + return + } + m.navigatorFocused = true + t.cur = r + if dir, ok := t.curDir(); ok { + m.setDirExpanded(!dir.Expanded) + return + } + m.setCurFile(t.rows[r].File) +} + +// revealFile expands the directories above path in the current tab's file +// list, so that its row is visible. +func (m *model) revealFile(path string) { + if t := m.curNavigator(); t != nil && t.reveal(path) { + m.buildNavigator() + } +} diff --git a/tui/overlay.go b/tui/overlay.go index 857ece3..6266baf 100644 --- a/tui/overlay.go +++ b/tui/overlay.go @@ -3,6 +3,7 @@ package tui import ( "context" "fmt" + "slices" "strings" "charm.land/bubbles/v2/key" @@ -16,7 +17,7 @@ import ( "github.com/rednafi/rexdiff/rex" ) -// overlayKind tells what an overlay is for. +// overlayKind says what an overlay is for. type overlayKind int const ( @@ -25,173 +26,205 @@ const ( overlayCommits overlayComments overlaySearch - overlayGoto + overlayGotoLine overlayQuit ) -// These are the steps of the page keys in the commit picker, in rows, as -// in herdr-reviewr. +// How many rows the page and half-page keys move the cursor in the commit +// picker and the comment list. The page keys also scroll the search +// preview by itemsPage rows. const ( - pickerPage = 15 - pickerHalf = 8 + itemsPage = 15 + itemsHalf = 8 ) -// pickItem is one row of the list of an overlay. -type pickItem struct { +// overlayItem is one row in an overlay's list. +type overlayItem struct { label string - detail string // the dim text after the label - tag string // a short mark at the end, for example "current" - // id is what the row picks, for example a path, a ref, a commit, or a - // block. In the search, a row with no id cannot have the cursor. - id string - line int // the search: the line of a code match - head bool // the search: the header of the code matches of a file - comment int // the comment list: the ID of the comment + detail string // dim text shown after the label + tag string // a short marker at the end, for example "current" + // id identifies what choosing the row selects, such as a path, ref, + // commit or block. In the search, a row without an id cannot have the + // cursor. + id string + line int // search only: the line number of a code match + isHeader bool // search only: the heading above a file's code matches + comment int // comment list only: the ID of the comment } -// overlay is a modal box. It shows a list to pick from, a search, or a +// overlay is a modal box that shows a list to choose from, a search or a // prompt. type overlay struct { - kind overlayKind - title string - input textinput.Model - items []pickItem - shown []int // the indices of the items that match the input - cur int - mark int // the commit picker: the item at the start of the range, or -1 - agents []rex.Agent - search searchState - // rowsFrom and rowsTo are the index of the first row that shows and - // the index after the last one. - rowsFrom, rowsTo int + kind overlayKind + title string + input textinput.Model + items []overlayItem + shown []int // the indexes of the items that match the input + cur int + rangeStart int // commit picker only: the item at the start of the range, or -1 + // loading is true while the commit picker waits for its commits, and + // stop stops the listing of them. + loading bool + stop context.CancelFunc + agents []rex.Agent + search searchState + // itemsLo is the index of the first visible row, and itemsHi is one + // past the last. + itemsLo, itemsHi int } -// newOverlay returns an overlay. If its kind has an input, the input has -// the focus. +// newOverlay returns a new overlay of the given kind. If the kind has a +// text input, the input has focus. func newOverlay(kind overlayKind, title string) *overlay { ti := textinput.New() ti.Prompt = "› " - ov := &overlay{kind: kind, title: title, input: ti, mark: -1} + ov := &overlay{kind: kind, title: title, input: ti, rangeStart: -1} if ov.hasInput() { ov.input.Focus() } return ov } -// hasInput reports whether the overlay has a text input. The lists of -// agents, comments, and commits, and the prompt before a quit, have none. -func (o *overlay) hasInput() bool { - switch o.kind { +// hasInput reports whether the overlay has a text input. The agent, +// comment and commit lists and the quit prompt do not. +func (ov *overlay) hasInput() bool { + switch ov.kind { case overlayAgents, overlayComments, overlayCommits, overlayQuit: return false } return true } -// setItems sets the items, and shows the ones that match the input. -func (o *overlay) setItems(items []pickItem) { - o.items = items - o.filter() +// setItems replaces the items and shows those that match the input. +func (ov *overlay) setItems(items []overlayItem) { + ov.items = items + ov.filter() } -// filter shows the items that match the input. The search shows all its -// items, because they match already. -func (o *overlay) filter() { - q := o.input.Value() - o.shown = o.shown[:0] - if q == "" || o.kind == overlaySearch { - for i := range o.items { - o.shown = append(o.shown, i) +// filter shows the items that match the input. The search shows all of +// its items, because they are already matches. +func (ov *overlay) filter() { + q := ov.input.Value() + ov.shown = ov.shown[:0] + if q == "" || ov.kind == overlaySearch { + for i := range ov.items { + ov.shown = append(ov.shown, i) } } else { - labels := make([]string, len(o.items)) - for i, it := range o.items { + labels := make([]string, len(ov.items)) + for i, it := range ov.items { labels[i] = it.label + " " + it.detail } - o.shown = append(o.shown, search.Indices(q, labels)...) + ov.shown = append(ov.shown, search.Indices(q, labels)...) } - o.cur = min(o.cur, max(len(o.shown)-1, 0)) + ov.cur = min(ov.cur, max(len(ov.shown)-1, 0)) } -// selected returns the item at the cursor, or nil. -func (o *overlay) selected() *pickItem { - if o.cur < 0 || o.cur >= len(o.shown) { +// curItem returns the item at the cursor, or nil. +func (ov *overlay) curItem() *overlayItem { + if ov.cur < 0 || ov.cur >= len(ov.shown) { return nil } - return &o.items[o.shown[o.cur]] + return &ov.items[ov.shown[ov.cur]] } -// move moves the cursor of the list by d rows. It skips the rows that -// cannot have the cursor, and it stops at the ends. -func (o *overlay) move(d int) { +// move moves the list cursor by d rows, skipping rows that cannot have the +// cursor and stopping at the ends. +func (ov *overlay) move(d int) { step := 1 if d < 0 { step = -1 } for ; d != 0; d -= step { - i := o.cur + step - for i >= 0 && i < len(o.shown) && !o.pickable(i) { + i := ov.cur + step + for i >= 0 && i < len(ov.shown) && !ov.canHaveCursor(i) { i += step } - if i < 0 || i >= len(o.shown) { + if i < 0 || i >= len(ov.shown) { return } - o.cur = i + ov.cur = i } } -// pickable reports whether row i of the list can have the cursor. In the -// search, the headers of the files and the "… more" row cannot. -func (o *overlay) pickable(i int) bool { - return o.kind != overlaySearch || o.items[o.shown[i]].id != "" +// canHaveCursor reports whether row i of the list can have the cursor. In +// the search, file headings and the "… more" row cannot. +func (ov *overlay) canHaveCursor(i int) bool { + return ov.kind != overlaySearch || ov.items[ov.shown[i]].id != "" } -// open shows ov and gives the keys to it. -func (m *model) open(ov *overlay) { +// openOverlay shows ov and sends key presses to it. It ends any drag, so +// that releasing the button does not open the comment box behind the +// overlay. +func (m *model) openOverlay(ov *overlay) { m.overlay, m.mode = ov, modeOverlay + m.drag = dragState{} } -// closeOverlay closes the overlay and gives the keys back to the panes. +// closeOverlay closes the overlay and sends key presses to the panes +// again. Closing the search stops the background highlighting of its +// preview. func (m *model) closeOverlay() { + if ov := m.overlay; ov != nil && ov.stop != nil { + ov.stop() + } + if ov := m.overlay; ov != nil && ov.kind == overlaySearch && ov.search.preview != nil && ov.search.preview.file != nil { + // The preview was the last file rendered, so the cache holds its + // highlighter. A pane that shows the same file starts it again + // for the lines that it draws. + m.cache.StopHighlighting() + } m.overlay, m.mode = nil, modeNormal - m.stopGrep(fmt.Errorf("code search: the search closes: %w", context.Canceled)) + m.stopGrep() } -// openInput opens a prompt of kind with the text value. +// openInput opens a prompt of the given kind, with value as its initial +// text. func (m *model) openInput(kind overlayKind, title, value string) { ov := newOverlay(kind, title) ov.input.SetValue(value) - m.open(ov) + m.openOverlay(ov) } -// openConfirmQuit asks the user to confirm a quit that loses comments. -func (m *model) openConfirmQuit() { +// openQuit asks the user to confirm quitting, which discards the comments. +func (m *model) openQuit() { title := plural(m.comments.Len(), "unsent comment") + " will be lost" - m.open(newOverlay(overlayQuit, title)) + m.openOverlay(newOverlay(overlayQuit, title)) } -// updateOverlay handles a key while an overlay is open. +// updateOverlay handles a key press while an overlay is open. In the +// search, it renders the preview of the selected result right away, so +// that the screen is drawn again while its colours arrive. func (m *model) updateOverlay(msg tea.KeyPressMsg) tea.Cmd { + cmd := m.updateOverlayKey(msg) + if ov := m.overlay; ov != nil && ov.kind == overlaySearch { + m.searchPreview(m.searchInner()) + } + return cmd +} + +// updateOverlayKey does the work of updateOverlay. +func (m *model) updateOverlayKey(msg tea.KeyPressMsg) tea.Cmd { ov, k := m.overlay, overlayKeys switch ov.kind { case overlayQuit: return m.updateQuit(msg) case overlayComments: - return m.updateCommentList(msg) + return m.updateComments(msg) case overlayCommits: return m.updateCommitPicker(msg) case overlaySearch: pv := ov.search.preview switch { - case key.Matches(msg, k.Flip): - ov.search.code = !ov.search.code - ov.showSearch() + case key.Matches(msg, k.ToggleSearchMode): + ov.search.grep = !ov.search.grep + ov.setSearchItems() return nil - case key.Matches(msg, k.PreviewDown) && pv != nil: - pv.scroll(pickerPage) + case key.Matches(msg, k.ScrollPreviewDown) && pv != nil: + pv.scroll(itemsPage) return nil - case key.Matches(msg, k.PreviewUp) && pv != nil: - pv.scroll(-pickerPage) + case key.Matches(msg, k.ScrollPreviewUp) && pv != nil: + pv.scroll(-itemsPage) return nil } } @@ -200,39 +233,47 @@ func (m *model) updateOverlay(msg tea.KeyPressMsg) tea.Cmd { m.closeOverlay() return nil case key.Matches(msg, k.Choose): - return m.chooseOverlay() - case key.Matches(msg, k.Up): + return m.choose() + case ov.isCursorKey(msg, k.Up): ov.move(-1) return nil - case key.Matches(msg, k.Down): + case ov.isCursorKey(msg, k.Down): ov.move(1) return nil } if !ov.hasInput() { - return m.updateList(msg) + m.updateItems(msg) + return nil } - if ov.kind == overlayGoto { + if ov.kind == overlayGotoLine { if !isLineKey(msg) { return nil } - // "$" stands alone, and a digit after "$" starts a number. + // "$" replaces any number, and a digit typed after "$" starts a + // new number. if msg.Text == "$" || (msg.Text != "" && ov.input.Value() == "$") { ov.input.SetValue("") } } var cmd tea.Cmd - before := ov.input.Value() + prev := ov.input.Value() ov.input, cmd = ov.input.Update(msg) - if ov.input.Value() != before { + if ov.input.Value() != prev { return tea.Batch(cmd, m.inputChanged()) } return cmd } -// updateQuit handles a key in the prompt before a quit, as herdr-reviewr -// does. The key of QuitDiscard quits. The key of Quit does nothing, so a -// held q does not quit. The keys of Send and Copy close the prompt and -// send or copy. Any other key closes the prompt. +// isCursorKey reports whether msg matches the cursor binding b. In an +// overlay with a text input, the letter keys of b type text instead. +func (ov *overlay) isCursorKey(msg tea.KeyPressMsg, b key.Binding) bool { + return key.Matches(msg, b) && (!ov.hasInput() || !slices.Contains(letterMoveKeys, msg.String())) +} + +// updateQuit handles a key press in the quit prompt. The QuitDiscard key +// quits. The Quit key does nothing, so that holding q down does not quit. +// The Send and Copy keys close the prompt and send or copy the comments. +// Any other key just closes the prompt. func (m *model) updateQuit(msg tea.KeyPressMsg) tea.Cmd { k := m.keys switch { @@ -251,43 +292,38 @@ func (m *model) updateQuit(msg tea.KeyPressMsg) tea.Cmd { return nil } -// updateList handles a key in an overlay that has no input. In the agent -// picker, the digits 1 to 9 move the cursor to an agent, as in -// herdr-reviewr. Only enter sends. -func (m *model) updateList(msg tea.KeyPressMsg) tea.Cmd { - ov, k, s := m.overlay, overlayKeys, msg.String() +// updateItems handles a key press in an overlay without a text input. In +// the agent picker, the digits 1 to 9 move the cursor to that agent; only +// Enter sends. +func (m *model) updateItems(msg tea.KeyPressMsg) { + ov, s := m.overlay, msg.String() digit := len(s) == 1 && s[0] >= '1' && s[0] <= '9' - switch { - case key.Matches(msg, k.ListDown): - ov.move(1) - case key.Matches(msg, k.ListUp): - ov.move(-1) - case ov.kind == overlayAgents && digit: + if ov.kind == overlayAgents && digit { if i := int(s[0] - '1'); i < len(ov.shown) { ov.cur = i } } - return nil } -// inputChanged updates the overlay after a change of its input. +// inputChanged updates the overlay after its input text changes. func (m *model) inputChanged() tea.Cmd { ov := m.overlay switch ov.kind { case overlaySearch: - return m.runSearch() + return m.startGrep() case overlayBase: ov.filter() } return nil } -// chooseOverlay acts on the selected item or on the input. -func (m *model) chooseOverlay() tea.Cmd { +// choose acts on the selected item or on the input text, depending on the +// kind of overlay. +func (m *model) choose() tea.Cmd { ov := m.overlay - it := ov.selected() + it := ov.curItem() switch ov.kind { - case overlayGoto: + case overlayGotoLine: m.closeOverlay() m.gotoLine(ov.input.Value()) case overlaySearch: @@ -303,7 +339,10 @@ func (m *model) chooseOverlay() tea.Cmd { m.flash("no such ref: " + ref) return nil } - if err := m.repo.SaveBase(m.ctx, ref); err != nil { + ctx, done := m.gitContext("base save") + err := m.repo.SaveBase(ctx, ref) + done() + if err != nil { m.flash("base save failed: " + err.Error()) return nil } @@ -314,7 +353,7 @@ func (m *model) chooseOverlay() tea.Cmd { return nil } m.closeOverlay() - m.from, m.to = ov.commitRange(it) + m.oldest, m.newest = ov.commitRange(it) m.setScope(scopeCommits) case overlayComments: m.closeOverlay() @@ -327,44 +366,52 @@ func (m *model) chooseOverlay() tea.Cmd { case overlayAgents: m.closeOverlay() if a, ok := ov.agent(it); ok { - return m.deliver(a) + return m.pasteReview(a) } } - m.ensureVisible() + m.scrollToCursor() return nil } -// overlayBox renders the box of the overlay, and returns its position. -// Row i of the list shows at line listY+i of the box, for mouse hits. -func (m *model) overlayBox() (box string, x, y, listY int) { +// searchInner returns the width of the search box inside its border and +// padding. +func (m *model) searchInner() int { return m.w - 8 } + +// overlayBox renders the overlay box and returns its screen position. +// Row i of the list is at line itemsY+i of the box, which mouse clicks use. +func (m *model) overlayBox() (box string, x, y, itemsY int) { ov := m.overlay w := min(max(m.w*2/3, 50), m.w-4) if ov.kind == overlaySearch { - w = m.w - 4 + w = m.searchInner() + 4 } inner := w - 4 - // The title takes one line, for listY. + // The title takes one line, which itemsY accounts for. lines := []string{truncate(headerStyle.Render(ov.title), inner)} switch ov.kind { case overlayQuit: lines = append(lines, "", dimStyle.Render(m.quitHint())) case overlaySearch: - lines, listY = m.searchLines(inner) + lines, itemsY = m.searchLines(inner) default: if ov.hasInput() { ov.input.SetWidth(inner - 2) lines = append(lines, ov.input.View()) } - rows, start := m.overlayRows(inner, m.h-10) - listY = len(lines) + 1 - start // 1 for the border + rows, start := m.overlayItems(inner, m.h-10) + itemsY = len(lines) + 1 - start // + 1 for the top border lines = append(lines, rows...) switch ov.kind { case overlayComments: - lines = append(lines, "", truncate(dimStyle.Render(m.listHint()), inner)) + lines = append(lines, "", truncate(dimStyle.Render(m.commentsHint()), inner)) case overlayCommits: lines = append(lines, "", truncate(dimStyle.Render(m.commitHint()), inner)) } } + // On a short terminal, cut the content so that the whole box, with its + // borders, stays on the screen. + lines = strings.Split(lipgloss.NewStyle().Width(inner).Render(strings.Join(lines, "\n")), "\n") + lines = lines[:min(len(lines), max(m.h-2, 1))] box = lipgloss.NewStyle(). Border(lipgloss.RoundedBorder()). BorderForeground(dimColor). @@ -372,30 +419,31 @@ func (m *model) overlayBox() (box string, x, y, listY int) { Width(w). Render(strings.Join(lines, "\n")) x = (m.w - lipgloss.Width(box)) / 2 - y = max((m.h-lipgloss.Height(box))/3, 1) - return box, x, y, listY + // The box leaves the header line free if there is room. + free := m.h - lipgloss.Height(box) + y = max(free/3, min(free, 1), 0) + return box, x, y, itemsY } -// quitHint returns the keys of the prompt before a quit, as the footer -// of herdr-reviewr shows them. +// quitHint returns the key hints for the quit prompt. func (m *model) quitHint() string { k, n := m.keys, m.comments.Len() return fmt.Sprintf("%s quit (%d pending) · esc cancel · %s send %d · %s copy", firstKey(k.QuitDiscard), n, firstKey(k.Send), n, firstKey(k.Copy)) } -// overlayRows renders at most limit rows of the list of the overlay, -// inner columns wide. start is the index of the first row. -func (m *model) overlayRows(inner, limit int) (rows []string, start int) { +// overlayItems renders at most limit rows of the overlay's list, inner +// columns wide. start is the index of the first rendered row. +func (m *model) overlayItems(inner, limit int) (rows []string, start int) { ov := m.overlay maxRows := min(len(ov.shown), max(limit, 1)) start = max(0, ov.cur-maxRows+1) - ov.rowsFrom, ov.rowsTo = start, start+maxRows + ov.itemsLo, ov.itemsHi = start, start+maxRows for i := start; i < len(ov.shown) && i < start+maxRows; i++ { it := ov.items[ov.shown[i]] - if !ov.pickable(i) { + if !ov.canHaveCursor(i) { style := dimStyle - if it.head { + if it.isHeader { style = headerStyle } rows = append(rows, " "+truncate(style.Render(termtext.Quote(it.label)), inner-2)) @@ -403,15 +451,15 @@ func (m *model) overlayRows(inner, limit int) (rows []string, start int) { } tag := "" if it.tag != "" { - tag = " " + cursorStyle.Render(it.tag) + tag = " " + accentStyle.Render(it.tag) } - if ov.kind == overlayCommits && ov.mark == ov.shown[i] { - tag += " " + cursorStyle.Render("range start") + if ov.kind == overlayCommits && ov.rangeStart == ov.shown[i] { + tag += " " + accentStyle.Render("range start") } text := termtext.Quote(it.label) + " " + dimStyle.Render(termtext.Quote(it.detail)) + tag row := truncate(text, inner-2) if i == ov.cur { - row = m.selStyle().Width(inner).Render("▶ " + row) + row = m.highlightStyle().Width(inner).Render("▶ " + row) } else { row = " " + row } @@ -419,16 +467,18 @@ func (m *model) overlayRows(inner, limit int) (rows []string, start int) { } switch { case ov.search.err != "": - rows = append(rows, delStyle.Render(" "+termtext.Quote(ov.search.err))) + rows = append(rows, deletedStyle.Render(" "+termtext.Quote(ov.search.err))) + case ov.loading: + rows = append(rows, dimStyle.Render(" loading commits…")) case len(ov.shown) == 0 && ov.kind == overlayCommits: rows = append(rows, dimStyle.Render(" no commits yet")) case len(ov.shown) == 0 && ov.kind == overlaySearch: - // As in herdr-reviewr, an empty query finds no code, and that is - // not a miss. - if !ov.search.code || ov.input.Value() != "" { + // An empty code search query matches nothing, which is not worth + // reporting. + if !ov.search.grep || ov.input.Value() != "" { rows = append(rows, dimStyle.Render(" no matches")) } - case len(ov.shown) == 0 && ov.kind != overlayGoto: + case len(ov.shown) == 0 && ov.kind != overlayGotoLine: rows = append(rows, dimStyle.Render(" no matches")) } return rows, start diff --git a/tui/palette.go b/tui/palette.go index c81503f..7f45221 100644 --- a/tui/palette.go +++ b/tui/palette.go @@ -9,16 +9,23 @@ import ( "github.com/charmbracelet/x/ansi" ) -// requestPalette asks the terminal for its ANSI red and green (OSC 4), as -// the system theme of pi does. Bubble Tea has no command for this request. -// Bubble Tea gives the replies to Update as unknown OSC events. +// The ANSI palette indices of red and green, which [requestPalette] asks +// for. +const ( + paletteRed = 1 + paletteGreen = 2 +) + +// requestPalette asks the terminal for its ANSI red and green (OSC 4). +// Bubble Tea has no command for this, and passes the replies to Update as +// unknown OSC events. func requestPalette() tea.Msg { return tea.RawMsg{Msg: "\x1b]4;1;?\x07\x1b]4;2;?\x07"} } -// paletteReply returns the index and the colour in an OSC 4 reply, such -// as "\x1b]4;1;rgb:ffff/0000/0000\x07". If s is not such a reply, ok is -// false. +// paletteReply returns the palette index and colour in an OSC 4 reply, +// such as "\x1b]4;1;rgb:ffff/0000/0000\x07". ok is false if s is not such +// a reply. func paletteReply(s string) (i int, c color.Color, ok bool) { s, ok = strings.CutPrefix(s, "\x1b]4;") if !ok { @@ -39,16 +46,17 @@ func paletteReply(s string) (i int, c color.Color, ok bool) { return i, c, true } -// onPalette takes the red or the green from an OSC 4 reply. +// onPalette stores the red or green colour from an OSC 4 reply and renders +// again if it changed. func (m *model) onPalette(reply string) { i, c, ok := paletteReply(reply) if !ok { return } switch { - case i == 1 && !sameColor(m.red, c): + case i == paletteRed && !sameColor(m.red, c): m.red = c - case i == 2 && !sameColor(m.green, c): + case i == paletteGreen && !sameColor(m.green, c): m.green = c default: return diff --git a/tui/pr.go b/tui/pr.go index e43ee61..400c792 100644 --- a/tui/pr.go +++ b/tui/pr.go @@ -13,57 +13,58 @@ import ( "charm.land/lipgloss/v2" "github.com/rednafi/rexdiff/diff" + "github.com/rednafi/rexdiff/internal/xctx" "github.com/rednafi/rexdiff/vcs" ) -// The PR tab shows the pull request of the branch. The tab cannot change -// the pull request. +// The PR tab shows the pull request for the current branch. It is +// read-only. -// The times of the reads of the pull request, as in herdr-reviewr. +// Timing for fetching the pull request. const ( - // prPoll is the time between two reads while the PR tab shows. A - // change on the forge has no local sign. - prPoll = time.Minute - // prTimeout is the longest time of a read. + // prInterval is the time between fetches while the PR tab is shown. + // Polling is needed because changes on the forge leave no trace in + // the local repository. + prInterval = time.Minute + // prTimeout limits how long one fetch can take. prTimeout = time.Minute ) -// prFetch follows the reads of the pull request. +// prFetch tracks fetches of the pull request. type prFetch struct { - gen int // the read whose result shows. Other reads are stale. - inFlight bool // the read gen runs - polled time.Time // the last request, for prPoll - cancel context.CancelCauseFunc - // trailing is true if an ambient request comes while a read runs. - // Then one more read follows that read. + gen int // identifies the latest fetch; results of older fetches are stale + inFlight bool // fetch gen is in progress + polled time.Time // the time of the last request, for prInterval + cancel context.CancelFunc + // trailing is true if a non-forced request arrived during a fetch, + // so another fetch follows when it finishes. trailing bool - branch string // the branch at the last change of the refs - seen bool // the watcher reports the refs once + branch string // the branch at the last ref change + seen bool // the watcher has reported refs at least once } -// requestPR asks for a read of the pull request. A forced request starts -// a read at once. An ambient request during a read starts one more read -// after it. A read that hangs ends after prTimeout. -func (m *model) requestPR(forced bool) tea.Cmd { - f := &m.prf +// requestPR asks for the pull request to be fetched. A forced request +// starts a fetch at once. A non-forced request made during a fetch starts +// another fetch after it finishes. A fetch that hangs is cancelled after +// prTimeout. +func (m *model) requestPR(force bool) tea.Cmd { + f := &m.pr.fetch f.polled = time.Now() - if !forced && f.inFlight { + if !force && f.inFlight { f.trailing = true return nil } - return m.loadPR() + return m.fetchPR() } -// loadPR stops the read that runs, and returns a command that reads the -// pull request of the branch. -func (m *model) loadPR() tea.Cmd { - f := &m.prf +// fetchPR cancels any fetch in progress and returns a command that +// fetches the pull request for the branch. +func (m *model) fetchPR() tea.Cmd { + f := &m.pr.fetch if f.cancel != nil { - f.cancel(fmt.Errorf("pull request read: a newer read replaces it: %w", context.Canceled)) + f.cancel() } - ctx, cancel := context.WithCancelCause(m.ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, prTimeout, - fmt.Errorf("pull request read: %v timeout: %w", prTimeout, context.DeadlineExceeded)) + ctx, cancel := xctx.WithTimeout(m.ctx, prTimeout, "pull request read") f.gen++ f.inFlight, f.trailing, f.cancel = true, false, cancel repo, gen := m.repo, f.gen @@ -73,30 +74,31 @@ func (m *model) loadPR() tea.Cmd { Azure: m.cfg.AzureHost, } return func() tea.Msg { - defer cancelTimeout() - defer cancel(fmt.Errorf("pull request read: done: %w", context.Canceled)) - pr, err := repo.PullRequest(ctx, hosts) + defer cancel() + pr, err := repo.PR(ctx, hosts) return prMsg{gen: gen, pr: pr, err: err} } } -// refsChanged reads the pull request again after a change of the refs. -// After a switch to another branch, the PR tab is blank until the read -// ends. A detached HEAD keeps the branch, so a rebase is not a switch. -func (m *model) refsChanged() tea.Cmd { - f := &m.prf - b, err := m.repo.Branch(m.ctx) +// reloadPR fetches the pull request again after the refs change. After a +// branch switch, which a detached HEAD during a rebase is not, the PR tab +// is blank until the fetch finishes. +func (m *model) reloadPR() tea.Cmd { + f := &m.pr.fetch + ctx, done := m.gitContext("branch") + b, err := m.repo.Branch(ctx) + done() if err != nil || b == "HEAD" { b = f.branch } - old := f.branch + oldBranch := f.branch f.branch = b - if !f.seen { // the first report is the start, and Init reads the PR + if !f.seen { // the first report comes at startup, and Init already fetches the PR f.seen = true return nil } - if old != "" && b != old { - m.pr = prState{} + if oldBranch != "" && b != oldBranch { + m.pr.pr, m.pr.err = nil, "" cmd := m.requestPR(true) m.renderPR() return cmd @@ -104,40 +106,23 @@ func (m *model) refsChanged() tea.Cmd { return m.requestPR(false) } -// prStateStyle returns the style that shows the state of a pull request. +// prStateStyle returns the style used to show the pull request state s. func prStateStyle(s vcs.PRState) lipgloss.Style { switch s { case vcs.PROpen: - return addStyle + return addedStyle case vcs.PRMerged: return headerStyle case vcs.PRClosed: - return delStyle + return deletedStyle } return dimStyle } -// checkSummary counts the checks that pass, fail, or are pending, and -// returns the names of the checks that fail. A skipped check counts as a -// pass. -func checkSummary(checks []vcs.Check) (pass, fail, pend int, failed []string) { - for _, c := range checks { - switch c.Result { - case vcs.ResultPass, vcs.ResultSkip: - pass++ - case vcs.ResultFail: - fail++ - failed = append(failed, c.Name) - default: - pend++ - } - } - return pass, fail, pend, failed -} - -// renderPR shows the pull request in the PR tab. +// renderPR renders the pull request, or a note explaining its absence, +// into the PR tab. func (m *model) renderPR() { - p := &m.prPane + p := &m.pr.pane p.path, p.note = "", "" pr := m.pr.pr switch { @@ -146,61 +131,190 @@ func (m *model) renderPR() { p.set(nil, nil) return case pr == nil: - if !m.prf.inFlight { - p.note = vcs.ErrNoPullRequest.Error() + if !m.pr.fetch.inFlight { + p.note = vcs.ErrNoPR.Error() } p.set(nil, nil) return } - md := m.markdown(m.codeWidth() - 4) - lines := append([]string{""}, prHeader(pr)...) - lines = append(lines, checkLines(pr.Checks)...) + r := m.markdownRenderer(m.codeWidth() - 4) + lines := slices.Concat([]string{""}, prHeader(pr)) + lines = append(lines, checkLines(pr)...) lines = append(lines, "") + // A poll usually finds the same texts, so the texts rendered last time + // come from a cache. + mc := &m.markdown + cached := mc.pr + if r == nil || mc.r != r { + cached = nil + } + used := map[string][]string{} + truncated := dimStyle.Render(" … truncated · " + firstKey(m.keys.OpenPR) + " to open in browser") + work := 0 // the work of the texts rendered so far, as markdownWork counts it + render := func(text string) []string { + src, cut := m.prText(text) + note, w := prTextNote(src) + if note == "" && work+w > maxMarkdownWork { + note = notePRTextTooBig + } + out, ok := cached[src] + switch { + case note != "": + out = sourceLines(note, src, m.codeWidth()-4) + case !ok: + out = renderMarkdown(r, src) + } + if note == "" { + work += w + used[src] = out + } + if cut { + out = append(slices.Clip(out), "", truncated) + } + return out + } if strings.TrimSpace(pr.Body) != "" { - lines = append(lines, renderMarkdown(md, m.details(pr.Body))...) + lines = append(lines, render(pr.Body)...) } now := time.Now() for _, c := range pr.Comments { author := headerStyle.Render(c.Author) + " " + dimStyle.Render(age(c.When, now)) lines = append(lines, "", " "+author) - lines = append(lines, renderMarkdown(md, m.details(c.Body))...) + lines = append(lines, render(c.Body)...) + } + if r != nil && mc.r == r { + mc.pr = used } p.set(lines, make([]diff.Row, len(lines))) } -// detailsRE matches a
block with its summary and its body. -// detailsOpenRE matches the start of a block. +// Limits on the PR text that rexdiff renders, because a long or hostile +// body would make each poll slow. A body or comment longer than +// maxPRTextBytes is cut, with a note to open the PR in the browser. Only +// the first maxDetails
tags in each text become summary lines. +// A text is also subject to the limits on a block of Markdown in a file, +// and the texts of a PR to the limit on the work of a file: a text over a +// limit shows as its source. +const ( + maxPRTextBytes = 16 << 10 + maxDetails = 64 +) + +// Notes for PR text that rexdiff does not render. +const ( + notePRTextTooBig = " text too large to render · source below" + notePRTextTooDeep = " text nested too deeply to render · source below" +) + +// prTextNote returns the note to show instead of the rendered PR text +// src, or "" if it can be rendered. work is the work of rendering it, as +// markdownWork counts it, or 0 if it is not rendered. +func prTextNote(src string) (note string, work int) { + switch note, work := blockNote(src); note { + case "": + return "", work + case noteBlockTooDeep: + return notePRTextTooDeep, 0 + } + return notePRTextTooBig, 0 +} + +// prText returns the Markdown to render for src, a PR body or comment, +// with its
blocks replaced by renderDetails. A src longer than +// maxPRTextBytes is cut at the last line break before the limit, and cut +// is true. +func (m *model) prText(src string) (md string, cut bool) { + if len(src) > maxPRTextBytes { + src, cut = strings.ToValidUTF8(src[:maxPRTextBytes], ""), true + if i := strings.LastIndexByte(src, '\n'); i > 0 { + src = src[:i] + } + } + return m.renderDetails(src), cut +} + +// detailsTagRE matches an opening or closing
tag. summaryRE +// matches the summary at the start of a block, capturing its text. var ( - detailsRE = regexp.MustCompile( - `(?is)\A]*>\s*]*>(.*?)(.*?)
`) - detailsOpenRE = regexp.MustCompile(`(?i)]*>`) + detailsTagRE = regexp.MustCompile(`(?i)]*>|
`) + summaryRE = regexp.MustCompile(`(?is)\A\s*]*>(.*?)`) ) -// details returns src with each
block as its summary line, as -// herdr-reviewr shows it. The line starts with ▸ for a closed block, and -// with ▾ for an open block. The body of an open block follows the line. -// The last block is done first, so an inner block is done before the -// block that holds it. -func (m *model) details(src string) string { - for _, o := range slices.Backward(detailsOpenRE.FindAllStringIndex(src, -1)) { - b := src[o[0]:] - sub := detailsRE.FindStringSubmatchIndex(b) - if sub == nil { +// renderDetails returns src with each
block replaced by its +// summary line. The line starts with ▸ for a closed block and ▾ for an +// open block. The body of an open block follows the line. A block must +// start with a . A nested block is replaced before the block +// around it, and a closing tag ends the innermost open block that has a +// summary. Tags that do not form a block, and the tags after the first +// maxDetails opening tags, stay as they are. +func (m *model) renderDetails(src string) string { + // open holds the opening tag and the text so far of each block that + // has not been closed, innermost last. Text outside any block goes in + // out. + type block struct { + tag string + text strings.Builder + } + var open []*block + var out strings.Builder + emit := func(s string) { + if len(open) == 0 { + out.WriteString(s) + } else { + open[len(open)-1].text.WriteString(s) + } + } + at, opened := 0, 0 + for _, t := range detailsTagRE.FindAllStringIndex(src, -1) { + tag := src[t[0]:t[1]] + closing := strings.HasPrefix(tag, " 0 { + b := open[len(open)-1] + open = open[:len(open)-1] + text := b.text.String() + if sub := summaryRE.FindStringSubmatchIndex(text); sub != nil { + emit(m.detailsLine(text[sub[2]:sub[3]], text[sub[1]:])) + done = true + } else { + emit(b.tag + text) // not a block, so its tag is text + } + } + if !done { + emit(tag) } - src = src[:o[0]] + block + b[sub[1]:] } - return src + emit(src[at:]) + for _, b := range open { // blocks that are never closed are text + out.WriteString(b.tag) + out.WriteString(b.text.String()) + } + return out.String() } -// age returns the time from when to now, as herdr-reviewr shows it, for -// example "5m" or "3d". when is an RFC 3339 time. A bad time gives "". A -// time after now gives "0s". +// detailsLine returns the Markdown that replaces a
block with +// the given summary and body. +func (m *model) detailsLine(summary, body string) string { + summary = strings.Join(strings.Fields(summary), " ") + if m.pr.detailsExpanded { + return "\n\n▾ " + summary + "\n\n" + body + "\n\n" + } + return "\n\n▸ " + summary + "\n\n" +} + +// age returns the time elapsed from when to now in short form, such as +// "5m" or "3d". when is an RFC 3339 time. It returns "" if when cannot be +// parsed, and "0s" if when is after now. func age(when string, now time.Time) string { t, err := time.Parse(time.RFC3339, when) if err != nil { @@ -219,8 +333,8 @@ func age(when string, now time.Time) string { return fmt.Sprintf("%ds", int64(d/time.Second)) } -// prHeader returns the title line and the state line of pr. -func prHeader(pr *vcs.PullRequest) []string { +// prHeader returns the title line and the status line of pr. +func prHeader(pr *vcs.PR) []string { title := boldStyle.Render(pr.Title) number := dimStyle.Render(fmt.Sprintf("#%d", pr.Number)) state := prStateStyle(pr.State).Render("● " + string(pr.State)) @@ -237,54 +351,63 @@ func prHeader(pr *vcs.PullRequest) []string { } } -// checkLines returns the counts of the checks, and the names of the -// checks that fail. With no checks, it returns no lines. -func checkLines(checks []vcs.Check) []string { - if len(checks) == 0 { +// checkLines returns a line with the counts of all the checks, followed +// by the names of the failed checks that the pull request lists and a +// note of how many failed checks it leaves out. A skipped check counts as +// passed. It returns nil if there are no checks. +func checkLines(pr *vcs.PR) []string { + t := pr.Tally + if t.Total() == 0 { return nil } - pass, fail, pend, failed := checkSummary(checks) lines := []string{fmt.Sprintf( " checks: %s %s %s", - addStyle.Render(fmt.Sprintf("✓ %d", pass)), - delStyle.Render(fmt.Sprintf("✗ %d", fail)), - noteStyle.Render(fmt.Sprintf("◌ %d", pend)), + addedStyle.Render(fmt.Sprintf("✓ %d", t.Pass+t.Skip)), + deletedStyle.Render(fmt.Sprintf("✗ %d", t.Fail)), + noteStyle.Render(fmt.Sprintf("◌ %d", t.Pending)), )} - for _, f := range failed { - lines = append(lines, " "+delStyle.Render("✗ ")+f) + listed := 0 + for _, c := range pr.Checks { + if c.Result == vcs.ResultFail { + lines = append(lines, " "+deletedStyle.Render("✗ ")+c.Name) + listed++ + } + } + if n := t.Fail - listed; n > 0 { + lines = append(lines, dimStyle.Render(" … "+plural(n, "more failed check"))) } return lines } -// onPR shows the pull request that loadPR reads, unless a later read -// replaces it. After a read with a trailing request, onPR starts the next -// read. +// onPR shows the pull request that fetchPR fetched, unless a newer fetch +// has started since. If a request arrived during the fetch, it starts +// another fetch. func (m *model) onPR(msg prMsg) tea.Cmd { - f := &m.prf + f := &m.pr.fetch if msg.gen != f.gen { return nil } f.inFlight, f.cancel = false, nil var next tea.Cmd if f.trailing { - next = m.loadPR() + next = m.fetchPR() } - // As in herdr-reviewr, a failed read keeps the last good pull request. - // The end of the pull request is not a failure. - if msg.err != nil && m.pr.pr != nil && !errors.Is(msg.err, vcs.ErrNoPullRequest) { + // If a fetch fails, keep showing the last pull request that was + // fetched. ErrNoPR does not count as a failure. + if msg.err != nil && m.pr.pr != nil && !errors.Is(msg.err, vcs.ErrNoPR) { m.flash("refresh failed: " + msg.err.Error()) m.renderPR() return next } - m.pr = prState{pr: msg.pr} + m.pr.pr, m.pr.err = msg.pr, "" if msg.err != nil { m.pr.err = msg.err.Error() } m.renderPR() - // prPlace is from before a restart. - if p := m.prPlace; p != nil && msg.err == nil && msg.pr != nil { - m.prPlace = nil - m.prPane.restore(*p) + // Restore the scroll position saved before a restart. + if p := m.pr.place; p != nil && msg.err == nil && msg.pr != nil { + m.pr.place = nil + m.pr.pane.restore(*p) } return next } diff --git a/tui/preview.go b/tui/preview.go index ca4b9af..1c34673 100644 --- a/tui/preview.go +++ b/tui/preview.go @@ -9,44 +9,45 @@ import ( "github.com/rednafi/rexdiff/diff" ) -// searchShare is the percent of the space of the search that the results -// take. The preview takes the rest. The value comes from herdr-reviewr. -const searchShare = 50 +// searchPct is the percentage of the search height used for the results. +// The preview gets the rest. +const searchPct = 50 -// preview is the file of the selected result of the search. +// preview shows the file of the selected search result. type preview struct { path string - line int // the line of the code match, or 0 for a file + line int // the line of the code match, or 0 for a file name match width int - lines []string // the file with line numbers, or one note - hit int // the index in lines of the line of the match, or -1 - top int // the first line that shows - // center is true until the first draw. That draw puts the match in - // the middle. + lines []string // a single note, or nil + file *diff.Diff // the file rendered with line numbers, or nil + hit int // the index of the matching line, or -1 + top int // the first visible line + // center is true until the first draw, which puts the match in the + // middle. center bool } -// searchLines renders the search, inner columns wide, as herdr-reviewr -// lays it out. The first line has the input and the chips. Below it are -// the results, a rule with the name of the file, and the preview of the -// file. Row i of the list shows at line listY+i of the box. -func (m *model) searchLines(inner int) (lines []string, listY int) { +// searchLines renders the search, inner columns wide. The first line holds +// the input and the mode chips. Below it come the results, a rule with the +// file name, and the preview of the file. Row i of the list is at line +// itemsY+i of the box. +func (m *model) searchLines(inner int) (lines []string, itemsY int) { ov := m.overlay lines = []string{ov.searchBand(inner)} - // avail is the height of the results and the preview. It leaves out - // the box, the band, and the rule of the preview. + // avail is the height left for the results and the preview, after the + // box border, the input line and the preview rule. avail := max(m.h-4, 6) - 2 - results := splitAxis(avail, searchShare) + results := shareOf(avail, searchPct) lines = append(lines, paneRule("results", inner)) - rows, start := m.overlayRows(inner, results-1) - listY = len(lines) + 1 - start // 1 for the border + rows, start := m.overlayItems(inner, results-1) + itemsY = len(lines) + 1 - start // + 1 for the top border lines = append(lines, rows[:min(len(rows), results-1)]...) for len(lines) < results+1 { lines = append(lines, "") } pv := m.searchPreview(inner) h := avail - results - ov.search.previewY = len(lines) + 1 // 1 for the border + ov.search.previewY = len(lines) + 1 // + 1 for the top border if pv == nil { lines = append(lines, paneRule("preview", inner), dimStyle.Render(" no preview")) } else { @@ -56,41 +57,41 @@ func (m *model) searchLines(inner int) (lines []string, listY int) { for len(lines) < avail+2 { lines = append(lines, "") } - return lines, listY + return lines, itemsY } -// splitAxis returns the part of n that pct percent takes, as -// herdr-reviewr splits a pane. Each part gets at least 3 if n has room. -func splitAxis(n, pct int) int { +// shareOf returns pct percent of n. If n is 6 or more, both the share and +// the rest are at least 3. +func shareOf(n, pct int) int { if n < 6 { return n / 2 } return min(max(n*pct/100, 3), n-3) } -// paneRule returns a rule "─ label ───" with label, w columns wide. +// paneRule returns a rule "─ label ───" containing label, w columns wide. func paneRule(label string, w int) string { label = " " + label + " " rest := max(w-lipgloss.Width(label)-1, 0) return truncate(dimStyle.Render("─")+label+dimStyle.Render(strings.Repeat("─", rest)), w) } -// searchBand returns the first line of the search, inner columns wide. -// It has the input, and the chips at the right end. -func (o *overlay) searchBand(inner int) string { - chips := o.chips() - o.input.SetWidth(max(inner-lipgloss.Width(chips)-4, 1)) - in := o.input.View() +// searchBand returns the first line of the search, inner columns wide: the +// input, with the mode chips at the right end. +func (ov *overlay) searchBand(inner int) string { + chips := ov.chips() + ov.input.SetWidth(max(inner-lipgloss.Width(chips)-4, 1)) + in := ov.input.View() pad := max(inner-lipgloss.Width(in)-lipgloss.Width(chips), 1) return truncate(in+strings.Repeat(" ", pad)+chips, inner) } -// searchPreview returns the preview of the selected result of the search, -// width columns wide, or nil if no result is selected. It reads the file -// again only for another result or another width. +// searchPreview returns the preview of the selected search result, width +// columns wide, or nil if no result is selected. It reads the file again +// only when the result or the width changes. func (m *model) searchPreview(width int) *preview { s := &m.overlay.search - it := m.overlay.selected() + it := m.overlay.curItem() if it == nil || it.id == "" { s.preview = nil return nil @@ -107,10 +108,9 @@ func (m *model) searchPreview(width int) *preview { case err != nil || content == "": pv.lines = []string{dimStyle.Render(" no preview")} default: - o := m.diffOptions(0) - o.Width, o.Wrap = width-2, false // 2 for the mark of the match + o := diff.FileOptions{Width: width - 2, Cache: &m.cache} // - 2 for the match marker d := diff.RenderFile(it.id, content, o) - pv.lines = d.Lines + pv.file = d if it.line > 0 { pv.hit = slices.IndexFunc(d.Rows, func(r diff.Row) bool { return r.New == it.line && !r.Continued @@ -121,25 +121,33 @@ func (m *model) searchPreview(width int) *preview { return pv } -// show returns the h lines of pv that show. The line of the match has a -// mark. At the first draw, the match is in the middle. +// show returns the h visible lines of pv, with a marker on the matching +// line. On the first draw, the match is centred. func (pv *preview) show(h int) []string { if pv.center { pv.top, pv.center = max(pv.hit-h/2, 0), false } - pv.top = max(min(pv.top, len(pv.lines)-h), 0) + n := len(pv.lines) + if pv.file != nil { + n = len(pv.file.Rows) + } + pv.top = clampTop(pv.top, n, h) var out []string - for i := pv.top; i < len(pv.lines) && len(out) < h; i++ { + for i := pv.top; i < n && len(out) < h; i++ { mark := " " if i == pv.hit { - mark = cursorStyle.Render("▶ ") + mark = accentStyle.Render("▶ ") + } + if pv.file != nil { + out = append(out, mark+pv.file.Line(i)) + } else { + out = append(out, mark+pv.lines[i]) } - out = append(out, mark+pv.lines[i]) } return out } -// scroll moves the preview of the search by d lines. +// scroll scrolls the search preview by d lines. func (pv *preview) scroll(d int) { pv.center = false pv.top = max(pv.top+d, 0) diff --git a/tui/release.go b/tui/release.go index 01b4120..a1ead31 100644 --- a/tui/release.go +++ b/tui/release.go @@ -6,25 +6,25 @@ import ( tea "charm.land/bubbletea/v2" ) -// The footer tells the user about a newer release. A key or a click -// starts the update to it in the background. Then rexdiff starts again in -// the same pane, with the comments and the place of the user. The update -// package installs the release. This file shows the state of the update. +// When a newer release is available, the footer announces it. A key press +// or a click installs it in the background, and rexdiff then restarts in +// the same pane, keeping the comments and the user's position. Package +// update does the installing. -// updatePhase is the step of the update of rexdiff. +// updatePhase is the stage that a self-update has reached. type updatePhase int const ( - phaseIdle updatePhase = iota - phaseUpdating // the release installs in the background - phaseUpdated // rexdiff restarts when the user is ready + updateIdle updatePhase = iota + updateRunning // the release is installing in the background + updateDone // rexdiff restarts once the user is ready ) -// checkRelease returns a command that asks for the latest release. Its -// message is a releaseMsg if the release is newer. A failure shows nothing, -// because rexdiff works the same without the check. -func (m *model) checkRelease() tea.Cmd { - u, ctx := m.updater, m.ctx +// fetchRelease returns a command that checks for the latest release. The +// command returns a releaseMsg if that release is newer, and nil otherwise, +// including on failure. +func (m *model) fetchRelease() tea.Cmd { + u, ctx := m.installer, m.ctx return func() tea.Msg { r, newer, err := u.Latest(ctx) if err != nil || !newer { @@ -34,51 +34,52 @@ func (m *model) checkRelease() tea.Cmd { } } -// releaseBadge returns the text of the footer about m.release. +// releaseBadge returns the footer text about m.release. func (m *model) releaseBadge() string { - switch m.phase { - case phaseUpdating: + switch m.updatePhase { + case updateRunning: return fmt.Sprintf("updating rexdiff to %s…", m.release.Tag) - case phaseUpdated: + case updateDone: return fmt.Sprintf("rexdiff %s is installed. It starts when you are done", m.release.Tag) } return fmt.Sprintf("rexdiff %s is out: press %s or click here to update", m.release.Tag, firstKey(m.keys.Update)) } -// startUpdate starts the update to the release in the background. +// startUpdate starts installing the new release in the background. It +// does nothing if there is no release or an update has already started. func (m *model) startUpdate() tea.Cmd { - if m.release == nil || m.phase != phaseIdle { + if m.release == nil || m.updatePhase != updateIdle { return nil } - m.phase = phaseUpdating - u, ctx, r := m.updater, m.ctx, *m.release + m.updatePhase = updateRunning + u, ctx, r := m.installer, m.ctx, *m.release return func() tea.Msg { return updatedMsg{err: u.Install(ctx, r)} } } -// onUpdated prepares the restart, or tells why the update fails. After -// a failure, the user can try again. +// onUpdated marks the update as done so that rexdiff can restart, or shows +// why the update failed. After a failure, the user can try again. func (m *model) onUpdated(msg updatedMsg) { if msg.err != nil { - m.phase = phaseIdle + m.updatePhase = updateIdle m.flash("update failed: " + msg.err.Error()) return } - m.phase = phaseUpdated + m.updatePhase = updateDone } -// restartIfReady saves the resume state for the restart, and keeps its -// file in m.resumePath. It reports whether rexdiff can quit for the -// restart. It waits while the user writes a comment or uses an overlay. -// It also waits while a send runs, and while pending (the command of the -// last message) runs. Thus no work is lost. -func (m *model) restartIfReady(pending tea.Cmd) bool { - if m.mode != modeNormal || pending != nil || m.sends > 0 { +// restartIfUpdated saves the state to restore after the restart and +// stores its path in m.resumePath. It reports whether rexdiff can quit to +// restart. It returns false while the user is writing a comment or using +// an overlay, while a review is being sent, and while hasPending reports +// that the command returned for the last message is still to run. +func (m *model) restartIfUpdated(hasPending bool) bool { + if m.mode != modeNormal || hasPending || m.sends > 0 { return false } path, err := m.saveResume() if err != nil { - m.phase, m.release = phaseIdle, nil + m.updatePhase, m.release = updateIdle, nil m.flash("updated, but the save of your comments failed: " + err.Error() + ". Open rexdiff again for the new version") return false diff --git a/tui/render.go b/tui/render.go index 02cec37..ab6a881 100644 --- a/tui/render.go +++ b/tui/render.go @@ -1,7 +1,6 @@ package tui -// This file turns files into the lines of a pane. It renders diffs, the -// file viewer, and Markdown. +// Rendering of pane lines: diffs, files in the Files tab, and Markdown. import ( "cmp" @@ -9,117 +8,179 @@ import ( "fmt" "iter" "regexp" + "runtime" "slices" "strings" + "sync" + "sync/atomic" "charm.land/glamour/v2" "github.com/charmbracelet/x/ansi" + "github.com/yuin/goldmark/util" "github.com/rednafi/rexdiff/diff" + "github.com/rednafi/rexdiff/internal/diffview" "github.com/rednafi/rexdiff/internal/termtext" "github.com/rednafi/rexdiff/vcs" ) -// gutter is the width of the column for the cursor and the marks, at the -// left of the main pane. -const gutter = 2 +// gutter is the width of the column at the left of the main pane that +// holds the cursor and other markers. +const gutter = 1 -// The sizes of the file list, as in herdr-reviewr. At a side, the list -// takes listSidePct of the screen width by default, and stays between -// listMinPct and listMaxSidePct. Above or below, the list takes -// listStackPct of the body rows by default, and stays between listMinPct -// and listMaxStackPct. +// Sizes of the file list. At the left or right, it takes navigatorSidePct +// of the screen width by default, kept between minNavigatorPct and +// maxNavigatorSidePct. Above or below, it takes navigatorStackPct of the +// body rows by default, kept between minNavigatorPct and +// maxNavigatorStackPct. const ( - listSidePct = 32 - listStackPct = 25 - listMinPct = 15 - listMaxSidePct = 60 - listMaxStackPct = 50 + navigatorSidePct = 22 + maxNavigatorSideWidth = 40 // caps the default width, unless minNavigatorPct requires more + navigatorStackPct = 25 + minNavigatorPct = 15 + maxNavigatorSidePct = 60 + maxNavigatorStackPct = 50 ) -// listShown reports whether the file list shows. The PR tab has no file -// list. -func (m *model) listShown() bool { return !m.listHidden && m.tab != tabPR } +// navigatorShown reports whether the file list is visible. The PR tab has +// no file list. +func (m *model) navigatorShown() bool { return !m.navigatorHidden && m.tab != tabPR } -// sideWidth returns the width of the file list at a side, in columns. -// Without a width in columns, the list takes listSidePct of the screen. -func (m *model) sideWidth() int { - return m.clampSide(cmp.Or(m.listW, m.w*listSidePct/100)) +// navigatorSideWidth returns the width in columns of the file list when it +// is at the left or right. The default is navigatorSidePct of the screen, +// at most maxNavigatorSideWidth, and always within the bounds of +// clampNavigatorWidth. +func (m *model) navigatorSideWidth() int { + return m.clampNavigatorWidth(cmp.Or(m.navigatorWidthSet, min(m.w*navigatorSidePct/100, maxNavigatorSideWidth))) } -// clampSide returns w within the bounds of the width of the file list at -// a side. -func (m *model) clampSide(w int) int { - return min(max(w, m.w*listMinPct/100), m.w*listMaxSidePct/100) +// clampNavigatorWidth clamps w to the allowed width of the file list when +// it is at the left or right. +func (m *model) clampNavigatorWidth(w int) int { + return min(max(w, m.w*minNavigatorPct/100), m.w*maxNavigatorSidePct/100) } -// listWidth returns the width of the file list, or 0 if the list does not -// show. -func (m *model) listWidth() int { +// navigatorWidth returns the width of the file list, or 0 if it is not +// visible. +func (m *model) navigatorWidth() int { switch { - case !m.listShown(): + case !m.navigatorShown(): return 0 - case m.listPos.stacked(): + case m.navigatorPosition.stacked(): return m.w } - return m.sideWidth() + return m.navigatorSideWidth() } -// listHeight returns the number of body rows that the file list takes -// above or below the main pane, with its rule. The body has h rows. It -// returns 0 if the list does not show there, or if the rule leaves no -// row for the list. -func (m *model) listHeight(h int) int { - if !m.listShown() || !m.listPos.stacked() { +// navigatorHeight returns the number of body rows, including its rule, +// that the file list takes above or below the main pane, for a body of h +// rows. It returns 0 if the file list is not above or below, or if the +// rule and title would leave no room for a file. +func (m *model) navigatorHeight(h int) int { + if !m.navigatorShown() || !m.navigatorPosition.stacked() { return 0 } - if lh := splitAxis(h, m.listPct); lh > 1 { + if lh := shareOf(h, m.navigatorPct); lh > 2 { return lh } return 0 } -// mainMinWidth is the width of the main pane, with its gutter, if the -// file list leaves less, or if the terminal is narrower. -const mainMinWidth = 24 +// minMainWidth is the smallest width of the main pane, including its +// gutter. The pane keeps this width even if the file list or a narrow +// terminal leaves less room. +const minMainWidth = 24 -// mainWidth returns the width of the main pane, with its gutter. +// mainWidth returns the width of the main pane, including its gutter. func (m *model) mainWidth() int { w := m.w - if lw := m.listWidth(); lw > 0 && !m.listPos.stacked() { - w -= lw + sepWidth + if m.navigatorShown() && !m.navigatorPosition.stacked() { + w -= m.navigatorSideWidth() + sepWidth } - return max(w, mainMinWidth) + return max(w, minMainWidth) } -// mainHeight returns the number of rows of the main pane. +// mainHeight returns the number of rows in the main pane. func (m *model) mainHeight() int { return m.mainHeightOf(m.bodyHeight()) } -// mainHeightOf returns the number of rows of the main pane in a body of h -// rows. -func (m *model) mainHeightOf(h int) int { return h - m.listHeight(h) } +// mainHeightOf returns the number of rows in the main pane, not counting +// its title, for a body of h rows. +func (m *model) mainHeightOf(h int) int { return max(h-m.navigatorHeight(h)-m.titleHeight(), 0) } -// codeWidth returns the width of the main pane, without its gutter. +// titleHeight returns the number of lines in the title of the main pane. +// The PR tab has no title, because it shows no file. +func (m *model) titleHeight() int { + if m.tab == tabPR { + return 0 + } + return 1 +} + +// mainTitle renders the title of the main pane: the full path of the file +// being shown and, in the Changes tab, its added and deleted line counts. +// In rendered view, it notes a Markdown file that is too large to render. +// A path that is too long is cut at the start. +func (m *model) mainTitle() string { + var name, stat string + switch m.tab { + case tabChanges: + f := m.curChangedFile() + if f == nil { + return "" + } + name = f.Path + if f.OldPath != "" { + name = f.OldPath + " → " + f.Path + } + stat = f.stat() + case tabAllFiles: + // The pane has no path for a file that it cannot show, such as a + // binary file, but the title still names the file. + if m.allFiles.cur < len(m.allFiles.entries) { + name = m.allFiles.entries[m.allFiles.cur].Path + } + } + if name == "" { + return "" + } + if src, ok := m.markdownSource(); ok && m.rendered && !m.renderableMarkdown(src) { + stat = strings.TrimSpace(stat + " " + dimStyle.Render(noteMarkdownTooBig)) + } + room := max(m.mainWidth()-ansi.StringWidth(stat)-3, 1) + return " " + titleStyle.Render(cutStart(name, room)) + " " + stat +} + +// cutStart fits p into room columns. If p is too long, it cuts the start +// so that the file name stays visible. +func cutStart(p string, room int) string { + p = termtext.Quote(p) + if ansi.StringWidth(p) > room { + p = "…" + lastColumns(p, room-1) + } + return p +} + +// codeWidth returns the width of the main pane, not counting its gutter. func (m *model) codeWidth() int { return m.mainWidth() - gutter } -// rerender renders the current pane again, for example after a change of -// the layout, the wrap, or the width. The cursor and the selection stay on -// their source lines. A cursor on a header stays above the first line -// below the header. +// rerender renders the current pane again, for example after the layout, +// wrapping or width changes. The cursor and the selection stay on the same +// source lines. A cursor on a header row keeps the same distance above the +// first source line below it. func (m *model) rerender() { - m.sizeEditor() - p := m.cur() + m.sizeCommentInput() + p := m.curPane() next := p.cur - for next < len(p.rows) && m.target(next, diff.SideNew) == nil { + for next < len(p.rows) && m.targetAt(next, diff.SideNew) == nil { next++ } up := next - p.cur - cur, anchor := m.target(next, diff.SideNew), m.target(p.anchor, diff.SideNew) + cur, selStart := m.targetAt(next, diff.SideNew), m.targetAt(p.selStart, diff.SideNew) switch m.tab { case tabChanges: m.renderChanges() - case tabFiles: - m.renderViewer() + case tabAllFiles: + m.renderAllFiles() case tabPR: m.renderPR() } @@ -128,55 +189,62 @@ func (m *model) rerender() { p.cur = max(i-up, 0) } } - if anchor != nil { - if i := p.rowOf(anchor.side, anchor.line); i >= 0 { - p.anchor = i + if selStart != nil { + if i := p.rowOf(selStart.side, selStart.line); i >= 0 { + p.selStart = i } } } -// sizeEditor fits the comment box to the width of the main pane. -func (m *model) sizeEditor() { m.editor.SetWidth(max(m.mainWidth()-8, 20)) } +// sizeCommentInput sets the comment box width to fit the main pane. +func (m *model) sizeCommentInput() { m.commentInput.SetWidth(max(m.mainWidth()-8, 20)) } -// splitMinWidth is the narrowest code width that shows the split layout. -// It is the same as in herdr-reviewr: two halves of 60 columns, each with -// its line numbers, and a column between them. -const splitMinWidth = 135 +// minSplitWidth is the narrowest code width that allows the split layout: +// two halves of 60 columns, each with its line numbers, and a separator +// column. +const minSplitWidth = 135 -// splitAllowed reports whether the current file can show in the split -// layout. The file must be a diff in the Changes tab, with lines on both -// sides and a change. Rendered markdown cannot split. +// splitAllowed reports whether the current file can be shown in the split +// layout. It must be a diff in the Changes tab with content on both sides +// and an actual change. Rendered Markdown cannot be split. func (m *model) splitAllowed() bool { if m.tab != tabChanges { return false } - f := m.selectedChange() - return f != nil && f.Skip == nil && !m.isRendered(f) && - f.Old != "" && f.New != "" && f.Old != f.New + f := m.curChangedFile() + return f != nil && f.Err == nil && !m.renderedShown(f) && + f.OldText != "" && f.NewText != "" && f.OldText != f.NewText } -// splitShown reports whether the current file shows in the split layout. -// The user must choose split, and the pane must be wide enough. The choice -// stays, so a wider pane shows split again. +// splitShown reports whether the current file is shown in the split +// layout. The user must have chosen split, and the pane must be wide +// enough. The choice is kept, so the split returns when the pane is wide +// enough again. func (m *model) splitShown() bool { - return m.split && m.codeWidth() >= splitMinWidth && m.splitAllowed() + return m.split && m.codeWidth() >= minSplitWidth && m.splitAllowed() +} + +// renderedShown reports whether the Changes tab shows f as rendered +// Markdown. +func (m *model) renderedShown(f *changedFile) bool { + return m.rendered && isMarkdown(f.Path) && f.Status != vcs.StatusDeleted && m.renderableMarkdown(f.NewText) } -// isRendered reports whether the Changes tab shows f as rendered -// markdown. -func (m *model) isRendered(f *changedFile) bool { - return m.rendered && isMarkdown(f.Path) && f.Status != vcs.StatusDeleted +// fileOptions returns the options for rendering a file scrolled scrollX +// columns to the right. +func (m *model) fileOptions(scrollX int) diff.FileOptions { + return diff.FileOptions{Width: m.codeWidth(), ScrollX: scrollX, Wrap: m.wrap, Cache: &m.cache} } -// diffOptions returns the options to render a diff with sideways scroll -// xoff. -func (m *model) diffOptions(xoff int) diff.Options { +// diffOptions returns the options for rendering a diff scrolled scrollX +// columns to the right. +func (m *model) diffOptions(scrollX int) diff.Options { return diff.Options{ - Width: m.codeWidth(), - Offset: xoff, - Wrap: m.wrap, - Split: m.splitShown(), - Signs: m.cfg.DiffSigns, + Width: m.codeWidth(), + ScrollX: scrollX, + Wrap: m.wrap, + Split: m.splitShown(), + Signs: m.cfg.DiffSigns, Theme: diff.Theme{ Background: m.bg, Foreground: m.fg, @@ -187,21 +255,20 @@ func (m *model) diffOptions(xoff int) diff.Options { } } -// isMarkdown reports whether path names a markdown file. +// isMarkdown reports whether path names a Markdown file. func isMarkdown(path string) bool { p := strings.ToLower(path) return strings.HasSuffix(p, ".md") || strings.HasSuffix(p, ".markdown") } -// The notes in place of a file that rexdiff does not show. They are the -// same as in herdr-reviewr. +// Notes shown instead of a file that rexdiff cannot display. const ( noteBinary = "binary file · no line comments" noteTooBig = "file too large to show" ) -// fileNote returns the note for a file that vcs does not read, or "" if -// err has no note. err is the error of ReadFile, or File.Skip. +// fileNote returns the note for a file that vcs did not read, or "" if +// err has no matching note. err comes from ReadFile or File.Err. func fileNote(err error) string { switch { case errors.Is(err, vcs.ErrBinary): @@ -212,10 +279,10 @@ func fileNote(err error) string { return "" } -// renderChanges shows the selected file in the Changes tab. +// renderChanges renders the current file in the Changes tab. func (m *model) renderChanges() { - p := &m.changePane - f := m.selectedChange() + p := &m.changes.pane + f := m.curChangedFile() if f == nil { p.path = "" p.set(nil, nil) @@ -223,118 +290,546 @@ func (m *model) renderChanges() { } p.path = f.Path switch { - case f.Skip != nil: - p.setNote(fileNote(f.Skip)) - case f.Old == f.New: - // The change is a rename with no edit, or a change of the file mode. + case f.Err != nil: + p.setNote(fileNote(f.Err)) + case f.OldText == f.NewText: + // The change is a rename without edits, or a file mode change. note := "no change to the content" - if f.From != "" { - note = "renamed from " + termtext.Quote(f.From) + ", no change to the content" + if f.OldPath != "" { + note = "renamed from " + termtext.Quote(f.OldPath) + ", no change to the content" } p.setNote(note) - case m.isRendered(f): + case m.renderedShown(f): all := func(diff.Fold) bool { return true } - d := diff.Render(f.Path, f.Old, f.New, diff.Options{Expanded: all, Cache: &m.cache}) - m.setMarkdown(p, f.Old, f.New, d.Rows) + // Only the rows are needed, so the lines are not rendered. + d := diff.Render(f.Path, f.OldText, f.NewText, diff.Options{Expanded: all, Cache: &m.cache}) + m.setMarkdown(p, f.OldText, f.NewText, d.Rows) default: - if o := m.folds[f.Path]; o != nil && o.Old != f.oldHash { - delete(m.folds, f.Path) + if o := m.expandedFolds[f.Path]; o != nil && o.Old != f.oldHash { + delete(m.expandedFolds, f.Path) } - o := m.diffOptions(p.xoff) + o := m.diffOptions(p.scrollX) a := m.anchorOf(tabChanges) comments := slices.DeleteFunc(m.comments.All(), func(c *diff.Comment) bool { return c.Anchor != a }) - o.Expanded = func(fd diff.Fold) bool { return m.expanded(f.Path, comments, fd) } - p.setDiff(diff.Render(f.Path, f.Old, f.New, o)) + o.Expanded = func(fold diff.Fold) bool { return m.foldExpanded(f.Path, comments, fold) } + p.setDiff(diff.Render(f.Path, f.OldText, f.NewText, o)) } } -// setNote shows a dim note on one row that shows no source line. The -// pane keeps its path. +// setNote shows note dimmed on a single row with no source line. The pane +// keeps its path. func (p *pane) setNote(note string) { p.set([]string{dimStyle.Render(" " + note)}, []diff.Row{{}}) } -// renderViewer shows the selected file in the Files tab, even if the file -// does not change. -func (m *model) renderViewer() { - m.viewedPath = "" // no file has the path "", so refreshViewer renders - m.refreshViewer() +// renderAllFiles renders the current file in the Files tab, even if the +// file has not changed. It reads the file again only if a different file +// is selected or the last read failed. +func (m *model) renderAllFiles() { + af := &m.allFiles + if af.cur < len(af.entries) && af.entries[af.cur].Path == af.shownPath && af.shownErr == nil { + m.showFile(af.shownPath, af.shownText, nil) + return + } + af.shownPath = "" // no file has the path "", so reloadShownFile always renders + m.reloadShownFile() } -// refreshViewer shows the selected file in the Files tab if the file -// changes. -func (m *model) refreshViewer() { - p := &m.allPane - if m.allSel >= len(m.allFiles) { - p.path, m.viewedPath = "", "" +// reloadShownFile reads the current file in the Files tab and renders it +// again if it has changed. +func (m *model) reloadShownFile() { + p := &m.allFiles.pane + if m.allFiles.cur >= len(m.allFiles.entries) { + p.path, m.allFiles.shownPath = "", "" p.set(nil, nil) return } - path := m.allFiles[m.allSel].Path + path := m.allFiles.entries[m.allFiles.cur].Path content, err := m.repo.ReadFile(path) if err == nil { m.readErr = "" } - if err == nil && content == m.viewed && m.viewedPath == path { + shown := err == nil && m.allFiles.shownErr == nil && + content == m.allFiles.shownText && m.allFiles.shownPath == path + if shown { return } - m.viewed, m.viewedPath = content, path + m.allFiles.shownText, m.allFiles.shownPath, m.allFiles.shownErr = content, path, err + m.showFile(path, content, err) +} + +// showFile shows content, the file at path, in the Files tab. If err, the +// error from reading the file, is not nil, it shows a note instead. +func (m *model) showFile(path, content string, err error) { + p := &m.allFiles.pane p.path = path note := fileNote(err) + rendered := m.rendered && isMarkdown(path) && m.renderableMarkdown(content) + if note != "" || err != nil || rendered { + // The previous file may still be highlighted in the background. + m.cache.StopHighlighting() + } switch { case note != "": p.path = "" p.set([]string{dimStyle.Render(" " + note)}, nil) case err != nil: - // Without a watcher, each tick reads the file again. The log has - // each error once. + // Without a watcher, every tick reads the file again, so log each + // distinct error only once. if text := err.Error(); text != m.readErr { m.readErr = text m.log.Warn("read file failed", "path", path, "err", err) } p.path = "" p.set([]string{dimStyle.Render(" could not read this file")}, nil) - case m.rendered && isMarkdown(path): + case rendered: m.setMarkdown(p, "", content, nil) default: - p.setDiff(diff.RenderFile(path, content, m.diffOptions(p.xoff))) + p.setDiff(diff.RenderFile(path, content, m.fileOptions(p.scrollX))) } } -// markdown returns a glamour renderer for the terminal theme, or nil. The -// renderer wraps at wrap columns. The model keeps the last renderer, -// because a new one is slow to make. -func (m *model) markdown(wrap int) *glamour.TermRenderer { +// markdownRenderer returns a glamour renderer for the terminal theme that +// wraps at wrap columns, or nil if it cannot create one. The model caches +// the last renderer, because creating one is slow. +func (m *model) markdownRenderer(wrap int) *glamour.TermRenderer { style := "dark" if !m.dark() { style = "light" } - md := &m.md - if md.r != nil && md.style == style && md.wrap == wrap { - return md.r + renderer := &m.markdown + if renderer.r != nil && renderer.style == style && renderer.wrap == wrap { + return renderer.r } - r, err := glamour.NewTermRenderer( - glamour.WithStandardStyle(style), - glamour.WithWordWrap(wrap), - ) + r, err := newMarkdownRenderer(style, wrap) if err != nil { return nil } - *md = mdRenderer{r: r, style: style, wrap: wrap} + *renderer = markdownCache{r: r, style: style, wrap: wrap} return r } -// mdRenderer is a glamour renderer with its style and wrap width. -type mdRenderer struct { +// blockSourcesOf returns blockSources(diff.SplitLines(src)). The result for +// the most recent src is cached, because the title, rendersNothing and +// setMarkdown each ask for it. +func (m *model) blockSourcesOf(src string) (spans [][2]int, srcs []string, work int) { + c := &m.markdown.sources + if !c.done || c.src != src { + c.spans, c.srcs, c.work = blockSources(diff.SplitLines(src)) + c.src, c.done = src, true + } + return c.spans, c.srcs, c.work +} + +// hasMarkdownText reports whether any rendered block of src contains text, +// and so whether src as a whole does. It returns false if src contains +// "<", because HTML can span blocks or hide them, so the caller must +// render the whole of src. A src longer than maxMarkdownBlockBytes is too +// slow to render whole, so for it the blocks decide. +func hasMarkdownText(blocks [][]string, src string) bool { + if strings.Contains(src, "<") && len(src) <= maxMarkdownBlockBytes { + return false + } + for _, b := range blocks { + if slices.ContainsFunc(b, func(l string) bool { return !blankLine(l) }) { + return true + } + } + return false +} + +// blankLine reports whether the rendered line l shows no text. +func blankLine(l string) bool { + return strings.TrimSpace(ansi.Strip(l)) == "" +} + +// newMarkdownRenderer returns a glamour renderer with the given style that +// wraps at wrap columns. +func newMarkdownRenderer(style string, wrap int) (*glamour.TermRenderer, error) { + return glamour.NewTermRenderer( + glamour.WithStandardStyle(style), + glamour.WithWordWrap(wrap), + ) +} + +// markdownCache holds a glamour renderer with its style and wrap width. +// It also caches the blocks rendered by the last renderBlocks call, the +// texts rendered by the last renderPR call, the last rendersNothing result +// and the last blockSourcesOf result, because rendering a large file is +// slow. +type markdownCache struct { r *glamour.TermRenderer style string wrap int + + more []*glamour.TermRenderer // extra renderers set up like r, one per additional goroutine + blocks map[string][]string // the rendered lines of each block, keyed by its source + pr map[string][]string // the rendered lines of each PR text, keyed by its source + nothing struct { + src string + done bool // is holds the answer for src + is bool + } + sources struct { + src string + done bool // the fields below hold the answer for src + spans [][2]int + srcs []string + work int + } } -// renderMarkdown returns the lines of src, rendered with r. If r is nil or -// fails, renderMarkdown returns the lines of src as they are. +// minParallelBlocks is the number of uncached blocks per extra goroutine +// in renderBlocks. With fewer blocks than this, rendering uses one core. +const minParallelBlocks = 32 + +// renderBlocks returns the rendered lines of each source in srcs, as +// renderMarkdown would return them with r, which is the renderer in +// m.markdown. Blocks rendered by the previous call come from the cache. +// Many blocks are rendered in parallel, each goroutine using its own +// renderer. All goroutines finish before renderBlocks returns. +func (m *model) renderBlocks(r *glamour.TermRenderer, srcs []string) [][]string { + mc := &m.markdown + out := make([][]string, len(srcs)) + var todo []int // indexes of the blocks that are not cached + for i, src := range srcs { + if lines, ok := mc.blocks[src]; ok && mc.r == r && r != nil { + out[i] = lines + } else { + todo = append(todo, i) + } + } + workers := min(runtime.GOMAXPROCS(0), len(todo)/minParallelBlocks+1) + if r == nil || mc.r != r { + workers = 1 + } + // Each goroutine needs its own renderer. The first one uses r. + rs := []*glamour.TermRenderer{r} + for len(mc.more) < workers-1 { + more, err := newMarkdownRenderer(mc.style, mc.wrap) + if err != nil { + break + } + mc.more = append(mc.more, more) + } + rs = append(rs, mc.more[:min(len(mc.more), workers-1)]...) + var next atomic.Int64 + var wg sync.WaitGroup + for _, wr := range rs { + wg.Go(func() { + for k := int(next.Add(1)) - 1; k < len(todo); k = int(next.Add(1)) - 1 { + out[todo[k]] = renderBlock(wr, srcs[todo[k]], mc.wrap) + } + }) + } + wg.Wait() + if r != nil && mc.r == r { + mc.blocks = make(map[string][]string, len(srcs)) + for i, src := range srcs { + mc.blocks[src] = out[i] + } + } + return out +} + +// Limits on the Markdown that rexdiff renders, because glamour takes time +// and memory in proportion to the work that markdownWork counts, and a +// single slow render blocks the screen. +// +// A file longer than maxMarkdownBytes shows as its source diff, with a +// note in the title. So does a file whose blocks, with the link +// definitions that each block gets, add up to more than maxMarkdownWork. +// +// A block longer than maxMarkdownBlockBytes or with more work than +// maxMarkdownBlockWork, such as a huge table or a long list nested three +// deep, shows as source within the rendered file. +// +// A block whose block quotes and lists nest more than maxMarkdownDepth +// deep also shows as source, because glamour slows down sharply once the +// indentation is wider than the pane. +// +// A link definition longer than maxLinkDefBytes is not added to the +// blocks that refer to it, so its references show as text. +const ( + maxMarkdownBytes = 512 << 10 + maxMarkdownWork = 2 << 20 + maxMarkdownBlockBytes = 64 << 10 + maxMarkdownBlockWork = 128 << 10 + maxMarkdownDepth = 12 + maxLinkDefBytes = 2 << 10 +) + +// Notes for Markdown that rexdiff does not render. +const ( + noteMarkdownTooBig = "markdown too large to render" + noteBlockTooBig = " block too large to render · source below" + noteBlockTooDeep = " block nested too deeply to render · source below" +) + +// renderableMarkdown reports whether src is small enough to show +// rendered. The title asks on every draw, so the work comes from the +// cache of blockSourcesOf. +func (m *model) renderableMarkdown(src string) bool { + if len(src) > maxMarkdownBytes { + return false + } + _, _, work := m.blockSourcesOf(src) + return work <= maxMarkdownWork +} + +// blockNote returns the note to show instead of the rendered block +// source src, or "" if the block can be rendered. work is the work of +// rendering it, as markdownWork counts it, or 0 if it is not rendered. +func blockNote(src string) (note string, work int) { + if len(src) > maxMarkdownBlockBytes { + return noteBlockTooBig, 0 + } + if markdownDepth(src) > maxMarkdownDepth { + return noteBlockTooDeep, 0 + } + if work = markdownWork(src); work > maxMarkdownBlockWork { + return noteBlockTooBig, 0 + } + return "", work +} + +// renderBlock returns the lines of the block source src rendered with r, +// as renderMarkdown does. A block that blockNote rejects is not rendered: +// it shows as its note followed by its source, wrapped to width columns. +func renderBlock(r *glamour.TermRenderer, src string, width int) []string { + if note, _ := blockNote(src); note != "" { + return sourceLines(note, src, width) + } + return renderMarkdown(r, src) +} + +// sourceMargin is the margin of rendered text, which sourceLines gives +// to each line of source. +const sourceMargin = " " + +// sourceLines returns note, dimmed, followed by the lines of the Markdown +// src with tabs expanded and the margin of rendered text. A line wider +// than width columns, counting the margin, is wrapped, and each part has +// the margin. +func sourceLines(note, src string, width int) []string { + room := max(width-len(sourceMargin), 1) + var out []string + for l := range strings.SplitSeq(wrapWords(note, room), "\n") { + out = append(out, sourceMargin+dimStyle.Render(l)) + } + for l := range strings.SplitSeq(diffview.ExpandTabs(strings.TrimRight(src, "\n")), "\n") { + for part := range strings.SplitSeq(ansi.Hardwrap(l, room, true), "\n") { + out = append(out, sourceMargin+part) + } + } + return out +} + +// markdownWork returns an estimate of the work that glamour does to +// render the Markdown src. Each line counts its length times the square +// of its depth, as depthScanner counts it, because glamour takes that +// much longer on each item of a nested list. Each reference to a link +// definition in src adds the length of the definition, because the output +// repeats it there. Any text in brackets counts as a reference. +func markdownWork(src string) int { + work := 0 + var ds depthScanner + for l := range strings.Lines(src) { + d := max(ds.next(l), 1) + work += len(l) * d * d + } + defs := linkDefs(strings.Split(src, "\n"), len(src)) + if len(defs) == 0 { + return work + } + size := make(map[string]int, len(defs)) + for label, lines := range defs { + for _, l := range lines { + size[label] += len(l) + } + } + for _, m := range linkLabel.FindAllStringSubmatch(src, -1) { + work += size[util.ToLinkReference([]byte(m[1]))] + } + return work +} + +// markdownDepth returns a depth that block quotes and lists in the +// Markdown src do not nest beyond: the largest depth of any of its lines, +// as depthScanner counts it. +func markdownDepth(src string) int { + depth := 0 + var ds depthScanner + for l := range strings.Lines(src) { + depth = max(depth, ds.next(l)) + } + return depth +} + +// depthScanner counts how deeply each line of a Markdown block may nest, +// one line after another. The count is never less than the real depth, +// so that it is safe to use as a limit, but it stays close for ordinary +// Markdown. +// +// Each quote or list marker at the start of a line counts as one level, +// whatever its width, so "1. " and "- " count the same. Indentation +// counts as one level for each list item above whose text starts within +// it: a line indented to the text of an item belongs to that item. The +// scanner does not track when an item ends, so it counts every item seen +// so far in the block, which can only count too many. +// +// Inside a fenced code block, the indentation of the code does not +// count, only the indentation up to the column of the fence. A line with +// text left of that column, or with a list marker left of it, ends the +// code block, as it does in CommonMark, and counts as usual. +type depthScanner struct { + // items[c] reports whether the text of a list item seen so far starts + // at column c. + items []bool + // fence is the fence that opened the current code block, such as + // "```", or "" outside a code block. fenceCol is its column. + fence string + fenceCol int +} + +// next returns the depth of the line l, which follows the lines given +// before it. +func (ds *depthScanner) next(l string) int { + depth, col := 0, 0 + gapStart := 0 // the column where the current run of blanks starts + // gap counts the list items whose text starts in the run of blanks + // that ends at col, and starts a new run. + gap := func() { + for c := gapStart + 1; c <= col && c < len(ds.items); c++ { + if ds.items[c] { + depth++ + } + } + gapStart = col + } + // marker counts a marker that ends at l[i], skips the space after it, + // and returns the index after that. + marker := func(i, width int) int { + gap() + depth++ + col += width + if i < len(l) && l[i] == ' ' { + i++ + col++ + } + gapStart = col + return i + } + inCode := ds.fence != "" + i := 0 + for i < len(l) { + if inCode && col >= ds.fenceCol { + // The rest of the line is code, unless it closes the block. + if strings.HasPrefix(strings.TrimLeft(l[i:], " \t"), ds.fence) { + ds.fence = "" + } + col = ds.fenceCol + gap() + return depth + } + c := l[i] + if c == ' ' || c == '\t' { + col++ + if c == '\t' { + col += diffview.TabWidth - 1 + } + i++ + continue + } + if c == '>' { + i = marker(i+1, 1) + continue + } + if n := listMarker(l[i:]); n > 0 { + // A list marker left of the fence ends the code block. + inCode, ds.fence = false, "" + i = marker(i+n, n) + ds.addItem(col) + continue + } + break + } + gap() + // Text left of the fence, or a line of only blanks and markers, ends + // the code block only if it has text. + if inCode && strings.TrimSpace(l[i:]) != "" { + ds.fence = "" + } + if ds.fence == "" { + ds.openFence(l[i:], col) + } + return depth +} + +// addItem records that the text of a list item starts at column col. +func (ds *depthScanner) addItem(col int) { + if col >= len(ds.items) { + ds.items = append(ds.items, make([]bool, col+1-len(ds.items))...) + } + ds.items[col] = true +} + +// openFence starts a code block if rest, the text of a line that starts +// at column col, opens a fence. A fence indented four or more columns +// past the text of the nearest list item is code, not a fence. +func (ds *depthScanner) openFence(rest string, col int) { + t := strings.TrimLeft(rest, " \t") + indent := col + len(rest) - len(t) // tabs inside the fence line are rare, so count them as one + if !strings.HasPrefix(t, "```") && !strings.HasPrefix(t, "~~~") { + return + } + if t[0] == '`' && strings.Contains(strings.TrimLeft(t, "`"), "`") { + return // a backtick fence has no backtick in its info string + } + base := 0 // the column of the text of the nearest list item + for c := min(indent, len(ds.items)-1); c > 0; c-- { + if ds.items[c] { + base = c + break + } + } + if indent-base >= 4 { + return + } + n := len(t) - len(strings.TrimLeft(t, t[:1])) + ds.fence, ds.fenceCol = t[:n], indent +} + +// listMarker returns the width of the list marker at the start of s, or +// 0 if s does not start with one. A marker is "-", "*" or "+", or up to +// nine digits followed by "." or ")", and must be followed by a blank or +// the end of the line. +func listMarker(s string) int { + n := 0 + switch { + case s == "": + return 0 + case s[0] == '-' || s[0] == '*' || s[0] == '+': + n = 1 + default: + for n < len(s) && n < 9 && s[n] >= '0' && s[n] <= '9' { + n++ + } + if n == 0 || n == len(s) || s[n] != '.' && s[n] != ')' { + return 0 + } + n++ + } + if n < len(s) && strings.IndexByte(" \t\r\n", s[n]) < 0 { + return 0 + } + return n +} + +// renderMarkdown returns the lines of src rendered with r. If r is nil or +// rendering fails, it returns the lines of src unchanged. func renderMarkdown(r *glamour.TermRenderer, src string) []string { if r != nil { if out, err := r.Render(src); err == nil { @@ -344,85 +839,101 @@ func renderMarkdown(r *glamour.TermRenderer, src string) []string { return strings.Split(strings.TrimRight(src, "\n"), "\n") } -// markdownSource returns the markdown text of the current file. ok is -// false if the file is not markdown, or if it has no text to render. +// markdownSource returns the Markdown text of the current file. ok is +// false if the file is not Markdown, has been deleted, or is empty. func (m *model) markdownSource() (src string, ok bool) { switch m.tab { case tabChanges: - f := m.selectedChange() + f := m.curChangedFile() if f == nil || !isMarkdown(f.Path) || f.Status == vcs.StatusDeleted { return "", false } - src = f.New - case tabFiles: - if m.allSel >= len(m.allFiles) || !isMarkdown(m.allFiles[m.allSel].Path) { + src = f.NewText + case tabAllFiles: + if m.allFiles.cur >= len(m.allFiles.entries) || !isMarkdown(m.allFiles.entries[m.allFiles.cur].Path) { return "", false } - src = m.viewed + src = m.allFiles.shownText } return src, src != "" } -// rendersNothing reports whether the markdown src renders no text. +// rendersNothing reports whether the Markdown src renders to no visible +// text. The result for the most recent src is cached. A src too large to +// render counts as text, so that m still switches the view and the title +// says why the file shows as source. func (m *model) rendersNothing(src string) bool { - for _, l := range renderMarkdown(m.markdown(m.codeWidth()-2), termtext.Plain(src)) { - if strings.TrimSpace(ansi.Strip(l)) != "" { - return false - } + if !m.renderableMarkdown(src) { + return false + } + r := m.markdownRenderer(m.codeWidth() - 2) + n := &m.markdown.nothing + if r != nil && m.markdown.r == r && n.done && n.src == src { + return n.is } - return true + _, srcs, _ := m.blockSourcesOf(src) + is := !hasMarkdownText(m.renderBlocks(r, srcs), src) + if is && len(src) <= maxMarkdownBlockBytes { + lines := renderBlock(r, termtext.Plain(src), m.markdown.wrap) + is = !slices.ContainsFunc(lines, func(l string) bool { return !blankLine(l) }) + } + if r != nil && m.markdown.r == r { + n.src, n.done, n.is = src, true, is + } + return is } -// setMarkdown shows src as rendered markdown, block by block, as -// herdr-reviewr does. rows are the source rows that the view stands for, -// with old as their old side and src as their new side. If rows is nil, -// no line of src changes. Each rendered line shows the first source line -// of its block. The blank line after a block shows its last source line. -// A comment on a block covers all its lines. A block with a change has -// the bar. A changed block that renders nothing, and the lines of a -// removed block, show as one dim marker row. -func (m *model) setMarkdown(p *pane, old, src string, rows []diff.Row) { - lines, oldLines := diff.Lines(src), diff.Lines(old) +// setMarkdown shows newText in p as rendered Markdown, block by block, with +// a change bar on each changed block. rows are the diff rows from oldText +// to newText, or nil if nothing changed. Each rendered line maps to the +// first source line of its block and the blank line after it to the last, +// so a comment on a block covers it all. A removed block, or a changed one +// that renders nothing, shows as a dim marker line. +func (m *model) setMarkdown(p *pane, oldText, newText string, rows []diff.Row) { + lines, oldLines := diff.SplitLines(newText), diff.SplitLines(oldText) if rows == nil { for n := range lines { rows = append(rows, diff.Row{Kind: diff.KindEqual, New: n + 1}) } } - // Each block gets the link reference definitions of all the blocks. - var defs []string - for _, l := range lines { - if linkDef.MatchString(l) { - defs = append(defs, l) - } - } - refs := "\n\n" + strings.Join(defs, "\n") - r := m.markdown(m.codeWidth() - 2) + ix := newRowIndex(rows) + r := m.markdownRenderer(m.codeWidth() - 2) var out []string var outRows []diff.Row - blank := func(l string) bool { return strings.TrimSpace(ansi.Strip(l)) == "" } - // removed adds a marker row for the deleted lines after the new line - // at, from lo to hi. + // removed adds a marker row for the lines deleted after new lines lo + // up to, but not including, hi. removed := func(lo, hi int) { - if n := removedLines(rows, oldLines, lo, hi); n > 0 { - row := diff.Row{Kind: diff.KindEqual, New: max(lo, 1), Continued: true} + if n := ix.deletedLines(oldLines, lo, hi); n > 0 { + // The marker counts as a deleted row, so that ] and [ stop at it. + // It is a line of its own, so that the cursor can rest on it. + // It maps to the line before the removed lines, but shows no + // comments, as removedMarker explains. + row := diff.Row{Kind: diff.KindDeleted, New: max(lo, 1)} + blank := row + blank.Kind, blank.Continued = diff.KindEqual, true text := fmt.Sprintf(" − %s removed", plural(n, "line")) - out = append(out, delStyle.Render("▌")+dimStyle.Render(text), "") - outRows = append(outRows, row, row) + out = append(out, deletedStyle.Render("▎")+dimStyle.Render(text), "") + outRows = append(outRows, row, blank) } } see := m.keys.Rendered.Help().Key - prev := 0 // the last line of the block before - for first, last := range markdownBlocks(lines) { - removed(prev, first) - prev = last - block := renderMarkdown(r, termtext.Plain(strings.Join(lines[first-1:last], "\n")+refs)) - for len(block) > 0 && blank(block[0]) { + // Render all blocks up front, so that they can be rendered in + // parallel. + spans, srcs, _ := m.blockSourcesOf(newText) + blocks := m.renderBlocks(r, srcs) + prevRows := 0 // the last line of the previous block + for k, span := range spans { + first, last := span[0], span[1] + removed(prevRows, first) + prevRows = last + block := blocks[k] + for len(block) > 0 && blankLine(block[0]) { block = block[1:] } - for len(block) > 0 && blank(block[len(block)-1]) { + for len(block) > 0 && blankLine(block[len(block)-1]) { block = block[:len(block)-1] } - bar, n := changeBar(rows, first, last) + bar, n := ix.changeBar(first, last) switch { case len(block) > 0: case n == 1: @@ -433,35 +944,184 @@ func (m *model) setMarkdown(p *pane, old, src string, rows []diff.Row) { default: continue } + // The lines of a changed block count as changed rows, so that ] + // and [ stop at the block. + kind := diff.KindEqual + if bar != "" { + kind = diff.KindChanged + } for i, l := range block { if bar != "" { l = bar + ansi.TruncateLeft(l, 1, "") } out = append(out, l) - outRows = append(outRows, diff.Row{Kind: diff.KindEqual, New: first, Continued: i > 0}) + outRows = append(outRows, diff.Row{Kind: kind, New: first, Continued: i > 0}) } out = append(out, "") outRows = append(outRows, diff.Row{Kind: diff.KindEqual, New: last, Continued: true}) } - removed(prev, len(lines)+1) + removed(prevRows, len(lines)+1) p.set(out, outRows) - p.src = rows + p.srcRows = rows } -// linkDef matches the first line of a link reference definition. -var linkDef = regexp.MustCompile(`^\s{0,3}\[[^\]]+\]:`) +// removedMarker reports whether row i of p belongs to the marker that +// rendered Markdown shows for removed lines. The marker maps to the line +// before the removed lines, which the block above also shows, so the +// comments on that line show only below the block, not twice. +func (p *pane) removedMarker(i int) bool { + return p.srcRows != nil && i >= 0 && i < len(p.rows) && p.rows[p.lineStart(i)].Kind == diff.KindDeleted +} -// removedLines returns the number of deleted lines of old, not blank, -// that rows put after a new line from lo to hi, hi not included. A -// deletion right before a new line is a change of that line, not a -// removal. -func removedLines(rows []diff.Row, old []string, lo, hi int) int { - n, run, at := 0, 0, 0 // at is the last new line before the row - for _, r := range rows { +// blockSources returns the first and last line numbers, counting from 1, +// of each block in the Markdown lines, and the source to render for each +// block. A block's source includes the link reference definitions in +// lines whose labels appear in the block, so that its reference links +// resolve, unless they would make the block too large to render. Only +// definitions of at most maxLinkDefBytes are included, and none in a +// block that blockNote rejects. work is the sum of the work of the blocks +// that are rendered, as markdownWork counts it. Once work exceeds +// maxMarkdownWork, blockSources stops and returns the blocks so far. +func blockSources(lines []string) (spans [][2]int, srcs []string, work int) { + defs := linkDefs(lines, maxLinkDefBytes) + for first, last := range markdownBlocks(lines) { + src := strings.Join(lines[first-1:last], "\n") + if note, _ := blockNote(src); note == "" { + if used := usedDefs(src, defs, maxMarkdownBlockBytes-len(src)); len(used) > 0 { + with := src + "\n\n" + strings.Join(used, "\n") + if note, _ := blockNote(with); note == "" { + src = with + } + } + } + src = termtext.Plain(src) + _, w := blockNote(src) + work += w + spans = append(spans, [2]int{first, last}) + srcs = append(srcs, src) + if work > maxMarkdownWork { + break + } + } + return spans, srcs, work +} + +// linkDefs returns the lines of link reference definitions in lines that +// are at most maxLen bytes long, by label. +func linkDefs(lines []string, maxLen int) map[string][]string { + defs := map[string][]string{} // the definition lines of each label + for _, l := range lines { + if len(l) > maxLen { + continue + } + if m := linkDef.FindStringSubmatch(l); m != nil { + label := util.ToLinkReference([]byte(m[1])) + defs[label] = append(defs[label], l) + } + } + return defs +} + +// usedDefs returns the lines in defs whose labels appear in brackets in +// the Markdown block src. It matches labels as CommonMark does, ignoring +// case and runs of white space. Text in brackets that is not a link only +// adds a definition that the block does not use. It returns nil if the +// lines would take more than limit bytes. +func usedDefs(src string, defs map[string][]string, limit int) []string { + if len(defs) == 0 { + return nil + } + var out []string + size := 0 + seen := map[string]bool{} + for _, m := range linkLabel.FindAllStringSubmatch(src, -1) { + label := util.ToLinkReference([]byte(m[1])) + if seen[label] { + continue + } + seen[label] = true + for _, l := range defs[label] { + if size += len(l) + 1; size > limit { + return nil + } + out = append(out, l) + } + } + return out +} + +// linkDef matches the first line of a link reference definition and +// captures its label. linkLabel matches text in brackets that can be a +// link label, which cannot hold an unescaped bracket, and captures it. +var ( + linkDef = regexp.MustCompile(`^\s{0,3}\[([^\]]+)\]:`) + linkLabel = regexp.MustCompile(`\[((?:[^\[\]\\]|\\.)+)\]`) +) + +// rowIndex finds the rows for a range of new lines without scanning every +// row. key[i] is the new line of row i, or the last new line before it for +// a deleted row. at[i] is the last new line before row i, and deleted[i] +// reports whether row i follows deleted rows. If the keys ever decrease, +// each lookup scans all the rows. +type rowIndex struct { + rows []diff.Row + key []int + at []int + deleted []bool + monotone bool // the keys never decrease +} + +// newRowIndex builds a rowIndex for rows. +func newRowIndex(rows []diff.Row) *rowIndex { + ix := &rowIndex{ + rows: rows, key: make([]int, len(rows)), at: make([]int, len(rows)), + deleted: make([]bool, len(rows)), monotone: true, + } + at, del, key := 0, false, 0 + for i, r := range rows { + ix.at[i], ix.deleted[i] = at, del + switch { + case r.Continued: + case r.Kind == diff.KindDeleted: + key, del = at, true + default: + key, del, at = r.New, false, r.New + } + if i > 0 && key < ix.key[i-1] { + ix.monotone = false + } + ix.key[i] = key + } + return ix +} + +// first returns the first row whose key is at least line, or 0 if the keys +// are not monotone. +func (ix *rowIndex) first(line int) int { + if !ix.monotone { + return 0 + } + i, _ := slices.BinarySearch(ix.key, line) + return i +} + +// deletedLines returns the number of non-blank lines of oldLines that the +// rows delete right after a new line in the range lo to hi, not including +// hi. Deleted lines directly followed by an added or changed line count as +// a change to that line, not as a removal. +func (ix *rowIndex) deletedLines(oldLines []string, lo, hi int) int { + // Rows before s have keys below lo, so neither they nor deletions + // before them can add to the count. + s := ix.first(lo) + n, run, at := 0, 0, 0 // at is the last new line before the current row + if s < len(ix.rows) { + at = ix.at[s] + } + for _, r := range ix.rows[s:] { switch { case r.Continued: - case r.Kind == diff.KindDelete: - if at >= lo && at < hi && r.Old <= len(old) && strings.TrimSpace(old[r.Old-1]) != "" { + case r.Kind == diff.KindDeleted: + if at >= lo && at < hi && r.Old <= len(oldLines) && strings.TrimSpace(oldLines[r.Old-1]) != "" { run++ } default: @@ -469,14 +1129,17 @@ func removedLines(rows []diff.Row, old []string, lo, hi int) int { n += run } run, at = 0, r.New + if ix.monotone && at >= hi { + return n // all later rows have keys of hi or more + } } } return n + run } -// markdownBlocks yields the first and the last line of each block of -// markdown lines, from 1. A blank line outside a code fence ends a block, -// unless the next line is indented, as in a list item. +// markdownBlocks yields the first and last line numbers, counting from 1, +// of each block in the Markdown lines. A blank line outside a code fence +// ends a block, unless the next line is indented, as in a list item. func markdownBlocks(lines []string) iter.Seq2[int, int] { return func(yield func(int, int) bool) { first, last, fence := 0, 0, "" @@ -511,20 +1174,26 @@ func markdownBlocks(lines []string) iter.Seq2[int, int] { } } -// changeBar returns the bar for the source lines first to last, or "" if -// rows do not change them. The bar is green if rows only add lines there. -// It is yellow if rows also change or delete a line there. n is the -// number of the changed lines there, as herdr-reviewr counts them: the -// new lines, or else the deleted lines. -func changeBar(rows []diff.Row, first, last int) (bar string, n int) { +// changeBar returns the change bar for source lines first to last, or "" +// if the rows do not change them. The bar is green if lines were only +// added there, and yellow if any line there was also changed or deleted. +// n is the number of changed lines: the added or changed new lines if +// there are any, and otherwise the deleted lines. +func (ix *rowIndex) changeBar(first, last int) (bar string, n int) { + // Rows before s have keys below first, so they cannot affect the + // result. + s := ix.first(first) added, changed, deleted := 0, false, false - gone := 0 // the deleted lines there - at := 0 // the last new line before the row - for _, r := range rows { + gone := 0 // the number of deleted lines in the range + at := 0 // the last new line before the current row + if s < len(ix.rows) { + at, deleted = ix.at[s], ix.deleted[s] + } + for _, r := range ix.rows[s:] { if r.Continued { continue } - if r.Kind == diff.KindDelete { + if r.Kind == diff.KindDeleted { deleted = true if at >= first && at < last { changed = true @@ -534,7 +1203,7 @@ func changeBar(rows []diff.Row, first, last int) (bar string, n int) { } if r.New >= first && r.New <= last && r.Kind != diff.KindEqual { added++ - changed = changed || deleted || r.Kind == diff.KindChange + changed = changed || deleted || r.Kind == diff.KindChanged } deleted, at = false, r.New if at >= last { @@ -544,9 +1213,9 @@ func changeBar(rows []diff.Row, first, last int) (bar string, n int) { n = cmp.Or(added, gone) switch { case changed: - return noteStyle.Render("▌"), n + return noteStyle.Render("▎"), n case added > 0: - return addStyle.Render("▌"), n + return addedStyle.Render("▎"), n } return "", 0 } diff --git a/tui/resume.go b/tui/resume.go index e63959f..dfd044a 100644 --- a/tui/resume.go +++ b/tui/resume.go @@ -8,52 +8,51 @@ import ( "github.com/rednafi/rexdiff/diff" "github.com/rednafi/rexdiff/internal/proc" - "github.com/rednafi/rexdiff/vcs" ) -// After an update, rexdiff starts again in the same terminal. The old -// program saves the comments and the place of the user in a file. The new -// program reads the file, so that the user continues from the same place. +// After an update, rexdiff restarts in the same terminal. The old process +// saves the comments and the user's position to a file, and the new +// process reads that file and carries on from the same position. -// resumeState holds the comments, the scope, the view, the expanded folds, -// and the places in the panes for a restart. +// resumeState holds what a restart must keep: the comments, the scope, the +// view settings, the expanded folds and the position in each pane. type resumeState struct { Tab tab `json:"tab"` Scope Scope `json:"scope"` Base string `json:"base"` - From string `json:"from"` - To string `json:"to"` + From string `json:"from"` // the oldest commit in the commits scope + To string `json:"to"` // the newest commit in the commits scope Turn *resumeTurn `json:"turn"` - // The state keeps the files by path, because the lists can change in a - // restart. + // Files are stored by path, because the file lists can change during + // a restart. ChangePath string `json:"change_path"` - FilePath string `json:"file_path"` + FilePath string `json:"file_path"` // the file shown in the Files tab Changes resumePane `json:"changes"` - Viewer resumePane `json:"viewer"` + Viewer resumePane `json:"viewer"` // the pane of the Files tab PR resumePane `json:"pr"` Split bool `json:"split"` Wrap bool `json:"wrap"` Rendered bool `json:"rendered"` ListPos position `json:"list_pos"` - // ListLeft is the place of the list in the state of an older version. - // Then ListPos is "". + // ListLeft is the file list position from older versions, which leave + // ListPos "". ListLeft bool `json:"list_left,omitzero"` ListHidden bool `json:"list_hidden"` FocusList bool `json:"focus_list"` ListW int `json:"list_w"` ListPct int `json:"list_pct,omitzero"` - Folds map[string]*openFolds `json:"folds"` + Folds map[string]*expandedFolds `json:"folds"` Comments *diff.Comments `json:"comments"` LastSent string `json:"last_sent"` Beside string `json:"beside"` } -// resumeTurn is a [turnState], with exported fields for JSON. The state -// of an older version can have the member "block", which Unmarshal skips. +// resumeTurn is a [turnState] with exported fields for JSON. State from an +// older version may contain a "block" member, which Unmarshal ignores. type resumeTurn struct { App string `json:"app"` Tree string `json:"tree"` @@ -61,42 +60,42 @@ type resumeTurn struct { At time.Time `json:"at"` } -// resumePane is the place in a pane. +// resumePane is the cursor and scroll position in a pane. type resumePane struct { Cur int `json:"cur"` Top int `json:"top"` - Xoff int `json:"xoff"` + Xoff int `json:"xoff"` // the horizontal scroll } -// place returns the place of p, for the resume state. -func (p *pane) place() resumePane { return resumePane{Cur: p.cur, Top: p.top, Xoff: p.xoff} } +// place returns the position of p, for the resume state. +func (p *pane) place() resumePane { return resumePane{Cur: p.cur, Top: p.top, Xoff: p.scrollX} } -// restore moves p to the place s, within its lines. +// restore moves p to the position s, clamped to its lines. func (p *pane) restore(s resumePane) { - last := max(len(p.lines)-1, 0) - p.cur, p.top, p.xoff = min(s.Cur, last), min(s.Top, last), s.Xoff + p.cur, p.top, p.scrollX = min(s.Cur, p.last()), min(s.Top, p.last()), s.Xoff } -// saveResume writes the state to a new file, and returns its path. +// saveResume writes the resume state to a new temporary file and returns +// its path. func (m *model) saveResume() (string, error) { s := resumeState{ Tab: m.tab, Scope: m.scope, Base: m.base, - From: m.from, - To: m.to, - Changes: m.changePane.place(), - Viewer: m.allPane.place(), - PR: m.prPane.place(), + From: m.oldest, + To: m.newest, + Changes: m.changes.pane.place(), + Viewer: m.allFiles.pane.place(), + PR: m.pr.pane.place(), Split: m.split, Wrap: m.wrap, Rendered: m.rendered, - ListPos: m.listPos, - ListHidden: m.listHidden, - FocusList: m.focusList, - ListW: m.listW, - ListPct: m.listPct, - Folds: m.folds, + ListPos: m.navigatorPosition, + ListHidden: m.navigatorHidden, + FocusList: m.navigatorFocused, + ListW: m.navigatorWidthSet, + ListPct: m.navigatorPct, + Folds: m.expandedFolds, Comments: &m.comments, LastSent: m.lastSent, Beside: m.beside, @@ -104,14 +103,22 @@ func (m *model) saveResume() (string, error) { if t := m.turn; t != nil { s.Turn = &resumeTurn{App: t.app, Tree: t.tree, Running: t.running, At: t.at} } - if m.prPlace != nil { // the PR has not loaded since the last restart - s.PR = *m.prPlace + if m.pr.place != nil { // the PR has not loaded since the previous restart + s.PR = *m.pr.place } - if f := m.selectedChange(); f != nil { + if f := m.curChangedFile(); f != nil { s.ChangePath = f.Path } - if m.allSel < len(m.allFiles) { - s.FilePath = m.allFiles[m.allSel].Path + if m.allFiles.cur < len(m.allFiles.entries) { + s.FilePath = m.allFiles.entries[m.allFiles.cur].Path + } + // Keep the places that the previous process saved if they have not + // been restored yet. + if r := m.resumeChanges; r != nil { + s.ChangePath, s.Changes = r.ChangePath, r.Changes + } + if r := m.resumeFiles; r != nil { + s.FilePath, s.Viewer = r.FilePath, r.Viewer } b, err := json.Marshal(s) if err != nil { @@ -129,13 +136,14 @@ func (m *model) saveResume() (string, error) { return f.Name(), f.Close() } -// loadResume reads the file that saveResume wrote, and removes it. +// loadResume reads the file written by saveResume and then removes it. func loadResume(path string) (*resumeState, error) { b, err := os.ReadFile(path) if err != nil { return nil, err } - // A file that stays in the temporary directory does no harm. + // If the removal fails, the file left in the temporary directory does + // no harm. _ = os.Remove(path) s := &resumeState{Comments: new(diff.Comments)} if err := json.Unmarshal(b, s); err != nil { @@ -144,56 +152,61 @@ func loadResume(path string) (*resumeState, error) { return s, nil } -// restoreSettings sets the scope, the view, and the comments of s. Call -// it before the first reload, which reads the files of the scope. +// restoreSettings restores the scope, view settings and comments from s, +// and keeps s to restore the places once the changes and the files have +// loaded. Call it before the first reload, which reads the files in the +// scope. func (m *model) restoreSettings(s *resumeState) { - m.tab, m.scope, m.base, m.from, m.to = s.Tab, s.Scope, s.Base, s.From, s.To + m.resumeChanges, m.resumeFiles = s, s + // Expand the directories above the current file before reading the + // Files tab entries, so that a file inside an ignored directory + // appears in the file list. + m.allFiles.navigator.reveal(s.FilePath) + m.allFiles.listing.want = true + m.pr.place = &s.PR // the PR loads later, and onPR restores the position + m.tab, m.scope, m.base, m.oldest, m.newest = s.Tab, s.Scope, s.Base, s.From, s.To if t := s.Turn; t != nil { m.turn = &turnState{app: t.App, tree: t.Tree, running: t.Running, at: t.At} } m.split, m.wrap, m.rendered = s.Split, s.Wrap, s.Rendered - m.listPos, m.listHidden, m.focusList, m.listW = s.ListPos, s.ListHidden, s.FocusList, s.ListW + m.navigatorPosition, m.navigatorHidden = s.ListPos, s.ListHidden + m.navigatorFocused, m.navigatorWidthSet = s.FocusList, s.ListW switch { - case m.listPos != "": + case m.navigatorPosition != "": + // The saved position takes precedence over the former ListLeft. case s.ListLeft: - m.listPos = positionLeft + m.navigatorPosition = positionLeft default: - m.listPos = positionRight + m.navigatorPosition = positionRight } if s.ListPct > 0 { - m.listPct = s.ListPct + m.navigatorPct = s.ListPct } - m.folds = s.Folds + m.expandedFolds = s.Folds if s.Comments != nil { m.comments = *s.Comments - m.comments.SetOldRev(m.diffRev()) + m.comments.SetRev(m.diffRev()) } m.lastSent, m.beside = s.LastSent, s.Beside } -// restorePlaces selects the files of s and moves the cursors to the places -// in s. Call it after the first reload. -func (m *model) restorePlaces(s *resumeState) { - // The directories above the selected files expand. Expand them before - // the list of all files is read, so that the list has a file in an - // ignored directory. - m.changeTree.reveal(s.ChangePath) - m.allTree.reveal(s.FilePath) - if i := slices.IndexFunc(m.changeFiles, func(f changedFile) bool { return f.Path == s.ChangePath }); i >= 0 { - m.changeSel = i - } - files, _ := m.repo.Files(m.ctx) // an error shows an empty list - m.allFiles = m.withIgnored(files) - if i := slices.IndexFunc(m.allFiles, func(e vcs.Entry) bool { return e.Path == s.FilePath }); i >= 0 { - m.allSel = i - } - // The cursors go to the selected files. - m.changeTree.cur, m.allTree.cur = -1, -1 - m.buildTrees() +// restoreChanges selects the file saved in the resume state and moves the +// cursor of the Changes tab to the saved position, once the first reload +// has loaded the changes. The first file list restores the Files tab in +// [model.onFiles]. +func (m *model) restoreChanges() { + s := m.resumeChanges + if s == nil || !m.changesLoaded { + return + } + m.resumeChanges = nil + m.changes.navigator.reveal(s.ChangePath) + if i := slices.IndexFunc(m.changes.files, func(f changedFile) bool { return f.Path == s.ChangePath }); i >= 0 { + m.changes.cur = i + } + m.changes.navigator.cur = -1 // put the list cursor on the current file + m.buildBothNavigators() m.renderChanges() - m.refreshViewer() - m.changePane.restore(s.Changes) - m.allPane.restore(s.Viewer) - m.prPlace = &s.PR // the PR loads later, and onPR restores the place + m.changes.pane.restore(s.Changes) m.rerender() } diff --git a/tui/search.go b/tui/search.go index 5578b3c..6988df1 100644 --- a/tui/search.go +++ b/tui/search.go @@ -1,10 +1,9 @@ package tui -// The search finds files by name and lines of code, as in herdr-reviewr. -// It shows in an overlay. +// The search finds files by name and lines of code. It appears in an +// overlay. import ( - "context" "fmt" "slices" "strings" @@ -13,78 +12,80 @@ import ( tea "charm.land/bubbletea/v2" "github.com/rednafi/rexdiff/internal/search" + "github.com/rednafi/rexdiff/internal/xctx" "github.com/rednafi/rexdiff/vcs" ) -// The times of a code search, as in herdr-reviewr. After codeBudget, the -// search shows the lines that it finds, and a "+" tells that there can be -// others. A search with no line yet goes on until its first line, or -// until codeTimeout. +// Time limits for a code search. After grepBudget, the search shows the +// lines found so far, with a "+" to say there may be more. A search that +// has found nothing keeps going until its first match or until +// grepTimeout. const ( - codeBudget = 80 * time.Millisecond - codeTimeout = 2 * time.Second + grepBudget = 80 * time.Millisecond + grepTimeout = 2 * time.Second ) -// searchState has the results of the search. As in herdr-reviewr, the -// search has two modes. It shows the files that match by name, or the -// lines of the code that contain the query. +// searchState holds the search results. The search has two modes: one +// shows the files whose names match, and the other shows the lines of code +// that contain the query. type searchState struct { - code bool // the mode that shows the code matches + grep bool // true in code mode paths []string // the files that the search can find - files []string // the files that match - fileTotal int // the number of the files that match + files []string // the matching files that are listed + fileTotal int // the total number of matching files hits []vcs.Match - hitsMore bool // git finds more matches than hits has - err string // the error of the code search + hitsMore bool // git found more matches than hits holds + err string // the code search error preview *preview - // previewY is the line of the box of the search where the preview - // starts, with its rule. + // previewY is the line in the search box where the preview, with its + // rule, starts. previewY int } -// showSearch shows the results of the search in its mode, with the -// cursor on the first result. As in herdr-reviewr, the code matches show -// under a header for each file. A "… more" row tells that the list does -// not show all the results. An error shows in place of the results. -func (o *overlay) showSearch() { - s := &o.search - var items []pickItem +// setSearchItems lists the results for the current mode, with the cursor +// on the first result. Code matches are grouped under a heading for each +// file. A "… more" row means the list does not include every result. An +// error replaces the results. +func (ov *overlay) setSearchItems() { + s := &ov.search + var items []overlayItem switch { case s.err != "": - case !s.code: + // The overlay shows the error instead of a list. + case !s.grep: for _, p := range s.files { - items = append(items, pickItem{label: p, id: p}) + items = append(items, overlayItem{label: p, id: p}) } if s.fileTotal > len(s.files) { - items = append(items, pickItem{label: "… more"}) + items = append(items, overlayItem{label: "… more"}) } default: for i, h := range s.hits { if i == 0 || h.Path != s.hits[i-1].Path { - items = append(items, pickItem{label: h.Path, head: true}) + items = append(items, overlayItem{label: h.Path, isHeader: true}) } - items = append(items, pickItem{ + items = append(items, overlayItem{ label: fmt.Sprintf("%5d: %s", h.Line, h.Text), id: h.Path, line: h.Line, }) } if s.hitsMore { - items = append(items, pickItem{label: "… more"}) + items = append(items, overlayItem{label: "… more"}) } } - o.setItems(items) - o.cur = 0 - if len(o.shown) > 0 && !o.pickable(0) { - o.move(1) + ov.setItems(items) + ov.cur = 0 + if len(ov.shown) > 0 && !ov.canHaveCursor(0) { + ov.move(1) } } -// chips returns the chips of the modes of the search, as in -// herdr-reviewr: "files N │ code M". A "+" after M tells that git finds -// more matches. The chip of the mode in use is bright. -func (o *overlay) chips() string { - s := &o.search +// chips returns the labels of the two search modes: "files N │ code M". +// A "+" after M means git found more matches. The label of the current +// mode is highlighted. +func (ov *overlay) chips() string { + s := &ov.search files, code := "files", "code" if s.err == "" { files = fmt.Sprintf("files %d", s.fileTotal) @@ -93,76 +94,134 @@ func (o *overlay) chips() string { code += "+" } } - on := cursorStyle.Underline(true) - if s.code { + on := accentStyle.Underline(true) + if s.grep { return dimStyle.Render(files+" │ ") + on.Render(code) } return on.Render(files) + dimStyle.Render(" │ "+code) } -// openSearch opens the search of the files and the code. With no query, -// it lists the files. +// openSearch opens the search over file names and code. The query starts +// empty, so it lists files and searches no code. func (m *model) openSearch() { ov := newOverlay(overlaySearch, "") ov.input.Placeholder = "Search files and code…" - for _, e := range m.allFiles { + ov.search.paths = searchPaths(m.allFiles.entries) + m.openOverlay(ov) + m.refreshSearch() // an empty query needs no command +} + +// searchPaths returns the paths of the entries that the search can find: +// those that git does not ignore. +func searchPaths(es []vcs.Entry) []string { + var paths []string + for _, e := range es { if !e.Ignored { - ov.search.paths = append(ov.search.paths, e.Path) + paths = append(paths, e.Path) } } - m.open(ov) - m.runSearch() + return paths +} + +// maxSyncPaths is the most paths that the file search goes through on the +// UI goroutine. With more, a fuzzy search is slow enough to hold up the +// screen, so it runs in a command. +const maxSyncPaths = 20_000 + +// fileSearchMsg carries the files that match a search query. +type fileSearchMsg struct { + gen int // identifies the search; results of older searches are stale + files []string + total int +} + +// findFiles finds the files that match the search query. With more than +// maxSyncPaths paths, it returns a command that finds them instead, and +// the list keeps the previous files until onFileSearch shows the new ones. +func (m *model) findFiles() tea.Cmd { + s, q := &m.overlay.search, m.overlay.input.Value() + m.fileGen++ + if q == "" || len(s.paths) <= maxSyncPaths { + s.files, s.fileTotal = search.Files(s.paths, m.recent, q, search.MaxFiles) + return nil + } + paths, recent, gen := s.paths, slices.Clone(m.recent), m.fileGen + return func() tea.Msg { + files, total := search.Files(paths, recent, q, search.MaxFiles) + return fileSearchMsg{gen: gen, files: files, total: total} + } } -// runSearch finds the files that match the query of the search, and -// starts a code search for the query. It stops the code search of the -// last query. Until the new code search ends, the old code matches show. -// An empty query finds no code. -func (m *model) runSearch() tea.Cmd { +// onFileSearch shows the files found by the latest file search, unless +// the search has closed since. In code mode, only the count changes. +func (m *model) onFileSearch(msg fileSearchMsg) { + ov := m.overlay + if ov == nil || ov.kind != overlaySearch || msg.gen != m.fileGen { + return + } + s := &ov.search + s.files, s.fileTotal = msg.files, msg.total + if !s.grep { + ov.setSearchItems() + } +} + +// refreshSearch finds the files that match the search query, cancels the +// code search for the previous query and updates the list. It returns the +// query, and the command that finds the files if [model.findFiles] +// returns one. The previous code matches stay on screen until the new +// search finishes, except that a blank query clears them. +func (m *model) refreshSearch() (query string, cmd tea.Cmd) { ov := m.overlay s, q := &ov.search, ov.input.Value() - s.files, s.fileTotal = search.Files(s.paths, m.recent, q, search.MaxFiles) + cmd = m.findFiles() s.err = "" - m.stopGrep(fmt.Errorf("code search: a newer query replaces it: %w", context.Canceled)) - // A blank grep is noise, as in herdr-reviewr. + m.stopGrep() if strings.TrimSpace(q) == "" { s.hits, s.hitsMore = nil, false - ov.showSearch() - return nil } - ov.showSearch() - ctx, cancel := context.WithCancelCause(m.ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, codeTimeout, - fmt.Errorf("code search: %v timeout: %w", codeTimeout, context.DeadlineExceeded)) + ov.setSearchItems() + return q, cmd +} + +// startGrep refreshes the search list with [model.refreshSearch] and +// returns a command that searches the code for the query. A blank query +// searches no code and returns nil. +func (m *model) startGrep() tea.Cmd { + q, files := m.refreshSearch() + // A blank query would match nearly every line. + if strings.TrimSpace(q) == "" { + return files + } + ctx, cancel := xctx.WithTimeout(m.ctx, grepTimeout, "code search") m.grepCancel = cancel repo, gen := m.repo, m.grepGen - return func() tea.Msg { - defer cancelTimeout() - defer cancel(fmt.Errorf("code search: done: %w", context.Canceled)) - hits, more, err := repo.Grep(ctx, q, search.MaxCodeLines, codeBudget) + return tea.Batch(files, func() tea.Msg { + defer cancel() + hits, more, err := repo.Grep(ctx, q, search.MaxGrepLines, grepBudget) return grepMsg{gen: gen, hits: hits, more: more, err: err} - } + }) } -// addRecent puts path first in the list of the files that the search -// shows for an empty query. +// addRecent moves path to the front of the recent files, which the search +// lists for an empty query. func (m *model) addRecent(path string) { rest := slices.DeleteFunc(m.recent, func(p string) bool { return p == path }) - m.recent = append([]string{path}, rest[:min(len(rest), search.MaxFiles-1)]...) + m.recent = slices.Concat([]string{path}, rest[:min(len(rest), search.MaxFiles-1)]) } -// stopGrep stops the code search that runs, if any. Its result then does -// not show. cause tells why it stops. -func (m *model) stopGrep(cause error) { +// stopGrep cancels the code search in progress, if any, and makes sure +// its result is ignored. +func (m *model) stopGrep() { m.grepGen++ if m.grepCancel != nil { - m.grepCancel(cause) + m.grepCancel() m.grepCancel = nil } } -// onGrep keeps the code matches of the search, but only if the search -// still shows their query. The list shows them in the code mode. +// onGrep stores the code matches in the search, unless the search has +// closed or the query has changed since. The list shows them in code mode. func (m *model) onGrep(msg grepMsg) { ov := m.overlay if ov == nil || ov.kind != overlaySearch || msg.gen != m.grepGen { @@ -171,12 +230,12 @@ func (m *model) onGrep(msg grepMsg) { s := &ov.search s.hits, s.hitsMore, s.err = msg.hits, msg.more, "" if msg.err != nil { - // Show only the error, and no old results under it. + // Show only the error, without older results below it. s.hits, s.hitsMore, s.err = nil, false, msg.err.Error() } - // The list of the file matches stays, with its cursor. The chips - // show the count of the code matches. - if s.code { - ov.showSearch() + // In file mode, keep the list and its cursor as they are. The mode + // labels still show the new number of code matches. + if s.grep { + ov.setSearchItems() } } diff --git a/tui/send.go b/tui/send.go index d4ad9db..7b396cd 100644 --- a/tui/send.go +++ b/tui/send.go @@ -2,7 +2,6 @@ package tui import ( "cmp" - "context" "errors" "fmt" "slices" @@ -11,25 +10,24 @@ import ( tea "charm.land/bubbletea/v2" "github.com/rednafi/rexdiff/internal/clipboard" + "github.com/rednafi/rexdiff/internal/xctx" "github.com/rednafi/rexdiff/rex" ) -// maxSend is the largest review, in bytes, that rexdiff pastes into an -// agent. The user must copy a larger review. +// maxSend is the largest review, in bytes, that rexdiff will paste into an +// agent. A larger review must be copied instead. Rex limits one paste to +// about 64 KB, so rex.Client.Paste sends a long review in parts. const maxSend = 256 << 10 -// listAgents returns a command that lists the agents of the session, other -// than rexdiff panes. The command returns msg with the agents. Set -// msg.send to send the review to them. -func (m *model) listAgents(msg agentsMsg) tea.Cmd { +// fetchAgents returns a command that lists the agents in the Rex session, +// leaving out rexdiff panes. The command returns msg with the agents +// filled in. Set msg.send if the list is for sending the review. +func (m *model) fetchAgents(msg agentsMsg) tea.Cmd { c, ctx := m.rex, m.ctx msg.gen = m.agentsGen return func() tea.Msg { - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, rexTimeout, - fmt.Errorf("agent list: %v timeout: %w", rexTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("agent list: done: %w", context.Canceled)) + ctx, cancel := xctx.WithTimeout(ctx, rexTimeout, "agent list") + defer cancel() agents, err := c.Agents(ctx) isRexdiff := func(a rex.Agent) bool { return a.Status.App == appName } agents = slices.DeleteFunc(agents, isRexdiff) @@ -38,16 +36,15 @@ func (m *model) listAgents(msg agentsMsg) tea.Cmd { } } -// rexTimeout is the longest time of the calls to Rex for one action. A -// Rex that does not answer then fails the action. +// rexTimeout limits how long the Rex calls for one action can take. const rexTimeout = 10 * time.Second -// inRepo reports whether dir is in the repository. An empty dir is -// unknown, and counts as in the repository. +// inRepo reports whether dir is inside the repository. An empty dir means +// the directory is unknown, and counts as inside. func (m *model) inRepo(dir string) bool { return dir == "" || m.repo.Contains(dir) } -// agent returns the state of the agent in block. If the block is new, agent -// adds it. +// agent returns the state of the agent in block, adding an empty state if +// the block is new. func (m *model) agent(block string) *agentState { a := m.agents[block] if a == nil { @@ -57,22 +54,21 @@ func (m *model) agent(block string) *agentState { return a } -// onEvent keeps the state of the agent in the block of e, and follows the -// turns. After a reconnect, it forgets the agents and lists them again, -// as herdr-reviewr does after a lost connection. Nobody sees the agents -// in the gap, so the next state starts no turn. A list from before the -// gap is stale. An event with an error only goes to the log. +// onEvent records the state of the agent in e's block and updates turn +// tracking. After a reconnection, it forgets all agents and lists them +// again, and the next state does not start a turn. An event with an error +// is only logged. func (m *model) onEvent(e rex.Event) tea.Cmd { if e.Err != nil { m.log.Warn("rex events failed", "err", e.Err) return nil } if e.Reconnect { - m.tracker.Gap() + m.tracker.MarkGap() clear(m.agents) - m.sampled = false + m.agentsSampled = false m.agentsGen++ - return m.listAgents(agentsMsg{}) + return m.fetchAgents(agentsMsg{}) } if e.Closed { delete(m.agents, e.Block) @@ -85,27 +81,31 @@ func (m *model) onEvent(e rex.Event) tea.Cmd { return m.observeTurn() } -// onAgents keeps the states of the agents. For a send, onAgents sends the -// review to the agent, or lets the user pick one. A list from before a -// reconnect does not change the states, because they can be old. +// onAgents records the states of the listed agents. If the list is for a +// send, it sends the review to the only agent or lets the user choose one. +// A list taken before a reconnection does not update the states, because +// they may be out of date. func (m *model) onAgents(msg agentsMsg) tea.Cmd { stale := msg.gen != m.agentsGen if stale && !msg.send { - return nil // the list after the reconnect follows + return nil // a new list follows the reconnection } if !stale { - m.keepAgents(msg.agents) + m.storeAgents(msg.agents) } switch { case stale: + // A stale list says nothing about the current connection. case msg.err == nil: - m.sampled = true - case !m.sampled && !msg.send: - // Without a list, the turns do not start. Thus list again later. + m.agentsSampled = true + case !m.agentsSampled && !msg.send: + // Turns cannot be tracked until a list succeeds, so try again + // later. m.log.Warn("agent list failed", "err", msg.err) m.sampleRetry.fail(time.Now()) } - // A send drops the question for a cwd. The next state asks again. + // storeAgents resets each agent's state, including any cwd request in + // progress, so observeTurn may ask for the cwd again. turn := m.observeTurn() if !msg.send { return turn @@ -115,8 +115,8 @@ func (m *model) onAgents(msg agentsMsg) tea.Cmd { m.flashCopy(msg.err.Error()) return nil } - // Prefer the agents in this repository. Else use all the agents of the - // session. + // Prefer agents working in this repository. If there are none, use + // every agent in the session. var here []rex.Agent for _, a := range msg.agents { if m.inRepo(a.Cwd) { @@ -131,12 +131,12 @@ func (m *model) onAgents(msg agentsMsg) tea.Cmd { m.flashCopy("no agent in this session") return nil case len(here) == 1: - return m.deliver(here[0]) - case m.mode != modeNormal && !m.inCommentList(): - // The user can open the comment box or an overlay while the agents - // load. A picker on top can hide the box and lose the comment. The - // picker can take the place of the comment list, as in - // herdr-reviewr. + return m.pasteReview(here[0]) + case m.mode != modeNormal && !m.inCommentsOverlay(): + // The user may have opened the comment box or an overlay while the + // agents were loading. A picker on top could hide the box and lose + // the comment. The comment list is the exception: the picker can + // replace it. m.flash("several agents: close the box, then press " + firstKey(m.keys.Send) + " to pick one") return nil @@ -145,20 +145,21 @@ func (m *model) onAgents(msg agentsMsg) tea.Cmd { return nil } -// keepAgents keeps the states of the agents of a list. -func (m *model) keepAgents(agents []rex.Agent) { +// storeAgents records the state of each agent in agents, replacing any +// earlier state. +func (m *model) storeAgents(agents []rex.Agent) { for _, a := range agents { *m.agent(a.Block) = agentState{ app: a.Status.App, state: a.Status.State, since: cmp.Or(a.Status.At, time.Now()), cwd: a.Cwd, - hasCwd: a.Cwd != "", // else askCwd asks Rex again + hasCwd: a.Cwd != "", // if false, askCwd asks Rex for it } } } -// commentTexts returns the texts of the comments, by ID. +// commentTexts returns the text of each comment, keyed by ID. func (m *model) commentTexts() map[int]string { texts := map[int]string{} for _, c := range m.comments.All() { @@ -167,25 +168,22 @@ func (m *model) commentTexts() map[int]string { return texts } -// reviewText returns the text of the review that a send pastes. +// reviewText returns the review text that is sent or copied. func (m *model) reviewText() string { - return m.comments.Review(m.cfg.ReviewPrefix) + return m.comments.Review(m.cfg.ReviewPrefix, m.commentStale) } -// deliver returns a command that pastes the review into agent a. It checks -// the agent again before the paste, because a prompt of the agent can take -// the text. -func (m *model) deliver(a rex.Agent) tea.Cmd { +// pasteReview returns a command that pastes the review into agent a. It +// checks the agent's status first, because if the agent is waiting at a +// prompt, the prompt would receive the text. +func (m *model) pasteReview(a rex.Agent) tea.Cmd { m.sends++ c, ctx := m.rex, m.ctx text, sent := m.reviewText(), m.commentTexts() focus := m.cfg.focusesAgent() return func() tea.Msg { - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, rexTimeout, - fmt.Errorf("send: %v timeout: %w", rexTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("send: done: %w", context.Canceled)) + ctx, cancel := xctx.WithTimeout(ctx, rexTimeout, "send") + defer cancel() status, err := c.Status(ctx, a.Block) if err != nil { return sentMsg{agent: a, err: fmt.Errorf("check %s: %w", a.Name, err)} @@ -197,19 +195,28 @@ func (m *model) deliver(a rex.Agent) tea.Cmd { err := fmt.Errorf("answer %s's prompt first", a.Name) return sentMsg{agent: a, err: err} } - if err := c.Paste(ctx, a.Block, text); err != nil { + // Rex pastes a long review in parts. If a part fails after + // others, the agent holds the start of the review, so say so: the + // user should clear the agent's input before copying the review. + err = c.Paste(ctx, a.Block, text) + if partly, ok := errors.AsType[*rex.PasteError](err); ok { + err = fmt.Errorf("only %d of %d parts reached %s, clear its input: %w", + partly.Pasted, partly.Parts, a.Name, partly.Err) + return sentMsg{agent: a, err: err} + } + if err != nil { return sentMsg{agent: a, err: fmt.Errorf("paste into %s: %w", a.Name, err)} } if focus { - // Ignore the error, because the paste works. + // Ignore any error, because the paste itself succeeded. _ = c.Focus(ctx, a.Block) } return sentMsg{agent: a, sent: sent} } } -// onSent removes the sent comments if the send worked. The comments that -// the user adds or changes during the send stay. +// onSent removes the sent comments if the send succeeded. Comments that +// the user added or changed during the send are kept. func (m *model) onSent(msg sentMsg) { m.sends-- if msg.err != nil { @@ -222,7 +229,8 @@ func (m *model) onSent(msg sentMsg) { m.flash(fmt.Sprintf("sent %s to %s", sent, msg.agent.Name)) } -// startSend lists the agents to send the review to. +// startSend checks that the review can be sent and returns a command that +// lists the agents to send it to. func (m *model) startSend() tea.Cmd { switch { case m.comments.Len() == 0: @@ -240,11 +248,11 @@ func (m *model) startSend() tea.Cmd { } m.flash("sending…") m.sends++ - return m.listAgents(agentsMsg{send: true}) + return m.fetchAgents(agentsMsg{send: true}) } -// copyComments copies the review to the clipboard. A good copy clears -// the comments, as a send does. +// copyComments copies the review to the clipboard. A successful copy +// clears the comments, as sending does. func (m *model) copyComments() { if m.comments.Len() == 0 { m.flash("no comments yet") @@ -254,21 +262,16 @@ func (m *model) copyComments() { m.copyText(m.reviewText(), "copied "+plural(len(texts), "comment"), texts) } -// copyTimeout is the longest time of a copy. +// copyTimeout limits how long copying to the clipboard can take. const copyTimeout = 2 * time.Second -// copyText writes text to the clipboard. If the copy works, it removes -// the comments texts and shows done. As in herdr-reviewr, the copy runs -// before the next frame, so two copies keep their order. A clipboard tool -// that does not answer fails after copyTimeout. As in herdr-reviewr, the -// message of a failure names only the fix that the user can make. The log -// has the error. -func (m *model) copyText(text, done string, texts map[int]string) { - ctx, cancel := context.WithCancelCause(m.ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, copyTimeout, - fmt.Errorf("copy: %v timeout: %w", copyTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("copy: done: %w", context.Canceled)) +// copyText writes text to the clipboard, waiting at most copyTimeout, so +// that copies happen in order. On success, it removes the comments in +// texts and shows the message success. On failure, it logs the error and +// shows a short message. +func (m *model) copyText(text, success string, texts map[int]string) { + ctx, cancel := xctx.WithTimeout(m.ctx, copyTimeout, "copy") + defer cancel() err := clipboard.Write(ctx, m.env, text) switch { case errors.Is(err, clipboard.ErrNoTool): @@ -278,41 +281,41 @@ func (m *model) copyText(text, done string, texts map[int]string) { m.flash("copy failed") default: m.clearComments(texts) - m.flash(done) + m.flash(success) } } -// inCommentList reports whether the comment list is open. -func (m *model) inCommentList() bool { - return m.mode == modeOverlay && m.overlay != nil && m.overlay.kind == overlayComments +// inCommentsOverlay reports whether the comment list is open. +func (m *model) inCommentsOverlay() bool { + return m.overlay != nil && m.overlay.kind == overlayComments } -// clearComments removes the comments of texts after a send or a copy. A -// comment whose text is not the text in texts stays, because the user -// edits it during the send. An open comment list shows the rest, or -// closes if no comment stays. +// clearComments removes the comments in texts after a send or copy. A +// comment whose text no longer matches is kept, because the user edited it +// in the meantime. An open comment list is updated, or closed if no +// comments remain. func (m *model) clearComments(texts map[int]string) { for id, text := range texts { if c := m.comments.Find(id); c != nil && c.Text == text { - m.comments.Remove(id) + m.comments.Delete(id) } } - if m.inCommentList() { + if m.inCommentsOverlay() { if m.comments.Len() == 0 { m.closeOverlay() return } - m.fillCommentList(m.overlay) + m.setCommentItems(m.overlay) } } -// flashCopy shows why the review cannot go to an agent, and tells the -// user to copy it. +// flashCopy shows why the review cannot be sent to an agent and suggests +// copying it instead. func (m *model) flashCopy(why string) { m.flash(why + ", press " + firstKey(m.keys.Copy) + " to copy") } -// plural returns n and word, with an s if n is not 1. +// plural returns n followed by word, adding an s if n is not 1. func plural(n int, word string) string { if n == 1 { return "1 " + word diff --git a/tui/tree.go b/tui/tree.go deleted file mode 100644 index 38bf1c5..0000000 --- a/tui/tree.go +++ /dev/null @@ -1,299 +0,0 @@ -package tui - -// This file keeps the file list of each tab as a tree of directories, as -// in herdr-reviewr. The cursor of the list moves over the directories and -// the files. The pane shows the last file that the cursor is on. - -import ( - "slices" - "strings" - - "github.com/rednafi/rexdiff/internal/tree" - "github.com/rednafi/rexdiff/vcs" -) - -// fileListTree is the file list of a tab. -type fileListTree struct { - entries []tree.Entry - rows []tree.Row - cur int // the row of the cursor - // top is the first row on the screen while free is true. free is true - // after the wheel moves the view. Then the cursor can be off the - // screen until the next key. - top int - free bool - // expanded is true if the directories start expanded. toggled has the - // directories that the user changes from that start. - expanded bool - toggled map[string]bool -} - -// rebuild makes the rows of entries. The cursor stays on its directory or -// its file. If the row is gone, or the cursor is -1, the cursor goes to -// the file with index open, else to the first file. -func (t *fileListTree) rebuild(entries []tree.Entry, expanded bool, open int) { - var dir, path string - if t.cur >= 0 && t.cur < len(t.rows) { - if r := t.rows[t.cur]; r.File < 0 { - dir = r.Dir - } else { - path = t.entries[r.File].Path - } - } - t.entries, t.expanded = entries, expanded - t.rows = tree.Build(entries, t.toggled, expanded) - t.cur = slices.IndexFunc(t.rows, func(r tree.Row) bool { - if r.File < 0 { - return dir != "" && r.Dir == dir - } - return path != "" && entries[r.File].Path == path - }) - if t.cur < 0 { - t.cur = t.rowOf(open) - } - if t.cur < 0 { - t.cur = t.nextFile(-1, 1) - } - t.cur = max(t.cur, 0) -} - -// file returns the index of the file at the cursor, or -1 on a directory. -func (t *fileListTree) file() int { - if t.cur >= len(t.rows) { - return -1 - } - return t.rows[t.cur].File -} - -// dir returns the row at the cursor if it is a directory. -func (t *fileListTree) dir() (tree.Row, bool) { - if t.cur >= len(t.rows) || t.rows[t.cur].File >= 0 { - return tree.Row{}, false - } - return t.rows[t.cur], true -} - -// rowOf returns the row of the file with index i, or -1 if no row shows -// it. -func (t *fileListTree) rowOf(i int) int { - if i < 0 { - return -1 - } - return slices.IndexFunc(t.rows, func(r tree.Row) bool { return r.File == i }) -} - -// nextFile returns the first file row after row from in direction d (1 or -// -1), or -1. -func (t *fileListTree) nextFile(from, d int) int { - for r := from + d; r >= 0 && r < len(t.rows); r += d { - if t.rows[r].File >= 0 { - return r - } - } - return -1 -} - -// setExpanded expands or collapses the directory dir. It reports whether -// the state changes. -func (t *fileListTree) setExpanded(dir string, want bool) bool { - if (t.expanded != t.toggled[dir]) == want { - return false - } - if t.toggled == nil { - t.toggled = map[string]bool{} - } - if t.toggled[dir] { - delete(t.toggled, dir) - } else { - t.toggled[dir] = true - } - return true -} - -// reveal expands each directory above path. It reports whether one -// changes. -func (t *fileListTree) reveal(path string) bool { - changed := false - for dir, _, ok := strings.CutLast(path, "/"); ok; dir, _, ok = strings.CutLast(dir, "/") { - changed = t.setExpanded(dir, true) || changed - } - return changed -} - -// list returns the file list of the current tab, or nil on the PR tab. -func (m *model) list() *fileListTree { - switch m.tab { - case tabChanges: - return &m.changeTree - case tabFiles: - return &m.allTree - } - return nil -} - -// buildChangeTree makes the rows of the Changes tab. The selected file is -// the file at the cursor, if the cursor is on a file. -func (m *model) buildChangeTree() { - es := make([]tree.Entry, len(m.changeFiles)) - for i, f := range m.changeFiles { - es[i] = tree.Entry{Path: f.Path, Changed: true} - } - t := &m.changeTree - t.rebuild(es, true, m.changeSel) - if i := t.file(); i >= 0 { - m.changeSel = i - } - m.changeSel = max(m.changeSel, 0) -} - -// buildFileTree makes the rows of the Files tab. A directory holds a -// change if a file under it is in the Changes tab. The selected file is -// the file at the cursor, if the cursor is on a file. -func (m *model) buildFileTree() { - changed := make(map[string]bool, len(m.changeFiles)) - for _, f := range m.changeFiles { - changed[f.Path] = true - } - es := make([]tree.Entry, len(m.allFiles)) - for i, e := range m.allFiles { - p, isDir := strings.CutSuffix(e.Path, "/") - es[i] = tree.Entry{Path: p, Changed: changed[p], Ignored: e.Ignored, Dir: isDir} - } - t := &m.allTree - t.rebuild(es, false, m.allSel) - if i := t.file(); i >= 0 { - m.allSel = i - } - m.allSel = min(max(m.allSel, 0), max(len(m.allFiles)-1, 0)) -} - -// buildTree makes the rows of the file list of the current tab. -func (m *model) buildTree() { - switch m.tab { - case tabChanges: - m.buildChangeTree() - case tabFiles: - m.buildFileTree() - } -} - -// withIgnored adds to es the entries of each ignored directory that the -// user expands in the Files tab, and sorts es by path. -func (m *model) withIgnored(es []vcs.Entry) []vcs.Entry { - // The loop also reads the entries that it adds, for the directories - // in an ignored directory. - for i := 0; i < len(es); i++ { - if dir, ok := m.openIgnored(es[i]); ok { - es = append(es, m.repo.IgnoredDir(dir)...) - } - } - slices.SortStableFunc(es, func(a, b vcs.Entry) int { return strings.Compare(a.Path, b.Path) }) - return es -} - -// shownPaths returns the paths for Watcher.Show when the Files tab -// shows: the ignored directories that the user expands and the open file. -// The watcher reports their changes, as in herdr-reviewr. -func (m *model) shownPaths() []string { - if m.tab != tabFiles { - return nil - } - var paths []string - for _, e := range m.allFiles { - if dir, ok := m.openIgnored(e); ok { - paths = append(paths, dir) - } - } - if m.allSel < len(m.allFiles) { - if e := m.allFiles[m.allSel]; !strings.HasSuffix(e.Path, "/") { - paths = append(paths, e.Path) - } - } - return paths -} - -// openIgnored returns the path of e without the last "/". It also reports -// whether e is an ignored directory that the user expands in the Files -// tab. -func (m *model) openIgnored(e vcs.Entry) (string, bool) { - dir, isDir := strings.CutSuffix(e.Path, "/") - return dir, isDir && e.Ignored && m.allTree.toggled[dir] -} - -// atDir reports whether the file list has the focus and its cursor is on -// a directory. -func (m *model) atDir() bool { - if t := m.list(); t != nil && m.focusList { - _, ok := t.dir() - return ok - } - return false -} - -// setDir expands or collapses the directory at the cursor of the file -// list. An ignored directory reads its entries when it expands. -func (m *model) setDir(want bool) { - t := m.list() - r, ok := t.dir() - if !ok || !t.setExpanded(r.Dir, want) { - return - } - if m.tab == tabFiles && r.Ignored && want { - m.readFiles() - } - m.buildTree() -} - -// stepRow moves the cursor of the file list by d rows. On a file, the pane -// shows the file. -func (m *model) stepRow(d int) { - t := m.list() - if t == nil || len(t.rows) == 0 { - return - } - t.cur = min(max(t.cur+d, 0), len(t.rows)-1) - if i := t.file(); i >= 0 && i != m.listSel() { - m.pickFile(i) - } -} - -// stepFile shows the next (d = 1) or the previous (d = -1) file of the -// list, past the directories. It starts from the cursor of the list when -// the list has the focus, else from the file that shows. -func (m *model) stepFile(d int) { - t := m.list() - if t == nil { - return - } - from := t.cur - if r := t.rowOf(m.listSel()); !m.focusList && r >= 0 { - from = r - } - if r := t.nextFile(from, d); r >= 0 { - m.pickFile(t.rows[r].File) - } -} - -// clickRow handles a click on row r of the file list. A file shows, and a -// directory expands or collapses. -func (m *model) clickRow(r int) { - t := m.list() - if t == nil || r < 0 || r >= len(t.rows) { - return - } - m.focusList = true - t.cur = r - if d, ok := t.dir(); ok { - m.setDir(!d.Expanded) - return - } - m.pickFile(t.rows[r].File) -} - -// revealFile expands the directories above path in the file list of the -// current tab, so that its row shows. -func (m *model) revealFile(path string) { - if t := m.list(); t != nil && t.reveal(path) { - m.buildTree() - } -} diff --git a/tui/tui.go b/tui/tui.go index 1b83744..44d8912 100644 --- a/tui/tui.go +++ b/tui/tui.go @@ -1,6 +1,6 @@ -// Package tui is the terminal program of rexdiff. It shows the changes in a -// repository and takes review comments on the lines. It sends the comments -// to a coding agent in Rex. +// Package tui implements the terminal UI of rexdiff. It shows the changes +// in a repository, lets the user add review comments to lines, and sends +// the comments to a coding agent in Rex. package tui import ( @@ -12,95 +12,93 @@ import ( tea "charm.land/bubbletea/v2" + "github.com/rednafi/rexdiff/internal/xctx" "github.com/rednafi/rexdiff/rex" "github.com/rednafi/rexdiff/update" "github.com/rednafi/rexdiff/vcs" ) -// appName is the name that rexdiff reports to Rex, and the label of its -// block. +// appName is the name that rexdiff reports to Rex, and the label it gives +// its own block. const appName = "rexdiff" // Options configure Run. type Options struct { Repo *vcs.Repo // the repository to review, not nil - // Rex is the Rex session of the process, or nil outside Rex. Without - // Rex, the user cannot send the review. The user can only copy it. + // Rex is the Rex session that the process runs in, or nil outside + // Rex. Without Rex, the user can copy the review but not send it. Rex *rex.Client - // Config is the settings as JSON, from rexdiff.lua. An empty text + // Config holds the settings as JSON, read from rexdiff.lua. Empty // means the default settings. Config string - // Layout and Scope override the settings if they are not empty. Set - // them from the command-line flags -layout and -scope. The error of a - // bad value names the flag. + // Layout and Scope, if not empty, override the settings. They come + // from the -layout and -scope flags, and the error for an invalid + // value names the flag. Layout Layout Scope Scope - // Agent is the block ID or the label of the agent that the program - // opens beside, or "". The agent picker selects it first. + // Agent is the block ID or label of the agent beside rexdiff, or "". + // The agent picker selects it first. Agent string - // Wrap continues long lines on the next lines, instead of cutting - // them. The key w changes it. + // Wrap wraps long lines instead of cutting them off. The w key turns + // it on and off. Wrap bool - // Base is the base of the branch scope. An empty value means the - // default branch of the repository. + // Base is the base of the branch scope. Empty means the repository's + // default branch. Base string - Log *slog.Logger // nil means no log - // Notice, if not empty, is a problem that the footer shows until the - // program quits. + Log *slog.Logger // nil disables logging + // Notice, if not empty, describes a problem that the footer shows + // until rexdiff quits. Notice string - // Updater installs a newer release, or is nil if rexdiff cannot update - // itself. If it is not nil, the program asks for the latest release. - Updater *update.Updater - // Resume is the file of the state that Run returned before an update, - // or "". Run reads it and removes it. + // Installer installs a newer release, or is nil if rexdiff cannot + // update itself. If it is not nil, rexdiff checks for the latest + // release. + Installer *update.Installer + // Resume is the state file that Run returned before an update, or "". + // Run reads the file and then removes it. Resume string - // Env is the environment of the editor, the URL opener, and the - // clipboard tool, for example the environment of the process from - // os.Environ. Run finds them in its PATH, and reads $VISUAL, $EDITOR, - // $TMPDIR, and the variables of the terminal from it. + // Env is the environment for the editor, the URL opener and the + // clipboard tool, such as [os.Environ]. Run looks these tools up in + // its PATH, and reads $VISUAL, $EDITOR, $TMPDIR and the terminal + // variables from it. Env []string } -// check returns an error for options that Run cannot use. -func (o Options) check() error { +// validate returns an error if Run cannot use o. +func (o Options) validate() error { if o.Repo == nil { return errors.New("no repository") } - return CheckFlags(o.Layout, o.Scope) + return ValidateFlags(o.Layout, o.Scope) } -// CheckFlags returns the error of the values of the flags -layout and -// -scope, or nil if rexdiff accepts them. An empty value is the default. -func CheckFlags(layout Layout, scope Scope) error { +// ValidateFlags returns an error if the values of the -layout or -scope +// flags are invalid. An empty value means the default and is valid. +func ValidateFlags(layout Layout, scope Scope) error { if layout != "" { - if err := choice("-layout", layout, layouts); err != nil { + if err := validateChoice("-layout", layout, layouts); err != nil { return err } } if scope != "" { - return choice("-scope", scope, configScopes) + return validateChoice("-scope", scope, configScopes) } return nil } -// CheckConfig returns the error of the settings text, a JSON object, or -// nil if rexdiff accepts it. -func CheckConfig(text string) error { +// ValidateConfig returns an error if text, the settings as a JSON object, +// is invalid. +func ValidateConfig(text string) error { _, err := parseConfig(text) return err } -// Run shows the review program in the terminal. It returns when the user -// quits or when ctx is done. Run returns an error before it starts if the -// settings are not valid. It also returns an error if Repo is nil, or if -// Run does not know the Layout or the Scope. After an update, Run returns -// the file of the saved state. The caller then runs the new rexdiff with -// Options.Resume set to that file. In that case Run keeps the alternate -// screen on, with the last frame and no cursor, so that the restart does -// not show the shell. If the restart fails, the caller leaves the -// alternate screen and shows the cursor. +// Run runs the UI in the terminal until the user quits or ctx is done. It +// fails at once if the settings are invalid, Repo is nil, or Layout or +// Scope is unknown. After an update, it returns the saved state file to +// pass as [Options.Resume], and leaves the alternate screen on with the +// cursor hidden; if the restart fails, the caller must restore both. func Run(ctx context.Context, o Options) (resume string, err error) { - if err := o.check(); err != nil { + if err := o.validate(); err != nil { return "", err } cfg, err := parseConfig(o.Config) @@ -111,8 +109,8 @@ func Run(ctx context.Context, o Options) (resume string, err error) { defer cancel(errQuit) m := startModel(ctx, o, cfg) - // Bubble Tea reads TERM and COLORTERM from env. A nil env makes it - // read the environment of the process. + // Bubble Tea reads TERM and COLORTERM from env. Given a nil env, it + // would read the process environment instead. env := o.Env if env == nil { env = []string{} @@ -120,9 +118,10 @@ func Run(ctx context.Context, o Options) (resume string, err error) { program := tea.NewProgram(&m, tea.WithContext(ctx), tea.WithEnvironment(env)) var wg sync.WaitGroup if o.Rex != nil { - // Watch returns only the cause of ctx, when ctx is done. + // Events returns only when ctx is done, and then returns its + // cause, so the error can be ignored. wg.Go(func() { - _ = o.Rex.Watch(ctx, func(e rex.Event) { program.Send(eventMsg(e)) }) + _ = o.Rex.Events(ctx, func(e rex.Event) { program.Send(eventMsg(e)) }) }) } final, err := program.Run() @@ -130,8 +129,8 @@ func Run(ctx context.Context, o Options) (resume string, err error) { wg.Wait() if fm, ok := final.(*model); ok && err == nil { if fm.resumePath != "" { - // Keep the last screen until the new rexdiff draws, so that - // the restart does not show the shell of the pane. + // Keep the last frame on screen until the new rexdiff draws, + // so that the shell does not appear during the restart. fmt.Print("\x1b[?1049h\x1b[?25l\x1b[H" + fm.View().Content) } return fm.resumePath, nil @@ -139,39 +138,35 @@ func Run(ctx context.Context, o Options) (resume string, err error) { return "", err } -// errQuit is the cause of the stop of the work of Run when rexdiff quits. +// errQuit is the cancellation cause for Run's background work when +// rexdiff quits. var errQuit = fmt.Errorf("rexdiff quits: %w", context.Canceled) -// startModel returns the model that Run shows. It starts the watcher, -// reads the state of o.Resume, loads the changes, and labels the block of -// the program in Rex. +// startModel returns the model that Run displays. It restores the +// settings saved in o.Resume, asks for the changes to load, and labels the +// rexdiff block in Rex. [model.Init] starts the loading, so that the first +// frame does not wait for git. func startModel(ctx context.Context, o Options, cfg config) model { m := newModel(ctx, o, cfg) - if err := m.startWatch(); err != nil { - m.dropWatch(err) - } var saved *resumeState if o.Resume != "" { var err error if saved, err = loadResume(o.Resume); err != nil { m.flash("restore of the comments failed: " + err.Error()) - } else { - m.restoreSettings(saved) } } - m.loadNow() + // loadResume returns a nil state with an error. if saved != nil { - m.restorePlaces(saved) + m.restoreSettings(saved) } + m.requestReload() + m.changes.pane.note = "loading changes…" if o.Rex != nil && o.Rex.Block() != "" { - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, rexTimeout, - fmt.Errorf("rex label: %v timeout: %w", rexTimeout, context.DeadlineExceeded)) + ctx, cancel := xctx.WithTimeout(ctx, rexTimeout, "rex label") if err := o.Rex.SetLabel(ctx, o.Rex.Block(), appName); err != nil { m.log.Debug("set label failed", "err", err) } - cancel(fmt.Errorf("rex label: done: %w", context.Canceled)) - cancelTimeout() + cancel() } return m } diff --git a/tui/turn.go b/tui/turn.go index e6b1b85..42ed12f 100644 --- a/tui/turn.go +++ b/tui/turn.go @@ -1,30 +1,29 @@ package tui import ( - "context" - "fmt" "maps" "slices" "time" tea "charm.land/bubbletea/v2" + "github.com/rednafi/rexdiff/internal/xctx" "github.com/rednafi/rexdiff/rex" ) -// member is an agent that works in the repository. +// member is an agent working in the repository. type member struct { block, app string state rex.State - since time.Time // when Rex got the state + since time.Time // when Rex received the state } -// members returns the agents that work in the repository, in the order -// of their blocks. As in herdr-reviewr, an agent is a member if its -// working directory is absolute and in this working tree. If the place of -// an agent is not known, members returns false, and the block of the -// agent if Rex can tell its place. -func (m *model) members() (ms []member, ask string, ok bool) { +// turnMembers returns the agents working in the repository, sorted by +// block. An agent is a member if its working directory is absolute and +// inside this working tree. If an agent's directory is not known, ok is +// false, and ask is that agent's block if Rex can be asked for the +// directory. +func (m *model) turnMembers() (ms []member, ask string, ok bool) { for _, block := range slices.Sorted(maps.Keys(m.agents)) { a := m.agents[block] if a.state == "" || a.app == appName || (m.rex != nil && block == m.rex.Block()) { @@ -38,7 +37,8 @@ func (m *model) members() (ms []member, ask string, ok bool) { } in, err := m.owns(a.cwd) if err != nil { - // Each event asks again. The log has each error once. + // Every event tries again, so log each distinct error only + // once. if text := err.Error(); text != m.ownsErr { m.ownsErr = text m.log.Warn("agent membership failed", "err", err) @@ -54,7 +54,8 @@ func (m *model) members() (ms []member, ask string, ok bool) { } // askCwd returns a command that asks Rex for the working directory of the -// agent in block. The answer comes as a cwdMsg. +// agent in block, or nil if a request is already in progress. The answer +// arrives as a cwdMsg. func (m *model) askCwd(block string) tea.Cmd { a := m.agents[block] if a.asking { @@ -63,22 +64,19 @@ func (m *model) askCwd(block string) tea.Cmd { a.asking = true c, ctx := m.rex, m.ctx return func() tea.Msg { - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, rexTimeout, - fmt.Errorf("rex cwd: %v timeout: %w", rexTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("rex cwd: done: %w", context.Canceled)) + ctx, cancel := xctx.WithTimeout(ctx, rexTimeout, "rex cwd") + defer cancel() cwd, err := c.Cwd(ctx, block) return cwdMsg{block: block, cwd: cwd, err: err} } } -// onCwd keeps the working directory of an agent, and follows the turns -// with it. After an error, the next state asks again. +// onCwd records an agent's working directory and updates turn tracking. +// After an error, the next state change asks again. func (m *model) onCwd(msg cwdMsg) tea.Cmd { a := m.agents[msg.block] if a == nil { - return nil // the block closed + return nil // the block has closed } a.asking = false if msg.err != nil { @@ -89,45 +87,48 @@ func (m *model) onCwd(msg cwdMsg) tea.Cmd { return m.observeTurn() } -// owns reports whether dir is in this working tree. It keeps the -// directories that are, because their top directory does not move. +// owns reports whether dir is inside this working tree. It caches each +// answer, because the top of the working tree does not move, and every +// Rex event asks again on the UI goroutine. func (m *model) owns(dir string) (bool, error) { - if m.memberDirs[dir] { - return true, nil - } - in, err := m.repo.Owns(m.ctx, dir) - if in { - if m.memberDirs == nil { - m.memberDirs = map[string]bool{} + if in, ok := m.ownsDir[dir]; ok { + return in, nil + } + ctx, done := m.gitContext("owns") + in, err := m.repo.Owns(ctx, dir) + done() + if err == nil { + if m.ownsDir == nil { + m.ownsDir = map[string]bool{} } - m.memberDirs[dir] = true + m.ownsDir[dir] = in } return in, err } -// observeTurn gives the state of the repository to the tracker, and -// follows the start and the end of a turn. +// observeTurn passes the states of the agents in the repository to the +// tracker and handles the start or end of a turn. func (m *model) observeTurn() tea.Cmd { - if !m.sampled { + if !m.agentsSampled { return nil } - ms, ask, ok := m.members() + ms, ask, ok := m.turnMembers() if ask != "" { return m.askCwd(ask) } if !ok { - return nil // keep the last state, as herdr-reviewr does + return nil // keep the previous state } here := len(ms) > 0 - if m.agentsHere == nil || *m.agentsHere != here { - m.agentsHere = &here + if m.agentInRepo == nil || *m.agentInRepo != here { + m.agentInRepo = new(here) if m.scope == ScopeLastTurn && m.turn == nil { - m.reload() // show the new wait message + m.requestReload() // show the updated waiting message } } - states := make([]string, len(ms)) + states := make([]rex.State, len(ms)) for i, a := range ms { - states[i] = string(a.state) + states[i] = a.state } started, ended := m.tracker.Observe(states...) if started { @@ -139,54 +140,64 @@ func (m *model) observeTurn() tea.Cmd { return nil } -// turnWaitMessage tells why the last-turn scope has no turn. The messages -// come from herdr-reviewr. -func (m *model) turnWaitMessage() string { - if m.raced { +// turnWaitNote returns a message explaining why the last-turn scope has no +// turn to show. +func (m *model) turnWaitNote() string { + if m.turnRaced { return "the last turn started before rexdiff could snapshot it" } - if m.agentsHere != nil && !*m.agentsHere { + if m.agentInRepo != nil && !*m.agentInRepo { return "no agent works here" } return "waiting for the first turn" } -// raceBefore is how long before Rex gets the working state the agent can -// already write, as in herdr-reviewr. +// raceBefore is how long before Rex receives the working state an agent +// may already be writing files. const raceBefore = time.Second // startTurn returns a command that takes a snapshot of the working tree -// at the start of a turn of the members ms. The snapshot comes as a +// when the members ms start a turn. The snapshot arrives as a // turnStartMsg. func (m *model) startTurn(ms []member) tea.Cmd { - m.pending = nil + m.pendingTurn = nil m.turnGen++ + // A turn starts only when some member is working, so i is valid. i := slices.IndexFunc(ms, func(a member) bool { return a.state == rex.StateWorking }) - gen, a, repo, ctx := m.turnGen, ms[i], m.repo, m.ctx + gen, a, repo, watch, ctx := m.turnGen, ms[i], m.repo, m.watch, m.ctx return func() tea.Msg { - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, reloadTimeout, - fmt.Errorf("turn snapshot: %v timeout: %w", reloadTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("turn snapshot: done: %w", context.Canceled)) - tree, err := repo.Snapshot(ctx) - return turnStartMsg{gen: gen, agent: a, tree: tree, snapped: time.Now(), err: err} + ctx, cancel := xctx.WithTimeout(ctx, reloadTimeout, "turn snapshot") + defer cancel() + tree, err := repo.SnapshotTree(ctx) + msg := turnStartMsg{gen: gen, agent: a, tree: tree, snapped: time.Now(), err: err} + if watch != nil && err == nil { + // LastWrite waits for a watcher check, so call it here rather + // than in Update. A write after the snapshot does not hide one + // before it. + w := watch.LastWrite(msg.snapped) + msg.write = w + msg.raced = !w.Before(a.since.Add(-raceBefore)) && !w.After(msg.snapped) + } + return msg } } -// turnStartMsg is the snapshot at the start of a turn. +// turnStartMsg carries the snapshot taken at the start of a turn. type turnStartMsg struct { - gen int // the value of model.turnGen at the start - agent member // the first agent of the turn that works + gen int // the value of model.turnGen when the snapshot started + agent member // the first working agent in the turn tree string - snapped time.Time // the end of the snapshot + snapped time.Time // when the snapshot finished + write time.Time // the last write before snapped, or zero + raced bool // write happened in the window just before the snapshot err error } -// onTurnStart makes the turn of msg pending. The turn stays pending until -// it changes a file. As in herdr-reviewr, a write from raceBefore the start -// to the snapshot can be in the snapshot. Then the turn is not known, and -// the scope says so. A start or an end after the start of msg drops msg. +// onTurnStart records the turn in msg as pending. It stays pending until +// it changes a file. If a file was written in the time from raceBefore +// before the start to the snapshot, the snapshot may already hold the +// agent's changes, so the turn is forgotten and the scope says so. msg is +// ignored if another turn started or ended after it was sent. func (m *model) onTurnStart(msg turnStartMsg) tea.Cmd { if msg.gen != m.turnGen { return nil @@ -196,16 +207,12 @@ func (m *model) onTurnStart(msg turnStartMsg) tea.Cmd { return nil } a := msg.agent - if m.watch != nil { - // A write after the snapshot does not hide a write before it. - w := m.watch.LastWrite(msg.snapped) - if !w.Before(a.since.Add(-raceBefore)) && !w.After(msg.snapped) { - m.log.Debug("turn raced", "block", a.block, "write", w) - return m.dropTurn() - } + if msg.raced { + m.log.Debug("turn raced", "block", a.block, "write", msg.write) + return m.forgetTurn() } m.log.Debug("turn start", "block", a.block, "tree", msg.tree) - m.pending = &turnState{ + m.pendingTurn = &turnState{ app: a.app, tree: msg.tree, running: true, @@ -214,39 +221,37 @@ func (m *model) onTurnStart(msg turnStartMsg) tea.Cmd { return nil } -// checkTurnLater returns a command that takes a snapshot for the pending -// turn. onTurnCheck makes the turn the last turn if the working tree -// differs from its start. A check at the end of the turn always runs. -// Else one check runs at a time. -func (m *model) checkTurnLater(end bool) tea.Cmd { +// scheduleTurnCheck returns a command that takes a snapshot for the +// pending turn. onTurnCheck then makes it the last turn if the working +// tree differs from the start of the turn. A check at the end of a turn +// always runs; other checks run one at a time. +func (m *model) scheduleTurnCheck(end bool) tea.Cmd { if m.turnChecking && !end { return nil } m.turnChecking = m.turnChecking || !end - p, gen, repo, ctx := m.pending, m.turnGen, m.repo, m.ctx + p, gen, repo, ctx := m.pendingTurn, m.turnGen, m.repo, m.ctx return func() tea.Msg { - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, reloadTimeout, - fmt.Errorf("turn check: %v timeout: %w", reloadTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("turn check: done: %w", context.Canceled)) - tree, err := repo.Snapshot(ctx) + ctx, cancel := xctx.WithTimeout(ctx, reloadTimeout, "turn check") + defer cancel() + tree, err := repo.SnapshotTree(ctx) return turnCheckMsg{turn: p, gen: gen, end: end, tree: tree, err: err} } } -// turnCheckMsg is a snapshot for the pending turn. +// turnCheckMsg carries a snapshot taken for the pending turn. type turnCheckMsg struct { turn *turnState - gen int // the value of model.turnGen at the check - end bool // the check is at the end of the turn + gen int // the value of model.turnGen when the check started + end bool // the check was made at the end of the turn tree string err error } -// onTurnCheck makes the turn of msg the last turn if the working tree -// differs from its start. Before the end, the turn must still be pending. -// After the end, no new turn must start. Else the last turn stays. +// onTurnCheck makes the turn in msg the last turn if the working tree +// differs from the start of the turn. For a check before the end, the turn +// must still be pending. For a check at the end, no new turn may have +// started since. Otherwise the last turn does not change. func (m *model) onTurnCheck(msg turnCheckMsg) tea.Cmd { if !msg.end { m.turnChecking = false @@ -255,31 +260,34 @@ func (m *model) onTurnCheck(msg turnCheckMsg) tea.Cmd { case msg.err != nil: m.log.Warn("turn change check failed", "err", msg.err) case msg.tree == msg.turn.tree: - case msg.end && msg.gen == m.turnGen, !msg.end && msg.turn == m.pending: - return m.promote(msg.turn) + // Nothing changed during the turn. + case msg.end && msg.gen == m.turnGen: + return m.promoteTurn(msg.turn) + case !msg.end && msg.turn == m.pendingTurn: + return m.promoteTurn(msg.turn) } return nil } -// dropTurn forgets the last turn, because a new turn starts that is not -// known. It returns a command that deletes the saved tree. -func (m *model) dropTurn() tea.Cmd { - m.turn, m.raced = nil, true +// forgetTurn forgets the last turn when a new turn starts whose starting +// state cannot be known. It returns a command that deletes the saved tree. +func (m *model) forgetTurn() tea.Cmd { + m.turn, m.turnRaced = nil, true if m.scope == ScopeLastTurn { - m.reload() + m.requestReload() } return m.saveTurn("") } -// promote makes the turn t the last turn. It returns a command that saves -// its tree. -func (m *model) promote(t *turnState) tea.Cmd { - m.turn, m.raced = t, false - if m.pending == t { - m.pending = nil +// promoteTurn makes t the last turn. It returns a command that saves its +// tree. +func (m *model) promoteTurn(t *turnState) tea.Cmd { + m.turn, m.turnRaced = t, false + if m.pendingTurn == t { + m.pendingTurn = nil } if m.scope == ScopeLastTurn { - m.reload() + m.requestReload() } return m.saveTurn(t.tree) } @@ -289,11 +297,8 @@ func (m *model) promote(t *turnState) tea.Cmd { func (m *model) saveTurn(tree string) tea.Cmd { repo, ctx, log := m.repo, m.ctx, m.log return func() tea.Msg { - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, reloadTimeout, - fmt.Errorf("turn save: %v timeout: %w", reloadTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("turn save: done: %w", context.Canceled)) + ctx, cancel := xctx.WithTimeout(ctx, reloadTimeout, "turn save") + defer cancel() if err := repo.SaveTurn(ctx, tree); err != nil { log.Warn("turn baseline ref write failed", "err", err) } @@ -301,22 +306,22 @@ func (m *model) saveTurn(tree string) tea.Cmd { } } -// endTurn ends the turn. It returns a command that checks the pending turn. -// The turn becomes the last turn if it changes the working tree. After the -// end, a change is not from the turn. +// endTurn ends the current turn. It returns a command that checks the +// pending turn, which becomes the last turn if it changed the working +// tree. Changes after the end do not belong to the turn. func (m *model) endTurn() tea.Cmd { - m.turnGen++ // a start that is not pending yet stays out + m.turnGen++ // ignore a turn start whose snapshot has not arrived yet var cmd tea.Cmd - if m.pending != nil { - m.pending.running = false - cmd = m.checkTurnLater(true) - m.pending = nil + if m.pendingTurn != nil { + m.pendingTurn.running = false + cmd = m.scheduleTurnCheck(true) + m.pendingTurn = nil } if m.turn != nil { m.turn.running = false } if m.scope == ScopeLastTurn { - m.reload() + m.requestReload() } return cmd } diff --git a/tui/view.go b/tui/view.go index dfddb46..a5e6dfa 100644 --- a/tui/view.go +++ b/tui/view.go @@ -3,7 +3,7 @@ package tui import ( "fmt" "path" - "slices" + "strconv" "strings" "time" "unicode/utf8" @@ -18,33 +18,34 @@ import ( "github.com/rednafi/rexdiff/vcs" ) -// The colours are ANSI palette indices, so they follow the terminal theme. +// The colours are ANSI palette indexes, so they follow the terminal theme. var ( - // dimColor is the colour of the dim text and of the borders. - dimColor = lipgloss.Color("8") - dimStyle = lipgloss.NewStyle().Foreground(dimColor) - boldStyle = lipgloss.NewStyle().Bold(true) - addStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("2")) - delStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("1")) - cursorStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("3")).Bold(true) - noteStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("3")) - headerStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("4")) - activeStyle = lipgloss.NewStyle().Bold(true).Underline(true) - findStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("6")).Bold(true) + // dimColor is the colour of dim text and borders. + dimColor = lipgloss.Color("8") + dimStyle = lipgloss.NewStyle().Foreground(dimColor) + boldStyle = lipgloss.NewStyle().Bold(true) + addedStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("2")) + deletedStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("1")) + accentStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("3")).Bold(true) + noteStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("3")) + headerStyle = lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("4")) + findStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("6")).Bold(true) + titleStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("5")) // the file path above the diff ) -// truncate cuts s to w columns, with an ellipsis. +// truncate cuts s to at most w columns, ending with an ellipsis if it +// was cut. func truncate(s string, w int) string { return ansi.Truncate(s, max(w, 0), "…") } -// dark reports whether the terminal background is dark. A background that -// is not known counts as dark. +// dark reports whether the terminal background is dark. An unknown +// background counts as dark. func (m *model) dark() bool { return m.bg == nil || tea.BackgroundColorMsg{Color: m.bg}.IsDark() } -// selStyle returns the style of a selected row. The style is a tint of the -// terminal background. -func (m *model) selStyle() lipgloss.Style { +// highlightStyle returns the style for a highlighted row: a tint of the +// terminal background, or reverse video if the background is unknown. +func (m *model) highlightStyle() lipgloss.Style { if m.bg == nil { return lipgloss.NewStyle().Reverse(true) } @@ -55,34 +56,35 @@ func (m *model) selStyle() lipgloss.Style { return lipgloss.NewStyle().Bold(true).Background(tint) } -// headerAction is what a click on a part of the header does. +// headerAction is the action that clicking part of the header performs. type headerAction int const ( headerNone headerAction = iota headerTabChanges - headerTabFiles + headerTabAllFiles headerTabPR - headerScope0 // the first scope. Add the index of the scope. + headerScope0 // the first scope; add the scope's index for the others headerBase = headerScope0 + headerAction(len(scopes)) headerCommits = headerBase + 1 headerAgent = headerBase + 2 ) -// headerSpan is a part of the header that takes clicks. +// headerSpan is a clickable part of the header. type headerSpan struct { x0, x1 int action headerAction } -// headerLine builds the top line, and keeps the parts that take clicks. +// headerLine builds the top line and records its clickable parts. type headerLine struct { b strings.Builder spans []headerSpan x int // the width so far, in columns } -// add adds s. A click on s does action. +// add appends s to the line. Clicking s performs action, unless action is +// headerNone. func (l *headerLine) add(s string, action headerAction) { w := lipgloss.Width(s) if action != headerNone { @@ -92,17 +94,17 @@ func (l *headerLine) add(s string, action headerAction) { l.x += w } -// header renders the top line, and returns the parts that take clicks. +// header renders the top line and returns its clickable parts. func (m *model) header() (string, []headerSpan) { var l headerLine for i, t := range []string{"Changes", "Files", "PR"} { - label := fmt.Sprintf("%d %s", i+1, t) + // The key is bold and its label plain, as in the footer. The + // labels of the other tabs are dim. + name := dimStyle.Render(t) if tab(i) == m.tab { - label = activeStyle.Render(label) - } else { - label = dimStyle.Render(label) + name = t } - l.add(" "+label+" ", headerTabChanges+headerAction(i)) + l.add(" "+boldStyle.Render(strconv.Itoa(i+1))+" "+name+" ", headerTabChanges+headerAction(i)) } sep := dimStyle.Render(" │ ") switch m.tab { @@ -115,7 +117,7 @@ func (m *model) header() (string, []headerSpan) { l.add(dimStyle.Render(string(pr.Forge)+" "), headerNone) } } - // The right end shows where a send goes. + // The right end shows where a review would be sent. if right := m.agentLabel(); right != "" { if pad := m.w - l.x - lipgloss.Width(right) - 1; pad > 0 { l.add(strings.Repeat(" ", pad), headerNone) @@ -125,13 +127,13 @@ func (m *model) header() (string, []headerSpan) { return truncate(l.b.String(), m.w), l.spans } -// headerScopes adds the scopes to the header, and what the current scope -// compares with. +// headerScopes adds the scopes to the header, followed by what the current +// scope compares against. func (m *model) headerScopes(l *headerLine) { for i, s := range scopes { style := dimStyle if s == m.scope { - style = cursorStyle + style = lipgloss.NewStyle() } l.add(style.Render(s.label()), headerScope0+headerAction(i)) l.add(" ", headerNone) @@ -148,14 +150,15 @@ func (m *model) headerScopes(l *headerLine) { } } -// commitsLabel returns the header text for the commits of the commits scope. +// commitsLabel returns the header text naming the commits chosen for the +// commits scope. func (m *model) commitsLabel() string { - if m.to == "" { + if m.newest == "" { return "pick ▾" } - label := shortSHA(m.to) - if m.from != m.to { - label = shortSHA(m.from) + ".." + shortSHA(m.to) + label := shortSHA(m.newest) + if m.oldest != m.newest { + label = shortSHA(m.oldest) + ".." + shortSHA(m.newest) } return label + dimStyle.Render(" ▾") } @@ -163,23 +166,23 @@ func (m *model) commitsLabel() string { // shortSHA returns the first 7 characters of a commit hash. func shortSHA(s string) string { return s[:min(len(s), 7)] } -// turnLabel returns the text about the last turn, for the header. As in -// herdr-reviewr, a saved turn from an earlier run has no label. With no -// turn, the Changes tab tells why, so the header shows nothing. +// turnLabel returns the header text about the last turn. It returns "" +// for a turn saved by an earlier run, and when there is no turn, because +// the Changes tab then explains why. func (m *model) turnLabel() string { if m.turn == nil || m.turn.at.IsZero() { return "" } ago := time.Since(m.turn.at).Round(time.Second) - app := termtext.Quote(m.turn.app) // the app name comes from the agent + app := termtext.Quote(m.turn.app) // the agent reports the app name, so quote it if m.turn.running { return noteStyle.Render("● ") + app + dimStyle.Render(" working · "+ago.String()) } return app + dimStyle.Render(" · "+ago.String()+" ago") } -// agentLabel returns the header text that tells how many agents can get -// the next send. +// agentLabel returns the header text saying how many agents the next +// review could be sent to. func (m *model) agentLabel() string { if m.rex == nil { return dimStyle.Render("not in Rex") @@ -196,13 +199,14 @@ func (m *model) agentLabel() string { return dimStyle.Render("send → ") + plural(n, "agent") } -// statusMark returns the mark of a changed file in the file list. +// statusMark returns the status letter shown for a changed file in the +// file list. func statusMark(s vcs.FileStatus) string { switch s { case vcs.StatusAdded: - return addStyle.Render("A") + return addedStyle.Render("A") case vcs.StatusDeleted: - return delStyle.Render("D") + return deletedStyle.Render("D") case vcs.StatusModified: return noteStyle.Render("M") case vcs.StatusRenamed: @@ -211,151 +215,162 @@ func statusMark(s vcs.FileStatus) string { return " " } -// listLines renders h lines of the file list. The lines are a title and the +// navigatorLines renders h lines of the file list: a title followed by the // rows of the tree. -func (m *model) listLines(h int) []string { - t := m.list() +func (m *model) navigatorLines(h int) []string { + t := m.curNavigator() if t == nil { return nil } - w := m.listWidth() - title := fmt.Sprintf("Changes (%d)", len(m.changeFiles)) - if m.tab == tabFiles { - n := 0 - for _, e := range m.allFiles { - if !strings.HasSuffix(e.Path, "/") { - n++ - } + w := m.navigatorWidth() + title := fmt.Sprintf("Changes (%d)", max(len(m.changes.files), m.changes.tooMany)) + if m.tab == tabAllFiles { + title = fmt.Sprintf("Files (%d)", m.allFiles.fileCount) + if n := m.allFiles.more; n > 0 { + title += fmt.Sprintf(" … %d more files not listed", n) } - title = fmt.Sprintf("Files (%d)", n) } - out := []string{headerStyle.Render(title)} - for i := m.listStart(h); i < len(t.rows) && len(out) < h; i++ { - r := m.treeRow(t.rows[i], w) + // The title lines up with the status letters of the rows. + out := []string{truncate(" "+headerStyle.Render(title), w)} + for i := m.navigatorStart(h); i < len(t.rows) && len(out) < h; i++ { + // A long name or count must not wrap the row onto the next line. + r := truncate(m.navigatorRow(t.rows[i], w), w) if i == t.cur { - r = m.selectedRow(r, w) + r = m.highlightRow(r, w) } out = append(out, r) } return out } -// treeRow renders row r of the file list, w columns wide. -func (m *model) treeRow(r tree.Row, w int) string { +// navigatorRow renders row r of the file list, w columns wide. +func (m *model) navigatorRow(r tree.Row, w int) string { indent := strings.Repeat(" ", r.Depth) switch { case r.File < 0: return m.dirRow(r, indent, w) case m.tab == tabChanges: - return m.changedRow(m.changeFiles[r.File], indent, r.Name, w) + return m.changesRow(m.changes.files[r.File], indent, r.Name, w) } - return m.entryRow(m.allFiles[r.File], indent, r.Name, w) + return m.allFilesRow(m.allFiles.entries[r.File], indent, r.Name, w) } -// dirRow renders directory r of the file list, w columns wide. As in -// herdr-reviewr, a collapsed directory of the Files tab has a dot if it -// holds a change. +// dirRow renders directory row r of the file list, w columns wide. In the +// Files tab, a collapsed directory that contains changes gets a dot. func (m *model) dirRow(r tree.Row, indent string, w int) string { arrow, mark := "▸", "" if r.Expanded { arrow = "▾" } - if m.tab == tabFiles && !r.Expanded && r.Changed { + if m.tab == tabAllFiles && !r.Expanded && r.Changed { mark = noteStyle.Render("•") } room := w - ansi.StringWidth(indent) - lipgloss.Width(mark) - 4 - name := boldStyle.Render(fitName(r.Name+"/", room)) + st := boldStyle if r.Ignored { - name = dimStyle.Render(fitName(r.Name+"/", room)) + st = dimStyle } + name := st.Render(fitName(r.Name+"/", room)) return " " + indent + dimStyle.Render(arrow) + " " + name + " " + mark } -// changedRow renders changed file f in the file list, w columns wide. The -// row shows the name in the tree, after indent. -func (m *model) changedRow(f changedFile, indent, name string, w int) string { - adds := addStyle.Render(fmt.Sprintf("+%d", f.adds)) - stat := adds + " " + delStyle.Render(fmt.Sprintf("-%d", f.dels)) +// changesRow renders changed file f in the file list, w columns wide. The +// row shows name, its name in the tree, after indent. +func (m *model) changesRow(f changedFile, indent, name string, w int) string { + stat := f.stat() if c := m.comments.Count(m.anchorOf(tabChanges), f.Path); c > 0 { - stat = cursorStyle.Render(fmt.Sprintf("●%d ", c)) + stat + stat = accentStyle.Render(fmt.Sprintf("●%d ", c)) + stat } - if f.From != "" { - name = f.From + " → " + name + if f.OldPath != "" { + name = f.OldPath + " → " + name } - return fileRow(indent, statusMark(f.Status), name, stat, w) + return navigatorRowText(indent, statusMark(f.Status), name, stat, w) } -// entryRow renders entry e of the Files tab in the file list, w columns -// wide. The row shows the name in the tree, after indent. -func (m *model) entryRow(e vcs.Entry, indent, name string, w int) string { +// allFilesRow renders entry e in the Files tab's file list, w columns +// wide. The row shows name, its name in the tree, after indent. +func (m *model) allFilesRow(e vcs.Entry, indent, name string, w int) string { if e.Ignored { - return dimStyle.Render(fileRow(indent, " ", name, "", w)) + return dimStyle.Render(navigatorRowText(indent, " ", name, "", w)) } stat := "" - if c := m.comments.Count(m.anchorOf(tabFiles), e.Path); c > 0 { - stat = cursorStyle.Render(fmt.Sprintf("●%d", c)) + if c := m.comments.Count(m.anchorOf(tabAllFiles), e.Path); c > 0 { + stat = accentStyle.Render(fmt.Sprintf("●%d", c)) } - return fileRow(indent, " ", name, stat, w) + return navigatorRowText(indent, " ", name, stat, w) } -// selectedRow highlights row r of the selected file, w columns wide. -// When the list has the focus, a mark takes the place of the first space. -func (m *model) selectedRow(r string, w int) string { - style := m.selStyle().Width(w) - if !m.focusList { +// highlightRow highlights r, the row of the current file, w columns wide. +// When the file list has focus, a bar replaces the first space. +func (m *model) highlightRow(r string, w int) string { + style := m.highlightStyle().Width(w) + if !m.navigatorFocused { return style.Render(r) } - return style.Render(cursorStyle.Render("▌") + ansi.TruncateLeft(r, 1, "")) + return style.Render(accentStyle.Render("▎") + ansi.TruncateLeft(r, 1, "")) } -// listStart returns the first row that the file list shows in h lines. -// The first line is the title. -func (m *model) listStart(h int) int { - t := m.list() - switch { - case t == nil: - return 0 - case t.free: - return min(max(t.top, 0), max(len(t.rows)-(h-1), 0)) +// navigatorStart returns the first row that the file list shows in h +// lines, the first of which is the title. +func (m *model) navigatorStart(h int) int { + if t := m.curNavigator(); t != nil { + return t.start(h - 1) } - return max(0, t.cur-(h-2)) + return 0 } -// fileRow returns " M name/of/file.go +3 -1", with indent before the -// mark. -func fileRow(indent, mark, p, stat string, w int) string { +// navigatorRowText returns a file list row such as +// " M name/of/file.go +3 -1", with indent before the status letter. +func navigatorRowText(indent, mark, p, stat string, w int) string { room := w - ansi.StringWidth(indent) - lipgloss.Width(stat) - 4 return " " + indent + mark + " " + fitName(p, room) + " " + stat } -// fitName returns p in room columns, with spaces after it. If p is too -// long, fitName removes the directory first, then the start of the name. +// fitName fits p into room columns, padding it with spaces. If p is too +// long, it drops the directory first, and then cuts the start of the name. func fitName(p string, room int) string { - p = termtext.Quote(p) - if n := ansi.StringWidth(p); n > room { - if base := path.Base(p); ansi.StringWidth(base)+2 <= room { - p = "…/" + base - } else { - p = "…" + ansi.TruncateLeft(p, n-room+1, "") - } - } - // Pad by width, not by runes. + if q := termtext.Quote(p); ansi.StringWidth(q) <= room { + p = q + } else if base := path.Base(q); ansi.StringWidth(base)+2 <= room { + p = "…/" + base + } else { + p = "…" + lastColumns(q, room-1) + } + // Pad by display width, not by rune count. A wide character cut in + // half leaves a column to pad. return p + strings.Repeat(" ", max(room-ansi.StringWidth(p), 0)) } +// lastColumns returns the end of s that fits in n columns. It drops a +// wide character that does not fit whole, so the result can be a column +// short of n. +func lastColumns(s string, n int) string { + n = max(n, 0) + w := ansi.StringWidth(s) + cut := max(w-n, 0) + end := ansi.TruncateLeft(s, cut, "") + // TruncateLeft keeps a wide character that the cut falls inside. + for ansi.StringWidth(end) > n { + cut++ + end = ansi.TruncateLeft(s, cut, "") + } + return end +} + // mainLines renders the visible part of the main pane. rowAt[y] is the row -// on screen line y, or -1 for a note, a comment, or the comment box. hits -// are the find hits that get a mark. The marks do not change rowAt. +// shown on screen line y, or -1 for a note, a comment or the comment box. +// hits are the find matches to mark. The marks do not affect rowAt. func (m *model) mainLines(h int, hits []findHit) (lines []string, rowAt []int) { - p := m.cur() + p := m.curPane() if note := m.emptyNote(); note != "" { - return []string{"", " " + dimStyle.Render(note)}, []int{-1, -1} + return m.noteLines(note, h) } - lo, hi := m.highlighted() + lo, hi := m.highlightRange() add := func(l string, row int) { lines, rowAt = append(lines, l), append(rowAt, row) } - // addBelow adds lines that show no source line, while there is room. + // addBelow adds lines that show no source line, as long as there is + // room. addBelow := func(ls []string) { for _, l := range ls { if len(lines) >= h { @@ -366,103 +381,136 @@ func (m *model) mainLines(h int, hits []findHit) (lines []string, rowAt []int) { } marked := map[int]bool{} for _, hit := range hits { - if hit.line == 0 { // a hit in a fold has no row of its own + if hit.line == 0 { // a match inside a fold has no row of its own marked[hit.row] = true } } - for i := p.top; i < len(p.lines) && len(lines) < h; i++ { - // A wrapped line shows its marks on its first row, and its + for i := p.top; i < p.count() && len(lines) < h; i++ { + // A wrapped line shows its markers on its first row and its // comments below its last row. - t := m.target(i, diff.SideNew) - add(m.rowMark(i, t, lo, hi, marked[i])+p.lines[i], i) - if t != nil && p.end(i) == i { - addBelow(m.commentsBelow(i, t)) + target := m.targetAt(i, diff.SideNew) + add(m.rowMark(i, target, lo, hi, marked[i])+p.line(i), i) + if target != nil && p.lineEnd(i) == i { + addBelow(m.commentsBelow(i, target)) } - if m.mode == modeComment && i == p.end(p.cur) { + if m.mode == modeComment && i == p.lineEnd(p.cur) { addBelow(m.commentBox()) } } return lines, rowAt } -// emptyNote returns the text that shows instead of an empty pane, or "". +// noteLines renders note, the text of an empty pane, for a pane h lines +// high. The note is indented and wrapped, with the indent on every line. +// A blank line comes first if the pane, and the screen below the header, +// have room for it. +func (m *model) noteLines(note string, h int) (lines []string, rowAt []int) { + wrapped := strings.Split(wrapWords(note, m.mainWidth()-2), "\n") + if min(h, m.h-1-m.footerHeight()) > len(wrapped) { + lines = append(lines, "") + } + for _, l := range wrapped { + lines = append(lines, " "+dimStyle.Render(l)) + } + rowAt = make([]int, len(lines)) + for i := range rowAt { + rowAt[i] = -1 + } + return lines, rowAt +} + +// emptyNote returns the text to show instead of an empty pane, or "" if +// the pane is not empty. func (m *model) emptyNote() string { - p := m.cur() + p := m.curPane() switch { - case len(p.lines) > 0: + case p.count() > 0: return "" case p.note != "": - return termtext.Quote(p.note) // the note can come from git or a forge - case m.tab == tabPR && m.prf.inFlight: + return termtext.Quote(p.note) // the note may come from git or a forge + case m.tab == tabPR && m.pr.fetch.inFlight: return "loading the pull request…" - case m.tab == tabFiles && len(m.allFiles) == 0: + case m.tab == tabAllFiles && m.allFiles.entries == nil && (m.allFiles.listing.running || m.allFiles.listing.want): + return "loading files…" + case m.tab == tabAllFiles && len(m.allFiles.entries) == 0: return "no files" - case m.tab == tabFiles && p.path != "": + case m.tab == tabAllFiles && p.path != "": return "empty file" } return "" } -// highlighted returns the first and the last row of the drag or the +// highlightRange returns the first and last rows of the drag or the // selection. With neither, it returns -1, -1. -func (m *model) highlighted() (lo, hi int) { - p := m.cur() +func (m *model) highlightRange() (lo, hi int) { + p := m.curPane() switch { case m.drag.active && m.drag.moved: - return p.span(m.drag.start, p.cur) - case p.anchor >= 0: - return p.selection() + return p.span(m.drag.startRow, p.cur) + case p.selStart >= 0: + return p.selRange() } return -1, -1 } -// rowMark returns the gutter mark of row i. t is the line that row i -// shows, or nil. hit is true for a find hit. The mark shows the cursor, -// the rows lo to hi, a find hit, or a comment. -func (m *model) rowMark(i int, t *targetLine, lo, hi int, hit bool) string { - p := m.cur() +// rowMark returns the gutter marker for row i. target is the line that +// row i shows, or nil, and hit reports whether the row is a find match. +// The marker shows, in order of priority, the cursor, the highlighted +// rows lo to hi, a find match, or a comment. +func (m *model) rowMark(i int, target *targetLine, lo, hi int, hit bool) string { + p := m.curPane() + // The first row of a line taller than the pane can scroll above the + // top, so the top row then shows the cursor while the line is in view. + cur := i == p.cur || i == p.top && p.cur < p.top && p.lineEnd(p.cur) >= p.top switch { - case i == p.cur && m.tab != tabPR: - return cursorStyle.Render("▶ ") + case cur && m.tab != tabPR: + return accentStyle.Render("▶") case lo >= 0 && i >= lo && i <= hi: - return cursorStyle.Render("┃ ") + return accentStyle.Render("┃") case hit: - return findStyle.Render("≈ ") - case t == nil || p.cont(i): + return findStyle.Render("≈") + case target == nil || p.cont(i): return commentMark(nil) } - return commentMark(m.commentOn(i, t)) + return commentMark(m.commentOn(i, target)) } -// commentOn returns a comment on row i, which shows line t, or nil. In -// rendered markdown, it is a comment on a line of the block of row i. -func (m *model) commentOn(i int, t *targetLine) *diff.Comment { - p := m.cur() - first, last := t.line, t.line - if p.src != nil { - first, last = p.rows[p.head(i)].New, p.rows[p.end(i)].New +// commentOn returns a comment on row i, which shows target, or nil. In +// rendered Markdown, it returns a comment on any line of the block that +// contains row i. +func (m *model) commentOn(i int, target *targetLine) *diff.Comment { + p := m.curPane() + if p.removedMarker(i) { + return nil + } + first, last := target.line, target.line + if p.srcRows != nil { + first, last = p.rows[p.lineStart(i)].New, p.rows[p.lineEnd(i)].New } for line := first; line <= last; line++ { - if c := m.comments.At(m.anchor(), p.path, t.side, line); c != nil { + if c := m.comments.At(m.curAnchor(), p.path, target.side, line); c != nil { return c } } return nil } -// commentsBelow returns the lines of the comments whose range ends on -// row i, which shows line t. In rendered markdown, they are the comments -// that end in the block of row i. The comment that the box edits does not -// show. -func (m *model) commentsBelow(i int, t *targetLine) []string { - p := m.cur() - first := t.line - if p.src != nil { - first = p.rows[p.head(i)].New +// commentsBelow returns the rendered lines of the comments whose range +// ends on row i, which shows target. In rendered Markdown, these are the +// comments that end anywhere in the block of row i. The comment being +// edited in the comment box is left out. +func (m *model) commentsBelow(i int, target *targetLine) []string { + p := m.curPane() + if p.removedMarker(i) { + return nil + } + first := target.line + if p.srcRows != nil { + first = p.rows[p.lineStart(i)].New } var out []string - for line := first; line <= t.line; line++ { - for _, c := range m.comments.EndingAt(m.anchor(), p.path, t.side, line) { + for line := first; line <= target.line; line++ { + for _, c := range m.comments.EndingAt(m.curAnchor(), p.path, target.side, line) { if m.mode == modeComment && c.ID == m.draft.editID { continue } @@ -472,82 +520,129 @@ func (m *model) commentsBelow(i int, t *targetLine) []string { return out } -// commentMark returns the gutter mark of a line with comment c, which can -// be nil. +// commentMark returns the gutter marker for a line with comment c, or a +// space if c is nil. func commentMark(c *diff.Comment) string { if c == nil { - return " " + return " " } - return cursorStyle.Render("● ") + return accentStyle.Render("●") } -// commentBox returns the lines of the comment box, indented. +// commentBox returns the lines of the comment box, indented to sit below +// the code. func (m *model) commentBox() []string { var box []string - for l := range strings.SplitSeq(m.editor.View(), "\n") { + for l := range strings.SplitSeq(m.commentInput.View(), "\n") { box = append(box, " "+l) } return box } -// commentLines returns the lines that show comment c below its range. +// commentLines returns the lines that display comment c below the lines +// it refers to. A stale comment starts with "stale". func (m *model) commentLines(c *diff.Comment) []string { var out []string + stale := m.commentStale(c) for i, l := range strings.Split(c.Text, "\n") { prefix := " 💬 " - if i > 0 { + switch { + case i > 0: prefix = " " + case stale: + prefix += accentStyle.Render("stale") + " " } out = append(out, truncate(prefix+noteStyle.Render(l), m.mainWidth())) } return out } -// ensureVisible scrolls the main pane so that the cursor and the comment -// box below it show. The box shows below the last row of its line. When -// the box is open, a line taller than the screen shows only its end. When -// the box is closed, the line shows only its first rows. -func (m *model) ensureVisible() { - p := m.cur() - h := m.mainHeight() - if p.free { - p.top = min(p.top, max(len(p.lines)-h, 0)) +// scrollToCursor scrolls the main pane so that the cursor, and the comment +// box below it, are visible. The box appears below the last row of the +// cursor line. If a line is taller than the screen, only its end is shown +// while the box is open, and only its first rows while the box is closed. +// It also scrolls the file list so that its cursor is visible. Each view +// moves as little as possible. +func (m *model) scrollToCursor() { + // A hidden file list keeps its top row for when it is shown again. + if t, h := m.curNavigator(), m.navigatorRows()-1; t != nil && m.navigatorWidth() > 0 && h > 0 { + t.scrollToCursor(h) // h excludes the title line + } + p := m.curPane() + h := m.shownMainHeight() + if !p.following { + p.top = min(p.top, max(p.count()-h, 0)) return } - p.cur = p.head(p.cur) // the cursor is on the first row of a wrapped line + p.cur = p.lineStart(p.cur) // keep the cursor on the first row of a wrapped line last, box := p.cur, 0 if m.mode == modeComment { - last, box = p.end(p.cur), lipgloss.Height(m.editor.View()) - } - // Each row takes one line or more. Thus the last row cannot show if it is - // h rows or more below the top. - p.top = max(p.top, last-h+1) - p.top = min(last, p.top, max(len(p.lines)-1, 0)) - for p.top < last { - _, rowAt := m.mainLines(h, nil) - idx := slices.Index(rowAt, p.end(p.cur)) - if idx >= 0 && idx+1+box <= h { - return + // The line's comments appear between the line and the box. + last = p.lineEnd(p.cur) + box = lipgloss.Height(m.commentInput.View()) + m.linesBelow(last) + } + // Each row takes at least one line, so row last cannot be visible if + // it is h or more rows below the top. + p.top = min(keepInView(p.top, last, h), p.last()) + if p.top >= last { + return + } + if m.emptyNote() != "" { // the note replaces all rows + p.top = last + return + } + // The end of the cursor line is visible if it lands on screen line 0 + // to h-1-box. Starting from that line, move the top up one row at a + // time for as long as the end stays in that range. Each row takes its + // own line plus the lines of the comments below it. The top never + // moves above its current value. + end := p.lineEnd(p.cur) + top, used := end, 0 + for top > p.top { + n := 1 + m.linesBelow(top-1) + if used+n+1+box > h { + break } - p.top++ + used += n + top-- + } + p.top = min(top, last) +} + +// linesBelow returns the number of comment lines shown below row i of the +// main pane, as mainLines adds them. +func (m *model) linesBelow(i int) int { + p := m.curPane() + target := m.targetAt(i, diff.SideNew) + if target == nil || p.lineEnd(i) != i { + return 0 } + return len(m.commentsBelow(i, target)) } -// footer renders the notice, the status, and the help of the keys. The -// notice wraps, so that the user can read all of it. hits are the hits of -// the find band. +// footer renders the notice, the status and the key help. The notice is +// wrapped so that the user can read all of it. hits are the matches shown +// in the find bar. func (m *model) footer(hits []findHit) string { + line := m.footerLine(hits) if m.notice != "" { - notice := termtext.Quote(m.notice) // the notice can have a path - return delStyle.Render(wrapWords(notice, m.w)) + "\n" + m.footerLine(hits) + notice := termtext.Quote(m.notice) // the notice may contain a path + line = deletedStyle.Render(wrapWords(notice, m.footerWidth())) + "\n" + line } - return m.footerLine(hits) + return inset(line) } -// wrapWords breaks s into lines of width w or less, at spaces only. -// ansi.Wrap and lipgloss let a line end past w at a hyphen. Then the edge -// of the screen cuts off a "--". wrapWords cuts a word wider than w. A -// character wider than w gets a line of its own. +// footerWidth returns the width of the footer, not counting the blank +// column at its left. The header has the same blank column. +func (m *model) footerWidth() int { return max(m.w-1, 1) } + +// inset adds a space at the start of each line of s. +func inset(s string) string { return " " + strings.ReplaceAll(s, "\n", "\n ") } + +// wrapWords breaks s into lines at most w columns wide, breaking only at +// spaces. A word wider than w is cut, and a character wider than w gets a +// line of its own. It does not use [ansi.Wrap], because that can let a +// line run past w at a hyphen. func wrapWords(s string, w int) string { w = max(w, 1) var lines []string @@ -575,32 +670,34 @@ func wrapWords(s string, w int) string { return strings.Join(append(lines, line), "\n") } -// footerLine renders the status and the help of the keys, or the find -// band. +// footerLine renders the status and the key help, or the find bar when it +// is open. func (m *model) footerLine(hits []findHit) string { if m.mode == modeFind { return m.findBand(hits) } - m.help.SetWidth(m.w) + w := m.footerWidth() + m.help.SetWidth(w) var badge string switch { - case m.status != "": - badge = cursorStyle.Render(m.status) + case m.flashText != "": + badge = accentStyle.Render(m.flashText) case m.release != nil: - badge = cursorStyle.Render(m.releaseBadge()) + badge = accentStyle.Render(m.releaseBadge()) case m.mode == modeComment && m.draft != nil: - badge = cursorStyle.Render("✎ " + m.draft.Location()) + badge = accentStyle.Render("✎ " + m.draft.Location()) case m.comments.Len() > 0: - badge = cursorStyle.Render("● " + plural(m.comments.Len(), "unsent comment")) + badge = accentStyle.Render("● " + plural(m.comments.Len(), "unsent comment")) } hk := helpKeys{ - k: m.keys, - mode: m.mode, - tab: m.tab, - split: m.splitShown(), - visual: m.cur().anchor >= 0, - atFold: m.atFold(), - armed: m.armed, + keys: m.keys, + mode: m.mode, + tab: m.tab, + split: m.splitShown(), + selecting: m.curPane().selStart >= 0, + cursorOnFold: m.cursorOnFold(), + cursorInExpandedFold: m.canCollapseFold(), + crossStep: m.crossStep, } if m.help.ShowAll { h := m.help.View(hk) @@ -610,24 +707,59 @@ func (m *model) footerLine(hits []findHit) string { return h } if badge != "" { - m.help.SetWidth(max(m.w-lipgloss.Width(badge)-4, 10)) - return truncate(badge+" "+m.help.View(hk), m.w) + m.help.SetWidth(max(w-lipgloss.Width(badge)-len(helpGap), 10)) + return truncate(badge+helpGap+m.help.View(hk), w) } return m.help.View(hk) } -// bodyHeight returns the number of lines between the header and the footer. -func (m *model) bodyHeight() int { return m.heightAbove(m.footer(m.shownHits())) } +// bodyHeight returns the number of lines between the header and the +// footer, and at least 3. +func (m *model) bodyHeight() int { return max(m.h-m.footerHeight()-1, 3) } + +// shownBodyHeight returns the number of body lines on screen. On a short +// terminal, View cuts the body to make room for the footer, so this can +// be less than bodyHeight. +func (m *model) shownBodyHeight() int { + return min(m.bodyHeight(), max(m.h-1-m.footerHeight(), 0)) +} + +// shownMainHeight returns the number of rows of the main pane on screen, +// and at least 1. On a short terminal, View cuts the body, so this can be +// less than mainHeight. +func (m *model) shownMainHeight() int { + room := m.shownBodyHeight() - m.titleHeight() + if m.navigatorPosition == positionTop { + room -= m.navigatorHeight(m.bodyHeight()) + } + return max(min(m.mainHeight(), room), 1) +} -// heightAbove returns the height of the body above footer. +// footerHeight returns the height of the footer, as heightAbove measures +// it, without rendering the footer. Only the full key list can take more +// than one line, so it is the only part rendered. +func (m *model) footerHeight() int { + n := 1 + if m.mode != modeFind && m.help.ShowAll { + n = lipgloss.Height(m.footerLine(nil)) + } + if m.notice != "" { + n += lipgloss.Height(wrapWords(termtext.Quote(m.notice), m.footerWidth())) + } + return n +} + +// heightAbove returns the height of the body above the rendered footer, +// and at least 3. func (m *model) heightAbove(footer string) int { - return max(m.h-lipgloss.Height(footer)-2, 3) + return max(m.h-lipgloss.Height(footer)-1, 3) } // View renders the screen. func (m *model) View() tea.View { if !m.sized { - // A frame of the guessed size shows wrong for a moment. + // Draw nothing until the terminal reports its size, because a + // frame drawn at the guessed size would flash up wrong. v := tea.NewView("") v.AltScreen = true return v @@ -637,31 +769,65 @@ func (m *model) View() tea.View { h := m.heightAbove(footer) hdr, _ := m.header() - mh := m.mainHeightOf(h) + mh, mw := m.mainHeightOf(h), m.mainWidth() + title := "" + if m.titleHeight() > 0 { + title = m.mainTitle() + } + // With no file to name, the note of an empty pane starts on the title + // line, so that a short terminal still shows it. + noteOnTitle := m.titleHeight() > 0 && title == "" && m.emptyNote() != "" + if noteOnTitle { + mh++ + } ml, _ := m.mainLines(mh, hits) - main := box(ml, m.mainWidth(), mh) + main, mainExact := box(ml, mw, mh) + if m.titleHeight() > 0 && !noteOnTitle { + // Pad a title that fits to the full width of the pane. + if tw := ansi.StringWidth(title); tw <= mw { + title += strings.Repeat(" ", mw-tw) + } else { + mainExact = false + } + main = title + "\n" + main + } body := main rule := dimStyle.Render(strings.Repeat("─", m.w)) - switch lw, lh := m.listWidth(), m.listHeight(h); { + switch lw, lh := m.navigatorWidth(), m.navigatorHeight(h); { case lh > 0: - list := box(m.listLines(lh-1), lw, lh-1) - if m.listPos == positionTop { - body = lipgloss.JoinVertical(lipgloss.Left, list, rule, main) + navigator, _ := box(m.navigatorLines(lh-1), lw, lh-1) + if m.navigatorPosition == positionTop { + body = lipgloss.JoinVertical(lipgloss.Left, navigator, rule, main) } else { - body = lipgloss.JoinVertical(lipgloss.Left, main, rule, list) + body = lipgloss.JoinVertical(lipgloss.Left, main, rule, navigator) } - case lw > 0: - list := box(m.listLines(h), lw, h) - sep := dimStyle.Render(strings.TrimSuffix(strings.Repeat(" │ \n", h), "\n")) - if m.listPos == positionLeft { - body = lipgloss.JoinHorizontal(lipgloss.Top, list, sep, main) + case lw > 0 && !m.navigatorPosition.stacked(): // a file list above or below with no rows is not shown + navigator, navigatorExact := box(m.navigatorLines(h), lw, h) + sep := dimStyle.Render(strings.TrimSuffix(strings.Repeat(" │\n", h), "\n")) + parts := []string{main, sep, navigator} + if m.navigatorPosition == positionLeft { + parts = []string{navigator, sep, main} + } + if mainExact && navigatorExact { + // Every line of each part is exactly as wide as the part, so + // the lines can be joined without measuring. + body = joinColumns(parts...) } else { - body = lipgloss.JoinHorizontal(lipgloss.Top, main, sep, list) + body = lipgloss.JoinHorizontal(lipgloss.Top, parts...) } } - screen := hdr + "\n" + body + "\n" + rule + "\n" + footer + // On a short terminal, the body keeps its minimum height and can push + // the footer off the screen. Cut the body instead, so that the find + // bar and the key help stay visible. + if room := max(m.h-1-lipgloss.Height(footer), 0); lipgloss.Height(body) > room { + body = strings.Join(strings.Split(body, "\n")[:room], "\n") + } + screen := hdr + "\n" + footer + if body != "" { + screen = hdr + "\n" + body + "\n" + footer + } - if m.mode == modeOverlay && m.overlay != nil { + if m.overlay != nil { ov, x, y, _ := m.overlayBox() c := lipgloss.NewCanvas(m.w, m.h) c.Compose(lipgloss.NewLayer(screen)) @@ -669,9 +835,9 @@ func (m *model) View() tea.View { screen = c.Render() } - // On a small screen, the parts have their minimum sizes. Cut the - // screen to the size of the terminal. - screen = lipgloss.NewStyle().MaxWidth(max(m.w, 1)).MaxHeight(max(m.h, 1)).Render(screen) + // On a small terminal, the parts keep their minimum sizes and can + // overflow, so cut the screen to the terminal size. + screen = fitScreen(screen, max(m.w, 1), max(m.h, 1)) v := tea.NewView(screen) v.AltScreen = true v.MouseMode = tea.MouseModeCellMotion @@ -680,16 +846,108 @@ func (m *model) View() tea.View { return v } -// box joins lines into a block of exactly w columns and h lines. -func box(lines []string, w, h int) string { +// box joins lines into a block of w columns and h lines. exact reports +// whether every line is exactly w columns wide; if not, a line with a wide +// character at the edge may be one column short. +func box(lines []string, w, h int) (block string, exact bool) { + if out, ok := paddedBox(lines, w, h); ok { + return out, true + } + return styledBox(lines, w, h), false +} + +// joinColumns joins the blocks side by side, like +// [lipgloss.JoinHorizontal] but without measuring widths. Each block must +// have the same number of lines, all as wide as the block. +func joinColumns(blocks ...string) string { + split := make([][]string, len(blocks)) + for i, b := range blocks { + split[i] = strings.Split(b, "\n") + } + var b strings.Builder + for i := range split[0] { + if i > 0 { + b.WriteByte('\n') + } + for _, lines := range split { + if i < len(lines) { + b.WriteString(lines[i]) + } + } + } + return b.String() +} + +// styledBox implements box with a lipgloss style. It handles any input. +func styledBox(lines []string, w, h int) string { st := lipgloss.NewStyle().Width(w).MaxWidth(w).Height(h).MaxHeight(h) return st.Render(strings.Join(lines, "\n")) } -// programStatus returns the status that rexdiff reports to Rex with OSC 7501. -// Rex shows it in its tabs and its sidebar. +// paddedBox implements box for lines that already fit, by padding them as +// the style in styledBox would. It measures each line only once. ok is +// false if a line is too wide or contains a tab or carriage return, which +// the style would change. +func paddedBox(lines []string, w, h int) (string, bool) { + if w <= 0 || h <= 0 { + return "", false + } + var b strings.Builder + b.Grow(h * (w + 1)) + n := 0 + for _, l := range lines { + if n == h { + break + } + lw := ansi.StringWidth(l) + if lw > w || strings.ContainsAny(l, "\t\r\n") { + return "", false + } + if n > 0 { + b.WriteByte('\n') + } + b.WriteString(l) + b.WriteString(strings.Repeat(" ", w-lw)) + n++ + } + for ; n < h; n++ { + if n > 0 { + b.WriteByte('\n') + } + b.WriteString(strings.Repeat(" ", w)) + } + return b.String(), true +} + +// fitScreen cuts the screen to w columns and h lines, as a style with +// MaxWidth and MaxHeight would. Like that style, it pads each line to the +// width of the widest line. +func fitScreen(screen string, w, h int) string { + slow := func() string { return lipgloss.NewStyle().MaxWidth(w).MaxHeight(h).Render(screen) } + if strings.ContainsAny(screen, "\t\r") { + return slow() + } + lines := strings.Split(screen, "\n") + widths := make([]int, len(lines)) + widest := 0 + for i, l := range lines { + widths[i] = ansi.StringWidth(l) + widest = max(widest, widths[i]) + } + if widest > w { + return slow() + } + lines = lines[:min(len(lines), h)] + for i, l := range lines { + lines[i] = l + strings.Repeat(" ", widest-widths[i]) + } + return strings.Join(lines, "\n") +} + +// programStatus returns the status that rexdiff reports to Rex with OSC +// 7501. Rex shows it in its tabs and sidebar. func (m *model) programStatus() *tea.ProgramStatus { - msg := "reviewing " + plural(len(m.changeFiles), "file") + msg := "reviewing " + plural(max(len(m.changes.files), m.changes.tooMany), "file") if n := m.comments.Len(); n > 0 { msg = plural(n, "unsent comment") } @@ -703,48 +961,50 @@ func (m *model) programStatus() *tea.ProgramStatus { // mainX returns the screen column where the main pane starts. func (m *model) mainX() int { - if m.listPos == positionLeft && m.listWidth() > 0 { - return m.listWidth() + sepWidth + if m.navigatorPosition == positionLeft && m.navigatorWidth() > 0 { + return m.navigatorWidth() + sepWidth } return 0 } // mainY returns the screen line where the main pane starts. func (m *model) mainY() int { - if m.listPos == positionTop { - return bodyY + m.listHeight(m.bodyHeight()) + if m.navigatorPosition == positionTop { + return bodyY + m.navigatorHeight(m.bodyHeight()) + m.titleHeight() } - return bodyY + return bodyY + m.titleHeight() } -// listX returns the screen column where the file list starts. -func (m *model) listX() int { - if m.listPos == positionRight { +// navigatorX returns the screen column where the file list starts. +func (m *model) navigatorX() int { + if m.navigatorPosition == positionRight { return m.mainWidth() + sepWidth } return 0 } -// listY returns the screen line where the file list starts. Below the -// main pane, the list starts under the rule. -func (m *model) listY() int { - if m.listPos == positionBottom { - return bodyY + m.mainHeight() + 1 +// navigatorY returns the screen line where the file list starts. Below +// the main pane, it starts under the rule. +func (m *model) navigatorY() int { + if m.navigatorPosition == positionBottom { + return bodyY + m.titleHeight() + m.mainHeight() + 1 } return bodyY } -// listRows returns the number of lines of the file list, with its title. -func (m *model) listRows() int { +// navigatorRows returns the number of lines in the file list, including +// its title. +func (m *model) navigatorRows() int { h := m.bodyHeight() - if m.listPos.stacked() { - return max(m.listHeight(h)-1, 0) + if m.navigatorPosition.stacked() { + return max(m.navigatorHeight(h)-1, 0) } return h } -// sepWidth is the width of the line " │ " between the panes. -const sepWidth = 3 +// sepWidth is the width of the line " │" between the panes. The file +// list has its own blank column at its left. +const sepWidth = 2 -// bodyY is the screen line where the body starts, below the header. +// bodyY is the screen line where the body starts, just below the header. const bodyY = 1 diff --git a/update/update.go b/update/update.go index 787e500..0ac8731 100644 --- a/update/update.go +++ b/update/update.go @@ -1,15 +1,11 @@ // Package update finds a newer release of rexdiff, installs it, and starts // it in place of the running program. // -// [Detect] finds how the user installed rexdiff. Its [Updater] finds the -// latest [Release] and installs it the same way. It uses Homebrew or go -// install. Else it downloads the archive of the release from GitHub and -// checks it with the checksums of the release. [Restart] runs the new binary -// in the same process, so the terminal and the process ID stay. -// -// The caller gives the environment as a value, as in [exec.Cmd.Env]. The -// package does not read the environment of the process. But net/http reads -// the proxy variables of the process, for example HTTPS_PROXY. +// An [Installer] installs the latest [Release] the way rexdiff was +// installed: with Homebrew, go install, or a checked download from GitHub. +// [Restart] runs the new binary in the current process. The environment is +// passed as a value, but net/http still reads proxy variables from the +// process environment. package update import ( @@ -37,61 +33,63 @@ import ( "time" "github.com/rednafi/rexdiff/internal/proc" + "github.com/rednafi/rexdiff/internal/xctx" ) -// latestURL is the GitHub API address of the latest release of rexdiff. -// REXDIFF_LATEST_URL replaces it (see [Detect]). +// latestURL is the GitHub API URL of the latest release. +// REXDIFF_LATEST_URL overrides it; see [NewInstaller]. const latestURL = "https://api.github.com/repos/rednafi/rexdiff/releases/latest" -// modulePath is the path of the main package, for go install. +// modulePath is the import path of the main package, for go install. const modulePath = "github.com/rednafi/rexdiff/cmd/rexdiff" -// Limits of the network and of the commands. The sizes are in bytes. +// Timeouts and size limits for downloads and commands. Sizes are in bytes. const ( - checkTimeout = 5 * time.Second + fetchTimeout = 5 * time.Second installTimeout = 5 * time.Minute maxArchive = 64 << 20 // the largest archive that download accepts - maxBinary = 128 << 20 // the largest binary in an archive + maxBinary = 128 << 20 // the largest binary that an archive can contain + maxMetadata = 1 << 20 // the largest release JSON or checksum file ) -// method is how the user installed rexdiff. An update installs it the same -// way. +// method is how the user installed rexdiff, and so how an update installs +// it. type method string const ( methodBrew method = "brew" // a Homebrew cask methodGo method = "go" // go install - methodDownload method = "download" // an archive of a release + methodDownload method = "download" // a release archive from GitHub ) -// Release is a release of rexdiff on GitHub. Get one from [Updater.Latest]. -// A Release that you make yourself has no files. Install can install such a -// Release with Homebrew or go install. Install cannot download it. +// Release is a release of rexdiff on GitHub, as returned by +// [Installer.Latest]. A Release created any other way has no download +// files, so Install can install it only with Homebrew or go install. type Release struct { Tag string // for example "v0.2.0" assets []asset } -// asset is a file that is attached to a GitHub release. +// asset is a file attached to a GitHub release. type asset struct { Name string `json:"name"` URL string `json:"browser_download_url"` } -// Updater installs releases of rexdiff. Use [Detect] to make one. -type Updater struct { - bin string // the path of rexdiff as the user runs it, maybe a symlink +// Installer installs releases of rexdiff. Use [NewInstaller] to create one. +type Installer struct { + bin string // the path that the user runs rexdiff from, possibly a symlink version string // the version of the running rexdiff, for example "v0.1.0" method method - brew string // the brew of the Caskroom of bin, for methodBrew - env []string // the environment of brew, go, and rexdiff + brew string // the brew that owns the cask of bin, for methodBrew + env []string // the environment for brew, go and rexdiff latestURL string } // Version returns the version of rexdiff, for example "v0.2.0". stamped is -// the version that the release build sets, for example "0.2.0", or "". If +// the version that a release build embeds, for example "0.2.0", or "". If // stamped is "", Version returns the module version that go install -// records. For a build for development, Version returns "". +// records. For a development build, Version returns "". func Version(stamped string) string { if stamped != "" { return "v" + strings.TrimPrefix(stamped, "v") @@ -104,28 +102,17 @@ func Version(stamped string) string { return "" } -// Detect returns the Updater of the rexdiff at bin. stamped is as for -// [Version]. Detect returns nil if rexdiff cannot update itself, for -// example a build for development. -// -// The Updater installs a release the same way as the user installed -// rexdiff. If bin links into a Caskroom, it uses Homebrew. If stamped is "" -// and the version comes from go install, it uses go install. Else it -// downloads the release. The Updater runs brew, go, and rexdiff with the -// environment env, and finds them in the PATH of env. If env sets -// REXDIFF_LATEST_URL, the Updater gets the latest release from that -// address. Set it to test a release before it is public. -func Detect(env []string, bin, stamped string) *Updater { - return detect(bin, Version(stamped), stamped == "", env) -} - -// detect is [Detect] with the version already found. goInstall is true if -// the version comes from go install. -func detect(bin, version string, goInstall bool, env []string) *Updater { +// NewInstaller returns an Installer for the rexdiff binary at bin. If +// rexdiff cannot update itself, as in a development build, it returns nil +// and false. stamped is as for [Version]. The Installer runs brew, go and +// rexdiff with env, and fetches the latest release from +// REXDIFF_LATEST_URL if env sets it. +func NewInstaller(env []string, bin, stamped string) (*Installer, bool) { + version := Version(stamped) if _, valid := numbers(version); bin == "" || !valid { - return nil + return nil, false } - u := &Updater{ + u := &Installer{ bin: bin, version: version, method: methodDownload, @@ -137,25 +124,22 @@ func detect(bin, version string, goInstall bool, env []string) *Updater { switch { case err == nil && strings.Contains(target, caskroom): u.method = methodBrew - // The brew that owns the cask is in the bin directory beside the + // The brew that owns the cask is in the bin directory next to the // Caskroom, for example /opt/homebrew/bin/brew. prefix, _, _ := strings.Cut(target, caskroom) u.brew = tool("brew", filepath.Join(prefix, "bin")) - case goInstall: + case stamped == "": // the version comes from go install u.method = methodGo } - return u + return u, true } -// Latest returns the latest release, and whether it is newer than the -// running rexdiff. Latest stops and returns an error after five seconds. -func (u *Updater) Latest(ctx context.Context) (Release, bool, error) { - ctx, cancel := context.WithCancelCause(ctx) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, checkTimeout, - fmt.Errorf("release check: %v timeout: %w", checkTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("release check: done: %w", context.Canceled)) - body, err := get(ctx, u.latestURL, 1<<20) +// Latest returns the latest release and reports whether it is newer than +// the running rexdiff. Latest times out after 5 seconds. +func (in *Installer) Latest(ctx context.Context) (r Release, newer bool, err error) { + ctx, cancel := xctx.WithTimeout(ctx, fetchTimeout, "release check") + defer cancel() + body, err := get(ctx, in.latestURL, maxMetadata) if err != nil { return Release{}, false, err } @@ -166,59 +150,53 @@ func (u *Updater) Latest(ctx context.Context) (Release, bool, error) { if err := json.Unmarshal(body, &wire); err != nil { return Release{}, false, fmt.Errorf("read the latest release: %w", err) } - r := Release{Tag: wire.Tag, assets: wire.Assets} - return r, newer(r.Tag, u.version), nil + r = Release{Tag: wire.Tag, assets: wire.Assets} + return r, isNewer(r.Tag, in.version), nil } -// Install installs the release r. Then it checks that the binary of rexdiff -// has the version of r. Install does not stop the running rexdiff. Install -// uses the values of ctx, but ignores its cancel. An install that stops -// early can leave a broken cask or binary. Install stops after five -// minutes. -func (u *Updater) Install(ctx context.Context, r Release) error { - ctx, cancel := context.WithCancelCause(context.WithoutCancel(ctx)) - ctx, cancelTimeout := context.WithTimeoutCause(ctx, installTimeout, - fmt.Errorf("install: %v timeout: %w", installTimeout, context.DeadlineExceeded)) - defer cancelTimeout() - defer cancel(fmt.Errorf("install: done: %w", context.Canceled)) +// Install installs the release r and checks that the new binary reports +// the version of r. It does not stop the running rexdiff. Install ignores +// cancellation of ctx, because an install that stops halfway can leave a +// broken cask or binary. Install times out after 5 minutes. +func (in *Installer) Install(ctx context.Context, r Release) error { + ctx, cancel := xctx.WithTimeout(context.WithoutCancel(ctx), installTimeout, "install") + defer cancel() var err error - switch u.method { + switch in.method { case methodBrew: - // Turn off the hints and the prompts of brew, because no user sees - // the output. + // Turn off brew's hints and prompts, because no one sees the output. env := []string{"HOMEBREW_NO_ENV_HINTS=1", "NONINTERACTIVE=1"} - brew := cmp.Or(u.brew, "brew") - // brew updates its taps at most once a day. Thus brew upgrade can - // miss a new release. Update the taps first. Then - // HOMEBREW_NO_AUTO_UPDATE stops a second update. - if _, err = u.runProgram(ctx, env, brew, "update", "--quiet"); err == nil { + brew := cmp.Or(in.brew, "brew") + // brew updates its taps at most once a day, so brew upgrade can + // miss a new release. Update the taps first, then set + // HOMEBREW_NO_AUTO_UPDATE so that upgrade does not update them again. + if _, err = in.run(ctx, env, brew, "update", "--quiet"); err == nil { env = append(env, "HOMEBREW_NO_AUTO_UPDATE=1") - _, err = u.runProgram(ctx, env, brew, "upgrade", "--cask", "rexdiff") + _, err = in.run(ctx, env, brew, "upgrade", "--cask", "rexdiff") } case methodGo: - // GOBIN puts the new binary where the old one is. - env := []string{"GOBIN=" + filepath.Dir(u.bin)} + // GOBIN makes go install write the new binary next to the old one. + env := []string{"GOBIN=" + filepath.Dir(in.bin)} goTool := "go" - // Rex starts panes with a PATH without Go. - if _, lerr := proc.LookPath(u.env, goTool); lerr != nil { + // Rex starts panes with a PATH that does not include Go. + if _, lerr := proc.LookPath(in.env, goTool); lerr != nil { goTool = tool("go", "/opt/homebrew/bin", "/usr/local/go/bin", "/usr/local/bin") } - _, err = u.runProgram(ctx, env, goTool, "install", modulePath+"@"+r.Tag) + _, err = in.run(ctx, env, goTool, "install", modulePath+"@"+r.Tag) default: - return u.download(ctx, r) // it checks the version before the replace + return in.download(ctx, r) // download checks the version before it replaces the binary } if err != nil { return err } - return u.checkVersion(ctx, u.bin, r.Tag) + return in.verifyVersion(ctx, in.bin, r.Tag) } -// checkVersion checks that the binary at bin is the version tag, so that a -// restart does not run a broken or an old binary. -func (u *Updater) checkVersion(ctx context.Context, bin, tag string) error { - out, err := u.runProgram(ctx, nil, bin, "-version") +// verifyVersion checks that the binary at bin reports the version tag. +func (in *Installer) verifyVersion(ctx context.Context, bin, tag string) error { + out, err := in.run(ctx, nil, bin, "-version") if err != nil { - // The error of runProgram names rexdiff. + // The error from run already names rexdiff. return fmt.Errorf("check the new version: %w", err) } if got := strings.TrimSpace(string(out)); got != tag { @@ -227,11 +205,11 @@ func (u *Updater) checkVersion(ctx context.Context, bin, tag string) error { return nil } -// runProgram runs name with args, with env added to the environment of u. -// Its error has the end of the output, which tells what went wrong. -func (u *Updater) runProgram(ctx context.Context, env []string, name string, args ...string) ([]byte, error) { - // A copy keeps u.env as it is. - cmd := proc.Command(ctx, slices.Concat(u.env, env), name, args...) +// run runs the program name with args, adding env to the Installer's +// environment, and returns its combined output. The error includes the +// last line of the output. +func (in *Installer) run(ctx context.Context, env []string, name string, args ...string) ([]byte, error) { + cmd := proc.Command(ctx, slices.Concat(in.env, env), name, args...) out, err := cmd.CombinedOutput() if err == nil { return out, nil @@ -248,10 +226,9 @@ func (u *Updater) runProgram(ctx context.Context, env []string, name string, arg return out, fmt.Errorf("%s: %w", filepath.Base(name), err) } -// tool returns the path of the program name in dirs. If dirs do not have -// the program, tool returns name, and the Updater looks for name in the -// PATH of its environment. tool looks in dirs first, because Rex starts -// panes with a PATH without Homebrew or Go. +// tool returns the path of the program name in one of dirs, or name itself +// if no dir has it. It exists because Rex starts panes with a PATH that +// does not include Homebrew or Go. func tool(name string, dirs ...string) string { env := []string{"PATH=" + strings.Join(dirs, string(os.PathListSeparator))} if path, err := proc.LookPath(env, name); err == nil { @@ -260,16 +237,16 @@ func tool(name string, dirs ...string) string { return name } -// download downloads the archive of r for this system and checks it with -// the checksums of r. Then it puts its binary in place of the file that -// u.bin links to. -func (u *Updater) download(ctx context.Context, r Release) error { +// download downloads the archive of r for this operating system and +// architecture, verifies it against the checksums of r, and replaces the +// file that in.bin links to with the binary from the archive. +func (in *Installer) download(ctx context.Context, r Release) error { name := fmt.Sprintf("rexdiff-%s-%s-%s.tar.gz", r.Tag, runtime.GOOS, runtime.GOARCH) archiveURL, sumsURL := assetURL(r, name), assetURL(r, "sha256sums.txt") if archiveURL == "" || sumsURL == "" { return fmt.Errorf("release %s has no %s or sha256sums.txt", r.Tag, name) } - sums, err := get(ctx, sumsURL, 1<<20) + sums, err := get(ctx, sumsURL, maxMetadata) if err != nil { return err } @@ -288,15 +265,15 @@ func (u *Updater) download(ctx context.Context, r Release) error { if err != nil { return fmt.Errorf("%s: %w", name, err) } - target, err := filepath.EvalSymlinks(u.bin) + target, err := filepath.EvalSymlinks(in.bin) if err != nil { return err } - check := func(tmp string) error { return u.checkVersion(ctx, tmp, r.Tag) } + check := func(tmp string) error { return in.verifyVersion(ctx, tmp, r.Tag) } return replaceFile(target, bin, check) } -// assetURL returns the address of the asset of r with the name, or "". +// assetURL returns the download URL of the asset of r called name, or "". func assetURL(r Release, name string) string { if i := slices.IndexFunc(r.assets, func(a asset) bool { return a.Name == name }); i >= 0 { return r.assets[i].URL @@ -304,7 +281,8 @@ func assetURL(r Release, name string) string { return "" } -// checksum returns the hex SHA-256 of the file name in a sha256sums.txt. +// checksum returns the hex SHA-256 sum that sums, the content of a +// sha256sums.txt file, lists for the file name. func checksum(sums []byte, name string) (string, bool) { for line := range strings.SplitSeq(string(sums), "\n") { sum, file, ok := strings.Cut(strings.TrimSpace(line), " ") @@ -315,7 +293,8 @@ func checksum(sums []byte, name string) (string, bool) { return "", false } -// binaryOf returns the content of the file rexdiff in a .tar.gz archive. +// binaryOf returns the content of the regular file named rexdiff in a +// .tar.gz archive. func binaryOf(archive []byte) ([]byte, error) { gz, err := gzip.NewReader(bytes.NewReader(archive)) if err != nil { @@ -343,15 +322,15 @@ func binaryOf(archive []byte) ([]byte, error) { } } -// replaceFile puts content in place of the file at path, in one rename, so -// that path is never a half-written file. check runs on the new file first. -// If check fails, path does not change. +// replaceFile replaces the file at path with content using a single +// rename, so path is never half written. It first calls check on the new +// file. If check fails, path does not change. func replaceFile(path string, content []byte, check func(tmp string) error) error { tmp, err := os.CreateTemp(filepath.Dir(path), ".rexdiff-update-*") if err != nil { return err } - defer func() { _ = os.Remove(tmp.Name()) }() // fails after the rename + defer func() { _ = os.Remove(tmp.Name()) }() // a no-op after the rename _, err = tmp.Write(content) if err == nil { err = tmp.Chmod(0o755) @@ -368,7 +347,8 @@ func replaceFile(path string, content []byte, check func(tmp string) error) erro return os.Rename(tmp.Name(), path) } -// get returns the body at url, of at most limit bytes. +// get fetches url and returns the response body. It returns an error if +// the body is larger than limit bytes. func get(ctx context.Context, url string, limit int64) ([]byte, error) { req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) if err != nil { @@ -393,25 +373,23 @@ func get(ctx context.Context, url string, limit int64) ([]byte, error) { return body, nil } -// Restart runs the rexdiff at bin with args and the environment env in -// place of this process. The process ID and the terminal stay, so Rex sees -// the same program. Restart returns only if it fails. Its parameters have -// the order of [syscall.Exec], so env comes last. -func Restart(bin string, args, env []string) error { - return syscall.Exec(bin, append([]string{bin}, args...), env) +// Restart replaces the current process with the rexdiff at bin, run with +// env and args. The process keeps its ID and terminal. Restart returns +// only if it fails. +func Restart(env []string, bin string, args []string) error { + return syscall.Exec(bin, slices.Concat([]string{bin}, args), env) } -// newer reports whether the version tag is newer than the version have. -// Both are like "v1.2.3". A version that is not "v" and three numbers is -// never newer. Thus a build for development does not ask to update. Also, -// rexdiff does not offer a tag that names no archive of GoReleaser. -func newer(tag, have string) bool { +// isNewer reports whether the version tag is newer than the version have. +// Both have the form "v1.2.3". If either does not, isNewer reports false. +func isNewer(tag, have string) bool { t, ok1 := numbers(tag) h, ok2 := numbers(have) return ok1 && ok2 && slices.Compare(t[:], h[:]) > 0 } -// numbers returns the three numbers of a version like "v1.2.3". +// numbers returns the three numbers in a version such as "v1.2.3", and +// false if v does not have that form. func numbers(v string) ([3]int, bool) { var n [3]int v, ok := strings.CutPrefix(v, "v") @@ -423,14 +401,13 @@ func numbers(v string) ([3]int, bool) { return n, false } for i, p := range parts { - if p == "" || strings.Trim(p, "0123456789") != "" { - return n, false // Atoi accepts a sign, but a version has none - } - x, err := strconv.Atoi(p) + // ParseUint, unlike Atoi, rejects a sign. The bit size keeps x + // within the range of an int. + x, err := strconv.ParseUint(p, 10, strconv.IntSize-1) if err != nil { return n, false } - n[i] = x + n[i] = int(x) } return n, true } diff --git a/update/update_test.go b/update/update_test.go index b46679c..db2e43e 100644 --- a/update/update_test.go +++ b/update/update_test.go @@ -14,6 +14,7 @@ import ( "os" "path/filepath" "runtime" + "slices" "strconv" "strings" "testing" @@ -23,7 +24,8 @@ import ( "github.com/rednafi/rexdiff/update" ) -// mkdir makes the directory dir and its parents, and returns dir. +// mkdir creates the directory dir and any missing parents, and returns +// dir. func mkdir(t *testing.T, dir string) string { t.Helper() if err := os.MkdirAll(dir, 0o755); err != nil { @@ -32,21 +34,22 @@ func mkdir(t *testing.T, dir string) string { return dir } -// detect returns the Updater of the rexdiff at bin, with the latest -// release at latest. Its environment has REXDIFF_LATEST_URL and the PATH -// /usr/bin:/bin, then the variables of env. A later variable wins. -func detect(t *testing.T, latest, bin, stamped string, env ...string) *update.Updater { +// newInstaller returns an Installer for the rexdiff at bin that fetches +// the latest release from the URL latest. Its environment sets +// REXDIFF_LATEST_URL and PATH=/usr/bin:/bin, followed by env, so env can +// override them. +func newInstaller(t *testing.T, latest, bin, stamped string, env ...string) *update.Installer { t.Helper() - env = append([]string{"REXDIFF_LATEST_URL=" + latest, "PATH=/usr/bin:/bin"}, env...) - u := update.Detect(env, bin, stamped) - if u == nil { - t.Fatalf("Detect(%q, %s, %s) = nil, want an Updater", env, bin, stamped) + env = slices.Concat([]string{"REXDIFF_LATEST_URL=" + latest, "PATH=/usr/bin:/bin"}, env) + u, ok := update.NewInstaller(env, bin, stamped) + if !ok { + t.Fatalf("NewInstaller(%q, %s, %s) = nil, false, want an Installer", env, bin, stamped) } return u } -// serve starts a server with the handler h, and returns its address. The -// test stops the server at the end. +// serve starts a test HTTP server with the handler h and returns its URL. +// The server stops when the test ends. func serve(t *testing.T, h http.Handler) string { t.Helper() srv := httptest.NewServer(h) @@ -54,9 +57,9 @@ func serve(t *testing.T, h http.Handler) string { return srv.URL } -// TestVersion checks the version from the release build, and the builds -// that cannot update. A test binary has no version, like a build for -// development. +// TestVersion checks that Version adds a leading v to a stamped version, +// and that NewInstaller returns nil for a build with no valid version, +// such as a test binary, or for an empty path. func TestVersion(t *testing.T) { t.Parallel() for stamped, want := range map[string]string{"0.2.0": "v0.2.0", "v0.2.0": "v0.2.0", "": ""} { @@ -71,40 +74,42 @@ func TestVersion(t *testing.T) { {"", "0.1.0"}, } for _, tt := range tests { - if u := update.Detect(nil, tt.bin, tt.stamped); u != nil { - t.Errorf("Detect(nil, %q, %q) = %+v, want nil", tt.bin, tt.stamped, u) + if u, ok := update.NewInstaller(nil, tt.bin, tt.stamped); u != nil || ok { + t.Errorf("NewInstaller(nil, %q, %q) = %+v, %t, want nil, false", tt.bin, tt.stamped, u, ok) } } } -// TestLatest checks Latest against a fake GitHub API, and which tags are -// newer than the running version. +// TestLatest checks that Latest reads the release tag from a fake GitHub +// API and reports which tags are newer than the running version. It also +// checks the errors for a missing release and for bad JSON. func TestLatest(t *testing.T) { t.Parallel() release := func(tag string) string { return `{"tag_name": "` + tag + `", "assets": [], "other": 1}` } tests := []struct { - name, have, body string // a body of "" is a 404 - tag string // the tag of the release, or "" + name, have, body string // an empty body makes the server return 404 + tag string // the release tag, or "" newer bool - errText string // a part of the error, or "" + errText string // text that the error must contain, or "" }{ - {"minor", "0.1.0", release("v0.2.0"), "v0.2.0", true, ""}, - {"patch", "v0.1.0", release("v0.1.1"), "v0.1.1", true, ""}, - {"major", "0.9.9", release("v1.0.0"), "v1.0.0", true, ""}, - {"two digits", "0.9.0", release("v0.10.0"), "v0.10.0", true, ""}, - // GoReleaser names archives with the v. - {"no v", "0.1.0", release("0.2.0"), "0.2.0", false, ""}, - {"same", "0.1.0", release("v0.1.0"), "v0.1.0", false, ""}, - {"older", "0.2.0", release("v0.1.0"), "v0.1.0", false, ""}, - {"release candidate", "0.1.0", release("v0.2.0-rc1"), "v0.2.0-rc1", false, ""}, - {"no tag", "0.1.0", release(""), "", false, ""}, - // Atoi accepts a sign, but a version has none. - {"sign", "0.9.0", release("v+1.0.0"), "v+1.0.0", false, ""}, - {"minus", "0.9.0", release("v1.-0.0"), "v1.-0.0", false, ""}, - {"status", "0.1.0", "", "", false, "404"}, - {"bad JSON", "0.1.0", "not json", "", false, "read the latest release"}, + {name: "minor", have: "0.1.0", body: release("v0.2.0"), tag: "v0.2.0", newer: true}, + {name: "patch", have: "v0.1.0", body: release("v0.1.1"), tag: "v0.1.1", newer: true}, + {name: "major", have: "0.9.9", body: release("v1.0.0"), tag: "v1.0.0", newer: true}, + {name: "two digits", have: "0.9.0", body: release("v0.10.0"), tag: "v0.10.0", newer: true}, + // Release tags start with a v, which GoReleaser also puts in the + // archive names, so a tag without it is never newer. + {name: "no v", have: "0.1.0", body: release("0.2.0"), tag: "0.2.0"}, + {name: "same", have: "0.1.0", body: release("v0.1.0"), tag: "v0.1.0"}, + {name: "older", have: "0.2.0", body: release("v0.1.0"), tag: "v0.1.0"}, + {name: "release candidate", have: "0.1.0", body: release("v0.2.0-rc1"), tag: "v0.2.0-rc1"}, + {name: "no tag", have: "0.1.0", body: release("")}, + // Atoi accepts a sign, but a version number cannot have one. + {name: "sign", have: "0.9.0", body: release("v+1.0.0"), tag: "v+1.0.0"}, + {name: "minus", have: "0.9.0", body: release("v1.-0.0"), tag: "v1.-0.0"}, + {name: "status", have: "0.1.0", errText: "404"}, + {name: "bad JSON", have: "0.1.0", body: "not json", errText: "read the latest release"}, } files := fstest.MapFS{} for i, tt := range tests { @@ -116,7 +121,7 @@ func TestLatest(t *testing.T) { for i, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() - u := detect(t, fmt.Sprint(base, "/", i), "/bin/rexdiff", tt.have) + u := newInstaller(t, fmt.Sprint(base, "/", i), "/bin/rexdiff", tt.have) r, newer, err := u.Latest(t.Context()) if tt.errText != "" { if err == nil || !strings.Contains(err.Error(), tt.errText) { @@ -132,14 +137,15 @@ func TestLatest(t *testing.T) { } } -// TestInstallBrew checks the commands of a Homebrew install, and the check -// of the new version. +// TestInstallBrew checks the brew commands and environment variables that +// Install uses for a Homebrew install, the errors when brew fails, and the +// check of the new binary's version. func TestInstallBrew(t *testing.T) { t.Parallel() - // The fake brew logs the flags of brew and its arguments. Rex starts - // rexdiff with a PATH without Homebrew, so the brew beside the - // Caskroom comes first. The environment of the Updater has none of the - // flags of brew. + // The fake brew logs the brew variables and its arguments. Install must + // prefer the brew next to the Caskroom, because Rex starts rexdiff with + // a PATH that does not include Homebrew. The Installer's environment + // sets none of the brew variables. const logBrew = `echo "hints=$HOMEBREW_NO_ENV_HINTS ` + `ni=$NONINTERACTIVE auto=$HOMEBREW_NO_AUTO_UPDATE ${0##*/} $*" ` + `>> "${0%/*}/../calls"` + "\n" @@ -148,34 +154,33 @@ func TestInstallBrew(t *testing.T) { "hints=1 ni=1 auto=1 brew upgrade --cask rexdiff\n" tests := []struct { name string - beside bool // the brew is beside the Caskroom, else in PATH - brew string // the script of the fake brew - version string // the version of the new rexdiff + beside bool // the brew is next to the Caskroom, not only in PATH + brew string // the fake brew script + version string // the version that the new rexdiff reports cancel bool // cancel the context before Install - calls string // the log of brew, or "" for no check - errText string // a part of the error, or "" for none + calls string // the expected brew log, or "" to skip the check + errText string // text that the error must contain, or "" for no error }{ - {"beside the Caskroom", true, logBrew, "v0.2.0", false, calls, ""}, - {"in PATH", false, logBrew, "v0.2.0", false, calls, ""}, - // The error has the last line of the output. + {name: "beside the Caskroom", beside: true, brew: logBrew, version: "v0.2.0", calls: calls}, + {name: "in PATH", brew: logBrew, version: "v0.2.0", calls: calls}, + // The error includes the last line of the output. { - "brew fails", true, busy, "v0.2.0", false, "", - "brew: Error: another brew is running: exit status 1", + name: "brew fails", beside: true, brew: busy, version: "v0.2.0", + errText: "brew: Error: another brew is running: exit status 1", }, - // The error has no empty part at its end. + // With no output, the error does not end with an empty part. { - "brew fails with no output", true, "exit 1\n", "v0.2.0", false, "", - "brew: exit status 1", + name: "brew fails with no output", beside: true, brew: "exit 1\n", version: "v0.2.0", + errText: "brew: exit status 1", }, - // A new binary of another version is an error, so rexdiff does not - // restart into it. + // It is an error if the new binary reports a different version. { - "old version", true, logBrew, "v0.1.0", false, "", - "the update left rexdiff v0.1.0, not v0.2.0", + name: "old version", beside: true, brew: logBrew, version: "v0.1.0", + errText: "the update left rexdiff v0.1.0, not v0.2.0", }, - // A stopped brew can leave a broken cask. The user can quit - // rexdiff while brew runs. - {"outlives a cancel", true, logBrew, "v0.2.0", true, calls, ""}, + // Cancelling the context does not stop brew, because stopping brew + // halfway can leave a broken cask. + {name: "outlives a cancel", beside: true, brew: logBrew, version: "v0.2.0", cancel: true, calls: calls}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -199,13 +204,12 @@ func TestInstallBrew(t *testing.T) { if tt.cancel { cancel(fmt.Errorf("test stops the install: %w", context.Canceled)) } - u := detect(t, "http://127.0.0.1:1/latest", link, "0.1.0", pathEnv) + u := newInstaller(t, "http://127.0.0.1:1/latest", link, "0.1.0", pathEnv) err := u.Install(ctx, update.Release{Tag: "v0.2.0"}) - failed := err != nil - if tt.errText != "" { - failed = err == nil || !strings.Contains(err.Error(), tt.errText) - } - if failed { + switch { + case tt.errText == "" && err != nil: + t.Errorf("Install = %v, want nil", err) + case tt.errText != "" && (err == nil || !strings.Contains(err.Error(), tt.errText)): t.Errorf("Install = %v, want an error with %q", err, tt.errText) } if tt.calls == "" { @@ -222,8 +226,8 @@ func TestInstallBrew(t *testing.T) { } } -// archive returns a .tar.gz with a README.md and a file rexdiff that has -// content. +// archive returns a .tar.gz archive that holds a README.md and a file +// named rexdiff with the given content. func archive(t *testing.T, content string) []byte { t.Helper() var b bytes.Buffer @@ -250,9 +254,9 @@ func archive(t *testing.T, content string) []byte { return b.Bytes() } -// TestDownload checks the download of a release. It checks the checksum, -// the binary in the archive, and the check of its version. It also checks -// the replacement of the target file of a link. +// TestDownload checks that a download install verifies the checksum, the +// binary size and the new version, replaces the file that the symlink +// points to, and leaves the old binary in place when any check fails. func TestDownload(t *testing.T) { t.Parallel() name := fmt.Sprintf("rexdiff-v0.2.0-%s-%s.tar.gz", runtime.GOOS, runtime.GOARCH) @@ -263,7 +267,7 @@ func TestDownload(t *testing.T) { return hex.EncodeToString(sum[:]) + " " + name + "\nabc other.tar.gz\n" } stale := archive(t, "#!/bin/sh\necho v0.1.9\n") - // The limit of a binary is 128 MiB. + // A binary can be at most 128 MiB. big := archive(t, strings.Repeat("x", 128<<20+1)) files := fstest.MapFS{} for dir, a := range map[string][]byte{"good": good, "stale": stale, "big": big, "bad": good} { @@ -273,8 +277,9 @@ func TestDownload(t *testing.T) { files["bad/"+name] = &fstest.MapFile{Data: []byte("tampered")} mux := http.NewServeMux() mux.Handle("/", http.FileServerFS(files)) - // The release of a directory has its files, at the URLs of the server. - // The release of "none" has no files. + // Each directory's release lists the files in that directory as + // assets. The directory "none" does not exist, so its release has no + // assets. mux.HandleFunc("GET /{dir}/latest", func(w http.ResponseWriter, req *http.Request) { type asset struct { Name string `json:"name"` @@ -284,7 +289,7 @@ func TestDownload(t *testing.T) { assets := []asset{} for _, f := range []string{name, "sha256sums.txt"} { if _, ok := files[dir+"/"+f]; ok { - assets = append(assets, asset{f, "http://" + req.Host + "/" + dir + "/" + f}) + assets = append(assets, asset{Name: f, URL: "http://" + req.Host + "/" + dir + "/" + f}) } } release := map[string]any{"tag_name": "v0.2.0", "assets": assets} @@ -296,16 +301,15 @@ func TestDownload(t *testing.T) { tests := []struct { name, dir string - errText string // a part of the error, or "" for none + errText string // text that the error must contain, or "" for no error }{ - {"good", "good", ""}, - {"tampered", "bad", "does not match its checksum"}, - // The old binary stays, so the next start does not run a binary of - // another version. - {"other version", "stale", "the update left rexdiff v0.1.9, not v0.2.0"}, - // A binary over the limit is an error, not a binary that is cut. - {"too large", "big", "larger than"}, - {"no archive", "none", "has no " + name}, + {name: "good", dir: "good"}, + {name: "tampered", dir: "bad", errText: "does not match its checksum"}, + // The old binary stays in place. + {name: "other version", dir: "stale", errText: "the update left rexdiff v0.1.9, not v0.2.0"}, + // A binary over the limit is an error, not a truncated binary. + {name: "too large", dir: "big", errText: "larger than"}, + {name: "no archive", dir: "none", errText: "has no " + name}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -318,7 +322,7 @@ func TestDownload(t *testing.T) { if err := os.Symlink(target, link); err != nil { t.Fatal(err) } - u := detect(t, base+"/"+tt.dir+"/latest", link, "0.1.0") + u := newInstaller(t, base+"/"+tt.dir+"/latest", link, "0.1.0") r, newer, err := u.Latest(t.Context()) if err != nil || !newer { t.Fatalf("Latest = %+v, %v, %v, want a newer release", r, newer, err) diff --git a/vcs/export_test.go b/vcs/export_test.go index 9f10dc0..6f44276 100644 --- a/vcs/export_test.go +++ b/vcs/export_test.go @@ -2,6 +2,10 @@ package vcs import "time" -// SetClock sets the clock of w. The pause between two checks follows it. -// A clock that does not move turns off the pause. +// SetClock replaces the clock that w uses to time the pause between +// checks. A clock that never moves turns the pause off. func (w *Watcher) SetClock(now func() time.Time) { w.now = now } + +// SetMaxDiffBytes replaces the most text that r.Diff reads, 128 MB, which +// would make a test slow. +func (r *Repo) SetMaxDiffBytes(n int) { r.maxDiffBytes = n } diff --git a/vcs/hostile_test.go b/vcs/hostile_test.go index 8c9cd62..1a90071 100644 --- a/vcs/hostile_test.go +++ b/vcs/hostile_test.go @@ -15,27 +15,29 @@ import ( "time" "github.com/rednafi/rexdiff/internal/testgit" + "github.com/rednafi/rexdiff/internal/xctx" "github.com/rednafi/rexdiff/vcs" ) -// commitAll commits all the changes in the working tree of dir. +// commitAll stages and commits every change in the working tree of dir. func commitAll(t *testing.T, dir string) { t.Helper() testgit.Git(t, dir, "add", "-A") testgit.Git(t, dir, "commit", "-qm", "all") } -// TestRevIsNotAnOption checks that git does not read a rev that starts -// with "-" as an option. +// TestRevIsNotAnOption checks that every method that takes a revision +// fails for a revision that starts with "-", instead of passing it to git +// as an option, and that --output does not overwrite a file. func TestRevIsNotAnOption(t *testing.T) { t.Parallel() - r, _ := newRepo(t) + r, _ := openTestRepo(t) ctx := t.Context() out := filepath.Join(t.TempDir(), "out") testgit.WriteFile(t, filepath.Dir(out), "out", "keep\n") for _, rev := range []string{"--output=" + out, "--independent", "--all", "-h"} { - if id, err := r.Resolve(ctx, rev); err == nil { - t.Errorf("Resolve(%q) = %s, want an error", rev, id) + if id, err := r.ResolveRev(ctx, rev); err == nil { + t.Errorf("ResolveRev(%q) = %s, want an error", rev, id) } if id, err := r.Tree(ctx, rev); err == nil { t.Errorf("Tree(%q) = %s, want an error", rev, id) @@ -59,10 +61,12 @@ func TestRevIsNotAnOption(t *testing.T) { } } -// TestHostilePaths checks that each part of the API keeps a path as it is. +// TestHostilePaths checks that Diff, Files, ReadFile and Grep handle file +// names that look like options, globs or pathspecs, or that contain +// quotes, tabs, newlines or invalid UTF-8, without changing them. func TestHostilePaths(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() commitAll(t, dir) hostile := []string{ @@ -70,11 +74,12 @@ func TestHostilePaths(t *testing.T) { `say "hi"`, `back\slash`, "ünï cödé", " spaces ", "*", "[a]", ":(glob)x", "\xff\xfe", } - want := map[string]string{} // the content of each path + want := map[string]string{} // the expected content of each path for i, p := range hostile { s := fmt.Sprintf("id%02d\n", i) if err := os.WriteFile(filepath.Join(dir, p), []byte(s), 0o644); err != nil { - // For example, macOS needs UTF-8 names. + // Some file systems reject some names; macOS, for example, + // requires valid UTF-8. t.Logf("skip %q: %v", p, err) continue } @@ -86,7 +91,7 @@ func TestHostilePaths(t *testing.T) { if f.Status != vcs.StatusAdded { t.Errorf("Diff: %q has status %c, want A", f.Path, f.Status) } - got[f.Path] = f.New + got[f.Path] = f.NewText } if !maps.Equal(got, want) { t.Errorf("Diff = \n%q\nwant:\n%q", got, want) @@ -111,11 +116,12 @@ func TestHostilePaths(t *testing.T) { } } -// TestDiffFileKinds checks what Diff gives for links, file modes, -// directories, line ends, and empty files. +// TestDiffFileKinds checks what Diff returns for symbolic links, mode +// changes, a file replaced by a directory or by a link, CRLF line endings, +// a missing final newline, and empty files. func TestDiffFileKinds(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) testgit.Git(t, dir, "config", "core.autocrlf", "false") testgit.WriteFile(t, dir, "mode.sh", "echo\n") testgit.WriteFile(t, dir, "dir", "a file\n") @@ -152,27 +158,28 @@ func TestDiffFileKinds(t *testing.T) { } want := []vcs.File{ - {Path: "crlf", Status: vcs.StatusAdded, New: "a\r\nb\r\n"}, - {Path: "dir", Status: vcs.StatusDeleted, Old: "a file\n"}, - {Path: "dir/in", Status: vcs.StatusAdded, New: "in\n"}, + {Path: "crlf", Status: vcs.StatusAdded, NewText: "a\r\nb\r\n"}, + {Path: "dir", Status: vcs.StatusDeleted, OldText: "a file\n"}, + {Path: "dir/in", Status: vcs.StatusAdded, NewText: "in\n"}, {Path: "empty", Status: vcs.StatusAdded}, - // git keeps the target of a link. - {Path: "link", Status: vcs.StatusAdded, New: "a.txt"}, - {Path: "mode.sh", Status: vcs.StatusModified, Old: "echo\n", New: "echo\n"}, - {Path: "no-newline", Status: vcs.StatusAdded, New: "end"}, - {Path: "out", Status: vcs.StatusAdded, New: outside}, - {Path: "type", Status: vcs.StatusModified, Old: "a file\n", New: "a.txt"}, + // git stores a symbolic link as its target path. + {Path: "link", Status: vcs.StatusAdded, NewText: "a.txt"}, + {Path: "mode.sh", Status: vcs.StatusModified, OldText: "echo\n", NewText: "echo\n"}, + {Path: "no-newline", Status: vcs.StatusAdded, NewText: "end"}, + {Path: "out", Status: vcs.StatusAdded, NewText: outside}, + {Path: "type", Status: vcs.StatusModified, OldText: "a file\n", NewText: "a.txt"}, } if got := changes(t, r, head(t, r), snapshot(t, r)); !slices.Equal(got, want) { t.Errorf("Diff = \n%+v\nwant:\n%+v", got, want) } } -// TestSnapshotNestedRepo checks that Snapshot adds the other files when git -// cannot add a nested repository with no commit. +// TestSnapshotNestedRepo checks that SnapshotTree still adds the other +// files when git cannot add a nested repository with no commits, and adds +// a nested repository with a commit as a submodule. func TestSnapshotNestedRepo(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) commitAll(t, dir) testgit.InitRepo(t, filepath.Join(dir, "empty")) testgit.WriteFile(t, dir, "empty/x", "x\n") @@ -182,18 +189,19 @@ func TestSnapshotNestedRepo(t *testing.T) { testgit.WriteFile(t, dir, "z.txt", "z\n") got := changes(t, r, head(t, r), snapshot(t, r)) - if names(got) != "Afull Az.txt" || !strings.HasPrefix(got[0].New, "Subproject commit ") { + if names(got) != "Afull Az.txt" || !strings.HasPrefix(got[0].NewText, "Subproject commit ") { t.Errorf("Diff = %+v, want full as a submodule and z.txt", got) } } -// TestReadFileStaysInRoot checks that ReadFile reads only the regular files -// in the root. +// TestReadFileStaysInRoot checks that ReadFile refuses paths and symbolic +// links that lead outside the root, devices, directories and named pipes, +// but follows a link to a regular file inside the root. func TestReadFileStaysInRoot(t *testing.T) { t.Parallel() - // A repository can link to a secret file, or to a device that does not - // end, for example /dev/zero. - r, dir := newRepo(t) + // A repository can contain a link to a secret file, or to a device + // that never ends, such as /dev/zero. + r, dir := openTestRepo(t) secret := filepath.Join(filepath.Dir(dir), "secret") testgit.WriteFile(t, filepath.Dir(dir), "secret", "secret\n") links := map[string]string{ @@ -223,12 +231,14 @@ func TestReadFileStaysInRoot(t *testing.T) { } } -// TestGitWorktree checks Diff and Snapshot in a working tree that -// "git worktree add" creates. +// TestGitWorktree checks Diff and SnapshotTree in a working tree created +// by "git worktree add", and that the snapshot does not change what git +// status reports there. func TestGitWorktree(t *testing.T) { t.Parallel() - // Such a working tree has its own index. Snapshot must not change it. - _, dir := newRepo(t) + // Such a working tree has its own index, which SnapshotTree must not + // change. + _, dir := openTestRepo(t) wt := filepath.Join(t.TempDir(), "wt") testgit.Git(t, dir, "worktree", "add", "-q", "-b", "other", wt, "main") testgit.WriteFile(t, wt, "a.txt", "changed\n") @@ -249,7 +259,7 @@ func TestGitWorktree(t *testing.T) { // TestDetachedHead checks Diff, Commits, and Branch when HEAD is detached. func TestDetachedHead(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() testgit.Git(t, dir, "checkout", "-q", "--detach", "main") if got := uncommitted(t, r); got != "A.gitignore Ma.txt Anew.txt" { @@ -264,14 +274,16 @@ func TestDetachedHead(t *testing.T) { } } -// TestGrepIsLiteral checks that Grep finds the text, and does not read it -// as a pattern or as an option. It also checks the smart case. +// TestGrepIsLiteral checks that Grep searches for the query as literal +// text, not as a pattern or an option, and that it ignores case only when +// the query has no upper case letter. func TestGrepIsLiteral(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() testgit.WriteFile(t, dir, "g.txt", "abc\na.c\n-v\n--help\n[x\n(y\n\\d\n*\n^a\nx$\nAbc\n") - // grep.column adds a field to the output. + // The grep.column setting adds a field to the output, which Grep must + // turn off. testgit.Git(t, dir, "config", "grep.column", "true") tests := []struct { q string @@ -286,7 +298,7 @@ func TestGrepIsLiteral(t *testing.T) { {"*", []string{"*"}}, {"^a", []string{"^a"}}, {"x$", []string{"x$"}}, - {"abc\na.c", nil}, // no line has a newline + {"abc\na.c", nil}, // a single line cannot contain a newline {"abc", []string{"abc", "Abc"}}, {"Abc", []string{"Abc"}}, } @@ -306,11 +318,12 @@ func TestGrepIsLiteral(t *testing.T) { } } -// TestCommitsHostileSubject checks that Commits keeps each byte of a -// subject, for example the field separator of the log. +// TestCommitsHostileSubject checks that Commits keeps every byte of a +// commit subject, including the field separator that Commits uses and +// escape sequences. func TestCommitsHostileSubject(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) subjects := []string{"a\x1fb", "\x1b[31mred\x1b[0m", "tab\there"} for _, s := range subjects { testgit.Git(t, dir, "commit", "-q", "--allow-empty", "-m", s) @@ -332,16 +345,17 @@ func TestCommitsHostileSubject(t *testing.T) { } } -// TestPullRequestBadJSON checks the output of gh that is not a normal pull -// request. -func TestPullRequestBadJSON(t *testing.T) { +// TestPRBadJSON checks how PR handles gh output that is not a normal pull +// request: an empty object, text that is not JSON, a number out of range, +// and null fields. +func TestPRBadJSON(t *testing.T) { t.Parallel() tests := []struct { name, out string - wantErr error // nil for an error of any type - ok bool // true if PullRequest must not fail + wantErr error // the error to match, or nil to accept any error + ok bool // true if PR must succeed }{ - {name: "empty object", out: `{}`, wantErr: vcs.ErrNoPullRequest}, + {name: "empty object", out: `{}`, wantErr: vcs.ErrNoPR}, {name: "not JSON", out: `warning: no pull request`}, {name: "huge number", out: `{"title": "T", "number": 1e30}`}, { @@ -357,30 +371,30 @@ func TestPullRequestBadJSON(t *testing.T) { bin := t.TempDir() fakeTool(t, bin, "gh", map[string]string{ghArgs: tt.out}) r, _ := repoAt(t, testgit.ToolEnv(t, bin), "https://github.com/o/r") - pr, err := r.PullRequest(t.Context(), vcs.Hosts{}) + pr, err := r.PR(t.Context(), vcs.Hosts{}) switch { case tt.ok && (err != nil || pr.Title != "T"): - t.Errorf("PullRequest = %+v, %v, want the title T", pr, err) + t.Errorf("PR = %+v, %v, want the title T", pr, err) case !tt.ok && err == nil: - t.Errorf("PullRequest = %+v, want an error", pr) + t.Errorf("PR = %+v, want an error", pr) case tt.wantErr != nil && !errors.Is(err, tt.wantErr): - t.Errorf("PullRequest: err = %v, want %v", err, tt.wantErr) + t.Errorf("PR: err = %v, want %v", err, tt.wantErr) } }) } } -// TestGrepDeadline checks that Grep returns the matches that it finds -// before the deadline of ctx. more is true, as with the time budget of -// herdr-reviewr. +// TestGrepDeadline checks that when the budget or the deadline of ctx +// passes, Grep stops git, returns the matches found so far without the +// incomplete one, and sets more. func TestGrepDeadline(t *testing.T) { t.Parallel() env, link := gitLink(t) - r, _ := newRepoEnv(t, env) - // The fake git takes the place of git after Open. It prints one match - // and a cut record, then hangs. With the file slow beside it, it first - // waits much longer than the budget. With the FIFO block beside it, it - // waits in the shell until it stops, so it prints nothing. + r, _ := openTestRepoEnv(t, env) + // After Open, a fake git replaces the real one. It prints one match and + // an incomplete record, then hangs. If a file named slow is next to it, + // it first sleeps for much longer than the budget. If a FIFO named + // block is next to it, it waits on the FIFO and prints nothing. removeGit(t, link) bin := filepath.Dir(link) testgit.Script(t, bin, "git", `d="${0%/*}" @@ -390,8 +404,7 @@ printf 'a.go\0001\000hit\nb.go\00012' exec /bin/sleep 10 `) grep := func(timeout, budget time.Duration) ([]vcs.Match, bool, error) { - ctx, cancel := context.WithTimeoutCause(t.Context(), timeout, - fmt.Errorf("test grep: %v timeout: %w", timeout, context.DeadlineExceeded)) + ctx, cancel := xctx.WithTimeout(t.Context(), timeout, "test grep") defer cancel() return r.Grep(ctx, "hit", 10, budget) } @@ -414,15 +427,16 @@ exec /bin/sleep 10 } } -// TestSnapshotWaitStops checks that a Snapshot that waits for another -// Snapshot returns the cause of its context when the context ends. +// TestSnapshotWaitStops checks that a SnapshotTree call that is waiting +// for another call returns the cause of its context when its context +// ends, and that the running call returns its own cause when cancelled. func TestSnapshotWaitStops(t *testing.T) { t.Parallel() env, link := gitLink(t) - r, _ := newRepoEnv(t, env) - // The fake git takes the place of git after Open. It writes to the FIFO - // started, so the test knows that the first Snapshot holds the lock. - // Then it waits on the FIFO block until it stops. + r, _ := openTestRepoEnv(t, env) + // After Open, a fake git replaces the real one. It writes to the FIFO + // named started, which tells the test that the first SnapshotTree holds + // the lock, and then waits on the FIFO named block. removeGit(t, link) bin := filepath.Dir(link) for _, name := range []string{"started", "block"} { @@ -439,17 +453,16 @@ read -r _ < "$d/block" defer cancel(fmt.Errorf("test: done: %w", context.Canceled)) done := make(chan error, 1) go func() { - _, err := r.Snapshot(ctx) + _, err := r.SnapshotTree(ctx) done <- err }() if _, err := os.ReadFile(filepath.Join(bin, "started")); err != nil { t.Fatal(err) } - ctx2, cancel2 := context.WithTimeoutCause(t.Context(), 50*time.Millisecond, - fmt.Errorf("second snapshot: 50ms timeout: %w", context.DeadlineExceeded)) + ctx2, cancel2 := xctx.WithTimeout(t.Context(), 50*time.Millisecond, "second snapshot") defer cancel2() - _, err := r.Snapshot(ctx2) + _, err := r.SnapshotTree(ctx2) if !errors.Is(err, context.DeadlineExceeded) { t.Errorf("Snapshot that waits = %v, want the cause of its context", err) } diff --git a/vcs/pr.go b/vcs/pr.go index 73f7fca..e5a73e4 100644 --- a/vcs/pr.go +++ b/vcs/pr.go @@ -12,29 +12,28 @@ import ( ) var ( - // ErrNoPullRequest means that the branch has no pull request. - ErrNoPullRequest = errors.New("no pull request for this branch") + // ErrNoPR means that the current branch has no pull request. + ErrNoPR = errors.New("no pull request for this branch") errNoRemote = errors.New("no git remote") errUnsupported = errors.New("the remote is not on GitHub, GitLab, or Azure DevOps") ) -// maxComments is the number of the most recent comments that -// [Repo.PullRequest] gets. maxChecks is the number of the checks that it -// gets. The two limits are the same as in herdr-reviewr. +// Limits for [Repo.PR]: it keeps at most maxComments of the most recent +// comments and at most maxChecks checks, though it counts every check. const ( maxComments = 100 maxChecks = 100 ) -// Hosts are the hosts of self-hosted forges. An empty value means only the -// public host. +// Hosts holds the host names of self-hosted forges. An empty field means +// that only the public host of that forge is recognised. type Hosts struct { GitHub, GitLab, Azure string } -// PullRequest is a pull request, or a merge request on GitLab. -type PullRequest struct { +// PR is a pull request, or a merge request on GitLab. +type PR struct { Forge Forge Number int Title string @@ -44,8 +43,13 @@ type PullRequest struct { Head string // the source branch Base string // the target branch Body string // Markdown + // Checks holds at most 100 of the CI checks, in the forge's order. If + // there are more, it keeps the failed checks before the others, so + // that every failure it can hold is named. Tally counts all of them. Checks []Check - // Comments are the most recent comments, the oldest first. + Tally Tally + // Comments holds at most 100 of the most recent comments, oldest + // first. Comments []PRComment } @@ -55,18 +59,43 @@ type Check struct { Result Result } -// Forge is the service that hosts a pull request. Its value is the name of -// the service. +// Tally counts the CI checks of a pull request by result. +type Tally struct { + Pass, Fail, Pending, Skip int +} + +// Total returns the number of checks. +func (t *Tally) Total() int { + return t.Pass + t.Fail + t.Pending + t.Skip +} + +// add counts a check with the result res. +func (t *Tally) add(res Result) { + switch res { + case ResultPass: + t.Pass++ + case ResultFail: + t.Fail++ + case ResultSkip: + t.Skip++ + default: + t.Pending++ + } +} + +// Forge is the service that hosts a pull request. Its value is the +// service's display name. type Forge string -// The forges that [Repo.PullRequest] supports. +// The forges that [Repo.PR] supports. const ( ForgeGitHub Forge = "GitHub" ForgeGitLab Forge = "GitLab" ForgeAzure Forge = "Azure DevOps" ) -// PRState is the state of a pull request. It is the same for each forge. +// PRState is the state of a pull request, using the same values for every +// forge. type PRState string // The values of PRState. @@ -74,41 +103,42 @@ const ( PROpen PRState = "open" PRDraft PRState = "draft" // open, but not ready for review PRMerged PRState = "merged" - PRClosed PRState = "closed" // closed without a merge + PRClosed PRState = "closed" // closed without being merged ) -// Result is the result of a CI check. It is the same for each forge. +// Result is the result of a CI check, using the same values for every +// forge. type Result string // The values of Result. const ( ResultPass Result = "pass" - ResultFail Result = "fail" // also an error, a cancel, or a timeout - ResultPending Result = "pending" // in the queue, or not finished + ResultFail Result = "fail" // also an error, a cancellation or a timeout + ResultPending Result = "pending" // queued or still running ResultSkip Result = "skip" // skipped, or neutral ) // PRComment is a comment on a pull request. type PRComment struct { Author string - When string // the time, as the forge gives it + When string // the creation time, as the forge formats it Body string // Markdown } -// PullRequest returns the pull request of the current branch. It selects the -// forge from the host of the remote "upstream", or else "origin". Then it runs -// the command-line tool of the forge: gh, glab, or az. The tool must be -// installed and signed in. The text of the pull request has no control -// characters. If the branch has no pull request, PullRequest returns -// [ErrNoPullRequest]. -func (r *Repo) PullRequest(ctx context.Context, h Hosts) (*PullRequest, error) { +// PR returns the pull request for the current branch. It chooses the forge +// from the host of the remote "upstream", or of "origin" if there is no +// upstream, and runs that forge's command-line tool: gh, glab or az. The +// tool must be installed and signed in. PR removes control characters +// from all text fields. If the branch has no pull request, PR returns +// [ErrNoPR]. +func (r *Repo) PR(ctx context.Context, h Hosts) (*PR, error) { remote := r.remoteURL(ctx) if remote == "" { return nil, errNoRemote } host := remoteHost(remote) is := func(name string) bool { return name != "" && strings.EqualFold(host, name) } - var pr *PullRequest + var pr *PR var err error switch { case is("github.com") || is(h.GitHub): @@ -125,15 +155,15 @@ func (r *Repo) PullRequest(ctx context.Context, h Hosts) (*PullRequest, error) { return nil, err } if pr.Title == "" { - return nil, ErrNoPullRequest + return nil, ErrNoPR } - cleanPR(pr) + sanitizePR(pr) return pr, nil } -// remoteHost returns the host of the remote URL u, in lower case. u is a -// URL such as "ssh://git@host:22/path", or has the scp form -// "git@host:path", as herdr-reviewr reads it. A local path has no host. +// remoteHost returns the host name in the remote URL u, in lower case. u +// is either a URL such as "ssh://git@host:22/path" or in the scp-like form +// "git@host:path". For a local path, it returns "". func remoteHost(u string) string { var auth string // [user@]host[:port] if _, rest, ok := strings.Cut(u, "://"); ok { @@ -148,9 +178,9 @@ func remoteHost(u string) string { return strings.ToLower(host) } -// cleanPR removes the control characters from the text of pr, because the -// text comes from other users. -func cleanPR(pr *PullRequest) { +// sanitizePR removes control characters from the text fields of pr, +// because other users write that text. +func sanitizePR(pr *PR) { texts := []*string{&pr.Title, &pr.URL, &pr.Author, &pr.Head, &pr.Base, &pr.Body} for i := range pr.Checks { texts = append(texts, &pr.Checks[i].Name) @@ -165,8 +195,8 @@ func cleanPR(pr *PullRequest) { } // runJSON runs a forge tool in the root directory and decodes its JSON -// output into v. env adds to the environment. The error names the tool -// and its subcommand, for example "gh pr". +// output into v. env holds extra environment variables. The error names +// the tool and its subcommand, for example "gh pr". func (r *Repo) runJSON(ctx context.Context, env []string, v any, name string, args ...string) error { cmd, stderr := r.command(ctx, env, name, args...) out, err := output(ctx, cmd, stderr) @@ -179,10 +209,12 @@ func (r *Repo) runJSON(ctx context.Context, env []string, v any, name string, ar return nil } -// noPR reports whether err is the error of a tool that finds no pull -// request. Such a tool exits with 1 and says so with the text msg. -func noPR(err error, msg string) bool { - return exitedOne(err) && strings.Contains(strings.ToLower(err.Error()), msg) +// isNoPR reports whether err means that the forge tool found no pull +// request: the tool exited with status 1 and its message contains msg. +func isNoPR(err error, msg string) bool { + // gh and glab exit with status 1 for every kind of failure and have no + // error code for "no pull request", so the message text is the only sign. + return isExitOne(err) && strings.Contains(strings.ToLower(err.Error()), msg) } // lastN returns the last n elements of xs, or all of them if there are @@ -220,9 +252,9 @@ type gitHubPR struct { } `json:"statusCheckRollup"` } -// gitHub gets the pull request with gh. A host that is not empty is the -// host of a self-hosted GitHub. -func (r *Repo) gitHub(ctx context.Context, host string) (*PullRequest, error) { +// gitHub fetches the pull request with gh. A non-empty host is the host +// name of a self-hosted GitHub. +func (r *Repo) gitHub(ctx context.Context, host string) (*PR, error) { var env []string if host != "" { env = []string{"GH_HOST=" + host} @@ -231,13 +263,13 @@ func (r *Repo) gitHub(ctx context.Context, host string) (*PullRequest, error) { "headRefName,baseRefName,comments,statusCheckRollup" var v gitHubPR err := r.runJSON(ctx, env, &v, "gh", "pr", "view", "--json", fields) - if noPR(err, "no pull requests found") { - return nil, ErrNoPullRequest + if isNoPR(err, "no pull requests found") { + return nil, ErrNoPR } if err != nil { return nil, err } - pr := &PullRequest{ + pr := &PR{ Forge: ForgeGitHub, Number: v.Number, Title: v.Title, @@ -248,14 +280,16 @@ func (r *Repo) gitHub(ctx context.Context, host string) (*PullRequest, error) { Base: v.BaseRefName, Body: v.Body, } - // A check run has a conclusion when it is done. A status has a state. - // As in herdr-reviewr, the checks are the first that gh gives. - for _, c := range v.StatusCheckRollup[:min(len(v.StatusCheckRollup), maxChecks)] { - pr.Checks = append(pr.Checks, Check{ + // A finished check run has a conclusion, and a commit status has a + // state. + var checks []Check + for _, c := range v.StatusCheckRollup { + checks = append(checks, Check{ Name: cmp.Or(c.Name, c.Context), Result: gitHubResult(cmp.Or(c.Conclusion, c.State)), }) } + pr.Checks, pr.Tally = keepChecks(checks, maxChecks) for _, c := range lastN(v.Comments, maxComments) { pr.Comments = append(pr.Comments, PRComment{ Author: c.Author.Login, @@ -266,8 +300,36 @@ func (r *Repo) gitHub(ctx context.Context, host string) (*PullRequest, error) { return pr, nil } +// keepChecks counts all the checks and returns at most n of them, in their +// original order. If there are more than n, it keeps the failed checks +// first and fills the rest with the earliest of the others. +func keepChecks(checks []Check, n int) ([]Check, Tally) { + var t Tally + for _, c := range checks { + t.add(c.Result) + } + if len(checks) <= n { + return checks, t + } + // Room left for checks that did not fail, after the failed ones. + others := max(n-t.Fail, 0) + kept := make([]Check, 0, n) + for _, c := range checks { + if len(kept) == n { + break + } + if c.Result == ResultFail { + kept = append(kept, c) + } else if others > 0 { + kept = append(kept, c) + others-- + } + } + return kept, t +} + // gitHubState returns the state of a GitHub pull request from its state -// and its draft flag. +// and draft flag. func gitHubState(s string, draft bool) PRState { switch { case s == "MERGED": @@ -280,8 +342,8 @@ func gitHubState(s string, draft bool) PRState { return PROpen } -// gitLabState returns the state of a GitLab merge request. A locked merge -// request is closed. +// gitLabState returns the state of a GitLab merge request. It treats a +// locked merge request as closed. func gitLabState(s string) PRState { switch s { case "opened": @@ -293,7 +355,7 @@ func gitLabState(s string) PRState { } // azureState returns the state of an Azure DevOps pull request from its -// status. An abandoned pull request is closed. +// status. It treats an abandoned pull request as closed. func azureState(s string) PRState { switch s { case "active": @@ -347,17 +409,17 @@ type gitLabDiscussion struct { } `json:"notes"` } -// gitLab gets the merge request with glab. -func (r *Repo) gitLab(ctx context.Context) (*PullRequest, error) { +// gitLab fetches the merge request with glab. +func (r *Repo) gitLab(ctx context.Context) (*PR, error) { var v gitLabMR err := r.runJSON(ctx, nil, &v, "glab", "mr", "view", "--output", "json") - if noPR(err, "no open merge request") { - return nil, ErrNoPullRequest + if isNoPR(err, "no open merge request") { + return nil, ErrNoPR } if err != nil { return nil, err } - pr := &PullRequest{ + pr := &PR{ Forge: ForgeGitLab, Number: v.IID, Title: v.Title, @@ -368,8 +430,7 @@ func (r *Repo) gitLab(ctx context.Context) (*PullRequest, error) { Base: v.Target, Body: v.Description, } - // The comments are optional. If glab cannot get them, return the merge - // request without them. + // The comments are optional. If glab cannot list them, leave them out. var ds []gitLabDiscussion args := []string{"mr", "note", "list", "--output", "json"} if err := r.runJSON(ctx, nil, &ds, "glab", args...); err == nil { @@ -378,9 +439,8 @@ func (r *Repo) gitLab(ctx context.Context) (*PullRequest, error) { return pr, nil } -// gitLabComments returns the most recent notes of the discussions, the -// oldest first. It skips the notes that GitLab writes, for example "added -// 1 commit". +// gitLabComments returns the most recent notes in the discussions, oldest +// first. It skips system notes, such as "added 1 commit". func gitLabComments(ds []gitLabDiscussion) []PRComment { var cs []PRComment for _, d := range ds { @@ -414,8 +474,8 @@ type azurePR struct { } `json:"repository"` } -// azure gets the pull request of the current branch with az. -func (r *Repo) azure(ctx context.Context) (*PullRequest, error) { +// azure fetches the pull request for the current branch with az. +func (r *Repo) azure(ctx context.Context) (*PR, error) { branch, err := r.Branch(ctx) if err != nil { return nil, err @@ -427,10 +487,10 @@ func (r *Repo) azure(ctx context.Context) (*PullRequest, error) { return nil, err } if len(v) == 0 { - return nil, ErrNoPullRequest + return nil, ErrNoPR } p := v[0] - return &PullRequest{ + return &PR{ Forge: ForgeAzure, Number: p.PullRequestID, Title: p.Title, diff --git a/vcs/pr_test.go b/vcs/pr_test.go index 5b33a94..6300528 100644 --- a/vcs/pr_test.go +++ b/vcs/pr_test.go @@ -5,6 +5,7 @@ import ( "fmt" "reflect" "slices" + "strconv" "strings" "testing" @@ -12,9 +13,9 @@ import ( "github.com/rednafi/rexdiff/vcs" ) -// fakeTool writes a script called name in dir. If the arguments of the -// script are a key of calls, it prints the value. Else it fails with -// "unexpected call". +// fakeTool writes a fake command called name to dir. When its arguments +// match a key of calls, it prints the corresponding value. Otherwise it +// fails with "unexpected call". func fakeTool(t *testing.T, dir, name string, calls map[string]string) { t.Helper() var script strings.Builder @@ -26,27 +27,29 @@ func fakeTool(t *testing.T, dir, name string, calls map[string]string) { testgit.Script(t, dir, name, script.String()) } -// repoAt returns the test repository with the environment env, on the -// branch feat, with origin at the URL remote. +// repoAt returns a copy of the test repository, on the branch feat, that +// uses the environment env and has origin set to the URL remote. func repoAt(t *testing.T, env []string, remote string) (*vcs.Repo, string) { t.Helper() - r, dir := newRepoEnv(t, env) + r, dir := openTestRepoEnv(t, env) testgit.Git(t, dir, "remote", "add", "origin", remote) return r, dir } -// ghArgs are the arguments of the gh call that gets a pull request. +// ghArgs are the arguments that PR passes to gh to fetch a pull request. const ghArgs = "pr view --json number,title,state,isDraft,url,body,author," + "headRefName,baseRefName,comments,statusCheckRollup" -// azArgs returns the arguments of the az call that gets the pull request of -// branch. +// azArgs returns the arguments that PR passes to az to fetch the pull +// request for branch. func azArgs(branch string) string { return "repos pr list --source-branch " + branch + " --status all --top 1 --output json" } -// TestPullRequest checks the pull request that each forge tool gives. -func TestPullRequest(t *testing.T) { +// TestPR checks that PR converts the output of gh, glab and az into a +// [vcs.PR], including states, check results and comments, and that it +// recognises a self-hosted GitLab host regardless of case. +func TestPR(t *testing.T) { t.Parallel() dir := t.TempDir() env := testgit.ToolEnv(t, dir) @@ -69,7 +72,7 @@ func TestPullRequest(t *testing.T) { "mr view --output json": `{"iid": 3, "title": "Fix y", "state": "opened", "web_url": "https://gitlab.com/o/r/-/merge_requests/3", "description": "D", "source_branch": "fix", "target_branch": "main", "author": {"username": "cy"}}`, - // A list of discussions, as glab gives it. Each has its notes. + // glab returns a list of discussions, each with its own notes. "mr note list --output json": `[ {"id": "d1", "notes": [ {"body": "added 1 commit", "system": true, "author": {"username": "cy"}}]}, @@ -89,9 +92,9 @@ func TestPullRequest(t *testing.T) { name string remote string hosts vcs.Hosts - want *vcs.PullRequest + want *vcs.PR }{ - {"github ssh", "git@github.com:o/r.git", vcs.Hosts{}, &vcs.PullRequest{ + {"github ssh", "git@github.com:o/r.git", vcs.Hosts{}, &vcs.PR{ Forge: vcs.ForgeGitHub, Number: 7, Title: "Add x", @@ -109,11 +112,12 @@ func TestPullRequest(t *testing.T) { {Name: "docs", Result: vcs.ResultSkip}, {Name: "e2e", Result: vcs.ResultPending}, }, + Tally: vcs.Tally{Pass: 1, Fail: 2, Pending: 2, Skip: 1}, Comments: []vcs.PRComment{ {Author: "bob", When: "2026-01-02T03:04:05Z", Body: "LGTM"}, }, }}, - {"gitlab custom host", "https://Git.Corp/o/r", vcs.Hosts{GitLab: "git.CORP"}, &vcs.PullRequest{ + {"gitlab custom host", "https://Git.Corp/o/r", vcs.Hosts{GitLab: "git.CORP"}, &vcs.PR{ Forge: vcs.ForgeGitLab, Number: 3, Title: "Fix y", @@ -128,7 +132,7 @@ func TestPullRequest(t *testing.T) { {Author: "cy", When: "2026-01-03T03:04:05Z", Body: "Speed."}, }, }}, - {"azure", "https://dev.azure.com/o/p/_git/r", vcs.Hosts{}, &vcs.PullRequest{ + {"azure", "https://dev.azure.com/o/p/_git/r", vcs.Hosts{}, &vcs.PR{ Forge: vcs.ForgeAzure, Number: 9, Title: "Z", @@ -143,20 +147,21 @@ func TestPullRequest(t *testing.T) { t.Run(tt.name, func(t *testing.T) { t.Parallel() r, _ := repoAt(t, env, tt.remote) - pr, err := r.PullRequest(t.Context(), tt.hosts) + pr, err := r.PR(t.Context(), tt.hosts) if err != nil { - t.Fatalf("PullRequest = %v, want no error", err) + t.Fatalf("PR = %v, want no error", err) } if !reflect.DeepEqual(pr, tt.want) { - t.Errorf("PullRequest = \n%+v\nwant:\n%+v", pr, tt.want) + t.Errorf("PR = \n%+v\nwant:\n%+v", pr, tt.want) } }) } } -// TestPullRequestErrors checks the error for a missing remote, an unknown -// forge, a missing pull request, and a missing tool. -func TestPullRequestErrors(t *testing.T) { +// TestPRErrors checks the errors that PR returns for a missing remote, an +// unsupported host, a branch with no pull request and a missing forge +// tool. +func TestPRErrors(t *testing.T) { t.Parallel() bin := t.TempDir() env := testgit.ToolEnv(t, bin) @@ -169,9 +174,9 @@ func TestPullRequestErrors(t *testing.T) { remote, branch string hosts vcs.Hosts wantErr error // if not nil, err must wrap it - errText string // if not empty, a part of the text of err + errText string // if not empty, text that err must contain }{ - // The host selects the forge, not a name in the path. + // Only the host chooses the forge, not a forge name in the path. { name: "github in the path", remote: "https://example.com/github.com/r.git", @@ -211,7 +216,7 @@ func TestPullRequestErrors(t *testing.T) { errText: "unexpected call: " + azArgs("other"), }, {name: "no remote", branch: "feat", errText: "no git remote"}, - {name: "azure no pull request", remote: azure, branch: "none", wantErr: vcs.ErrNoPullRequest}, + {name: "azure no pull request", remote: azure, branch: "none", wantErr: vcs.ErrNoPR}, { name: "azure other branch", remote: azure, @@ -228,29 +233,29 @@ func TestPullRequestErrors(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() - r, dir := newRepoEnv(t, env) + r, dir := openTestRepoEnv(t, env) if tt.remote != "" { testgit.Git(t, dir, "remote", "add", "origin", tt.remote) } if tt.branch != "feat" { testgit.Git(t, dir, "checkout", "-qb", tt.branch) } - _, err := r.PullRequest(t.Context(), tt.hosts) + _, err := r.PR(t.Context(), tt.hosts) switch { case err == nil: - t.Error("PullRequest: no error, want an error") + t.Error("PR: no error, want an error") case tt.wantErr != nil && !errors.Is(err, tt.wantErr): - t.Errorf("PullRequest: err = %v, want %v", err, tt.wantErr) + t.Errorf("PR: err = %v, want %v", err, tt.wantErr) case tt.errText != "" && !strings.Contains(err.Error(), tt.errText): - t.Errorf("PullRequest: err = %q, want %q in it", err, tt.errText) + t.Errorf("PR: err = %q, want %q in it", err, tt.errText) } }) } } -// TestPullRequestHostile checks that the text of a pull request has no -// control characters. -func TestPullRequestHostile(t *testing.T) { +// TestPRHostile checks that PR removes control characters, such as an +// escape sequence that sets the terminal title, from every text field. +func TestPRHostile(t *testing.T) { t.Parallel() dir := t.TempDir() const osc = `\u001b]0;owned\u0007` @@ -260,46 +265,84 @@ func TestPullRequestHostile(t *testing.T) { "comments": [{"author": {"login": "bob"}, "body": "x` + osc + `"}], "statusCheckRollup": [{"name": "t` + osc + `", "conclusion": "SUCCESS"}]}`}) r, _ := repoAt(t, testgit.ToolEnv(t, dir), "https://github.com/o/r") - pr, err := r.PullRequest(t.Context(), vcs.Hosts{}) + pr, err := r.PR(t.Context(), vcs.Hosts{}) if err != nil { t.Fatal(err) } if len(pr.Comments) != 1 || len(pr.Checks) != 1 { - t.Fatalf("PullRequest has %d comments and %d checks, want 1 and 1", + t.Fatalf("PR has %d comments and %d checks, want 1 and 1", len(pr.Comments), len(pr.Checks)) } got := []string{pr.Title, pr.Body, pr.Author, pr.Comments[0].Body, pr.Checks[0].Name} want := []string{"Add]0;owned", "a]0;owned\nb", "ann]0;owned", "x]0;owned", "t]0;owned"} if !slices.Equal(got, want) { - t.Errorf("PullRequest texts = %q, want %q", got, want) + t.Errorf("PR texts = %q, want %q", got, want) } } -// TestPullRequestCheckLimit checks that a pull request has at most 100 -// checks, the first that gh gives, as in herdr-reviewr. -func TestPullRequestCheckLimit(t *testing.T) { +// TestPRCheckLimit checks that PR counts every check that gh returns but +// keeps only 100, the failed ones first, in the order gh gives them. +func TestPRCheckLimit(t *testing.T) { t.Parallel() - dir := t.TempDir() - checks := make([]string, 101) - for i := range checks { - checks[i] = fmt.Sprintf(`{"name": "c%d", "conclusion": "SUCCESS"}`, i) - } - fakeTool(t, dir, "gh", map[string]string{ghArgs: `{"number": 7, "title": "T", - "statusCheckRollup": [` + strings.Join(checks, ",") + `]}`}) - r, _ := repoAt(t, testgit.ToolEnv(t, dir), "https://github.com/o/r") - pr, err := r.PullRequest(t.Context(), vcs.Hosts{}) - if err != nil { - t.Fatal(err) + tests := []struct { + name string + pass, fail int + wantTally vcs.Tally + wantFailed int // the number of failed checks kept + wantLast string + }{ + {"101 passing", 101, 0, vcs.Tally{Pass: 101}, 0, "c99"}, + {"100 passing then 50 failing", 100, 50, vcs.Tally{Pass: 100, Fail: 50}, 50, "c149"}, + {"10 passing then 150 failing", 10, 150, vcs.Tally{Pass: 10, Fail: 150}, 100, "c109"}, } - if n := len(pr.Checks); n != 100 || pr.Checks[99].Name != "c99" { - t.Errorf("PullRequest has %d checks %+v, want 100, the last c99", - n, pr.Checks[max(n-3, 0):]) + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + dir := t.TempDir() + var checks []string + for i := range tt.pass + tt.fail { + conclusion := "SUCCESS" + if i >= tt.pass { + conclusion = "FAILURE" + } + checks = append(checks, fmt.Sprintf(`{"name": "c%d", "conclusion": %q}`, i, conclusion)) + } + fakeTool(t, dir, "gh", map[string]string{ghArgs: `{"number": 7, "title": "T", + "statusCheckRollup": [` + strings.Join(checks, ",") + `]}`}) + r, _ := repoAt(t, testgit.ToolEnv(t, dir), "https://github.com/o/r") + pr, err := r.PR(t.Context(), vcs.Hosts{}) + if err != nil { + t.Fatal(err) + } + if pr.Tally != tt.wantTally { + t.Errorf("Tally = %+v, want %+v", pr.Tally, tt.wantTally) + } + n := len(pr.Checks) + if n != 100 || pr.Checks[n-1].Name != tt.wantLast { + t.Fatalf("PR has %d checks %+v, want 100, the last %s", + n, pr.Checks[max(n-3, 0):], tt.wantLast) + } + failed, prev := 0, -1 + for _, c := range pr.Checks { + if c.Result == vcs.ResultFail { + failed++ + } + cur, _ := strconv.Atoi(strings.TrimPrefix(c.Name, "c")) + if cur <= prev { + t.Fatalf("check c%d comes after c%d, want the order gh gives", cur, prev) + } + prev = cur + } + if failed != tt.wantFailed { + t.Errorf("PR keeps %d failed checks, want %d", failed, tt.wantFailed) + } + }) } } -// TestNoPullRequest checks that a gh or a glab that finds no pull request -// gives ErrNoPullRequest. Both exit with 1 and say so. -func TestNoPullRequest(t *testing.T) { +// TestNoPR checks that PR returns ErrNoPR when gh or glab exits with +// status 1 and says that the branch has no pull request. +func TestNoPR(t *testing.T) { t.Parallel() dir := t.TempDir() env := testgit.ToolEnv(t, dir) @@ -307,8 +350,8 @@ func TestNoPullRequest(t *testing.T) { testgit.Script(t, dir, "glab", "echo 'no open merge request available for \"feat\"' >&2\nexit 1\n") for _, remote := range []string{"https://github.com/o/r", "https://gitlab.com/o/r"} { r, _ := repoAt(t, env, remote) - if _, err := r.PullRequest(t.Context(), vcs.Hosts{}); !errors.Is(err, vcs.ErrNoPullRequest) { - t.Errorf("PullRequest(%s) = %v, want ErrNoPullRequest", remote, err) + if _, err := r.PR(t.Context(), vcs.Hosts{}); !errors.Is(err, vcs.ErrNoPR) { + t.Errorf("PR(%s) = %v, want ErrNoPR", remote, err) } } } diff --git a/vcs/refs.go b/vcs/refs.go index 488f2da..500353c 100644 --- a/vcs/refs.go +++ b/vcs/refs.go @@ -13,11 +13,12 @@ import ( "sync/atomic" "time" "unicode" + "unicode/utf8" "github.com/rednafi/rexdiff/internal/proc" ) -// Commit is a commit in the log. +// Commit is a commit in the history of HEAD. type Commit struct { SHA, Short string Subject string @@ -25,28 +26,33 @@ type Commit struct { When string // the relative date, for example "2 hours ago" } -// LastCommits is the number of commits that [Repo.Commits] returns with no -// since. -const LastCommits = 50 +// Limits on the number of commits that [Repo.Commits] returns. +const ( + // LastCommits is the number of commits when since is "". + LastCommits = 50 + // MaxCommits is the most commits when since is not "". + MaxCommits = 1000 +) -// Commits returns the first-parent commits of HEAD after the commit since, -// the newest first, as herdr-reviewr lists them. If since is "", it returns -// the last [LastCommits] commits. A HEAD with no commit yet has no commits. +// Commits returns the first-parent commits of HEAD that come after the +// commit since, newest first, up to [MaxCommits] of them. If since is "", +// it returns the last [LastCommits] commits. If HEAD has no commits yet, +// it returns none. func (r *Repo) Commits(ctx context.Context, since string) ([]Commit, error) { - // The subject is last, because it can have the separator. + // The subject comes last, because it can contain the separator. const ( format = "--format=%H%x1f%h%x1f%ar%x1f%an%x1f%s" nFields = 5 // the number of fields in format ) _, err := r.run(ctx, nil, "rev-parse", "-q", "--verify", "HEAD") - if exitedOne(err) { + if isExitOne(err) { return nil, nil } args := []string{"log", "--first-parent", format} if since == "" { args = append(args, "-n", strconv.Itoa(LastCommits), "--end-of-options", "HEAD") } else { - args = append(args, "--end-of-options", since+"..HEAD") + args = append(args, "-n", strconv.Itoa(MaxCommits), "--end-of-options", since+"..HEAD") } out, err := r.run(ctx, nil, args...) if err != nil { @@ -69,17 +75,17 @@ func (r *Repo) Commits(ctx context.Context, since string) ([]Commit, error) { return cs, nil } -// Branches returns the names of the local branches and of the branches -// of origin, the newest commit first, as herdr-reviewr lists them. A -// branch of origin, for example "origin/main", hides the local branch -// with the same name. +// Branches returns the names of the local branches and of the branches on +// origin, ordered by their latest commit, newest first. A branch on +// origin, for example "origin/main", hides the local branch with the same +// name. func (r *Repo) Branches(ctx context.Context) ([]string, error) { out, err := r.run(ctx, nil, "for-each-ref", "--sort=-committerdate", "--format=%(refname)", "refs/remotes/origin", "refs/heads") if err != nil { return nil, err } - refs := strings.Fields(out) // a ref name has no space + refs := strings.Fields(out) // a ref name cannot contain a space onOrigin := map[string]bool{} for _, ref := range refs { if name, ok := strings.CutPrefix(ref, "refs/remotes/origin/"); ok { @@ -100,31 +106,32 @@ func (r *Repo) Branches(ctx context.Context) ([]string, error) { return bs, nil } -// DefaultBase returns the default branch of the repository. This is the -// target of origin/HEAD if it exists, or the first that exists of main, -// master, trunk, origin/main, and origin/master. If there is none, it -// returns "HEAD". +// DefaultBase returns the default branch of the repository: the branch +// that origin/HEAD points to, or else the first of main, master, trunk, +// origin/main and origin/master that exists. If none exists, it returns +// "HEAD". func (r *Repo) DefaultBase(ctx context.Context) string { if ref, err := r.run(ctx, nil, "symbolic-ref", "--short", "refs/remotes/origin/HEAD"); err == nil { - // fetch --prune can leave the symbolic ref without a target. + // git fetch --prune can delete the branch that the symbolic ref + // points to. ref = strings.TrimSpace(ref) - if _, err := r.Resolve(ctx, ref); err == nil { + if _, err := r.ResolveRev(ctx, ref); err == nil { return ref } } for _, b := range []string{"main", "master", "trunk", "origin/main", "origin/master"} { - if _, err := r.Resolve(ctx, b); err == nil { + if _, err := r.ResolveRev(ctx, b); err == nil { return b } } return "HEAD" } -// Branch returns the name of the branch that HEAD points to. With a -// detached HEAD, it returns "HEAD". +// Branch returns the name of the branch that HEAD points to. If HEAD is +// detached, it returns "HEAD". func (r *Repo) Branch(ctx context.Context) (string, error) { out, err := r.run(ctx, nil, "symbolic-ref", "--quiet", "--short", "HEAD") - if exitedOne(err) { + if isExitOne(err) { return "HEAD", nil } if err != nil { @@ -133,8 +140,8 @@ func (r *Repo) Branch(ctx context.Context) (string, error) { return strings.TrimSpace(out), nil } -// remoteURL returns the URL of the remote "upstream", so that forks work, or -// else of the remote "origin". If there is no remote, it returns "". +// remoteURL returns the URL of the remote "upstream", or of "origin" if +// there is no upstream. If neither remote exists, it returns "". func (r *Repo) remoteURL(ctx context.Context) string { for _, name := range []string{"upstream", "origin"} { if u, err := r.run(ctx, nil, "remote", "get-url", name); err == nil { @@ -144,8 +151,9 @@ func (r *Repo) remoteURL(ctx context.Context) string { return "" } -// Editor returns the editor that git uses (core.editor), or "". -func (r *Repo) Editor(ctx context.Context) string { +// GitEditor returns the editor that git is configured to use +// (core.editor), or "" if it is not set. +func (r *Repo) GitEditor(ctx context.Context) string { out, _ := r.run(ctx, nil, "config", "core.editor") return strings.TrimSpace(out) } @@ -153,24 +161,34 @@ func (r *Repo) Editor(ctx context.Context) string { // Entry is a path in the working tree. type Entry struct { Path string - // Ignored is true if git ignores the path. An ignored directory has one - // entry, with a slash at the end of its path. + // Ignored is true if git ignores the path. An ignored directory appears + // as a single entry whose path ends with a slash. Ignored bool } -// listArgs are the arguments of git ls-files that list the tracked and -// the untracked files. In a merge conflict, git lists a path once for each -// stage. --deduplicate lists it once. -var listArgs = []string{"-co", "--deduplicate", "--exclude-standard"} +// lsFilesArgs are the git ls-files arguments that list the tracked and +// untracked files. --deduplicate lists a file with a merge conflict once, +// not once for each conflict stage. +var lsFilesArgs = []string{"-co", "--deduplicate", "--exclude-standard"} -// Files returns the tracked and the untracked files, and the ignored paths, -// sorted by path. +// Files returns the tracked files, the untracked files and the ignored +// paths, sorted by path. It leaves out tracked files that were deleted +// from the working tree, because there is nothing to show for them; the +// diff still shows the deletion. func (r *Repo) Files(ctx context.Context) ([]Entry, error) { + gone, err := r.lsFiles(ctx, "-d") + if err != nil { + return nil, err + } + deleted := make(map[string]bool, len(gone)) + for _, p := range gone { + deleted[p] = true + } lists := []struct { args []string ignored bool }{ - {listArgs, false}, + {lsFilesArgs, false}, {[]string{"-oi", "--exclude-standard", "--directory"}, true}, } var es []Entry @@ -180,6 +198,9 @@ func (r *Repo) Files(ctx context.Context) ([]Entry, error) { return nil, err } for _, p := range ps { + if !l.ignored && deleted[p] { + continue + } es = append(es, Entry{Path: p, Ignored: l.ignored}) } } @@ -190,10 +211,9 @@ func (r *Repo) Files(ctx context.Context) ([]Entry, error) { } // IgnoredDir returns the entries of the ignored directory dir, sorted by -// name. It reads them from the disk, as herdr-reviewr does, because git -// lists an ignored directory as one path. The path of a directory ends -// with a slash, as in [Repo.Files]. A directory that it cannot read has -// no entries. +// name. It reads them from disk, because git lists an ignored directory as +// a single path. As in [Repo.Files], the path of a directory ends with a +// slash. If it cannot read dir, it returns nil. func (r *Repo) IgnoredDir(dir string) []Entry { des, err := os.ReadDir(filepath.Join(r.root, filepath.FromSlash(dir))) if err != nil { @@ -210,30 +230,30 @@ func (r *Repo) IgnoredDir(dir string) []Entry { return es } -// Match is a line that [Repo.Grep] finds. +// Match is a line that [Repo.Grep] found. type Match struct { Path string - Line int // the line number, from 1 - Text string // the line, without the leading and trailing space + Line int // the line number, starting at 1 + // Text is the line, with leading and trailing white space removed. Of + // a line longer than 512 bytes, it holds only the start. + Text string } -// Grep returns at most limit lines of the tracked and the untracked files -// that contain the text q. The search ignores binary files. As in -// herdr-reviewr, it has smart case. A q with an upper case letter matches -// only the same case. Else the search ignores case. When it finds limit -// lines, it stops git, and more is true if there are others. -// -// After the time budget, Grep stops git when it has a line, and returns -// the lines with more set to true. At the deadline of ctx, Grep stops git -// and returns the lines that it finds before it, with more set to true. +// maxGrepLineBytes is the most bytes of a line that [Repo.Grep] keeps. +const maxGrepLineBytes = 512 + +// Grep returns up to limit lines of the tracked and untracked non-binary +// files that contain the literal text q, ignoring case unless q has an +// upper case letter. After budget, Grep stops once it has found a line, +// and at the deadline of ctx it returns the lines found so far. more is +// true then, or if more lines match than Grep returns. func (r *Repo) Grep(ctx context.Context, q string, limit int, budget time.Duration) (ms []Match, more bool, err error) { if strings.Contains(q, "\n") { - // git reads each line of q as a pattern. A match is one line, so no - // match can have the newline of q. + // A match is a single line, so it cannot contain a newline. return nil, false, nil } - // --no-column overrides the git setting grep.column. That setting adds a - // field to each match. + // --no-column overrides the grep.column setting, which adds a field to + // each match. args := []string{"grep", "-n", "--no-column", "-z", "-I", "-F", "--untracked", "--no-color"} if !strings.ContainsFunc(q, unicode.IsUpper) { args = append(args, "-i") @@ -244,13 +264,13 @@ func (r *Repo) Grep(ctx context.Context, q string, limit int, budget time.Durati return nil, false, err } if err := cmd.Start(); err != nil { - if pastDeadline(ctx) { + if isPastDeadline(ctx) { return nil, true, nil } return nil, false, fmt.Errorf("git grep: %w", proc.Error(ctx, "git", err, nil)) } - // Past the budget, Grep stops git if it has a line, or else at the - // next line. + // Once budget has passed, stop git if it has found a line, or else as + // soon as it finds one. var found, late, killed atomic.Bool timer := time.AfterFunc(budget, func() { late.Store(true) @@ -270,9 +290,9 @@ func (r *Repo) Grep(ctx context.Context, q string, limit int, budget time.Durati } err = cmd.Wait() switch { - case err == nil, more, exitedOne(err): // done, stopped, or no match + case err == nil, more, isExitOne(err): // finished, stopped early, or no match return ms, more, nil - case pastDeadline(ctx): + case isPastDeadline(ctx): return ms, true, nil case ctx.Err() != nil: return nil, false, context.Cause(ctx) @@ -280,28 +300,29 @@ func (r *Repo) Grep(ctx context.Context, q string, limit int, budget time.Durati return nil, false, fmt.Errorf("git grep: %w", proc.Error(ctx, "git", err, stderr.Bytes())) } -// pastDeadline reports whether ctx ends at its deadline. -func pastDeadline(ctx context.Context) bool { +// isPastDeadline reports whether ctx ended because its deadline passed. +func isPastDeadline(ctx context.Context) bool { return errors.Is(ctx.Err(), context.DeadlineExceeded) } -// readMatches reads at most limit matches of "git grep -n -z". Each match -// is "path NUL line NUL text LF". Only the text ends with a newline, -// because the path can have a newline. After each match, a true stop ends -// the read. more is true if there is more output. +// readMatches reads up to limit matches from the output of +// "git grep -n -z". Each match is "path NUL line NUL text LF". Only the +// text is ended by a newline, because the path can contain one. readMatches +// calls stop after each match and returns early if it reports true. more +// is true if there is more output. func readMatches(r *bufio.Reader, limit int, stop func() bool) (ms []Match, more bool) { for len(ms) < limit { path, err := r.ReadString(0) if err != nil { return ms, false } - // A cut at the deadline can end the output in a record. Such a - // record is not a match. + // Stopping git at the deadline can cut off the last record. An + // incomplete record is not a match. num, err := r.ReadString(0) if err != nil { return ms, true } - text, err := r.ReadString('\n') + text, err := readStart(r, maxGrepLineBytes) if err != nil { return ms, true } @@ -319,63 +340,90 @@ func readMatches(r *bufio.Reader, limit int, stop func() bool) (ms []Match, more return ms, err == nil } -// The refs that keep the choices of rexdiff. git keeps a ref under -// refs/worktree/ for each worktree. +// readStart reads up to and including the next newline, and returns the +// first n bytes of what it read, without cutting a UTF-8 character in +// two. It keeps no more than that of a long line in memory. +func readStart(r *bufio.Reader, n int) (string, error) { + var b []byte + for { + chunk, err := r.ReadSlice('\n') + if len(b)+len(chunk) > n { + b = append(b, chunk[:n-len(b)]...) + // Drop the start of a character that the cut leaves incomplete. + k := len(b) - 1 + for k > 0 && len(b)-k < utf8.UTFMax && !utf8.RuneStart(b[k]) { + k-- + } + if k >= 0 && !utf8.FullRune(b[k:]) { + b = b[:k] + } + n = len(b) // keep nothing more of this line + } else { + b = append(b, chunk...) + } + if !errors.Is(err, bufio.ErrBufferFull) { + return string(b), err + } + } +} + +// Refs where rexdiff saves the user's choices. Refs under refs/worktree/ +// are separate for each worktree. const ( baseRef = "refs/worktree/rexdiff/base-pick" turnRef = "refs/worktree/rexdiff/turn-base" ) -// SavedBase returns the base that [Repo.SaveBase] keeps for this worktree. -// It returns "" if no base is saved, or if the saved value is not a ref -// name. +// SavedBase returns the base that [Repo.SaveBase] saved for this worktree. +// It returns "" if no base is saved or if the saved value is not a valid +// ref name. func (r *Repo) SavedBase(ctx context.Context) string { out, err := r.run(ctx, nil, "cat-file", "blob", baseRef) name := strings.TrimSpace(out) - if err != nil || !refShaped(name) { + if err != nil || !isRefName(name) { return "" } return name } -// refShaped reports whether s is one line of printable text that is not a -// git option, as herdr-reviewr checks a saved base. -func refShaped(s string) bool { +// isRefName reports whether s is non-empty printable text with no spaces +// or control characters that git cannot mistake for an option. +func isRefName(s string) bool { return s != "" && !strings.HasPrefix(s, "-") && !strings.ContainsFunc(s, func(c rune) bool { return c <= ' ' || c == 0x7f }) } -// SaveBase keeps name as the base of this worktree. For the default branch -// ([Repo.DefaultBase]), it deletes the saved base. +// SaveBase saves name as the base branch for this worktree. If name is the +// default branch ([Repo.DefaultBase]), it deletes the saved base instead. func (r *Repo) SaveBase(ctx context.Context, name string) error { if name == r.DefaultBase(ctx) { return r.deleteRef(ctx, baseRef) } - if !refShaped(name) { + if !isRefName(name) { return fmt.Errorf("bad base %q", name) } - blob, err := r.runInput(ctx, nil, strings.NewReader(name), + blobID, err := r.runInput(ctx, nil, strings.NewReader(name), "hash-object", "-w", "--stdin") if err != nil { return err } - _, err = r.run(ctx, nil, "update-ref", baseRef, strings.TrimSpace(blob)) + _, err = r.run(ctx, nil, "update-ref", baseRef, strings.TrimSpace(blobID)) return err } -// SavedTurn returns the tree that [Repo.SaveTurn] keeps for this worktree. -// It returns "" if no tree is saved, or if git cannot resolve the ref. +// SavedTurn returns the tree that [Repo.SaveTurn] saved for this worktree. +// It returns "" if no tree is saved or if git cannot resolve the ref. func (r *Repo) SavedTurn(ctx context.Context) string { - tree, err := r.Resolve(ctx, turnRef) + tree, err := r.ResolveRev(ctx, turnRef) if err != nil { return "" } return tree } -// SaveTurn keeps tree as the tree at the start of the last turn in this -// worktree. The ref keeps the tree from git gc. An empty tree deletes the -// saved tree. +// SaveTurn saves tree as the state of this worktree at the start of the +// agent's last turn. The ref stops git gc from deleting the tree. An empty +// tree deletes the saved tree. func (r *Repo) SaveTurn(ctx context.Context, tree string) error { if tree == "" { return r.deleteRef(ctx, turnRef) @@ -384,7 +432,7 @@ func (r *Repo) SaveTurn(ctx context.Context, tree string) error { return err } -// deleteRef deletes ref. A missing ref is no error. +// deleteRef deletes ref. It is not an error if ref does not exist. func (r *Repo) deleteRef(ctx context.Context, ref string) error { _, err := r.run(ctx, nil, "update-ref", "-d", ref) return err diff --git a/vcs/repo.go b/vcs/repo.go index b9e2c6d..f0fd166 100644 --- a/vcs/repo.go +++ b/vcs/repo.go @@ -1,13 +1,10 @@ -// Package vcs reads the changes in a git repository and gets the pull -// request of its branch. +// Package vcs reads the changes in a git repository and finds the pull +// request for its current branch. // -// A [Repo] compares trees. A tree is the ID of a git tree object. -// [Repo.Snapshot] gets a tree of the working tree. [Repo.Diff] gets the files -// that differ between two trees. -// -// [Open] takes the environment of git and of the forge tools as a value, -// as in [exec.Cmd.Env]. The package does not read the environment of the -// process. +// A [Repo] compares trees, identified by their git tree object IDs. +// [Repo.SnapshotTree] records the working tree as a tree object, and +// [Repo.Diff] returns the files that differ between two trees. [Open] +// takes the environment as a value, as in [exec.Cmd.Env]. package vcs import ( @@ -22,9 +19,12 @@ import ( "os" "os/exec" "path/filepath" + "runtime" "slices" "strconv" "strings" + "sync" + "sync/atomic" "time" "github.com/rednafi/rexdiff/internal/proc" @@ -33,61 +33,87 @@ import ( // emptyTree is the ID of the tree that has no files. const emptyTree = "4b825dc642cb6eb9a060e54bf8d69288fbee4904" -// The size limits are the same as in herdr-reviewr. [Repo.Diff] applies -// them to the sum of the two versions of a file. [Repo.ReadFile] applies -// them to one file. +// Size limits for one version of a file. They keep the diff and the view +// of a file fast. [Repo.Diff] applies them to the old and new versions +// separately, and [Repo.ReadFile] to the file it reads. const ( maxFileSize = 2_000_000 // bytes maxLines = 50_000 ) +// Limits for a whole diff. [Repo.Diff] keeps the text of both versions of +// every changed file, so without a limit a large change could fill the +// memory. +const ( + // maxDiffBytes is the most text, old and new versions together, that + // Diff reads. A caller can hold two diffs while it reloads. + maxDiffBytes = 128 << 20 + // maxChangedFiles is the most changed files that Diff returns. + maxChangedFiles = 20_000 +) + var ( // ErrBinary means that a file is binary. ErrBinary = errors.New("binary file") // ErrTooBig means that a file is larger than 2,000,000 bytes or has // more than 50,000 lines. ErrTooBig = errors.New("file too large") + // errDiffTooBig means that the changed files together are larger than + // maxDiffBytes, so [Repo.Diff] does not read this one. It wraps + // ErrTooBig. + errDiffTooBig = fmt.Errorf("changes too large: %w", ErrTooBig) + // errNoCommits means that HEAD does not point to a commit yet, as in a + // new repository. + errNoCommits = errors.New("no commits yet") ) // Repo is a git repository. type Repo struct { root string - index string // the path of the real index - env []string // the environment of git and of the forge tools - - // snapLock is the lock of the private index of Snapshot. A send takes - // the lock, and a receive gives it back. A channel lets Snapshot stop - // its wait when ctx ends. The lock guards snapDir, snapSeed and - // closed. snapDir is the directory of the private index, or "" before - // the first Snapshot. snapSeed is the file status of the real index at - // the last copy. + index string // the path of the repository's real index + env []string // the environment for git and the forge tools + + // snapLock guards the private index of SnapshotTree and the fields + // below it. Sending acquires it and receiving releases it, so a waiting + // caller can give up when its ctx ends. snapLock chan struct{} - snapDir string - snapSeed string + snapDir string // the directory of the private index, or "" before the first snapshot + snapSeed string // the size and modification time of the real index when it was last copied closed bool + + // blobs caches the objects that the last Diff read, keyed by object + // ID. blobMu guards blobs. + blobMu sync.Mutex + blobs map[string]blob + + // maxDiffBytes is the limit that Diff applies. Tests lower it. + maxDiffBytes int } -// errClosed is the error of a Snapshot after Close. +// errClosed is the error that SnapshotTree returns after Close. var errClosed = errors.New("the repository is closed") // Open returns the repository that contains dir. The repository runs git -// and the forge tools with the environment env, and finds them in the -// PATH of env. Open does not change env. +// and the forge tools with the environment env, and looks them up in the +// PATH from env. Open does not modify env. func Open(ctx context.Context, env []string, dir string) (*Repo, error) { - // git gets the root in PWD. PWD must be an absolute path. + // git receives the root directory in PWD, which must be absolute. abs, err := filepath.Abs(dir) if err != nil { return nil, err } - r := &Repo{root: abs, env: env, snapLock: make(chan struct{}, 1)} - // Get each path with its own git process, because a path can have a - // newline. A path can also end with a space, so remove only the last - // newline. + r := &Repo{ + root: abs, env: env, snapLock: make(chan struct{}, 1), + maxDiffBytes: maxDiffBytes, + } + // Ask for each path with a separate git command, because a path can + // contain a newline. A path can also end with a space, so remove only + // the final newline. root, err := r.run(ctx, nil, "rev-parse", "--show-toplevel") if err != nil { return nil, err } - // Resolve the links once, so Contains and Owns compare real paths. + // Resolve symbolic links once, so Contains and Owns compare real paths. r.root = evalSymlinks(strings.TrimSuffix(root, "\n")) index, err := r.run(ctx, nil, "rev-parse", "--path-format=absolute", "--git-path", "index") @@ -98,8 +124,8 @@ func Open(ctx context.Context, env []string, dir string) (*Repo, error) { return r, nil } -// Close removes the files that the repository keeps for [Repo.Snapshot]. -// Close waits for the Snapshot that runs. +// Close removes the temporary files that [Repo.SnapshotTree] creates. If a +// SnapshotTree call is running, Close waits for it to finish. func (r *Repo) Close() error { r.snapLock <- struct{}{} defer func() { <-r.snapLock }() @@ -115,12 +141,12 @@ func (r *Repo) Close() error { func (r *Repo) Root() string { return r.root } // run runs git in the root directory and returns its standard output. env -// adds to the environment of the repository. +// holds extra variables on top of the repository's environment. func (r *Repo) run(ctx context.Context, env []string, args ...string) (string, error) { return r.runInput(ctx, env, nil, args...) } -// runInput is like run. git reads its standard input from in. +// runInput is like run, but git reads its standard input from in. func (r *Repo) runInput(ctx context.Context, env []string, in io.Reader, args ...string) (string, error) { cmd, stderr := r.command(ctx, env, "git", args...) cmd.Stdin = in @@ -131,12 +157,11 @@ func (r *Repo) runInput(ctx context.Context, env []string, in io.Reader, args .. return out, nil } -// command returns the command "name args..." in the root directory. env -// adds to the environment of the repository. The buffer gets the standard -// error. +// command returns a command that runs the program name with args in the +// root directory. env holds extra variables on top of the repository's +// environment. The returned buffer collects the standard error. func (r *Repo) command(ctx context.Context, env []string, name string, args ...string) (*exec.Cmd, *bytes.Buffer) { - // PWD is the directory of the command, as exec sets it for a nil Env. - // A copy keeps r.env as it is. + // Set PWD, as exec does when Env is nil. Concat does not modify r.env. env = slices.Concat(r.env, []string{"PWD=" + r.root}, env) cmd := proc.Command(ctx, env, name, args...) cmd.Dir = r.root @@ -145,10 +170,9 @@ func (r *Repo) command(ctx context.Context, env []string, name string, args ...s return cmd, &stderr } -// output runs cmd and returns its standard output. ctx is the context of -// cmd. The error has the first line of the standard error, or the cause of -// ctx. It wraps the error of the process, so callers can examine its exit -// code. +// output runs cmd and returns its standard output. The error includes the +// first line of standard error, or the cause of ctx if ctx ended. It wraps +// the process error, so callers can check the exit code. func output(ctx context.Context, cmd *exec.Cmd, stderr *bytes.Buffer) (string, error) { out, err := cmd.Output() if err != nil { @@ -157,16 +181,17 @@ func output(ctx context.Context, cmd *exec.Cmd, stderr *bytes.Buffer) (string, e return string(out), nil } -// exitedOne reports whether err is from a process that exited with code 1. -func exitedOne(err error) bool { +// isExitOne reports whether err comes from a process that exited with +// status 1. +func isExitOne(err error) bool { ee, ok := errors.AsType[*exec.ExitError](err) return ok && ee.ExitCode() == 1 } -// Resolve returns the object ID of rev, for example "HEAD" or "main^{tree}". -func (r *Repo) Resolve(ctx context.Context, rev string) (string, error) { +// ResolveRev returns the object ID of rev, for example "HEAD" or "main^{tree}". +func (r *Repo) ResolveRev(ctx context.Context, rev string) (string, error) { out, err := r.run(ctx, nil, "rev-parse", "--verify", "--quiet", rev) - if exitedOne(err) { + if isExitOne(err) { return "", fmt.Errorf("git: unknown revision %q", rev) } if err != nil { @@ -175,35 +200,35 @@ func (r *Repo) Resolve(ctx context.Context, rev string) (string, error) { return strings.TrimSpace(out), nil } -// Tree returns the tree of the commit rev. +// Tree returns the tree ID of the commit rev. func (r *Repo) Tree(ctx context.Context, rev string) (string, error) { - return r.Resolve(ctx, rev+"^{tree}") + return r.ResolveRev(ctx, rev+"^{tree}") } -// HeadTree returns the tree of HEAD. If HEAD is a branch with no commits yet, -// as in a new repository, it returns the empty tree. +// HeadTree returns the tree ID of HEAD. If HEAD is a branch with no +// commits yet, as in a new repository, it returns the empty tree. func (r *Repo) HeadTree(ctx context.Context) (string, error) { t, err := r.Tree(ctx, "HEAD") if err == nil { return t, nil } - // rev-parse exits with 1 if HEAD names no commit yet. A broken HEAD, - // for example one whose commit is missing, is an error. + // rev-parse exits with status 1 if HEAD does not point to a commit yet. + // A broken HEAD, for example one whose commit is missing, is an error. _, rerr := r.run(ctx, nil, "rev-parse", "-q", "--verify", "HEAD") - if exitedOne(rerr) { + if isExitOne(rerr) { return emptyTree, nil } return "", err } -// ParentTree returns the tree of the first parent of the commit rev. If rev has -// no parent, it returns the empty tree. +// ParentTree returns the tree ID of the first parent of the commit rev. +// If rev has no parent, it returns the empty tree. func (r *Repo) ParentTree(ctx context.Context, rev string) (string, error) { - c, err := r.Resolve(ctx, rev+"^{commit}") + c, err := r.ResolveRev(ctx, rev+"^{commit}") if err != nil { return "", err } - // The output has the parents, one on each line. + // The output lists the parents, one per line. out, err := r.run(ctx, nil, "rev-parse", c+"^@") if err != nil { return "", err @@ -215,8 +240,8 @@ func (r *Repo) ParentTree(ctx context.Context, rev string) (string, error) { return r.Tree(ctx, first) } -// MergeBaseTree returns the tree of the commit that [Repo.MergeBaseCommit] -// returns. +// MergeBaseTree returns the tree ID of the commit that +// [Repo.MergeBaseCommit] returns. func (r *Repo) MergeBaseTree(ctx context.Context, base string) (string, error) { c, err := r.MergeBaseCommit(ctx, base) if err != nil { @@ -226,26 +251,28 @@ func (r *Repo) MergeBaseTree(ctx context.Context, base string) (string, error) { } // MergeBaseCommit returns the best common ancestor commit of base and -// HEAD, as git merge-base finds it. If git exits with an error, the error -// wraps the [*exec.ExitError] of git. +// HEAD, as git merge-base finds it. If HEAD has no commits yet, it returns +// an error that says so. If git exits with another error, the error wraps +// the [*exec.ExitError] of git. func (r *Repo) MergeBaseCommit(ctx context.Context, base string) (string, error) { out, err := r.run(ctx, nil, "merge-base", "--end-of-options", base, "HEAD") if err != nil { + // rev-parse exits with status 1 if HEAD does not point to a commit. + if _, rerr := r.run(ctx, nil, "rev-parse", "-q", "--verify", "HEAD"); isExitOne(rerr) { + return "", errNoCommits + } return "", fmt.Errorf("no merge base with %s: %w", base, err) } return strings.TrimSpace(out), nil } -// Snapshot writes the working tree as a tree object and returns its ID. -// The tree has the tracked and the untracked files. It does not have the -// ignored files. It also does not have the files that git cannot add, for -// example a nested repository with no commit. Snapshot uses a private -// index, so the real index does not change. The private index keeps the -// file status of the last Snapshot, also of the untracked files, so git -// reads only the files that change. [Repo.Close] removes it. One Snapshot -// runs at a time. If ctx ends while Snapshot waits for another, -// Snapshot returns the cause of ctx. -func (r *Repo) Snapshot(ctx context.Context) (string, error) { +// SnapshotTree writes the tracked and untracked files in the working tree +// as a tree object and returns its ID. It skips ignored files and files +// that git cannot add, such as a nested repository with no commits. It +// uses a private index, so the real index does not change. [Repo.Close] +// removes the private index. Only one SnapshotTree call runs at a time; if +// ctx ends while a call waits for another, it returns the cause of ctx. +func (r *Repo) SnapshotTree(ctx context.Context) (string, error) { select { case r.snapLock <- struct{}{}: case <-ctx.Done(): @@ -259,12 +286,12 @@ func (r *Repo) Snapshot(ctx context.Context) (string, error) { if err != nil { return "", fmt.Errorf("snapshot: %w", err) } - if err := r.dropIgnored(ctx, env); err != nil { + if err := r.removeIgnored(ctx, env); err != nil { return "", fmt.Errorf("snapshot: %w", err) } _, err = r.run(ctx, env, "add", "-A", "--ignore-errors") - if exitedOne(err) { - err = nil // git cannot add some files, but it adds the others + if isExitOne(err) { + err = nil // git could not add some files, but it added the others } if err != nil { return "", fmt.Errorf("snapshot: %w", err) @@ -276,14 +303,14 @@ func (r *Repo) Snapshot(ctx context.Context) (string, error) { return strings.TrimSpace(out), nil } -// privateIndex returns the environment that points git at the private -// index of Snapshot. It copies the real index when the real index changes, -// for example after a commit or a "git add -f". A clean of the temporary -// directory makes a new directory. The caller must hold snapLock. +// privateIndex returns the environment variable that points git at the +// private index. It copies the real index again whenever the real index +// changes, and creates a new directory if the old one was deleted. The +// caller must hold snapLock. func (r *Repo) privateIndex() ([]string, error) { seed := "" - if st, err := os.Stat(r.index); err == nil { - seed = fmt.Sprint(st.Size(), st.ModTime().UnixNano()) + if info, err := os.Stat(r.index); err == nil { + seed = fmt.Sprint(info.Size(), info.ModTime().UnixNano()) } _, err := os.Stat(r.snapDir) if r.snapDir == "" || err != nil || seed != r.snapSeed { @@ -303,16 +330,16 @@ func (r *Repo) privateIndex() ([]string, error) { return []string{"GIT_INDEX_FILE=" + filepath.Join(r.snapDir, "index")}, nil } -// dropIgnored removes from the private index of env the files that git -// ignores now and that the real index does not have. "add -A" keeps such -// files, for example after an edit of a .gitignore file. -func (r *Repo) dropIgnored(ctx context.Context, env []string) error { +// removeIgnored removes from the private index in env the files that git +// now ignores and that the real index does not track. "git add -A" does +// not remove such files, for example after a .gitignore file changes. +func (r *Repo) removeIgnored(ctx context.Context, env []string) error { ignored := []string{"ls-files", "-z", "-c", "-i", "--exclude-standard"} out, err := r.run(ctx, env, ignored...) if err != nil || out == "" { return err } - tracked, err := r.run(ctx, nil, ignored...) // force-added files stay + tracked, err := r.run(ctx, nil, ignored...) // keep files added with "git add -f" if err != nil { return err } @@ -320,27 +347,27 @@ func (r *Repo) dropIgnored(ctx context.Context, env []string) error { for p := range strings.SplitSeq(tracked, "\x00") { keep[p] = true } - var drop strings.Builder + var removed strings.Builder for p := range strings.SplitSeq(strings.TrimSuffix(out, "\x00"), "\x00") { if !keep[p] { - drop.WriteString(p) - drop.WriteString("\x00") + removed.WriteString(p) + removed.WriteString("\x00") } } - if drop.Len() == 0 { + if removed.Len() == 0 { return nil } - _, err = r.runInput(ctx, env, strings.NewReader(drop.String()), + _, err = r.runInput(ctx, env, strings.NewReader(removed.String()), "rm", "--cached", "-q", "--ignore-unmatch", "--pathspec-from-file=-", "--pathspec-file-nul") return err } // copyIndex copies the real index to dst. If there is no real index, it -// does nothing. The copy keeps the modification time of the index. git -// uses this time to find files that changed in the same second as the -// index. +// does nothing. The copy keeps the modification time of the original, +// because git uses it to detect files that changed in the same second as +// the index was written. func (r *Repo) copyIndex(dst string) error { - st, err := os.Stat(r.index) + info, err := os.Stat(r.index) if errors.Is(err, fs.ErrNotExist) { return nil // a new repository has no index } @@ -354,11 +381,11 @@ func (r *Repo) copyIndex(dst string) error { if err := os.WriteFile(dst, b, 0o600); err != nil { return err } - return os.Chtimes(dst, time.Time{}, st.ModTime()) + return os.Chtimes(dst, time.Time{}, info.ModTime()) } -// FileStatus is the type of change to a file. Its value is the letter that git -// uses, for example 'A'. +// FileStatus is the kind of change to a file. Its value is the status +// letter that git uses, for example 'A'. type FileStatus byte // The values of FileStatus that [Repo.Diff] returns. @@ -368,45 +395,58 @@ const ( StatusDeleted FileStatus = 'D' StatusRenamed FileStatus = 'R' - // statusTypeChange is a change of type, for example from a file to a - // symbolic link. [Repo.Diff] shows it as [StatusModified]. + // statusTypeChange is a change of file type, for example from a regular + // file to a symbolic link. [Repo.Diff] reports it as [StatusModified]. statusTypeChange FileStatus = 'T' ) -// File is a file that is different between two trees. Old and New are the -// two versions of its content. They are empty if the file is binary, too -// big, or not in the tree. For a submodule, each version is one line, -// "Subproject commit ", as git diff shows it. +// File is a file that differs between two trees. OldText and NewText are +// its content in the old and new tree. They are empty if the file is +// binary, too big, or missing from that tree. For a submodule, each +// version is the single line "Subproject commit ". type File struct { - Path string - From string // for a rename, the old path - Status FileStatus - Old, New string - // Skip is ErrBinary if a version of the file has a NUL byte. It is - // ErrTooBig if the two versions together are too big. Diff does not - // read a version larger than 2,000,000 bytes. Thus that version gives - // ErrTooBig, also if it is binary. Else Skip is nil. - Skip error + Path string + OldPath string // the old path of a renamed file + Status FileStatus + OldText, NewText string + // Err tells why OldText and NewText are empty: ErrBinary if a version + // contains a NUL byte, ErrTooBig if a version is too big, and an error + // that wraps ErrTooBig if the files before it already hold too much + // text. Err is nil if the file was read. A version larger than + // 2,000,000 bytes gives ErrTooBig even if it is binary. + Err error } // gitlink is the mode of a submodule in a tree. const gitlink = "160000" -// Diff returns the files that are different between the trees from and to, -// sorted by path. -func (r *Repo) Diff(ctx context.Context, from, to string) ([]File, error) { +// TooManyFilesError is the error that [Repo.Diff] returns when more than +// 20,000 files differ. +type TooManyFilesError struct { + Count int // the number of files that differ +} + +// Error returns the number of files and says that they are too many. +func (e *TooManyFilesError) Error() string { + return fmt.Sprintf("%d files changed, too many to show", e.Count) +} + +// Diff returns the files that differ between oldTree and newTree, sorted +// by path. If more than 20,000 files differ, it reads none of them and +// returns a [*TooManyFilesError]. +func (r *Repo) Diff(ctx context.Context, oldTree, newTree string) ([]File, error) { out, err := r.run(ctx, nil, "diff", "--raw", "-z", "--no-abbrev", "--find-renames", - "--end-of-options", from, to) + "--end-of-options", oldTree, newTree) if err != nil { return nil, err } - // Each file is ": ", - // then its path. A rename has its old and new paths. + // Each file is ": " + // followed by its path. A rename is followed by the old and new paths. fields := strings.Split(strings.TrimSuffix(out, "\x00"), "\x00") var files []File - var ids []string // the old and the new object of each file, or "" for none - var blobs []blob // the content of each ID + var ids []string // the old and new object ID of each file, or "" if there is none + var blobs []blob // the content for each entry of ids for len(fields) >= 2 { meta := strings.Fields(strings.TrimPrefix(fields[0], ":")) if len(meta) != 5 { @@ -418,35 +458,39 @@ func (r *Repo) Diff(ctx context.Context, from, to string) ([]File, error) { } fields = fields[2:] if f.Status == StatusRenamed && len(fields) > 0 { - f.From, f.Path, fields = f.Path, fields[0], fields[1:] + f.OldPath, f.Path, fields = f.Path, fields[0], fields[1:] } files = append(files, f) + if len(files) > maxChangedFiles { + return nil, &TooManyFilesError{Count: len(files) + countRecords(fields)} + } for k := range 2 { // the old side, then the new side id, b := diffSide(meta[k], meta[2+k]) ids = append(ids, id) blobs = append(blobs, b) } } - if err := r.readBlobs(ctx, ids, blobs); err != nil { + if err := r.readLimited(ctx, ids, blobs); err != nil { return nil, err } + r.keepCache(ids, blobs) for i := range files { f := &files[i] - f.Old, f.New = f.use(blobs[2*i]), f.use(blobs[2*i+1]) - if f.Skip == nil && isTooBig(f.Old, f.New) { - f.Skip = ErrTooBig + f.OldText, f.NewText = f.use(blobs[2*i]), f.use(blobs[2*i+1]) + if f.Err == nil && isTooBig(f.OldText, f.NewText) { + f.Err = ErrTooBig } - if f.Skip != nil { - f.Old, f.New = "", "" + if f.Err != nil { + f.OldText, f.NewText = "", "" } } slices.SortFunc(files, func(a, b File) int { return strings.Compare(a.Path, b.Path) }) return files, nil } -// diffSide returns the object to read for one side of a diff, from its -// mode and its ID. It returns "" if there is no object to read. Then the -// blob has the content, if any. +// diffSide returns the ID of the object to read for one side of a diff, +// given the mode and ID from git diff. If there is no object to read, it +// returns "" and a blob that already holds the content, if any. func diffSide(mode, id string) (string, blob) { switch { case strings.Trim(id, "0") == "": // this side has no file @@ -458,37 +502,225 @@ func diffSide(mode, id string) (string, blob) { } // use returns the content of b. If b is binary or too big, use sets -// f.Skip. A binary side wins over a side that is too big. +// f.Err. ErrBinary takes priority over ErrTooBig. func (f *File) use(b blob) string { - if f.Skip == nil || errors.Is(b.err, ErrBinary) { - f.Skip = cmp.Or(b.err, f.Skip) + if f.Err == nil || errors.Is(b.err, ErrBinary) { + f.Err = cmp.Or(b.err, f.Err) } return b.data } // blob is the content of an object. If the object is binary or too big, -// data is empty and err is ErrBinary or ErrTooBig. +// data is empty and err is ErrBinary or ErrTooBig. read is true if git +// returned the object, and false if the object is missing or was not +// read. type blob struct { data string err error + read bool + size int // the size of the object, if read } -// readBlobs reads the objects with the given IDs into blobs[i] for each -// ids[i], with one git process. It skips an empty ID. It does not keep the -// content of an object that is larger than maxFileSize. -func (r *Repo) readBlobs(ctx context.Context, ids []string, blobs []blob) error { - var batch []int // the indices of the objects to read +// kept returns the number of bytes that b counts for in the limit of a +// diff: the size of the object, or 0 if it is too big to keep. +func (b blob) kept() int { + if b.size > maxFileSize { + return 0 + } + return b.size +} + +// countRecords returns the number of files in the rest of the output of +// git diff --raw -z, split at NUL bytes. Each file is a field of metadata +// followed by its path, or by two paths for a rename or a copy. It reads +// the fields in that order rather than looking for the ':' that starts the +// metadata, because a path can also start with ':'. +func countRecords(fields []string) int { + n := 0 + for len(fields) > 0 { + paths := 1 + if meta := strings.Fields(fields[0]); len(meta) == 5 && + (meta[4][0] == byte(StatusRenamed) || meta[4][0] == 'C') { + paths = 2 + } + fields = fields[min(1+paths, len(fields)):] + n++ + } + return n +} + +// fromCache copies into blobs[i] the object ids[i] if the previous Diff +// read it. It returns the IDs still to read, with "" for the others. +func (r *Repo) fromCache(ids []string, blobs []blob) (fresh []string) { + r.blobMu.Lock() + defer r.blobMu.Unlock() + fresh = slices.Clone(ids) + for i, id := range ids { + if b, ok := r.blobs[id]; ok && id != "" { + blobs[i], fresh[i] = b, "" + } + } + return fresh +} + +// keepCache makes the cache hold the objects of ids that were read, and +// no others. +func (r *Repo) keepCache(ids []string, blobs []blob) { + next := make(map[string]blob, len(ids)) + for i, id := range ids { + if id != "" && blobs[i].read { + next[id] = blobs[i] + } + } + r.blobMu.Lock() + r.blobs = next + r.blobMu.Unlock() +} + +// readLimited is like readBlobs, but it reuses the objects that the +// previous call read, and keeps the text within r.maxDiffBytes. blobs +// holds the old and new version of each file in turn. If the objects do +// not fit, limitTotal chooses the files to leave out, so that they are +// the same each time, and readLimited reads the rest. +func (r *Repo) readLimited(ctx context.Context, ids []string, blobs []blob) error { + fresh := r.fromCache(ids, blobs) + var left atomic.Int64 // the bytes that the fresh objects can take + left.Store(int64(r.maxDiffBytes)) + for _, b := range blobs { + left.Add(-int64(b.kept())) + } + err := errNoRoom // the objects from the cache can already be too many + if left.Load() >= 0 { + err = r.readBlobs(ctx, fresh, blobs, &left) + } + if !errors.Is(err, errNoRoom) { + return err + } + for i := range fresh { + if blobs[i].read { + fresh[i] = "" // read before there was no room + } + } + if err := r.limitTotal(ctx, fresh, blobs); err != nil { + return err + } + return r.readBlobs(ctx, fresh, blobs, nil) +} + +// limitTotal keeps the text that Diff holds within r.maxDiffBytes. blobs +// holds the old and new version of each file in turn, and fresh the IDs +// that are still to be read. Going through the files in order, limitTotal +// gives both versions of each file that does not fit the error +// errDiffTooBig, and removes them from fresh so that they are not read. +// It asks git for the sizes of the fresh objects. +func (r *Repo) limitTotal(ctx context.Context, fresh []string, blobs []blob) error { + sizes, err := r.sizes(ctx, fresh) + if err != nil { + return err + } + total := 0 + for i := 0; i+1 < len(blobs); i += 2 { + size := 0 + for k := i; k < i+2; k++ { + size += blobs[k].kept() + if sizes[k] <= maxFileSize { // a larger object is not kept + size += sizes[k] + } + } + if total+size <= r.maxDiffBytes { + total += size + continue + } + for k := i; k < i+2; k++ { + blobs[k], fresh[k] = blob{err: errDiffTooBig}, "" + } + } + return nil +} + +// sizes returns the size in bytes of each object ids[i], or 0 if ids[i] +// is "" or the object is missing. +func (r *Repo) sizes(ctx context.Context, ids []string) ([]int, error) { + sizes := make([]int, len(ids)) var in strings.Builder + var asked []int // the indices of the objects asked for for i, id := range ids { if id != "" { - batch = append(batch, i) in.WriteString(id) in.WriteString("\n") + asked = append(asked, i) + } + } + if len(asked) == 0 { + return sizes, nil + } + out, err := r.runInput(ctx, nil, strings.NewReader(in.String()), "cat-file", "--batch-check") + if err != nil { + return nil, err + } + // Each line is " ", or " missing". + lines := strings.Split(strings.TrimSuffix(out, "\n"), "\n") + if len(lines) != len(asked) { + return nil, fmt.Errorf("git cat-file: %d lines for %d objects", len(lines), len(asked)) + } + for k, l := range lines { + if f := strings.Fields(l); len(f) == 3 { + sizes[asked[k]], _ = strconv.Atoi(f[2]) } } + return sizes, nil +} + +// errNoRoom means that the objects did not fit in the bytes left for +// them. +var errNoRoom = errors.New("no room left for the objects") + +// readBlobs reads the object ids[i] into blobs[i] for each non-empty +// ids[i]. It does not keep the content of an object larger than +// maxFileSize. If left is not nil, each object takes its size from left, +// and readBlobs fails with errNoRoom once left would fall below zero. It +// splits a large batch across several git processes, because +// decompressing objects is slow. +func (r *Repo) readBlobs(ctx context.Context, ids []string, blobs []blob, left *atomic.Int64) error { + var batch []int // the indices of the objects to read + for i, id := range ids { + if id != "" { + batch = append(batch, i) + } + } + n := min(runtime.GOMAXPROCS(0), maxCatFiles, len(batch)/minCatFileBatch) + if n <= 1 { + return r.catFile(ctx, ids, batch, blobs, left) + } + errs := make([]error, n) + var wg sync.WaitGroup + for k := range n { + part := batch[k*len(batch)/n : (k+1)*len(batch)/n] + wg.Go(func() { errs[k] = r.catFile(ctx, ids, part, blobs, left) }) + } + wg.Wait() + return errors.Join(errs...) +} + +// Limits for the parallel reads in readBlobs. Each git process reads at +// least minCatFileBatch objects, and at most maxCatFiles processes run at +// once. +const ( + minCatFileBatch = 128 + maxCatFiles = 8 +) + +// catFile reads the object ids[i] into blobs[i] for each i in batch, +// using one git process. left is as in readBlobs. +func (r *Repo) catFile(ctx context.Context, ids []string, batch []int, blobs []blob, left *atomic.Int64) error { if len(batch) == 0 { return nil } + var in strings.Builder + for _, i := range batch { + in.WriteString(ids[i]) + in.WriteString("\n") + } cmd, stderr := r.command(ctx, nil, "git", "cat-file", "--batch") cmd.Stdin = strings.NewReader(in.String()) out, err := cmd.StdoutPipe() @@ -498,7 +730,7 @@ func (r *Repo) readBlobs(ctx context.Context, ids []string, blobs []blob) error if err := cmd.Start(); err != nil { return fmt.Errorf("git cat-file: %w", proc.Error(ctx, "git", err, nil)) } - err = readBatch(bufio.NewReader(out), batch, blobs) + err = readBatch(bufio.NewReader(out), batch, blobs, left) if err != nil { _ = cmd.Process.Kill() } @@ -511,87 +743,99 @@ func (r *Repo) readBlobs(ctx context.Context, ids []string, blobs []blob) error return nil } -// errShort is the error of output that ends too soon. +// errShort means that the output of git cat-file ended too early. var errShort = errors.New("short output") // readBatch reads the output of "git cat-file --batch" into blobs[i] for -// each i in batch. For each object, the output has -// " \n\n", or one line that ends with "missing" -// or "ambiguous". -func readBatch(r *bufio.Reader, batch []int, blobs []blob) error { +// each i in batch. For each object, the output is either +// " \n\n" or a single line that ends with +// "missing" or "ambiguous". left is as in readBlobs. +func readBatch(r *bufio.Reader, batch []int, blobs []blob, left *atomic.Int64) error { + buf := make([]byte, 32<<10) // the copy buffer, reused for every object for _, i := range batch { hdr, err := r.ReadString('\n') if err != nil { return errShort } f := strings.Fields(hdr) - if len(f) != 3 { // " missing" + if len(f) != 3 { // " missing" or " ambiguous" continue } n, err := strconv.Atoi(f[2]) if err != nil { - return fmt.Errorf("bad size %q", f[2]) + return fmt.Errorf("bad size %q: %w", f[2], err) } if f[1] != "blob" || n > maxFileSize { if _, err := r.Discard(n + 1); err != nil { return errShort } if f[1] == "blob" { - blobs[i].err = ErrTooBig + blobs[i] = blob{err: ErrTooBig, read: true, size: n} } continue } - b := make([]byte, n+1) - if _, err := io.ReadFull(r, b); err != nil { + if left != nil && left.Add(-int64(n)) < 0 { + return errNoRoom + } + // Read the content straight into the string, without an extra copy. + var b strings.Builder + b.Grow(n) + if k, _ := io.CopyBuffer(&b, io.LimitReader(r, int64(n)), buf); k != int64(n) { return errShort } - if s := string(b[:n]); isBinary(s) { + if _, err := r.Discard(1); err != nil { // the newline after the content + return errShort + } + if s := b.String(); isBinary(s) { blobs[i].err = ErrBinary } else { blobs[i].data = s } + blobs[i].read, blobs[i].size = true, n } return nil } -// isBinary reports whether s has a NUL byte. +// isBinary reports whether s contains a NUL byte. func isBinary(s string) bool { return strings.Contains(s, "\x00") } -// isTooBig reports whether the versions together are larger than -// maxFileSize bytes or have more than maxLines lines. A last line without -// a newline counts as a line, as in diff.Lines. +// isTooBig reports whether any of the versions is larger than maxFileSize +// bytes or has more than maxLines lines. A final line without a newline +// counts as a line, as in diff.Lines. func isTooBig(versions ...string) bool { - size, lines := 0, 0 for _, s := range versions { - size += len(s) - lines += strings.Count(s, "\n") + lines := strings.Count(s, "\n") if s != "" && !strings.HasSuffix(s, "\n") { lines++ } + if len(s) > maxFileSize || lines > maxLines { + return true + } } - return size > maxFileSize || lines > maxLines + return false } // ReadFile reads the file at path in the working tree. The path is relative -// to the root. ReadFile reads only a regular file in the root, also through -// a symbolic link. For another file, for example a directory or a named -// pipe, it returns an error. If the file is binary or too big, ReadFile -// returns ErrBinary or ErrTooBig. +// to the root. ReadFile reads only regular files inside the root, including +// through symbolic links that stay inside it. For anything else, such as a +// directory or a named pipe, it returns an error. If the file is binary or +// too big, ReadFile returns ErrBinary or ErrTooBig. func (r *Repo) ReadFile(path string) (string, error) { root, err := os.OpenRoot(r.root) if err != nil { return "", err } defer func() { _ = root.Close() }() - st, err := root.Stat(path) + info, err := root.Stat(path) if err != nil { return "", err } - // Do not read a device or a named pipe. The read can block or not end. - if !st.Mode().IsRegular() { + // Do not read a device or a named pipe, because the read can block or + // never end. + if !info.Mode().IsRegular() { return "", fmt.Errorf("%q is not a regular file", path) } - if st.Size() > maxFileSize { + if info.Size() > maxFileSize { return "", ErrTooBig } b, err := root.ReadFile(path) @@ -609,27 +853,27 @@ func (r *Repo) ReadFile(path string) (string, error) { } // Contains reports whether dir is the root or a directory below it. It -// follows symbolic links, so /tmp and /private/tmp on macOS are the same. -// Contains does not run git, thus it does not see a nested repository. +// follows symbolic links, so on macOS /tmp and /private/tmp are the same. +// Contains does not run git, so it does not detect nested repositories. func (r *Repo) Contains(dir string) bool { dir = evalSymlinks(dir) return dir == r.root || strings.HasPrefix(dir, r.root+string(filepath.Separator)) } -// Owns reports whether dir is in the working tree of r, and not in another -// repository or worktree below the root. As in herdr-reviewr, a relative -// dir is not in it. Owns runs git only if [Repo.Contains] reports true. -// An error means that git cannot run, and the answer is not known. +// Owns reports whether dir is in the working tree of r and not in another +// repository or worktree below the root. It reports false for a relative +// dir. Owns runs git only if [Repo.Contains] reports true. An error means +// that git could not run, so the answer is unknown. func (r *Repo) Owns(ctx context.Context, dir string) (bool, error) { if !filepath.IsAbs(dir) || !r.Contains(dir) { return false, nil } cmd, stderr := r.command(ctx, nil, "git", "-C", dir, "rev-parse", "--show-toplevel") out, err := output(ctx, cmd, stderr) - // A git that a signal stops, for example at the end of ctx, does not - // answer. + // If a signal killed git, for example because ctx ended, the answer is + // unknown. Only a normal exit means that dir is not in a working tree. if ee, ok := errors.AsType[*exec.ExitError](err); ok && ee.Exited() { - return false, nil // dir is in no working tree + return false, nil // dir is not in any working tree } if err != nil { return false, fmt.Errorf("git rev-parse: %w", err) @@ -638,8 +882,8 @@ func (r *Repo) Owns(ctx context.Context, dir string) (bool, error) { return top != "" && evalSymlinks(top) == r.root, nil } -// evalSymlinks returns p with its symbolic links resolved, or p if that -// fails. +// evalSymlinks returns p with its symbolic links resolved, or p unchanged +// if that fails. func evalSymlinks(p string) string { if q, err := filepath.EvalSymlinks(p); err == nil { return q diff --git a/vcs/repo_test.go b/vcs/repo_test.go index b98804d..5f0d0ab 100644 --- a/vcs/repo_test.go +++ b/vcs/repo_test.go @@ -12,15 +12,17 @@ import ( "testing" "testing/fstest" "time" + "unicode/utf8" "github.com/rednafi/rexdiff/internal/proc" "github.com/rednafi/rexdiff/internal/testgit" "github.com/rednafi/rexdiff/vcs" ) -// testRepo is the repository of newRepo. It has two commits: "init" on -// main and "b" on the branch feat. The working tree has uncommitted -// changes, an untracked file, and an ignored file. +// testRepo is the fixture repository that openTestRepo copies. It has two +// commits: "init" on main and "b" on the branch feat, which is checked +// out. The working tree has an uncommitted edit, an untracked file, and +// ignored files. var testRepo = testgit.NewFixture(func(tb testing.TB, dir string) { tb.Helper() testgit.InitRepo(tb, dir) @@ -42,32 +44,33 @@ var testRepo = testgit.NewFixture(func(tb testing.TB, dir string) { testgit.WriteFile(tb, dir, "build/out", "x\n") }) -// newRepo copies testRepo to a new directory, and returns the repository -// and its directory. The repository has the environment of +// openTestRepo copies testRepo to a new directory and returns the opened +// repository and its directory. The repository uses the environment from // [testgit.ToolEnv]. -func newRepo(t *testing.T) (*vcs.Repo, string) { +func openTestRepo(t *testing.T) (*vcs.Repo, string) { t.Helper() - return newRepoEnv(t, testgit.ToolEnv(t)) + return openTestRepoEnv(t, testgit.ToolEnv(t)) } -// newRepoEnv is like newRepo, but the repository has the environment env. -func newRepoEnv(t *testing.T, env []string) (*vcs.Repo, string) { +// openTestRepoEnv is like openTestRepo, but the repository uses the +// environment env. +func openTestRepoEnv(t *testing.T, env []string) (*vcs.Repo, string) { t.Helper() - dir := filepath.Join(t.TempDir(), "a repo ") // git keeps the space + dir := filepath.Join(t.TempDir(), "a repo ") // the trailing space must survive testRepo.Copy(t, dir) - // Open from a subdirectory. Open must find the root. + // Open a subdirectory, from which Open must find the root. return openEnv(t, filepath.Join(dir, "build"), env), dir } -// open opens the repository at dir with the environment of -// [testgit.ToolEnv], and closes it at the end of the test. +// open opens the repository at dir with the environment from +// [testgit.ToolEnv], and closes it when the test ends. func open(t *testing.T, dir string) *vcs.Repo { t.Helper() return openEnv(t, dir, testgit.ToolEnv(t)) } -// openEnv is like open, but the repository has the environment env. +// openEnv is like open, but the repository uses the environment env. func openEnv(t *testing.T, dir string, env []string) *vcs.Repo { t.Helper() r, err := vcs.Open(t.Context(), env, dir) @@ -78,9 +81,9 @@ func openEnv(t *testing.T, dir string, env []string) *vcs.Repo { return r } -// gitLink returns an environment with a PATH of only a new directory, and -// the link to git in that directory. A test removes the link to take git -// away from a repository that is open. +// gitLink returns an environment whose PATH holds only a new directory, +// and the path of a symbolic link to git in that directory. A test removes +// the link to make git unavailable to a repository that is already open. func gitLink(t *testing.T) (env []string, link string) { t.Helper() bin := t.TempDir() @@ -88,7 +91,7 @@ func gitLink(t *testing.T) (env []string, link string) { return append(testgit.Env(), "PATH="+bin), filepath.Join(bin, "git") } -// removeGit removes the link to git of gitLink. +// removeGit removes the link to git that gitLink created. func removeGit(t *testing.T, link string) { t.Helper() if err := os.Remove(link); err != nil { @@ -96,17 +99,17 @@ func removeGit(t *testing.T, link string) { } } -// snapshot returns the tree of the working tree. +// snapshot returns the ID of a tree that records the working tree. func snapshot(t *testing.T, r *vcs.Repo) string { t.Helper() - tree, err := r.Snapshot(t.Context()) + tree, err := r.SnapshotTree(t.Context()) if err != nil { t.Fatal(err) } return tree } -// head returns the tree of HEAD. +// head returns the ID of the tree of HEAD. func head(t *testing.T, r *vcs.Repo) string { t.Helper() tree, err := r.HeadTree(t.Context()) @@ -116,7 +119,7 @@ func head(t *testing.T, r *vcs.Repo) string { return tree } -// parent returns the tree of the parent of rev. +// parent returns the tree ID of the first parent of rev. func parent(t *testing.T, r *vcs.Repo, rev string) string { t.Helper() tree, err := r.ParentTree(t.Context(), rev) @@ -126,18 +129,18 @@ func parent(t *testing.T, r *vcs.Repo, rev string) string { return tree } -// changes returns the files that differ from the tree from to the tree to. -func changes(t *testing.T, r *vcs.Repo, from, to string) []vcs.File { +// changes returns the files that differ between oldTree and newTree. +func changes(t *testing.T, r *vcs.Repo, oldTree, newTree string) []vcs.File { t.Helper() - fs, err := r.Diff(t.Context(), from, to) + fs, err := r.Diff(t.Context(), oldTree, newTree) if err != nil { t.Fatal(err) } return fs } -// names returns the status and the path of each file, for example -// "Aa.txt Mb.txt". +// names returns the status letter and path of each file, separated by +// spaces, for example "Aa.txt Mb.txt". func names(fs []vcs.File) string { var n []string for _, f := range fs { @@ -146,14 +149,15 @@ func names(fs []vcs.File) string { return strings.Join(n, " ") } -// uncommitted returns the names of the files that differ from HEAD to the -// working tree. +// uncommitted returns, in the format of names, the files that differ +// between HEAD and the working tree. func uncommitted(t *testing.T, r *vcs.Repo) string { t.Helper() return names(changes(t, r, head(t, r), snapshot(t, r))) } -// paths returns the path of each entry. An ignored path starts with "!". +// paths returns the path of each entry, with "!" in front of ignored +// paths. func paths(es []vcs.Entry) []string { var out []string for _, e := range es { @@ -166,20 +170,23 @@ func paths(es []vcs.Entry) []string { return out } -// TestScopes checks the trees that each scope of a review compares. +// TestScopes checks the changes that each review scope shows: uncommitted +// changes, the branch since its merge base, the last agent turn, and a +// single commit. It also checks that a snapshot does not change the real +// index. func TestScopes(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() now := snapshot(t, r) unc := changes(t, r, head(t, r), now) if got := names(unc); got != "A.gitignore Ma.txt Anew.txt" { - t.Fatalf("uncommitted: %s, want A.gitignore Ma.txt Anew.txt", got) + t.Fatalf("Diff(HEAD, snapshot) = %s, want A.gitignore Ma.txt Anew.txt", got) } - if unc[1].Old != "one\n" || unc[1].New != "one\ntwo\n" { - t.Errorf("a.txt: Old %q, New %q, want %q, %q", - unc[1].Old, unc[1].New, "one\n", "one\ntwo\n") + if unc[1].OldText != "one\n" || unc[1].NewText != "one\ntwo\n" { + t.Errorf("Diff(HEAD, snapshot) for a.txt: Old %q, New %q, want %q, %q", + unc[1].OldText, unc[1].NewText, "one\n", "one\ntwo\n") } mb, err := r.MergeBaseTree(ctx, "main") @@ -187,21 +194,22 @@ func TestScopes(t *testing.T) { t.Fatal(err) } if got := names(changes(t, r, mb, now)); got != "A.gitignore Ma.txt Ab.txt Anew.txt" { - t.Errorf("branch: %s, want A.gitignore Ma.txt Ab.txt Anew.txt", got) + t.Errorf("Diff(merge base, snapshot) = %s, want A.gitignore Ma.txt Ab.txt Anew.txt", got) } _, err = r.MergeBaseTree(ctx, "nosuchbranch") if _, ok := errors.AsType[*exec.ExitError](err); !ok { t.Errorf("MergeBaseTree(nosuchbranch) = %v, want the error of git", err) } - // In a turn, rexdiff takes a snapshot and then the agent edits a file. + // At the start of a turn, rexdiff takes a snapshot, and then the agent + // edits a file. testgit.WriteFile(t, dir, "new.txt", "untracked\nmore\n") tf := changes(t, r, now, snapshot(t, r)) - if got := names(tf); got != "Mnew.txt" || tf[0].New != "untracked\nmore\n" { - t.Errorf("turn: %s, want Mnew.txt with the new line", got) + if got := names(tf); got != "Mnew.txt" || tf[0].NewText != "untracked\nmore\n" { + t.Errorf("Diff(turn start, snapshot) = %s, want Mnew.txt with the new line", got) } - // Snapshot must not change the real index. + // SnapshotTree must not change the real index. st := testgit.Git(t, dir, "status", "--porcelain") if !strings.Contains(st, "?? new.txt") { t.Errorf("git status after Snapshot = %q, want ?? new.txt", st) @@ -216,7 +224,7 @@ func TestScopes(t *testing.T) { t.Fatal(err) } if got := names(changes(t, r, parent(t, r, cs[0].SHA), tree)); got != "Ab.txt" { - t.Errorf("commit b: %s, want Ab.txt", got) + t.Errorf("Diff(parent of b, b) = %s, want Ab.txt", got) } // emptyTree is the ID of the tree that has no files. const emptyTree = "4b825dc642cb6eb9a060e54bf8d69288fbee4904" @@ -225,12 +233,13 @@ func TestScopes(t *testing.T) { } } -// TestMissingCommit checks that HeadTree and ParentTree fail when a commit -// object is missing. +// TestMissingCommit checks that HeadTree and ParentTree return an error, +// not the empty tree, when a commit object is missing. func TestMissingCommit(t *testing.T) { t.Parallel() - // The empty tree is not a correct result. It shows every file as added. - r, dir := newRepo(t) + // Returning the empty tree would be wrong, because then every file + // would appear as added. + r, dir := openTestRepo(t) ctx := t.Context() cs, err := r.Commits(ctx, "") if err != nil || len(cs) != 2 { @@ -256,31 +265,70 @@ func TestMissingCommit(t *testing.T) { } } -// TestDiffSkipsBinaryAndBigFiles checks that Diff and ReadFile mark binary -// and big files, and do not read their content. The limits are the same as -// in herdr-reviewr. Diff adds the sizes of the two versions. +// TestDiffManyFiles checks that Diff returns the right content for enough +// files to need several git processes, and that a second Diff returns the +// new content of a file edited in between. +func TestDiffManyFiles(t *testing.T) { + t.Parallel() + r, dir := openTestRepo(t) + const n = 600 + name := func(i int) string { return fmt.Sprintf("many/f%03d.txt", i) } + for i := range n { + testgit.WriteFile(t, dir, name(i), fmt.Sprintf("old %d\n", i)) + } + testgit.Git(t, dir, "add", ".") + testgit.Git(t, dir, "commit", "-qm", "many") + for i := range n { + testgit.WriteFile(t, dir, name(i), fmt.Sprintf("new %d\n", i)) + } + check := func(edited string) { + t.Helper() + got := map[string]vcs.File{} + for _, f := range changes(t, r, head(t, r), snapshot(t, r)) { + got[f.Path] = f + } + for i := range n { + want := fmt.Sprintf("new %d\n", i) + if i == 7 && edited != "" { + want = edited + } + if f := got[name(i)]; f.OldText != fmt.Sprintf("old %d\n", i) || f.NewText != want { + t.Fatalf("%s: Old %q, New %q, want %q", name(i), f.OldText, f.NewText, want) + } + } + } + check("") + testgit.WriteFile(t, dir, name(7), "edited\n") + check("edited\n") +} + +// TestDiffSkipsBinaryAndBigFiles checks that Diff and ReadFile report +// binary and oversized files with ErrBinary and ErrTooBig and drop their +// content, and that the limits apply to each version separately. func TestDiffSkipsBinaryAndBigFiles(t *testing.T) { t.Parallel() - r, dir := newRepo(t) - half := strings.Repeat("x", 1_100_000) + "\n" // two make 2,200,002 bytes - lines := strings.Repeat("x\n", 30_000) // two make 60,000 lines - // Two versions with 25,000 lines each are not too big. - limit := strings.Repeat("y\n", 25_000) - testgit.WriteFile(t, dir, "bytes", half) + r, dir := openTestRepo(t) + full := strings.Repeat("x", 1_999_999) + "\n" // exactly at the byte limit + lines := strings.Repeat("x\n", 50_000) // exactly at the line limit + // A file whose old and new versions are both at the limit is not too + // big. + limit := strings.Repeat("y\n", 50_000) + testgit.WriteFile(t, dir, "bytes", full) testgit.WriteFile(t, dir, "lines", lines) testgit.WriteFile(t, dir, "limit", limit) testgit.Git(t, dir, "add", ".") testgit.Git(t, dir, "commit", "-qm", "base") - testgit.WriteFile(t, dir, "bytes", "y"+half) - testgit.WriteFile(t, dir, "lines", "y"+lines) - testgit.WriteFile(t, dir, "limit", "z"+limit) + testgit.WriteFile(t, dir, "bytes", "y"+full) + testgit.WriteFile(t, dir, "lines", "y\n"+lines) + testgit.WriteFile(t, dir, "limit", "z"+limit[2:]) err := os.CopyFS(dir, fstest.MapFS{ "bin": {Data: []byte("a\x00b")}, - // The NUL of "late" is at byte 9000. + // The NUL byte in "late" is at offset 9000. "late": {Data: []byte(strings.Repeat("x", 9000) + "\x00")}, "big": {Data: []byte(strings.Repeat("x\n", 50_001))}, "huge": {Data: []byte(strings.Repeat("x", 2_000_001))}, - // Diff reads this file after the skipped content. + // Diff reads this file after the skipped ones, so skipping must not + // break the reads that follow. "small": {Data: []byte("after\n")}, }) if err != nil { @@ -291,29 +339,31 @@ func TestDiffSkipsBinaryAndBigFiles(t *testing.T) { got[f.Path] = f } for _, p := range []string{"bin", "late"} { - if f := got[p]; !errors.Is(f.Skip, vcs.ErrBinary) || f.New != "" { - t.Errorf("%s: %+v, want Skip ErrBinary with no New", p, f) + if f := got[p]; !errors.Is(f.Err, vcs.ErrBinary) || f.NewText != "" { + t.Errorf("%s: %+v, want Err ErrBinary with no New", p, f) } } for _, p := range []string{"bytes", "lines", "big", "huge"} { - if f := got[p]; !errors.Is(f.Skip, vcs.ErrTooBig) || f.Old != "" || f.New != "" { - t.Errorf("%s: Skip = %v, Old has %d bytes, New has %d bytes, want ErrTooBig, 0, 0", - p, f.Skip, len(f.Old), len(f.New)) + if f := got[p]; !errors.Is(f.Err, vcs.ErrTooBig) || f.OldText != "" || f.NewText != "" { + t.Errorf("%s: Err = %v, Old has %d bytes, New has %d bytes, want ErrTooBig, 0, 0", + p, f.Err, len(f.OldText), len(f.NewText)) } } - if f := got["limit"]; f.Skip != nil || f.New != "z"+limit { - t.Errorf("limit: Skip = %v, New has %d bytes, want nil, %d", - f.Skip, len(f.New), len(limit)+1) + if f := got["limit"]; f.Err != nil || f.NewText != "z"+limit[2:] { + t.Errorf("limit: Err = %v, New has %d bytes, want nil, %d", + f.Err, len(f.NewText), len(limit)-1) } - if f := got["small"]; f.New != "after\n" { - t.Errorf("small: New = %q, want %q", f.New, "after\n") + if f := got["small"]; f.NewText != "after\n" { + t.Errorf("small: New = %q, want %q", f.NewText, "after\n") } for p, want := range map[string]error{ "bin": vcs.ErrBinary, "late": vcs.ErrBinary, "big": vcs.ErrTooBig, "huge": vcs.ErrTooBig, - "bytes": nil, + "bytes": vcs.ErrTooBig, + "lines": vcs.ErrTooBig, + "limit": nil, } { if _, err := r.ReadFile(p); !errors.Is(err, want) { t.Errorf("ReadFile(%s): err = %v, want %v", p, err, want) @@ -321,8 +371,81 @@ func TestDiffSkipsBinaryAndBigFiles(t *testing.T) { } } -// TestFilesInConflict checks that Files lists a path in a merge conflict -// once. +// TestDiffTotalLimit checks that Diff stops reading files once their +// text passes the limit, keeps the files after them that still fit, and +// gives the same result when the objects come from its cache. +func TestDiffTotalLimit(t *testing.T) { + t.Parallel() + r, dir := openTestRepo(t) + big := strings.Repeat("x", 999) + "\n" + for _, p := range []string{"big1", "big2", "big3"} { + testgit.WriteFile(t, dir, p, big) + } + // The other changes take less than 100 bytes, so big3 is the file that + // passes the limit, and new.txt after it still fits. + r.SetMaxDiffBytes(2100) + for range 2 { + got := map[string]vcs.File{} + for _, f := range changes(t, r, head(t, r), snapshot(t, r)) { + got[f.Path] = f + } + for _, p := range []string{"big1", "big2"} { + if f := got[p]; f.Err != nil || f.NewText != big { + t.Errorf("%s: Err = %v, New has %d bytes, want nil, %d", p, f.Err, len(f.NewText), len(big)) + } + } + if f := got["big3"]; !errors.Is(f.Err, vcs.ErrTooBig) || f.NewText != "" { + t.Errorf("big3: Err = %v, New has %d bytes, want ErrTooBig, 0", f.Err, len(f.NewText)) + } + if f := got["new.txt"]; f.Err != nil || f.NewText != "untracked\n" { + t.Errorf("new.txt: Err = %v, New = %q, want nil, %q", f.Err, f.NewText, "untracked\n") + } + } +} + +// TestDiffTooManyFiles checks that Diff reads no file and reports the +// number of changed files when there are more than 20,000. The count is +// right when paths start with ':', as git's metadata does, and when files +// are renamed, which gives two paths. git fast-import writes the two +// commits, so the test writes no files. +func TestDiffTooManyFiles(t *testing.T) { + t.Parallel() + dir := t.TempDir() + testgit.InitRepo(t, dir) + const renamed, added = 5, 20_000 + var b strings.Builder + b.WriteString("blob\nmark :1\ndata 2\nx\n") + for i := range renamed { + text := fmt.Sprintf("file %d\nwith some text\n", i) + fmt.Fprintf(&b, "blob\nmark :%d\ndata %d\n%s", i+2, len(text), text) + } + b.WriteString("commit refs/heads/main\ncommitter a 0 +0000\ndata 4\nold\n") + for i := range renamed { + fmt.Fprintf(&b, "M 100644 :%d old/%d\n", i+2, i) + } + b.WriteString("commit refs/heads/main\ncommitter a 1 +0000\ndata 4\nnew\n") + for i := range renamed { + fmt.Fprintf(&b, "R old/%d :renamed%d\n", i, i) + } + for i := range added { + fmt.Fprintf(&b, "M 100644 :1 :added%d\n", i) + } + cmd := proc.Command(t.Context(), testgit.ToolEnv(t), "git", "fast-import", "--quiet") + cmd.Dir = dir + cmd.Stdin = strings.NewReader(b.String()) + if out, err := cmd.CombinedOutput(); err != nil { + t.Fatalf("git fast-import: %v: %s", err, out) + } + r := open(t, dir) + oldTree, newTree := parent(t, r, "main"), strings.TrimSpace(testgit.Git(t, dir, "rev-parse", "main^{tree}")) + _, err := r.Diff(t.Context(), oldTree, newTree) + if e, ok := errors.AsType[*vcs.TooManyFilesError](err); !ok || e.Count != renamed+added { + t.Errorf("Diff: err = %v, want a TooManyFilesError with Count = %d", err, renamed+added) + } +} + +// TestFilesInConflict checks that Files lists a file with a merge conflict +// only once. func TestFilesInConflict(t *testing.T) { t.Parallel() dir := t.TempDir() @@ -355,11 +478,11 @@ func TestFilesInConflict(t *testing.T) { } } -// TestWorktree checks Files, Grep, ReadFile, and Contains in the working -// tree. +// TestWorktree checks Files, IgnoredDir, Grep, ReadFile and Contains on +// the working tree of the test repository. func TestWorktree(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() es, err := r.Files(ctx) @@ -380,12 +503,12 @@ func TestWorktree(t *testing.T) { t.Errorf("IgnoredDir(no such dir) = %v, want none", es) } - // The search has smart case. An upper case letter matches only the - // same case. A query in lower case ignores case. + // A query with an upper case letter is case-sensitive. A query in + // lower case ignores case. if ms, _, err := r.Grep(ctx, "TWO", 10, time.Minute); err != nil || len(ms) != 0 { t.Errorf("Grep(TWO) = %+v, %v, want none, nil", ms, err) } - // git quotes this name unless -z. + // git quotes this name unless it is run with -z. testgit.WriteFile(t, dir, "a:é\n.txt", "x: Two\n") ms, _, err := r.Grep(ctx, "x: two", 10, time.Minute) match := vcs.Match{Path: "a:é\n.txt", Line: 1, Text: "x: Two"} @@ -406,7 +529,7 @@ func TestWorktree(t *testing.T) { }{ {filepath.Join(dir, "build"), true}, {filepath.Dir(dir), false}, - {dir + "x", false}, // a sibling with the same prefix + {dir + "x", false}, // a sibling directory whose name starts with the root's name } for _, tt := range tests { if got := r.Contains(tt.path); got != tt.want { @@ -415,12 +538,12 @@ func TestWorktree(t *testing.T) { } } -// TestOwns checks which directories are in the working tree, as in -// herdr-reviewr. A subdirectory is in it. A nested repository, a relative -// path, and an outside path are not. +// TestOwns checks that Owns reports true for the root and a subdirectory, +// and false for a nested repository, a relative path, an empty path, a +// path outside the root, and a missing directory. func TestOwns(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) nested := filepath.Join(dir, "build", "nested") testgit.InitRepo(t, nested) tests := []struct { @@ -430,7 +553,7 @@ func TestOwns(t *testing.T) { {dir, true}, {filepath.Join(dir, "build"), true}, {nested, false}, - {"build", false}, // relative + {"build", false}, // a relative path {"", false}, {filepath.Dir(dir), false}, {filepath.Join(dir, "gone"), false}, @@ -442,12 +565,13 @@ func TestOwns(t *testing.T) { } } -// TestOwnsWithoutGit checks that Owns fails without git. No git runs for -// a path outside the root. +// TestOwnsWithoutGit checks that Owns returns an error when git is +// missing, except for a path outside the root, for which it does not need +// to run git. func TestOwnsWithoutGit(t *testing.T) { t.Parallel() env, link := gitLink(t) - r, dir := newRepoEnv(t, env) + r, dir := openTestRepoEnv(t, env) removeGit(t, link) if _, err := r.Owns(t.Context(), dir); err == nil { t.Error("Owns without git gives no error") @@ -457,10 +581,12 @@ func TestOwnsWithoutGit(t *testing.T) { } } -// TestRefs checks Branch, Branches, DefaultBase, and Resolve. +// TestRefs checks Branches, DefaultBase, ResolveRev and Branch, including +// remote branches, a dangling origin/HEAD and a repository with no +// commits. func TestRefs(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() if bs, err := r.Branches(ctx); err != nil || strings.Join(bs, " ") != "feat main" { t.Errorf("Branches = %v, %v, want [feat main], nil", bs, err) @@ -468,9 +594,9 @@ func TestRefs(t *testing.T) { if b := r.DefaultBase(ctx); b != "main" { t.Errorf("DefaultBase = %q, want main", b) } - // As in herdr-reviewr, the list has only the branches of origin, and - // origin/main hides main. The HEAD of origin is not a branch. The - // branch old has the oldest commit, so it is last. + // origin/main hides main, and origin/HEAD is not listed. Branches of + // remotes other than origin are not listed either. The branch old has + // the oldest commit, so it comes last. for _, remote := range []string{"origin", "up"} { testgit.Git(t, dir, "update-ref", "refs/remotes/"+remote+"/main", "main") testgit.Git(t, dir, "symbolic-ref", "refs/remotes/"+remote+"/HEAD", @@ -486,8 +612,8 @@ func TestRefs(t *testing.T) { if bs, err := r.Branches(ctx); err != nil || strings.Join(bs, " ") != want { t.Errorf("Branches with remotes = %v, %v, want %s", bs, err, want) } - if _, err := r.Resolve(ctx, "nosuchref"); err == nil { - t.Error("Resolve(nosuchref): no error, want an error") + if _, err := r.ResolveRev(ctx, "nosuchref"); err == nil { + t.Error("ResolveRev(nosuchref): no error, want an error") } testgit.Git(t, dir, "symbolic-ref", "refs/remotes/origin/HEAD", "refs/remotes/origin/gone") if b := r.DefaultBase(ctx); b != "main" { @@ -501,21 +627,23 @@ func TestRefs(t *testing.T) { } } -// TestEditor checks that Editor returns core.editor, or "" if it is not set. +// TestEditor checks that GitEditor returns core.editor, or "" if it is not +// set. func TestEditor(t *testing.T) { t.Parallel() - r, dir := newRepo(t) - if got := r.Editor(t.Context()); got != "" { + r, dir := openTestRepo(t) + if got := r.GitEditor(t.Context()); got != "" { t.Errorf("Editor with no core.editor = %q, want \"\"", got) } testgit.Git(t, dir, "config", "core.editor", "vim -f") - if got := r.Editor(t.Context()); got != "vim -f" { + if got := r.GitEditor(t.Context()); got != "vim -f" { t.Errorf("Editor = %q, want \"vim -f\"", got) } } -// TestDiffRenameAndSubmodule checks the old path of a rename and the -// content that Diff gives for a submodule. +// TestDiffRenameAndSubmodule checks that Diff sets OldPath for a renamed +// file and returns a "Subproject commit" line for each side of a changed +// submodule. func TestDiffRenameAndSubmodule(t *testing.T) { t.Parallel() dir := t.TempDir() @@ -534,24 +662,24 @@ func TestDiffRenameAndSubmodule(t *testing.T) { ctx := t.Context() r := open(t, dir) - from, to := parent(t, r, "HEAD"), head(t, r) - got, err := r.Diff(ctx, from, to) + oldTree, newTree := parent(t, r, "HEAD"), head(t, r) + got, err := r.Diff(ctx, oldTree, newTree) if err != nil { t.Fatal(err) } want := []vcs.File{ { - Path: "new.txt", - From: "old.txt", - Status: vcs.StatusRenamed, - Old: "one\ntwo\nthree\n", - New: "one\ntwo\nthree\n", + Path: "new.txt", + OldPath: "old.txt", + Status: vcs.StatusRenamed, + OldText: "one\ntwo\nthree\n", + NewText: "one\ntwo\nthree\n", }, { - Path: "sub", - Status: vcs.StatusModified, - Old: "Subproject commit " + a + "\n", - New: "Subproject commit " + b + "\n", + Path: "sub", + Status: vcs.StatusModified, + OldText: "Subproject commit " + a + "\n", + NewText: "Subproject commit " + b + "\n", }, } if !slices.Equal(got, want) { @@ -567,8 +695,9 @@ func TestOpenOutsideARepo(t *testing.T) { } } -// TestNewRepo checks Open, Root, HeadTree, and Snapshot in a repository -// with no commit and no index. The path of a root can have a newline. +// TestNewRepo checks Open, Root, HeadTree and SnapshotTree in a repository +// with no commits and no index, including one whose root path contains a +// newline. func TestNewRepo(t *testing.T) { t.Parallel() tests := []struct{ name, root string }{ @@ -595,31 +724,32 @@ func TestNewRepo(t *testing.T) { } } -// TestSnapshotBadIndex checks that Snapshot fails if it cannot read the -// real index. Only a missing index means no index. +// TestSnapshotBadIndex checks that SnapshotTree fails if the real index +// exists but cannot be read. Only a missing index is treated as an empty +// one. func TestSnapshotBadIndex(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) idx := filepath.Join(dir, ".git", "index") if err := os.Remove(idx); err != nil { t.Fatal(err) } - if err := os.Symlink("index", idx); err != nil { // a loop + if err := os.Symlink("index", idx); err != nil { // a link to itself t.Fatal(err) } - if tree, err := r.Snapshot(t.Context()); err == nil { + if tree, err := r.SnapshotTree(t.Context()); err == nil { t.Errorf("Snapshot with a bad index = %s, want an error", tree) } } -// TestSnapshotRacyEdit checks that Snapshot sees a same-size edit in the -// same second as the last write of the index. +// TestSnapshotRacyEdit checks that SnapshotTree notices an edit that keeps +// the file size and is made in the same second as the last write of the +// index. func TestSnapshotRacyEdit(t *testing.T) { t.Parallel() - // git checks such "racily clean" files by their content. It finds them by - // the modification time of the index. The copy of the index must keep - // that time. - r, dir := newRepo(t) + // git detects "racily clean" files by comparing with the index's + // modification time, so the copy of the index must keep that time. + r, dir := openTestRepo(t) testgit.Git(t, dir, "config", "core.trustctime", "false") testgit.Git(t, dir, "add", "-A") testgit.Git(t, dir, "commit", "-qm", "all") @@ -632,10 +762,10 @@ func TestSnapshotRacyEdit(t *testing.T) { } testgit.WriteFile(t, dir, "b.txt", "bee\n") touch("b.txt") - // The index entry gets the time of b.txt. + // Record the modification time of b.txt in the index entry. testgit.Git(t, dir, "update-index", "--really-refresh") touch(".git/index") - testgit.WriteFile(t, dir, "b.txt", "BEE\n") // the same size and time + testgit.WriteFile(t, dir, "b.txt", "BEE\n") // same size; touch then restores the time touch("b.txt") if got := uncommitted(t, r); got != "Mb.txt" { @@ -643,11 +773,12 @@ func TestSnapshotRacyEdit(t *testing.T) { } } -// TestCommitsLikeHerdrReviewr checks the commits of the commit picker. -// They are the first-parent commits after since, else the last 50. -func TestCommitsLikeHerdrReviewr(t *testing.T) { +// TestCommitsFirstParent checks that Commits returns only first-parent +// commits after since, the last [vcs.LastCommits] commits when since is +// empty, and no commits in an empty repository. +func TestCommitsFirstParent(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() run := func(args ...string) { t.Helper() @@ -694,11 +825,32 @@ func TestCommitsLikeHerdrReviewr(t *testing.T) { } } -// TestGrepLimit checks that Grep stops at the limit and tells that there -// are more matches. +// TestGrepLimit checks that Grep returns at most limit matches, in file +// TestGrepLongLines checks that Grep keeps only the start of a long line, +// without cutting a character in two, and reads the matches after it. +func TestGrepLongLines(t *testing.T) { + t.Parallel() + r, dir := openTestRepo(t) + long := "hit " + strings.Repeat("é", 1_000_000) + testgit.WriteFile(t, dir, "long.txt", long+"\n"+long+"\nhit short\n") + ms, more, err := r.Grep(t.Context(), "hit", 10, time.Minute) + if err != nil || more || len(ms) != 3 { + t.Fatalf("Grep = %d matches, more %t, %v, want 3, false, nil", len(ms), more, err) + } + for _, m := range ms[:2] { + if len(m.Text) > 512 || len(m.Text) < 500 || !utf8.ValidString(m.Text) || !strings.HasPrefix(long, m.Text) { + t.Errorf("line %d: Text has %d bytes, want the start of the line, valid UTF-8, at most 512 bytes", m.Line, len(m.Text)) + } + } + if want := (vcs.Match{Path: "long.txt", Line: 3, Text: "hit short"}); ms[2] != want { + t.Errorf("third match = %+v, want %+v", ms[2], want) + } +} + +// order, and sets more only when there are more matches. func TestGrepLimit(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() testgit.WriteFile(t, dir, "many.txt", strings.Repeat("hit\n", 5000)) tests := []struct { @@ -724,11 +876,11 @@ func TestGrepLimit(t *testing.T) { } } -// TestGrepCancelled checks that Grep returns the cause of a cancelled -// context. +// TestGrepCancelled checks that Grep returns the cancellation cause of a +// cancelled context. func TestGrepCancelled(t *testing.T) { t.Parallel() - r, _ := newRepo(t) + r, _ := openTestRepo(t) ctx, cancel := context.WithCancelCause(t.Context()) errStop := errors.New("the test stops the search") cancel(errStop) @@ -737,12 +889,12 @@ func TestGrepCancelled(t *testing.T) { } } -// TestSnapshotFollowsIndex checks that a Snapshot after an earlier one -// drops a file that git now ignores, and keeps a file that the user adds -// with "git add -f". +// TestSnapshotFollowsIndex checks that after a .gitignore change, a new +// SnapshotTree leaves out a file that git now ignores but keeps a file +// added with "git add -f". func TestSnapshotFollowsIndex(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) testgit.WriteFile(t, dir, "build.log", "x\n") testgit.WriteFile(t, dir, "keep.env", "k\n") if got := uncommitted(t, r); got != "A.gitignore Ma.txt Abuild.log Akeep.env Anew.txt" { diff --git a/vcs/saved_test.go b/vcs/saved_test.go index 251d565..411e06a 100644 --- a/vcs/saved_test.go +++ b/vcs/saved_test.go @@ -8,11 +8,12 @@ import ( "github.com/rednafi/rexdiff/internal/testgit" ) -// TestSavedBase checks that SaveBase keeps a base, and that the default -// branch deletes it. +// TestSavedBase checks that SavedBase returns the base that SaveBase +// saved, that saving the default branch clears it, and that values that +// are not valid ref names cannot be saved or read back. func TestSavedBase(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() if got := r.SavedBase(ctx); got != "" { t.Errorf("SavedBase before a save = %q, want \"\"", got) @@ -29,7 +30,7 @@ func TestSavedBase(t *testing.T) { if got := r.SavedBase(ctx); got != "" { t.Errorf("SavedBase after a save of the default = %q, want \"\"", got) } - // A value that is not a base is not read. + // A value that is not a valid ref name can be neither saved nor read. for _, bad := range []string{"-x", "a b", "a\x7f"} { if err := r.SaveBase(ctx, bad); err == nil { t.Errorf("SaveBase(%q): no error, want an error", bad) @@ -42,7 +43,8 @@ func TestSavedBase(t *testing.T) { } } -// hashObject writes s as a blob in the repository dir and returns its ID. +// hashObject stores s as a blob in the repository at dir and returns the +// blob's ID. func hashObject(t *testing.T, dir, s string) string { t.Helper() tmp := t.TempDir() @@ -51,13 +53,13 @@ func hashObject(t *testing.T, dir, s string) string { return strings.TrimSpace(out) } -// TestSavedTurn checks that SaveTurn keeps a tree, also after git gc, and -// that "" deletes it. +// TestSavedTurn checks that a tree saved with SaveTurn survives git gc, +// and that saving "" deletes it, also when it is already deleted. func TestSavedTurn(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() - tree := snapshot(t, r) // a tree that no commit has + tree := snapshot(t, r) // a tree that no commit refers to if err := r.SaveTurn(ctx, tree); err != nil { t.Fatal(err) } @@ -68,7 +70,7 @@ func TestSavedTurn(t *testing.T) { if _, err := r.Diff(ctx, tree, head(t, r)); err != nil { t.Errorf("the tree after gc: %v", err) } - for range 2 { // a second delete is no error + for range 2 { // deleting twice is not an error if err := r.SaveTurn(ctx, ""); err != nil { t.Fatal(err) } @@ -78,11 +80,11 @@ func TestSavedTurn(t *testing.T) { } } -// TestSavedPerWorktree checks that each worktree has its own saved base -// and turn. +// TestSavedPerWorktree checks that the base and turn saved in one +// worktree are not visible in another worktree of the same repository. func TestSavedPerWorktree(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) ctx := t.Context() other := filepath.Join(t.TempDir(), "wt") testgit.Git(t, dir, "worktree", "add", "-q", other, "main") diff --git a/vcs/watch.go b/vcs/watch.go index 5fb2fdf..69753af 100644 --- a/vcs/watch.go +++ b/vcs/watch.go @@ -10,49 +10,59 @@ import ( "path/filepath" "slices" "strings" + "sync" "syscall" "time" ) -// pauseFactor sets the pause after a check of a [Watcher]. The next check -// waits this many times as long as the last check took. Thus the checks -// use less than 1/21 of a core. herdr-reviewr uses the same factor. -const pauseFactor = 20 +// Pauses between the checks of a [Watcher]. After a check, the next one +// waits pauseFactor times as long as the check took, so checking uses less +// than 1% of a CPU core, but never more than maxPause. The time spent +// listing the files with git does not count: listing happens only after +// a change, and a pause after it would delay noticing the next edit by +// seconds in a large repository. +const ( + pauseFactor = 100 + maxPause = 30 * time.Second +) -// Watcher reports whether the working tree or the refs can have changed. It -// compares the file status of the files that git lists, of their -// directories, and of the git files. While nothing changes, it runs no -// git process. After a change, it runs git to list the files again. +// Watcher reports whether the working tree or the refs may have changed. +// It compares the file metadata of the files that git lists, their +// directories and git's own files. While nothing changes, it runs no git +// process. After a change, it runs git to list the files again. +// +// A Watcher does not notice changes to the global core.excludesFile, or a +// file replaced by a copy with the same size and modification time. // -// A Watcher does not see a change of the global core.excludesFile. It -// also does not see a copy that keeps the size and the modification time -// of a file. +// A Watcher is safe for concurrent use by multiple goroutines. type Watcher struct { + mu sync.Mutex // held by every method r *Repo gitDir, common string // absolute paths - now func() time.Time // the clock, time.Now - next time.Time // no check before this time + now func() time.Time // the clock; time.Now outside tests + next time.Time // the earliest time of the next check - started bool - since time.Time // the start of the watch - listed bool // files and dirs are from the last list - files []string // the absolute paths that git lists - dirs []string // the root and each directory above a listed path - shown []string // the absolute paths of the ignored dirs that show + started bool + reset bool // the next check reports a change to the files + since time.Time // when the watch started + listed bool // files and dirs come from a complete listing + files []string // the absolute paths that git lists + dirs []string // the root and every directory that contains a listed path + included []string // the absolute paths set by Include - // The sums of the last check. - list, refs, index, dirSum, fileSum, shownSum uint64 + // The sums from the last check. + list, refs, index, dirSum, fileSum, includedSum uint64 } -// Change tells what can have changed since the last call to +// Change describes what may have changed since the last call to // [Watcher.Changed]. type Change struct { - Files bool // the working tree or the index - Refs bool // HEAD, a ref, or the config + Files bool // the working tree or the index may have changed + Refs bool // HEAD, a ref or the git config may have changed } -// Watch returns a Watcher of the repository. Its first call to -// [Watcher.Changed] reports a change of both. +// Watch returns a Watcher for the repository. The first call to +// [Watcher.Changed] reports both kinds of change. func (r *Repo) Watch(ctx context.Context) (*Watcher, error) { gitDir, err := r.gitPath(ctx, "--git-dir") if err != nil { @@ -63,32 +73,47 @@ func (r *Repo) Watch(ctx context.Context) (*Watcher, error) { return nil, err } w := &Watcher{r: r, gitDir: gitDir, common: common, now: time.Now, since: time.Now()} - // The list is ready at once, for LastWrite. + // List the files now, so LastWrite works before the first call to + // Changed. w.index = w.sumIndex() if w.list, err = w.relist(ctx); err != nil { return nil, err } - w.dirSum = sumPaths(w.dirs) + // Sum the files now too, or else the first call to Changed would see + // them change and list them again. + w.dirSum, w.fileSum = sumPaths(w.dirs), sumFiles(w.files) return w, nil } -// Show sets the paths that show and that git does not list. These are the -// ignored directories that the user expands, and the open file. The open -// file can be ignored or a link. paths are relative to the root. Changed -// also reports an edit of a shown file or of the target of a shown link. -// It also reports a file that a shown directory gets or loses. A new set -// reports no change. -func (w *Watcher) Show(paths []string) { +// Include sets extra paths to watch that git does not list, for example +// expanded ignored directories and the file that is open. paths are +// relative to the root. Changed then also reports edits to such a file or +// to its symbolic link target, and files added to or removed from such a +// directory. Calling Include does not itself count as a change. +func (w *Watcher) Include(paths []string) { + w.mu.Lock() + defer w.mu.Unlock() abs := make([]string, len(paths)) for i, p := range paths { abs[i] = filepath.Join(w.r.root, filepath.FromSlash(p)) } - if !slices.Equal(abs, w.shown) { - w.shown, w.shownSum = abs, sumPaths(abs) + if !slices.Equal(abs, w.included) { + w.included, w.includedSum = abs, sumPaths(abs) } } -// gitPath returns the absolute path that rev-parse gives for flag. +// Reset makes the next call to [Watcher.Changed] check at once and report +// a change to the files. Call it after reading the files without a +// reported change, for example on a key press. Then the reread that follows +// that report starts after the check, and the checks compare with what is +// shown. +func (w *Watcher) Reset() { + w.mu.Lock() + defer w.mu.Unlock() + w.reset, w.next = true, time.Time{} +} + +// gitPath returns the absolute path that git rev-parse prints for flag. func (r *Repo) gitPath(ctx context.Context, flag string) (string, error) { out, err := r.run(ctx, nil, "rev-parse", "--path-format=absolute", flag) if err != nil { @@ -97,18 +122,27 @@ func (r *Repo) gitPath(ctx context.Context, flag string) (string, error) { return strings.TrimSuffix(out, "\n"), nil } -// Changed tells what can have changed since the last call. The first call -// reports a change of both. After a call that takes the time d, Changed -// reports no change for 20 times d. A change in that time shows in the -// next call after it. +// Changed reports what may have changed since the last call. The first +// call reports both kinds of change. If a call takes the time d, not +// counting the time spent listing files with git, calls in the following +// 100 times d, but at most 30 seconds, report no change without checking. +// The first call after that period reports a change made in it. func (w *Watcher) Changed(ctx context.Context) (Change, error) { + w.mu.Lock() + defer w.mu.Unlock() start := w.now() if start.Before(w.next) { return Change{}, nil } + var listing time.Duration // the time spent in relist + relist := func() (uint64, error) { + t0 := w.now() + defer func() { listing += w.now().Sub(t0) }() + return w.relist(ctx) + } defer func() { end := w.now() - w.next = end.Add(pauseFactor * end.Sub(start)) + w.next = end.Add(min(pauseFactor*(end.Sub(start)-listing), maxPause)) }() refs, index := w.sumRefs(), w.sumIndex() @@ -117,20 +151,20 @@ func (w *Watcher) Changed(ctx context.Context) (Change, error) { list := w.list if !w.listed || dirs != w.dirSum || index != w.index { var err error - if list, err = w.relist(ctx); err != nil { + if list, err = relist(); err != nil { return Change{}, err } dirs, listed = sumPaths(w.dirs), true } - files, shown := sumFiles(w.files), sumPaths(w.shown) + files, included := sumFiles(w.files), sumPaths(w.included) ch := Change{ - Files: index != w.index || list != w.list || files != w.fileSum, + Files: w.reset || index != w.index || list != w.list || files != w.fileSum, Refs: refs != w.refs, } if ch.Files && !listed { - // An edit of a .gitignore file can change the list. + // Editing a .gitignore file can change which files git lists. var err error - if list, err = w.relist(ctx); err != nil { + if list, err = relist(); err != nil { return Change{}, err } dirs, files = sumPaths(w.dirs), sumFiles(w.files) @@ -139,23 +173,26 @@ func (w *Watcher) Changed(ctx context.Context) (Change, error) { w.started, ch = true, Change{Files: true, Refs: true} } w.list, w.refs, w.index, w.dirSum, w.fileSum = list, refs, index, dirs, files - if shown != w.shownSum { - w.shownSum, ch.Files = shown, true + w.reset = false + if included != w.includedSum { + w.includedSum, ch.Files = included, true } return ch, nil } -// LastWrite returns the newest modification time, not after until, of the -// listed files and of their directories, as they are now. A new or a -// removed file changes the time of its directory. LastWrite returns the -// zero time if no such time is after the start of the watch. It does not -// change what the next call to Changed reports. +// LastWrite returns the latest modification time, no later than until, of +// the listed files and their directories. Adding or removing a file +// updates the time of its directory. If no such time is after the watch +// started, LastWrite returns the zero time. It does not affect what the +// next call to Changed reports. func (w *Watcher) LastWrite(until time.Time) time.Time { + w.mu.Lock() + defer w.mu.Unlock() var last time.Time for _, p := range slices.Concat(w.files, w.dirs) { - fi, err := os.Lstat(p) - if err == nil && fi.ModTime().After(last) && !fi.ModTime().After(until) { - last = fi.ModTime() + info, err := os.Lstat(p) + if err == nil && info.ModTime().After(last) && !info.ModTime().After(until) { + last = info.ModTime() } } if !last.After(w.since) { @@ -164,11 +201,11 @@ func (w *Watcher) LastWrite(until time.Time) time.Time { return last } -// relist reads the list of the files and their directories again. It -// returns the sum of the list. +// relist lists the files and their directories again and returns a hash +// of the file list. func (w *Watcher) relist(ctx context.Context) (uint64, error) { w.listed = false - paths, err := w.r.lsFiles(ctx, listArgs...) + paths, err := w.r.lsFiles(ctx, lsFilesArgs...) if err != nil { return 0, err } @@ -189,7 +226,7 @@ func (w *Watcher) relist(ctx context.Context) (uint64, error) { s := newSum() for _, p := range paths { s.str(p) - // git lists a nested repository with a slash at the end. + // git lists a nested repository with a trailing slash. p = filepath.Join(root, strings.TrimSuffix(p, "/")) w.files = append(w.files, p) addDirs(filepath.Dir(p)) @@ -202,10 +239,10 @@ func (w *Watcher) relist(ctx context.Context) (uint64, error) { } // untrackedDirs returns the untracked directories, relative to the root, -// and each directory below them that git does not ignore. git lists no -// file in a directory that is empty or has only ignored files. A new file -// there changes only that directory, thus the [Watcher] must watch it. -// untrackedDirs does not go into a nested repository. +// and every directory below them that git does not ignore. The [Watcher] +// needs them because git lists no files for a directory that is empty or +// holds only ignored files. untrackedDirs does not descend into nested +// repositories. func (r *Repo) untrackedDirs(ctx context.Context) ([]string, error) { ps, err := r.lsFiles(ctx, "-o", "--directory", "--exclude-standard") if err != nil { @@ -223,9 +260,10 @@ func (r *Repo) untrackedDirs(ctx context.Context) ([]string, error) { for _, d := range level { abs := filepath.Join(r.root, filepath.FromSlash(d)) if _, err := os.Lstat(filepath.Join(abs, ".git")); err == nil { - continue // a nested repository + continue // skip a nested repository } - // A directory that goes away has no directories to watch. + // If the directory was just deleted, ReadDir fails and there is + // nothing below it to watch. des, _ := os.ReadDir(abs) for _, de := range des { if de.IsDir() { @@ -240,17 +278,17 @@ func (r *Repo) untrackedDirs(ctx context.Context) ([]string, error) { return dirs, nil } -// notIgnored returns the paths that git does not ignore. Each path gets -// the prefix "./", because git reads a path that starts with ":" as -// pathspec magic. git writes the paths with the prefix. +// notIgnored returns the paths that git does not ignore. It prefixes each +// path with "./" before passing it to git, because git treats a leading +// ":" as pathspec magic. func (r *Repo) notIgnored(ctx context.Context, paths []string) ([]string, error) { if len(paths) == 0 { return nil, nil } in := strings.NewReader("./" + strings.Join(paths, "\x00./")) out, err := r.runInput(ctx, nil, in, "check-ignore", "-z", "--stdin") - if exitedOne(err) { - return paths, nil // git ignores none + if isExitOne(err) { + return paths, nil // git ignores none of the paths } if err != nil { return nil, err @@ -262,8 +300,8 @@ func (r *Repo) notIgnored(ctx context.Context, paths []string) ([]string, error) return slices.DeleteFunc(paths, func(p string) bool { return ignored["./"+p] }), nil } -// sumRefs returns the sum of the files that change with HEAD, a ref, or -// the config. +// sumRefs returns a hash of the files that change when HEAD, a ref or the +// git config changes. func (w *Watcher) sumRefs() uint64 { paths := []string{ filepath.Join(w.gitDir, "HEAD"), @@ -273,11 +311,11 @@ func (w *Watcher) sumRefs() uint64 { filepath.Join(w.common, "config"), filepath.Join(w.common, "reftable", "tables.list"), } - // The branch of HEAD has its own file. The branches are in the common - // directory, which the worktrees of the repository share. + // The branch that HEAD points to has its own file, in the common + // directory that all worktrees share. if b, err := os.ReadFile(paths[0]); err == nil { ref, ok := strings.CutPrefix(strings.TrimSpace(string(b)), "ref: ") - // Localize refuses a ".." or a "/" at the start. + // Localize rejects paths with ".." or a leading "/". if p, err := filepath.Localize(ref); ok && err == nil { paths = append(paths, filepath.Join(w.common, p)) } @@ -285,85 +323,107 @@ func (w *Watcher) sumRefs() uint64 { return sumPaths(paths) } -// sumIndex returns the sum of the files that change the list of files. +// sumIndex returns a hash of the files that affect which files git lists: +// the index and info/exclude. func (w *Watcher) sumIndex() uint64 { return sumPaths([]string{w.r.index, filepath.Join(w.common, "info", "exclude")}) } -// sumPaths returns the sum of the path, the size, the modification time, -// the mode, and the inode of each file. It follows a symbolic link, so an -// edit of the target changes the sum. +// sumPaths returns a hash of the path, size, modification time, mode and +// inode of each file. It follows symbolic links, so editing a link's +// target changes the hash. func sumPaths(paths []string) uint64 { s := newSum() for _, p := range paths { - s.stat(p, os.Stat) + s.file(p, statOf(os.Stat, p)) } return s.Sum64() } -// sumFiles is like sumPaths. For a directory, it also adds the git files -// of the nested repository or the submodule in it. A commit there does not -// change the directory. +// sumFiles is like sumPaths, but it does not follow symbolic links. For a +// directory that holds a nested repository or submodule, it also hashes +// that repository's git files, because a commit there does not change the +// directory itself. func sumFiles(paths []string) uint64 { s := newSum() for _, p := range paths { - if s.stat(p, os.Lstat) { + if s.file(p, statOf(os.Lstat, p)) { s.nested(p) } } return s.Sum64() } -// sum is a 64-bit FNV-1a hash of paths and of the states of files. The -// sums stay in the process, so their values can change between versions. -// The Write of a hash never fails. -type sum struct{ hash.Hash64 } +// statOf returns the result of calling stat on p, or nil if that fails, +// for example because p does not exist. +func statOf(stat func(string) (fs.FileInfo, error), p string) fs.FileInfo { + info, err := stat(p) + if err != nil { + return nil + } + return info +} + +// sum is a 64-bit FNV-1a hash of paths and file metadata. Sums are never +// stored outside the process, so the hashed format can change between +// versions. Write never fails. buf is reused for every write to avoid an +// allocation. +type sum struct { + hash.Hash64 + buf []byte +} -// newSum returns the sum of no bytes. -func newSum() sum { return sum{fnv.New64a()} } +// newSum returns an empty sum. +func newSum() *sum { return &sum{Hash64: fnv.New64a()} } -// str adds v and a NUL, so that two strings do not join. -func (s sum) str(v string) { _, _ = s.Write(append([]byte(v), 0)) } +// str adds v followed by a NUL byte, so that adjacent strings stay +// distinct. +func (s *sum) str(v string) { + s.buf = append(append(s.buf[:0], v...), 0) + _, _ = s.Write(s.buf) +} -// num adds the 8 bytes of v. -func (s sum) num(v uint64) { _, _ = s.Write(binary.LittleEndian.AppendUint64(nil, v)) } +// num adds v as 8 bytes. +func (s *sum) num(v uint64) { + s.buf = binary.LittleEndian.AppendUint64(s.buf[:0], v) + _, _ = s.Write(s.buf) +} // int adds v, for example a size or a time. -func (s sum) int(v int64) { - s.num(uint64(v)) //nolint:gosec // a hash keeps all bits, so a wrap is fine +func (s *sum) int(v int64) { + s.num(uint64(v)) //nolint:gosec // the hash uses all 64 bits, so the conversion loses nothing } -// stat adds the path and the file status that stat gives for p. A missing -// file adds a marker. stat reports whether p is a directory. -func (s sum) stat(p string, stat func(string) (fs.FileInfo, error)) (isDir bool) { +// file adds the path p and its metadata info. A nil info means that the +// file does not exist. file reports whether p is a directory. +func (s *sum) file(p string, info fs.FileInfo) (isDir bool) { s.str(p) - fi, err := stat(p) - if err != nil { + if info == nil { s.num(0) return false } - s.int(fi.Size()) - s.int(fi.ModTime().UnixNano()) - s.num(uint64(fi.Mode())) - if st, ok := fi.Sys().(*syscall.Stat_t); ok { + s.int(info.Size()) + s.int(info.ModTime().UnixNano()) + s.num(uint64(info.Mode())) + if st, ok := info.Sys().(*syscall.Stat_t); ok { s.num(st.Ino) } - return fi.IsDir() + return info.IsDir() } -// nested adds the git files of the repository in the directory p, if p -// has one. A commit there changes HEAD or its log, and the directory of -// the git files. -func (s sum) nested(p string) { +// nested adds the git directory, HEAD and HEAD log of the repository in +// the directory p, if p contains one. +func (s *sum) nested(p string) { dotGit := filepath.Join(p, ".git") - fi, err := os.Lstat(dotGit) + info, err := os.Lstat(dotGit) if err != nil { return } s.str(dotGit) dir := dotGit - if !fi.IsDir() { - // A submodule has a file "gitdir: " in place of a directory. + if !info.IsDir() { + // In a submodule, .git is a file containing "gitdir: " + // instead of a directory. b, err := os.ReadFile(dotGit) gd, ok := strings.CutPrefix(strings.TrimSpace(string(b)), "gitdir: ") if err != nil || !ok { @@ -374,13 +434,13 @@ func (s sum) nested(p string) { } } for _, f := range []string{dir, filepath.Join(dir, "HEAD"), filepath.Join(dir, "logs", "HEAD")} { - fi, err := os.Lstat(f) + info, err := os.Lstat(f) if err != nil { s.num(0) continue } - s.int(fi.Size()) - s.int(fi.ModTime().UnixNano()) + s.int(info.Size()) + s.int(info.ModTime().UnixNano()) } } diff --git a/vcs/watch_test.go b/vcs/watch_test.go index c2fa8d5..076e899 100644 --- a/vcs/watch_test.go +++ b/vcs/watch_test.go @@ -1,9 +1,11 @@ package vcs_test import ( + "fmt" "os" "path/filepath" "strings" + "sync" "testing" "time" @@ -11,8 +13,9 @@ import ( "github.com/rednafi/rexdiff/vcs" ) -// newWatcher returns a Watcher of r after its first call. Its clock does -// not move, so no call waits for the pause. +// newWatcher returns a Watcher for r on which Changed has already been +// called once. Its clock never moves, so no call is skipped by the pause +// between checks. func newWatcher(t *testing.T, r *vcs.Repo) *vcs.Watcher { t.Helper() w, err := r.Watch(t.Context()) @@ -21,12 +24,13 @@ func newWatcher(t *testing.T, r *vcs.Repo) *vcs.Watcher { } w.SetClock(func() time.Time { return time.Time{} }) if ch := changed(t, w); ch != (vcs.Change{Files: true, Refs: true}) { - t.Fatalf("first call: %+v, want both", ch) + t.Fatalf("first Changed call = %+v, want both", ch) } return w } -// changed returns the change that w sees. +// changed calls w.Changed and returns the result, failing the test on +// error. func changed(t *testing.T, w *vcs.Watcher) vcs.Change { t.Helper() ch, err := w.Changed(t.Context()) @@ -36,8 +40,20 @@ func changed(t *testing.T, w *vcs.Watcher) vcs.Change { return ch } -// TestWatcher checks the changes that a Watcher sees and does not see. A -// change must have each part of want. No change must be none. +// covers reports whether got sets every field that want sets, and, if +// want is empty, whether got is empty too. +func covers(got, want vcs.Change) bool { + if want == (vcs.Change{}) { + return got == want + } + filesOK := !want.Files || got.Files + refsOK := !want.Refs || got.Refs + return filesOK && refsOK +} + +// TestWatcher checks which edits a Watcher reports and which it ignores. +// For each edit, Changed must set every field that want sets, must report +// nothing when want is empty, and must report nothing on the next call. func TestWatcher(t *testing.T) { t.Parallel() files := vcs.Change{Files: true} @@ -49,7 +65,7 @@ func TestWatcher(t *testing.T) { {"nothing", func(*testing.T, string) {}, vcs.Change{}}, {"same size, new time", func(t *testing.T, dir string) { t.Helper() - testgit.WriteFile(t, dir, "a.txt", "one\nxyz\n") // the same size + testgit.WriteFile(t, dir, "a.txt", "one\nxyz\n") // same size as before p := filepath.Join(dir, "a.txt") later := time.Now().Add(time.Hour) if err := os.Chtimes(p, later, later); err != nil { @@ -86,35 +102,33 @@ func TestWatcher(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) w := newWatcher(t, r) tt.edit(t, dir) got := changed(t, w) - if tt.want.Files && !got.Files || tt.want.Refs && !got.Refs || - tt.want == (vcs.Change{}) && got != tt.want { - t.Errorf("after the edit: %+v, want %+v", got, tt.want) + if !covers(got, tt.want) { + t.Errorf("Changed after the edit = %+v, want %+v", got, tt.want) } if got := changed(t, w); got != (vcs.Change{}) { - t.Errorf("second call: %+v, want none", got) + t.Errorf("second Changed call = %+v, want none", got) } }) } } -// TestWatcherLastWrite checks that LastWrite sees a new file after the -// start of the watch, but not after its limit, and that the change still -// shows in Changed. +// TestWatcherLastWrite checks that LastWrite returns the time of a file +// written after the watch started, ignores times after until, and does +// not stop Changed from reporting the new file. func TestWatcherLastWrite(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) w := newWatcher(t, r) if got := w.LastWrite(time.Now()); !got.IsZero() { t.Errorf("LastWrite before a write = %v, want zero", got) } testgit.WriteFile(t, dir, "c.txt", "c\n") - // The clock of the file system can be behind time.Now. So the test sets - // the times of the new file and of its directory to an hour after now. - // This is clearly after the start of the watch. + // The file system clock can lag behind time.Now, so set the times of + // the new file and its directory to one hour from now. later := time.Now().Add(time.Hour) for _, p := range []string{filepath.Join(dir, "c.txt"), dir} { if err := os.Chtimes(p, later, later); err != nil { @@ -128,99 +142,103 @@ func TestWatcherLastWrite(t *testing.T) { t.Errorf("LastWrite before the write = %v, want zero", got) } if got := changed(t, w); !got.Files { - t.Errorf("Changed after LastWrite: %+v, want Files", got) + t.Errorf("Changed after LastWrite = %+v, want Files", got) } } -// TestWatcherNewDirectory checks that an edit in a new untracked directory -// is a change. +// TestWatcherNewDirectory checks that Changed reports an edit to a file in +// a new untracked directory. func TestWatcherNewDirectory(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) w := newWatcher(t, r) testgit.WriteFile(t, dir, "x/c.txt", "c\n") changed(t, w) testgit.WriteFile(t, dir, "x/c.txt", "c\nd\n") if got := changed(t, w); !got.Files { - t.Errorf("after an edit in x: %+v, want Files", got) + t.Errorf("Changed after an edit in x = %+v, want Files", got) } } -// TestWatcherUnignore checks that a file shows after a .gitignore edit -// stops git from ignoring it. +// TestWatcherUnignore checks that Changed reports a .gitignore edit that +// stops git from ignoring a file, and then reports edits to that file. func TestWatcherUnignore(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) w := newWatcher(t, r) testgit.WriteFile(t, dir, "ignored.txt", "xx\n") if got := changed(t, w); got.Files { - t.Errorf("after an edit of an ignored file: %+v, want no Files", got) + t.Errorf("Changed after an edit of an ignored file = %+v, want no Files", got) } testgit.WriteFile(t, dir, ".gitignore", "build/\n") if got := changed(t, w); !got.Files { - t.Errorf("after the .gitignore edit: %+v, want Files", got) + t.Errorf("Changed after the .gitignore edit = %+v, want Files", got) } testgit.WriteFile(t, dir, "ignored.txt", "xxx\n") if got := changed(t, w); !got.Files { - t.Errorf("after an edit of the file: %+v, want Files", got) + t.Errorf("Changed after an edit of the file = %+v, want Files", got) } } -// TestWatcherShown checks that a file that an expanded ignored directory -// gets or loses is a change. An edit of a shown ignored file is also a -// change, as in herdr-reviewr. -func TestWatcherShown(t *testing.T) { +// TestWatcherIncluded checks that, after Include, Changed reports files +// added to or removed from an ignored directory, and edits to an ignored +// file or to the target of a symbolic link. Include itself is not a +// change. +func TestWatcherIncluded(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) w := newWatcher(t, r) testgit.WriteFile(t, dir, "build/new", "x\n") if got := changed(t, w); got.Files { - t.Errorf("a new file in a hidden build: %+v, want no Files", got) + t.Errorf("Changed after a new file in a hidden build = %+v, want no Files", got) } - w.Show([]string{"build"}) + w.Include([]string{"build"}) if got := changed(t, w); got.Files { - t.Errorf("after Show: %+v, want no Files", got) + t.Errorf("Changed after Include = %+v, want no Files", got) } testgit.WriteFile(t, dir, "build/more", "x\n") if got := changed(t, w); !got.Files { - t.Errorf("a new file in a shown build: %+v, want Files", got) + t.Errorf("Changed after a new file in a shown build = %+v, want Files", got) } if err := os.Remove(filepath.Join(dir, "build", "more")); err != nil { t.Fatal(err) } if got := changed(t, w); !got.Files { - t.Errorf("a removed file in a shown build: %+v, want Files", got) + t.Errorf("Changed after a removed file in a shown build = %+v, want Files", got) } - w.Show(nil) + w.Include(nil) testgit.WriteFile(t, dir, "build/more", "x\n") if got := changed(t, w); got.Files { - t.Errorf("a new file after Show(nil): %+v, want no Files", got) + t.Errorf("Changed after a new file after Include(nil) = %+v, want no Files", got) } - w.Show([]string{"ignored.txt"}) + w.Include([]string{"ignored.txt"}) testgit.WriteFile(t, dir, "ignored.txt", "an edit\n") if got := changed(t, w); !got.Files { - t.Errorf("an edit of a shown file: %+v, want Files", got) + t.Errorf("Changed after an edit of a shown file = %+v, want Files", got) } if err := os.Symlink("ignored.txt", filepath.Join(dir, "link")); err != nil { t.Fatal(err) } - w.Show([]string{"link"}) + w.Include([]string{"link"}) changed(t, w) testgit.WriteFile(t, dir, "ignored.txt", "one more edit\n") if got := changed(t, w); !got.Files { - t.Errorf("an edit of the target of a shown link: %+v, want Files", got) + t.Errorf("Changed after an edit of the target of a shown link = %+v, want Files", got) } } -// TestWatcherNested checks that a commit in a nested repository or in a -// submodule is a change. +// TestWatcherNested checks that Changed reports a commit in a nested +// repository or in a submodule. func TestWatcherNested(t *testing.T) { t.Parallel() for _, sub := range []bool{false, true} { - name := map[bool]string{false: "nested", true: "submodule"}[sub] + name := "nested" + if sub { + name = "submodule" + } t.Run(name, func(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) other := t.TempDir() testgit.InitRepo(t, other) testgit.WriteFile(t, other, "f", "1\n") @@ -237,7 +255,7 @@ func TestWatcherNested(t *testing.T) { testgit.WriteFile(t, inner, "f", "2\n") testgit.Git(t, inner, "commit", "-qam", "2") if got := changed(t, w); !got.Files { - t.Errorf("after a commit in %s: %+v, want Files", name, got) + t.Errorf("Changed after a commit in %s = %+v, want Files", name, got) } }) } @@ -248,28 +266,28 @@ func TestWatcherNested(t *testing.T) { func TestWatcherRunsNoGit(t *testing.T) { t.Parallel() env, link := gitLink(t) - r, _ := newRepoEnv(t, env) + r, _ := openTestRepoEnv(t, env) w := newWatcher(t, r) removeGit(t, link) for range 3 { ch, err := w.Changed(t.Context()) if err != nil || ch != (vcs.Change{}) { - t.Fatalf("idle call: %+v, %v, want none, nil", ch, err) + t.Fatalf("idle Changed call = %+v, %v, want none, nil", ch, err) } } } -// TestWatcherBudget checks that a call waits 20 times as long as the last -// call took. +// TestWatcherBudget checks that after a call, Changed reports nothing for +// 100 times as long as that call took, and reports the change after that. func TestWatcherBudget(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) w, err := r.Watch(t.Context()) if err != nil { t.Fatal(err) } - // Each reading of the clock moves it by 10 ms, so each call takes 10 - // ms and the next call waits 200 ms. + // Each read of the clock advances it by 10 ms, so each call takes + // 10 ms and the next check waits 1 s. now := time.Now() w.SetClock(func() time.Time { now = now.Add(10 * time.Millisecond) @@ -278,17 +296,31 @@ func TestWatcherBudget(t *testing.T) { changed(t, w) testgit.WriteFile(t, dir, "c.txt", "c\n") if got := changed(t, w); got != (vcs.Change{}) { - t.Errorf("call in the pause: %+v, want none", got) + t.Errorf("Changed in the pause = %+v, want none", got) } - now = now.Add(200 * time.Millisecond) + now = now.Add(time.Second) if got := changed(t, w); !got.Files { - t.Errorf("call after the pause: %+v, want Files", got) + t.Errorf("Changed after the pause = %+v, want Files", got) + } + // A call that takes 1 s would make the next one wait 100 s, but the + // pause is at most 30 s. + step := time.Second + w.SetClock(func() time.Time { + now = now.Add(step) + return now + }) + changed(t, w) + step = 0 + testgit.WriteFile(t, dir, "d.txt", "d\n") + now = now.Add(30 * time.Second) + if got := changed(t, w); !got.Files { + t.Errorf("Changed after 30 s = %+v, want Files", got) } } -// TestWatcherUntrackedDir checks that a new file in an untracked directory -// that git lists no file in is a change. A new file in an ignored -// directory in it is not. +// TestWatcherUntrackedDir checks that Changed reports a new file in an +// untracked directory that git lists no files for, but not a new file in +// an ignored directory inside it. Names that start with ":" must work too. func TestWatcherUntrackedDir(t *testing.T) { t.Parallel() tests := []struct { @@ -299,14 +331,14 @@ func TestWatcherUntrackedDir(t *testing.T) { {"only ignored files", "g/ignored.txt", "g/c.txt", true}, {"empty below empty", "d/e/", "d/e/c.txt", true}, {"ignored below untracked", "u/build/", "u/build/c.txt", false}, - // A path that starts with ":" is pathspec magic to git. + // git treats a path that starts with ":" as pathspec magic. {"colon in the name", ":(x/e/", ":(x/e/c.txt", true}, {"colon and exclude", ":!x/e/", ":!x/e/c.txt", true}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Parallel() - r, dir := newRepo(t) + r, dir := openTestRepo(t) if d, ok := strings.CutSuffix(tt.setup, "/"); ok { if err := os.MkdirAll(filepath.Join(dir, d), 0o755); err != nil { t.Fatal(err) @@ -317,8 +349,51 @@ func TestWatcherUntrackedDir(t *testing.T) { w := newWatcher(t, r) testgit.WriteFile(t, dir, tt.edit, "c\n") if got := changed(t, w); got.Files != tt.want { - t.Errorf("after a new %s: %+v, want Files %v", tt.edit, got, tt.want) + t.Errorf("Changed after a new %s = %+v, want Files %v", tt.edit, got, tt.want) } }) } } + +// TestWatcherConcurrent checks that Include and LastWrite can run while +// another goroutine calls Changed, and that Changed then still reports an +// edit to one of many files. Run it with -race. +func TestWatcherConcurrent(t *testing.T) { + t.Parallel() + r, dir := openTestRepo(t) + for i := range 50 { + testgit.WriteFile(t, dir, fmt.Sprintf("many/f%02d.txt", i), "x\n") + } + testgit.Git(t, dir, "add", ".") + testgit.Git(t, dir, "commit", "-qm", "many") + w := newWatcher(t, r) + if err := os.Mkdir(filepath.Join(dir, "new"), 0o755); err != nil { + t.Fatal(err) + } + var wg sync.WaitGroup + wg.Go(func() { + for i := range 20 { + // Each new file makes Changed list the files again. + p := filepath.Join(dir, "new", fmt.Sprintf("n%02d.txt", i)) + if err := os.WriteFile(p, []byte("n\n"), 0o644); err != nil { + t.Error(err) + return + } + if _, err := w.Changed(t.Context()); err != nil { + t.Error(err) + return + } + } + }) + for range 20 { + w.Include([]string{"build"}) + w.LastWrite(time.Now()) + w.Include(nil) + } + wg.Wait() + changed(t, w) + testgit.WriteFile(t, dir, "many/f37.txt", "an edit\n") + if got := changed(t, w); !got.Files { + t.Errorf("Changed after an edit of many/f37.txt = %+v, want Files", got) + } +} From 8911fc09e941df284736fa0bf5f11c84d6fc10c6 Mon Sep 17 00:00:00 2001 From: Redowan Delowar Date: Thu, 29 Oct 2026 18:15:11 +0100 Subject: [PATCH 2/5] test: check the limits, the PR checks, the config names and the log - Black-box tests for Markdown depth and size, tall lines, too many files, large files, PR checks past 100, the setting names, and a private log with no typed text. - Library tests for long lines and the highlighter time limits. --- diff/caps_test.go | 57 ++++++ internal/diffview/caps_test.go | 199 +++++++++++++++++++ internal/diffview/norace_test.go | 6 + internal/diffview/race_test.go | 6 + test/caps_test.go | 315 +++++++++++++++++++++++++++++++ test/checks_test.go | 37 ++++ test/config_test.go | 159 ++++++++++++++++ test/limits_test.go | 144 ++++++++++++++ test/log_test.go | 52 +++++ 9 files changed, 975 insertions(+) create mode 100644 diff/caps_test.go create mode 100644 internal/diffview/caps_test.go create mode 100644 internal/diffview/norace_test.go create mode 100644 internal/diffview/race_test.go create mode 100644 test/caps_test.go create mode 100644 test/checks_test.go create mode 100644 test/config_test.go create mode 100644 test/limits_test.go create mode 100644 test/log_test.go diff --git a/diff/caps_test.go b/diff/caps_test.go new file mode 100644 index 0000000..c8cb949 --- /dev/null +++ b/diff/caps_test.go @@ -0,0 +1,57 @@ +package diff_test + +import ( + "strings" + "testing" + + "github.com/charmbracelet/x/ansi" + + "github.com/rednafi/rexdiff/diff" +) + +// longLine returns a line of n bytes of Java keywords and words, which +// the Java lexer is slow on. +func longLine(n int) string { + return strings.Repeat("public static lorem ipsum ", n/26+1)[:n] +} + +// keywordColour is the escape sequence of a Java keyword. +const keywordColour = "\x1b[35m" + +// TestLongLinePlain checks that Render and RenderFile draw a line too long +// to highlight without colours, and the short lines around it with them, +// with and without wrapping. Highlighting the line would take about 30 s. +func TestLongLinePlain(t *testing.T) { + t.Parallel() + long := longLine(100_000) + src := "class A {}\n" + long + "\nclass B {}\n" + for _, wrap := range []bool{false, true} { + o := diff.Options{Width: 80, Wrap: wrap} + renders := map[string]*diff.Diff{ + "Render": diff.Render("A.java", "", src, o), + "RenderFile": diff.RenderFile("A.java", src, fileOptions(o)), + } + for name, d := range renders { + var shown []string + for i := range len(d.Rows) { + if d.Rows[i].New == 2 { + shown = append(shown, d.Line(i)) + } + } + if len(shown) == 0 { + t.Fatalf("%s, wrap %v: no rows for the long line", name, wrap) + } + if wrap && !strings.Contains(ansi.Strip(strings.Join(shown, "")), long[len(long)-40:]) { + t.Errorf("%s, wrap %v: the rows do not show the end of the long line", name, wrap) + } + for _, l := range shown { + if strings.Contains(l, keywordColour) { + t.Fatalf("%s, wrap %v: long line row %.60q… has colours", name, wrap, l) + } + } + if last := d.Line(len(d.Rows) - 1); !strings.Contains(last, keywordColour) { + t.Errorf("%s, wrap %v: last row %q, want it highlighted", name, wrap, last) + } + } + } +} diff --git a/internal/diffview/caps_test.go b/internal/diffview/caps_test.go new file mode 100644 index 0000000..8caefa9 --- /dev/null +++ b/internal/diffview/caps_test.go @@ -0,0 +1,199 @@ +package diffview_test + +import ( + "fmt" + "strings" + "testing" + "time" + + "charm.land/lipgloss/v2" + "github.com/charmbracelet/x/ansi" + + "github.com/rednafi/rexdiff/internal/diffview" +) + +// newHighlighter returns a Highlighter for src at path that escapes the +// text of tokens, as RenderFile does. +func newHighlighter(path, src string) *diffview.Highlighter { + return diffview.NewHighlighter(path, src, lipgloss.NoColor{}, escapeLines, escapeLines) +} + +// escapeLines escapes each line of s. +func escapeLines(s string) string { + lines := strings.Split(s, "\n") + for i, l := range lines { + lines[i] = diffview.Escape(l) + } + return strings.Join(lines, "\n") +} + +// wait waits until h has highlighted every line, as long as nothing +// calls Stop. +func wait(t *testing.T, h *diffview.Highlighter) { + t.Helper() + for deadline := time.Now().Add(time.Minute); h.Busy(); time.Sleep(time.Millisecond) { + if time.Now().After(deadline) { + t.Fatal("the highlighting runs for a minute") + } + } +} + +// coloured reports whether s contains an escape sequence. +func coloured(s string) bool { return strings.Contains(s, "\x1b[") } + +// TestHighlighterLongLine checks that a Highlighter draws a line too long +// to lex plain and escaped, and still highlights the other lines. +func TestHighlighterLongLine(t *testing.T) { + t.Parallel() + long := "var s = \"\x07" + strings.Repeat("x", 5000) + "\"" + h := newHighlighter("x.go", "package a\n"+long+"\nfunc f() {}\n") + wait(t, h) + if l, _, _ := h.Line(0); !coloured(l) { + t.Errorf("line 0 = %q, want colours", l) + } + if l, _, _ := h.Line(1); l != diffview.Escape(long) { + t.Errorf("line 1 = %.40q…, want the line plain and escaped", l) + } + if l, _, _ := h.Line(2); !coloured(l) { + t.Errorf("line 2 = %q, want colours", l) + } +} + +// TestHighlighterLargeFile checks that a Highlighter still highlights the +// lines of a file too large to lex as a whole. +func TestHighlighterLargeFile(t *testing.T) { + t.Parallel() + if raceOn { + t.Skip("the race detector makes each line miss its highlighting time limit") + } + comment := "// " + strings.Repeat("x", 1400) + src := "package a\n" + strings.Repeat(comment+"\n", 400) + "func f() {}\n" // about 560 KB + h := newHighlighter("x.go", src) + wait(t, h) + for i, want := range map[int]string{0: "package a", 1: comment, 401: "func f() {}"} { + if l, _, _ := h.Line(i); !coloured(l) || ansi.Strip(l) != want { + t.Errorf("line %d = %.40q…, want it highlighted", i, l) + } + } +} + +// TestHighlighterSlow checks that Line does not wait for a lexer that is +// slow, and returns the line plain instead: one screen of such lines takes +// far less time than the lexing. +func TestHighlighterSlow(t *testing.T) { + t.Parallel() + // The Java lexer takes about a second on these lines. + words := "lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor\n" + src := strings.Repeat(words, 300) + "class A {}\n" + h := newHighlighter("x.java", src) + defer h.Stop() + start := time.Now() + l, ok, final := h.Line(300) + if !ok || final || l != "class A {}" { + t.Errorf("Line(300) = %q, %v, %v, want the line plain and not final", l, ok, final) + } + for i := 299; i > 259; i-- { + if _, _, final := h.Line(i); final { + t.Errorf("Line(%d) is final before lexing passes line 300", i) + } + } + // The race detector slows the lexer down too much for the time check. + if d := time.Since(start); d > 250*time.Millisecond && !raceOn { + t.Errorf("41 lines took %v, want Line to give up waiting sooner", d) + } +} + +// TestHighlighterStop checks that Busy reports true while lexing goes on, +// and that Stop ends the lexing of a source that is slow to lex within a +// second, rather than after its time budget. +func TestHighlighterStop(t *testing.T) { + t.Parallel() + h := newHighlighter("x.java", slowJava()) + if !h.Busy() { + t.Error("Busy = false at the start, want true while lexing") + } + h.Stop() + start := time.Now() + wait(t, h) + // The race detector slows the lexer down too much for the time check. + if d := time.Since(start); d > time.Second && !raceOn { + t.Errorf("lexing runs %v after Stop, want at most a second", d) + } +} + +// TestHighlighterTypicalFile checks that a typical Go file of 100 KB is +// coloured to the end: no line of it misses a time limit. +func TestHighlighterTypicalFile(t *testing.T) { + t.Parallel() + var b strings.Builder + b.WriteString("package a\n\nimport \"fmt\"\n\n") + for i := 0; b.Len() < 100<<10; i++ { + fmt.Fprintf(&b, "// F%d prints its argument.\nfunc F%d(x int) string {\n\treturn fmt.Sprintf(\"%%d: %%s\", x, \"text\")\n}\n\n", i, i) + } + src := b.String() + h := newHighlighter("a.go", src) + defer h.Stop() + wait(t, h) + lines := []int{0, 2} + if !raceOn { // the race detector makes lexing slower than its time limit + lines = append(lines, strings.Count(src[:strings.LastIndex(src, "func ")], "\n")) + } + for _, i := range lines { + if l, _, final := h.Line(i); !final || !coloured(l) { + t.Errorf("line %d = %q, final %v, want it highlighted", i, l, final) + } + } +} + +// TestWrapLine checks that WrapLine breaks a coloured line where WrapParts +// breaks its plain text, even when colours split a grapheme cluster. +func TestWrapLine(t *testing.T) { + t.Parallel() + family := "👨\u200d👩\u200d👧" // one cluster of five runes + plain := strings.Repeat("ab "+family+" cd ", 20) + red, reset := "\x1b[31m", "\x1b[m" + // Colour each rune of the cluster on its own, as a lexer can. + code := strings.ReplaceAll(plain, family, red+"👨"+reset+"\u200d"+red+"👩"+reset+"\u200d👧") + code = strings.ReplaceAll(code, "ab", red+"ab"+reset) + for _, width := range []int{1, 3, 7, 10, 25} { + want := diffview.WrapParts(plain, width) + got := diffview.WrapLine(plain, code, width) + if len(got) != len(want) { + t.Fatalf("width %d: %d parts, want %d", width, len(got), len(want)) + } + for k := range got { + if ansi.Strip(got[k]) != want[k] { + t.Fatalf("width %d: part %d = %q, want the text %q", width, k, got[k], want[k]) + } + } + if !coloured(strings.Join(got, "")) { + t.Errorf("width %d: the parts have no colours", width) + } + } + // A code line that does not match plain gives the plain parts. + if got := diffview.WrapLine(plain, "other", 10); strings.Join(got, "") != strings.Join(diffview.WrapParts(plain, 10), "") { + t.Errorf("WrapLine with other text = %q, want the plain parts", got) + } +} + +// slowJava returns about 100 KB of lines of words, on which the Java +// lexer takes about 30 s when it lexes them as a whole. +func slowJava() string { + return strings.Repeat(strings.Repeat("lorem ipsum dolor sit amet ", 7)+"\n", 500) + "class A {}\n" +} + +// TestHighlighterBudget checks that a Highlighter stops lexing a source +// that is slow to lex after its time budget, and draws the rest plain. +func TestHighlighterBudget(t *testing.T) { + t.Parallel() + src := slowJava() + h := newHighlighter("x.java", src) + start := time.Now() + wait(t, h) + if d := time.Since(start); d > 10*time.Second { + t.Errorf("lexing took %v, want it to stop after its budget", d) + } + if l, ok, final := h.Line(500); !ok || !final || l != "class A {}" { + t.Errorf("Line(500) = %q, %v, %v, want the line plain and final", l, ok, final) + } +} diff --git a/internal/diffview/norace_test.go b/internal/diffview/norace_test.go new file mode 100644 index 0000000..69e4014 --- /dev/null +++ b/internal/diffview/norace_test.go @@ -0,0 +1,6 @@ +//go:build !race + +package diffview_test + +// raceOn reports whether the tests run with the race detector. +const raceOn = false diff --git a/internal/diffview/race_test.go b/internal/diffview/race_test.go new file mode 100644 index 0000000..fc1ae21 --- /dev/null +++ b/internal/diffview/race_test.go @@ -0,0 +1,6 @@ +//go:build race + +package diffview_test + +// raceOn reports whether the tests run with the race detector. +const raceOn = true diff --git a/test/caps_test.go b/test/caps_test.go new file mode 100644 index 0000000..22ebb66 --- /dev/null +++ b/test/caps_test.go @@ -0,0 +1,315 @@ +package test + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + "regexp" + "strconv" + "strings" + "testing" + + "github.com/rednafi/rexdiff/internal/testgit" +) + +// markdownRepo returns a repository whose only change is README.md, set +// to text. +func markdownRepo(t *testing.T, text string) string { + t.Helper() + repo := newRepo(t) + testgit.Git(t, repo, "checkout", "--", "a.go", "long.txt") + testgit.WriteFile(t, repo, "README.md", text) + return repo +} + +// rendered is the flag that shows Markdown rendered from the start. +var rendered = []string{"-config", `{"markdown_view": "rendered"}`} + +// TestMarkdownTooLarge checks that a Markdown file too large to render +// shows as its source diff, with a note in the title. +func TestMarkdownTooLarge(t *testing.T) { + text := "# Big title\n\n" + strings.Repeat("Some *text* in a paragraph.\n\n", 20000) // about 600 KB + tm := start(t, markdownRepo(t, text), opts{args: rendered}) + tm.waitFor("README.md", "markdown too large to render", "# Big title", "Some *text*") +} + +// TestMarkdownBlockTooLarge checks that a rendered Markdown file shows a +// block too large to render as its source, and that reference links +// still resolve in the other blocks. +func TestMarkdownBlockTooLarge(t *testing.T) { + table := "| a | b |\n|---|---|\n" + strings.Repeat("| *x* | y |\n", 7000) // about 80 KB + text := "# Title\n\nSee [the docs][Docs].\n\n[docs]: https://example.com/docs\n\n" + table + tm := start(t, markdownRepo(t, text), opts{args: rendered}) + s := tm.waitFor("See the docs", "https://example.com/docs", "block too large to render", "| *x* | y |") + if strings.Contains(s, "# Title") || strings.Contains(s, "[docs]:") { + t.Errorf("the small blocks show as source. The screen shows:\n%s", s) + } +} + +// TestMarkdownTooDeep checks that rendered Markdown shows blocks whose +// quotes or lists nest very deeply as source, at start-up and at any +// width, instead of freezing while glamour renders them. +func TestMarkdownTooDeep(t *testing.T) { + text := "# Title\n\n" + strings.Repeat("> ", 100) + "deep quote\n\n" + + strings.Repeat("- ", 300) + "deep list\n\nAfter the *lists*.\n" + for _, width := range []uint16{40, 120, 300} { + t.Run(fmt.Sprintf("%d columns", width), func(t *testing.T) { + tm := start(t, markdownRepo(t, text), opts{args: rendered, width: width}) + s := tm.waitFor("Title", "nested too deeply", "> > >") + if strings.Contains(s, "# Title") { + t.Errorf("the heading shows as source. The screen shows:\n%s", s) + } + // At 40 columns, the source of the blocks fills more than the + // screen. + tm.keys(":", "$", "enter") + tm.waitFor("After the lists.", "- - -") + }) + } +} + +// nestedList returns a list nested depth levels deep, with each level +// indented to the text of the item above, which starts with marker. +func nestedList(marker string, depth int) string { + var b strings.Builder + for d := range depth { + fmt.Fprintf(&b, "%s%s item %d\n", strings.Repeat(" ", d*(len(marker)+1)), marker, d) + } + return b.String() +} + +// TestMarkdownDepth checks where rendered Markdown draws the line on +// nesting: deep but ordinary lists, quotes and code render, while blocks +// nested more than 12 deep, however they hide it, show as source with a +// note. +func TestMarkdownDepth(t *testing.T) { + const note = "nested too deeply" + fence := "```\n" + strings.Repeat(" ", 26) + "deep code 26\n" + + strings.Repeat(" ", 40) + "deep code 40\n```\n" + for _, c := range []struct { + name string + block string + deep bool // whether the block shows as source with the note + whole bool // whether the block takes in the whole file + shows []string // text the screen shows + hides []string // text the screen does not show + }{ + {name: "ordered list 9 deep", block: nestedList("1.", 9), shows: []string{"item 8"}}, + {name: "ordered list 12 deep", block: nestedList("1.", 12), shows: []string{"item 11"}}, + {name: "bullet list 12 deep", block: nestedList("-", 12), shows: []string{"item 11"}, hides: []string{"- item"}}, + {name: "quote 12 deep", block: strings.Repeat("> ", 12) + "deep quote\n", shows: []string{"deep quote"}, hides: []string{"> >"}}, + {name: "indented fenced code", block: fence, shows: []string{"deep code 26", "deep code 40"}, hides: []string{"```"}}, + {name: "fenced code in a list", block: "- item\n\n " + strings.ReplaceAll(fence, "\n", "\n "), shows: []string{"deep code 40"}, hides: []string{"```"}}, + {name: "indented code", block: " code\n" + strings.Repeat(" ", 34) + "deep code 30\n", shows: []string{"deep code 30"}}, + // Within a quote, a deep quote is code inside the fence. + {name: "quote in a fence in a quote", block: "> ```\n" + strings.Repeat("> ", 50) + "x\n", shows: []string{"> > >"}}, + + {name: "quote 13 deep", block: strings.Repeat("> ", 13) + "deep\n", deep: true, shows: []string{"> > >"}}, + {name: "quote 100 deep", block: strings.Repeat("> ", 100) + "deep\n", deep: true, shows: []string{"> > >"}}, + {name: "list 13 deep", block: strings.Repeat("- ", 13) + "deep\n", deep: true, shows: []string{"- - -"}}, + {name: "list 300 deep", block: strings.Repeat("- ", 300) + "deep\n", deep: true, shows: []string{"- - -"}}, + {name: "ordered list 13 deep", block: nestedList("1.", 13), deep: true, shows: []string{"1. item 12"}}, + {name: "mixed", block: strings.Repeat("> - 1. ", 30) + "deep\n", deep: true, shows: []string{"> - 1. > - 1."}}, + // A list item ends the code block of the item above, so the list + // that follows is not hidden in the fence. + {name: "list after an unclosed fence", block: "- ```\n" + nestedList("-", 13), deep: true, shows: []string{"- item 12"}}, + // Indented four columns, the fence is code and opens no block. + // Being indented, it joins the heading's block, and the fence takes + // in the rest of the file. + {name: "indented code is not a fence", block: " ```\n" + strings.Repeat("- ", 20) + "x\n", deep: true, whole: true, shows: []string{"- - -"}}, + } { + t.Run(c.name, func(t *testing.T) { + text := "# Title\n\n" + c.block + "\nAfter the *end*.\n" + tm := start(t, markdownRepo(t, text), opts{args: rendered}) + after := "After the end." + if c.whole { + after = "After the *end*." + } + s := tm.waitFor(append([]string{"Title", after}, c.shows...)...) + if !c.whole && strings.Contains(s, "# Title") { + t.Errorf("the heading shows as source. The screen shows:\n%s", s) + } + if got := strings.Contains(s, note); got != c.deep { + t.Errorf("the screen shows %q: %v, want %v. The screen shows:\n%s", note, got, c.deep, s) + } + if hasAny(s, c.hides...) { + t.Errorf("the screen shows one of %q. It shows:\n%s", c.hides, s) + } + }) + } +} + +// TestMarkdownLinkDefsTooLarge checks that link definitions that many +// references repeat do not freeze rendered Markdown. A file that would +// take too much work shows as source with a note, and a long definition is +// not added to the blocks that refer to it. +func TestMarkdownLinkDefsTooLarge(t *testing.T) { + t.Run("many references", func(t *testing.T) { + var b strings.Builder + b.WriteString("# Refs\n\n") + for i := range 3000 { + fmt.Fprintf(&b, "[d%d]\n\n", i%3) + } + for i := range 3 { + fmt.Fprintf(&b, "[d%d]: https://example.com/%s\n", i, strings.Repeat("a", 1900)) + } + tm := start(t, markdownRepo(t, b.String()), opts{args: rendered}) + tm.waitFor("README.md", "markdown too large to render", "# Refs") + }) + t.Run("long definition", func(t *testing.T) { + text := "# Refs\n\n" + strings.Repeat("See [d].\n\n", 1000) + + "[d]: https://example.com/" + strings.Repeat("a", 60000) + "\n" + tm := start(t, markdownRepo(t, text), opts{args: rendered}) + s := tm.waitFor("Refs", "See [d].") + if strings.Contains(s, "# Refs") || strings.Contains(s, "aaaa") { + t.Errorf("the file shows as source or with the long link. The screen shows:\n%s", s) + } + }) +} + +// prRepo returns a repository with a GitHub remote and a directory of +// fake tools whose gh prints a pull request with the given body. +func prRepo(t *testing.T, body string) (repo, bin string) { + t.Helper() + repo = newRepo(t) + testgit.Git(t, repo, "remote", "add", "origin", "https://github.com/o/r.git") + data, err := json.Marshal(map[string]any{ + "number": 7, "title": "Hostile PR", "state": "OPEN", "url": "https://github.com/o/r/pull/7", + "body": body, "author": map[string]string{"login": "ann"}, + "headRefName": "feat", "baseRefName": "main", + }) + if err != nil { + t.Fatal(err) + } + bin = tools(t, map[string]string{"gh": `cat "${0%/*}/pr.json"` + "\n"}) + if err := os.WriteFile(filepath.Join(bin, "pr.json"), data, 0o600); err != nil { + t.Fatal(err) + } + return repo, bin +} + +// TestPRMarkdownTooHard checks that the PR tab shows a body that nests too +// deeply, or that repeats a long link definition too often, as source +// instead of freezing. +func TestPRMarkdownTooHard(t *testing.T) { + for name, c := range map[string]struct{ body, note string }{ + "deep quote": {strings.Repeat("> ", 100) + "deep", "text nested too deeply to render"}, + "deep list": {strings.Repeat("- ", 300) + "deep", "text nested too deeply to render"}, + "references": { + strings.Repeat("[d] ", 2000) + "\n\n[d]: https://example.com/" + strings.Repeat("a", 5000), + "text too large to render", + }, + } { + t.Run(name, func(t *testing.T) { + repo, bin := prRepo(t, c.body) + tm := start(t, repo, opts{path: bin}) + tm.keys("3") + tm.waitFor("Hostile PR #7", c.note) + }) + } +} + +// TestPRTooLarge checks that the PR tab cuts long comments, with a note +// to open the PR, and that thousands of
tags in them do not +// stop the tab from showing. +func TestPRTooLarge(t *testing.T) { + repo := newRepo(t) + testgit.Git(t, repo, "remote", "add", "origin", "https://github.com/o/r.git") + hostile := strings.Repeat("
", 3600) // 65 KB + var comments []map[string]any + for i := range 20 { + comments = append(comments, map[string]any{ + "author": map[string]string{"login": fmt.Sprint("user", i)}, "body": hostile, + "createdAt": "2024-01-01T00:00:00Z", + }) + } + data, err := json.Marshal(map[string]any{ + "number": 7, "title": "Big PR", "state": "OPEN", "url": "https://github.com/o/r/pull/7", + "body": "The body.", "author": map[string]string{"login": "ann"}, + "headRefName": "feat", "baseRefName": "main", "comments": comments, + }) + if err != nil { + t.Fatal(err) + } + bin := tools(t, map[string]string{"gh": `cat "${0%/*}/pr.json"` + "\n"}) + if err := os.WriteFile(filepath.Join(bin, "pr.json"), data, 0o600); err != nil { + t.Fatal(err) + } + tm := start(t, repo, opts{path: bin}) + tm.keys("3") + s := tm.waitFor("Big PR #7", "The body.", "user0", "… truncated · o to open in browser") + if strings.Contains(s, "
") { + t.Errorf("the comments show their tags. The screen shows:\n%s", s) + } +} + +// TestTallLine checks that page down, half page down and down move +// through the rows of a wrapped line taller than the screen, and then on +// to the next line. +func TestTallLine(t *testing.T) { + repo := newRepo(t) + testgit.Git(t, repo, "checkout", "--", "long.txt") + var b strings.Builder + b.WriteString("package a\n\n// START") + for i := range 4000 { + fmt.Fprintf(&b, " w%d", i) + } + b.WriteString(" THE-END\nvar next = 1\n") + testgit.WriteFile(t, repo, "a.go", b.String()) + log := filepath.Join(t.TempDir(), "log") + tm := start(t, repo, opts{args: []string{"-log", log}}) + // A frame that is partly drawn has no footer, a gap in the words, or a + // blank last line where the terminal scrolled the old lines up. + whole := func(s string) bool { + last, _, _ := strings.Cut(lastBodyLine(s), "│") + return strings.Contains(s, "q quit") && wordsInOrder(s) && strings.TrimSpace(last) != "" + } + // The file list gets wider when the line counts arrive, which wraps + // the line again, so wait for them first. + s := tm.waitUntil(func(s string) bool { + return strings.Contains(s, "// START") && sameLine(s, "M a.go", "+2 -3") && whole(s) + }, "show the start of the line and its counts") + // The line takes about 200 rows. Each half page moves the view. + for i := 1; !strings.Contains(s, "THE-END"); i++ { + if i == 40 { + t.Fatalf("40 half pages do not reach the end of the line. The screen shows:\n%s", s) + } + tm.keys("ctrl+d") + // Wait until rexdiff has read the key, and then for its frame. + waitFile(t, log, fmt.Sprintf("%d keys", i), func(l string) bool { return strings.Count(l, "msg=key") == i }) + prev := s + s = tm.waitUntil(func(s string) bool { return s != prev && whole(s) }, "move the view") + } + if strings.Contains(s, "// START") || strings.Contains(s, "var next") { + t.Errorf("the screen shows more than the end of the line:\n%s", s) + } + tm.keys("pgup") + tm.waitGone("THE-END") + tm.keys("pgdown") + tm.waitFor("THE-END") + tm.keys("j") + tm.waitCursor("var next") +} + +// lastBodyLine returns the line above the footer of screen s. +func lastBodyLine(s string) string { + lines := strings.Split(strings.TrimRight(s, "\n "), "\n") + if len(lines) < 2 { + return "" + } + return lines[len(lines)-2] +} + +// wordsInOrder reports whether the words w0, w1, … on screen s follow +// each other with no gap. +func wordsInOrder(s string) bool { + words := regexp.MustCompile(`\bw(\d+)\b`).FindAllStringSubmatch(s, -1) + for i := 1; i < len(words); i++ { + prev, _ := strconv.Atoi(words[i-1][1]) + n, _ := strconv.Atoi(words[i][1]) + if n != prev+1 { + return false + } + } + return len(words) > 0 +} diff --git a/test/checks_test.go b/test/checks_test.go new file mode 100644 index 0000000..3b9c839 --- /dev/null +++ b/test/checks_test.go @@ -0,0 +1,37 @@ +package test + +import ( + "regexp" + "testing" + + "github.com/rednafi/rexdiff/internal/testgit" +) + +// TestPRManyChecks checks that the PR tab counts every check, not only the +// 100 that it keeps, and names the failures past the first 100 checks: +// gh reports 100 passing checks and then 150 failing ones. +func TestPRManyChecks(t *testing.T) { + repo := newRepo(t) + testgit.Git(t, repo, "remote", "add", "origin", "https://github.com/o/r.git") + bin := tools(t, map[string]string{ + "gh": `printf '{"number": 7, "title": "Many checks", "state": "OPEN", "statusCheckRollup": [' +i=0 +while [ $i -lt 250 ]; do + c=SUCCESS + [ $i -ge 100 ] && c=FAILURE + [ $i -gt 0 ] && printf ',' + printf '{"name": "check%d", "conclusion": "%s"}' $i $c + i=$((i + 1)) +done +printf ']}' +`, + }) + // The terminal is tall enough for the whole list. + tm := start(t, repo, opts{path: bin, height: 120}) + tm.keys("3") + s := tm.waitFor("Many checks #7", "checks: ✓ 100 ✗ 150 ◌ 0", + "✗ check100", "✗ check199", "… 50 more failed checks") + if regexp.MustCompile(`check(99|200)\b`).MatchString(s) { + t.Errorf("the PR tab lists a passing check or more than 100 checks. The screen shows:\n%s", s) + } +} diff --git a/test/config_test.go b/test/config_test.go new file mode 100644 index 0000000..0b5350f --- /dev/null +++ b/test/config_test.go @@ -0,0 +1,159 @@ +package test + +import ( + "cmp" + "encoding/json/v2" + "regexp" + "strings" + "testing" +) + +// actionNames lists every action that the keybindings setting accepts. +// alias is a former rexdiff name that the setting also accepts, or "". +var actionNames = []struct{ name, alias string }{ + {"down", ""}, + {"up", ""}, + {"next-hunk", ""}, + {"prev-hunk", ""}, + {"next-file", ""}, + {"prev-file", ""}, + {"collapse", ""}, + {"expand", ""}, + {"page-up", ""}, + {"page-down", ""}, + {"half-up", ""}, + {"half-down", ""}, + {"focus", ""}, + {"scope-uncommitted", ""}, + {"scope-branch", ""}, + {"scope-last-turn", ""}, + {"scope-commits", ""}, + {"base-pick", ""}, + {"commit-pick", ""}, + {"tab-changes", ""}, + {"tab-all-files", ""}, + {"tab-pr", ""}, + {"wrap", ""}, + {"rendered", "preview"}, + {"split", ""}, + {"navigator-position", ""}, + {"navigator-hide", ""}, + {"navigator-grow", "list-wider"}, + {"navigator-shrink", "list-narrower"}, + {"select", ""}, + {"comment", ""}, + {"edit", ""}, + {"delete", ""}, + {"next-comment", ""}, + {"prev-comment", ""}, + {"comments", ""}, + {"search", ""}, + {"find", ""}, + {"goto-line", ""}, + {"keys", ""}, + {"send", ""}, + {"copy", ""}, + {"open-pr", ""}, + {"refresh", ""}, + {"quit", ""}, + {"quit-discard", ""}, +} + +// actionKeys holds the keys that TestConfigNames binds, one for each +// action in actionNames, in order. It leaves out U, which is always the +// update key. +const actionKeys = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTVWXYZ" + +// TestConfigNames checks that a config that uses the action names, or +// their aliases, binds every key and sets the position and width of the +// file list. It checks the key bindings through the help screen. +func TestConfigNames(t *testing.T) { + keyOf := map[string]string{} + for i, a := range actionNames { + keyOf[a.name] = actionKeys[i : i+1] + } + // Each help entry lists the keys followed by a label. Some labels + // cover two or three actions, such as "next/prev file". + k := func(names ...string) string { + keys := make([]string, len(names)) + for i, n := range names { + keys[i] = keyOf[n] + } + return strings.Join(keys, "/") + } + help := [][2]string{ + {k("down", "up"), "move"}, + {k("half-down", "half-up"), "half page"}, + {k("next-hunk", "prev-hunk"), "next/prev change"}, + {k("next-file", "prev-file"), "next/prev file"}, + {k("focus"), "switch pane"}, + {k("collapse", "expand"), "scroll sideways"}, + {k("goto-line"), "go to line"}, + {k("tab-changes", "tab-all-files", "tab-pr"), "changes/files/PR"}, + {k("scope-uncommitted"), "uncommitted"}, + {k("scope-branch"), "branch"}, + {k("scope-last-turn"), "last turn"}, + {k("scope-commits"), "commits"}, + {k("base-pick"), "pick base branch"}, + {k("commit-pick"), "pick commits"}, + {k("select"), "select lines"}, + {k("comment"), "comment"}, + {k("edit"), "edit comment/open editor"}, + {k("delete"), "delete comment"}, + {k("next-comment", "prev-comment"), "next/prev comment"}, + {k("comments"), "list comments"}, + {k("send"), "send to agent"}, + {k("copy"), "copy comments"}, + {k("search"), "search files and code"}, + {k("find"), "find in file"}, + {k("rendered"), "rendered markdown"}, + {k("split"), "side by side"}, + {k("wrap"), "wrap lines"}, + {k("navigator-position"), "move list"}, + {k("navigator-hide"), "hide list"}, + {k("navigator-grow", "navigator-shrink"), "resize list"}, + {k("open-pr"), "open PR in browser"}, + {k("refresh"), "refresh"}, + {k("keys"), "all keys"}, + {k("quit"), "quit"}, + } + var res []*regexp.Regexp + for _, h := range help { + res = append(res, regexp.MustCompile(`(^|\s)`+regexp.QuoteMeta(h[0])+` +`+regexp.QuoteMeta(h[1]))) + } + for _, names := range []string{"names", "aliases"} { + t.Run(names, func(t *testing.T) { + kb := map[string][]string{} + for _, a := range actionNames { + name := a.name + if names == "aliases" { + name = cmp.Or(a.alias, a.name) + } + kb[name] = []string{keyOf[a.name]} + } + b, err := json.Marshal(map[string]any{ + "keybindings": kb, "file_list": "left", "file_list_width": 50, "url_opener": "opener {url}", + }) + if err != nil { + t.Fatal(err) + } + tm := start(t, newRepo(t), opts{width: 220, args: []string{"-config", string(b)}}) + s := tm.waitFor("Changes (2)") + if c := column(s, "Changes (2)"); c < 0 || c > 5 { + t.Errorf("the file list starts at column %d, want it at the left", c) + } + if ls := lines(s, "M a.go"); len(ls) == 0 || column(ls[0], "│") < 48 || column(ls[0], "│") > 52 { + t.Errorf("the file list rows %q, want a width of 50", ls) + } + tm.keys(keyOf["keys"]) + tm.waitUntil(func(s string) bool { + for _, re := range res { + if !re.MatchString(s) { + return false + } + } + return true + }, "show the keys of the config in the help") + }) + } +} diff --git a/test/limits_test.go b/test/limits_test.go new file mode 100644 index 0000000..428a0ee --- /dev/null +++ b/test/limits_test.go @@ -0,0 +1,144 @@ +package test + +import ( + "fmt" + "path/filepath" + "slices" + "strings" + "testing" + + "github.com/rednafi/rexdiff/internal/proc" + "github.com/rednafi/rexdiff/internal/testgit" +) + +// fastImport runs git fast-import in repo with stream as its input. +func fastImport(t *testing.T, repo, stream string) { + t.Helper() + cmd := proc.Command(t.Context(), testgit.ToolEnv(t), "git", "fast-import", "--quiet") + cmd.Dir = repo + cmd.Stdin = strings.NewReader(stream) + if out, err := cmd.CombinedOutput(); err != nil { + t.Fatalf("git fast-import: %v: %s", err, out) + } +} + +// TestTooManyChanges checks that the Changes tab names the number of +// changed files, without listing them, when there are too many. The +// files are committed but missing from the working tree, so the test +// writes no files. +func TestTooManyChanges(t *testing.T) { + repo := newRepo(t) + head := strings.TrimSpace(testgit.Git(t, repo, "rev-parse", "HEAD")) + var b strings.Builder + fmt.Fprintf(&b, "blob\nmark :1\ndata 2\nx\n\ncommit refs/heads/feat\n"+ + "committer a 0 +0000\ndata 4\nmany\nfrom %s\n", head) + for i := range 20_001 { + fmt.Fprintf(&b, "M 100644 :1 many/%d\n", i) + } + fastImport(t, repo, b.String()+"\n") + testgit.Git(t, repo, "read-tree", "HEAD") + tm := start(t, repo, opts{}) + // The two changes of the fixture make 20,003. + tm.waitFor("20003 files changed — too many to show", "Changes (20003)") +} + +// TestCommitPickerLimit checks that the commit picker lists at most 1,000 +// commits over the base, and says so in its title. +func TestCommitPickerLimit(t *testing.T) { + repo := newRepo(t) + head := strings.TrimSpace(testgit.Git(t, repo, "rev-parse", "HEAD")) + var b strings.Builder + for i := range 1000 { + fmt.Fprintf(&b, "commit refs/heads/feat\ncommitter a %d +0000\ndata 8\nc %05d\n", i, i) + if i == 0 { + fmt.Fprintf(&b, "from %s\n", head) + } + } + fastImport(t, repo, b.String()) + tm := start(t, repo, opts{}) + tm.keys("g") + tm.waitFor("commits · newest 1000 over main", "c 00999") +} + +// TestFindQueryLimit checks that the find bar stops taking characters +// once the query holds 256. +func TestFindQueryLimit(t *testing.T) { + tm := start(t, newRepo(t), opts{}) + tm.keys("f", "ctrl+f") + tm.paste(strings.Repeat("x", 300)) + tm.waitFor("find xxxxxxxx", "no matches") + // If the query held more than 256 characters, some would remain. + tm.keys(slices.Repeat([]string{"bs"}, 256)...) + tm.typed("line 3") + tm.waitUntil(func(s string) bool { return sameLine(s, "find line 3", " 11") }, + "count 11 lines") +} + +// TestFindInLongLine checks that find shows a match far into a long line: +// by scrolling sideways, or when lines wrap and the line is taller than +// the screen, by scrolling down through it. +func TestFindInLongLine(t *testing.T) { + for _, wrap := range []string{"off", "on"} { + t.Run("wrap="+wrap, func(t *testing.T) { + repo := newRepo(t) + testgit.Git(t, repo, "checkout", "--", "long.txt") + testgit.WriteFile(t, repo, "a.go", + "package a\n\n// start "+strings.Repeat("word ", 2000)+"NEEDLE end\nvar x = 1\n") + tm := start(t, repo, opts{height: 20, args: []string{"-wrap", wrap}}) + tm.waitFor("// start") + tm.waitGone("NEEDLE") + tm.keys("ctrl+f") + tm.typed("needle") + tm.keys("enter") + tm.waitFor("NEEDLE end") + }) + } +} + +// TestClickFindBarShortScreen checks that on a screen too short for the +// body, a click on the find bar does not count as a click on the code +// above it, which would move the cursor. +func TestClickFindBarShortScreen(t *testing.T) { + tm := start(t, newRepo(t), opts{height: 4}) + tm.keys("ctrl+f") + before := strings.Split(tm.waitFor("find "), "\n") + tm.click("find ", 1) + tm.typed("z") + after := strings.Split(tm.waitFor("find z"), "\n") + if before[2] != after[2] { + t.Errorf("the code line changed from %q to %q", before[2], after[2]) + } +} + +// cursorLine returns the line of s with the cursor ▶, or "". +func cursorLine(s string) string { + for l := range strings.Lines(s) { + if strings.Contains(l, "▶") { + return strings.TrimRight(l, "\n") + } + } + return "" +} + +// TestCursorShortScreen checks that on a screen with room for only one +// row of code, the cursor row stays on screen after each key that moves +// the cursor. +func TestCursorShortScreen(t *testing.T) { + repo := filepath.Join(t.TempDir(), "repo") + testgit.InitRepo(t, repo) + testgit.WriteFile(t, repo, "u.txt", numbered("line", 1, 40)) + testgit.Git(t, repo, "add", ".") + testgit.Git(t, repo, "commit", "-qm", "first") + tm := start(t, repo, opts{width: 40, height: 4}) + tm.keys("2") + tm.waitCursor("line 1") + prev := cursorLine(tm.screen()) + for _, k := range []string{"down", "down", "ctrl+d", "up", "pgdown", "j"} { + tm.keys(k) + s := tm.waitUntil(func(s string) bool { + l := cursorLine(s) + return l != "" && l != prev + }, "show the cursor row after "+k) + prev = cursorLine(s) + } +} diff --git a/test/log_test.go b/test/log_test.go new file mode 100644 index 0000000..357c8e2 --- /dev/null +++ b/test/log_test.go @@ -0,0 +1,52 @@ +package test + +import ( + "os" + "path/filepath" + "strings" + "testing" +) + +// TestLogPrivate checks that -log creates a log file that only the user can +// read, and that the log names the keys that the user presses but not the +// text typed into the comment box or the find bar. +func TestLogPrivate(t *testing.T) { + log := filepath.Join(t.TempDir(), "log") + tm := start(t, newRepo(t), opts{args: []string{"-log", log}}) + tm.keys("]", "c") + tm.typed("hunter2") + tm.keys("enter") + tm.waitFor("💬 hunter2") + tm.keys("/") + tm.waitFor("no preview") + tm.typed("swordfish") + tm.waitFor("› swordfish", "no matches") + tm.keys("esc") + tm.waitGone("› swordfish") + tm.keys("q", "Q") + if err := tm.exited(); err != nil { + t.Fatal(err) + } + info, err := os.Stat(log) + if err != nil { + t.Fatal(err) + } + if perm := info.Mode().Perm(); perm != 0o600 { + t.Errorf("the log has mode %v, want -rw-------", perm) + } + b, err := os.ReadFile(log) + if err != nil { + t.Fatal(err) + } + s := string(b) + for _, want := range []string{"key=]", "key=c", "key=enter", "key=text"} { + if !strings.Contains(s, want) { + t.Errorf("the log has no %q. It holds:\n%s", want, s) + } + } + for _, secret := range []string{"key=h", "key=2", "key=s", "key=w"} { + if strings.Contains(s, secret+" ") { + t.Errorf("the log has %q, a key typed as text. It holds:\n%s", secret, s) + } + } +} From 0004de4bcbcfe0080fadf784736f0917df5871ba Mon Sep 17 00:00:00 2001 From: Redowan Delowar Date: Thu, 29 Oct 2026 18:15:11 +0100 Subject: [PATCH 3/5] test: time rexdiff on large repositories, and add library benchmarks - test/perf_test.go times start-up, keys, reloads, memory and idle CPU. It runs only if REXDIFF_PERF names a directory. - Benchmarks for vcs and the file tree. --- internal/tree/bench_test.go | 19 + test/perf_test.go | 758 ++++++++++++++++++++++++++++++++++++ vcs/bench_test.go | 64 +++ 3 files changed, 841 insertions(+) create mode 100644 internal/tree/bench_test.go create mode 100644 test/perf_test.go create mode 100644 vcs/bench_test.go diff --git a/internal/tree/bench_test.go b/internal/tree/bench_test.go new file mode 100644 index 0000000..267abe0 --- /dev/null +++ b/internal/tree/bench_test.go @@ -0,0 +1,19 @@ +package tree_test + +import ( + "fmt" + "testing" + + "github.com/rednafi/rexdiff/internal/tree" +) + +// BenchmarkBuild measures building the rows for a list of 3,000 files. +func BenchmarkBuild(b *testing.B) { + es := make([]tree.Entry, 3000) + for i := range es { + es[i] = tree.Entry{Path: fmt.Sprintf("src/mod%02d/part%d/f%04d.go", i%60, i%5, i), Changed: i%300 == 0} + } + for b.Loop() { + tree.Build(es, nil, true) + } +} diff --git a/test/perf_test.go b/test/perf_test.go new file mode 100644 index 0000000..b03dd37 --- /dev/null +++ b/test/perf_test.go @@ -0,0 +1,758 @@ +package test + +// The tests in this file measure rexdiff on large repositories, which +// they keep in the directory REXDIFF_PERF and generate if missing. They +// run only if REXDIFF_PERF is set. REXDIFF_PERF_OUT names a file to append +// "repositoryscenariovalue" lines to, and REXDIFF_PERF_BIN +// another rexdiff binary to measure. +// +// REXDIFF_PERF=/tmp/rexdiff-perf REXDIFF_PERF_OUT=/tmp/perf.tsv \ +// go test ./test -run TestPerf -count=1 -v -timeout 60m +// +// A time runs from the input to the last screen change before quietDelay +// without changes. RSS is in MB and CPU use in percent. + +import ( + "fmt" + "math/rand/v2" + "os" + "os/exec" + "path/filepath" + "slices" + "strconv" + "strings" + "sync" + "testing" + "time" + + "github.com/charmbracelet/x/vt" + + "github.com/rednafi/rexdiff/internal/testgit" +) + +// quietDelay is how long the screen must stay unchanged to count as +// settled. +const quietDelay = 1200 * time.Millisecond + +// settleTimeout is the longest time to wait for the screen to settle. +const settleTimeout = 5 * time.Minute + +// perfOut is the file named by REXDIFF_PERF_OUT, once it is open. +var perfOut struct { + sync.Mutex + f *os.File +} + +// perfRepo returns the path of the repository called name in the +// REXDIFF_PERF directory, generating it first if it does not exist. It +// skips t if REXDIFF_PERF is not set or the race detector is on. +func perfRepo(t *testing.T, name string) string { + t.Helper() + dir := os.Getenv("REXDIFF_PERF") + if dir == "" { + t.Skip("REXDIFF_PERF is not set") + } + if raceOn { + t.Skip("the race detector makes the times wrong") + } + repo := filepath.Join(dir, name) + if _, err := os.Stat(filepath.Join(repo, ".git")); err == nil { + return repo + } + gen, ok := perfRepos[strings.TrimSuffix(name, "-branch")] + if !ok { + t.Fatalf("no repository %s", name) + } + main := filepath.Join(dir, strings.TrimSuffix(name, "-branch")) + for _, d := range []string{main, main + "-branch"} { + if err := os.RemoveAll(d); err != nil { + t.Fatal(err) + } + } + if err := os.MkdirAll(main, 0o755); err != nil { + t.Fatal(err) + } + testgit.InitRepo(t, main) + gen(t, main) + return repo +} + +// perfRepos maps each repository name to the function that fills dir, a +// new empty git repository, with that repository's content. +var perfRepos = map[string]func(t *testing.T, dir string){ + "go7k": genGo7k, + "big50k": func(t *testing.T, dir string) { t.Helper(); genScattered(t, dir, goLines(50_000, "")) }, + "big200k": func(t *testing.T, dir string) { t.Helper(); genScattered(t, dir, shortLines(200_000)) }, + "rewrite20k": genRewrite20k, + "xxl": genXXL, // also creates xxl-branch + "md5mb": func(t *testing.T, dir string) { t.Helper(); genMarkdown(t, dir, 5<<20, 997) }, + "md400k": func(t *testing.T, dir string) { t.Helper(); genMarkdown(t, dir, 400<<10, 397) }, + "files3k": genFiles3k, +} + +// commitAll stages and commits every file in dir. +func commitAll(t *testing.T, dir string) { + t.Helper() + testgit.Git(t, dir, "add", "-A") + testgit.Git(t, dir, "commit", "-q", "--no-verify", "-m", "base") +} + +// goLines returns n lines of Go code. Most lines i, counting from 1, end +// with the marker L, so a test can find them on the screen. tag is +// added to the function names so they differ between files. +func goLines(n int, tag string) []string { + ls := make([]string, 0, n) + ls = append(ls, "package big", "") + for i := 3; i <= n; i++ { + switch i % 20 { + case 3: + ls = append(ls, fmt.Sprintf("func %sf%d(x int) int { // L%d", tag, i, i)) + case 19: + ls = append(ls, fmt.Sprintf("\treturn x // L%d", i)) + case 0: + ls = append(ls, "}") + default: + ls = append(ls, fmt.Sprintf("\tx += compute(%d, \"s%d\") // L%d", i, i*7, i)) + } + } + return ls[:n] +} + +// shortLines returns n short lines of Go code, with the same markers as +// goLines. 200,000 lines take about 4 MB. +func shortLines(n int) []string { + ls := goLines(n, "") + for i, l := range ls { + if strings.Contains(l, "compute(") { + ls[i] = fmt.Sprintf("\tx += %d // L%d", i+1, i+1) + } + } + return ls +} + +// mutate returns a copy of ls with about the fraction frac of its lines +// changed, in runs of 1 to 8 lines. A changed line has the marker M +// instead of L. Some lines are deleted, and some new lines are +// inserted. +func mutate(ls []string, frac float64, r *rand.Rand) []string { + out := make([]string, 0, len(ls)) + // A run is 4.5 lines long on average. + p := frac / 4.5 / (1 - frac) + for i := 0; i < len(ls); i++ { + if r.Float64() >= p { + out = append(out, ls[i]) + continue + } + run := 1 + r.IntN(8) + for k := 0; k < run && i < len(ls); k++ { + l := ls[i] + switch r.IntN(10) { + case 0: // delete the line + case 1: // insert a new line before it + out = append(out, fmt.Sprintf("\tlog.Printf(\"inserted %d\") // I%d", i, i), l) + default: + out = append(out, strings.ReplaceAll(strings.Replace(l, "compute", "recompute", 1), "// L", "// M")) + } + i++ + } + i-- + } + return out +} + +// join joins the lines, ending each with a newline. +func join(ls []string) string { return strings.Join(ls, "\n") + "\n" } + +// genGo7k creates a 7,000-line Go file with about 30% of its lines +// changed, and a small file with one edit. The changes are left +// uncommitted. +func genGo7k(t *testing.T, dir string) { + t.Helper() + old := goLines(7000, "") + testgit.WriteFile(t, dir, "big.go", join(old)) + testgit.WriteFile(t, dir, "small.go", "package big\n\nfunc small() {}\n") + commitAll(t, dir) + r := rand.New(rand.NewPCG(1, 7)) //nolint:gosec // a fixed seed makes the files reproducible + testgit.WriteFile(t, dir, "big.go", join(mutate(old, 0.30, r))) + testgit.WriteFile(t, dir, "small.go", "package big\n\nfunc small() { println() }\n") +} + +// genScattered commits the file huge.go with the lines old, then changes +// 200 lines at random places without committing. +func genScattered(t *testing.T, dir string, old []string) { + t.Helper() + testgit.WriteFile(t, dir, "huge.go", join(old)) + commitAll(t, dir) + r := rand.New(rand.NewPCG(2, uint64(len(old)))) //nolint:gosec // a fixed seed makes the files reproducible + ls := slices.Clone(old) + for range 200 { + i := 2 + r.IntN(len(ls)-2) + ls[i] = strings.ReplaceAll(ls[i], "// L", "// M") + } + testgit.WriteFile(t, dir, "huge.go", join(ls)) +} + +// genRewrite20k commits a 20,000-line file, then changes every line +// without committing. +func genRewrite20k(t *testing.T, dir string) { + t.Helper() + testgit.WriteFile(t, dir, "rewrite.go", join(goLines(20000, "a"))) + commitAll(t, dir) + ls := goLines(20000, "b") + for i := range ls { + ls[i] = strings.ReplaceAll(strings.ReplaceAll(ls[i], "compute", "other"), "// L", "// N") + } + testgit.WriteFile(t, dir, "rewrite.go", join(ls)) +} + +// genXXL creates a pull request-sized change: 2,000 changed files of 200 +// to 2,000 lines each, about 450,000 changed lines in total. In xxl the +// changes are uncommitted. In xxl-branch they are committed on the branch +// feature, with main as the base. +func genXXL(t *testing.T, dir string) { + t.Helper() + r := rand.New(rand.NewPCG(4, 2000)) //nolint:gosec // a fixed seed makes the files reproducible + type file struct { + name string + old []string + } + files := make([]file, 2000) + for i := range files { + n := 200 + r.IntN(1801) + name := fmt.Sprintf("pkg%02d/sub%d/file%04d.go", i%40, i%7, i) + files[i] = file{name, goLines(n, fmt.Sprintf("p%d", i))} + testgit.WriteFile(t, dir, name, join(files[i].old)) + } + commitAll(t, dir) + for _, f := range files { + testgit.WriteFile(t, dir, f.name, join(mutate(f.old, 0.23, r))) + } + branch := dir + "-branch" + copyDir(t, dir, branch) + testgit.Git(t, branch, "checkout", "-q", "-b", "feature") + commitAll(t, branch) +} + +// markdown returns about size bytes of Markdown lines with headings, +// lists, code blocks, tables and links. +func markdown(size int) []string { + var ls []string + n := 0 + for i := 0; n < size; i++ { + block := []string{ + fmt.Sprintf("## Section %d", i), + "", + fmt.Sprintf("Paragraph %d with **bold**, _italic_, `code`, and a [link][ref%d]. %s", + i, i%50, strings.Repeat("Lorem ipsum dolor sit amet. ", 4)), + "", + fmt.Sprintf("- item %d.1", i), + fmt.Sprintf("- item %d.2", i), + "", + "```go", + fmt.Sprintf("func s%d() int { return %d }", i, i), + "```", + "", + "| a | b |", + "|---|---|", + fmt.Sprintf("| %d | %d |", i, i*2), + "", + } + for _, l := range block { + n += len(l) + 1 + } + ls = append(ls, block...) + } + for i := range 50 { + ls = append(ls, fmt.Sprintf("[ref%d]: https://example.com/%d", i, i)) + } + return ls +} + +// genMarkdown commits a README.md of about size bytes, then edits each +// line whose index is a multiple of every, without committing. +func genMarkdown(t *testing.T, dir string, size, every int) { + t.Helper() + old := markdown(size) + testgit.WriteFile(t, dir, "README.md", join(old)) + commitAll(t, dir) + ls := slices.Clone(old) + for i := 0; i < len(ls); i += every { + ls[i] += " (edited)" + } + testgit.WriteFile(t, dir, "README.md", join(ls)) +} + +// genFiles3k commits 3,000 files, then changes 10 of them without +// committing. +func genFiles3k(t *testing.T, dir string) { + t.Helper() + r := rand.New(rand.NewPCG(5, 3000)) //nolint:gosec // a fixed seed makes the files reproducible + name := func(i int) string { return fmt.Sprintf("src/mod%02d/part%d/f%04d.go", i%60, i%5, i) } + for i := range 3000 { + testgit.WriteFile(t, dir, name(i), join(goLines(50+r.IntN(300), fmt.Sprintf("g%d", i)))) + } + commitAll(t, dir) + for i := 0; i < 3000; i += 300 { + b, err := os.ReadFile(filepath.Join(dir, name(i))) + if err != nil { + t.Fatal(err) + } + testgit.WriteFile(t, dir, name(i), string(b)+"// tail edit\n") + } +} + +// recordTime records the duration d in milliseconds; see [record]. +func recordTime(t *testing.T, repo, scenario string, d time.Duration) { + t.Helper() + record(t, repo, scenario, float64(d.Microseconds())/1000) +} + +// record logs one measurement, v, and appends it to the REXDIFF_PERF_OUT +// file, if set. +func record(t *testing.T, repo, scenario string, v float64) { + t.Helper() + t.Logf("PERF %-12s %-36s %10.1f", repo, scenario, v) + path := os.Getenv("REXDIFF_PERF_OUT") + if path == "" { + return + } + perfOut.Lock() + defer perfOut.Unlock() + if perfOut.f == nil { + f, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0o644) + if err != nil { + t.Fatal(err) + } + perfOut.f = f + } + fmt.Fprintf(perfOut.f, "%s\t%s\t%.1f\n", repo, scenario, v) +} + +// drain discards a pending screen change notification, if any. +func (tm *term) drain() { + select { + case <-tm.changed: + default: + } +} + +// settle waits until the screen has not changed for quietDelay. It +// returns the time of the last change, or since if nothing changed, and +// the screen. +func (tm *term) settle(since time.Time) (time.Time, string) { + tm.t.Helper() + return tm.settleFrom(since, tm.screen(), quietDelay, false) +} + +// settleFrom is like settle, but prev is the screen before the input and +// first is the longest time to wait for the first change. If +// ignoreLastLine is set, changes to the last line of the screen, where the +// find bar shows a blinking cursor, do not count. +func (tm *term) settleFrom(since time.Time, prev string, first time.Duration, ignoreLastLine bool) (time.Time, string) { + tm.t.Helper() + last := since + prev = withoutBlink(prev, ignoreLastLine) + limit := time.NewTimer(settleTimeout) + defer limit.Stop() + q := time.NewTimer(first) + defer q.Stop() + for { + select { + case <-tm.changed: + // A write that does not change the text, such as a colour query, + // does not count. + if s := withoutBlink(tm.screen(), ignoreLastLine); s != prev { + last, prev = time.Now(), s + q.Reset(quietDelay) + } + case <-q.C: + return last, tm.screen() + case <-tm.done: + tm.t.Fatalf("rexdiff stops. The screen shows:\n%s", tm.screen()) + case <-limit.C: + tm.t.Fatalf("the screen does not settle. It shows:\n%s", tm.screen()) + } + } +} + +// withoutBlink returns the screen s, without its last line if +// ignoreLastLine is set. +func withoutBlink(s string, ignoreLastLine bool) string { + if !ignoreLastLine { + return s + } + s = strings.TrimRight(s, "\n") + if i := strings.LastIndexByte(s, '\n'); i >= 0 { + return s[:i] + } + return s +} + +// changeTimeout is the longest time to wait for the screen to start +// changing after an input. +const changeTimeout = 15 * time.Second + +// waitForText waits up to settleTimeout until the screen shows text. +func (tm *term) waitForText(text string) { + tm.t.Helper() + limit := time.NewTimer(settleTimeout) + defer limit.Stop() + for !strings.Contains(tm.screen(), text) { + select { + case <-tm.changed: + case <-time.After(50 * time.Millisecond): + case <-limit.C: + tm.t.Fatalf("the screen does not show %q", text) + } + } +} + +// measure runs act and records how long the screen takes to settle +// afterwards. It returns the settled screen. +func (tm *term) measure(repo, scenario string, act func()) string { + tm.t.Helper() + return tm.measureScreen(repo, scenario, false, act) +} + +// measureFind is like measure, but ignores the last line of the screen, +// where the find bar shows a blinking cursor. +func (tm *term) measureFind(repo, scenario string, act func()) string { + tm.t.Helper() + return tm.measureScreen(repo, scenario, true, act) +} + +// measureScreen implements measure and measureFind. +func (tm *term) measureScreen(repo, scenario string, ignoreLastLine bool, act func()) string { + tm.t.Helper() + // Start from a screen that is not changing. + tm.settleFrom(time.Now(), tm.screen(), quietDelay, ignoreLastLine) + tm.drain() + t0 := time.Now() + prev := tm.screen() + act() + last, s := tm.settleFrom(t0, prev, changeTimeout, ignoreLastLine) + if last.Equal(t0) { + tm.t.Logf("PERF %s %s: the screen does not change", repo, scenario) + } + recordTime(tm.t, repo, scenario, last.Sub(t0)) + return s +} + +// repeat returns n copies of k. +func repeat(k string, n int) []string { + return slices.Repeat([]string{k}, n) +} + +// perfRun is a rexdiff process that a performance test measures. +type perfRun struct { + *term +} + +// startPerf starts rexdiff on repo in a 200 by 50 terminal, and records +// the time until the first screen and until rexdiff responds to the first +// key. +func startPerf(t *testing.T, name, repo string, o opts) *perfRun { + t.Helper() + o.width, o.height = 200, 50 + o.bin = os.Getenv("REXDIFF_PERF_BIN") + if o.bin == "" { + o.bin = binary(t) // build before starting the clock + } + t0 := time.Now() + tm := start(t, repo, o) // start waits for the first frame + recordTime(t, name, "first screen", time.Since(t0)) + // The first screen can appear while rexdiff is still busy, for example + // handling terminal replies. Its response to a key shows when it is + // really ready. + prev := tm.screen() + tm.drain() + tm.keys("j") + last, _ := tm.settleFrom(t0, prev, changeTimeout, false) + recordTime(t, name, "first key answered (from start)", last.Sub(t0)) + tm.keys("k") + tm.settle(time.Now()) + return &perfRun{term: tm} +} + +// pid returns the process ID of the running rexdiff, a child of the test +// process. +func pid(t *testing.T) string { + t.Helper() + out, err := exec.CommandContext(t.Context(), "pgrep", "-P", strconv.Itoa(os.Getpid()), "rexdiff").Output() + if err != nil { + t.Fatalf("pgrep: %v", err) + } + return strings.Fields(string(out))[0] +} + +// usage returns the resident memory of rexdiff in MB and the CPU time it +// has used in seconds. +func usage(t *testing.T) (rssMB, cpu float64) { + t.Helper() + out, err := exec.CommandContext(t.Context(), "ps", "-o", "rss=,time=", "-p", pid(t)).Output() + if err != nil { + t.Fatalf("ps: %v", err) + } + f := strings.Fields(string(out)) + kb, _ := strconv.ParseFloat(f[0], 64) + return kb / 1024, cpuSeconds(f[1]) +} + +// cpuSeconds converts a CPU time from ps, such as "M:SS.ss" or +// "H:MM:SS", to seconds. +func cpuSeconds(s string) float64 { + var total float64 + for p := range strings.SplitSeq(s, ":") { + v, _ := strconv.ParseFloat(p, 64) + total = total*60 + v + } + return total +} + +// idle records the resident memory, and the CPU use over d while rexdiff +// gets no input. +func (r *perfRun) idle(name string, d time.Duration) { + r.t.Helper() + r.settle(time.Now()) + rss, c0 := usage(r.t) + time.Sleep(d) + _, c1 := usage(r.t) + record(r.t, name, "RSS MB (value)", rss) + record(r.t, name, fmt.Sprintf("idle CPU %% over %v (value)", d), (c1-c0)/d.Seconds()*100) +} + +// copyRepo copies the repository at src to a temporary directory, so a +// test can edit the copy. +func copyRepo(t *testing.T, src string) string { + t.Helper() + dst := filepath.Join(t.TempDir(), filepath.Base(src)) + copyDir(t, src, dst) + return dst +} + +// copyDir copies the directory src to dst with cp -R. +func copyDir(t *testing.T, src, dst string) { + t.Helper() + if out, err := exec.CommandContext(t.Context(), "cp", "-R", src, dst).CombinedOutput(); err != nil { + t.Fatalf("cp: %v\n%s", err, out) + } +} + +// prependLine inserts line at the start of the file at path. +func prependLine(t *testing.T, path, line string) { + t.Helper() + b, err := os.ReadFile(path) + if err != nil { + t.Fatal(err) + } + if err := os.WriteFile(path, append([]byte(line+"\n"), b...), 0o644); err != nil { + t.Fatal(err) + } +} + +// wheelAt scrolls the mouse wheel down n times at column x, line y. +func (tm *term) wheelAt(x, y, n int) { + for range n { + tm.mouse(vt.MouseWheel{X: x, Y: y, Button: vt.MouseWheelDown}) + } +} + +// clickAt clicks the left mouse button at column x, line y. +func (tm *term) clickAt(x, y int) { + tm.mouse(vt.MouseClick{X: x, Y: y, Button: vt.MouseLeft}) + tm.mouse(vt.MouseRelease{X: x, Y: y, Button: vt.MouseLeft}) +} + +// noteTooBig is the note that rexdiff shows instead of a file that is too +// large. +const noteTooBig = "file too large to show" + +// viewScenarios measures common actions on the diff of one large file: +// moving, scrolling, wrapping, split view, finding, and switching tabs. +func viewScenarios(r *perfRun, name, findQuery string) { + m := r.measure + m(name, "j x200", func() { r.keys(repeat("j", 200)...) }) + m(name, "k x200", func() { r.keys(repeat("k", 200)...) }) + m(name, "j x1", func() { r.keys("j") }) + m(name, "] x30", func() { r.keys(repeat("]", 30)...) }) + m(name, "[ x30", func() { r.keys(repeat("[", 30)...) }) + m(name, "pgdown x1", func() { r.keys("pgdown") }) + m(name, "pgdown x20", func() { r.keys(repeat("pgdown", 20)...) }) + m(name, "goto :$", func() { r.keys(":", "$", "enter") }) + m(name, "goto :0", func() { r.keys(":", "0", "enter") }) + m(name, "wheel x30", func() { r.wheelAt(120, 25, 30) }) + m(name, "click after wheel", func() { r.clickAt(120, 25) }) + // Toggling wrap does not change a screen of short lines, so send a j + // afterwards to see when the toggle is done. + m(name, "w wrap off (+j)", func() { r.keys("w", "j") }) + m(name, "right (scroll x) x1", func() { r.keys("right") }) + m(name, "left (scroll x) x1", func() { r.keys("left") }) + m(name, "w wrap on (+j)", func() { r.keys("w", "j") }) + m(name, "| split on", func() { r.keys("|") }) + m(name, "j x50 (split)", func() { r.keys(repeat("j", 50)...) }) + m(name, "| split off", func() { r.keys("|") }) + m(name, "ctrl+f open", func() { r.keys("ctrl+f") }) + // The find bar at the bottom shows the query, the number of matches + // and a blinking cursor. + r.measureFind(name, "find type query", func() { r.typed(findQuery) }) + r.measureFind(name, "find enter x10", func() { r.keys(repeat("enter", 10)...) }) + m(name, "find close", func() { r.keys("esc") }) + m(name, "tab 2 (Files)", func() { r.keys("2") }) + m(name, "tab 1 (Changes)", func() { r.keys("1") }) + m(name, "z hide list", func() { r.keys("z") }) + m(name, "z show list", func() { r.keys("z") }) + m(name, "p x4 move list round", func() { r.keys("p", "p", "p", "p") }) +} + +// TestPerfGo7k measures rexdiff on a 7,000-line file with many changes. +func TestPerfGo7k(t *testing.T) { + name := "go7k" + r := startPerf(t, name, perfRepo(t, name), opts{}) + r.measure(name, "f next file (small)", func() { r.keys("f") }) + r.measure(name, "F prev file (7k)", func() { r.keys("F") }) + viewScenarios(r, name, "recompute") + r.idle(name, 10*time.Second) +} + +// TestPerfReload measures how long rexdiff takes to show an external edit +// to the file on screen. +func TestPerfReload(t *testing.T) { + for _, c := range []struct{ name, file string }{ + {"go7k", "big.go"}, + {"xxl", filepath.Join("pkg00", "sub0", "file0000.go")}, + } { + t.Run(c.name, func(t *testing.T) { + repo := copyRepo(t, perfRepo(t, c.name)) + r := startPerf(t, c.name+"-copy", repo, opts{}) + for i := range 2 { + t0 := time.Now() + prependLine(t, filepath.Join(repo, c.file), fmt.Sprintf("// EXTERNAL EDIT %d", i+1)) + r.waitForText(fmt.Sprintf("EXTERNAL EDIT %d", i+1)) + recordTime(t, c.name, fmt.Sprintf("reload after external edit #%d", i+1), time.Since(t0)) + r.settle(time.Now()) + } + }) + } +} + +// TestPerfBig measures rexdiff on files of 20,000 and 50,000 lines, and on +// a file of 200,000 lines, which is too large to show. +func TestPerfBig(t *testing.T) { + for _, c := range []struct{ name, query string }{ + {"rewrite20k", "other"}, + {"big50k", "M1"}, + {"big200k", "M1"}, + } { + t.Run(c.name, func(t *testing.T) { + r := startPerf(t, c.name, perfRepo(t, c.name), opts{}) + if s := r.screen(); strings.Contains(s, noteTooBig) { + t.Logf("PERF %s: too large to show", c.name) + } else { + viewScenarios(r, c.name, c.query) + } + r.measure(c.name, "files: j x200", func() { r.keys("2"); r.keys(repeat("j", 200)...) }) + r.measure(c.name, "files: goto :$", func() { r.keys(":", "$", "enter") }) + r.keys("1") + r.idle(c.name, 5*time.Second) + }) + } +} + +// TestPerfMarkdown measures rexdiff on large Markdown files, raw and +// rendered. md5mb is too large to show, so it measures the note instead. +func TestPerfMarkdown(t *testing.T) { + for _, name := range []string{"md400k", "md5mb"} { + t.Run(name, func(t *testing.T) { + r := startPerf(t, name, perfRepo(t, name), opts{}) + if s := r.screen(); strings.Contains(s, noteTooBig) { + t.Logf("PERF %s: too large to show", name) + } + m := r.measure + m(name, "j x200", func() { r.keys(repeat("j", 200)...) }) + m(name, "m rendered on", func() { r.keys("m") }) + m(name, "rendered: j x200", func() { r.keys(repeat("j", 200)...) }) + m(name, "rendered: goto :$", func() { r.keys(":", "$", "enter") }) + m(name, "m rendered off", func() { r.keys("m") }) + m(name, "tab 2 (Files)", func() { r.keys("2") }) + m(name, "files: m rendered on", func() { r.keys("m") }) + m(name, "files: m rendered off", func() { r.keys("m") }) + r.idle(name, 5*time.Second) + }) + } +} + +// TestPerfXXL measures rexdiff on 2,000 changed files, both as +// uncommitted changes and as a branch. +func TestPerfXXL(t *testing.T) { + for _, c := range []struct { + name string + args []string + }{ + {"xxl", nil}, + {"xxl-branch", []string{"-scope", "branch", "-base", "main"}}, + } { + t.Run(c.name, func(t *testing.T) { + name := c.name + r := startPerf(t, name, perfRepo(t, name), opts{args: c.args}) + m := r.measure + m(name, "f next file x1", func() { r.keys("f") }) + m(name, "f next file x20", func() { r.keys(repeat("f", 20)...) }) + m(name, "F prev file x20", func() { r.keys(repeat("F", 20)...) }) + m(name, "j x200", func() { r.keys(repeat("j", 200)...) }) + m(name, "pgdown x20", func() { r.keys(repeat("pgdown", 20)...) }) + m(name, "] x30 (crosses files)", func() { r.keys(repeat("]", 30)...) }) + m(name, "[ x30", func() { r.keys(repeat("[", 30)...) }) + m(name, "tab focus list", func() { r.keys("tab") }) + m(name, "list j x200", func() { r.keys(repeat("j", 200)...) }) + m(name, "list k x200", func() { r.keys(repeat("k", 200)...) }) + m(name, "list wheel x30", func() { r.wheelAt(190, 25, 30) }) + m(name, "list click", func() { r.clickAt(190, 30) }) + m(name, "list wheel x1", func() { r.wheelAt(190, 25, 1) }) + m(name, "tab focus diff", func() { r.keys("tab") }) + m(name, "wheel x30", func() { r.wheelAt(60, 25, 30) }) + m(name, "z hide list", func() { r.keys("z") }) + m(name, "z show list", func() { r.keys("z") }) + m(name, "tab 2 (Files)", func() { r.keys("2") }) + m(name, "tab 1 (Changes)", func() { r.keys("1") }) + m(name, "/ search open", func() { r.keys("/") }) + m(name, "search type query", func() { r.typed("file0999") }) + m(name, "search close", func() { r.keys("esc") }) + r.idle(name, 10*time.Second) + }) + } +} + +// TestPerfFiles3k measures the Files tab in a repository of 3,000 files. +func TestPerfFiles3k(t *testing.T) { + name := "files3k" + r := startPerf(t, name, perfRepo(t, name), opts{}) + m := r.measure + m(name, "tab 2 (Files)", func() { r.keys("2") }) + m(name, "tab focus list", func() { r.keys("tab") }) + m(name, "list right (expand dir) x1", func() { r.keys("right") }) + m(name, "list j x200", func() { r.keys(repeat("j", 200)...) }) + m(name, "list k x200", func() { r.keys(repeat("k", 200)...) }) + m(name, "list wheel x30", func() { r.wheelAt(190, 25, 30) }) + m(name, "list click", func() { r.clickAt(190, 30) }) + m(name, "/ search open", func() { r.keys("/") }) + m(name, "search type query", func() { r.typed("f2999") }) + m(name, "search close", func() { r.keys("esc") }) + m(name, "tab 1 (Changes)", func() { r.keys("1") }) + r.idle(name, 10*time.Second) +} + +// TestPerfOpenClose records the memory use of rexdiff after the first and +// the tenth time it opens a large file in each tab and layout, to show +// whether memory grows. It does not fail if it does. +func TestPerfOpenClose(t *testing.T) { + name := "big50k" + r := startPerf(t, name, perfRepo(t, name), opts{}) + for i := range 10 { + r.keys("2", ":", "$", "enter", "1", "w", "|", "w", "|") + r.settle(time.Now()) + if i == 0 || i == 9 { + rss, _ := usage(t) + record(t, name, fmt.Sprintf("RSS MB after %d opens (value)", i+1), rss) + } + } +} diff --git a/vcs/bench_test.go b/vcs/bench_test.go new file mode 100644 index 0000000..cf0c8e0 --- /dev/null +++ b/vcs/bench_test.go @@ -0,0 +1,64 @@ +package vcs_test + +import ( + "fmt" + "strings" + "testing" + + "github.com/rednafi/rexdiff/internal/testgit" + "github.com/rednafi/rexdiff/vcs" +) + +// BenchmarkDiff measures Diff on 1,000 changed files of 500 lines each. +// The cold case opens a new Repo each time, so Diff reads every object. +// The warm case repeats the Diff on the same Repo, so every object comes +// from the cache. +func BenchmarkDiff(b *testing.B) { + dir := b.TempDir() + testgit.InitRepo(b, dir) + for i := range 1000 { + testgit.WriteFile(b, dir, fmt.Sprintf("d%d/f%04d.go", i%20, i), strings.Repeat(fmt.Sprintf("line of file %d\n", i), 500)) + } + testgit.Git(b, dir, "add", ".") + testgit.Git(b, dir, "commit", "-qm", "base") + for i := range 1000 { + testgit.WriteFile(b, dir, fmt.Sprintf("d%d/f%04d.go", i%20, i), strings.Repeat(fmt.Sprintf("new line of file %d\n", i), 500)) + } + env := testgit.ToolEnv(b) + openRepo := func(b *testing.B) (r *vcs.Repo, oldTree, newTree string) { + b.Helper() + r, err := vcs.Open(b.Context(), env, dir) + if err != nil { + b.Fatal(err) + } + b.Cleanup(func() { _ = r.Close() }) + if oldTree, err = r.HeadTree(b.Context()); err != nil { + b.Fatal(err) + } + if newTree, err = r.SnapshotTree(b.Context()); err != nil { + b.Fatal(err) + } + return r, oldTree, newTree + } + b.Run("cold", func(b *testing.B) { + for b.Loop() { + b.StopTimer() + r, oldTree, newTree := openRepo(b) + b.StartTimer() + if _, err := r.Diff(b.Context(), oldTree, newTree); err != nil { + b.Fatal(err) + } + } + }) + b.Run("warm", func(b *testing.B) { + r, oldTree, newTree := openRepo(b) + if _, err := r.Diff(b.Context(), oldTree, newTree); err != nil { + b.Fatal(err) + } + for b.Loop() { + if _, err := r.Diff(b.Context(), oldTree, newTree); err != nil { + b.Fatal(err) + } + } + }) +} From e5d3e02725dfe38192d2b6afe26a0522fe795aa4 Mon Sep 17 00:00:00 2001 From: Redowan Delowar Date: Thu, 29 Oct 2026 18:15:11 +0100 Subject: [PATCH 4/5] test: walk every feature in a real Rex with test/e2e.sh test/e2e.sh builds rexdiff and walks the user guide step by step in its own Rex session, with fake agent, gh, clipboard, editor and browser. It also checks resizes from 1x1 to 300x80, hostile names, a review over 64 KB, and the Rex JSON shapes that the fake rex copies. Each step polls the screen until it is whole and holds the text. It replaces TestRealRex. --- .doc/dev.md | 7 +- .doc/test.md | 14 +- test/e2e.sh | 811 +++++++++++++++++++++++++++++++++++++++++++++++ test/rex_test.go | 122 ------- 4 files changed, 827 insertions(+), 127 deletions(-) create mode 100755 test/e2e.sh delete mode 100644 test/rex_test.go diff --git a/.doc/dev.md b/.doc/dev.md index b766706..a026683 100644 --- a/.doc/dev.md +++ b/.doc/dev.md @@ -33,15 +33,18 @@ To run the tests against a real Rex too: ```sh REXDIFF_REX=$(which rex) go test ./test/ +REXDIFF_REX=$(which rex) test/e2e.sh ``` +`test/e2e.sh` also needs jq. + ## Release ```sh -gh release create v0.3.0 +gh release create vX.Y.Z ``` -GitHub Actions builds the binaries and updates the Homebrew cask. +GitHub Actions runs the tests again, builds the binaries, and updates the Homebrew cask. ## Rules diff --git a/.doc/test.md b/.doc/test.md index a934a15..90fb8b3 100644 --- a/.doc/test.md +++ b/.doc/test.md @@ -9,6 +9,8 @@ rexdiff has library tests and black-box tests. - Each library is tested through its public API only, in `package x_test`. - A test that needs git runs real git in a temporary repository. `internal/testgit` hides your git config, so hooks and signing do not change the result. +- A test uses the real limits of a library. A hook in `export_test.go` lowers a limit only + if the real size makes the test slow. - A test gives the library its own environment, with fake tools on its own `PATH`. No test changes the environment of the process, so all of them run in parallel. @@ -17,12 +19,18 @@ rexdiff has library tests and black-box tests. - `tui` has no unit tests. The tests in `test/` build the binary and use it as you do. - Each test types keys and clicks through a terminal emulator, and reads the screen. - A test waits for the screen or for a file, never for a fixed time. -- One test waits for the log: `TestLastTurn` waits for the line `msg="turn start"` in - the debug log. +- Some tests wait for a line in the debug log, for example `msg="turn start"`. - The scripts in `test/testdata/script` test the commands, for example `install`, with testscript. - Shell scripts stand in for rex, gh, the clipboard, and the editors. The fake rex prints output recorded from a real Rex. -- `TestRealRex` runs rexdiff in a real Rex, to find a fake that no longer matches Rex. +- `test/e2e.sh` runs rexdiff in a real Rex, one step at a time. It walks through the user + guide, hostile file names, tiny and huge blocks, boxes open while the block resizes, and + a long review. Each step waits until the screen shows a whole frame. The script also + checks that rex still prints JSON in the shapes that the fake rex records. Run it with + `REXDIFF_REX=$(which rex) test/e2e.sh`. - The black-box tests run one at a time, because each one is a real program in a terminal. +- The perf tests in `test/perf_test.go` time the program on large repositories. They run + only if `REXDIFF_PERF` names a directory for the repositories. The libraries have Go + benchmarks: `go test -bench . ./diff ./vcs ./internal/tree`. diff --git a/test/e2e.sh b/test/e2e.sh new file mode 100755 index 0000000..5efc55c --- /dev/null +++ b/test/e2e.sh @@ -0,0 +1,811 @@ +#!/bin/sh +# e2e.sh runs the rexdiff of this tree in a real Rex and walks through each +# feature of .doc/user.md, then through the cases at the edges: hostile +# file names, tiny and huge blocks, boxes open while the block resizes, a +# send of more than 64 KB, and the quit prompt. +# +# REXDIFF_REX=$(which rex) test/e2e.sh +# +# It needs a running Rex server, go, git and jq. It creates the session +# rexdiff-e2e-PID and kills only that session when it ends. Fake programs +# stand in for the agent, gh, the clipboard, the editor and the browser. +# With REXDIFF_E2E_KEEP=1, it keeps its files, such as the debug log of +# rexdiff. +# +# The script leaves out the install, the toggle key and U, because they +# change the Rex configuration or need a release. The Go tests in test/ +# cover them. +# +# Each step types keys, then reads the screen with rex capture until it +# shows what the step expects in a whole frame: rexdiff still runs, no line +# is wrapped, no crash shows, and on a block big enough the tab bar is on +# the first line and the key hints on the last. The script prints one line +# per step. At the first failure it prints the screen and exits with 1. +set -eu + +: "${REXDIFF_REX:?set REXDIFF_REX to the path of rex}" +root=$(cd "$(dirname "$0")/.." && pwd) +work=$(mktemp -d "${TMPDIR:-/tmp}/rexdiff-e2e.XXXXXX") +work=$(cd "$work" && pwd -P) # without links, the paths match what git reports +session=rexdiff-e2e-$$ +wait_seconds=20 # how long a step waits for the screen + +rex() { "$REXDIFF_REX" --autostart=false "$@"; } + +cleanup() { + if [ -n "${events_pid:-}" ]; then kill "$events_pid" 2>/dev/null || true; fi + rex kill "$session" > /dev/null 2>&1 || true + if [ -n "${REXDIFF_E2E_KEEP:-}" ]; then echo "kept $work"; else rm -rf "$work"; fi +} +trap cleanup EXIT +trap 'exit 1' HUP INT TERM + +# ---- Steps and failures ---- + +n=0 +what="" +screen="" + +# step prints the number and the name of the next step. +step() { + n=$((n + 1)) + what=$* + printf '%3d %s\n' "$n" "$what" +} + +# fail prints why the step failed and the last screen, and exits. +fail() { + printf 'FAIL at step %d, %s: %s\n' "$n" "$what" "$*" >&2 + printf '%s\n' "The block shows:" "$screen" >&2 + exit 1 +} + +# poll runs the command in its arguments until it succeeds, or fails the +# step after wait_seconds. The first argument says what poll waits for. +poll() { + why=$1 + shift + end=$(($(date +%s) + wait_seconds)) + until "$@"; do + [ "$(date +%s)" -lt "$end" ] || fail "$why" + sleep 0.05 + done +} + +# ---- The fixture: tools and repositories ---- + +export GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_NOSYSTEM=1 GIT_ATTR_NOSYSTEM=1 GIT_TEMPLATE_DIR= +export GIT_AUTHOR_NAME=t GIT_AUTHOR_EMAIL=t@t GIT_COMMITTER_NAME=t GIT_COMMITTER_EMAIL=t@t + +# numbered prints the lines "WORD N" for N from FIRST to LAST. +numbered() { awk -v w="$1" -v a="$2" -v b="$3" 'BEGIN { for (i = a; i <= b; i++) print w, i }'; } + +step "build rexdiff" +bin=$work/rexdiff +(cd "$root" && go build -buildvcs=false -o "$bin" ./cmd/rexdiff) || fail "go build failed" + +step "write the fake tools" +mkdir -p "$work/tools" "$work/home" +cat > "$work/tools/pbcopy" << EOF +#!/bin/sh +cat > "$work/clip" +EOF +cp "$work/tools/pbcopy" "$work/tools/wl-copy" +cat > "$work/tools/code" << EOF +#!/bin/sh +printf '%s\n' "\$*" >> "$work/edited" +EOF +cat > "$work/tools/opener" << EOF +#!/bin/sh +printf '%s\n' "\$*" >> "$work/opened" +EOF +cat > "$work/tools/gh" << 'EOF' +#!/bin/sh +cat << 'JSON' +{"number": 7, "title": "Add b", "state": "OPEN", "isDraft": false, + "url": "https://github.com/o/r/pull/7", "body": "The body of the PR.", + "author": {"login": "ann"}, "headRefName": "feat", "baseRefName": "main", + "comments": [{"author": {"login": "bob"}, "body": "Looks good.\n\n
The logs\n\nA hidden line.\n\n
", + "createdAt": "2020-01-01T00:00:00Z"}], + "statusCheckRollup": [{"name": "test", "conclusion": "SUCCESS"}, {"name": "lint", "conclusion": "FAILURE"}]} +JSON +EOF +chmod +x "$work/tools"/* +tools_path=$work/tools:$(dirname "$(command -v git)"):/usr/bin:/bin + +step "create the repository" +repo=$work/repo +mkdir -p "$repo" +cd "$repo" +git init -q -b main +printf 'package a\n\nfunc A() int {\n\treturn 1\n}\n' > a.go +numbered line 1 40 > long.txt +printf '# Title\n\nSome text.\n\n- one\n- two\n' > README.md +{ echo short; printf '%300s' '' | tr ' ' w; echo " needle end"; } > wide.txt +echo bye > gone.txt +git add . && git commit -qm first +git checkout -qb feat +printf 'package a\n\nvar B = 2\n' > b.go +git add . && git commit -qm "add b" +printf 'package a\n\nfunc A() int {\n\tx := 2\n\treturn x\n}\n' > a.go +{ echo first; numbered line 2 39; echo last; } > long.txt +printf '# Title\n\nSome **new** text with [a link](https://example.com/x).\n\n- one\n- two\n' > README.md +{ echo short; printf '%300s' '' | tr ' ' w; echo " needle changed"; } > wide.txt +git rm -q gone.txt +git remote add origin https://github.com/o/r.git +cd "$root" + +# ---- Rex ---- + +# The fake agent pi tells Rex that it is idle, then saves what it reads to +# agent.in, as the input box of an agent would hold a paste. A line WORK or +# IDLE in the FIFO agent.ctl sets its state. +mkfifo "$work/agent.ctl" +cat > "$work/agent" << EOF +#!/bin/sh +osc() { printf '\033]7501;state=%s:app=pi\007' "\$1"; } +osc idle +echo "agent ready" +while :; do + read -r cmd < "$work/agent.ctl" + case \$cmd in + WORK) osc working; echo "agent working" ;; + IDLE) osc idle; echo "agent idle" ;; + esac +done & +stty -icanon -echo min 1 time 0 +exec cat > "$work/agent.in" +EOF +chmod +x "$work/agent" + +step "start the session $session with the agent" +rex new "$session" --cwd "$repo" -- "$work/agent" > /dev/null +session_id=$(rex session inspect "$session" --json | jq -r .session_id) +agent=$(rex api call -s "$session" session.list_blocks '{}' | jq -r '.blocks[0].block_id') +rex block rename "$agent" agent -s "$session" +agent_shows() { screen=$(rex capture -s "$session" -b "$agent"); case $screen in *"$1"*) ;; *) return 1 ;; esac; } +poll "the agent does not start" agent_shows "agent ready" + +# shape prints the paths of the keys in the JSON on stdin, with 0 for +# each array index. +shape() { jq -c '[paths | map(if type == "number" then 0 else . end)] | unique'; } + +# same_shape fails the step if the JSON on stdin lacks a key of the +# recording in test/testdata/rex/NAME, which the fake rex of the Go tests +# prints. +same_shape() { + got=$(shape) + want=$(shape < "$root/test/testdata/rex/$1") + missing=$(jq -nc --argjson got "$got" --argjson want "$want" '$want - $got') + [ "$missing" = "[]" ] || fail "rex output lacks the keys $missing of $1" +} + +step "rex prints JSON in the shapes that the fake rex records" +rex api call -s "$session" session.list_blocks '{}' | jq '.blocks[0]' | same_shape block.json +rex session inspect "$session" --json | same_shape session.json +rex block inspect agent -s "$session" --json | same_shape inspect.json +rex block call -s "$session" -b "$agent" process | same_shape process.json +has_status() { rex block call -s "$session" -b "$agent" program_status | jq -e '.records[0]' > /dev/null; } +poll "the agent reports no status" has_status +rex block call -s "$session" -b "$agent" program_status | same_shape status.json +"$REXDIFF_REX" --autostart=false events -s "$session" --json > "$work/events" 2> /dev/null & +events_pid=$! +# Rex sends no event before the stream starts, so report states until one +# arrives. +status_event() { + echo WORK > "$work/agent.ctl" + grep -q program_status_changed "$work/events" +} +poll "rex events shows no status change" status_event +kill "$events_pid" +events_pid= +grep -m 1 program_status_changed "$work/events" | same_shape event.json +echo IDLE > "$work/agent.ctl" + +# ---- rexdiff in a block ---- + +block="" +cols=0 +rows=0 +config='{"focus_agent_after_send": false, "editor": "code -g {file}:{line}", "url_opener": "opener"}' + +# start runs rexdiff on the repository DIR in a new block, with the flags +# that follow, and waits until it runs. The block stays open after rexdiff +# quits. +start() { + dir=$1 + shift + block=$(rex run -s "$session" --cwd "$dir" --label under-test --shell=none --keep-open --focus=false --json -- \ + /usr/bin/env PATH="$tools_path" HOME="$work/home" XDG_CONFIG_HOME= REX_CONFIG= WAYLAND_DISPLAY=w \ + EDITOR= VISUAL= REXDIFF_AGENT= REXDIFF_LOG= REXDIFF_RESUME= REXDIFF_LATEST_URL=http://127.0.0.1:9/none \ + GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_NOSYSTEM=1 GIT_ATTR_NOSYSTEM=1 \ + GIT_CONFIG_COUNT=2 GIT_CONFIG_KEY_0=maintenance.auto GIT_CONFIG_VALUE_0=false \ + GIT_CONFIG_KEY_1=gc.auto GIT_CONFIG_VALUE_1=0 \ + "$bin" -log "$work/log" "$@" "$dir" | jq -r '.block_ids[0]') + # A detached block shows in no app, so no app sets its size. + rex api call -s "$session" session.detach_block \ + "{\"session_id\": \"$session_id\", \"block_id\": \"$block\"}" > /dev/null + poll "rexdiff does not start" running +} + +# running reports whether rexdiff runs in the block. +running() { [ "$(rex block call -s "$session" -b "$block" process | jq -r '.child.name // ""')" = rexdiff ]; } + +# resize sets the size of the block to COLS by ROWS. +resize() { + cols=$1 rows=$2 + rex block call -s "$session" -b "$block" resize "{\"columns\": $cols, \"rows\": $rows}" > /dev/null + size=$(rex block call -s "$session" -b "$block" size | jq -r '"\(.columns)x\(.rows)"') + [ "$size" = "${cols}x$rows" ] || fail "the block is $size, want ${cols}x$rows" +} + +# capture reads the screen of the block into $screen. +capture() { screen=$(rex capture -s "$session" -b "$block" | tail -n "$rows"); } + +# whole reports whether $screen is a whole frame at the size of the block, +# and says why not in $why. On a block big enough, the frame has the tab +# bar on the first line and the key hints on the last, or it is a whole +# box. +whole() { + why="rexdiff does not run" + running || return 1 + why="the screen shows a crash" + if printf '%s\n' "$screen" | grep -Eq 'panic:|goroutine [0-9]+ \[|runtime error|fatal error:|DATA RACE'; then return 1; fi + why="the terminal wrapped a line" + [ "$(rex capture -s "$session" -b "$block" | wc -l)" -eq "$(rex capture -s "$session" -b "$block" --unwrap | wc -l)" ] || return 1 + why="the frame is not whole at ${cols}x$rows" + [ "$cols" -ge 60 ] && [ "$rows" -ge 5 ] || return 0 + case $(printf '%s\n' "$screen" | head -n 1) in + *"╭"*) on_line "╰" "╯" ;; # a box in place of the screen + *"1 Changes"*) [ "$(printf '%s\n' "$screen" | wc -l)" -eq "$rows" ] && + [ -n "$(printf '%s\n' "$screen" | tail -n 1 | tr -d ' ')" ] ;; + *) return 1 ;; + esac +} + +# shows reports whether $screen holds each of its arguments. +shows() { + for want; do + case $screen in *"$want"*) ;; *) return 1 ;; esac + done +} + +# lacks reports whether $screen holds none of its arguments. +lacks() { + for want; do + case $screen in *"$want"*) return 1 ;; esac + done +} + +# on_line reports whether one line of $screen holds each of its arguments. +on_line() { + printf '%s\n' "$screen" | while IFS= read -r line; do + ok=1 + for want; do case $line in *"$want"*) ;; *) ok=0 ;; esac; done + [ "$ok" = 0 ] || exit 3 + done + [ $? -eq 3 ] +} + +# header reports whether the diff pane shows the file NAME: its header, +# on the second line, starts with NAME. +header() { + line=$(printf '%s\n' "$screen" | sed -n 2p | sed 's/^ *//') + case $line in "$1 "*) ;; *) return 1 ;; esac +} + +# until_screen CHECK ARGS... captures the screen until CHECK ARGS succeeds +# on a whole frame. +until_screen() { + end=$(($(date +%s) + wait_seconds)) + while :; do + capture + if "$@"; then + whole && return 0 + [ "$(date +%s)" -lt "$end" ] || fail "$why" + elif [ "$(date +%s)" -ge "$end" ]; then + running || fail "rexdiff stops, and the screen does not pass: $*" + fail "the screen does not pass: $*" + fi + sleep 0.05 + done +} + +wait_for() { until_screen shows "$@"; } +wait_gone() { until_screen lacks "$@"; } +wait_line() { until_screen on_line "$@"; } +wait_cursor() { until_screen on_line "▶" "$@"; } +wait_header() { until_screen header "$1"; } +wait_frame() { until_screen true; } + +# keys presses each named key, such as enter, escape or ctrl+f. +keys() { rex send-key -s "$session" -b "$block" "$@"; } + +# text types its argument, such as j or :20. +text() { rex send -s "$session" -b "$block" "$1"; } + +# at prints the column and the line of the first TEXT on the screen, +# counting from 1. The screen of the fixture has no wide characters, so +# a character is a column. +at() { + printf '%s\n' "$screen" | jq -Rnr --arg t "$1" \ + '[inputs] | to_entries | map(select(.value | contains($t))) | first + | "\((.value | split($t) | first | explode | length) + 1) \(.key + 1)"' +} + +# mouse sends the mouse event: BUTTON at COLUMN and LINE, pressed (M) or +# released (m), in the SGR encoding that rexdiff turns on. +mouse() { printf '\033[<%d;%d;%d%s' "$@" | rex send -s "$session" -b "$block"; } + +# click clicks on TEXT. +click() { + wait_for "$1" + set -- $(at "$1") + mouse 0 "$1" "$2" M + mouse 0 "$1" "$2" m +} + +# drag drags with the left button from the start of FROM to the start of +# TO. +drag() { + wait_for "$1" "$2" + set -- $(at "$1") $(at "$2") + mouse 0 "$1" "$2" M + mouse 32 "$3" "$4" M + mouse 0 "$3" "$4" m +} + +# file_is reports whether the file PATH holds exactly TEXT and a newline. +file_is() { [ -f "$1" ] && [ "$(cat "$1")" = "$2" ]; } + +# file_has reports whether the file PATH holds each TEXT that follows. +file_has() { + f=$1 + shift + [ -f "$f" ] || return 1 + for want; do grep -qF -- "$want" "$f" || return 1; done +} + +# column prints the column of TEXT on the screen. +column() { at "$1" | cut -d ' ' -f 1; } + +# line_of prints the line of TEXT on the screen. +line_of() { at "$1" | cut -d ' ' -f 2; } + +# ---- The user guide ---- + +step "3. rexdiff opens with the changes and finds the agent" +start "$repo" -config "$config" +resize 150 30 +wait_for "Changes (5)" "README.md +1 -1" "send → 1 agent" +labelled() { rex api call -s "$session" session.list_blocks '{}' | jq -e --arg b "$block" '.blocks[] | select(.block_id == $b and .label == "rexdiff")' > /dev/null; } +poll "rexdiff does not label its block" labelled + +step "3. j and k move one line" +text j +wait_cursor "# Title" +text jj +wait_cursor "Some text." +text k +wait_cursor "2 2" + +step "3. ] and [ go to the next and previous change" +text "]" +wait_cursor "Some text." +# At the last change of a file, ] goes to the next file on a second press. +text "]]" +wait_header a.go +wait_cursor "return 1" +text "[[" +wait_header README.md + +step "3. f and F go to the next and previous file" +for name in a.go gone.txt long.txt wide.txt; do + text f + wait_header "$name" +done +text F +wait_header long.txt + +step "3. the right arrow key opens a fold, the left one closes it" +text jjjjjj +wait_for "→ expand fold" "⋯ 32 unmodified lines" +keys right +wait_for "line 20" "← collapse fold" +keys left +wait_for "⋯ 32 unmodified lines" +wait_gone "line 20" + +step "3. : goes to a line number" +text ":20" +keys enter +wait_cursor "line 20" +text ':$' +keys enter +wait_cursor last +text ":0" +keys enter +wait_cursor first + +step "3. ctrl+f finds text in the file" +keys ctrl+f +text "line 3" +wait_for "find line 3" +keys enter +wait_cursor "line 3" +keys enter +wait_cursor "line 30" +keys escape +wait_gone "find line 3" + +step "3. ctrl+f scrolls to a hit far to the right of a cut line" +text f +wait_header wide.txt +text w +wait_gone needle +keys ctrl+f +text needle +keys enter +wait_for "needle changed" +keys escape +wait_gone "find needle" +text w +wait_for "needle end" "needle changed" + +step "3. m shows Markdown rendered, with comments" +text FFFF +wait_header README.md +text m +wait_for "• one" "Some new text with a link" +wait_gone "# Title" "**new**" +text ":3" +keys enter +wait_cursor "Some new text" +text c +text "on the markdown" +keys enter +wait_for "💬 on the markdown" "comment added" +text m +wait_for "**new**" "💬 on the markdown" + +step "8. y copies the review" +text y +wait_for "copied 1 comment" +wait_gone "💬" +poll "the clipboard has no review" file_has "$work/clip" "README.md:3" "on the markdown" + +step "3. ] goes to the next change in rendered Markdown" +text m +wait_for "• one" +text "]" +wait_cursor "Some new text" +text m +wait_for "# Title" + +step "3. a drag over the code copies it" +drag Some text. +wait_for copied +poll "the clipboard does not hold \"Some t\"" file_is "$work/clip" "Some t" + +step "3. a click on a link opens it" +text m +click "https://example.com/x" +poll "the link does not open" file_is "$work/opened" "https://example.com/x" +text m +wait_for "# Title" + +step "5. | shows both sides, if the block is wide enough" +text f +wait_header a.go +text "|" +wait_for "too narrow for split" +resize 220 30 +text "|" +wait_line "return 1" "x := 2" +text "|" +until_screen eval '! on_line "return 1" "x := 2"' +resize 150 30 +wait_frame + +step "5. z hides and shows the file list" +text z +wait_gone "Changes (5)" +text z +wait_for "Changes (5)" + +step "p moves the file list: bottom, left, top, right" +list_at() { + shows "Changes (5)" || return 1 + x=$(column "Changes (5)") y=$(line_of "Changes (5)") + case $1 in + bottom) [ "$y" -gt $((rows / 2)) ] ;; + left) [ "$y" -eq 2 ] && [ "$x" -le 3 ] && on_line "Changes (5)" "│" ;; + top) [ "$y" -eq 2 ] && [ "$x" -le 3 ] && ! on_line "Changes (5)" "│" ;; + right) [ "$y" -eq 2 ] && [ "$x" -gt $((cols / 2)) ] ;; + esac +} +for place in bottom left top right; do + text p + until_screen list_at "$place" +done + +step "< and > change the width of the file list" +x0=$(column "Changes (5)") +text "<" +until_screen eval '[ "$(column "Changes (5)")" -lt "$x0" ]' +text ">>" +until_screen eval '[ "$(column "Changes (5)")" -gt "$x0" ]' + +step "tab moves the focus to the file list and back" +keys tab +text j +wait_header gone.txt +keys tab +text j +wait_cursor bye + +step "9. 2 shows all the files, 11. 3 the pull request, 1 the changes" +text 2 +wait_for "Files (5)" "b.go" +text 3 +wait_for "Add b #7" "checks: ✓ 1 ✗ 1" "Looks good." "▸ The logs" +keys right +wait_for "▾ The logs" "A hidden line." +keys left +wait_gone "A hidden line." + +step "11. o opens the pull request in the browser" +text o +wait_for "opened PR in browser" +poll "the pull request does not open" file_has "$work/opened" "https://github.com/o/r/pull/7" +text 1 +wait_for "Changes (5)" + +step "4. u, b, t and g pick what to compare" +text b +wait_for "vs main" "Changes (6)" "A b.go" +text u +wait_for "Changes (5)" +text t +wait_for "waiting for the first turn" +text g +wait_for "commits · 1 over main" "add b" +keys enter +wait_for "Changes (1)" "A b.go" "var B = 2" + +step "4. B picks the base branch, G the commits" +text B +wait_for "base branch for the branch scope" "feat" +wait_line "▶ main" "default current" +text feat +keys enter +wait_for "vs feat" "Changes (5)" +text B +text main +keys enter +wait_for "vs main" "Changes (6)" +text G +wait_for "commits · 1 over main" +keys escape +wait_gone "commits · 1 over main" +text u +wait_for "Changes (5)" + +step "10. / finds a file, then tab finds code" +text /long +wait_for "files 1" "▶ long.txt" "preview · long.txt" +keys enter +wait_header long.txt +text / +keys tab +text "line 7" +wait_for "code 1" "7: line 7" +keys enter +wait_cursor "line 7" + +step "6. c comments on a line, v on a range" +text FF +wait_header a.go +text "]" +wait_cursor "return 1" +text c +text "first note" +keys enter +wait_for "💬 first note" "●1" +text jvjc +text "range note" +keys enter +wait_for "💬 range note" "●2" + +step "7. l lists the comments, e edits one" +text l +wait_for "Comments (2)" "a.go:4 (removed) first note" "a.go:4-5 range note" +text e +text " more" +keys enter +wait_for "a.go:4 (removed) first note more" +keys escape +wait_gone "Comments (" + +step "n and N go to the next and previous comment" +text ":0" +keys enter +wait_cursor "package a" +text n +wait_cursor "return 1" +text n +wait_cursor "x := 2" +text N +wait_cursor "return 1" + +step "7. d deletes a comment" +text ":0" +keys enter +wait_cursor "package a" +text c +text doomed +keys enter +wait_for "💬 doomed" "●3" +text d +wait_gone "💬 doomed" +wait_for "●2" + +step "8. s sends the review to the agent" +text s +wait_for "sent 2 comments to agent" +wait_gone "💬" +poll "the agent did not get the review" file_has "$work/agent.in" \ + "a.go:4 (removed)" "return 1" "first note more" "a.go:4-5" "range note" + +step "e opens the editor at the cursor line" +text ":0" +keys enter +text "]e" +wait_for "opened a.go" +poll "the editor does not open a.go:4" file_is "$work/edited" "-g $repo/a.go:4" + +step "4. t shows the last turn of the agent" +text t +wait_for "waiting for the first turn" +echo WORK > "$work/agent.ctl" +poll "rexdiff does not start the turn" file_has "$work/log" 'msg="turn start"' +echo "package a" > "$repo/turn.go" +echo IDLE > "$work/agent.ctl" +wait_for "Changes (1)" "turn.go" +text u +wait_for "Changes (6)" + +step "rexdiff reloads when a file changes" +mkdir "$repo/new" +echo "package c" > "$repo/new/c.go" +wait_for "Changes (7)" "c.go" +rm -r "$repo/new" "$repo/turn.go" +wait_for "Changes (5)" + +step "r reloads" +echo fresh > "$repo/fresh.txt" +text r +wait_for "Changes (6)" "fresh.txt" +rm "$repo/fresh.txt" +wait_for "Changes (5)" + +step "12. ? shows all the keys" +text "?" +wait_for "search files and code" "pick commits" "move list" +keys escape +wait_gone "pick commits" + +# ---- The edges ---- + +step "s sends a review of more than 64 KB in parts" +before=$(wc -c < "$work/agent.in") +numbered "<&> a long review line" 1 3000 > "$work/long" +echo "END OF THE LONG REVIEW" >> "$work/long" +text "]c" +printf '\033[200~' | rex send -s "$session" -b "$block" +size=$(wc -c < "$work/long") +i=0 +while [ $((i * 30000)) -lt "$size" ]; do + dd if="$work/long" bs=30000 skip=$i count=1 2> /dev/null | rex send -s "$session" -b "$block" + i=$((i + 1)) +done +printf '\033[201~' | rex send -s "$session" -b "$block" +keys enter +wait_for "comment added" +text s +wait_for "sent 1 comment to agent" +long_arrived() { [ $(($(wc -c < "$work/agent.in") - before)) -gt "$size" ] && file_has "$work/agent.in" "END OF THE LONG REVIEW"; } +poll "the agent did not get all of the long review" long_arrived + +step "the screen stays whole from 1x1 to 300x80" +for size in 10x3 1x1 20x5 40x10 300x80 13x7 150x30; do + resize "${size%x*}" "${size#*x}" + wait_frame +done +wait_for "Changes (5)" + +# with_box OPEN SHOWS CLOSE: OPEN opens a box that shows SHOWS, the block +# goes through sizes from tiny to huge, and the box still shows; CLOSE +# closes it. +with_box() { + eval "$1" + wait_for "$2" + for size in 10x3 300x80 1x1 20x5 200x50 40x10 150x30; do + resize "${size%x*}" "${size#*x}" + wait_frame + done + wait_for "$2" + eval "$3" + wait_gone "$2" +} + +step "the help stays open while the block resizes" +with_box 'text "?"' "pick commits" 'keys escape' + +step "search stays open while the block resizes" +with_box 'text /long' "preview · long.txt" 'keys escape' + +step "the comment box stays open while the block resizes" +with_box 'text c; text "typed so far"' "typed so far" 'keys escape' + +step "the find bar stays open while the block resizes" +with_box 'keys ctrl+f; text Title' "find Title" 'keys escape' + +step "the quit prompt stays open while the block resizes" +text c +text unsent +keys enter +wait_for "💬 unsent" +with_box 'text q' "1 unsent comment will be lost" 'keys escape' +wait_for "💬 unsent" + +step "q asks before it drops unsent comments, Q quits" +text q +wait_for "1 unsent comment will be lost" +text Q +stopped() { ! running; } +poll "Q does not quit" stopped + +# ---- Hostile names ---- + +step "create a repository of hostile names and contents" +hostile=$work/hostile +mkdir -p "$hostile" +cd "$hostile" +git init -q -b main +long_dir="" +for i in 01 02 03 04 05 06 07 08 09 10; do long_dir=${long_dir}very_long_directory_name_$i/; done +mkdir -p "$long_dir" +echo "package main" > "${long_dir}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_final_file_name.go" +printf 'title\n' > "$(printf 'esc\033]0;PWNED\007title.txt')" +printf 'ctl\n' > "$(printf 'ctl\001\007\033[31mRED\033[0m.txt')" +printf 'nl\n' > "$(printf 'new\nline.txt')" +printf 'rtl\n' > "$(printf '\342\200\256evil_rtl_override_gnp.exe')" +printf 'zw\n' > "$(printf 'zero\342\200\213width\357\273\277bom.txt')" +printf 'cjk\n' > 中文中文中文中文中文中文中文中文中文中文.txt +printf 'emoji\n' > 😀😀😀😀😀😀😀😀😀😀😀😀.txt +printf 'normal\n\033[31mred\033[0m\n\033[2J\033[Hclear\n\033]0;PWNED\007title\n\007bell\010back\177del\n' > ansi.txt +git add . && git commit -qm "hostile $(printf '\033]0;PWNED\007') message" +find . -path ./.git -prune -o -type f -exec sh -c \ + 'for f; do printf "added \033[35mmagenta\033[0m \033]0;PWNED\007 中😀 line\n" >> "$f"; done' _ {} + +printf 'new\n' > "$(printf 'untracked \033[7mrev\033]0;PWNED\007.txt')" +cd "$root" + +step "hostile names show escaped and do not change the terminal" +start "$hostile" -config "$config" +resize 120 30 +wait_for "Changes (10)" '"new\nline.txt"' 'WNED\atitle.txt"' "␛]0;PWNED␇ 中😀 line" +title_ok() { ! rex block call -s "$session" -b "$block" title | grep -q PWN; } +for i in 1 2 3 4 5 6 7 8 9 10; do + text f + wait_frame +done +for size in 40x10 10x3 300x80 120x30; do + resize "${size%x*}" "${size#*x}" + wait_frame +done +title_ok || fail "a file changed the title of the block" +text q +poll "q does not quit" stopped + +echo "PASS: $n steps" diff --git a/test/rex_test.go b/test/rex_test.go deleted file mode 100644 index 313e63a..0000000 --- a/test/rex_test.go +++ /dev/null @@ -1,122 +0,0 @@ -package test - -import ( - "context" - "encoding/json/v2" - "fmt" - "os" - "os/exec" - "strconv" - "strings" - "testing" - "time" -) - -// realRex runs rex in the session of a test with a real Rex. -type realRex struct { - t *testing.T - bin string // the path of rex - session string -} - -// run runs rex with args and returns its output. It fails the test if rex -// fails. -func (r *realRex) run(args ...string) string { - r.t.Helper() - cmd := exec.CommandContext(r.t.Context(), r.bin, append([]string{"--autostart=false"}, args...)...) - out, err := cmd.Output() - if err != nil { - r.t.Fatalf("rex %s: %v", strings.Join(args, " "), err) - } - return string(out) -} - -// blocks returns the IDs of the blocks of the session, by label. -func (r *realRex) blocks() map[string]string { - r.t.Helper() - var reply struct { - Blocks []struct { - ID string `json:"block_id"` - Label string `json:"label"` - } `json:"blocks"` - } - out := r.run("api", "call", "-s", r.session, "session.list_blocks", "{}") - if err := json.Unmarshal([]byte(out), &reply); err != nil { - r.t.Fatal(err) - } - ids := map[string]string{} - for _, b := range reply.Blocks { - ids[b.Label] = b.ID - } - return ids -} - -// write types data into block. -func (r *realRex) write(block, data string) { - r.t.Helper() - args, err := json.Marshal(map[string]string{"data": data}) - if err != nil { - r.t.Fatal(err) - } - r.run("block", "call", "-s", r.session, "-b", block, "write", string(args)) -} - -// waitFor waits until the screen of block shows each of texts. -func (r *realRex) waitFor(block string, texts ...string) { - r.t.Helper() - var s string - poll(r.t, func() bool { - s = r.run("capture", "-s", r.session, "-b", block) - return hasAll(s, texts...) - }, func() string { return "block " + block + " does not show " + strings.Join(texts, ", ") + ":\n" + s }) -} - -// TestRealRex runs rexdiff in a pane of a real Rex, beside a shell that -// says it is the agent pi. It checks that rexdiff finds the agent, and -// that a send pastes the review into the shell. It runs only if -// REXDIFF_REX is the path of rex and Rex runs. It makes a session of its -// own, and does not change the config of Rex. -func TestRealRex(t *testing.T) { - bin := os.Getenv("REXDIFF_REX") - if bin == "" { - t.Skip("set REXDIFF_REX to the path of rex to run rexdiff in a real Rex") - } - repo := newRepo(t) - r := &realRex{t: t, bin: bin, session: "rexdiff-test-" + strconv.Itoa(os.Getpid())} - r.run("new", r.session, "--cwd", repo, "--", "sh") - t.Cleanup(func() { - // t.Context is done in a cleanup, so drop its cancel. - ctx, cancel := context.WithTimeoutCause(context.WithoutCancel(t.Context()), 10*time.Second, - fmt.Errorf("rex kill: 10s timeout: %w", context.DeadlineExceeded)) - defer cancel() - kill := exec.CommandContext(ctx, bin, "--autostart=false", "kill", r.session) - _ = kill.Run() - }) - shell := r.blocks()["shell"] - r.run("block", "rename", shell, "agent", "-s", r.session) - r.write(shell, `printf '\033]7501;state=idle:app=pi\007'`+"\n") - - r.run("split", "-s", r.session, "-b", shell, "--cwd", repo, "--shell=none", - "--", binary(t), "-config", `{"focus_agent_after_send": false}`, repo) - var pane string - poll(t, func() bool { - for label, id := range r.blocks() { - if label != "agent" { - pane = id - } - } - return pane != "" - }, func() string { return "rexdiff does not start in a pane" }) - r.waitFor(pane, "Changes (2)") - r.write(pane, "]") - r.write(pane, "c") - r.write(pane, "hi from rexdiff") - r.write(pane, "\r") - r.waitFor(pane, "💬 hi from rexdiff") - r.write(pane, "s") - r.waitFor(pane, "sent 1 comment to agent") - r.waitFor(shell, "a.go:4 (removed)", "hi from rexdiff") - if got := r.blocks(); got["rexdiff"] == "" { - t.Errorf("blocks %v, want the label rexdiff on the pane", got) - } -} From e35fb2c330ba43fa8e0fe2ec4c2ef9911e5f6984 Mon Sep 17 00:00:00 2001 From: Redowan Delowar Date: Thu, 29 Oct 2026 18:15:11 +0100 Subject: [PATCH 5/5] docs: describe the notes, the split width and the quit prompt, and retake the shots - user.md: the notes for binary, large and many files; side by side needs 135 columns; click or drag the line numbers; use y for a review over 256 KB; q asks first if comments are unsent. - Retake the screenshots, the hero, the social card and the demo video with the new layout. --- .asset/changes.png | Bin 166047 -> 122367 bytes .asset/comment.png | Bin 176293 -> 128383 bytes .asset/demo.mp4 | Bin 334586 -> 300674 bytes .asset/files.png | Bin 117001 -> 90556 bytes .asset/help.png | Bin 265150 -> 191321 bytes .asset/hero.png | Bin 428499 -> 446159 bytes .asset/list.png | Bin 41622 -> 28552 bytes .asset/review.png | Bin 193217 -> 140946 bytes .asset/search.png | Bin 104592 -> 75907 bytes .asset/sent.png | Bin 76639 -> 49755 bytes .asset/social.png | Bin 175146 -> 173045 bytes .asset/split.png | Bin 158821 -> 115169 bytes .doc/user.md | 18 +++++++++++++----- 13 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.asset/changes.png b/.asset/changes.png index 079c660fea8f88b9aefad50be7ceede7fea073bc..3ba60b4dfb5ec317dba5dad42d3e7a420ca45091 100644 GIT binary patch literal 122367 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 qk1H|c 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

|0p3abfw6rFOh=>pAf_Bvf^?WBYSd-YGoTZ%t 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

Whq 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 c?>o~83f%#x5fKmX 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 l|NpC@I9GsW4c{w;tJYD@<);T3K0RS>D^@^Mbj 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

R}s4E^JSP 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⁡JU~kVehr}%&ggK&D{5lIe${-?3mdoH)#+L7nhfw z=(G`KtGR$4utQ?)EMQ2{p;_E6(bswJ>gd(@jEDCo2Br2-l01pa@TS5+b^b?|a)K?# zxiZc&_)KdOKDmHidNY`+nVFv*Q6Z2(y+tvXu&K

8-Bha-fR4p8VQZbY;!1KOxdk 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�Ph?3>_uH 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 z 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�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

vGby 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 z

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

J3zj|(N1uiGAoXy_p0R-02&*!NipF<&w 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 bRE18qV1>j+`riwKl|lfIRGQpAQu%)XyfnZ@ diff --git a/.asset/files.png b/.asset/files.png index 08248ea2b734e852650422716ee014882f9b1f56..2f808c7e1df1d1f3864e376de23699a6a75db1b2 100644 GIT binary patch literal 90556 zcmb4rbzGF&6E`Xdh%|yAp>!|Zf=IJ;=h7gp^pZ-4bS#ZXNh1gdEFjV>A>AObOXt%4 zF4ud1_rC9c@AJ<-pXb!foH;XdzGu!xsHw=|KB9PphK7c#ATOptqs zW_?cu+C8%%1!+kwubJ&>Zd^39$L&>tQ+zi{n0c`bbUhjU)Tnx>=an)2pBJ=#;NLHY zM1Nkm0Qdg9{8RD+ivItU{8RORCI3`K`={jpzmwn7O*v1Ba+%+^<1bCAj4}?~=Gzvz z6G$6HoZSq;H-aT0v_kZr;%B7B3#*o=E7@r8y|Dj~^&E7^JnC6y`1AX}l5ohM5C1Fq zU)6s~-g})dI@amGE88q|z8rlkq6(QsTs;2M3i_ePm2iW0T&60@f$U)SWf!b_zNKu& zivWc6r-ELLyqDFy^q>#ffy?E0=f;Dpqm5bw=<>kG(_-4KyQDYP-M{Q_k_6S|@=Mb> z1C1qa77{6hD>p)SEK(exa}J)$qW#lIw+5M?>?K_|e~TVQ$ie#>1cwTnO(@^Ks{wL= ztS`kxcI@jY@nmfG|8!ZU6n{v&Ie^W}W75&$wrq9P{H413ZwZufn#n>xPLZ|h(f}mH z97-B9d>lsc9{$bP7Ezk>!dLIInVtZ)7zkK>08w3L;EM5Ax9|BQrvy)7Q07SrfamlJ z&bUyEa-%=;{n2=dn7g69UjYC))isTtvuxVWpIHAr3HD@50HlfZ5BU#lQ4q&~$UM(> z%g8^3#)b9-5Z-)!6Kn(raqY3_$jl5;<8-;ZP=&&jnK_~5&X6%2y=ND~+ z%72&_DyIWc;~`)bvs<}ucm7sTqGn$(vkn0uueQ}yA!d0C>bzJot6BF-vpT>2G&w>H>}!jCCM>>hwD#?yf%7U zPaq*C85Lknb3)n1^v~zG60E?(tS(e_f9M>s{XE6fKi~6N15GX4{KWtwph1{pR5kbi zx=|mG$LQX$9X@broLf#R{3Bm9g{E#;cu-Uf|Ww?~LA!B|v>XPpaaZ)M!`&CX)`-;p?^SlfP@p0r*>Z`3#V zCP|v6W5JlnZNb+?IIJF#`X!t;<2i*S9mTtQ9WNPqCF~ax6zZ7Pu?a?;U zY|6|3#x5!du=Dx&^|kNogxj@tZKI!+dlZ`5hCa~Kj)Gh^LFf5KaRKk@N@q_)pD#`= zut~;6HqA(*l$^8C&Jdd0)6v<}y)sr`QPH4BvMDCbQ(q)fvI`3rG>aZq;wjIkXQyTg zjRrU^%F%@6mv&7PYiMN2CQz~r*XfP+albox-xr|}^X1L6OTs&n|Dqe~g{8$O2N^%V zb`j?yrG4|0r&?ONhc$W7IV_~hZCjA%?qG}mslX4kC*O^7y(3#4rVR{qb_GRQOG{V) zbg(rO$`A@InntI4OEtQ;Bzw1)d2^#lOT&bv-JD`3M*5(I?1mb0ctKIa^rmA+#^~&1 zecxr%OX}9nuXz;!LU02qeNnzKHO0kJ(WzbI z*#N%t`84*Vten$a=Ih_22t@=2WR&NsbejCmRLe~nE(;gFuX z0NL>D1F{JooNW;I0sCOD2BTihhdE?;Xl)a5(hJ&y<-IFy22-pU_c-qCPB`u7c-h- zdzOFo0WC8~T(Jd-z<)IhREpykm$8X>?YEF1nbBbCeGYjtEvTn}t~&N2}O>mmh! zCJ}5w$4;sazV{W47_7(uCIbFSRnSrhM4^}Ep0Qq%rL48id#GEX&6P*LyZjXcMem@@ z-wJc5I=RrtIZ!Q^wWBoN)Sd!pK6FkENyP2gSzxt!H9k9;n+%~9W@Y8rffPeOM%Ez^ zWCGvkeMCeIpbN_h8lz#-v*xZYhg`nf4vstP>u=_3OFg<{0)NtC6Y?e`XBmRj^)(C% zM_#Q^9{V{uhU04EX=4tl!C9Rg9A5M8JDbJhcn7g-zs2mAJ=#&+IBkWoIWOD54ad49yB;nVjC{9Sp3a~aa0qdJZz#*h8S0?YcnpA! zcwu6ZYM2oyuw;|M9ow&45%g#wOSIDsSrq>tB{G+B0=3NUNP5Wf*Y6$ht&))#?8t{G zIj1gFRuoH42=*7OeAvgj=oeUZ;6B8!!qwqQk$f!_r-$dxrEa2Yl9QEqSri9J9M$ZO zp@Gpns5ChZHw2L%o?Cw5OsyH9lURG1ymPcRlDuY^qm~{(hJkqBI-(f#?Zsc=#&} zp0J7n==RQ*l;4YQKA>gKH|BO4yX>F9axqk+TREZu)Vj)&th!p^&kgHj+lmx@t}yX} zr9kHV?;Fu;Zkmup5<8n3lDSa<{{LMc?<<~ihwTZ95-jCSE;>aWdpCPqZM!F@!u6u9 z&{7GL2WsG7%1R7wks4TG(CwG*k34xXmR`kZ72Txyi;Cu{ZVxSFXs;2Z-NP4N@cHQ$ z@GYV@f;nSA?{Mjg&VA$8QoHx{156149e+kc1_LQ@LotFu=jGYE@HHG2P~XzwIRTPE z1p|{*Cv`&Zh&~DX=TCyg2n-4h8oG2&fDE&F8^&(y+T;r&rh83CW^WQtCdbCil`&Pc zA~vF4qZQ0irep4K3s7g=f0#PByKAx=YRa$0>5}{d+srDALQkD3(3Fz<#M0sF84)<* z04V1eWS8%#+U<$IN+NGXX#hT7?}bh&mcf3QM_=Nv!IK}dZ|(C5!WiJ%)Mu+1Kq=kb zg6T!b~B z0Dtc{UoaSBgoc(AYewT-#+c8P)7Zhv-CY?hgTV@O5MxY}nBw{U)dkx%18X{1C@x`u z9WazBTIz&FCgis!uuMltLjOXwNA1gwsvs-zUh4O*00#R{#n7wGpYM$>{QdpcXKH78 zJuPjd(B(Ff8oT)K-owL*rh#?uW@Mq^>~u$Rl`sYnka&H1oK*Vq6}tq2v&G7;Mao>RjN6`T(#Q{Pqse#Ruv+7Uh*1l(&3gR zt!(`AFRp|Erw01c4YZ#=%X#ikGE3(&gz{XbAEwmipS_5X>;uL}tz&cnS>a!$&Rd_y zh0AJ!Bit#wTt0@DP-f_Fnk5Y$^}mniRYovm7O=)f*OwCA%djc|qTH47p=ogPPxqf8 zQDo8Pk442p6+n@c#=Kx`8{6a0)cpaKoVCxES#0(eHA9pWgbeAHkwnqTT3)FU;19Ws_MHHz`&4;jR&d@Lo3 zk4Gthk73E{4yM)0y0jHHE4Q$A3~FWvhcSOEgT>QN8rN&dpPX;pEvm*Zc;Y4$+K7*vw6&hiAarR5b^ z0Zh(5(oC4}1PbMwKN#LQ`2zH2k_)wO^#~^$Lll(#B#3*hlT5c*#{NBSo=-cX<<)~* zJC1rWdL`wdQI6tz!uFV|K}RA+8f>nkr^!=2XQ@Vydb1%qPbOqR6BCmwn|p!pbQTXa zs(maP!ft=uGj!ZMrksTYvl~2zgN` zzbrM~MZ{uwh{R!7@4<3`o(BnW)!y7oxpz-J!Bi(USib<;KR6)uJ?RPmtXS5Qj*xpOK%MTdsUe zW4_%tUQe$|{9rl2wOCeLXz1i*e2yGhj0%ZjLL^|$WaXU07dV{ zc^U-5Rs8t=x47D~k z{eIB;r3o=*OfRs~_5e&;El3iyconEaa0IR!zv#a>bwXO~+KBLfdi$)cn;yX35TA`- z*?&JVIOwNqjsjuZn8`K=S-uaYgUYlLxHr+;u?+8ROLy;Vj?i^K(AW3?lT+x-r~B|; z<9*`)gq4>3LA4_CCUS&FESVQ$md~a_wsGfw@0yZ_hRU%ccdyZd%EbF#0EBHh%~zUE zQ=!t`(uThlwQQcm=>k6zj4i2ws>v83h;-^N_W%HLY&Zg$e#b4}7ba_i27GXYbk`A~ zQo3|qA06O>jJ3_$Q*6>ADEtZ}{)rHua%gLlAW|+!Iy7`xUEsaSh-O5fZP&)nUsuQknUokMu)+*4Z#pVW`8VV6oBc-GbE)KRCjp8hY$_UgzO?AAAnq;Ekfp$=0LC=>_(}0uco{kjs*QPgCE1woJ)8 zt|RRv6Kd`n;L4u4kTE&UJo3VMxU#e)m@!(1xAwp@tP4KYId0YH%&LNquLZhDS_^wX zH#*<&?6OkD=63xTVq)aW_+q2T1rfX;Cp20v(e0e!zl^YS1e2KNbha%K?t1eYSTsv7 zA&L0a+d2eCPJa#zvL|(QD;NfR6PO6%1th9;>$E?ut@_NT0EHekoAoZV@%z}UXj+kX zE#2lP!(x-PUcHhL4-NF~vcX!W$WvCx{~F(+hMD*(vf60iRW5r%+K0#)1DeothXMF!eMshTGg6&!0GkaEt%o8B)L3D5#;m{nje)PMZ{>JGdCkS z^>yTQMu{E3A!VKA&k+o1|8$ye%|~n}!P$+~y;hRg4_$};8h*88%nLD80~utPuqJe8 zV$0=G*da?*&IA+7Ig8u3yCukJ>L>9^8^0on&N%B0FfU4h|5@~3y)%Ae+`ELE5y(}o zB1amZOh zal5IE_IP6-EN+JODJ!_a3SN-RfuNFg5;S$D)ARcNW`%!4hnqn>d>m+-X8%0yO*y2i z+T2XenfZf3WiNuEG!$R+H4q5Y0(oa?YEY<%^H(ZRt*vAAzFC|is)8;FIq%LSf-P_l zB^GNY=RZ-cro=&7#q=zB+&tXNh0L68oKm^K*B6mAVRbPv>+)vm*g@g}y=3qGa4kb^ zhHh7>!SCC3E0H0?QzNg3XE0-FxZliWXU)F__ZBHE0sk9Ed`u3v23}>0*}|S=$hG+W z{vA1vtj4-uU`Eca43Cs^37y-x=mn~z?r5Uqq6Pv{Qhuw_RCJd*Id6utvjOUTVkc4y z;Os#l&Fo|%v^f|+_@<@A8BI7Iz+1plBgtNCZ+ibo6GhO>h>90pDm|4?(BS|hd^|MQw&{QaU_rDq|TKG2FyBO zK&3L|V~xZo~YId7X?Ojkd95EQb1;H5N?T-%rQ+`BeN5 zz-kFfym}(!SIDmD&2*8~cTP#som;%Py8up0Jy4g_$_Oq5@}s*$yyrqw=|7qk|9N*x z%)!pi8kQCK_2c$JP5r*!SI4s&v#rt>Gbt+-FP#ZV&84!Tzk2&v>!uA2RSO)+%VOwG z2Zt(~TY{8Lqqxcwq3BTp43-Yd6r!{D>cZPWjnTe*Z@HV>X)zp&vX%odLoxAZM4T3Y^Md>vRTMJhQeoPa%! zIYFRzT~kwCOLn=xKM<*bM7I9Q?QFj0a0J_qS6oNi)5e9MCeGgEn|%eMTet-RdDU%t z2)S8BSoQa3&Osg70F{sNd4;n#(hLt22AGWu+rA&Ph2U`GPs4x`Z7mPh1slL{#QNFO zQGp;R{66z#%bKWOK=gk@5Dhp2=ET&;woIpSlhOkH_Rf>e1P(`7cQ}(=HXj^4ziKBG z%ccB;3N8j)Q*x&HTyub`G(KQ#FGaqhfg_Y!kYXRpgIZ{jM2m_0F>#ba63*lbdTl(Q%%%xO}KJps= zqAx=>qx3(4CtrG3!||ieD4PVRvxIp>C`gT3U)h{(evIf1q(d2_}USd z+CSLKfZd{VVCRN|%a5(-a&=q-WkJ}*Cvo#P>C+zK;L-H4{bnVi2}* z{t`t#uB+Si$~A$YXoS7Z+(6zyQv<)$&ff4c%+F72dDSI$4toEgAo?akV=3j7hQHg# z+vhxObOQKaS3C7O^$mS*`-0F3H=nuTfUMtyzuON&e+=!q(2zwT5}6GoKFxH4VbjrV zq7-|1O(L>}-`!nIrj#tFPz&mLBwmpJt*ogiY{zr6+u*n3fcg;1%Q_O;7Nyr^ znF+>Ah5ZT z6;ch~r#9Uh^G4qarb7lW|AM@KPas|9SlY)KB=E!9VofCE3`gW@Wa&W(AEz4>_e|>T z$^}vsGw}ba`{VeTpj6Qut5*MLXTo_ngq}rEomq7#I8s=ml}opn6o{zm)cXUZ%c^9t zECf^`ug0TpOjmX;J!5rs4R`9k{(V&AFgrcs);uiac@wCP_8b)X=V-@=B?$(qoZRq; zzK?dG@dq&{0Nnc@ihlR)6_n)9kyZyx*`Qu`#*^lH*heTk##aPwxxlLd=rV25=EYiL z&ql3a(;lgwbUOPNK_@m)Uy-wu?e#EFK{1tXYlXJ$j1X%2B(#mZKn z&oKPH-a`#D7ix{z+&`ZDt#Z0>D|Q3d;ud4*Su65@u4gb^dky=EXNF9(EoFf+i+9HH zjwZ!JS^T`uJ9GXzN@|@JB`##H;D`xG>{)&vgpPhs|3P&OdtVC9;Z4dY z6f_@tlst+tzDy{(dEwg|0NvL>jwaOHzZt=FRc-YH>!)h6CK_dUe>ZXU^1jAJF#N00 zC@X#SByDCmW>(p0sj-qGXwBTpkgHcUfx@(X}2BM_~Ga>AoHo|9n}Ob zk3F)MgaKWFCC@89sT8kZOOMrZ8bTxA25li-M$9|CnNrJQ`L0BTl z6V5FU`0?=TpwO4^OsvBl0q6Mtv7T`co&%meTzh#;#W*Y%yK`VzrC=!!gTbEdSs}TS z%;JX!k=3sL?MCfmb42h|$_U^{GI`^9rnAtCU?h(g!b(d^$>gvHS;BxvQud7V1JzuuQ6+QHXUkD^M)-r``VmqCH)c@?YF`$IkgtOJh=aQ}kQ8c}?P#6{Qjs*`nlITit8VJ{A z+jEX~78-NY@!sUNantatxe%32U5DP!u`5i5CtJKCScw4uN{lHQf{xp?^`uC66k~X? z511^yQKYlxkIjZB+`F@W}|%jB~viirf0=I z7D0Vn&&Lui$gImuaR~(@q9Y*ZUMeXKu^sOGj~6m#ewI<2%r=aPM|Xe7Y#!AB-y6cP zZ)rZWtG1`MkEu+ISR(cHRk|Xi|93}m$q6WUKavKGTulK2J!GAOWn?jcpvIL%JMTho zQo$ktiO+Iu;$tT&qF7^BeWdVDJFL4_$Tnv>PmoC}i0zB;o=Z1|RYVoL$a!{%vUDcG z$`|RCB zl~3UD8n+1 z44jbQjcg1oi&^aoSyo&83*3;}IAgOV^rG|B^ERmGJl!c7QWByzV#6Eqr6g&{827=1x6r@` z(aarVEyQXRG;^ydw{f_En4R^O>r8FSiiFOb$9x#d0OR-sB4{BX+r+B7dPY~z2X@?i z(Ipq17o(P{Y1aq5901J@hr3=gZ1Nv)h~R319;McNG1pE#qkU<`k*BqRvnDt!9F{D7 zPyl)g2%Ns(XT}})d}v-D#Hyj(Bz`SVXTvrVPx|!Y*D-&4Zi@jc;M!a1ise5Vb886( zmwbJOjb{lNH#`i}@t{l?#t;;GX)(FDkvi3S7=uNl47wQOE9)F(chW^BQqNNZb zYV8*f8CI9;Tr>0LVSDyvU(-J1rhsT{q`j_$(-}$R!ih3hfnoSG>Vnog;HV3ADlx$t z`IR?@tnc*nP~~iS@7y$!pF`6hD*qzaChN<9cId8fvAodUqh4$>mdctb+;KPwyO zmjtO%6(110fyo*#9xXEd8k_aJ{z_m3CMSFngslhUm}S(Nv6q~IpuT`U)B3)J zMXR{dX)i%CY3ao}^bHrcd>0)E3YBRr+X@P=f$~XGYD_Hslp^HZGCpKrLYe!}1Zc-Z zs1D}F`##`1>$eszLNnql*aR{o@;Z3@W;W+p(j>!~gGizbdqq5oArZmk`Nl>%LK`j6 z=U19RIyg~&r2OGCn%K)h(j<;rI5Ku#l0_NO$4HatcFuZI(ar4mLa4O8NksU9lzx%+ z*o$?boDTV;+6W(%A#|0t{01)4qlrF)scoftERKItR7{54poBp2A0bo%095ZK-F~@C zCPAw5(|Mb&u@zP4sgts&zaQ(_)jfQn--;6}t)?J9l>B<+WuP+iv0+ttVJlLD#cBKG zfaSOUc{VZXKvPNG96VL&K85x4ed*(;3BrqyPww*@F0;HPxO{~sH0 z$pB#54R~+$O?^V-%pHyxTa{CITWDi8It_h|uH$JOBf@$(%{FDFDYx5l@#95}trs_c zeaD3PqzLzR0Lwe#9u;NL?6jfNOw^e^IS-O3Mlm_x1j%#q=02XJy;YdBlj>Z(&T+9A zFB@JiFN)Yr3^Q7k1y}=Odv8&)jr$9z6@)dvXzm3H^C1`nvX89v`;evdGz`gwP(B>J zXG591Y@$!TmW{&=3dU{=3WV@$UtOiI;Bu3T+zY|pKHOmdC_ zc}1*mN9tN3^&c00!9>>tp#`}PTBFMeJZFD&S_)Kx9klhR5t?}&ApTxXu=vpatrMOBUkyF6V;|5<-|(iV zK|xr1qxh6@ssg`qnTr{zQGY)qh|h3r*8;(CA}fQbE2-NHS*ZFsF;4Xov1hSd`QqO& zSlA2c^2S|`SC!w*|LX-;WpyW2&NsHO*pA(q7XX&hszM(Pfmkhbbr~0;V4;Y zSP%Y)Rdvrq1qjk7J^d@KZm-Tg65me78z+~H_XxzY?^a;O6zP}po+tce3l%`w{p`WN z3E9rChoxty;T_*l!R&`#AW3_~+n*)}cK4;J0vF(j#Lh_<#g@r?ZXx_k4$0th?W}t+ z;QSXNA3K9Y;uQ^oq>P`q=}4k?r}0A3OkFvz)Qo=TR>@0~s1DjX?nbto_QKA-(~qht zP9tCl&&BUhCE@Ji47aZDEBrBguhmchcWeaJi+>}co_aPwUMw|GUbOf(5d(j{^vajm zZ^n8OZ#&a{%~qZ4{L|yu@okcgM z+m*Ij;D^Ds+FxOew2W_zMVpUp+JF0c*iwlMFy^n3j%7~rsIB=o$hec01ttQ7@1lH5 zctJ{KajS#aXy^c0?)0ZVwFYKmLDZ7*#(u@5Ctq2GrEBKF4NYPJxSuLUIQKiP{7Rea zr|m5h8Gj%8HT;!*u0FH%mkVAruTIBp-P#B(yB!U`%W07(_ujlai za?yP|JF?1w1F>*^tjpM20zv(ue|+*a(S`f1_=^PVWxzDd>dQ22N1@k*fR zWQCJ0%m51_6?t&M6C3cxtJ85zN&U}NJp0>23o+ zkO-M!_Wk1CpY)13NK=<@zUH}$N@qSiv-}ODr~Cl7SoB-WthhXO$2epLJ}Y2?ZL{zT%^3AOzjsXJF6+O00($ziuQT^a1F7fIrN#2z z^MB3N`2~^)q)cV#64NcLk6~%59a==uq)sV(2~Xs2uyUAAcV)hMt2~r+CiW~5-(PCU zLR#x%t+hJ56!*KVTULnM;|bQ>jMAEA4yVm&?WSefk|rio=H}>3-C>9M+{8ay+YWev zExP(9Ce0ms;3N1DgSj91d1fYov3_qTb{ z>E;=4@7-nWPDw%89juaT&G5$;#(cX?MYP7Ny^bs780|J^FGW;}q$nM?RL2E8q^Ehp z`bra~JA?wjuJ!Hai0+@s!8mx3`7u!=b>q`t$z+qQgAXUoeQNG4BdC`P44=r1Zj;GU ze~(%u2heQKj6|>hR&$-dkRx2SpQ;q{2B$u}gQ}LT%;d9L6Lug6GohJfX$~8M71I(2 z=`SAK!CP`DK0=Pne=Uq@?;ju$ZN>XaYnlr}dvuSvwh3m(er5aRe-R?}h>z}S+V7M3 z3l@9@Wq&Ng@O7KC*6eaFvkZJQU;d^oS(zpn4V8*ojRvO$rFZ!UH+$qM_@B0^3IhBH zg8|$F;u>z>$HMREApqdWRu}jP)es#OuDVqJ{s9kp)3zC^vx0$YuYp42PD_g%pMQK; zq{hv*QoH&9)dZEY{oacOgd}i`o*%BOw~|{f{HhueSu*ycV~f{0^x6W@>g{LkmYY{R z`xjjJAB^w)YXKgfgkH<8?(YA9fL`eu#ba}Gb8vY6f8fHpXpDc+Kp-mT_W!{Qv$0Vl zOTJU+XTIYDm4SO#JLk(9-V<$lR^nvsgAVS>!4-Fo*=MJLwK!Xa@lt!&H^3?{pZ32R z5CHJwmg0wdH#R<9gyh@a!Ha30xJ(pGgV|Y^r$t9S!?)+9htkIOB!ESI5`ZfW03zOO zOL8|>I7GF-6M-12Z~6E!rhxkNsBmIJ;^u;PWOULd`%W~gu*0yZ3`2vW!ooaj78L&Z zC)<75YU%uBH_O4#sLA8_ohp7WugGb4PCYI$3Ic_RZHi4FFIo$Win5^^fXBVPs~q2a zscY!`hgxaqFLGAp&ViDTc!D+uGN$nGSMiY`EaGGAZYL-r;&)KJ9sr(N~SZ7cTF7B?04FA zQqE?`mR3*vL|Zf#!0}RK2GY`Uv}9v%GOxdQvwBSzNn=v_wRw z!^x7*1K&S&`tj_52({{M<(r;=Abx%e_x#li&aNL?;Cp#a^GzbtEBW*FT3*^2&JHL{ z&tu|U+>YbPEI!ZJ@{PP zKg!xRppl@7hU%dInW$)IxVK?^rMu_L4Al?_&q#+JhHj_Nv!LGZjhQ|oMGb}+FzoNn z-y-PD&bRvCE{T?IXquQDrxlrv!%r9einraHyG=xRNzv28-g4^J&MF77;Mg|GFef`S zEk;2Y?-bVF5o(PFC3|5Gd@=Bx7&#&U5F)YxF;XLV6 zB4ttjHfFO}sn_@Py4@hQGIo6Gu=NeIPPP5J*SF4I`Z^#&nvp3H<*m0yLPuN!xaCKx z9Gyv4)lt1`*gh|*0{sH|6iYM10;E}j@&RfFYLVpny!|;ATQHSuLBof&=!W%q^Mgq_ zHS-|`;%WSs0f*IF@8X`E<%i`-M5a_=#+yL}|GqVWMgYpjs)(uu=l$T3Xo4N<_A5r> z54bl4Y-eF>YT1y62K1t@7k)@lKFM;5b9^;nJ)BaY|C6!07%LDf+$~N<=6PiMds7mE zC!JJz=KXN|{;{jjwDgj59AWJum(4C5GKcS?rK0nX?tvp_m^Un9 z>Qog!r$7|mZB+BE`My%l@rw=`6S$D8{zeRD39UY#5b}HB#<8%YuMe+ujAlZl)bMH= zsb)d=bu$a*vx*oiMi_J_Vje3N#4Y+pIxy5IgIOqQz2Cg|pp9_W6Y_s`XTbkFuR#8Y zROrB%UGWmmN|_Ez;e?VR-y3m111XUI#g6XHYkaWn{*l4$Q9Nu$Wacl4MCIIq3coqr z-X6PMW8=UP6}`aPpTSTPFw5!)MPgrW(}$!bs=?Aoilk#Hn{MRjj!Um4W$(Pw#xS!1 zh<1mJ*h!o7iRF~7Z)qr$Ui-Yh1+3Dei2SIJl7N)GaM5tJ)2=L@W|`cyNeO~sOFOWu zOL5(7pZ2y7tiNz7ngrp)PT_Rjv_DT^Y(oa?IknMOvec7!X4miwJcSM<5Qv8b<*Sbz z##O@Y>HvUI#V7^|uw!a_0_PRY-?umJIEN!Rdpi62`n;mX2iiY%hgL2=)tr$;2AqPU{Q}3na&d3th^n0-6$I8CragfhkCM{r@Ae+U2tLI1_7Gd{|C7!&b zV*9-X4cdGwONSH58BtLLU0hE`DHhrk8HFOdUFXT-amwD@3xInZL@@*#%z{i1!AS;t zz5S@yxun{uPACSdZ=%v0h(W@Vnt0r-V1Jz zR=@fab^JBs@1b)IP`Cu@XxWS!iLYhXIleZ;yu?5nnItVO2h{Ma{_ytl5UkXeYt|R` zD~Hpr2UdWv3hJdVv#O!qEt@{mm0L^GmQm{i`p`Y7K2c3hjsgfkU;IRBK8y zZ zNDcfDTQ+7b8s`Rvn8?VsrQF%kQA=7Haery%wYE?>S!YIoNvmIb?xRUWfu457ErKQo zI?&>Ue-G`lb7rR+cfg>Sg951m02k||Vj6+G)B7{ARsu3h!Hzx+B*LrW03_yJjdXD$6UK^!A_zsc*_!wbT zbo~|OtNF(#^u{OR;7?bVI^@ZSq_+j>M~}Ku9GQQJCjKDM%k*x!o9`cv?v&Z77xay1l2D)8oK-quO$_oaT=%OuE=&#%cO4^u?J>}bM(_DZZ_K}D5*@lZ;qXKQflp|Z?C7Aq7ZFQ4fM5kU$;6e6OGavye^pk?cO zOMz!|4l3w!i!wd`+#N;HzaQNP98M9HnETpTp~AOx8M`%C@|ApVViCw4p@bmH;%lG+ zPfyK3qmUXGk_AGHgMoqsX#2^(&A5UoQy%j60R0dJ28Psc!1|e*x&8CFh24`T>MFNM zaot~U_|DXbx*YJP-a3@^TBdxcc$jy3g0KoW7y^h=yUsYv&<>^O8 zD?d5qSOZX9QoXDEd=Bbt(6Es4`;T>tRq1tqFB;^3?6xl(YV|ty(o-tXt}$gg*=wp= zChrwwlFv$TJ?9s05K#0`2MrDm^>XmK*35K9!SKJknAzT|q(S>_{{X4s3@)BPWx?4W zh426dN|&!@&NGNc&UEmC?$af8UMovwMgd6tx3iZrDRYBg>$tRpLX#-)6cj=+yT3!z zhEEjmGWrJJ(zF<6*`lcLfx0j z)GNdGVF!?p__Tc> zHY;G1w~NW2wf)XkEQt$dIm&eDJ4hKL+Wct^Us7^jF||&JM&J3luZb-KQj{w^1Nzhj z@iB$8-CF|NcApvMlyA;F1E-?mv0ZHmhTo=DS&Ak$c$>;?p=Cqo41^?i8JRI%& zHSi|zzl+C*1#tW;<+YQ)c$x&RG-x3$XHB}RU!!Iv%w&RLnggtlvS7z{tflrz$-J(f zLMHltfu5)Y6)+fO>~yCb_4V}1&tU`Y-@B0-vgND|b3A42F^{4&C-<9?lm{WNWh6NO z#nXjQdNZ)|Iyb=B;cX){?Sgn<^Wy8F=CeLvx+~Bi2{N`_fI_^EHVyrxBhu?c>$Q;y zIb15a0&X8a0PMsC$66F-Oa;@orKgRJ8~zc|D;V$Kp_?zFi~Gqsqwz2Npn( zR69MOdiG%V9@=vNelV2YQP@T08{$T@sus$(od$&`KG$U55PPNl$(3gO7-f#4=v0%f z+|r(AC^moeMLCXd!_Lx~STY}0TTq5pf^DUsrAtzUWPuOllwaNmCEv`*&x-pEH?Phg z)9CGdP)?`8n6x(8(@Oe*$nM}{w0!=3GUnDXDcQHbk2PEJ1^R~2El1%`?|jJf`m->( zZ;M&Eab~A!vuY4?i9yI%{5cc&eC27#4E>aYk!%wDwzRu=22PlnW(>C3^5Y#{CrIPU|NgX5<{B%vNP?Bag6)05RNJt3m?fV?_%N z^!XUlTRBI9BJPFBT9IwoDG2ilvnd4on(z=6LD#J#mNV18F490rI5X>m1pe2qafJHvNw1y)02dybE8{KZCUPD8F?&-O?08LzZtthCP#Tjq}gZUOx@QI0g|gL+bH zUn@S;b)D^QrjLv0&z^4Eiup3n`0#nHmloilROG!^L+XHGod-jL^J9F>mpl~qY^7zs z%ht8W$7v28>-}k6g{#_>b~ggQ+K8Fh#ZY+7oY#g{xi8cxC(xR_3ubBG=Z)$H?Y-P` zLGhW1G4(SX7~-fOVEy1OF=|2=N;wEx-=Z%2GL;#?^u3!;=wx4^$_kND_E&-z0YF!S zQS@xL=kh~^^oYY9iqU%!2@#aL5u0+ZR9R@e8WHywhLmE({ z7dg$RR;jFqKP@C?#-0DVj{Y~cQ&GLU9#0I&+T8+?ol-e5vxusVQc~{Cb_1dx`w5MC zauSMG7ubba-4T9wVIMW@U$?u}!igd}e*AdFn#}VA1(W=NJ$~42Zfx{g*EBab7yg_1 z#r&(gOMs96!QX!X@b|!fWxCxpw3ifn_r}+p)(z~?AAEqlcDH>f{CyJwb)K^-xcYE?YDIR7)54Hj(TyN(C|lk!j~k_)tOW5yz=JUEwuTi@!vGc(!^+n6?LQyJ`8 zeaCwR+`+1oG#h29*D@UbozW&MSDZsbEV$zlK<6S>!2h}~x2vG=U$g@QsE*eKi zz^+$XMg}&fusHY9*ROZ%*gpqZ^Q1k%#Wl>HC!Gr?hc*=3+4H15Ua=C%TF^7tox!^6 zhX4@80$LbQ4tr+O`i{;^zvBQ|ez?|7IC$&bTHb7dz$A#M%@T8GP3pBS*S_N`fH=6< zkKa9Ztv8`MvZcjs3Q+I3xbeTv7(p%m9zu(UB8`nvqM#eGmrr8$SJ&#x{(`Ld*(vOC zSF9Z8{U>Gb21hN0$7GzKtL3fAT_t6dFGj3dJ1w4XdkXTxI-Vtb%2nM7q6M@8s(Pcm!FxAJ^^ z4q2WkzU0#MOs$l9>pbZ2WW#l+x#;#gLUZpDuhU%W)WUdv-u<}SdTo_&ZDHRJyR*@P zVz8J4VRY47e|(G$qpm24iGB>=1aLI#O*~?-TBK(HtVA8QDRF$xRn=DBnHmeOE64pZ zQhc>|wB25}*TTlkiWd)=shhD8&yL+PoVl7lT+{87c4!4#n0srO3}4$JRD2lm&O>Cp zdG3|(?1=L47|zZF+92OL>13$Sswm?W)m037q`E$zT+Z@z!erCcq9&)JnS7}-pajv? zf+N;qRaNYSZXK4q4Gn+VC2Nm2Ke&!vjy;CEe}VyWBw{4U$*HvGT93*HRc2e?<>j^K zuv8eeI=MzFD!N}>Os_AkzZS`x_c@vFcT=j_)$$=V&=jmFosx0aBaFqCde{SmBeo!r z*6Zz4=(B%-7c?}~=G6tymt*hg8{Qmf(0RHmSL-jH=OKO+CSIF($Ms6t<#WHL-q7eT z_O-Nq2uC9K<4b}a>7Pf}kJJ?$y@p%)-q`-Us(U6#L<)KS4KIoF_I&TO57XU-TEe|g z+}Ox}bx-k;>*e6bea$L5FD~xYt^(?v#=1{|32g!-WQGRYY&^cCr)jC#Bb2v9vR*?# zuz3bA7oTOoY!|$NpTjC0U|c=EEyqA(+a7-~yxtv5{{YT_L>{ZDsS)(R@CE!jnh5XI z?XTxKAkofsy^)QkS3VJ<{-zbotEb<{ZE1kQB-Yk01q2zmEfFD4-~~&D;~)FkGb%6L z3;qvbUjY^67PWm%M9LtgK{`h1Mx>PPW{~dAAr+)ca%iL*qy+|$jv=HQB!(1lhVFj` zx%Ya%?_2Ai<^aR1Q7)wC`5NuuxPDwVPWnjFEMG{r`2O0 z5(#PMvde;qUazI{C&fPtWMph3;06(0B>XaZ4-o^}aA?=qVDuR)Dn15W&-rU2-a}+U z(k`1mdRF%&ZY&O=Mf)HV)B8F++Fq)k&24YI49tFB_s$qEcW#-hqoCG^tf$IwMoBsa08deOVZ5eB*>oVku#hzWd+n^WSyCyJ zN;Y>rq-yQ6s1x;I8o*r3LS}H_tMmq1mLURWT+#KB5jDOJ%Wi9PM?Hgr* zzP=cUm+Pg?eQ8kwpNrNdC2`Dyuu=clD><=gzPAJ2vss8fBrgnt3QQzc712$ z8DjYEif{y}>+&XJ;pfow%)-kECgj2P5mrAgV`)acu9mgxS?@`wL`FkpQ1^WLmQAO+ zduILNOb}xD@bmrjhg`Z4Gm(+}q4K7}9qhCF_kG=Sixt z*z-3~Cn(N9iMX7Sk*C`%UQbqFJtKK|QL_&NdRs>odXnOu@)t|{m|czI#GTn_!JeRv z+Qll~>Ff@#B2)a5q6Y0`C%TW_(AhGa`}Uj(Rqy2W^d3Pxw+quH*YoaU&k`eGIiL2c zPi&g9HfI@^*w5d!KMM+&&1E$ut_i=WEHI}bFECWPH!<1$#i($l{L>Go^jD_{2LlVX z2Rr@qWf>W7Dl|fsn>|aVh%MKeAYtAz`E0L%Q~>UvFx|utb$w9iSr7j%LhT0b2gyq} zbUon`o-7ssg`Pg8!_)LWnT-==6nut>H}U0bl~s-k5KIbCT+AKW$jN22+!XjnrX$UiRTkZn^_SgyxU&q}- zJOR};o$pi%-(9UJF8=9<<1+xgLES+TL;+C#HVW3{woFQBg3P8To9=Z)gvn@ISQ!W) zHPS+&e#EvO7{K(zzjbMNyv7G}GInr1f+{#`$%)Xk>{wznNM zfxycl0M{PvpAw8^U}SK1jsjq8MUX1H7*-&LZGH2rgzxz?=i+JwL9DDT*%KKpjqSi&qjaXj@E{0rzJTC;fa$=>A)_YQrT~=La zU}-pqRvk;>TeDt@Eq&iwGM{pbDd>?t(W-4Nv=NKv-hFpD+GdW0CHPbwSWmU>sjLhV z?^r(hN(^8)>zuQI#xbc;sh;Fo(g46f<}*BHnnV0}d@m4#Q~-B9X!9svJQpjs9U-m9as>G15Y)^Mszjxa+m>e zclbEjw*i(!;UZB=dO)eqT8nC;QPcH&%`^F9{JNqb1_rZgiwkSWB0@>yFfY`Zo%3G{ zT>6yny}Vi+n5f|oXA5${KI0Uta>xoGNr*N2zNa+C!%`}d5Hfj=+`(Kyp&BoATt?p^ z0cBpNYSh(AtCvmNtqv8J{RNx6jYBZdKM?WC<@Aji4K79ruls0q9{w)rdhORswRUlB z&c|jRTbn!a?3KJVj@mkdk_!&bCdR7Ht-U68XaNBnVN?K*(=(2+aLfi*`5GDZxpQcShK%vMYW<7b zW5LRzULDVE_6=W0qtw9-SQc{izlV52S8_5`#Dl303}V;$R20p_2}i_el`ztTCMdu} zY%G_IIr84Dr%O^LF`&4%m=+6&ortQPtY<0SlUl6saAfVHe@D)08`1((C8?<@&miq~ z*;n=pj_*G&>OzXqq!QzFteTt(vWs=vYH^!=HsiJ?)CFm)Xi!S>w?ahy{Urpla+RCZ&acDbv+=WM+kUm^h7gwKZ?nj$~cf8!yBy=xcrak#jAIQWI zZ@r`-RALAn<@lp=vC&n(&m}Ed+K)@@ZJq`se@SNQNBbbyOY#AS>ao#BA4&OPPldbU zK5A%a9zRys1M7f1e;JfCy#y@T&nv;GsuTow?ZGhg9S#b_piV6QXB3wf5^c zf6UuJ=#QV;?!q>`Yl&wzoiJB$@W=#o7AD>58ZS&-j}8U~Mh;9nl-@D_)4ZAafv-uW zX3<#K?e`y$hi%k{^-Z-FR@)a~8S%Y;4$HsP1-QoPkw>;06tUka4jpV_8 zo9y`G(vszYM8xDL9~vLj&bvlZ_e^Pfvou>8zJ8lWJ@VdI0GBD`Rw#Nnm$vr3J@mj5l7w9a55*#GgD9dc+3HuZo0iTs%R7^> zozl2h)y-#(-zyyl1bG_2Tm)Kp-M#&Ra>UMX5Fdxm2*QCC))RFV+3!HZ3&sy?yu(>9 zMwJ*V-#4!RKSgZy{f{X{Yr@m}rJ&8MWIwVv*+jQ}R&(#j=#4!lhPd;-{NfjMYf*Eo7z$g-3yLD^+l?ugRn zjpVGzyd2K2JRp(<)6KnhlqQBFj*fjrPKr~sT(H2CnMle}ihVPYcxPy-cO z$YX}e>Kq~fK|FYNLSU>NJLw9$_1Dodfz2^+sl22@Y zN0{HcX%4zg4UH-DHpR>Jz>(WIcA$Id!tp^-p9Gb|Sh9|sH-e)&_bGr04KTIsucR0O zC@aoi%F%feETI~wLZVFv+$4!ZWg5MO2;7Px$V19FoxEht87p7_E#qFCizwJ)`rSge z(ti01PMet^+nv(2^bR(|w)n%tov}I0hh42*r zUT*F%bC^#IS+?fuSD8WYA3WuHEPiPG{;yst#!x>iDwgC&t&GWjR@lp$c`ZZ`n0uihZknI9JUKq$Hm?mm zbWr8wbSOgb%ga4^62cqgj7JWQO7IUG&iT^Srad3+aD+y{f1Q*d%(ArPkKoRC%^;q;#7Dxz>(Ql#J=O1^EK(1JBuiiye@~ zg515*pF;?2vvYVE0QQV^@r|ySLIe(PK*%JQ+Io3q`|^vo*$vEmU9T-N8)l#r(lv3$ z>b=sBg~wsAsyN9eVDMgGVTrm|ktRh^?pGb z!(J;e&qypaRT~)#Rv6<~(QfFMPf!Ey57oBfb2wBKTUt#&Vjb;?C_19NW0~ zdU4>x1@Eh-rt%NFAG+T-&wXT4AEQ*RWVbNMQ*n}MPEeh*XFy_S#e&oBp5nE4&^<`h z)TCn8XNC6mvIaRQ?qjH=iIvkw0=N4f(RVp3h-Iey; z(s8`CU*A{0olx5k!^^6Rgv?@S$eXU@F#e^gUb}w;Mf8q6XC|+$rPSktOR-_Ul^s;L z!_U27s|b98tl|;G@kwo3D$_eTIYH=j?YxZ#7pPY}7RkvPC#g|3Y#cdO)Ao^0#~y#Y}{Qmf zw#Bo4oL!h>i$&ZIB;W$(gp&lYmoC2Xj@M=$8c`U{ef?=VnSMFy+hQ6@H=O8Qy+;T) z{k+KOF+#vcQtd#&S`suAaSFwZ#iF-EXej~J_o6=Uc>`*mgikyUhL|C%rHp$iPr_=+ zYpndXv_J*1d1bcmXJD``;hBcKY|~%%qW>mT(*tyw0oBE}m+peR_sq3Gb;rY}PEH!q zBKnWnM4V(W5w$KgstV_s(f)z4VA;r|^6DCRQ6uEzGqE)dPTaj$pkVE>C&nB|csB0Z z+Amhy>)-sJl<6viYXH)51t}gEeEZ8_`B*Tj%2!^zcm2-bvxthj9F=5=GT#J zgoDfFf<-GAIrqPr?MO_tZG;kES0*|m&vc)(W7)kECChx@qr#%cxS^m2py0jzLQ!Ou z62(}iMo5QPaFDhM5(-hHt736cROiiG_o*g18!tu(xTVd z*^zDpVxWl*f)GuAg1uTMjAt8rf_`}^f-LOecdMW%xvQP|gmgB~O?Eq+MJv8M6d_dt zi49Js6G5e1K+g#Ms!zWDo3f2ui#CZMqG$L+h-3K9QCY7Z9|K@v*Yj8zc(_nhcppnP zyqA+q2`D!pV`%wf?hKHjO4pC)f zlz=DzkJD2zNzH5HkkjS3YO2=_T}tMbPlVvU3=YaHU3px?7K3;cwFnLpsN2oI81qkW98i&yCAZ^5RT~OPL%0PnEZr6 z&|!Q(jZ+L55v^AKqzimk*F{(%IHc4EyO1G{kuaN^hXJ4{Zw`t5;oM0l#Akl8LF*gm zkMjv#W`jn`WtBGB)6*&7$M+h>%7>>X8>wKhJ|%bzz3Aaqwr+`v&%@Kd?mS5mtDjje zIrp@PmM8hoUIqx-*dqUH22FK?0zgna-mAix{^hj#o_*Qr-KC2l}wHj zFRquA{>cps&Am^8zKA95Asov1ch@%^!XYYw56TuMStW^`k??AlKAFXLP-O?$C&SL@ zz1#%Rt9S3WP-K4~`Ox-aQNi(Ju}PMe9+!GhnAtPmQotmDfyJbHD#6mS=)m;AKHa@@ z2k}Yd(WyZh`3_my+KwZ++yH!j4TMCS(RAsMeg&CTg;)GgKPQ~zDqq2K@vs2Jz}bN1 zY+bd=&>Z896gac@*Zq8b%%fBsek(Sh1UtBNP55$UDzf%x{Wy+VDlb0jBmj5lS~lj` zo3a{Mf)WBSEN#rOJiM#-Wg%x9`*C*M3w7MA&z;%nSXYzl`5J4pt)!QXZ&ALq(T4ma zCJbVd+Ur6hqc6dBzFfUhb#)#5^~=t?rq76Nv0+9a&2Q{rs}q_dzY`$HpX}iqzofk6?(Ovb3U^EFd*v|H z@7Y`|6b9BWFoT?}wu{X+mtOvwc3hc1J%v_FR=YY~p3byw2m5P>>i3vKys9!|yP33xGd4k5h|^z@{WFnn*O(TLc%v)&)#G#K;n;vOfZMgJUh|cry}8B$ z?|0|ZxN#XCi;2cx$1lmR^qv4i7x+>91c3#nT4{v4I=j#U1C%zrP=WU;QaGYucqADe z&PG^ye4T`ZJe{{ow?k9MMu&%|=M^+Dxch0jk!>rBL^u*O1a=7ZtOz=D%$T**{ig%ndB#e40EPs8rY6> z4cS9>y2gfn>@>3Xbk@?&EO#baHu~cL7Sfy8W-1+gR@Tr=v+O)(?)z+9MDPr3)III# zOqQlw?qtsj_ijSHBM5BOO~7q)ez`{8Qr<~hc?;5B=Fsb-7PmnF?h#T+Kzc$@Lya6rA_0a1^DS*+rQNEIIAbFB zBbW2>37*YSg|g9Af;sfJJ@K_e?+6im9?eZ-Wp#~Ps{B!99cy|z<&Z?XWLabB=D5un z)#Dq_N(sO7X_!7CE10R(gbo;hbb+x*Tki_d<$`r8ikCO?-17${PdlV}Ulj~!_D)2z ztJ-i}%}S=mA*dQfvFrHx92IGopvk6xUra#(yg#_PT0h_hkdU|^sJBjH76INMN<2jt zxFh5FWu09vK2sw-?BCoNRAgfX*FW;Exom02b7$eN3-NKioImn>2i=N7N4fu^-OLsH zqIllMY5EK(g4?ArTB%wi^T-vWl`;>$laVsCCGa$mC2jn5qL{EzDi0wcDFNqo4=^_v zMW=%EX&G62VdeYO<3fAGWQOd!?5r=P0-_GzTwbr%YsKwCpv$`9l02i`(-pB*nUI#c z?b->=h|*6iIzEDDJRmYLF)eDM-`m5Md=IavERxnWSzGDJ35i&{1>gjaYc_+jgiQ2_V@PuQ&T_ zVQbDZK*t0|+wB`2!tw9aCr>f$V#*_itz?>1N+vJE3R+(iHKnBui#7t&e_*}oEmb(|`8oc6A@m3z#M29NAPP{_(#mBG2BYx;fsOW3 zwA*uQqp-dTY1T;7_8#BOdYM1oJ1(ie_+*<)Ai2qL4*Oy$$Nr?E_-bRS($z(Q7mes0 zgqe|b96%rWF%D|GGaq;Fr9C=6SC*XJsdob)PWbQlssR=C2?I94QC$3R#QQF2ZZm#& zcH>q`eG1T_$5=|Mm^r_I?w>Vt@_~jn?@g7qjwaWFsnFE@2$fzjA=kaJ$$XvpCPzv9cDm=9lYQ|M)KB-8)0*ud9Szk^Y z^X1o@#A6}F_}^Z=Dl)*)m22*=r}M@C>Pz#Q!Akvp`B>FKor4Bd=OziNg>T=5eU_zz zD-gX%AWF+AUeK*hX^iB=l*IUhE_ODf%zl=>rzjM$VDRp?n2Fkak0-m=u~KTC3K*$K zL6w(e%f==yzOxo*r3nk{*V+U*X)@p@*5dW4o1sm6?s>|qO&9XU!h5Dh4^>HE7bJ<0sxNW)XMm`H>Ay` zzq@|~5EUh8(L929w-%ln=$j7#fW7uI7d=tc&IfF`Z2(E5`2$1O2TM8r{rQ}1IzUae zg`zd&oVR#`Dq?(&bo~Z{1JC~;FV>(=)+z;zRs_Xq1w5*hO;ltA=`(3~Y*|7BP z-iVOkIGlkSbr_7aI<81`%y3?ZiHYtljPvQ=USy<6OWVT^^tLI?ZCzYFjMsz2?nRs` z1T8_}#}HY+?YHuA938@5BqmKor{%Mao}7BL zIQ&eW%Q<`!3>bx^bVf^gnS5S$KiPSG83O43P^9WWk(QL1k|(*b5M(Y5(%fJT=GM<5 z-1pg1G5H(n&rcT)OKUq7=`i}Heb#^J7R$X&n&1KGMmL>v@=<{r z>*`v}WZufg=$mOS$VixsS8q*hrOG7>Cb=@B+~0pEr3Zo0v_Qr=BodxN9Ni1J*ShGY zTMA%6Yj}LTkCRJouJL*>ALJ`?0l*Pf<_tc{$Q?9tw0<{48n%bRf*!P~4qldq?k*DMW_Qnja@tZuBUVk5uW7l;UhD zFBv7SaJ(CDCpCA(h2Q~d=G+$Ja6aEBf20z-;ZMc(SPb3>>ekO8hPIW67v#>LWOBJ1wo zF{}4^+Lcp3T^ds5x>S*D-2nY%japPM@kC^H|M6WD7ycgwyvT?ba#MOejyHw7*W+y?i$3Hc78!Tk6o1-iyszmwvKPXKF4J80T zL#3739j{(Qp%*it#`tDeE*cINDSb!%e?N!HhP@7BU#mN~gXfYlH73rPa`Oq|aA3!X z%U0x%=SW;2Bq__w%Ln1I{HVLVkYY#vS%N7n!-j^2m`c=;kIrl#kE*DZX(^+Azu_=2 zqe_7lz?v$Q*tgpD>&MC-_-Tx0@}E7J>C_9rH@9c(ebgpAf1f(8N2CKfq^Z3Sbf#P~ zX2po=@rEaAc7DB(v!?-QTzIH&Z`wvN09ZRN>J-anR8ZgEyj{|ySu6CcvaZ@%`43(M z^kPIt5S8sm#wTM3T#8J^n9a zPXL2y^dbL4TA-a=lU18JzOXB67nh?nA4)^XKVD3d7A*5ZkiQm*!CX)rPXKm2$sGGb z0>4+-Z~0z-{hPPnvDDu}`oAa7?@;P{_=FW#!<JuN!hehDbv;Fpa)tc3rJ#*p{f%Gw$4(RYv5D3sB*MZWt+)>mAK z{p2+>@NXQg-;;zQk{6|tVBRN<9u96tsl*%lyU=m*rj#Qgp+|r#a9Q(iHi4>UI;cYZ zjo;KUGFH9|lwUAEUmZBU@@s9_<$kgUYo+%7c_}~igI`L17|o*b)?dfTjgD~hP0Y4q z9|H?>hFFg}sX8>~H+9voGGI#6^`VK5`It_8DasK4m-wsS7#uB9*w*kXw|8d@(^jB8 zC-l+SQ?Jut1j9{hf(s`DXI{E8-k?F$jVae)=_mx@RH#B+ze(x<8yLD+cF9Qr0{wto z^3#FpxKjlwZIb)9pHoY!0^PmD&2V64om+cU2p<#ga`4u$Gu!ij5!c@UA5wn&1c`-s zMrMzg7xuQd-zCHI=vx;5(oJq=xf>+rUM))lpaI~-?2^km%s3s5lUaj6t2#Kl`>jgk zO~}i0{&CkL?`EO=h=h-a!2>#Jlb~*%xYJ6>N+?o=@0NM5q@A2}Fr!Gyghwae+QW=J zeGc&d$36ECTP!_BAqX~wC!-MpMxY*o4c!Lb<6j%2wmvX2!Q{@h)p05Hfs>qhOD0hs z6(ErvDdIG=REPZA5G>j6c-1Yq01)+XK{s@HJGi;2r|Fz}Z%%D#38pN&DCM!rLmFrh z{4}9+Ao*u+V^s7zdu{cDQoTJ{p%C$>T5P7#t(Eg$@gk zzQ0Yi*F{&*u7UyHohsT7U0C}napoz!-fcEgik<`O0LNz$l7L@Lr6ZB14lj>Kb%@XP zyg?fxw{ydlUp$3WmqQAlrz@PVTODx|8){I*8hbIlY<>g>A8+@KnAY1>(nDVk+H3F? z3(@*%vH-W&SiR`j6J6#R)LbGtMxXk3Y`*jC+q`TGp3-T^>(-U{i8Xo>xV^GB;W+tX z@{oHcg5v4Xz};l|RS!FiHCBnQL^fp|Zmd=Cr8w{NyN__jz?6X$1L#>l!ajY_$Xdzy z-(q_A%gu`eY`DBU9TCU?IB6BuV5Q~x;Fxsw*>NJzvUTO9!TYooN%9%#p-#X4zZPhDQz+DGS~Nc9a`cY z;G|TLd_!Tanjyz}=~pbBrvH;+daQV5po^2s$@vF6X-j4@`5Yxt(YByh))tXX!XWfB zVk8LrxxphqcYNKo}V zsV?U-6!|aMgtI6IQUy{j5u?`Bkv({pG8 zleVayCQt}9d}Qs?XT!%$4gDS;_9H%2`n(3>#QHR(a+$DYYo@3R*Se`sOxR4QB}~@$ zZp8tQKQW{d-zVa;YG>t|d{V``SNpQBy&dz2M$G+q0$aoPSkrd;DmsuM6?wRL#sffq z&x_X*bgj|ge|*)~1BtqP!7n4XW}q8dSBEK_eD$cHxNwMT4#zI=7s+4s&?&yocVDP} z^hQQ<6Ic35Dkr(wR?Sy6v;^`7W`?~in{Cs?RXnzI9V)R23zrSh9qbFk=C-@bF*$`` z8`kUU`hZ|!#%@~5_>61v-L@uJWG}_s5@YOMKPKF6`u8yY#c}T$th1~BnbvfX0@2#T zq%`qv-dNuj1<}Mh4Q-dXX}D3y5MR%bX#rU6CQKDZ>HESk|shw>3^nz&7Q-`$SS7p>bDaK ztPWkV{G$|mP&WodgQLMG=Ge90l~)~j&-;zohCZ}hnsKDcv8VN$jQN1xPcF6Zw6n29 z+l3GC;6C>C{7wVxMx*X1i(%)mJNqykwA9N2m};1s(rqilxccIHSg0tWi0g%qbxYh& ziYni~xxHQN(|cOEmqFQIzPEBb#(F}m_sUA9EN5^%K+vYOjvd_7byunQOCf*Y?%Dv& z3+6*!$w3{8JFyYf;=mn9z4k|C_etze;5#lRe?1G;U@Oj$Je_M#kX= z#+c}?IMeVdX6^L6%zx%%Wb@|Xo7v=G;C|hgO7E72c6?UMwf37O$)gg1MLumxasL#H z-=CQkk_ySvT+ne0zg=Bv01mF*e1(1WcF(|ItC_^sRW3=@49ti`CBE^ByhrUrQPmDQ z3h9$8%#v9{IXSSt*4eqaz0;9!S-DMvItauFBhx$1K|G`%-M_7GZF%i-|Hqe|b7U2- zITYm1ribP)l;dMWG?uTN&0Dx{8U+>?GXHK8tB-EkX%a`6h^aRmcxMInK9%S_**77j z@>X8t0?z5AUY}>52nW= z5(*hT7cX02$TUA`gA^!nE(#3>P7xx*?N*+I=!fONv?dd(% z9`zLanNM5*Dl(zEv0kW?wsqwC0kJxt)MP+|u!ve9d#D#zjoL_gjX1RclA#*Hzq2&2 zrS=L4e4sXANBqrDF3HV>kRp zIMlu#+PIIiPaK(YF5ucY-!6%A^&TYgk&XY`H!kJtq zK7A`Z`5ZmB&hV8nDx}706gyM`NHsAY2iEeM2vT*EJj&&7P)!skP(|iF!*R%(m!mw_ z$t-quD(tNXRK6ehH9vT=OGakc5DpoQkw=DSZ+2G-$P|YM$Z$B|?j6yx&@`QbiMc81 z@PIxSx-&P8JHEd81|o-tmL|P8knBU+*y1K?T>`dyFPS2KrT?t|s3Tiu_iIXk2vI=2Paqdza%~*-JOWp&^uXnJ(9sWT#~I;wB*2X=HUJT23Lrnk{E6* zz;D!a&`IW}pVF3X(ysU$32bM`8+8SWZ}o)bbodH@YD{v^DV7zqU-#mey_sTQcqD-a z?2>8mx*r8jwP-6$LO`Vxn!hly``GMf$rIovy!N4cEOU4ih3Gh|!%;A@^s7aT@9pvQ`#~koSZEQI`pG(oKi{(#Tm0Q0AnDiQ#6Q^2sB zVJ!KUvWuSP?LM;1QHt(1%M#r`z9NR}YbDVR+)Otngs%>QayrT<5l;pS`W0j=%DAT6 z2TLK4;iTYBy7~sY_!Ti{9`6cT^g-f`CuQ;c@s3OSTNjxH7DcliQ`mF>ML~_yfb)0W ze*fI7cr6He00Tfi)Lua>w(cA*l1S4!sGhWeLqj6 zYVyh?cXNnJ2_plxg$G?{FDppYfm#PViiC&hL_fbKL-UF6N_38t!*WdQyuFWn8O)2I zG}IEnrNI1PNIfsp@`7;r0`b=hUNW*Yp@yF+FKKQq7m?d5L{>FxU=_c51*&teqfl>X zZ0xpu@z2fzmB#S^b(gC7P_mS*;1#X3w9ehn?q#KpDbL_G>vw`{Z%-+wax-IX1$>6SLSspyzX`CXei^quJ(u{kjUq)zqbuo{~SsJ(n z&8H2{It7+=b(ArBtZ%EJBWe9>>&HB7KpoFJ`F~H-JM8iO)>c)S(@(Gfif`gg_fUJWZ(b>v6EV$C)(ZakLVZt4ooC zeTgjNE%lj7Mk|>GNzQ^7N=v0Grc#3P!rj@kQ$<01!m7H(pY3ANE?XGwGzg*e-0=cnZSK@$>o#;)F=bi@pA$xF-8 zT|@_j7~n#L7z=AY6X|)b%ozQ}Z2T@f6_dlJ{8v0@%Ou88ER{s*c(PQICJud$rAjSx z0qA+Q*3R}spJCP`R)jK)TFfDDCoj;a($!Yb8f^bp*Fq3w_KO-3-nRQymS+`^>hFi?E5A93ckz^n#lBs`Dz)^RG3dU)_>E?4QK4K z<>ym94|zSyU=S^HXVz=|7v7QN!iV*br;8) zQ{Z7k1a5=JSLtV&XTLN|MY9M{X(33D&MU}Ar^#TjT6wy3t$jFL%JO1{AGpKf-E9Wh z-O51K``@^}+M%bz+~4u%-*Y^u#k=Z4=AfkO)>U1A@z)&4T#?Oge10O374r`1zkO9G zhbuCJ0p&wO{*J6EP}+s5%a`ap6Bg!whgYCV4{LRNw~?dxXM1GZzbM2X`oFH$VgWGDbWAKMFt@i(Lrpffy6>O-hshMDiUw3@N0^8dO;R~a^NJ(PtWIs{R z?^|3@+(A{^p}C@g4fP&JPG-Sg52EHo5K9xE@p?bA_Zo$^LMFpjTt)ip6IB@ul=>=!Qe$N!c>=5r0 zhcNK2Uc+iWs^xY11_dye0~jz951)putW0H_tgmkd!x203!hAPQTcmqD2+R-;?l5@S z3AOSt^))=d{NWu0MvlSaVcy7ZS9cD|X`agptRdlj1~snJk#mW*-JJ~v1L$b!Qm^xe z9sx>_FbZtWNI$g!RVVZ*byklYVyd6`C6E>P^+(ljddyLBDF_84Z;5*eG)dBqPF-oM zt|kNk^y-%WY_bsoZuGh+*O43SdoI-HF(DKLM{I5u{)ZSQB(6>q;j(dlLNHFH%Y}Ow zxUA8>$NaZDcNmqXqKpej#vzS>IeYGV8Dx5(%h7(P z11~qX9?l*nHf*^X$}jA>_CMOl$;x)QB|>o~+62_q)eRw@d#SagH-2)|+<;cKLuDML zx68^pWgG>=_Mx`T0SMbtRn zhzk`8Ow4rS6&5C6Hg=V_73_1|J1ijtNOsEc(V$_R>%EWW+QbV*x30Khe-YVlqd_o2T~!So$E- zTR7IdXa>|+Q4jD;XlJizVprrJNR7;WfhP)t_8b9D@M9qQ62HSGzos>QFB0U-uCZGG zjtgBc(LaehFN9aP+n@Y89^E>aNwq1N=V49NP(TrRL%VCCr&?;i3AAMEwf`qlm8M#)~l7n~8&>fXx|@rMMoOHMA?kMIMk7Gr|+mcD}hf zj>H>5etw6K66@(hUT62=g(UBt1$MpIb!zxe*aTUjUZ)|Jz6z7#Bxwwj`0sBW_9RU% zCmS>I;0bO@po@pspK%-G&HHWoL9qv&7ptBJB#%~2$1wi;vxEQA*4A^U-YKiY%Bg3V z0dJ!}zAc)o$wkq26KdHRxM*8OEaQnQZmf(({6TdcwZ~baNm1kZM74%k+-4o;A6z>S zOsDRgrk1Y}s85~i!}Is|FS_{j)8YsJ6D8W{B`5QLo%p;*r1T5ONxi6SmFxlP%{MZd z_1~IlP@wl{ygW1~=~^89&ybZKZ0W0W&*a&TnDemUMzS!Wp1X-YF%*swQ_3HnUY)HO z(nNOgM8CCCRS3SrI1qF%Uw?SNMI zx@7)M^z**tk{YCBFDo3o=&}6t{|d0p{A1j6XtjG$m&A4c2b=1n@eGvT`>ew_85Hh2mm$2dRAZ_(~9Ny=yY*bv@vJwIVg)1Hg9sHXIuZ zi+Dj&fJ}Xp6yF7==vCJj{i}k05w^Z$Gi16GCT66848W%~D;21x1JlJ}Q!xLx&{4ye zQ+@Ca^knSo-d>>~j23e)@>y%)yibBZmToO^AE`TQ)*P-(R$wxZRC)~U=$F)q+VKqM3*lczsdWEte$-YoR)d3=}#8^jGP+x z;Tmhry%|`?hg)-n^M^5XY>?stMIOeh(cz(yXPeHPC!ze-JJRv$+!M_OyPG?YJ6hE` zW4X-;z|jtuU-kcIx2bLBo?(+eK6f)W&u?z+f@>|}>W2}ohdZ4G1xz^0$HK#^AE}-& z5C%g+-o3e%rD%uu_`&PUulcz59{T#)K4?-Ev((hU>&Vf<+tSu8NM&@s`f|}PQ0ZzK zOvU;5!Ct>-=b`}bn!73CF3(;cuWQG-2gh-15;S-(=A2)%N-m8rr{YUVmSKdnce=OX z-uC$=s&CB`qd|{~9~_Yh zFv*w7X@Yn`u$%y;#*&uAl-1t#X`kU(+|xLo!rRXAu3U!}^i8*$S)-$NdU|yho^3YS zpYF)Ja9Iz^^2Z-$agR?pz&jItgub57)_eq>9~Le&^dsaeTbe6Ny*?wpmAAecTa-tCE;UUXGho7pc!MV`P!fqpfEAM;ILsc@k_ZMi7y4#Qz}J| z;<70z24v>d4 zt-4Yq6A@RUdgk`=^dUK6jd%VAT@SN00dktleaWNn7vXFpx!CPrRo2V!#uU@0fh zWB`mQa2X5xL;$h^ zx0eJeohMNu>^`*9{#Iw_XSb?2Fg>ZYC!L%rF*Lm6ago6qtO#81_8H>ab#0OU`U{5C zHnCv1hgI>eXjf+dzS+~{IDfTA)1_TRAemlie)aJlG%Yl|n!rc~dkyV^GAn5_DXF9w zfczT^>-7phqbz2CqvtJR8+5YK?{dCl=;hPC=8d^n#uF`uGn?8^Vw5>!W6Q?*h-qTf zHV)@)cVIcYWgaP>yKqW>RWy&-pr54$s>*JAhY8VjZ{*&N6{?rz#kPkqvCOeDZ4lXz zmHnO(sF|Sv?3@Eoh+-Mfr3vaWODoX3XcfawnadG~UAkTR$C3P!b=yBxsJ1E_2hyPJ z*|`2M7h}QDr!m&+4D>_apGnD@kwWrFKRp}BJWW>CDgx_CXac8e;m#ucy-!8dPwhJ zy(9(ZcU``JHPHGhuHfttGJaY!A+86!znMf$;GHkA&FB4dWFA<+Z7g?nhJ%&0xIpq< zusg0;iqP3Ea#T@RL_zBe>+i%0;9*8Vst z5|MN0pc&R9<(VHbRt;|XI0XkGVUbo$CkxS7Q{YB@9)!1<78E%1;l+2a3 z+FRd7$2DrfbV}6$1}$nhxK`{!m=uaT{i3`(ZSGeQ0l)>5*f!vMV?^PDSNp-jy8@bJ%`YI8H zI}xHIVO4?Hi4|1rwJva~?%d*|@2o3rbZUngK^_DzW7_htV#1!yQz2cc&3*OM0)e?@ z*1faZTvY4<`Nsr8Z2D&i0yjD*XsZ2$4A__JBf2)uS=RS=o!Dq5NVSIp)Flwx_~1y> z>fZivracLSaxKC2)&VRVmb-S-hr|M~xyb8pKMM+y5w=`iiqV0)AXEquzt=%J8xWyx z{_8{7*?cNlzDUG@+JJ*5@;0S$T^hjf{w~P?0B1t*o0~*QL@QDHf*taKjn!8{Id-xU z&rVc<+?fzzBY!-*a@AHPn2D}rPu847BgxHH~dXWf9qT_1cBBhG#MBb^mfnR6?5zQ-{@Wl=Q( zSwYn3lGCMwwIdm^HjRsjAmT3K^+`Nrqk%@bZ3!B|HV-EKJ6x7zB5FXog8Xt|+S*8Z zQiK~<0xYag837F6$LMNWk{F~~?x)V){Mo0azw59JjVY|O_1;%sWT7GJUlP$Q(aL2F zMHq=RoYQPH36!Yo&uxZmMMXcPC}9BX|FD~_@hP<)&i>ZItmriSRP*=aG8}cgwCSQjk+ZK_q!Y<(l-5n|B0L%!*R=( z#3iVM)U+g4E2`3NyW3wimjCjr_2R682r7Are{m3<^?E4N^|>%zR{`o+fF^ZDqil|C zrUONa>uQHderM{clFV_-kfv7Y-z41bPgI~c2WMHDTj#DLlsQ3o)9?rV>UxNT*nDhZ z%9yjK))fo)rJJSWrv`cHscw0{D@?D8u~*7?Pwa1-dpYC=+y^;jus_9*B>d4FB>*xG?@+gSl=&ti70T%v0EF=-f;p=s{$$s zGt;xC?x%%(o;$2}O`0sgVWyj#YitJxhaH9c7_SkGgs}4w)ga7V-1V;Xs?WFOa+t4n zixhRO3=Q2aZL1a%e;V1_SZouK_Or@qI#P4=i7#L1y(>IbvbE(jz+gSuEP1$J5tR$x zmaFTo$Q@sMw{dkwt2S^gBth0zNE}FksTea|&vQ`y$g=+!_(ujcwQk)21H{C9xalV6 zDbiMlmVo;7)eSXdH!uN|M<);ATqE4P`&ef>0d8UCwLWNY_r^O)b92k0UAfg(f_~WK zS#4D5;Qrzp$;a^G-`gMG@V_1SeEfiAeE2 zkJJBO`GWtTY@~;?lqKvC1a%@hOaZxOn z1GO15OY3?(Z&@Cv{1`ESy^R7r-yXQV-R{bo@2y;84VH9Tix8;SDV+js)l2Yw$4S|{ zLUDWE=;$%5NG?mGnJLtAu|IBi;C-iLIdT4AxSPh~&zzwPbXo*pq;U*Shy zEIA1jfhI%c(Mb9@4W?C?Z30Q{QH_>E-<-aTS2j}a%R7#`q8^*K1j z(awO~dzK$aZeeAh^)u+X{$k7M@#<+I1CStmT*K0eKKNuB#Pe(%m&5Okxds6F5ZF@D zx~4!oes;By3stP+Ml@h(xXWnq@{*=O>v(csz*3XOU1>5)(rndK!ur~)8VYpIwg{&R z9kP%d=*J)sBgn|j$!3?UsiLB~-t=4rza4vTLD}T~$L+`Rg>UX5z0=uIRLF_6k3G10 z)UF!eh`YzdGZp!`sVc{kt-?L8pu*LUTX=$?YFqmFfkFVY`oACDaE7YlITEjW_kzQvB|wk7Un6w@47 z_9mvDj~mP6W2?$K9jhIZugOxQ_}{DZC@wTKbOojheFG$z!%vyy+_$)84Dfce&Sc6s zfSw7=pi-C)G07ATbe|@?zg#?fPObem^3?n62i>?dCo9sj-qPvLesvJG--HZdC~_<| z6|6rn8ykt>t#&84ipf=j$V4G#x&#e-k#Jcte&QW15)2qa#)+3>Bn@JR4A}^J-0mRj zw_2_#vK`;fcqe7!oTZGkXC-Zv$j%YE6pAW@l@0nb(xd{op#mVpOdl^IAPzS6dx*Ee zib+_moT-D>IFXvV`s#q!`N0|E&TjPDrJssz^UK~(RnV$e4J?iktb|C7TYnt2-&JZ6 zD{-RbF#KT+{jC)c6}=kb&MbYI4ay{t)(Od&=H27#p@y== zEIAD+ss;oEc&pT#&{L{ov8sDosXj2uM`6k}{+_c}3sAIcZE!g_xT4fb$G8fg|=8!o|z?_^nUxeD?2=-ji(uEkVjiKY#=}9sm1<4* zGqs}jVkWGN-L$)UdqZ0{;+t5T57b8;O6(RmOzPV$`wzlg0uu2jd4|iT4z1uU!XmE9 z5oRK-5OqjGn%UvyZI^A)ZpZzP1KjKDH#07UGI|;}g2N`(!gC_k$6Fb0t|5$*c%?@c zN_!8f^WIGYM9$RB#UBd}$^uD97emp2sgra~hn$ECbJeWnI%f67gvCE|zJ{Eyhar0@ zsUw+FCR|mlUIp@!H-Z5-m@eiNH+^}bAf|HI%2Aq#oK=h9$v>&!kFjxt&bilHGm&5P z9h_tL+Gb`6?^!D|A&=?eOiMdl>qynHkPb@C5%N``Hbi0Ix`)Afw)f)GHl1z|17Z>+ z)Ur!RK8Y&&VmjOS!DdNB=xQi!ef?(P_aNS}WARXGkUO8NleE{)<%Yt*z5RA^S(bbx zi0QX9#WR_|;qXUEh={z2%p-b|7R*ZdOaNV7T;`_{>6LsQNKGOd)dXBuh&-SBTcgA- z_}Euc!8ZcAzkipl_fVB8X#cT}CKH^PV|HaODXmvP2=BV7dMo2i=b6z(@uJuPo!fh` zp>A3EyNt5~dR3g46J)nXAM9ebP-CYURXd?`b#;3^vTpRH=QTzpB+>?7w1Z66f-`Mf zRNa1*mFGDZyAwC_S|RF+{@DPC@FYSZ!SBLAH^nFqGlL@ZxYYMR6fH5 z)LHxgYdjGu4WUOan1IOsZwKq@-Ow;GcVF`qn*qDm9E1zEkFFvN%I*jISJ!saNKk#0 za;F;jotCS4wTPz-&75EYqfn9MYu94;tJUhZ9h3Z;sIJM5CdC-UyqI=(YOW>%ytYdK zm?8M{WC9J0o{dM>T^h$@Y;7*ovoWCa@$pOwA5Yf75-ZHonzLwixfaz6T!t&k3Ux@y zf`R0Jk@rv?!opfSQgW|VI^ehVCl%SKk|=9}(}%k{|J2-O45$zT9DyDLND47egSa_s z;e9PF>MkUBXHdLj6;H8&;)RS~m;r1)JBik9UX|LTYlq z&y8murwm>HU?!}+AB!-%5t!p*DDZ1bU zcVLq+B+!3m@@O_<0sOR&RgjU9YqARpc(z3%xyk;-r(%F5WfP|eOWCJ1co@Wh8G6So z5qmZh6Ss$D9{K!fF~%YYhzk5>D_N(zAd-P>SwNP>gObr2H}To8r=?`gm0Nc-6x;ou zA!y=MbA!<$`PKIZ4_Eak7k>9f#U@jFwKki5F=N)@=N-q9gh`23ObBQ{+ws~n0`V*K zzrO8%IP%P$xG=_2)NJ!DPqOA83KEj3hVqI~Ma%0XI*>ZWA<#V=ptCbCXvNeY5Ei7e zf6{k0$kHR5a=%8A(22aciDQ-+XfFArw0ky8 zNY+7McA>86cHdy(wV0<_}`E7Tg2uGPGDPhDJ~j*haIflP(%tNS-L{CN7YYEq}5n}3V@Qo{oLqPQrY zO@KV&>bChZxwUjK@lY=yU7+#1vwVq_+-pG=#holO4xmg=kCBXC7#_f_og~xn3zZ_o znlyr5-^j!9_y&Yn_kDVa+Uihn&zo*p1BbrTHI%u*4g|*B?v7w}ndi>+tX!9@P$UO- zThaeoczE01;;>cR7X&=v1I<7bSAe}GN67pLozwezJR`RDnxu%I_|EuEEdHS{{kO23 znG8d6WJ4JE@$YnnXnNC}YAyFryw{zSmU|?9CdNS*4kCErW_}ca@sz%AA;t=3^ZTyO z12VbT6t#WpZCgt-dp*70brs_kyM#PTB6mcrAi!Z8Uy4+#?cIyqAQr;zVaORU0Tv4^VD2R7mgooD2y>YWS-1mE*ikCc=q zzLq_X?Qo2X@vE*1k{@}&$G-pMT|9bU|7j@kzYov;`+V)u z1$w;x`{sW%8=`NELE)5ThC;!lrS|_iX`{?2*O>MLvLOA>@b=$_*7G0zm;WwCM06>j zld}QO65mr7+D6jQR30K%A9nBEm=3W0`uywjbL6zHuRM@%zln^}z%8T!gmUvX_4T%H zbkg!g%!SfLbn!BD(k7Pdg(+735+&r83c>PKZILFe`cL4!Lpl&n54GD#egs0dqL}y-+9UNrd7=H0~G_-f;gsLc^(Ialudv^Z!%&4YovpvHY;Hf5uZB$7^|}a_v_11`m?h} zZQ>9AjQc_qfun`EFBGz1EQpr5B<%ZZP~VCJfkW&h#vRuJ@qz6uREg7=NrE??w^f*j z&nRw!yM6~v_ms`k<_J4ENwS-hWok$_du(zagshhREMFehKM6Th2pb&KkJu`aTep6F zeo*|bjWrr4>)UV9T}>lT9iVLW_JCAJYC|$2@7mcYd z$L~~>Gz+9@3e@kIbdIA#XW}i79%$kvj3v5LrVael^O3Ea1i6A@QHoc89n5@yRooC` z8AR-@f9L9XH(<8@d1uUhyRj@XVP-IW{#Y6hC+n++=|k6OPRD+O^+F9l;jKk%vzM;P z!r2N0#DQ{&jGPrCCX zcrUx|UcKV3qj6LcUA(`Ht!{iyo#vrn$Eq>5%gIG+k62p4aL(%Ztp?%RshgZLc!S%P z!a8qw@*WGnBTyEXTR-i3Z0q6b0PA>i(x;!VjSc&__7e6S*NmN{bmOMW^V3FKEAOA( z+#Vpk5gHo*y|c2z?{xR$7b1xE^QQ-7&isSZJWThOHX$(7>%}x~2D!w|qyyH1Mv~g( zI+06=PutajE=`ALe?8;BwyiU_=VxuW`i{8&E@T3n}TLIuwGAc}Lw&Ld{MZSUN5#5zibNqw=g3xGl#Zm3^*z6rr` zV5&lH8y3^Qa=mmE0Wb6=fI0lQs0{Xa9))axl-@|^SkQw(jn3fVGP!d$Bv9&Ra!o?v z9gpS1aS>PVawu8B3T~6rI#hDw1Wly-HehvcpFOt-m+Vg=FTn45L9ZI5q_CHPaGdF{iD3e~fv~6a z3^Zl(9v(+KG|bF39^&HbU?^0!6%B9FMXxJ@OVuQ^o}xrc+Hu#8BH6khTDgQ4{_|wM z97D<1$pa0gSw75qRCxJYD8~m}i>7x+eyLQKk~n&62Nc-b&)_QM(+ZdyT07EqfIEsM zio95!L~%ZGp#SvY5+%i*(Q(GdCGmgB_-z`9&+Qlo`Q;7UB)Mo&6u&QBFEJsoBfqy1hBMNxMZh{0(XXJD1QzPAdecVp^NLw_s zYBN)Yd0Z?`GnwEx#TH4m=(SmGiySRu?%qtboq1FMZ3l;8EtKfU-vCN4Ke74K7fA}8 z@|G+?Gv3?YqF&5Jg}joYzkesq;fj3)ry%KPa7)=zK%t% z=q6uWlz7ICIOCU~?}ehbCZEpjbe|MdF0GGLgQH0`&(B?zJJg+uLQw1jw@L68kFWN5Y$tnV2)^5VDi^$5`GLpIGtFSRHXmz&Xv(ZPPSL$hCO zkmMjQe9WxLkBZUJn>-Y9W2Ck7YQSeKic-x?$kC}iBGX%zlF@523T(_^(~6&`cVEu6 zc3Sz;EQ)Rx^ox^G?B!E)*&46VgX&S4f*tx+Y=SIBAPyzNpI4gg%r_wEjBnuc1H*S9ug2;y`{<0T?YceC+M7tkT*X(#dG+!2DP% zW85?0Z&>lCyu!@`?BiR63qDuawC_TCC@9Uzb|^2tmWJ_zQicei`EQ zr#Cw#&*a&BNv+z8TQb@g;*t*dgwK0ESh$y91P0=+!ZJ8J_RYGxu?m9?iB_VemHa>|DF*5-8mOhImeskC+52MYaHptm<(DDfHa20#M z`ptjw=3J+B`z7#1BBA)kx2Hz2FU!y{wH?n`1 z*I{Pnn^A^4LU`iimWR|G>{pzhB4sS_xjqCbldRmJ>nHa&i^LO9K8u=-xu=ShZa$9 z?ndhy@>n3+DFW{y#ZHbM%Rl0+rPbF>ti7ogpZGLD)_=vKMn~jQ?iA1EcPodfdpW-B z0^K^lgw(FnP9QPmNX@MXb1?}hr%A!%4ud=Vp8&bgky2-jWtuSfM1f_8UD-!?J;u6W zJ1PrWk`7E>G9}0b-$9&nKdaZ}^M2$d7L%8{(NAq}4;YH77NcrG;-i02_4|5g^Ud^Z z;B1n3=}QAQ@DDz|p*i02cmuN!oN3&p?|*0E_RjHTgG7QUMpmD;Ug3}4!7iDT^`E>V z;i@ildW`T{rDqS6Ypw~PWOQ@Q$&s%gfmNkCcRn%(llDXN1P7{fsDO4Lwa zm7p6$@8H^0t)?!YOiz}~*d2I=j=8Mo(N`RGApKI08HEdUYDm>+P|xIm>UY1FRBrQs z3Ed^yM|tx$A)hhniMUUUru~sbG(}>nA``Y_ES3HDnZQIfV~In?59yo*LtC<@eD;TwJBX3Q4TmHEcuw;gK|*JA2d zu{FEX%<`cEPuap@G0&me&oqac%+&7XBUf{0c@Ws|SKkH^HW9+c$J6&Ng&!TWw-5>F z;_jYG^!wezgS?$^|5{k$z*moC?3IlLv0;#=#tpez^QZ4*p5)vc0UE~)B=;SN&0qH<#OXe=)$#CF*OfkZ1Eyhm5#R7FT$ z@iP(^zhiR!!U~)V(vd6ZgD&0mt=A~j9RAMFKv+r|?czC?aZHS1ZH>BSnYVX_LS1Q4 zqY4j*3s3XF5f(rg!0`$w;9)F3co5Yo%@JP2T%u z1A^Q*Z6&pVa^?~{10i)Gb^~{fbc1vxEcDDbQff83%xf3?N>pJqP@t}@gHa167 zNh3{$e)V}Ha{Qr%qgXArP^)5Ov142XNa7v9IOAywWPCCffoQZBo7)1hohl$AhPdN# z|Bzz-@$)<7Cltj(Du6N}EDnzI;N5SL)kv0>Cff;vVJ{e9qw5dCXkYbiZ8J>K@a1g{ zMg%AsUv{FV%N!7Roeb?q?vZt>f8Zn0V5n(&MX7y|e)s5Gf(Vlhf*{-p@cDgwYAFCfe1^oL4IJD1@t)`n z13)>d)IH|s*Mr=I$oe0vi=dpQ``v>Y&Q?l9pE&GUUg4!{5y*o`!P#)J_XjSI6cUQi z$@e~kJHg5&S1@P3IMjp-##j8JpAOgrkq{Bu+Y2cADa#yEZm>N4FOiscI=XDBX5?yv zWp@E%zt7DNTmC&t4WT~u+-xuN+)6pOl!t*qWBS`!HVJbd~J<>^Hv z?4{FQ_v;{t_#_=nlY*~6>Kr{vB^DGlIOrUIItD}SiALM0tjNv<&;J<{!}kcAA7o<$ zjK0G~-LWskg33BOfeVaUcyt)!x$mf`7@q2TU%B4S+buZ^(vr&=q>Ylc>@~vUWg?XA z`wG4`x9cQ=j)ZQmy*ywFoR==?5Vfi^80=J!*wK2G^fRa3wdc;q1D%uz=6MyMp|q^p zbEkYTBv80B|2d2n(M{l^w`k_|kD2(wU!Y=KcLB{$3e0Ybp-m9A&GLhZQB~ioU!9_Y zrny%KAtHh7@+IZc#ny)L1Z|!9xPO)=lFP|-J^DCfvQ!5&8D8hV6b`6p)b?)Bme0LI zcmrE!I%y)Od~V17S9?)?WY}qmpz`IGSb*LCW1pjjhOesMRczbK=pgq}bE7GAnStIz zBEfd{FHCj>?-<5>e}}UKj;i%S^B^+)09*cisi`d?gzEp|fV%i3LqFN=Pw(fJ_Zmng z4KMMfpEz|V1|imzbSPtEDpim&DH~%z54chP=8xAYr*rtH#qW07%)$3b&ZYnZ@QE!c z@OJ_zR>1Qx|0B@x6CIE|ZRn0rg4KF!SPGbdSrR0~nQ)1Xt9r&d2q`~J+}mrTzpw_l9BO%GmlG*ONE9WU$1!`_msmcgz|*Tdj% z=@=eJN2AnvC78jI`{RBwt&Y+!cktHe?k>5kFs`bhB$A))=jWr-oZHFGVmM6xU!L+O zU=w@8gMyo2vz<>|;&~GrK#Z#ByWLKX9A_d}Y7_h^oPoceY2D;B^I8A$yzqeN0Yfnr zV3aM!_N%bx^~^Ww01}pdyR^)&muk)@svyt|tO#CZ`7_Hg4k|MlQzzG6KF7G5FVV4_dv)R~JVZA9|#0lz_@iTF0*;qCKKs@SgmL_FQkQFMj~_ zVUTs`FK!lqGXI{I$1JCBW><2?VgBzPM9WJw09oJH@f`nN5#JlL0Z?V$%O>cYwOoJ5 z>Yt2JD)D4LkEMa;b5NJk5n+A0b5!N$4Mu;2fdHeG<>75vs~PhSVzRfT5jff+r{_&+ zjKAU>GRGimh7w|@l?WPuiJR-ohcj=5EQk~Q?2f;Ad;GuDpRK2(s_G3f8F_bVtT^I) zVv;PELRy>)BWh9eG&rbW{bc|x2R?iZz(RtpH0>tMn3EHyzE1lg1I6~M;Ta1`6q@Fu z!(yh&TV8o!Q5M}M6dKt?(l7cjqsR(Sp6;|Nu*sXv4T&jN_mG~*Br(0q=JKR!|7jkU z+5EbO@Vp&q9o883Z2jw&yI&fL^Ry*{#|nAT!2;Hog@r|ILJx~J2+KCVII6{DB6mzM z55`p~D>c9dcgw7z(Une?9V2sJMlw*;h3>G)t1Q`{8FXPdj>?%X^l9_wt$Dp6AsySj z`~Y%+n_OH%`sC++&Phg71$vI9v_9lilw~@EIs$Lc0VrRlooia2Q;4uFFZ?wR5aRD2 z=7p=QgChcTqGI+paB%ngHo*l%HM=#b@#?cOIF(giYF0-YABu3Yzm(+2;UeIm+1c4q zMS~#D<6Dd~Ug{oJ!fmap`oJ990HBAlT%?!;a>g|St`!490bB5+^viPcf^&c5III;& z>jU}MyRwBN9r3qtkuxoG*Ts6g%Lp2 z>>pOBro5;TabK)i@qF8aIHf>Wz41+#0+pfrDVj8tNcor9>p#Y4!}a;DzCsMedp{g%Afa%-m{)9Dp3cH(EfnfOR+rh z;>n*BJ5oMWLNJ8oMYe#y6ZP`=&&T&v19lo|jJ8Z+tCYFpqz;AeQfB#H+I|nr`ABk( zfZ(p;)EAU(?)PlsM(k6PHG_d8J8CR7k5~8KymhSP&O&)#oZiE9W>yE@nfUMQRz3uv zE;KojUQsfd)c-%NGzDohfyIkX^pRmM{;nlN2yQFsOuMqKx?YM(B7fcf`){V?8lKub zVC4r>3uv}SzQt#iw}7zdhzmyY*mN7ZU(Q0~%sX%#u28*SE8k;}(Owyf6;?PrhhC5| z01&d>92F6|h-yn7b~UF&QeVI%ATKj@_FsEzr>0krIU%*b(PQE>u45wZnp2 zF$Wv6xAWYiFg6w|WN3y|tHHE9uHa|P(xy?$~L3c7i?@~Ssj(zYkP7O2dr1C+DuRe z_AV3W0rYQuD4V_T)MJdrFtDG8Nq>~$p^fTV!tfjD{sXVMt%a!Zn)4KGRij!uy8sMU z%wsUmSCsH@p5_Lx{kMG02nWR&SnCNYYh5Z!n3|Y5DP5>W5Rg^HyQynvsQ4PHuzxZ% zTw9k>4~fFwrA_7zCDsvRW`X(53V;&1R~azcWTcakb&XPqSgAKmCtvYLQ0CWha~kK= z{KgppV$pW7&3y#8j(-H(5P(^OoT+UmGKSa0E`P^9H~mb&|ALU-yO<)xn4RN6IyuJ4 zG*#d*uy1spu)^@Y*#|T#Tm$Uz-~NR`O?ZMn)3JdBa^bWrJX704a%lM;d0-k*5AEbq zsigxld`Op-gPA!eeK)5busb7gfKZ5+Khkp8UQ;IxPz}Zzi}oEne`uqL?S*FR8T&F8 z1q`=GIq2T9!>b_IfeMtO!Las@!RkQiM9?e|-fN`xfGEP3QXeI%4YiZYdwW)HsX(Cj zJ)=s}n~rnHJFGWk*}Hvs_rb#S++rx)!M(EJ#uK0q%`&(EN7DrUUT89rkO*BlL^+^J8bVVLGtsl23 zMu=u!xlzR;(to22FE2fM?(2wy5%|Vmi0A<59q-UO)=ie1S;Y)GX0iJdWWYGU7;sfQ z7g@$W}?%=M9M9JzhGCC_m*PSTxA9OYIYBGx`xFA~s&mWK`k9qr$g zS$qHB#qP`et(;NicF!vR=?j@3Gj~C3+?COs-s_f}P$>~-ep+^(&E#MSmRsf;PJe6B zoO4x1SsqE1q%b5=L%f!+_j^L8B-icVLiUB-%mUs_WuplDF?cmxEL2xFJBWB^t!X_M z^0*lH3V_4CS^9_Bo8ws|fJMSTNy5qG%zYJ{>;vGA9Eoa#^E)S2>$D+MbqwQB*?y_f z_Rw;njhu+*4^c--S5Vm(R6lT}nQ=C+s}G*rr|hPIw25PB0Ue{RJ*hliv2G}9$S~M+ zuGqj^>1a3zv|fCw)==zzp)4r{97`=2)Z;T@1MuO&n+d8eNA0nCt__-T6NeVff6S*j zM0NfdsYt<8Rko6{LtLDlA$GU%X{**Pl@m>=z&-n z`pU@1t6G9)J&lv~kV9si6ed4uOI&hiQ;!g+Y*%8+CnjW`X^fo~o1MeHp!9i^>szzQ zKL)K!@3=U&PNkj-&z+#n3fC^b&163bumX-979tNOZ3})cUp2Y4854Ort#tdD()Y9F z6(?2T1fQU|kg1IjM>!j90wk|BBHBkAHE@5TYe{y&&00A^utTwL@q)KsX|m&dY^;zox-1VG|2 zZ7HA%y2*Q7=<}CWrWy)zZbiA+Ass+^G6OKuh*CoZwWAU zw35bxAT}PHb#7{tGP7JRs%(fEZl0uyJi^$QL;==RpTbBg@D zey%v~n+^NC52vZX4DZSC1!+p^Nzc^Gdl0kc-TDNc{`N|J?kmvzXW8dJt>$aimUUu! zCidS164(}|j@*)Ysb9E!ea(aQ4*mM1Uv@x*iLau-lBOcgLvh{WxM;O>KjBvA-v-`F z+w;DPYYtz|hF#(}qN?(OXZM=a7Us20A>BgvW&Vb2iIYpwO9!9x>PB@h88ZdFWEh21 zIRaX%-jQwLh6>`g^Hk+rW_q_~k`G`8f_thW0TrzuC^_CEGd9#TtrA6cWIE}Cf=2}j zS_pO_ezVONSxmdU7=Qev!}P=z8G4^$W4!>pG=CA!>p9i6GH z)5Q{lZ1W$pj}wuLQ%(8JZDl4mbKyma<*a=kw$-=oxAIZj^K?^s1cWk_?u}-lTC<62h$)RMtKc?!u`p$cwdGj5nyp^3Ls~ zWS~PnmBXiZD46U}0ScdsnLM*D>Nlh8?bA~47bTt|YDS-ZJ;EWV!nZ4tb8RJS@qwDN z5K(KE8?&|D!0HX6`lzsrfA$DpXzAE|NLCYE{Vtcxz?-h-l1YorN`KZNrj{U|G^U{X zsbgcHfBvLB!|t%tTygttz)##XPI7YM_eTHoidHSBMzDvKHy7UPzM{CX-vKDgB2F7? zD=QZYnVggntfApPVo}KPOwypiJ@W7IW#01PzcDcM!;c)V`(TX}tr1Hf#WoMF*f*Y| zV04<+P^1fyx>!|1PBu0G5%bQytPJlEC=q`@=gCIMSQWgIQpQHQ3L8nbXMdM(KD@Zt z=wjKz)p2zy>ZK?L5C56+vnPm8M-&b}c~{>VT(l^JaOJOcbmk+GwaXxT+q)4Ks;Zhi zG533zeh`5qz3xnq2UJy9=CRK9am}85)y!`6Ivg^R)J49IU@neC!0Nq30IU2>RQrWD zF=@B;aPbZg@yDRQsgUJk`Ge>hh|Vn#yuY~l42WulBbC1oJdU^mKEnCBDT80iZ+~eo zRm$S4oR&0IXI^1s7P9hK+=QreZkJu5mD6U*U@I%>Psn0oXJL_&eVtU!R6L}XP&ROX zI^5Q9yk1@q^Wa@oly~~cMxqQTJ*TEo%JB#BJSC#0!krOvyIch;%t`EeOV8uyZ%SJ{ zzH4boTF1%F%{4tyW{|cno$>gG>GmT`e` zQJLdn*k>k%IljBjzM3v#yRG9{f%sh<9;}uNlMiDnutl$BdReCU)Jj~UYiC}aU>@Ch zIa0&~5Oku1=uNDcG?hTAorXU+$`JwC2APSbOUlauC-YJt+kMb0L-tnU<)5?=#Ss8>vG?p38lU@lSBr>@Auz+quXiH>IcdTegJo$2wV6u*wn zKR7Rl;_yIFgb*b1S;cc=$&#XUPDms-DYtDTys8q51IVIxEFmc=>8PQoI2;G|FfBU5 z!6}S`bDhbjEH!#F_dU3tW)WTFrbF6;@PNQ(U!gwg`MLQA)5D>*RKY3UuMhOB>{MK+-hRLyXSoy5nL%jsera?;?74l0+~4v8NE?dfa%3r6Qj=QUP7Mxmz$Zt9BNb zq-Z~FmwiPSm5=5iC{1Y0PZlMp1fDVkQ$b!F6?j~-ZTj_u7k9QSBj~#gHItzd@xCWo z?GVssE27uz>8?=tJN6?9o;+!XJ|_Xv{p9@AMO)()=Z6;r`oYA&vifbC*tBFKn~Yj) zs1ke3!!D_#trhgJN}w_2Dj~SjOpW6uX?2s4vQi5IEw>(|wy93;C-ve3P3o#y+np{~ za&>oasjVRVdt5XUbi;*(wiziqKKGaX-AqEa3jxhsEkZiE+gUikG4PL}QD(gHF`sn8 zEVl7w7vk;vaOkkhh+uldpPV+U$nI*6crh!0Ii=65+UG5m{V#@B#c&vfqIN98w8!t>uCwh`v7PD*T=p4EHaaO%-ie;dpfEc~(Y#$xf;ug<%U!vaE6=Gp zc|gJEVUmk()7J#PIUxd`bSF${uJ0f$3@jTo@Z=L1xBpudlt!@FMTvLuSM_ z3j=NwhbKpH`;rn9%l1uxVqebiTTSjIrKjLTJbRUt>0cZ?g!BJLO?>yvLAJ%1++5wOGOdYqG(;*eCl+(HM~l6!&+Sm4Zak^FJK#jp1V#~? zfN$;RjvMVdpaZ!0A7==%(y3}lBVGk%6nd8w^FoZB(d^{XKW_CGm9X$F(qI6P@DJFA zaZMPR6rj*3S9iWP1cs?-;!J=0;x8ufTF{ly6y}-N!EJouM8Ye=OvgPP_gR4l>S?^m zI@Bm)B-jFP&21Wu0`YkUNJAHWze~;hG&3s1FwfbY1+#!KToAHw>k%P>4VGCer~8GX ze`x<_7yCcdf5h&fgowKnE4X`z^44cWr`St~VEgH1s@}R-7^`VEdBd5vtaeIQF{U4%rl$__#!q z(#uR&P8@#Xv)vBd^DpimT1+=h`;Li*i$*;$xDks(<~NiVW5kgAc3D*ihpiP_`F!!R z&~DO3`(wk05lUH(Fi_DU8>Xi{KHtH^drhNhg_wF_z0MXmAcql72pk)2ej5z(1~Arp z$8XvHDR-h;oIk2MXy;;o;%7AEd1v_a~4Q00`bDsoNt-;eBb(L_9l#x#V~qD3LI0eyxrkM{j!kYaaK@k69j?;I4O>xhuTf~z6^T5NVX&! zX-<}$H^Za{*A|@TL8toW0zO6?0vx1E})|lJLP<)=^d4lo) zU8`4|;wTyRQ!jK<$I?N+0^dvKuB`LQC*9p!7+p$Q)zuvfSROtJ%ckn}vJ<4Y_G(Gl zQxfFB4Rvk@(KRqBP#+x4=5WeT!PNv|gW@q4S#6S7Swv}S?q5}Aub3=ep_cu?;_R*a z9Fe%Weg#!3myzd4c7M5_-Q`C8Z_Sp6u&we4<75*hB0dqn4bx*3#?jc@JEZ|lBE)JP zAt$%J*I@*`Fp3IIA0aV$Qolc4?r|Su=6+2|9Le)QkermFk$(pH?e5KTV1kvYYmyGt zG{0B8K}&vpkJ-1%pY{(SAVK;P1V9cZ&(jmjSSuG`%T5hv>1Yi?gF(1IHAJy%WKz~p zgvXu_*&$+!u3_%klNuc@Fji2*CziIN6sxW2BWq2|_-&YfFo+gCL(gdp|2BOcGfM={ zEpr_*#QF^#4fBK(xO3R?uaEPv?|`}|ZX|d0GchR~Jxs{jaQ{#yDflCkq9>|<+hhBX z+0^MACaqOC-@Za&Kx$E!xWk&1XOt9}kh?mrt$hZzZPdXnRwCdL2$E2Bc%K;NGPq38 zK8nyB5|xHsZ5dph1nXn}UhW7rPs=X(+# zjN_6~aKTN<52cC+SQ~;y;hi+X=~JpF>&Xr9y8_IQ{VqnPsif2(Rn@^Ou;NQVed3D~ zq@RY(2m?pB_r8m@2%FUVl({SA9=T306Bo0P&uy}L;}q-R+0q<+((@2dq(TXPOjImm zSE8j2l_E4k^S5F&SAJUK<;t3gH}ik9DhfX&Z$IwaNpEM~dO5{cI&*hzrO+eCd2>aY zjGKPlcf{b})vA(ynWE!ZkqUDp$tOLqQgp|Wj21eppy)%|<3RNd3hX0Sew~mW) z{T9V_+XA9e5&}x+&>bp>z!1_sh?I20&?+UV($W$`*U&@WcfkGK z?ET&M{Owgj^&d`BA(7lE|Q zVYVASX4fzy@|6Xc)Y+y?RkPRC7a#jj>~1lui@nc-btj|eXr##$-JXgj#&3K zrEh;9N)t;9Jr&UW+RzY@{ zTiKA@&y6-!Oy%Tue71Bv_BvIptkgeZK-2g)bug`Ke#r=A+VT@v0)CCze2^f3&WyCYc(2U&lPqU(%C{p(pD3Wk#?J?^8V2{Ngty*yIGj z^XpUx9M|4dJW-7CTkC!%+vNN8Jg2K+5bRLNr&hncJC%-kcS>CUcCU8Zozt&QvYcUc z@!Ql3UdOwX8hf?p32CBdhzW1+1=qy!_yk^`t9j4K``|c3lR3IHR05RPG3_urYgdc=U zcAp;&T?J`8560JD=6EhzUb(w9|8^I|hPDw78BL14hD1Gc+oKlqm{Ka*$jTn~zJ*_` zlXP4N8rL-mP(RKti9>bjvmle>fIA*e71;HkB!F0Hxq*^}Q}20)CW@BLYjW@sSvmU| zyr;VBAmu^|N*)-q6ee| zoA7cX&sVFVJI(NM;bgnD5r-8+~^-LUlS|HPa#KsNd~53l zooUc5=LP*|Ol3MO37EkKZ-EWj0X9<5-C1qTvPeQuaHr}U(Wh#<4ohfza}({{PXnu_ zr&Y~Pg2KKbQ)#$9Ero6G?M+7&7p@0=g_3@BQD|UZwN6Wm|B-QP3%zE_1!-(zC?aD< zD_4GGfRwt6oaW3tNrCbb>guT6BUhrX^V~k@AWs&ds-dJs2WkT`8m0R;W2_fHth#;h zCmX0m>Zm%Ty2xtpy#O~N$*X!=pLsV$uX$7T#2##U4b4%|cnQq2uNF8V4hE?YEA-oOG5$eNV5_4q~1fbp1}l^h~W6x+vqrhuM{b_E31s zXs87;crxv>VP@$he6Pt!wzHL!WZOM=jLI8vfbLIE)vqxX|MDC0O!VdDSCl(fupzJ5 z2cWT+(2Qj$X*I_byj`6E#A9k)q#{vlyM@!0OuMy;SQ7TuN>IC3!^laoRi#(tE_{42 z?|Sq2z%fM3>-ZpZ!&)$!kHWn2^M8!n~5Bx!{lL zvH%7sTPKrizB}@C*HK8KI*=qKv@!7Ch%df@&v@5vZa8nK$tH+WaAQ4|0xcJo@eLWy zfRDnTEJ3CO>@={%f0U;r2Bqs;1`Y@{;6D$0&$L39D-;LSGAv-v%k{0B+VCR(wvQKHmtrcvLJqg2i)S?%R5k@S<9o&*n~xrU~Uvpc9wuHQ&k zxd?UzOg8Nu?S}D3ysyy8qlqlZ$d>fyPBy51nRIR=YrAafTbh#)fLXq+l1C&z9Ny8W4W z3JzUV;%lg2_x_&Icm!ULf|97vL5O>`du?vr0p+oaDkqbAAv_L|@rUVgdb!Dvn(GZ; z*KFUT*T;U8y_(V@b+y+;(2yshx$d?6SV6z37UmS)T4?XIC#4ee`sQ;s)SUMwXo?`x z^H}`ge8BKB9}pHP&r1Tbv1V<_)*KsAowSt(QjR`7)JdW6I@mHmuMe$%q`1ZjX@v>X zNE(5aMkT$3#{jIeT)`89AKV+93xV+xXW_#PYVFync7PQ>-@t4QV88l_DByS*U8KTG2*PVr zg+Emg9T#caLN(M+8rQ?CzfYmskfyiv8c9IjgcHm2MLEC_Y7M+YL9n2nne6B--U9!^ z^BaHaR=yEzXdZ{iFUSZ?%uIojrgAr5c3qqg+G_*)%;_X>LqyrwN`gV$6c99gAlNiI?Ofz zQXVW%0G`v79h7gQcvOI#puN4ltmHH!isN^=o@7+lO?#Q&KhB za0$A_33+M}cyuC?+~RxthRF}n%IS)@2VYRgsOKg>pFMhw{_0-7AT(XYC+=!jWYY*4 zHOez*1qm@I_}SR+4M69&^rw|Boy_`_6rUWG!WRrWT5r68nK#8AJSsJNW8|Z%;hl?l zF$tfGA`o8Wl3IC!2ziRdcp{$#>rI6$Ad%Nx%ShZE{Bcyuz48zV4JoMVnN3E8-(FSU zQ+q4tP?``MXJRjqAeL-%oRF4AZxt`i?yj?UvZlmq8)tiG8wN(5 zFq=FVxe&Tf@GDJVjjV)c=wjq8C&PH;^FrxQ3q5s;))6&X;1G&}q#dy+s`ev(>VcJ& zAhZpA4L-#tk8|KdCxCeeco|jfE{;xtsjQeINoLg>pu5^5*5x7bIy#(oZb|AVOMd`Z zK7o?8Rbzrg@$VBNyo6|k`9Tc)iabbxs#l|~&p*wg)GD-D$HE?2e?;7l5I$HP0kf$UFXmr5#qs5(9bm0XYxL?;oak=j?1a^=PkX|vdyF?;vT7Qm&%0KZd>YJC$g(#^}Z>YZTbAR=TD|?-(%r%OeM*Ur&k;{`kK5j z-%h+7SX~SJa!=aSz6ahtx!%1u)4077=7(JaK>OISf#;V}iTxAH`A>CH?62R0&%b|L z$9ROg2Pu`pv-Y2SA3QwlnT@j8>zW=Co^dJb zS9r_U@s`SO98Y*TuQuGfKC*Lb^TuN~JGKs4Vs&-=PM@cE<3}=6xyciABzsa3+6mFJ zrtG=w5;!7a!e%k<>L%y*zJ$QO&>5+j(9J~N+|8=%T z-TSlLx2emN&@B{03-oTUZi&?JH5wL^1@*^#E^m`~ZFSO31ym zRSkq3ZKT4$PYjO1A)1T$ZC3QWoC$k89mF|3zB5Vod2zD6HVeeLtsYin&WO#Sm@kDG z8TAGo+OXa!9wUdE$=s+>%CZwaDN1lUZOm~Z<)&^(gQAe$I{XMan3-h#R-=b!(s<{p zR4PtM=4YNAI!<;=b)9-gv+@$CS86sr0c^4%=SuX<*m_ptn;3P6Xj+Y(u_$~p%#fR6 zO;w4QhF+w+w$>(OszgrG9$hhkR*p*IN9o*6rW>?yXgf4o_0W$CsuMU$HY#BW7DU4H z3W;vdefPrLFXACB4~z>g&&cXiqcx4;e3BJo#2kK)Esn*TSB8`&E-{3>0q#l_8erM-K6ZgZetgR@=DS##ZIY<71Nf1l=#en#$! zLMT3J=1Gjhm)nY)UuNvHS}5~KT0Uf^rA>cyE~D9*upcW3p zIo>!hBlx{q)M-UB6so1J8sYnCbN^6U0!^0|1v3pwdvQmh>vdOMjpuT@jFF|2jQmYb zv+rmz1Iw@s-Ze-QEl9$UyHIt!8{U{gNk>T`w;$(o=lz4ewD6Gan1u+ZPGriUTDDX~ z&5(Y&+}pVxzx7NDbFSC@o8E0hQLrZ>AwhX5wI;*T8pg&RM@_Z(ahh5WvU)$h{pw6} zzO>t+o<&3Y(rs0Fe?pkR!3#y9z*m9FE|`0G!u+;JIit%CvzVR7e=Px*t^(=r$GjuB zdXWOI(26W-Y~SCZ4!HP+j#DC~lR)aG+IxCerb|(ui=qnV+SaBS)SR!65=<4gd|isl z{`f=TeqE~OIA;s;2P}a#1#GP3dQJFhJp&g$FKo@@&iiS2QTA_6vA@Z3F9Vq|jv+q` zS3Bb41h7@pBl}xJuV0sb_2J&c<#6O>+?bDbFS4FJXo04D&Uj5it&F^NgGiCE$y`VB zZceGE&SCpOnlO+ZF!9=x*ZQ;EH!AmyJnL5WI$e?^CqHvIw{{B2@g^?}oVTh{5&A05 zljYu%y} zEN_FvO{HGqmYcV~fibKq&Qo5~s4&eE*5`A%E0`V6G&q>Gn+V%8$S+i(vy{al1*yqz z6ex--m6kRn&tJb=g{a1z6n4?BR_b8|o?kmD)+>cQ7|b}nw3 zm%hc#d8^2?jby+jM-Q_?GW+8X7YQOlBra`j3F8<0hQNk|6M6d@?=hvaRh>U{At9$E z?<-py9jg-Q!b;d*x}KCiV$+S>=;cK)CKf7#C?)`*g4vwj9xFWEnM*T#Qf_TRM3Q5R z&?O;Ys15>;B%q>rgQY5j`PQWUV;hir{YCVqH&`GhmY{yog?*g*3UMZ0L#-*}-N@K4 zq8TU~mwL(~ZU#7<9DHw}p%L^&B7`Vbzwuja0~muCd}qoR471lCtdY|I(iO2eIy$dQ zo&~EhT3KCZ;bm02&Kp=hDaiO$;!3!mOQEaTk)O567hNIhyfhQKDLCmhD0z2b+a#Pq zk1824jV@#nD0@~ztL!<^kBBf1g-s|*RWB$b^&hL1490FOinuWeOL<4&zLH&XthEagl{`^etvD9 z64Nbv*e@|E=Op0xGAdo|E$m9?Xt%u?G3ZdDsIYt*-R-^6^7^oEe|XC;>|^H1giI{$ zb&=y`^71C8+Z0>#@Z!=`*JLe3)K=W~6x<7y>FIgl!XELE$MRoike!(RS*bARjQ|UR%tzPBSu|e>q9?7Dg1BlldWylctP={+`wq&2Pwh*lXl1kZ|re z_o82ULm!e1RG-{da#Zb&OzvE2yOOun>eNeA)}7PdEP9g*vLK|lk5;ahR^wYH$Gg16 z#>2z+=Z%p^7iMJ0yj?k7r5ZI`>I5-Po6td|pa>q)XG9>K4&2)ylC@-kTvXnyEKpB< z2O^LKEBsu`62EPR=&fwRpx$&J76LCpl7R9gLY)MuW8ZzV@`b6KlTqOLa~ z9bSEfBVm0?HOWv?F38LP54#n@ai+ZFpuJ6uQ`q4#(yJ;eDYg14Q29yx=-vjb#x>!L zAPy;n&Nq+JUm)ft)^Cji4~|5{bhOJNaJeCA!ijFu{mX-~f%H6EGo!=26reJr%FP!N z?q6r*5{S0;B1G@LvYmuKK5*Zes2Yqd0tam=Q{Fum?4C4sR>-}j|L1Wwp=PgE5#I_M zk?+45i8>yvTtq8py!SN{U8oeYa-ior?-}TAYtk}>N_6kpvj8zNUlaTpocFxrcwIFw zEj8N_{c;N(SoqypZPHl7rA*-nIB1J>oF!6Uym;jeU27D&*UUdVJCn<~k&gBjs2~EZ zte4=P`y}4|w~owKTo{XJX9?%VqI4JxAP8J{MP2^F+FX+9_2*VR8OoF6k6{oIN zAEh$q)m73)nr)OU+En+=76thk!-r_1BaC5*1T>enoPwKN#N8P$up>OoSs-pMi`S4l zye(;W4I`(7tkRL~MW=VmPRwz1=dy1(Y~(q%XXVzG+>Cr5rJ~KeNJFOyu(`$OQyRu~ zv08%K>`z`B>WZC!`Si4Q{@L>9!^Tv$e0dUmDa237rzZOod2h*8_#7}NtxnbIi!XT_ z^fWbf)srH~?jD~vnVoL6MA@)YoI7`%@6g1IC!uuCU;nYTMGo&LGnN<2&-<>k52Zw_ z{`Tr!b_M2KZkSkL7RdC$rCS#sUxH(9j6>7w2fe=hyUuM-aW*g_og1_=*?*M1+6CKD zkUS1g%fOabJ4tT_WUKz0dUYq(Hoz|Nk4jd+Y5yB?D+s1DEL{0ebLfSoy2#w-$A{4- zS<7-K#18-zsI7Gn&anU@)@ayYq6(?@a266}$uxBoa85f2;Aw%z{`e4WP{^vo35jVbBKJ+^iDNT8 zP5$`H!Q%C#*E<*nE7D3QmkU!=4}s-4H$AS-cc}r%KenT2I*uxC+lse;9jf8qUwnniE``^Fdp3g6@B{<@oONBMZ7 z1ABt#o`?W7_QDhP0WJo;T#Hy+?|q@+lM=3^|0I3kHe`}&%Wd&$V)Ev&^Z1 z<5#^g^&1JFf6shNC(3T{y?b;lI-RR;$w+pHKX-?n0jZW%U9%_OugwA3^N3^a`R!rJ z-1o220ms@0wFw?^9#bZ{adEOp4ToQMD6yAWd||#Y)7NXak5OKXnRN{<`3CU*PZQK; z$$B1@-d~PpDl1L6Yf_ykF*O3$N5t3$v=@^llQZnJ>I&+8N|L#%)t+uW>6Hywm+fv% z%B`;7(hsA%zCov!<}$8IGv9={o3%350xxAr_yr#9t+@%h2^1y(HX&_v(8=vKn|shY zwdL>tWCGQ4RZ|PCvfuDD0pAxTx-v9@`XI)tXI#0GQh` z)rWnV;DMMoY)R_SLFj&}y1A?bAM0=ok+H_gT6d`h?|NXj)Si#%?JE8TnbW<&ZqiN2 zZAg*>blwZM{`>x(U@8d*LY3*+3l7Vg?%!&cEW4)AS-GFyX0|0r5AiO;s+>hgaTKYh zI*^e8u-4W(|5<)_m;Iq$qARus;)5pU1mqTmk$k14<~mu8G8R@sCHR{LPQ6a`3w&BE zlajAf33t91;8C>RiRXIHvHd*%*!s#1-A5l`H%k5D6fubW*`p4+Zx=k#DEdUb7We{Y zFgmtm2C6muL&jt#T|I)~N#Y6EPU*+e4xy{3S0yAYte4XPV(n#UtDUM3Gb3+AI?xd0 zkyQ#6+%c_l(d5%5qr4+8=3SzOUYA+cYHg2%l3GX4H}~mZuj2Ds%Z|jt;)H;LU~Iv# zss`nZyc#dmv+buPLXjfgv4ZcNl!uuiVmYFUq?J3h^#a>nt^MDiym2Dj1b(2pkmRAE zOsE!V>eno_JdTW_1&!Uk}wTUoKXs+GMmQWkZ2eK!TWQC7km_~V`}51m z{dj7K8w+;4S*UA1H%v6j2C^#TL2DT(?l<-^k{Lq3=XPcCM{wRzn=w8={-z_WwIO9@ z%aV_ZU#$9ArS*^{mB4PPD}B5_FF^lSI{I!Mpa@#|@g!=3#xK09U~V17Qt%Lx5GPA4 z?4V~?D8g~)cp5)Zfb_m`E{k_@nd8jT;3r)LMUA^E=)&6mp~Fx59eTPe9VB(n3(`gO z%E<_RE?cMx|$H#G+N8RCU*?2Oh-{@6Qc*Uhc05!n6N=)9|T z!su>-s<72Ft7?zjhq$)Vdk2!gA)^XVC{$QSf*~`6ui0_Bt|!v&iF_kiEPU3)Wddh%F%bkLnLt zsR-oE{AuI7Vhj&GvELHPI28D z&rq!!xaJS8HiqIPCkJTZjxS8<<03fzpfA84_~#1*-%~VM`N%@eOU(bMH2c*(QZGosvsPvF3lHZc^wccntnYXOYsxsNs#p}OezfrDR=7r0q43Co>lu`1SPFioF@ zktiP8oABlTs?3Vj8<3rYUCHq7=bO;R4FWy?E0+Uc8tNZOOuYiwq)!PhovVKARB=3XsNFIVIoH z(uhnU9E=(7BbUc2omlL`B8|O$sereIAvX-7R8|GEmwqU3GSI?Xi9{1wqODIOaDuv0)bJe^L|{O zIBD@hnaOXx@CMfhZ8|fzDlVMCXNub(oCZw3o2kprR^Qv<<$R&&_VR2RndI_p{GU2jzR`o%PmZ>t;trF0g3X1!%p#pzW`E4gB}1#;n3<%o}5t!JDvWN zfI`eiMthYf$~HU_h=Y{?iS(0c{92p{HckJq1bj*PrF7QYDYhG$bGAAv#(8+FAB*qLrgr{ z8_qK@a4I~0fql~q`7l)#B39{LqI_7ENFE=bJO6oQtde9B#s8L45Dz=fNmGy$Lf3+4 z=Smp7+x|x^Gh5!KTi2kd9fd|FuZtt@+Zu6P^mhUge;Agt# zd!8adQCaf+d-$VR%tJ?i=?gRuuQJexJ|Oh{$!<=<9-R9$N1|&<6YuIo<{OS2N@!{Q z*JKxU@tIJ6JqMb|&<2f!j=YMh8h5Ch$BI+ErC@}HHx^ic@g2)#F|MOttD-vF0Y1U% zNcw-wAP6S+Fl)3LQ7t4YE{q#?P;pW_?G(NzPFi4|Siu84zi{LPyH3=IlfO6~!j&`B zv(%W0RDd=8;+8$C>@Xi{pl(kZF#M?^aZdN|iuQQ)C=@_PUM$6I%he{U{usKU2z{Ct zkL~zWiJK;Qudf;MO+zZ16DMXe!>EFTJw{G(P7kPQBu;?~(YF>#^cHicB^zwZ2?LvY z-r{D6lTNe8*dZ+zsl*GtpI%dh&V3r>p$0nq#R$q@uvW)O`_;YS+i4sd^)7O1vO9OI z*w54t6brde`KY1j-Blt7RWs@;X^6hZSVr$Wf@5ofB;9U#1$KP3Ux1 zeB<_6w`s|G|2tDr1mIw(@+6IWaB#@>DAirisN3fvH? zrRxz~MY%J5%5LfG<>bso`Hv#9KTfNK^teLqzEfYN;0I|Te>zm3d$`l)FFmX6RVABp z0|g7@a@~dGD3q5BJo0k2xg~Vh6F!1z)0c0zNX@_~tnu&P;y3(AqkPcNDtgpS7QcEm zvDYYL{u=atVwc1*p?LPimCzEEw?jwy5*r6Q;^Jc=nCs*B0Du6`$uSHYcOouBugFJc zVR>wwxf!y?NgAtF+QU~g7!vCS$%#~yxNweMBMSr>L47cV5(h%>u; zlp~u;M1!#0VUsMi^fCOD;Zm5LGBs_`u9ya5K(O|kyFMO@^4{CctCDRX9h(U-Nhumv z=}0`nR45)14DnP4%9bfIv^vlTCIu0+s?%upTejQ+A#}BDreBwCi=;%xvFfqGXHZ!$ zih6R)x9|d$M0Cn(wqh|;38(%a{b8rxU0%);{!{PTox-MEk6{!*buUOCBwdReG=sh%N`nY->OH} z!uC~59iF3>0=^JC3nB<@2I-VOG1HJkI%+c0&ljgX4MFx3(r;XH+#*y_!Hx8qI=+Wk zI>InisLlHmr3$burA1;oC5!kfRg~)7NXL3 z?avDmZbGCUH_3h~Gz79+pkHN}F}L+PwD8RdYUGEx)^9`R*9tTCD{0kk$RPX77l-#| zN;4wiMnsYej#`f|JGJNuA$f0rrr=y&!zgvz__(W}TM)?Vn!Te(LaJME&L!~^<_S>p zX)xe@gotF)fg)7Pfa9CYr#Qqx{@S`@v75h&Vpd;JG|w!&Y*;{pk*DvltPVM}{p$M> zxe})+cRT_)8TXO$mTu=-_cGcxX5+`aByg8>eJB9NBuk{Y`*mOb;MeK(kDYjTF(W%$ z*M&u)uDufnWL82)rKYSLWadU(Mqu0@ZXnfifA+fGM$t(9bAnGI0%e&&aa*3FuDnuY zBE==v$#;SS6{WkTojc_5uUzPWW7@hSzQbm(J^sRlx;|orkFe&f14n4MCcB6xxw#v` zYS-I6n_j3DMT#*n_eEI?CEILvu6}PG3S;0bBY1RWc0sO}R5mp){m8a>F0wU3Kw!Sr_X%we_@xqkDP{y~ zcN#A4qUK`iK^7HcMs?1wGNN9*PX3i@EV0)!FDtyNuiYi3BE>|u)w(YnD~${kEoCy5 z8M|vr+Zt+;Ft6M-72p#6+ZqS1}b+i|sUM+e+8uH+`dlwnGxq_)xFBwVsWnR5XLh)e!!=t-dJK8o@R+W3@ zD@7|cE_rSW(uK_in%k>;RnJyu2jlDQW)nziMBJ$a_j*99#15jP)Q zMbV+)roV;56w(P&CH?GU_k5sFzFY)-OHZdMcXfM2MHDQ!u}$YCRjaQ0{QmkqW<=4G zbuKYF9hrynbKMIp^CUV<6}AEFfq%iqWjbI zA(io7g2#qTVrOh^Rh~tA*MxsF@+jEPe24)Qf1?JGO-{azQR>@m`0zcy!;d_ULgakV zLd|ZoM6%ej!@7Tq677X2iUSI9ofdt(ddjbQUy{{_r=OWn8mv)D}0k*ML|MEy+e}kiY7Ma zQOv1CQq#r}w2NzfsRm$zRQLP-bF%b_tDyZVTUaBZw_tw0lk@f~Rhb2pv01%fLG)KD z*K7HBmWO`j8)ZqKDIE^%qFJ4i*ClGN$A3pnA{363Hz_3?PM7>2+us(Ee}E65FXp*v`8K7{&7NIkkNNe z@${t2v;Efm?IBah>tEe6HH~H2(&8jr8N;cKLXKv6IJoNr=qOD+ClTGJ*ruDq|Z^Y%pswzIm>s$j$ z>3i`3HW|SqW!#`>L=@Rmrbmxwl~jC%u5U^z6nLqsIpMK(RN>hi%RjtV+obZ*Z}*#Y zA1Nhikb;98^qDE-vQ?Gk>ne-+=B_&`xcI>w%X@9$^kHVK+cw#c*Od(?eJ;#rYo3=@=OnrT=x|5r-)G@aX3y~JorjXWxO66d)QqAu`igh`z z95*RaI*`urQ2vrlUiKQ>gWrAO{~)h$ASS)wmc(m``Y%#Ds*s?^?@a8i+2eR6^zWZH zKksiZjxtv3)O`9z=IUD^6Sn-FcJT;>cj|LLWFWF}^cQ~vt^m{wN#egL{lpkralBr5 z&~~X^D}D}STQc{=X=l4`aztDAUD~T%5Xcxu>(Dvx=brMVM|Vv(4x(U3D!LIN6NR12 zkY=!iAk>w~M5$(!<=qC;Em`T#H5JI7qEw3+F3i(9Gy+Bx&Ca?XFz(e}cJ72afFG@3 zU_+x|Q851&F!=fHb>xyW`}e9Cm^r^R57ND|i#xxXz8yI{zEXrxg$jOE27y#IWVatd zhN|cK@qLpmcjKU^;}L!n+yl$6kjUaT0VeWG%8Qu!7Ua?XaTLYFWxA}-(^rn=&pRarR1rgpCLAEr^e(aKjJG1d0^PTp?2 znq&3lLO3j$M9UV)^ISE5^(kZlvpEg_{IKPgm~dtlQFyp65==lTI>cHV}(NH|>?5&y%XnF3-j4Fs36mnLu_GY?PPC z3YVO(UCSxzsf>XsmoN#QBcYMK{UO}~?XR?6m{UZ6JnHYhJ^tJ8aQ}lF(16tJk7h6F zCVES_&M#1)y$PpL-xK+xU}Vb5JM_CfV2*p6Yj&e6)5b=Q z?+=_m;o%a+8P=&W-V+R3@Ah^T#O%#02x9uIuU*@kg1In&t^x6bI$1r6*F?vZEewJ(awsw5K(5McrD2QhMQXt zEM{eHZfcb2PxFM9E_1qOUxq*YlqT~RW`<0A=~&jCX?POP}fSQnSk#df0DINPw>ZNqt8yrZmijk#i-L*?z1B2!AJhkD^R9>zZdfKaf z{2|DPR5zAEhAOt-LcaO@WSyCeQ?fMS@cB>enT*!9=ce|~20z!iz7ew1y|C{buijUR zYwYe0zmQyZD4}9y=+D?zoNf3hpXuVYXWMBKX5uZ^uHPt4YZ^OFyPOEQPMUmNc}Z|e zL)Mu5$L5kitnQ7XURBe&5Lr7T-PeLVBE=)d4G)rmy3$OtaJF$L8H|Y*Ch%Cz;IgOe zdSP)Y9+jHlkHRknM^LXM57kTU12^a)qK~!56H#BHdTH*Z@xE__PW7fc-pscoROJ4<8l)WCMi7TmT2_W(eVqnWE--E`Qi^~DA zTF^32X}axY#T8Gl&n$2u3ifPkh0NOBL_LfLPm*VPCoev_PX(yx#q0D=ahzHniKNo0 zQnlhsYU#!w^ibYGmq!y(njX!1mbtiIGiuU4)Ku{`OGcsg@x`+gn*eVNKs2-hjtlMF z?X#*iU0EV@Pp@R0S3DP`=Qh2x{@P2rewy*)2Y0ivskRG?7Go&7J6;DRCLdJ2+}jRN zW%%~^-g_v~(9yuo+H>|J?7`b&+rYb))5e#m|d zjDQ6|Xep&j5y-f`u2g1fBAT6XS?^a6F>`S68SE0Xv~e|x2rKa=_V z&s~zi{F21^Vu|$nO&Ou$UfKD`OWGzGstF| zGvpwfBENO-gBPofy(8D_7)f$#VT`=jz0IWI`FR<|p6O(F8<)w@otU~8H*?EFDrWju zy$|Lm@WqZCHlm}btPfZr^vZ!Sc2?gM>bMr~ew+-)^(H6=aME!pXNKzMfcQJbyJEkr zCe$P*T8BU?m4?Q6m)d9IT$+ABU$hNpa7X6o2~hDi&xp9L{pi~Fwtn)Ye)&Uu4q{JM z=cB`-0GTLeeIzt=jbh{(W<+~Ka5-b8Mi(lGd#OwAsN!f`(#>Yqc5Ca{YKu-N0tM@M zykXd=RMdTEb=-AOeVja7hi8|^$XhseCAG|3bZ3zZV3yVKbp-n>~Zh` zoUK-ecu8^bRBpLkd_qa1J;XOw$XHA}cv?}>Z*v>Pl8qEiERTMuM0bBrkx=3tX>?gx zXqQ?Q(O|<5dAn+6F}@w^?X+l8?B68{P313J1k4b>{6NnF7RKVQDOMl+tVgOFrU&M} zvHFHQX#RW&W0j<@g=Ya>?`6sYn*VNl6dtnmGBV%Jn9~Or^hn~r!0lU}M1j?(c1Aq; z_pT)ih!`^g#+6^4pYsZ?epSn;bNPbAJ{vYR`_yWA^R2j8e}OJLEVD0l14kWeG&=Ee zo)|}d{}g!nQV;blkRV+#nVmQ|=8tO<1szv6jpRi7hV7O+7Ra}p2o%V$P3X>6)d!4Mf* zT*6Q)#yuczYr7N}8#~yNF@NwXe8sUdHF^2q(ZnH`gnwbcX1t1E4^^_4=6P!UKXF%; zS56u84U~P^bzDv#IGQ-fOB}2OX|NJo;3LBB#@i@5HgaJc>D_lK-IWj_%zyq=XUh2a z>rd{^gzM+mQ_x&}(Yfkb6A5$TU@*A-o`ano8sB~BIfh;Acswx zB7TIo!7HRe0CTRM+_ViQQ^lZ&q&aPbk2Qzlb zC&uzOupBCoPnVA&P$8)mWnaNSFxA#0T2;0>cJ0u9BhtJ(bEBtItmwpv2)GP@ppZ*b#vhAV zLe#VRnuH?SCF(I33>b68uhN^EkPWW;m6UwW96E8co_Gib3(@v3j&1KG#>RTu7At4? zc4?X%9S`(Nlq1x~i?NX=r=EbDARQ41pEW-D;cRV}N~ajPRAk1=6Y&ieDm^@)5O%bh z&RG&@m@+>4Dh+fxy3mR&-Ts!EjFCFrtD^c*nHDH}KHzidMHj*m`0n_hqV(MJ37CAJ_z3+KDTJ;vD zB(m`N6j)5yTT<0%s8-0NE$?#F;Or`bRim*EZc;=lm?*q>rNm8 zefsOcLGP4@N3ls>cRZlDOJAREA0K$U=g`P|f}VRu4{O0ocQK-ux!qXfdE6DLwzRZ- z>LWSfXoH<-t`Vz2vSMN_Bc21(=VeNP%Qj?vAQ*e8fXEg^$ z)bf$d=RWfNfGZ59%RD-lL!)68yo4;&Kj#!NUJ5&} z{J8w=j{mElQS6#mpQRpZyeYE{zhM1aDLyc{m#~NtB(n63KMC=_de`pHl{o*(<$pPv zPAt~HTxBOs{#GPl8w3BqKBqq86EE}$xtzuyo_eiLIy)iO|1#a~raE-2bc8USa$;b8 z|0e;C`B832e(u@L%db_GpHg>0kBK7Kl&3$%e_h5of%Sh|sQ*2V0JcRLlg2-ki?85O zPY}pu;Ey*i%l;-j@B~z6Jh#8=OxX8lsPKP{P_eDB&zb)IzdXTbsUG+Y7!v!O85x)m z1(wLq-SGv8oRCnOXUyBrD40-ip5AuEIj@Ug@5#Rw#gYt|7GWZR)6j9e+J+GP22V_bQ_Q;3|vpXY(OnQ zcj?mY&>j7IgZCdRR9qXW{#RM&e`B)v7vTFB)cIR#`ww<2o|#F@ZFr{KHGHKS2CKCA z{w#gY|#J|ck|MS&Y!KIM`ymK5^FVr$IF}{0&IKJLO z%w*p!|8x7~grl)5mHM&^RGZ$b%PCHeI5xp~S#{R}Ye4^H$ zIT~OY=kKXv&Th+@CjZ9H{YO;5f8$(sBDDVNY}@~4vN#L>Gu!f)ox=*jzmOTw_-~lz zzeCmmU;n3cYx|?fJ<&IX<6J%e^Owr9OmE`u$Wy=g_>}ltOD&#}t*whazug*{5s#Ej z?Uxq_)<6O?T|(gc)(mMpw@3TDU<=kH^JhH$PnZ@w??ic6ldq_9!|ushAy*)NyuybzWBu~3-XPR0$P)McHPa{KyYhg$K=7Fy;>H( zrKZ=Au?bp_%2!D@s}m=6AuqmhrhogHK!RC`@XBX>Vd0>MnDLdg=tnK*;}*SBZ#Ts5 z_}H5DuwPE;yn;QfvkzKlxjKn`sS@*wOA;9iNryclF+CJ;o;XLXUsdeAccf|&X!fpa zWl5x_+Gs>{#M?alkms%8;Jxdj8+XSvyBVpi9d73Ygs@CS1ET5p2@Vt!L=&a{AZa( zTbOL@6%;xmxlIn8Ol=0VFGbkMyqOXdBfIKlrG^%J~9zHrECE|zS{3sF&{;<+iS z7{S$1;U;EY0TBgzQ#&qh*F~13$J><2k}u+`Yc#2t<*_)8+q{S~VNRwPI{=viRtVmG@2HjJ-6ek%YRb1K%$xxMT(5 zIxm$`DAv#6Rw+rY|RA~I{8r3YK7=|Glk+c<(Qx)N+w?n zN>-txZ+NJ(?x{oE#)V$r3yU+Sr%8SF0OIV|DLmZYzqkBhu%iIEvqDz5VX2>NmX0@E zssFu-VEScCHiupSc?3`qMCU_}sB7#Ug3ot!HpdGeXcOK82`jvR`}BRm1d=jDNi-am z8MhURXlw59$McvbY(}O)54QTr_aYjFtW};Iu+D~VLWtBZ+H;B2fJh6DGuvry+S0yyc842z z6bVCzD+!Sk2RIq6u*SDL50?31WOG_Sd+k9*T+8#nytos#L9(}uqU%%h(m!e%!&LJS z`Pm(a2YyXqipCh4XQ-rc73u!KmrvIzl}tn4zEm6Hp=MTf6|aY*NXj^G$h-sI!Iyp2 zEnbrNB9Ua(y#5>xK82CXyU{`G9FPa;utVpC9WmjZgk_HvSIQqfaxLR`HKmDMOy+43 zJd*NkY+q!Y>XFip0G0)ZX!7BM1Q9G+%*=2@m=5y~hW5t|xACak3hi>lcX)z6UIkqPMf$ zJ59l2#&(i#yy+@?Jal58V0GXZlP}O?ORM_fw^VU2SJ(W;)p| z=Wzb9dxY17k1S3r?uar0nhk(&MY5qK}%wUfTWQo$Vls3Iln=sX*t<;wCCc?5{fM zyD!CnLpDJHbkNC)q5?m5Y*?uIeX?&P&7|%a@D^dY2LA~7HlmVXAA5E*y4qS>e+?M1 z!bSEzu?v^V{o>B;Tc@C&2BMY*tMoV5*MB}luL*y*9H;`gAqNW0pRp{pk{#u=0o|6b zdqIH`8ydMFpP$&(r$GkJr=D8r@`Ov*Iyxm~n_-}vm59xGE35Tep{_{HUd^}zfppsu zGIuFryNGrSFB6p|r?K_Kt+)#w-TBvKSxEK5>us#FmemaM3&7iYhuv$WOTv2n3m>vr z0rdIw?WJ4kxS@SY#Bxt1s&^aJ9}c1_id!PEh5Zq|1}4Z=rBsXA5P4+fwlKRRtT%ox z@CgWSoo^ayCQ^J|fvL635VH9D^=$B zc>y5-9Mo{g!n@RoN2S*w=?|_K$c+b^yyiFJY%$woV~U{inwot&pPM;s4NL@>$7sor zlw>@i(nD_@E(Hf3r}AT|UJ!)u5nBc0vpQz+Eqr%`ax^mbgZY!OG1>KzOcpgt5c}Yw ztL5J4<0*)P<1uN*L&M|6c~2yK0AG7#gy|Y#MB2Rn9i!_7N)Pq!@Jzk%Q|QK#vQ5a> zwuT1UQBslKR*$DQ6GncNr=fHjO0z1{)RpzCD=Tg!;s+s(1FjcG26V21cAWa2Pi~$? zf+Yd@_0EA{yFzwkHlIHth4+bY23 z_-*us03rR|fz+3`n8ZO|MC^sH*vBk6M5SxdsBkM?@)!_2-@1lq!xSP$9BKz1y3hjR z{j);eJs=?XUsHJLgb2vU-3G}bY7n|`jhe122;o@xHQfu4ncPrpABUAuj9w&sl;`}`9b<4rg9F9kx2C4F?_y}+2JaA7qa+f4p9&3KZIBp9*M zj>gV~y8628N9xdX)?~S9oLs>lka(M#SAItBClBH!2@U0G+;c8tUos zpuPnA(|NgZ39Ag{hx(|kwFlgM3Q)Scd(gstt*PFMGn~1)df{VTzf`li;mnW%7QFY@ zcP{1onXHGh{GGGbun_?fO=&1M8vC>)(1jB>TC&1m_QUr#iz*{b<&0|8^-9U=3{@5K zimlu;whjHylJ+5Zh={(wC}i5;D?QsGH53(jKrIUT{-^D+viv!9(9a?GX`rz~*y49|&{P;&(8KUlG z4ILy^%3X=;rrZmGiz;5yrnT=8Ym(1cdDRbK1bj9gVPF5AHWvJi&t{bb(iy-nnZbBd zX$z+w9|>Mu)2^)cTzT{bzI8`_QY{K#mM^F!4pxVARW7I@Bdp zh!C1iVJ!gUN;qDYfEN}MAkVHI!;8P3UB^hAu#VHcH)(P&_PfH-cNK#;-ZFkhdpKQ* zo&9Y=rKloeW{|v!koy8E_$m<8!0d@gJTY zBTLYuB`qgv<%VrOC&IsS>cSgt3_IH9-m4bLdiJeO^3ib(}BHNP3OnUK6?}C2O}P|iYSj$Dps~Q-PuolKBtW+n$m*x zj}7Glo`yB8vt0}I>^@z2mPu?1m8kORhHnlvvQT#j1I$hHE`96wVFhN`1ld({-cAff}^4D?KXm5#C`#k#- z1R~RC8iYpc8>*9v=#p}YFXP&RY=H3UH|y`#&Ek^QZTxat{O=)>!}6{Ytpf{=x@wqQ zC5yv^AK3VG!#6aytTDm*K9f??pg9n(4erXYqh)BeVTP%9!vJyQkC5KY-A9&>kQ9j!3~&7$^r_=75N%7RJ>fQ?=<3)kXmhCh>#R zJ~>doD?k3j52xafQ9>|2GoRmd$q7(qb9lBZMKb7&ga)Es^)!8F3tuZ0%kjTXABNf6 zo)Grht~9#`-gE`G3!uDT5>zj-nF7V37i_s&&x{Wc!-wE9s1|jO_y>dZ<^d6633yxW zYd^kbPWmWja()y=@wzSHa_=6gw_j(?>%EOBaV^#J&eiTiV#Ijz3mh zAsP5kT!i{^7;T3W886hh2z^A95FRjHP^sFdFP0yf3*AYEMJ1G~+ndxuzjKSL+f zOoP@Q%N6_9AE6!b-OfzP0**XpAN6cIK?unlk(!oz^?Pql@TI)B8IU1(CM=eisZI@B z>xlh6wTAfu0u&^*m!F&KiIOSq%IF*x(?YV$^GbO|Xp zU)?SY;Tmty2rQeP2nEqFcFv7t+kN09rZG#oGp9y>)pa4!+bx}fia?99N+Ut9tN@R5 zEfDzXnn<37zsHwXaiW6vy_)d1VT*3L_v&Xu{7QG{D&6dm+eEJgk3wk8H%^W1FGlK? z%`$VruoOcchMJXOuy4&=rCEaFZQuQ4a|CpzVKy7sY_U>7v>*@-%D$1;6PGZQ-&ZSP z;pNm)3`1R&bxXE5JbjyH;D805a0_0XPRAt48$ zDQYBq?PeZvf`?|3BW$CXun$HKsir3~N{=c!FFb%&9p!Y+;JXavcr?2TL=G(>@HB6} z-T93sB)y{Op7@fYnqJs@8Ej0+Vvh}WyX*tI5^WS0ruiO_7Ivr}(1>!b zc|tJu&_6>s=h0QtzF_ExC&3deD5 z-wMn24$%zpRkQ|eb5gfI@BbRFcTc%E$Yl3i+{knN5WSTswN7Bj&1-xpRnpU0x)N18aJp*u%vIRa z8P?JDXzL@rZV*Tp^J>}iM$`9pE#ROQSxc|YH+9>@*?-qjZ0o$+D}e*swC0CvqGwq$ zFDKSgl-&Clt&Lr!6QWogoUxR^9zkv27OGYkLodXc9VS}py!U)%iQhU$I{aPdoeG#~ zY4@+r$^_<_m|4haJ4D*!jmmatu&n*u1FaCfXAE=%-Es743C){McW%QvL0wfb!DqX^kd7$9Iwd%(fl;DW-lD^lf+SE ziL9)6-S0#p|A}k*r@E#q$DaCGhC+G^6Hs~@+mg#0h()2ff4!Fj8htRkI25{BZA!OV zYXv!|N04P<0EXBOcMEN3RL@2d`jRNPYibOo-Yv&MVy?C<#0&V%?hpbPJT+AE(CH3W zE>uem8)h79dL*Le9=aDy2WISK(_;0?=Zfg9SclWf3SIhD~J3CZG4;L=&-XmwF<{%7CMrr?ndPO8J+F#i@H*@l~@JGfs zBPZnw@T#YXcbG9>S3#wBQ#9p{+_!MIh1Kzmf=wRy%Fg$sbY@ck2;H)pSeQdp?9epd%UctBz`LmUMjv9X;=MlCx-;p z&Vn(K&33QrEk`>1ei${u^YqsQ<&S(H@~I}BOy^}jh%6L<>z1;0H-xBWW_$qcm3KYb@!X)a0@%&7*cE!KA9F)yIe|k{u`DcleKQ#em*$TGXpM;UoCvz zKv37>7wovC9tXOs<#VU#UWNk8kP?a|SL_j!8c{<0aQ){F-KkQp4wF26LNqNZ+Tld0 zVa%7Wrb_Xt#adR+_S40@Quq^tHmU;e>Df)3x0d3n zy1(>@5O+r^%bt$Pq>+87CG&MXaLBO>264XZcg)vXfMt1W1@%5XI9nn$Fgb$mL9 z3V4;|GEwU)Vs|%&${v}J9E2#2gW}$rl!X;XWku4r<3tKw$0OQ`UhAc$jpAx|Wj5R| zV~j$Jj&LFs3F?-@%-_;0d&2w^&HR?)q!sG?VcA)AfHtwriCI}HB)Xknx#X=*V8XNc zPsaH}KpSX>A~b3le}t>*<(yo9DtrIo&tqL)2dMo)aAE+wdqkPY{PLZvQ|<$s*G%gh z4$}i}XSa550<)i{&79!+McNN9A&X1iVY}*sHtV}c^;2=~HAfc#IGe>HRvAz={_vA{ zw?}T^?d+sFDOHoA-d2I1bnf6bm}u`sy4-0BD>m}ijjLi5iy)LHfv?Tq2_*IzpGdEV(p zl;egksglQ@g)H3OK@ux8lWLyS{||1X$7-Ky8N3;%V?wa%Uw(yMesNS+@_YGyb2o~X zqi5*QgE=}^HZmNPGtVA$BI56i_Y>ukc%5*)*X?BAiv)vX5`s-;!)v715=O@v!j1?O zK+n+q3_2BTNr^XV|4!YW`sLe?5HxBt>A|L~$$>-9_uHcZzWxfggMM(N0$8#fbj#C_ zKi=URt=`Dv`=`abp8Lb1G4jsD%Vgo4H^#hG%y61VdB$RDFhWwdlW1n!Sg#g$vJ1N| zn-O?wfYMHk0K!VeV+G*QtJTS3~fl5uW)lQwld#ANU*&x|0k z$oWs3w2_l<@$Mko@g(_Sq1P=w3KM4c(-xl&`eA9FK$-iV{&%!;spg}h3aa^Vp zyttp3N}>{Oqfoyn5Bzx6fHJ{qEEDsleqTZkbb!mPsU^bxZC|1>&k2vKi!7$Xo80hV zBVnfbJmu|a)lX7xnq~>784AyJSEW`RRI#v&&0?U)kMZ}ZjF4KHzuGlRv@7K}d4u*7 z?`nq>6w_WpFMy~hG7#f-7z&ak!Hcci7(V$*pRm1=7&@JT%|C0x%}-`ou({h_)5U9P z&tF6Gk)>b2VTwjk77~1fX*e8N=L$q(+1tLjaX6xxXjn97Uw-<_GTc2ibZP{r%t7=$ z3c4W}Y^)7>F6ETf8?+M3kWXX~)yWCYhPb&9+pFRdl8o7bPq;djB>E2Kfyh)R`& zhNe-nAssjfE+ViR{PMH*sl!FPgMT9hA1*d&6~#FunIqct>Ha7~Dc+rO$(jO6oX_$W z&m;DvbCb#`G-!ZICj`YE7ttCBJ7Ml(E{AR+ppJBG;H^?NRY)N#tR_hqW%!yhO5dJi zSsJSL(zrsaed99CN66G9$_+EvT6iLZQ*oR`&J^dC=X75%P4K(XEXt7XQO0|U^e zL$}R4mNPySG?ehILp%!0rA4$b2!|Wb@ZPoL4x*YJ#HVajA?4aRLL_bK*hY!Hm{0DS zr>`qBy#81WJd=h^op%Y766b?pj~8iRd3>P&+CnPoa(cNkD2>o5#`d^_~{G` zb?xJ>3JcR^M^7^IV7ea*Q|6$y*9FYpgpnXoKxpD1E71&9VewQJ@4vYiVw~bIgOLd$6K05TOCPyw40_OwHOG0Q_7PA37$WyFGS_#J zfZK&u$kcnxbb$$j#rp3;0zKosv#g_bV|)IZKM9!FjP|Ixz@;yubOIn z5C*&bMnk}pU`%*(JO=;AvT^E`)3orr7%>Xz)jC~YAAw9&t~tonpa~kal`nC8fpp1@ z4i`M*6Vdw3JmMw3mypQDG!1E*8!oc!mJ1l?Br?>^h-1Q&SL9WYUox@vj8P#~nElG5 ze$qI!FhtsBPNFDr#(g0m%o6mQ`vma3qHOLvmi918@gYu%gX3?y4tVHaL8$S_k~olFyR4NAn5%o%T|%p1mbP_3y7 zgJ-fP(P4mRQ1z!5ix1Q(f=UB;L;f!sUxP-nx3x;L{oeSe{um1I_h(_Q)2pUn4TJD+ z?rdhxL&<02#X4DUzbv$Bg4btM+0kn>o*7b#kJ&VySH&OCo(qN~Hbs+%(bqDl?S-N& zwb;Ztko?r*U2?G$-z@HKI|v)LVgiOLlKhF@WblX>hsQh?XLw*a@*64>>FXHb?8!kj zwPOM4Oa>C*$=-4~j#P=@@ON0JrvAHO03y>v(Ka_4-Z9R2Cg$5XS{jxHT5i76p) zds*zd75CgR66FtGI}6PIq}5>)v`GgAeDLKy8VX=G z=m$EW#S8Iu?~87CVqtFu4<(!UPgr)Y+e>M*?qtbew5{HLBNO=HaFA}bF^G^2kpL`z zN=7B1^uG*^vYm0xg#0*jx1HqqIfZogyWIHGL;jZJ$BD>8w+n$PGGw|A|FbB2VAnxsL)(L3!g|X*_8FHg5~}}J@0qYr5Sb!NDm>Up<_W_wzsu;sEN#f(ix0*j5tQ8q zPGKf zCWe8Q5+)0T{pVi+NcqghS}oVdn7dBQUY|jeTZOMdRM8xP-)(Gyu$OM&p$Sc z!`K>wOOhHOiQ_Y@-=1;TbnAywYd4A|oM`6s9T#hh%OR?E<_-4h5_3a*vZK<&ShBy0 zphg3}B?I?ERtJzZYrT0NTX?TWj-txp%0)-hy_PA-{!n5cY7z^q(eD)gl^oYBV9Do$ zD+AI*xyD1+6_GF8NHv@<=d&VJgGrvZo=8;oHuBP*PCBS^)DRo34cexya~|?mx3vlz z{-Kw%C#ey9mNaz1=ylvV;;oXzy#XJsFa@^UHXqKUg0}0y;!hFtzt9~!cX64ccA78! zT+EsM$%c2Q8ZJ!21-P>@+;&EBnhZ*NKgp|qU&*PIGoJcz+QHinTVMSKSjN#Eb!)09 z?8pA=R~AnS0&K6#v(x%gQu^^uFm{ONtB5fBud=*Qm#O=$kbNR0<bppQaE?h> zl8Dn#?og*3+0*m@y<7H90DP+iK033@IyvrY;`)YWDQyiupVPCr1!DTj6uweP3k0>U zSBH{qMV$v^rST42?f+$D;vLz@=rQxI>)%5^tYP zV$rfw?n}I8R$*HI8Eo&diCM< zFbp)sN)$VgpaKs#Mw!BD8a4E2one}1AoumnYJW5NJe*z-6<%jk%sj~S=iicXN|(p? zAcg)4L0GzR*mX%dv0AI%g>NSPAH~wVV;ol^NCQJPq2^Sj^xFl+8#q8pO;$p6V`$zT zWGapa`H}wLmK+KIpwIVVkcH(Z>A=&=W?S3-GBWes&NlTjw&!>V=%N43_HAj0Ks#X1 z+{0(E5ChH|l;{ieI?Ta4cJ#lf!sBynK1Z)t{R}DxO~@AErd1#qIqOiHxZO?~ec)*7@`$dJf@y+{5ny+tKeC=C@GZsblt;53 zk_>ie>U#G%ELHPf*(4EXJnC&1rmnMVp@Lw@SbY&t7;Zjo6Y{y#JmFo%zV5r9cBe++ z!Ak30kG3k5$ND6uAQhcE3&unMU+Kn-53|qFP98=26^RwG+YO5}9XA z^+e=g`NLQepv{9oRM=y#kQG@K3wJb0n=?kY+_C8O#%B2K0t|3p_4I&Y;TP9Ck8g5t zha)Pd$qnu~iam0D1|MKAm}3O*=q-(Z6LM&iT)Jld3ggpu(d@{E_m^RkOlc|Qs74ar8n?bcn<1v)FTS+W ztteU_3x8Zm3!Ohs5@2(aca1zgM^JvycI`w3u{S_e$-~ri?N>Y!Mpk-72!!TJ0D2j*(rN+D!5rFgBCfZ4{RNF%$%NiIN_;kKmoI?C! z&1cPm2B4i-&Wyy+BZV zR*fQMdj7>!mEyH?=RaLM>T9aY|C44#BQ7F#Tps*kb(ZFvfpcysh6g!~(F9eju~hDPg}9W`i`I3k-Evhj zf=cV1a&R$L>xySIZ~#B=9&rY}#jx-XKM(;d8pV4%Ol%rtL;@A#UwLekq=JK&2;QXv zI`|Wi09-1zWt_ZFS2BEyyJoOTsnCOWjh^D4F@H@Amh9(7hwCvW1ciT#2m5ies8ngVpl+H2ky_4F&2F~&yPsdv~TI2VH3p!VM{r(9Qf79UB z6{7!I_@a(f-4hx)A9g8$0D&%ZGnym={C~R|^uCbh7GAqly`urM^n}hxkOlWinC!wWmYYM_oy_ZTBIgS> zaIb~hA-LW5`lHOn%(POx&%~iqv)GOAOV3HCoDrLQ)f%4TBqL#K@8`WEwNrY`=?^g& z052oma_PkF{<21Qy+k9*2C+b$;{>L;uW+qi{24~~qE2+zY1(|8lKaF{`-AD0J#r-& zCTZpjD97Ds00DAngv%BkY<@-vllWp*l{e|*{UTm9{NZW|RoD$DwIIPPQaXY6?G~dD zH6gr5>iS!psgNelXl!NnR8RIVbJVj8xw*IEVs7WBB?U9gq83rnG<~*>jF-RBh|P%) zNSdniQGsP*ag`ycxEjNEvhrg|0W02xiYDbF%6gn8Ezm%$);bXC?tg1l$+u%ETos>v z-=H3X@tV8zmYwSxsT1yBFBmE@Nero!Nd}R}oj(sl2#_OsXfI1|qSM1yTHPVf)VfJM@)XO}(qs zpgB|9D(*gXwCgxl# zcp2w}avxct_3GV|R{GQGWPj z^H$JpJPEQ?l-8cPWZl0cQs8MW)0y^_o{cFA5UT48-PnPr={U`>drwS^5^u6;@hp?W zFX5)YROTT>0IvU(Q)afq_pREk@ZTPf1xUxZjQ?-DNaiK7)HV>A8Tdl^3pP5Lt5~UX z#QhLjC0F_tIXI^HPUn}WLju!dS@+14Ju%%|1O@>q+262UzuIoZafI*B<%)e*Ux$BG zkKqI}w`di;2FN+iygN4t2BfagPu;-2t@9J5rbPo>(1wAEm;Rikfu0rn@5KpJ*-_p5 z#uSzs?%>NbpmHdZJ38P@Qv^!M&cV~eo%Tktp0=+-3bj9jA}YM$b<#$&#HFI3={D;p zWOl);Ea9_*=HqdJU`Ass2?n>O4N>W6=~7mBLwp8E?F~FZRafx{Ze5$XOhP*yi1`FJ zi3w8MIr8VQ0<{0X29%ttq8?wYl6ca6%tpM)baLR{_u1Wi1o8?Q&z>KKo;_$O59{uy zZN<9KP||hMcZAHNrNjC7tuj$bW%#$ucWOo1fBvz~5i)WKP3|P>XWOAvswc+L#D#Uv zHOH(z4=6eRGZOV*14=+T#UqEEXL<15-3|k-tS{80iFOlvuiaiyoTJ0X8B*>!lnZ^` zpYMq5CiAb6wJK~)q?5YWZgf~KSsKp)nJf>!2B3hM|CvMoHK1Q6pDfS+gnIo}&!fv_ zYXBWBo^^tTLKR9;8vt@86%C@06nWn=x$Uy2qlQ$1+-Ghzz00JDEtASYs~6=a^*yQp z0UtHXsI~yQM()GO91|t`*&Wtw@6#@aXeFX9pHAMW1K-K|aRj#5+aGP@ONeQr$Gbf} zTPb8;BV3)5t`W?1) z1N#pY^r$xN+p^Za)uTrag|>`{#Dccno+ClRW&hz`@a&S{aS#Yd0paWxyB>gl2_axa z8?fR2yWiSwZZSVUaUYUOh zD-?3;SZ{KNR)+a={p+eV-rAVj-t}HJw@cp}tNO(EU#A?0qHEBGZChI~kZ_gN%l9u> z3QC-C>(M=%4n%ls*S2kF>(dW=kLSC8d39h8*c5*ib~%Xg7D`i8=XG_Z)hy zAFV3H6|!OmPO7>6ihpB90VinU@-nT!U^w26_cLj&el@a z#NSx>A+*TOXabr-_L6K zjT{*;E>ulj{tdh#F)H`*=`CNiM_cf~$O{46a@EUxJ82dSBCHs0rDO<={Q}LG=ho>~ ztE=;k6xODRWFnT@UnF+K|FN#GS;eYro1=6~OP6#>H-n;dNDhsX(h@_%NOyORbPNqMzzj3< zZXZ48d4BJQ_YZhCU)TfpjFxBmh@ z*{$m>$HRMory%`O%R6Il3E$LUs-@?cZ7zAE<(#IHH=~6~VfJIoc}VgQTmH>{=IT#X zUM#Pz-sD@}xc%U-IX@=Vz1ibszdk8A^-jNF1iR>RW#-}5PAW7ero6oTtz3&_rki1~ zR67H3uRn*-^yI^Te#gVRf9)gqzh@yg+Liu$CiU0K^MB8Rp1nW%@46qK|MtG~@83-2 zpElq4_l%q2f$^_*`+Yolc$@3mKPPzi@BIILyYlfD`8rKDkc0AaCp)s2SMRh-`ZWK2 z{h&5ep42GW;4vFa>`U1AI4kSUtgygJeo0A*4t%BD!^>?#{$Eky#oUB^>K+>MoSIP^ zhcDDngio0`5&Syeaa724a_aHr$5Ou8MPoh0ANlFhwy|1PPdij|vv zq<4%;@|^3?{i^@kL&yW-Hx$v`)6=Bt-;4~GmX^fD#Sy65Hu4X`Pge3n3k#v3pxdkq z7D@?X*6ja2e9*IA9))NUAj|Vz!RI^7KV&oNSv>nw^C(j{geR z>}3qM%;px|i4u`oH3I}vOK7t!_DY&mcHZGpB z!v*0bDNZex@{%iX{?DT*uY>6>9vx@jz9vJ$Oc3>czWlb4k)ff1fdRs|<-ejaO?lLo z9fp&>&7AYMt?7Mv?;@888;E{x-{g2s!hi1_b$e(?g!r!r=GQkqjN?7|d^En$BX{NC zXq(KC^gkDqeqE&HSjLfabb^Sx^*1gQtnWn>-PAN@<6v+9zgK%&R#qmP&}T%C9WmN< z#?Tr!`n^F`K_D{g<^Q8~V(E`T)8ucSmo@3^I$wWatbaak%J)C!DN7}M*L}ur$f|m> z0wvr$S#LXO2N^TvOGo+0{VNH)`#0(ClDz*C85x=0t+K0&p*GgHuAQPh``;TW65fCu z&}cwilTb+|>CX-MU;K|9aJ%-s|3XEG%nc;unzAE1o_K3D{N`WLn0Cfre+g;K-tyVs zIvVe41Tm8S4-(08Cd@GqV2(8Mb;7f);I03IN^$FA@4khCF|D9~uZ0(qbuCpOxs>?d zPyTO|+upLZxaPjHneOa9QLm?TYT(>b=FIzFnb^pA3x78>H0)H%9b>*0Ut@FpDoOGA zOg1~Fxv_B`t0Nd)QW&b+F?d4nzM8 zr43A!r6VGW{ecHkQ&aPb?zZ9K=jWfA5uBW!QV7`G*eLRtnXh}IBAZ#>P*ygyaLP2i6KRfD&{JVaI$gYv`@ha*jPbH}=p*B&gK^t|x9e4Buk-X4w)a=pt z&=kLf1m`meRjj~!dG^3dkEBVpK`S@A{%?7mA7cbJHpuc0x5#$hH13@!C9?~6Od-O~ zkr&6dOxeCC9y2DVW1+MahL`D+_%kLTqgSu|X97GAmro}XKw#f*0m@eA&QH2K@6~v( z{B=1q@xGVK>u_mdbd(v(VfR)81wcEK9_f|J_O(43e6^;C_r6Y z^g`N9x7mAkAvG=*8|xaK9HO54<)x+ZZr~qyxXNku!6zc~^Jisc9R28*o(ubR4vY1D z{_HvJh1r2RYnzOBk7og6AgpV>I$^tpz2=IU>7hZ^4ttAfq$+QAcNdITRh^tfgmm9> z(as(F_$h>;v&YBBC*0(l!lRx@fA!t!%qHZd;ACVw0Q^5-k}NM?5~>s`XI(7pLI~kw z2TCv#ZKJYyE&Vb-Q`0ZAailC*+kC zEym75DM{L|-?;DgF)3o?N~UCGKPpYHyDo*OL`T=Aa&%4g7w=Bl&!AB#MWN|V7=(aQ zAn^^(T9tbn!ARY z395RjQ$pjq1|$_@X&&%>gZcUSPA&&MpRSxon~}Yv71@DFY3b=3xvYUYx-%q?!5Q43 z^4Zp2MX3+LiUa-oqIESjy_uBhX`RkB@;Y0CX)Jp9!4dM>h43v8w|{UF*;%wURWj{= z)FyY>f{XdMHg)?xm%Sa_^;G({1_MEmdY^)8oXP8N3}ECg9Ga3-$-ny^S{ORL)B-6h`}*~3YwJrf+R$g_@s`Me+i^u<$Y8y> zYuB!seSHQPDJLhVhX+Eq!AJF6`mMmROXbV=@0TT(qY0vuw6#~m!$f_3eIvHzC#eq~ zKKMyX@o@EUi>*DKF|)k3R+Y-&xdr@!Z*9%u`qgzYad9m>4}1HPZCi2!UG+H^9Dc7P z%wOrP7Ltf5=BIrH^myK$i;ZKgCl(Gq;t>=)tX7jeY#d3o=13KC`5=`$=Mac(AVb^h zYsD3rxLoEdJIK`r<<9BbczW zB3>v38yJ{_L>x2z<1hboH74`lT88p0SF6L{pOdAnChY)nmqvfnBGa*m3NLB@wNXi7;hnwek%;K%JGbvY*lJW#RMf37 zu3p_Tp%V1#`_z{!8%~Jx-fXx$-Qo~33w-se`L-8pKU?d?2&m3M!d$Vvq@sbf+xL}0 zRn{_?eGTG|J^6`I#INoxef}qA- z+cyHUSQ{YcBaq|ouZ*b6b5_a){U?W zO{%wXc*0^T$9Y!D*>=#$Z{D{hO-w3z=R#e1h^!QXb5?t;IZBF4AA$}SOEqinBB-$i z_cI#Ywip;Xy&TAJAqXXJVY65B;-ITwZ`(xD982!iWjg9W%)}`|Rxwh5kAaU*I>Qgv=qQ(I z^qH|X;Q=j^o?1phG^O8U;>!nHyj|hGKF91YGqBOOiOx?cZ@I}zT#e?A2a)r7p3%pO zy@lnB)%*DQF)?(GWD1_oS!cUFxyN8U(Ua}Xx9ofL9DeVGWq;zGM~sOiWIdhT5y=%$ z?DVtd=FRyMRndJdOT-HoGFsZ~#6vqS8FT0YdXp6fThU<@dd1W#b}S zaJI!g?5TILpicJCidU+{eflJG^V6rCqw{l3?6Po*fMr#NVMH_;_zhBS*~jHUcVYCs zTF$GY2hkG+s>!ixjz*c=8F8u4|5A;^$nTrr3xxnaHgR2Jw%V_Pk1k44A@C>H`2sH2 z#(BPm1=M*^F9WgDWeevAOKe0> z9 zND{3*BsshhR~A;1+Y{Ar9(yj-0wgGizjSK8h`+Z_pF}O{6{*rk*3f0j z&CIbHAJBV=w`dlPQ1$z}Pb?$m#0@OO7x3?&))2#O$`qHL`XN!yzuXq^lOgRh1n_2D_OA9^V^ zK5JZAmBZ@wu>8GZDIBl-%Br{77=(m+Dbymclmd?GSyi(I7jPCmD`OQjqHanN1ng{| z%S99_gn%;k%`F~g?$;s(oo3K;wNM=2oy&*2WoG? zD2|<#JrFOlUX%R}On!_qs1_(qSBKfpl+RES5`8~CIk_+7I+*d9hgDAkY^UK^e z42x$!e*4N!u}Z&;MwD@CXKw5u@4mvFV^?)UjYhW_r-o`F8OhuZpFM0+8js?Qe8nq) z8&lKMTbt{F$T>1m&%GLFvbna&B29*Yy;5D)go;}?ZbVTEs#YivmugL97_b%QO1pwCR~C7zk#PM;v`rg)b&v<2p8R zr13ElpNA*$TXRi~vgGv7&CT7h)|ZymsyGJf!T#h9rQ>^R?r31=Q!H4wlN@>wgJRUG zuZ(?seVJGCFFKgWcF??u(5E@Qy+VNJPdM&c>yAl|95SezlQfCD($>)lf2%2-_5S@e z#hkTr$n!7H^DPO}i;K&XV~Ru%8#`bywFcDcDVGvPy19TFdUI_fp!01WZQw;^eJ|t+ zEVIj0Z9P&&L{IB;@xt=ih_0~@3&SL-tg+kv6p{Ev7_<4l6&|U=rQ1j=Gm+z!3Tl7J zEAQCWR)55To3|L6oqdJWStlbwuC0%-LKGRXtC4kWvtvakGclcR6{W?l+w9oBy20lq z8n#O^)}W1GneMjIYiU;0e=OpA!Pu-Sab)!|vM>LwUYp_;cX;kL6|FUSOZhifwBKmJq$qVs};G!@K?g_?Hjs=bhIsJXBbyk7Cn;>*0|%V>JiBa7y7!T zz{o{h(_yP_ywcb2-)#2NJR(WCND!aMvT$b;xOeqyjUI3y8yMYjhhl0`QM{@NrKdek z+uYBNTs{G+PE^S8qp;A@(n?d7yZUNtXGby?HZca{0g}Uxi4I7>)9NmFikDm7&X_V>oojW=?AxC|C?H{myHE=X4yUq37elPDM zI0Px#@8a^}dH(aEAb?BLc5SOf<&ZS|9t7Bld_i{(j{- z#UFDvf;qa)=gU`H_9ePym%DK14M^Dep16SKPQ-cM6<1A_zMX?|P4|%FOjZjL=XyTR z4qxq~4hLaHv2=1WvLg3m%A9R_`$ZVk%KoGlc!c+FE$r&PzedW>Z=|xa3AZ=!s{(>s za#5FyML)+(|AVETg(hq-f&@@geUtrqbtw=T_Z#=!jf}wOY#!_zij2BVmfD`7#~b1r z$nq#uzO&;+<%@oiFSS=PenPimVrmI)ppXlPdxvc8y&)mDXlZFf9a#&LN?1!&#a!YH zOG+y~xjG3m3N)?_v*T8n&?Wt&gWpFV>|Drt&t2~aGbXBsEalmI8gf*W4aKK1+eW`C znPOyO?Cg{lU5ZiM_m3Xmqz4~p(ve%Dt*Z4>T^3ea>1fB{1ShP)ch%GuSW{LMMcC(greG`2H4s0g+tU5N+Q`4C7I8?j&IPvgWIP|;Hu$Yt~MS5DT^TII@ zmPAUHj(-8--N$5osEwd6KY}VPWFx(dyuDLO(&5Qv3;EYxo4~#U&W4A%!Jf_lVnR## zM;UwJZhP9=Qzxtr)mF-n#xjKjIaO11b#y$VZUI5(2AvqYmZ8W(fmi5Jl_*QFrH(LL z=t`EVfiEj7>-f%HcODlVF%eeRur2WM9T&mHcbISLeX7n7$$0FwT0>#c0hgSa#zs`k zO1>^S4hn=t`KlKvl!wD0S8p|xby>jGEIW@T`!<)~mj+Bla6tm`=gb`|->sFeM%>Qj z80WAPN=`|0>(gkFC|X_S-1a0clkJ6!D00V%I^mDtd8E6})!e@MmdtL^B;DFvv&RCE z#cmiOsv@d~HT4Y*tE^3Yp;0;TI3RN|_FLlbpBfwtRujV}PFB=9%pp&dD&%{@#Ntru zENfn$>R^Fe$p(R2+#Y3h;F%9MPdA6sPv`BOOAVTgMPy4mK6FXKDM>j~n3iQ$=PuEg z9=zsz?O!ttGgYmZS`}v4`!_kUD?q3nI*WfS`h<$)2`w3u#Je!9H|yv2)8&VIb@%_k zm5bBX!ICDE+DTnZ9?6yfJ$*ZU85{ldjGzOoVInZ=)$GBLmApA>4$AI2$Y-`;3d-`{C(f}8*_65=?;-fiq0T1`paKFp+1})2*&b3C zLcKW$vI)=H8a^+F$vR<>9@-hvuoCeLXO5~O56RBD5)~5G*Q;u3*w=o(jH_Z6%&g!3 zn8jFtOoZAag_GOMq;eYqE__~^siUyhHO?oerYf!+A-x&xuYfc=I8pL#TpTeg#BQrx zeEeyen9sOl9W2LiNWy)4B^1j_Kx@?`nV89uFgHJ44blAsWZLUnTQK+2=sSStzYgls zj?2Dcd!1;%HAMdY@h_14K1!)OXxCL5l4?Fy>#vuNxRM= z@$8^2l;(AomXqqi^>ay~z0IrA3P~}fzxyt8VZg}=QS41+W#tEYRxaw{9bGWVA0xPT z$RaAzW7NTH<>?04r0E!yt~Ah}NLX1}IbONBW|59G$~r(id3d-ot})Q&;^GpA+qwB$ zR6*t8%xvh_!@$13Eavf*u2L4Uqs%8GdGHh=Xc=YtI`nZ*W5X@ILx$&!%zc(->Xm$F zQ8c{zoOka`)Os~(8pwj7)t8~;1rYguKD zG1?t4vV??mwnAUPIO6t$mq{q18M{SBzmv`DJ8G(ihJF%W9) z$;*FV#4c2nBtfgQva&{?7o`^i%#t5xf08Syf-neOn!pRLdz(X=0*K>rA{x-@*d#qn zoyOCov52yi7_+L@Ji&zylRf5IdU~i#Mp(<$o00MW=2G=X!gxKxE{fATli~dhE@&S) zI2^v=>9RWugH^1xblQ4CRSQ-{Srhu$V;RRAoA7U3EF79aiF&GZ_4F+HC_)`vS+r_L zM$^T1!~CV!DZs|QEy3p@JHiU zSN;P7Y!sA~;w@sq!GFnY=S=XEk&r5g&&*FV2DWqsMjTn~rA%IZpsUoQr9Hf}HqqRI zHXF>jD0v~mul+IZSz8-#fyxjYGk5wR5SP7w{~oA-N`58=YS7r%1qBRfZ$C@ge%tY# zPUlQ8*xE*3-runF!tJUfR+0^4VZomJGcqEg>pDN5K*Sauwmsz2r-($|s$qz@%}Ra; z^pT5;YRJQayn<4rCRGY=FAOYGA$)jkrRktms)&t^%^AASi8g>@QRzFp1uVJ=@d*db zr=AU}usU32Pu2q&1%4tjpF$)~dZjeLooqsOS|_=&;_N)$MhU}j1uicx zW^pf;TKqmIGpZvYkMfz7J1tPt-=Vez}Kch7aQ@K?~c{HJv<=prThZ?+B(`d z@o$F1RE}%Optt|2=hU1cj(=hO?W2>Edv%o8F5EX(jzr)~6QLk`ih8Hhfc57H7$vDoC$AOm{x-%6E zPZ28G9*|kHW9clQP2>zUVq6wu4DPcL$Ujs9%O=N>8^)e) z$N7vp2rwDovqx~#OO(S3<`%)NCelgqma6l!LQQj`G7?nq|wwJ18L86HX@b6+e9v&*luT(x^iD4WXF;w?v<>;h1xGI1m zE%D2s4DZtlEdLW1;><9c&C=@R-e@|?;^N|meeON`lIMGoAfF?NF})0LC?>`r z|NZf_Bo1-078~&@FK@=s4>BIO^ITV+e&ATh(ScT1QmaUdZt%g&FFe}@&-A5h$1>%3 zlvJHqSvlwGa6uhhK8{99^9V|yw~R23F^J2+sB@>P?8kySRrnzg`)S8-rBzWslS@Hm z{rv-iPV){`2Ze24yk=uAD9;y)`L(rGWua43Gr)c~gJ~FP=CV86s!4Yl)H+stqta(P zLvC;t_4%GT49d;L%*~d0rB4irUHt5T`B#^=wi-8U$n6CgIUj2*2W-(wpx)UUq_?h- zc2X134C*&|wv5LoB*1G5g`SFf?fG7;$mO?b7;5aE5zy-e5=V4VR#X-#>|TF z*4h#~(F!q_D|<8>0qXD-=i>Y0=!g~aOz3#_yodENvL0KH0ejA~S!uJalptNeE9yz7 zY-d4L6%n=5u37(6hox3}K`vNpJ_O={=~gj<*>|Gf?pRCWE~+~|fIT3P^TkspVUUZw zX+)&rK|SVRPb$=5Cu)xU)n_l*rI#f-!WrTLL1K7$c$`{yl3V=FQ$?HKu3j9@H=uuD zJK`ezX5b5({+tB(wkHhE0^h9 zqENm*z7c}isxzhVqq+j!1uegO#>T5$x<&y@cmxuUUPM)je-z!w>sl?o%>oq8H*2ab zYu~7;(b76s@~#rOB$W4=aw`sd8E@=wlub1@H8cQtrcb00`SIn-8eG)Z-43Yjx0b1N zj(2r+H3<8t`h|pqFfuaUz{f|UE~mA0$sRwpw6dC0YnHI-Y+9O_(1e#0-n*Q zlfGs6rz`&Vd3ZHSpJ<>@m6$zz0=@dS@Y05!tuxg}>B-NXq8Z9G1ATW9BM^ZZNuhB- zfWMfSxSgF{Y+nQHs{$3=Wv%-;L+4}C$Ih_Lw_*C$=MQ~CsfwB}PEJ?M%vO_H_Qu&V zJxP5OU-@69xL7ndH%CNv>Y*0fbC%ipg`zGl^+?}vaO{jcR=dL$>lN7A>Si@UB4Zr* z5{UNyL1jF=nDv#FiUVlfw}3kJr{!YD_lj5E*~$(1XVI0B;q-{ArA$a(&B6gD*#Ulg9~1q)F7eJSPyOFuo9eV}km zo~k!~^efN(wdeo23SLY84CVT(T$g)y2z2Jz`q{F*S6Nz&xy+tcZf+cRO?1$6bB{_H z^S!BXws9yeDVy+cR?+`wanRaJ8=Kz62Di0G=9sH1f?HC7fiHc1QPUg?3{A|&m_GQ_6%#=#DpRiHO1N&l7Z0p7mGKU@=$PtKS=+Tr9vmtg`mNj_#|+OL z_2>5z*5|nxnk~GG#(d>jdsrrvWrM$#X;Wkw8g}`}CoxCeYMG=pG+bKGfePHl!wb3H zKG2psW+PU5uf48DU%sbK($Le{P`a7Og)5v0Jyb$-4K&mb7cx(COvmx$cMd@a0 z)4ns}&TYboF!<^La3<|!4_n=#e0SM0(vK+Sf(h5V{o?h=-UXiNClDsbXONJSKQrL~ zTFMaX3ik|6iP;jZhp6z#$bGg{J2JB0W_O=KEjuWIt7-q+(sIDMRYD&#HB7bnjI`mw zWr>t4OH_J56%XN55v~3y1wxvP0+el zgYy0@U0p(cskz-Uwk055wV^wu``YwOpQ zpKT5;FD31}-S0f%E^FM}a}+n0zy6;)oh^kNO76@uo68rvb?;KZJ7s|OyHS!MpP>7c zb~9Lx6pO)R!p{?xIub6t^|iG#1DFeo8}$tdZXbbTGEH%#)ti|d5gtu5HMJ0q ztVSVW#wnRHPIj)@D$r>`0Hw%s*T@2BvwqH2VGYxAy;-bTU*ABnIO0^%P1gZi*#Ifw zs^Z9~65{uC_kQ=W0-Rl*UzAgDHRA}~>swyR#85p>;Bj94OC6xANnnqITlWTYikMWX z_=Q;+3X1Yylsr8Jb4cQ&ZpNskF*~7r5g^fJHag~$k1Ubq9c!;LW zHK^!Uc3C9)nsX#nL1N9p~2-GFmC`HV%YJMvJDF(8w<>BB zQO)1uIe)u9{}hpM^l>s#!7Z5Hq6HJYpzjVz%Fp+~_o~1y+lK7!)AH@FpI+~{P>F3Y-x3Y-_xtQ(!S2L+QUbF*|QhFVd1+^;a0U7gxlYg{RZun_ z+V3XnR(^N%oX5Kv1Ctg;4_ia?`NNSWqvg6-FlZE>>7w4W=(%E4{QV;-ax4V6s*9Elo^-P#1CO~`MbP(oz}1t+nZVea(w(EW(+;EB_Dv z;T>cdD?GCHaPXS&JyY^7(kR)=bW_<)^ihnIg+E*E+g^9EtyaC-S<~&mSGA8;Gj>N# zc5Thp*(^eg1K-nKD5nREFAyy~MWjZSFh1pbRc?^(0eSpf1Ij}&U#xVmi%@Agi7S}S zyhQN?@E6>JMfuOT7zYicQzV<+=QHkneTY(C52I@>b}n9M1i7gmKWlJ7&8AupNzSyU z&vzl0Z5(Rv8yG_UhNdwFc9iV&r_%4d50lP;JtFL&mlr@}c=|cRaF+nJms5&pnu$Qy z)rr>qURn81t)3VR{ji=$eHo4brmU}~f9 z+pE=E*-Vn|>OLzWE%5WL0?O!QE(TTARM(B70HYHlhlcVTMO_mvlgEAevz4pCwYati zk}k~w)=3_M_k9EOoQ%7>hj#1*wALT@QtG)+J zBt&sgXJ~y&>6(PhRm0DdNC2>bgIg>!5J9__pya2|mCftiJTh^9G&4m1s0S!KU4JIv z@j*lP@fI}%s=x1gz(HiLeGR0HV5t6=bz1XRC6@TV4emLBuO~Rxqdf5blr3}_yDy64+ko%ya z2IpnBaeIe;T}8Shsiv1y{?m)qFdP|;H<7dosJceQ*pD*}%-WU+xhv{>(r0GE|xYT9|2sOd^# zmn%*Xhn{cE5O;05Elt~aP(dMhPQGS^tJ&#^FE%f#vm5A_Y(A{Wxxl1z)i*Rnt_~Dt zaSciEoi0A-9oD1M=m_e4XW47vve|YWE)X7xA$?e&EOZ(Ji!|R9RvOn8Eq8$Kpc^XrVL02bM0 z;Dhhk?_m&G&Mv8xUzH(tOmLt0eaWAw<;AltH{f34OcxqAfONU@D5`biSXqOu5?ke)_B8K?1mCypQW1DW@2h#Kl$!(@B+{j zTn_bWy)2xNgPxHrjNdk?z*fW?-ktK$W~;-{%`goM$?OIL+>C~AB{cz)q<#4pdhw3w z`_q5{;|wo%Q^C~nO3$p(2fpxciibb&v_l~;d{=tvmca>1Ukma|FTU*0M(qC%F28Io z@*PlfQ4p!+2j3=vVrF2iK5zw>zWEk~UER}>2HB#4dxQZ;>-+Z5Kpb3<7Pnben27A{ z9Lrh`bftbkoLh6a^xgchkv6hw;@lbQI0ZiRKk6)lLk(CF_^_Z3H%o2sV?}W$y1`Rt zzsWAh#I+~LbO^0JFpLpWVa9thP6Nm@=UelrgdWNCzCQg{Or=>RB~l1Urmh#{Z2IQ! zZ{Sc4(?`d7@*?7~8Mi#O2AM7GeWlVT9U}{~yipmvGG=@fCJ*men(3Cbd0AW2N#$&; z&XhrCVRgmj#f`13qcbkG3$w_T6iBp3f~<-Uh%Sc;#vCA%(zYD9mG&Fx%im^u94F*w|B3l4>ELcrK_ae!TeeTYU>$ zH&L(9l%L}M4kaiK72H%H0^Tjg1Y$OKBw~N+pv_9MLgz)^1Y4`(qIQe*9lx z`bBWJgiTaHV49#?_ah`r0{N&VD-eP6nC4{`D;T9P-n87)DoE8XnYv?97!f&U!#*-H z--KndEMAbPqV=9%oE+7wt7;B*98%dy4|E)xLtWem$#U5jm$=q;GL?6yTI3#A^nRh< z4KiK9-*_w3oJeej)H0IFv{15$HoUl`$}*s5=iY0B(n+c!h2nz-3lcX(2yQ9)O?iVzwCB@WfO1)CDl z?tG~ZQXJ3WuJQdj@teqJDgDb$^$o_Cb)hX+grKI;FEi;XjBpjFlk#FCG|JxIX8$Y| zIgnBFOB{Gqp%S2#k?|J~AJ9wi%zY=~ zvV4Y}cL@h(hn7~#UA%0@>gOaxcM+k5evgH7u6DSanBk|7mF^7?#fJN@9O$n1jvBkA zbFiFE`YMWlwYLq#CRk(LHv-JlU5JkhheRwcyAP>RXExSAsC&X*RnF;jD|Z>oNaWQM zVDD%j7umhpEeS>8@4PW^AKGwrEh;H7xm@lM79~|?`GcAK3w-^wLBu(66qxNm&?O*)<4Ev0bw+H2e7Iha$i{fzP(2t&;Xt7R(^q+j-1(JJ?ONAE5^ zD%dM|Nf`nmN@7vInNnvm4l7{M?O`GgODK-G4TTfe#b);-S}s^n&2WaFOmwIv^Wv(#a*TOGfs zoKG05v|pND(%nb4@o1u;$<^c=609-gQc5pNDOT z^klzxmX!>m0&#u87?^tRq)NGP4wO9T3D;{jZlk6<9VC`wdS_k znU+W*wXzwNEv%~T;m+_?mB%N;!R(qJJ*P+bsA{qdd#GK3`4FdpjqiRuC4;r}qNvRp z4}oKHs-HMeq?eM~TOc!WYnaIV54z!X$h?+z0Ibsg`0QA7Ugl|0O=P70zB!016JanD zanA|luzJV3U%cy967ni)Nm2YT!yd4BBh?#SBcmyK0Ft{Qf-AV{e;yUZHdvbkTxMsh zrMpE$!dJrQn)i_XHbUkcS<8J&u!702FMz(CH|oL!JqibkA4fp>K<0Tg!R_!UATHT% zPbW2YuO2UKs9d(;7HaX6Zr|=8ssj}QUMK`=Cg8aDJ)J=(cdS!-AzAtStmdXET`E8o zAOMw?m;V}KxCO}L3LAWgYoT}Z3j_5ctYHil5A$wk%w?T79mOdKVxN$X0} zN!p36g_Sb3_|VQ8wl-j6)s_kW^5!ReIk8K0AsBmR=4qCE+noLby@o{(XO?FURP9Fz z&c_zo(SCeAx1ffdT|$+_ddXuT1Q(c4ZBYk$)BAyqGlp8Qpt{K$|0XMrw?lMP;QIH_ z*gBIG$CM(W?}&}ZzY{SbPibkd<+50z7KJ?DU$rJz#6n#*=fFVC;p? z^U%fC-gcUQGF)sbFm1ZAU!!P*!j848dt(T7<3^Kh&B?MS2^BdLXQrd|1{rQ|kCAwY z)#K$R&2PA4Y^Ex(Hvr1k1yPEgHfKnr2F2;gDZX$sNo7WQ$pXZB`CXa&#eydtwIOOP z6uH!@kAdAIHDZY9W6|uAv7LeNH8j?X7$G(Cf`C2I{aj!64QHBfPQARimYxCjk}KQL z_vCR->s2Bf5$RhUee0_Io#E!weFIP{iffr>ndX3Ii=+9q6G`@rQi&3MFukb60g!!r zp68!O4AT`hBR+`cTUc*EC0qB#@TG~LkhiWQJ50DqL}72V*WBj@O0dYVlJs<`wU3X; zA|hQ8i1b6g-As_=@5!$FE|jgfvkaKzBqBo@HNB~g^YL4e5d?}0wtJg=s&s}mv4GzV z5A%TeGb2Ky_U*ezgk{P#3x*f!%w&iJpYH3`HLs6eD-`_HQwU_lu0|=45gQv|!0yM9 z;C;p%lFAKH6QUUf^PyE-mFI9JlBKVg~Aex#WzS8eb80pF;eKxXoea0&@pW60X-S`9*atH?8HTV`u7& z-uWGR%8D)0JBxppv^Gg!b}gy5@bM^`t?Z{*$jOQxk}GA_dt>Ykvj;7DnwAuGh$_#F zH`~IxKUDb_Z6&tw)HzR^p&2)x){rG#ei|_L&xJJ1wWimjrX-D7N9y*2`)1cnu5TRm zHsy&Otccsf3dVY+2mj-6+#~0_FCyCua|To^0D7f>n!_oqq1thTi^$` zLJFGms>Lr+*=i2@SQ(~;c9e(0^bRVo=_dTp><2bM)}Qa3^x}{oS

oVI{te`z?(ZwKMXXfKW0Dxr-chy=htsuzs)GDt0-@+{aUV=u|8TS;I&tz({v-G$NLiB z_wpk09pr0cb9q(G*8+`QT_zJ3xy5Y-S4@`@Xvg8z{Fksdhe4(TSt%;o&u>mye!2zs znigFvc7g7`*Ikb*Fi$rh0N~|`dte}T)!J5}auO7BP*b_V&%q1Gr2U7Dt^HhbCF0wX z{(?TwDewB%&*C}uwu&Qj3kW)}_*7G-tt0KN-Ob|gyS1f~#r9JkW6;t@Wy3s+eg~eU zt@Vh=-#N#q6u>t8=(D6(GyaxGhja@$^K@Xi^b+Pb2J%%^CAa2k@V`Wli0~;)>&>>AIne(z)oc2? zW}Bk6qJ}^{OqFKq(F68h1*e4+y~qs_zma5`{45|#4x?r_i(aneku4xeg_H}pV zx$M*6wx?wJ(E_Y|`nFuGT>coK{>hm8XZ6dx`>lIqL(zzI5bD)0izHszIL`S}YI+%R zC|wEvscM_I0IuG8KZ6sJ@G;ktkAl`gmu;BYxq4ZKCEk1n-uusC`VHtL8BYpK`#04} zLVpT$PVrAwEJ0*{M>^kK0sck$P|mxVvyPg4V9ArG|Fm0#24i`^+#xUQPO0_-q?#fYa70oM3PRk-z%BUleJiwgmr7S7Ev?CkqZ5EBk(i+5 zqO;#YBneDx{5XDp3qU~i1c7j!A1{DOjNh9R??>FQ z$QFCUY^{f%n_D%Y;~0QVcl}#Uvl#Tt_tvj3Z2=`*Uf#4zvK!pia^V+akNW5P58l0N zzjLp-rI`VKSpzhU>wc}J{I#~Ks^8YnMWKkw7){`qKoxJ3R|mWiLvnTwA=9M=x7BZ5Q6X-#|P;xC;e>ePG8Nw_AfE1rCx#Y z4|U4}QGHu;b4F!mK7E#C16|m&>i{7DKnEeG2gWo?tHGJSZ5!_lA82;c9yVC7=G{R? zzo$?!{rktqJ8P1-D@h#Y1mwDATbSv(?=d5^Xe6DIV{LBUo@$+S`~yRj1O_j_L@aj` zkJl#F^-HF*JW)kvUqh?=fH@*~1ytuF_}JxGQPA%i7Q32bxKw3nK(>6Qd*0arHZk#@bOKW z9p%58OH(Z@sVF%|oFW|5WR;W@0eaMi2p?Z(nfUX^;``7Z6D=)f54smGp7HR!D#u|C z(12F9zq*ljs!~&%!|1U4Son};a@m03InMes78op_U0qxA4+xM}H!#pO)L{LMCO&?K`sV1_))d(~V$48LWI=)6CAMC?@XIl)rB%Y*^W z-(WX{(y3mR6CjZQ^aubHMx_deVs>V~xwxhBvD(O4CGo8j8xt1efp9O1SaP^il^47Y z;(zP!T?YA=+Y!L!olJLp-?_f^Qqibh^ZNdW}0b<`RWSP@Y3*5Z<3MlBj`m$wph zpZ9Xi~!&6PB6f~AI{>JDyyYB zYS}>#421Tee>X7kuFJ)6tLZm01LN&wI{$~Vw+xH2>-$FawhKg1q!nqTJ4d9X8>9x1 z?q+CgTDnWR8wQ3{De3N#7`kJKVTN~c$#p;beU4-A?H*hlVW>n+%lv`rY|~TKHv8BHMIRlju-O3-#))i$!)Zeh_OH zX_ecw6-|4|GT$h@0dUA-c2zUpfug?6&7YO%+Z{INR#PiRheqf^iiRx!COi{6IN{>@ z-o(jCbu_8C`pm&?hP@top2E@qa2l^th=P_3VsxZ~>PQtCqAZpU%o~J-)0m5M#z3?F z?~(X^0ooV@ce4BQ<3k1KekU5s$xdYbO0EvyGwz1AB zj!2_KCZ|4s4uvMm$wdpDEY$lb=A#{RM8(Bha+KiBoP2yItqC?`HO|@zT>V{qk%LoH z1qTG#{ZCS=-xO&SY7HL7CxJ`b=moe6%@Z$v^y1=DyetONdnr)x z_4@}uCS#U{osNWaPdV~By5_bvA%HglGhNQ(br8$uz@*&dQ;+Edu)rTbt^iqwTs^Wb zL0;1yE5wu16)9S#Cxjh_5LuE!_oD2-RDsmLdG^dyRV7Z9pJK9Uev% zYmNN2N*Nrs;tu3hS)+xV?JV3NOx)gF@ES@sP4ddpv6?O`%rrjkwgF|1Q#?y3&a-l( zEeVRhza_|%l904|Q5m)0+c@PlDwJt#OlHgQ@}*XzcX}D^(d@atynK;pN})C!5LOfr z7M$d6^Btb945M2L>+VO>M+KVYS*5w{-cs`GtwGZDcDt|L`m)DLeHzip;0=GX&HEF| zntT3P@@-aUaejW(-(ULvd6RCsX5GqlC9A2r%q)}7DRmBxjxthYQStE>+;MmB-s51$ z;T{@=Z9IAONYMRY<#*2Sjg1Xm0T>`kuD*4}bZcC@_8+lQTfNhT5TT1ucdn_oSMTg4 z6Mgh4?qKWR5bw&10KexKr&&x}a_|3(`>N)3ic z)Qis4%7Vt|m|ik~1NHy|0uKc9g35TL}s8~LT1 ze({f3Rq-yxn*Q*9FMD|I?2P>U6#Rz17E`Xj|5cEu#3vEvcqjhcULceJHspH)Mh*@Y z;=H%};LN%lKSF=}mib-`?m__de?^e5UTB_E4DR=f@!oJP(XpqjJG6k^=Ww`6;uAOk z^kacy)ahDL?e-fP5}>v-TBv)e5=F`*SYM|)^2>^SH9jFzWNvkpo<)zLr*-Aj@X;SU z^NykRJ*7w9SaV|`z3N+6?o)uctEYE#w70jnNi@IT45%{zCK5oVIn{`qvW|Wk-SUz- z>tgP3_g>|AuUUWw%#v@n!WkG37cUUl}O+1Zxps4sy#-dX=!N# z(sFa%&aoKf;wjj9y)@?7P+|4Z-F!tUe^@0;Hhg_^5*GiDii;EO9P-NDJ2=VQ&SirM z0W#7@6u%#8W;qoga&$7n)+eZW%%&>bGJU`u-rxv-QcGxk_suj7V|-Du~higOwzqu?& z?gvY}(4<{IokJrBN_YAtQ>qa)Z;wQV`}&?;y~67G5Q_7?ql3Y|)YjZ$z`vpl=v5@k zb5l_rKm8h0TkayYlCXo1Ai0o%@hXYVP1y;8@|KxYR2#Iw1mzf%qOl9As{l|ys$Iwd5sJ1ciAwk~BQ z&TkBwGVLCsx*2$n=k|_7uf6Wob~R9aHUa;jPVzgw4wmq{^K-m~8ECPwGX#cQlnEw`NF6 z&_wKFw$GUk$B!#GH8eVH6}_P!{=Q6B&WxNG=HaPXD8$6sHC)8W;{#bOt1i8nUuLv z>&CO*rj6J9rTo)C%7$+C$Df}!)Yj4lc=ZzJPIxDCBNYvIs}=iW!YI$PUD}(UL=YOT zVq;xI9Ac)pxVSt#oo4d(Z;97Q29LJ&>MeqsM1hI|Eyx_~eY*x|Q#?mTMwa?sq6`KW z{T-4TSn4w}oUk9=Kvja7d2J$IYgZOTL75GB#ksD%e%XJvwxF7tl^`K2C@7$ovASm0 zlJ1E)tipkyj5LOjlrHxf~J$2mSAQ7yYljZB~NT8t))xR zTJ=7g!R{Uu8NHauwXK6jyL-5vgP%P=TN4WIegHZ)xF}qBV|r`1ZbN#S-mlJaM{60v z4T#;VzgHITh>ngf*y{sI>EW9s04M6{%A%|NJ}0&oRAc25v2Rgp#pRU_u0Lche@HkGD6qwvQAxsu9IWR-U$tMf)@$)Z5#pso9 zFDxuL0-2@&Clzx%k%H`IdNX>Pemua(bTn+ETOdDe!LCGDukYRb#< zd`Ke%9oW>WVw;<(UNy4ZgF73xknr;+y`r)}BJYkw?Tw8VM-S;W(R_<^$LIZj#mV&@n9fZjuW z*Pl)Fq^-md&XP-T3}SUp+@_!8Kspc^Uaqi)OHU6EazUdu{~qr@N?q0q z8)0vlH_ZVBPb*Sis_g5R2^7mzCyjjU_aVSsh|14jp!3TeaSp3lh*VLCrjS`oCu_U+ zO@?GWRL3PHT!#Ui+u~E1I**s*x9Zlp(QmqDhRju%5eJmH_|gu!59v1^@aWJwGYdbL zU$l0>OjpecY#REE-JnK9ii=B-Z>>%Y|HfBP=nZ79d9{X%hlhvbk*S<3za5(3lJdKM zGeYJ|xDNkH=fyU31DD!UkS?BidVv)SsG^{*wb+`Mw^pzrI`BsezC~gmwhkhM^&E`e z`8Ffvnt<`r>heoo1)axIb1K^q8sXYHyQ6%{-=t&^6#B4}bc@oVnGoV3T+6Cb=1JgK zzrA(~bSK1@TL$GZ_UYDXLC+e$S2W*oSdM}CVD&|^rkLM#oR;Q zMCK?%&Hw-qMpog~*xTEA^b4P5nB?W`GqlBUjC8NYmYa&_L2h25=V2gWCU$AlI^nRY zq~szh2ZJ|@Mn3VGg8(vb+^VQ3FE_vV-u=4-v{{Sv+GKtl9Oxs8rvffP4(osqRDJvw zuit+H@t-cq?qcNUCuM8=sY2w+rUwL@?~P^`(KVW)iE{;p*Z z7w4{Ww41}Tfe}C!?<;9ae^g&r2abpG^2C%8ZHKQ+JNY>|fF%*eA7=lIgNPu+HK={CX_&`}1`z~i&kbIP+-Q9jRC7@Q-@uxE}QD+oo zJ<&*1BU)F0L?Y+r<~kC7&h{#h){KnI$dbW2=xHZuV?bb}7Bw8EgqKtw@8x;1v+mC! z_5HpD-M@FQ(ssPk!`5EPpL5Z8Nn3c?m~dj`sE45}BWV7bikzsk*{j%?T8*|^tKKmN z+L&;pXvo~OEzs6EZ45ZgSf!<(LlQam0I7=A1fVl>e6Spn9g>tgY}V3h_}Y-nB);-! zM8h^?c|)yeglo8Qzq`MD44XMTA*{qTG8cQHZKLI?!5@sQwA#t14g_+a8g-`~>uJ@iFdn+}QxKp> z;c%G9s;r&WeFQ9X4T6S-2H3P$Z6aAf!PeA%PuL{c%Hip9iU*)|Nl{h8rrh$wTa!xc zJ`C=#b5e=x5AM&aWyGA@&)P_;RkP2sb&wseZtwuvqVT$j#qV{msbb!%%B zy){3dC_F=s-XgD4Ad)1(Cn@|K(;0J4#q5AtF~k*+D-hT(uA0F!&v(s&ozIf_rYM=c z5fQ;v=T?)AcXAyodPA9lX}d>R@x=Tfm`8WpsrYn{{puA7a)7aaCLHGHle`J(l1mJw zNh=l=^)56I6AnnJd6ML*HfqJFRhaK=F5uJwO*dJ?7H(dYOaPLKy=IoEfy7Ok$8QU|T z%~w^;I)tD84twk9!Ac`?RpX8MjsA=)Ie7P$; z@ZjLuo+z)`2p1YXF5%Xb$i+cP`EGOKkccR5kJ-PVC@^?iVU~q3?iPF0jxrwsrCbH% z1(0{r`~AiBu6C78%Cs<}l^yLT0+`h-Jx&r`UVc6YF1cz}jv8v@!|xYSo2JIbGD&^w zOte$P#Kck2@e^7+>t-5p>;arSv>G}fdLN|8@V^D*VjY}Isoa=d6d0(gO<%lBdK6b7 zD6c9w2 z&JYNHh|eu=>W!LdW(xjjc%N!Q9p&%H*+PgT}jHN0eH ztcmgEnp5|K2M;=itta91xv}i^(VwPkkLV7u2luJ#oZgbE(y$}Os^21@rSCF__{zr} zemrpDE8^`mN|~YWloywj)b(!3>=+Q2r!PmN#MO+Wrh7o77S;xe&Fa=h=I7G4PwSBU8Do#PO3{qsy0iGCvRsN> zYx0`BxTs;0&gbi&e}D0?Wyt&Fb1ayu-gGoOD)w4h`$7|g#D zNXyPIoh$xm#9p_3CQR~poCW&UxN1coi2f;6l>mKG1g{gFq$yd;SU(G+x_Xs@XWm2F z?q9!}dH{$-+ZOFbNZXf}Zv}HYt#^RbJ`ZPNlI)7t)>JY+f2#$f{rOgHc#ih1A%OgA zTv1DO8zFLdH##*{=h()ai@UhYNcqFExHfBjQF+bCNkoBb)k*o>{wbw7#HIXM@pr>> z;RadI3iQ25)bfjCAg6vl_5l2n5tg}7aY!7zsUj}3j(3eGN#1U|U-)t10OEx)@uXpX zLl3vVw5Mm{W$wJeIgb2@!Ror9iLwO+adG*bYSKdM*$kDVHZ~`18`jg71A80myr*v_ zmEUF(6x;wz%s2J#8kdWTB=1uW!9#2!E8&&Sb+sDkgTioQ1`XWogeXL9E#RF0K8zo> z1U>5GX7P^OZ`%1k*+@t%wLVAywV1*g8>{(;swyg$K3oiIc4g%F_=BZB6nZpQe*6}7 zb+e+QXi4m0XDc{y*sUlGgDR;o6F%UV*`O7c@~HOUb;8-HEbN1-3sHU5aCu(u zCHIA1CHpVq=1QBq2(&>tP=y&36P3@|p5B)xBO=Nj>d+}p;ybKRSxl?WS3Hs4T5HrhwW7M`0M*uLGIdF^XQ!+8CCO ztx$&3uOn#(7QCgOA!e z#WkJdhD`Tv5eH9yT*jDf5>Jkeh&P+kM2HHJ!gSo2WUyK`FkGHbWar9#Z(62v6a?%UbE zz5y(QABQg18&lF_TpTP-bU3yULKg#c6J0h2O?bo{&OURVP(QJKO<`L82le+btk-lP znkFEAq@$*5c>Yt#TtnDkXcTuhpc6q`Q2wp3tD6 z0D_bsrOUdj zv4H|oG`fy;S@D}!70{LFh)4<;d=Du;23lOv)UPKAL+pOt3FNfDDCjtm`B90V%=vay$ z*3LN*<^FqYI9!p7=M_2g&{5U`q^{|qj6sqEaxH71i0c$--Qx@5$e*%xbwZx}@`DUz zRS(Y9DljHln`$O)Z zkA2T}1JJ@ytcaWS$;ucTPqJhAltI&sGhi+%r$h}$`tK-bWFP4s#!zs3>*;EkbH;U< zsCa884^ePiPjLERJ$Lb}cl`s^&!%isX+j4Gq5FR z=#gay8Le=NJ@4E(DMo25uF5h!M>F#2Za=`!wJ^39*SjZ5jxHM9>!V9!5r7 zR=a<&Wmwu^v9%P@iEdv94cxqxR8%6OqM{NvT(zX+iIQfJT^upL#euS{ghbYmwT(K8 z$)x-w!L~8VJ-?*HY=5Z`1jml<`9JlK0k%M())pL>9=;iNZKx!aB{YCk16ulKV;Ogr zj5=#GOs%mnna{Dt53`sbohd77EfW{e=D`2ie#Okv620;%Qv>RS2-oWX>Qtf=z7Z4a ze{<5e`wmx-OGutoC$dTLx)?WB%fkuhPlEk92ohXc1qaIt`EFbGgh-E$b2Y6lIL^{H zm=C5i=HO<%*Fy26x7&VWG2a1T0&cG2rkI&IoXt!%hq9?wnfh8)lsTX zgfKrN5G{O6*4N75Ima8`JNnUd@7@`vr>9ZXeOT4a)+JwnKutVODCE|E#dWF&N2uaRIA+zS@=A}Lb zpfc=*ImDA%`}O7CBIUY1{C7xZkF(di?y0$wz-XRX*Zhp?W&;6`(()Sd*cP@M)uxY+ z)mL)MnfMB5ZFz`UJB;DCJ%|mGggSd?F{ArZWAxmuXJ-yTvCjT!V4$>m!CQp+;G7bE z2f@!WXyZkwA^Di}5zS%B&h5^JO*J)IcQ&VVbOG3f>xm7})aKW998EF&n%icB)ehAQ zz0I=iiG5(V>>E>qa=9O6Cvh(Hh^~SS~ zKw!p@5qlvr_%}BBN(J;^chm62O6~Wf!hWm!oIRU!XFo=J6|Td8 zOj;&&rk74q|A&x}-W(+ z-|x&!)`{#d)p4z3TTdj zOE4+s&Xqn`T%1rWaq2y9@94)dGBN>~*rtloYx1_NL&HbjP^>{-Nu8oj&0u*c!T>hH zY(553`l%A{rbL9JM6mR?pa42%hKq(17~kl_Y%f;I(NEAvw62A1uGWOy=4}hA%v4z) zDTt`)hW9ELaq5F?25vh`f2e40FJ)i4k1w2^=n$?$K=1@d5x@tuq?)>uVAD%$^ECzw zS=Z3GLqkJ(!)xHy24YZZ0RA(|TW`1x1rgbs*RFRChDmI(j$fSbMh19e*q{CL7(YrD zwze9Y;sxWnvbcnRUV1v_7CYz2V}723S-QD5fTVqXltN1fCM9ROm3G`ma4K1Y4p23v2q^We6%jrFDI?E5)$a1b$DRMG{}+`ChM_!CW$KfLz& z_&Bsr-{s z=KX)U#bgDy*f%#dsTp^#YsUuz(9C6j^XB`6*5Sb>83J&)fWqO*9gwjvEibRHz2n=c zF##S1fuC)v&(=!!pNIv{zj7b$?6r*`q44&Ucl}&N*Kn$^q|oVDTaE4-4(I zl(Mm*m?$|qdwM`U!+rt+GVhJCe&v{pj1pA*OTB*H*`L;7GOfCMFA!i__+4T-U~pe` z#!+x}g8o&~ro@{!b~-u*I;N&%dAWtoW9>OPw-G(RdB;HaYSggx+qWRUQ2x=WfijR` ztj3-$2p!2La*7b(PM!Zr73I75?%cmRMIQgzh5%t;L{E3;tj{yi*F0vG%nn;Q{WW7; zH50_sx;53?b@*vTbu`_nN}1uOHouxf`9|Ix1}dO5)cAW-)fl3}V`~s_LK_Q2|8SIB z!apzS6{H$fV+rzm0eC|9(zFMv;bbBK2XP^N1vy#7ubnXgb(jx0w8fxNVq1TB1Rc%NPWiU-qW#~BvKp+lK9gtjn8&NP@^-G`s{Ff?X z43X}+o)tbZp{^7Y%_;2_%}!%Cu&AhXwx?oadbtFDuu=6$$|bU5D|w(N`zc#2baauY z8x<-FY8JM(+kJhZz*r!CM#d-(NYVp|9n=)U5sMw-xX7T`>8CTTD+=-=`!bjLMElpj%tln)NjH{d*X*reV(ZS=L93HFAf5SfEO_Y#gUsnlqH{ zuqi~)bziP3w%f!Pt9h%u5%dYN6FPc?hf3}DBHK|K3Xp{gV3VP^)|?(9O#bA_6QH6U z8ygzVE?og6Rv?E*w6@h)ntJGV-*|Vo^=Z(mHn(k9ak3XGZlM2cr)dwfdW#=kRk6q9 z2zD6&R*1|ak@UZ0lp>>|e7}5=eoFA+C%HpdlG=;E+b_t;IMdi6Ii`WdtEIQGE1qkA z>%3M)=WusdiinHh1;=2jkD4=b301d~a|Q+m^D;ykO8&%x?aVtu|3BX6vMKS$Gx z`sl=PEU{oqBL%*Gc2D+#mX*mN zc+pcvZrobq@WM=is;GaZP>zJBSC5qi_(uR; z_ogNw)p(L~G+o7m0i{m__S90m9%Shgp(f(4o&w2WV^Fh$jR<0P`uG zrle0+R@R$O$czYuL_S9eLqnC;57$gnyrQ#XOl@ptWLWA*@d+J=hcyD~;6-rn)d2-= ztFaZkHW_AwUB^)Fe1;yV)3}VJvNWDuV1(QQ!DNAk7La}PdpDXa1Q0}zZjOO%JZur= z73lNc<+Q8m9wH`+yM4~sDY9xx*x9|>GiFigD(u`|OV`@cEH=g{7}DFwTbY__-Bk0= zo{REVr?)_vQtk(o#)F&qmwV(X(`Y*v#D0CQIg*7&e7FxST4?k>7GsFRWw5jHA}X-jk%Rsg!ZCL zPb$A}t>2Zk`mw5vScQ@oX0)~rw2*>R;;q7)!Ajh=DF{>NWin=BEK{UI6! z+)k3}yb1dUs4D0zHDOp76c=J}g7asl{_!@((v}dn^mO!NCPkL7xU2B#qNn|^87F4$ zTa?776RfXEEA_Etn``HEKwtvY+a^Ir&((ZQD!VywzC06+v`-`h#wxzsdJAi5WiwSu zo(+{7UCAA7t_IH?_%7Ky~iRrJK4#Oi1ZubwwW3#ZR(2SfM7NjzHNdUCeQS- z2Ri!3y(RxC`7-%k2F>gbQG^*m!GTfB?olxYw zDYI=%5Oj7R)UI9M5@^meL>DF1o};R=GlgA|QKKWplXiz(8cFu8=JOWfZb&lN6t(=W z*UnsHiwZf1O~DisE2~{%hrX* za+YZ$%G@<--3SpKQesO>trk!$xP{X2Pcf$E$K%Nx&g;0F^oChn25R%^HjA!~J46Ce zCp!wAFe!Vi{p5Mh-$T7`cBv-;pNxz?SM|fytNo>HA2yqq#W}~){biAf12cE-5&mwu z(78@4DWMYm2!6wlymvJOv=Pirb2CobKZIfDS zV4Xmi;<ES{O2a$X;4 zXVQjSJ)X;?d%^@A>)t6#Efrw~;Cj5PYlXd!J_ZrgU|57xTTb-rxfD z`fcz6Xl-4PB@S@rkgs-kcfSRfz7$MOh?yO0CQTJhYS$-Gr!Vf)=NvDJpSTw#%@luG zCV#&1*Y5&ITP~-G2g(azBLDpP^W*({NpiQ9r39bi&)@3pI@)R5#mkFMKm~zr)4d-0 zIUb<(|H|o0PRlEzr9+XAkz}?QV9s#S=?5_JfdPju8NC`57<2`)5e>U9vMz2?b&YM1So1kz~e~ND%{$j*)5eQYmU1_ zbM-ZfC8E|Ci!Y$1;`RDJ&q5%l8L+0SFVZRbnUz-c=bQZp`u*;6G4N{@IqvTzqQ>F% z#hq#{OJI`x7S)R6Xa)sr8yV9ib8XkwNdSgS9PbIamX7K>pNJ|RM*xTHlK}v}OgNl5 zzscw*+?ij~ZPTT>*^ zsqNx4VV>RI@&SX^bKh0-)z)*{q}I^T(9@g!@#DwZ+8Q(5v7MT*eRgkj)k(X`D&poS zk!dpd(}&-6Fh;A{AVpE0^;;$Za$NzyH^zJS#3#~)C)iR^G4$e=7iTii=j7%B&IVhq z^vrOtJNbDv5;kFkn$0CDN;cZ%UaHdX{~kuHR2cN^c6-ag>LAkKqY#(%8Uf|5 zUDR1|Fi`#57Z=$+KB*W+s=IuM2@41dMpo0K+OjDD5z0BLhT>BNZ_ix7vd1MWGaE*)x?(9XXSS`@!=j9z(fBiPCUi8-O zpEKemr)qkCMI{+l`e+`Xkk1KP>oUDwTu*-(v8W_9KYx&goMq{KdJHP5SsAb?`vmFC zM|ZY3&W{rYY*?S_=<*%jz4FSI)$6Ce%95Wkd`v{2bpofXeWmVG*-VadY~h#ojH!P0 z*lzh~8n4~)!dagLUA<9@M!Q@G!ha6u_dgA6AY=wkE{}|Wf7{^*@DWhgvu{C0V`&DJ zs>~};aomRSp3X;GLh`l4LnELn7V!GIYk4B_I};NVsMlO*U@oRg>UklZBc??slRnrt zKqS)py-i8ChHrc-ZL;UxgVLC0FLjLwcaSq=f9l$l9JZQPKo7cuy1wh0e`8hU>Sk3r zYh-e1S;3;{^@&&>nwrwmET)jattN&b;jwz; z23T=Fc7Og4I@$5>cf5ed6A%#m!}B{00)~hGeDjMx{(qRa{#3iH1W51`5)uNnox7kM z0siWTqWEQ1&KJ4ec$5mZ?^jv?c+XJIHIYvl8839NH)!e5yDXDj@yb%3RR6tZb)gva^vVB5 zJ$L?8R8#YMw*Or;-9PT=e-=x z7)uLF4i5GipY3#N(`3BIM4B3U=RK3#{0A_5dju*zUm`Q>^VhFAsz5+?EiqAao;f%; zSlO1EhDOKbBs1;pNoO&@dp3+YXu6&FQh2I{YS@jQPZLp4j7|)cnQYdC2V zO6A8Im0Fu|rp&p8x!UlJTA;}FfCuWc*G|izp`xPFObxK)V1k-b05$dA{rj;(j;FtF z?3?r^ve|6J`t7h@zWx=60(R3L$jR^-kNn&K)(L43-BKT!PT-fOt+4ohNz-;wM`5qs z0AcQ@=*LQu@!-hZq*2jIV&lL4|NU{CsFq=lAw?XV}&yVV>Jk+`cZ zj{v_&ODQ`e;~(8X!$qWiUrlXbAf2F~Ajq%Z8Kx~PSirVs0AJ%m9rI#%IS#bbx_h|! zr)6d$6^>@~pipMbws+Wt@y5WjV#D+O9?0mlJ3J5Mso+x$C4+VXFbn0qLS&?*1?u^> zHLG8jQ+$-xK6NL+{g|j|s02Y7p;;}W-3fEZvo?93rS8}YG_uUh-W0=@KHlqz2n4a9 zN>)n!a`JhCuwnegl7&b>ac=JZ%&*DHg2UCZMR9+&w;>)&_uba+|9!~sEIoXH;dp$u zfBw5YQxRmvNz+3GD0v7*6>+@tDP*xkvFv6_uOKE-M_fw&L-j)EVn|BjiTLH^K+`j zJjaxY0dH%t^&7y+g8+#>Jsjxuf-QM5UQqz4*XRh~xY_A*+~0s%FOErqVcp2kptN8f zP+^PgnBAD%-``)iu*95UTG|;Qkj9!C{@f~Xiz5Nuv8JX5UReRc<{FxIezgME+oerH z({YiJMkgbilP+VhC$#gZZOAj0DzIw4a)J2)KtDb}DOFTetpkQ5I&ET-m)Yej3cqKH z>Gt^Iput0Wi=o*+_uB#Rn$q!202oTpQGAVD+tRHaEz+eulv99Z6;#N^vqA}eK7Wpr^hxw1 zI4)Vw*Z{HeAq5fA`8P0JmLL5qvIe%x_wpVDgFL@n5_?Mn=JS_(V&3DWjdeR2pojeX z#pWc?{fLYPOU>7VnwpyFEvo_|(X&HJ*=MD{Cz1g0RzLeMkij|lorC^a_ZQrx?d{Rs z!PIf9L~l><*~O@_1=uPF`)+5A{9!nUcUtwB&G(G@vpP>i^;&%X#$>O+ zHmO^NiM4f7sh54nhmrIoyk6BrD8Bf+*RS6NnG^8lOQA$`_2BXPQV-pDVGJ$&my)Y**( z1NT7mC67MePq78Dp}ER--8w2XRG&g`7GTyFe+4p!PC~F|xtwp^D>y*v?t$8fD&UwG zKKccrktN;EvQHB77y(r-z+`-n_koM$R&-#X3`h^Eo$BacaO4A`^5yk%Dp5SzxZ4V` zt=)W5sRhm%&v9f-$0q2o0PVy4Vg3V9U7Z3%&H_yiaUnnhvoCGr0>zK+_{stORUlCV z6xCBauoS?ldvI|7!>uiq3FH^Z#Y^pC+jF=Q6{EqM1Whk3H3tT(;D`V#{$hNG081Kd zm?U{2T`_@qrjguUK%flv^ta(2RX&-5a{ckIP72SRFhQuwbAI4E6#&7kdS~Mr@H)Jp zDbF>eFht*!yBSd?XK7kqIBhiP_tR)?x(Ap}%{aH6t7&LV@~Dpvz0^I;1&RcgzqG-# zJXHPp+(7yKPKX}?WPQzo`mKNO+rPAFVjiAKt?7(G|HbfLg})E?sq24px%PGs0Z}hz zJu}6Vu16YJjm>yZ>dFhWfw(A^S0u4+qTJNh1@+v~qr+7e$WeidIlDJ8wZFPhuj=P> z0NA?n39z}!t~>vusu26eKtESC52R()m%yDL-xb3<%?GnUxr+dJvL-n*)6o$Snwx=T z4D9Q$2MY=pn^`lK`_eJ_DT=w~_!kJ)0V43V`5kcgVwf5u*3U89j9|a&^Xe~N#vrU4 z)YLTc@q+fKjX3_KqK2ZGY0>rVpA`~vf9N=rBOC4z?-O_LHlC&I;)>W)JSL1{`# zRPA+mN@L^5%Q%<~Bgxh0`L1)`K5a%y6`UkkyEbXWZa8CWVhNoDK^)QWJn~|i{~1lB z7XajtKoSoAmQ?#XszU9?Qm}1*^@ApmMJ2U+znSg^v95LS7W068msND1m*LN~ss*i-c;0o%>h zf{^?KEo>BQkTiJ*s5zk8em?*8S3?TCNR`A*GCTa%kidW-Kx&tzvHuUWNLPmsyOLjP zixFpj{aTRR$Nj@+W?eg}Je{-U^84mu0{aDGe8XsDcHQ%2ox2<+;$jjfewd951>V1d z6!&)TO?4;LjBuT-ZHS_l`pm>co^mb-oABoiD%0o~t+i0j@PV!6ZD9`^ zqlxCwD?WuWRoXJ;snykNEZJMjNIw1~FGZsURMsxD#bLA@wd1llb@t7XVR*qYy)7m_ zEs$9ziJfU`SiBNazgAy$#8B>j+4rCuDPp!VXG?Z+*vJ`rMM$V7;@z|qOieOMDD%nL z=(M%&IHP)~{{x=VOoR7U4ULx@!UoyvRtr;i+K3Nbg#DV29eX?b{*|?;m$ryEChL&8 z7Dm?3Avj>!t|^r^Rs!D%atu#Ts|&nK(s(AAUZ)B>bY5uwU_C;leja~5xHrX&k|Lc1 zEr_(7LUa4E21@=B^oFCPf7ARzK3iNyRx5mdK1*&r5Vrl2hd8OXj+h831XkebE{~T?L>uiYgw%pZ=x|3>nskotQElnE+rHPUzPIw|{=^~~Y6jEGV z8wlzvWqgoEgElyOHcO6?P*8TV&B;tF3uO7pBG*fPdYi2?x?O^xn~vh*`?#HDNCEjo zQg&;J&z>>g^*d7lF~+%Rn`X>*ZL+wmqtof~cE0kb8mzDPuSH)kQquA${QC3AU|`!O zWn;_xn2cHZ6|nYVSwm!l69?V_l9tm@*4|@RNP7+GDq#vK^j3ej+@a5r{64DR?=<}g z#jsggDvW#P{0(DhURi{_I#IgtQT)yRfTMQQ$s1jrp>h*R|95K#c5a6vVNp;o-H8pp zFd%p#47N`|>{{U{tX<;;Wqnp}MKd3zpp4Xm$Zcace)BELS70IzwzO-}PuX1de;>r( z-rqWI8hU@FaDeigf_`Y*3Y&-kEVA*W0|(t>njGP@#Mj=ThKpO($6A~__(Dt;jTP|d z+I+4Hx=o&MBVW+J`(1m^E4NX&!lH@0aYC5Q%~@gncGSEfzrf|BTSGI+=?&k>&~@~a zQq59~RD|fPt1-HWO#Wld%G24&Eplq8*@=Z!qPEr4STof*OyK2IEcf$cSe0D3q^K6p zrioi`#*IML?JuVA0HLaFL60J&HGa$=*a#xMS@?JG9VzTQyO+uFpn{bk`wJMSsdoi$ zI4JuA{9I?iR->%XX=lM_F$fwh(NZnmavYE}RaSaD>(XCK$=##iUGIQ1oa{A2x0|0j zMdh7pQ}5V8v8^>e_C1A_O>E1gH`RD@METzv>_ICTgspj1<>66YvE^fu-u9v>67d1Io|E(p;g$Zd)f-{n zLdPqle2)g#gXj5*v~}seDa!;RZ+p0r?^^rc2z&>G7Qu0~@HK5pM|(@aQhw1`l2=Mxv`3EG%>>k?;2^HwZ_ zTW6S(@R2ZU(`u`zsF1h=ee$28BqZ8J<99Fr%PI8vmh+5WYMm5zU-RoA4xq2;=)UaL ztuqV^e3{OqajtHs?-ND(RzBtNN$n)9RFZZHtGYaMivi0^vz#IexB@>1YBXazKaypy z96$2Oi855$;UX@$7;S_gXM5(>GX~hc!1KOiKIUU%qn?hHEU?9!Il!3gE1ACke6ZSv zj$sj?3iv8fKXBZok{~Gb()Lf@TJ($BgyLGaIvu9-tv(Gs@<>Y_o`G6`dI+;QRZRWFZ#Q4O#7*)yoGVPg9jhg^_eQ=JA7@x8#nZ>T@-HY~) zC4Vw^vJ$Zm>Uk+E1%XE`y-w|C&v}$mOKdY-wzHz(KA@t)j;M8=a-k6A?o7d<%7aPZgCkK z8^mGB*fT>L%g(vEWbD-~1>y2n*Q@Yp{r!g3Mvd%FUx6!{GRkwga2j9%I+?t^;{#bJ z3T?};S0(U7`2|j4cNQGQzA?^>u|TTi);^B~w~-SxN-8H{caqPR2QiG%+B1SEAJV^z z2$UoUFG>=%wbZZs%s3q!G_|#3V)PVsb(v;~$;hH2W1ppxh;b_GOi?jEIP_iqQBY_e zMY759xSiOYel9q?S1KCMBnx+TmUfgjnbg!Lrl2dHB3d)Lf}p*R%qNzdprC%O#y;G+ zV%)LU3U55tYdOGSI`DjKEmY?&rD{arqEVYcC4z77{cAO2^q)G>k)M&i6TYgaZ+%_) zUH6BRq`Tmjl3xUsRj886mn5X?2LfLVzOcXJ-QIq6-?w4 zIgU@@^-QUrw+nfY~?hwl3Tf+3KAsHn~nkz)SR3lVrmNEs`5wz9>%K>NAl z*4$wXj80D@hi=eoA2N9zZkiOc;e@7yYb<#^mdbGW&cDu*=%W;%5^eL z{q6dj26spEO1)&?20D|bIyWeG;;cHsU2JXJcFIb={}fhxG=f#9%LbLghV@YbV3}9@ zV$h2|7wb@JqLwOHQFM=ut-+zxrE-C)h|#-?OsKUiUx`f^hljpRj8wF8A`>B`6cLi~ zTcBldl{eN6gkpR5PA5A&)B8`p569=3m`5Ual3_|6oxL`z?n+WE(Q=t64e>k%LX@S{ z*UDRQZhX#Ux5A-Lt7h%&c?0DOtu2mIaHQYnIZCEMklM;9BW6)nxyJL+*ji#VfRHwm)Tyi_BXU$$EK#$>&@(6xBg^ya7B`e}8iE`iQYQqjTicavS2 zIP3H-dc`5KJoK6ish_wcH%Xt^1kMHol9?JYF_#G)h2rG9 zCLk(EhlgRKG+e`_H@daL2tMuMm!jcOi! zqHsI=H!k7H%|kW$`wRppJ$5CrWSvY7{23fnrUEC zFdt3eqq@2>Jv}F1kSn=)w;^CnX|g6XZ>MVOg*iUG$6@)7UW_6xl)9C~nnjzea&GO3 zHRU4i%FO8U&9g+&3z4*cK0+6cjNlvUcRD&o|bu1tK87LmmDf6EDvG-G5v0Ck5Prb`RN1PP)yO8n&h`2YAyQo zjr^MimX_HD(!orxcX4fE++afz=?Qgp7IZoqG!Z$YShow;Wn`laUS|m^K}DKP%*;~i z)F6z5!!;Oq;mr)Gr|*lY>e?G=n%hiwoAw%+I+KLAeTccBo^h@i*R(k`Zr%ne-X~^V zRkQ{34@4Hu_5)wBmVf<)1<1hn6`Q)89`W{zGAD}HJr2bOl)l$sM%8a{@oBv(L^duh z!=k55@6=IM-@kwQWL2hW`8W$Ex4UF?->Sy(GrOExVS16>5i>?ZIR7!l##)ULO!j{c zndaDNRTX1>d%Q#E9Uf%ys6IBJHw}&IZxu49yG&84a`Egxgkjz3NiLb&qW@MpCA8Nn z!Q-&zG(?%+dZ?wm(b)C&|0v^y z^2Ooh?a{$$K85vq>2*<<4kAUA5E1*nTF3c~g9OcL4V|5>pTu3;REtJh=Sm5662W4{ zisv6mNv@K4TmmEq!!^7PU7O;kZtuE{iKf_To*b@+4##bLsQfi+hLxm2etV)Qu$U#oSr(y@ zy(6zGXI_l;d|GP4FpT=0(uuM@c>bs)8oW3%trt21KT}mq2(+)RjE0P&0OzbRw7gpw zdDu0T=d!w&)OJr`InpJwv`xy=PmK7`tXs$YQ0dDMsX$YBGDL1t4(*pB zQ_CJ(nJI~KHSq5*r>K^}gM*?(UJ?fHF3@D670rzPm&Xjquht+g2eOD#%s{!0%nFSu zX}m65VbwYQX+x!^c*Gj&osEQUfI}m*d_+C zN_s*bJ}sMkpMHGE3V0yX0B@lN!_w3qvIZwpqLtYz4=6aZ_5UY-)^8=A+v<3-!WF@;C-Od+|03c z5sZ0n$>{d20vw!f-k)X97KUw~gOWXUn!i-DRm_l5zmP7n<_n!nNz=I2iVQtPeNb)u zX&cB`DnQj(zCsa4Oi*SyKB39wVI&Cd=fVxTj5`8ig*jdnc4ZuPt2u+f?R0fd2Q3R$ zNn<;6Sr!5r>_(PAV1c?uNI1|K6B>RLdNY?=?oPqfSz@_@UA3ioW?$vf9yOo+1G*gc zovdmISscYkd7Ad*y9^@eaZ-$_kalyhh{q4iT25HtcEpSI(EPw`vmQxXyXxu)lTley zy!WSwcMhtmvWGo`&e*s1ikT$M;F$_6B2rjkiK)}~+*40W4IM3z zuI(}MX7!}l*!BZq647xeAz`vp)AUm@2KxB@^^&=mnM=Z${lhfHt1q9ClCJJ-8Q9M; z78RztZf;0r;xfO1hHs0cQ1F^9YHcQ-00XGwH85QEmxyi01m_A}U)_egO}e0LHv1c- znlg~C&^=C*0T2f0IrY4Dl+=sodGgYLA^Z6z*5Xys#g4#=pP%uqDS5V~bUZyrhi#+P z6<&ricnRuX?keh%jlRK{d%&hfK|lHtJfV>r=JPWh_MZuoiKtR#3utB#j(d)#im0}B zq-U^b)!mtQ4ad)`?nV#2s25TE*Vx&3ESEk#`q_VWmDsCB7y^L+Dl7=UOHi$b?CT?y z@^zOE=F)aQyhMF^WgXt@&nuUHEE?hbKhJ7jfbC8D6rKK zLK4v_-IlJQH@%pv9ExevWv~bdVctp+lLN@9=xY4SQNxF;*2%h4w03==lbb6-JKHyw zv%y<-K4-ITnM>z|#@TXwtJ9vsg0zMq$|+HSR-=@na)7nbv;bb(ETGc3%|HU4j~Qm7xX-Kj7C@(Tm=oppVaNl)|A{u|k<3&2@m zz(~9dQiF;>wAZXp7rbvc^3zZWG|mRZC?+F@YEA+9d2J}!!Ct8oO2o7eJ<|#4$C>bs zi}rSY^(6i=@BWreJhp0x&1n0lD!tubayjs*22 zQA{n7UE)AZ9@2&kNt^dNq}$XLM|w(&dS<&Qwq4?an`LR8q2U7>8e9m(by&|EXY2}Z z!^92v+*U)P>wM$7HL5%t*7)-WL}%cnJwWg{x-B63c=M2HF>Lmyfh{XA@tw6n^?{5e zvLPQwo@~Zi%FBq)$BwyayZBoU!#*8-vl=de6&KXD)>$H->W0kl(+mRLSJklp%^53IN~S&u9d*iE~fBX78wL%8O55fF>#aAxmPpo=$Qb6D6`}{z)li(bbd@!<0`_w+vdwpX zVGOdu;f#>>cn?*Mbk>Mt=19~0@Lth7mX&U9PyqgFQ18oQnE|)5bl5f1aUBd?El?Ne zd|!1i#D_qv^p8O>tbhFRaPQ7xiV#mQKU=E^{b*&5vNLUVNqKo5iu}U26y}5CBe|IN zCyKI;op-kf8X8<~Tz3b`YLQV~{s;NFB`PZ-^ilYDvv?_UdFH()ht^R>9sKU2#hVJ<(>InypcPpqp{?Q~G#E0hcfgZ~ym z{M#fE>4KD%c)U<0JrfUVa&OXZ|#3)W?Io z|Gz@4pen%{7dJO%VcT%p!5oN|n%Xad6JY0`k5pnEl;l>P&q^3dM#mBB2h?NZz)cg_ zIdY1fR!411LymK19fuL;y{Ze$uy2y_+>-Sj{#T8S!xRWkLp_Wd*&0J0$)R24Swuw0 zliVF0uPvwLb@36g-DF{5Btc-h1gzCEmHX0VJ<)2Yf0LOPWAq8cN*_Shl#4`m)3al5 z4>&>CF>Xb!iy=B3#&VQG{7g@|4jZ;*evK8#v15OT5q$$1f@`juc5S`$@e2r$ZeVrW zZakL(loW)j$kA|V&Cc-tuRIaR0kdaZ>&o(N5@)LdEZ9(EvIsF3_2G<$zh~y(4-Om@ z2)n+}D&17huJrfYgFyPy<)Xy`8x_?|2gtNllVPR-5>3B%dV3G35|>@O{uj}%n})KAN@FA!sjs~(VH(F(W*tK8J}?N_Ze8P zfXX2}z(aUI{IwsjVrDEzqj;t0R!B+y*FF)TX}wYWAR2u;p_96+B(pD_wlSQF_?P(w z`SQy*S^OktUd3~$k_hq3(v?_DKK^~0zekrhR%Q~&7!~G^SOCJzjD=FBGFt&#VZJ6p zB9sE}_r8B$F4>HML6rUn>`Lu?n;O+sw-vypr24(f+i)Nt-%{?&*YuLX@wr|&(dB67 zY8kpow;l5TjLpTAW#)XMp4QWn3eF3Jk`gU}8r7{^+l4KytxPN|{~4kdFhp~04D@Qb z5GwH?Ye96_$*KeY`B|y=FNg-1(}sstRrw!2euRZmFa;(FI04qrFGT#;x1hT93=0xv@a<$qtDHd9*=x~Y7<>K}%rYW~5Q14i9tDImqPm&Wbo%!(P z%dkAGQi(gn?o;;8iQQRD@E=?^|Bmkn%ATsIh?zh}vyA=Vu?^LZtf9_62OD+)G94iXDk%r<)vk1efH-jLGK5}M_(UFg(pRf6-+EU zEEJc1`0EDNpB*j+65Fl%WYvb(f*Vw4#>Xc_)s2k-M$oU%#W*RlOCvQAeNK1$gRlE2 z7MGO#=TU%B$pWMcy8HKM1Saq)DHk`Cpe(()wg9iyBAQG3WrP|M~DA04U~zuB?1IStIam9|>({Ow9Uea*j1k;Fhy0mnJ|DKw zF94k>2qF%%D&)Ks#2N$j8X4NCmLLE{L;CX5MjjsHI?fZ1u#)8VTWQ)G!w%OsQ=~|^ z+U&X5*?$G1fCvJ#;iiAi&f)H5K*LWbDdbtYLyPRj3 zC@7&C{_R}}iTaR^RH7?=CNgRP@*+Ch3#8V+=f>MwaTmT~W0{2eckh1bCkSk$`|vz3#t~S$ zTHWDt_fTHaE1o`)bG=rj)&f;VQ`^-9=Gj%6iW-kuKQjWB<(Z|a=}4Ka(xy5#)%Gm?M7EWxtC$e5Vj1^*;1}`SQ zE?4D)e2Pk|CLAo-g5 zC80LPKDTD9T{qHQpv=|rsH1V)G~$K9eG5c%z|09#O3kD)l)>#TsJR_ACIte>eGWB7 zMn<59<+{%!P=W(f#A)m(`1Ob`iGl*Qo6BR-r52W!>uyS-qG{MHM$@yiR7EmuyH`%% z!(rV^{jqnWXjzi8&7E@4A7a@16NS9Mildz9p{t7IgNdhQW@Q8FF@)30%0WGd@pe0w zm4;m40_qu93Y6`*x_ml$2Vo_>*s7%|UApn>Ss#%U5a6f0#LvJL|I^`Zhm>cdHj0 zHEKyXI}|m{mhnjoSoZe628A|p+?F+hpTjZ^S`^Y|6=`UL-O^g;DDflMF=-~}c_pa{ z7Itf8Y;D^yQPKXw40Lp|GBRPU^9_=C`|A@l*Q40~c-r58JgO3Gk9=!S)X&v#G)JMZ zvh`)_Axc*xQZ>4tGm-4A`qUeOtJD$Fe)Zwdc(tK7a>3GED>}sMvVqpCBoJYnPEn=a zbUH^POCv9h+&((}di}chj|~G=Ild6WWzKRC(MK!jFE@u+m7bP^MpJh}0%BUTdzx8T z1)Dgs6k&FaAGotYTeXbbtbVJaYZ46~UpBTTbyOcQ!zY|9_M7C6S=t0GI1g{Bbu2Fu z;@geRZsYog5xNq>T$^>8Ip}pZw3||ja?3mivc1-0{h-2n?s!Cc%@K6-TqiT8t72xw zb*NSUa6ukJF~xK}YQoC2U!Hfv2GNhY0J~D_lQRLQguSdADW5*chcn&a$s4U%IsMsEwn}*z zwF>E_cB_*nrZwJ}u+yK44srh^o#L@f9@?hgmTF$%8)H7{Ax<|VAzv}q)%=o@vtO0T z9doXkKq{sc?YiUa#Sj=fS1=*BO>+N!4*tB+DUqv&s^-e1Ag?-h*2h2sS~1W*>d%dn zfE&-qEY~1bCnhFVP*hwo-QVBeVe~U4$_%D{J~Rv8hkFh=^@g;86DTMc@LrCCp)%etIN+68v=?efkO zqFzmtNAXfq-|t3v|MgG1_;w;Wiv8$3VbDt9Y=L=2{?jMJ*9w^6_OqkF0PFS zoSvtijc>)oB+^4E)@NrUK7ST;994$dHU>of_TY5ifY|Np`1r|p$=o>Z=5#m@H)s5+ zPP=5h%%l>HJbJgsth*GhyIR{xo<|T(Nc)jp0U`17b=ezI%EQ(s`G&jsnv7CCy}fhH z@g$KTPz7Fdb!q0RsyL+x>WfW;_m|h1+I}X^p=Z17E?T4Z%^U_rn(d?1L3-BwkwT8aM^^sft8Ah1aXcZ&H=FU zulCXr?jIHMHr_Wi89OhK-2KUN)G;+RQJ(3!^DcuU0il}RF{EM%{LQ?Im4Mmi5FRd^ zx~|_2WQ8IYHq27MDLSgWUeE`U_ap}J4vCvX=zqquwJo;Jrr5fqq2=x{s?y9c z3%VG=@j+dDYWJ0^S0@sN;u_yp?_esOryMueODFdFl~7SE%C3pCO~I#K`!#>i0bkH} z-Y>e-c&f-61zHSwzeVMRhBoSFW@O|bvVr*EYkp3i6zgdtC?{t*{KWun(^~pf&c*n= zI1inx1OT?<_S`i)D>zL~$gMh;2=_Ogv7lvOPzuOcYN@e)fJctNfAC;le~V1mVQ&7s z=BQJGBHHn2spt2D)O`b-V&49^i|%W{cQ!OOYS)A*iiv+<;Njxo3B1=jozL)5)xJ$8 ziyr~H&3<~9X_=vLo$Kg$*FdiS(S4z|sHWCg4NONKKXuG!Yu!)0(k0dtU-4U8TRo=$ z;weT~g0vP^2cikz1dSjN{@;&;mGdS`_mzlNfiISpFN(@1dq?TTpV+6lPxd@S{R~+z z(A(B$kNIkySg>x+}&m5vEtt2Xaj844m)7m}80zjYNiH4+A*C`mm}Jbdc-OS&sD6v!is zn&;>pte0b0)JzC@r6Fn>8oK(&SXj3k@7mn_gIWS#-~g*Q{WdC zfU~tP|0y&@WdCtQ>l16U0`<1G>-KtewNW~eFd4k~`w4D)k>7Ran%7Y%`xT;|L zhVppy_s_($^Kd@g<-tAovY2s+Q(bX%D?gX8KHH$;@fw@rl;LO_REef^`h2rv&@>K##Q z3+%PB%GqH%y5sRGbwba3d)CD0Rc7DHiOgB(_--t(G!V9H!wD6n3;dqnB5idZ4c9R) z4R#!uV0OPS{@DYLkR#iUj==dw`@Q*d_u)zI%~j&DO6QBNYN4%>!qn9)r_G_1EaxRa zJ$<4=7W-Y3uXs;%tFNCgA;E+Hc2)ZjtT-7qz2DQO%P7%|r|)bw?IBji+-XloajlOI7~$1^WjZ z6~3Cb#-n#SM!cTL!P7){S_$A2p1K21uce^2y9Z13zEGf7O!5SEG(Im1KdIE&Rr0H} zSGgmxc^bb1b z`C`uLS%xiodUyi3 za-(v;Hdi{st?Hyr8lV%Inal5vDOX@)&twv~=lw#@pJmQ(b8>Qmo>-^z-QNG88i`Z{ zEQxtTs~kmz@`lD21CJex@_u`wrK!kx9kgD$!x#4?ZtRo2l9Nb_!>h>|Xw zLTxTedU(G1pT{feax3VKfYaJZBa0WT&ov5v@1W>oX9Bm$;@mKz#GpAe@ayhwpEoFR zP4w)^2@AWc5g8r*8=!bwd+~b*nh+Dr$}x&j;f= zFAh%i;1@gq{sHA?zY-MSzwiGG)%$Tfkq+LsyttUHnrWn$o3~kAR9ec$OWUFg1OWl7 zvwzfr`|?kjYmF}()8S(2L5kU&3vB_ZX>okVxW8}PCWNX=P_(B<0mxoouZEOYIGtV( zZ0xm^uLkLU4UQmjgXX4__aO9R|I0==-fiA!TGAgw(7r+lA@E`1WX2rP)MSh7;c&Sw zKUEDh8lgN_NRD9e4Y#)WQ6*p!pZW$PEZ~NkA zcP14`eMyJ6tnnX?Z`nz1wi%K{t-@~F^nbF(aaosub!iGk3hfrXLN%A!Ki z`>c*ZM}RhsRp7RNs3hu*s8;n}sv>+7!usWFP(jb6}WWtcHJMV&LWS+_=*tLp6`&JxiHhbP+-^7(pVsl()u%T8`1m6Ybw?Q{fRNI2yw9Vrn@HtXi1ozbp>!TU zc~Wd(0(>mYmmfd(= zxs*b51cUulA11|iJ&Gf*vd|zfruLz{OK-8{EI}s}yITgxd6S0v9H5`TOajUP>}J- zaFh*r{Tv;{z67tNcM!|*;{mRnT*BN$JMp0{yUB)+QUy*!B=TwEY4E{dEu%R3WN;3pICXcDLWo^8U3N+xe3R>a;*L&i!5dIlGB-6t1Y%arrwhsg=OiyiS!o%7@Zz)l-&3gtWR z#SBJAm^9%NZ6QTOo_2R+wBi|lHZxs2>!2N(%YBet>a|tSn>uJ_GGXJWGxmLEcFYO5 zrC!a}UKC{HPa{wv3`%#xpszkD#xi6d_o7OQ84Y$yF3ig24=BY}66(?(XRzLJ@^MIjn`ON@*)kZeEO-R!0pQ`STW%X>fxXi7FG4=^`=TXpOp zfTJ#r)k{}SAXR6Uij@(n40uVWH*j4C%Q=^-|B^GQpWKrwc+-{|vR>5Otw4<#k1IeL z9J@oSc1EJ*1*l^bEk!#q^&3`_Y^|v#2^j0GCoy$X_6th1W?a~UaT>mwnpuqS<$L*6IZAxzNf?a7c(H3u1H zSX2C{K|(2=qq3bM%f92AQ)+oTIzEdMrcF=vSX*suq0LLqHtJBFv6wS-f%kT=`5v4) z3H_F*dI!`9kfuzwFCgb1P@W!AlFRoOAjbA{k6!$mU~j)RfK1!BIkS)wvA<4FPGB81J~ZH)zZZ2%BfazJ3)MD;L)~^85JLhmR|x6ltX? z$CpVwJ>5sl>Jv79=f7CjKpHM=V&iqGLZ)&Abw~`;!qE|EWbUdmR^zLm?f6W|7xFNN zd(8j6f$8?Lc(tvvvZ7M~18j#oHnm>c)dpFf)t8uy#%77FT0#frqS=ldDna|=W;HKQ zd(ZYvQSKYBs7<64KF2X#*HYKcQB+RmUnrzOcLbqaYJ<#kS&y8&jX8zj%bk0Bh)y3@ zwe`Jf`OES8{_Fyo8B`6F zTjZ}d&7`BYw$@mi@_wBzQOEVO*K+}YG|wn=rixU3V+z$-jl%Ckx)L~{<)*8(OiBDA zE}iueig1_Q(Widq8QD^>L1beSiDPK33IZVg^rBiaOZ?ZfWwE(aem;X`Fm3jIPK*&j z?|n0k5L6qJlNpOs$VOTgz}U6Rv~UJ|JdBUTCMz?Us&;SPT9H2AJtSl*-(>Dq@vGOf zKL7fbJupwIZRLgBBJUfAu6fw$8g5@+&pY&_ui7v z)wp8>cXkj3%@cWLP29}W}2Lm?}Fy8YTdJe6-(s@u9rA_C4 zL(}^{ZB|9C+OKaRZX~5y@~KEpVWd`ddiz@eI@sN@;2cA)iRy`f%axye<}1~nI$nrQ zH@3y}t0;rFXiJ^QlY`qn8VI)-9dyL>OEWp6l zNI_J|v)KwyX?%G>Iz`a?p*^%Y;qi;qhJ5pk+#U(i0W&1s!!HFTs@PcpCy!w_gKi2~ zE-ENd(>Au5Ks!e4zs$lon>Qd9FRp%W`=qm=+mZXkjv! zRAe->*gx#Hq+0@m0BKHmpGx)H+a=2EzapBRvoWe^=K(cpnpX~CsK|_8v9i2)*YYfwUA4Jxd zXLPB(iky&&Nr7X(kMv>+P1|xjjltwh*F&o?FYAJE7qNU zw&%?qixGHzt$hv;)V%t*E-H2D%_59JDP8`aPqVS9%I)gb-`VK5mq7>T7odkK2BRTl ziHTSxr>1UTsILQ^Vae~npG_GOns6b@jG1NSi8$O($ayqHn@N;{6??J93nO4IggCHa0V?jn**4GeF zMh%$Q77qMLKzX6?DeJ>8>Gl0zuKUzZP05dBf%wX}NK8U3JycG~O2}dEra1&79R_{v zVF(ZaHW%W#ft)(L1YC=?ej3h)j8C~$2>cb&7!lEhD~b`d?#pWoV3DN3yTcRf%b&tK zWV8BKn3Kwt38Ih>01k%d1Fy;AXE%!UR?m>hp<&b*R-F0){EZ?_Q3Hc?i0cRpiW<^Z zQL%fhm6(}oKtruv^^D-_b^%+OQnoa}N%yWpQ_5@&3|nHHdV+LPauwa$3_i(8hl{AWEUT@Lx&2-&2CWRQ54&0W$Rl(_?UVO5>x90ob zc&_f;E16G2X2=09u7LrWj{taNy=i!t`kb4yKd`nwKIW90o=y1S!!ObX@8Lk4Ty3E= zGK4~axn9~^M5G!b;@I{rB%vi?Wu@cFX@S*#O!6%Q7>@gp^LmllSlcxvW(+q`u-hz? zv{ejYx2)Lw#~wX4{bA3uy6n=^m1g1R@7Px$F5T7JMH20IK*ob2$*#TI zyMJ3X?z7v9PP>|XnM-)>6Zs(9TAk9iz{T{o_jO^z&jmQ#)jZkOv)Ze$ug`}Ft}~qN zy})dE&d9XB#!NuZr+q2C8c)xI!o`0rDu^!lgWV|PIv!CVV7vqgV%XXyej}r!*a|yGDgjzYQ(sR zT-c5iXa#&pX)|v#Tb&RIj$Cx=-k#7o9$p(1L2Xy|wtWr>F5H2WifC542ipxqFuU^# zb;sLp(V#846O1CCQdQ^fYsE(;RBnb5#R{b$TvrKEz~go_v$ixH*%?_(&UVV)JB6RA z>u8S_gbH$K#dsE4?`h6w6|KhE?jCpWu3?6}P7D`vg+P2xPFYywNieU(pW+sZVZQN0 z!3Z*)EppzTAc>wNwd_xvOjlVUJWv~G~Eao>iO*lzb%~k>F>UBJ=JmXE z;tExL{r#D0?4uK^=9M<_wzy>$RQ`{p9y$_aMM+MTVCffRCGcgZSUi;9Tfed~Rh4s< zOYW0Qzj<+SgvE_mi>rG_9XV@waewy}xVo^p8J|;J{7oIOJpKj0wD0~6a9tmI{UPR8 zi}Q|IL=s{P$I_eF+$~zGd*|!U+C>!kBM@zBVvL*JX!)w*P_Jbdj3# zQ~X657bpDoM-v4svd2K1khPad$1PJ8E?{@?%E>9@yX$j!pN`j|QGqSn<;(BHeYT_2 zAe|i@_bm8~X0q3jb+xtKc4HtwH5VNCDbH&|kMBGE^BVZ#{2|6f z&P#g!H_9hs>CM6dg7Sxf1c8CyTV@G~Nbrf_{f83!d}Np!>ukl$jl&U?p+da3{$Zdu zujRSxkSCK-uUO&1&lHh71nqK3sCZiWX~>wN9%%ZWtHZ*qYZgpx+xr2+&)Gj1X*3^T zU&}-3s(xrZZibAGj^yO#2BP1N>*+nqpW(81f&=da1r%#CF0`$n*QydvZ>*_mH4ERu zYw}N~^m^G#tMnGdxRPz&W^cDgt<n_sGT*Lt4$)ziAh14L%LMqHEo7%R zGcRuOOkz4)=;;F_{A5hXTk)lO*jKov$V9Al0e?lcsg&jxtVsW{Pq2H4O5UjEYt;$H zuKP(4%Bbl3Jj@d!oMlfq;6H7|U9D<(H~%_tn<%4w#5c&o-O=1@*3FnT<&N?Z$)MrYMKEJ{bu)(b3o_eG+F@ygs1D9f=6kTr!Oy-2$-|FAmR1e z!9m$fs_=Q9T5hfm>T8T(?;Fl^Y8s#tOs@u%#xRtEPgv0%m1i|A4VdIr~m@f!W!K5Hru-t8u5yAFIS|G2-Ri#3VSZr?67o@uRX|OdjYyRVybUBhLg4$;E5V z8X}VTL*u-A8uuq){i_g9Y2O&|ydg(Fs?lZurwC2)N>@71uGx`wbwM+qoqkW#S6|xG zM2_wq?W22LNTLWNv)8u~w&$X=)w`qPYojU*U0pVY2ss29ylZu?x5uqo+%z&&8awTK z#;4>-^5}&Ha!SPT{-GwDi?W#`d`1xCXDy2|G!9Zc-$tHV=X9*OtZq^!ZJ3}}Ovi!} zE9&{Ul1T8$ zt8j0{_YQB_9AV$BZChyq zmUvdHoUhWkKce#Ty8G!O2)a^MC7Idu0XmysX4pLtNoU_MQleWccvuR$yw5ht&Wwk1 zySw$y-D>542i((rNgjm%VEK%emY#lvt~@c{aC*jlbN5M%YG7lZQWJJ~YuZc7Zykv% zlFU5Sm1{qa?3bT9X!aSul#3_hws(qrmbWXOCR4k4(AjQfz!&bJbHUs+kQoQgLkaqnje&SVENSHMP&3&!^92&b%h9xO#;ZwZ%*012rCSZnSU{{V8xrdhh%Qc+}dl<(}w^!>($^#^1kub4AagnK>A`>|j z#;)fEU}>|QHeHpfo{i|n04(C?l^?HlicToITVJfgutNMl)4A9bGfYK!14w8Ocqak1 z`R0u)Yr&1D&QFJWhl%b}+V{zOeF0iCHNr*K zHD`e_kOzxc(%Gk{EcU9FOuS(lOnH-Kw9_>Ea_HW2Un$h?&Y?7_I%^C;Pfs5SNX8DM zl^MCYxwLuMI9UFHp;*{AGcpnXQi*w$3{6kdu!F+ljJ%%fsXBFmNd^i)AKJP>8?w& zAG&sQ9K90leLl>EdhcO}B#G*r?4)w!B})|RUSy^UrwyG+XUdxn3L=RbY|KB+eVL__uKv`m%b4@KK_dzd@ z!)lQ*$CWugp^q_MwbKy`P-2Q0L)OEA$Om)AYeH4X(ppOc6DEK86f!d6vC&@b&-M{! zIbVNa0c$_gRp3I&pGsU;7zw0p75tZcY7&W~q#g(`3wdHXewMwl77;hg!Zd}SJn{`|iq9H|s+iC)UrTSqfKW|Ja`CgH3kM?v}8)jpxiiX4ykISp{1v_qPf|YixboIlaZLf^iXNRW1f|XK%rFO(#gVy4R?mh&b>TS+hRtZ zLQxV=`yHdA#?JO7hbr&LOT`u&7BGfvjz<+OJ_BG971d_-J_RiL{Mud&>TFip%3u zI`{GM8;t{E${0tp#mg7*RUe$yS&FET;+4C}n_|Hv>t6Wc5!Sjb8MipHq}|+^K&J)q z)|56Wc@Z{)sqPM05qH7IbkmWR1_m$m4M1jqzs7NKk)?WNjs3?<_`X!qItiP_7MCkA z4#>TZ*hd73E=)T41R3CZBl+}t5BfFw_$|jW=Noc`>hU1SBeeiZ^=vf2UFFX)A{F8n zgY+(TK|uP7r=ap+loT1|~gqB&!5FvyS}=A*H2mU;ErIUmWnK8-P6?5LPt388!_ z4ov~hS|=guG%Xr45-a=s-7I0}YVnSbInVBW2*ja%FZqMaqbU+}pK&iN@FGlK&CU{9 zCrPqe=Gma+GD?L%rR}|oPn;}hzY@JKJX%?CJoOQ9*@3uiOSMUwo=ttbi8rU(85VOr zB1O1zM??hr@Opg^+eR3=J*hFd$;8VcJgZ(ahEP6~BDprEwqWD(c$@&gymYcRt>{_c z!@yX!G(fk6revTg!^;W`=A>T@`k_XZp&ApW_2oQJ;FLcO%$YdmpTH+2<*@B-O`&oj zm32fo>Msp&?QRWPQ3jiG5{XfQdadFT&FU(LM~@z%O@(lq{`E`}nLfnunvCyNLR+87 zWispp(%-%vBrN>(RzWV?xM4J z2T-r>{m6=fnq1Ds3~Svt>T4Md1$`A0JMT#;LA4U`r|9{lH&&byG{FO;)$`QVWZk=_ z8`b0@;dFBFO%w670a^(~B}Gjw#mVs>KPf5hCq>iGGXGz>K|D((rFe#{ezPcfn=nq>td+tGu`iT} z`Sz0rmH6Pn`e?(njd2oSk(vki@A=DPhviKsSjlGRnoSn1&V^nr)^xVe*67iO4APz- z9lHlpkTOy!#yJavuFE1W76{&<7Pa(669V#`x{x_@73z0Ir8uOb9JRR6Mn=QPO#Q|3S@}Z$e2VqyKxh<_Z(c&F zbvvg5js7{jwAJvJE4ICL<#UP>nVCk`ik-r54J9$1Q3VTqK=w-S>DVzy8~L5 zn3=Zppu|!56tDV};rjn!?5*RP?*D&(6E79S20_K51e}0$sR$@3Esb;|&8T^af|4RJ zsi7cU(zP)G>6kEJbmxe{XjZ?MUV42#-}5`?+|K@-!j1R#j@Rq)d_3-t-p+9x#TNP8 zIa@>Wg-VV+smWd`^%vr#E^xL zT=9kxs%q_`u3G=BMJB>d8&8egUBRa-N^_!(X$xvJE==dn$Sq)F0CP|?)3eRhXlslV zQmOJrhm-&^Mh@RAR#Us1WsbQ7A5T5sIH(}wyN6LszH5d5FwC}CZ4lV1HdsQ|2xx>+ zzbHTCL06(z6V>Q~AB)=gHr8jNZ=l+x%oP|?NZI3# ze-V}-`M{aDYReT%oZb30V4b)ck@IW7S{Als;qN!B3Nmj$w;h(}ud@-G)nsmV1qq6N zRJyvKps}o9>$5}~VSJi~Z5_}EiUK-i^c^E4VMDVxH*iU~0JgI7t>wj~tL?d-HIz3B zY+eHn0uN%ULg|HSP-&apwu(_H@NviBo2=!^waaFcEMM%&Ln(;c?X6O^{$8uKfhYyE zk27Hy;rHU)vTg;U53pk!N7n6E}ZMJwE?lNh+t{S13M^&zy z7f`5a#n1d`$%DQ-63d?aykw+@Or<^2#sE+3?DJfPaWa64$cJ3u}LWlmJ7ZY9@HP zt}Jw88AS@S^P?uyd2igj@y9FI^-=%8{Hsei84#J|Wc3GA=%9{3c=7TMn51?eemLOIZHyZLw@PNxU>58qCivE*8(C z7=bY()NN$osGBmFwQ!01)JGdCdglH#*>IQ9LnIuvy}xhCd8#}Cl}*5bc6;(Ew7~vW zbhUqFqI-AJAl%S(9mMDW_d8{M-K8^Qpr@zU)pBPEp~D1spxL~c&*^wDKk7L>3iBq` z!Kk*>C2fUQX@=_FX+Ha3P6&5Dx3GTPb`Vww(iRe3KNtwNvD zw&$-PW;De8z7}7@2rc*7^oA#%p0XXUuG;ORUB-VjJb|m}+pDWt{cg5g34GLT4|H^r zmdAT7bXk@V`PooSdWEF|2DUXUr8ewRN~HJ-5H38o<6(sFC5o?Ml)Aio;>T!qdGN5OY@F7=q$bHt z*QdbdpNgx=Oc?RknfF~jnG7GYa1EDrv?~SN?BH^Su#G&vk8taVa4(AVHFhBz+E|F{ zuw7}+kGq7gcb!q69kUAQSJ>IM$DiF%zveV|4XOa^>fW1kkBWl1PQ|G2!=)b zL*;MyG7W3LZ{S@iY3J}hy+k%%40+&6vS`%eo_4UL8p8@dej?=f26e-HmF+rZHb0PE zTLtA#-9b~w>jHxdP;&_jAG1J*Sxcyc-*k9I9IQHZnA+L7ii-Ey{ruajy#H$L?EK5G zmCw?%Iy#wTuR-g1(_0+aUU0`+Sl=q`+!eR0&r6f&=MF!3eNs`~1iKfCOCV0!o;?FH zPXF)%3VgR2UNH9MWOL!&HO(EhA(NKoB&JUX4@zyHp~wgdTwsQ+gS)5U_2{oo5;pEq z0Ul$9CgVdRH@XxaM6GiBS&DN(Mz^EheNubzR5n=qaQ?-e1##U2pRj}aBf5?{Uf0i= zDMj;aJK5T<6Nx?L`5W`o(}MQ>9cc=Yj=Oeg3wqt%=LG!k?e9g@+E|fa^G5+taLiXC zL3^Ck53AjHovxH)WT3y@jm3;mnrYF{a{A*|#$J}qXOa%@fKH_lHwEQ9iJ%?f#oG1! zRw<9r5V6_tyH*ZAR4T%CI1*PBb9LUig)5&H1fsy^D$OU}vy4|lf&OZ^Do;az-o3u~ zm42*p3hUV=gwdd>fbrgftdz&eh()W$Itbbjr2ll%_D3rWWmgRHw^PWz3MRsPSo`Fg zeX#~7lz0+NNa#29Li~9Fh8h!}d3P3|iKCyRcRp)eLiVC5LH63_Zn8_!km`VA6V9%% zwYH1=n+f=lDu?ESQ&;JncY4c&+vC~7=s~`#(QRxclqd~d z-~Bb#f0lYu*OA}FzHtsn$r(68tC$^F^6%Uop&YG-*}OLS>RYRlI7%t=C4P@bto4Ze z@VAeyD#r$}EagtT4mh6M z;hv+B8|%;^c>il|5LU(1ca?bDGi4^AGkWoB7517XS8T&#E&gi-GT3Y8;xbvqP{*Wgb=qdbO|Fa0!UORESZCiyNgm{50O z3U>_*^v9q?M&hnWEv2r$#_2*q<5P%Ct+^MNMRPYVGiSUxjH#Zuwqt4*++bU_y_>}< z!K(`GMlSfSvd&ixxyYi%ww%)y1$!FWuN6Vv14V!getbA%XFbFORX(z#T_GrK^~ z0H0qE{;5ET^;Puasx$)CKUYA+^(&e*t8YBa8wA{*dfe5FkYU)+4XgtHfi@zFI35Gm zGb=_b`=^zX7egFo(Gm*6j_0fc!@_0uH`t}e3ZhfAEdtiOSk-D;)dGmqADMBm>%D#b z)YTnWhr}r1wcpVEP<~FqPhJOjiE4s<=rQjm`o&<=tL3lxv6Amb$xEv%L)UpZo>=*I zm3uHqX*SwzCC_8Ai>MkWV6fPf*R8Q;yvmXcU(nNwmr#8h60w|afbLTM$F+o(7$dJ1 z%PxrwZ?VDV;U5B*ct>S)KewhY|_zp#)&suw76W_;kXIZhr(B-s3^4k2B z8Zn1erq4O^4_>3_yCs4LF0URH+#&G6sN*En;qhi&FC1>Ns zB>*AHRC=$M04(F^3Ok3hftgkQoifRF-a}p6+h1g?F@IyIlvkp;J?BQzNB1U^&&@Pq z3!GpjfRTJWa$M+hn}Z&?6B}mR#clhvzJ2p`wCp^qL7t+6uziyK5t^>AqUTl5$O%S= zl&H#5yN}XVjykzInQoo@`Q7e5?W}$yv;_J!K^UP;2yBuXcSD(4)&v6TMJ*pYb&XNl zBCUer$zIe3855SX6K(I>?Gv2$TH*eB+Mwb*U52{8h?MSlar!bI;q>|Ir>FmXjT6de zjHfO?jUpi2gznzRBN)7S^9FR=sUUKXZL_}i!47sAM;;KNx1mMLd!t-0&1g)`y`jVT#=`d%)S2J+xCSChsdhK zRW~rnbbG;XLe9vJ%9a+op5bU%q&0v*-e_h9b*3X%$RmI9!K!XrdLOj`mUP)))G3B^ z#ps#vWpib@VTf={_crhciRXW2jm1+HGQm!o{=Ru~6|V?H@;d0a5WOql*VeH-Pit`#M7HqdOjT9HD&>2g6YHjPjOQ&c6WldN2D;7G28QMPS~gRcys-s8{cZOBt!u?u zUta*xtoE|9_VXtW)l2lZl$k|(Cuhr7hGW+>#x2)YZK3jQ<@b7bdh%;?d`Q75UA61_ zdTPc#t=;(&JR76tFIntH1fh78L}UoIj4e`GsCsk-RMh6!rdSYX;U*-%ExpIrB!@Ea z+KXEW2yrd#a?#7Gd!@k&-b?PcbGPo9=hfdFIX=6d)|c#*ATITg9syF-lDiWWMZU;2 zL=EA>d~#e69hfhmx|!oYXu00Vg(J3N`xJXFoxYUOZ7Wr{R=eA7Lc82Y%?+iHPLU@W zVP_9-bnhoEnpf{#Xes5t9>9USzn6Ez&DcfOWp?pcPR92t*l025^o+Ak|1uX#@&dK9 z4Pr7d+JmQx3V3JB9yV$?IGgLURqhnD#L#G;ac%k;o*tLl)hd|bc>2cQ6p9^6npFcmK57G@N zyC&4-L1azL$5CIX_-m$6dFm}(gF%V8Ka2b&5RJ`qG*nl={?E02_ki6&z)tVvi**$I zYU@$`#%r{{OqN*6Jr(vSf+gRP^_7l^=HOEUOIxR9Z?WoO)HNOV5MOr5n*2V)m4pQh zpgTanSjz~6DJKh{m#Bg}U|0&c5&cE}9UXEkDv?#8H)O^yDC6C$OG`@;`wdW+Qd$)SFSd|By+Oy(4KcDB^BpG-L{wbxzNuXwqnuJH* z@XWT0x>Wv4E_94;nIOx4GV)YGhP>|f1luPZbZfV8pu2qJF?is@+$spy<_Fd}VV8ak z;SpkP{Yjeg--BMWWOOojxU_QRG{UH;K>*6^Tc$YTOlP2E@DIj?QM%cQ~+HFL3MqlB@xBTARHI}|XB z&vSV``CxQ}fFUG)d7a!7(ZH#DGr*(KMS`kewiRG)S%szEE{kz&b?vNdk&)6aX4>+=d7jK)7beLPPJs-P#!cT+>u6l#Nk-3gR4o)$;ygMv#RM?+$wRd z*2$g?)Ho3s`BS>!@=$SU1==TO+0;(4Ey7{sw%RAnGKf(VN8U>iXR_ppLW-~6DU zf^=8+eux~|+sBPvJUr(>J7t)^DDAPqa9lM}=%!^;X_C}2SH`QiF`drBB1f9#RnYsy ztn*&_FDh#khFXbe8D9|Im`p%n$6?fD5!hCcy}!!dK@Y#BuHHecB?&|}s{FnPh<}*Z zq+_0Ds)Bor5bK)FzVq_MM=Mu5 z6#iX7fyC=e^M3vurIQx%ZYx|&aJZmHsHzX?Vy=(lM6z^<-l(d zfJ2%0N)(3a-XIJ>GJ=sTA(M9uLs+$qUlzgODo@`bY|QuoiP^_N!$R~16n`$)8HiM>}zl@`yRYR$y$$mH?z#${_i zc5o+da+@=CL=h;~tGx&jH;Vq0ZmIp)n+O$)PB_L|GuBu5rlQL{<=Ni%l3cr5N=;yq9KVV^W zd*)o?IO(eZ`bBT=JCNy8T>NT1o8Sbq?H-TZF(3AfFql9bs+)XqdDjfZY&>2K?Rdq# zI?mSOy-V^^UKpCs*Nz7>cn?RM4GE4gcJJl|4|x)rQTk^t7QC1N>oI^emYMDJ=^yF* zb(-^Yvl2sSq9D{aGsE4u{MS2y8bFt*Jv=J@O5iJUxq#48 zICt|L)`>DkP#YdMCye5{$4_;-zA@Ay^^*t-(}+hd(%UJAmy7;g z_?bWpLJlOu$Ri$J_h}?5)4vgI+%kqzOF9!+_{54enZ+_^(l(E;a6uTkJYAOun@)cF z<@=|szi`a`zQCW$f3Iyg^W5gv)=GM!U)?R0#9I&}XL00nw@llsHSFi~F3E7UZoUp> zx;k2%#w(%QZ*StydfXI!5Fy2V>TZQdf zuuLAmneOAZ#9DZ{dTGo>z+YL3k=hFJH5k>&Kr{>FScnYn5pzGx0NwZjLQI&t*)Fmj z^||3wgWH>q^91q=q`JI)w@p)|zmKw0BcpB?JX%W}$Cyx1&aJqQ73guH@g+VV2Vfhl zCC^QfR$~hH2Ka3&sQBY9s!u|;qu~WB?6Ki!KNqjeCIuRD7K=7KyI}pp*EYa?=aI`! zYohe%$DO_HRRt}^Zu_~kOd50v0^^lAVeuLY90wlAY_Pg%R^X`~%|Ww)QFtN16s7A8 zg2%6!cl!4vKhKz%%3N|!kW)kZkEc6poBP#cR(Ku2INK`=e=Ze3e)KN|<{O~NIiSTz z*hXmeYM1o#sgQrYzwXqaqOx>LjP)ol+PY*|!q`Jpg7L=sHp35ABiXmhp1yjV(p!QIVHFT53?1ZOH zQQ-!|UJJ|a0BhNf4Io|?uVJmwT1ChUaBvJ&)Koo>bR34dw{OQaIn|P!3Y?#9^yCUG zitQ~75$Xl6SSkP~z&q=xcAl#q$5wPgXJeaTQKObZ5_@+=P$ghnYjRfVg{NqPf6^nD zh4V~8WGc?Ut$0aa-^YO6r9ETHM6&2}R#xJ~=bU0_Ux=pJkafynjn@vh=3HBe&%*u2 zaRk_|F*Y@Cf$4*khm#Y6nI7S#Pyq?NIw%D(ZC>1VX3CtF+$sR7I&G&$?YxD%>fmgR zeC;Jx`z3Kn1BVm*-`NJ&g4sv_T#fUXD|yg>y^!;L(%e4Tyk3Z(LEC>p`VgLT7sac;TF*h`XXQ)3&@?`Mm zKDqCiyTOmnTU`~_jZH2`o0!^IX!s}v>TOpH?~7|~ro$0C>sz+AwpE0&W67B$j*3WY zj=KVqyw}ItKVf8C^9u3|C$uiJ@n<3SaO1HDrHIFcaD74s zycn6ChfPsk{EEH$;imo^B&e+xqV7?~MT1tCygEn@F@*Y)`V5 z_;6XACI2=@KSa7tZO+fqQl;??xDSq^k5MS7v+{e#j6yOZsAUK}g1cg|)FI zj%7ZDWr^)<79$ZmA9HV6LMI+uD{lqa6yHjni_ymV&VLT*Y*G98akIB2 z=F6fkpSJ#Xfqu#2XkGlS7QxYPEnX(K&n~x-I3iNZ*>w~hfY-fVcU`)+7I8tIjW!v1 zawrbI`ozLwW}Heb^(f7Xp@%x{~`Ig8~4@$wd5y|M? z#zJ@T!VjqruF`@_Kt22tunH#$``bPA^LzaGYwOHS!Q+3Q{PybThU6BF1j8Jka1YuL ziZ1gd%tMf_i?Tayrwcy&d_pHZ&F;$vkQ<~$l&i;lW^SXH8D*bgY^({7#}kQd0L=lo zq{*JqaAUtg$hUDr1J2(HIX&|v``w;oQPpCPt3zdO70AB~A7>~hr=C|hWqqD0IpBhn z=|>a6=JM6A<)t8&^syb|M=pYQdykvIa=U-V2YNmfK@H4T#7aJWQ-V+xHZ`BCM{(h? zYi7R|9tSp${*0D4Oag%=GBVOj{Bn)w%9;CY^fY@8U&4LPP91w8W4ge3yZ*7mCdkc% ze}3q|ei$(CznpwA<;`(8yBjh;WuH-&4Q=L30ao7q9Q=s?G1jGy-`j)*#$Wje`cvQ$ zN@`b&w=>*-gq(@qeHYoPWnwa}hlRrg))deS2P@1P--hXi|>a z>QA(AQb$j_0kooz9NyTbLbEv&*ZX@eI!~XKk_}l#)`(@}eoEZrL$c0$RJQ%v$t|2oT3@xau5Q6Txindq zm$nQzZ7~$*>ODF-liz3Ox4qYE#W0Nz(F*Jw-UXf=H+?lgL0@dLk*;-lX?a_gfG~It z@7oMsJ$?F`S8Q}5=Ydb1ZMrnP<>u;u>!8tiAKtzA+1CE}N_n&zPmZep^$ICw>_n?eQCttkYU{w`VXLu29T$q=K zFGp2=(E?r_fBz$@%@AJq?JZp%4{wcBjSl2?PSa5jgft*qw2q+)u|bnhj-R^-`71nf z>-Y%=VVv#^)8%1g+LGVbpIneM7t|T$gR7UtU5Jl>Jf;?$Gc^SwjrhuU+}BJulj4t` zYu-C@gxOC8EMof_*)7GOzPbfP_k=>vVA^exd>Ye%eg9Bey*AJY)Spl%Z-PbdYI%u% zE^3BaW9gIv6TSI=L7{Le9L(rSK!~~^>G8PQ?Q;3dWDiQ8%XAa-aF>SVgULBBnV5M+ z`upICh}s!T>s8I%fWRpBCdCDx&z(Of^t>DSzH;E@+TB?FzNbc-A6@)#A$>%4&Y&p8 zd_?I)PRnlZ%QdbtMI!@k{iqa_H6>H0og31!+Z`<*p7Oc3_Tcq;p$p|c-JOgc%O$=m z&2u@$(Y`v_snN|D%1Kw4FD*F|HSJ3o%3@>Lk5&bH&9V(c=vwRFY>e*I`l_*sL`hkC zbBFGood1{D^9>pZ&Pu>f`#w=LjH!6X7X0vq#Up&4Z88fG{M?at6~p3h;DQAx*EtVe zp8|Zid^}&ea!NuGlmw?iRf3FvaUt-fZnPh!&~?N7!kkrRl;=p*j>DqDn zx2%cMF0J*E2&%Q7P62b>R8vIlR8g>p4=Pg*p$vVJBH=s8Mjd-*Fr1D4%|NkGUb4K` zfu6R)sL(~btU8L6mfvFoaFtAcXp@%Z;*aEZ-O*hvfmN9!-AGL7%#(NjSX~DOKE8_v zSC`K(Z{ieh)k54-rg6ZN=8JpYvS#KSM%BBqY*fQq*Y97~80f3;f3qc$110&+aE!mL zj48F<(5>BvhtywI^Bq}u_vDN<(`tnu`58pngT-h}`!!CHzci@wT%8 zdRay_SeE|T{(yV>K$W>Jo5)W>sAI+GjnHn}#oyQcffu#ckdh}~9XcGFnvtP1;f}w3 zdxO!M%j1P|OtvFptc{$S;Zu^SRyS#WMdT9N1_9{Gckb|EI!}g${H6AmsUXWWBfre! zXAD4mepTj6zn#V8|4J1pdlCMq7Z5r9WmR0BsOVMEA4=1RwiMvps4@tkrs-a#LH%d% zrt45HNLX!_$&kx6M0$HKvbFcxl<}KmV_xjUnMhKJi~;@F^1sha@-G&gX%NosGgMF4 z$@O~`7&FUUjg)sW|BtP0@BXrV7EIYU8bt$jn7-#E#72o z5jD(Sx}DSJ=4Q!p^&-=`(`W7&%)GnMFk9_RRU9wZ$ndjMbd4Cw&sTq9j-;1|R^jVX zkbA*|mX~^qdP)8rGlWxfH>WgXGYju-yl6(n=e9{0YgdFTd5T^xi)Eh+>6y!*Lr;8d zd3~=;Klz?ZoDSG(%?X-)d-y6a*0&XdAxv{L%CQS4s^s?31t0mnxB;mDS8GJx$1Jl5 zQfX z8i5h197$8RFOlfl+a!Fx{F%Yos?-da*)9gXO zfxC30ZsS{bKo8P90o9*rRksUQDv?dow1$0A*YHh22Z(1z|KCl|F^Gf znU2I#P%d!8SFf<0zjViZf|0hnlW=xt3G7*%MpB_>Z(Hy22yYePsM-Mc zCS+Jf|C~Jk-J$Y4oEZQd=JxmNRDG@vH@{2w^3PS!C0_PzP4V&DosErHIY&n$mnYfZ zOj(6IKGa#9Z*woa((lp%wBn$MRL3ZEs}kg*b(^8_dUpzSkh?0TAGIB!@u)n%LF7lgKQvek1FF=UOU*SaybWJOVEgvqKLVR7 z;EJj6e+No~l2T|oV-DTj{G}-pK`Vrk0vqJ7I`7E1G0R5oFjQv`YWxn>vh&&`vw>!1r+uWR8k?Vv^ogpZX;`I#yr$MEX~KUSLZ)&-?>B zN0h7CLs_O`1caT+!1Jxn6KrMLVprK8C#!aYI+tu&d;2AniSK>-qHpC@&u7I3s~xID zbHi#2GCQnF=B^B4i%_-IBZfwcOy^U(ZRjjtd{K4YWIVOQK(B6VD9CBQwTi3iw*FLd zkaV(!&psN$(lTH0DY ziy8PEJNQ`YVS`(cYmyFQS47yAnQ<%mx3~Vf^5gRPOWEho!FglgP9(4%2V<3>)u3C# zI9!Er#an3}NgqS{zY`J?bWNZ}N!l#QI&`RFn;gO6d`kN;-QMF;)UfvCM|tomuye|{&>GZ zK{bnLi}MU5K}a^&BY6b`qh7sw`1f^lTed3;mdldbKEzSG4%*w=oV5myP||ctz&QMfn4sXs zIL$|O)5HxW!QFc)Y$~s~RE;jT+w&Z0(S23d+`j#iG}CeO3_zpr;PuK2AS`rkc_yk< z*^)=n1tB$h^k)H4F+~(*3@L$SVh5Y^>FIF3BUU9_{y))+KVRSeQUI+mrTXE@cVZVA zHi*QZz)E`d68ps(cfDP@V_wy*klxXrr$&5TZ{;&L99ai#3$pgd3Dll-jxu@d&WuJb z_7u%Mt!#F-t?roo8#u^KZ^Y>2hKGbKo2$9Vv)J2#o}!MgDhDad^{f{!`d~XnpaoY4 zV5ZoNPBYVlj@2{4^3iHI0~F;Dcot95E7Ub*s%eBk#woD9OTH4|qGDm+&w$KVmFDpZ zbI5bRZEdrEcIo)PkBRw04tx3c@;?W1;Dz*cP3uD3_l(Fmx%$^G^G@DkAUV#7 z*p1SVNbU-*rFI4dX<8|l4d$z;sQAYty{>)MRgw*?NJ$y92~&P@TdX_NwRA2YqX=R?{RDZ`xO8Orcr2ysUnF4$jO3cL@~*c14Z!_s#vj-r3z* z5)rx^t72*^HL^>>%GDN8ykJ(_3gVIaED~z$cmR4!$LTUfE|lHgGWJos%Y8Cj9-AEq zwlOq+6DHZ^fw&bQhujDSL)48q48pZkEhFb`%H8r^?>G=}rAHNyOc&V#>ig`}lCVEH zC)0m(^G#bqj7Q(>s8#eYKn54;DRC!ar; zmR@}h82VF z`@F!kLE79lZhklm57;>9Ov7TX`M582#p8_FLpQ|)15@i6{q|x`xH49LsBW))sd#=%$?0*NaIMZ7M^|rh7@2FNIq6S-vSR&knP13t1N4;hG^LI~LRn zo_x&Yt?qwbkup%Bow>mx;oJIsPxq}fS8LnTh?N3Ps*CqhLe2+2OPbJy#$=z17cXdQ zX@OpGc{#cL{r!F%Zl~57u(WRv35mS`6KGG>h(Fgu5(LN+j#_4Z_wV0_Hyu$+PJ|O| zSm$T3(q-Ao-5;XmJ!&fI>u)HLw6a9=@lzjC(>PNVGFvpo0SjhE&K5I(Tmcd04R-@t zlZ2P#mRqth1lz`%vK!DW)v~Z2N<$7|sTF)A_tkunmKz>TT2OTsOM(41M%e0N$t)#u zZqzf47r-Q&116(kBCQ4u$DnMX9>(=Y?0lfIM-HP+ZC5MJlqt?lJAghNsY$eXM8{KtbXm|Gd; ziTLpNi+kqY;rlD(?FH1(<|1pwEt+urI zvOflA=vyXmz-z0m@6ST>#Z~o_o6#j0qa^=@_D}89{e?x?D%ssqGg+_cJwiT{661g| zRNo@*!1RYK^_l_OQ6zw9v0l`H@T~RfW6Di|Rh1(jUV1e*wwEnyzLQUNB`LID$?R%a z9NJJzDb_bUXD*(MlFBuq&X=hWcK3T_?QbUsP@w*o8p-rG}HK*@! z=3SW!TUmTlqD#sAoyPS)Ejsdyd`s4Td+==!2*JMGa=I z9e@4-KsI>(~8SUR$U5b8v}f zff}XSWncWpINStCt_9iol(~lSUxv~jY`+xcKzpuwrGDfQ`J{>WrtDQQaTJ2=2PH$% zfNiYFBYB0v{Bq-cGIa;myNFZ_QTq25kNgS07TuWd)C|eU$cU7oY8_w-OBm9JE}}5+ zrsMxTp%H+wBcH^;3i>E|B`!zgEj#>{tAWy72WsZzlXBW}gzRg7kNCj>Gco^%6!iZ@ z_led2{Y^6+_`h(mZOspwp8oQM1CuBr!o~FiGhSF(Ia5X3dG-5;4;-L8@_u*nt-7<; z@mOAceS^!Y!QY^K0-`yZN|r`deOBjWCo0ge+qS(~(Oy?B{rYZx{^)($8DoUl|G;Wz zCxQwFG#cG)vqmJ^IXXJpIOJt#+uGS(6xB38*DT|TH80+^m=4aZ$d`1aT>|$I^qM?d zTA}_5f)m;}rzSmIY-l)OW^S&bsc8}AvS|at`=U59$p!bLDKE7HUAvW8P(epJMk7-> zC4_2`WSJU)^3XcK1o2aI)iYwJ=_V&8|GP=}^#^`lSjg&)u>h?VhDJ33fsJO1faG?| z;!E`1oj+Q@P;cv~ld+*jg3IQ|4uPZlYH2Rk?^(*`N|Wc6LH5kj%ga{h-N~^|k@0)x zbMAV16xY#{5ag{c6&CHC!h@Nb^ofgt89a@dDFxme;T3;QlwYo8N}5hCKzK$+e{iqH zridr2;?{E-CfCBqp&?yfv2Pu8Pw`RQr%4>fIOKCM&<^%vyENJO-pQ>$$kLOy?8nA!5V zQ=ac+8ti0}0)njDE~{J=5lM!*5o+4 zOWNtJDlS$u7B2@Nq}F^;a%d?&_~Xav`gXw|4z^=nW@;urbbCj6X`@sT2yw2N zQB4~IKu(Lh+^E>pX`@z{q`=Kik^vDo2nyKQ(C8f(Vu z4mi&1i5RZ1vFMvw9_N0DhX)n~+gm4f2%BG_&LeC#HGPS=-xO?KHFb`3+7;())Y-(gL6R zh7xoWXsb-l{X)H-qZUmc_0m$K#mi^TTRY1jwf`J2P#S>DKQqtt_MjjOy<+!}-I;}w z&`gsYETT9ptE#AAc+IuzH8eS6gJF%~W1Mt@TUlPU!?nqD`AmcTaFT*b{DSTAkb6hu zf;cfr)w8I`?E-4*62~+XM&zS%J|ACm1p&DQSMxpv+?C8gqE!1t17_y=#XPKUdKco( z$-u(acAJl|=1xQ+J;(IOu#=6Wtu(pM$|XV*0XmB+V=8-H(m1%n$LKU)I!}E3&JXim z$?nPNQB7=;T(V zD(36#9XV#}AgD?ShZG9gUEJuI&D$cW?3@p0 zbal$_r$|*Sk1O(DhfX!%z(@`O@h2lS9?>aK!0pP?nhDk(*Qy*Yn z`Oi>WfswHne@l!((%Y(PY*)^m8-*i4g8%SwNV=U{AHf8g)7o=u33PawNUy~#9XQ*R zrIn-VGC}N2X$jS!k=B{M|Mm4n_n~wfC#Q>l&dHyctzcPYEiG^FXU%bxW2Y{_WBy7C zyg1?!ssTttu#Xb2-|iiY)S9{Qx~Ul--n9D;tc)%%cy0_4Ln5i<$OyjXawo#x*mr=m z0rAF}uY={tozKkl<=ftU{YG8-dV01+o3{GX8BHAgcMJ2p^`6{$Bar4i`EKUpdA(!% zbghP(VUp_IQHyB`q}|;wUv8--3v1gN7MZ30`3nymmIYq`nD{nKE>xbF{(gL#p3dJ> zwcwkW9Eiz%RIV3VE*=C)P?>vL{kLO%Z(xZdewU2fZiow|XRf&dRB@owBAG5+ic0v9*KO0Ip?Ud~wUaU8Th+~5{Zi36brwis zcd!rs;^lLFSQVgkK1vb#M>G4Zjz#G8doUTFN^F{IQsrY%S=H*BusnTJBYDuFOdqs_ z=BPY;NY>Uhav=|_XJq_+>fzDfAI8L?%!|zO`T6-((7j==WsQQ2bPlh}5$~cfg^p(w zyM;M=?20zsZEbCqJ>6<7%0i?83ipg`MnSm_x1C+knz3qb-;lZZ(xo2p9_0TlTLNW^ zQO#mbBLf6K!tkFp%>jD)n-I(^@sg^X9C1<6#~kp0fZ8&^wH;yIZ*=kkMsvjB6iUr_ zNzOJ;RSd66r&-JLP?@O|t zZE1PjeT*3ESMVAx4s^rva8?m1a(E%Iz(5M?#>M`eIZQ0zH#Xofy4?EuL3VPo^l$dt z?1CGvN9Vk3xf`x(UorF@nv;r5t*TO+mS$yP{obO3TR>bB5fZjss#7t0+KQ9aw)C)h z_SPnGzJJmEKgA#!;F@{*%;vGSNBF1{Vd&}vp|ID=4fRbdeWImk*JV*Z*{O?9#KC(5 zRd59$)>>t}ABB03`)soQ{rBI+Tzq`6#YUQY_150JNeq*VF;@YvPDpR%_4vWQ>zDuY z(bEA7=ubEGIzM+=MR(SDAS{6Drqc-QVnf%QwDjZ~QixEBMwKX;kt+qNNB{>^^mE}jA-CF|!S{@Xv> zZ*%W@QFkjgGYmiiGjTF*<2TK|CyKen31Anq)K!cc+RwB!FWC38N(g~R0Mz)fhKGOI z=onPg;fbZXrcy~o9rFb1?yxg?F*G^1lcAt0A@agydmEMx6Gj^k7W*Zr1oNMg%a_l= z^w~M>?DXM7hpO*!c;iQqermV4Zx$?MaX}ZWQvg>nF!d@~T=}8HZyL@Jp2{b~z{mjMz5P3a20D1jC{2fY`Aj_p4RSW?o~OzT*io3d=2nXwcFDsIu|c^ zp;`^q%k1~?1uGHdgMp;VYpK|c$3dP48%vPlX|BSTjS#}VBvQST%q+vyasw%SiMKOk zRKbfnJqoJdVmy|A*wU=?a*7qX3sBVm)H&1L{|!R@V*mEJkx~AAiDaE6kT{%8EqMm? zo=%m{&O`G@%XC=JvYv}$p8q#9BDo+@#4o z|945Z9|^oTboj+g+C^q&QBtZNcs%_);eYekz#fkVI0mMt0f5G@{J(GUpZwC>{J@@e1-|MvJ#$?waPuk`bEvbBuGlYhP62pmAaUX|CLfmK08 zm&4Cr{-3s?pZ^y2*H0j80}y)tV-squGHqpNVxS64UN&g$tf&MsOg>hh zJ+y!BVrIkj7dp16&01>R6|i?wFtW^MW|5&Zs`)8r0CmZY9f@4bU_E?@44R;?R?@C# zV*lMjF@pj|z$^_U{Kq9UtpkdV^~0A+L4TZ(NX1`RE*6jJBcNkBU=;arZ_gT#b!V%@BAkg4x=eI|z zB+d0TeZkc~kgYBD^VEB3FHv4aUaCyv968V(tUKJ}58*b2~LTdnqI$LQ&<3 z@B+|j%9cc)@y21DE-;_IYd`0n4*1I$Q6J@rhXS5;Ngy~sn6Af8#|swTn@8O&iq`XY zKxIv%>0f_^>${R}j*j&X^&qWBn}f^q&IBst+bOvno3uzWn);Z(qXO7sSaKIj-oMIG&z=`@b^{P5yaEm_7!ZpGf`ukkD`yRmGmgeSf^x?Y=Kh z&KwQ6~t1KXRoOE{iR%HCWneAs(Kqnoi%*}N397kTN?!!0L`}@ zv6s#~_<^JA#EDQav_=KPgDd>6LlpfR{Ua5^S@?pQe%pnlbPDzjlQeaH+l7w7z`Ww_ z?w{Ml-A6w;U+iK~EwfkiIm(YDqhSagP|}TgtYY}GmnFQ;B1TR#d9MT}&DnJYG`FRo z_riEf^$WkPE%28>;#@ulD?K;@P{ng+YnSEfeFm6aOE3?;X`t`t1)h<2V)+bWl(Mu~MXo^sXWz(nUbJ zN)tkFp@T|Ms(|z+pnz0?P!ouPfYb<~g#eLWLg)}eNb)|2I^XZT@B6NG*Shzv-*2tq zkC`)>lbmy&v!DI!XYbEvf38I>ZrfmlksZ>t8Z|t=%}tMAy=F0=I*T!W?RF~_+0)bG zf3$u~4M{vmK`HyP>RdbC<(%Y&Eyc=lg{-dlbeA%jrZKrw@HE2Bab=`*VbfHF9uUR(~R>KahDkA4%2Sg1 z)X!R7B`rO9ed%W|0F1THyZzF7b*9={3v+B|ViTo2?OS9Glksr&wmHIt{MxFaanuu9 ze_O+_kT6Tr+i=E%5w`Yuyj^XB+ZZeWF`^~?*57JPSaDZ4Tz}!HwpD22x~9Mmt^SVt zx#n~`>vn{4%DmJ<8ibmQW(9d~j#!!g*$IbY0r`3>bTk3tJ>)pnKw9+1)y=?&txmy&Pd&>5-IFe37FwqKtM8k@8~$an#NEDc z^%$d!QqL5`8Mf2iPV%9kyEc2t5TP>jpdf$eZX>qr?k_{)S7By{6D91uZf;-FUm)8w z>6rT8bP(YofJAgF&q?sRd~b}e$H3{3gl^@zw$UpptGWC&HzXPF-MNoI z1U6kR@<)<4MA0oEo72S(_dAm!NcTr0FmmRZGS9`5xvey7vd>sXZaSXVK#7mjSC=_r}Ab&Uti%Hvuo1xz5uiXSoX1=wUsc zaYZAW@31f(Vn?ecs10LBn z<~TVsLoCA%3T2m2GNs4u^4`Z`DsLA=oKDFRKQk3J_BYUJb?P|4(ir{b;^M1VF={Td z|IhU@k)^39xwn@R)GW&pf=NbRWYR`&O?BR9%W~_Ap>MCw{q3U8A=sROxNThP)17A8 z;0n|4Ea`DHKV_b0Sr>LGJ?7ES<>h1+Q-Ve8uhv@2a6cmN*cn-C|FP~Cb}=kJawj@m z-Xib4Yk`0OX=~2vwHLs-sn>T@>`Vq%;drH_CQD!#z2Te_K;)glo2bowAn>+G|A6l% zPQDMQit?Y=Iy5KD?79%^Z;M25ZxrEZ*?&>fbWNH^MI9(A?{_f}E`4cbr-bq59!YKw zQ@}Y#qbO3`dA1#-aG8i!C$?@7P)fcTHkfr7*lrI(~nmH)`TZ?6sXW`_99D* z7aQfNbvd798ASJRN?8ZM{&H0-4=W+1%5vm~p?-X$2_%6(e0}xdgQh;4j8CB8cDGWH zl2PMji^R7G%X!`_>~@gC_?g;fNIvl)eWE_nRV{55>DjzvaKxUwWpKaDS(z|_i+JHL7Xpn~iSNs;%q z{)Cnn+daGCFG#0E zRfK%LFQ?`}T^|7FRhw9nAf|rhxoK6fC9X?vHI#*a&Ou7Ut^!l{6V7nx(Z>9u0$zUE z#=Z^5-)yX1OVnmRV1bYfs4djkSlj+(7u%M9A2izF2@dnu9P~wc)kC~po_nsflx)EI zR%BBQ43nE47I3#!V$~1P&fp=F$3b8B$AcCegWW6nT<=9mZo&omrUBkkx)8?a=S~XE zS?^MjUyHbv-D|fRt}ANFLgUq*{w8Z@qNf$N+a9w#Ji?G)jpC7PU^v2sL!qh=KF4xK ze}+SEE`s8{2ykG1`~V~U8&o0T;+nY!kE@hn7&*UlUH}mu?6+V2dDocZ7h7j? zK9P;VTf;ZhB{KB<*9U0Nm!18V&>Y_2w3__2sJ|B6;kUE3bTJEWYx8gOtOt)e_rLja z=Urm8c_zXYt0ebe7yFYxUo0Nyrhl^n8l)6OEC8Tkyr?2Nea;ab{D`WfQg7GaK%;9nEl+kN`6CgNdh-jB?(+ zJ1gr|h?N7-nEFq}mxcFbH?)^IH{FQ=z!jf2aS3`q!SQs#bYoMR?~97sJK7e97V&td zv&@`B)35j-^mGg9HP@dCTR_|dL*6^E!Uo`;^wV9*Zr2ceSNLS28dX9%Ifwid-rOrl zi&84%u2fe~nMr+U-M_|CN*$%NsDJ6CayHc`X67ryyg_iwz;`_4d z^~e@?-_pX`!mpNYoqrf=>zY?pxWkpFsdm~dro3UVm09)&-ad<|?6)s(tJ?gi^yoi> z2A~AMY;rfB=oebEgt*lL1~OUA!T%LdAT&$E$ctRM;Mx0Gg(ZmVGlx-?6F>rojagjt zR8oZBM9(LmnLhpJkB2>S{6CX>**g9Rd!%D*bPr%#*Jptmg6zNH379VSY)K}7eS&Z9 z?TFhh?NI-jnq;?!Ew#i9mVJ(n=y^cLSnpv4?l!Er7LBf-Ciu?);2?o>qi?E(Xse!f zO{qV#`z5`-&vk464e=-g{(X1vy*t@14=2`_w2lKoVNb9#gcHiC5zq@Ue?8B-VD4A5 zoQ|DR45!F@=IKjA(YCG9ubseq6To_?-_P)q z9CP(Z OjK`?Ne?fxfu06s32ZIqL3eNoGFlJBUYHNW2%WT(wtYFtc#Yp6!%a^x8 z0( zv+i>0ULmN#G!m@jDT?Nu z^NX%@b^TXX1)TgJ<&z%{J=pt+RGNq#&}-IhXL$@hxX3~)+B4#SwG7>Ct;Z_4==0$7 ztM|ZVzJKA{@Aq^~_C6||{^^y$6aW8;H9zcZ7oKsIqU`weU8&&f*w`4^JaqW*{X;rc z;u!YLp&_ZCYYRvp9sPgHQmFfaBtXX;+H2@}pAGpjLF%_7!7G3m5S76d#@Jt{ZLIhA zt#sW0(#L-nX{FTJZ@=oT?q<^FY0otr`{SVq9jmRUf(^16zS8qBz2g1A-dd-m>IEpaJw((EFMual`?>_s| z4L2P$X4)-{{rXZNvc8C;&F7Hc!22Vf#R2qb!h$>0@$6|fA%5T6xzcxEsu4W;EUTaZ zNnFnjH8e3E;z6**zLEn{b^2^yh6i{My^y+`h$J5R*zT4$;-j!FT>!2BX#c=fTLrQ< zy^nROFRU3A!4MW5bVSKP-}%!P6Nqv5dIx&9C~S8X$$R)twPP9Ve&sCbWI;&7aO1{P zpr0{--(XfLsHv~7t*w0vQ~lPEtp%xf!82O;%sNWgu-YUWCO_YK9^qxyA_oTDVg+{j zuJL`7MALMRZ%nVwq~w4oGgrOT#GME#gN4He`i4o--nZUo-^`|{QQJ7Db7EaUUZnll z^Gh<^GW_;1zCtmGj@>(hqQmR-{nl>A-ffdTq7}~8CdS#4q5?Xe0pk4i5r5Mk*CPQ6 z`P90XXLQi6-tlr&ScLM6k`d^)hb}H*AA@e)_FZ-6Tbf#)e2LRV$)@Qey-SjfEsZ!>#?~0ZUC>X9TUYaf8O!D zCoK%>RU;~J;RcTl>pUmW%(S^YS)5;Vzqq-Ic-oR7WTJ6{WBuJs|ML`S6MjBu$%%sS zkzZGtJv27;wXLmduJ_*k`+Tu^D-+FaQevFJ%d0nC_-IcAtG3Vh#*Nn(oSl8I@yhg- z1nYbX-q3(7((Ocg&(ta=(#IS0sr}r~fui%e?cvFMg85`_lsekR7|&rNat1yk;P~hj zs-n}LFsJMATscWt7l?s*&G!!ub9V(BxTtY>w<%%lq}ML(`|&dYqX5Fg4!G>Q(uh|* zy;Jb`{Q^h&(_>Xy%a2(qxHLx5HhhJ`@8_ch{jop?^w-rD=GI^C4}PYOkBk6%qI5%p z?CusOx(;r;plr^=qaC!D}qozS> zjQRQjJh9MNh7j|R_U*;1FF3!6C%RPpgeye{<+y2IJS~AU4 z((|(C-BQQ4#~9kJPu)4p14m$e)A`$+<++BIV=uo3XzKfr`#EHg3z*g9p6(U1diN>H z&#;^B;UDKfB&_vv<+tB{Gd{y4<7RJC-#Dge6LI^Zi`s5!%&bKiXx;uU(MQigA;YU= z?R!}*)Jb0=aElYVmvx%B4oBvG&H=*=9IAleU2>&@p{XgUEEl^P!GSspjpo}?qsrHk zxzaaRlgmDQbo{lrI_e62?+h~h4uNQ}uY%UqWM(?8^%F3XlE1SYnTq@7nogb4eqgfo z8R=h5o)yseW3jup2SHh`1nSrJ;y%-L$fBXzhT#VTD>^fdsjG(z?eaW9M?2`kIsC~K z`4LZZC30UEbbcK%sR3Pf&&?*Bm0tQZ2CHIW_;n9og>~-CK4hp0eGwkxkDs^MKlJ58 zTT9E^0eqdSRE5FFVDF{ac6%nZHw6IY5coywc3o*!CE{)V+uGv0NB%6jEq=x8{{1_y z?pnHj`sv@_{zDVfU}-n3=^Q z4!)ta?V@;(h^35p$jT*TwSB*!ve4W&XWzhj=2cayqg)sJWJR1#Q$B;&CGYN*J_LePACQifgrJTk2>o3`xn+@RFozAv3+ze5`0B>&*VhbkB-8gKpZsa=w8G@ zewNy_zOKbge0)7WFHc@0y1KfHiHq7{Y6)EORHQpDdhcS1u7L?`phMk#ej}LU)?&LU zwameXk|Ix;L;b)a;Z!PIDp~|VPqa*pQcDI#VK|w)XoiBE? zIXyi+P-w8mh1jNamY-KJMb6j2$;rvYWE5gTo;TeY*8>dXAJJ}X(DLfB&Q#0?^Odae ztgQ9Lqv9ifU1;4Wnl27qY*k4JKjUE#Gwe=ILnV9t1rrhXU(e>yzzh1Uto8Nj?BBn? ze5S(yZfU$X#Xgz?Qb@+m4nnfrO3HN6%r3>KN2*lHj^W{d!M-$ow1F0^XNqss8!oD)|8@*zN zj+FZh6pvV^wNJS--aUmhDwf~7?!#+;nM7)ME6v1e6q&%?jWryW%EgL{ig{ham96OghFA|4vMz5^y7=IH^CR*&4d#c7fldP z#+I7|pU=}% zxQ%q2_eOz0-9ijcU!S1IC!M*ECy9kmz})}-Lv#}MQ(SC9zP<`pB6haJLa9c7O1m!% z*VhT10JmQus?F3q*Q>2jvrwj@;G8rHO72I0b2K&m(JkQPiYlu8Vjdh`@aEw|28SVp zXRiXbQXGsYODL$K1+H-O@$IY;Df%~V+{okbURcraT}4Y7?HPkALj(A30UTaf$alhy zz@B|}eqmk}=wW-LxpZNyoiSJ}S)7CV_I^7G zg_8N8`r!>Q^}d8mcc#TM131BQaDvq?)F>=jJA%CZ=cdF z(NAGmz~iyCcHRn<@Mq5!Tm)*reF`~iZ)e8~a;St}3()U1^MgwuiIkmb7oFTpbI-ME9p?oTL zEC~r2DE?``pTQmRi>GsrjEq!`IO&;9L~8MGiinQ*;O+SNiw;d_J$T?TZ{6PGMH$-o z=|f(mCrr4{7!$(_d_gCVRqrKwpd#tHHPDSYeobWn!j|w}JJ)Yk!C&Y8JtH0cqzw62 z)lheL`yqtnj~V#aag(#M=gWKhR=?iY)#=E~5b~*l!)L-wx10sUgVjImJsX?+u8VXR zSwze%PO+x}mVt=<5NxUvYoGA*y~{PIMD7Dghm7ss+@Ef1Srt*5_txUb*+Rj$mEr(UY}XibgLA__;QMx==CSs@olb7s;Xc+Jbp zySlcj&^_E!=J0$zKVOy8WjQ*KYjgd}spj0bW#goQx<}KkDrNik&%GK=PxmK3hjM8p z*KGAZduDZsnVnw^&MNK(b-%=9w;6*j@uPh7sh&x|`G1SgxTK`l^m+*AInZ+ZC}IU} z>No#MI`$=Vf1w_7ns~E&c-W`$s5k-p?V>-_X#`fL>9ZsqMcZb<_dLx&QukZ0bTf`r zy15u$)AyM*V_`WdYi3rzvsg6XKlXI;!_?Ge+V)gt(&iX)M{QzrQ!~}src;_WnQH#+ zf>53Rwvzaz@J@(4_0zK~E8D~A)!t1g8iDtKXB!LBgMyh!P0Prj6+@A0zDwk=@2~$G zi2Y=430sNr=_B$ymZE1_?Q1P?VRaeMMGR)4ykqPDhnEL>n*Weld_n@twSbt=Rr4&J zUe&twijpHu+2Xj$>8BwvhgP2r)I*S`-GQCwlkMSnE8N^%@`n?`fouv*vZ*mr+;t-F|$&Nh2~|yp9wR6tpkR9!ZLDSgN{laBX#M?WUGQmdazPOJ6M4 z7(}M4c0O4LDPk%Lh&u~hOt_S_WXKH4P;&&`M~)Lz8~i=~NC#>1;GqKSvMTSOH2U!2 zRrFKLf)Lzhm40+H$5v})vkwwa+nQ;;B|S4#kSmyq8^8c@7hlmNiI5M^KzJ|=43Wje z<5OylOP35D^jL@QEr5v&U|C~gz@U<3y}KKN_U~sB#v5QcHHanIW|%3K+*S)E6?~)k zNbRF3GYUo76sqSu2&_;*2EVQe6Io3BxV(D(W>(Gma65CFQ@6kGyl!y6xsCAxLBw=i>v0#-R6=k@T3TAw=yrxw^-b>m6?x3~y)9*0$K8TrE)? zKGch?*YzrQ@`p~-t4lj9_B@riYN+YBfyYrA1%3FE4jT5$Q4450KHQZKMro=hsJhh} z>#BBdz2TIPZ!3YnZ6-+1=k#?YNn71@+gOzK{=Od!P$nd%tuIN$iF=HGex+Y*Ttyua zA4T9)j2R$+0Wz8qT9+$hjPz4zkkIMtf7_Hy=1`5~m98petYS|YklXl{hTPelv8Rj; zpvT;VXHF*Qa581W%gqRFC&&6n5z zKLkP!&Uw>aVAWz3vsXR!9Fxl@JJmDu)~$0v-`c5()iidYF3?B`g6GFk)eYonL|kG< zhUa*(cZ2pBb%Wl@+_`$w;pJKWD%0(GoU!YoJ_*wi92Z4dZO47tAm$QEyzs2olAfN- zEUdl4evMWre3v&voe63`ir7(-SK%C*Xm^mL?ME8kzsEdpT|ONp!w&J|^d>nVC2vio zqfX(*csm$-wv=p>$-&qR@4oiXyH{>U?z|*BK!!hL zbS1DLw>E;BE=!A*c+Xa5WcYlFbJ370x9>-cE*3X;;vHz+;#kA*nyeF)Ka2foU}+m%2enahkkK|JNg`CDRfW zIa{?=X>!AFN{}>A7xln#rTaeuPN_3d7M}I?5*(s8Q!A>5q&5w8rert?%nEnqOA~jt zVa4zHmHnH(L?4jf#&K0SKsf4C5)y#lBLuPZp;C>t^z~o2P7{W@OZ|M?eR(ToJ^anC z-6-~oVg{g>=#jJ(|lg-OM#o@k@k=Uz$ma9uzw+78bo~fREmK(CZx&C&{!jH3jU2@+* zh@mSLV~x-<(sl1kF@>%wvUC{LO4#}I1kG5LVKS)rjk%Fn!FtEu#DaO72D>f$_AX;3 z5dNQ9TV%KP0Dbc_!Ve0T2Px8{P9^4N^{hV2iU~7WpC1bey?b}p;m8`ZpC_}O^_XuO z08f0eWq5Q5h64`7MUcMyUF9Qt%CmPa@u~IDR0|6oZ7Y70O=Je`OL}we#K+54vR1ul z-rW9R?D9yztTZDRf^FdQ5kvQRo;hB)9lp~1nUOPQVW>7HS|K#F4Al7KoxkKQm%TYh zW5l`j^R%a@v%a&~Uv8;qrYSG2Ub|R%OXpQB5 zgzZ%q_fH*|I2L1>wRCCFZg@L{Om=B~1YZCfgWiO9ZcfT#)MaPPR6@9sQ0%8I$KLoy z_dWFW_12_0JTyqXJdFx>ue7l;3(8EbhWT%`qU;Ro+s!WvlA?dc>1U4A6g+=JAQ zq9{~;JB>F!Z=hrXw?zc(C}<%Xb6Eo7}@`B;=AiD0-hWa zjH;}0vC3`QK3Z!W*;kp{U+6#C4NEU|^n2vw#4RSX{lMNK5RDlUo98)?v#}Z0*S!B~ zGxJERg}*W%5{eyJ-WC4@D+kW1HkN;9fC z-k7|ku4gQr{peF`<}86=jj6aOFJDqvYk6P&w5``_bj&9v6mx=3KZTSzwl@%g{(am*dxHt9>S3%Z^ z&qt(}hBIa6Ug~IYGEI(78CrFop7%_ej+T}6El5A*G(Y0olO?~EE!-1-UdgE33)RKW zPS31<=+G072$QvKZFiB%5+4t%q16>7sK)!#cW<)@Cf(D#dR0YFuFPz5u+qVf!&5w^ zRiy>trh>05BJlH%pmP!gB&}^ukvv(%PB2^12<61fTg!iXvI0tqbds$kOG?!`#ta?jTYMvX{<;xG)laStiq&n9-!22(* z`N2I0gqhP#{m3qj6FyW3P2%)(FcXn9Qj{z7NMQYWX`d!IP3%NDGe0Y)1V4k@o`EF_ zIkY+$6RDbop0kV6{@bRlw^-XhA1N5|?nV=^4E<}XOY(kJ)~z2m?Pj`iQ4HIe$ZFBf z{Z+P}w}&W{B{?A@f9f_%V7Q}_S&Nl?#rXA$B}Ke)gmvrIhxJ=?{s^nS2?Zgm7yN?o z$LFRfbpz=;naC|QspUm@WgzzJA3h6`M}>JC${DV$etVzmF7HU&G^P63>CK?I4iu-~ zTd$%y>T|~WHz%R*wwDp?Lj0!ZOX*{!WYA&`_D7!@bD#Bl(xOE3`c{IUo70HQ!Xnq6 zk8MZQuL_>OXlp-AYSi#syiU-7kN1ewEIhHMpcwrSMeikhlb$`(^WCC|3bQu!Z%LMT zVAOD1DA)=Ubd<^7nvxtvb9(}!CI45^2U0Q~Yz*2#gRozouA$^8Rn#p)X7#ss1L_Yw zYP?a4$4r7RAfE53$jkBT+CPAp_bj1iyLz-QvJ*PtjO&F;OEsPnHAl9|UQ5&_XjP%y z@cMW&tw!!Bee6?xm>a%U$J$sIbXA;h78Q!qQD7Mvu7D74G}l-`2c|pi#`^mrac#agp9N9WT!E#i9a?hNLkU~+XPxy;fJ`upNbIcUq@C&CuXh$mK) z>ziU&&LySxWmT2f_BSQs2@KY@3wJKKcU9=+HXSvkMTvkr^YZfB!3gGT@Fd7`Ngkn* z88g`9jQ)fy`d+=2pUIseb@}ZQm^IecYGKJkR!as)cm1NH5qfPkFIgO_ZXjW`5Z#ZF zay{FX9{Ds93KAibntIr;%j0FMle1oHA;{{bk5no(V{vIRuQ6(rvbMy@R8*B~g{|ef z&48)%T??<-H}D64#yxDUm6h{}2m%|QQBN&HE4d${D}Fgv-Fo9X zYWhP!k%<%S%UCCtHRTLcx3ACqT2fY7&zN1qdEWPhh3O`Gaurg74&TVvDZUD6kLgt! zzi?Ud5N1y$e<}L`?J0lU8NEq3k2uoQyM5X)-6)MMrXePV-jq6Skzkr?a?ZsRW1GX9bZW{QY1<96 z`m4EP_wCVL1glzlO|9`+MGD1Rqejvr`0H5g`t&A1=6_g|jKr*(9yKm4$*!V8xqVLoJSquFv%L zvUy2S4=hQn6}sdw;*KKos-WNIV@M>={rmSlHR5zxPryy6_Q7glvx7Ks#i7k3`zLkK zcm{q%#|d*&B2DhT?uP5LQ7k$Zzr^8_cTV2_oN*UQeNfuglcecU<1(N{IJIYq>)=^p z9Qojxezy%AhGCLppIvC3^6Jg+3nm;jo=B2xv0}ZZA0AoyI)?{x3kAL)cj~I#y=L7_ z>fqIlG=9O4p1furk0W+4kM;IJ^_eONmZ;y|I`57UP@M*}TEpBW?o%is&>P}=2I0GzUtUWS7W1kzR!C^%yTZ$^LM|w-b*^4qSV;XmX0fy!bW^3- zi@jwtK65tDZ!`uZ0g_cy`yl;+2f5zLRa8{89>3}lJch{1>bNnqFxV|*xBanD0zW)g zg{!rmRLD(}6Vbs|RuagcM@OH^y*|Hjq{>%AG9|x&)nMnWzb!E@L|uQA@BLu9tO8e2 znlKF`cyODFtbMpRY6%@FCE-myC6Xjib>pj5^&9-w?9?7{1XZmy@UF%m#+vs%UWtvQ zr3E!Lok#E$)}6hP#FnVZ>|+*3Rm=ZrphDeHjHxnR~bZ(_~fH23|Zc1Jn|@(nMBf zH0>PlhvW(s|28AWdKPorGlG@^E_kQ*@tt(mkK$9nsU(&Q>?hWHY#)=TG~_ zP-bCafvG!8&*d@M`cePUfwHkz=PVgyRy(8QlbBg{Hp7${h5B{6}`soYtyHh+lTX-YxtT| zeaTQqXR8cnyb~;*ksSVMB8nj>Cu3*fTpgBNmilIlP zlsevcprhnwj+nyYl*54I_L+m2XzA+c-#2ic?n8Mm;!P^5K2g0@98AmQ_=|l9up0iO zQy{K9bBeU%dGUGAh+)WI6c!|zktNl|@=ic*uZI6z24&@0IqFXH!-=*Q^mtJQIV8-F z_$~}3FFl+iwm`d9jPmRXYJF&hUILNSk4PJ&bK+I2NK5(W=j>R+BVruXZ|IGpALX(w6WapxbajUj~he`EO z9A#c)oBXJEX7=P+{Y+=4h3v`mNqAshoLx1k)7R?g#}lJv-7oX>I5sV{Ca7af)-Ab8V}MBGCKqZ66uAm zCvJQDqJuB_G+1HQSakhoClbQh6bubfMC96_pAxk_qo{6rXn#`^CMM*Q5P7i=x(q&j-|QUDo~71^Bh9MqZH8CAl{iRIJW)qCl2FJC z!?zochB2}%{I!dB`QQy;^q zpP34zq@;c(B~a~7?Gfe5#&&8FH`znu* zFFC`w@oX(&M%;&}q6V*&H|v^Y5c4hI0N?;qN=r@}7LXZl?_>?<<#IH9{zIPBO}qTu zD$*C@fD}p6OcAf3BBMr2E#0)OWR+^z$mE77(iu?{W-<0xrM3YS2*F_qEOVQ?it7J%% zi^avG$2D*o?a}4p1M)Y*hD>tPD{ZTHi=WrJ-R*{Va2zCZkwy_=aY5!zc?xnP4NN@z zMV2A+Wkw|4-+z^&;j?`mHNS)>H3)Zu6)S2HKFRuVH5uFs z3Oi7OlTP0!@Uci5>Ptb%S9|tp%NiSB^jq>9LXv95bD9Q_n-M>9^sn>`#buKugy&fs zP&qlWhdxHTQZ`KaO1PI67JSxHM!l9#ZM?Wr!u_B+&kOL6Ht@*<#dh=fv=2N;G{OEN;|w-!9k+@N6=usa41a;{(h%Zu(m78O z$<1X(HAT7rUJhw&YmrJej5(xZYD$|!`CK~@B~!L)#zDb?+mo=>lOvXaDl1opLEU_7 zF0dp9L!G{lt#_;JF{!GcB)vZp1SvfmOP)&^CsDFIo!OGllnvLlPUY)poL!r|c3LLLw)!#?{{Rl@+d1T@5*c1qN2oRbP%vvnBbn|Q zEYowqlNA^N8GMeNZz1%D4_DbHe-U(b+!8?U^o(ues08{$A@kdU{uO1l`JNiuuf8wM zsiy)HKCamGF==pqo>_3|QV)xZlBxAX2c~6j`~h=9=Uf{8exCXzP|o7)5wBnA1R}!I z+vEg6r1vdM}nIEtLB7t(LMgpczrW29unP1x54c*&%0EQxH zI~=V6U&%3y$u2G}72+JZq{WMuupa` z3F+&DW>G)*5RQcwciY=yUuv6Z9rts0bK~R!4Q(vJdK2=vbI8rtmprF{86HMBp{K3U z^M~mV1E#M{jygY^%%g?c4c0|{CkLp8hI9CCjT*X`s%hjr*K|~vHAgK)%zLv?);n2B zTI2Nq19(1(OmpER(%MYW1-1ewxkqJm(ATxqgI5Hu-2D^vWeAIvp3mHjjD!smofDNl zt5sOYin!tW!VbjF`w`We*&yRtCpUw*y}|5;cB5hOhJIe zE+{6xzaN$;?y#5_0_s@8y*ckLOS*4wlYh-IbaNzj-5L$1OHVEA?Ir$QjK*ep$CPuU zUiI(?Cp5rpflX)iIhis)N^|kz;_B+Ec6|DMF^|f@`uci8gmg@{Ky2rwJ##*GdTgqi zKT*EQ>uQY8^bha_`GEH>O2M-k_D10J7eSU_Y@U_u^4G?eNmwbEgx1|Xu6$(QA3&5l z>a5cCH7g?ePB=K4N!52^K zkvCYyf(@;em96!yAKkd2q-162O%|GSBy~smR#)a!f=%a#59iodQw$w`;F-<=luY*9 zy6lU?F=jTOp6$mheC17VpYkJxnc4x@@b@@soD&~$Rk5~iEjET%I^dkJ4u0tV{yh*N z-F1<`1g=+j29jq(~ z?Lk?2AFlolQ&Fe$+}A+E6z+RWN4HW|vdc61I5{wYO<}ep5Wx3-f?w$9egb3u*N%9s zHUod=0)Cq14{*-^+CBW2uZ#I^>6~y?uw|XPsdfKBB6tMey|{=g0P))x&9?tHA-Vt$ zjNUFf{NXAdPf!c1+}!+wF5p4UPx8*O?{ZMPcKy%Mzl}kV?RR$=Ys?wjI^~?neT8o~ zevJFh#Ry=!J{qv>FNO~|MRy&sP_XNy061%7Ge^Di0)s; z;O6%}kpZm&v8|KNHJT?*G6RC%=eys1^~Xc!9IkK4r?_1|LU+z&vv1ct6L+?~ywO=j zb+WrIrTAxq!do|fdG~*g=>BCi&Zq2-+DG$*R&(bXBks_{^t)@=9_;AbAFssE?PPRH zo%@sSm>}6^_e@nkfc^W9B;9o*1HaJcf8)^qIimX?K;{2xg{Ae+5#7Ix!582TfLFzU zt)P(rODF)t?XFvgzQgn-ew#dckY-iR@ZvYR&+YYRcF&A8HFa<>fK^n1E!O8Y(I0UB z0PeklF^J{&NL=_Q6yCL-e+^>)dxHD_OGDxRav1tE63qaK(>+`OxW)ey!Upr$2WlB|cCA^8W)7wg9()}^$4)j6)#v4XC@Am_ zk0{50WEPMu<1izSkB@g1ca>_W-ndbjn+pw(Q0sUaXz|A3;{z^Bql-~Cj~i@J?d_}s zpTi-97dDS0XY*|yGkkV8yLsCl{QLI8IVQ7Ds&Y2}r!V+Clh$PtF4htC*ouyW6Bm@TUjJJy?a&rvrX#&#;dN}w zsGRNdh62A!XE^3IIW2FVNl8?e6tW}-iiinuataAC^-APNr<`Ikd#tKDE+{I*Y55GC zGVyqlv-xx4DW=#h6}9k}NpG4tE$^v!cqpA6_NMK_R@!NRYM74O7Qo?5n~#6Su9ekg zn++5jn>olYr@iPZHn%

TyWr?p=`MjVJCa_4{4@Bi1=k=>Qzsyb*F4f6h`Pv`M? zm2b0GczHW5>2EX40hlxdqQQCR(W6Jo%B^`%J3Bi8hxuvat5)*{lo6nx;mTZh-scr| zpxWsb_4M?ttgL=-xnC=*47!*V=6!JVxc`1JeR0&p8>*2a?r(3QsL0)4g#Fsv`4vm-CAZ`LnXIH)!k78h@>qc!LiT~zS0P@M35H>1xt-&{Uv&)$#z+r3tc zqq&!-rl!U|Lb(CmG)X)W?|2LaA76ERZ9`0#g^pV2OUb4BwDsVNz1zc2qtObe_nj$K zh#3vqf_?_vqcsb#m$~*mZQ16^@VUb7K_$)T+<(on^Rhhw=WTT05|e$~>v>Rj{E+5g z1GJz$(DU=^24&SS*d?{hXG&*%Z9(znfDNsoAcMotex#OAf8gw}!*dmZ`aDNRVL4ku z?M9T`rbmMb$M#p#g!uU2aXn=17^vJ{mh5kk+sX=}S8!V6M_Mn-49Ddr^ zI4woop>C}Ut}9n|O|o|0N>!c$(^fjVLlX37@7bVKn!2y{1P5ZomI#@LUC*iD#EPSSSD1qXTZj8&rbr>tUdDy-5Cu2mk;<%CwBw!V z1l8+CkCKwORTB8R%*%mwa;<)fF7-fp(_E?G{SVe!;OoaMsMO+uR~hn$N-B>zwv=Vp|*!6FBISlbcJ_6CX}oww;8xBqR?dA2V1W=SNIg96@b=J3zbA z8EC(?5z#m{B~9CkI!sT`Kpj@ygdn#_g0ZdRS8?M71^EIpG=yg0KKR(Oz4PM~A>VC% zt8_W9*;Cu)Q&Sv{@7?Y_olrM1p*qHew|ri#i(1m-YN23pXcvc6>A+Ev!b8syHwS%$ zNB0*ZT3bVQW4~av&Du0S2lcBGsEWp9TOe2wM$Y#uUx_uc1wThL<+9n1RlDB|N!X9s z(Q2K#Gm{}jK+-nbAfpsv=`}MwJ!9wom?43WRewZl1YsYAWwfMZl>2RrS8h&5tbIp-1^*u~ixk zg1121+1vsXE329FfeB+Z);Z)!ZH>!U=MXDLOXMdJq|1V&B7h)YTB1#hBhykpGOY3Y zwT>%VuY8WJ6mIQ_W!|NFuvXdO((7g2!gH5K>g~ZSg>hfGQoCA{aG8#2zDbZ;bXkRY ziI@qjD#~}kfjX%%n!?7PQe}In3MMzPjy^MQ#fG3fXO#U5K+qAq0vvrB?2+^gm5xR( zLxbmQjEZZD;BUDNA1tqLoINw&Cb!%yOv4Qil2awxM4%pp(~Tn}uVJ)|nNv4IZ38w2Rcii+tdrdqg{zo-bc zJ;!pe1*4}1g^QU?^3=s4Bg*rBs1?$ebKp@zQyd3Nk+KaVTo+dE^ zn5iSQSS1hCNR10%K-P#(^ngz5L|NXL(z^YQ=f=K592}Ou6v%_haH;E@a+IWwXn01I z$1cs#ys@$$MI|=M!_D%ZH@ve_qb110CHx&S@H46Z4^3wo7UdgleHBF-X^|G`4(U+o z?r!PsE@_eO29b^#y1Tn`h=HNIdx-P=&-)%e!^ObNeLs7zz4mW$F};3es9aoHs$FlR zrR{&qzb40{%0YB6Q}zn1)pGKU03~o!Tg-IM;pvdb&S(9(N?&2`VuS^?M2FoY@n)^# zVh-VJi~0SZC^+i#X~%@Sc^F`lC1-MJkwt_L7xj&2@ee$g>$SMi$TDXIVMl|3vE_dZ z0^-u^!+HPX!!;k5?L1hP_ynk{fYv>teJ zeKzWNsZJO-;Nr}Fxw}{4W+vnN+C{VG`(5pR@-`BB+tlLDjp+*UJGEBO;j`bvxiEi$ z$2H9`_}!Lz(oAGb&n(~eHt*c}-HgMMDfK+%pU7H$_G?QDk_z5EHR+mboPv{2yh$O? zK^gNP-I|;k|F-Qu8D?JR{?^bxlkFuS@1FU21D3VNu@`SA)fz{+Q8?7$VFQwsOUvZ- z09T=S^?YHV$L{04x-%c+f9)U~MnJIh0y&fy_C22s1(KgOY$P<+z=hzP)uwX>VW09E z@2mK;)=MIN$L+^=91Ml(_}mS*<&ee4h!(D=+Y0p<8|PJ-WL=(A1^?5~uM7I@yDJ5* zOvkHhcO5hxmt}J~zNca^f^DZE$}(U*nao}xrMAO+pvhGQQHT?;w<)w<;*H>sfze>M zH0|f>Cxzgcj?I;ObUa&> z66#q5OWI}p$Zr01#mQ2u)A30|yU9K;&4LNXea5Hd=aV%u&GWlxSbrGT^5sQ*L;F?! z*}%LieiE)}&(bV(uEA9T4!X5R=P-hw4BgPt9^rR9e62_qw7!{5r-Oa8mXH`2&uZ~| zn8{gnx&#f0rm`1!J=8Y;N5HtafM!E)qHmaV>H(9C?OMbDE-o(cJOQ|F)qroRsG*^$ z$rPvvGq~&tA=CngTLm)RWwo~On+HOU!nwKn2KVyiN+V#*jY=?Dk;5iKnbkiw|V<3F582Q2-UsSDN>l~~U91{-kJ zlKTfzOO|2`Z>_-RzgUzUDZv>N(AvUS4kTR+uTJ z$vGf(><Oo7YfRO-@P)@gz-#f|lz^x(Qis)zsDbj32H5B!^KbE^aWB zxVdK2%@G7geGVau*TDgCK7<#C+IttgYBV0)!Ej8Cjh*GYP{P(OYZMwr4cj*oLp^j_ z91nIhV^1qA++ke;;zHu0%*SkyF28_g@?ODCrW2AQE#d* zd&NBS5&Et>S%9$BMrV;{0r;AiN0+klFh)6?1>h<|lQ=y~Y#=bRO~uIYFfiH&KqX6! zmMS_r@Ifw)LWMFgsb)BrJ%rEdToO^?B>hG~ufb1bNoF&jDq<$>1O7toSgoZiWyia< z`FXc94$QFIxW1rWC$uV4O==0j^l0I7A(%pjptZW*@hrfFW!;ATf(JZUgx<&?vV_)J z-=3VwbGsfSdOGh0Q}GJ3u*f=VzUQ`E%8Ya#51ykCgqftm;6j2QJyeKvb$a;MVPr_8 zaOUsqJP4T2V7^D1U~0g>jVh(7q-3->XK!nX&cPMQ#n_qmDaN{mZ9_}KgwpL1r6n5J zV`#{C_4I_CodH3T9{bY?(|p9nPtX^i7jjC^xiW(^{1~v0&22V9yWpzVCCL5Md2F@E z(Zc@R7{WAa#u0&!p-aYnIJq&l*^6A9h7L^>ds~p7-Ea$!DBx>ZZjc@WcBhe7IgQXH^K)E z!E@#}lNOb9+?kj7n=&i8$^!H z+}UXDG5I2efb-`3{2dnTV&jC|jN0ZtAv zFEU(}s(`9bOiXWe6)=p!JY*J=1P4*DYq}KBFXOuy`a-#{ly>ilN7xfi9>bETj&M%k zcs-SZS^^$pa9{Vk0dJ%Yo;lW<=j#gZ)yH?25fKsd6>DdQ2CJ1n``S*uZuw{2tLEqH z{hvq86M8rV~2qw<8m6d!_ErYuU->t(Ly0I1@VTMP6I6A0&YKUZ1Dt zqV&>S?>tPH@LthZZok8SuUcy+`}u!^QFGsj{UHno}Rd6 zg_nIXjqGJsfqXD4&U0oZ?$h|?j^1sRj?R+zG>oO$!;KGNLQ9*dAOFwAbl`0VEOJ4= z#==8f&t>VV!td;2!Ovp-ZfA~QTv~xqU`0p(Sg~tqENT!IU?a?Ysqlww?989A_`FnI z?L%at=1}LUZSw_81z9Dd!sdUpqp<`Ae79{cJ`1*(Hbj23CYe1PpyqOmsUwbRNG?lW zh{4qyroqjLf3va2cfMeVzJ}gao_{l6xsZaw==u__*|=pyA#;|_HSirAX`=e~r5de( zCz$a0hXH#dfu@$$eYAV))BQxpL6H9wY>PFRq}{ZL5q-cbn^aX57sDw;Fx;W|s!+#| zquTKf&H04aykLMNF#Zd&cY2V7?5F=4w6i!m5>mIMor#PTG(T}^8h+v?-C$wV?P3xmFL4xoET1Cn%kzCX+Bt!Td(D3R z(ha@Lhj8=VwmL&EvxNzpT=4MmgB6fetP8UpA1seaNE)7YZh${7?SAyk($J_F3`WTj z0V?YI_O(h>{(+**Ru>O1Y3cY%2_p6&2gUWNft-(?y5z)D@&+ZbQY`$QmYVT1us&BY z*eeM&u|DGo0pbt%BQpy8u6G4!30OjOAymg_2E!scX5B^ul?Ui+=%}8lOh)@pFA#pr zyGAhkG1>K0F@a37iB5ck$w)QRt^USa8j4P{fS3X*3X>iQ^ne0p)Zpq`8(O$2@&|Gv zq{?sjNKAq!tMO%9jl&0h2YR29PSbcf%)uwPa!KY}yDu5E?%>mvCg%fh=x*k%E~tH{ zh*HGe+z5y#bAHsseZKgkQd&x{PHyT18f&2nQg*b}@y>9m=i=f*m&MrK_T<{$NmoNB zzPi3mVKOKjr}-Eq`S0RS!qPc1se;|BlFpC%DfPH4RER-F$4he;cNP9mEve$OudoUA znrlVFKhyT?QT~-D5hyLGt9n#Wf}<$}#YnyS^5$r{f~l;= z+?<6;>oen~gPO#ap(g5|*m_*4m>36iJL^iMoW{{At3kNP9gBXgA|fv?eh40mYT70Z zJ+ZIUUDbt(g-l-FKXr>gf+w-r*+P7L^DEOEYQyU~vE*!QQ)ft>rt7qynYDBi4Yf#j zceAtf)859L%E+wTmd5MYL%@;mkv|0-9WnkUG#}3n3NCq~saQgnI{Q?0_Kx(}bVQnD zVnY1iq8F{l;_B}dhT-Hq&S7Kj5$2$P2EEp^MMlwgqTjnc?{9|ZtXu_;-fA`>Clg}h z(I|{0ykAjf0E zNXj#1`}c^5u80D&y0r~U96;L`fXyN(OSnOr_)=GSmcD`lzCUin{K-7MzQvRl?dxduF2SHj&LXcxr_2;vX)m%oSemA-W zCm84Fh`c<3%-hbk7hI4K(`7w92{g9FB#-d8bk624jU3~R$RK}?tJ3w#pl}_<)SLwC zQ!EUUi&gZbSi_Zi)0!K!3tT1>eK3Sr(Cy#nqaV>d*w9*|w%VMEx!Hq68O#whP7bX+ z3PC=3y+AR_L+$H2>!nL*GkJI7#=n35@ac|HDP%FRh%>MKzLb>ZNONJz;m&I94!bC; z6V}has-nzjCJi?!~wNLp}-fuGU9^>ux%3!wKWsH57Fk{VS)-R+Qc)o6F z5c%u$P%-H$8c`bseN&>vUc50jbVD=lLSK z`X5@61~Z+c_eqr=Kg~#U_rD;kH7hE8#b)xcv1>_mz3z6;LjfxN=bb}-0s@{1>f%rZ zAGb@r9FM7z-|dZxFLY=>g#6b~sPrE?ISksw%5+h}SUzz4zFqZSBXK_hep4t<2bZ=4 z8D@}jQ+7o|9f1Gp>+kKn4oaAsO28(ZzYM*$-ezM=IZqtTU4l&SZBoFk@Rg+ZdJ8-!6Vgw3_(R0H}D~D=yso*pC4j4FIcX( zOGaSjAppc8i2?C*EHn!vNf@uea?OMZ`+oNOXxCQR!m0T~Q1{QHjrvC9&`B%!11uL7 zDqe<_9H03a=RIAXtI=B%TV2}N#LUOD9?X4WDecdcpF_yV`DZJ0n+ob$T4?C$KeJI_ zQL{L){#fhGcyHDx7O~~1r);D? zfLh8XK3%-(fo-|@FBN7Kn+wsZVT}xkQMe1kG^HM3?9sdy6W|^83}pNMpd5$vfqsS2 zAOrhr1yUWRe1BKhcU2T0%I9w18q*oXtT$CAj#VxXBPcwa0+AHR^jR(s{2Mx4-vc_I z;uw2+DDMiCnY95cw&|_@cCxLN)%WGkF$E0jbLvB~j=pbyxp(a9)gw+`6$uN`*u7Q$ zCz4#}?(z?<(=)8$jDKrqYp-y(LaR=h`By?6CWf?b=;72IBZD3vCucsjRvvy&8)EISw)~VV#sh+2LKp*ZL1HU-sfCyCG-BJKCZ?T-BiGI;jyw25{%mh<7QsLc ztsOMSp{Zc;BkKRcQIp;;fam_c{X-NGrq`-r1}ot(cehy%ymZ*^NmsM>goz~$QxRX4 zetWRT-zXs$*?2`&)6~@G`iS66D4r0K(ZdsWBJil}gCb<0!JWhJ9*vvoNEjU3sCj9F z0Mbi|k8gGC;qyeBu=n;3t1aG6EOE6~C#h^&qBz@JK6lI~%GTme6OqFxzRdeFJGW4l zlu|uXS^lS{h}19egc86t(sw;_FV=cwv-b*GC=~=FUaF1bet)K>q8gTmVBs>Ub&!u1 zhkutppZB_5fu0dUP;&XL?YItUd3kG;O3#_BH7W#rW)IYVC}tlZ`m>2Yc2Nfka?Uz<{x z^}v_LhgV3;jYQ~_e1*@?uW@s)t~gb3Od#`PLP3%kL$n9h%n*J942&n1hCgRNR_kc#Fmq3BY(13bU8;~4Nv z`!N}(9{8|pVQfq~QHB)HI@!c3X`~A_h5B{%(m5d>2lUQTy%Yv*!GGGY_Y!eX5ZmmZ zwn>uyD%VCE5bGM!mxumzv4RJ;NjX0c*NEX>sb^L|&&SNP(y!y0v0z=G!?X3+Js<`- z@d~iJoym@L^GaRRcW)#-Kxw$zpPVa@%u~e&z_Zu*1o_4GLqoEXkufJkoH2je4nWPjxq%ew`>uZjXvpOjeGofM9Px9b%w0_QJRuy2cN|Dp(cBS4q zjF^#x&k6UW$dhEJDU)>o7BkO0&f|6Tb}O0JwrPa1o&IC>wDVJ_j(t}jp{1pCtE!3w zEGH00ItqE003V-#srSP_6RGok4*8{k>})9IK=eo*du1+g?&ulW!<}k=9u-9=srl|t zC)p7=9(1Qi5iKw%@J*l9E!<=Z`wQ{%dUgfg1DIBIe(d{5ZOC68x!;Aa^edl-ILhZl zZ3Kp@aPX}3p&_U#^)^rotpE*09i0jtK}ufFgGlY6;BLycVCUT}I%LIu_jvA<5XIDm zGreGE>EW&Cb=$P>QHptW&Pi%kTAF6!4@+Nn>RgJwPI}Dc&IJ$o%7!D-0GZ z?U)Ye#L4eIZ?}X`<)f7%io5SbglM)^%bMok=hPqz?@q$EBv4Esw)Pj>wkMT1jAM{1_Q@oFw%(wOS*oQw=>uMdr{I

BhZ&vypt)F^C9KtWjV-isnIMw>xy|F{zJG~RYYA$oe*wtPcd zBJ&plTR1pk^mCWbk(BhDQ{wM4KVZU9CBkIm2w-4u*vqpe`*eh&Qx6pBd2j2k46i`| zP61D3cmCALin*ZkNqM{T)&7&0mDSTI?5y=Y$AYer0SPJbc*YCAHW^Idr!wZF z%lKO7#Rcltu1urru8LA-6xH))vR?;pmr9v|fq~uOp$5apGoEMP4?uFkm5`M`K1tjU|EG*@?%R+*m>~{f% zKf@+PS$v^3NckO1wD09U;>SY@5Q)f0jP;D@ zE*ABp1tTFVom+ID*T*7*dR?+~8$kXc4m`O`Ueq9MUpfV;Of__UA=|*s4=jDR7FJff zfBO39xMM~cD_R(ta3ZGVuGrHF)ls%yKOi97g_}8BfwuPd(|T8zhtOJEy+_|rl3v0~ zH;s5c=EhHYy<_%$Z3QQ9#>fA)l18%8Q*gK#^B|-=Ffa&(AAabcCNa zHf0f2IpJ)cQP%;|@U*z(VGT#TN?RggVV`l}p&v+TLm^T9xz%55KAb04l%3U9agT5hg6E7AkQH+@eDy%;XGRm#G+{htGrh@WO1|z5WoB&^tqauk-OX(-wxwnULz76ve_-Y2F&A+Z+=^Q_OEFOJ0?nj~!RZjJ!P z9ZI($v%*pC!rJLXQwj*WL-NnT!PB&Yk@#3rQLrW1j%yqQ2`-Xjk}#v>78p zI>J&O7O#a`(OQ$vX`sDTm1eK=fQ7kLV$I3cw-pXzz96koIrLQ!0YYVF09k}nYt zjqu~Wsyqwht;B-2#)q8wWNamZx%I2jHg5ZyqrX(jHg;)@;51a^lnJtrj0?tPAHO30 zd5N1(CY)PbHaslRt77%O0e3K}e@Kx}Z;*6(JmUSwuHoc8yJ7i$At{zbt01gvhHYBx zEllPi0TEq$uh$DqZGa12YR^xI4cx)?-{&-R&nVAb#1g=l^=p082*RUFISewdh-KD) z$GjF0!P2}(Aoh_Vk2YH^+%Ogwb7bt{hu}0gCo7uJ=zS7;Y{!X__GDO;Ta5En;<=euYf@@Cik_am=y_h@o#f9 z0Gf=>qdj5z4|vpoRoeTF`nkZ)VYhPHu_334cGY+I^j0x+n}&SD4cQAr=CVCQJ8|G` z?^*1gp}-xZKN^2y6kI&GQXc5%a>X1Opiq%+F+oIen(;l2#cxAr-DeC5B}ICyfzn>W z@^X`i3R8JxMeP?&ld49k6I_{INon%mO<}#?*?V!zH>)k|o0V79;flxS(kX~o_h|4&3$c(AyklIUq*WiOD;|E^i zzTY(}hF&R|MHd9G2h#9p5Oz-mc@4R}@o^rmQC7$)#pJ^C9J;QF%@W?JF4m>Cy6{f~ z@9~UHky!kSc{P!u2=qbBI+5v;iMzGzz$ z52Q6V&cCOw*MMtXE9I4Xz+cMFEj-2VDQ}s80pGWmUXk+8ItbEB{cv){m?3ADp=;hh z9L?2LHv>h`-~ajBiQZG*;GDU(w!p)O8gTQ#2QVEF8P)H`S>FB(%sZ*_ZK^B}x{h_H z3?LL75X)_yfboXqnO{l^9MCfY;Wueu8O2fPBV?JVq1< z8U#WOPOchsFRm>G3>Y6SW_Nyk_}IRDa#(sg(y{fR=`~$Jt1X1jkuFGG|Hh$e*S>%V z$u2AQ>ep{NnR?FF9U5N{6V9(#hxj?OwGW)^`ye4eitZYPXQ{BPYMeXC;Ok4f>+hd) zDXP&UU-tC2kG-VzGR@!iSb!AX0gQ^RJKZNiYGdBI z%eeJAaa&*f!K7eAZBI+<-l4CEY{!7z7fe2-BBVu#AJzEc5n98Bg7G2!iV@c zyJ_xTk3T=>o~_@#xM?B+6Y`lR$t9HW#)^*1^Qr*N3%OdIQ$=yxj)YCo@2;d76S?A5 z$Z;V@#fbr6HC$;mTzH@(8BpRq-RiK6x9rEPW6c?$dxncvb5k>4UN;%1GdP*!H! zvM;Cjn!ezA{KI9OLA{m8(<=(}^ zq$Y`g5$vA(DnIYIAu|Ynie4*|_ON%i4G?wWf%d;irX(3@b8~6VN>n&%Cu=r?GECjp zF@b>`q$!x~53XZwu#wlQomSDtB6slX;ymn9taTTQ)>$P4-T7}6R`(tg0Pl|=Rmpib zxZ76D6lSF=7nyLyVD^su__y298=|;5m(u+fhc_pOJ1> z^StPvibf9-ZB?y?h-{lxE zFo9lzL?9yAKufFrw*0-#)9&|Rl~!KjVn6id@lP+s%kABCADy@LgPp8a@L8v{lEw!c zlAN2hl=Hk=HbaT6?MP(Y5*d_+nFt7-Oq_Upm>J3*V!;QwM~Mi9N`HXv&#$A|tJgzY z!fTmB2bY(iaW2oPmGLw#YpaPhyKAqk_PN&6)mX8o1u@^f(~WWDp`w!P=dI7#MfEWi zo-k(M&)@FuzX*BMVs<2U;(~K1fe}cD;4d@eu`Ezq0u6|!5#}r#jY*ikCHp4$J&>6p z{cEp|RY`ODm3SM;{9M?>wQ*T$3DI&0eZep4LiVXK3DE;T-*l!xiTL6simI;r z+J5=kh?_as$is;dpvBXr!|Hm$Z*Yd4BEDWWXS%Jm-LQ5JujbEq-0~Q(vMm~Vq&GPo z@ZCr~hXp+@pti(7%5f+}GoDa(mUnusIjo2b*VOSH7^Ssgq+yfh zULV1J`YvRKV+EtOWOE=A>{ae%906)kf?Ar=^TL|RRLUiqGJ6UL+`B7Ead;C;B*Tlo z_+!u8)h4Bsh6`Fp*-*{1FOhTrp(P>e))xvXV|n+P$N7)x^b$tyZMG+YI{Vzq0wfrFX>+CRjfe2hvT;7`c`^iom#qs#MzW<-kVwDt&?+AX}hg0 zzb8fA&@+bMYT%!_;PsAlE7@m3>5z2> z4A_REEx!MO>tJjQqL0&GD5yZ|F-si%NDCakwr!OVlv2jSWe^e0Qd{9r@Ul$_o$FKN z;~aOKFAhEv4J^b3#FB}PlbiC(KFvJ`eJVeL(rq(neK3q{ZU|J?r%x|)#>lnAdHl2Q zM2o}Rk+}cDLtu8QFJ2x?Bp4+~^*iMR zBWmZqTW%RtK$thsilIB-c^eLKaCLi~-stx3jD0ftHl>*v(ivHyAjvS1mgwOk0Ci1} zb*ATz$ixDqgP1Tot728!@A`)$z>cI%4xRd}KFSc>_NtlSO<14jtI>{BJ8c9dTA*Od zCUW+nB%V{TPcspnLn^U-{H|jrZ*zSlm>lw>#j`jed3KHGDTOH#{QN!=giM;sl*U>F zBg`Eb?cJdPM!df{c=Z%SRP)T_iY)K%iV0BjtWC}-=yHQ)=Ls}{Jm7Gkl!K4J@ul%pU{B)LJLWxbN@WJO`(V9ZY z9gW{gK_A%YkX}dmyq9L(R2EiREhH-Fp)EQ^6D#_CT##HpVdz_jycyJA_}ja$pIpuo z2D>X4oYV<`ZoJoD2Bq45XMqF+E{>BLVT17syL(U_Jplt3%Jm_v~5E`^|s_NVc40nJ~2>~KH}H)rSl-X~r?^zrHi-^rv|{h8=3gIcbR3)^hkSm=9W7+8}H z!8C;WD-I|ov>+89Q8i|TbR}T)>+6uhrx`Qr*f{^qPko9gtrL5ZlrFsbGgBY67YHTz&k zT>X%}&DeAVm^qdPD5J&+<%rqbp$U?Dho`Nbl=hZfywH0jFEF3Hm>^y=7EfOA|IqkPs}myE}s< zcpwnmgF|q4mmxR=w*(v9f=h58+$~seAKcyTPLgxZ_pW=tzqetnUbCuYcXw6q-d$Bs zZQc||&~LAVg5<%fT~Fr`=XX0%`fasUy~uhC$=(T?PzhiWuWu6h-YttcX#}eHg1hyz z&@Jpmeh#B%v5+ch>7YAPNL$_q9re=*jXvvJuRoh~08sj~Gp=PcaM!?c{@FTDFVp^) z<@BALTzi#PM>SIW*v^LQ^#!^f-E_zvN%zp26B~rI01x23TB2aUGBn`@H2x-A_XOvzR`y|FR!HL*lwK6F%^m{uFPzl*+ZlF2tNyc z+!6+!4aAi{9h7H2roZbv#TJG#uCiD)I=p%os7IE+?d2=P`vUOp9W=lL@Dm1m7_jlV zy<_c3fSYH*hxhtSX%qM0TYx+zhWFO-E24rq#F+WquM@Q4AZ-Q81HA=|RCVACj&?qU zo{@nX<6vrhexNlpK;N0b^@?zfwlBZu)%bTwbh~AwtEJET0s7!k9;P?e-gH~C%=u93 zUzZt^VYT-xWbTKSX~~5a=BeU4H0PKASJ4FS6Fw$YpcO)OS&LWjq+Zq>XSX~_ z`OkZ@aRZXa8%?i}cJlaWl=$lkKSpH?Kn^^~zWB(Vfo5JyO@bljZ2T!Jt>#FNL+@vP z8ZEV^By7g`exE@5QuNvmj&K_!{*G zpCftY$q27|qzPgw&eOtCTNJ)APZ;fh2c)k8Pxn(o25xcRE?@#~U4@*|2gFe_css11 zD1W_ga7Kg7bE7d&C$iNJ-<&Z;fG%uvzU*?NdMUeyr#R}$e~&b&AYz>7>tZaoKe&9+ z!|@BoY^Q_P6&fIfM7C8MAK*&6h-6S9#bgZr6O7JYzw1H5QqBuvKFen#N~! z6_Q5}7MM>zdo{1^LUHIGY9{on^RNS-~i@-;3&`Z#|AaF>VqyXqgYqtiPRwMuyF z4ShLheBRpa!3PYTqYZ>VqUlz!W1qt=r;lsDjCbr)Xp-6Pvj`(b9F_;e|MJ;?v!x2j z3lF-FBNAqfgu`OV1K!4*XExeCpTzh|G0QXSS>1+C-`v4BU=tSE&oO`BQkY(gF5p%_ z!C5Xgb+58to)rF9r1l`2*qCFoc?nVz9>ZwDiXXnscD*Cmr+Yk~{guE#Zr#2K=yGWRWg{MbEv+kI+yfYp` zoYVZeiAbc*_BL0yjDDs{Gc49LbDDka1!-yAHm!lLOg#P4J6wltf}ySGEI(F6@SC9E z0pPa{HbqLzujm7{zw#pho*xGEeeNI;r~|lwv50m6nf`Z08c!`S4ncnsZvoeIFQHeWmV_Ol-gXSO0G!|omzZD*}1q6>}V0#^v5Wc`sgWV2!%gW?vD zug0;Wot{;Tl9RMFYc!bhVmv=~p(X*}=lsG?r!gezj@Uo4VT6D8Vg1ix))W`e=DYFA z()jiR@cQwZoyaop8-%t_wWt8VZ{!&=DFx0Y{8TmZUmR%lP<;OPm{1%6IyoNc^0>bc*fl&yWP2fqqJ=Tu)#`H?{q034Dj0G9TAAD7@lkwbSxl>{yi)-f|RsfaRzn%DQ8%+1l~9hxJ+kH>&p# zLo5gvrFVP6f!?R>nsu&Uj5q_dv@xHkiZENgrEa2IKu{-OE_#Nh*CTR%Z22Sh^A zhpgveGJQ!ZBqhIH;UU@1XAhp%P+s?IXfOA0i2GK~;vX)*tx{0&cQ!(9(AOPajM5~P zVyvOxpw5rf_|$8oloX~bl0_POkn*jw`@3*ZI}PXa8l+w$s=Y?=Cg^tJrDIyDY`Y7f zw}!nDF_0D?(B^5FjovA|X;8Qk;F)xl98+W%{iV5&r1s>furV&euOaTw0RSEouvf=r;@&W&RqClVWkHr4gQvPn&0imL0hn^^%3U$&U7^8J*PW-*@x@6iM`C0-q1^;^?18mX~VZ5ca+xd7?5*bsnj2 z(L@}#u}Y25OH3sgV(i!HQh*!noZKUZca5FBmO>2|Qs)uGnlhNYta#hJ(fNJp!xI!V zeevn5xE+4PODM)VB=291d?@Iz?%fZ_2=(UvlOVKzbLh>%e?+9`Y!fCZa`v+tlXsV< zpU@9_m9X99b_PGp2=2@Z6hegd4ZHQ3e5~(n?r1BdH7{VgWlyo_K9pT;tX`L=r!S%W zVAWt6k9EM}l7_rZNMh3{0idI=cmtnLH*PK$c$z&udpXl|*32%{S=m;iHj$u;#BuCB z(4)A@{A?jH0`SudC2g&!I;h8{Pw3`|8CU7j%CU}{VaZfD9=`<~OehFKi^?ANQxJH= z(2v`DEAY^uPJAb)rd2K>%jt}wr(~pBGNag*=Kc6|h@LsBkVy_^&m0;Ar1uSNPRIzJ zRymRZ;uuez9895R0*~Zw1q~!W5ca3;>0Ux3skOKpDPY6RcKd0@tIy=v3Z?>3D<9^r z+%y+H#}`~ z;>etGUX9{~FBccNNPtNkxnCP+rt6=$`(glkWc}JALFW;34(16XxIY}g2k$H*KGxPSSPgkxZqVX27@f@GwM;z!kxq*c{yr?|z- ze&NY9ypc($DY_fF3oTNpJ5CA6I&)JN@l(l1yea z#C2_TXN*~mjO6LAV)TbU7fQw9Q-{Ncu+|bUhIC+{U@(l@=43&_fxi623M$1LyaOl8_@G{Hfkl4L* zT{PK><&Wz?^zWtTH27>b9Z3={EBnAKg_a9Pv$fc(`oKVImaQzqD;^zNMCOdh(tkhnx>ef2)~f(f+Z^W4vQ<6sY@GKnd#}I>zM@08KxtaSGq4dI zEPfABuN>m43g8U7Lc6Z2JVuB+8e%u`gjdgfBgI~16cVX__%Rk0^HuDPh4p^Hqke|a zefsFNknd^V?j(K8)m5F{%2De)@zcd5dUo_Ap&xvq_pR3pPX8b;sX%wErq%QfQKrxZ zW{ajpqvgFL=6CX-6vT-SECrE|o;_5q-SkIaT+b`k)Cywh?o|?ja|G`=_zTB1NrVdc z<5cW~cz6^!ke3=QEUoGBd#Yn8@h{BK-hNE_YDml9g9U*+9ekC{&|U3Q6$oRbWFUh3 zzP_&Sb(sfMg`R6GJa8UYY;uk9`yH-EiKp!(ESmm5gB45XJ$lqioY9#`fAFb<^qH5O= ziUY<}N4RrYgn?v>^lET?$0{S}D}4Bm0X#Gb-W6fAe=9j$nw%zDU{?BY<= zH%#SqJ%sV(;=#qeVhC+3@m_wz7YE<12IT+)cX^RB#A= zI^%6H+MSAJdF5~v#p4&|wX4{Ns$6jCp z!lJR}L06&PfD^+;X7A*v0%1W;etvEV83sIDq|U%TdP$)lho0!Po5&;Kq*pOQI)FL{HTdcbi}yfjF{)QU=qr`o;@4QNP1iunx^30Fh@jZ z^TGt9g7Yp|N|JAl6zT&?b;^<5-@8Vgx>=Kd9)Z9jB&@W%@`B+k+%L#f4r%h!vXoAh z4Z}dwB%GSk^RKyi#xm_HE=nond{422K*2~a11m>pJJ((iRh^*Lz`3AU+y9Tu+Nts{ z-d`xz9GYNC-e&J^SsiFx(Y5+LeJ7P-K|O+FMvH)hKJ3S32ZmeAV|b6ykD?JQr^+}Z zPrv+3v>=(_AHK(=49?POxz$6V@mu;xRPIn9fp?h^&g*IYp=w5706S-qhA?H67qq~W z+pbGu9`%_S;YQEvoeSOvNZv2HMAS<%`v?~$eU|mGVJObbp*`+zoEdyM+AOg6=Y@HV zdr^B?_L|&?{NR|E-@~*gaxqbfmhkVLW;>iyOyJydDriUns$`9PC4P=)w55AUL?h8Rgu6 zntR4ORru|@vgl%Ly?Je-tjJ4E)vw|xfWu<)Eh0F=?eL^d$4(NCue23o(aCsLqq5Sm zG}5u~00ih?Cfs=Qm$Lo`x9*tZrpOnTD8;&tn_Ud|usUX#_;D;yE7HyHJ_1$nIs)yv znY6uBqCbKH`bNBi+6uQDyR}#5vv418_S9y8>s#_LF#73BE%GRU0Tfo3Znwzs6Rdj+ z&KL~C6`T616Rc=@Sad{$b(0l$PI2ZT>fMHH%}1<7THd*-te1hPk?ap=Y)I|iCJ5CA z434k87fbJ78S9~fb2q!E3pnuyKG$1zb7$HiAbET*7>!gkLBgN)JE6RM_YiFebgxszl{nCZ(O zPuOAb{NvVrkPEvjow^YAdgskIQ<{cSaYN5w%c29qR8@EZGhe#lyV>*0XSo1SEIe99 zvEB2nK-uHjpnb9L7z5a=wwn1SJjjH4)f5`%iY}$(Db$~(Bd9JN4_Qy+iS&*#%!ob1FJkzt6482!j4x%9E5v5h!M^$duBPGX52xu_+J3NW!LJ3o z$}K4HyaMoT*LjG_L5)Oy zQAza}fQqC`6t4REDs6PNv2i7jMT@LhI*qqE5HOaU_P=WhDDp2f(ij2%gRAk`l?T z>0DOlhZMNg&SbJZ+RV0c4E1TFk}kAKVU#j~A_Oceho55r0#vLG_huj7!C9M`t6x=| zV3AS*8KqS#5Kjj0itT4T5&UyjX(6gtuz>FxkC<>;DJX{zmf5R$zo$ex02BaH-pjd9 zl0|3^XK&Ug8D`W9RB~6YhwfRPZAlkvd1wh!*b6l&pOOl=EOt++pG(jIx>(>v*9DDu zMrtT5F{s^Qib|gDX3S#0ku{sUNe!yRBKs;;IlsKM`Rfl&h$M9M`(D9X#^w_ z9DSQqP5S%`rSfeJ5`Zwy|8s?46tTm6#tYXU)x~AdkxV7iKRQ^B*YC{^XfDOR0(Vmc zm1{n)sK;*>3mZ|$V(V=wq96che-9W7j029JNGL2)I*)@vMRrKWb>q-c zIkm?{0yO5vZQ&TaE}`C{zZqv*Xn!Fm`rdU;p%ea+N<#ro)rjHl#>6Re}NwgQwR zqNL_V;UMM?)Ti?emXgLbl0n_02Ky!%H~=GO2Fno6?Y9HG*z!!$d&tnILc;w|b@c!} zxo3zpGKY9aoFy~OdYNOC!-r!5Tmj%tg|*1X=~WX|^C&;iz|U??2I6$D)gU}>tan&? z^YayMEbRI(d@~%Qc6^~*=X^6p5@g}rec4;lI~Eq4JNC0ko8reE_5WpeeV%#@L2rl^ z;UIkXJ}fkXPJ*d6WN*um2`O)h8v@UBS!{tEkUrD0^C{%*}NIH z%4Qmp=^3qZJUqY~7$){%h_vyo@f)yM#|QV$n?`4}4p|&8H`YSKex2cWb{(NiN8c6VwDQKt=7iU>0H zweir+{6l}hb8-BPr=zF0<&0t_Myc$l#5Uxkt$r7{oKJeMzeXFC#NwxFwAAFikeTnp zFHj;Rji%?sAzMArj{j%m@p$v6lcEAAyO!~P*!!d^Y;_aR#^!N7~ZzR$~iS#qgQplab zpz{@0)QsZ0s2D*M?sr^qTM2N%r%_yS46Tg4H)AhsDcCZ$EtnG1g^!60A0L>z$!T+# zJLDow;=>N=C|Fxg-l%Yc;Z$+C7q3u9a9Z$b67QMvgidmHvdDeF zAzz!{BWi2^`Z$WG*C}(Hv@gQViI)Cn(@YL>d#D+E?e&@H|40m0F-ZhmP?>`IlhHA% zGuBHeP!kmrtoB9$(nri53iDMgy0qTVjQ2glIb_3txsA%*+_Jf^^YO{U=(@!RbxZY= z*KYY*z78@0m~HcY1eMD<_E}#-&(t(u?z=$oQ*bZIFi}?{XHld#EAIrT3E#U2>+&C= zJ8GAlTxsaq@ktFV(YZu({0K)37(tlrRT-L(yDAL7~DNQdUc0#JkzJA@SzDJpqiy ztnIhHjc7cP5i}Y?Irm;N-t1U%Z@mz|(lvYych_t6wbA3T=aXwr(&4GzUIf073;hOz zp`D}@um9SnYEx0GgVln)T(cE(`8`}QKYfYO7joDaK4#NjL(AWp$L?rjgjwE1zLpR$ zh+rQJ2T^3te?z^EvjNf({7SC8;GxD%9N43>ABnMC7$FikI5T*Urb4_IO6IXTDK#5gTaAM8 zxh-hU^v*<`5Qi+>k&1~Y|rb%1Rn81MRTo`wQjgE>E2j=Q+xHV|>2ov*CSA&pfC_MiF7ZIOjz*< z8+i3&rQF#B4w=w63{!J2h+1Y3;%&B=*hx$-ZlkYd!mL_3k4v7VdV=?flci2m)p({}l#t7_rTbyC4`7mY5%tWV ztA@$WJ;cmF6)`a}8~{KR?4rhE&gK|jWW8}g{L$EE_a`R`+2ZC$H6!i#C`%?C(g{v{ z*+H2cv(rL;yX`p1{e8rc5P%-^$Y>Kh!MzPJT?bO${YzmFvp=jOe*-Q z4Vo9?u;t~^i>>YYNL#%YI{M)8)$st)_ZlY@t1=#ySstadvP0Jy?~V z4u+LPxzjQhT{L0R>cBt1sj(lm!5$G0c@HR`lAI&*%LK;(9%lhEMW&4z32 z8~r7meAH0a%5h)yYfj*ETt*2n<<~qu*%g~us;ni{0~Di=?z|R<$j#( zT*mm8i~%@A!^9kTUmY3SbrlSy|69bSJ;PhsAdexh&~2KpsHitlu2~8?S>j^3TQ+vK z-(GTyBlOsT8MY<-@^opa{v_yS28febX^&;E>+nb@@5)EDGpj%Ok(w$TL`9|StGvm* zRk>sbQjUK(NGCy8S3e}j{F6R{Rl)Iu^LbA|2ajj<{Rz|h!iZ2vUTEkr%%NMe28pMq z?_4t|0X~PTe_buLP6Yfh`$q8+z_YF7ZN0)D8C4qIX=2eFw@GEPd z1{gxxIvIqM806{#R%7pF-zvx6gXY z6VDKg|LSF+&8^~FS$>||g`di`Bl=iGD{T)JeHH0j?|HwuT#p;RrI^vIKA%RSFH{Iz zc>!~(42Fk+30>+mI;xpNo|f@37fH-F+ak-%Twa#!7%?!Q_$a-%YYt{%>1$h9YH8~m zx{MkbI7JMRoI7HYCth334ukzi<@7Z#Vd`=jn67G_|AMgT=$d}>%=Dru9zYZdOb)9) zkAR{Q)i0m{7VPT1(_sGT7z04*=8k?H2lNmiNs+L@a}Jv5Ro@M4;nJ}rM(#R^LJhMl zwzaaUuHi1xEYO{xE3s^{lQ&Z4B54Q%v7cP`+8M}!1F{*Ymi-{Mw-A4-w|9~lMfM&( z@y@O1>BslT$1$y6c6uXe6ze@02f}yWfHDg_q+d~f!AJqU0U$whQRt5?T1u7v*g4=L zvP_-wnvR~HK5L?Dr6!9d?)SmnZ|3X(uI&F;rT$-M`=iHgh|lo)0S-pj+fPrx>xG}! z_{&2^;`KK7lLi$D`KhUuE5|bvSG_4 z1cN6I+<4eA;63%wO{J=wcvhibiI!R1sM$-7Uoql}*rqCjYQ}Ac5=~bcTNwDK261V+ zQF#Q>snbUoAvf%=hI^}CWi%Apag)rTb-gO^YKwWuNkSSUJ)=g7{i+hK^6mlxRVJq)`BSx8q{aX9kpww-f_|F)b}|)hZ3K87sat zX9o}xj@8u@2XI4mb40>(pQL_$eb8|0%Vnasl8G@Q09<9)5GT>onaYxO4Xl z`jl44LfrmmMw*P!&D9jCUsAD2SjyLX^LLuvLyLOL+Kg@_q@;W;=I(B;sb4MMq{@>J z^UC4;W|C~+AFdJYC)feIDEZ;(t*n&l=X}VFie6q`l6S&=Dpd`SEgiR*HPU0tBw(z{ z$qOD-+I`TO=adV~FrUtv;ol4(2D)l@ndtmpm*s!`n!M{Hxi6+}c zwB*VB6w6XrIpT49vwxSg)A=HmL-&vLK+VDbh>`JXu}{=QbyY=8&Icvtsg?V^Q4`L% zM)+S|C35g6@-^6{^1Tgr!08rws0WA zQLa@!v#B|)%ywT)qz$1RMu)wTr^T|(;x{QCdNoNP6$?Du2_A1A9{$|3}sJJ#`p6z8x%nCI38!74YRf}Gm=LMgPVk*ArE$e9vz z>7oYdC+Dqda4p_5v0jNr%74nmnMA>VG;DPguy?!4n2St(KbqDWM~{}aaNu91P?b?V z-Dz~=u`n;N>Llm5-S+xZ9ye7wMX;iRe3@-2R|P&5;NvID=*AW&5HTZwl&thew4xk4 zOunXG>pMZ4*7xmST)Nw$!7R+>1{fc7>5fPv+r7ej7)Q(P+vS+Xti5D} z=7vCE{fX3LAV>O1;zk14GXgfzeGNFewt){vqB3=Hxn$AN@8)7?wOd@AYvmVk{-rAH z`KG?^R7$6N*%jR6=HuwUnaVxO%f&M@yO^f#F%Uu{CuM>W%;Zc~w8q5-ol5X`HkBCG zFG0JgBJuGjDQjvXZ1ZPT@5dC<+<80&ibdt&d)qb>)Z8uw?a){R->oKtz_-eJy+Q6H zeIEt%r|2#K0Az;-4+B54cJpUjcxa_hH7OO`o#PjMNf&S9 z_4QdF$ZXaB(yyc4YPm&%sM&g1vZT6*=vzk~8MV~v8FGz6j5;L9b<210DP<$?IX6Pl zRi3mZOW2Wb+xC^BC%X-v98~JkqZ7WP4zW1DX?_^*!KgfFOM&qq#9pQa1pOYj2crk$ zAMuZU9rAX5*Nm(Fpt{<;adU3^9G)$eDO&ykS#f6C9F11QJ8Uj!v4)j&EvNTm?zn`05K1|(U>MBaIZO_}Ys^)?a;yKE(11B@1sb8kUZWi2ENMh>o>tj>~LD+o-ho9L$quuqq z`*Pl*Su%JPeD$KgqS`0IG~dmQKzWjcouA)ohM)s&!KntRdNBZSHSc=X|3q(V!*BSy zx13H}&k2SeC5AoX_3`V+93_egdVrSI?dHYILn`Z+#vl*pqr2YEtL)DrU+vlS-cy=2 zZPIoctg`5zxu>f0NmZ(uQ%4%>d|H(>+uE zy(h$iVnKg4hn)T!6R)(eE&9<+qdKZqio!POgFz1NVY_RhmkGXG2GPAWhCe2u;Zmht zw!T)v^n8q@1IV3+{Pc7ypRssNemhEGlw-2WF3FQKS=xr5GjkwL8Z`%bKs7W;&Zt{h z%Q@&x1l{-=y?!4R@vfdzWu;xOnQmz`@ z3VQ0fg_xKM+E%-J3<$(?MNYmDSvWugJT1l1V^aW(JO95+-JW}XwIVS5_Ss<*xy`4c zE@dNO=9igQ+s+62KA!@g#^AZ2v{C@z@m7yEBxXY;tnl36W5m+;w@no>x`cBS_3eSl z;g=dx2o1+)6K;7^Z`Vx8Bf%zEpJ zqTKFoRWJ3OzD8qRz6s*NOs$Q&^sf(ArUUS~@d!F4O>GCY8$|T!jKQ=s`gV6QW1ev; zxs8h6f=5py52zZkng4H#nAE^85GYnXnmjN-10W8>I=m_~WY3Jn8!5Loahe1{XGgX= zqqIaoQc}w-WS5r@os-B+!w~r}3KMCE2l3^w9?LPz25pJ)xG*>6S*$~$xxT)z!bTPJ z`K@*ijlapTZNP!kc7!sKBoUegoBjp(A4h%jzNjK5LvQ z|K&?j95gif5g%BhTRW4=IIxYnoY63@^3htL^*-kz4OOV!0@-Z4t*CvCX&YxdG{ z8ef6trj{3$rxfcpqs6FQr9AwL{LQ>rk)N&<^^`9rR*yo!x!kYO-=lRAX|ZU&5XpUc z*FR9i_)CPU;{M{Y&5-Y`?@^>W5dXy~omp6XB8cbdASnMtc!fC6y$IkuZpRM0hr zOfAsEqZAx_*sRZYVYO-n1PF8zBfzWLpX)6LDbvj6P1xKsJJo zO!mPvAmXJjIasY=vM3p8N@)eW*QBucF(o^CsLgrxWB1x&&wiLCmWaD?(1Ph3(h4-jgriWl+DTsoqXkxotWKOy+Ys@Ce{_!ShG z54F7YVd&RSGs!=zmnxetRG!FNlta`&JG(6R2Nm-&6X502{p5mefCOyny&aL}1B(gT z)t;Na_I-Jf6o!lev+qnoq@K&r;SA>?5rC$EFrA6-0q0A@HXsd@E^**H=K8oF08#{u zZsX$<@qp#tf6IMCpl-4%HFQ7?93w1<@{sv#;u>rIUViI3Bw_LD(}KWm3kg}2n5s-9 zk&WlkKwdzWCOUmW!1lp*k}y$J|HQ_C#SaBwB)h_yNv_g-fs5b8okZqikVZ6Y3i8EX z&daI%D@?R1DUZ(~cF1#Qkrwvt%l>K1EJIZ+L!986KY3NDJznk4t453RWBWGf=bDS$ zk3Ll<(wIKW=#<@oXV7Y%AhV@Uu??L}adJh|ZijD$J5QOs*hhlCHd$I3Ybhx@uHs&r2F6465Wyeq$VzGUF9$O zdpP~njn3fwB(x34oVevkJhN)24FX*;v^{960h9Ogmhw;+SY>yoqK)ccb;zYt+L9ES zJ?vI)PxlM1e3LUWep=tm9cRkXji{@7NdpPTNNac6wB2q`I0;tW*}wapkLSpKEWH0E zJFvNjnV@2&0U!og}hOcTiG@njQd z_QTCXoy7_@_%SG4njhuLT-R~vkwXgxhDaOu)nZDX|KWuj!vZpqH|O z4`_Dju0&Pq>vK~XYgBZzv_}(S7L{?0c}7a5x**MU2#^6B9=OncTVk2tF@M! z8^CpOF6+4^!gGCzA}yA`!q#cjTB6Gank)$S(aOB?+nw&~Mjo){gx|Mhn@U&fIF=U6 z&b@#UxV_oj*C_2pZYFy3>9D$tZuU!;s`54IQfG~>bzqg}WRpelJaMg}l}wXHQ=~IT zojdeF|6q<~HI-=}jx^UN>g=(+nWlLK01Yas324UST3KpI!)UB@?D#LiR(XLCej|_l z8K&P`rQ_!Em9{xb^R2aU%m@`$uxj%9+S(ZZQ)MI!cjxL;M_d8@+09MT6tv1eb!tg* zE&cO6o=@SJRVcw==j-KzY*VII)wp+wQ2v1?j6XKjxLrev`a=6PQtJ7lz&UbMmPV48 zz6Al-X^ejhwF_Sz(e+tUylUT}^t&D44KwajSUhrpu)?zWbz6R&g>iP3!47+SV6!i6 zpDf-}`|xWC=7hYQ>&ff!asTqI*YoK*H0D_AfWEE!-Nmi!O&_WUWBtu(pJL|u=HCAA zLH-}3?x(i+a{JS&O4dJ}!)TV%ffzUUOV>9&`Z+d_DE_emZ?_W17&Z;(<=qF)WdKoEs>W%O7sbK%7ixQ~$ zyc{N?IVm7BL*HnS5*G#T55=#RNO|CIC$~qBU0>Nac8`#u($D)Lc`Ln^(1UV55f)X`Kc@M34{?!iC7>Jm%rnmzA5 z=T*PKg75)dZtnf2GK~jTG5*vXIz65-`!fNI4EyzLSutWO?&iuqLIjL7(^>phHkd3LC6>~!#(sl7*l zc{W9WbxAy;J=gu5w^<6trre(qz|1OHh}swgzzo5`Hj?Hd~XFq|J%M0}UMq1Dxw@yoQocnlzGw? zE_|$RtN(RisKEGV5uq3Ce_MP1`?mUb`j2w@&!YTC`L`&{zm)%q{!96<=zo-di~dLX gx9I;*jkF#iEiAG1Yf@8#e-B1lTtV!Is6oL011%bE@&Et; literal 265150 zcmeFZ^;cWp);`*nDn;5tp?Gn3*R;61yL*DWmjcC$I}~>)F2S`}a3}OV^fxCamNLJR^du8sq=X&NdpP6uFMJY^lLi9(E9%0Hzi>p3*^eXYuqo+S! zK0%EfH2tc2^ytka8S&5Ro|#9>&y0!Y;V;hWEZEb`EsOZJ*u*k8rWdQ)I3AiB8K)N; z4i~GI7eAX=>{O)|C`_>ho5iFp)IMvRK<2n!+%b*B@W;U6@^U$fw0EuoStl#ED?TDY z>Bi4dSNh*$P5jdGe?R@}9nIsfDSwTy(SK}v`p=O-naAtY{~UNEkN%SN@jpk5RX=&Y z`scu-geN_6e+{JKzA^mQul_$rS3%&}yZ`g)UvFrh{r^k(zgdNB=j+7{o-~yy8Ch;q z-~>QqW#yOJU-qZ@vJ7fksNl)C1Zc`>rG(3lhP#;d$dQqeg^M#Je+vfD zOVhb7Ym^d1_St)mvAx~TSF0c4XkY^3eFnY(h3^0D zImQ&8UOv;&2-dS)s_{W7x&kIOsuV{0u9-tu9_Uw|zAN;Zr<^!nR_atso?6#rAftkYba~MVPphAXYetV z6NFkZ{bdDt(U=Z(9}0PtnTGH8PM$`6;qO?dZYM~RtyC{9F+Mrq&>Q{6{MTv~(e1y= zq~!!&$dy)Pn2gd)H}Cju5*ZGgJIk^hyMrfI4Z5U@t@7h4+a- zj#=B&oG5Y8HEi8HJes<#e>C;|bM~VynQuKJ`Q2-KZW_mOk~qP=1vFzRvm+DJtm56K8DsW5oPW(^3rUry$yjE=n?&}FY7^a`sWQ1S6%Nfv zv@rhdn`$pZ0wJW@1mW5}Q4LNnS+nG98gvN$I#;UmZ#reBI9Cr3PBYu6Ub#5st>a^0 z-D2ypS=*1lX0j0|<4Onp`1J8j#MjYO!o#zvg*ucIn*24%IKmX|bGY_!6g`=x{M}2E z^)eE_fxlvvyn+44U!lQf)~Jg)I6OvqqhwCaU*}N6BYNrW6YB)1HX}Af&m6HD4E#H+ zs-?6;A@Yc`sS#)-;@F*q@zJ9wRc&i);~xQGibjTp-Tye9JfS@)-_H8BcIT2dE7_wi zSIHp@Pi<{$X|{iuimfF|uBql1;a|@1e+k4rA7Z^wvDvW}yi?J)WzDUJSSyatjOY1> zYtTIH8F8Y*MYrG}(Bp9@WU^#La}*L05uwQa4(PY7OCLk|5zTN?G40cP@Xd+^H!Ojx zE%961w(2~jz`&t#u{G^{etB6zke%VTJ&$D>&daA!o6OMTn{e%>;LDqv0_3$k>m-ocWM=y<&)O++D_e%Gy7J2 zOf_VqSoIL*WPsL&8qT+Lr z42AYx69sfHyv&SJH1a@)>lv*&?n(3fk9EwpW*W-V5_at)89de0)Jlxm2rn#g!;sHpEX&UDUFdOSi+)SF`T zB_&KO%niE5{zM!f()3v54HEYkp}v3A&XvHn&vTH4tE^YIZrrgxYdQC}gwdnT=Nre? zZEZAryw?J5plIv*D⁡$CzppS3NY6_~(g$vkRni@kh* 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⪻c_|&K&y$r>YKR-xyGH+{Z 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

vOUZzJu#a&~1p#>jt_sI5A@;9zJ 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௛!rhT$ARzM~w%yU6e&r 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
vXzU+ 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
;oo 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

ye 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 diff --git a/.asset/help.png b/.asset/help.png index fb41fbb196d229c16d7bc2631328ef079fc36256..e21f2151b3cb677163e42bf10e4492ef368156b7 100644 GIT binary patch literal 191321 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 u!ltIr>v<860#;V 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

CczxX)?kg@UpB%F{gEFZ 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

<27#FE&;=xL?kHea(j4 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

bUGU=a-XsVx~U7XKLFdZwqi^ZwEP6q&dpU2nIJw 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

vVtA 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 A?bWT% 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�|n9Mq|ML<)G)O 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 lthTJU_g-29v1i5|L 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 z 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 diff --git a/.asset/list.png b/.asset/list.png index b400f3223f711dc0bbab1760325f48356c7dcd4c..fcf9cd2c9d767632752f3cdd9d2cae740adcc456 100644 GIT binary patch literal 28552 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%0D8IZsjZVIP-Lk+a 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 IxMvyuKb7oEI{*Lx literal 41622 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 diff --git a/.asset/review.png b/.asset/review.png index 3d4898688980766c3bb06736a9758d9a0dfc8199..5fb23ca40cbab2ea2c9bafaee08c4850fb35d3c0 100644 GIT binary patch literal 140946 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
il|uxg?wV_ELYOjzJ4+G1kK6|35`%y?^9JyK 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 z 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

=lyE>mxa`je2DkHNpo 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⁡$CzppS3NY6_~(g$vkRni@kh* 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⪻c_|&K&y$r>YKR-xyGH+{Z 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

vOUZzJu#a&~1p#>jt_sI5A@;9zJ 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�l+ZMyR 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πJe&Dm4o0V$&5+!71zyPlTmb#JtqM+nU{?%rn z^*KSKOE9H+n;>A z4K2{2FF=#s<>h1JV&Ye$M6)2U_^xVDa&$BEaxqzLe5c|wpOKM`yI{mFNn73CHaez| zCpfwH>{bR$sUXi^T9x$3sHKclD^ndQI&IX4;F@_GHERAUS?{a^1ZEtbVx!DONnVL& z_z5O9TL~i~`M=rnm+(2hqi$(>xTmhQBa`O$v^)YnXJ$G6P-wr0FF0xyF<2p=a=Y57 zc(%55VPV_S()$*W3yKsZlfZtofDFv&l#4q?ySRD6As}VH5a4nast>XZe13wfYwG;9 z^_EFbv}S2!54SaO@igB$-i=K|wZs-A80dS`8c!`e$^gR-a1*vtMdMghl|wA!?+VXR zQl)Sm&*=l94r|=|GC>Q0B&>xOzc3alvoQ3v$q)i_A7VDt#f&u;VkwnI0hasqC85_4 zYk1(l`p=#=%>+2ivg3{yt5*H|Ka9nL!V>=a{PESck1JPO&$oDX=OiruU zXz(4xMPECek53CJq3k@kUjiE#Xkcm!ji#ugl)-I_qA-=y!6MeLPL`R0Ig`a_JU$;< zVk$N{IVqS}d?=b9wB1`fcSQz>x&`~YUI+rV7CG#9dOvOhQ&YhgfzuK@TrZwy^7;bs zjBjIgLjD3w4guTX&(B*QfIOl;$ULB=q~v*s2t4UvE!h(W5*27b|>p1yW20~`GR zLV59zq1$gpdaTbc307T)&=3kerch*>^q*j=gq|S+uwk%EM`98PC}`mr4Jpp|ctR%R z0mNH9{y$uHLzc#jC|kQf3Q54ZL+HNiO(uJ))s2>C70TrDG*nc{Noo80 zhiK_Yh|tiLmDLrLbudtmpzN$nEsriQ0D{lq^i>y?)Y(GWR0yWi(Z80}j1cdaYYEXX zP%#kDFZEg-ykE(TzW-bZ-8WkC-aN(pf4;!2#%E|u2(fQ(Z#lVm?ADt@^QDs}d411i zq?NJ&^{Dz8#P0Q9rvN_J#|Jq%`3NXFCN?&Z2ZjHGK$sJja^g8YSXVw(H4iD=lqJeOf@Jc1S{5#IbfXy5{>7J*AS z&Yb9bVdlh-M=71W7WY!9fKMc3_o{P-M#=1%Xs)s@!UFH^FleA#$@H-<5VyxsQj4KH zfdH28g;~>CVrnvB`UEJ*XI14lCO-BxJGSAR6>CJx^CMx)?4tSgf(2X7uX2)Qk#BSi z-=c*cK~`r^PqGw7qhXpOCp%z57oCs%*0Qc}??M$dRU!ygfJhQ{v}RZs>hPU%GOp5i+F+|DB&HhRfC|3H}D4y(1FW{84a^t#Cj;kGVEyZ_bG}l z5~q?W7h3~K^!NvoE9IH&n-|KUQ%Q4E`l!u(PX_sbIO$wN~ zdHe1YV<|JovI=CPp{p~lt-BncBQ2^uc-l-@q!@CyZ3Ic{_F zxBZ_nPRGx~%*&?w&G&-CqRS>IC=t+!w0~nnpZ>X>dUZSwx2kVBX3sA#8`)V-CkXIA z5a8g3!ovFqWu}7=bhL_!iS#+`=2-M@$4Tk3upq>f)T!q+G1Z6yW90t55qD-LCR^=# z-Bezv!fTAni<_f>yHGk2qjsZp$_fu4Nfd?iJWkr-^n4J%E8fCyCv|wv`O<`84c-I$ zp#n7S=jP^8m%xZ*PlZjID@85LT%0Q_DY3BW6@gc)gP}eLL9kJNy3b@|uQc-vCpBkA^T zcl#_>27>!!W%u2!Ng~cSS66RZT;iV+2~oy!?Jul{sU9=k zP4-M1sBU`Me#p+MM2v2#NlTSZpixrBjDGTcoX2l+45gI}SXSVmnPYl|(G zjcAdKDI;Sn2%y+T;~1cFMN(_KWiJ{X7)LgTN3<@L!OyELHljr;crKv!tX;+SsnzE74vnCO4>nBCd&KOEcR^unlNb8J437vKhv@fi3IfDUg(J2uNXvZf$v zcv$hDelrlXI~`f!o+9*F0|A|a$Mt%hp1}UPc!EeP9DOrzDei4YLqc|5WiDo_3o@M$ z6{=D*pMapN+HjtCLuuIy!PVt=4K~ z7eK5R`8tcJp_8%xdpT+I(=V8#bNDbLSMlyE6Y-*=`c=ziKJ!PrAAt_2N4ERtb86+J zzz-1X2mBF*+h%NYVyHHJ5xU+g z(h_eXdt=385gUPsI2!5|>1^IN07($QX5QWy$sIuq4N|I;6-!AA?unO$5+>8}s=o;P z;A%FFM+~I~2?TVJWJU`60544f1>*A-j8Q$pU3_J9Vp=AyS`5=xX-ea^kix^^GnH0P zrWmn3O?hHQ@XSYp-rw5Bvwu~gZ{(|a%3oh@x-52kLz%65zoHv6)!!plP6pI}0K%e5 z?Yk&cv`uRZMU}2q)8S~W(H>laC1sKN{P-x``)tQv#3+VLj@7bHn%i&f+U?M_4#0(bjW!j6es87@I@}_qO=U z*uL+9HVu&K0s-mn!r_gKL^V@mjIaBfULYm;kZI_=Ij(q;HV9oK)E93QkI&QbBtJB1 zA#YL3GY}W6EuOEJ@1Sw8M9Y=gT5hQQ-Khu6WG-XAb{qb;*WUB4!P{%(m8i?d@n8jx zv*Q}G3Vpf=^Dbh@e`gyL8;fVIUPgBe72^|Usg!eJxAN3+WXY6Ra_NY`Ag5cjY#9P8 zEu(qQ@Py?27;3n(#E-f1qvhWEmj9{`{ixHRGng`gy`8k?Ih|}}^+BwY(1rW8#{G6<*c=Px_5r?1w0KLG{ zQnNZS_tTG4J9hS~C%*kVvbFE( zT-c1Y3N)$A4sgm5Xcl$@v+o111kO8$t@C9oZL8_Ei`%)D_TI0v`c_CtYu8XW?g0Y; z);;@P94?nP)Rr2%_inj!XP(r#fB3I!GqqZT^#K3?06+m;f?s13)MKP+;7GS7P4qfpV&v(>1`>j3d7nN#y%}Z(VGlyXSTfR^?AZcB$+25Qu@%M zkRJuiFwBBL1joncX-`fsM9lZ}^jCg^pA!snqSahnTn+}m&(1O(3@$}vS(au0KhMuE zAp_GaAR7FW%^;*8B}HwGCQ&X^)&@xyW=a*N_E2RceO)>|`npxe&~|jkzN2iX_mbJY zz)82<&(vqW*BDiuxwM&GDIAsHKsvP4l<2q!T9p|`?s$@OcS##h{&=myCfPS zE|-u6?;SC@*E^?oXaSWx*_+H>OCsj()M8SeF?idwHh^d-=rKzoz?&S?kqA-bBSFm* zP;=~BpZ<vz6qUrli6ooS% zwpOb&8udGL46Zu{bNJxRW>YzXs_k}LoZ_hlY}A7ws7}>IPMdmAt@y4i`kphIU?LY$ zP8&IkL~-8J!z;(_xYcS+)V^F;i(`>2pz?T1<$3?tZAOup8xQ)ev`eOl%cEtPkipf} z6%j9hnf!l8h-jFSEF}?vfRqb&hu~1zMkcAKln77=!>9|1B-?8!Z_~>K* zNw)?n2Ewb?>svc@n2dI7Jz9++#n#5Y>-caR8=c-}cYkN|+1}1`t7yY~+3xmDvj7=X zEA?8X0r$pptB=>ZkWddo&-Gz?e7|N}rPMg9&FB$40O3lDfFPl>zFjW4f7rXS-8OD0 zO3pr`WfqM_wl-^*6+20b^auJIed%BIrH=(#pnp-IZ$;Xs&DO%rgJUCc>K2U?Te574 zJr+$u&Wvoq4gv(21DPNx^4`nKOUq|2Vez`6sI_v7F?NN7VmU07=9`vjljR`2v^n^! zyxQn>Zu?$Q)AWtOJwmCbY2Ehil~NVE({A44gV%d^9Vbh!3%S7MK`HHb@0zAXmy0gT zbc$h_d;m!2FAbc{c5ASC>t46LSy^3+Mb`%frOKf93Aq_?+^%;j(@%#KDc%dHxYZoL z!#rO~^1Bf9J=_sy;yZ&DiDQ?JVWPZ(058td#^1h}^nKSa+%epy%lwk8Og<67bXkdA zKd0!I<+7WaCW%v|NbwQl$;17xzk2Z9H&1^2Vdv9(CG>Rr!Ee93`u^Lezuw>LgXrD> zAS!_$?ftz=1Y9?mPA6~P{zsBv+nKFrj~_ny>EvXLkp!T`_rg-KY#1h5U?!eh2n)zb z<_bYc&78twWG;ZV}W=nib4{A0V<}S zPEKDR{L7b&CTJlnL5F~Fa?ZptQn2rZ7Cfxwr0JJZR8`x#C6 zC!5W4A@IX+bm(~@bivwWQ@L$+78Nx4tm$+L+rSv*PJw0@f(UC#WI?q`>+v5yZ#{eT z=;?i|8k+*Wrf&AycU~X-^L+Oi)_!>O27?t}S+^8buvobr(8%``ZjUc; zQMAB#c#=1BS$DNmV}y;4hey!6M092BEG&dBXubqz5!(iTHSvKTwKR^+70ToTtp%-<@&(R4vTGF#B2wwzpj0sh4w<>p zzsadYEb)LrXZkskB1Iw?FBubbYmR&IHj{%ykEl~72h1lYnSAl)k}t+fp@s@^0^;^B zf8po6gayfTRbeO+-=E20TqHn~x&A^(lLhaUa+oM%3Z>gF3Xr+%i%ePeNH0ji;(qqk zs1Ev{fB6MTX>f`ZDLzgxMx2b^9|WDA|9txZJv-Y6)q1|S?$_#h-g9lNMAiNMmy^jU z5dc+qvG<%L!8C1HGaiprRnv`g4%2OJ|R7eZ_lR*?6@lw8(rw{B5I zL1!^sVT`TSyOdI%deqBe4wmK+NTT;*Um$^=dmRmXD7| zlq&1pJCg9qUx%?R_$Q1oF8I3$m)1}j0#~SZX0r^5Lm0WJvYP>Xv_(LSClC))3B=L#$-BC zRo%_`K@dp};8+>#ChX)i07~H{+qA(SKm!s@g-M`B+%_1jo)J{j^9tCz*4jFMvVgoU zB!XpCRvSq|DB$LOsD%VPK;g6mvtI0N@4ebZ9X+Gb5$BfJ9T031Ln*2vr3oRO<_464 zD%XV%dCbHY7>Dl{8}%-N1alE2=s~bL4wMf0o-Pwz7T9nmZ)nEqO5K|YsnB0>Vc1cM7fi4(AllVyZe%T3+``y2Hh_7_fu#<=szazKcVPsVuakrZ7EPkO64 zz%YcIrWpt}+~%N!M#V}LmI(%|)YfWUn1p8;oOvQ+@45j_M6a{S4{R8$v>St5&ci7{ zTxqI~1&+=gdwwd{YS=OcvTB$Xi2?fy6@u0lF&=~&-he&e#z~5ph!9uE)COWTu zDr@Ctv(YzoGvlPW;uI+oz~=Iul4QxM{1Jt$FnW=WUA&+>-zR!RNk#p#B&qD7yqsA@ z#rFuX8*HuF1>A3 zQ5^3$aY@rSp-uBnn>0;d>5E1nL0fi}P^Eqlc6a2j@^Wx=QLLn-x;R~t4MQXO~%fh`#et0@BYus0arKra{21L_aA=p@h@L~ z#eWOW-97WnvmU-lkF}PuTk4-W1%CO4bftEny|Fig0JwXShSG zTq(NbUJej#U%RqM03D63qeKy^QpsjK#BULcKqdmymEcp-q@%I5`MGPb%GAuINHka~ z7mlIx^bJt5Q8z7V(SQNMkyX7C#KVrJxty8_@l)xTd{QW7VLvY1YBo3?Gul)zHF>^P ztDr+tfMB}WYUcA9&OsN#Zh~^4k1fnHGCZD0Md2k;jOph_cm=2f6$IL=wMwy+ zXZUlo@S%edsTWGQ;o&jCJg%kM$?N5O`v&O&!z;ljNVSp8An+;0lu0FqVK6}U z9Vnd6B=~oTP#+i=R4~c7m{|4^Xill(>1>i64d#a#aO`TnkU`~3rlLwOWlBSlRdm{+ z3pe;=dTOpv%$Cc=X0tguGU0ev;YMV6Y-F15ZN}EKxs-qwjl#OS3S=`L&G~>XUN008X=;zt%sJ>mXmGr4`A>-e$I)Lcj>0)Ka$BN)v457Xzi-kxc1Oss`oR;z6n zVp~eK7&gMo6o%ee9bAR}XY;98JY>)F$04O!YjOJ-EZ)LoI(CCEAk|)&y&j4N*^wbN zfPIrfF-M)WLQn8gxR<{ec#i*gn_a2x5Z_Ar&tDRjgT?j!gLvlI8yX;|C|7XRu(7hS zht+)6QO9F3O|>*s;<8rGIcZt2Qmz%Gl#kw&Pkjc(Z0f6>-R0ai9Q%I-7uA_Q=19uv>Y;Vj|t;;L}RAD2cn!S7WPA z=+CQI&J)%n=DgZ&_4s;7P(+_0+~;;mi9z9(W^0QRvr#+o)=5J4cp?H(bX3x8HQchV zO|zylnXg{DO{7jd4fg`fw8GzeG)7=afgDN5Qf(%eBvvN4Po-k0tlYIo6z(S8g7*?< zTXJQfWQ_~Gix257*{w86okK&zP^jyTnl?lc5N&KV;1kEb!ASHR*5b&ywBBLNBn5^7 zZ$rPR!CdvaW*V~bB(qWHtqpq$g|yt%O66_|!&S3le_JSI`Jc`S{0T^K0u9ksxXX

)qlj{DfuH12O>=Vull-2eX5&ztpz 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 kr;)Yw7J+9Q>A@Xt{!+XA<0G^>DJ^%m! literal 175146 zcmYhicRbba|37YoifBn?m5S^lD=P}wk&$_*P-J8s91ap?hwPmY2geBE49T9^`yBh& z$38d?zvnr<-ktr+D!DjL|P`V%DsuQ5cjp3|-SOpm#BV}s_j#)bUR+5GHt_;o3TL4IV@eZ_ z!^#O25qLrMS!3*DSs1@6n?#!zDEe8q zV=}3QZBK;hnfJttNtXjz*x8C>gPWU{nWI1NzIN%e6N6mPj(Z#*uZ^UAUyliPgHyji zQGK@a!xY8)tQ7T(uE%>Q`Cf#ub$bi7D;GS=F1^1_X zKF~8O=XmjJxNXeTT3w`b;{l7}l}vlP--NZMG0VZY+H{u&u8-#XANIdK{LYjBwMOs$ zjO7mU`}vqLm?`9L)1Ylg{v4b7=t8M*(3KH{n4EBC2IEXW@v!klqP)I<;BAyn6(ru` zJa?I(?tF=)h0R1>LLf3oHGQS0yyY&;AFQgo&c3^%H^&dtB-9TbI|S<*q{h%JKaaH)Y3P zhv2K>)9ZxA4(#Z#5{IMTEg6(JQ^FCQly?0^g?yCjBRG7QZY#>O05 zD56)sgcIHWsSn%hhpDZ-_JyXaE~Adq@Jcp?euJBQEhPymq+Zh*bPk4LG0LQT`AG23 zB)fbDadtR!0E0hRBuL`dqfxX2IhmIHH}1c!-fJmQ^!b#Y#NEGEy`#2ZGK@QtAtn+% z%8#{HqfeZ4?zQ3S!gmhwC4PP5>JYS#h0~_R^JAY)*G!xA;ktESiv?L4PrQ@@qqzkX zF9kli=1svKNY^x!jQ=~oS7+~&@;E|@A zG!*molRNo6mQ+;Y@Ga@YlNQ|2J_7{FLxe`spHs-AX znK_%K5Z73>TS@JgCo_og=E+^8_CoN3_sZ*FW&b&6yGy0RZs|9+km$fM?!!obZ;ohaI}_VIj?s2uy4cjhlm3ioBh1tN~@34lD5GNo5ixAn00=U8d4G zD898a1*D(_{dSE5q@C3IRJ4cGjLskC2G2urgqGV@7VE|Ys0~zW(9I29vMlU|o_!%f zSOF`|BOCiBoS}YE`NKx(t)vq3%u2!-hgte{gq7ho^&0G~7iishIpr&H z?Ih_7aqv}ISH^whT8$9FL7*K`cd(D&#$jtSOjwAcymBrVvf z%evhpKnCJd%oLFis|oYa9{jYnV1EtBzxaWNb_Z#!wgd;&ZP{OTc^$9`-Gr_{(1+M2 zViQq#k)+|j0gOoPKxfk*AwUT17zREtZtCEL_Cn7iK@~3}!l2-VVdi@nQH--Tei+wI zzC0X)&e_|Hc}O1A!w*}skp~5R(57s_2wn%{oMw^OL)1ajL=wUYW~0QxgWtev|Ne@X zN%oXA9Uy2YC$c!zn@~S{zki~^AZSy1@+7<%c$hy~iaFql|NX6aqv4owxr}poHheXL z0O9yg84F>tbAzXX|DPt^#N8SY`PxDZTwRBJ z?a&U?@A@UOCba~1puHu}{1z{D5cJab!9rf)7a=tjqc=P|N|p_<-xx*gS_~Yo`|sL4sBR_M zg`DO|_7-H_JdmJtAm02K_8G|&{3NjB9+Pi&fS_NUqG-4QEj}cB4mkjTsz6q0eV&w2 zSLi^@sic@{{67VR*ZwoR(-cro{^#vLSZ+XPcR_s1trYKFUm)$}|FaAQT(|$EXy) zfO(MJ4N!Uc5HEPRzu8014uBPg{{^-o5=0;e!W}>?ieQ|7C=m<90t}{JOn^TkPnukj>uX@Vg^>}3! z+}lvAehtQ+pll+=Pv7{N^mvJ>LHy5XAS*ss=0g;KaC$=z=)p2pC;dx=7t`vC$C#h=vW8L zfdI83u!A1O2hT>B?vWSy;DbKe9o4{t^|@0uRP6f8m~!7jnw9MTUN~FV-VxqDO>$zy z4}bF{ORBO3J!oTi zI3eH9iP$cvf88H^l$$TG$kafrEF(A^q>hm1I19`%OabFJ0t5xbCBuRMZG$~lPEISJ zs_DoBN=VT0;pH)6WPXC`?(gJ*R~PTgrswMV6v`DcVDME*M4Lp4JZq$K&fjEBg9sh? zyA9-Tk%W#tD|=KaGeuJ#2)YPUya#3L-zIHZPCote>%HLmA5_XqwfhJVkQ9%0%b+Kl ziTiCrKIXdiJ{i~?A`Qms_GKmpT3OmB--YeV-UvMu%jVmWSb(w`o?AOh*P$%iPUDox zm&?cYGCcYuCGA=&5al)4b8r?iv|?W9Rn!!KP<$`ZX8J_rqK#bu1+W3)JY07gfmQeO zeF6EB%@oQNKM;h;Zzws90Ht~ZQVw+wO%lOzCJ#*?hCn&ZWqek2hoz9k{Td?EQHBd6SH`RV>d%aR|X+;`6j88^o2`9N*|rJl87~#VccZ&aDIV2F)+YGR<^^}U$U6s zh@ucDbJVdYo-k3lT`4*c;}H?@{`fD9yzKGtZXkgXZ_JEOBwhPwVr(PkuWnnJ}WTaL($Ze-8cuf|iM{c!a_G`cyeDvBk=&`KkqV-#~z50jWF#Mw#xR zY14>Il1QxYs)4-CpEWA5B?={0Ojru)xop^0K>-He{4XM7kRYf9#Yym_l;JmrYxa^l zWMqx$@rjPkwE(6vh38^+uBkI|zvl`jH~>|4oZ9HKMV$Ybl((OXKs$d=k*T_WC`d2< zNVc9l5ji9ofvfah6X?k1@CEvZo=Vqm-zZ`3g=XJ{n%L?;Cv6hZJ=!_a1)TsmxdBd3Uf#kPSQbF=41nNUia9&*58!=VM4lh^4&mT+}XL3p#XsMF1-j%+@gcsR0^CeSA z%+-H?wt_p^$O7doWr7Q0!$wBw6r~8>A{*b^4Sj^&4IrcE0-y(ndQejGPeO-3RNKf< zX0!UTs~VojiNu3PFobaMyU-aT^uiSO#NQ6Zaon+ySk)pVURD<_ZNhk!zck!cOib+L z=x~w{UU!+thW_fp>jv5C z3#RMHG1{@x3(ICow%a#v!7M|B=|6cS%=MYHxGQN-cfX^rl zK~@M)ydwvZ^ugkR-)_yJK&Kz2PPYs+i~Tn;j{@zuYaXCLACtLH5cwYXVa-m#XPx2E z$>&D!Ha7bm`zI{ofBf@K`~#6%CX&=Dk`^FnmmrpF4>bW|SMFc?d-FNN^-C>$)tP=LM}8Z4 zB3<5TbrtpZD(`QextZmkiSa#L?e0gTPk4xlR>q;RMAOZ8^M1sgb0VM$*V5^}UDCD` zeMm163V@#Lg%xdHUHqqY)Mo(qx&OX*5}{}EE&noY{P#bGpxNh#PMTVeW`{!+Uu9iu zHSCm{6%Xhn(5Ty z^Pu1kvx6&Wuws2Zmv|l(8>Q?6F8}^bx>S>1@sYIUt#b}cG;wLhVRgaL$v+D(i!+Ls zr2j}{wis0a<4Bq;F1eZCqfR*~h?vW4j^{hO3F2nQ2o9^Zua}%d1&68J8q>;a6w#!{ zWl8G$)OdH%S5mK__n}&&Qo5Mclxl~Qa=)zF;Lq2rey#Nt_Fa(Bd(nRoml|zc1*a0Y zcz$-cd?--%L6r=bG1YofPFM9LSt&JLd=`XkY>e%>7}>_A`L2xdy2F!!kw*s4-WiM@a(n*iZck6Ht6QHr zSw;11cGfW0-4iEtTUcgzulIbBb#e93M;R@T3)fZ__UDy+p+)f7@?F-*HAp{^r}joC z5i92oT|lZB(Jg2UAshjkBaQLl6N@$q>>7Wm3?en1~QKKHM*JQj>6mvKN(MRL|{;PfTD}l+)rmnqz)$so<@?044el zDq20I@?f3sv`Y@B7u7Qg8 z=Fh#+H2+|5$VY%S>u9~vtwawYj3_d8&@O-i&Zj9-Yz>X3H~PDXT?_85+i&{o2HswF za2@*L;V;Da1(Fy9lbVopO6SI%;OWe{)b7FVk}s=2eA&x61ot}Uy)n>ttIN^kon{N7Nj zu$WKK!Z`=*Fx$sULEB+eC2?B2O@7{upc=m=KzI4QvDM(m_}}5GVVCRqsyM~npW?E* zNpE0}7(}^7%OMVTRaFSd>9I)>WSgdV`?W%!kk#ez#*6#C|9?MT1O#aX)Ihcin0r z;t6e*?RdCf3Pe_x^u?1Q%tGT?;FY3yBAuQe(nG+QbWvkDgeBK8_@CJL2rsT&S)= z`(W`Bf0Jd&Jx;lYFDQoGU8MVS&_8UvZs@#7o94w~r8?~C=@BK%J}UqYuI|s~W^qoh z?(#Z*@A^JW^F_O95zqQ&gf2?GF4b1LxF9uez{!O1)OVwTe9yFIg(LItG|}>`k2j(G z-=yn{Xr6FRg?1@FV!RbLNp1Pp&eQd!*cS9Yfl*bgpQu7M+gb`iGlPw6wH0Xu2;*aE zAohqdoY;}ioJC=v!e`02LUBiawT+(u%~kZ9Ey6kVcnlfNTS z!VqrQ3WyF*Mu0Bp(vxGW(hLK4alJ?hvl|#ub;TJ~QK^@V999$?qP)>O$qZYrW(z;k zx*nb#8Y&uNEUYo=8$~zNfJjgzw&Tau&~NppY{xIgqkcdAdeI^WU)hmZUY>Pzu=h`o zDFP%ytHoAxdg#sHVjqe96>6(H{9Bhnl4pDEC7P?>@7I>nb1ny!0xpJd+2ElPk}I#T zD`z`>ch`2gbG>3p+wh0wO?y1YdijfCY7CU=C)Ej>(@K)|U-Tps?*3&zPTRi+qHekkTUf`8DXw1YJNIOFO4VM!A<~S^DY5uj zt?KNu_7S^g`u7_*?4)oR)|37wd$7$KA#OC!`h-{vLw3*ty~Y0Q%N4HTCxxI&ea=gl zX{l6>BC~#2=NX{w;~x^et6+74;Hw4~KGGM`A|RXHsb{3lfxFmZf`W(26@Eee50UPV zTV(5M?^@zk#y!UU1|F2kZ1As`EWpd^n8c$^3p8}J{{K}2Xegg>-y{bb^B*EzVDht$ zmBIVaL1hX^Ez=~^LE^lnck>vtOZ66#_!X~mh^!5HbeK5ls!$p>o-VPgk8evGPq?tIIj3ob zy2tr1Vj!8k-_pWwBGp`Pp+l@4l$Bnr)*7YLdtCOu2-z+YZaIc9VZMgLw!<_98?)7n zqb(*m>sF?_3`ouxE=+E7b0i$|t2XqS71eW2E7vQgt|BF;G?f?nX99b{BFBFqcz2GA zf1R5jO+7zE{xk^$0lK=Ojao@Gf)sas4;-&rM3YnNLwdY%wFENJhT`tGHlU#j5~2i6 z+^DIUwp_~TdFY+2?LZ|QZBX- z> zVI50iE8*7pzkE5gN-v6f+KkY1LYJj^pCJzAQEU4P$*EVZm@3v``N@p*ozDGrYa5Ff zZiqBTybJ~(XEV{_4S#S&B z6W4!?)KhyVNW&dVe@o8`Hc}@nr&&H;XS*8wq~U$QorsG&%=d8gFdy@$HD8lKa?GV| z7||xkTQ%wW+YVBm?h}>$!`^C5giu&;h8@aZ*xLwSqkM*^$2Ip=wCH64h1rwDQroRV zo<;*ZV;p`a@nM||t@a%Mlb@+yx5YjoF6Hd0lwGqr|2LS{zxb@#ov)g!@&&q6i@HTg z)V#RN7xx*wj?=@dy%)GsXys%#{@Kj529!>TQXq(9|M#6?8rYR}PzoU6%nJ+9wp%|- z3TqEs_(41bhcpKIXY6JEhQUzhY3S6@2iuVjUn*v!mqst~ruE67V*lOs@l( za>eNeIrjFNiMepYZpYBfAO9!2zyIIFPoqHO^UUyV? zYF+8g@}C~f4~h5cGe-*gO^d!9zamjDYkAnWoQa`Hx;5L|w;B=5T>7X)%bXGt^9WGc zN)V+{zK>5lLHx`6bELkN>)&d<`>82eaxIbI;9U}-(BPOroiQg~W>VmzlSW&_yIrq; zD}VSi31;OEd!)JVJ9RRl;jp}Pc|W7`538p_cdD1n_z-g`KLX?<_N4mk&RuH;FN2)( zDozTg-z>9S*c}_79)DvSJ<2b|wNdf{^HVc!^Zji7sp8afh2v^3*N-b|&g3pIpTIz^ z{Z{e7=1|i<)^2`qkfY$UOMtGEVxELNt=5q(?+lf{tjn=uI<3~{b*furR~iBy#rDuq zs+t={6fZ^TIyl1#noxGvopy?nEi)w7**!-$^n_qBo+>eB*$qu+cFvh=WTe;Txa+X+ ziBTYCXK`LPy4>IAR9wkpn3#@*pp0?6W~|!-EAeDGpQU6$D%IPkV6BEOIf*|U=eX|F z+rF%*WZH<{4rdUxRE#r7G=gB|z~X_$(BQbIcRIeFvPSxD=`*@xZxIZm)MRw03)_sC z?-5l{E41#E>O(dO&>n>ro7DV^j%=VXePUEBgMt5be|11b22S3r>7`4$KWyn_h~@ke zO=K9l5Kyxt8nZij!V^zg&d1m!HL#V!I}LEvy1!183#gTwV#sm9j|q3iODZ#$Y80F; zk-GA6H?u2lmK!67kq`A2mhZEh6)P|#b|7^v5{!7U+V|HB!*cZ4f> z7Fn#={MG#BK%h7N;49nvfOFf?=pVEk7@_Y^*Qo+#s4A{mm9~;SW&v8VPTIDLwo*lb1h`p&)M@6THneT!v7&l;5a zVH<R@~G!p5}g^BS!Wj&b?{JnS|BfRaAzIuB^mwgtfE+xKEF zC_s9o3|CMrReBTqtclE^8BS#65qoe66ZIu`t3TX|qGRe&_I=d65`{*k{56faIF#V@ zO)}!xM~&3b;tr}y+ZDzCT1^7r!Hrnd|LyPw{y9#DH~RHSpBkJ3wuc-BUL$kIr-Z&p zNPgE?m@e{3=CMROE$t7yV1{41&s~IaT*4h>L^-OkGJ5?(jEK#GXPpLGf^ z`*WV|TiRJayg031&b^4On-!}ED#2(NCF;C6&W)7i>X98Q-l^*4E;{zt~+q z=ZGKUc_M$CIM38&h~sycq<_q2wJP1n8nlLqaO`XPeypph6Rs=eIQ27rp2}I#c0bU7 zAqjzg*&{49Ol?bb^oA_(eS&5iDdoh3l1U$)!VmASQ*>NQBWNm0VkFpJ2T*dX6yEsu z<2Tg6bGWiH+M>R@x3vOSV6RT>&u-NNeU*ofbIMjO>d?kRQgCfG@@GIFYqQ~&Nrn%@ z8y^C5X|jB)<69oJN>uvhJ=#-qOKWYrdAU#;8E6WFY>o@-^0#QBJm;K_=KKPi%Y!GbVQ0- z7-mUfk!I84FFB{qQ-139Mw^cV&-s%NWa4)DUg&n%>y#{+TGB7$!tA2A`pw#5SIYev z%TX2FoX7Ltv0j6EV>zxmP9e&>*D>i2z4wz_h^!gjW4#at=`A| zj$}a8NSA1X%F-Z_4rdZ=HZ{Go>juWew)$IJz+5rIb{2g;stu=+4zA;$fkP4HQN_JT z!IGi`nGP+tfXZVfi@VIFRd*#GgrrdOLevJRp{}BiMpMS*sKuKB4bWG9vOhWC5Fq4! zp+YCQ=K%D4cm^`|dbpj6>VMI`bju`zSXoJXq>;?;;ivm;uv6!NpI@{x%q{uYCS`A< zXhpiskx}vedocyX9O#Iy(AnxevL+jOPr+WGj_j z0t#wqU2kJ`wTuJ@_4)WW_+MJQ@FKQR-FV=`#uc?!GDGL9fzDJwc0};J;(gb3N@G{h z>xx!m^XG!K{4Y6&-ecS4tQ}{O4pwtn5|@k_=k05C7y0!`G|xhZ+^fVtYusQ^@xM-q za7x+uzko_?C+7C(G(z)URX+PKz-;HCZ6-_PSlVbO(aNX3)4~$4`7JfK^Bb4Md&a=q z;v#c$AyV`6CLSaCFw}|TKzPxobtjucu%&sfZ_uwbzYL^CjCz_N+E@{kOq9M=u+M3= z?S)Pgat{bT^f^A30s2KM>dC{E%*8-PZzT3+Owhw~%cp5-J-19(TXUNgtDEeETN)#1 ztT{(r2mD?5&JSfrGE|F>=*=B6rHlXcJ7K<2G&>$urYdrN`NGh4|NF^+I99Rx*G}Rg z8GvO!Q7XF|`U;SU&jM$EK#o3-5tXU>U*bE<5&ai&`(Mx{0?{}Lc$}~*!+!EsQ+%4g z`=DsPT%;>*8y)z?U}hrwy^DGcK~17I4e_gYy#G@%lsc=Zh4_wo)o_gO$M~{D-KR%o z9XuG(gW;Ed^`R%XFW&fQTT-M$=oyBOg7YR!Y}hm5cF|>hjuI51VX?{qiKlG{_vL|b_;rlBxQ-^7BU@4 z8|4~JJXP>qKa3KXUoj9c?lCc%@oYc%q+0@ZVl`Uv!*&ss`!XhdTA1%m5-a6swRSgV zFD85yS`)D>$-gcCv@S6rGZj>(s&a)>==gR8kM5?;pZCqEt_a6|m{f_#K1pIM)UmxlPc~r#PgfEwptuHWm^@pytoHM?8*S5zNsddLx0Zf;ZT#ORFNFZ}KWB6F zLg#ixAgwR2xL)yKz+3&h718Dq#d=7~$T3zw(#uJ64XQ_&m9)c1`yU2{vV^!OOUuRS zr4m~Kg)XmCO?Lr*{zf|eQjEX4M%ah=L*@6(1@o#!o0Gt|rV{TXH(NJJ2u?Fnn8K0o z$6{z@mNqKEm(=OunfxY(HJf;1SHDL$9-)SBUSh{_hvg+yt};%9J_MP6{KGFGd>;As zLcFDcj~Au7X}%LiDp2~0S6k4UP0F#%*d6?EU*Qw{zXq21H}Q^*^?IU~whOb%eVA+0 za&e01L8Je(w>_>miqa-J8&h$YM7VUIF5>gkiW)Z1P3iif8OJ_OE1y342BRovj=!gi zvfYT?@H3!S(o$eu@702<$#G1lb{^t9-t_-%Fx6YJtbN^CaJ4{7V5>SP`H(d`a=^pD zDzhy!NadSd0Hfk_+7LYst8d_Ub5y!&3TIb7}0KY^{-%&<95l7qVMef)Q{4~x=bJJ*`3(fpyhmD;-)Vt zDnc?6;H|XdVVEEuw;$Q(cx?mTp7~}oo6s|{Td7O3-|+M~yz$Dh@!{;|rLvo8d5XiqMT$vc%rZeH!p^mlU4IbT$x-#?0Dx$Z}`pqUK6?DH+vx?YPR zX+=pB8n-a^lHxF-#VW%Llq>>7m5e53(*Q(~gn!c(4S7=sq!-{R>S(m>HuM^*AHv66 zT2bME=DO*pzsl7bTP7qDPQ+|N0lHTb6;k8yXN{i zT<*T#wAAY%tMf*O$en8zc2{GCLzGy-)-|vR){h?hEsw`>&a*n2gsLT3+x-U{)XLu& zz9jf;EA^Lj1&h`5F^boln$k-nM!jAtWJ}kBWtdC7uTc&q32ScX+q;xztJ0WkPvG>m z6#@G8d{_H-jWRtI#UK4Pp^ljV73XqYp+QkE@lw>UxYShAAC?MPx|cO<(|zfge4E@Ald9Sj zL2rG)a!$HtdoE`@`jJ%+_OcWcjMd%Za5%BFbS^Emx)kS$F1 z`JrH^NyqW3@zyDsM{lsx!YfssWhT@Ufz3qLE|M!!J#SQa^X$F?DEn<9Z*gs9(df?* z#8-2kxT~GMmHNd7cTEVp6PRs2aC&=3`z_TAJp+$=Cdf#u!oo}QfpH7_WA_Q59yN`RBq12!Jy&1to_ zt2ISiPN1J~=pOG-;rw@UF9JLt`)vJ25}&vO-K`6kpy>j1EJ-j)+{^>YaNZ#+T zS|Hwmo=(LFVoVcobTphO!c7~{9C>7J9@eZaF2=-I(@N);84LuJp0+>!ZV-Rh{<|by z@AqeS1#W-6T^Y))9XF!m*wVAR+TB?!{~U}^*wf)nAB|i;jy5tjP7OthyUEwJwAex4 z8wNOdh5)3o-LH1;H-}zdHVau|XE8<6*)(V(uy22(4tcmUHS6#JY;=N}WR8Z0Nzp8Y zsxyNT-Rz_$6ExzH*bUqmL}Q{43j7DqcxOrFrX@?iltzf0PR3A=_VXStLr z1tQF5`n|%WIiR70-**1f(%l0)BdZe+ny%4xTb=Sl7p>g-uzY^SCk%y`8i)@AB_qAF z3wdP~nwE&bL%>73NIbyY^g_S)K_j}U$gG%l41Ok!!_*r`M`n(&5}>r4)O$|rMil0l z;W+V*Nmd;%Kxu-a*H1p>^sAIm8L!n4`S3;o3?Vv08jgNMNmJpA;+Jp>;@IP3TuXD$ zrSKPm_0|aNhF}^5{VsTWZnkgzMYpln=ixTE@&&KfKphV&ES&J5hvD|~$Km4?_LMX5 zrpq#jOg#eaB0*dfOo9k?s!k1pN8a)jI!{6Wl8r-)3Mk*b>g;~V$}U$RVOl3z;{D?Sr5L zjT`ofQ17bw{{X@e=S2k(fMjTB<0S1wGHQ9cO4c+^;?`&xk$w*};3!IcOhjkMD$0$F zjOZKpZ;VwC@natT3n>n7`ImK%wB=6r{}_~!n#Wy@)_X)1Jig&s2^;#5hnoZEy0lq! z{F{%K%R>7rJegRh(#!Tp^bj;+ufyLqi0!G>DT12H^v!K6VtI4x!=e{!)!+U8V;+%- zPf{5ukQA8>D0~S&%pF8%{qlqiYvD4f8AP^vHq*>;1az|%1_fvgXpoNdFOK{ zF%wr;WRJ5s>m(oi9I5hXuNq?}Exeo2tXQ*nVlYhXNkDT+XLOiP_EuDqNKXbJtHGCk zUbTpC3zB+JtShZN!f80>CN=C&nCpapTHs&)+yU??@relUB_y`g4?P{tLiWD1K4{-L zPKvAotE4SK3SBY`0JodbUy2||F?Zn-i9WOCFAyQq?~McSqwYjIc7;`2bd^rkdepUK z@A>Aa^*slcqjiR%gyNc|(6-GO(Y$46v5U$toL3K1oVtI?pSayzy#|583%b6q^sPu4 zrX3JcafiG@E1?;YgJ;Z6r@DV~ui3vh$D-S<;A5|_&NT%X_}y;dD#^#~_>8IsIUol2 zpvL}Z$iN8zuXb!7c~H21?HE!2@Y6>F*5}C#P*@S6L%wa%0ev4!cQ{nb1>b|k&Dx-q zU&N>E^%_H(9Q^7c7utUJhJ5TTEeUSD*uYzk0WaR~${75p&10PUT`hL>Ev|F%sq^zl zqv5}=W8;S=ge63Y9<5oy2l;Rv)l>?Tm%OlZ84?@tP?3zG1_XWkHhFckbqqemb1CdB z1;s)@1CYot@y?Ypqky;uuj$%P3B%Cf(gdz`^NP19AM8CR;ly>g^4e)$dNnJs^OP2(YyXay8MlXm2H|wn$xXjv8OR zgAr8(nA3nuu9B`K0G|y+!#?78_(XLQQ6}QVK=xCe)iV>Ge~5BG1-8<|NsFI)Fz{01^22 zNtIZME9}ma9!6sTU z@k0^fX0NV#SAs-=2lGICRQb}q5k~SEKV6O))xW$_+1PdNhtAv z{eoiQifmPw{urMP5w{+~8{e;hQnO=z=wosB{Rj`7_~;voLd&E>ha}j)46qIqSF%UX z&y%)bg5+<&^hYZjy0Qow3Qrh#4euRTf`GD)*zD8tH=f^P^+Ufb0FFBIRPb-^@XQ_- zcL!v-JwEV5%k-jx1!CvsYmGv>k*IHY!eq)uZ-wXF|BMPG!(f8uzv4<(5Qyq!QV5>d zg}t>|wg;iO;9ugoRu{lLN5m_+G!yYoUgd7Xz#Ah&lSZ5Aa8X(H*YYlzNt^^Ec1Y4^ zu@?cleBv$@d2Z9bbYPx=OA4Ek^H0MW($)oXb?ImYoaaAJnCAm_1qiGwK!}EJ-lIe> z3`Jn~^=$wf{hIE174|&2OkrEut~LdN-thtL#UKy&L`dS*qr|=5sguglP&quoSCO1zro0O;BV3K6G1NP%pfH?y)T@3oZiQs2H!l23fD>o_NfrMvKHA*&#Sy zj45M|$0s(e)i3+gNh1iU8u<^jix$HxDm=-&FOrc#-qTnaJIgYR=-Y3o0!-Oz8)IBx zy3Pjl55^5;`#9b9P28J;PS89Y(o>D(7&nJed9_quhR9Qxp3@L49;6(qNj-%@0=J$ zfX$Hh^fB-vu7enwWXCGKCZgdc6aqZ4I8I*@!dKsFo5~H(IGIgO*%D?Z z^_358wxGg!FKYME;;uan78Y|Po%hKP9p*XAKb)*y{|3BTHUpOU=pLXc7OpyCBD~}F zsnM@n_RYti)lDQ*S>4Rqmm*QtpAuJ(UIW~A#pvnhs*KmY_>4d8QUNbK&1af&PK`(< zt7y!S4lU0Ft;{aMMD@k9iog?29>S5GE4qC>6Sp%lE;6e~+O*Mg2oU_&`H(zS$*V4V zs;O&YWgIh?%bA^C8n1piZB`pcs1tgal#6BHm>O4XzMD!|xxlLRuzu}Kpmnu!v@s5O z?27;$cmv=SdZFbr3FB>>x!D51tBZv3ZGgRJcoP9ywzS>*fX)XV9^JZ9i_6QrE@OKt zd=%J_vJx1VOe#M@KFlCN=g-yFegnujRC9K7`5bjh@z(bDyHr`Kz?mfuKVYx2#2rS9 z*!84Xn~24Ci@ZGX*8(q1k)UM=kZGzGy!$BcZv2O=R^rn$ta!Gcev8zuXFJ^1<(uBq zAh6`qx~q%C(M|RD=mGh`-;6?G&2_h>2tTCW-5RGeq99zlz)oiQC$cU zUeH>ylZc4=)<0Bp$8n5k;)UisG7bCZR=ybc5l3F&PYM0kOr`&ZTmZhm*6H0U@CU+p z4C4H2x3Y&Ru__EoEGely5B@Hl#j}-sCqR(rvF?m)8gJUqKmID8V3P|R{Cm@+ZO?hn zpuV$s{x}_klD~OgDW;m$nZ;SU59Wow;+Y^~Hks9#p;Gr$}z=Bh0 ziASkJZJ7Ju(o}RehwC*xX*?Sf@9DpMYxICd3ZcuH>Q3U0@|>qRqTMGqjc1^G^t6Lk zKQ~UTrBR(|t@kXRPOsl!_ClYg{e5RdZFYXq-u|P(Sg4z`$_CU=^yKtOWd;?SCkr0D zc5r^Xz^+O%PQ}gR;<)M7K$%2J?V5lcz}U}kGQ_Jc~R3h-mV@U z-(Y={|7CaJ%m&{E^aB0aTP0o?QHw~`^IKeqlcRN$9#92 ztU2>=7xrA=EdAKek0=zdBp>Q|UWt?0EN~M%#MfH3};5>R|RyquWSr9L>$38BNBs4emBNeKzlQ?VN8c*-X7X&$i3>C zouUo>7uh8nzYlH-|otU@?iq!;*-quuR5Mkc9`oQOIP}>bggSmK%Gj%r>!e0-6 z8+E`%mvT1s^@sRm({g9j2-mHM-IubM!&7(3Ojl&yIQ_iicX+k1!-dnc)g0h6mT#s1 zo|e1hRa%1Bd-+UAi>h6D5=E~A<$Cx0*5X0)^5GHI^;G21CgZz~@^HMWg#*6ACFnQ= zL=^d;v2>Rvw97-=FnHcS@4F%E*EW%d&l9`KT$8c})fjEPY@nmgo8W1F58;K}sjE=V zXracwVauzf5%Pbp3N_v@Ld~rCU*x`$C!art5|N~;y?gVXPwYy>&7oTlUZk9gdK_8J zVo8&3)wBGgOUN(X$e-23--$RbrlbG2U~dSw1jCthl^G4cj+IRu`~PTq>##Pu=Y1G= zZJ}t9;>F!vi)(Rrx8e}21qu{sai>tMI24!Q?ykXIf(HnJH_!L;d#@{hoZZcyJ!fWi z_Q=eAFX@&4{O+z&VXG0QxSH7Lnfu$hSAjreJaZ?0eSVmJ#ix691(1{cUPlr8f`NVK zDR%XjJtyy*i@txfWBvnfvZPA0O%BfbK@G2Ks$mmAs*d4sj>0q=YuF<|N&}!!hM<7wikCVr%xROMloWkN7%5UDP|-IMn92@~*q7Iz2pIAIi@&iQXW6&N9ewbZ~w{ z3L1A+#!akY;V1<|sX^Ze?4rHM71HR_nLh4C*= zN})p*?!)4T@16MFM^W_A|J~u%d(@KI2@3dxn(W_LJ%X=?UniSN^6uBGDsWVPXqAX$ zENL1-*^XZ-HXCgG?jr|{m#d8mtjE!GJaM8CR{yT+YrF+txBi&US4nh_9zgut-Ylsu zATn<`cMT|tmd<1~#tS|Nu1;5mZts?cnzZ2FaY(klZM!g4*j^{m7|?iL zhCr!d`~MoxwQZaV1E~0tvE-3?qDmKIQEl!8w zbR*x60xF#)kouPy#?&-xmzy%ycMINf56}m^IJk;->>)h7OB@5;&KYML{RCNmb)KBd z+ZMw1S`W{NfKHX08T)u4lSo1i6Z7#`&SYcHLB%_xZ*I*PWUMY1)>B;0{!UQZw|G&_ z-e(5RiLTJOktBe`d|}5Eif=w@$A!H2Tr53U{Jq{+P}Ev2Y;!Dq;K}>d`RIE3j#5@Q z@XwO|e69&u3^x8Y`2l4I+Db;chG?Tm?Qsb5N+akL2SaTNp%VKIMQ`!@!&vWFA|HjR z^J_$jmTrn@qBdWxFJBlCiRaN`h^>J6M@h3u=Cuo1h*pjijY7+23jrfVq3Q&!ap5eOfdc7{9C)GXq!OKz*O?nFZK) zpV_@e?mQ)w5HDqo@1}h%Lp)>+Cr(sESC&^CiJ$#@J!=8904NegY$gG7>*4dj;?Z%l8r;8^n5~WH19(Ev`%bhH{LtP4?cFxA=$@UdX z&^OWaNf0nytLoE|KNhYYo)#|*{1>p76-n((PK$p)Zs%h|2Y@Ft*o8>VK?CRe9I}gA z+IkO55)ad!G<^v5lLfE8M0oUi#ofP2o(biUI@umBjL)Iw?I!5g-N$Jb!LuL_7xwh4 z=U^l>^vap7oWOJ7^x7nh!$0dW*zKJ)H8|bei4jf2kW`rbRKZSUh++Wb^P(oN6@&N` zYLH$ba!iG!9(lhx6fwWHzP0u~wJ6aF8DK9c?;yXnn6!MSDBz7lJsKQ@RF-enkr|LC z4?!&9?Y?CjY}d#9s1)i7^_uj>E>DSS4R2dvJAi1N^zhoQaMDac*7{j#k!WvR*5m$s z!EnO1b21>8VFo05A9_603_%&JLOV8J{DH75K*vs6Nmxw$jE*~Nd0`H*gj_1s7$81m2R|SQ@2S zNR;e9#-1i&Ct-_PT!1dE^-)b1iCy)Ffjql>j-Ig@wEXcVA9(!bI_^s2SOz$8M_mX} z&<9q0&iW&Fe9I4E4>Cl9T5^?5Vrt6`Yx*mzXC$*>B!@fsBIJk3$H1>ZAzruIP%UjWvzVvyn@YN_5+>(?rx^~-Mx4IY)FEl z&aES3=$xw-L7$qP3oq&=DvQDa;Y`>(dFkSu7yKY_$BzRPm>rX?tsLlG(z`4tK^3LX z{(qSBBbr7lHuEWJjFq@%BgY^YikoEJB2s-y&L?k>|7B#Bx-O5>wQPM25J7=O0M#S{ z8yo9v>nCvJH@G_uoqZDfE@R_GEqL|1~PxzSkbF%QI*te|H@AslldCvPs3YWZO zsM-&d0F}lFwNf(b#!-gTj4%rIft#P+Jq;rZ9}lOJ_<0LO;eMXc&u^N?$QA9;g{*cd z!H3;t^3(2jYop^Cq7(dTZ34W-{Cnkt47d*UD_HykIWKk|F5BQo880hu0RyjVPYnaE zV&;m16Fp%)-U4%)H41fHg+FnzSaEuRG&qfxEoW_$4Te1=QhF6O;^bLJxOx&60`ZcV;UFuVBQ%JJg##3^UVmH<~rGd7s@+^v+e!-7_ z?J9Xes?>WoV(!s#&UmzmPh#Q`0BN~R%lZI-0N1< zjf>O)WeDoGGchP98!#F%TF6tUyrMuIu2pDm8jKkW)!{@O9=g(&sf{eyju=n4>{*N~*p(ZrA^@MEQK%3u%zBwVed=G^fg(`Vo zHy}t-P?AM<$x(upB0DE9aJ$oGb~1L3Z-nXZ5Vv5Efyys(!b^PJ{5Kv{G5T|ZN|srS z3XOxknSKc-QfZE-E*MX!?#~}skWYh-Ta7%f6Q!^m*Sb1(j@ht7^12!NOKl2pZ{uXQ z!asfTmqT43A*VrQPdf>1`u#^+S;gl%R=yyj)cv2N^KLk8?%vxr=6(v6ECEJ$-ue|G zG$(`cUg9+gKpTZWRUkkd&!3Z8?)ycSb(25XGT1QWEA@Yw;B^xneH;4V zba763KzQNbZKx|vgyPcuCMs%SnxzL8<#I!1&DfkBKN{x*t=zRoJE-u(gFZ z$HbZWkRXG5_s`xgX5!n1r25BSB&tPV`HgQAH;@vF;RCAOZ;yU<>#+F-Agz4*2ztij zc1|_N_DB6)1ZuI*xWEAJ}5-pl3Odg>9_mV#4Y_BB9(q zpdM6SSN|1}u|kTMw|n^;gZDp(;jDya{Zp@ig8e{o>9<#bN&jD6bChR{=mQ6(cFBud z$pruKO@8!qpb53;=W|em>Ps7Hv9%L#Qz&0VG<7y*+7<<{ zjLv*lRlF~DNuc!9jDO`%fv6RuVbwouVP6nhNQA9yvyyL0gtQko}iw5fWt^D$qa3IT|9%@7NxV~b;x{|wY zSA1jv*q3v=QeTWsa+k#+`r6xNDsk)}$3yX`BbBf`9nd2fyu9^XE3-otm$c?WP8F5o zLR_8WJg#3>LF%CQ!8|+Okm{is^wJul^$vV#%O|<_B-j{@?#kQJ2y{+1?QOyZSEi`R zOZ%LY7f*0sHUxzU_CsOc5r;ZPi7%G_=hFUjbpJLvM?h;z2e#B#&B$9%P3{lYkHgo3 zyO-e|x*9MDgv8NJHSBWfbl)h;sQikKrYA8aVm$qvkF#sES6ON&oDw;;F%?k}EMNK~ zUmUNqgx4JXk~pN)xg>6LvL-jtU4l`>(O1(V74`B}<;dk#`G;9joB8T0x^!s*55ncm ztvy1w#|P9glmfg$Vl2>pXR>zcFDh1KLqG%)i^fZ5hZ*=wQe7bqZr|3@=ybORACXGA zvPxpA0#)nPwduErD0?Dg9B~NeW>KDSL5=8|Xm=aNNKBI8BBD3-I}f$@xx?QBN|WNb zG?}N}&CNHT+U$9EL(RAB5dZ1`3TIEpk;*d0T<^Q&2?)sd4C(D*h~ONOccHPdtd z_! zn=6N?ude)&4>B#IN;&!aGStRcVE*@ll!E4mJQ4lZy@BI~q{HU?Y2c!u9zVu#OxWAg ztJK<>Qocco0#rO?ed|A3fl@SMr+<;kbT*r|q;YRma!r1ks|Ff-q%hm~pP*$1gq%K4 zDikuH+I($v#W?~s5drm+vec+MssBLX|yh#_AZYdIH`{EgxGmF8EmB(Yf-^*E~qyoC#b@(G3 zr8d^Eq)|WB_So3@ui8-re6WZ-?^ALl95^=ex6#VtvICJ2^+jifrU>;gTyDH)VdyOj zdeVt?W!x_^PU&b%mgh9~_7Uge-C{7(@c&0Sk{obB?t{Ke3{OR1k|7()=uT=bhs*YtLI%pJ*IUL3O?+{3Z&5P|u)fW0iW}oZd{K>s>Uw38e z$%W^F#=gGadp}xwFcp?ffeVa)-~%LjB=8KP&xm%&+d^$==2dl3#)?9{t?K zT-M)4Rlr6cj&DX}A&4BIrY~HyakIiXel0PTG4)Mvqz8r;qd#|6AvGWSti(B7_!umt zE}_+ktqx3A?-TD0AQ`>fzbxOy+>(lY@v!u@?4QKQsi-WPoj?GGjTIi+PD$|dRF<5| zd`9bgw?yZK?Q0FI`N!9^{K(cbE4PHSJF!0To#IkP(3{vaH41{;Glm=#^5TKB?UA^O zL`IIl;u@0P?e-X`DW?7vP439Fc0|Tdqxg3{ZGUQyIm>Yw0owAElg3)9fO2Ngzr%ta zWN)2(GyG@ud8LXG^@dzp8U~azInGcpj>qOy{)8#07kmveyA=`q>OA~(L#5Q=cjc>a zYs!s^*^aDIN6{qGQvELqq%bDCcpV$>QVk>6Ig?B~Kvo4JY@laYg(XH9xSib?PvY1Y zT`3q5AiabB3w`Q+Cdfaw`opb=t>!oFqL>)8$nHz>P<-gv%6V~+<=!l-{7^Few-76E zV}nfI3dW5bJRHpQd7*@g$(c?Zkv!Z#IdYd0N#FXs;vj4A?HJP06`;=HU2x>FMEAG` zvD-GGPCBV_dE$rr*?9$0i{Dy>i-79oA2*nsfa@%g*lI(HhU9BRU);^uZ!MVh7Dlz? zLSLm1Welhf<2Kirst*}#wFl~!ci9T*7fd!h0$U}q=RQu4gAHi|xW{1eA2!52-#1Nk zO622iyc=;&9F)RsT#;Y!c~DX><-#A<_seC652Xeuc#T!8^Qf341>b9O^L9I0#`EYX zl03D=Fn=oSnPQi8c;ABeaBr;B@k{8~|h!_+d=r--@nH zpcS#sTd}sC4dHN=6IzDxs+$L;dE~dvM|85H?lVmL5whN&3TG$eiDPEmeBE!Nn#!@| z4(h4wEfnJC%KDBth_+)2P!~jwPb4SE0rVsA>LRPZMSFJ zj6=OepU;)%hW7AMF2v>}?-M^#ohlPMYhcOhv_R#Gu0t$q`tOECMQ|0hr{C$AofrHK zvE+{%8Y#ApZQkRnFR73XSAKlip99ha%lMCnOn=02678*DCGV?|yZ(MS1*S8k-lB!m z|M}?@mZV99iik-3&6c=73>!;Zj_B*af@Xg`*63dYu3M`Q1h$yUgfiIlNhoh*WR$?2 zei+Kvu$zR;%_|Tj4~z_ig-8ygMg@2us*Ce_Pv(?Jin`>c-IR6xdG4k-mB;KcUVM=^ zr@lHE&59YIUhf3L152UM^Lq#!Iu=^2h|3QuTHADQ25v&fHaWlfoxp=czKE&!9aF1eDo^&4XXY``k9&6-;11jD|p0}T!XquRS z2jQ)ZAIZelFgeu`h;gZV?F8%!05b=3+ohO+t@@;Uzgr?kQ{EFXziqXIk{AsgG`$1i zKOu}MDhHU!uYTjRiJ)RMXoo#N(FQ4)w3V2a;WFqJp?K$`cdi+^|Mo9CGfVsyc&?i= zT?#DXRn}zY*`0NC*YfoYTQgdHz~#HHrBe_FkIDP0`}SgJI_t2;`n=y#h^lcYc_1s1 zH>2Ye9-3bE4806>Rc^42r{-fQ+fxpPB>y>~QeLPR}W_uauUkgiaC4cOS zQ~OF(O9^accs^!4F#JjH6il+(V6&iLRjRKsU|6irEQb&uH6}aw`lmS_87ET#^EP%O zA`my+7xUlgPx8Ne>o!+)H%z#J!ORPIuIb*O<04T?JMJB=g4ljZvnI=7MYbT>6Jg9hKE6+@Vc0Y?xH=TrmI+Gi zZ9x@}QPLWSRNA3HUAkNhktZm-`sBsyu+$~!Jxu%(%c$lDvCjlQZf)7#-H`=Pqp7iO zI6i}R3}4eV@kdqPE8-#h(eCA>eggW^Qjhg-xZ$63#`}tAJJQ)x`+PB9%7)%No}fkM zN(^GK+9cNUbDhtH8i=gUkw#p9-T$b>61lTKxTdVrP}fr^3P?;GZcjS9S>~eeb!m)! zvZb`B3&Z?t?0&5`NZUWWPDChG^d~Wl@*Je|E$m|nCv@EwbKp($>2$m+ct?HFvp`>L zD>GN|%XgXp1nUoYTSPl0Ef@s+pkfeboZtTpTmuR%K5K)-33YG00NP25xUk9 zG$|IUJwkg4d%8WbJlvdvOg_V|%TrGgO7m1UUauftMPRz)MrV|^jPR(y5=|p+$ z8Ew7-UvtxZBlIcX5F%A5k%V?wSUO`CeJ;RRnlg!YXP~r@4;nfd_CpvU!z2sZ#9#Ul z&hyE3ueH3ItR>fn`t_ME|2pd)J)&3bYv4eSEEjKYk)vH z+^owW=PHTUvpZm%X0U9`NY&0~P~7~y-!XMEc6wPijrd~0^N9Gl4>8K}@An$9ANmBv zQSUs}w21d<$EKWwyN&J-yUf%ZbX`C&@He##Nx~{5_Rf%F#_^P@ZO4&OLAd+t1(>@31SWHQ%RI!x$=Sk?xO+7w8_J|4bKP^93$`wbY?faDmR& zR9ue^#NSdMV0)g{pS@w)1oY*TVfI3;Yh72;3Df~@=Pq*UuAu8gl&m8lg;tXi``wMD7P|C5BrXEO${gR^(A(pQxWH^QYQrH z27o*KSm&!|)}Lth0*Zn!ni)B=hIS!cq)&bQh*4QbW536eT0-|1cbp%szKAJ`UCv)0 z%b-8(SFw(}uo+Qg0W)F0(_jJL;i$0ci9ChLELy#Y3MH00p}Pp7Jzv5CehR?O>;d;8 zA3jA-=C1|lZrLXl`BLme3jCpr3z8{DUf16IcQ=4PAmQRuh51b3g6!^K+E`KIPVKzPyc`xz-Tki~nkye&C&7|3FWkJjKJ~!|Z*tWpTVvw_6`9 z&x9NKyOw!yK7dh+9e)DU_j8@Z^zll}g!;RiEIe*p-1#eBZNdux`V^!Ju;=)2T*@Jf z*uuvS-ugRT7grko^zAzv9k2B|T|ZddlVyiKq+6()gj>g(3_SzO^r5efL$do*VfCg^ zcWR?0_7ZOP)x#F>#~{D*(ZA-FE2kkuDvc@ym6SSBJX7&tfYmUi2Yhb#qwWl>La&MApFe+bA|$E>lPgL|0=>i zWAJm3T%fsfD_tlsboumUFz@?BI^g(0-t$%bNjao8^fl*>VHbf;Grd7)4xdfVgW~8R zEZPj24!PF&@q5JB-F|x-9jvzpTPvuLODD;MeUdo}`e8HrIR@ANPL(HH=Uc{{uScQC z*u0-~W;|*XPx`rTDp|nx-Uai&li8WCVV;Ovq;$wmz(4`Al^dOFv=ww5a#0LVkEm@D zeeW7AnP(b3%zjj5;p}(}hox|9|;Q)gm~0>8F(6ls5+!eXxwrwntPeqC(`y9gPhA-b%Lk#nei z)3D?6`pv*mOa1tAwzaJk@_L*c!mxzhUt+y5^x0zD!(G0-!ON2${mf-!tQwUV_ep~pm%YMexs!?};OT$M^+hME+GD~Bu69%GVr;ai#o zpPY1oB+CiRLF(yPZibGab1ImNx{(qCvuc$6-E}v2Y@bzVm^`Zj$#HiNO^n(Ink{OG zUt(0+loj5!$ai_+{3a?m4%oa&LgqP@n;dZ>c zqF>52`?O3##c~VY&-KmCV_+`LCaixsO(uQRVOU7Z!@Wd{8SVlCanH#hbDP5pgIr@u zvg_2ye9^9+ERhc1hNJXGYxnp!HQ3Tt{g?#Z2CKViz%Usp%+mZ=`wpQ+O|%8dp)F0_ zTyq(^UB2Z~F76*&n&l7@baTItN)%`VSicgHRRviCS*HQL>D|m1mNv_4OSxm|Jtm7c zznyChrDq_seu|p$;N--zvdx5!Wmdcw*pG455UNn2Qx_Q@x0#J&*lg_aJ!I`140*YP zjM*zkYchPHEhk3&R#wES`{f%J;hR`_+KB3;TrA}-@wul%+TDxmBoCqRZCc$JP3ixx zDEu(b9Y%Ja@8|NvmZE+c!S9$)?uz{c9}OAx*8G*0 z+4*y$l?5bB?ISUMew(17pynuGa>Xj*II8-nPAkjN|4_RyDYK{|AVCyMrW-@Hrv>uB zvpO4%J5c}Xg0??a7CE+17H#%Chq5ixtk#FKgOB}4^J^>X_w4Z017e_$xp*K}XE-BZ zFmMnHu`@W5;FSCrDbR4(UK6Qv9D>s$oUNEDKxZh)c+}}Dkt*b0AdeY%g;JAc>EeWh z{Ktcl?cm}Wa!8Q1mO(*EZgDYr5vMRrpDt&zqE|w@+)$QFe)BwPVXb3LW5e}Ho&Zln zzF?40@rSFRTjP8qjrn!CO^2L7KlU6JhMVE=J#|WwPSl&Ew>56RzdqT?Rp)g@5G7UW zB7r=Qh+E1rj(=Z;Bd~7=6nw>ul5UxN@<_NW{zRBz@))5-9pp z%4c*$?nLy2eT+?-h_T)TS~)vgl9ce zcZTv?vq{o^s8rU0(h+$OJle(F3UJ_Y4+Gnwyx9`+>8U>1l8_#U_ zCEaRA?X=&^#mrpA=4d~ops!h%;fL#S>PL5%Qp=@)r-+K(>O|3wU+DI@I28w{hc#X; z67o(mP>-R#QQsnd5%3Nl67po~CW9R!K$D*^%_OOFckG??0Kzi)Kaou%J23jAH7I01 z*P!6OrS?n%B!v3JF6SfX1rofg)ily_qRP#_9iB4$7*j}qD^*rnYHwv(XkpL1nXghq zQt+-!Ty`W4p5l!uEA73*Z_tkNW9JLOjS>q|pr=k4!F{!5Ro388NSQ|WUUYl6Uil|= zbpC7q>qKroBOOpK_Im*R-9LfsrWay$Y8fw5Ka?1ehnD5G+mg4_)9W@n#++e+Jxr-9 z@|TEasm2jvi(K*o^NExE6iXmvrUZfl>5V|Ef${QF^Y_3#VP7w;VF;hCnx*g?8ni?L z7yGXRBZk9aUtH;T85dv&_s)Y&enQwURrF(`FDbg&{Tgq zbpnN-^$qQj8mOVM$vnf#H$`!g6E0OEe)!0dO!`yNznYNn!TS2lH2Dj~XhC0nSmiu( zr3vzawy};OfeBQ~9tkeHpd4$5)webt>Z)%*S<6OvnZlTa8Iuw>^2^`xn>AUhvP#pJTOTTs@O9ccBsH7JE8z9(5iowyZ*C8l!t z$_ExusU~H!Z24h3mgs$Rqyirf(gW$S0|eU5T*{ z!+Fi9&RRg7si_p_T63{?m98ve9hGBu?7mPW#y;$qEa$*JQx|+~%mE9pGd}Ovor*g5 zHjwK7%>>Y20FMus_ooM7{Ybo8M#=C4aW=7d@dh^==8Mvyss6FQ(F3_p(1pBc!<|$| zbzkjxapKxc9M&0{DEyGSqD>4*4*(-)9-oLm-}>6}ZDaW7-}Q5Rw|Aq@SlrM|Ov6hT zloOI~pNT(jI5^n`rO1pswimv?h@d5Mb%@|$O2nf=Hdk!=%kvYnR||_-^M)WAVZz0Ecz1|Lw(>6H!`>vcvCHiVZt+ia@S+`M{=-08a(2<fa^vUE~+Mnwd=tXG-iv}LDxwZR@D*N zN#6Fv#B2zW!6LQ*X9ar|BDdqdMWh(>_Jg40ETtl#-W{~0q6tZ9j>vW*m*z4MHrREN zIs;$`Wmo0SPH8$S_q6KE;Dx{+NsiKV#aZWI!;Nrlx5qBfj zk;FX*5H!XdaQYL&wbz7J#oO-(z)NRBw^|Q5YAQb^81}vy3$ESb-V&Bt5?W`brx<3L zAwXIQWXxKaQ2O)A8_B-9{6w_NwC+<^664yPvAGcj&)yO84($%*RJo_w6Dd@#|4qq# zKP0gs2+iIv5O{5K64=YZ{qcjQMkTOgW(|K1=^!nq+!yn67I8Mu?aE9>394nqsY-=3 zHW?`e#$Tt|(G~9Y1g|=Kj)rcX(T3P-j^cK-fVFmrX{{f7O6LrzI<@w>qQok1NS|{H zUPhNCH;!iCR90~$yOUxR?{D;DwugW|P^Nij_`_TGNtbd||9?Go$wJpCc!zwol7BWW zhq3mZSLW)it5;j^r8ea^tldUt1wa*N-7N>p*_ zoa58Pwoa*qTzH1)nV9D$Re=A6jZjDK)tw~8=wHNV2T2*57(8()Z>^-H68``!3DTRV zTS87X1x2X>ud{p_EI`x@LMg%&i60Ph)0S)N*!n(8xclKRGfUA2I$(Ob3Xo>gP;^m1 ze=*A-8yV^94O;U~Ut;0-?c7z@ZZw_k&dDRLtzK;_ZbDtXbL2IdAmtKAo#+S0v^k9d zRJCj=J$ePo*Y{~<3CL`Qw!z*muXjt>qIA@G5H_daiwXi&)=F7k7Ejl#YI4sVnYkp4Kfp{s$L&{G(!-xC1* zCCaX#KMYS6$k2fEI)H*;fN9kEk9?Pa*4qLHiM#ZHmG$zSH=<`LAKK-1JSuF~W!{l^ zj4g6y^HbT=(M5YiHEV5_!;pHRN02Ll`&NyI?xPZ5orZfz5Zd;coz`;449d3ZtR7zH zj?FhlW0L-BihjJK^&R#<1w-Sck-x%)L%J-iOZ}^2+p%jT{ZZe29`9L(QJ?E`9m$LF zN+cK1+*_~#ZRJc;)CuD9&DkDu{sd3Bj#I7&Mn0j|;Sz7gB;H@;GVQDKgsUqAi`>1Z zWs{^s%|&V)cW)e+EV2;AS1x!dL_zFqwB`S2!?RNzXKYCzA8-D#(e$gQl#Ju&tJVd9YvL(p8zOV*g8nv-}aKpxd_h)=B|@7DnpFg=WKK+4+~ug@iQ; zEeGMUnoC* zT2){sEmA#x^n7GbIA3ONwB`_e5A0;v4aU;;Kt=E|nWh@f&(CPJA5lQHde(J4 zL=rxd5ls)MW-0qx#ptzzrL9(e;WDrx{Xk*9^X`+a;ABqO=HTd4OtYYDTKL~09j%YEdF8$i|g9rkL9tsqf+_ZTL_*$98CpfEZWWKo-05WFddH?}xlx(T9i<1?h&& z=Q-gM8k^LS59GE5BX4+RzVGm92$NHEK1z~OvLUiE1&wvx8z8kL2>)Xwy3=0UDic1L z<06-m<+a{>zB}NY$;M|sa(q3n)DRBtsz8h)#lmD%5d9^jP%i$nLSVn2(eItJlgsYn zk^ySC{HJ3=_vdW8PLXy}s<7|0k#+n{T<0wz(4C9?o!$f*rY5)RV!06I1TmG=Ud?x6 zn4TA82pLYrH!_uSU8B>|0P7?wAMTT6(*k`hB)I*}>gr`b%^4cuAqD-k&KPD1Wa*<4 z^%#@lRAk5dTy?ZYSo4a#n5TDX?YO(61c;)24)*F(PuY`n#Q74XCFiKD;OK=mardYe zw3cP86%M777N`zcSxxbn(ySq`E+{Z2ZK88~CQD4&w)X0X+nn;siJe2uK~zjsfD`Kg zSU7fn#%@T#^S0^Y>OtQP(<~gc;c%tt1xySLmAD!uU1e|(_l2$I2!!;lW=d=;PUcB2 zN)YD++>;sk191W$yV#@6E^@U<+M-TUN8>&@y!DKO4Z-pMWsy2Xt^mU8e-B|^!M}E5 zBo6A!);7WU7hn>oJ$xDF)%*p(vVZXmI{`UkQMe11G?su)T8dlzsF90%q~4mVgkWzB zJ#%>1mkGEV+^hTM$%;uM>!<57DKLP#e2gc=v`zG@e2Pu=Gx?cs5tRX;!w`B z^NVSdwSQLwiTeUn(lXtj-~B0&?h6C4Dvh9@(=L_PA6uWEfw2P1X@n0IZhnY@8Y!yw^C%Y3ZbXXZ!Zx~FQF}h| zt>xQ#Q}s@5{p)Ka-r)>sM5%VTdD{T+_e*EYezqWxb|>5E*Swn07)9w+lL&|6!`T*H znWvcF8TL>|J~1CzPLC%@aB!I|9OoQorf%tAW1v^0KoxolnWJt=Az!XNcj90|fT4x*Y;rla-d#MpQ za~swl>8&gR+Y*831~miv4OWc7&akij?UX6^VENPlUAxHSqj^@Jn``Tx0s$GvDe`E zpur)zgixzcuDW^$wu;`h=!2ID`*m3YIsEK)1#vW=Qlt9M>Ycer!KyB76e_IS1ud{e zP9uIMuo*bL>jb|0mG}Uaw|pfI1-^%50L{;DT}p}nTTcuIu5JMNrym z*6cc{vW0{?4w!+gW}`)k~=da#d2s|J0M1+u{0e#^{~O#D8ZpXurQJ=s2L z3YHW@A?~z+WXI&K1K1>ZJ|FV4;)8udt}b6)d~QVcd_`?(i|DCIdHu)7G-$hAXYAoI z?Yg))LQ@<6h;*HA^L8=O3w^3hpE@4ywEdq)TT=iweE@EWWKiC=L_d1v8E1YdWO7K+ z&D~stKmjepTwQg;9Rt6{`mb$WQRN532Ei*v|ZVjDO6yWW!hjDltNP<1hn&*k&P z*FKI5NrzMvJgzR+8i&@tl!MOa23;2bc-D7cIqIR-W|1hlYb%omJFDqZruNa(rO|vu zZZ(w-Dv7wzm%G&A`P?4-yX>lyX;h-pg&Io%IhbbIe>xK?~ z@C+K`;RQZU<^Ufj&?!RLU3c9jf4S3Q_foIEKb9O~T&vk&fSj0$SN~4OJ%shP_QBJ` z;S7DWDe>^U!4i02c)BLa@*WH;!U9gSl>)*31pHSO2WO2kFruu=QM-X0gdllCg6fSbbOiXFmZGz- z{m?jQR0Lzf`(x|kmCv@?)>raba3b&M>pf!NQ zVfR`nzJ9g;qG5S)HOiB{Q38h=_-p(XgtLbJmtg+z=0|$d;d%ePKX_Qv9_Wy|UL1X$ z*m~7TXNv58(Wv$4v#N|r{z2l2lBzFUfTmq8Uv`f7y&ir|6nUtdXG@Xab>AT+q^l^k zbVT7+aRHYVF1nsdVxt9DhIi$7_2N;cE{3EdxO_BekSkn8K=WG|8q^#*< zR)={qgyNnpZs6Bthxt9`XL=-)Y_Se=6Z>RH_CGkK$WLws-Prn~!HW_YD3ci6A;Rgh zS1qpE2B!33GcN2EtIHn zAEc;S5g%T(?>KM$Tb@9PtCn6P`_@%3kHA<`R7)qh#{_xNUMhd(rX2wO=B?BJY+&Rk zkjN*YhZOr%|AGiQR2BawINDDI73#d7n#Z}s0;Lkax{NJSieRq_S^d3tLYcXnl~>(2 zXAesayD-c%8DZ!6*cyyzb|V%7E5CWYz~Qj^JGkB>-u9_8{s0#BdLj@2WCW*YL*fWl zYdg%XqM@$+BMDqcIY}LxQZx?N05v$U4K$2u9!_<4?pXiv_49#Us-d~m=g8QIR}^`J z8u>T$BOg9RIFRV@%G;+cI5z&#%xf^a29W7W!2*CToUx%G&fHUCTV9gBAmO2<^0@s+ zMXVPNHe5ekyf1;8>;7k&p#~wifQdoP&@BkIG8TS5i@LYlI|k3IrQTckgjpZV)sOKT zj@MOJeW&ypb*u3NRfzymrYsagDM<+rwC!}U+AFu-^nL|T`7@;TwNA5;cC-(}3j5IrZyfez4fj zqul`0*H=m4(=hStkR*(ifq(a(ef898Q$sLuXo0ai=SchEpp+6*nNM4UQ|`p@hYc~8}!$#5UA3i zRkzInU)~wy``qK@IIEAro`m}b*RwOBcge}fehVuVt>)#p3Hqx(Hq~RW(NcFAuUT{J z#3>kgcb^xquR%XgfmTwC1#%jyzeMMwbwPq+w+A?!0@ba;S%Qb2p1#c&wLsv`f-ZD*~2G7k+DC0~{aRPL{!%mh1~NRp(-pyiwvpHdb3Vt4!%3tYpHZ3cRKwzXylx zi`O|3MVTP1=u?K`PLH3~@}UckuHBCCKfWJ>xvfcg)q^=29$U@Dr6@4tNF(56aV;n1FzIDIlQ)tivFfh(+fY*ExK|am}v33#&>}f zBkCzQ^^<#Z$e|lsIRfV?>>wxo4uFdRhTwr}@>-evfu#pV8@~2V0~4)!d3!{yn{W^$ zNeJtWZ^7zZsM?0%x5+Ws?7HE6^IsD_iMAJ^bEON&udAz5VZLR}3%}4wO}sv-bH6Ug zDa0Azr48QC)P#zQL)PHnPVT?GJI#loxo~b}VeyVl(Ey;Ge>?=+0~6fbb$<jZS8soFi&7}cKzEO;0UM=s~-*o1R(+nP&IpxF5Xck|Bu zFPimL7wmK3O7DYq!tq1xrhNY^inBu2)Qi)g?x(OeZ_ESn8>?x!A=ezioLDt{Q*{cq zM?mh-xhrO{{>S8fNbDsb@g7hI2cGnL4^Hp?1Xr5RqFFhDc@C6+nGH-L_22u@F*N)YT~8%8B6(FHMf?}O6~%jd)C%GbU);3Pr-ohWp9aF9MLCx0OR zJz!1@ycEXUx!KR>bAK{gej2G8R&x!Qs2qc)3j9}nA6(vo9h=)%m|#IKp!*iwI*kK? zZQmeJGf<5i9Ki|>Dwy7BjsQ0#n#3CbY-%?RQDP0sZ?VM7``^8Oa31e@hs=lntA!~D zC=&hOS;&tL^Qs`RdFV#=e@B@h_x&LG|KyhSa}N#$HJ)$-cq_~bsfg0Dy;nwkI9jjC zyz>Xr_x@L*)rG!b6odi zMZ?<%uX7uwZ~?C{-3y3700Ogt_08Xaz#l+0cqac{yEr8o&V^h5cM#_YCa6XaDd^)3CfSBf-qEj}*FvECu*+>&6a;Dm*4HWezmfxZ$()$_2-Y;9i(F=Pg6+pW zFRLa);D3!3 zUx5zrf%ONO{!=wvfK5aHE1kha8cXcql3cy%GzSkyL4sN#r*Y+Q@%Dl^FW_L6Yfx07 z0jL_wk9`2F-Gl*IYy>(X+}@fC$5m`!gu+z`zmEXp|D<^f_ynKr!!0Ed?xC#yuM`cz zegl8O4`Gbg^5FEi0ARTxH21F_a>g$xdr&`h7mRNS%0HIU=pO)Hf|~;S|8IzXi15XQ zZ~y7uH~^U6^q+Nxl>FDQ|HRt~=f#C*j&a-pTHDQc|C1@~qX6J_Be9{woRm`1NgPZ9 z7X>8<3@5xdhg%I?G4?^gHNgLC+vyaX#ur{693g2Iu0=Qu9h$qE#0GT#&$>I*BuBgI z{&fBxc=l5_Owk)?$Jknc3J0tzjB>&b0Q$0mn|F;i&Th55|IZ%%)}aeu_eB2t;?a-) zpMjQxY9Q_6gV2Rg#{c>fCtMk-xB-GLGz9P3PhA7*Vj(I*{~u9b0TuNVwM~OGNJ=Ux z-JK#Lf}o&uNjK8Hgdif_AgL0POE)at-MLGH)Y1zq3*XQG`@ZL!vxftFIJ>{OGxOZ% z-kG`2GEn`|JFBLz%{1}8_0k@)ecZ29X>tYHwi_Szh4_yAvuazDP$g1yg3<1v-8vMZ z_5-j*6D(oHrRBfwoPdB@tEd1#*S*Cag82_zx{=vCsL;7Zsi~sc13!peJ0erT<_eJI z`!$Zl7Cb~1_UIhX|9$@+9VCiy==JB{LYe2)n?07X4Ew(c%(sEEKLSj30!q6AWjpa8 zkOF|j*1u0K$VsXHL=5-lg{OgiAb&r?#Y3Ery$cbU&AQQm7!NC#uIBAOcMH_nWJ9zh zA~L-JVVet3sm{|bWE-H4zDPOopL2%qp}GkFO>6%W#ByMeewAtYXN(xX*rcr1--s6R z|9KE80LI#WA~OBXs_Z6^;fgv%O06)Fbfl9%Bob7S8GMDOg`N|SY+FH&qD+2W7Csvu zokM_*zC!uO&p||H-bV;^u;{;D#4#`#hZA3bJmvrWHGT?08EE@JjG^Fp@Cis40s0ii z&H-3$8&yczYI+Ndh(E+Ku__xVI5Q4Khl@M8w+He~xZo`_bs$?!6F~e|Aa@8*ynVM3 z>LNFT9JMBdBY<_flx8ZKygXBXAo{Ok%gB-4r1@R1|1e>G7ZkI#1cf)I+XMd$Sa!&T z1`1yXj@z5R_-ghYG5iBD%upjPsA^j13!xuD)dLG@8T7E2{|5~Yh;(c_J=nvkjhl)C zZ*Vg$Y(jt~X#fSsj%S!S{F}%o@+=9g)i?Ak#~b;%7!dgGb%0;M(U@Cd zY(UAcjgzqe$E8iw3tbwI)uwn$dJ_a_`rXky0+f+xJ+Pj`24G)ID=fC`MVgI+!TY}# z@q%lpox4y(6tL2pwJ>G45Cp9va_cCd5YbZqu0Q0AdMpD9-+QwiWbog&0V@o$u{w&J z{SPc00AG221ZZY}h=dV`geN@k`LPSoUmr+H`-LAQ`ODDE6)5ttaxmoV6TlaJJpqBwLEr(@e&cFCau$%Q25^zi2eMF~3HYc>kR2Mr58`+g zRe?~GHD#60%(jFQ`#~sx)oTp&7fu)YAy^ks_0}D)hNHemZ3AwxZG`+Yuzq>@H&Ghu zboR?SxDjoz)buC+Tv;sQpzgpQ0*ZO|Z{3ibf&ASez3oX^hsKnst*v?{C|vJYH!*1) z#dm}PmDo}5uBf${@{(R-3pwE$om#b;ez0+YL}f0(QS3HX?DNRCxsWE`CQ~#af7~|M zmLCMG)u^E?>^WO@_jUp=cSm0;%+|WdA5sW)xsguSU9KG~^;;bG&KL#eTjmDJoEP3u zieG|~?M7bqtAOb;Jd3gsS4%(@OBVpIUYylK!54u!h|-MzFx|Kp>6!nJ*RK8t#@O(* z;PM^REei}9dj;~1L1eNb4nSOsHFERX2W7wjOY6Wn-kvQ1Ag0u08YoPTCf$Cd_a421 zgU@XYc&5b`gEe1Be7l0ptNZ-j6e$16M&0?i?%{v#lr5XPF=`jofHG1059(EVyCfM~ z>fXM*!4aHr>ch`}yO01QSw2Xdlbmiu zWaeLS=N8VSx6KCd>^GSva{7Ppq_?bwBS4FpNGFgmdPm>kDpyB4%rIaN-fGj@C5Zv~%4MY0`04(Q*lV=>a|RMa z?8Xw?DKp?sH)#E1U@0->4}io>f3O@wLHX--N~R?8;)Y+G;p5w|QbY63j9NrOy0046ZFn9wc9|-7J_qL@F zq2?7?Y~6PPf&!GNG(!UNy~sAGl5-nC#3|cMfq|{vP&_6v z1;XHeejdOIsrSTJpiAS+a9~}mp+bQu$@x*455#obM8}4oJ21gLRnGItgd901)T{xK zd9@4jg#LKSCRLLLxdZOS7+`)*v^ii0)wD}T2W!i^AMfhG8&Ws36CJQmfeo1RA*Fu| zxX*MkW!b~GzNU|Hs^&;!uxOETH3|vx<-?5<`1l;BVf$2C>bjcSAUiX9R8a!ys zJG7ZH z$4iiQzf^Zc0ME^KHi4>U=8@;G>-Xi?`#D<~Y=~uu)TFVbD5A6`&Fsi=pd6ztGAir* zIn>3A98&m5cI!KWAh?hZNKn3EFD4<}F5GH9ygvufjyY6W^b+ z+#aVjH6R?2ZLs7Y-?8xK+#r=(IdFxuVfQ!tBd8Y+l`|`F`0chV(xAWf2vyj=0)BWK zho)NkA-F)!`i257{$=LExMF1*zGCPSKT23Gl;61}X9z=zqMfvvwly%;D`gojAwO=D zC`cn(f)R$u9R?_P2DJT0_TNMH-lss}3Y0T{TZCPJ5XSx)-#>ib_IB6>1<8s3^9kTx z)Yz@Z-T^>_vMK*!z~?o~9jg6oudYV6fGX`e)-Jrh#~y66>dz2ZMDg?j-)=7hxkPXdf}W{$Yv{$Bgl04`{PGYske%u@i->mw9g zZ=oVNc@A=b6(?SmN^~Cl*#~aL04Wo1ZFfkxL0Q}Ht;5?kQ@=+?SH4dRSP!~&&{K`# zGZ+AWJc=^l6}NgjtgF`E*7t!5uIp|!VH)!J`0o)}Brp{pyL$t+@;tb$HQ7Pg0|t~2 z>Oz(W8ve(z{f?=DU;{u&%_~sgUvHpF^72&$lz;dOi*EQUH%LD5v+Y5GWPWOjCd6(U z6_7arUufOx-4XFX!3v$LP=0Rt?QHI0!Kap2&XjAK^8#*+SB^IGAoo$)?jnzflp0cC z4ozHv>Y$}ybk^U747rX{a&thQgck5FQ^;^yAo#*R;XneG1d?f>Bi-D+Kazids0(8* z4S58nwLjpj7Gjs`w%GyVvYD^9Ew~9;6PMN%XAuCD9+24d~(}$~!q2bk6(u+ujan#Otn*&M^ zdihVi2!z9S%tN6nU9yYeFmJN<@Y1*vG|gdj9zb}?u0c}1O;ne^ma`9}8w!^KvLiHw}TkBQT3Z` z%|Lu*e>;d<)x#l2X`|CQ1ICL2}tuCWOWbRqdS2ca9lWtZe4K)?vv?_ zK|i!s@1WT8b8X&-W+WlsUJARMnvj}4PS&(aLu5)hKvMKS#Bx0BENenaXEN6<;nYG! zbytR?g6WdFmj+35Wq&w^ThiP&&QTm|^)A^^aA)kfV@)=YvC5rfOLLk(2Sqty{}Gy|dpI0sYrt^b8r8o)o_*qJ5uo4^ z6X%yW_titX)%4&Th~&fqHQm|~%P0@}Kz7EUVd&yvJrSm&&)4E*5xaL6l;5GZ)`5Rb zknXDdL}wNn?`gi(FTE=jDEKRp^+kaOL)qXUrEK>onLwCC2h!WIIV0cFpKJ0n158@*gD+{qX6xkbK0q%mn&w^S90{*(C+eqS9dbxgJY z>nczWo3A0lx19to9&6%V*1du1bHV6aPG@dAG~g(=a(eKSG@b*WMmvyEb#TWUH395CoH{MKP+^uG&0=a`^06J} zc0sj^{adtRhN|5ZLkh@mJcxY%g#+w0)$DnettRe8jO))d?OFYbG#U3h@s*%;aSCaX zG=4ksNm7~rQy?Ti(uC@JUkyhv))xoGr_QQj^NK-dNnkW3jN&ZhDJbOToDmUQyJo$u z(+m)*VofVk_ni3^ww7@WI$>_`4d`y#T%lq-9YK(ngD`}9UhFovH{7?v(pU7xx1;8N z(YL}ttuUYESOncnoBs`H8OTP8KQ8kmb3S0WrgV^NI74|2jh`BFp)>LA`_#Sm_`Z7vsgndS%^kLxi&o3zIw|y_>Zm z_BMBEvrEu3ZA?f(njemQTgj5qmqE@ZJAf>p?cR`87y2zUDLp!A6Ir}_N$gZ63t{&= zlAb8UAXIJhfmD#wNrB44*#5RxJAN&E>8v51IiH!VP?(ISH3dPwIFB|OOWBFcrc2J* zXi3U6^M>+EpMW-bXfO01x1k{hYRX~S!B$T%)))J}BM--sP6BDft$PanaAeGEF2Z3M zaOuH{`E_fkdY~r0C=lh4F`~ogx8pH)QGNJs7Jt0jVFt6h6bI)ICID8~#fBmr8sdg_ zDWV)iXcA6a@%W}o9`VhC1Uo-tzmrrNTF!EDX=o5%ux^pow=OJ>J^@2pgrgWvx%;u@UhHc{A&yprS_0&-c*OK z)ZfUf)#qY>T*GA|>}3qBW8(ie0-*5l&FBr&)!31EMJfI!Y)Lq$RJQ#sd0h6C1ZR7X z)23L$l2ktS47=TTA3J=R5UkgKwuw%)9u)_nZJ@IPjZ~|bMY-hrk5~BxumaR4osrmJp!&IfnTLwDbL*w8bE*4j6?gAG9pr3z?TemM}#RJzE-^- zt4i%JjF@p~U-iB8nj863gvsr)3J!1B$;x`q0)q5OWqvffd0HK(;L-r&fBeY-1X-e; z2O}@7AbpZCc|=Zq6V8lv=j&7fA$%E+sO42V81R$Tx0Nm;{1{1dNR6h_be5Yg&47+jVTReckM zcFrHi@yk6W^Stp<;&>A?Ug&=>3?9Z9cE-rM)M`lyQb!WjYkJ&IRO`2yJB`DhDa8gq zLaXVjcf@xPYKG;y9M9CycaF}Hp8iKm?}7Imq?$t3PkS+p_}(%iWE=>m;qy>zj&U$B>O16?8k*t90x_Mtx3}hANMC{*k1(LSTaD7&5yLnG@WcHs!a@<@N>7#5 zwuda+(~E6q6v+_BuXLrqeYSa&W?x}&o*JC zYz?#Fg;pxPF3>{2ASA)o*(OF=KYk4Do;Tu}SLx~M+Pj^Vv^D@e>PqV(@m?*eF8v|e zq#-Sghc;VFz<%(fp>JNM!ohaH)9A~ndQutNlXGM*^#x_bD)x_q8$@6(%lcf7e+=biVza#16LU~kcn90e|aDm_-*1E0u%i& zt`+I!e5%Vp*#%ja9e`z}S<#_wHsdgpAO?kx_@K2;-0^nbosN)pOQAfQqmSx z3q9A@KiAiX)A)G#`R9`paB*-lZssmL{9M=fCc(Tsd{|#P2L}g>GsPpmewC6=%AdJj zpnNt9gPHQBu}lu^^-eA>E}v=sTl0?mt05B&%U)@2+-R7U^l@c^g8P3vwpu$5qzZoH z8q!Erp534lg{I#aUX|@4mg6x-POQ4-j1~K2Z&Bp)2X}|rk8s2$K)f=Z5V_IiNzgj@ zS~RC;N%uL|J7Q0oSe5rt9OR=pSdFDlNBx@5zPCHKiW5@@D$ZECpnYQIfbjsM#_*zq z+w&|#`)#M$vxG*UQ**AACw^voeRsG{ZKKBb%7OShWiz81O)!g0BzmPE8 zZf(ZBDIgE-S9wK6O~t{^UNYz;iXPj$2@g5}d1kk_-#fCm1U=}=-<>z5VN3tnLiv^q0$?mo{dLBi6S zs+BpEX4PWWV%Wy@p+u4igCH%jr8q&b^5~o>JCdZ5t6o%OpA_vU6&C+XW_w4j4t!72 zBVAIgPbvwcR^X2gUSJbmiYSI`hT`Mn*x0e69633W3k4oV)4_71>)mi!|0^TfmTHhl zvmOs0Z(v1TpK)Jb9}W&~?)7a_je8B+D6Gld#@X5RlOmZX!lMZA!CVb4r3!h)#m|!l zM@H05pD>j3F-E@HLQw;#S)V49Zbu}oXi+`tiN=kAh4Uqk_7&9O)AfZA-B2N==wa{S z#a!{VRht~UKR-@FU0RazkEVPu1ue6+un_H}fy6*`ITAG&C$Mvk0zJw%20_qnj1pGH z)JHOHA?>>}%v$)&uNeAt&bvniudi8K@Ws!E9psIVPU1&5`xt!k94KY*jv6TzkOdIeu@CW=)qpgae$w?N-UD z49!3G<8r1s%Fb+OcOaW4SfozmxzfZTI)<(Fpv)&d6ID0g*+ zx|-VXr9)Eqi}mZs$8mA=#wI3D7#VYZ{P5dlazR`j!;g<&@xE9;iA>@kVUjcY2olbS zu9DEygyG|SDas9Mm-=+JZ*wyn@NClW_Ts!KC-BOYnlJf{+r2(OBNjmPs43@~p0ZDB z6^<&>MJ!G>_Vu`=WoE`U0%-NKZ>ERlN5qe|Qs(-ZrzSq{#t|YF2TD;(%grge))-}i zj>Z2k=2(7$c-fad!2rWp6NEhm|{1NqI zJ+`L|Gb-p2nZHq!pGER^)VAY^yk4D9o}Ltv?}5 z^&0P!DVjH$IL0Q!XU|G&g~~p>DwTyq*=b(?PjUUR7IoS`zYUb_AKJ%IGiKW)d@uQa z_g9Pec6yM1a~`sG#H8KxkaL1~n4(69o-mva3&Z@C$44I^8}g>s==tBiHP+?kP?egTjh`JV^Y&yx1Gtnugi4P;*k^1u9u#lccVM5NTjH%($`g!%T zUT+&tRt>BP-axM!xLc&}>Pc|%_W)%u)ykK!%oxaHX;0T3vuXMz)(T?A@<*@RZndx5 z5a+o4<`y}A{{!aw@?YzzP(d&Sc)32$+ii2-U!EGh+OZsR!A`Z^e5EuHnLp|WA%9{* z-9t=blYRhwE9r;RFb1-k?-s7I&E1$?f~-M*26)WEa!~a(FcD<=Fp@dMeffVsdGs|6 zLCJ6>p>s(64^3V!#trSdr-{3A(5d-F&sK3G%ym> zu-y0J*sxDEr`nXD!Pt8fwrTfS9@t8T!S|tuEiUa>_cf4h8+x*Tt?B^bB71%Jmn{ZO z6^){ASAZYPn(D;SnMFg=dsbiEAdWTePo%Bz?cky%ud1oOM0WEEkmUXGrRP-iNA%L{ z$T*x_?7|h2+rlSYTx1DBEya_gsr+Y`m3S~As`j1Zmwc(hpB46!l>$mB1Q-p~iEM&> z%uDSNx1fS`?Gn5B4)bM1%V|Q0ez;7Id{7TQ9|X{rbvb z((x9w8q0G@?G5!o!F=&_{`(dzB*^n@64Z3fg1D}2TH_~cK2->M7t3ThPtQba&3DS?+`ptx~s%$xT6$n)- z+l=AVUkck{C@xQpV3LZLDOr>g8@ViBj0{4~cR9-BeTMV4*TWlj52s;& zrCnOD;y8lF;1bWY{xjU+?esXTX&-&=`p)LE3hfb-DO2O9fK{xA)l-`NH-oipD{&L_ zL?J|>O;1c2Y*)s{G{!-^Z?|PEu9o`)+f1=4{~|@BisAFRqInZqDm6zrfxT*G#x4hD<`<`{lA*P}^T*N`GYc&B>zbBD}L5 z);tEJj{#gihBX!Dj)zCD9@0(^NqrFqcfealt>*iFMZ zAvhIf&Y4vSk#U<9f(lw4VA;~_|}_DGA_uAmls3C zoS7p-r-;N4@ydpw%@Bw2RyiKwFTDC-IK(gU?3qcrKjIjJnmX-<>)Er70xNwBW9v!# zI;&Pfhk}#_nn-(UyFbbV!CUr}v@GhSrQwQeP4?499HCW&6Ao+b^Y22s3vaRgK1Q)_ z)+_@$k8yDo2tyLD2mF>RPQR3m7t%ZXsZO@@m}tCF&?^)l{GH*~k-yMDL^g@s-N|O0 z+*q9avuCg5@9s&WwSh_AGd$F%mkP0lFXb#r9iJGy5Rb=d4km3zZw_S*SgIx@(pUpaJ>6DF{KA^MD&cVFJ3nmq~7riW3o1}3YUq5}19{5+nxlm9% z0%x<)>v22>&B=TDs>tlzZHRRWH0`yL-|)5pV_ z@s#CKeX<}R+aAKh8ZcmrgG=nLXz(8FqnV!2QJPa?92=8f85RN(dFe zZN2YX*DDjft+Kh?UNkXcf1guUz>UX31c@D^9l7PMJ054i31N?u|${jl4wfG z?JdR6Tj3qjfs@*8Z{3R1%V@PC2b{ReCkAv&Eiy*n6P%Xj)r@E^o?!S0F`AuQpNJAe(TjWvy7@06t#vmJZPyFseGzWY5(+7VD zUbuREc&H(*8g*D$as9JIzVOt{o3}4%w76-tl?SSlMtJ0FGDBu#-WznCoe&K^9h=lq z$l}@l#8IK2UhE-!lvd})MN-F=bUH0Dhz@yJ^=AqS;Dy6UEcOv|vsRuetclOAqxJd* zSiUs*yQ{`>kGNt}#PjcYECnL3jzLW}$Sa$aA@W2b;)u;zrlaMm&6~HG(m4TcrAB-X zCrEn-$1O62y3xXSoRx;uj)b{tb+{(qsq$9s;y~i zzlY?UJa*;Qr_FvpJx;Ie zWL!;}?nT@(8x?hN@|%WbeLWU@J(c*^Y}?AaO;W&Z%@IfeYo4y6g|;(;0L)O z^v{~V6Dk|V9^>PzJ^v-k&2=$4InYvCEC(Wk?ZGoF>#gA84TfUB?L@4l|_1cQ$`0maOc3P;I$a`EIHM}cZbY!I2 z>*rlvl`g&_kL!m%o#P zn#jbOiYMpe4i%@V%_tEQ|_6rRDK zgs>GqC+}KHHi>-pGjG;Dwm~f730>u^p;O(n*eA3^I9!Us8Qtl6YVOzuIobaBqBs+H z8b#TK$;q70)=BRzwVvx^@&yT8r9m{w&@nVdx05m-{9F%Qa3Ex#?Gwxelka{(P%dfp z_h(05X?3+MAAHyAbRzUoUpVLoXx(g1O<^mu3#eL^k36(Xbh4;7N$Ss}&dkl=?w8kl zt0-RBvR2f9#U$5C`|e^hVq6YX$d9jjquVdeaNYh8*KO!m?>q1##EJpf%Apz0cGg?d zuN4vh>uDgvFC$vkYis|+{0pWN4Y3#wCdkNqWU$|PgQeYc6?I`QUdpp<{g;{WlStid_L<^tjExi zO~nQ`T3FEk{_3|RltFRMk>!4&&#_5!MLAR`Xb-ra~#p;zqj|NqMj(5HlXw&roG(++`#x;RCKmqlQ2s1&HCE|+7hthlUiv>yrc6S`RD=k)+D-}p?xKE-U^t{|$Ce_f~u*-CL{rbF*P9il^ zNYrFOIpE_FwJRF>X0Qymbu=ObilnrMg#8_-UE=?xj&5yV{SMvwS9yFI{w9Wl_CTXX zb$n&x$)U)4H!JK}0HXo!kFm+6GZ$X|B7#Oa>_mP1(XJ|%E=~F(y^QHn>4@X zWG*XnF~OU`{8{_wqoCMWm`>5b^qYu;Cjllt@&jo7;X}+c9G_iZ_4nI}sZZBuv+kKH6D=0%^xOgl5t(q?C5E8B6tEZ4CYv0`Ci8HkS45h5ufdMZ*L zfMZCsOF8`NSwe6>X6Z4%+vetDCXf&1j@{5uJT6m=rcnfH#%-pyvfW5tR+cF7ZadALW&V|I^ZY^fTULzEp_yIy%2h_}5AzQT z(lu-K6+*FbyuL9F`7i4o`xgXVv+^gV!XomM(F?U1@l}}&ZYQ2&7m}#c`k4E26P}DE zhy47hZ9A;K^c5q#FhitUEZLmnly5PSXE@XHs5!CDKpL`_CrqArcrelWH+uJWe{aQo zTy_`{`0#)L&aAj`()is)_J1k_fJ#C}NXE?ri~Oj`1%#P-Hpr3NaZeE5)gK#3NRWAX zU+y9w5kX}1UF&XtJ_j8hxSdf%8u$2dl2Ji5s@CYGF1a;5zSBJZkTMA4rjjvi?8+}N z@?`*Z&c&=gtL6r0o$-V(o=iHC2F!t*kiBq-M;Q^ zhu?nzL zmr9}9kFIxebj<5IeO%K2!OBMqR_w@8G;*)F8e+pw5C3b+uI`r)IbX`R=w*DGFG;Tk zmi*nQhWfd6W-XCA@L{fLJLV=-I?J)y!pob&(EJbB;@!OB*y+!l&h7@y)#N|Wt9=(-oC{5P6h#SohQmM?QE^b@sdh3g1A`!M2DHTsm7v1dw+0EgDIXkEJ*d9CRC7_+ z1TGEOu^Hzn+c?rGX>A(gA~z4UMaYv{`M zh~&d}&gS^;CQd%ong0(DdH?m@dGG@^_ty2oLRaYeMsM0x*5g1ahVP|Zh;AyLT8dcg z4-&uVpJhpMy$BQlYB?$kZVBm7vr)2f8g6(l>cEv)%FW{!2d#J!Y||oPY7TJ}ip)sPA>DOMT%i z9pkqZQBipnOBnpL;qD$yl35imH0Su(Q)=ItJ(%e%NnR13ka&;mvO|7LAeFRJ@$_Y= zkjNKwj8m;XFlVvl(B>7n$XHoN;1LN{M}u5Yu$nud!v9UVgo~{JzX<@PEo1uTO^SS1kLVt3#2mL(6-%N$ zgySAf@2U^HIG?({!3&g7aYw9>he*Ks2H-GK4^lS$-GVMQ-9y>EYn+v&oGuj zg=b3|R4iyWJX7A+_ZUKbzj(Gkn{q`}KICJjb2>D{)%^w{C{E+uH={_>yfSF11*qJt zsXR=nCD;-cXsUEtg>@$c|H>;4M~!}0qYTHvXBZjD!xW|U4iSs&HIr5B5BnhehHztM zW@O}IBqpr=c1 z#l!*fN9|ijC$svO7Ots@{hO*qTA_Qo6ycFCZO%mJbd8&4v}bz)rtNDRJ11feSJF3vz4mfur=9vBYx#ej8hH`c!yIu@SSSxT9$Hw z4kD+u21Zt+Jiqf_y`I=#P^X}5e)+aqPuJ_I#5((Xd75WousmhC^hQNFIij^vBVL@% zXZ7;~DiIS@LBJjO-fIG5wjI((Up{{GmlUov!~V8ycvey^dXBSclGL0m;S%iUNm{e# zR`c$?vS{>DnMCp9;>!=3-uzFuPv+NWl&P%Vh?I^WC=*wnR2}zgMh6|A=PG04VARCP zdZF{jaDK5HW+P%1dh+BQ^p53}vd;ArUM7%5z?z$ z6Evldx8v^u)F*{s%XQ$OyEMK!r4H0H6x!x}^Bb(Z`%V4pm%ijaqCui8EsLGOM7p4` zLJrEP)eP3Ynoo6$TYD3_GrHHCnXO9(`6U}a--wWbW8yQzCfVHyaQc$3O_ofjFeOi0 z^8>;ks4zcVppCTdr%o7?zZI2vIK-qo-UB~a-gGr}#@4e-9ryE(>mRN2%LiQiL|#T_ z9~L0)!S9{z__PzQ<0ZfTdVWe~v^rPv@vloh&2w!bBHQvT4pzV7&nC4pQP%04%&}bE z;_NOfp;{cb4ANMe>4Et6GV&8Np-mIEqFhY)JKHV`!X=NT%NxnaY)A!r&Mii}ao3A5 zR$kQB)ir>19BI~hxn%l6UCBn&MI>aI3(bq0IHbkW9-o&xH_m8ZVkPva(sxne)r#=( zp(5JcBO^tcCscFS%YPiF#T`VbM*c*;I zMo7SJa?j;=t5t=-pC7*WzSDbgsweY2Bk8naAHR#dhOS2;R8Uy?!w$pP<_ZPIj{MEV zrYquFH_#MuktGM(@cFv$){VmzE8j%$`fjR#{{mduc|DLiG(t^V18<8yu(Y?;?eCu5 z4xj4+#n`27f05eQoPnHv+YJ2}14mLyaA3U4-CexSD8>bfc)^T_>0lpORklQKMrr|{ z$)dYFg#`7AW|k$#7fo$|>aug-PkdHy+D(-Xgn;nRP)1Sv13gU_Z?;o4e;#$|32+(r?r4xv5Nv~k{c~0ujdPv7B~w9fx?k}_ zRt7(HsQ_Na1VgPt1?l^b9f?!sBUc?e?>Jd+PwxpFqu0w{vpB9NH6!7{Ms1T6A2q z$)~NbJ}8EhJ#UO{;{T>r|Jm}%)8FKIczWUe1m01@Q?E~>dpE0k3)uFp^rk8Es^VLN zV|%lsz>b;}{PbNV+81Vt6I0!6Y|41{r;O=T0RfiAU&-EP`dX4cHx9#k1;?fP9irbv z#vbHa_w-M%)%U45Yn}Jbo8SJ(4S5mXi+KMG)$@OP=}I-aDX*mIC3HOOT~Bu~j`zdd zCA8$p$^xl?BMs@AhlUsNxb09`sv`9pv6>gQ>&280Zm%QRKsj$M`_}Ez0UU~0KZ*W(hwdhYffgnqE zfjkNwdSUcHOd;%Boatc{bn+`(7P)ia;!)}F+0yyysY0gZ zE2E;L?RvMG8RhDA9i5MLwF^%T3rH~u$EN;_JnA$$vx$i*yPrb)Q(t4Rr?t-k8ID*F zgs4vEd>}u}7{N@@TH(+2yC_v^^dqV4MWBXg3*pFZ@YmlsFmSN(w73vkt-#-G@1nGV zSR;2_>K{s4{U>v#F;dwVkJLtO45}ZcguIxTM_}GrPPxp?&NgQ8-D4&AoZWB9Dcx_W zO-B*snNqL>-h0%e=a_FmWn)?D^f}DGM8tmueWOxCqvT=w8sz5pim%tzONcQ(JS9|B z^|Pp#-ya8~@08;hUqCp&Go2#8yeKu>?q&`x{rYA|bHH`aW+k>@;ICa|2H)Sr>Z(XK zIHUV8SY3EQQf#L^;HJO6UdL>3Esua_%PUT4BKX1wc||%f2PZIU@yc$EWyPau6h!Oi z=awE8-RoL@1>)MxOIkf{Fb%RPdinDu0hXusZi@>9ekd~wI{R259AG2yB!*djL5GYV zh0^sx>^*6)>~g^NP=pbMtAAz>9b2nZR$D86ueBJMqRd7g%Q9M6SQw&t`U@+Ww%Wck zwY-0dI_hbRBsR}?a&>}1X*7nV7t^dlP4RS!8oygcl7pSP*e@HYgV9gZ;R4ES1RxLF zZ^=j|%MPdZ9}Z7`e|c?p92K9Y5mlTR06i!#u3(SF`8gyUswSJGPfq|6N5cyp z>vDge>)DT=`KR=euYQI7sc?-++t-MmmS6KweiRqo{4*3Y*b4SZBJ3%f5n7bh`eYJ+P`iT*XEE6Cey-=t z21W>(U0j$mM*>2#+6Ls2PG6H_=YISO&ALa2$0V@fSbDNdA$HYUepml25s;75$)MO> z_+3)nYQMbBLWzBG#Po$A@8E2z)wE)KHQVra*WJ|I$24yzVXjLi+~2y!1j7#ND_LdS z8sOf(X}g7*8RPrnaVE2>8gkcHldt;{K(C%hOb_2#ie%uZ&l9E;)G-on@Y)P~^HWYU z>!CGD_7uu}ZVw3K0(BFAa=t$cv#{?J>&b`6OO8fT)ltv+>&`z9s8mw&4s(eVaBXr< zWb?4T4Z$KitW(glUMg8qMh~O7pf{6j3g5$h_A{f3*^m+UgJz5J6B_)_so2EabT>-P zSW+=o1c6^vi4Sc;t3=E~UyBII_dR64&WG6~@U_tSEkp{SyWof`cB<0^m*T0akKT8X zyOV#^@4(nd<97@Noans`+}`iUw_kf6tS|7$DSopzEA(*E8O-5C4h%7DXgy8?-C=f5 z#VM>LHNJd8eN95KqN;9a^z8>tqJg=wcd?StrX75E@VuZ~WhhzQT{EeFBpb2x=x9aU zW~>ciED>i%(W%`czt!c*;O*g2Yf|;gh)=1$w~i2Z&nOr;dL&-toTmUsdY87F%69|V zwxpzaGRANwc^RcT17o8AQ9)PU%;9HezAe=;{+CmIHVOUT!+(uP!`eap9>Q`t-L+AJ zd%;!eBQGu|@#D^whdm^X@!&5}kxMo{o=%r8=dS@0jV0L>;EBq=!n~ zU*zs{&&{>cj6gFK3D?_N5N)jJx^hA?cNPw%%A-^VvgY?nZz^wj!Z&O?!^B6l)JYc} zH`v&$bsp{ZXjHK9otWquV1652TleLh-WQN8q)!Ai$uEW~%B!oI?=mvmF?S&QOujMusxHHi^~ zrlRjB?oJ+xOCm#eJ|XjleUvG^Cbw-Nr@oMA2WOy^z@3SGCE6g5uZ&>@jQeoj`oZ}M z91#3hvtT|UrkEoMvHhO?DFI+2KsY z%O1EZ(DA906PoM8CSgvxmik+CH^FF9nl>K=WyQI8kRpEgi^?0T$KjJxS~8@R17ySa zF~sD4bRyl^440|@53@i_zltLO!W^cjr|>&pew`=#O%6iojG`+lE@PWTeKdCTAxX0s zCG6C1Mf-IWP#ku7qHout3PWZByS1Mz*_fHealF-S$u6M)Kd`i3GFxsFQJnmnaqNx) z%zg55OXKB8yr|!@54OpZc|tH*dNRA1-qe2OK>y&0QoI7()c|h(QsU&zn#bw|6pEB7 z!0|4~O9psnWHbdqpdRDUfv8={r`3OjqVvGWHN>oiVVIu!`Nwd!hvn|@KA;&**)K|o zA>vxYsugVpv*@EJY7cFBG<4-}twxR3=Q2Tc6Gc~%Vm+VvuhIb)VYFhULL4Uo%UENG zd`g`%%nFn?pyq5z$By>9rvmIBY`tH=-j7-DS9Dsds#e5GS`sPl89PT?)u$P8F2`6G zn)Sgl_PIr@{7m+X*2AH;QxGaNa2mnKcV%LB#fnI}0m*H%;px3Sd zOMGG2Cm)(~xzK3-0~e7{akWNY^? z+du8hbYnx*1TO+hI$|W6GSMF=iIf166QFZ&aBvI;vKC5J_KHuMxkfdbnCgDW+}_#F zw;Jhc8J?;+fNy)r;(Byu8a3I2O7NPF)$8-K`BpP!ltt^W<`c_HiM18M4Vl`5@#I2} zM42qF+%FZM9fsrMwqcOPd@csV=ra^ei_IlMu?YKJm=HBG7Mo2dx+b^->__HuX_%10 z<45!B8AAC8BGZ%EheoDu;56C+HVgSItZ%oh?A{eF05uv(8)cZKY`sD!3dRdv-&t?g z*7kRO=RAMgKN?)f=hD@E)Fe`?8;1wEMvbmTZ+QH^vB`KOF$M7uYbU5cH5|V|M3KKq zIr<7w@+33c1>;4*cpjaY2}k2Qt=EzGjBrI*F6`aRlpypC1Vd{jW2^ouUwJyQ$nJQP z$3K%d21gdtFN@azrZYqXOBSk`u6)1l&wNHn zuSMy|&k9H&XZMSAgfsVxOhp!;D?GC2tZi*mZ%w90Z>j%I2@TsFa^!v;Qo!`C0D?)z zt7NSQRWY|vusT%0yv;MF92^`R1A!9Ogtqzl=Jv5t1#g`Vpyn8QtytnRc zijvgteIgJ6LcoKXuOB|1{QiU0=+DZ~`bnJ|F23w(^ z;BHkAB#nX)!4P&?8y1C|{zJm;r3q6yQ`(pN4a1y!a`NSzbMMWa-}!$zpC_BgwXdHV zA8)Fz#opE~OeR@L%n+TAn}@I&^-`Ko#47dPl3>N^Bu$~WJQVaRS1D6=7KbFpt9ES% zb1r7WCdPhmx>DPAzdlTrh^b@oxKUZ@==n%*A7GViM;%&EtG=zSL0{j<;_(;@XTw5& z7_Mycy!7eY8-A`rWol^&YCJ=N*5>Cu*XpoP61OSap@;PSyX46UD^|x?55?XxMSfnV zuDQR%u(n{ct4L`77Mz9D-I|!3_0d`B=)W_QDU?ao`*wz_lR?h%lmv8uzE5deItz_W zQe+hhB{G3T>L&GfVX-CND;R9f|I!(*PyzrR9~%OPaCicDpP-S!UN@<)>a9|MIvN<; z9(xBx1V$?86Gxl90k8r31S^qz|1WZ6#pB`MlbzF(C8?B%RWavyC{ z(I#V<%@hULmfY9oX0~r6lY~;}IBuLgae2G$aVxZ1Rrc$_YS7*-^G)-;Thu>9kKD`(RBy* z@Ro}gS|ootF-c6%Q0r3nXp%Gq7_apZZwI4hAA2YF?xi-`q8>K{DB@Wnn}5bf>9JJQ?V*VaDTHvr{UckSlF>NH=mHP3~` zL>V}3&_2du!BAI^vx^I4WS?+(PwO){0VK;-hBy>~Z-0NG=9}-vhexf4LQfBTdPhT3 z>#q+G;V+VT+Ux&V5x@uC{o%*PifR_02Ps%tyhU48TX(7A(Jxn_jWg)X_OvafMJ8u= zw>MXw{qoY+r&=5Dpa%J1qEj|#KKv>nSL5u$;ECNg?*F*3>~#LIQ(=lUT(mK%8*@rO z*!1=%1!bT4g;{Rfuy}RRi7#?W-$zS%yc+r~TB1EF*JKtr;}&JRs>4!W&gvCF7MT+OO3a8I`=u zf%f~_Vt@BbGBc$SYV5UN>+DcBZbq3PdDuqh=J^55RP7fPbFY#UZl(;4l($Lu76XP9w<5G&};V0&RjzA;&FqqyV$| zJT$Nrc$NaWb^sfXlF29W91dV+q1fc`xnZmU%o=iN7c1``VOmNjAjUC zo-�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 TVBFY*00000NkvXXu0mjf9r-%p diff --git a/.asset/split.png b/.asset/split.png index f08f7213143b1c6707ca123ccf7b358a75739ecf..002a328581ed576b522b0237ec02a51b0debe034 100644 GIT binary patch literal 115169 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 UwJ?fn?#&G)c{RDR=VpQb17nkArvLx| literal 158821 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 u!H<|L;iN8Jki!8KD0f=W`v*n%>SqDyl> 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

J>)0B8veu0nw$=Ye`} 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¥=8=EG1NV`>tkc)zbb~2NiD|oc<8Uwd_F+* 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 z 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�i%%TG$Y6D``TPx~z{nPXD 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 diff --git a/.asset/sent.png b/.asset/sent.png index 45c9fc43235077482514f9198af707f4cd5f2460..9fb29584e602219151ca30ee200818d7709807df 100644 GIT binary patch literal 49755 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 Y=Mm54PiBQ}KqLeyae1+lcLu)y2eeK>sQ>@~ literal 76639 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