emacs.d/elpa/elm-mode-20200301.19/elm-imenu.el

23 lines
811 B
EmacsLisp
Raw Normal View History

2020-01-29 18:18:31 +01:00
;;; elm-imenu.el --- imenu support for elm
;;; Commentary:
;;; Code:
(require 'imenu)
(defcustom elm-imenu-use-categories t
"Group imenu entries by their type, e.g. functions, type aliases."
:group 'elm
:type 'boolean
:safe 'booleanp)
(defun elm-imenu-create-index ()
"Create an imenu index for the current buffer."
(save-excursion
(imenu--generic-function
`((,(and elm-imenu-use-categories "Type") "^type\\s-+\\([A-Z]\\(?:\\s_\\|\\sw\\)*\\)" 1)
(,(and elm-imenu-use-categories "Type Alias") "^type\\s-+alias\\s-+\\([A-Z]\\(?:\\s_\\|\\sw\\)*\\)" 1)
(,(and elm-imenu-use-categories "Port") "^port\\s-+\\(\\(?:\\s_\\|\\sw\\)+\\)" 1)
(,(and elm-imenu-use-categories "Function") "^\\(\\(?:\\s_\\|\\sw\\)+\\)\\s-+:" 1)))))
(provide 'elm-imenu)
;;; elm-imenu.el ends here