From 2c025fb09f9bac3f9db1b22582edd9ee72307453 Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Mon, 28 Aug 2017 17:01:51 +0300 Subject: [PATCH] Move ruby and python configuration to their specific files --- languages.el | 73 +++------------------------------------------ languages/python.el | 27 +++++++++++++++++ languages/ruby.el | 48 +++++++++++++++++++++++++++++ windows.el | 18 ++++++----- 4 files changed, 90 insertions(+), 76 deletions(-) create mode 100644 languages/python.el create mode 100644 languages/ruby.el diff --git a/languages.el b/languages.el index 00f3069..a694e41 100644 --- a/languages.el +++ b/languages.el @@ -6,52 +6,9 @@ ;;; Intial imports (require 'company) -;;; Ruby -(require 'ruby-mode) -(require 'robe) -(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) +;; Imports +(load "~/.emacs.d/languages/ruby.elc") +(load "~/.emacs.d/languages/python.elc") ;;; Rust (defun rust-mode-config () @@ -70,28 +27,6 @@ (add-hook 'rust-mode-hook 'flycheck-mode) (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 (defun sql-mode-hook () "Editor setup for SQL." @@ -214,5 +149,5 @@ ) (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 diff --git a/languages/python.el b/languages/python.el new file mode 100644 index 0000000..9247b7c --- /dev/null +++ b/languages/python.el @@ -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 diff --git a/languages/ruby.el b/languages/ruby.el new file mode 100644 index 0000000..898e21d --- /dev/null +++ b/languages/ruby.el @@ -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 diff --git a/windows.el b/windows.el index 8b1c52f..24f8d63 100644 --- a/windows.el +++ b/windows.el @@ -12,7 +12,7 @@ (add-to-list 'purpose-user-regexp-purposes '("_spec\\.rb\\(<.*>\\)?$" . test)) ;; Rspec (add-to-list 'purpose-user-regexp-purposes - '("_test\\.exs\\(<.*>\\)?$" . test)) ;; Exunit + '("_test\\.exs\\(<.*>\\)?$" . test)) ;; ExUnit (add-to-list 'purpose-user-regexp-purposes '("test_.*\\.py\\(<.*>\\)?$" . test)) ;; Pytest @@ -20,9 +20,15 @@ (add-to-list 'purpose-user-mode-purposes '(magit-diff-mode . test)) ;; Enumerate through all stuff. + +;; Git things (add-to-list 'purpose-user-regexp-purposes '("COMMIT_EDITMSG\\(<.*>\\)?$" . code)) +(add-to-list 'purpose-user-regexp-purposes + '("git-rebase-todo\\(<.*>\\)?$" . 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 '(elixir-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 '(python-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 '(markdown-mode . code)) ;; 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 '(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) (purpose-compile-user-configuration)