Make language packages nicer

This commit is contained in:
Maciej 2020-07-24 13:07:16 +03:00
parent f1d3e7d6d7
commit 4b10beec8d
Signed by: maciej
GPG key ID: 41D62D42D3B0D765
12 changed files with 82 additions and 28 deletions

View file

@ -1,7 +1,11 @@
;;; clang.el --- summary ;;; languages/clang.el --- summary
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
(require '05projectile "$HOME/.emacs.d/05projectile.el")
(require '05ctags "$HOME/.emacs.d/05ctags.el")
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
(defun activate-clang-mode () (defun activate-clang-mode ()
"Goodies for editing c files." "Goodies for editing c files."
(set-indent 8) (set-indent 8)
@ -19,5 +23,5 @@
(add-hook 'c-mode 'activate-clang-mode) (add-hook 'c-mode 'activate-clang-mode)
(provide 'clang) (provide 'languages/clang)
;;; clang.el ends here ;;; clang.el ends here

View file

@ -1,8 +1,9 @@
;;; clojure -- summary ;;; languages/clojure -- summary
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
(require '05prog-mode) (require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
(require '05hydra "$HOME/.emacs.d/05hydra.el")
(use-package clojure-mode (use-package clojure-mode
:defer t :defer t
@ -20,11 +21,22 @@
:defer t :defer t
:ensure t) :ensure t)
(use-package paredit ;; Hydra
:defer t (defhydra my-clojure/context-hydra (:color teal :hint nil)
:ensure t) "
Clojure actions
(setq-local indent-tabs-mode nil) ^Cider^ ^Actions^
^^^^^^^^-----------------------------------------------------------------------
_j_: Jack in
_f_: Format buffer
_l_: Load buffer
"
("q" nil "cancel" :color blue)
("j" cider-jack-in)
("f" cider-format-buffer)
("l" cider-load-buffer))
(defun activate-my-clojure-mode () (defun activate-my-clojure-mode ()
"Goodies for clojure files." "Goodies for clojure files."
@ -32,6 +44,9 @@
(column-enforce-n 80) (column-enforce-n 80)
(clj-refactor-mode 1) (clj-refactor-mode 1)
(cider-mode 1) (cider-mode 1)
(setq-local indent-tabs-mode nil)
(define-key clojure-mode-map (kbd "C-c l") 'my-clojure/context-hydra/body)
;; Do not enable paredit for clojure ;; Do not enable paredit for clojure
;; (paredit-mode 1) ;; (paredit-mode 1)
@ -46,5 +61,5 @@
(add-hook 'cider-repl-mode-hook 'my-clj-repl-config) (add-hook 'cider-repl-mode-hook 'my-clj-repl-config)
(add-hook 'cider-mode-hook #'cider-company-enable-fuzzy-completion) (add-hook 'cider-mode-hook #'cider-company-enable-fuzzy-completion)
(provide 'clojure) (provide 'languages/clojure)
;;; clojure.el ends here ;;; clojure.el ends here

View file

@ -1,7 +1,9 @@
;;; elisp -- summary ;;; languages/elisp -- summary
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
(defun activate-emacs-lisp-mode () (defun activate-emacs-lisp-mode ()
"Goodies for editing Emacs files." "Goodies for editing Emacs files."
(set-indent 2) ;; Default indentation of 2 characters (set-indent 2) ;; Default indentation of 2 characters
@ -14,5 +16,5 @@
(add-hook 'emacs-lisp-mode-hook 'activate-emacs-lisp-mode) (add-hook 'emacs-lisp-mode-hook 'activate-emacs-lisp-mode)
(provide 'elisp) (provide 'languages/elisp)
;;; elisp.el ends here ;;; elisp.el ends here

View file

@ -1,11 +1,26 @@
;;; elixir -- summary ;;; languages/elixir -- summary
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
(require '05flycheck "$HOME/.emacs.d/05flycheck.el")
(require '05hydra "$HOME/.emacs.d/05hydra.el")
(use-package elixir-mode (use-package elixir-mode
:requires (lsp-mode lsp-ui) :requires (lsp-mode lsp-ui)
:ensure t :ensure t)
:config)
(defhydra my-elixir/context-hydra (:color teal :hint nil)
"
Elixir actions
^Elixir^ ^Actions^
^^^^^^^^-----------------------------------------------------------------------
_f_: Format buffer
"
("q" nil "cancel" :color blue)
("f" elixir-format))
(defun activate-elixir-mode () (defun activate-elixir-mode ()
"All things Elixir." "All things Elixir."
@ -13,6 +28,7 @@
(column-enforce-n 98) (column-enforce-n 98)
(setq-local flycheck-check-syntax-automatically '(save mode-enabled)) (setq-local flycheck-check-syntax-automatically '(save mode-enabled))
(define-key elixir-mode-map (kbd "<f17>") 'elixir-format) (define-key elixir-mode-map (kbd "<f17>") 'elixir-format)
(define-key elixir-mode-map (kbd "C-c l") 'my-elixir/context-hydra/body)
;; Company list override ;; Company list override
(add-to-list (make-local-variable 'company-backends) (add-to-list (make-local-variable 'company-backends)
@ -20,5 +36,5 @@
(add-hook 'elixir-mode-hook 'activate-elixir-mode) (add-hook 'elixir-mode-hook 'activate-elixir-mode)
(provide 'elixir) (provide 'languages/elixir)
;;; elixir.el ends here ;;; elixir.el ends here

View file

@ -1,8 +1,9 @@
;;; erlang -- summary ;;; languages/erlang -- summary
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
(require '08ctags) (require '05ctags "$HOME/.emacs.d/05ctags.el")
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
(cl-defun erlang/emacs-path (erlang-version) (cl-defun erlang/emacs-path (erlang-version)
(car (split-string (car (split-string
@ -27,7 +28,7 @@
(cl-defun erlang/available-versions--plist () (cl-defun erlang/available-versions--plist ()
(mapcar 'erlang/erlang-plist (erlang/installed-erlangs))) (mapcar 'erlang/erlang-plist (erlang/installed-erlangs)))
(setq erlang/available-versions (erlang/available-versions--plist)) (defvar erlang/available-versions (erlang/available-versions--plist))
(cl-defun erlang/currently-in-use () (cl-defun erlang/currently-in-use ()
(car (split-string (shell-command-to-string "asdf current erlang")))) (car (split-string (shell-command-to-string "asdf current erlang"))))
@ -53,7 +54,7 @@
"All things for all Erlang, including header files." "All things for all Erlang, including header files."
(when (featurep 'erlang-start) (unload-feature 'erlang-start)) (when (featurep 'erlang-start) (unload-feature 'erlang-start))
(setq erlang/current-erlang (erlang/current-plist)) (defvar erlang/current-erlang (erlang/current-plist))
(add-to-list (make-local-variable 'load-path) (add-to-list (make-local-variable 'load-path)
(plist-get erlang/current-erlang :emacs-path)) (plist-get erlang/current-erlang :emacs-path))
@ -110,5 +111,5 @@
;; Automatically update tags on save ;; Automatically update tags on save
(ctags/update-this-mode-on-save 'erlang-mode)) (ctags/update-this-mode-on-save 'erlang-mode))
(provide 'erlang) (provide 'languages/erlang)
;;; erlang.el ends here ;;; erlang.el ends here

View file

@ -2,6 +2,10 @@
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
(require '05flycheck "$HOME/.emacs.d/05flycheck.el")
(require '05lsp "$HOME/.emacs.d/05lsp.el")
(use-package js2-mode (use-package js2-mode
:requires (web-mode company-web lsp-mode lsp-ui) :requires (web-mode company-web lsp-mode lsp-ui)
:ensure t) :ensure t)
@ -36,5 +40,5 @@
(add-hook 'js2-mode-hook 'activate-js2-mode) (add-hook 'js2-mode-hook 'activate-js2-mode)
(provide 'javascript) (provide 'languages/javascript)
;;; javascript.el ends here ;;; javascript.el ends here

View file

@ -2,6 +2,8 @@
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
(use-package markdown-mode (use-package markdown-mode
:ensure t :ensure t
:defer t :defer t
@ -21,5 +23,5 @@
(add-hook 'markdown-mode-hook 'activate-markdown-mode) (add-hook 'markdown-mode-hook 'activate-markdown-mode)
(provide 'markdown) (provide 'languages/markdown)
;;; markdown.el ends here ;;; markdown.el ends here

View file

@ -34,5 +34,5 @@
(add-hook 'before-save-hook #'refmt-before-save))) (add-hook 'before-save-hook #'refmt-before-save)))
(add-hook 'reason-mode-hook 'merlin-mode) (add-hook 'reason-mode-hook 'merlin-mode)
(provide 'ocaml) (provide 'languages/ocaml)
;;; ocaml.el ends here ;;; ocaml.el ends here

View file

@ -2,6 +2,10 @@
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
(require '05projectile "$HOME/.emacs.d/05projectile.el")
(require '05ctags "$HOME/.emacs.d/05ctags.el")
(use-package rspec-mode :ensure t :defer t) (use-package rspec-mode :ensure t :defer t)
(use-package ruby-end :ensure t :defer t) (use-package ruby-end :ensure t :defer t)
@ -41,5 +45,5 @@
'(rspec-install-snippets)) '(rspec-install-snippets))
(add-hook 'enh-ruby-mode-hook 'activate-ruby-mode) (add-hook 'enh-ruby-mode-hook 'activate-ruby-mode)
(provide 'ruby) (provide 'languages/ruby)
;;; ruby.el ends here ;;; ruby.el ends here

View file

@ -2,8 +2,11 @@
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
(require '05prog-mode "$HOME/.emacs.d/05prog-mode.el")
(require '05flycheck "$HOME/.emacs.d/05flycheck.el")
(defun activate-rust-mode () (defun activate-rust-mode ()
"All things for Rust mode" "All things for Rust mode."
(interactive) (interactive)
(set-indent 4) (set-indent 4)
(column-enforce-n 99) (column-enforce-n 99)
@ -16,5 +19,5 @@
(add-hook 'rust-mode-hook 'activate-rust-mode) (add-hook 'rust-mode-hook 'activate-rust-mode)
(add-hook 'rust-mode-hook 'flycheck-rust-setup) (add-hook 'rust-mode-hook 'flycheck-rust-setup)
(provide 'rust) (provide 'languages/rust)
;;; rust.el ends here ;;; rust.el ends here

View file

@ -6,5 +6,5 @@
(add-to-list 'auto-mode-alist '("\\zshrc\\'" . sh-mode)) (add-to-list 'auto-mode-alist '("\\zshrc\\'" . sh-mode))
(add-to-list 'auto-mode-alist '("\\.zshrc\\'" . sh-mode)) (add-to-list 'auto-mode-alist '("\\.zshrc\\'" . sh-mode))
(provide 'sh) (provide 'languages/sh)
;;; sh.el ends here ;;; sh.el ends here

View file

@ -2,6 +2,9 @@
;;; Commentary: ;;; Commentary:
;;; Code: ;;; Code:
(require '05lsp "$HOME/.emacs.d/05lsp.el")
(require '05flycheck "$HOME/.emacs.d/05flycheck.el")
(use-package web-mode (use-package web-mode
:requires (lsp-mode flycheck) :requires (lsp-mode flycheck)
:ensure t) :ensure t)
@ -41,5 +44,5 @@
(add-hook 'web-mode-hook 'activate-web-mode) (add-hook 'web-mode-hook 'activate-web-mode)
(provide 'web) (provide 'languages/web)
;;; web.el ends here ;;; web.el ends here