From 6e20358ad6eb36c49a1c0095a147b10c6e7a02fa Mon Sep 17 00:00:00 2001 From: Fabio Scotto di Santolo Date: Wed, 24 Dec 2025 16:16:29 +0100 Subject: [PATCH] Compact Emacs C-lang configuration --- emacs/.emacs.d/lisp/core/buffer.el | 1 - emacs/.emacs.d/lisp/core/editor.el | 13 ----------- emacs/.emacs.d/lisp/lang/c.el | 37 ++++++++++++++++++++++++++++++ emacs/.emacs.d/lisp/tools/dap.el | 2 -- emacs/.emacs.d/lisp/tools/lsp.el | 21 ++++------------- 5 files changed, 42 insertions(+), 32 deletions(-) diff --git a/emacs/.emacs.d/lisp/core/buffer.el b/emacs/.emacs.d/lisp/core/buffer.el index e19d3f8..deffdf2 100644 --- a/emacs/.emacs.d/lisp/core/buffer.el +++ b/emacs/.emacs.d/lisp/core/buffer.el @@ -3,7 +3,6 @@ (use-package ibuffer :ensure t) - (use-package ibuffer-tramp :ensure t) diff --git a/emacs/.emacs.d/lisp/core/editor.el b/emacs/.emacs.d/lisp/core/editor.el index b43fa4b..f016d69 100644 --- a/emacs/.emacs.d/lisp/core/editor.el +++ b/emacs/.emacs.d/lisp/core/editor.el @@ -4,19 +4,6 @@ (setq tab-stop-list nil) (setq indent-tabs-mode nil) -;; C / C++ fallback style (Linux-like) -(setq c-default-style "linux" - c-basic-offset 4 - tab-width 8) - -(add-hook 'c-mode-common-hook - (lambda () - (setq indent-tabs-mode t))) - -;; Tree-sitter C/C++ -(setq c-ts-mode-indent-offset 4) -(setq c++-ts-mode-indent-offset 4) - ;; Setting variables (setq vc-follow-symlinks 't) (prefer-coding-system 'utf-8-unix) diff --git a/emacs/.emacs.d/lisp/lang/c.el b/emacs/.emacs.d/lisp/lang/c.el index 78fae28..efd138a 100644 --- a/emacs/.emacs.d/lisp/lang/c.el +++ b/emacs/.emacs.d/lisp/lang/c.el @@ -1,2 +1,39 @@ +;; c.el -*- lexical-binding: t; -*- + +;; C / C++ fallback style (Linux-like) +(setq c-default-style "linux" + c-basic-offset 4 + tab-width 8) + +(add-hook 'c-mode-common-hook + (lambda () + (setq indent-tabs-mode t))) + +;; Tree-sitter C/C++ +(setq c-ts-mode-indent-offset 4) +(setq c++-ts-mode-indent-offset 4) + +(with-eval-after-load 'lsp + ;; Clangd configurations + (setq lsp-clients-clangd-args + '("--background-index" + "--clang-tidy" + "--completion-style=detailed" + "--header-insertion=never" + "--header-insertion-decorators" + "--pch-storage=memory" + "--log=error" + "--ranking-model=heuristics" + "--malloc-trim" + "--limit-results=500" + "--limit-references=2000"))) + +(with-eval-after-load 'dap-mode + (require 'dap-cpptools)) + (add-hook 'c-ts-mode-hook #'fscotto/disable-c-formatting) (add-hook 'c-mode-hook #'fscotto/disable-c-formatting) + +(provide 'c) + +;;; c.el ends here diff --git a/emacs/.emacs.d/lisp/tools/dap.el b/emacs/.emacs.d/lisp/tools/dap.el index e3f616a..80c2245 100644 --- a/emacs/.emacs.d/lisp/tools/dap.el +++ b/emacs/.emacs.d/lisp/tools/dap.el @@ -19,8 +19,6 @@ (dap-ui-repl . ((side . bottom) (slot . 1) (window-height . 0.25))) (dap-ui-console . ((side . bottom) (slot . 2) (window-height . 0.25))))) ;; Loading DAP adapters - ;; For C/C++ - (require 'dap-cpptools) ;; For Python (require 'dap-python) (setq dap-python-debugger 'debugpy)) diff --git a/emacs/.emacs.d/lisp/tools/lsp.el b/emacs/.emacs.d/lisp/tools/lsp.el index d01159a..a01d03d 100644 --- a/emacs/.emacs.d/lisp/tools/lsp.el +++ b/emacs/.emacs.d/lisp/tools/lsp.el @@ -1,3 +1,5 @@ +;;; lsp.el -*- lexical-binding: t; -*- + (use-package lsp-mode :ensure t :commands (lsp lsp-deferred) @@ -13,8 +15,8 @@ :config ;; Performance (setq lsp-enable-symbol-highlighting t - lsp-enable-snippet t - lsp-log-io nil + lsp-enable-snippet t + lsp-log-io nil lsp-modeline-code-actions-enable nil lsp-modeline-diagnostics-enable nil lsp-signature-auto-activate nil @@ -25,20 +27,7 @@ lsp-enable-indentation nil ;; Disable for huge projects lsp-enable-file-watchers nil - lsp-idle-delay 0.5) - ;; Clangd configurations - (setq lsp-clients-clangd-args - '("--background-index" - "--clang-tidy" - "--completion-style=detailed" - "--header-insertion=never" - "--header-insertion-decorators" - "--pch-storage=memory" - "--log=error" - "--ranking-model=heuristics" - "--malloc-trim" - "--limit-results=500" - "--limit-references=2000"))) + lsp-idle-delay 0.5)) (use-package lsp-ui :ensure t