Updates emacs with lsp and other nice features

This commit is contained in:
2022-09-23 12:59:17 +02:00
parent 9fcb8bffa5
commit 879c9e64e5

80
.emacs
View File

@@ -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)
) )