2016-05-13 00:29:07 -04:00
|
|
|
;;; module-sh.el
|
2015-09-28 14:22:26 -04:00
|
|
|
|
2016-05-13 00:29:07 -04:00
|
|
|
(use-package sh-script
|
2016-05-18 22:32:04 -04:00
|
|
|
:mode (("\\.\\(ba\\|z\\)sh$" . sh-mode)
|
|
|
|
("/\\.?z\\(sh\\(/.*\\|$\\)\\|profile\\|log\\(in\\|out\\)\\|sh\\(rc\\|env\\)\\)$" . sh-mode)
|
|
|
|
("/\\.?bash\\(/.*\\|rc\\|_profile\\)$" . sh-mode))
|
2016-05-13 00:29:07 -04:00
|
|
|
:init
|
|
|
|
(add-hook! sh-mode
|
2016-05-20 22:37:30 -04:00
|
|
|
'(flycheck-mode doom|sh-extra-font-lock-activate))
|
2016-05-13 00:29:07 -04:00
|
|
|
:config
|
|
|
|
(def-company-backend! sh-mode (shell))
|
2016-05-01 01:10:30 -04:00
|
|
|
(def-electric! sh-mode :words ("else" "elif" "fi" "done"))
|
2016-05-20 22:37:30 -04:00
|
|
|
(def-repl! sh-mode doom/inf-shell)
|
2016-04-20 01:50:55 -04:00
|
|
|
(setq sh-indent-after-continuation 'always)
|
|
|
|
|
2016-05-13 00:29:07 -04:00
|
|
|
;; [pedantry intensifies]
|
|
|
|
(add-hook! sh-mode (setq mode-name "sh"))
|
2016-03-28 21:39:13 -04:00
|
|
|
|
|
|
|
(sp-with-modes '(sh-mode)
|
2016-05-20 22:37:30 -04:00
|
|
|
(sp-local-pair "case" "" :when '(("SPC")) :post-handlers '((:add doom/sp-insert-yasnippet)) :actions '(insert))
|
|
|
|
(sp-local-pair "if" "" :when '(("SPC")) :post-handlers '((:add doom/sp-insert-yasnippet)) :actions '(insert))
|
|
|
|
(sp-local-pair "for" "" :when '(("SPC")) :post-handlers '((:add doom/sp-insert-yasnippet)) :actions '(insert))
|
|
|
|
(sp-local-pair "elif" "" :when '(("SPC")) :post-handlers '((:add doom/sp-insert-yasnippet)) :actions '(insert))
|
|
|
|
(sp-local-pair "while" "" :when '(("SPC")) :post-handlers '((:add doom/sp-insert-yasnippet)) :actions '(insert))))
|
2015-09-28 14:22:26 -04:00
|
|
|
|
2016-04-23 22:08:46 -04:00
|
|
|
(use-package company-shell
|
|
|
|
:after sh-script
|
|
|
|
:config (setq company-shell-delete-duplicates t))
|
|
|
|
|
2015-09-28 14:22:26 -04:00
|
|
|
(provide 'module-sh)
|
|
|
|
;;; module-sh.el ends here
|