Create new, a little bit better structured configuration
* Group configuration by package, and only then by language mode * Slim down all the languages
This commit is contained in:
parent
4d5f300113
commit
1a911716c0
38 changed files with 513 additions and 18 deletions
23
old/languages/elisp.el
Normal file
23
old/languages/elisp.el
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
;;; Elisp -- summary
|
||||
;;; Commentary:
|
||||
|
||||
;;; Code:
|
||||
|
||||
;;========== Editor config =========================
|
||||
(defun editor-config-elisp ()
|
||||
"Editor configuration for Elisp."
|
||||
(set-indent 2)
|
||||
(set-width-80))
|
||||
|
||||
;;========== Code completion =======================
|
||||
(defun completion-config-elisp ()
|
||||
"Code completion and inspection for Elisp."
|
||||
(company-mode 1)
|
||||
(flycheck-mode 1)
|
||||
(set (make-local-variable 'company-backends)
|
||||
'((company-yasnippet company-capf company-dabbrev-code company-files))))
|
||||
|
||||
;;========== Hooks =================================
|
||||
(add-hook 'emacs-lisp-mode-hook 'editor-config-elisp)
|
||||
(add-hook 'emacs-lisp-mode-hook 'completion-config-elisp)
|
||||
;;; elisp.el ends here.
|
||||
25
old/languages/elixir.el
Normal file
25
old/languages/elixir.el
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
;;; Elixir -- summary
|
||||
;;; Commentary:
|
||||
|
||||
;;; Code:
|
||||
;;========== Editor config =========================
|
||||
(defun editor-config-elixir ()
|
||||
"Editor configuration for Elixir."
|
||||
(set-indent 2)
|
||||
(set-width-80)
|
||||
(ruby-end-mode 1))
|
||||
|
||||
;;========== Code completion =======================
|
||||
(defun completion-config-elixir ()
|
||||
"Code completion and inspection for Elixir."
|
||||
(alchemist-mode 1)
|
||||
(company-mode 1)
|
||||
(set (make-local-variable 'company-backends)
|
||||
'((alchemist-company company-yasnippet company-files))))
|
||||
|
||||
;;========== Hooks =================================
|
||||
(add-hook 'elixir-mode-hook 'editor-config-elixir)
|
||||
(add-hook 'elixir-mode-hook 'completion-config-elixir)
|
||||
|
||||
(provide 'elixir)
|
||||
;;; elixir.el ends here
|
||||
27
old/languages/go.el
Normal file
27
old/languages/go.el
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
;;; Go -- summary
|
||||
;;; Commentary:
|
||||
|
||||
;; Code:
|
||||
|
||||
;;========== Editor config =========================
|
||||
(defun editor-config-go ()
|
||||
"Editor configuration for Go."
|
||||
(set-indent 4)
|
||||
(set-width-99))
|
||||
|
||||
;;========== Code completion =======================
|
||||
(defun completion-config-go ()
|
||||
"Code completion and inspection for Go."
|
||||
(company-mode 1)
|
||||
(flycheck-mode 1)
|
||||
(flymake-mode 1)
|
||||
(set (make-local-variable 'company-backends)
|
||||
'((company-go company-capf company-dabbrev-code company-yasnippet
|
||||
company-files))))
|
||||
|
||||
;;========== Hooks =================================
|
||||
(add-hook 'go-mode-hook 'editor-config-go)
|
||||
(add-hook 'go-mode-hook 'completion-config-go)
|
||||
|
||||
(provide 'go)
|
||||
;;; go.el ends here
|
||||
32
old/languages/haskell.el
Normal file
32
old/languages/haskell.el
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
;;; Haskell -- summary
|
||||
;;; Commentary:
|
||||
|
||||
;;; Code:
|
||||
;;========== Editor config =========================
|
||||
(defun editor-config-haskell ()
|
||||
"Editor configuration for Haskell."
|
||||
(set-indent 4)
|
||||
(set-width-80))
|
||||
|
||||
;;========== Code completion =======================
|
||||
(defun completion-config-haskell ()
|
||||
"Code completion and inspection for Javascript."
|
||||
(company-mode 1)
|
||||
(flycheck-mode 1)
|
||||
(flymake-mode 1)
|
||||
(set (make-local-variable 'company-backends)
|
||||
'((company-ghc company-capf company-etags company-dabbrev-code
|
||||
company-yasnippet company-files))))
|
||||
|
||||
:;========== Scion mode ============================
|
||||
;; (defun scion-config-haskell ()
|
||||
;; "Configuration for scion mode."
|
||||
;; (scion-mode 1))
|
||||
|
||||
;;========== Hooks =================================
|
||||
(add-hook 'haskell-mode-hook 'editor-config-haskell)
|
||||
(add-hook 'haskell-mode-hook 'completion-config-haskell)
|
||||
;; (add-hook 'haskell-mode-hook 'scion-config-haskell)
|
||||
|
||||
(provide 'haskell)
|
||||
;;; haskell.el ends here
|
||||
35
old/languages/js.el
Normal file
35
old/languages/js.el
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
;;; Js -- summary
|
||||
;;; Commentary:
|
||||
|
||||
;;; Code:
|
||||
|
||||
;;========== Editor config =========================
|
||||
(defun editor-config-js ()
|
||||
"Editor configuration for Javascript."
|
||||
(set-indent 2)
|
||||
(set-width-80))
|
||||
|
||||
;;========== Code completion =======================
|
||||
(defun completion-config-js ()
|
||||
"Code completion and inspection for Javascript."
|
||||
(company-mode 1)
|
||||
(flycheck-mode 1)
|
||||
(flymake-mode)
|
||||
(set (make-local-variable 'company-backends)
|
||||
'((company-tern company-capf company-etags company-dabbrev-code
|
||||
company-yasnippet company-files))))
|
||||
|
||||
;;========== Tide mode ============================
|
||||
;; TODO: Figure out how to use tide with Emacs and NVM.
|
||||
(defun tide-config-js ()
|
||||
"Configure tide mode."
|
||||
(interactive)
|
||||
(tide-setup)
|
||||
(eldoc-mode))
|
||||
|
||||
;;========== Hooks =================================
|
||||
(add-hook 'js-mode-hook 'editor-config-js)
|
||||
(add-hook 'js-mode-hook 'completion-config-js)
|
||||
|
||||
(provide 'js)
|
||||
;;; js.el ends here
|
||||
51
old/languages/python.el
Normal file
51
old/languages/python.el
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
;;; Ruby -- summary
|
||||
;;; Commentary:
|
||||
|
||||
;;; Code:
|
||||
(require 'elpy)
|
||||
(require 'pyenv-mode)
|
||||
(require 'company-jedi)
|
||||
|
||||
;;========== Editor config =========================
|
||||
(defun editor-config-python ()
|
||||
"Setup editor for Python."
|
||||
(set-indent 4)
|
||||
(set-width-79)
|
||||
(setq python-indent-guess-indent-offset 4)
|
||||
(setq python-indent-offset 4))
|
||||
|
||||
;;========== Helper for pyenv ======================
|
||||
(defun ssbb-pyenv-hook ()
|
||||
"Automatically activates pyenv version if .python-version file exists."
|
||||
(f-traverse-upwards
|
||||
(lambda (path)
|
||||
(let ((pyenv-version-path (f-expand ".python-version" path)))
|
||||
(if (f-exists? pyenv-version-path)
|
||||
(pyenv-mode-set (s-trim (f-read-text pyenv-version-path 'utf-8))))))))
|
||||
|
||||
(add-hook 'find-file-hook 'ssbb-pyenv-hook)
|
||||
|
||||
;;========== Code completion =======================
|
||||
(defun completion-config-python ()
|
||||
"Code completion and inspection for Python."
|
||||
(elpy-mode 1)
|
||||
(pyenv-mode 1)
|
||||
(company-mode 1)
|
||||
|
||||
(flycheck-mode 1)
|
||||
(flymake-mode 1)
|
||||
|
||||
(setq elpy-rpc-backend "jedi")
|
||||
(jedi:setup)
|
||||
(setq jedi:complete-on-dot t)
|
||||
(setq jedi:complete-reply t)
|
||||
|
||||
(set (make-local-variable 'company-backends)
|
||||
'((company-jedi elpy-company-backend company-capf company-dabbrev-code
|
||||
company-yasnippet company-files))))
|
||||
|
||||
(add-hook 'python-mode-hook 'editor-config-python)
|
||||
(add-hook 'python-mode-hook 'completion-config-python)
|
||||
|
||||
(provide 'python)
|
||||
;;; python.el ends here
|
||||
76
old/languages/ruby.el
Normal file
76
old/languages/ruby.el
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
;;; Ruby -- summary
|
||||
;;; Commentary:
|
||||
|
||||
;;; Code:
|
||||
(require 'company)
|
||||
(require 'ruby-mode)
|
||||
(require 'robe)
|
||||
(require 'rspec-mode)
|
||||
|
||||
;;========== Editor config =========================
|
||||
(defun editor-ruby-mode-config ()
|
||||
"Setup editor for Ruby."
|
||||
|
||||
;; Indentation and line length
|
||||
(if (string-match-p "internetee" (buffer-file-name))
|
||||
(set-width-100)
|
||||
(set-width-80))
|
||||
|
||||
;; Set default indentation
|
||||
(set-indent 2)
|
||||
|
||||
;; Do not align 'begin' and 'while' ;;
|
||||
(setq ruby-align-to-stmt-keywords '(if begin case elseif rescue))
|
||||
|
||||
;; Do not indent inside the parenthasis
|
||||
;; (setq ruby-deep-indent-paren nil)
|
||||
|
||||
;; Automatically insert second pair of <%
|
||||
(define-key web-mode-map "<%" 'electric-pair)
|
||||
|
||||
;; Use enhanced ruby mode
|
||||
(enh-ruby-mode 1)
|
||||
|
||||
;; Do not insert encoding comments
|
||||
(setq ruby-insert-encoding-magic-comment nil))
|
||||
|
||||
;;========== Rspec config =========================
|
||||
(defun rspec-ruby-mode-config ()
|
||||
"Use rspec-mode."
|
||||
(rspec-mode t)
|
||||
(eval-after-load 'rspec-mode '(rspec-install-snippets)))
|
||||
|
||||
;;========== Minitest config ======================
|
||||
(defun minitest-ruby-mode-config ()
|
||||
"Use minitest-mode."
|
||||
(minitest-mode t)
|
||||
(eval-after-load 'minitest-mode '(minitest-install-snippets)))
|
||||
|
||||
;;========== Robe config ==========================
|
||||
(defun robe-ruby-mode-config ()
|
||||
"Use robe."
|
||||
;; Activate modes
|
||||
(robe-mode 1)
|
||||
(company-mode 1)
|
||||
(rspec-mode 1)
|
||||
(flymake-mode 1)
|
||||
(flymake-ruby-load)
|
||||
|
||||
;; Activate RVM
|
||||
(rvm-activate-corresponding-ruby)
|
||||
|
||||
;; Initalize completion
|
||||
(set (make-local-variable 'company-backends)
|
||||
'((company-yasnippet company-robe company-etags company-dabbrev-code company-files))))
|
||||
|
||||
;;========== Hooks ================================
|
||||
(add-hook 'ruby-mode-hook 'editor-ruby-mode-config)
|
||||
(add-hook 'ruby-mode-hook 'robe-ruby-mode-config)
|
||||
(add-hook 'ruby-mode-hook 'rspec-ruby-mode-config)
|
||||
(add-hook 'ruby-mode-hook 'minitest-ruby-mode-config)
|
||||
|
||||
;; Use longer lines for HAML
|
||||
(add-hook 'haml-mode-hook 'set-width-100)
|
||||
|
||||
(provide 'ruby)
|
||||
;;; ruby.el ends here
|
||||
29
old/languages/rust.el
Normal file
29
old/languages/rust.el
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
;;; Rust -- summary
|
||||
;;; Commentary:
|
||||
|
||||
;;; Code:
|
||||
|
||||
;;========== Editor config =========================
|
||||
(defun editor-config-rust ()
|
||||
"Editor configuration for Rust."
|
||||
(set-indent 4)
|
||||
(set-width-99))
|
||||
|
||||
;;========== Code completion =======================
|
||||
(defun completion-config-rust ()
|
||||
"Code completion and inspection for Rust."
|
||||
(racer-mode 1)
|
||||
(company-mode 1)
|
||||
(flycheck-mode 1)
|
||||
(flymake-mode 1)
|
||||
(flycheck-rust-setup)
|
||||
(set (make-local-variable 'company-backends)
|
||||
'((company-racer company-capf company-dabbrev-code company-yasnippet
|
||||
company-files))))
|
||||
|
||||
;;========== Hooks =================================
|
||||
(add-hook 'rust-mode-hook 'editor-config-rust)
|
||||
(add-hook 'rust-mode-hook 'completion-config-rust)
|
||||
|
||||
(provide 'rust)
|
||||
;;; rust.el ends here
|
||||
47
old/languages/sql.el
Normal file
47
old/languages/sql.el
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
;;; SQL -- summary
|
||||
;;; Commentary:
|
||||
|
||||
;;; Code:
|
||||
|
||||
;;========== Editor config =========================
|
||||
(defun editor-config-sql ()
|
||||
"Setup editor for SQL."
|
||||
(set-indent 4)
|
||||
(set-width-120))
|
||||
|
||||
;;========== Company config =========================
|
||||
(defun completion-config-sql ()
|
||||
(company-mode 1)
|
||||
(flycheck-mode 1)
|
||||
|
||||
(set (make-local-variable 'company-backends)
|
||||
'(company-yasnippet company-etags company-dabbrev-code company-capf
|
||||
company-files)))
|
||||
|
||||
;;========== Hooks =========================
|
||||
(add-hook 'sql-mode-hook 'editor-config-sql)
|
||||
(add-hook 'sql-mode-hook 'completion-config-sql)
|
||||
|
||||
(require 'sql-indent)
|
||||
|
||||
;;========== Functions =====================
|
||||
(defun sql-indent-string ()
|
||||
"Indents the string under the cursor as SQL."
|
||||
(interactive)
|
||||
(save-excursion
|
||||
(er/mark-inside-quotes)
|
||||
(let* ((text (buffer-substring-no-properties (region-beginning) (region-end)))
|
||||
(pos (region-beginning))
|
||||
(column (progn (goto-char pos) (current-column)))
|
||||
(formatted-text (with-temp-buffer
|
||||
(insert text)
|
||||
(delete-trailing-whitespace)
|
||||
(sql-indent-buffer)
|
||||
(replace-string "\n" (concat "\n" (make-string column (string-to-char " "))) nil (point-min) (point-max))
|
||||
(buffer-string))))
|
||||
(delete-region (region-beginning) (region-end))
|
||||
(goto-char pos)
|
||||
(insert formatted-text))))
|
||||
|
||||
|
||||
;;; sql.el ends here.
|
||||
42
old/languages/web.el
Normal file
42
old/languages/web.el
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
;;; Web -- summary
|
||||
;;; Commentary:
|
||||
|
||||
;;; Code:
|
||||
(require 'web-mode)
|
||||
;;========== Editor config =========================
|
||||
(defun editor-config-web ()
|
||||
"Editor configuration for Web."
|
||||
(set-width-120)
|
||||
|
||||
(if (string-match-p "internetee" (buffer-file-name))
|
||||
((lambda
|
||||
((set-indent 4)
|
||||
(setq web-mode-markup-indent-offset 4)
|
||||
(setq web-mode-code-indent-offset 4)
|
||||
(setq css-indent-offset 4)))
|
||||
((set-indent 2)
|
||||
(setq web-mode-markup-indent-offset 2)
|
||||
(setq web-mode-code-indent-offset 2)
|
||||
(setq css-indent-offset 2)))
|
||||
|
||||
(define-key web-mode-map "<%" 'electric-pair)))
|
||||
|
||||
;;========== Code completion =======================
|
||||
(defun completion-config-web ()
|
||||
"Code completion and inspection for Web."
|
||||
(company-mode 1)
|
||||
(flycheck-mode 1)
|
||||
(flymake-mode)
|
||||
(set (make-local-variable 'company-backends)
|
||||
'((company-capf company-dabbrev-code company-yasnippet
|
||||
company-files))))
|
||||
|
||||
;;========== Hooks =================================
|
||||
;; Use web-mode for erb
|
||||
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
|
||||
|
||||
(add-hook 'web-mode-hook 'editor-config-web)
|
||||
(add-hook 'web-mode-hook 'completion-config-web)
|
||||
|
||||
(provide 'web)
|
||||
;;; web.el ends here
|
||||
Loading…
Add table
Add a link
Reference in a new issue