Majorly re-organize modules

- Split large modules into smaller parts (e.g. siren-text-manipulation)
- Organize modules into high level groups:
  - completion
  - core
  - editor
  - languages
  - linting
  - misc
  - navigation
  - projects
  - spelling
  - text-editing
  - version-control
  - windows
  - workspaces
This commit is contained in:
2018-05-20 17:31:11 +01:00
parent 3b07c4cfbf
commit 87a86191db
118 changed files with 592 additions and 463 deletions

View File

@@ -8,73 +8,86 @@
(setq siren-modules-dir (expand-file-name "modules" siren-dir))
(add-to-list 'load-path siren-modules-dir)
(siren-add-subfolders-to-load-path siren-modules-dir)
;; Modules
;; Core
(require 'siren-aliases)
(require 'siren-global-keybindings)
(require 'siren-packages)
;; Completion
(require 'siren-company)
;; Editor
(require 'siren-browse-kill-ring)
(require 'siren-evil)
(require 'siren-ido)
(require 'siren-linum)
(require 'siren-linum-relative)
(require 'siren-rainbow)
(require 'siren-smex)
(require 'siren-undo-tree)
(require 'siren-which-key)
;; Linting
(require 'siren-flycheck)
;; Navigation
(require 'siren-anzu)
(require 'siren-avy)
(require 'siren-browse-kill-ring)
(require 'siren-company)
(require 'siren-diff-hl)
(require 'siren-dired)
(require 'siren-direx)
(require 'siren-dumb-jump)
(require 'siren-editorconfig)
(require 'siren-evil)
(require 'siren-flyspell)
(require 'siren-folding)
(require 'siren-full-ack)
(require 'siren-git-link)
(require 'siren-git-timemachine)
(require 'siren-github)
(require 'siren-global-keybindings)
(require 'siren-goto-chg)
(require 'siren-goto-symbol)
(require 'siren-helm)
(require 'siren-helm-ag)
(require 'siren-helm-gtags)
(require 'siren-helm-open-github)
(require 'siren-helm-projectile)
(require 'siren-helm-swoop)
(require 'siren-ido)
(require 'siren-linum)
(require 'siren-linum-relative)
(require 'siren-magit)
(require 'siren-move-beginning-of-line)
(require 'siren-multiple-cursors)
(require 'siren-org-mode)
(require 'siren-packages)
(require 'siren-rainbow)
(require 'siren-scroll-half-screen)
(require 'siren-smartparens)
(require 'siren-smex)
(require 'siren-string-inflection)
(require 'siren-text-manipulation)
(require 'siren-toggle-quotes)
(require 'siren-undo-tree)
(require 'siren-which-key)
(require 'siren-window-management)
(require 'siren-yasnippet)
(require 'siren-zoom-window)
;; (require 'siren-auto-complete)
;; (require 'siren-edit-server)
;; (require 'siren-swiper)
;; (require 'siren-volatile-highlights)
;; (require 'siren-zone)
;; Project management
(require 'siren-editorconfig)
(require 'siren-helm-projectile)
(require 'siren-neotree)
(require 'siren-projectile)
;; (require 'siren-ecb)
;; (require 'siren-project-explorer)
;; (require 'siren-treemacs)
;; Spelling
(require 'siren-flyspell)
;; Text editing
(require 'siren-expand-region)
(require 'siren-goto-chg)
(require 'siren-move-dup)
(require 'siren-multiple-cursors)
(require 'siren-randomize-region)
(require 'siren-smart-shift)
(require 'siren-smartparens)
(require 'siren-sort-symbols)
(require 'siren-sort-words)
(require 'siren-string-inflection)
(require 'siren-toggle-comments)
(require 'siren-toggle-quotes)
(require 'siren-yasnippet)
;; Version control
(require 'siren-diff-hl)
(require 'siren-ediff)
(require 'siren-git-timemachine)
(require 'siren-github)
(require 'siren-magit)
;; Window management
(require 'siren-buffer-move)
(require 'siren-windmove)
(require 'siren-zoom-window)
;; Workspace management
(require 'siren-escreen)
;; (require 'siren-elscreen)
;; (require 'siren-eyebrowse)
;; (require 'siren-perspective)
;; (require 'siren-workgroups2)
;; Languages
(require 'siren-coffee)
@@ -93,17 +106,20 @@
(require 'siren-lua)
(require 'siren-makefile)
(require 'siren-markdown)
(require 'siren-org-mode)
(require 'siren-php)
(require 'siren-plantuml)
(require 'siren-prog-mode)
(require 'siren-ruby)
(require 'siren-rust)
(require 'siren-sass)
(require 'siren-scss)
(require 'siren-sh)
(require 'siren-slim)
(require 'siren-text-mode)
(require 'siren-thrift)
(require 'siren-web-mode)
(require 'siren-yaml)
;; (require 'siren-slim)
(provide 'siren-modules)
;;; siren-modules.el ends here

View File

@@ -7,6 +7,7 @@
;;; Code:
(use-package fill-column-indicator
:hook (prog-mode . fci-mode)
:config
(setq fci-rule-width 1
fci-handle-trucate-lines nil))

View File

@@ -0,0 +1,15 @@
;;; siren-highlight-indent-guides.el --- jimeh's Emacs Siren: highlight-indent-guides-mode configuration.
;;; Commentary:
;; Basic configuration for highlight-indent-guides-mode.
;;; Code:
(use-package highlight-indent-guides
:defer t
:commands highlight-indent-guides-mode
:diminish highlight-indent-guides-mode)
(provide 'siren-highlight-indent-guides)
;;; siren-highlight-indent-guides.el ends here

View File

@@ -11,8 +11,5 @@
:diminish (highlight-indentation-mode
highlight-indentation-current-column-mode))
(use-package highlight-indent-guides
:defer t)
(provide 'siren-highlight-indentation)
;;; siren-highlight-indentation.el ends here

View File

@@ -6,10 +6,13 @@
;;; Code:
(use-package linum
:ensure nil ;; loaded from emacs built-ins
:hook (prog-mode . linum-mode))
(use-package linum+
:ensure nil ;; loaded from vendor
:demand
:after linum
: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.

View File

@@ -6,11 +6,15 @@
;;; Code:
(use-package volatile-highlights-mode
(require 'siren-undo-tree)
(use-package volatile-highlights
:demand
:diminish volatile-highlights-mode
:config
(volatile-highlights-mode t))
(volatile-highlights-mode t)
(vhl/define-extension 'undo-tree 'undo-tree-yank 'undo-tree-move)
(vhl/install-extension 'undo-tree))
(provide 'siren-volatile-highlights)
;;; siren-volatile-highlights.el ends here

View File

@@ -6,8 +6,6 @@
;;; Code:
(require 'siren-programming)
(use-package coffee-mode
:mode "\\.coffee\\'"
:interpreter "coffee"
@@ -15,8 +13,6 @@
:init
(defun siren-coffee-mode-setup ()
(siren-prog-mode-setup)
;; remove the "Generated by CoffeeScript" header
(add-to-list 'coffee-args-compile "--no-header")

View File

@@ -6,7 +6,14 @@
;;; Code:
(require 'siren-programming)
(require 'siren-fci)
(require 'siren-flyspell)
(require 'siren-linum)
(require 'siren-prog-mode)
(require 'siren-flycheck)
(require 'siren-highlight-indentation)
(require 'siren-highlight-symbol)
(require 'siren-smartparens)
(use-package conf-mode
:mode "Procfile\\'" "\\.conf\\'" "\\.cfg\\'"
@@ -16,8 +23,15 @@
(defun siren-conf-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2)
(fci-mode)
(flycheck-mode)
(flyspell-prog-mode)
(highlight-indentation-current-column-mode)
(highlight-indentation-set-offset 2)
(highlight-indentation-current-column-mode)))
(highlight-symbol-mode)
(linum-mode)
(smartparens-mode)))
(provide 'siren-conf)
;;; siren-conf.el ends here

View File

@@ -6,7 +6,6 @@
;;; Code:
(require 'siren-programming)
(require 'siren-rainbow)
(use-package css-mode
@@ -18,10 +17,10 @@
:init
(defun siren-css-mode-setup ()
(siren-prog-mode-setup)
(rainbow-mode +1)
(setq tab-width 2)
(highlight-indentation-current-column-mode)))
(highlight-indentation-current-column-mode +1)
(rainbow-mode +1)))
(provide 'siren-css)
;;; siren-css.el ends here

View File

@@ -6,7 +6,14 @@
;;; Code:
(require 'siren-programming)
(require 'siren-fci)
(require 'siren-flyspell)
(require 'siren-linum)
(require 'siren-prog-mode)
(require 'siren-flycheck)
(require 'siren-highlight-indentation)
(require 'siren-highlight-symbol)
(require 'siren-smartparens)
(use-package feature-mode
:mode "\\.feature\\'"
@@ -17,8 +24,15 @@
(defun siren-feature-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2)
(fci-mode)
(flycheck-mode)
(flyspell-prog-mode)
(highlight-indentation-current-column-mode)
(highlight-indentation-set-offset 2)
(highlight-indentation-current-column-mode)))
(highlight-symbol-mode)
(linum-mode)
(smartparens-mode)))
(provide 'siren-cucumber)
;;; siren-cucumber.el ends here

View File

@@ -6,15 +6,12 @@
;;; Code:
(require 'siren-programming)
(use-package dockerfile-mode
:mode "Dockerfile.*\\'"
:hook (dockerfile-mode . siren-dockerfile-mode-setup)
:init
(defun siren-dockerfile-mode-setup ()
(siren-prog-mode-setup)
(subword-mode +1)))
(provide 'siren-dockerfile)

View File

@@ -6,18 +6,12 @@
;;; Code:
(require 'siren-programming)
(use-package gitconfig-mode
:mode "\\.gitconfig" "gitconfig\\'" "\\.git\\\/config"
:hook (gitconfig-mode . siren-gitconfig-mode-setup)
: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)))
(defun siren-gitconfig-mode-setup ()))
(provide 'siren-gitconfig)
;;; siren-gitconfig.el ends here

View File

@@ -6,18 +6,12 @@
;;; Code:
(require 'siren-programming)
(use-package gitignore-mode
:mode "\\.gitignore" "gitignore\\'"
:hook (gitignore-mode . siren-gitignore-mode-setup)
: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)))
(defun siren-gitignore-mode-setup ()))
(provide 'siren-gitignore)
;;; siren-gitignore.el ends here

View File

@@ -6,9 +6,10 @@
;;; Code:
(require 'siren-company)
(require 'siren-flycheck)
(require 'siren-folding)
(require 'siren-programming)
(require 'siren-projectile)
(use-package go-mode
:mode "\\.go\\'"
@@ -23,8 +24,6 @@
:init
(defun siren-go-mode-setup ()
(siren-prog-mode-setup)
;; Prefer goimports to gofmt if installed
(let ((goimports (executable-find "goimports")))
(when goimports

View File

@@ -12,10 +12,9 @@
:init
(defun siren-haml-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2)
(highlight-indentation-set-offset 2)
(highlight-indentation-current-column-mode)))
(highlight-indentation-current-column-mode +1)))
(provide 'siren-haml)
;;; siren-haml.el ends here

View File

@@ -0,0 +1,42 @@
;;; siren-js.el --- jimeh's Emacs Siren: js-mode configuration.
;;; Commentary:
;; Basic configuration for js-mode.
;;; Code:
(require 'siren-prettier-js)
(require 'siren-folding)
(use-package js-mode
:ensure nil ;; loaded from emacs built-ins
:mode
"\\.js\\'"
"\\.pac\\'"
"node"
:hook
(js-mode . siren-js-mode-setup)
:init
(defun siren-js-mode-setup ()
"Default tweaks for `js-mode'."
(let ((width 2))
(setq js-indent-level width
indent-level width
tab-width width))
(prettier-js-mode)
(company-mode +1)
(subword-mode +1)
(hs-minor-mode 1)
(highlight-indentation-current-column-mode)
(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))))
(provide 'siren-js)
;;; siren-js.el ends here

View File

@@ -8,11 +8,6 @@
(require 'siren-eslintd-fix)
(require 'siren-folding)
(require 'siren-programming)
(use-package omnifmt
:ensure nil ;; loaded from vendor
)
(use-package json-mode
:mode "\\.json\\'"
@@ -22,10 +17,12 @@
("C-j" . newline-and-indent)
("C-c C-h" . siren-toggle-hiding))
:hook
(json-mode . siren-json-mode-setup)
:init
(defun siren-json-mode-setup ()
"Default tweaks for `json-mode'."
(siren-prog-mode-setup)
(let ((width 2))
(setq js-indent-level width)
@@ -33,18 +30,7 @@
(setq tab-width width)
(highlight-indentation-set-offset width))
(setq flycheck-checker 'json-jsonlint)
(eslintd-fix-mode -1)
(omnifmt-mode +1)
(company-mode +1)
(subword-mode +1)
(hs-minor-mode 1)
(highlight-indentation-current-column-mode)
(hideshowvis-enable))
:hook
(json-mode . siren-json-mode-setup))
(setq flycheck-checker 'json-jsonlint)))
(provide 'siren-json)
;;; siren-js.el ends here

View File

@@ -15,13 +15,11 @@
:init
(defun siren-rjsx-mode-setup ()
(siren-prog-mode-setup)
(prettier-js-mode)
(prettier-js-mode +1)
(company-mode +1)
(subword-mode +1)
(hs-minor-mode 1)
(highlight-indentation-current-column-mode)
(hs-minor-mode +1)
(highlight-indentation-current-column-mode +1)
(hideshowvis-enable)))
(provide 'siren-jsx)

View File

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

View File

@@ -6,16 +6,12 @@
;;; Code:
(require 'siren-programming)
(use-package lua-mode
: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))

View File

@@ -0,0 +1,23 @@
;;; siren-makefile.el --- jimeh's Emacs Siren: makefile-mode configuration.
;;; Commentary:
;; Basic configuration for makefile-mode.
;;; Code:
(use-package make-mode
:ensure nil ;; loaded from emacs built-ins
:hook
(makefile-mode-hook . siren-makefile-mode-setup)
:init
(add-to-list 'siren-indent-sensitive-modes 'makefile-mode)
(defun siren-makefile-mode-setup ()
(subword-mode +1)
(setq tab-width 4)
(highlight-indentation-set-offset 4)
(highlight-indentation-current-column-mode)))
(provide 'siren-makefile)
;;; siren-makefile.el ends here

View File

@@ -6,7 +6,9 @@
;;; Code:
(require 'siren-fci)
(require 'siren-flyspell)
(require 'siren-linum)
(require 'siren-smartparens)
(use-package markdown-mode
@@ -25,14 +27,13 @@
:init
(defun siren-markdown-mode-setup ()
(setq whitespace-action nil
fill-column 80
markdown-asymmetric-header t)
(setq markdown-asymmetric-header t
whitespace-action nil)
(fci-mode)
(linum-mode t)
(flyspell-mode)
(auto-fill-mode)
(fci-mode)
(flyspell-mode)
(linum-mode t)
(smartparens-mode +1)
(subword-mode))

View File

@@ -0,0 +1,43 @@
;;; siren-org-mode.el --- jimeh's Emacs Siren: org-mode configuration.
;;; Commentary:
;; Basic configuration for org-mode.
;;; Code:
(require 'siren-fci)
(require 'siren-flyspell)
(require 'siren-linum)
(require 'siren-smartparens)
(use-package org-mode
:ensure nil ;; loaded from emacs built-ins
:hook (org-mode-hook . siren-org-mode-setup)
:init
(defun siren-org-mode-setup ()
(setq org-export-backends '(ascii html icalendar latex md confluence)
fill-column 80
whitespace-action '(auto-cleanup))
(linum-mode t)
(flyspell-mode)
(fci-mode)
(smartparens-mode +1)
(visual-line-mode +1)
(whitespace-mode +1)
(let ((map org-mode-map))
(define-key map (kbd "M-[") 'org-promote-subtree)
(define-key map (kbd "M-]") 'org-demote-subtree)
(define-key map (kbd "M-p") 'org-metaup)
(define-key map (kbd "M-n") 'org-metadown)
(define-key map (kbd "C-M-n") 'outline-next-visible-heading)
(define-key map (kbd "C-M-p") 'outline-previous-visible-heading))))
(use-package org-mouse
:ensure nil ;; loaded from emacs built-ins
:after org-mode)
(provide 'siren-org-mode)
;;; siren-org-mode.el ends here

View File

@@ -6,7 +6,8 @@
;;; Code:
(require 'siren-programming)
(require 'siren-folding)
(require 'siren-highlight-indentation)
(require 'siren-rainbow)
(use-package php-mode
@@ -17,7 +18,6 @@
:init
(defun siren-php-mode-setup ()
(siren-prog-mode-setup)
(rainbow-mode +1)
(company-mode +1)
(subword-mode +1)

View File

@@ -6,7 +6,7 @@
;;; Code:
(require 'siren-programming)
(require 'siren-highlight-indentation)
(use-package plantuml-mode
:mode "\\.uml\\'"
@@ -15,9 +15,9 @@
: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)))

View File

@@ -0,0 +1,24 @@
;;; siren-prog-mode.el --- jimeh's Emacs Siren: defaults for programming modes
;;; Commentary:
;; Basic configuration shared across all programming languages.
;;; Code:
(use-package prog-mode
:ensure nil ;; loaded from emacs built-ins
:hook
(prog-mode . siren-prog-mode-setup)
:init
(defun siren-prog-mode-setup ()
"Default coding hook, useful with any programming language."
(setq fill-column 80
whitespace-action '(auto-cleanup))
(visual-line-mode +1)
(whitespace-mode +1)))
(provide 'siren-prog-mode)
;;; siren-prog-mode.el ends here

View File

@@ -8,7 +8,7 @@
(require 'siren-company)
(require 'siren-folding)
(require 'siren-programming)
(require 'siren-highlight-indentation)
(require 'siren-smartparens)
(require 'siren-toggle-quotes)
@@ -50,8 +50,6 @@
:init
(defun siren-ruby-mode-setup ()
(siren-prog-mode-setup)
(setq c-tab-always-indent nil
ruby-align-chained-calls t
ruby-insert-encoding-magic-comment t
@@ -99,7 +97,7 @@
'(push 'company-robe company-backends))
:config
;; Unbind keys used by siren-text-manipulation module
;; Unbind keys used by siren-expand-region module
(unbind-key "M-." robe-mode-map)
(unbind-key "M-," robe-mode-map))

View File

@@ -6,9 +6,8 @@
;;; Code:
(require 'siren-flycheck)
(require 'siren-folding)
(require 'siren-programming)
(require 'siren-highlight-indentation)
(use-package rust-mode
:mode "\\.rs\\'"
@@ -22,8 +21,6 @@
:init
(defun siren-rust-mode-setup ()
(siren-prog-mode-setup)
(setq rust-format-on-save t)
(hs-minor-mode 1)

View File

@@ -12,12 +12,13 @@
:mode "\\.scss\\'"
:hook (scss-mode-hook . siren-scss-mode-setup)
:init
(defun siren-scss-mode-setup ()
(siren-css-mode-setup))
:config
;; turn off annoying auto-compile on save
(setq scss-compile-at-save nil)
(defun siren-scss-mode-setup ()
(siren-css-mode-setup)))
(setq scss-compile-at-save nil))
(provide 'siren-scss)
;;; siren-scss.el ends here

View File

@@ -0,0 +1,29 @@
;;; siren-sh.el --- jimeh's Emacs Siren: sh-mode configuration.
;;; Commentary:
;; Basic configuration for sh-mode.
;;; Code:
(require 'siren-highlight-indentation)
(use-package sh-script
:ensure nil ;; loaded from emacs built-ins
:hook
(sh-mode-hook . siren-sh-mode-setup)
:init
(defun siren-sh-mode-setup ()
(setq tab-width 2
sh-basic-offset 2
sh-indentation 2
whitespace-action '(auto-cleanup))
(subword-mode +1)
(highlight-indentation-set-offset 2)
(highlight-indentation-current-column-mode)
(define-key sh-mode-map (kbd "RET") 'newline-and-indent)))
(provide 'siren-sh)
;;; siren-sh.el ends here

View File

@@ -6,17 +6,15 @@
;;; Code:
(require 'siren-highlight-indentation)
(use-package slim-mode
:mode "\\.slim\\'"
:hook (slim-mode-hook . siren-slim-mode-hook)
:init
(defun siren-slim-mode-setup ()
(siren-prog-mode-setup)
(highlight-indentation-current-column-mode))
(setq siren-slim-mode-hook 'siren-slim-mode-defaults)
(add-hook 'slim-mode-hook (lambda () (run-hooks 'siren-slim-mode-hook))))
(highlight-indentation-current-column-mode)))
(provide 'siren-slim)
;;; siren-slim.el ends here

View File

@@ -0,0 +1,17 @@
;;; siren-text-mode.el --- jimeh's Emacs Siren: text-mode configuration.
;;; Commentary:
;; Basic configuration for text-mode.
;;; Code:
(use-package text-mode
:ensure nil ;; loaded from emacs built-ins
:hook (text-mode . siren-text-mode-setup)
:init
(defun siren-text-mode-setup ()
(setq fill-column 80)))
(provide 'siren-text-mode)
;;; siren-text-mode.el ends here

View File

@@ -6,7 +6,14 @@
;;; Code:
(require 'siren-programming)
(require 'siren-fci)
(require 'siren-flyspell)
(require 'siren-linum)
(require 'siren-prog-mode)
(require 'siren-flycheck)
(require 'siren-highlight-indentation)
(require 'siren-highlight-symbol)
(require 'siren-smartparens)
(use-package thrift
:mode "\\.thrift\\'"
@@ -15,9 +22,16 @@
:init
(defun siren-thrift-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2)
(fci-mode)
(flycheck-mode)
(flyspell-prog-mode)
(highlight-indentation-current-column-mode)
(highlight-indentation-set-offset 2)
(highlight-symbol-mode)
(linum-mode)
(smartparens-mode)
(subword-mode +1)))
(provide 'siren-thrift)

View File

@@ -6,7 +6,10 @@
;;; Code:
(require 'siren-programming)
(require 'siren-company)
(require 'siren-fci)
(require 'siren-folding)
(require 'siren-highlight-indentation)
(use-package web-mode
:mode
@@ -25,7 +28,6 @@
"Default tweaks for `web-mode'."
(setq tab-width 2)
(siren-prog-mode-setup)
(company-mode +1)
(fci-mode -1)
(hideshowvis-enable)

View File

@@ -6,7 +6,12 @@
;;; Code:
(require 'siren-programming)
(require 'siren-fci)
(require 'siren-flyspell)
(require 'siren-highlight-indentation)
(require 'siren-linum)
(require 'siren-prog-mode)
(require 'siren-smartparens)
(use-package yaml-mode
:mode "\\.yml\\'" "\\.yaml\\'"
@@ -22,8 +27,12 @@
(setq tab-width 2
whitespace-action '(auto-cleanup))
(highlight-indentation-set-offset 2)
(fci-mode)
(flyspell-mode)
(highlight-indentation-current-column-mode)
(highlight-indentation-set-offset 2)
(linum-mode t)
(smartparens-mode +1)
(subword-mode +1)))
(provide 'siren-yaml)

View File

@@ -7,6 +7,7 @@
;;; Code:
(use-package flycheck
:hook (prog-mode . flycheck-mode)
:config
(setq flycheck-completion-system 'ido
flycheck-idle-change-delay 1.0

View File

@@ -17,7 +17,11 @@
(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)))
(toggle-diredp-find-file-reuse-dir 1))
:config
(unbind-key "M-i" dired-mode-map)
(unbind-key "M-l" dired-mode-map))
(provide 'siren-dired)
;;; siren-dired.el ends here

View File

@@ -12,6 +12,9 @@
("C-c C-p" . highlight-symbol-prev)
("C-c C-n" . highlight-symbol-next)
:hook
(prog-mode . highlight-symbol-mode)
:config
(setq highlight-symbol-highlight-single-occurrence 'nil
highlight-symbol-idle-delay 0.5))

View File

@@ -1,17 +0,0 @@
;;; siren-flyspell.el --- jimeh's Emacs Siren: flyspell configuration.
;;; Commentary:
;; Basic configuration for flyspell.
;;; Code:
(require 'flyspell)
(diminish 'flyspell-mode)
(setq ispell-program-name "aspell" ; use aspell instead of ispell
ispell-extra-args '("--lang=en" "--sug-mode=ultra"))
(global-set-key (kbd "s-.") 'flyspell-correct-word-before-point)
(provide 'siren-flyspell)
;;; siren-flyspell.el ends here

View File

@@ -1,39 +0,0 @@
;;; siren-js.el --- jimeh's Emacs Siren: js-mode configuration.
;;; Commentary:
;; Basic configuration for js-mode.
;;; Code:
(require 'siren-prettier-js)
(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-setup ()
"Default tweaks for `js-mode'."
(let ((width 2))
(setq js-indent-level width
indent-level width
tab-width width))
(siren-prog-mode-setup)
(prettier-js-mode)
(company-mode +1)
(subword-mode +1)
(hs-minor-mode 1)
(highlight-indentation-current-column-mode)
(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)))
(add-hook 'js-mode-hook #'siren-js-mode-setup)
(provide 'siren-js)
;;; siren-js.el ends here

View File

@@ -1,23 +0,0 @@
;;; siren-makefile.el --- jimeh's Emacs Siren: makefile-mode configuration.
;;; Commentary:
;; Basic configuration for makefile-mode.
;;; Code:
(require 'siren-programming)
(add-to-list 'siren-indent-sensitive-modes 'makefile-mode)
(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))
(add-hook 'makefile-mode-hook #'siren-makefile-mode-setup)
(provide 'siren-makefile)
;;; siren-makefile.el ends here

View File

@@ -1,37 +0,0 @@
;;; siren-org-mode.el --- jimeh's Emacs Siren: org-mode configuration.
;;; Commentary:
;; Basic configuration for org-mode.
;;; Code:
(require 'siren-fci)
(require 'siren-flyspell)
(require 'siren-smartparens)
(defun siren-org-mode-setup ()
(setq org-export-backends '(ascii html icalendar latex md confluence)
fill-column 80
whitespace-action '(auto-cleanup))
(require 'org-mouse)
(linum-mode t)
(flyspell-mode)
(fci-mode)
(smartparens-mode +1)
(visual-line-mode +1)
(whitespace-mode +1)
(let ((map org-mode-map))
(define-key map (kbd "M-[") 'org-promote-subtree)
(define-key map (kbd "M-]") 'org-demote-subtree)
(define-key map (kbd "M-p") 'org-metaup)
(define-key map (kbd "M-n") 'org-metadown)
(define-key map (kbd "C-M-n") 'outline-next-visible-heading)
(define-key map (kbd "C-M-p") 'outline-previous-visible-heading)))
(add-hook 'org-mode-hook #'siren-org-mode-setup)
(provide 'siren-org-mode)
;;; siren-org-mode.el ends here

View File

@@ -1,14 +0,0 @@
;;; siren-phi-search.el --- jimeh's Emacs Siren: phi-search configuration.
;;; Commentary:
;; Basic configuration for phi-search.
;;; Code:
(use-package phi-search
:config
(setq phi-search-limit 3000))
(provide 'siren-phi-search)
;;; siren-phi-search.el ends here

View File

@@ -1,32 +0,0 @@
;;; siren-programming.el --- jimeh's Emacs Siren: defaults for programming modes
;;; Commentary:
;; Basic configuration shared across all programming languages.
;;; Code:
(require 'siren-fci)
(require 'siren-flycheck)
(require 'siren-flyspell)
(require 'siren-smartparens)
(require 'siren-highlight-indentation)
(require 'siren-highlight-symbol)
(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 '(auto-cleanup))
(visual-line-mode +1)
(whitespace-mode +1))
(add-hook 'prog-mode-hook #'siren-prog-mode-setup)
(provide 'siren-programming)
;;; siren-programming.el ends here

View File

@@ -1,27 +0,0 @@
;;; siren-sh.el --- jimeh's Emacs Siren: sh-mode configuration.
;;; Commentary:
;; Basic configuration for sh-mode.
;;; Code:
(require 'siren-programming)
(defun siren-sh-mode-setup ()
(siren-prog-mode-setup)
(setq tab-width 2
sh-basic-offset 2
sh-indentation 2
whitespace-action '(auto-cleanup))
(subword-mode +1)
(highlight-indentation-set-offset 2)
(highlight-indentation-current-column-mode)
(define-key sh-mode-map (kbd "RET") 'newline-and-indent))
(add-hook 'sh-mode-hook #'siren-sh-mode-setup)
(provide 'siren-sh)
;;; siren-sh.el ends here

View File

@@ -1,86 +0,0 @@
;;; siren-text-manipulation.el --- jimeh's Emacs Siren: text-manipulation.
;;; Commentary:
;; Various text manipulation functions and keybindings. Some of them shamelessly
;; ripped from textmate.el: https://github.com/defunkt/textmate.el
;;; Code:
(use-package move-dup
:bind
("M-p" . md/move-lines-up)
("M-n" . md/move-lines-down)
("C-x C-d" . md/duplicate-down))
(use-package expand-region
:bind
("M-." . er/expand-region)
("M-," . er/contract-region))
(use-package smart-shift
:bind
("C-c [" . smart-shift-left)
("C-c ]" . smart-shift-right)
("M-[" . smart-shift-left)
("M-]" . smart-shift-right))
(defmacro allow-line-as-region-for-function (orig-function)
`(defun ,(intern (concat (symbol-name orig-function) "-or-line"))
()
,(format "Like `%s', but acts on the current line if mark is not active."
orig-function)
(interactive)
(if mark-active
(call-interactively (function ,orig-function))
(save-excursion
;; define a region (temporarily) -- so any C-u prefixes etc. are preserved.
(beginning-of-line)
(set-mark (point))
(end-of-line)
(call-interactively (function ,orig-function))))))
(unless (fboundp 'comment-or-uncomment-region-or-line)
(allow-line-as-region-for-function comment-or-uncomment-region))
;; from: https://www.emacswiki.org/emacs/RandomizeBuffer
(defun randomize-region (beg end)
"Randomize lines in region from BEG to END."
(interactive "*r")
(let ((lines (split-string
(delete-and-extract-region beg end) "\n")))
(when (string-equal "" (car (last lines 1)))
(setq lines (butlast lines 1)))
(apply 'insert
(mapcar 'cdr
(sort (mapcar
(lambda (x) (cons (random) (concat x "\n"))) lines)
(lambda (a b) (< (car a) (car b))))))))
;; from: https://www.emacswiki.org/emacs/SortWords
(defun sort-words (reverse beg end)
"Sort words in region alphabetically, in REVERSE if negative.
Prefixed with negative \\[universal-argument], sorts in reverse.
The variable `sort-fold-case' determines whether alphabetic case
affects the sort order.
See `sort-regexp-fields'."
(interactive "*P\nr")
(sort-regexp-fields reverse "\\w+" "\\&" beg end))
(global-set-key (kbd "C-c /") 'comment-or-uncomment-region-or-line)
(global-set-key (kbd "C-c C-/") 'comment-or-uncomment-region-or-line)
;; from: https://www.emacswiki.org/emacs/SortWords
(defun sort-symbols (reverse beg end)
"Sort symbols in region alphabetically, in REVERSE if negative.
See `sort-words'."
(interactive "*P\nr")
(sort-regexp-fields reverse "\\(\\sw\\|\\s_\\)+" "\\&" beg end))
(defalias 'sw 'sort-words)
(defalias 'ss 'sort-symbols)
(provide 'siren-text-manipulation)
;;; siren-text-manipulation.el ends here

View File

@@ -1,33 +0,0 @@
;;; siren-window-management.el --- jimeh's Emacs Siren: window-management.
;;; Commentary:
;; Basic window management stuff.
;;; Code:
(use-package buffer-move
:bind
("M-K" . buf-move-down)
("M-I" . buf-move-up)
("M-J" . buf-move-left)
("M-L" . buf-move-right))
(require 'windmove)
(defun ignore-error-wrapper (fn)
"Funtion return new function that ignore errors.
The function wraps a function with `ignore-errors' macro."
(lexical-let ((fn fn))
(lambda ()
(interactive)
(ignore-errors (funcall fn)))))
;; Navigate to windows
(global-set-key (kbd "M-k") (ignore-error-wrapper 'windmove-down))
(global-set-key (kbd "M-i") (ignore-error-wrapper 'windmove-up))
(global-set-key (kbd "M-j") (ignore-error-wrapper 'windmove-left))
(global-set-key (kbd "M-l") (ignore-error-wrapper 'windmove-right))
(provide 'siren-window-management)
;;; siren-window-management.el ends here

View File

@@ -0,0 +1,28 @@
;;; siren-flyspell.el --- jimeh's Emacs Siren: flyspell configuration.
;;; Commentary:
;; Basic configuration for flyspell.
;;; Code:
(use-package flyspell
:ensure nil ;; loaded from emacs built-ins
:demand
:diminish flyspell-mode
:bind
("s-." . flyspell-correct-word-before-point)
:hook
(prog-mode . flyspell-prog-mode)
:config
;; Ensure flyspell does not override keybindings of siren-goto-chg module.
(unbind-key "C-." flyspell-mode-map)
(unbind-key "C-," flyspell-mode-map)
(setq ispell-program-name "aspell" ; use aspell instead of ispell
ispell-extra-args '("--lang=en" "--sug-mode=ultra")))
(provide 'siren-flyspell)
;;; siren-flyspell.el ends here

View File

@@ -0,0 +1,15 @@
;;; siren-expand-region.el --- jimeh's Emacs Siren: expand-region
;;; Commentary:
;; Configuration for expand-region
;;; Code:
(use-package expand-region
:bind
("M-." . er/expand-region)
("M-," . er/contract-region))
(provide 'siren-expand-region)
;;; siren-expand-region.el ends here

View File

@@ -8,12 +8,6 @@
(use-package goto-chg
: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)

View File

@@ -0,0 +1,16 @@
;;; siren-move-dup.el --- jimeh's Emacs Siren: move-dup
;;; Commentary:
;; Configuration for move-dup
;;; Code:
(use-package move-dup
:bind
("M-p" . md/move-lines-up)
("M-n" . md/move-lines-down)
("C-x C-d" . md/duplicate-down))
(provide 'siren-move-dup)
;;; siren-move-dup.el ends here

View File

@@ -6,8 +6,6 @@
;;; Code:
(require 'siren-phi-search)
(use-package multiple-cursors
:bind
("C-x C-@" . mc/edit-lines) ;; Terminal
@@ -23,5 +21,10 @@
(global-unset-key (kbd "M-<down-mouse-1>")) ;; must unset key first
(global-set-key (kbd "M-<mouse-1>") 'mc/add-cursor-on-click))
;; Allows searching forward/back (C-s/C-r) searching with multiple cursors.
(use-package phi-search
:config
(setq phi-search-limit 3000))
(provide 'siren-multiple-cursors)
;;; siren-multiple-cursors.el ends here

View File

@@ -0,0 +1,24 @@
;;; siren-randomize-region.el --- jimeh's Emacs Siren: randomize-region
;;; Commentary:
;; Helper command to randomize the order of lines in region. Shamelessly ripped
;; from: https://www.emacswiki.org/emacs/RandomizeBuffer
;;; Code:
(defun randomize-region (beg end)
"Randomize lines in region from BEG to END."
(interactive "*r")
(let ((lines (split-string
(delete-and-extract-region beg end) "\n")))
(when (string-equal "" (car (last lines 1)))
(setq lines (butlast lines 1)))
(apply 'insert
(mapcar 'cdr
(sort (mapcar
(lambda (x) (cons (random) (concat x "\n"))) lines)
(lambda (a b) (< (car a) (car b))))))))
(provide 'siren-randomize-region)
;;; siren-randomize-region.el ends here

View File

@@ -0,0 +1,17 @@
;;; siren-smart-shift.el --- jimeh's Emacs Siren: smart-shift
;;; Commentary:
;; Configuration for smart-shift
;;; Code:
(use-package smart-shift
:bind
("C-c [" . smart-shift-left)
("C-c ]" . smart-shift-right)
("M-[" . smart-shift-left)
("M-]" . smart-shift-right))
(provide 'siren-smart-shift)
;;; siren-smart-shift.el ends here

View File

@@ -27,6 +27,9 @@
("C-<backspace>" . sp-backward-kill-sexp)
("C-<delete>" . sp-kill-sexp))
:hook
(prog-mode . smartparens-mode)
:config
;; smart pairing for all
(require 'smartparens-config)

View File

@@ -0,0 +1,19 @@
;;; siren-sort-symbols.el --- jimeh's Emacs Siren: sort-symbols.
;;; Commentary:
;; Helper command to sort symbols in region. Shamelessly ripped from:
;; https://www.emacswiki.org/emacs/SortWords
;;; Code:
(defun sort-symbols (reverse beg end)
"Sort symbols in region alphabetically, in REVERSE if negative.
See `sort-symbols'."
(interactive "*P\nr")
(sort-regexp-fields reverse "\\(\\sw\\|\\s_\\)+" "\\&" beg end))
(defalias 'ss 'sort-symbols)
(provide 'siren-sort-symbols)
;;; siren-sort-symbols.el ends here

Some files were not shown because too many files have changed in this diff Show More