aboutsummaryrefslogtreecommitdiff
path: root/internal/config
diff options
context:
space:
mode:
Diffstat (limited to 'internal/config')
-rw-r--r--internal/config/config.go4
-rw-r--r--internal/config/config.toml1
-rw-r--r--internal/config/config_test.go34
3 files changed, 38 insertions, 1 deletions
diff --git a/internal/config/config.go b/internal/config/config.go
index 74588aa..5102d38 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -24,7 +24,7 @@ var seedTOML []byte
// Version is lectio's release version, shared by every binary's
// -v/--version output (lectio, lectio-ui, lectio-web).
-const Version = "0.2.0"
+const Version = "0.3.0"
// validVersions are the five scripture versions lectio understands.
var validVersions = map[string]bool{
@@ -108,6 +108,7 @@ type Config struct {
WebDisplay string `toml:"web_display"`
WebMono bool `toml:"web_mono"`
WebVersions []string `toml:"web_versions"`
+ Pager string `toml:"pager"`
Parts map[string]map[string]bool `toml:"parts"`
}
@@ -139,6 +140,7 @@ func Default() Config {
WebDisplay: "horizontal",
WebMono: false,
WebVersions: nil,
+ Pager: "",
Parts: nil,
}
}
diff --git a/internal/config/config.toml b/internal/config/config.toml
index c1f97db..49cca7f 100644
--- a/internal/config/config.toml
+++ b/internal/config/config.toml
@@ -12,6 +12,7 @@ web_port = 0 # lectio-web port; 0 = try 1099, then any free port
web_display = "horizontal" # default lectio-web layout ("uklad"): "horizontal" (stacked), "vertical" (columns), "interlinear" (verse-by-verse)
web_mono = false # lectio-web: monospace reading face for any theme (also a top-bar "mono" toggle)
web_versions = [] # lectio-web: which versions start toggled on, e.g. ["wuj", "vul"]; empty = just default_version
+pager = "" # send reading output through a pager, e.g. "less -R"; empty = off (also -P/--no-pager)
# Hide reading parts you don't want. Every part shows by default; a part is
# hidden only when you uncomment its line below (each is preset to false =
diff --git a/internal/config/config_test.go b/internal/config/config_test.go
index 616f0cd..0f7bea8 100644
--- a/internal/config/config_test.go
+++ b/internal/config/config_test.go
@@ -144,6 +144,40 @@ func TestUILanguageNormalizesUnknown(t *testing.T) {
}
}
+func TestPagerDefault(t *testing.T) {
+ def := Default()
+ if def.Pager != "" {
+ t.Errorf("Pager default should be empty, got %q", def.Pager)
+ }
+}
+
+func TestPagerLoadsFromSeed(t *testing.T) {
+ dir := t.TempDir()
+ t.Setenv("XDG_CONFIG_HOME", dir)
+ cfg, err := Load()
+ if err != nil {
+ t.Fatal(err)
+ }
+ if cfg.Pager != "" {
+ t.Errorf("Pager from seed wrong: got %q, want empty", cfg.Pager)
+ }
+}
+
+func TestPagerLoadsSetting(t *testing.T) {
+ dir := t.TempDir()
+ t.Setenv("XDG_CONFIG_HOME", dir)
+ os.MkdirAll(filepath.Join(dir, "lectio"), 0o755)
+ os.WriteFile(filepath.Join(dir, "lectio", "config.toml"),
+ []byte("pager = \"less -R\"\n"), 0o644)
+ cfg, err := Load()
+ if err != nil {
+ t.Fatal(err)
+ }
+ if cfg.Pager != "less -R" {
+ t.Errorf("Pager = %q, want %q", cfg.Pager, "less -R")
+ }
+}
+
func TestPartShown(t *testing.T) {
var empty Config
if !empty.PartShown("new", "psalm") {