aboutsummaryrefslogtreecommitdiff
path: root/hcel-outline.el
diff options
context:
space:
mode:
authorYuchen Pei <hi@ypei.me>2022-09-23 16:45:36 +1000
committerYuchen Pei <hi@ypei.me>2022-09-23 16:45:36 +1000
commit1699e7873395703720c607a0254909aece16bae7 (patch)
tree5129ba34dfc33ee6c3f5e99e8a43b73ecdb3fccd /hcel-outline.el
parentf73cbee6f83f948202d0ea3fb8775b49562295be (diff)
Separating out hcel-minor mode to avoid recursive requires
Diffstat (limited to 'hcel-outline.el')
-rw-r--r--hcel-outline.el19
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.