diff --git a/config.org b/config.org index 607d860..fb7ef3d 100644 --- a/config.org +++ b/config.org @@ -15,15 +15,12 @@ My personal emacs configuration This configuration requires the installation of : - the GNU =global= package (for gtags) - - =clang= (for ivory) - - =cmake= (for ivory) + - ccls language server (for LSP functionality) - =llvm-libs= (for cmake, somehow not a dependency on Manjaro when installing cmake) - Use python-pip to install requirements for elpy: =pip install jedi flake8 importmagic autopep8 yapf= - =ditaa= (for ascii to image generation in org-mode) -When first checking out this config, run =irony-install-server= to make and install the irony-server. - * Utils ** Custom command line arguments @@ -760,6 +757,20 @@ https://github.com/bbatsov/helm-projectile ) #+END_SRC +** Helm-mt + +Helm frontend for [[Multi-term]] +https://github.com/dfdeshom/helm-mt + +#+BEGIN_SRC emacs-lisp +(use-package helm-mt + :ensure t + :bind ("C-x t" . helm-mt) + :config + (helm-mt/reroute-terminal-functions t) +) +#+END_SRC + * Mutliple cursors https://github.com/magnars/multiple-cursors.el @@ -869,6 +880,57 @@ On-the-fly syntax checking. (add-hook 'prog-mode-hook 'company-mode) #+END_SRC +** LSP + +Just awesome IDE features: +https://github.com/MaskRay/ccls +https://github.com/MaskRay/emacs-ccls +https://github.com/emacs-lsp/lsp-mode +https://github.com/emacs-lsp/lsp-ui +https://github.com/tigersoldier/company-lsp +https://github.com/joaotavora/eglot + +#+BEGIN_SRC emacs-lisp +(defun +ccls/enable () + (condition-case nil + (lsp-ccls-enable) + (user-error nil))) + +(use-package ccls + :ensure t + :commands lsp-ccls-enable + :init + (add-hook 'c-mode-hook #'+ccls/enable) +) + +(use-package lsp-ui + :ensure t + :init (add-hook 'lsp-after-open-hook #'lsp-ui-mode) + :config + (setq lsp-ui-doc-enable t + lsp-ui-doc-header t + lsp-ui-doc-include-signature t + ;; lsp-ui-doc-position 'at-point + ) + ) + +(use-package company-lsp + :ensure t + :config + (push 'company-lsp company-backends) + (setq company-lsp-enable-recompletion t + company-lsp-enable-snippet t + company-lsp-cache-candidates t + company-lsp-async t) +) + +(use-package eglot + :ensure t + :init + (add-hook 'prog-mode-hook 'eglot-ensure) +) +#+END_SRC + ** (Relative) Line numbers #+BEGIN_SRC emacs-lisp @@ -883,56 +945,13 @@ On-the-fly syntax checking. *** Flycheck -Clang static analyzer with flycheck - -https://github.com/alexmurray/flycheck-clang-analyzer -https://github.com/Sarcasm/flycheck-irony - -#+BEGIN_SRC emacs-lisp -(use-package flycheck-clang-analyzer - :ensure t - :config - (with-eval-after-load 'flycheck - (require 'flycheck-clang-analyzer) - (flycheck-clang-analyzer-setup))) - -(use-package flycheck-irony - :ensure t - :config - (eval-after-load 'flycheck - '(add-hook 'flycheck-mode-hook #'flycheck-irony-setup)) -) -#+END_SRC +Functionality provided by LSP and flycheck combination. *** Company -https://github.com/ikirill/irony-eldoc - #+BEGIN_SRC emacs-lisp (use-package company-c-headers :ensure t) - -(use-package company-irony - :ensure t - :config - (setq company-backends '((company-c-headers -;; company-dabbrev-code ;; not sure what this is - company-irony)))) - -(use-package irony - :ensure t - :config - (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options) - (add-hook 'c++-mode-hook 'irony-mode) - (add-hook 'c-mode-hook 'irony-mode) - (add-hook 'objc-mode-hook 'irony-mode) -) - -(use-package irony-eldoc - :ensure t - :config - (add-hook 'irony-mode-hook 'irony-eldoc) -) #+END_SRC ** Python mode @@ -1190,6 +1209,20 @@ https://github.com/myrjola/diminish.el ) #+END_SRC +* Shell +** Multi-term +<> + +Manage multiple terminals. + +https://www.emacswiki.org/emacs/MultiTerm + +#+BEGIN_SRC emacs-lisp +(use-package multi-term + :ensure t +) +#+END_SRC + * Shell-pop https://github.com/kyagi/shell-pop-el @@ -1257,6 +1290,7 @@ https://github.com/Malabarba/paradox :config (paradox-enable) ) + #+END_SRC * EXWM