diff --git a/.emacs b/.emacs index 8bc5b5d..50bf057 100644 --- a/.emacs +++ b/.emacs @@ -26,7 +26,7 @@ ("melpa" . "https://melpa.org/packages/"))) '(package-enable-at-startup nil) '(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 '((vc-follow-symlinks . t) (TeX-master . t) @@ -142,24 +142,6 @@ (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 :bind (:map c-mode-map @@ -182,21 +164,38 @@ :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++ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(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)) (defconst tuleu-cc-style @@ -207,23 +206,14 @@ header" (c-add-style "tuleu-c++" tuleu-cc-style) (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) - (irony-mode) (yas-minor-mode-on) - (company-irony-setup-begin-commands) - (irony-cdb-autosetup-compile-options) + (if (derived-mode-p 'c-mode 'c++-mode) + (cppcm-reload-all) + ) ) (add-hook 'c-mode-common-hook 'my-c-common-hook) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; TeX/LaTeX ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -313,12 +303,8 @@ header" (use-package go-mode :config - (use-package company-go) - (use-package flymake-go) (setq gofmt-command "goimports") (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") :bind ( ("C-c C-h" . godef-describe) @@ -340,7 +326,7 @@ header" '((c-basic-offset . 4) (indent-tabs-mode . t)) ) - (c-add-style "my-style" my-protobuf-style t) + ;; (c-add-style "my-style" my-protobuf-style t) )