Compare commits

..

3 commits

Author SHA1 Message Date
377b95bd7f
Update
All checks were successful
/ Test config on 20 (push) Successful in 25s
2026-06-01 09:54:38 +03:00
bcaa83cfd5
Move some stuff 2026-05-25 09:09:03 +03:00
253d185ca3
Compat-31 update maybe works 2026-05-04 12:22:49 +03:00
57 changed files with 110 additions and 46 deletions

View file

@ -3,16 +3,18 @@
;;; Completion framework configuration ;;; Completion framework configuration
;;; Code: ;;; Code:
(eval-when-compile (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-prefix-length 'cape)
(declare-function cape-capf-super '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 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 (use-package yasnippet :ensure t :defer t
:hook ((elpaca-after-init . yas-global-mode)) :hook ((elpaca-after-init . yas-global-mode))

View file

@ -33,6 +33,9 @@
(advice-add #'completing-read-multiple :filter-args #'crm-indicator) (advice-add #'completing-read-multiple :filter-args #'crm-indicator)
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode) (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
;; Vertico relies on Emacs 31 compatibility
(use-package compat :ensure t)
;; Actual orderless ;; Actual orderless
(use-package vertico :ensure t :defer t (use-package vertico :ensure t :defer t
:hook ((elpaca-after-init . vertico-mode)) :hook ((elpaca-after-init . vertico-mode))

View file

@ -11,10 +11,10 @@
;;; Code: ;;; Code:
(eval-when-compile (eval-when-compile
(declare-function elpaca 'elpaca) (declare-function elpaca 'elpaca)
(declare-function elpaca-process-queues 'elpaca)
(declare-function elpaca-generate-autoloads 'elpaca) (declare-function elpaca-generate-autoloads 'elpaca)
(declare-function elpaca-write-lock-file 'elpaca) (declare-function elpaca-process-queues 'elpaca)
(declare-function elpaca-use-package-mode 'elpaca-use-package)) (declare-function elpaca-use-package-mode 'elpaca-use-package)
(declare-function elpaca-write-lock-file 'elpaca))
;; Set GC at 500 MB for startup ;; Set GC at 500 MB for startup
(setopt gc-cons-threshold 500000000) (setopt gc-cons-threshold 500000000)
@ -101,9 +101,9 @@
;; I don't know why this needs to be here and with a lisp directory, but ;; I don't know why this needs to be here and with a lisp directory, but
;; normal subdirs.el file doesn't work. ;; normal subdirs.el file doesn't work.
(add-to-list 'load-path (concat user-emacs-directory "lisp")) (add-to-list 'load-path (concat user-emacs-directory "user-lisp"))
(add-to-list 'load-path (concat user-emacs-directory "lisp/themes")) (add-to-list 'load-path (concat user-emacs-directory "user-lisp/themes"))
(add-to-list 'load-path (concat user-emacs-directory "lisp/langs")) (add-to-list 'load-path (concat user-emacs-directory "user-lisp/langs"))
(defgroup icejam nil (defgroup icejam nil
"My customisation group." "My customisation group."
@ -146,6 +146,7 @@
(use-package icejam-lang-golang :ensure nil) (use-package icejam-lang-golang :ensure nil)
(use-package icejam-lang-haskell :ensure nil) (use-package icejam-lang-haskell :ensure nil)
(use-package icejam-lang-javascript :ensure nil) (use-package icejam-lang-javascript :ensure nil)
(use-package icejam-lang-java :ensure nil)
(use-package icejam-lang-kotlin :ensure nil) (use-package icejam-lang-kotlin :ensure nil)
(use-package icejam-lang-lua :ensure nil) (use-package icejam-lang-lua :ensure nil)
(use-package icejam-lang-markdown :ensure nil) (use-package icejam-lang-markdown :ensure nil)
@ -163,5 +164,8 @@
;; Diminish modeline litter ;; Diminish modeline litter
(use-package icejam-diminish :ensure nil) (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) (provide 'icejam-custom-init)
;;; icejam-custom-init.el ends here ;;; icejam-custom-init.el ends here

View file

@ -12,22 +12,35 @@
;; Use Ruby-Lsp instead of Solargraph ;; Use Ruby-Lsp instead of Solargraph
(add-to-list 'eglot-server-programs '((ruby-mode ruby-ts-mode) "ruby-lsp")) (add-to-list 'eglot-server-programs '((ruby-mode ruby-ts-mode) "ruby-lsp"))
;; Use gleam LSP
(add-to-list 'eglot-server-programs '((gleam-ts-mode) "gleam" "lsp"))
;; Use Kotlin-LSP provided by Jetbrains
(add-to-list 'eglot-server-programs
'((kotlin-mode kotlin-ts-mode) "kotlin-lsp" "--stdio"))
(setopt eglot-advertise-cancellation t) (setopt eglot-advertise-cancellation t)
;; Automatically kill eglot when last buffer associated with a project is ;; Automatically kill eglot when last buffer associated with a project is
;; closed. ;; closed.
(setopt eglot-autoshutdown t) (setopt eglot-autoshutdown t)
(setopt eglot-connect-timeout 60)
(setopt eglot-extend-to-xref t)
;; Set up server specific switches globally ;; Set up server specific switches globally
(setq-default eglot-workspace-configuration (setq-default eglot-workspace-configuration
;; Elixir configuration ;; Elixir configuration
'(:elixirLS ( '(
:elixirLS (
:autoBuild t :autoBuild t
:dialyzerEnabled t :dialyzerEnabled t
:incrementalDialyzer :json-false :incrementalDialyzer :json-false
:autoInsertRequiredAlias :json-false :autoInsertRequiredAlias :json-false
:suggestSpecs t :suggestSpecs t
))) )
)
)
;; Eglot insists on adding itself to the completion-at-point-functions but ;; Eglot insists on adding itself to the completion-at-point-functions but
;; that means that it overrides our combined value of (eglot + yasnippet) ;; that means that it overrides our combined value of (eglot + yasnippet)

View file

@ -3,23 +3,30 @@
;;; Code: ;;; Code:
;; Use flycheck checks with flymake. ;; 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 (use-package flymake-flycheck :ensure t :defer t :config
(setq-default (setq-default
flycheck-disabled-checkers flycheck-disabled-checkers
(append (default-value 'flycheck-disabled-checkers) (append (default-value 'flycheck-disabled-checkers)
'(emacs-lisp emacs-lisp-checkdoc emacs-lisp-package sh-shellcheck)))) '(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 (use-package el-patch :ensure t :defer t
:config :config
;; Show the diagnostics from flymake in a second window (usually on the ;; Show the diagnostics from flymake in a second window (usually on the

View file

@ -3,10 +3,10 @@
;;; Code: ;;; Code:
(eval-when-compile (eval-when-compile
(defvar icejam-keys-mode-map) (declare-function git-commit-setup-capf 'git-commit)
(defvar magit-blame-mode-map)
(defvar git-commit-setup-hook) (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 (use-package magit
:ensure t :ensure t

View file

@ -3,11 +3,16 @@
;;; Code: ;;; Code:
(eval-when-compile (eval-when-compile
(defvar icejam-language-transient-alist)
(defvar icejam-clojure-lang-menu)
(declare-function column-enforce-n "column-enforce-mode" (number)) (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-set-indent 'icejam-prog-mode)
(declare-function transient-define-prefix 'transient)) (declare-function icejam-start-eglot 'icejam-eglot)
(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) (use-package clojure-mode :defer t :ensure t)
@ -32,7 +37,7 @@
("t" "Test" cider-test-run-loaded-tests)] ("t" "Test" cider-test-run-loaded-tests)]
["Buffer" ["Buffer"
("r" "Reload" icejam-revert-buffer-no-confirm) ("r" "Reload" icejam-revert-buffer-no-confirm)
("f" "Format" cider-format-buffer) ("f" "Format" eglot-format-buffer)
("l" "Load" cider-load-buffer) ("l" "Load" cider-load-buffer)
("e" "Show Errors" flymake-show-buffer-diagnostics)]] ("e" "Show Errors" flymake-show-buffer-diagnostics)]]
["" [""
@ -44,15 +49,21 @@
(defun icejam-lang-activate-clojure-mode () (defun icejam-lang-activate-clojure-mode ()
"Goodies for clojure files." "Goodies for clojure files."
(icejam-set-indent 2) ;; Default indentation of 2 characters (icejam-set-indent 2) ;; Default indentation of 2 characters
(column-enforce-n 80) (column-enforce-n 100)
(cider-mode 1) (cider-mode 1)
;; Do not enable paredit for clojure ;; Use lispy mode in Clojure
;; (paredit-mode 1) (lispy-mode t)
;; Use LSP in clojure
(icejam-set-eglot-capfs)
(icejam-start-eglot)
;; Do not show separate error window when in REPL ;; Do not show separate error window when in REPL
(setq cider-show-error-buffer 'except-in-repl)) (setq cider-show-error-buffer 'except-in-repl))
(add-hook 'clojure-mode-hook 'icejam-lang-activate-clojure-mode) (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 () (defun icejam-lang-clojure-repl-config ()
"Do not show stacktrace when in REPL." "Do not show stacktrace when in REPL."

View file

@ -3,17 +3,17 @@
;;; Code: ;;; Code:
(eval-when-compile (eval-when-compile
(declare-function transient-define-prefix 'transient)
(declare-function column-enforce-n 'column-enforce-mode (number))
(declare-function -> 'dash) (declare-function -> 'dash)
(declare-function yas--table-get-create 'yasnippet) (declare-function column-enforce-n 'column-enforce-mode (number))
(declare-function yas--remove-template-by-uuid 'yasnippet)
(declare-function icejam-set-indent 'icejam-prog-mode)
(declare-function icejam-set-eglot-capfs 'icejam-complete-at-point) (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 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 icejam-elixir-lang-menu)
(defvar apheleia-mode-alist)) (defvar icejam-language-transient-alist))
(use-package elixir-ts-mode :ensure t :defer t :after (apheleia) (use-package elixir-ts-mode :ensure t :defer t :after (apheleia)
:config :config

View file

@ -14,8 +14,7 @@
(declare-function icejam-set-indent 'icejam-prog-mode) (declare-function icejam-set-indent 'icejam-prog-mode)
(declare-function icejam-set-eglot-capfs 'icejam-complete-at-point)) (declare-function icejam-set-eglot-capfs 'icejam-complete-at-point))
(use-package gleam-ts-mode :defer t :ensure t (use-package gleam-ts-mode :defer t :ensure t :mode (rx ".gleam" eos))
:mode (rx ".gleam" eos))
;; (add-to-list 'auto-mode-alist '("\\.gleam\\'" . gleam-ts-mode)) ;; (add-to-list 'auto-mode-alist '("\\.gleam\\'" . gleam-ts-mode))
@ -23,7 +22,7 @@
"All things Gleam." "All things Gleam."
(icejam-set-indent 2) (icejam-set-indent 2)
(column-enforce-n 100) (column-enforce-n 100)
(eglot-ensure) (icejam-start-eglot)
(icejam-set-eglot-capfs)) (icejam-set-eglot-capfs))
(add-hook 'gleam-ts-mode-hook 'icejam-lang-activate-gleam-mode) (add-hook 'gleam-ts-mode-hook 'icejam-lang-activate-gleam-mode)

View file

@ -0,0 +1,25 @@
;;; java -- summary -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
(eval-when-compile
(declare-function column-enforce-n 'column-enforce-mode (number))
(declare-function icejam-set-indent 'icejam-prog-mode)
(declare-function icejam-set-eglot-capfs 'icejam-complete-at-point))
(add-to-list 'auto-mode-alist '("\\.java\\'" . java-ts-mode))
;; (use-package eglot-java :ensure t)
(defun icejam-activate-java-mode ()
"Java mode overrides."
(icejam-set-indent 2)
(eglot-ensure)
(column-enforce-n 80)
(icejam-set-eglot-capfs))
;; (add-hook 'java-ts-mode-hook 'eglot-java-mode)
(add-hook 'java-ts-mode-hook 'icejam-activate-java-mode)
(provide 'icejam-lang-java)
;;; icejam-lang-java.el ends here