summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbenj <benj@rse8.com>2018-12-23 23:59:20 -0800
committerbenj <benj@rse8.com>2018-12-23 23:59:20 -0800
commit969df3eb75d9785364333957fa0311d991d82144 (patch)
tree27e4701c5a721f5ae147cbd1e379d0a038f64ed0
parentbc1e86d1c863a3846ec4fea02be213ddb3622b2f (diff)
downloademacs-969df3eb75d9785364333957fa0311d991d82144.tar
emacs-969df3eb75d9785364333957fa0311d991d82144.tar.gz
emacs-969df3eb75d9785364333957fa0311d991d82144.tar.bz2
emacs-969df3eb75d9785364333957fa0311d991d82144.tar.lz
emacs-969df3eb75d9785364333957fa0311d991d82144.tar.xz
emacs-969df3eb75d9785364333957fa0311d991d82144.tar.zst
emacs-969df3eb75d9785364333957fa0311d991d82144.zip
basic lsp setup for c/c++ with company-lsp
Diffstat (limited to '')
-rw-r--r--init.el14
-rw-r--r--settings/setup-company-mode.el2
-rw-r--r--settings/setup-lisp-mode.el1
-rw-r--r--settings/setup-lsp-mode.el13
4 files changed, 26 insertions, 4 deletions
diff --git a/init.el b/init.el
index 5e73a7d..e41e943 100644
--- a/init.el
+++ b/init.el
@@ -24,11 +24,14 @@
;;; Code:
;; Suppress splash screen
+;; Are we on a mac?
+(setq is-mac (equal system-type 'darwin))
+
;; Added by Package.el. This must come before configurations of
;; installed packages. Don't delete this line. If you don't want it,
;; just comment it out by adding a semicolon to the start of the line.
;; You may delete these explanatory comments.
-(package-initialize)
+;;(package-initialize)
(setq inhibit-startup-message t)
@@ -42,9 +45,6 @@
`(("." . ,(expand-file-name
(concat user-emacs-directory "backups")))))
-;; Are we on a mac?
-(setq is-mac (equal system-type 'darwin))
-
(defun init-install-packages()
(packages-install
'(ace-window
@@ -52,10 +52,12 @@
company
company-c-headers
company-glsl
+ company-lsp
clojure-mode
clojure-mode-extra-font-locking
clojure-snippets
cmake-mode
+ cquery
dash
dockerfile-mode
elm-mode
@@ -63,6 +65,7 @@
ensime
flx-ido
flycheck
+ flycheck-clangcheck
flycheck-clojure
flycheck-haskell
flycheck-pos-tip
@@ -70,6 +73,8 @@
highlight-escape-sequences
ido-vertical-mode
json
+ lsp-mode
+ lsp-ui
magit
markdown-mode
modern-cpp-font-lock
@@ -129,6 +134,7 @@
(require 'setup-ido)
(require 'setup-keychain-environment)
(require 'setup-lisp-mode)
+(require 'setup-lsp-mode)
(require 'setup-magit)
(require 'setup-markdown-mode)
(require 'setup-multiple-cursors)
diff --git a/settings/setup-company-mode.el b/settings/setup-company-mode.el
index 311496c..61ee053 100644
--- a/settings/setup-company-mode.el
+++ b/settings/setup-company-mode.el
@@ -6,6 +6,7 @@
;;; Code:
(require 'company)
+(require 'company-lsp)
;; When working with a larger project, until a parser is written
;; for compile_commands.json DB, you can add the headers to
@@ -15,6 +16,7 @@
(setq company-idle-delay 0.1)
(setq company-clang-executable "/usr/bin/clang++")
+(push 'company-lsp company-backends)
(add-hook 'after-init-hook 'global-company-mode)
(provide 'setup-company-mode)
diff --git a/settings/setup-lisp-mode.el b/settings/setup-lisp-mode.el
index c014d17..6f8cdcb 100644
--- a/settings/setup-lisp-mode.el
+++ b/settings/setup-lisp-mode.el
@@ -25,6 +25,7 @@
;;; Code:
(add-hook 'lisp-mode-hook 'enable-paredit-mode)
+(add-hook 'emacs-lisp-mode-hook 'enable-paredit-mode)
(slime-mode)
diff --git a/settings/setup-lsp-mode.el b/settings/setup-lsp-mode.el
new file mode 100644
index 0000000..d6f1189
--- /dev/null
+++ b/settings/setup-lsp-mode.el
@@ -0,0 +1,13 @@
+;;; setup-lsp-mode.el --- lsp setup -*- lexical-binding: t; -*-
+(require 'lsp-mode)
+(require 'cquery)
+
+(setq cquery-executable "/usr/local/bin/cquery")
+
+(add-hook 'c-mode-hook #'lsp)
+(add-hook 'c++-mode-hook #'lsp)
+
+(add-hook 'lsp-after-open-hook 'lsp-ui-mode)
+
+(provide 'setup-lsp-mode)
+;;; setup-lsp-mode.el ends here