|
|
|
@ -70,6 +70,13 @@ There are two things you can do about this warning:
|
|
|
|
|
(set-buffer-file-coding-system 'unix) |
|
|
|
|
|
|
|
|
|
;;-------------------------------------------------------------------------------------- |
|
|
|
|
;; Populate emacs path to $PATH when on *nix or OS X |
|
|
|
|
;;-------------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
(when (memq window-system '(mac ns x)) |
|
|
|
|
(exec-path-from-shell-initialize)) |
|
|
|
|
|
|
|
|
|
;;-------------------------------------------------------------------------------------- |
|
|
|
|
;; Enable auto-refresh to keep buffers up to date when git or another program |
|
|
|
|
;; modifies them |
|
|
|
|
;;-------------------------------------------------------------------------------------- |
|
|
|
@ -184,11 +191,43 @@ There are two things you can do about this warning:
|
|
|
|
|
;; Enable semantic for language-aware editing commands |
|
|
|
|
(setq semantic-mode 't) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; Enable company mode |
|
|
|
|
(add-hook 'after-init-hook 'global-company-mode) |
|
|
|
|
|
|
|
|
|
;; Globally enable flycheck |
|
|
|
|
(add-hook 'after-init-hook #'global-flycheck-mode) |
|
|
|
|
|
|
|
|
|
;;;;; PYTHON ;;;;;;;;;;;;;;;;;; |
|
|
|
|
;; |
|
|
|
|
;; NOTES: |
|
|
|
|
;; |
|
|
|
|
;; - For each project you will need to install flake8/autopep8 into the virtualenv |
|
|
|
|
;; - For each project you will need to install jedi into the virtualenv |
|
|
|
|
;; - To set your pyenv use M-x pyenv-mode and select your local virtualenv |
|
|
|
|
;; |
|
|
|
|
;; |
|
|
|
|
|
|
|
|
|
;; thx rakan.me |
|
|
|
|
(defun pyenv-activate-current-project () |
|
|
|
|
"Automatically activates pyenv version if .python-version file exists." |
|
|
|
|
(interactive) |
|
|
|
|
(f-traverse-upwards |
|
|
|
|
(lambda (path) |
|
|
|
|
(message path) |
|
|
|
|
(let ((pyenv-version-path (f-expand ".python-version" path))) |
|
|
|
|
(if (f-exists? pyenv-version-path) |
|
|
|
|
(let ((pyenv-current-version (s-trim (f-read-text pyenv-version-path 'utf-8)))) |
|
|
|
|
(pyenv-mode-set pyenv-current-version) |
|
|
|
|
(message (concat "Setting virtualenv to " pyenv-current-version)))))))) |
|
|
|
|
|
|
|
|
|
;; For Python enable Elpy. |
|
|
|
|
(use-package elpy |
|
|
|
|
:ensure t |
|
|
|
|
:init (elpy-enable)) |
|
|
|
|
|
|
|
|
|
(setq elpy-rpc-backend "jedi") |
|
|
|
|
|
|
|
|
|
;; Enable pyenv integration. |
|
|
|
|
(use-package pyenv-mode |
|
|
|
|
:config |
|
|
|
@ -197,6 +236,25 @@ There are two things you can do about this warning:
|
|
|
|
|
;; Disable elpy default virtualenv (use the pyenv one) |
|
|
|
|
(setq elpy-rpc-virtualenv-path 'current) |
|
|
|
|
|
|
|
|
|
;; Enable autopep8 |
|
|
|
|
|
|
|
|
|
(require 'py-autopep8) |
|
|
|
|
|
|
|
|
|
(add-hook 'elpy-mode-hook 'py-autopep8-enable-on-save) |
|
|
|
|
|
|
|
|
|
;; Enable flake8 - requires flake8 in your path so use pyenv/global pip install |
|
|
|
|
(add-hook 'python-mode-hook '(lambda () |
|
|
|
|
(setq flycheck-python-flake8-executable "flake8") |
|
|
|
|
(flycheck-select-checker 'python-flake8) |
|
|
|
|
(flycheck-mode t))) |
|
|
|
|
|
|
|
|
|
;; Activate pyenv automatically if a .python-version is supplied |
|
|
|
|
(add-hook 'python-mode-hook 'pyenv-activate-current-project) |
|
|
|
|
|
|
|
|
|
;; Add company-jedi hook to python mode |
|
|
|
|
(add-hook 'python-mode-hook (lambda () |
|
|
|
|
(add-to-list 'company-backends 'company-jedi))) |
|
|
|
|
|
|
|
|
|
;;-------------------------------------------------------------------------------------- |
|
|
|
|
;; Save hooks |
|
|
|
|
;;-------------------------------------------------------------------------------------- |
|
|
|
|