Replace language lambdas with separate functions

This commit is contained in:
Maciej Szlosarczyk 2017-04-23 22:37:22 +03:00
parent 63475697d5
commit 83569bf5f9
No known key found for this signature in database
GPG key ID: 0D4EEACF63D4262E
9 changed files with 110 additions and 57 deletions

View file

@ -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

View file

@ -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
View file

@ -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
View 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)))
)

View file

@ -1 +0,0 @@
(setq js-indent-level 2)

78
languages.el Normal file
View 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
View file

@ -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))

View file

@ -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,9 +36,10 @@
;; (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)

View file

@ -1,3 +0,0 @@
;; Indent by 2 spaces
(setq web-mode-markup-indent-offset 2)
(setq web-mode-code-indent-offset 2)