From 377b95bd7fe45b20f5a71dc3adda7abdca603f2c Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Mon, 1 Jun 2026 09:54:38 +0300 Subject: [PATCH] Update --- user-lisp/icejam-complete-at-point.el | 16 +++++++------- user-lisp/icejam-custom-init.el | 9 +++++--- user-lisp/icejam-eglot.el | 7 +++++-- user-lisp/icejam-flycheck.el | 29 ++++++++++++++++---------- user-lisp/icejam-magit.el | 6 +++--- user-lisp/langs/icejam-lang-clojure.el | 24 +++++++++++++-------- user-lisp/langs/icejam-lang-elixir.el | 14 ++++++------- 7 files changed, 63 insertions(+), 42 deletions(-) diff --git a/user-lisp/icejam-complete-at-point.el b/user-lisp/icejam-complete-at-point.el index 4616716..b7a2acf 100644 --- a/user-lisp/icejam-complete-at-point.el +++ b/user-lisp/icejam-complete-at-point.el @@ -3,16 +3,18 @@ ;;; Completion framework configuration ;;; Code: (eval-when-compile - (defvar corfu-terminal-mode 'corfu-terminal) - (declare-function cape-dabbrev 'cape) - (declare-function cape-file 'cape) - (declare-function cape-keyword 'cape) - (declare-function cape-elisp-symbol 'cape) (declare-function cape-capf-prefix-length 'cape) (declare-function cape-capf-super 'cape) - (declare-function yasnippet-capf 'yasnippet) + (declare-function cape-dabbrev 'cape) + (declare-function cape-elisp-symbol 'cape) + (declare-function cape-file 'cape) + (declare-function cape-keyword 'cape) + (declare-function eglot-completion-at-point 'eglot) (declare-function nerd-icons-corfu-formatter 'nerd-icons-corfu) - (declare-function eglot-completion-at-point 'eglot)) + (declare-function yasnippet-capf 'yasnippet) + (defvar corfu-margin-formatters) + (defvar corfu-terminal-mode 'corfu-terminal) + (defvar yas-minor-mode-map)) (use-package yasnippet :ensure t :defer t :hook ((elpaca-after-init . yas-global-mode)) diff --git a/user-lisp/icejam-custom-init.el b/user-lisp/icejam-custom-init.el index df67ca8..0c6278d 100644 --- a/user-lisp/icejam-custom-init.el +++ b/user-lisp/icejam-custom-init.el @@ -11,10 +11,10 @@ ;;; Code: (eval-when-compile (declare-function elpaca 'elpaca) - (declare-function elpaca-process-queues 'elpaca) (declare-function elpaca-generate-autoloads 'elpaca) - (declare-function elpaca-write-lock-file 'elpaca) - (declare-function elpaca-use-package-mode 'elpaca-use-package)) + (declare-function elpaca-process-queues 'elpaca) + (declare-function elpaca-use-package-mode 'elpaca-use-package) + (declare-function elpaca-write-lock-file 'elpaca)) ;; Set GC at 500 MB for startup (setopt gc-cons-threshold 500000000) @@ -164,5 +164,8 @@ ;; Diminish modeline litter (use-package icejam-diminish :ensure nil) +;; This is a temporary workaround for elpaca not working properly: +(progn (elpaca-process-queues) (run-hooks 'elpaca-after-init-hook)) + (provide 'icejam-custom-init) ;;; icejam-custom-init.el ends here diff --git a/user-lisp/icejam-eglot.el b/user-lisp/icejam-eglot.el index 35b6ddc..ddeef65 100644 --- a/user-lisp/icejam-eglot.el +++ b/user-lisp/icejam-eglot.el @@ -31,13 +31,16 @@ ;; Set up server specific switches globally (setq-default eglot-workspace-configuration ;; Elixir configuration - '(:elixirLS ( + '( + :elixirLS ( :autoBuild t :dialyzerEnabled t :incrementalDialyzer :json-false :autoInsertRequiredAlias :json-false :suggestSpecs t - ))) + ) + ) + ) ;; Eglot insists on adding itself to the completion-at-point-functions but ;; that means that it overrides our combined value of (eglot + yasnippet) diff --git a/user-lisp/icejam-flycheck.el b/user-lisp/icejam-flycheck.el index be83a9c..17e2fd2 100644 --- a/user-lisp/icejam-flycheck.el +++ b/user-lisp/icejam-flycheck.el @@ -3,23 +3,30 @@ ;;; Code: ;; Use flycheck checks with flymake. +(eval-when-compile + (declare-function cape-capf-super 'cape) + (declare-function cape-dabbrev 'cape) + (declare-function cape-file 'cape) + (declare-function cape-keyword 'cape) + (declare-function el-patch-defun 'el-patch) + (declare-function el-patch-feature 'el-patch) + (declare-function flymake--diagnostics-buffer-name 'flymake) + (declare-function flymake--project-diagnostics-buffer 'flymake) + (declare-function flymake-diagnostics-buffer-mode 'flymake) + (declare-function flymake-project-diagnostics-mode 'flymake) + (declare-function project-root 'project) + (declare-function yasnippet-capf 'yasnippet-capf) + (defvar flymake--diagnostics-buffer-source) + (defvar flymake-mode) + (defvar flymake-show-buffer-diagnostics) + (defvar flymake-show-project-diagnostics)) + (use-package flymake-flycheck :ensure t :defer t :config (setq-default flycheck-disabled-checkers (append (default-value 'flycheck-disabled-checkers) '(emacs-lisp emacs-lisp-checkdoc emacs-lisp-package sh-shellcheck)))) -(eval-when-compile - (declare-function flymake--project-diagnostics-buffer 'flymake) - (declare-function flymake--diagnostics-buffer-name 'flymake) - (declare-function flymake-project-diagnostics-mode 'flymake) - (declare-function flymake-diagnostics-buffer-mode 'flymake) - (declare-function cape-capf-super 'cape) - (declare-function cape-dabbrev 'cape) - (declare-function cape-file 'cape) - (declare-function cape-keyword 'cape) - (declare-function yasnippet-capf 'yasnippet-capf)) - (use-package el-patch :ensure t :defer t :config ;; Show the diagnostics from flymake in a second window (usually on the diff --git a/user-lisp/icejam-magit.el b/user-lisp/icejam-magit.el index 160ac5e..6f590e9 100644 --- a/user-lisp/icejam-magit.el +++ b/user-lisp/icejam-magit.el @@ -3,10 +3,10 @@ ;;; Code: (eval-when-compile - (defvar icejam-keys-mode-map) - (defvar magit-blame-mode-map) + (declare-function git-commit-setup-capf 'git-commit) (defvar git-commit-setup-hook) - (declare-function git-commit-setup-capf 'git-commit)) + (defvar icejam-keys-mode-map) + (defvar magit-blame-mode-map)) (use-package magit :ensure t diff --git a/user-lisp/langs/icejam-lang-clojure.el b/user-lisp/langs/icejam-lang-clojure.el index 137cbc6..0e8063d 100644 --- a/user-lisp/langs/icejam-lang-clojure.el +++ b/user-lisp/langs/icejam-lang-clojure.el @@ -3,14 +3,16 @@ ;;; Code: (eval-when-compile - (defvar icejam-language-transient-alist) - (defvar icejam-clojure-lang-menu) - (defvar cider-annotate-completion-function) - (defvar cider-show-error-buffer) (declare-function column-enforce-n "column-enforce-mode" (number)) + (declare-function icejam-set-eglot-capfs 'icejam-complete-at-point) (declare-function icejam-set-indent 'icejam-prog-mode) (declare-function icejam-start-eglot 'icejam-eglot) - (declare-function transient-define-prefix 'transient)) + (declare-function lispy-mode 'lispy-mode) + (declare-function transient-define-prefix 'transient) + (defvar cider-annotate-completion-function) + (defvar cider-show-error-buffer) + (defvar icejam-clojure-lang-menu) + (defvar icejam-language-transient-alist)) (use-package clojure-mode :defer t :ensure t) @@ -35,7 +37,7 @@ ("t" "Test" cider-test-run-loaded-tests)] ["Buffer" ("r" "Reload" icejam-revert-buffer-no-confirm) - ("f" "Format" cider-format-buffer) + ("f" "Format" eglot-format-buffer) ("l" "Load" cider-load-buffer) ("e" "Show Errors" flymake-show-buffer-diagnostics)]] ["" @@ -47,17 +49,21 @@ (defun icejam-lang-activate-clojure-mode () "Goodies for clojure files." (icejam-set-indent 2) ;; Default indentation of 2 characters - (column-enforce-n 80) + (column-enforce-n 100) (cider-mode 1) + ;; Use lispy mode in Clojure + (lispy-mode t) + + ;; Use LSP in clojure + (icejam-set-eglot-capfs) (icejam-start-eglot) - ;; Do not enable paredit for clojure - ;; (paredit-mode 1) ;; Do not show separate error window when in REPL (setq cider-show-error-buffer 'except-in-repl)) (add-hook 'clojure-mode-hook 'icejam-lang-activate-clojure-mode) +(add-hook 'edn-mode-hook 'icejam-lang-activate-clojure-mode) (defun icejam-lang-clojure-repl-config () "Do not show stacktrace when in REPL." diff --git a/user-lisp/langs/icejam-lang-elixir.el b/user-lisp/langs/icejam-lang-elixir.el index 57c59db..523543c 100644 --- a/user-lisp/langs/icejam-lang-elixir.el +++ b/user-lisp/langs/icejam-lang-elixir.el @@ -3,17 +3,17 @@ ;;; Code: (eval-when-compile - (declare-function transient-define-prefix 'transient) - (declare-function column-enforce-n 'column-enforce-mode (number)) (declare-function -> 'dash) - (declare-function yas--table-get-create 'yasnippet) - (declare-function yas--remove-template-by-uuid 'yasnippet) - (declare-function icejam-set-indent 'icejam-prog-mode) + (declare-function column-enforce-n 'column-enforce-mode (number)) (declare-function icejam-set-eglot-capfs 'icejam-complete-at-point) + (declare-function icejam-set-indent 'icejam-prog-mode) (declare-function icejam-start-eglot 'icejam-eglot) - (defvar icejam-language-transient-alist) + (declare-function transient-define-prefix 'transient) + (declare-function yas--remove-template-by-uuid 'yasnippet) + (declare-function yas--table-get-create 'yasnippet) + (defvar apheleia-mode-alist) (defvar icejam-elixir-lang-menu) - (defvar apheleia-mode-alist)) + (defvar icejam-language-transient-alist)) (use-package elixir-ts-mode :ensure t :defer t :after (apheleia) :config