summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-10-20 15:00:02 -0500
committerCraig Jennings <c@cjennings.net>2025-10-20 15:00:02 -0500
commit3a8638a6490a682369f66987fb5aafa4c5acf19d (patch)
tree2c53fcb91f5f08945ff352eaed85c0cae52324cf /modules
parentf684506152054ac6f433b426ae2a7f13b2fa9c99 (diff)
feat: prog-general: integrate LSP for improved code intelligence
Add Language Server Protocol support for intelligent code completion and navigation across multiple languages. Configure `lsp-mode` and `lsp-ui` packages with performance optimizations and enhanced completion features.
Diffstat (limited to 'modules')
-rw-r--r--modules/prog-general.el44
1 files changed, 44 insertions, 0 deletions
diff --git a/modules/prog-general.el b/modules/prog-general.el
index 71949506..00b6fbd3 100644
--- a/modules/prog-general.el
+++ b/modules/prog-general.el
@@ -309,6 +309,50 @@ If no such file exists there, display a message."
:config
(setq ws-butler-convert-leading-tabs-or-spaces t))
+;; ------------------------------------ LSP ------------------------------------
+;; Language Server Protocol for intelligent code completion and navigation
+;; Works with multiple languages: C, Python, Go, Rust, JavaScript, etc.
+
+;; Forward declarations for LSP variables
+(defvar lsp-idle-delay)
+(defvar lsp-log-io)
+(defvar lsp-enable-folding)
+(defvar lsp-enable-snippet)
+(defvar lsp-headerline-breadcrumb-enable)
+(defvar lsp-completion-provider)
+(defvar lsp-completion-show-detail)
+(defvar lsp-completion-show-kind)
+
+(use-package lsp-mode
+ :commands (lsp lsp-deferred)
+ :custom
+ (lsp-keymap-prefix "C-c l") ;; LSP commands under C-c l prefix
+ :config
+ ;; Performance optimizations
+ (setq lsp-idle-delay 0.1)
+ (setq lsp-log-io nil)
+ (setq lsp-enable-folding nil)
+ (setq lsp-enable-snippet t)
+ (setq lsp-headerline-breadcrumb-enable nil)
+
+ ;; Improve completion
+ (setq lsp-completion-provider :capf)
+ (setq lsp-completion-show-detail t)
+ (setq lsp-completion-show-kind t))
+
+(use-package lsp-ui
+ :after lsp-mode
+ :commands lsp-ui-mode
+ :custom
+ (lsp-ui-doc-enable t)
+ (lsp-ui-doc-position 'at-point)
+ (lsp-ui-doc-delay 0.5)
+ (lsp-ui-sideline-enable t)
+ (lsp-ui-sideline-show-diagnostics t)
+ (lsp-ui-sideline-show-hover nil)
+ (lsp-ui-peek-enable t)
+ (lsp-ui-peek-show-directory t))
+
;; ----------------- Auto-Close Successful Compilation Windows -----------------
;; close compilation windows when successful. from 'enberg' on #emacs