conf-hideshow.el 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. ;;; Code:
  2. (require 'hideshowvis)
  3. (hideshowvis-symbols)
  4. ;; Hideshowvis mode
  5. (autoload 'hideshowvis-minor-mode
  6. "hideshowvis"
  7. "Will indicate regions foldable with hideshow in the fringe."
  8. 'interactive)
  9. (dolist (hook (list 'emacs-lisp-mode-hook
  10. 'lisp-mode-hook
  11. 'ruby-mode-hook
  12. 'perl-mode-hook
  13. 'php-mode-hook
  14. 'html-mode-hook
  15. 'web-mode-hook
  16. 'sgml-mode-hook
  17. 'multi-web-mode-hook
  18. 'python-mode-hook
  19. 'lua-mode-hook
  20. 'c-mode-hook
  21. 'java-mode-hook
  22. 'js-mode-hook
  23. 'js2-mode-hook
  24. 'js3-mode-hook
  25. 'css-mode-hook
  26. 'c++-mode-hook))
  27. (add-hook hook 'hideshowvis-enable))
  28. ;; Faces
  29. (custom-set-faces
  30. '(hs-fringe-face ((t (:foreground "#afeeee" :box (:line-width 2 :color "grey75" :style released-button)))))
  31. '(hs-face ((t (:background "#444" :box t))))
  32. '(hideshowvis-hidable-face ((t (:foreground "#2f4f4f")))))
  33. ;; Functions
  34. (defun toggle-hiding (column)
  35. (interactive "P")
  36. (if hs-minor-mode
  37. (if (condition-case nil
  38. (hs-toggle-hiding)
  39. (error t))
  40. (hs-show-all))
  41. (toggle-selective-display column)))
  42. (defun toggle-selective-display (column)
  43. (interactive "P")
  44. (set-selective-display
  45. (or column
  46. (unless selective-display
  47. (1+ (current-column))))))
  48. ;; Enable by default in programming modes
  49. (add-hook 'prog-mode-hook #'hs-minor-mode)
  50. (provide 'conf-hideshow)