Updates emacs with lsp and other nice features
This commit is contained in:
80
.emacs
80
.emacs
@@ -26,7 +26,7 @@
|
|||||||
("melpa" . "https://melpa.org/packages/")))
|
("melpa" . "https://melpa.org/packages/")))
|
||||||
'(package-enable-at-startup nil)
|
'(package-enable-at-startup nil)
|
||||||
'(package-selected-packages
|
'(package-selected-packages
|
||||||
'(zenburn-theme langtool smart-tabs-mode typescript-mode protobuf-mode opencl-mode glsl-mode go-mode elpy markdown-mode yasnippet srefactor irony cmake-mode company magit use-package))
|
'(flymake-go company-go zenburn-theme langtool smart-tabs-mode typescript-mode protobuf-mode opencl-mode glsl-mode go-mode elpy markdown-mode yasnippet srefactor irony cmake-mode company magit use-package))
|
||||||
'(safe-local-variable-values
|
'(safe-local-variable-values
|
||||||
'((vc-follow-symlinks . t)
|
'((vc-follow-symlinks . t)
|
||||||
(TeX-master . t)
|
(TeX-master . t)
|
||||||
@@ -142,24 +142,6 @@
|
|||||||
(setq cmake-tab-width 4)
|
(setq cmake-tab-width 4)
|
||||||
)
|
)
|
||||||
|
|
||||||
(use-package company-irony
|
|
||||||
:after (company irony)
|
|
||||||
; :config
|
|
||||||
; (add-to-list 'company-backends 'company-irony)
|
|
||||||
)
|
|
||||||
|
|
||||||
(use-package company-irony-c-headers
|
|
||||||
:after (company irony)
|
|
||||||
; :config
|
|
||||||
; (add-to-list 'company-backends 'company-irony-c-headers)
|
|
||||||
)
|
|
||||||
|
|
||||||
(use-package irony
|
|
||||||
:config
|
|
||||||
(push 'glsl-mode irony-supported-major-modes)
|
|
||||||
(push 'protobuf-mode irony-supported-major-modes)
|
|
||||||
(push 'opencl-mode irony-supported-major-modes)
|
|
||||||
)
|
|
||||||
|
|
||||||
(use-package srefactor
|
(use-package srefactor
|
||||||
:bind (:map c-mode-map
|
:bind (:map c-mode-map
|
||||||
@@ -182,21 +164,38 @@
|
|||||||
:after (yasnippet)
|
:after (yasnippet)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(use-package projectile
|
||||||
|
:bind ( :map projectile-mode-map
|
||||||
|
( "C-c p" . 'projectile-command-map)
|
||||||
|
)
|
||||||
|
:config
|
||||||
|
(projectile-mode +1)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package cpputils-cmake
|
||||||
|
:config
|
||||||
|
(setq cppcm-write-flymake-makefile nil)
|
||||||
|
:bind ( "C-c C-f" . ff-find-other-file)
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package lsp-mode
|
||||||
|
:init
|
||||||
|
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l")
|
||||||
|
(setq lsp-keymap-prefix "C-c l")
|
||||||
|
:hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode)
|
||||||
|
(c++-mode . lsp-deferred)
|
||||||
|
(c-mode . lsp-deferred)
|
||||||
|
(cmake-mode . lsp-deferred)
|
||||||
|
(go-mode . lsp-deferred)
|
||||||
|
;; if you want which-key integration
|
||||||
|
(lsp-mode . lsp-enable-which-key-integration))
|
||||||
|
:commands (lsp lsp-deferred))
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; C/C++
|
;; C/C++
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(defun c-c++-header ()
|
|
||||||
"sets either c-mode or c++-mode, whichever is appropriate for
|
|
||||||
header"
|
|
||||||
(interactive)
|
|
||||||
(let ((c-file (concat (substring (buffer-file-name) 0 -1) "c")))
|
|
||||||
(if (file-exists-p c-file)
|
|
||||||
(c-mode)
|
|
||||||
(c++-mode)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.h\\'" . c-c++-header))
|
(add-to-list 'auto-mode-alist '("\\.h\\'" . c-c++-header))
|
||||||
|
|
||||||
(defconst tuleu-cc-style
|
(defconst tuleu-cc-style
|
||||||
@@ -207,23 +206,14 @@ header"
|
|||||||
(c-add-style "tuleu-c++" tuleu-cc-style)
|
(c-add-style "tuleu-c++" tuleu-cc-style)
|
||||||
|
|
||||||
(defun my-c-common-hook ()
|
(defun my-c-common-hook ()
|
||||||
(global-set-key (kbd "C-c C-h") 'ff-find-other-file)
|
|
||||||
(require 'compile)
|
|
||||||
(global-set-key (kbd "C-x f") 'find-file-at-point)
|
|
||||||
(c-set-offset 'inextern-lang 0)
|
|
||||||
(eval-after-load 'company
|
|
||||||
'(add-to-list
|
|
||||||
'company-backends
|
|
||||||
'(company-irony company-irony-c-headers company-yasnippet)))
|
|
||||||
(smart-tabs-mode)
|
(smart-tabs-mode)
|
||||||
(irony-mode)
|
|
||||||
(yas-minor-mode-on)
|
(yas-minor-mode-on)
|
||||||
(company-irony-setup-begin-commands)
|
(if (derived-mode-p 'c-mode 'c++-mode)
|
||||||
(irony-cdb-autosetup-compile-options)
|
(cppcm-reload-all)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
(add-hook 'c-mode-common-hook 'my-c-common-hook)
|
(add-hook 'c-mode-common-hook 'my-c-common-hook)
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; TeX/LaTeX
|
;; TeX/LaTeX
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@@ -313,12 +303,8 @@ header"
|
|||||||
|
|
||||||
(use-package go-mode
|
(use-package go-mode
|
||||||
:config
|
:config
|
||||||
(use-package company-go)
|
|
||||||
(use-package flymake-go)
|
|
||||||
(setq gofmt-command "goimports")
|
(setq gofmt-command "goimports")
|
||||||
(add-hook 'before-save-hook 'gofmt-before-save)
|
(add-hook 'before-save-hook 'gofmt-before-save)
|
||||||
(set (make-local-variable 'company-backends) '(company-go))
|
|
||||||
(flymake-mode)
|
|
||||||
(setq compile-command "go build && go test -coverprofile=cover.out && go tool cover -html cover.out -o /tmp/cover.html")
|
(setq compile-command "go build && go test -coverprofile=cover.out && go tool cover -html cover.out -o /tmp/cover.html")
|
||||||
:bind (
|
:bind (
|
||||||
("C-c C-h" . godef-describe)
|
("C-c C-h" . godef-describe)
|
||||||
@@ -340,7 +326,7 @@ header"
|
|||||||
'((c-basic-offset . 4)
|
'((c-basic-offset . 4)
|
||||||
(indent-tabs-mode . t))
|
(indent-tabs-mode . t))
|
||||||
)
|
)
|
||||||
(c-add-style "my-style" my-protobuf-style t)
|
;; (c-add-style "my-style" my-protobuf-style t)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user