diff --git a/dotfiles/emacs.d/init.el b/dotfiles/emacs.d/init.el index 82ac890..f16faeb 100644 --- a/dotfiles/emacs.d/init.el +++ b/dotfiles/emacs.d/init.el @@ -28,6 +28,13 @@ There are two things you can do about this warning: (when (not package-archive-contents) (package-refresh-contents)) +;; Bootstrap use-package if it doesn't exist +(when (not (package-installed-p 'use-package)) + (package-refresh-contents) + (package-install 'use-package)) + +(require 'use-package) + ;; Load the package.el file (load-file "~/.emacs.d/package.el") @@ -199,8 +206,16 @@ There are two things you can do about this warning: (add-hook 'after-init-hook #'global-flycheck-mode) ;; LSP +(use-package lsp-mode + :ensure t + :hook (python-mode . lsp-deferred) + :commands (lsp lsp-deferred)) + + +(use-package lsp-ui + :ensure t + :hook (lsp-mode . lsp-ui-mode)) -(require 'lsp-mode) ;;;;; PYTHON ;;;;;;;;;;;;;;;;;; ;; @@ -260,7 +275,9 @@ There are two things you can do about this warning: (add-hook 'python-mode-hook (lambda () (add-to-list 'company-backends 'company-jedi))) + ;; Use microsoft's python language server +(add-hook 'python-mode-hook (lambda () (lsp-python-enable))) (require 'lsp-python-ms) (use-package lsp-python-ms :ensure t @@ -273,6 +290,19 @@ There are two things you can do about this warning: (use-package python-pytest) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RUBY ;;;;;;;;;;;;;;;;;; + +(require 'rvm) + +(add-hook 'ruby-mode-hook 'robe-mode) + +(eval-after-load 'company + '(push 'company-robe company-backends)) + +(add-hook 'robe-mode-hook 'ac-robe-setup) + +(advice-add 'inf-ruby-console-auto :before #'rvm-activate-corresponding-ruby) + ;;;;;;;;;;; C/C++ (use-package clang-format+) @@ -322,6 +352,8 @@ There are two things you can do about this warning: (define-key counsel-gtags-mode-map (kbd "M-s") 'counsel-gtags-find-symbol) (define-key counsel-gtags-mode-map (kbd "M-,") 'counsel-gtags-go-backward)) + + ;;-------------------------------------------------------------------------------------- ;; Install and load Packages ;;-------------------------------------------------------------------------------------- @@ -337,7 +369,7 @@ There are two things you can do about this warning: '(lisp-indent-function (quote common-lisp-indent-function)) '(package-selected-packages (quote - (projectile smex grizzl flycheck-pos-tip flycheck material-theme expand-region wrap-region rainbow-delimiters powerline linum-relative golden-ratio fill-column-indicator autopair exec-path-from-shell ws-butler yaml-mode python-mode protobuf-mode paredit nasm-mode meson-mode markdown-mode magit gradle-mode gitignore-mode feature-mode counsel company-jedi jedi-core company-emacs-eclim company-irony company ag)))) + (company-lsp projectile smex grizzl flycheck-pos-tip flycheck material-theme expand-region wrap-region rainbow-delimiters powerline linum-relative golden-ratio fill-column-indicator autopair exec-path-from-shell ws-butler yaml-mode python-mode protobuf-mode paredit nasm-mode meson-mode markdown-mode magit gradle-mode gitignore-mode feature-mode counsel company-jedi jedi-core company-emacs-eclim company-irony company ag)))) (custom-set-faces ;; custom-set-faces was added by Custom. diff --git a/dotfiles/emacs.d/package.el b/dotfiles/emacs.d/package.el index 1abc419..47eae63 100644 --- a/dotfiles/emacs.d/package.el +++ b/dotfiles/emacs.d/package.el @@ -46,6 +46,15 @@ elpy yaml-mode slime + + ;; Rails + rinari + + ;; Ruby autocomplete + robe + + ;; RVM support + rvm ;;;;;;;;;;;;;;;;;;;; ;; Test helpers