Fallback to selective-display if not in hs-minor-mode. Make corresponding key binding global.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Wed, 11 Dec 2019 22:39:13 +0200
changeset 1604 72fa4385c7ba
parent 1603 23bc0ad590b9
child 1605 bbb4f7c881ff
Fallback to selective-display if not in hs-minor-mode. Make corresponding key binding global.
.emacs-my
--- a/.emacs-my	Wed Dec 11 00:35:10 2019 +0200
+++ b/.emacs-my	Wed Dec 11 22:39:13 2019 +0200
@@ -3807,7 +3807,23 @@
 
 (require 'hideshow)
 
-(define-key hs-minor-mode-map (kbd "s--") #'hs-toggle-hiding)
+(defun my-selective-display-toggle ()
+  "Better alternative to 'C-x $' using current column as threshold."
+  (interactive)
+  (set-selective-display
+   (unless selective-display
+     (1+ (current-column)))))
+
+(defun my-hs-toggle ()
+  (interactive)
+  (if hs-minor-mode
+      (if (condition-case nil
+              (hs-toggle-hiding)
+            (error t))
+          (hs-show-all))
+    (my-selective-display-toggle)))
+
+(define-key global-map (kbd "s--") #'my-hs-toggle)
 
 (add-to-list
  'hs-special-modes-alist