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:
parent
d2e4c202b0
commit
a9bfdff5b0
11 changed files with 95 additions and 11 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue