Skip to content

Commit

Permalink
Merge pull request #839 from cocreature/decl-scan-832
Browse files Browse the repository at this point in the history
Fix haskell-ds-create-imenu-index to work properly in lexical binding mode
  • Loading branch information
gracjan committed Aug 30, 2015
2 parents 083c113 + 2ad7563 commit 128ec25
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions haskell-decl-scan.el
Original file line number Diff line number Diff line change
Expand Up @@ -491,15 +491,24 @@ datatypes) in a Haskell file for the `imenu' package."
(name (car name-posns))
(posns (cdr name-posns))
(start-pos (car posns))
(type (cdr result))
(type (cdr result)))
;; Place `(name . start-pos)' in the correct alist.
(sym (cdr (assq type
'((variable . index-var-alist)
(datatype . index-type-alist)
(class . index-class-alist)
(import . index-imp-alist)
(instance . index-inst-alist))))))
(set sym (cons (cons name start-pos) (symbol-value sym))))))
(cl-case type
(variable
(setq index-var-alist
(cl-acons name start-pos index-var-alist)))
(datatype
(setq index-type-alist
(cl-acons name start-pos index-type-alist)))
(class
(setq index-class-alist
(cl-acons name start-pos index-class-alist)))
(import
(setq index-imp-alist
(cl-acons name start-pos index-imp-alist)))
(instance
(setq index-inst-alist
(cl-acons name start-pos index-inst-alist)))))))
;; Now sort all the lists, label them, and place them in one list.
(message "Sorting declarations in %s..." bufname)
(when index-type-alist
Expand Down

0 comments on commit 128ec25

Please sign in to comment.