diff options
author | Yuchen Pei <hi@ypei.me> | 2022-09-23 16:45:36 +1000 |
---|---|---|
committer | Yuchen Pei <hi@ypei.me> | 2022-09-23 16:45:36 +1000 |
commit | 1699e7873395703720c607a0254909aece16bae7 (patch) | |
tree | 5129ba34dfc33ee6c3f5e99e8a43b73ecdb3fccd /hcel-outline.el | |
parent | f73cbee6f83f948202d0ea3fb8775b49562295be (diff) |
Separating out hcel-minor mode to avoid recursive requires
Diffstat (limited to 'hcel-outline.el')
-rw-r--r-- | hcel-outline.el | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/hcel-outline.el b/hcel-outline.el index 962e5aa..a192e07 100644 --- a/hcel-outline.el +++ b/hcel-outline.el @@ -20,6 +20,7 @@ (require 'hcel-utils) (require 'hcel-source) (require 'outline) +(require 'text-property-search) (defvar hcel-outline-buffer-name "*hcel-outline*") (defvar hcel-outline-indentation 2) @@ -42,8 +43,7 @@ (setq-local outline-regexp "\\( *\\)." outline-level (lambda () (1+ (/ (length (match-string 1)) hcel-outline-indentation))) - buffer-read-only t) - (hcel-minor-mode 1)) + buffer-read-only t)) (defun hcel () (interactive) @@ -62,9 +62,22 @@ "\n"))) (hcel-api-packages))) (hcel-outline-mode)))) - (define-key hcel-mode-map "o" #'hcel) +(defun hcel-outline-package-module () + (interactive) + (unless (derived-mode-p 'hcel-mode) + (error "Not in hcel mode!")) + (let ((package-id hcel-package-id) + (module-path hcel-module-path)) + (hcel) + (hcel-outline-goto-package package-id) + (hcel-outline-load-modules-at-point) + (hcel-outline-goto-module module-path) + (hcel-outline-load-identifiers-at-point))) +(define-key hcel-mode-map "O" #'hcel-outline-package-module) + + ;; TODO: maybe remove (defun hcel-outline-update-opened (package-id module-path) "Update the outline tree depending on openness of packages and modules. |