Skip to content

Instantly share code, notes, and snippets.

@505aaron
Created December 31, 2018 20:40
Show Gist options
  • Save 505aaron/f98832bed22a5dec7c678c106ba70133 to your computer and use it in GitHub Desktop.
Save 505aaron/f98832bed22a5dec7c678c106ba70133 to your computer and use it in GitHub Desktop.
LSP Doom Emacs Module
;;; completion/lsp/config.el -*- lexical-binding: t; -*-
(def-package! lsp-mode
:commands (lsp-mode lsp-define-stdio-client))
(def-package! lsp-ui
:hook (lsp-mode . lsp-ui-mode)
:config
(set-lookup-handlers! 'lsp-ui-mode
:definition #'lsp-ui-peek-find-definitions
:references #'lsp-ui-peek-find-references)
(setq lsp-ui-doc-max-height 16
lsp-ui-doc-max-width 50
lsp-ui-sideline-ignore-duplicate t))
(def-package! dap-mode
:after lsp-mode
:config
(dap-mode t)
(dap-ui-mode t))
(def-package! lsp-typescript
:when (featurep! +javascript)
:hook ((js2-mode typescript-mode) . lsp-typescript-enable))
(def-package! company-lsp
:after lsp-mode
:config
(set-company-backend! 'lsp-mode 'company-lsp)
(setq company-lsp-enable-recompletion t))
(def-package! lsp-css
:when (featurep! +css)
:hook ((css-mode less-mode scss-mode) . lsp-css-enable))
(def-package! lsp-java
:when (featurep! +java))
(def-package! dap-java
:after lsp-java)
(when (featurep! +sh)
(after! sh-script
(lsp-define-stdio-client lsp-sh
"sh"
#'projectile-project-root
'("bash-language-server" "start"))
(add-hook 'sh-mode-hook #'lsp-sh-enable)))
(when (featurep! +java)
(after! cc-mode
(add-hook! java-mode #'lsp))
;; TODO This doesn't auto configure treemacs and java lsp. I currently have to manually invoke this function.
(after! treemacs
(use-package lsp-java-treemacs)))
;; -*- no-byte-compile: t; -*-
;;; completion/lsp/packages.el
(when (package! lsp-mode)
(package! lsp-ui)
(package! company-lsp)
(package! dap-mode)
(when (featurep! +javascript)
(package! lsp-typescript
:recipe (:fetcher
github
:repo "emacs-lsp/lsp-javascript"
:files ("lsp-typescript.el")))
(package! tide :disable t))
(when (featurep! +css)
(package! lsp-css
:recipe (:fetcher
github
:repo "emacs-lsp/lsp-css")))
(when (featurep! +ocaml)
(package! lsp-ocaml))
(when (featurep! +java)
(packages! lsp-java))
(when (featurep! +sh)
(package! company-shell :disable t)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment