Add finally working company
This commit is contained in:
parent
c59eb1ceb8
commit
a9cf902017
7 changed files with 105 additions and 54 deletions
13
behaviour.el
13
behaviour.el
|
|
@ -138,12 +138,21 @@
|
||||||
|
|
||||||
; Add completion
|
; Add completion
|
||||||
(require 'company)
|
(require 'company)
|
||||||
(add-hook 'after-init-hook 'global-company-mode)
|
(setq company-tooltip-limit 30)
|
||||||
(setq company-tooltip-limit 10)
|
(setq company-tooltip-minimum-width 40)
|
||||||
(setq company-idle-delay .1)
|
(setq company-idle-delay .1)
|
||||||
(setq company-begin-commands '(self-insert-command))
|
(setq company-begin-commands '(self-insert-command))
|
||||||
(setq company-selection-wrap-around t)
|
(setq company-selection-wrap-around t)
|
||||||
|
|
||||||
|
(setq company-backends
|
||||||
|
'((company-files ; files & directory
|
||||||
|
company-keywords ; keywords
|
||||||
|
company-capf
|
||||||
|
company-yasnippet
|
||||||
|
)
|
||||||
|
(company-abbrev company-dabbrev)
|
||||||
|
))
|
||||||
|
|
||||||
; Add project management
|
; Add project management
|
||||||
(require 'projectile)
|
(require 'projectile)
|
||||||
(projectile-mode)
|
(projectile-mode)
|
||||||
|
|
|
||||||
3
emacs
3
emacs
|
|
@ -20,6 +20,9 @@
|
||||||
'(foreground-color "#cccccc")
|
'(foreground-color "#cccccc")
|
||||||
'(hl-paren-background-colors (quote ("#2492db" "#95a5a6" nil)))
|
'(hl-paren-background-colors (quote ("#2492db" "#95a5a6" nil)))
|
||||||
'(hl-paren-colors (quote ("#ecf0f1" "#ecf0f1" "#c0392b")))
|
'(hl-paren-colors (quote ("#ecf0f1" "#ecf0f1" "#c0392b")))
|
||||||
|
'(package-selected-packages
|
||||||
|
(quote
|
||||||
|
(company-jedi yaml-mode window-purpose web-mode ujelly-theme toml-mode smart-mode-line scala-mode rvm ruby-end rspec-mode robe rainbow-mode rainbow-delimiters racer pyenv-mode noctilux-theme neotree monokai-theme markdown-mode less-css-mode json-reformat jade-mode indent-guide helm-themes helm-projectile helm-ag haskell-mode haml-mode groovy-mode flycheck flatui-theme exec-path-from-shell evil-nerd-commenter evil-magit evil-leader elpy dumb-jump dockerfile-mode diff-hl dash-at-point column-enforce-mode color-theme-approximate base16-theme atom-one-dark-theme alchemist aggressive-indent ag)))
|
||||||
'(safe-local-variable-values (quote ((encoding . utf-8))))
|
'(safe-local-variable-values (quote ((encoding . utf-8))))
|
||||||
'(sml/active-background-color "#34495e")
|
'(sml/active-background-color "#34495e")
|
||||||
'(sml/active-foreground-color "#ecf0f1")
|
'(sml/active-foreground-color "#ecf0f1")
|
||||||
|
|
|
||||||
19
languages.el
19
languages.el
|
|
@ -9,6 +9,7 @@
|
||||||
;; Imports
|
;; Imports
|
||||||
(load "~/.emacs.d/languages/ruby.elc")
|
(load "~/.emacs.d/languages/ruby.elc")
|
||||||
(load "~/.emacs.d/languages/python.elc")
|
(load "~/.emacs.d/languages/python.elc")
|
||||||
|
(load "~/.emacs.d/languages/elisp.elc")
|
||||||
|
|
||||||
;;; Rust
|
;;; Rust
|
||||||
(defun rust-mode-config ()
|
(defun rust-mode-config ()
|
||||||
|
|
@ -76,24 +77,6 @@
|
||||||
(add-hook 'haskell-mode-hook 'flycheck-mode)
|
(add-hook 'haskell-mode-hook 'flycheck-mode)
|
||||||
(add-hook 'haskell-mode-hook 'set-width-80)
|
(add-hook 'haskell-mode-hook 'set-width-80)
|
||||||
|
|
||||||
;;; 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)
|
|
||||||
(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 2)
|
|
||||||
|
|
||||||
(flycheck-mode 1))
|
|
||||||
|
|
||||||
(add-hook 'emacs-lisp-mode-hook 'elisp-mode-config)
|
|
||||||
(add-hook 'emacs-lisp-mode-hook 'flycheck-mode)
|
|
||||||
(add-hook 'emacs-lisp-mode-hook 'set-width-80)
|
|
||||||
|
|
||||||
;;; Java
|
;;; Java
|
||||||
(defun java-mode-config ()
|
(defun java-mode-config ()
|
||||||
"Setup editor for java."
|
"Setup editor for java."
|
||||||
|
|
|
||||||
24
languages/elisp.el
Normal file
24
languages/elisp.el
Normal 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
|
||||||
|
|
@ -3,25 +3,36 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
(require 'elpy)
|
(require 'elpy)
|
||||||
(defun python-mode-config ()
|
(require 'pyenv-mode)
|
||||||
|
;;========== Editor config =========================
|
||||||
|
(defun editor-config-python ()
|
||||||
"Setup editor for Python."
|
"Setup editor for Python."
|
||||||
(remove-hook 'ruby-mode-hook 'ruby-mode-config)
|
(set-indent 4)
|
||||||
(remove-hook 'elixir-mode-hook 'elixir-mode-config)
|
(set-width-79)
|
||||||
(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-guess-indent-offset 4)
|
||||||
(setq python-indent-offset 4)
|
(setq python-indent-offset 4))
|
||||||
|
|
||||||
(add-hook 'python-mode-hook 'python-mode-config)
|
;;========== Code completion
|
||||||
(add-hook 'python-mode-hook 'pyenv-mode)
|
(defun completion-config-python ()
|
||||||
(add-hook 'python-mode-hook 'elpy-mode)
|
"Code completion and inspection for Python."
|
||||||
(add-hook 'python-mode-hook 'set-width-79)
|
(elpy-mode 1)
|
||||||
|
(pyenv-mode 1)
|
||||||
|
(company-mode 1)
|
||||||
|
|
||||||
|
(flycheck-mode 1)
|
||||||
|
(flymake-mode 1)
|
||||||
|
|
||||||
|
(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)
|
(provide 'python)
|
||||||
;;; python.el ends here
|
;;; python.el ends here
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,16 @@
|
||||||
(require 'company)
|
(require 'company)
|
||||||
(require 'ruby-mode)
|
(require 'ruby-mode)
|
||||||
(require 'robe)
|
(require 'robe)
|
||||||
(require 'rvm)
|
|
||||||
(require 'rspec-mode)
|
(require 'rspec-mode)
|
||||||
(defun ruby-mode-config ()
|
|
||||||
|
;;========== Editor config =========================
|
||||||
|
(defun editor-ruby-mode-config ()
|
||||||
"Setup editor for Ruby."
|
"Setup editor for Ruby."
|
||||||
|
|
||||||
|
;; Indentation and line length
|
||||||
|
(set-width-80)
|
||||||
(set-indent 2)
|
(set-indent 2)
|
||||||
|
|
||||||
;; Do not align 'begin' and 'while' ;;
|
;; Do not align 'begin' and 'while' ;;
|
||||||
(setq ruby-align-to-stmt-keywords '(if begin case elseif rescue))
|
(setq ruby-align-to-stmt-keywords '(if begin case elseif rescue))
|
||||||
|
|
||||||
|
|
@ -19,26 +24,36 @@
|
||||||
;; Do not insert encoding comments
|
;; Do not insert encoding comments
|
||||||
(setq ruby-insert-encoding-magic-comment nil)
|
(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
|
;; Use web-mode for erb
|
||||||
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode)))
|
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode)))
|
||||||
|
|
||||||
(add-hook 'ruby-mode-hook 'ruby-mode-config)
|
;;========== Rspec config =========================
|
||||||
(add-hook 'ruby-mode-hook 'set-width-80)
|
(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
|
;; Use longer lines for HAML
|
||||||
(add-hook 'haml-mode-hook 'set-width-120)
|
(add-hook 'haml-mode-hook 'set-width-120)
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,9 @@
|
||||||
(unless (package-installed-p 'flycheck)
|
(unless (package-installed-p 'flycheck)
|
||||||
(package-install 'flycheck))
|
(package-install 'flycheck))
|
||||||
|
|
||||||
|
(unless (package-installed-p 'flymake)
|
||||||
|
(package-install 'flymake))
|
||||||
|
|
||||||
(unless (package-installed-p 'projectile)
|
(unless (package-installed-p 'projectile)
|
||||||
(package-install 'projectile))
|
(package-install 'projectile))
|
||||||
|
|
||||||
|
|
@ -194,6 +197,9 @@
|
||||||
(unless (package-installed-p 'elpy)
|
(unless (package-installed-p 'elpy)
|
||||||
(package-install 'elpy))
|
(package-install 'elpy))
|
||||||
|
|
||||||
|
(unless (package-installed-p 'company-jedi)
|
||||||
|
(package-install 'company-jedi))
|
||||||
|
|
||||||
(unless (package-installed-p 'pyenv-mode)
|
(unless (package-installed-p 'pyenv-mode)
|
||||||
(package-install 'pyenv-mode))
|
(package-install 'pyenv-mode))
|
||||||
;;; packages.el ends here
|
;;; packages.el ends here
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue