Move ruby and python configuration to their specific files

This commit is contained in:
Maciej Szlosarczyk 2017-08-28 17:01:51 +03:00
parent df6c4fb449
commit 2c025fb09f
No known key found for this signature in database
GPG key ID: 0D4EEACF63D4262E
4 changed files with 90 additions and 76 deletions

View file

@ -6,52 +6,9 @@
;;; Intial imports ;;; Intial imports
(require 'company) (require 'company)
;;; Ruby ;; Imports
(require 'ruby-mode) (load "~/.emacs.d/languages/ruby.elc")
(require 'robe) (load "~/.emacs.d/languages/python.elc")
(require 'rvm)
(require 'rspec-mode)
(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)
(remove-hook 'html-mode-hook 'web-mode-config)
(remove-hook 'java-mode-hook 'java-mode-config)
(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)
;; Do not insert encoding comments ;;
(setq ruby-insert-encoding-magic-comment nil)
;; Use robe
(add-hook 'ruby-mode-hook 'robe-mode)
(defadvice inf-ruby-console-auto (before activate-rvm-for-robe activate)
"Activate proper RVM on activation of Robe."
(rvm-activate-corresponding-ruby))
(eval-after-load 'company
'(push 'company-robe company-backends))
;; User rspec-mode
(add-hook 'ruby-mode-hook 'rspec-mode)
(eval-after-load 'rspec-mode
'(rspec-install-snippets))
;; Use web-mode for erb
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
(add-hook 'ruby-mode-hook 'ruby-mode-config)
(add-hook 'ruby-mode-hook 'set-width-80)
;; Use longer lines for HAML
(add-hook 'haml-mode-hook 'set-width-120)
;;; Rust ;;; Rust
(defun rust-mode-config () (defun rust-mode-config ()
@ -70,28 +27,6 @@
(add-hook 'rust-mode-hook 'flycheck-mode) (add-hook 'rust-mode-hook 'flycheck-mode)
(add-hook 'rust-mode-hook 'set-width-99) (add-hook 'rust-mode-hook 'set-width-99)
;;; Python
(require 'elpy)
(defun python-mode-config ()
"Setup editor for Python."
(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)
(remove-hook 'html-mode-hook 'web-mode-config)
(remove-hook 'haskell-mode-hook 'haskell-mode-config)
(remove-hook 'java-mode-hook 'java-mode-config)
(set-indent 4))
(setq elpy-rpc-python-command "python3")
(setq python-indent-guess-indent-offset 4)
(setq python-indent-offset 4)
(add-hook 'python-mode-hook 'python-mode-config)
(add-hook 'python-mode-hook 'pyenv-mode)
(add-hook 'python-mode-hook 'elpy-mode)
(add-hook 'python-mode-hook 'set-width-79)
;;; SQL ;;; SQL
(defun sql-mode-hook () (defun sql-mode-hook ()
"Editor setup for SQL." "Editor setup for SQL."
@ -214,5 +149,5 @@
) )
(setq ansi-color-for-comint-mode t) ;; Properly display colors in shell mode (setq ansi-color-for-comint-mode t) ;; Properly display colors in shell mode
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
;;; languages.el ends here ;;; languages.el ends here

27
languages/python.el Normal file
View file

@ -0,0 +1,27 @@
;;; Ruby -- summary
;;; Commentary:
;;; Code:
(require 'elpy)
(defun python-mode-config ()
"Setup editor for Python."
(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)
(remove-hook 'html-mode-hook 'web-mode-config)
(remove-hook 'haskell-mode-hook 'haskell-mode-config)
(remove-hook 'java-mode-hook 'java-mode-config)
(set-indent 4))
(setq elpy-rpc-python-command "python3")
(setq python-indent-guess-indent-offset 4)
(setq python-indent-offset 4)
(add-hook 'python-mode-hook 'python-mode-config)
(add-hook 'python-mode-hook 'pyenv-mode)
(add-hook 'python-mode-hook 'elpy-mode)
(add-hook 'python-mode-hook 'set-width-79)
(provide 'python)
;;; python.el ends here

48
languages/ruby.el Normal file
View file

@ -0,0 +1,48 @@
;;; Ruby -- summary
;;; Commentary:
;;; Code:
(require 'company)
(require 'ruby-mode)
(require 'robe)
(require 'rvm)
(require 'rspec-mode)
(defun ruby-mode-config ()
"Setup editor for Ruby."
(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)
;; Do not insert encoding comments ;;
(setq ruby-insert-encoding-magic-comment nil)
;; Use robe
(add-hook 'ruby-mode-hook 'robe-mode)
(defadvice inf-ruby-console-auto (before activate-rvm-for-robe activate)
"Activate proper RVM on activation of Robe."
(rvm-activate-corresponding-ruby))
;; Setup autocomplete for robe
(eval-after-load 'company
'(push 'company-robe company-backends))
(add-hook 'robe-mode-hook 'ac-robe-setup)
;; User rspec-mode
(add-hook 'ruby-mode-hook 'rspec-mode)
(eval-after-load 'rspec-mode
'(rspec-install-snippets))
;; Use web-mode for erb
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode)))
(add-hook 'ruby-mode-hook 'ruby-mode-config)
(add-hook 'ruby-mode-hook 'set-width-80)
;; Use longer lines for HAML
(add-hook 'haml-mode-hook 'set-width-120)
(provide 'ruby)
;;; ruby.el ends here

View file

@ -12,7 +12,7 @@
(add-to-list 'purpose-user-regexp-purposes (add-to-list 'purpose-user-regexp-purposes
'("_spec\\.rb\\(<.*>\\)?$" . test)) ;; Rspec '("_spec\\.rb\\(<.*>\\)?$" . test)) ;; Rspec
(add-to-list 'purpose-user-regexp-purposes (add-to-list 'purpose-user-regexp-purposes
'("_test\\.exs\\(<.*>\\)?$" . test)) ;; Exunit '("_test\\.exs\\(<.*>\\)?$" . test)) ;; ExUnit
(add-to-list 'purpose-user-regexp-purposes (add-to-list 'purpose-user-regexp-purposes
'("test_.*\\.py\\(<.*>\\)?$" . test)) ;; Pytest '("test_.*\\.py\\(<.*>\\)?$" . test)) ;; Pytest
@ -20,9 +20,15 @@
(add-to-list 'purpose-user-mode-purposes '(magit-diff-mode . test)) (add-to-list 'purpose-user-mode-purposes '(magit-diff-mode . test))
;; Enumerate through all stuff. ;; Enumerate through all stuff.
;; Git things
(add-to-list 'purpose-user-regexp-purposes (add-to-list 'purpose-user-regexp-purposes
'("COMMIT_EDITMSG\\(<.*>\\)?$" . code)) '("COMMIT_EDITMSG\\(<.*>\\)?$" . code))
(add-to-list 'purpose-user-regexp-purposes
'("git-rebase-todo\\(<.*>\\)?$" . code))
(add-to-list 'purpose-user-mode-purposes '(diff-mode . code)) (add-to-list 'purpose-user-mode-purposes '(diff-mode . code))
;; Programming files
(add-to-list 'purpose-user-mode-purposes '(ruby-mode . code)) (add-to-list 'purpose-user-mode-purposes '(ruby-mode . code))
(add-to-list 'purpose-user-mode-purposes '(elixir-mode . code)) (add-to-list 'purpose-user-mode-purposes '(elixir-mode . code))
(add-to-list 'purpose-user-mode-purposes '(rust-mode . code)) (add-to-list 'purpose-user-mode-purposes '(rust-mode . code))
@ -31,7 +37,11 @@
(add-to-list 'purpose-user-mode-purposes '(java-mode . code)) (add-to-list 'purpose-user-mode-purposes '(java-mode . code))
(add-to-list 'purpose-user-mode-purposes '(python-mode . code)) (add-to-list 'purpose-user-mode-purposes '(python-mode . code))
(add-to-list 'purpose-user-mode-purposes '(javascript-mode . code)) (add-to-list 'purpose-user-mode-purposes '(javascript-mode . code))
(add-to-list 'purpose-user-mode-purposes '(emacs-lisp-mode . code))
;; Other files that fall into 'code'
(add-to-list 'purpose-user-mode-purposes '(xml-mode . code)) (add-to-list 'purpose-user-mode-purposes '(xml-mode . code))
(add-to-list 'purpose-user-mode-purposes '(markdown-mode . code))
;; Tools ;; Tools
(add-to-list 'purpose-user-mode-purposes '(dired-mode . tools)) (add-to-list 'purpose-user-mode-purposes '(dired-mode . tools))
@ -41,12 +51,6 @@
(add-to-list 'purpose-user-mode-purposes '(compilation-mode . tools)) (add-to-list 'purpose-user-mode-purposes '(compilation-mode . tools))
(add-to-list 'purpose-user-mode-purposes '(reb-mode . tools)) ;; Regexp builder (add-to-list 'purpose-user-mode-purposes '(reb-mode . tools)) ;; Regexp builder
;; Markdown and others
(add-to-list 'purpose-user-mode-purposes '(markdown-mode . code))
;; Emacs lisp
(add-to-list 'purpose-user-mode-purposes '(emacs-lisp-mode . code))
(setq purpose-use-default-configuration nil) (setq purpose-use-default-configuration nil)
(purpose-compile-user-configuration) (purpose-compile-user-configuration)