emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/racket-mode 381d9320de 2/4: Limit show/hide test submodule


From: ELPA Syncer
Subject: [nongnu] elpa/racket-mode 381d9320de 2/4: Limit show/hide test submodules to racket-mode
Date: Thu, 9 Nov 2023 13:00:07 -0500 (EST)

branch: elpa/racket-mode
commit 381d9320dec8d3624aa1bedbd7acbca1254dea55
Author: Greg Hendershott <git@greghendershott.com>
Commit: Greg Hendershott <git@greghendershott.com>

    Limit show/hide test submodules to racket-mode
    
    Won't work in racket-hash-lang-mode for multiple reasons; add comment
    about those.
---
 racket-edit.el | 16 ++++++++++++----
 racket-mode.el |  6 +++++-
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/racket-edit.el b/racket-edit.el
index dadbaa532a..f4475c8c92 100644
--- a/racket-edit.el
+++ b/racket-edit.el
@@ -24,11 +24,19 @@
 
 ;;; code folding
 
-;;;###autoload
-(add-to-list 'hs-special-modes-alist
-             '(racket-mode "(" ")" ";" nil nil))
-
 (defun racket--for-all-tests (verb f)
+  ;; For this to work in `racket-hash-lang-mode', (a) we'd need to
+  ;; learn the test submodule spans from analysis of fully-expanded
+  ;; code (as we can do on the `pdb` branch with a sufficiently new
+  ;; Racket). And then, (b) we'd need to do the hiding ourselves,
+  ;; without `hs-minor-mode', which AFAICT demands regexps for block
+  ;; starts and ends. We'd want a "positional" not regexp flavor,
+  ;; which AFAIK we'd need to implement ourselves.
+  ;;
+  ;; TL;DR: For now require `racket-mode'.
+  (racket--assert-racket-mode)
+  (unless (bound-and-true-p hs-minor-mode)
+    (user-error "hs-minor-mode is not enabled"))
   (save-excursion
     (goto-char (point-min))
     (let ((n 0))
diff --git a/racket-mode.el b/racket-mode.el
index 8ed1345b9a..e594d18192 100644
--- a/racket-mode.el
+++ b/racket-mode.el
@@ -175,6 +175,11 @@
   (setq-local indent-line-function #'racket-indent-line)
   (setq-local indent-tabs-mode nil)
   ;; -----------------------------------------------------------------
+  ;; Code folding
+  (add-to-list 'hs-special-modes-alist
+               '(racket-mode "(" ")" ";" nil nil))
+  (hs-minor-mode 1)
+  ;; -----------------------------------------------------------------
   ;;; Misc
   (setq-local local-abbrev-table racket-mode-abbrev-table)
   (setq-local paragraph-start (concat "$\\|" page-delimiter))
@@ -185,7 +190,6 @@
   (setq-local outline-regexp ";;; \\|(....")
   (setq-local beginning-of-defun-function 
#'racket--beginning-of-defun-function)
   (setq-local imenu-create-index-function #'racket-imenu-create-index-function)
-  (hs-minor-mode t)
   (setq-local completion-at-point-functions (list #'racket-complete-at-point))
   (setq-local eldoc-documentation-function nil)
   (add-hook 'xref-backend-functions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]