predictive-elisp.el 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. (require 'predictive)
  2. (require 'auto-overlays)
  3. (require 'predictive-semantic)
  4. (provide 'predictive-elisp)
  5. ;; variable to store identifier from call to `auto-overlay-init'
  6. (defvar predictive-elisp-regexps nil)
  7. (make-local-variable 'predictive-ams-latex-regexps)
  8. (defun predictive-setup-elisp ()
  9. "Set up predictive mode for use with emacs lisp major modes."
  10. (interactive)
  11. ;; load the elisp dictionary
  12. (predictive-load-dict 'dict-elisp)
  13. ;; clear overlays when predictive mode is disabled
  14. (add-hook 'predictive-mode-disable-hook
  15. (lambda () (auto-overlay-clear predictive-elisp-regexps)))
  16. ;; use emacs lisp dictionary
  17. (set (make-local-variable 'predictive-main-dict) dict-elisp)
  18. ;; setup regexps defining switch-dict regions
  19. (setq predictive-elisp-regexps
  20. (auto-overlay-init
  21. ;; "(let" and "(defun" create new scopes
  22. '((stack
  23. (start "(let\\b"
  24. (dict . (:generate
  25. predictive-semantic-generate-dict
  26. :refresh
  27. predictive-semantic-refresh-dict)))
  28. (start "(defun\\b"
  29. (dict . (:generate
  30. predictive-semantic-generate-dict
  31. :refresh
  32. predictive-semantic-refresh-dict)))
  33. (start "(")
  34. (end ")")))))
  35. )