Big refactor of modules and their use of use-package

- Make use of use-package's :bind option whenever possible.
- Make use of use-package's :hook option whenever possible.
- Rename and move all mode setup functions into use-package's :init
  step.
- Other minor misc fixes and tweaks to a few modules.
This commit is contained in:
2018-04-20 10:29:45 +01:00
parent 750143c23e
commit a32cf8b132
55 changed files with 540 additions and 576 deletions

View File

@@ -7,7 +7,7 @@
'(magit-commit-arguments (quote ("-S")))
'(package-selected-packages
(quote
(ace-ack ag anti-anywhere anzu-avy bright-bright browse browse-buffer coffee-column company-company completing-cursors dash-descbinds describe-diff diminish-direx-dockerfile dumb-dup-ecb editorconfig-eldoc-eslintd-evil exec-expand feature file-fill fix-flycheck flycheck flycheck-from full-gh git-git gitconfig-github github-gitignore go-go go-go go-go gometalinter-gotest gtags-guides guru-haml helm-helm helm-helm helm-helm helm-helm highlight-highlight highlight-hl ido-ido-imenu indent-indentation indicator inf-inflection json jump-kill line link-lint linum-lua magit-magit markdown-mode mode-mode mode-mode mode-mode mode-mode mode mode-mode mode mode-mode mode mode-mode-mode mode-modes-move+ move-multiple open-package package-package-path phi-php plantuml-projectile-projectile pulls-quotes rainbow-read refactor region-relative rename-ring rspec-ruby-ruby ruby-sass scss-search shell shift smart-smart smartparens smex-string swoop-symbol-theme theme thrift-timemachine-toggle tools twilight-twilight use-vertical-web window-window-yaml-yari yasnippet zoom)))
(which-key ace-ack ag anti-anywhere anzu-avy bright-bright browse browse-buffer coffee-column company-company completing-cursors dash-descbinds describe-diff diminish-direx-dockerfile dumb-dup-ecb editorconfig-eldoc-eslintd-evil exec-expand feature file-fill fix-flycheck flycheck flycheck-from full-gh git-git gitconfig-github github-gitignore go-go go-go go-go gometalinter-gotest gtags-guides guru-haml helm-helm helm-helm helm-helm helm-helm highlight-highlight highlight-hl ido-ido-imenu indent-indentation indicator inf-inflection json jump-kill line link-lint linum-lua magit-magit markdown-mode mode-mode mode-mode mode-mode mode-mode mode mode-mode mode mode-mode mode mode-mode-mode mode-modes-move+ move-multiple open-package package-package-path phi-php plantuml-projectile-projectile pulls-quotes rainbow-read refactor region-relative rename-ring rspec-ruby-ruby ruby-sass scss-search shell shift smart-smart smartparens smex-string swoop-symbol-theme theme thrift-timemachine-toggle tools twilight-twilight use-vertical-web window-window-yaml-yari yasnippet zoom)))
'(plantuml-jar-path "/usr/local/Cellar/plantuml/8048/plantuml.8048.jar")
'(siren-rubocop-autocorrect-on-save nil))
(custom-set-faces

View File

@@ -9,6 +9,12 @@
(require 'siren-flyspell)
(use-package auto-complete
:bind (:map ac-completing-map
("RET" . ac-complete)
("C-m" . ac-complete)
("C-s" . ac-isearch)
("C-n" . ac-next)
("C-p" . ac-previous))
:config
(ac-flyspell-workaround)
@@ -17,13 +23,6 @@
ac-delay 0.05
ac-menu-height 15)
(let ((map ac-completing-map))
(define-key map (kbd "RET") 'ac-complete)
(define-key map (kbd "C-m") 'ac-complete)
(define-key map (kbd "C-s") 'ac-isearch)
(define-key map (kbd "C-n") 'ac-next)
(define-key map (kbd "C-p") 'ac-previous))
;; Auto-complete when indenting.
(defadvice indent-for-tab-command (around ac-before-indent activate)
"Call `auto-complete' if text was recently entered."

View File

@@ -7,7 +7,7 @@
;;; Code:
(use-package browse-kill-ring
:init
:config
(browse-kill-ring-default-keybindings))
(provide 'siren-browse-kill-ring)

View File

@@ -11,12 +11,11 @@
(use-package coffee-mode
:mode "\\.coffee\\'"
:interpreter "coffee"
:hook (coffee-mode . siren-coffee-mode-setup)
:config
(setq coffee-tab-width 2)
(defun siren-coffee-mode-defaults ()
(siren-prog-mode-defaults)
:init
(defun siren-coffee-mode-setup ()
(siren-prog-mode-setup)
;; remove the "Generated by CoffeeScript" header
(add-to-list 'coffee-args-compile "--no-header")
@@ -31,9 +30,8 @@
(highlight-indentation-current-column-mode)
(subword-mode +1))
(setq siren-coffee-mode-hook 'siren-coffee-mode-defaults)
(add-hook 'coffee-mode-hook (lambda ()
(run-hooks 'siren-coffee-mode-hook))))
:config
(setq coffee-tab-width 2))
(provide 'siren-coffee)
;;; siren-coffee.el ends here

View File

@@ -9,11 +9,7 @@
(require 'siren-fci)
(use-package company
:config
;; work-around for issues with fci-mode
(defvar-local company-fci-mode-on-p nil)
:init
(defun company-turn-off-fci (&rest ignore)
(when (boundp 'fci-mode)
(setq company-fci-mode-on-p fci-mode)
@@ -22,6 +18,10 @@
(defun company-maybe-turn-on-fci (&rest ignore)
(when company-fci-mode-on-p (fci-mode 1)))
:config
;; work-around for issues with fci-mode
(defvar-local company-fci-mode-on-p nil)
(add-hook 'company-completion-started-hook 'company-turn-off-fci)
(add-hook 'company-completion-finished-hook 'company-maybe-turn-on-fci)
(add-hook 'company-completion-cancelled-hook 'company-maybe-turn-on-fci)

View File

@@ -9,16 +9,15 @@
(require 'siren-programming)
(use-package conf-mode
:mode "Procfile\\'"
:config
(defun siren-conf-mode-defaults ()
(siren-prog-mode-defaults)
:mode "Procfile\\'" "\\.conf\\'" "\\.cfg\\'"
:hook (conf-mode . siren-conf-mode-setup)
:init
(defun siren-conf-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2)
(highlight-indentation-set-offset 2)
(highlight-indentation-current-column-mode))
(setq siren-conf-mode-hook 'siren-conf-mode-defaults)
(add-hook 'conf-mode-hook (lambda () (run-hooks 'siren-conf-mode-hook))))
(highlight-indentation-current-column-mode)))
(provide 'siren-conf)
;;; siren-conf.el ends here

View File

@@ -11,18 +11,17 @@
(use-package css-mode
:mode "\\.css\\'"
:hook (css-mode-hook . siren-css-mode-setup)
:config
(setq css-indent-offset 2)
(defun siren-css-mode-defaults ()
(siren-prog-mode-defaults)
:init
(defun siren-css-mode-setup ()
(siren-prog-mode-setup)
(rainbow-mode +1)
(setq tab-width 2)
(highlight-indentation-current-column-mode))
(setq siren-css-mode-hook 'siren-css-mode-defaults)
(add-hook 'css-mode-hook (lambda ()
(run-hooks 'siren-css-mode-hook))))
(highlight-indentation-current-column-mode)))
(provide 'siren-css)
;;; siren-css.el ends here

View File

@@ -11,17 +11,14 @@
(use-package feature-mode
:mode "\\.feature\\'"
:interpreter "cucumber"
:hook (feature-mode . siren-feature-mode-setup)
:config
(defun siren-feature-mode-defaults ()
(siren-prog-mode-defaults)
:init
(defun siren-feature-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2)
(highlight-indentation-set-offset 2)
(highlight-indentation-current-column-mode))
(setq siren-feature-mode-hook 'siren-feature-mode-defaults)
(add-hook 'feature-mode-hook (lambda ()
(run-hooks 'siren-feature-mode-hook))))
(highlight-indentation-current-column-mode)))
(provide 'siren-cucumber)
;;; siren-cucumber.el ends here

View File

@@ -7,9 +7,13 @@
;;; Code:
(use-package diff-hl
:init
(add-hook 'dired-mode-hook 'diff-hl-dired-mode)
(global-diff-hl-mode +1))
:demand
:hook ((dired-mode . diff-hl-dired-mode)
(magit-post-refresh-hook . diff-hl-magit-post-refresh))
:config
(global-diff-hl-mode +1)
(diff-hl-flydiff-mode +1))
(provide 'siren-diff-hl)
;;; siren-diff-hl.el ends here

View File

@@ -6,16 +6,18 @@
;;; Code:
;; Loads from vendor.
(require 'dired+)
(require 'siren-linum)
(defun siren-dired-mode-defaults ()
(linum-mode t)
(define-key dired-mode-map (kbd "c") 'dired-create-directory)
(toggle-diredp-find-file-reuse-dir 1))
(use-package dired+
:ensure nil ;; loaded from vendor
:demand
:hook (dired-mode . siren-dired-mode-setup)
(setq siren-dired-mode-hook 'siren-dired-mode-defaults)
(add-hook 'dired-mode-hook (lambda () (run-hooks 'siren-dired-mode-hook)))
:init
(defun siren-dired-mode-setup ()
(linum-mode t)
(define-key dired-mode-map (kbd "c") 'dired-create-directory)
(toggle-diredp-find-file-reuse-dir 1)))
(provide 'siren-dired)
;;; siren-dired.el ends here

View File

@@ -7,17 +7,14 @@
;;; Code:
(use-package direx
:bind
("C-x j" . direx-project:jump-to-project-root)
:bind ("C-x j" . direx-project:jump-to-project-root)
:hook (direx-mode . siren-direx-mode-setup)
:config
(setq direx:closed-icon " + "
direx:open-icon " - ")
direx:open-icon " - "))
(defun siren-direx-mode-defaults ())
(setq siren-direx-mode-hook 'siren-direx-mode-defaults)
(add-hook 'direx-mode-hook (lambda () (run-hooks 'siren-direx-mode-hook))))
(defun siren-direx-mode-setup ())
(provide 'siren-direx)
;;; siren-direx.el ends here

View File

@@ -9,16 +9,13 @@
(require 'siren-programming)
(use-package dockerfile-mode
:mode "Dockerfile\\'"
:mode "Dockerfile.*\\'"
:hook (dockerfile-mode . siren-dockerfile-mode-setup)
:config
(defun siren-dockerfile-mode-defaults ()
(siren-prog-mode-defaults)
(subword-mode +1))
(setq siren-dockerfile-mode-hook 'siren-dockerfile-mode-defaults)
(add-hook 'dockerfile-mode-hook (lambda ()
(run-hooks 'siren-dockerfile-mode-hook))))
:init
(defun siren-dockerfile-mode-setup ()
(siren-prog-mode-setup)
(subword-mode +1)))
(provide 'siren-dockerfile)
;;; siren-dockerfile.el ends here

View File

@@ -8,6 +8,8 @@
(use-package edit-server
:if window-system
:hook (after-init . edit-server-start)
:init
(setq edit-server-default-major-mode 'markdown-mode
edit-server-new-frame-alist
@@ -15,9 +17,7 @@
(width . 90)
(height . 45)
(minibuffer . t)
(menu-bar-lines . t)))
(add-hook 'after-init-hook 'edit-server-start t))
(menu-bar-lines . t))))
(provide 'siren-edit-server)
;;; siren-edit-server.el ends here

View File

@@ -7,6 +7,7 @@
;;; Code:
(use-package elscreen
:demand
:bind (("s-}" . elscreen-next)
("s-{" . elscreen-previous)
@@ -27,7 +28,6 @@
("C-;" . elscreen-display-screen-name-list))
:config
;; Start ElScreen.
(elscreen-start))
(use-package elscreen-buffer-group :defer t)

View File

@@ -24,7 +24,7 @@
(when (and file-name (string-match-p ".*-tests?\\.el\\'" file-name))
(setq-local flycheck-checkers '(emacs-lisp)))))
(defun siren-emacs-lisp-mode-defaults ()
(defun siren-emacs-lisp-mode-setup ()
"Sensible defaults for `emacs-lisp-mode'."
(highlight-indent-guides-mode)
;; (run-hooks 'siren-lisp-coding-hook)
@@ -35,14 +35,8 @@
;; (siren-conditional-emacs-lisp-checker)
)
(setq siren-emacs-lisp-mode-hook 'siren-emacs-lisp-mode-defaults)
(add-hook 'emacs-lisp-mode-hook (lambda ()
(run-hooks 'siren-emacs-lisp-mode-hook)))
(add-hook 'emacs-lisp-mode-hook #'siren-emacs-lisp-mode-setup)
(add-to-list 'auto-mode-alist '("Cask\\'" . emacs-lisp-mode))
(eval-after-load "rainbow-mode"
'(diminish 'rainbow-mode))
(provide 'siren-emacs-lisp)
;;; siren-emacs-lisp.el ends here

View File

@@ -6,64 +6,49 @@
;;; Code:
;; Loads from vendor.
(require 'escreen)
(use-package escreen
:ensure nil ;; loaded from vendor
:demand
;; Escreen Helper
;; - from http://blog.nguyenvq.com/2011/03/07/escreen-instead-of-elscreen-for-screen-like-features-in-emacs/
(defun escreen-get-active-screen-numbers-with-emphasis ()
"what the name says"
(interactive)
(let ((escreens (escreen-get-active-screen-numbers))
(emphased ""))
(dolist (s escreens)
(setq emphased
(concat emphased (if (= escreen-current-screen-number s)
(propertize (number-to-string s)
;;'face 'custom-variable-tag) " ")
;;'face 'info-title-3)
'face 'font-lock-warning-face)
;;'face 'secondary-selection)
(number-to-string s))
" ")))
(message "escreen: active screens: %s" emphased)))
:bind (("s-}" . escreen-goto-next-screen)
("s-{" . escreen-goto-prev-screen)
:map escreen-map
("C-z" . escreen-goto-last-screen)
("l" . escreen-goto-last-screen)
("C-l" . escreen-goto-last-screen)
(";" . siren-escreen-get-active-screen)
("C-;" . siren-escreen-get-active-screen)
("C-c" . escreen-create-screen)
("C-g" . escreen-goto-screen)
("C-k" . escreen-kill-screen)
("C-n" . escreen-goto-next-screen)
("C-p" . escreen-goto-prev-screen))
;; Initialize escreen
(escreen-install)
:hook
(escreen-goto-screen . siren-escreen-get-active-screen)
;; Set prefix key to C-z.
(setq escreen-prefix-char (kbd "C-z"))
(global-set-key escreen-prefix-char 'escreen-prefix)
(define-key escreen-map escreen-prefix-char 'escreen-goto-last-screen)
:init
(defun siren-escreen-get-active-screen ()
"what the name says"
(interactive)
(let ((escreens (escreen-get-active-screen-numbers))
(emphased ""))
(dolist (s escreens)
(setq emphased
(concat emphased (if (= escreen-current-screen-number s)
(propertize (number-to-string s)
;;'face 'custom-variable-tag) " ")
;;'face 'info-title-3)
'face 'font-lock-warning-face)
;;'face 'secondary-selection)
(number-to-string s))
" ")))
(message "escreen: active screens: %s" emphased)))
;; Toggle screens.
(define-key escreen-map (kbd "l") 'escreen-goto-last-screen)
(define-key escreen-map (kbd "C-l") 'escreen-goto-last-screen)
;; List screens.
(define-key escreen-map (kbd "a")
'escreen-get-active-screen-numbers-with-emphasis)
(define-key escreen-map (kbd "C-a")
'escreen-get-active-screen-numbers-with-emphasis)
(define-key escreen-map (kbd ";")
'escreen-get-active-screen-numbers-with-emphasis)
(define-key escreen-map (kbd "C-;")
'escreen-get-active-screen-numbers-with-emphasis)
;; Goto screens.
(global-set-key (kbd "s-}") 'escreen-goto-next-screen)
(global-set-key (kbd "s-{") 'escreen-goto-prev-screen)
;; Ctrl versions of default commands.
(define-key escreen-map (kbd "C-c") 'escreen-create-screen)
(define-key escreen-map (kbd "C-g") 'escreen-goto-screen)
(define-key escreen-map (kbd "C-k") 'escreen-kill-screen)
(define-key escreen-map (kbd "C-n") 'escreen-goto-next-screen)
(define-key escreen-map (kbd "C-p") 'escreen-goto-prev-screen)
;; Show list of screens when you switch/create/kill.
(add-hook 'escreen-goto-screen-hook
'escreen-get-active-screen-numbers-with-emphasis)
:config
(escreen-install)
(setq escreen-prefix-char (kbd "C-z"))
(global-set-key escreen-prefix-char 'escreen-prefix))
(provide 'siren-escreen)
;;; siren-escreen.el ends here

View File

@@ -0,0 +1,13 @@
;;; siren-eslintd-fix.el --- jimeh's Emacs Siren: eslintd-fix configuration.
;;; Commentary:
;; Basic configuration for eslintd-fix.
;;; Code:
(use-package eslintd-fix
:defer t)
(provide 'siren-eslintd-fix)
;;; siren-eslintd-fix.el ends here

View File

@@ -6,23 +6,22 @@
;;; Code:
;; Various evil config options borrowed from:
;; http://www.lukeswart.net/2015/04/lightning-intro-to-emacs-using-evil-mode-and-org-mode/
(use-package evil
:config
;; Various evil config options borrowed from:
;; http://www.lukeswart.net/2015/04/lightning-intro-to-emacs-using-evil-mode-and-org-mode/
;; Treat wrapped line scrolling as single lines
(define-key evil-normal-state-map (kbd "j") 'evil-next-visual-line)
(define-key evil-normal-state-map (kbd "k") 'evil-previous-visual-line)
;; esc quits pretty much anything (like pending prompts in the minibuffer)
(define-key evil-normal-state-map [escape] 'keyboard-quit)
(define-key evil-visual-state-map [escape] 'keyboard-quit)
(define-key minibuffer-local-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-ns-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-completion-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-must-match-map [escape] 'minibuffer-keyboard-quit)
(define-key minibuffer-local-isearch-map [escape] 'minibuffer-keyboard-quit))
:demand
:bind (:map evil-normal-state-map
;; Treat wrapped line scrolling as single lines.
("j" . evil-next-visual-line)
("k" . evil-previous-visual-line)
;; esc quits pretty much anything (like pending prompts in the minibuffer)
:map evil-normal-state-map ("<escape>" . keyboard-quit)
:map evil-visual-state-map ("<escape>" . keyboard-quit)
:map minibuffer-local-map ("<escape>" . minibuffer-keyboard-quit)
:map minibuffer-local-ns-map ("<escape>" . minibuffer-keyboard-quit)
:map minibuffer-local-completion-map ("<escape>" . minibuffer-keyboard-quit)
:map minibuffer-local-must-match-map ("<escape>" . minibuffer-keyboard-quit)
:map minibuffer-local-isearch-map ("<escape>" . minibuffer-keyboard-quit)))
(provide 'siren-evil)
;;; siren-evil.el ends here

View File

@@ -6,8 +6,9 @@
;;; Code:
;; Loads from vendor.
(require 'hideshowvis)
(use-package hideshowvis
:ensure nil ;; loaded from vendor
)
(defun siren-toggle-hiding (column)
"Toggle hiding/showing blocks via hs-mode.

View File

@@ -11,35 +11,33 @@
("C-c C-a" . ack)
:config
(setq ack-arguments
'("--sort-files"
"--ignore-dir=vendor/ruby"
"--ignore-dir=vendor/bundle"
"--ignore-dir=coverage"
"--ignore-dir=savefile"
"--ignore-dir=Godeps"
"--ignore-dir=elpa"
"--ignore-dir=docs"
"--ignore-dir=doc"
"--type-add=js=.js,.js.erb"
"--type-add=ruby=.jbuilder,.rabl"
"--type-add=html=.haml,.hamlc,.jade"
"--type-add=css=.sass,.scss,.styl"
"--type-set=coffee=.coffee"
"--type-set=cucumber=.feature"))
(setq ack-project-root-file-patterns
'(".project\\'"
".xcodeproj\\'"
".sln\\'"
"\\`Project.ede\\'"
"\\`.git\\'"
"\\`.bzr\\'"
"\\`_darcs\\'"
"\\`.hg\\'"
"\\`Gemfile\\'"
"\\`Rakefile\\'"
"\\`Makefile\\'"))
(setq ack-prompt-for-directory 'unless-guessed))
(setq ack-arguments '("--sort-files"
"--ignore-dir=vendor/ruby"
"--ignore-dir=vendor/bundle"
"--ignore-dir=coverage"
"--ignore-dir=savefile"
"--ignore-dir=Godeps"
"--ignore-dir=elpa"
"--ignore-dir=docs"
"--ignore-dir=doc"
"--type-add=js=.js,.js.erb"
"--type-add=ruby=.jbuilder,.rabl"
"--type-add=html=.haml,.hamlc,.jade"
"--type-add=css=.sass,.scss,.styl"
"--type-set=coffee=.coffee"
"--type-set=cucumber=.feature")
ack-project-root-file-patterns '(".project\\'"
".xcodeproj\\'"
".sln\\'"
"\\`Project.ede\\'"
"\\`.git\\'"
"\\`.bzr\\'"
"\\`_darcs\\'"
"\\`.hg\\'"
"\\`Gemfile\\'"
"\\`Rakefile\\'"
"\\`Makefile\\'")
ack-prompt-for-directory 'unless-guessed))
(provide 'siren-full-ack)
;;; siren-full-ack.el ends here

View File

@@ -10,17 +10,14 @@
(use-package gitconfig-mode
:mode "\\.gitconfig" "gitconfig\\'" "\\.git\\\/config"
:hook (gitconfig-mode . siren-gitconfig-mode-setup)
:config
(defun siren-gitconfig-mode-defaults ()
(siren-prog-mode-defaults)
:init
(defun siren-gitconfig-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2)
(highlight-indentation-current-column-mode)
(run-hooks 'siren-prog-mode-hook))
(setq siren-gitconfig-mode-hook 'siren-gitconfig-mode-defaults)
(add-hook 'gitconfig-mode-hook (lambda ()
(run-hooks 'siren-gitconfig-mode-hook))))
(run-hooks 'siren-prog-mode-hook)))
(provide 'siren-gitconfig)
;;; siren-gitconfig.el ends here

View File

@@ -10,17 +10,14 @@
(use-package gitignore-mode
:mode "\\.gitignore" "gitignore\\'"
:hook (gitignore-mode . siren-gitignore-mode-setup)
:config
(defun siren-gitignore-mode-defaults ()
(siren-prog-mode-defaults)
:init
(defun siren-gitignore-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2)
(highlight-indentation-current-column-mode)
(run-hooks 'siren-prog-mode-hook))
(setq siren-gitignore-mode-hook 'siren-gitignore-mode-defaults)
(add-hook 'gitignore-mode-hook (lambda ()
(run-hooks 'siren-gitignore-mode-hook))))
(run-hooks 'siren-prog-mode-hook)))
(provide 'siren-gitignore)
;;; siren-gitignore.el ends here

View File

@@ -7,6 +7,7 @@
;;; Code:
(require 'siren-programming)
(require 'siren-flycheck)
(use-package go-mode
:mode "\\.go\\'"
@@ -20,21 +21,16 @@
("C-c b" . go-run)
("C-c d" . godef-jump)
("C-c C-j" . avy-goto-word-or-subword-1)
("C-h f" . godoc-at-point))
("C-h f" . godoc-at-point)
:map help-command
("G" . godoc))
:config
(message "loading go-mode")
:hook
(go-mode . siren-go-mode-setup)
(when (memq window-system '(mac ns))
(exec-path-from-shell-copy-env "GOPATH"))
;; Ignore go test -c output files
(add-to-list 'completion-ignored-extensions ".test")
(define-key 'help-command (kbd "G") 'godoc)
(defun siren-go-mode-defaults ()
(siren-prog-mode-defaults)
:init
(defun siren-go-mode-setup ()
(siren-prog-mode-setup)
;; Prefer goimports to gofmt if installed
(let ((goimports (executable-find "goimports")))
@@ -70,9 +66,14 @@
;; CamelCase aware editing operations
(subword-mode +1))
(setq siren-go-mode-hook 'siren-go-mode-defaults)
(add-hook 'go-mode-hook (lambda ()
(run-hooks 'siren-go-mode-hook))))
:config
(message "loading go-mode")
(when (memq window-system '(mac ns))
(exec-path-from-shell-copy-env "GOPATH"))
;; Ignore go test -c output files
(add-to-list 'completion-ignored-extensions ".test"))
(use-package company-go :defer t)
(use-package go-eldoc :defer t)
@@ -87,13 +88,13 @@
(setq go-projectile-switch-gopath 'never))
(use-package flycheck-gometalinter
:requires flycheck
:hook (flycheck-mode . flycheck-gometalinter-setup)
:init
(setq flycheck-gometalinter-fast t
flycheck-gometalinter-tests t
flycheck-gometalinter-vendor t)
:config
(eval-after-load 'flycheck
'(add-hook 'flycheck-mode-hook #'flycheck-gometalinter-setup)))
flycheck-gometalinter-vendor t))
(provide 'siren-go)
;;; siren-go.el ends here

View File

@@ -7,15 +7,14 @@
;;; Code:
(use-package goto-chg
:config
(global-set-key (kbd "C-.") 'goto-last-change)
(global-set-key (kbd "C-,") 'goto-last-change-reverse)
;; Flyspell uses C-. and C-, itself in a such a way that this is the only way
;; to make goto-chg bind to those keys while flyspell-mode is enabled.
(let ((map flyspell-mode-map))
(define-key map (kbd "C-.") 'goto-last-change)
(define-key map (kbd "C-,") 'goto-last-change-reverse)))
:bind (("C-." . goto-last-change)
("C-," . goto-last-change-reverse)
;; Flyspell uses C-. and C-, itself in a such a way that this is the
;; only way to make goto-chg bind to those keys while flyspell-mode is
;; enabled.
:map flyspell-mode-map
("C-." . goto-last-change)
("C-," . goto-last-change-reverse)))
(provide 'siren-goto-chg)
;;; siren-goto-chg.el ends here

View File

@@ -8,16 +8,14 @@
(use-package haml-mode
:mode "\\.haml\\'" "\\.hamlc\\'"
:hook (haml-mode . siren-haml-mode-setup)
:config
(defun siren-haml-mode-defaults ()
(siren-prog-mode-defaults)
:init
(defun siren-haml-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2)
(highlight-indentation-set-offset 2)
(highlight-indentation-current-column-mode))
(setq siren-haml-mode-hook 'siren-haml-mode-defaults)
(add-hook 'haml-mode-hook (lambda () (run-hooks 'siren-haml-mode-hook))))
(highlight-indentation-current-column-mode)))
(provide 'siren-haml)
;;; siren-haml.el ends here

View File

@@ -8,18 +8,13 @@
(use-package helm
:defer t
:config
(setq helm-autoresize-mode t
helm-autoresize-max-height 30
helm-autoresize-min-height 30
helm-buffer-max-length 64
helm-case-fold-search 'smart
helm-echo-input-in-header-line t
helm-file-name-case-fold-search 'smart
helm-split-window-default-side 'below)
(setq siren-helm--did-hide-neotree nil)
:hook ((helm-minibuffer-set-up . siren-helm--hide-minibuffer-maybe)
(helm-before-initialize . siren-helm--toggle-header-line)
(helm-minibuffer-set-up . siren-helm--popwin-help-mode-off)
(helm-cleanup . siren-helm--popwin-help-mode-on)
(helm-cleanup . siren-helm--show-neotree-maybe))
:init
;; From: https://www.reddit.com/r/emacs/comments/3asbyn/new_and_very_useful_helm_feature_enter_search/
(defun siren-helm--hide-minibuffer-maybe ()
(when (with-helm-buffer helm-echo-input-in-header-line)
@@ -29,16 +24,12 @@
`(:background ,bg-color :foreground ,bg-color)))
(setq-local cursor-type nil))))
(add-hook 'helm-minibuffer-set-up-hook #'siren-helm--hide-minibuffer-maybe)
;; From: https://github.com/emacs-helm/helm/issues/918#issuecomment-81555133
(defun siren-helm--toggle-header-line ()
(if (= (length helm-sources) 1)
(set-face-attribute 'helm-source-header nil :height 0.1)
(set-face-attribute 'helm-source-header nil :height 1.0)))
(add-hook 'helm-before-initialize-hook #'siren-helm--toggle-header-line)
;; From: https://github.com/emacs-helm/helm/wiki/Popwin
(defun siren-helm--popwin-help-mode-off ()
"Turn `popwin-mode' off for *Help* buffers."
@@ -46,8 +37,6 @@
(customize-set-variable 'popwin:special-display-config
(delq 'help-mode popwin:special-display-config))))
(add-hook 'helm-minibuffer-set-up-hook #'siren-helm--popwin-help-mode-off)
;; From: https://github.com/emacs-helm/helm/wiki/Popwin
(defun siren-helm--popwin-help-mode-on ()
"Turn `popwin-mode' on for *Help* buffers."
@@ -55,8 +44,6 @@
(customize-set-variable 'popwin:special-display-config
(add-to-list 'popwin:special-display-config 'help-mode nil #'eq))))
(add-hook 'helm-cleanup-hook #'siren-helm--popwin-help-mode-on)
(defun siren-helm--hide-neotree (&rest plist)
(when (and (fboundp 'neotree-hide)
(fboundp 'neo-global--window-exists-p)
@@ -64,15 +51,24 @@
(setq siren-helm--did-hide-neotree t)
(neotree-hide)))
(advice-add 'helm :before 'siren-helm--hide-neotree)
(defun siren-helm--show-neotree-maybe ()
(when (and (fboundp 'neotree-show)
siren-helm--did-hide-neotree)
(setq siren-helm--did-hide-neotree nil)
(run-with-timer 0.01 nil #'neotree-show)))
(add-hook 'helm-cleanup-hook #'siren-helm--show-neotree-maybe))
:config
(setq helm-autoresize-max-height 30
helm-autoresize-min-height 30
helm-autoresize-mode t
helm-buffer-max-length 64
helm-case-fold-search 'smart
helm-echo-input-in-header-line t
helm-file-name-case-fold-search 'smart
helm-split-window-default-side 'below
siren-helm--did-hide-neotree nil)
(advice-add 'helm :before 'siren-helm--hide-neotree))
(use-package helm-descbinds
:defer t)

View File

@@ -8,8 +8,9 @@
(use-package highlight-symbol
:bind
(("C-c C-p" . highlight-symbol-prev)
("C-c C-n" . highlight-symbol-next))
("C-c C-p" . highlight-symbol-prev)
("C-c C-n" . highlight-symbol-next)
:config
(setq highlight-symbol-highlight-single-occurrence 'nil
highlight-symbol-idle-delay 0.5))

View File

@@ -6,16 +6,16 @@
;;; Code:
(use-package eslintd-fix
:defer t)
(require 'siren-eslintd-fix)
(require 'siren-flycheck)
(require 'siren-folding)
(require 'siren-programming)
(add-to-list 'auto-mode-alist '("\\.js\\'" . js-mode))
(add-to-list 'auto-mode-alist '("\\.pac\\'" . js-mode))
(add-to-list 'interpreter-mode-alist '("node" . js-mode))
(defun siren-js-mode-defaults ()
(defun siren-js-mode-setup ()
"Default tweaks for `js-mode'."
(let ((width 2))
(setq js-indent-level width
@@ -25,7 +25,7 @@
(setq flycheck-checker 'javascript-eslint
flycheck-javascript-eslint-executable "eslint_d")
(siren-prog-mode-defaults)
(siren-prog-mode-setup)
(eslintd-fix-mode)
(company-mode +1)
(subword-mode +1)
@@ -37,10 +37,7 @@
(define-key map (kbd "C-j") 'newline-and-indent)
(define-key map (kbd "C-c C-h") 'siren-toggle-hiding)))
(setq siren-js-mode-hook 'siren-js-mode-defaults)
(add-hook 'js-mode-hook (lambda ()
(run-hooks 'siren-js-mode-hook)))
(add-hook 'js-mode-hook #'siren-js-mode-setup)
(provide 'siren-js)
;;; siren-js.el ends here

View File

@@ -6,16 +6,26 @@
;;; Code:
(require 'siren-eslintd-fix)
(require 'siren-folding)
(require 'siren-programming)
(use-package omnifmt
:ensure nil ;; loaded from vendor
)
(use-package json-mode
:mode "\\.json\\'"
:config
(require 'omnifmt)
:requires (flycheck highlight-indentation omnifmt hideshowvis)
(defun siren-json-mode-defaults ()
:bind (:map json-mode-map
("C-j" . newline-and-indent)
("C-c C-h" . siren-toggle-hiding))
:init
(defun siren-json-mode-setup ()
"Default tweaks for `json-mode'."
(siren-prog-mode-defaults)
(siren-prog-mode-setup)
(let ((width 2))
(setq js-indent-level width)
@@ -26,19 +36,15 @@
(setq flycheck-checker 'json-jsonlint)
(eslintd-fix-mode -1)
(omnifmt-mode)
(omnifmt-mode +1)
(company-mode +1)
(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)
(define-key map (kbd "C-c C-h") 'siren-toggle-hiding)))
(hideshowvis-enable))
(setq siren-json-mode-hook 'siren-json-mode-defaults)
(add-hook 'json-mode-hook (lambda ()
(run-hooks 'siren-json-mode-hook))))
:hook
(json-mode . siren-json-mode-setup))
(provide 'siren-json)
;;; siren-js.el ends here

View File

@@ -6,14 +6,18 @@
;;; Code:
;; Customize line numbers - In gui mode the fringe is the spacer between line
;; numbers and code, while in console mode we add an extra space for it.
(if window-system (setq linum+-dynamic-format " %%%dd")
(setq linum+-dynamic-format " %%%dd "))
(use-package linum+
:ensure nil ;; loaded from vendor
:demand
(eval-after-load "linum+" '(progn (setq linum-format 'dynamic)))
:init
;; Customize line numbers - In GUI mode the fringe is the spacer between line
;; numbers and code, while in console mode we add an extra space for it.
(if window-system (setq linum+-dynamic-format " %%%dd")
(setq linum+-dynamic-format " %%%dd "))
(require 'linum+)
:config
(setq linum-format 'dynamic))
(provide 'siren-linum)
;;; siren-linum.el ends here

View File

@@ -6,6 +6,8 @@
;;; Code:
(require 'siren-programming)
;; Lisp configuration
(define-key read-expression-map (kbd "TAB") 'completion-at-point)

View File

@@ -9,18 +9,18 @@
(require 'siren-programming)
(use-package lua-mode
:config
(defun siren-lua-mode-defaults ()
(siren-prog-mode-defaults)
:hook
(lua-mode . siren-lua-mode-setup)
:init
(defun siren-lua-mode-setup ()
(siren-prog-mode-setup)
(setq lua-indent-level 2
whitespace-action '(auto-cleanup))
(highlight-indentation-current-column-mode)
(subword-mode +1)
(setq lua-indent-level 2
whitespace-action (quote (auto-cleanup))))
(setq siren-lua-mode-hook 'siren-lua-mode-defaults)
(add-hook 'lua-mode-hook (lambda ()
(run-hooks 'siren-lua-mode-hook))))
(subword-mode +1)))
(provide 'siren-lua)
;;; siren-lua.el ends here

View File

@@ -14,9 +14,23 @@
:bind
("C-x g". magit-status)
:hook
(siren-magit-mode . siren-magit-mode-setup)
(git-commit-mode . siren-git-commit-mode-setup)
:init
(defalias 'bl 'magit-blame)
(defun siren-magit-mode-setup ())
(defun siren-git-commit-mode-setup ()
(subword-mode)
(setq tab-width 2)
(fci-mode t)
;; (flyspell-mode) ;; in GUI causes git-commit-mode to lock up emacs
(linum-mode t)
(auto-fill-mode))
:config
(require 'magit)
@@ -27,28 +41,12 @@
magit-revert-buffers 'silent
magit-default-tracking-name-function 'magit-default-tracking-name-branch-only
magit-repository-directories '("~/Projects" "~/src" "~/.emacs.d" "~/.dotfiles")
magit-display-buffer-function 'magit-display-buffer-same-window-except-diff-v1)
(defun siren-magit-mode-defaults ())
(setq siren-magit-mode-hook 'siren-magit-mode-defaults)
(add-hook 'magit-mode-hook (lambda () (run-hooks 'siren-magit-mode-hook)))
(defun siren-git-commit-mode-defaults ()
(subword-mode)
(setq tab-width 2)
(fci-mode t)
;; (flyspell-mode) ;; in GUI causes git-commit-mode to lock up emacs
(linum-mode t)
(auto-fill-mode))
(setq siren-git-commit-mode-hook 'siren-git-commit-mode-defaults)
(add-hook 'git-commit-mode-hook (lambda ()
(run-hooks 'siren-git-commit-mode-hook))))
magit-display-buffer-function 'magit-display-buffer-same-window-except-diff-v1))
(use-package magit-gh-pulls
:hook (magit-mode . turn-on-magit-gh-pulls)
:config
(setq gh-use-local-git-config t)
(add-hook 'magit-mode-hook 'turn-on-magit-gh-pulls))
(setq gh-use-local-git-config t))
(provide 'siren-magit)
;;; siren-magit.el ends here

View File

@@ -8,19 +8,16 @@
(require 'siren-programming)
(add-to-list 'siren-yank-indent-modes 'makefile-mode)
(add-to-list 'siren-indent-sensitive-modes 'makefile-mode)
(defun siren-makefile-mode-defaults ()
(siren-prog-mode-defaults)
(defun siren-makefile-mode-setup ()
(siren-prog-mode-setup)
(subword-mode)
(setq tab-width 4)
(highlight-indentation-set-offset 4)
(highlight-indentation-current-column-mode))
(setq siren-makefile-mode-hook 'siren-makefile-mode-defaults)
(add-hook 'makefile-mode-hook (lambda ()
(run-hooks 'siren-makefile-mode-hook)))
(add-hook 'makefile-mode-hook #'siren-makefile-mode-setup)
(provide 'siren-makefile)
;;; siren-makefile.el ends here

View File

@@ -17,10 +17,14 @@
"\\.mdown"
"\\.markdown"
:config
(setq markdown-command "redcarpet")
:bind (:map markdown-mode-map
("C-c p" . markdown-preview))
(defun siren-markdown-mode-defaults ()
:hook
(markdown-mode . siren-markdown-mode-setup)
:init
(defun siren-markdown-mode-setup ()
(setq whitespace-action nil
fill-column 80
markdown-asymmetric-header t)
@@ -30,15 +34,11 @@
(flyspell-mode)
(auto-fill-mode)
(smartparens-mode +1)
(subword-mode)
(define-key markdown-mode-map (kbd "C-c p") 'markdown-preview))
(subword-mode))
(setq siren-markdown-mode-hook 'siren-markdown-mode-defaults)
(add-hook 'markdown-mode-hook (lambda ()
(run-hooks 'siren-markdown-mode-hook))))
(custom-set-faces
'(markdown-code-face ((t nil))))
:config
(setq markdown-command "redcarpet")
(custom-set-faces '(markdown-code-face ((t nil)))))
(provide 'siren-markdown)
;;; siren-markdown.el ends here

View File

@@ -7,7 +7,7 @@
;;; Code:
(defun siren-move-beginning-of-line (arg)
"Move point back to indentation of beginning of line.
"Move point back to indentation or beginning of line.
Move point to the first non-whitespace character on this line.
If point is already there, move to the beginning of the line.

View File

@@ -11,8 +11,8 @@
(use-package neotree
:bind
("C-x C-p" . neotree-toggle)
("C-x p" . neotree-project-dir)
("C-x p" . neotree-toggle)
("C-x C-p" . neotree-project-dir)
:init
(defun neotree-project-dir ()

View File

@@ -10,7 +10,7 @@
(require 'siren-flyspell)
(require 'siren-smartparens)
(defun siren-org-mode-defaults ()
(defun siren-org-mode-setup ()
(setq org-export-backends '(ascii html icalendar latex md confluence)
fill-column 80
whitespace-action '(auto-cleanup))
@@ -31,9 +31,7 @@
(define-key map (kbd "C-M-n") 'outline-next-visible-heading)
(define-key map (kbd "C-M-p") 'outline-previous-visible-heading)))
(setq siren-org-mode-hook 'siren-org-mode-defaults)
(add-hook 'org-mode-hook (lambda ()
(run-hooks 'siren-org-mode-hook)))
(add-hook 'org-mode-hook #'siren-org-mode-setup)
(provide 'siren-org-mode)
;;; siren-org-mode.el ends here

View File

@@ -6,6 +6,8 @@
;;; Code:
(require 'siren-flycheck)
(use-package package-lint
:defer t)

View File

@@ -7,44 +7,37 @@
;;; Code:
(use-package perspective
:demand
:bind (:map persp-mode-map
("C-z z" . persp-switch)
("C-z C-z" . persp-switch)
("C-z c" . persp-switch)
("C-z C-c" . persp-switch)
("C-z s" . persp-switch)
("C-z C-s" . persp-switch)
("C-z b" . persp-switch)
("C-z C-b" . persp-switch)
("C-z l" . persp-switch-last)
("C-z C-l" . persp-switch-last)
("C-z c" . persp-remove-buffer)
("C-z C-c" . persp-remove-buffer)
("C-z k" . persp-kill)
("C-z C-k" . persp-kill)
("C-z r" . persp-rename)
("C-z C-r" . persp-rename)
("C-z a" . persp-add-buffer)
("C-z C-a" . persp-add-buffer)
("C-z i" . persp-import)
("C-z C-i" . persp-import)
("C-z n" . persp-next)
("C-z C-n" . persp-next)
("C-z p" . persp-prev)
("C-z C-p" . persp-prev))
:config
(setq persp-mode-prefix-key ""
persp-initial-frame-name "0:main")
(define-key persp-mode-map (kbd "C-z") perspective-map)
(define-key persp-mode-map (kbd "C-z z") 'persp-switch)
(define-key persp-mode-map (kbd "C-z C-z") 'persp-switch)
(define-key persp-mode-map (kbd "C-z c") 'persp-switch)
(define-key persp-mode-map (kbd "C-z C-c") 'persp-switch)
(define-key persp-mode-map (kbd "C-z s") 'persp-switch)
(define-key persp-mode-map (kbd "C-z C-s") 'persp-switch)
(define-key persp-mode-map (kbd "C-z b") 'persp-switch)
(define-key persp-mode-map (kbd "C-z C-b") 'persp-switch)
(define-key persp-mode-map (kbd "C-z l") 'persp-switch-last)
(define-key persp-mode-map (kbd "C-z C-l") 'persp-switch-last)
(define-key persp-mode-map (kbd "C-z c") 'persp-remove-buffer)
(define-key persp-mode-map (kbd "C-z C-c") 'persp-remove-buffer)
(define-key persp-mode-map (kbd "C-z k") 'persp-kill)
(define-key persp-mode-map (kbd "C-z C-k") 'persp-kill)
(define-key persp-mode-map (kbd "C-z r") 'persp-rename)
(define-key persp-mode-map (kbd "C-z C-r") 'persp-rename)
(define-key persp-mode-map (kbd "C-z a") 'persp-add-buffer)
(define-key persp-mode-map (kbd "C-z C-a") 'persp-add-buffer)
(define-key persp-mode-map (kbd "C-z i") 'persp-import)
(define-key persp-mode-map (kbd "C-z C-i") 'persp-import)
(define-key persp-mode-map (kbd "C-z n") 'persp-next)
(define-key persp-mode-map (kbd "C-z C-n") 'persp-next)
(define-key persp-mode-map (kbd "C-z p") 'persp-prev)
(define-key persp-mode-map (kbd "C-z C-p") 'persp-prev)
(persp-mode)
;; (custom-set-faces

View File

@@ -10,19 +10,20 @@
(require 'siren-rainbow)
(use-package php-mode
:config
(defun siren-php-mode-defaults ()
(siren-prog-mode-defaults)
:interpreter "php"
:mode "\\.php\\'" "\\.inc\\'" "\\.module\\'"
:hook
(php-mode . siren-php-mode-setup)
:init
(defun siren-php-mode-setup ()
(siren-prog-mode-setup)
(rainbow-mode +1)
(company-mode +1)
(subword-mode +1)
(highlight-indentation-current-column-mode)
(hs-minor-mode 1)
(hideshowvis-enable))
(setq siren-php-mode-hook 'siren-php-mode-defaults)
(add-hook 'php-mode-hook (lambda ()
(run-hooks 'siren-php-mode-hook))))
(hideshowvis-enable)))
(provide 'siren-php)
;;; siren-php.el ends here

View File

@@ -10,18 +10,16 @@
(use-package plantuml-mode
:mode "\\.uml\\'"
:hook
(plantuml-mode . siren-plantuml-mode-setup)
:config
(defun siren-plantuml-mode-defaults ()
(siren-prog-mode-defaults)
(setq tab-width 2)
(setq plantuml-jar-path "/usr/local/Cellar/plantuml/8048/plantuml.8048.jar")
:init
(defun siren-plantuml-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2
plantuml-jar-path "/usr/local/opt/plantuml/libexec/plantuml.jar")
(highlight-indentation-set-offset 2)
(highlight-indentation-current-column-mode))
(setq siren-plantuml-mode-hook 'siren-plantuml-mode-defaults)
(add-hook 'plantuml-mode-hook (lambda ()
(run-hooks 'siren-plantuml-mode-hook))))
(highlight-indentation-current-column-mode)))
(provide 'siren-plantuml)
;;; siren-plantuml.el ends here

View File

@@ -13,26 +13,20 @@
(require 'siren-highlight-indentation)
(require 'siren-highlight-symbol)
(defun siren-prog-mode-defaults ()
(defun siren-prog-mode-setup ()
"Default coding hook, useful with any programming language."
(setq fill-column 80)
(linum-mode t)
(flyspell-prog-mode)
(flycheck-mode +1)
(fci-mode)
(smartparens-mode +1)
(highlight-symbol-mode)
(setq whitespace-action (quote (auto-cleanup)))
(setq whitespace-action '(auto-cleanup))
(visual-line-mode +1)
(whitespace-mode +1))
(setq siren-prog-mode-hook 'siren-prog-mode-defaults)
(add-hook 'prog-mode-hook (lambda ()
(run-hooks 'siren-prog-mode-hook)))
;; enable on-the-fly syntax checking
(if (fboundp 'global-flycheck-mode)
(global-flycheck-mode +1)
(add-hook 'prog-mode-hook 'flycheck-mode))
(add-hook 'prog-mode-hook #'siren-prog-mode-setup)
(provide 'siren-programming)
;;; siren-programming.el ends here

View File

@@ -7,7 +7,8 @@
;;; Code:
(use-package rainbow-mode
:defer t)
:defer t
:diminish raindbox-mode)
(provide 'siren-rainbow)
;;; siren-rainbow.el ends here

View File

@@ -8,6 +8,15 @@
(use-package rubocop
:defer t
:bind (:map rubocop-mode-map
("C-c C-f" . siren-rubocop-autocorrect))
:hook
(rubocop-mode . siren-rubocop-mode-setup)
(after-save . siren-rubocop-autocorrect-hook)
:init
(defun siren-rubocop-mode-setup ())
:config
(defgroup siren-rubocop nil
@@ -56,17 +65,7 @@ auto-correction is triggered."
(defun siren-rubocop-autocorrect-hook ()
"Siren's Rubocop auto-correct hook."
(if siren-rubocop-autocorrect-on-save
(siren-rubocop-autocorrect-p nil)))
(defun siren-rubocop-mode-defaults ()
(add-hook 'after-save-hook 'siren-rubocop-autocorrect-hook nil t)
(let ((map rubocop-mode-map))
(define-key map (kbd "C-c C-f") 'siren-rubocop-autocorrect)))
(setq siren-rubocop-mode-hook 'siren-rubocop-mode-defaults)
(add-hook 'rubocop-mode-hook (lambda ()
(run-hooks 'siren-rubocop-mode-hook))))
(siren-rubocop-autocorrect-p nil))))
(provide 'siren-rubocop)
;;; siren-rubocop.el ends here

View File

@@ -6,101 +6,108 @@
;;; Code:
(require 'siren-company)
(require 'siren-folding)
(require 'siren-programming)
(require 'siren-smartparens)
(require 'siren-toggle-quotes)
(require 'smartparens-ruby)
(use-package rubocopfmt
:ensure nil ;; loaded from vendor
)
(use-package inf-ruby
:defer t)
(use-package rspec-mode
:defer t
:init
(eval-after-load 'rspec-mode '(rspec-install-snippets)))
:config
(rspec-install-snippets))
(use-package ruby-refactor
:defer t)
(use-package ruby-tools
:defer t)
:defer t
:bind (:map ruby-tools-mode-map
("C-'" . toggle-quotes)))
(use-package yari
:defer t
:init
(define-key 'help-command (kbd "R") 'yari))
(require 'siren-programming)
(require 'siren-company)
(require 'siren-smartparens)
(require 'siren-toggle-quotes)
(use-package ruby-mode
:ensure nil ;; loaded from emacs built-ins
:interpreter "ruby"
:mode
"Appraisals\\'"
"Berksfile\\'"
"Capfile\\'"
"Gemfile\\'"
"Guardfile\\'"
"Podfile\\'"
"Puppetfile\\'"
"Rakefile\\'"
"Thorfile\\'"
"Vagrantfile\\'"
"\\.cap\\'"
"\\.gemspec\\'"
"\\.jbuilder\\'"
"\\.podspec\\'"
"\\.rabl\\'"
"\\.rake\\'"
"\\.ru\\'"
"\\.thor\\'"
"\\.rb\\'"
(require 'smartparens-ruby)
(require 'rubocopfmt)
(require 'ruby-mode)
:bind (:map ruby-mode-map
("C-j" . newline-and-indent)
("RET" . newline-and-indent)
("C-c C-h" . siren-toggle-hiding)
("C-c C-l" . goto-line)
("C-M-f" . sp-ruby-forward-sexp)
("C-M-b" . sp-ruby-backward-sexp))
;; Rake files are ruby, too, as are gemspecs, rackup files, and gemfiles.
(add-to-list 'auto-mode-alist '("\\.rake\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("Rakefile\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("\\.gemspec\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("\\.ru\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("Gemfile\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("Guardfile\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("Capfile\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("\\.cap\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("\\.thor\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("\\.rabl\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("Thorfile\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("Vagrantfile\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("\\.jbuilder\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("Podfile\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("\\.podspec\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("Puppetfile\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("Berksfile\\'" . ruby-mode))
(add-to-list 'auto-mode-alist '("Appraisals\\'" . ruby-mode))
:hook
(ruby-mode . siren-ruby-mode-setup)
;; We never want to edit Rubinius bytecode
(add-to-list 'completion-ignored-extensions ".rbc")
:init
(defun siren-ruby-mode-setup ()
(siren-prog-mode-setup)
;; Set up hs-mode (HideShow) for Ruby
(add-to-list 'hs-special-modes-alist
`(ruby-mode
,(rx (or "def" "class" "module" "do" "if" "case")) ;; Block start
,(rx (or "end")) ;; Block end
,(rx (or "#" "=begin")) ;; Comment start
ruby-forward-sexp nil))
(setq c-tab-always-indent nil
rspec-primary-source-dirs '("app")
ruby-align-chained-calls t
ruby-insert-encoding-magic-comment t
ruby-refactor-add-parens t
ruby-use-smie t
tab-width 2)
;; Make company-mode play nice
(push 'ruby-mode company-dabbrev-code-modes)
(rubocopfmt-mode)
(ruby-tools-mode +1)
(hs-minor-mode 1)
(company-mode +1)
(subword-mode +1)
(highlight-indentation-current-column-mode)
(hideshowvis-enable))
(defun siren-ruby-mode-defaults ()
(siren-prog-mode-defaults)
:config
;; We never want to edit Rubinius bytecode
(add-to-list 'completion-ignored-extensions ".rbc")
(setq c-tab-always-indent nil
rspec-primary-source-dirs '("app")
ruby-align-chained-calls t
ruby-insert-encoding-magic-comment t
ruby-refactor-add-parens t
ruby-use-smie t
tab-width 2)
;; Set up hs-mode (HideShow) for Ruby
(add-to-list 'hs-special-modes-alist
`(ruby-mode
,(rx (or "def" "class" "module" "do" "if" "case")) ;; Block start
,(rx (or "end")) ;; Block end
,(rx (or "#" "=begin")) ;; Comment start
ruby-forward-sexp nil))
(rubocopfmt-mode)
(ruby-tools-mode +1)
(hs-minor-mode 1)
(company-mode +1)
(subword-mode +1)
(highlight-indentation-current-column-mode)
(hideshowvis-enable)
(let ((map ruby-mode-map))
(define-key map (kbd "C-j") 'newline-and-indent)
(define-key map (kbd "RET") 'newline-and-indent)
(define-key map (kbd "C-c C-h") 'siren-toggle-hiding)
(define-key map (kbd "C-c C-l") 'goto-line)
(define-key map (kbd "C-M-f") 'sp-ruby-forward-sexp)
(define-key map (kbd "C-M-b") 'sp-ruby-backward-sexp))
(let ((map ruby-tools-mode-map))
(define-key map (kbd "C-'") 'toggle-quotes)))
(setq siren-ruby-mode-hook 'siren-ruby-mode-defaults)
(add-hook 'ruby-mode-hook (lambda ()
(run-hooks 'siren-ruby-mode-hook)))
;; Make company-mode play nice
(push 'ruby-mode company-dabbrev-code-modes))
(provide 'siren-ruby)
;;; siren-ruby.el ends here

View File

@@ -10,16 +10,15 @@
(use-package sass-mode
:mode "\\.sass\\'"
:hook (sass-mode . siren-sass-mode-setup)
:init
(defun siren-sass-mode-setup ()
(siren-css-mode-css))
:config
;; turn off annoying auto-compile on save
(setq sass-compile-at-save nil)
(defun siren-sass-mode-defaults ()
(siren-css-mode-defaults))
(setq siren-sass-mode-hook 'siren-sass-mode-defaults)
(add-hook 'sass-mode-hook (lambda () (run-hooks 'siren-sass-mode-hook))))
(setq sass-compile-at-save nil))
(provide 'siren-sass)
;;; siren-sass.el ends here

View File

@@ -10,16 +10,14 @@
(use-package scss-mode
:mode "\\.scss\\'"
:hook (scss-mode-hook . siren-scss-mode-setup)
:config
;; turn off annoying auto-compile on save
(setq scss-compile-at-save nil)
(defun siren-scss-mode-defaults ()
(siren-css-mode-defaults))
(setq siren-scss-mode-hook 'siren-scss-mode-defaults)
(add-hook 'scss-mode-hook (lambda () (run-hooks 'siren-scss-mode-hook))))
(defun siren-scss-mode-setup ()
(siren-css-mode-setup)))
(provide 'siren-scss)
;;; siren-scss.el ends here

View File

@@ -8,8 +8,8 @@
(require 'siren-programming)
(defun siren-sh-mode-defaults ()
(siren-prog-mode-defaults)
(defun siren-sh-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2
sh-basic-offset 2
@@ -21,9 +21,7 @@
(highlight-indentation-current-column-mode)
(define-key sh-mode-map (kbd "RET") 'newline-and-indent))
(setq siren-sh-mode-hook 'siren-sh-mode-defaults)
(add-hook 'sh-mode-hook (lambda ()
(run-hooks 'siren-sh-mode-hook)))
(add-hook 'sh-mode-hook #'siren-sh-mode-setup)
(provide 'siren-sh)
;;; siren-sh.el ends here

View File

@@ -8,10 +8,11 @@
(use-package slim-mode
:mode "\\.slim\\'"
:hook (slim-mode-hook . siren-slim-mode-hook)
:config
(defun siren-slim-mode-defaults ()
(siren-prog-mode-defaults)
:init
(defun siren-slim-mode-setup ()
(siren-prog-mode-setup)
(highlight-indentation-current-column-mode))
(setq siren-slim-mode-hook 'siren-slim-mode-defaults)

View File

@@ -9,15 +9,35 @@
(use-package smartparens
:defer t
:diminish smartparens-mode
:bind (:map smartparens-mode-map
("C-M-t" . sp-transpose-sexp)
("C-M-r" . siren-sp-transpose-sexp-reverse)
("C-M-f" . sp-forward-sexp)
("C-M-b" . sp-backward-sexp)
("C-M-a" . sp-beginning-of-sexp)
("C-M-e" . sp-end-of-sexp)
("C-M-]" . sp-forward-slurp-sexp)
("C-M-[" . sp-forward-barf-sexp)
("C-M-." . sp-forward-slurp-sexp)
("C-M-," . sp-forward-barf-sexp)
("s->" . sp-forward-slurp-sexp)
("s-<" . sp-forward-barf-sexp)
("M-|" . sp-split-sexp)
("M-t" . sp-backward-up-sexp)
("C-<backspace>" . sp-backward-kill-sexp)
("C-<delete>" . sp-kill-sexp))
:init
(defalias 'rw 'sp-rewrap-sexp)
(show-smartparens-global-mode +1)
(defun siren-sp-transpose-sexp-reverse ()
(sp-transpose-sexp -1))
:config
;; smart pairing for all
(require 'smartparens-config)
(defalias 'rw 'sp-rewrap-sexp)
(show-smartparens-global-mode +1)
(setq sp-base-key-bindings 'paredit
sp-autoskip-closing-pair 'always
sp-hybrid-kill-entire-symbol nil)
@@ -27,27 +47,7 @@
(sp-pair "{" nil :post-handlers
'(((lambda (&rest _ignored)
(siren-smart-open-line-above)) "RET")))
;; Keybindings
(let ((map smartparens-mode-map))
(define-key map (kbd "C-M-t") 'sp-transpose-sexp)
(define-key map (kbd "C-M-r") (lambda ()
(interactive) (sp-transpose-sexp -1)))
(define-key map (kbd "C-M-f") 'sp-forward-sexp)
(define-key map (kbd "C-M-b") 'sp-backward-sexp)
(define-key map (kbd "C-M-a") 'sp-beginning-of-sexp)
(define-key map (kbd "C-M-e") 'sp-end-of-sexp)
(define-key map (kbd "C-M-]") 'sp-forward-slurp-sexp)
(define-key map (kbd "C-M-[") 'sp-forward-barf-sexp)
(define-key map (kbd "C-M-.") 'sp-forward-slurp-sexp)
(define-key map (kbd "C-M-,") 'sp-forward-barf-sexp)
(define-key map (kbd "s->") 'sp-forward-slurp-sexp)
(define-key map (kbd "s-<") 'sp-forward-barf-sexp)
(define-key map (kbd "M-|") 'sp-split-sexp)
;; (define-key map (kbd "M-t") 'sp-backward-up-sexp)
(define-key map (kbd "C-<backspace>") 'sp-backward-kill-sexp)
(define-key map (kbd "C-<delete>") 'sp-kill-sexp)))
(siren-smart-open-line-above)) "RET"))))
(provide 'siren-smartparens)
;;; siren-smartparens.el ends here

View File

@@ -10,18 +10,15 @@
(use-package thrift
:mode "\\.thrift\\'"
:hook (thrift-mode-hook . siren-thrift-mode-setup)
:config
(defun siren-thrift-mode-defaults ()
(siren-prog-mode-defaults)
:init
(defun siren-thrift-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2)
(highlight-indentation-current-column-mode)
(subword-mode +1))
(setq siren-thrift-mode-hook 'siren-thrift-mode-defaults)
(add-hook 'thrift-mode-hook (lambda ()
(run-hooks 'siren-thrift-mode-hook))))
(subword-mode +1)))
(provide 'siren-thrift)
;;; siren-thrift.el ends here

View File

@@ -7,8 +7,18 @@
;;; Code:
(use-package treemacs
:ensure t
:defer t
:bind
([f8] . treemacs-toggle)
("M-0" . treemacs-select-window)
("C-c 1" . treemacs-delete-other-windows)
;; ("M-m ft" . treemacs-toggle)
;; ("M-m fT" . treemacs)
;; ("M-m fB" . treemacs-bookmark)
;; ("M-m f C-t" . treemacs-find-file)
;; ("M-m f M-t" . treemacs-find-tag)
:config
(progn
(use-package treemacs-evil
@@ -28,28 +38,16 @@
treemacs-goto-tag-strategy 'refetch-index)
(treemacs-follow-mode t)
(treemacs-filewatch-mode t))
:bind
(:map global-map
([f8] . treemacs-toggle)
("M-0" . treemacs-select-window)
("C-c 1" . treemacs-delete-other-windows)
;; ("M-m ft" . treemacs-toggle)
;; ("M-m fT" . treemacs)
;; ("M-m fB" . treemacs-bookmark)
;; ("M-m f C-t" . treemacs-find-file)
;; ("M-m f M-t" . treemacs-find-tag)
)
)
(treemacs-filewatch-mode t)))
(use-package treemacs-projectile
:defer t
:ensure t
:bind
("C-x C-p" . treemacs-projectile)
("C-x C-p" . treemacs-projectile-toggle)
:config
(setq treemacs-header-function #'treemacs-projectile-create-header)
:bind (:map global-map
("C-x C-p" . treemacs-projectile)
("C-x C-p" . treemacs-projectile-toggle)))
(setq treemacs-header-function #'treemacs-projectile-create-header))
(provide 'siren-treemacs)
;;; siren-treemacs.el ends here

View File

@@ -13,29 +13,32 @@
"\\.html\\'"
"\\.html.erb\\'"
:config
(setq web-mode-code-indent-offset 2
web-mode-css-indent-offset 2
web-mode-markup-indent-offset 2
web-mode-sql-indent-offset 2)
:bind (:map web-mode-map
("C-j" . newline-and-indent)
("C-c C-h" . siren-toggle-hiding))
(defun siren-web-mode-mode-hook ()
:hook
(web-mode-hook . siren-web-mode-setup)
:init
(defun siren-web-mode-mode-setup ()
"Default tweaks for `web-mode'."
(setq tab-width 2)
(siren-prog-mode-defaults)
(siren-prog-mode-setup)
(company-mode +1)
(fci-mode -1)
(hideshowvis-enable)
(hs-minor-mode +1)
(highlight-indentation-current-column-mode)
(highlight-indentation-set-offset 2)
(subword-mode +1)
(let ((map web-mode-map))
(define-key map (kbd "C-j") 'newline-and-indent)
(define-key map (kbd "C-c C-h") 'siren-toggle-hiding)))
(subword-mode +1))
(add-hook 'web-mode-hook 'siren-web-mode-mode-hook))
:config
(setq web-mode-code-indent-offset 2
web-mode-css-indent-offset 2
web-mode-markup-indent-offset 2
web-mode-sql-indent-offset 2))
(provide 'siren-web-mode)
;;; siren-web-mode.el ends here

View File

@@ -10,19 +10,21 @@
(use-package yaml-mode
:mode "\\.yml\\'" "\\.yaml\\'"
:config
(defun siren-yaml-mode-defaults ()
(siren-prog-mode-defaults)
:bind (:map yaml-mode-map
("RET" . newline-and-indent))
:hook
(yaml-mode . siren-yaml-mode-setup)
:init
(defun siren-yaml-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2
whitespace-action '(auto-cleanup))
(highlight-indentation-set-offset 2)
(highlight-indentation-current-column-mode)
(subword-mode +1)
(define-key yaml-mode-map (kbd "RET") 'newline-and-indent))
(setq siren-yaml-mode-hook 'siren-yaml-mode-defaults)
(add-hook 'yaml-mode-hook (lambda () (run-hooks 'siren-yaml-mode-hook))))
(subword-mode +1)))
(provide 'siren-yaml)
;;; siren-yaml.el ends here