Replace ag with ripgrep

Add haskell mode
Make one of the themes to use light
Replace ctags with uctags
Do not force paredit in clojure mode
This commit is contained in:
Maciej 2020-07-02 15:14:17 +03:00
parent d2e4c202b0
commit a9bfdff5b0
Signed by: maciej
GPG key ID: 41D62D42D3B0D765
11 changed files with 95 additions and 11 deletions

View file

@ -26,7 +26,9 @@
(column-enforce-n 80)
(clj-refactor-mode 1)
(cider-mode 1)
(paredit-mode 1)
;; Do not enable paredit for clojure
;; (paredit-mode 1)
;; Do not show separate error window when in REPL
(setq cider-show-error-buffer 'except-in-repl))

View file

@ -66,7 +66,7 @@
(setq-local
ctags/refresh-command
(format
"ctags -e -R --languages=erlang -f %sTAGS %ssrc %sdeps %sapps %s_build %stest %slib/stdlib-* %slib/kernel-*"
"uctags -e -R --languages=erlang -f %sTAGS %ssrc %sdeps %sapps %s_build %stest %slib/stdlib-* %slib/kernel-*"
(projectile-project-root) (projectile-project-root)
(projectile-project-root) (projectile-project-root)
(projectile-project-root) (projectile-project-root)

3
languages/haskell.el Normal file
View file

@ -0,0 +1,3 @@
(use-package intero
:defer t
:ensure t)

View file

@ -7,12 +7,19 @@
:after (company flycheck)
:hook ((before-save . tide-format-before-save)))
(use-package lsp-mode
:ensure t
:defer t
:hook (typescript-mode . lsp))
;; Use js2-mode for javascript editing
(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
(add-to-list 'auto-mode-alist '("\\.jsx\\'" . js2-mode))
(add-to-list 'auto-mode-alist '("\\.json\\'" . js2-mode))
;; Use js2-mode for typescript editing
(add-to-list 'auto-mode-alist '("\\.ts\\'" . js2-mode))
(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-mode))
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-mode))
(defun activate-js2-mode ()
"JS2 mode overrides."
@ -36,3 +43,68 @@
'(company-yasnippet company-tide)))
(add-hook 'js2-mode-hook 'activate-js2-mode)
(defun activate-typescript-mode ()
(set-indent 2)
(column-enforce-n 80))
;; Magic for LSP mode
(with-eval-after-load 'lsp-mode
;; enable log only for debug
(setq lsp-log-io nil)
;; use `evil-matchit' instead
(setq lsp-enable-folding nil)
;; no real time syntax check
(setq lsp-diagnostic-package :none)
;; handle yasnippet by myself
(setq lsp-enable-snippet nil)
;; use `company-ctags' only.
;; Please note `company-lsp' is automatically enabled if installed
(setq lsp-enable-completion-at-point nil)
;; turn off for better performance
(setq lsp-enable-symbol-highlighting nil)
;; use ffip instead
(setq lsp-enable-links nil)
;; auto restart lsp
(setq lsp-restart 'auto-restart)
;; @see https://github.com/emacs-lsp/lsp-mode/pull/1498 and code related to auto configure.
;; Require clients could be slow.
;; I only load `lsp-clients' because it includes the js client which I'm interested
(setq lsp-client-packages '(lsp-clients))
;; don't scan 3rd party javascript libraries
(push "[/\\\\][^/\\\\]*\\.\\(json\\|html\\|jade\\)$" lsp-file-watch-ignored) ; json
;; don't ping LSP lanaguage server too frequently
(defvar lsp-on-touch-time 0)
(defadvice lsp-on-change (around lsp-on-change-hack activate)
;; don't run `lsp-on-change' too frequently
(when (> (- (float-time (current-time))
lsp-on-touch-time) 30) ;; 30 seconds
(setq lsp-on-touch-time (float-time (current-time)))
ad-do-it)))
(defun my-connect-lsp (&optional no-reconnect)
"Connect lsp server. If NO-RECONNECT is t, don't shutdown existing lsp connection."
(interactive "P")
(when (and (not no-reconnect)
(fboundp 'lsp-disconnect))
(lsp-disconnect))
(when (and buffer-file-name
(not (member (file-name-extension buffer-file-name)
'("json"))))
(unless (and (boundp 'lsp-mode) lsp-mode)
(if (derived-mode-p 'js2-mode) (setq-local lsp-enable-imenu nil))
(lsp-deferred))))
(add-hook 'typescript-mode 'activate-typescript-mode)
(add-hook 'typescript-mode 'my-connect-lsp)

View file

@ -29,7 +29,7 @@
;; Set specific ctags command
(setq-local ctags/refresh-command
(format "ctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)"
(format "uctags -e -R --languages=ruby -f %sTAGS %s. $(bundle list --paths)"
(projectile-project-root) (projectile-project-root))))
(add-hook 'ruby-mode-hook 'enh-ruby-mode)

View file

@ -3,6 +3,7 @@
;; Eex Web mode
(add-to-list 'auto-mode-alist '("\\.eex\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.leex\\'" . web-mode))
;; ERB mode
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
@ -18,6 +19,7 @@
(setq web-mode-extra-auto-pairs
'(("eex" . (("<%" "%>")))
("leex" . (("<%" "%>")))
("erb" . (("<%" "%>")
("beg" "end")))))