Represent heading level using #'s in Imenu

This commit is contained in:
Takafumi Arakaki 2012-07-21 03:32:25 +02:00
parent 122ddcebe2
commit d3d4f1e7c3

View file

@ -1153,10 +1153,14 @@ as usual."
(defun ein:notebook-imenu-create-index () (defun ein:notebook-imenu-create-index ()
"`imenu-create-index-function' for notebook buffer." "`imenu-create-index-function' for notebook buffer."
;; As Imenu does not provide the way to represent level *and*
;; position, use #'s to do that.
(loop for cell in (ein:filter #'ein:headingcell-p (loop for cell in (ein:filter #'ein:headingcell-p
(ein:notebook-get-cells ein:notebook)) (ein:notebook-get-cells ein:notebook))
collect (cons (ein:cell-get-text cell) for sharps = (loop repeat (oref cell :level) collect "#")
(ein:cell-input-pos-min cell)))) for text = (ein:cell-get-text cell)
for name = (ein:join-str "" (append sharps (list " " text)))
collect (cons name (ein:cell-input-pos-min cell))))
(defun ein:notebook-imenu-setup () (defun ein:notebook-imenu-setup ()
"Called via notebook mode hooks." "Called via notebook mode hooks."