Replace language lambdas with separate functions
This commit is contained in:
parent
63475697d5
commit
83569bf5f9
9 changed files with 110 additions and 57 deletions
34
behaviour.el
34
behaviour.el
|
|
@ -57,17 +57,11 @@
|
|||
;; Show trailing whitespaces and remove whitespace on save
|
||||
(setq-default show-trailing-whitespace t)
|
||||
(setq whitespace-style '(face trailing lines-tail trailing))
|
||||
(setq whitespace-line-column 80)
|
||||
|
||||
(add-hook 'before-save-hook 'delete-trailing-lines)
|
||||
|
||||
;; Tabs are spaces and are general at 2. Guide indent with lines
|
||||
(setq-default indent-tabs-mode nil)
|
||||
(setq tab-width 2)
|
||||
(setq tab-stop-list (quote(2 4 6 8 10 12 14 16 20 22 24 26 28 30 32 34 36 38 40
|
||||
42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74
|
||||
76 78 80)))
|
||||
;; (require 'indent-guide)
|
||||
;; (indent-guide-global-mode)
|
||||
|
||||
; Insert newline on save
|
||||
(setq require-final-newline t)
|
||||
|
|
@ -85,6 +79,25 @@
|
|||
;;; When pasting/writing over a selection, replace it.
|
||||
(delete-selection-mode 1)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;; indentation functions ;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Use this function for ruby, elixir and such
|
||||
(defun set-line-limit-80-tab-2 ()
|
||||
(setq whitespace-line-column 80)
|
||||
(setq tab-width 2)
|
||||
(setq tab-stop-list (quote(2 4 6 8 10 12 14 16 20 22 24 26 28 30 32 34 36 38
|
||||
40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70
|
||||
72 74 76 78 80))))
|
||||
|
||||
;; Use this function for rust
|
||||
(defun set-line-limit-99-tab-4 ()
|
||||
(setq whitespace-line-column 99)
|
||||
(setq tab-width 4)
|
||||
(setq tab-stop-list (quote(4 8 12 16 24 28 32 36 40 44 48 52 56 60
|
||||
64 68 72 76 80 84 88 92 96))))
|
||||
|
||||
;; By default, use 80
|
||||
(set-line-limit-80-tab-2)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;; additional features ;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; Add completion
|
||||
|
|
@ -133,10 +146,5 @@
|
|||
;; (add-to-list 'default-frame-alist '(alpha . (94 . 90)))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Additional loads ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; Language specific stuff
|
||||
(load "~/.emacs.d/ruby.el")
|
||||
(load "~/.emacs.d/elixir.el")
|
||||
(load "~/.emacs.d/javascript.el")
|
||||
(load "~/.emacs.d/web-mode.el")
|
||||
(load "~/.emacs.d/languages.el")
|
||||
;;; behaviour.el ends here
|
||||
|
|
|
|||
12
elixir.el
12
elixir.el
|
|
@ -1,12 +0,0 @@
|
|||
; Special language package
|
||||
(require 'alchemist)
|
||||
|
||||
; Hooks
|
||||
(add-hook 'elixir-mode-hook
|
||||
(alchemist-mode))
|
||||
|
||||
(add-hook 'elixir-mode-hook
|
||||
'flycheck-mode)
|
||||
|
||||
(add-hook 'elixir-mode-hook
|
||||
'ruby-end-mode)
|
||||
1
emacs
1
emacs
|
|
@ -65,6 +65,7 @@
|
|||
|
||||
; load custom config files
|
||||
(load "~/.emacs.d/packages.el")
|
||||
(load "~/.emacs.d/functions.el")
|
||||
(load "~/.emacs.d/behaviour.el")
|
||||
(load "~/.emacs.d/themes.el")
|
||||
(load "~/.emacs.d/key-bindings.el")
|
||||
|
|
|
|||
6
functions.el
Normal file
6
functions.el
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
(defun kill-other-buffers
|
||||
"Kill all buffers except for the current one"
|
||||
(interactive)
|
||||
(mapc 'kill-buffer (delq (current-buffer) (buffer-list)))
|
||||
)
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
(setq js-indent-level 2)
|
||||
78
languages.el
Normal file
78
languages.el
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
;;; Languages -- summary
|
||||
;;; Commentary:
|
||||
|
||||
|
||||
;;; Code:
|
||||
|
||||
;;;; Major languages ;;;;
|
||||
;;; Ruby
|
||||
(defun ruby-mode-config ()
|
||||
"Setup editor for Ruby."
|
||||
(remove-hook 'rust-mode-hook 'rust-mode-config)
|
||||
(remove-hook 'elixir-mode-hook 'elixir-mode-config)
|
||||
(remove-hook 'emacs-lisp-mode-hook 'elisp-mode-config)
|
||||
|
||||
(set-line-limit-99-tab-4)
|
||||
(aggressive-mode-indent)
|
||||
(defun align-to-colon (begin end)
|
||||
"Align region to colon signs"
|
||||
(align-regexp begin end
|
||||
(rx ":" (group (zero-or-mode (syntax-white))))))
|
||||
;; 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)
|
||||
|
||||
;; Do not insert encoding comments ;;
|
||||
(setq ruby-insert-encoding-magic-comment nil)
|
||||
|
||||
;; Use web-mode for erb
|
||||
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode)))
|
||||
|
||||
(add-hook 'ruby-mode-hook 'ruby-mode-config)
|
||||
|
||||
;;; Rust
|
||||
(defun rust-mode-config ()
|
||||
"Setup editor for rust."
|
||||
(remove-hook 'ruby-mode-hook 'ruby-mode-config)
|
||||
(remove-hook 'elixir-mode-hook 'elixir-mode-config)
|
||||
(remove-hook 'emacs-lisp-mode-hook 'elisp-mode-config)
|
||||
(set-line-limit-99-tab-4)
|
||||
(flycheck-mode 1))
|
||||
|
||||
(add-hook 'rust-mode-hook 'rust-mode-config)
|
||||
|
||||
;;; Elixir
|
||||
(defun elixir-mode-config ()
|
||||
"Call elixir mode config."
|
||||
(remove-hook 'ruby-mode-hook 'ruby-mode-config)
|
||||
(remove-hook 'rust-mode-hook 'rust-mode-config)
|
||||
(remove-hook 'emacs-lisp-mode-hook 'elisp-mode-config)
|
||||
(require 'alchemist)
|
||||
(alchemist-mode)
|
||||
(flycheck-mode 1)
|
||||
(set-line-limit-80-tab-2)
|
||||
(ruby-end-mode))
|
||||
|
||||
(add-hook 'elixir-mode-hook 'elixir-mode-config)
|
||||
|
||||
;;; Elisp
|
||||
(defun elisp-mode-config ()
|
||||
"Setup editor for Lisp."
|
||||
(remove-hook 'rust-mode-hook 'rust-mode-config)
|
||||
(remove-hook 'ruby-mode-hook 'ruby-mode-config)
|
||||
(remove-hook 'elixir-mode-hook 'elixir-mode-config)
|
||||
(set-line-limit-80-tab-2)
|
||||
(flycheck-mode 1))
|
||||
|
||||
(add-hook 'emacs-lisp-mode-hook 'elisp-mode-config)
|
||||
|
||||
;;;; Other things ;;;;;
|
||||
;;; Javascript
|
||||
(setq js-indent-level 2)
|
||||
|
||||
;;; Web-mode
|
||||
(setq web-mode-markup-indent-offset 2)
|
||||
(setq web-mode-code-indent-offset 2)
|
||||
;;; languages.el ends here
|
||||
26
ruby.el
26
ruby.el
|
|
@ -1,26 +0,0 @@
|
|||
(add-hook 'ruby-mode-hook
|
||||
(aggressive-indent-mode))
|
||||
|
||||
(add-hook 'yaml-mode-hook
|
||||
(lambda () (indent-guide-mode -1)))
|
||||
|
||||
(add-hook 'sql-mode-hook
|
||||
(lambda () (indent-guide-mode -1)))
|
||||
|
||||
(defun align-to-colon (begin end)
|
||||
"Align region to colon (:) signs"
|
||||
(interactive "r")
|
||||
(align-regexp begin end
|
||||
(rx ":" (group (zero-or-more (syntax whitespace))) ) 1 1 ))
|
||||
|
||||
;; 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)
|
||||
|
||||
;; Do not insert encoding comments ;;
|
||||
(setq ruby-insert-encoding-magic-comment nil)
|
||||
|
||||
;; Use web mode for erb
|
||||
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
|
||||
|
|
@ -26,6 +26,7 @@
|
|||
;; (load-theme 'flatui t t)
|
||||
(load-theme 'atom-one-dark t t)
|
||||
(load-theme 'flatui t t)
|
||||
(load-theme 'noctilux t t)
|
||||
|
||||
(require 'helm-themes)
|
||||
(if (display-graphic-p)
|
||||
|
|
@ -35,10 +36,11 @@
|
|||
;; (helm-themes 'avk-daylight t))
|
||||
|
||||
(progn
|
||||
(enable-theme 'monokai))
|
||||
;; (helm-themes 'monokai t))
|
||||
;; (enable-theme 'flatui))
|
||||
(enable-theme 'flatui)
|
||||
;; (enable-theme 'airline-base16-shell-dark)
|
||||
)
|
||||
)
|
||||
|
||||
(color-theme-approximate-on)
|
||||
(set-face-attribute 'default nil :font "Hasklig 13")
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
;; Indent by 2 spaces
|
||||
(setq web-mode-markup-indent-offset 2)
|
||||
(setq web-mode-code-indent-offset 2)
|
||||
Loading…
Add table
Add a link
Reference in a new issue