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

@ -9,7 +9,7 @@
ivy-count-format "(%d of %d) " ;; Current candidate count style ivy-count-format "(%d of %d) " ;; Current candidate count style
ivy-display-style 'fancy)) ;; Formatting style ivy-display-style 'fancy)) ;; Formatting style
(global-set-key (kbd "C-c a") 'counsel-ag) (global-set-key (kbd "C-c a") 'counsel-rg)
(global-set-key (kbd "C-c t") 'counsel-find-file) (global-set-key (kbd "C-c t") 'counsel-find-file)
(global-set-key (kbd "C-c C-s") 'swiper) ;; Find things by regexp (global-set-key (kbd "C-c C-s") 'swiper) ;; Find things by regexp
(global-set-key (kbd "M-x") 'counsel-M-x) ;; M-x on steroids (global-set-key (kbd "M-x") 'counsel-M-x) ;; M-x on steroids

View file

@ -15,13 +15,13 @@ _d_: Deft _c_: Invalidate cache
" "
("q" nil "cancel" :color blue) ("q" nil "cancel" :color blue)
("a" counsel-ag) ("a" counsel-rg)
("b" ibuffer) ("b" ibuffer)
("t" counsel-find-file) ("t" counsel-find-file)
("d" deft) ("d" deft)
("s" counsel-projectile-switch-project) ("s" counsel-projectile-switch-project)
("f" counsel-projectile-find-file) ("f" counsel-projectile-find-file)
("g" counsel-projectile-ag) ("g" counsel-projectile-rg)
("c" projectile-invalidate-cache) ("c" projectile-invalidate-cache)
("n" projectile-add-known-project) ("n" projectile-add-known-project)
("i" ielm) ("i" ielm)

View file

@ -3,7 +3,7 @@
(setq tags-add-tables nil) (setq tags-add-tables nil)
(setq ctags/refresh-command (setq ctags/refresh-command
(format "ctags -e -R -f %sTAGS %s." (format "uctags -e -R -f %sTAGS %s."
default-directory default-directory)) default-directory default-directory))
;; Sentinel function for capturing ctags ;; Sentinel function for capturing ctags

View file

@ -79,6 +79,7 @@
(load "$HOME/.emacs.d/languages/kotlin.el" 'f 't) (load "$HOME/.emacs.d/languages/kotlin.el" 'f 't)
(load "$HOME/.emacs.d/languages/reason.el" 'f 't) (load "$HOME/.emacs.d/languages/reason.el" 'f 't)
(load "$HOME/.emacs.d/languages/markdown.el" 'f 't) (load "$HOME/.emacs.d/languages/markdown.el" 'f 't)
;; (load "$HOME/.emacs.d/languages/haskell.el" 'f 't)
(custom-set-variables (custom-set-variables
;; custom-set-variables was added by Custom. ;; custom-set-variables was added by Custom.
@ -87,10 +88,14 @@
;; If there is more than one, they won't work right. ;; If there is more than one, they won't work right.
'(custom-safe-themes '(custom-safe-themes
(quote (quote
("60e09d2e58343186a59d9ed52a9b13d822a174b33f20bdc1d4abb86e6b17f45b" "85e6bb2425cbfeed2f2b367246ad11a62fb0f6d525c157038a0d0eaaabc1bfee" "3380a2766cf0590d50d6366c5a91e976bdc3c413df963a0ab9952314b4577299" "cea3ec09c821b7eaf235882e6555c3ffa2fd23de92459751e18f26ad035d2142" "8ffdc8c66ceeaf7921f4510a70d808f01b303e6b4d177c947b442e80d4228678" "b0c5c6cc59d530d3f6fbcfa67801993669ce062dda1435014f74cafac7d86246" "ad16a1bf1fd86bfbedae4b32c269b19f8d20d416bd52a87cd50e355bf13c2f23" "d9dab332207600e49400d798ed05f38372ec32132b3f7d2ba697e59088021555" "bc4c89a7b91cfbd3e28b2a8e9e6750079a985237b960384f158515d32c7f0490" "99c86852decaeb0c6f51ce8bd46e4906a4f28ab4c5b201bdc3fdf85b24f88518" "a85e40c7d2df4a5e993742929dfd903899b66a667547f740872797198778d7b5" default))) ("1f38fb71e55e5ec5f14a39d03ca7d7a416123d3f0847745c7bade053ca58f043" "fec45178b55ad0258c5f68f61c9c8fd1a47d73b08fb7a51c15558d42c376083d" "60e09d2e58343186a59d9ed52a9b13d822a174b33f20bdc1d4abb86e6b17f45b" "85e6bb2425cbfeed2f2b367246ad11a62fb0f6d525c157038a0d0eaaabc1bfee" "3380a2766cf0590d50d6366c5a91e976bdc3c413df963a0ab9952314b4577299" "cea3ec09c821b7eaf235882e6555c3ffa2fd23de92459751e18f26ad035d2142" "8ffdc8c66ceeaf7921f4510a70d808f01b303e6b4d177c947b442e80d4228678" "b0c5c6cc59d530d3f6fbcfa67801993669ce062dda1435014f74cafac7d86246" "ad16a1bf1fd86bfbedae4b32c269b19f8d20d416bd52a87cd50e355bf13c2f23" "d9dab332207600e49400d798ed05f38372ec32132b3f7d2ba697e59088021555" "bc4c89a7b91cfbd3e28b2a8e9e6750079a985237b960384f158515d32c7f0490" "99c86852decaeb0c6f51ce8bd46e4906a4f28ab4c5b201bdc3fdf85b24f88518" "a85e40c7d2df4a5e993742929dfd903899b66a667547f740872797198778d7b5" default)))
'(package-selected-packages '(package-selected-packages
(quote (quote
(merlin reason-mode elm-mode deft buffer-move tide gradle-mode kotlin-mode clj-refactor planet-theme cider clojure-mode erlang rspec-mode dap-mode lsp-ui lsp-mode nginx-mode gitignore-mode js2-mode keyfreq visual-regexp enh-ruby-mode counsel-projectile counsel ivy flycheck-rust flycheck hydra solarized-theme company-ansible alchemist column-enforce-mode yaml-mode ansible dockerfile-mode ruby-end dash-at-point base16-theme exec-path-from-shell)))) (slim-mode company-lsp lsp tuareg intero merlin reason-mode elm-mode deft buffer-move tide gradle-mode kotlin-mode clj-refactor planet-theme cider clojure-mode erlang rspec-mode dap-mode lsp-ui lsp-mode nginx-mode gitignore-mode js2-mode keyfreq visual-regexp enh-ruby-mode counsel-projectile counsel ivy flycheck-rust flycheck hydra solarized-theme company-ansible alchemist column-enforce-mode yaml-mode ansible dockerfile-mode ruby-end dash-at-point base16-theme exec-path-from-shell)))
'(safe-local-variable-values
(quote
((haskell-process-use-ghci . t)
(haskell-indent-spaces . 4)))))
;; Improve font settings in Markdown code ;; Improve font settings in Markdown code
(custom-set-faces (custom-set-faces

View file

@ -26,7 +26,9 @@
(column-enforce-n 80) (column-enforce-n 80)
(clj-refactor-mode 1) (clj-refactor-mode 1)
(cider-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 ;; Do not show separate error window when in REPL
(setq cider-show-error-buffer 'except-in-repl)) (setq cider-show-error-buffer 'except-in-repl))

View file

@ -66,7 +66,7 @@
(setq-local (setq-local
ctags/refresh-command ctags/refresh-command
(format (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) (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) :after (company flycheck)
:hook ((before-save . tide-format-before-save))) :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 ;; Use js2-mode for javascript editing
(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode)) (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)) (add-to-list 'auto-mode-alist '("\\.json\\'" . js2-mode))
;; Use js2-mode for typescript editing ;; 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 () (defun activate-js2-mode ()
"JS2 mode overrides." "JS2 mode overrides."
@ -36,3 +43,68 @@
'(company-yasnippet company-tide))) '(company-yasnippet company-tide)))
(add-hook 'js2-mode-hook 'activate-js2-mode) (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 ;; Set specific ctags command
(setq-local ctags/refresh-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)))) (projectile-project-root) (projectile-project-root))))
(add-hook 'ruby-mode-hook 'enh-ruby-mode) (add-hook 'ruby-mode-hook 'enh-ruby-mode)

View file

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

View file

@ -30,7 +30,7 @@
(sml/apply-theme 'respectful) (sml/apply-theme 'respectful)
(enable-theme (nth (enable-theme (nth
(random 2) (random 2)
'(base16-zenburn-modified base16-material-palenight)))) '(base16-zenburn-modified base16-atelier-forest-light))))
(progn (progn
(enable-theme 'base16-mexico-light) (enable-theme 'base16-mexico-light)
(setq base16-theme-256-color-source "base16-shell"))) (setq base16-theme-256-color-source "base16-shell")))