diff options
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. |