From 6ef196e306320804b80a502dab29dbafd12285bc Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Wed, 3 Jun 2026 07:07:52 -0500 Subject: feat(render): open a fetched view folded to the issue headings The header set #+STARTUP: show3levels, which opened a fresh view with each issue's Comments heading already unfolded. That's a level of detail past what you want when scanning a list. Drop to show2levels so a view opens at the parent plus the issue headings, with comments and bodies folded under each issue. pearl--restore-page-visibility re-reads #+STARTUP from the buffer after a repopulation, so the in-place rebuild path follows the new depth without any other change. --- tests/test-pearl-format.el | 8 +++++--- tests/test-pearl-todo-keywords.el | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/test-pearl-format.el b/tests/test-pearl-format.el index ec0e1e0..ee15a2a 100644 --- a/tests/test-pearl-format.el +++ b/tests/test-pearl-format.el @@ -149,11 +149,13 @@ sort together (org-sort on the parent) instead of being orphan headings." (should (< (string-match "^\\* My open issues$" out) (string-match "^\\*\\* IN-PROGRESS" out)))))) -(ert-deftest test-pearl-build-org-content-startup-show3levels () - "The page opens folded to headings (parent, issues, Comments), bodies hidden." +(ert-deftest test-pearl-build-org-content-startup-show2levels () + "The page opens folded to the parent and issue headings; Comments (level 3) +and all bodies stay folded, so a fresh view isn't a wall of open issues." (test-pearl--with-default-mapping (let ((out (pearl--build-org-content '()))) - (should (string-match-p "^#\\+STARTUP: show3levels$" out)) + (should (string-match-p "^#\\+STARTUP: show2levels$" out)) + (should-not (string-match-p "^#\\+STARTUP: show3levels$" out)) (should-not (string-match-p "^#\\+STARTUP: overview$" out))))) (ert-deftest test-pearl-build-org-content-no-shared-file-id () diff --git a/tests/test-pearl-todo-keywords.el b/tests/test-pearl-todo-keywords.el index 0555a4e..e8250dc 100644 --- a/tests/test-pearl-todo-keywords.el +++ b/tests/test-pearl-todo-keywords.el @@ -127,7 +127,7 @@ "The header rebuild scans the final buffer so every visible heading is declared." (let ((org-todo-keywords '((sequence "TODO" "IN-PROGRESS" "|" "DONE")))) (with-temp-buffer - (insert "#+STARTUP: show3levels\n#+TODO: TODO | DONE\n\n" + (insert "#+STARTUP: show2levels\n#+TODO: TODO | DONE\n\n" "* View\n" "** IN-PROGRESS Issue A\n:PROPERTIES:\n:LINEAR-ID: a\n:LINEAR-STATE-TYPE: started\n:END:\n" "** DONE Issue B\n:PROPERTIES:\n:LINEAR-ID: b\n:LINEAR-STATE-TYPE: completed\n:END:\n") @@ -141,7 +141,7 @@ "A retained heading with no STATE-TYPE drawer is classified by org-done-keywords." (let ((org-todo-keywords '((sequence "TODO" "|" "SHIPPED")))) (with-temp-buffer - (insert "#+STARTUP: show3levels\n#+TODO: TODO | SHIPPED\n\n" + (insert "#+STARTUP: show2levels\n#+TODO: TODO | SHIPPED\n\n" "* View\n" "** SHIPPED Old Issue\n:PROPERTIES:\n:LINEAR-ID: a\n:END:\n") ; no STATE-TYPE (org-mode) -- cgit v1.2.3