* python ** init #+begin_src emacs-lisp (require 'use-package) #+end_src ** tree-sitter #+begin_src emacs-lisp (add-hook 'python-mode-hook #'tree-sitter-mode +1) (add-hook 'python-mode-hook #'tree-sitter-hl-mode +1) #+end_src ** LINT #+begin_src emacs-lisp (use-package flycheck :ensure t :init (global-flycheck-mode) :config (setq-default flycheck-disabled-checkers '(lsp)) (setq flycheck-python-flake8-executable "flake8") (setq flycheck-python-pylint-executable "pylint") ;; (flycheck-add-next-checker 'python-flake8 'python-pylint) ) #+end_src ** приоритетный линтер #+begin_src emacs-lisp (defun my/projectile-set-flycheck-checker () (when (projectile-project-p) (setq-local flycheck-checker 'python-pyright))) ;; замените на нужный (add-hook 'python-mode-hook #'my/projectile-set-flycheck-checker) #+end_src #+begin_src emacs-lisp (use-package python :hook (python-mode . (lambda () (flycheck-mode) ))) #+end_src ** lsp elpy #+begin_src emacs-lisp ;; (use-package elpy ;; :ensure t ;; :init ;; (elpy-enable)) ;; (add-hook 'elpy-mode-hook (lambda () (highlight-indentation-mode -1))) (use-package lsp-mode :ensure t :hook (python-mode . lsp) :commands lsp) (use-package lsp-pyright :ensure t :after lsp-mode :hook (python-mode . (lambda () (require 'lsp-pyright) ))) #+end_src * Cheat sheet ** elpy Search the buffer for a list of definitions of classes and functions. C-c C-o (elpy-occur-definitions)