diff --git a/core/siren-core-editor.el b/core/siren-core-editor.el index 39885e1..f4c2da7 100644 --- a/core/siren-core-editor.el +++ b/core/siren-core-editor.el @@ -184,9 +184,5 @@ indent yanked text (with prefix arg don't indent)." (require 're-builder) (setq reb-re-syntax 'string) -;; diminish various modes -;; (diminish 'hs-minor-mode) -;; (diminish 'subword-mode) - (provide 'siren-core-editor) ;;; siren-core-editor.el ends here diff --git a/core/siren-core-modules.el b/core/siren-core-modules.el index daee3dc..d4c5710 100644 --- a/core/siren-core-modules.el +++ b/core/siren-core-modules.el @@ -25,6 +25,7 @@ (require 'siren-display-indentation) (require 'siren-display-line-numbers) (require 'siren-fci) +(require 'siren-folding) (require 'siren-helm-command) (require 'siren-highlight-symbol) (require 'siren-ido) @@ -50,7 +51,6 @@ (require 'siren-dired) (require 'siren-direx) (require 'siren-dumb-jump) -(require 'siren-folding) (require 'siren-git-link) (require 'siren-helm) (require 'siren-helm-ag) diff --git a/modules/editor/siren-folding.el b/modules/editor/siren-folding.el new file mode 100644 index 0000000..cfa8e23 --- /dev/null +++ b/modules/editor/siren-folding.el @@ -0,0 +1,50 @@ +;;; siren-folding.el --- jimeh's Emacs Siren: folding configuration. + +;;; Commentary: + +;; Basic configuration for folding code. + +;;; Code: + +(use-package hideshow + :ensure nil ;; loaded from emacs built-ins + :demand + + :bind + ("C-=" . siren-folding-toggle-selective-display) + ("C-c C-h" . siren-folding-toggle) + + :init + (defun siren-folding (&optional arg) + "Activate or deactivate code folding. +Optional ARG is passed directly to mode toggle function." + (hs-minor-mode (or arg t)) + (hideshowvis-minor-mode (or arg t))) + + + (defun siren-folding-toggle (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-folding-toggle-selective-display column))) + + (defun siren-folding-toggle-selective-display (column) + "Helper function for `siren-folding-toggle'." + (interactive "P") + (set-selective-display + (or column + (unless selective-display + (1+ (current-column))))))) + +(use-package hideshowvis + :ensure nil ;; loaded from vendor + :demand) + +(provide 'siren-folding) +;;; siren-folding.el ends here diff --git a/modules/languages/siren-dart.el b/modules/languages/siren-dart.el index c7bf284..6c340bf 100644 --- a/modules/languages/siren-dart.el +++ b/modules/languages/siren-dart.el @@ -6,6 +6,7 @@ ;;; Code: +(require 'siren-folding) (require 'siren-projectile) (use-package dart-mode @@ -22,10 +23,9 @@ :init (defun siren-dart-mode-setup () (company-mode +1) - (lsp) (highlight-symbol-mode -1) - (hs-minor-mode 1) - (hideshowvis-enable) + (lsp) + (siren-folding) (subword-mode +1)) (with-eval-after-load "projectile" diff --git a/modules/languages/siren-golang.el b/modules/languages/siren-golang.el index 15e5b5c..f2c3932 100644 --- a/modules/languages/siren-golang.el +++ b/modules/languages/siren-golang.el @@ -39,8 +39,7 @@ (highlight-symbol-mode -1) (company-mode +1) (lsp) - (hs-minor-mode 1) - (hideshowvis-enable) + (siren-folding) (subword-mode +1)) :config diff --git a/modules/languages/siren-js.el b/modules/languages/siren-js.el index f262d3f..e7b759a 100644 --- a/modules/languages/siren-js.el +++ b/modules/languages/siren-js.el @@ -6,8 +6,8 @@ ;;; Code: -(require 'siren-prettier-js) (require 'siren-folding) +(require 'siren-prettier-js) (use-package js-mode :ensure nil ;; loaded from emacs built-ins @@ -15,6 +15,10 @@ "\\.js\\'" "\\.pac\\'" + :bind (:map js-mode-map + ("C-j" . newline-and-indent) + ("C-c C-h" . siren-toggle-hiding)) + :hook (js-mode . siren-js-mode-setup) @@ -27,15 +31,10 @@ tab-width width)) (prettier-js-mode) - (company-mode +1) + (company-mode) (lsp) - (subword-mode +1) - (hs-minor-mode 1) - (hideshowvis-enable) - - (let ((map js-mode-map)) - (define-key map (kbd "C-j") 'newline-and-indent) - (define-key map (kbd "C-c C-h") 'siren-toggle-hiding)))) + (subword-mode) + (siren-folding))) (provide 'siren-js) ;;; siren-js.el ends here diff --git a/modules/languages/siren-json.el b/modules/languages/siren-json.el index 3ef3c69..2deeea9 100644 --- a/modules/languages/siren-json.el +++ b/modules/languages/siren-json.el @@ -15,7 +15,7 @@ :bind (:map json-mode-map ("C-j" . newline-and-indent) - ("C-c C-h" . siren-toggle-hiding)) + ("C-c C-h" . siren-folding-toggle)) :hook (json-mode . siren-json-mode-setup) diff --git a/modules/languages/siren-jsx.el b/modules/languages/siren-jsx.el index 6730620..5f2f729 100644 --- a/modules/languages/siren-jsx.el +++ b/modules/languages/siren-jsx.el @@ -6,6 +6,7 @@ ;;; Code: +(require 'siren-folding) (require 'siren-prettier-js) (use-package rjsx-mode @@ -18,8 +19,7 @@ (prettier-js-mode +1) (company-mode +1) (subword-mode +1) - (hs-minor-mode +1) - (hideshowvis-enable))) + (siren-folding))) (provide 'siren-jsx) ;;; siren-jsx.el ends here diff --git a/modules/languages/siren-php.el b/modules/languages/siren-php.el index 8fdd81f..38edeb9 100644 --- a/modules/languages/siren-php.el +++ b/modules/languages/siren-php.el @@ -20,8 +20,7 @@ (rainbow-mode +1) (company-mode +1) (subword-mode +1) - (hs-minor-mode 1) - (hideshowvis-enable))) + (siren-folding))) (provide 'siren-php) ;;; siren-php.el ends here diff --git a/modules/languages/siren-ruby.el b/modules/languages/siren-ruby.el index c9835d1..1287b1b 100644 --- a/modules/languages/siren-ruby.el +++ b/modules/languages/siren-ruby.el @@ -59,8 +59,7 @@ tab-width 2) (company-mode +1) - (hs-minor-mode 1) - (hideshowvis-enable) + (siren-folding) (subword-mode +1)) :config diff --git a/modules/languages/siren-rust.el b/modules/languages/siren-rust.el index 4ae901d..ff6f626 100644 --- a/modules/languages/siren-rust.el +++ b/modules/languages/siren-rust.el @@ -25,8 +25,7 @@ (company-mode +1) (lsp-mode) - (hs-minor-mode 1) - (hideshowvis-enable) + (siren-folding) (subword-mode +1))) (use-package cargo diff --git a/modules/languages/siren-typescript.el b/modules/languages/siren-typescript.el index abe9b7b..ad04739 100644 --- a/modules/languages/siren-typescript.el +++ b/modules/languages/siren-typescript.el @@ -7,8 +7,8 @@ ;;; Code: (require 'siren-company) -(require 'siren-folding) (require 'siren-flycheck) +(require 'siren-folding) (require 'siren-prettier-js) (require 'siren-web-mode) @@ -16,8 +16,11 @@ :hook (typescript-mode . siren-typescript-mode-setup) - :init + :bind (:map typescript-mode-map + ("C-j" . newline-and-indent) + ("C-c C-h" . siren-folding-toggle)) + :init (defun siren-typescript-mode-setup () (let ((width 2)) (setq typescript-indent-level width @@ -27,12 +30,7 @@ (company-mode +1) (lsp) (subword-mode +1) - (hs-minor-mode 1) - (hideshowvis-enable) - - (let ((map typescript-mode-map)) - (define-key map (kbd "C-j") 'newline-and-indent) - (define-key map (kbd "C-c C-h") 'siren-toggle-hiding)))) + (siren-folding))) (use-package tide :hook diff --git a/modules/languages/siren-web-mode.el b/modules/languages/siren-web-mode.el index a51332d..e824c4b 100644 --- a/modules/languages/siren-web-mode.el +++ b/modules/languages/siren-web-mode.el @@ -18,7 +18,7 @@ :bind (:map web-mode-map ("C-j" . newline-and-indent) - ("C-c C-h" . siren-toggle-hiding)) + ("C-c C-h" . siren-folding-toggle)) :hook (web-mode . siren-web-mode-setup) @@ -37,8 +37,7 @@ (company-mode +1) (fci-mode -1) - (hideshowvis-enable) - (hs-minor-mode +1) + (siren-folding) (subword-mode +1))) (use-package web-beautify diff --git a/modules/navigation/siren-folding.el b/modules/navigation/siren-folding.el deleted file mode 100644 index 6b75f28..0000000 --- a/modules/navigation/siren-folding.el +++ /dev/null @@ -1,38 +0,0 @@ -;;; siren-folding.el --- jimeh's Emacs Siren: folding configuration. - -;;; Commentary: - -;; Basic configuration for folding code. - -;;; Code: - -(use-package hideshowvis - :ensure nil ;; loaded from vendor -) - -(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/themes/siren-theme-doom-nord-light.el b/themes/siren-theme-doom-nord-light.el index 4c59647..513409c 100644 --- a/themes/siren-theme-doom-nord-light.el +++ b/themes/siren-theme-doom-nord-light.el @@ -8,6 +8,7 @@ (require 'siren-all-the-icons) (require 'siren-doom-modeline) +(require 'siren-folding) (use-package doom-themes :ensure t diff --git a/themes/siren-theme-doom-nord.el b/themes/siren-theme-doom-nord.el index 68ff474..b4ce00d 100644 --- a/themes/siren-theme-doom-nord.el +++ b/themes/siren-theme-doom-nord.el @@ -8,6 +8,7 @@ (require 'siren-all-the-icons) (require 'siren-doom-modeline) +(require 'siren-folding) (use-package doom-themes :ensure t diff --git a/themes/siren-theme-doom-one.el b/themes/siren-theme-doom-one.el index e70ede7..2fc1d98 100644 --- a/themes/siren-theme-doom-one.el +++ b/themes/siren-theme-doom-one.el @@ -8,6 +8,7 @@ (require 'siren-all-the-icons) (require 'siren-doom-modeline) +(require 'siren-folding) (use-package doom-themes :ensure t diff --git a/themes/siren-theme-doom-opera-light.el b/themes/siren-theme-doom-opera-light.el index 187db05..7678479 100644 --- a/themes/siren-theme-doom-opera-light.el +++ b/themes/siren-theme-doom-opera-light.el @@ -8,6 +8,7 @@ (require 'siren-all-the-icons) (require 'siren-doom-modeline) +(require 'siren-folding) (use-package doom-themes :ensure t diff --git a/themes/siren-theme-doom-vibrant.el b/themes/siren-theme-doom-vibrant.el index 4e48c2b..a347ed0 100644 --- a/themes/siren-theme-doom-vibrant.el +++ b/themes/siren-theme-doom-vibrant.el @@ -8,6 +8,7 @@ (require 'siren-all-the-icons) (require 'siren-doom-modeline) +(require 'siren-folding) (use-package doom-themes :ensure t