Frist attempt to not use elpy
This commit is contained in:
182
.emacs
182
.emacs
@@ -18,8 +18,6 @@
|
|||||||
(other . "gnu")))
|
(other . "gnu")))
|
||||||
'(company-idle-delay 20.0)
|
'(company-idle-delay 20.0)
|
||||||
'(compilation-scroll-output 'first-error)
|
'(compilation-scroll-output 'first-error)
|
||||||
'(elpy-formatter 'black)
|
|
||||||
'(elpy-test-runner 'elpy-test-pytest-runner)
|
|
||||||
'(global-auto-revert-mode t)
|
'(global-auto-revert-mode t)
|
||||||
'(global-display-line-numbers-mode t)
|
'(global-display-line-numbers-mode t)
|
||||||
'(gofmt-command "goimports")
|
'(gofmt-command "goimports")
|
||||||
@@ -30,7 +28,7 @@
|
|||||||
("melpa" . "https://melpa.org/packages/")))
|
("melpa" . "https://melpa.org/packages/")))
|
||||||
'(package-enable-at-startup nil)
|
'(package-enable-at-startup nil)
|
||||||
'(package-selected-packages
|
'(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
|
'(safe-local-variable-values
|
||||||
'((vc-follow-symlinks . t)
|
'((vc-follow-symlinks . t)
|
||||||
(TeX-master . t)
|
(TeX-master . t)
|
||||||
@@ -83,12 +81,6 @@
|
|||||||
:config
|
:config
|
||||||
(setq-default tab-width 4) ; or any other preferred value
|
(setq-default tab-width 4) ; or any other preferred value
|
||||||
(setq cua-auto-tabify-rectangles nil)
|
(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)
|
(defadvice indent-relative (around smart-tabs activate)
|
||||||
(let ((indent-tabs-mode nil)) ad-do-it))
|
(let ((indent-tabs-mode nil)) ad-do-it))
|
||||||
(defadvice indent-according-to-mode (around smart-tabs activate)
|
(defadvice indent-according-to-mode (around smart-tabs activate)
|
||||||
@@ -146,19 +138,13 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
(use-package cmake-mode
|
(use-package cmake-mode
|
||||||
|
:hook
|
||||||
|
(cmake-mode . lsp-deferred)
|
||||||
:config
|
:config
|
||||||
(setq cmake-tab-width 4)
|
(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
|
(use-package yasnippet
|
||||||
:config
|
:config
|
||||||
(yas-global-mode)
|
(yas-global-mode)
|
||||||
@@ -180,17 +166,21 @@
|
|||||||
(projectile-mode +1)
|
(projectile-mode +1)
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package cpputils-cmake
|
(use-package flycheck
|
||||||
:config
|
:config
|
||||||
(setq cppcm-write-flymake-makefile nil)
|
(defvar-local atu/flycheck-local-cache nil)
|
||||||
:bind ( "C-c C-f" . ff-find-other-file)
|
|
||||||
)
|
|
||||||
|
|
||||||
(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 which-key)
|
||||||
|
|
||||||
(use-package lsp-mode
|
(use-package lsp-mode
|
||||||
|
:after (flycheck)
|
||||||
:config
|
:config
|
||||||
(yas-minor-mode)
|
(yas-minor-mode)
|
||||||
(global-set-key (kbd "C-c C-n") 'flycheck-next-error)
|
(global-set-key (kbd "C-c C-n") 'flycheck-next-error)
|
||||||
@@ -206,20 +196,16 @@
|
|||||||
:init
|
:init
|
||||||
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
||||||
(setq lsp-keymap-prefix "C-c l")
|
(setq lsp-keymap-prefix "C-c l")
|
||||||
(require 'lsp-ltex)
|
:hook (
|
||||||
:hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode)
|
;; 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)
|
|
||||||
;; if you want which-key integration
|
;; if you want which-key integration
|
||||||
(lsp-mode . lsp-enable-which-key-integration))
|
(lsp-mode . lsp-enable-which-key-integration))
|
||||||
|
|
||||||
|
|
||||||
:commands (lsp lsp-deferred))
|
:commands (lsp lsp-deferred))
|
||||||
|
|
||||||
(use-package lsp-ui
|
(use-package lsp-ui
|
||||||
|
:after lsp-mode
|
||||||
:config
|
:config
|
||||||
(setq lsp-ui-sideline-show-diagnostics nil)
|
(setq lsp-ui-sideline-show-diagnostics nil)
|
||||||
)
|
)
|
||||||
@@ -228,10 +214,135 @@
|
|||||||
:init
|
:init
|
||||||
(setq lsp-ltex-version "15.2.0")) ; make sure you have set this, see below
|
(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)
|
(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++
|
;; C/C++
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@@ -331,15 +442,6 @@
|
|||||||
|
|
||||||
(use-package markdown-mode)
|
(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
|
(use-package go-mode
|
||||||
:after (projectile)
|
:after (projectile)
|
||||||
:config
|
:config
|
||||||
|
|||||||
Reference in New Issue
Block a user