Compare commits

...
Sign in to create a new pull request.

10 commits

Author SHA1 Message Date
Laurens Miers
6c169b230e Re-add helm-mt 2019-05-09 17:23:48 +02:00
Laurens Miers
5792beb9ee Remove helm-mt for now 2019-05-09 17:18:06 +02:00
Laurens Miers
71b5e34a9e Add Multi-term and Helm-mt 2019-05-09 16:53:50 +02:00
laurensmiers
593de2293d ensure eglot package + add prog-mode-hook
- TODO: don't add it to prog-mode-hook, add it to c-mode-hook and
  others supporting LSP
2019-04-24 19:30:43 +02:00
laurensmiers
5559316d09 Ensure ccls package is installed 2019-04-24 19:30:43 +02:00
laurensmiers
e411693eb0 Enable ccls for c-mode 2019-04-24 19:30:43 +02:00
laurensmiers
348b36dafd Cleanup 2019-04-24 19:30:43 +02:00
laurensmiers
57c0927448 working lsp with cquery 2019-04-24 19:28:44 +02:00
laurensmiers
fb94a22ec9 working lsp with clangd 2019-04-24 19:28:44 +02:00
laurensmiers
6e2fb64ec8 lsp-experiment:
- call lsp-clangd-enable + flycheck-mode to have IDE like stuff
2019-04-24 19:28:44 +02:00

View file

@ -15,15 +15,12 @@ My personal emacs configuration
This configuration requires the installation of : This configuration requires the installation of :
- the GNU =global= package (for gtags) - the GNU =global= package (for gtags)
- =clang= (for ivory) - ccls language server (for LSP functionality)
- =cmake= (for ivory)
- =llvm-libs= (for cmake, somehow not a dependency on Manjaro when installing cmake) - =llvm-libs= (for cmake, somehow not a dependency on Manjaro when installing cmake)
- Use python-pip to install requirements for elpy: - Use python-pip to install requirements for elpy:
=pip install jedi flake8 importmagic autopep8 yapf= =pip install jedi flake8 importmagic autopep8 yapf=
- =ditaa= (for ascii to image generation in org-mode) - =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 * Utils
** Custom command line arguments ** Custom command line arguments
@ -760,6 +757,20 @@ https://github.com/bbatsov/helm-projectile
) )
#+END_SRC #+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 * Mutliple cursors
https://github.com/magnars/multiple-cursors.el https://github.com/magnars/multiple-cursors.el
@ -869,6 +880,57 @@ On-the-fly syntax checking.
(add-hook 'prog-mode-hook 'company-mode) (add-hook 'prog-mode-hook 'company-mode)
#+END_SRC #+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 ** (Relative) Line numbers
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
@ -883,56 +945,13 @@ On-the-fly syntax checking.
*** Flycheck *** Flycheck
Clang static analyzer with flycheck Functionality provided by LSP and flycheck combination.
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
*** Company *** Company
https://github.com/ikirill/irony-eldoc
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package company-c-headers (use-package company-c-headers
:ensure t) :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 #+END_SRC
** Python mode ** Python mode
@ -1190,6 +1209,20 @@ https://github.com/myrjola/diminish.el
) )
#+END_SRC #+END_SRC
* Shell
** Multi-term
<<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 * Shell-pop
https://github.com/kyagi/shell-pop-el https://github.com/kyagi/shell-pop-el
@ -1257,6 +1290,7 @@ https://github.com/Malabarba/paradox
:config :config
(paradox-enable) (paradox-enable)
) )
#+END_SRC #+END_SRC
* EXWM * EXWM