Add finally working company

This commit is contained in:
Maciej Szlosarczyk 2017-08-28 21:20:29 +03:00
parent c59eb1ceb8
commit a9cf902017
No known key found for this signature in database
GPG key ID: 0D4EEACF63D4262E
7 changed files with 105 additions and 54 deletions

24
languages/elisp.el Normal file
View file

@ -0,0 +1,24 @@
;;; Ruby -- 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)
'((elisp-company company-capf company-dabbrev-code company-yasnippet
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

View file

@ -3,25 +3,36 @@
;;; Code:
(require 'elpy)
(defun python-mode-config ()
(require 'pyenv-mode)
;;========== Editor config =========================
(defun editor-config-python ()
"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)
(set-width-79)
(setq python-indent-guess-indent-offset 4)
(setq python-indent-offset 4))
(set-indent 4))
;;========== Code completion
(defun completion-config-python ()
"Code completion and inspection for Python."
(elpy-mode 1)
(pyenv-mode 1)
(company-mode 1)
(setq elpy-rpc-python-command "python3")
(setq python-indent-guess-indent-offset 4)
(setq python-indent-offset 4)
(flycheck-mode 1)
(flymake-mode 1)
(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)
(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

View file

@ -5,11 +5,16 @@
(require 'company)
(require 'ruby-mode)
(require 'robe)
(require 'rvm)
(require 'rspec-mode)
(defun ruby-mode-config ()
;;========== Editor config =========================
(defun editor-ruby-mode-config ()
"Setup editor for Ruby."
;; Indentation and line length
(set-width-80)
(set-indent 2)
;; Do not align 'begin' and 'while' ;;
(setq ruby-align-to-stmt-keywords '(if begin case elseif rescue))
@ -19,26 +24,36 @@
;; 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)
;;========== Rspec config =========================
(defun rspec-ruby-mode-config ()
"Use rspec-mode."
(rspec-mode t)
(eval-after-load 'rspec-mode '(rspec-install-snippets)))
;;========== Robe config ==========================
(defun robe-ruby-mode-config ()
"Use robe."
;; Activate modes
(robe-mode 1)
(company-mode 1)
(rspec-mode 1)
;; Activate RVM
(rvm-activate-corresponding-ruby)
;; Initalize completion
(set (make-local-variable 'company-backends)
'((company-robe company-capf company-dabbrev-code company-yasnippet
company-files)))
(ac-robe-setup))
;;========== 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)
;; Use longer lines for HAML
(add-hook 'haml-mode-hook 'set-width-120)