Simplify the folder structure
This commit is contained in:
parent
fca83b0b97
commit
6ba7c2fa33
17 changed files with 99 additions and 87 deletions
16
languages/clang.el
Normal file
16
languages/clang.el
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
(defun activate-clang-mode ()
|
||||
"Goodies for editing c files"
|
||||
(set-indent 4)
|
||||
(column-enforce-n 80)
|
||||
|
||||
(add-to-list (make-local-variable 'company-backends)
|
||||
'(company-etags company-yasnippet))
|
||||
|
||||
(setq-local
|
||||
ctags/refresh-command
|
||||
(format
|
||||
"ctags -e -R --languages=C -f %sTAGS %s."
|
||||
(projectile-project-root) (projectile-project-root)
|
||||
)))
|
||||
|
||||
(add-hook 'c-mode-hook 'activate-clang-mode)
|
||||
15
languages/clojure.el
Normal file
15
languages/clojure.el
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
(use-package cider
|
||||
:requires clojure-mode
|
||||
:commands cider-jack-in
|
||||
:defer t
|
||||
:ensure t)
|
||||
|
||||
(add-hook 'clojure-mode-hook 'cider-mode)
|
||||
|
||||
(defun activate-clojure-mode ()
|
||||
"Goodies for clojure files."
|
||||
(set-indent 2) ;; Default indentation of 2 characters
|
||||
(column-enforce-n 80)
|
||||
)
|
||||
|
||||
(add-hook 'clojure-mode-hook 'activate-clojure-mode)
|
||||
11
languages/elisp.el
Normal file
11
languages/elisp.el
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
(defun activate-emacs-lisp-mode ()
|
||||
"Goodies for editing emacs files."
|
||||
(set-indent 2) ;; Default indentation of 2 characters
|
||||
(column-enforce-n 80)
|
||||
|
||||
;; Company list override
|
||||
(add-to-list (make-local-variable 'company-backends)
|
||||
'(company-elisp company-yasnippet))
|
||||
)
|
||||
|
||||
(add-hook 'emacs-lisp-mode-hook 'activate-emacs-lisp-mode)
|
||||
22
languages/elixir.el
Normal file
22
languages/elixir.el
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
(use-package alchemist
|
||||
:requires (ruby-end-mode)
|
||||
:ensure t)
|
||||
|
||||
(defun activate-elixir-mode ()
|
||||
"All things Elixir."
|
||||
(set-indent 2)
|
||||
(column-enforce-n 80)
|
||||
|
||||
;; Company list override
|
||||
(add-to-list (make-local-variable 'company-backends)
|
||||
'(alchemist-company company-yasnippet)))
|
||||
|
||||
(add-hook 'elixir-mode-hook 'alchemist-mode)
|
||||
(add-hook 'alchemist-mode-hook 'activate-elixir-mode)
|
||||
(add-hook 'elixir-mode-hook 'ruby-end-mode)
|
||||
|
||||
;; Eex Web mode
|
||||
(add-to-list 'auto-mode-alist '("\\.eex\\'" . web-mode))
|
||||
(setq web-mode-extra-auto-pairs
|
||||
'(("eex" . (("<%" "%>")))
|
||||
))
|
||||
88
languages/erlang.el
Normal file
88
languages/erlang.el
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
(cl-defun erlang/emacs-path (erlang-version)
|
||||
(car (split-string
|
||||
(shell-command-to-string
|
||||
(format "find $HOME/.asdf/installs/erlang/%s/ -name erlang.el"
|
||||
erlang-version)) "erlang.el")))
|
||||
|
||||
(cl-defun erlang/erlang-path (erlang-version)
|
||||
(format "$HOME/.asdf/installs/erlang/%s/" erlang-version))
|
||||
|
||||
(defun erlang/erlang-plist (erlang-version)
|
||||
"Create property list for ERLANG-VERSION."
|
||||
(list :version erlang-version
|
||||
:erlang-path (erlang/erlang-path erlang-version)
|
||||
:emacs-path (erlang/emacs-path erlang-version)))
|
||||
|
||||
(cl-defun erlang/installed-erlangs ()
|
||||
(split-string
|
||||
(shell-command-to-string
|
||||
(format "asdf list erlang"))))
|
||||
|
||||
(cl-defun erlang/available-versions--plist ()
|
||||
(mapcar 'erlang/erlang-plist (erlang/installed-erlangs)))
|
||||
|
||||
(setq erlang/available-versions (erlang/available-versions--plist))
|
||||
|
||||
(cl-defun erlang/currently-in-use ()
|
||||
(car (split-string (shell-command-to-string "asdf current erlang"))))
|
||||
|
||||
(cl-defun erlang/current-version--plistp (erlang-plist)
|
||||
(equal (plist-get erlang-plist :version) (erlang/currently-in-use)))
|
||||
|
||||
(cl-defun erlang/current-plist ()
|
||||
(seq-find 'erlang/current-version--plistp erlang/available-versions))
|
||||
|
||||
;; Flycheck checker for Erlang
|
||||
(flycheck-define-checker erlang-otp
|
||||
"An Erlang syntax checker using the Erlang interpreter."
|
||||
:command ("erlc" "-o" temporary-directory "-Wall"
|
||||
"-I" "../include" "-I" "../../include"
|
||||
"-I" "../../../include" source)
|
||||
:error-patterns
|
||||
((warning line-start (file-name) ":" line ": Warning:" (message) line-end)
|
||||
(error line-start (file-name) ":" line ": " (message) line-end))
|
||||
:modes (my-erlang-mode))
|
||||
|
||||
(defun erlang/activate-erlang-mode ()
|
||||
"All things for all Erlang, including header files."
|
||||
(when (featurep 'erlang-start) (unload-feature 'erlang-start))
|
||||
|
||||
(setq erlang/current-erlang (erlang/current-plist))
|
||||
|
||||
(add-to-list (make-local-variable 'load-path)
|
||||
(plist-get erlang/current-erlang :emacs-path))
|
||||
|
||||
(add-to-list (make-local-variable 'exec-path)
|
||||
(format "%slib/tools-3.1/emacs"
|
||||
(plist-get erlang/current-erlang :erlang-path)))
|
||||
|
||||
(setq-local erlang-man-root-dir
|
||||
(format "%sman"
|
||||
(plist-get erlang/current-erlang :erlang-path)))
|
||||
|
||||
(require 'erlang-start)
|
||||
|
||||
;; Set specific ctags command
|
||||
(setq-local
|
||||
ctags/refresh-command
|
||||
(format
|
||||
"ctags -e -R --languages=erlang -f %sTAGS %s. %slib/stdlib-* %slib/kernel-*"
|
||||
(projectile-project-root) (projectile-project-root)
|
||||
(plist-get erlang/current-erlang :erlang-path)
|
||||
(plist-get erlang/current-erlang :erlang-path)))
|
||||
|
||||
;; Company list override
|
||||
(add-to-list (make-local-variable 'company-backends)
|
||||
'(company-etags company-yasnippet)))
|
||||
|
||||
(add-hook 'erlang-mode-hook 'erlang/activate-erlang-mode)
|
||||
|
||||
(define-derived-mode my-erlang-mode erlang-mode "My Erlang mode"
|
||||
"A mode for Erlang things"
|
||||
|
||||
(activate-erlang-mode)
|
||||
;; Enable flycheck
|
||||
(flycheck-select-checker 'erlang-otp)
|
||||
|
||||
;; Automatically update tags on save
|
||||
(ctags/update-this-mode-on-save 'erlang-mode))
|
||||
37
languages/ruby.el
Normal file
37
languages/ruby.el
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
;; Require Enhanced Ruby Mode
|
||||
|
||||
(use-package enh-ruby-mode
|
||||
:requires (rspec-mode ruby-end-mode)
|
||||
:ensure t
|
||||
:config
|
||||
(add-hook 'enh-ruby-mode-hook 'rspec-mode)
|
||||
(add-hook 'enh-ruby-mode-hook 'ruby-end-mode)
|
||||
(eval-after-load 'rspec-mode
|
||||
'(rspec-install-snippets)))
|
||||
|
||||
(defun activate-ruby-mode ()
|
||||
"All things for ruby mode."
|
||||
(set-indent 2)
|
||||
|
||||
;; Set column enforcement at 80 for normal projects, and at 100 for work
|
||||
(if (string-match-p "internetee" (buffer-file-name))
|
||||
(column-enforce-n 100)
|
||||
(column-enforce-n 80))
|
||||
|
||||
;; Disable reek syntax checking permanently
|
||||
(add-to-list (make-local-variable 'flycheck-disabled-checkers) 'ruby-reek)
|
||||
|
||||
;; Do not insert magic encoding comment at the begining of each file
|
||||
(setq ruby-insert-encoding-magic-comment nil)
|
||||
|
||||
;; Company list override
|
||||
(add-to-list (make-local-variable 'company-backends)
|
||||
'(company-etags company-yasnippet))
|
||||
|
||||
;; Set specific ctags command
|
||||
(setq-local ctags/refresh-command
|
||||
(format "ctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)"
|
||||
(projectile-project-root) (projectile-project-root))))
|
||||
|
||||
(add-hook 'ruby-mode-hook 'enh-ruby-mode)
|
||||
(add-hook 'enh-ruby-mode-hook 'activate-ruby-mode)
|
||||
18
languages/rust.el
Normal file
18
languages/rust.el
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
(use-package racer
|
||||
:ensure t
|
||||
:requires (racer flycheck-rust))
|
||||
|
||||
(defun activate-rust-mode ()
|
||||
"All things for Rust mode"
|
||||
(interactive)
|
||||
(set-indent 4)
|
||||
(column-enforce-n 99)
|
||||
|
||||
;; Company list override
|
||||
(add-to-list (make-local-variable 'company-backends)
|
||||
'(company-capf company-yasnippet))
|
||||
)
|
||||
|
||||
(add-hook 'rust-mode-hook 'activate-rust-mode)
|
||||
(add-hook 'rust-mode-hook 'racer-mode)
|
||||
(add-hook 'rust-mode-hook 'flycheck-rust-setup)
|
||||
3
languages/sh.el
Normal file
3
languages/sh.el
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
(add-to-list 'auto-mode-alist '("\\.zsh\\'" . sh-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\zshrc\\'" . sh-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.zshrc\\'" . sh-mode))
|
||||
33
languages/web.el
Normal file
33
languages/web.el
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
(use-package web-mode
|
||||
:ensure t)
|
||||
|
||||
(use-package js2-mode
|
||||
:requires (web-mode company-web lsp)
|
||||
:ensure t)
|
||||
|
||||
;; Use js2-mode for javascript editing
|
||||
(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
|
||||
(add-to-list 'auto-mode-alist '("\\.json\\'" . js2-mode))
|
||||
|
||||
;;; ERB editing
|
||||
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
|
||||
|
||||
;; Eex Web mode
|
||||
(add-to-list 'auto-mode-alist '("\\.eex\\'" . web-mode))
|
||||
|
||||
|
||||
(setq web-mode-extra-auto-pairs
|
||||
'(("eex" . (("<%" "%>")))
|
||||
("erb" . (("<%" "%>")
|
||||
("beg" "end")))))
|
||||
|
||||
;; Language Server Protocol is used for completion
|
||||
(add-hook 'js2-mode-hook 'lsp)
|
||||
|
||||
(defun activate-js2-mode ()
|
||||
"Company list override."
|
||||
(add-to-list (make-local-variable 'company-backends)
|
||||
'(company-yasnippet company-lsp)))
|
||||
|
||||
(add-hook 'js2-mode-hook 'activate-js2-mode)
|
||||
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . web-mode))
|
||||
Loading…
Add table
Add a link
Reference in a new issue