Skip to content
Snippets Groups Projects
prog-common.el 1.71 KiB
Newer Older
;; prog-lsp.el --- init-file for emacs language server protocol
;;; Commentary:
;;

;;; Code:
;;;
MoScribe's avatar
MoScribe committed

;;; Language server protocol
MoScriber's avatar
MoScriber committed
 ;; Use nox as client.
 ((eq 'nox user/lsp-client)
  (use-package nox
    :load-path "lisp/nox"
    :config
    (add-to-list 'nox-server-programs
		 `(python-mode . ("pyls" "-v" "--tcp" "--host"
				  "localhost" "--port" :autoport)))
MoScriber's avatar
MoScriber committed
    (add-to-list 'nox-server-programs
		 `((c++-mode c-mode) . ("clangd")))
    (dolist (hook (list
		   'python-mode-hook
		   'c-mode-hook
		   'c-mode-common-hook
		   'c++-mode-hook
		   'haskell-mode-hook))
      (add-hook hook '(lambda () (nox-ensure)))))
  )
MoScriber's avatar
MoScriber committed

 ;; Use lsp-mode as client
 ((eq 'lsp-mode user/lsp-client)
  (use-package lsp-mode
    :ensure t
    :init
    (setq lsp-keymap-prefix "C-c l")
    :hook (
	   (c-mode . lsp-deferred)
	   (c++-mode . lsp-deferred)
	   (python-mode . lsp-deferred)
	   (lsp-mode . lsp-enable-which-key-integration)
	   )
    :config
    (setq lsp-enable-snippet nil)
MoScriber's avatar
MoScriber committed
    (setq lsp-modeline-diagnostics-enable nil)
    :commands (lsp lsp-deferred)
    )
  ))

(use-package lsp-ui
  :ensure t
  :config
  (setq lsp-ui-doc-enable nil)
  :commands lsp-ui-mode)
MoScriber's avatar
MoScriber committed

(use-package lsp-ivy
  :ensure t
  :commands lsp-ivy-workspace-symbol)

(use-package dap-mode
MoScribe's avatar
MoScribe committed
  :after (lsp-mode)
MoScribe's avatar
MoScribe committed
;;; Flycheck
(use-package flycheck-mode
  :ensure flycheck
MoScribe's avatar
MoScribe committed
  :defer t
  :init
  (progn
    (setq flycheck-standard-error-navigation nil
	  flycheck-global-modes nil))
  :bind
  (("C-c e b" . 'flycheck-buffer)
   ("C-c e c" . 'flycheck-clear)
   ("C-c e h" . 'flycheck-describe-checker)
   ("C-c e s" . 'flycheck-select-checker)
   ("C-c e x" . 'flycheck-explain-error-at-point))
MoScribe's avatar
MoScribe committed
  :hook prog-mode)

(provide 'prog-common)
;;; prog-common.el ends here