diff --git a/lisp/icejam-agent-shell.el b/user-lisp/icejam-agent-shell.el similarity index 100% rename from lisp/icejam-agent-shell.el rename to user-lisp/icejam-agent-shell.el diff --git a/lisp/icejam-avy.el b/user-lisp/icejam-avy.el similarity index 100% rename from lisp/icejam-avy.el rename to user-lisp/icejam-avy.el diff --git a/lisp/icejam-base.el b/user-lisp/icejam-base.el similarity index 100% rename from lisp/icejam-base.el rename to user-lisp/icejam-base.el diff --git a/lisp/icejam-complete-at-point.el b/user-lisp/icejam-complete-at-point.el similarity index 93% rename from lisp/icejam-complete-at-point.el rename to user-lisp/icejam-complete-at-point.el index d95f0e0..4616716 100644 --- a/lisp/icejam-complete-at-point.el +++ b/user-lisp/icejam-complete-at-point.el @@ -24,7 +24,7 @@ (use-package yasnippet-snippets :ensure t :after (yasnippet)) ;; Corfu is the main engine for displaying suggestions. -(use-package corfu :ensure (:host github :repository "minad/corfu" :ref "856171ac98c3aaa629caa011be7cd3a9405e6e0f") :defer t +(use-package corfu :ensure t :defer t :hook ((elpaca-after-init . global-corfu-mode) (global-corfu-mode . corfu-popupinfo-mode)) :config @@ -54,7 +54,7 @@ :hook ((elpaca-after-init . corfu-terminal-mode))) ;; These are actual completions -(use-package cape :ensure (:host github :repository "minad/cape" :ref "2e15e1909754752f66096dde1b8d639d6eb25f35") :after corfu +(use-package cape :ensure t :after corfu :config ;; Set default completion values: (set-default 'completion-at-point-functions diff --git a/lisp/icejam-completing-read.el b/user-lisp/icejam-completing-read.el similarity index 85% rename from lisp/icejam-completing-read.el rename to user-lisp/icejam-completing-read.el index 200a8f8..4a0dd24 100644 --- a/lisp/icejam-completing-read.el +++ b/user-lisp/icejam-completing-read.el @@ -33,8 +33,11 @@ (advice-add #'completing-read-multiple :filter-args #'crm-indicator) (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode) +;; Vertico relies on Emacs 31 compatibility +(use-package compat :ensure t) + ;; Actual orderless -(use-package vertico :ensure (:host github :repo "minad/vertico" :ref "e4338c5bae2c725be2940726be170bc034af3b6c") :defer t +(use-package vertico :ensure t :defer t :hook ((elpaca-after-init . vertico-mode)) :config (setopt vertico-scroll-margin 1) ;; Scroll on N-1 @@ -49,17 +52,17 @@ (keymap-set vertico-map "" 'vertico-scroll-up) (keymap-set vertico-map "" 'vertico-scroll-down)) -(use-package orderless :ensure (:host github :repo "oantolin/orderless" :ref "3a2a32181f7a5bd7b633e40d89de771a5dd88cc7") +(use-package orderless :ensure t :config ;; Fallback to basic if orderless does not work. (setopt completion-styles '(orderless basic)) (setopt completion-category-defaults nil) (setopt completion-category-overrides '((file (styles partial-completion))))) -(use-package marginalia :ensure (:host github :repo "minad/marginalia" :ref "4a0628dfdf944a5d307d31d2a514825cc5386986") :defer t +(use-package marginalia :ensure t :defer t :hook ((elpaca-after-init . marginalia-mode))) -(use-package consult :ensure (:host github :repo "minad/consult" :ref "45fdad7b234141ea572267024c8f4b08dd2e1022") +(use-package consult :ensure t :config ;; Using ripgrep, show hidden files but ignore contents of .git (setopt consult-ripgrep-args diff --git a/lisp/icejam-custom-init.el b/user-lisp/icejam-custom-init.el similarity index 96% rename from lisp/icejam-custom-init.el rename to user-lisp/icejam-custom-init.el index 21b88f6..df67ca8 100644 --- a/lisp/icejam-custom-init.el +++ b/user-lisp/icejam-custom-init.el @@ -101,9 +101,9 @@ ;; I don't know why this needs to be here and with a lisp directory, but ;; 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 "lisp/themes")) -(add-to-list 'load-path (concat user-emacs-directory "lisp/langs")) +(add-to-list 'load-path (concat user-emacs-directory "user-lisp")) +(add-to-list 'load-path (concat user-emacs-directory "user-lisp/themes")) +(add-to-list 'load-path (concat user-emacs-directory "user-lisp/langs")) (defgroup icejam nil "My customisation group." @@ -146,6 +146,7 @@ (use-package icejam-lang-golang :ensure nil) (use-package icejam-lang-haskell :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-lua :ensure nil) (use-package icejam-lang-markdown :ensure nil) diff --git a/lisp/icejam-dashboard.el b/user-lisp/icejam-dashboard.el similarity index 100% rename from lisp/icejam-dashboard.el rename to user-lisp/icejam-dashboard.el diff --git a/lisp/icejam-deft.el b/user-lisp/icejam-deft.el similarity index 100% rename from lisp/icejam-deft.el rename to user-lisp/icejam-deft.el diff --git a/lisp/icejam-diminish.el b/user-lisp/icejam-diminish.el similarity index 100% rename from lisp/icejam-diminish.el rename to user-lisp/icejam-diminish.el diff --git a/lisp/icejam-eglot.el b/user-lisp/icejam-eglot.el similarity index 85% rename from lisp/icejam-eglot.el rename to user-lisp/icejam-eglot.el index cf4726a..35b6ddc 100644 --- a/lisp/icejam-eglot.el +++ b/user-lisp/icejam-eglot.el @@ -12,12 +12,22 @@ ;; Use Ruby-Lsp instead of Solargraph (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) ;; Automatically kill eglot when last buffer associated with a project is ;; closed. (setopt eglot-autoshutdown t) + (setopt eglot-connect-timeout 60) + (setopt eglot-extend-to-xref t) + ;; Set up server specific switches globally (setq-default eglot-workspace-configuration ;; Elixir configuration diff --git a/lisp/icejam-flycheck.el b/user-lisp/icejam-flycheck.el similarity index 100% rename from lisp/icejam-flycheck.el rename to user-lisp/icejam-flycheck.el diff --git a/lisp/icejam-fonts.el b/user-lisp/icejam-fonts.el similarity index 100% rename from lisp/icejam-fonts.el rename to user-lisp/icejam-fonts.el diff --git a/lisp/icejam-ispell.el b/user-lisp/icejam-ispell.el similarity index 100% rename from lisp/icejam-ispell.el rename to user-lisp/icejam-ispell.el diff --git a/lisp/icejam-keys-mode.el b/user-lisp/icejam-keys-mode.el similarity index 100% rename from lisp/icejam-keys-mode.el rename to user-lisp/icejam-keys-mode.el diff --git a/lisp/icejam-magit.el b/user-lisp/icejam-magit.el similarity index 100% rename from lisp/icejam-magit.el rename to user-lisp/icejam-magit.el diff --git a/lisp/icejam-prog-mode.el b/user-lisp/icejam-prog-mode.el similarity index 100% rename from lisp/icejam-prog-mode.el rename to user-lisp/icejam-prog-mode.el diff --git a/lisp/icejam-speed-type.el b/user-lisp/icejam-speed-type.el similarity index 100% rename from lisp/icejam-speed-type.el rename to user-lisp/icejam-speed-type.el diff --git a/lisp/icejam-sys-specific.el b/user-lisp/icejam-sys-specific.el similarity index 100% rename from lisp/icejam-sys-specific.el rename to user-lisp/icejam-sys-specific.el diff --git a/lisp/icejam-testing.el b/user-lisp/icejam-testing.el similarity index 100% rename from lisp/icejam-testing.el rename to user-lisp/icejam-testing.el diff --git a/lisp/icejam-themes.el b/user-lisp/icejam-themes.el similarity index 100% rename from lisp/icejam-themes.el rename to user-lisp/icejam-themes.el diff --git a/lisp/icejam-transient.el b/user-lisp/icejam-transient.el similarity index 100% rename from lisp/icejam-transient.el rename to user-lisp/icejam-transient.el diff --git a/lisp/icejam-tree-sitter.el b/user-lisp/icejam-tree-sitter.el similarity index 100% rename from lisp/icejam-tree-sitter.el rename to user-lisp/icejam-tree-sitter.el diff --git a/lisp/icejam-vundo.el b/user-lisp/icejam-vundo.el similarity index 100% rename from lisp/icejam-vundo.el rename to user-lisp/icejam-vundo.el diff --git a/lisp/langs/icejam-lang-clang.el b/user-lisp/langs/icejam-lang-clang.el similarity index 100% rename from lisp/langs/icejam-lang-clang.el rename to user-lisp/langs/icejam-lang-clang.el diff --git a/lisp/langs/icejam-lang-clojure.el b/user-lisp/langs/icejam-lang-clojure.el similarity index 92% rename from lisp/langs/icejam-lang-clojure.el rename to user-lisp/langs/icejam-lang-clojure.el index 0e7eb24..137cbc6 100644 --- a/lisp/langs/icejam-lang-clojure.el +++ b/user-lisp/langs/icejam-lang-clojure.el @@ -5,8 +5,11 @@ (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-indent 'icejam-prog-mode) + (declare-function icejam-start-eglot 'icejam-eglot) (declare-function transient-define-prefix 'transient)) (use-package clojure-mode :defer t :ensure t) @@ -47,6 +50,8 @@ (column-enforce-n 80) (cider-mode 1) + (icejam-start-eglot) + ;; Do not enable paredit for clojure ;; (paredit-mode 1) ;; Do not show separate error window when in REPL diff --git a/lisp/langs/icejam-lang-dart.el b/user-lisp/langs/icejam-lang-dart.el similarity index 100% rename from lisp/langs/icejam-lang-dart.el rename to user-lisp/langs/icejam-lang-dart.el diff --git a/lisp/langs/icejam-lang-dhall.el b/user-lisp/langs/icejam-lang-dhall.el similarity index 100% rename from lisp/langs/icejam-lang-dhall.el rename to user-lisp/langs/icejam-lang-dhall.el diff --git a/lisp/langs/icejam-lang-elisp.el b/user-lisp/langs/icejam-lang-elisp.el similarity index 100% rename from lisp/langs/icejam-lang-elisp.el rename to user-lisp/langs/icejam-lang-elisp.el diff --git a/lisp/langs/icejam-lang-elixir.el b/user-lisp/langs/icejam-lang-elixir.el similarity index 100% rename from lisp/langs/icejam-lang-elixir.el rename to user-lisp/langs/icejam-lang-elixir.el diff --git a/lisp/langs/icejam-lang-erlang.el b/user-lisp/langs/icejam-lang-erlang.el similarity index 100% rename from lisp/langs/icejam-lang-erlang.el rename to user-lisp/langs/icejam-lang-erlang.el diff --git a/lisp/langs/icejam-lang-fsharp.el b/user-lisp/langs/icejam-lang-fsharp.el similarity index 100% rename from lisp/langs/icejam-lang-fsharp.el rename to user-lisp/langs/icejam-lang-fsharp.el diff --git a/lisp/langs/icejam-lang-gleam.el b/user-lisp/langs/icejam-lang-gleam.el similarity index 88% rename from lisp/langs/icejam-lang-gleam.el rename to user-lisp/langs/icejam-lang-gleam.el index 8cc1833..3d78d1c 100644 --- a/lisp/langs/icejam-lang-gleam.el +++ b/user-lisp/langs/icejam-lang-gleam.el @@ -14,8 +14,7 @@ (declare-function icejam-set-indent 'icejam-prog-mode) (declare-function icejam-set-eglot-capfs 'icejam-complete-at-point)) -(use-package gleam-ts-mode :defer t :ensure t - :mode (rx ".gleam" eos)) +(use-package gleam-ts-mode :defer t :ensure t :mode (rx ".gleam" eos)) ;; (add-to-list 'auto-mode-alist '("\\.gleam\\'" . gleam-ts-mode)) @@ -23,7 +22,7 @@ "All things Gleam." (icejam-set-indent 2) (column-enforce-n 100) - (eglot-ensure) + (icejam-start-eglot) (icejam-set-eglot-capfs)) (add-hook 'gleam-ts-mode-hook 'icejam-lang-activate-gleam-mode) diff --git a/lisp/langs/icejam-lang-golang.el b/user-lisp/langs/icejam-lang-golang.el similarity index 100% rename from lisp/langs/icejam-lang-golang.el rename to user-lisp/langs/icejam-lang-golang.el diff --git a/lisp/langs/icejam-lang-haskell.el b/user-lisp/langs/icejam-lang-haskell.el similarity index 100% rename from lisp/langs/icejam-lang-haskell.el rename to user-lisp/langs/icejam-lang-haskell.el diff --git a/user-lisp/langs/icejam-lang-java.el b/user-lisp/langs/icejam-lang-java.el new file mode 100644 index 0000000..856c59f --- /dev/null +++ b/user-lisp/langs/icejam-lang-java.el @@ -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 diff --git a/lisp/langs/icejam-lang-javascript.el b/user-lisp/langs/icejam-lang-javascript.el similarity index 100% rename from lisp/langs/icejam-lang-javascript.el rename to user-lisp/langs/icejam-lang-javascript.el diff --git a/lisp/langs/icejam-lang-kotlin.el b/user-lisp/langs/icejam-lang-kotlin.el similarity index 100% rename from lisp/langs/icejam-lang-kotlin.el rename to user-lisp/langs/icejam-lang-kotlin.el diff --git a/lisp/langs/icejam-lang-lua.el b/user-lisp/langs/icejam-lang-lua.el similarity index 100% rename from lisp/langs/icejam-lang-lua.el rename to user-lisp/langs/icejam-lang-lua.el diff --git a/lisp/langs/icejam-lang-markdown.el b/user-lisp/langs/icejam-lang-markdown.el similarity index 100% rename from lisp/langs/icejam-lang-markdown.el rename to user-lisp/langs/icejam-lang-markdown.el diff --git a/lisp/langs/icejam-lang-ocaml.el b/user-lisp/langs/icejam-lang-ocaml.el similarity index 100% rename from lisp/langs/icejam-lang-ocaml.el rename to user-lisp/langs/icejam-lang-ocaml.el diff --git a/lisp/langs/icejam-lang-other.el b/user-lisp/langs/icejam-lang-other.el similarity index 100% rename from lisp/langs/icejam-lang-other.el rename to user-lisp/langs/icejam-lang-other.el diff --git a/lisp/langs/icejam-lang-php.el b/user-lisp/langs/icejam-lang-php.el similarity index 100% rename from lisp/langs/icejam-lang-php.el rename to user-lisp/langs/icejam-lang-php.el diff --git a/lisp/langs/icejam-lang-purescript.el b/user-lisp/langs/icejam-lang-purescript.el similarity index 100% rename from lisp/langs/icejam-lang-purescript.el rename to user-lisp/langs/icejam-lang-purescript.el diff --git a/lisp/langs/icejam-lang-python.el b/user-lisp/langs/icejam-lang-python.el similarity index 100% rename from lisp/langs/icejam-lang-python.el rename to user-lisp/langs/icejam-lang-python.el diff --git a/lisp/langs/icejam-lang-ruby.el b/user-lisp/langs/icejam-lang-ruby.el similarity index 100% rename from lisp/langs/icejam-lang-ruby.el rename to user-lisp/langs/icejam-lang-ruby.el diff --git a/lisp/langs/icejam-lang-rust.el b/user-lisp/langs/icejam-lang-rust.el similarity index 100% rename from lisp/langs/icejam-lang-rust.el rename to user-lisp/langs/icejam-lang-rust.el diff --git a/lisp/langs/icejam-lang-sh.el b/user-lisp/langs/icejam-lang-sh.el similarity index 100% rename from lisp/langs/icejam-lang-sh.el rename to user-lisp/langs/icejam-lang-sh.el diff --git a/lisp/langs/icejam-lang-web.el b/user-lisp/langs/icejam-lang-web.el similarity index 100% rename from lisp/langs/icejam-lang-web.el rename to user-lisp/langs/icejam-lang-web.el diff --git a/lisp/langs/icejam-lang-ziglang.el b/user-lisp/langs/icejam-lang-ziglang.el similarity index 100% rename from lisp/langs/icejam-lang-ziglang.el rename to user-lisp/langs/icejam-lang-ziglang.el diff --git a/lisp/themes/icejam-base16-catppuccin-frappe.el b/user-lisp/themes/icejam-base16-catppuccin-frappe.el similarity index 100% rename from lisp/themes/icejam-base16-catppuccin-frappe.el rename to user-lisp/themes/icejam-base16-catppuccin-frappe.el diff --git a/lisp/themes/icejam-base16-catppuccin-latte.el b/user-lisp/themes/icejam-base16-catppuccin-latte.el similarity index 100% rename from lisp/themes/icejam-base16-catppuccin-latte.el rename to user-lisp/themes/icejam-base16-catppuccin-latte.el diff --git a/lisp/themes/icejam-base16-harmonic-light.el b/user-lisp/themes/icejam-base16-harmonic-light.el similarity index 100% rename from lisp/themes/icejam-base16-harmonic-light.el rename to user-lisp/themes/icejam-base16-harmonic-light.el diff --git a/lisp/themes/icejam-base16-modus-operandi-tinted.el b/user-lisp/themes/icejam-base16-modus-operandi-tinted.el similarity index 100% rename from lisp/themes/icejam-base16-modus-operandi-tinted.el rename to user-lisp/themes/icejam-base16-modus-operandi-tinted.el diff --git a/lisp/themes/icejam-base16-not-harmonic.el b/user-lisp/themes/icejam-base16-not-harmonic.el similarity index 100% rename from lisp/themes/icejam-base16-not-harmonic.el rename to user-lisp/themes/icejam-base16-not-harmonic.el diff --git a/lisp/themes/icejam-base16-summerfruit-light.el b/user-lisp/themes/icejam-base16-summerfruit-light.el similarity index 100% rename from lisp/themes/icejam-base16-summerfruit-light.el rename to user-lisp/themes/icejam-base16-summerfruit-light.el diff --git a/lisp/themes/icejam-base16-zenburn.el b/user-lisp/themes/icejam-base16-zenburn.el similarity index 100% rename from lisp/themes/icejam-base16-zenburn.el rename to user-lisp/themes/icejam-base16-zenburn.el diff --git a/lisp/themes/icejam-tronesque.el b/user-lisp/themes/icejam-tronesque.el similarity index 100% rename from lisp/themes/icejam-tronesque.el rename to user-lisp/themes/icejam-tronesque.el