From 8dba697a2c9e3b5c9f0fcb45e155adb6243ad609 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Wed, 22 Dec 2021 07:39:02 +0000
Subject: [PATCH] Help flycheck find project root
---
config.org | 75 ++++++++++++++++++++++++-------------
1 files changed, 49 insertions(+), 26 deletions(-)
diff --git a/config.org b/config.org
index 54db705..ed49c9e 100644
--- a/config.org
+++ b/config.org
@@ -685,9 +685,14 @@
Remote editing mode.
Hate having to re-input passwords.
#+BEGIN_SRC emacs-lisp
- (when (eq system-type 'windows-nt)
- (setq tramp-default-method "pscp"))
- (setq password-cache-expiry nil)
+ (use-package tramp
+ :ensure t
+ :pin gnu
+ :config
+ ;; (setq tramp-default-method "ssh")
+ (when (eq system-type 'windows-nt)
+ (setq tramp-default-method "pscp"))
+ (setq password-cache-expiry nil))
#+END_SRC
** COMMENT Y or N instead of yes or no
@@ -791,7 +796,6 @@
:config
(flycheck-pos-tip-mode))
#+END_SRC
-
** Company
Company is auto-complete for Emacs.
Uses various backends, more of which are added later.
@@ -808,11 +812,12 @@
** LSP Mode
Use LSP for completion suggestions.
Causes too much memory usage, need to debug.
+Need to generate ~compile_flags~ for c/c++, can use ~bear~ but may need other tools.
#+BEGIN_SRC emacs-lisp
(use-package lsp-mode
:ensure t
:hook (((c-mode
- cpp-mode
+ c++-mode
tex-mode
latex-mode
TeX-mode
@@ -830,11 +835,11 @@
(setq lsp-completion-provider :capf)
(setq lsp-keep-workspace-alive 'nil)
(add-to-list 'exec-path "~/.cargo/bin"))
-
+
(use-package lsp-ui
:ensure t
:commands lsp-ui-mode)
-
+
(use-package helm-lsp
:ensure t
:commands helm-lsp-workspace-symbol)
@@ -955,7 +960,8 @@
** Language specific configs
*** C/C++
-**** Flycheck clang
+**** Flycheck
+***** Flycheck clang
Add the clang backend for linting.
#+BEGIN_SRC emacs-lisp
(use-package flycheck-clang-analyzer
@@ -966,8 +972,25 @@
(require 'flycheck-clang-analyzer)
(flycheck-clang-analyzer-setup)))
#+END_SRC
+***** Flycheck project root
+Flycheck tends to fail finding the project root, giving errors about missing files.
+This should remove them.
+#+BEGIN_SRC emacs-lisp
+ (defun setup-flycheck-project-path ()
+ (let ((root (ignore-errors (projectile-project-root))))
+ (when root
+ (add-to-list
+ (make-variable-buffer-local 'flycheck-clang-include-path)
+ root)
+ (add-to-list
+ (make-variable-buffer-local 'flycheck-gcc-include-path)
+ root))))
-**** Company
+ (add-hook 'c-mode-hook 'setup-flycheck-project-path)
+ (add-hook 'c++-mode-hook 'setup-flycheck-project-path)
+#+END_SRC
+
+**** COMMENT Company
Add header completion as well as Irony, which uses clang for suggestions.
#+BEGIN_SRC emacs-lisp
(use-package company-c-headers
@@ -977,23 +1000,23 @@
(add-hook 'c++-mode-hook 'company-mode)
(add-hook 'c-mode-hook 'company-mode))
- (use-package irony
- :ensure t
- :init
- (setq w32-pipe-read-delay 0)
- (setq irony-server-w32-pipe-buffer-size (* 64 1024))
- (add-hook 'c++-mode-hook 'irony-mode)
- (add-hook 'c-mode-hook 'irony-mode)
- (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
- (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options))
+ ;; (use-package irony
+ ;; :ensure t
+ ;; :init
+ ;; (setq w32-pipe-read-delay 0)
+ ;; (setq irony-server-w32-pipe-buffer-size (* 64 1024))
+ ;; (add-hook 'c++-mode-hook 'irony-mode)
+ ;; (add-hook 'c-mode-hook 'irony-mode)
+ ;; (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
+ ;; (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options))
- (use-package company-irony
- :ensure t
- :after irony
- :config
- (add-to-list 'company-backends '(company-c-headers
- company-dabbrev-code
- company-irony)))
+ ;; (use-package company-irony
+ ;; :ensure t
+ ;; :after irony
+ ;; :config
+ ;; (add-to-list 'company-backends '(company-c-headers
+ ;; company-dabbrev-code
+ ;; company-irony)))
#+END_SRC
**** Clang-format
Automatically format buffer on save.
@@ -1224,7 +1247,7 @@
(use-package flycheck-rust
:ensure t
:config
- (add-hook 'flyckeck-mode-hook #'flycheck-rust-setup))
+ (add-hook 'flycheck-mode-hook #'flycheck-rust-setup))
#+END_SRC
*** Go
**** Major mode
--
Gitblit v1.10.0