feat(editor): improve code folding with origami

Add and configure origami, and enable it for majro modes where it seems
to do a good job, and keep using hideshow for other major modes.
This commit is contained in:
2022-07-20 21:07:01 +01:00
parent f6a1d44f03
commit 7c253d986c
17 changed files with 130 additions and 93 deletions

View File

@@ -6,8 +6,8 @@
;;; Code:
(require 'siren-folding)
(require 'siren-lsp)
(require 'siren-origami)
(require 'siren-projectile)
(use-package dart-mode
@@ -29,11 +29,15 @@
(auto-highlight-symbol-mode -1))
(lsp-deferred)
(siren-folding)
(subword-mode +1))
(origami-mode t)
(subword-mode y))
:init
(with-eval-after-load "projectile"
(with-eval-after-load 'origami
(add-to-list 'origami-parser-alist
'(dart-mode . origami-c-style-parser)))
(with-eval-after-load 'projectile
(add-to-list 'projectile-project-root-files-bottom-up "pubspec.yaml")
(add-to-list 'projectile-project-root-files-bottom-up "BUILD")))

View File

@@ -8,8 +8,8 @@
(require 'siren-dap)
(require 'siren-flycheck)
(require 'siren-folding)
(require 'siren-lsp)
(require 'siren-origami)
(require 'siren-projectile)
(require 'siren-reformatter)
(require 'siren-tree-sitter)
@@ -36,9 +36,9 @@
(when (fboundp 'auto-highlight-symbol-mode)
(auto-highlight-symbol-mode -1))
(tree-sitter-mode +1)
(siren-folding)
(subword-mode +1))
(tree-sitter-mode t)
(origami-mode t)
(subword-mode t))
(defun siren-define-golines-format-mode ()
;; Setup golines formatter for manual use - on save formatting is handled by

View File

@@ -6,7 +6,7 @@
;;; Code:
(require 'siren-folding)
(require 'siren-hideshow)
(use-package haskell-mode
:general
@@ -18,8 +18,8 @@
:preface
(defun siren-haskell-mode-setup ()
(siren-folding)
(subword-mode +1)))
(hs-minor-mode)
(subword-mode t)))
(provide 'siren-haskell)
;;; siren-haskell.el ends here

View File

@@ -6,8 +6,8 @@
;;; Code:
(require 'siren-folding)
(require 'siren-lsp)
(require 'siren-origami)
(require 'siren-tree-sitter)
(use-package js-mode
@@ -32,9 +32,9 @@
indent-level width
tab-width width))
(tree-sitter-mode +1)
(subword-mode)
(siren-folding)))
(tree-sitter-mode t)
(subword-mode t)
(origami-mode t)))
(use-package lsp-javascript
:straight lsp-mode

View File

@@ -6,9 +6,9 @@
;;; Code:
(require 'siren-folding)
(require 'siren-js)
(require 'siren-lsp)
(require 'siren-origami)
(require 'siren-tree-sitter)
(use-package json-mode
@@ -31,7 +31,13 @@
json-reformat:indent-width width
tab-width width))
(tree-sitter-mode +1)))
(tree-sitter-mode t)
(origami-mode t))
:init
(with-eval-after-load 'origami
(add-to-list 'origami-parser-alist
'(json-mode . origami-c-style-parser))))
(use-package lsp-json
:straight lsp-mode

View File

@@ -6,7 +6,7 @@
;;; Code:
(require 'siren-folding)
(require 'siren-origami)
(require 'siren-prettier-js)
(use-package rjsx-mode
@@ -17,8 +17,13 @@
:preface
(defun siren-rjsx-mode-setup ()
(prettier-js-mode +1)
(subword-mode +1)
(siren-folding)))
(origami-mode t)
(subword-mode t))
:init
(with-eval-after-load 'origami
(add-to-list 'origami-parser-alist
'(rjsx-mode . origami-c-style-parser))))
(provide 'siren-jsx)
;;; siren-jsx.el ends here

View File

@@ -6,7 +6,7 @@
;;; Code:
(require 'siren-folding)
(require 'siren-origami)
(require 'siren-prettier-js)
(require 'siren-rainbow)
(require 'siren-tree-sitter)
@@ -19,11 +19,11 @@
:preface
(defun siren-php-mode-setup ()
(tree-sitter-mode +1)
(prettier-js-mode)
(rainbow-mode +1)
(subword-mode +1)
(siren-folding)))
(tree-sitter-mode t)
(prettier-js-mode t)
(rainbow-mode t)
(subword-mode t)
(origami-mode t)))
(provide 'siren-php)
;;; siren-php.el ends here

View File

@@ -6,8 +6,9 @@
;;; Code:
(require 'siren-clang-format)
(require 'siren-flycheck)
(require 'siren-folding)
(require 'siren-origami)
(require 'siren-prog-mode)
(require 'siren-reformatter)
@@ -29,14 +30,19 @@
(setq-local flycheck-checker 'protobuf-buf)
(protobuf-format-on-save-mode +1))
(subword-mode +1)
(siren-folding))
(subword-mode t)
(origami-mode t))
(defun flycheck-protobuf-buf-project-root (&optional _checker)
"Return the nearest directory holding the buf.yaml configuration."
(and buffer-file-name
(locate-dominating-file buffer-file-name "buf.yaml")))
:init
(with-eval-after-load 'origami
(add-to-list 'origami-parser-alist
'(protobuf-mode . origami-c-style-parser)))
:config
(unbind-key "C-c C-u" 'c-mode-base-map)

View File

@@ -7,7 +7,7 @@
;;; Code:
(require 'siren-dap)
(require 'siren-folding)
(require 'siren-hideshow)
(require 'siren-lsp)
(require 'siren-projectile)
(require 'siren-string-inflection)
@@ -60,9 +60,9 @@
ruby-use-smie t
tab-width 2)
(tree-sitter-mode +1)
(siren-folding)
(subword-mode +1))
(tree-sitter-mode t)
(hs-minor-mode t)
(subword-mode t))
:init
(with-eval-after-load "projectile"

View File

@@ -6,8 +6,8 @@
;;; Code:
(require 'siren-folding)
(require 'siren-lsp)
(require 'siren-origami)
(require 'siren-tree-sitter)
(use-package rust-mode
@@ -25,10 +25,15 @@
(defun siren-rust-mode-setup ()
(setq-local rust-format-on-save t)
(tree-sitter-mode +1)
(tree-sitter-mode t)
(lsp-deferred)
(siren-folding)
(subword-mode +1)))
(origami-mode t)
(subword-mode t))
:init
(with-eval-after-load 'origami
(add-to-list 'origami-parser-alist
'(rust-mode . origami-c-style-parser))))
(use-package cargo
:hook (rust-mode . cargo-minor-mode))

View File

@@ -7,8 +7,8 @@
;;; Code:
(require 'siren-flycheck)
(require 'siren-folding)
(require 'siren-lsp)
(require 'siren-origami)
(require 'siren-prettier-js)
(require 'siren-tree-sitter)
(require 'siren-web-mode)
@@ -32,8 +32,13 @@
tab-width width))
(lsp-deferred)
(subword-mode +1)
(siren-folding)))
(subword-mode t)
(origami-mode t))
:init
(with-eval-after-load 'origami
(add-to-list 'origami-parser-alist
'(typescript-mode . origami-c-style-parser))))
(use-package tide
:hook
@@ -52,11 +57,11 @@
(setq-local flycheck-check-syntax-automatically '(save mode-enabled)
company-tooltip-align-annotations t)
(tree-sitter-mode +1)
(prettier-js-mode +1)
(flycheck-mode +1)
(eldoc-mode +1)
(tide-hl-identifier-mode +1))
(tree-sitter-mode t)
(prettier-js-mode t)
(flycheck-mode t)
(eldoc-mode t)
(tide-hl-identifier-mode t))
:init
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . web-mode))

View File

@@ -7,7 +7,7 @@
;;; Code:
(require 'siren-display-fill-column)
(require 'siren-folding)
(require 'siren-hideshow)
(use-package web-mode
:mode
@@ -39,9 +39,9 @@
(when (version< emacs-version "27.0")
(siren-display-fill-column -1))
(siren-folding)
(subword-mode +1)
(lsp-deferred)))
(lsp-deferred)
(hs-minor-mode t)
(subword-mode t)))
(provide 'siren-web-mode)
;;; siren-web-mode.el ends here