Add imenu support to the Emacs mode
authorDavid Raymond Christiansen <david@davidchristiansen.dk>
Tue, 26 Jul 2016 15:37:04 +0000 (11:37 -0400)
committerDavid Raymond Christiansen <david@davidchristiansen.dk>
Tue, 26 Jul 2016 15:37:04 +0000 (11:37 -0400)
imenu is a general-purpose index for things in a buffer, used by a
variety of Emacs tools to give a list of definitions in the buffer.
This adds support for it to the Emacs mode.

cubicaltt.el

index 47fb26f1bf21d2e741ae0224b5264801fe4f60c0..26b81ed0198cd3e6f32f21a421108975fb6a41f2 100644 (file)
@@ -199,6 +199,12 @@ suggestions for completion rather than too few.")
   (set (make-local-variable 'completion-at-point-functions)
        '(ctt-completion-at-point))
 
+  ;; Setup imenu, to allow tools such as imenu and Helm to jump
+  ;; directly to names in the current buffer.
+  (set (make-local-variable 'imenu-generic-expression)
+       '(("Definitions" "^\\(?1:[[:word:]']+\\) *[:(]" 1)
+         ("Datatypes" "^\\s-*data\\s-+\\(?1:[[:word:]']+\\)" 1)))
+
   ;; Clear memory
   (setq ctt-keywords-regexp nil)
   (setq ctt-operators-regexp nil)