I broke some stuff, this fixes it
All checks were successful
/ Test config on 20 (push) Successful in 25s

This commit is contained in:
Maciej 2024-08-03 22:10:57 +03:00
parent f0340183f6
commit ff2dbc1796
Signed by: maciej
GPG key ID: 41D62D42D3B0D765
9 changed files with 142 additions and 84 deletions

View file

@ -114,6 +114,7 @@
;;;;;;;;;;;;;;;;; Treemacs
(use-package treemacs :straight t :defer t
:config (treemacs-follow-mode 1) ;; Follow the current project.
:bind (:map icejam-keys-mode-map
([(hyper b)] . treemacs))) ;; Show the folder tree

View file

@ -10,8 +10,42 @@
;;; Code:
;; Set font face
;; (defvar icejam-font "Monoid")
;; (defvar icejam-font "Fira Mono")
;; (defvar icejam-font "Fira Code")
;; (defvar icejam-font "Red Hat Mono")
;; (defvar icejam-font "Agave Nerd Font Mono")
;; (defvar icejam-font "Input Mono Condensed")
;; (defvar icejam-font "SF Mono")
;; (defvar icejam-font "Monaco")
;; (defvar icejam-font "JetBrains Mono")
;; (defvar icejam-font "JuliaMono")
;; (defvar icejam-font "Rec Mono Semicasual")
;; (defvar icejam-font "Victor Mono")
;; (defvar icejam-font "IBM Plex Mono")
(defconst icejam-font "Iosevka Term"
"Default font.")
(defconst icejam-font-size 14
"Default size of then font.
It is used to calculated the size in relation to the screen
in icejam/set-font-to-screen.")
(defcustom icejam-mut-font
icejam-font
"Current font, defaults to the one loaded in the beginning."
:type 'string
:group 'icejam)
(defcustom icejam-mut-font-size
icejam-font-size
"Current font size."
:type 'integer
:group 'icejam)
;;;;;;;;;;;;;;;;;;;;;; Font configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; First, let's silence a warning about free variables
(defvar lsp-ui-doc-frame-hook)
(defun icejam/set-lsp-ui-font-hook ()
"Reset LSP IO font to specified icejam-font and icejam-font-size."
(setq lsp-ui-doc-frame-hook nil)
@ -19,13 +53,13 @@
(lambda (frame _w)
(set-face-attribute
'default frame :font
(format "%s %d" icejam-font (- icejam-font-size 2))))))
(format "%s %d" icejam-mut-font (- icejam-mut-font-size 2))))))
(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)
(setq icejam-font-size size)
(setq icejam-mut-font name)
(setq icejam-mut-font-size size)
(set-face-attribute 'default nil :font (format "%s %d" name size))
@ -49,22 +83,6 @@
;; Call LSP-UI hook
(icejam/set-lsp-ui-font-hook))
(defvar icejam-font "Iosevka Term")
;; (defvar icejam-font "Monoid")
;; (defvar icejam-font "Fira Mono")
;; (defvar icejam-font "Fira Code")
;; (defvar icejam-font "Red Hat Mono")
;; (defvar icejam-font "Agave Nerd Font Mono")
;; (defvar icejam-font "Input Mono Condensed")
;; (defvar icejam-font "SF Mono")
;; (defvar icejam-font "Monaco")
;; (defvar icejam-font "JetBrains Mono")
;; (defvar icejam-font "JuliaMono")
;; (defvar icejam-font "Rec Mono Semicasual")
;; (defvar icejam-font "Victor Mono")
;; (defvar icejam-font "IBM Plex Mono")
(defvar icejam-font-size 14)
(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
@ -102,12 +120,12 @@
(defun icejam/set-font-size (size)
"Set font to a specified SIZE."
(interactive "nEnter size for font: ")
(icejam/set-font icejam-font size))
(icejam/set-font icejam-mut-font 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)))
(set-frame-font (format "%s %d" icejam-mut-font new-size)))
;; Remove ugly black line
(set-face-attribute 'vertical-border nil :foreground

View file

@ -6,35 +6,45 @@
(require 'icejam-keys-mode)
(use-package helpful :straight t :defer t)
(use-package counsel :straight t :defer t :requires (helpful)
:config
;; Use helpful for showing Elisp documentation
(setq counsel-describe-function-function #'helpful-callable)
(setq counsel-describe-variable-function #'helpful-variable))
(use-package swiper :straight t :defer t)
(use-package ivy
:requires (counsel swiper helpful)
:straight t
:defer t
(use-package ivy :straight t :defer t
:config (setq ivy-use-virtual-buffers t ;; Display recent files in ivy-switch-buffer
ivy-count-format "(%d of %d) " ;; Current candidate count style
ivy-wrap t ;; Wrap around completions
ivy-display-style 'fancy ;; Formatting style
))
ivy-display-style 'fancy) ;; Formatting style
(ivy-mode 1))
(use-package swiper :straight t)
(use-package counsel :straight t :requires (helpful ivy swiper))
(with-eval-after-load 'counsel
(define-key icejam-keys-mode-map (kbd "C-c a") 'counsel-rg)
(define-key icejam-keys-mode-map (kbd "C-c t") 'counsel-find-file)
(define-key icejam-keys-mode-map (kbd "C-c C-s") 'swiper) ;; Find things by regexp
(define-key icejam-keys-mode-map (kbd "M-x") 'counsel-M-x) ;; M-x on steroids
;; Help bindings
(define-key icejam-keys-mode-map (kbd "<f1> f") 'counsel-describe-function)
(define-key icejam-keys-mode-map (kbd "<f1> v") 'counsel-describe-variable)
(define-key icejam-keys-mode-map (kbd "<f1> b") 'counsel-descbinds)
(define-key icejam-keys-mode-map (kbd "<f1> x") 'helpful-command)
(define-key icejam-keys-mode-map (kbd "<f1> l") 'counsel-find-library)
(define-key icejam-keys-mode-map (kbd "C-h f") 'counsel-describe-function)
(define-key icejam-keys-mode-map (kbd "C-h v") 'counsel-describe-variable)
(define-key icejam-keys-mode-map (kbd "C-h b") 'counsel-descbinds)
(define-key icejam-keys-mode-map (kbd "C-h x") 'helpful-command)
(define-key icejam-keys-mode-map (kbd "C-h l") 'counsel-find-library)
(setq counsel-describe-function-function 'helpful-callable)
(setq counsel-describe-variable-function 'helpful-variable)
;; Other stuff
(define-key icejam-keys-mode-map (kbd "<f2> i") 'counsel-info-lookup-symbol)
(define-key icejam-keys-mode-map (kbd "<f2> u") 'counsel-unicode-char))
(define-key icejam-keys-mode-map (kbd "C-c a") 'counsel-rg)
(define-key icejam-keys-mode-map (kbd "C-c t") 'counsel-find-file)
(define-key icejam-keys-mode-map (kbd "C-c C-s") 'swiper) ;; Find things by regexp
(define-key icejam-keys-mode-map (kbd "M-x") 'counsel-M-x) ;; M-x on steroids
;; List all key bindings there are.
(define-key icejam-keys-mode-map (kbd "<f1> f") 'counsel-describe-function)
(define-key icejam-keys-mode-map (kbd "<f1> v") 'counsel-describe-variable)
(define-key icejam-keys-mode-map (kbd "<f1> l") 'counsel-find-library)
(define-key icejam-keys-mode-map (kbd "<f2> i") 'counsel-info-lookup-symbol)
(define-key icejam-keys-mode-map (kbd "<f2> u") 'counsel-unicode-char)
(provide 'icejam-ivy)
;;; icejam-ivy.el ends here

View file

@ -71,7 +71,7 @@
""
("k" "Kill Buffer" kill-buffer-and-window)]])
(transient-define-prefix icejam/language-context-menu ()
(transient-define-prefix icejam/language-menu ()
"Language (Buffer) Commands."
[""
["Buffer"
@ -112,13 +112,32 @@
("d" "Smaller" (lambda () (interactive) (text-scale-decrease 1)))
("r" "Reset" (lambda () (interactive) (text-scale-adjust 0)))]])
(defcustom icejam-language-transient-alist
'()
"List of functions to call for language transient."
:group 'icejam
:type '(repeat (cons (symbol :tag "Major mode name")
(symbol :tag "Function to call"))))
;; Use different thing for different language
(defun icejam-language-transient-for-mode (&optional maybe-mode)
"Get transient for major mode.
You can pass MAYBE-MODE to find mode explicitly."
(let* ((mode (if maybe-mode maybe-mode major-mode)))
(alist-get mode icejam-language-transient-alist 'icejam/language-menu)))
(defun icejam-transient-for-lang ()
"Call transient for current major mode."
(interactive)
(funcall (icejam-language-transient-for-mode)))
(define-key icejam-keys-mode-map (kbd "C-c p") 'icejam/project-menu)
(define-key icejam-keys-mode-map (kbd "C-c c") 'icejam/code-menu)
(define-key icejam-keys-mode-map (kbd "C-c w") 'icejam/window-menu)
(define-key icejam-keys-mode-map (kbd "C-c s") 'icejam/history-menu)
(define-key icejam-keys-mode-map (kbd "C-c f") 'icejam/font-menu)
(define-key icejam-keys-mode-map (kbd "C-c m") 'icejam/move-menu)
(define-key icejam-keys-mode-map (kbd "C-c l") 'icejam/language-context-menu)
(define-key icejam-keys-mode-map (kbd "C-c l") 'icejam-transient-for-lang)
(provide 'icejam-transient)
;;; icejam-transient.el ends here

View file

@ -3,6 +3,7 @@
;;; Code:
(require 'icejam-prog-mode)
(require 'icejam-transient)
(declare-function column-enforce-n "column-enforce-mode" (number))
@ -12,18 +13,20 @@
["Buffer"
("r" "Reload" icejam-revert-buffer-no-confirm)
("i" "Indent" icejam-mark-and-indent-whole-buffer)
("d" "Explain" helpful-at-point)
("e" "Show Errors" flycheck-list-errors)]]
[""
("q" "Quit" keyboard-quit)])
(add-to-list
'icejam-language-transient-alist '(emacs-lisp-mode . icejam/elisp-lang-menu))
(defun icejam/activate-emacs-lisp-mode ()
"Goodies for editing Emacs files."
(icejam/set-indent 2) ;; Default indentation of 2 characters
(column-enforce-n 80)
(setq-default indent-tabs-mode nil)
(define-key emacs-lisp-mode-map (kbd "C-c l") 'icejam/elisp-lang-menu)
;; Company list override
(add-to-list (make-local-variable 'company-backends)
'(company-yasnippet company-capf)))

View file

@ -31,6 +31,9 @@
[""
("q" "Quit" keyboard-quit)])
(add-to-list
'icejam-language-transient-alist '(elixir-ts-mode . icejam/elixir-lang-menu))
(defun icejam/activate-elixir-ts-mode ()
"All things Elixir."
(icejam/set-indent 2)
@ -43,9 +46,6 @@
;; 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
(add-to-list (make-local-variable 'company-backends)
'(company-capf company-yasnippet)))

View file

@ -35,6 +35,9 @@
[""
("q" "Quit" keyboard-quit)])
(add-to-list
'icejam-language-transient-alist '(elixir-ts-mode . icejam/elixir-lang-menu))
(defun icejam/load-ocaml-site-packages ()
"Generate ocaml config."
(let ((opam-share (ignore-errors (car (process-lines "opam" "var" "share")))))
@ -47,8 +50,7 @@
(autoload 'dune "dune" nil t nil)
;; Use opam switch to lookup ocamlmerlin binary
(setq merlin-command 'opam)))
(define-key tuareg-mode-map (kbd "C-c l") 'icejam-lang-ocaml/context-menu))
(setq merlin-command 'opam))))
;; OCaml setup
(add-hook 'tuareg-mode-hook 'merlin-mode)

View file

@ -5,7 +5,10 @@
(require 'icejam-prog-mode)
(require 'icejam-transient)
(transient-define-prefix icejam-lang-python/transient-context-menu ()
(declare-function lsp nil)
(declare-function column-enforce-n "column-enforce-mode" (number))
(transient-define-prefix icejam/python-lang-menu ()
"Python Buffer Commands."
[""
["LSP"
@ -18,14 +21,15 @@
[""
("q" "Quit" keyboard-quit)])
;; Add lookup for C-c l transient menu
(add-to-list
'icejam-language-transient-alist '(python-mode . icejam/python-lang-menu))
(defun icejam-lang/activate-python-mode ()
"Activate python mode."
(lsp)
(column-enforce-n 99)
(define-key python-mode-map (kbd "C-c l") 'icejam-lang-python/transient-context-menu)
;; Company list override
(add-to-list (make-local-variable 'company-backends)
'(company-capf company-yasnippet)))