(push (concat user-emacs-directory "cnf/lang") load-path) (push '("\\.py\\'" . (lambda () (require 'l-python) (python-mode))) auto-mode-alist) ;; LSP: language server in emacs ;; Currently I switched over to eglot ;; Pro/Contra eglot vs. lsp-mode ;; Pros: ;; - Eglot is part of Emacs core since 29 ;; - Eglot seems to be a bit faster/leaner (There's `emacs-lsp-booster` for lsp-mode) ;; Cons: ;; - Eglot does not support multiple LSP servers **per buffer** (e.g. jedi + ruffe, html + js + tailwind) ;; (There is a multiplexer for Eglot `lspx`) ;; - Eglot does no support smth. like DAP mode ;; Keybindings ;; (general-def :states '(normal visual) :keymaps 'eglot-mode-map ;; "SPC =" 'eglot-format ;; "=" 'eglot-format) ;; LSP-MODE (straight-use-package 'lsp-mode) ;; COMPANY: autocompletion (straight-use-package 'company) (setq company-idle-delay 0.0 company-tooltip-limit 5 company-minimum-prefix-length 1 company-echo-delay 0 company-auto-complete nil) (add-hook 'prog-mode-hook 'company-mode) (straight-use-package 'lsp-mode) ;; Keybindings (defun my/keymap-company () (interactive) (general-def :keymaps 'company-active-map "" 'company-complete-selection "" nil "RET" nil)) (general-def :states '(normal insert) :keymaps 'company-mode-map "C-" 'company-search-candidates "C-." 'company-search-candidates) (add-hook 'company-mode-hook 'my/keymap-company) (provide 'programming)