diff --git a/lisp/icejam-company-yasnippet.el b/lisp/icejam-company-yasnippet.el index d774c25..927aaa9 100644 --- a/lisp/icejam-company-yasnippet.el +++ b/lisp/icejam-company-yasnippet.el @@ -88,7 +88,6 @@ (define-key text-mode-map (kbd "") 'icejam/insert-space-and-complete) (define-key text-mode-map (kbd "TAB") 'company-indent-or-complete-common) - ;;; Copilot and other GPT stuff (use-package copilot :straight (:host github :repo "copilot-emacs/copilot.el" :files ("*.el")) @@ -104,6 +103,7 @@ (defcustom anthropic-api-key "api-key" "The value of your Anthropic API key." :type 'string + :group 'icejam :initialize 'custom-initialize-set) (setq diff --git a/lisp/icejam-fonts.el b/lisp/icejam-fonts.el index 0da36b0..d2ea387 100644 --- a/lisp/icejam-fonts.el +++ b/lisp/icejam-fonts.el @@ -21,7 +21,7 @@ 'default frame :font (format "%s %d" icejam-font (- icejam-font-size 2)))))) -(defun set-font (name size) +(defun icejam/set-font (name size) "Set font to NAME and its SIZE to X pixels." (interactive "sNew font: \nnEnter size for %s: ") (setq icejam-font name) @@ -65,7 +65,7 @@ ;; (defvar icejam-font "IBM Plex Mono") (defvar icejam-font-size 14) -(defun set-font-to-screen () +(defun icejam/set-font-to-screen () "Automatically set font size to suit the monitor." ;; If display is set to emulate FullHD resultion or less, make the font ;; smaller. @@ -73,38 +73,38 @@ (cond ((eq (x-display-list) nil)) ;; built-in screen ((>= 1050 (x-display-pixel-height)) - (set-font icejam-font icejam-font-size)) + (icejam/set-font icejam-font icejam-font-size)) ;; 4K screen on a Mac ((>= 1080 (x-display-pixel-height)) - (set-font icejam-font icejam-font-size)) + (icejam/set-font icejam-font icejam-font-size)) ;; Other screens ((>= 1120 (x-display-pixel-height)) - (set-font icejam-font icejam-font-size)) + (icejam/set-font icejam-font icejam-font-size)) ((>= 1440 (x-display-pixel-height)) - (set-font icejam-font (+ icejam-font-size 3))) + (icejam/set-font icejam-font (+ icejam-font-size 3))) ((>= 1920 (x-display-pixel-height)) - (set-font icejam-font icejam-font-size)) + (icejam/set-font icejam-font icejam-font-size)) ;; 4K screen on Windows or Linux ((>= 2160 (x-display-pixel-height)) - (set-font icejam-font (- icejam-font-size 3))) + (icejam/set-font icejam-font (- icejam-font-size 3))) ;; Default - (t (set-font icejam-font (- icejam-font-size 3))))) + (t (icejam/set-font icejam-font (- icejam-font-size 3))))) ;; Do it automatically on startup -(set-font-to-screen) +(icejam/set-font-to-screen) -(defun set-font-size (size) +(defun icejam/set-font-size (size) "Set font to a specified SIZE." (interactive "nEnter size for font: ") - (set-font icejam-font size)) + (icejam/set-font icejam-font size)) -(defun set-font-size-for-this-frame (new-size) +(defun icejam/set-font-size-for-this-frame (new-size) "Set font NEW-SIZE for this frame only." (interactive "nEnter new size for font in this frame: ") (set-frame-font (format "%s %d" icejam-font new-size))) diff --git a/lisp/langs/icejam-lang-clang.el b/lisp/langs/icejam-lang-clang.el index f408ab6..bd6cc2d 100644 --- a/lisp/langs/icejam-lang-clang.el +++ b/lisp/langs/icejam-lang-clang.el @@ -4,7 +4,9 @@ (require 'icejam-prog-mode) -(defun icejam-lang-clang/activate-clang-mode () +(declare-function column-enforce-n "column-enforce-mode" (number)) + +(defun icejam-lang/activate-clang-mode () "Goodies for editing c files." ;; Set column width to 100 @@ -22,7 +24,7 @@ (add-to-list (make-local-variable 'company-backends) '(company-etags company-yasnippet))) -(add-hook 'c-mode-hook 'icejam-lang-clang/activate-clang-mode) +(add-hook 'c-mode-hook 'icejam-lang/activate-clang-mode) (provide 'icejam-lang-clang) ;;; icejam-lang-clang.el ends here diff --git a/lisp/langs/icejam-lang-clojure.el b/lisp/langs/icejam-lang-clojure.el index 142c5c4..ff22492 100644 --- a/lisp/langs/icejam-lang-clojure.el +++ b/lisp/langs/icejam-lang-clojure.el @@ -1,10 +1,12 @@ -;;; languages/clojure -- summary -*- lexical-binding: t; -*- +;;; icejam-lang-clojure.el -- summary -*- lexical-binding: t; -*- ;;; Commentary: ;;; Code: (require 'icejam-prog-mode) (require 'icejam-transient) +(declare-function column-enforce-n "column-enforce-mode" (number)) + (use-package clojure-mode :defer t :straight t) (use-package cider @@ -20,7 +22,7 @@ :straight t) ;; Transient -(transient-define-prefix icejam-lang-clojure/cider-context-menu () +(transient-define-prefix icejam-lang/cider-context-menu () "Clojure Buffer Commands." ["" ["Cider" @@ -34,29 +36,28 @@ ["" ("q" "Quit" keyboard-quit)]) -(defun icejam-lang-clojure/activate-clojure-mode () +(defun icejam-lang/activate-clojure-mode () "Goodies for clojure files." (icejam/set-indent 2) ;; Default indentation of 2 characters (column-enforce-n 80) - (clj-refactor-mode 1) (cider-mode 1) (setq-local indent-tabs-mode nil) (define-key - clojure-mode-map (kbd "C-c l") 'icejam-lang-clojure/cider-context-menu) + clojure-mode-map (kbd "C-c l") 'icejam-lang/cider-context-menu) ;; 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-clojure/activate-clojure-mode) +(add-hook 'clojure-mode-hook 'icejam-lang/activate-clojure-mode) -(defun icejam-lang-clojure/clj-repl-config () +(defun icejam-lang/clojure-repl-config () "Do not show stacktrace when in REPL." (setq-local cider-show-error-buffer 'except-in-repl)) -(add-hook 'cider-repl-mode-hook 'icejam-lang-clojure/clj-repl-config) +(add-hook 'cider-repl-mode-hook 'icejam-lang/clojure-repl-config) (add-hook 'cider-mode-hook #'cider-company-enable-fuzzy-completion) (provide 'icejam-lang-clojure) diff --git a/lisp/langs/icejam-lang-common-lisp.el b/lisp/langs/icejam-lang-common-lisp.el index ae737e9..c99ac77 100644 --- a/lisp/langs/icejam-lang-common-lisp.el +++ b/lisp/langs/icejam-lang-common-lisp.el @@ -15,7 +15,6 @@ (use-package slime-company :straight t :requires (slime company)) - (setq inferior-lisp-program "sbcl") (slime-setup '(slime-fancy slime-company slime-quicklisp slime-asdf)) diff --git a/lisp/langs/icejam-lang-dart.el b/lisp/langs/icejam-lang-dart.el index b884350..9545009 100644 --- a/lisp/langs/icejam-lang-dart.el +++ b/lisp/langs/icejam-lang-dart.el @@ -7,11 +7,11 @@ (use-package dart-mode :straight t :defer t) (use-package lsp-dart :defer t :straight t :requires (dart-mode lsp)) -(defun icejam-lang-dart/activate-dart-mode () +(defun icejam-lang/activate-dart-mode () "Reconfigure dart mode for your own purposes." (lsp)) -(add-hook 'dart-mode-hook 'icejam-lang-dart/activate-dart-mode) +(add-hook 'dart-mode-hook 'icejam-lang/activate-dart-mode) (provide 'icejam-lang-dart) ;;; icejam-lang-dart.el ends here diff --git a/lisp/langs/icejam-lang-dhall.el b/lisp/langs/icejam-lang-dhall.el index c96f820..be40d76 100644 --- a/lisp/langs/icejam-lang-dhall.el +++ b/lisp/langs/icejam-lang-dhall.el @@ -7,11 +7,11 @@ (use-package dhall-mode :straight t :defer t :requires (lsp)) -(defun icejam-lang-dhall/activate-dhall-mode () +(defun icejam-lang/activate-dhall-mode () "Reconfigure dhall mode for your own purposes." (lsp)) -(add-hook 'dhall-mode-hook 'icejam-lang-dhall/activate-dhall-mode) +(add-hook 'dhall-mode-hook 'icejam-lang/activate-dhall-mode) (add-hook 'dhall-mode-hook 'display-line-numbers-mode) (provide 'icejam-lang-dhall) diff --git a/lisp/langs/icejam-lang-elisp.el b/lisp/langs/icejam-lang-elisp.el index e5a00fc..c03dc4d 100644 --- a/lisp/langs/icejam-lang-elisp.el +++ b/lisp/langs/icejam-lang-elisp.el @@ -4,6 +4,8 @@ (require 'icejam-prog-mode) +(declare-function column-enforce-n "column-enforce-mode" (number)) + (transient-define-prefix icejam/elisp-lang-menu () "Elisp Buffer Commands." ["" diff --git a/lisp/langs/icejam-lang-elixir.el b/lisp/langs/icejam-lang-elixir.el index 8753f41..0d1f336 100644 --- a/lisp/langs/icejam-lang-elixir.el +++ b/lisp/langs/icejam-lang-elixir.el @@ -6,8 +6,13 @@ (require 'icejam-flycheck) (require 'icejam-transient) +(declare-function lsp "lsp-mode" nil) +(declare-function column-enforce-n "column-enforce-mode" (number)) + (use-package elixir-mode :defer t :straight t) -(use-package elixir-ts-mode :requires (elixir-mode lsp-mode lsp-ui) :straight t) +(use-package elixir-ts-mode :straight t + :requires (elixir-mode lsp-mode lsp-ui) + :defines (elixir-ts-mode-map)) (add-to-list 'auto-mode-alist '("\\.exs\\'" . elixir-ts-mode)) (add-to-list 'auto-mode-alist '("\\.ex\\'" . elixir-ts-mode)) @@ -38,6 +43,7 @@ ;; If needed, switch the one below to false to disable documentation pop-ups ;; (setq-local lsp-ui-doc-enable t) + ;; Enable mode map (define-key elixir-ts-mode-map (kbd "C-c l") 'icejam/elixir-lang-menu) ;; Company list override diff --git a/lisp/langs/icejam-lang-erlang.el b/lisp/langs/icejam-lang-erlang.el index ff32633..5b4def7 100644 --- a/lisp/langs/icejam-lang-erlang.el +++ b/lisp/langs/icejam-lang-erlang.el @@ -6,44 +6,54 @@ (require 'icejam-lsp) (require 'icejam-projectile) +(declare-function lsp "lsp-mode" nil) +(declare-function column-enforce-n "column-enforce-mode" (number)) + (use-package erlang :defer t :straight t :requires (lsp-mode lsp-ui)) -(cl-defun erlang/emacs-path (erlang-version) +(cl-defun icejam/erlang-emacs-path (erlang-version) + "Find path to Emacs tooling for ERLANG-VERSION." (car (split-string (shell-command-to-string (format "find $HOME/.asdf/installs/erlang/%s/ -name erlang.el" erlang-version)) "erlang.el"))) -(cl-defun erlang/erlang-path (erlang-version) +(cl-defun icejam/erlang-path (erlang-version) + "Find asdf path for ERLANG-VERSION." (format "$HOME/.asdf/installs/erlang/%s/" erlang-version)) -(defun erlang/erlang-plist (erlang-version) +(defun icejam/erlang-plist (erlang-version) "Create property list for ERLANG-VERSION." (list :version erlang-version - :erlang-path (erlang/erlang-path erlang-version) - :emacs-path (erlang/emacs-path erlang-version))) + :erlang-path (icejam/erlang-path erlang-version) + :emacs-path (icejam/erlang-emacs-path erlang-version))) -(cl-defun erlang/installed-erlangs () +(cl-defun icejam/installed-erlangs () + "List Erlang versions installed with asdf." (split-string (shell-command-to-string (format "asdf list erlang")))) -(cl-defun erlang/available-versions--plist () - (mapcar 'erlang/erlang-plist (erlang/installed-erlangs))) +(cl-defun icejam/erlang-available-versions--plist () + "Create plist for all installed Erlang versions." + (mapcar 'icejam/erlang-plist (icejam/installed-erlangs))) -(defvar erlang/available-versions (erlang/available-versions--plist)) +(defvar icejam/erlang-available-versions (icejam/erlang-available-versions--plist)) -(cl-defun erlang/currently-in-use () +(cl-defun icejam/erlang-currently-in-use () + "Get Erlang version currently in use." (car (split-string (shell-command-to-string "asdf current erlang")))) -(cl-defun erlang/current-version--plistp (erlang-plist) - (equal (plist-get erlang-plist :version) (erlang/currently-in-use))) +(cl-defun icejam/erlang-current-version--plistp (erlang-plist) + "Check if currently in use Erlang is the same as the one in ERLANG-PLIST." + (equal (plist-get erlang-plist :version) (icejam/erlang-currently-in-use))) -(cl-defun erlang/current-plist () - (seq-find 'erlang/current-version--plistp erlang/available-versions)) +(cl-defun icejam/erlang-current-plist () + "Create plist from current Erlang version." + (seq-find 'erlang/current-version--plistp icejam/erlang-available-versions)) ;; Flycheck checker for Erlang (flycheck-define-checker erlang-otp @@ -60,7 +70,7 @@ "All things for all Erlang, including header files." (when (featurep 'erlang-start) (unload-feature 'erlang-start)) - (defvar erlang/current-erlang (erlang/current-plist)) + (defvar erlang/current-erlang (icejam/erlang-current-plist)) (add-to-list (make-local-variable 'load-path) (plist-get erlang/current-erlang :emacs-path)) diff --git a/lisp/langs/icejam-lang-gleam.el b/lisp/langs/icejam-lang-gleam.el index 7b591ac..41e19ac 100644 --- a/lisp/langs/icejam-lang-gleam.el +++ b/lisp/langs/icejam-lang-gleam.el @@ -19,13 +19,13 @@ :repo "gleam-lang/gleam-mode" :files ("gleam-mode.el" "tree-sitter-gleam"))) -(defun icejam-lang-gleam/activate-gleam-mode () +(defun icejam-lang/activate-gleam-mode () "All things Gleam." (icejam/set-indent 2) (column-enforce-n 100) (lsp)) -(add-hook 'gleam-mode-hook 'icejam-lang-gleam/activate-gleam-mode) +(add-hook 'gleam-mode-hook 'icejam-lang/activate-gleam-mode) (provide 'icejam-lang-gleam) ;;; icejam-lang-gleam.el ends here diff --git a/lisp/langs/icejam-lang-markdown.el b/lisp/langs/icejam-lang-markdown.el index 1422bda..7010d31 100644 --- a/lisp/langs/icejam-lang-markdown.el +++ b/lisp/langs/icejam-lang-markdown.el @@ -9,7 +9,7 @@ :defer t :init (setq-default markdown-command "pandoc")) -(defun icejam-lang-markdown/activate-markdown-mode () +(defun icejam-lang/activate-markdown-mode () "Reconfigure markdown mode for your own purposes." (icejam/set-indent 2) (column-enforce-n 10000) @@ -21,7 +21,7 @@ (define-key markdown-mode-map (kbd "C-c ") nil) (define-key markdown-mode-map (kbd "C-c C-v") 'markdown-preview)) -(add-hook 'markdown-mode-hook 'icejam-lang-markdown/activate-markdown-mode) +(add-hook 'markdown-mode-hook 'icejam-lang/activate-markdown-mode) (add-hook 'markdown-mode-hook 'display-line-numbers-mode) (provide 'icejam-lang-markdown) diff --git a/lisp/langs/icejam-lang-ocaml.el b/lisp/langs/icejam-lang-ocaml.el index c970099..9f7e22f 100644 --- a/lisp/langs/icejam-lang-ocaml.el +++ b/lisp/langs/icejam-lang-ocaml.el @@ -66,8 +66,8 @@ ;; Use tuareg-opam with lock files (add-to-list 'auto-mode-alist '("\\.opam.locked\\'" . tuareg-opam-mode)) -(transient-define-prefix icejam-lang-ocaml/reasonml-context-menu () - "ReasonML Actions" +(transient-define-prefix icejam-lang/reasonml-context-menu () + "ReasonML Actions." ["ReasonML actions" ["" ("r" "Reload" icejam-revert-buffer-no-confirm) @@ -79,16 +79,16 @@ ("q" "Quit" keyboard-quit)]) -(defun icejam-lang-ocaml/activate-reason-mode () +(defun icejam-lang/activate-reason-mode () "Generate reason config." (define-key - reason-mode-map (kbd "C-c l") 'icejam-lang-ocaml/reasonml-context-menu)) + reason-mode-map (kbd "C-c l") 'icejam-lang/reasonml-context-menu)) ;; Reason setup (add-hook 'reason-mode-hook (lambda () (add-hook 'before-save-hook #'refmt-before-save))) -(add-hook 'reason-mode-hook 'icejam-lang-ocaml/activate-reason-mode) +(add-hook 'reason-mode-hook 'icejam-lang/activate-reason-mode) (add-hook 'reason-mode-hook 'merlin-mode) (provide 'icejam-lang-ocaml) diff --git a/lisp/langs/icejam-lang-other.el b/lisp/langs/icejam-lang-other.el index 588b47f..f436c21 100644 --- a/lisp/langs/icejam-lang-other.el +++ b/lisp/langs/icejam-lang-other.el @@ -24,11 +24,11 @@ ;; Yaml (use-package yaml-mode :straight t :defer t :requires (lsp)) -(defun icejam-lang-yaml/activate-yaml-mode () +(defun icejam-lang/activate-yaml-mode () "Activate yaml-mode." (lsp)) -(add-hook 'yaml-mode-hook 'icejam-lang-yaml/activate-yaml-mode) +(add-hook 'yaml-mode-hook 'icejam-lang/activate-yaml-mode) ;; Other text files (use-package json-mode :straight t :defer t) diff --git a/lisp/langs/icejam-lang-php.el b/lisp/langs/icejam-lang-php.el index e1654a2..9751026 100644 --- a/lisp/langs/icejam-lang-php.el +++ b/lisp/langs/icejam-lang-php.el @@ -32,7 +32,7 @@ ("q" "Quit" keyboard-quit)]) -(defun icejam-lang-php/activate-php-mode () +(defun icejam-lang/activate-php-mode () "All things php." (icejam/set-indent 4) (column-enforce-n 80) @@ -43,7 +43,7 @@ (add-to-list (make-local-variable 'company-backends) '(company-capf company-yasnippet))) -(add-hook 'php-mode-hook 'icejam-lang-php/activate-php-mode) +(add-hook 'php-mode-hook 'icejam-lang/activate-php-mode) (provide 'icejam-lang-php) ;;; icejam-lang-php.el ends here diff --git a/lisp/langs/icejam-lang-python.el b/lisp/langs/icejam-lang-python.el index 35aab4d..7788f1e 100644 --- a/lisp/langs/icejam-lang-python.el +++ b/lisp/langs/icejam-lang-python.el @@ -19,7 +19,7 @@ ("q" "Quit" keyboard-quit)]) -(defun icejam-lang-python/activate-python-mode () +(defun icejam-lang/activate-python-mode () (lsp) (column-enforce-n 99) @@ -30,7 +30,7 @@ (add-to-list (make-local-variable 'company-backends) '(company-capf company-yasnippet))) -(add-hook 'python-mode-hook 'icejam-lang-python/activate-python-mode) +(add-hook 'python-mode-hook 'icejam-lang/activate-python-mode) (provide 'icejam-lang-python) ;;; icejam-lang-python.el ends here diff --git a/lisp/langs/icejam-lang-ruby.el b/lisp/langs/icejam-lang-ruby.el index b8db5ae..24cbc0e 100644 --- a/lisp/langs/icejam-lang-ruby.el +++ b/lisp/langs/icejam-lang-ruby.el @@ -10,7 +10,7 @@ (use-package rbs-mode :straight t :defer t) (use-package enh-ruby-mode - :requires (rspec-mode ruby-end) + :requires (rspec-mode ruby-end lsp) :straight t :defer t) @@ -24,6 +24,9 @@ ;; Do not insert magic encoding comment at the begining of each file (setq ruby-insert-encoding-magic-comment nil) + ;; Start LSP + (lsp) + ;; Company list override (add-to-list (make-local-variable 'company-backends) '(company-capf company-yasnippet))) @@ -33,7 +36,7 @@ (add-hook 'enh-ruby-mode-hook 'ruby-end-mode) (eval-after-load 'rspec-mode '(rspec-install-snippets)) -(add-hook 'enh-ruby-mode-hook 'icejam/activate-ruby-mod) +(add-hook 'enh-ruby-mode-hook 'icejam/activate-ruby-mode) ;; (add-hook 'enh-ruby-mode-hook 'lsp-deferred) (provide 'icejam-lang-ruby) diff --git a/lisp/themes/icejam-tronesque.el b/lisp/themes/icejam-tronesque.el index 71b998f..b232896 100644 --- a/lisp/themes/icejam-tronesque.el +++ b/lisp/themes/icejam-tronesque.el @@ -328,7 +328,7 @@ More information on Tron: https://en.wikipedia.org/wiki/Tron") :box `(:line-width 2 :color ,orange :style nil)) ) -(defun tronesque-mode-line () +(defun icejam/tronesque-mode-line () "Change default mode-line." (interactive) (setq-default @@ -364,7 +364,7 @@ More information on Tron: https://en.wikipedia.org/wiki/Tron") mode-line-end-spaces))) ;; Helper function -(defun shorten-directory (dir max-length) +(defun icejam/shorten-directory (dir max-length) "Show up a directory named `DIR' with `MAX-LENGTH' characters." (let ((path (reverse (split-string (abbreviate-file-name dir) "/"))) (output ""))