From f2859670fbaef15c1c7814986d2bb14f934c7a5c Mon Sep 17 00:00:00 2001
From: York Zhao <yzhao@telecor.com>
Date: Sat, 30 Jul 2011 22:21:35 -0400
Subject: [PATCH 2/3] `hideshow' Integration

Integrate with `hideshow' to provide "za","zm","zr","zo", "zc" commands.
---
 evil-integration.el |   16 ++++++++++++++++
 evil-vars.el        |    5 +++++
 2 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/evil-integration.el b/evil-integration.el
index 88b5994..24e2421 100644
--- a/evil-integration.el
+++ b/evil-integration.el
@@ -100,6 +100,22 @@
         (when (overlayp show-paren-overlay-1)
           (delete-overlay show-paren-overlay-1))))))
 
+;;; Folding
+
+(eval-after-load 'hideshow
+  '(progn
+     (defun evil-za ()
+       (interactive)
+       (hs-toggle-hiding)
+       (hs-hide-level evil-fold-level))
+     (defun evil-hs-setup ()
+       (define-key evil-normal-state-map "za" 'evil-za)
+       (define-key evil-normal-state-map "zm" 'hs-hide-all)
+       (define-key evil-normal-state-map "zr" 'hs-show-all)
+       (define-key evil-normal-state-map "zo" 'hs-show-block)
+       (define-key evil-normal-state-map "zc" 'hs-hide-block))
+     (add-hook 'hs-minor-mode-hook 'evil-hs-setup)))
+
 (provide 'evil-integration)
 
 ;;; evil-integration.el ends here
diff --git a/evil-vars.el b/evil-vars.el
index 79b3f9c..a6ebe5d 100644
--- a/evil-vars.el
+++ b/evil-vars.el
@@ -193,6 +193,11 @@ which causes the parenthesis to be highlighted."
   :type  '(repeat symbol)
   :group 'evil)
 
+(defcustom evil-fold-level 0
+  "Default fold level."
+  :type  'integer
+  :group 'evil)
+
 ;;; Variables
 
 (defvar evil-state nil
-- 
1.7.5.GIT

