From 1d7478c0fdee8c8017b0adc3cc6c6db34ad5a161 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Wed, 4 May 2016 13:22:53 +0100 Subject: [PATCH] Move code folding stuff into a module --- core/siren-core.el | 20 --------------- modules/siren-folding.el | 38 +++++++++++++++++++++++++++++ modules/siren-global-keybindings.el | 4 --- modules/siren-js.el | 1 + modules/siren-json.el | 1 + modules/siren-ruby.el | 1 + modules/siren-web-mode.el | 1 + siren-modules.el | 1 + 8 files changed, 43 insertions(+), 24 deletions(-) create mode 100644 modules/siren-folding.el diff --git a/core/siren-core.el b/core/siren-core.el index 29b43a0..2c24d5b 100644 --- a/core/siren-core.el +++ b/core/siren-core.el @@ -42,26 +42,6 @@ Position the cursor at it's beginning, according to the current mode." (interactive) (other-window -1)) -(defun siren-toggle-hiding (column) - "Toggle hiding/showing blocks via hs-mode. - -Borrowed from: http://www.emacswiki.org/emacs/HideShow" - (interactive "P") - (if hs-minor-mode - (if (condition-case nil - (hs-toggle-hiding) - (error t)) - (hs-show-all)) - (siren-toggle-selective-display column))) - -(defun siren-toggle-selective-display (column) - "Helper function for `siren-toggle-hiding'." - (interactive "P") - (set-selective-display - (or column - (unless selective-display - (1+ (current-column)))))) - (defun siren-rename-file-and-buffer () "Rename the current buffer and file it is visiting. diff --git a/modules/siren-folding.el b/modules/siren-folding.el new file mode 100644 index 0000000..ed25210 --- /dev/null +++ b/modules/siren-folding.el @@ -0,0 +1,38 @@ +;;; siren-folding.el --- jimeh's Emacs Siren: folding configuration. + +;;; Commentary: + +;; Basic configuration for folding code. + +;;; Code: + +(siren-require-packages '(hideshowvis)) + +(require 'hideshowvis) + +(defun siren-toggle-hiding (column) + "Toggle hiding/showing blocks via hs-mode. + +Borrowed from: http://www.emacswiki.org/emacs/HideShow" + (interactive "P") + (if hs-minor-mode + (if (condition-case nil + (hs-toggle-hiding) + (error t)) + (hs-show-all)) + (siren-toggle-selective-display column))) + +(defun siren-toggle-selective-display (column) + "Helper function for `siren-toggle-hiding'." + (interactive "P") + (set-selective-display + (or column + (unless selective-display + (1+ (current-column)))))) + +;; Keybindings +(global-set-key (kbd "C-=") 'siren-toggle-selective-display) +(global-set-key (kbd "C-c C-h") 'siren-toggle-hiding) + +(provide 'siren-folding) +;;; siren-folding.el ends here diff --git a/modules/siren-global-keybindings.el b/modules/siren-global-keybindings.el index 01e128c..4957a40 100644 --- a/modules/siren-global-keybindings.el +++ b/modules/siren-global-keybindings.el @@ -34,10 +34,6 @@ ;; Toggle auto-fill-mode. (global-set-key (kbd "C-c q") 'auto-fill-mode) -;; Custom HideShow toggles -(global-set-key (kbd "C-=") 'siren-toggle-selective-display) -(global-set-key (kbd "C-\\") 'siren-toggle-hiding) - ;; undo/redo via undo-tree (global-set-key (kbd "M--") 'undo-tree-undo) (global-set-key (kbd "M-_") 'undo-tree-redo) diff --git a/modules/siren-js.el b/modules/siren-js.el index f6251a0..6d97134 100644 --- a/modules/siren-js.el +++ b/modules/siren-js.el @@ -29,6 +29,7 @@ (subword-mode +1) (hs-minor-mode 1) (highlight-indentation-current-column-mode) + (hideshowvis-enable) (let ((map js2-mode-map)) (define-key map (kbd "C-j") 'newline-and-indent) diff --git a/modules/siren-json.el b/modules/siren-json.el index 9b50ee5..06f1ffc 100644 --- a/modules/siren-json.el +++ b/modules/siren-json.el @@ -24,6 +24,7 @@ (subword-mode +1) (hs-minor-mode 1) (highlight-indentation-current-column-mode) + (hideshowvis-enable) (let ((map json-mode-map)) (define-key map (kbd "C-j") 'newline-and-indent) diff --git a/modules/siren-ruby.el b/modules/siren-ruby.el index a628f18..b49dc74 100644 --- a/modules/siren-ruby.el +++ b/modules/siren-ruby.el @@ -68,6 +68,7 @@ (subword-mode +1) (rubocop-mode 1) (highlight-indentation-current-column-mode) + (hideshowvis-enable) (let ((map ruby-mode-map)) (define-key map (kbd "C-j") 'newline-and-indent) diff --git a/modules/siren-web-mode.el b/modules/siren-web-mode.el index 37bc18d..5952cca 100644 --- a/modules/siren-web-mode.el +++ b/modules/siren-web-mode.el @@ -30,6 +30,7 @@ (hs-minor-mode 1) (highlight-indentation-set-offset 2) (highlight-indentation-current-column-mode) + (hideshowvis-enable) (let ((map web-mode-map)) (define-key map (kbd "C-j") 'newline-and-indent) diff --git a/siren-modules.el b/siren-modules.el index 746d775..a148e35 100644 --- a/siren-modules.el +++ b/siren-modules.el @@ -12,6 +12,7 @@ (require 'siren-company) (require 'siren-dired) (require 'siren-exec-path-from-shell) +(require 'siren-folding) (require 'siren-full-ack) (require 'siren-github) (require 'siren-global-keybindings)