branch: externals/hyperbole commit cfaec1f79dac203b2911747b3084ea13ef6f5fd8 Author: Bob Weiner <r...@gnu.org> Commit: Bob Weiner <r...@gnu.org>
Fix hsys-org-enable-smart-keys init, hkey-ehlp and demo-org-hide-header-test --- ChangeLog | 17 +++++++++++++++++ hmouse-drv.el | 1 + hsys-org.el | 9 ++++++--- hyperbole.el | 8 ++++++++ kotl/kotl-autoloads.el | 48 ++++++++++++++++++++---------------------------- test/demo-tests.el | 18 +++++++++++------- 6 files changed, 63 insertions(+), 38 deletions(-) diff --git a/ChangeLog b/ChangeLog index 26cb169..ad6e99b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2021-05-11 Bob Weiner <r...@gnu.org> + +* test/demo-tests.el (demo-org-hide-header-test): Force full + Smart Key functionality in Org mode to ensure test always + works correctly. + +* hmouse-drv.el (hkey-help): Set hrule:action to 'actype:identity + so potential default org-meta-return command does not trigger + when displaying help for a default Smart Key context. + +* hsys-org.el (require 'set): Add explicitly since set:intersection + is used in this library. + (hsys-org-enable-smart-keys): Initialize to 'unset + and then set default value in hyperb:init so that needed + hyperbole-mode-map is initialized; otherwise, customizations + are loaded before Hyperbole is initialized. + 2021-05-10 Bob Weiner <r...@gnu.org> * kotl/kview.el (kcell-view:label): Remove unneeded properties diff --git a/hmouse-drv.el b/hmouse-drv.el index d0ed4da..923a71f 100644 --- a/hmouse-drv.el +++ b/hmouse-drv.el @@ -859,6 +859,7 @@ Return non-nil iff associated help documentation is found." (or action-key-depress-position assist-key-depress-position))) (mouse-drag-flag (hmouse-drag-p)) (hkey-forms (if mouse-flag hmouse-alist hkey-alist)) + (hrule:action 'actype:identity) hkey-form pred-value call calls cmd-sym doc) (while (and (null pred-value) (setq hkey-form (car hkey-forms))) (or (setq pred-value (eval (car hkey-form))) diff --git a/hsys-org.el b/hsys-org.el index 948ce34..b1b493d 100644 --- a/hsys-org.el +++ b/hsys-org.el @@ -31,6 +31,8 @@ (require 'hbut) (require 'org) (require 'org-element) +;; Avoid any potential library name conflict by giving the load directory. +(require 'set (expand-file-name "set" hyperb:dir)) ;;;###autoload (defun hsys-org-meta-return-shared-p () @@ -43,10 +45,11 @@ t))) ;;;###autoload -(defcustom hsys-org-enable-smart-keys (if (hsys-org-meta-return-shared-p) - 'buttons - t) +(defcustom hsys-org-enable-smart-keys 'unset "This option applies only in Org major/minor modes when hyperbole-mode is active. +If set to 'unset prior to loading Hyperbole, then Hyperbole +initialization will set its value. + The following table shows what the Smart Keys do in various contexts with different settings of this option. For example, a nil value makes {M-RET} operate as it normally does within Org mode contexts. diff --git a/hyperbole.el b/hyperbole.el index f7f6209..24668ef 100644 --- a/hyperbole.el +++ b/hyperbole.el @@ -644,6 +644,14 @@ If FLAG is nil then text is shown, while if FLAG is t the text is hidden." ;; overriding Hyperbole keys. ;; (add-to-list 'emulation-mode-map-alists `((hyperbole-mode . ,hyperbole-mode-map))) ;; + ;; Initialize this option after hyperbole-mode-map has been + ;; initialized, if not yet set by the user. + (when (eq hsys-org-enable-smart-keys 'unset) + (customize-set-variable 'hsys-org-enable-smart-keys + (if (hsys-org-meta-return-shared-p) + 'buttons + t))) + ;; ;; Hyperbole initialization is complete. (message "Initializing Hyperbole...done")) diff --git a/kotl/kotl-autoloads.el b/kotl/kotl-autoloads.el index 28348d1..4f1dfc1 100644 --- a/kotl/kotl-autoloads.el +++ b/kotl/kotl-autoloads.el @@ -1,4 +1,4 @@ -;;; kotl-autoloads.el --- automatically extracted autoloads +;;; kotl-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*- ;; ;;; Code: @@ -6,7 +6,7 @@ ;;;### (autoloads nil "kcell" "kcell.el" (0 0 0 0)) ;;; Generated autoloads from kcell.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kcell" '("kcell"))) +(register-definition-prefixes "kcell" '("kcell")) ;;;*** @@ -23,7 +23,7 @@ STILL TODO: \(fn EXPORT-FROM OUTPUT-TO &optional SOFT-NEWLINES-FLAG)" t nil) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kexport" '("kexport:"))) +(register-definition-prefixes "kexport" '("kexport:")) ;;;*** @@ -37,23 +37,21 @@ Return the new kview. \(fn FILE-NAME)" t nil) (autoload 'kfile:is-p "kfile" "\ -Iff current buffer contains an unformatted or formatted koutline, return file format version string, else nil. - -\(fn)" nil nil) +Iff current buffer contains an unformatted or formatted koutline, return file format version string, else nil." nil nil) (autoload 'kfile:view "kfile" "\ View an existing kotl version-2 file FILE-NAME in a read-only mode. \(fn FILE-NAME)" t nil) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kfile" '("kfile:"))) +(register-definition-prefixes "kfile" '("kfile:")) ;;;*** ;;;### (autoloads nil "kfill" "kfill.el" (0 0 0 0)) ;;; Generated autoloads from kfill.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kfill" '("kfill:" "prior-fill-prefix" "set-fill-prefix"))) +(register-definition-prefixes "kfill" '("kfill:" "prior-fill-prefix" "set-fill-prefix")) ;;;*** @@ -151,14 +149,14 @@ copied since there is no need to copy it to import it. \(fn SOURCE)" nil nil) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kimport" '("kimport:"))) +(register-definition-prefixes "kimport" '("kimport:")) ;;;*** ;;;### (autoloads nil "klabel" "klabel.el" (0 0 0 0)) ;;; Generated autoloads from klabel.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "klabel" '("klabel" "kotl-label:"))) +(register-definition-prefixes "klabel" '("klabel" "kotl-label:")) ;;;*** @@ -172,21 +170,21 @@ See documentation for `kcell:ref-to-id' for valid cell-ref formats. \(fn REFERENCE)" t nil) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "klink" '("klink" "link-to-kotl"))) +(register-definition-prefixes "klink" '("klink" "link-to-kotl")) ;;;*** ;;;### (autoloads nil "kmenu" "kmenu.el" (0 0 0 0)) ;;; Generated autoloads from kmenu.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kmenu" '("id-" "kotl-"))) +(register-definition-prefixes "kmenu" '("id-" "kotl-")) ;;;*** ;;;### (autoloads nil "knode" "knode.el" (0 0 0 0)) ;;; Generated autoloads from knode.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "knode" '("knode:"))) +(register-definition-prefixes "knode" '("knode:")) ;;;*** @@ -196,14 +194,10 @@ See documentation for `kcell:ref-to-id' for valid cell-ref formats. (autoload 'kotl-mode "kotl-mode" "\ The major mode used to edit and view koutlines. It provides the following keys: -\\{kotl-mode-map} - -\(fn)" t nil) +\\{kotl-mode-map}" t nil) (autoload 'kotl-mode:example "kotl-mode" "\ -Display the Koutliner example file for demonstration use by a user. - -\(fn)" t nil) +Display the Koutliner example file for demonstration use by a user." t nil) (autoload 'kotl-mode:overview "kotl-mode" "\ Show the first line of each cell. @@ -235,46 +229,44 @@ Display fully expanded tree rooted at CELL-REF. \(fn &optional CELL-REF)" t nil) (autoload 'kotl-mode:is-p "kotl-mode" "\ -Signal an error if current buffer is not a Hyperbole outline, else return t. - -\(fn)" nil nil) +Signal an error if current buffer is not a Hyperbole outline, else return t." nil nil) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kotl-mode" '("delete-selection-pre-hook" "kotl-mode" "yank-"))) +(register-definition-prefixes "kotl-mode" '("delete-selection-pre-hook" "kotl-mode" "yank-")) ;;;*** ;;;### (autoloads nil "kotl-orgtbl" "kotl-orgtbl.el" (0 0 0 0)) ;;; Generated autoloads from kotl-orgtbl.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kotl-orgtbl" '("kotl-mode:transpose-lines-" "orgtbl-"))) +(register-definition-prefixes "kotl-orgtbl" '("kotl-mode:transpose-lines-" "orgtbl-")) ;;;*** ;;;### (autoloads nil "kprop-em" "kprop-em.el" (0 0 0 0)) ;;; Generated autoloads from kprop-em.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kprop-em" '("kproperty:"))) +(register-definition-prefixes "kprop-em" '("kproperty:")) ;;;*** ;;;### (autoloads nil "kprop-xe" "kprop-xe.el" (0 0 0 0)) ;;; Generated autoloads from kprop-xe.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kprop-xe" '("kproperty:"))) +(register-definition-prefixes "kprop-xe" '("kproperty:")) ;;;*** ;;;### (autoloads nil "kview" "kview.el" (0 0 0 0)) ;;; Generated autoloads from kview.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kview" '("kcell-view:" "kview:"))) +(register-definition-prefixes "kview" '("kcell-view:" "kview:")) ;;;*** ;;;### (autoloads nil "kvspec" "kvspec.el" (0 0 0 0)) ;;; Generated autoloads from kvspec.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "kvspec" '("kvspec:"))) +(register-definition-prefixes "kvspec" '("kvspec:")) ;;;*** diff --git a/test/demo-tests.el b/test/demo-tests.el index eb4d671..16ff37a 100644 --- a/test/demo-tests.el +++ b/test/demo-tests.el @@ -242,13 +242,17 @@ "Hide org mode header." (with-temp-buffer (org-mode) - (insert "* 1\n** 2\n*** 3\n") - (goto-char 1) - (should (not (org-check-for-hidden 'headlines))) - (save-excursion - (action-key)) - ;;; (org-hide-entry) - (should (org-check-for-hidden 'headlines)))) + ;; Without this next let, default Org behavior may occur which + ;; inserts a new heading when org-meta-return is called rather + ;; than collapsing the existing tree of headings. + (let ((hsys-org-enable-smart-keys t)) + (insert "* 1\n** 2\n*** 3\n") + (goto-char 1) + (should (not (org-check-for-hidden 'headlines))) + (save-excursion + (action-key)) +;;; (org-hide-entry) + (should (org-check-for-hidden 'headlines))))) ;; Manifest (ert-deftest demo-manifest-test ()