Frist attempt to not use elpy
This commit is contained in:
182
.emacs
182
.emacs
@@ -18,8 +18,6 @@
|
||||
(other . "gnu")))
|
||||
'(company-idle-delay 20.0)
|
||||
'(compilation-scroll-output 'first-error)
|
||||
'(elpy-formatter 'black)
|
||||
'(elpy-test-runner 'elpy-test-pytest-runner)
|
||||
'(global-auto-revert-mode t)
|
||||
'(global-display-line-numbers-mode t)
|
||||
'(gofmt-command "goimports")
|
||||
@@ -30,7 +28,7 @@
|
||||
("melpa" . "https://melpa.org/packages/")))
|
||||
'(package-enable-at-startup nil)
|
||||
'(package-selected-packages
|
||||
'(company-go zenburn-theme langtool smart-tabs-mode typescript-mode protobuf-mode opencl-mode glsl-mode go-mode elpy markdown-mode srefactor irony cmake-mode company magit use-package))
|
||||
'(company-go zenburn-theme langtool smart-tabs-mode typescript-mode protobuf-mode opencl-mode glsl-mode go-mode markdown-mode srefactor irony cmake-mode company magit use-package))
|
||||
'(safe-local-variable-values
|
||||
'((vc-follow-symlinks . t)
|
||||
(TeX-master . t)
|
||||
@@ -83,12 +81,6 @@
|
||||
:config
|
||||
(setq-default tab-width 4) ; or any other preferred value
|
||||
(setq cua-auto-tabify-rectangles nil)
|
||||
;; (defadvice align (around smart-tabs activate)
|
||||
;; (let ((indent-tabs-mode nil)) ad-do-it))
|
||||
;; (defadvice align (around smart-tabs activate)
|
||||
;; (let ((indent-tabs-mode nil)) ad-do-it))
|
||||
;; (defadvice align-regexp (around smart-tabs activate)
|
||||
;; (let ((indent-tabs-mode nil)) ad-do-it))
|
||||
(defadvice indent-relative (around smart-tabs activate)
|
||||
(let ((indent-tabs-mode nil)) ad-do-it))
|
||||
(defadvice indent-according-to-mode (around smart-tabs activate)
|
||||
@@ -146,19 +138,13 @@
|
||||
)
|
||||
|
||||
(use-package cmake-mode
|
||||
:hook
|
||||
(cmake-mode . lsp-deferred)
|
||||
:config
|
||||
(setq cmake-tab-width 4)
|
||||
)
|
||||
|
||||
|
||||
(use-package srefactor
|
||||
:bind (:map c-mode-map
|
||||
("M-RET" . srefactor-refactor-at-point)
|
||||
:map c++-mode-map
|
||||
("M-RET" . srefactor-refactor-at-point))
|
||||
)
|
||||
|
||||
|
||||
(use-package yasnippet
|
||||
:config
|
||||
(yas-global-mode)
|
||||
@@ -180,17 +166,21 @@
|
||||
(projectile-mode +1)
|
||||
)
|
||||
|
||||
(use-package cpputils-cmake
|
||||
(use-package flycheck
|
||||
:config
|
||||
(setq cppcm-write-flymake-makefile nil)
|
||||
:bind ( "C-c C-f" . ff-find-other-file)
|
||||
)
|
||||
(defvar-local atu/flycheck-local-cache nil)
|
||||
|
||||
(use-package flycheck)
|
||||
(defun atu/flycheck-checker-get (fn checker property)
|
||||
(or (alist-get property (alist-get checker atu/flycheck-local-cache))
|
||||
(funcall fn checker property)))
|
||||
|
||||
(advice-add 'flycheck-checker-get :around 'atu/flycheck-checker-get)
|
||||
)
|
||||
|
||||
(use-package which-key)
|
||||
|
||||
(use-package lsp-mode
|
||||
:after (flycheck)
|
||||
:config
|
||||
(yas-minor-mode)
|
||||
(global-set-key (kbd "C-c C-n") 'flycheck-next-error)
|
||||
@@ -206,20 +196,16 @@
|
||||
:init
|
||||
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
||||
(setq lsp-keymap-prefix "C-c l")
|
||||
(require 'lsp-ltex)
|
||||
:hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode)
|
||||
(c++-mode . lsp-deferred)
|
||||
(c-mode . lsp-deferred)
|
||||
(cmake-mode . lsp-deferred)
|
||||
(go-mode . lsp-deferred)
|
||||
(typescript-mode . lsp-deferred)
|
||||
(html-mode . lsp-deferred)
|
||||
:hook (
|
||||
;; replace XXX-mode with concrete major-mode(e. g. python-mode)
|
||||
;; if you want which-key integration
|
||||
(lsp-mode . lsp-enable-which-key-integration))
|
||||
|
||||
|
||||
:commands (lsp lsp-deferred))
|
||||
|
||||
(use-package lsp-ui
|
||||
:after lsp-mode
|
||||
:config
|
||||
(setq lsp-ui-sideline-show-diagnostics nil)
|
||||
)
|
||||
@@ -228,10 +214,135 @@
|
||||
:init
|
||||
(setq lsp-ltex-version "15.2.0")) ; make sure you have set this, see below
|
||||
|
||||
(use-package ng2-mode)
|
||||
(use-package ng2-mode
|
||||
:hook
|
||||
(html-mode . lsp-deferred)
|
||||
(typescript-mode . lsp-deferred)
|
||||
)
|
||||
|
||||
(use-package yaml-mode)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; PYTHON
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(use-package python
|
||||
:custom
|
||||
(python-shell-interpreter "ipython")
|
||||
(python-shell-interpreter-args "-i --simple-prompt")
|
||||
(python-indent-guess-indent-offset-verbose nil)
|
||||
:hook
|
||||
(python-mode . (lambda () (setq-local company-prescient-sort-length-enable nil)))
|
||||
(python-mode . (lambda () (setq-local fill-column 88)))
|
||||
(python-mode . lsp-deferred)
|
||||
;; (lsp-managed-mode . (lambda ()
|
||||
;; (when (derived-mode-p 'python-mode)
|
||||
;; (setq atu/flycheck-local-cache '((lsp . ((next-checkers . (python-flake8)))))))))
|
||||
|
||||
)
|
||||
|
||||
(use-package pyvenv
|
||||
:after (projectile)
|
||||
:config
|
||||
(defun atu/get-direnv-venv ()
|
||||
"Gets .direnv from project root python venv if any"
|
||||
(when-let* ((root-dir (projectile-project-root))
|
||||
(direnv (concat (file-name-as-directory root-dir) ".direnv"))
|
||||
(venvs (directory-files direnv t "python-.*")))
|
||||
(car (last venvs)))
|
||||
)
|
||||
(defun atu/get-dotvenv ()
|
||||
"Gets .venv from project root if any"
|
||||
(when-let* ((root-dir (projectile-project-root))
|
||||
(venv (concat (file-name-as-directory root-dir) ".venv"))
|
||||
(venv-exists (file-exists-p venv))
|
||||
(venv-name (with-temp-buffer
|
||||
(insert-file-contents venv-file)
|
||||
(nth 0 (split-string (buffer-string))))))
|
||||
venv-name)
|
||||
)
|
||||
(defun atu/get-venv-name ()
|
||||
"Gets venv name from project root. Support .venv and .direnv structure"
|
||||
(or (atu/get-dotvenv) (atu/get-direnv-venv))
|
||||
)
|
||||
|
||||
(defun atu/activate-venv ()
|
||||
"Activate python environment according to the project root"
|
||||
(when-let ((venv-name (atu/get-venv-name)))
|
||||
(pyvenv-mode)
|
||||
(pyvenv-workon venv-name)
|
||||
)
|
||||
)
|
||||
|
||||
(defun atu/get-venv-python ()
|
||||
"returns python executable from current venv"
|
||||
(when-let* ((venv-name (atu/get-venv-name))
|
||||
(python-exec (concat (file-name-as-directory venv-name) "bin/python3"))
|
||||
(python-exists (file-executable-p python-exec))
|
||||
)
|
||||
python-exec)
|
||||
)
|
||||
|
||||
(defun atu/activate-flycheck ()
|
||||
"Activate flycheck unless its in the venv"
|
||||
(if-let ((venv-name (atu/get-venv-name)))
|
||||
(unless (and buffer-file-name (file-in-directory-p buffer-file-name venv-name))
|
||||
(flycheck-mode))
|
||||
(flycheck-mode))
|
||||
)
|
||||
|
||||
(defun atu/append-workspace-extra-paths ()
|
||||
"Appends needed extra-paths to lsp-jedi workspace if found"
|
||||
(when-let* ((venv-name (atu/get-venv-name))
|
||||
(site-packages (file-expand-wildcards (concat (file-name-as-directory venv-name) "lib/python*/site-packages")))
|
||||
(site-package (car site-packages)))
|
||||
(setq lsp-jedi-workspace-extra-paths
|
||||
(vconcat lsp-jedi-workspace-extra-paths (vector site-package))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defun atu/flycheck-set-python-paths ()
|
||||
"Sets the rights executable for flycheck"
|
||||
(when-let ((python-exec (atu/get-venv-python)))
|
||||
(flycheck-set-checker-executable 'python-flake8 python-exec)
|
||||
(flycheck-set-checker-executable 'python-pylint python-exec)
|
||||
(flycheck-set-checker-executable 'python-mypy python-exec)
|
||||
(flycheck-reset-enabled-checker 'python-flake8)
|
||||
(flycheck-reset-enabled-checker 'python-pylint)
|
||||
(flycheck-add-next-checker 'lsp 'python-pylint)
|
||||
)
|
||||
)
|
||||
|
||||
:hook
|
||||
(python-mode . atu/activate-venv)
|
||||
;(python-mode . atu/activate-flycheck)
|
||||
(python-mode . atu/append-workspace-extra-paths)
|
||||
(lsp-managed-mode . atu/flycheck-set-python-paths)
|
||||
)
|
||||
|
||||
|
||||
(use-package lsp-jedi
|
||||
:config
|
||||
(with-eval-after-load "lsp-mode"
|
||||
(add-to-list 'lsp-disabled-clients 'pyls)
|
||||
(add-to-list 'lsp-enabled-clients 'jedi)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; (use-package blacken
|
||||
;; :commands blacken-mode blacken-buffer
|
||||
;; :hook
|
||||
;; (python-mode . blacken-mode)
|
||||
;; )
|
||||
|
||||
;; (use-package py-isort
|
||||
;; :commands py-isort-buffer
|
||||
;; :hook
|
||||
;; (before-save-hook . py-isort-before-save)
|
||||
;; )
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; C/C++
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -331,15 +442,6 @@
|
||||
|
||||
(use-package markdown-mode)
|
||||
|
||||
(use-package elpy
|
||||
:init
|
||||
(elpy-enable)
|
||||
:config
|
||||
(add-hook 'elpy-mode-hook (lambda ()
|
||||
(add-hook 'before-save-hook
|
||||
'elpy-format-code nil t)))
|
||||
)
|
||||
|
||||
(use-package go-mode
|
||||
:after (projectile)
|
||||
:config
|
||||
|
||||
Reference in New Issue
Block a user