Compare commits
9 Commits
43c52516a6
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| e57257a3a5 | |||
| bee1efe12a | |||
| d188fa1e8f | |||
| 68f12a2a61 | |||
| 24ff0c980b | |||
| 70d6266bed | |||
| 741135b1b4 | |||
| ada3ec0593 | |||
| 3702c86f42 |
14
custom.el
14
custom.el
@@ -6,13 +6,13 @@
|
||||
;; If there is more than one, they won't work right.
|
||||
'(package-selected-packages
|
||||
'(aider browse-kill-ring caddyfile-mode cape cider company corfu
|
||||
dockerfile-mode dumb-jump dumber-jump emacs-lldb
|
||||
exec-path-from-shell flycheck fsharp-mode haskell-mode
|
||||
haskell-ts-mode helm htmlize idris-mode marginalia
|
||||
markdown-ts-mode multiple-cursors odin-mode orderless
|
||||
org-mode parinfer-rust-mode realgud-lldb rg sly
|
||||
terraform-mode tree-sitter-langs vertico visual-fill-column
|
||||
yasnippet-snippets zig-mode))
|
||||
dockerfile-mode dumb-jump dumber-jump emacs-lldb emmet
|
||||
emmet-mode exec-path-from-shell flycheck fsharp-mode
|
||||
haskell-mode haskell-ts-mode helm htmlize idris-mode
|
||||
marginalia markdown-ts-mode move-text multiple-cursors
|
||||
odin-mode orderless org-mode parinfer-rust-mode
|
||||
realgud-lldb rg sly terraform-mode tree-sitter-langs
|
||||
vertico visual-fill-column yasnippet-snippets zig-mode))
|
||||
'(safe-local-variable-directories '("/Users/grant/programming/project/edit/"))
|
||||
'(safe-local-variable-values
|
||||
'((Package . CL-USER) (Syntax . ANSI-Common-Lisp) (Base . 10)
|
||||
|
||||
179
init.el
179
init.el
@@ -1,4 +1,4 @@
|
||||
;; -*- lexical-binding: t; -*-
|
||||
;;; -*- lexical-binding: t; -*-
|
||||
|
||||
(require 'package)
|
||||
(add-to-list 'package-archives
|
||||
@@ -8,12 +8,12 @@
|
||||
(require 'use-package-ensure)
|
||||
(require 'bind-key)
|
||||
|
||||
; If startup times are slow
|
||||
; (setq use-package-verbose t)
|
||||
;; If startup times are slow
|
||||
;; (setq use-package-verbose t)
|
||||
;; (setq use-package-compute-statistics t)
|
||||
|
||||
(add-to-list 'load-path (concat (file-name-parent-directory user-init-file) "local-lisp/"))
|
||||
(add-to-list 'load-path (concat user-emacs-directory "local-lisp/"))
|
||||
|
||||
(use-package emacs)
|
||||
(setq tab-bar-show nil)
|
||||
(setq inhibit-startup-message t)
|
||||
(setq initial-scratch-message nil)
|
||||
@@ -36,6 +36,8 @@
|
||||
(setq-default tab-width 4)
|
||||
(set-face-attribute 'default nil :height 160 :family "Berkeley Mono")
|
||||
(global-hl-line-mode 1)
|
||||
(pixel-scroll-precision-mode 1)
|
||||
(kill-ring-deindent-mode 1)
|
||||
|
||||
(setq use-package-always-ensure t)
|
||||
(setq mac-command-modifier 'control)
|
||||
@@ -43,14 +45,14 @@
|
||||
|
||||
(setq-default cursor-type 'bar)
|
||||
|
||||
(defun hgh/disable-bar-cursor ()
|
||||
(defun hgh/disable-cursor-blink ()
|
||||
(blink-cursor-mode -1))
|
||||
|
||||
(defun hgh/enable-bar-cursor ()
|
||||
(defun hgh/enable-cursor-blink ()
|
||||
(blink-cursor-mode 1))
|
||||
|
||||
(add-hook 'activate-mark-hook 'hgh/disable-bar-cursor)
|
||||
(add-hook 'deactivate-mark-hook 'hgh/enable-bar-cursor)
|
||||
(add-hook 'activate-mark-hook 'hgh/disable-cursor-blink)
|
||||
(add-hook 'deactivate-mark-hook 'hgh/enable-cursor-blink)
|
||||
|
||||
(when is-mac
|
||||
(setq dired-use-ls-dired t
|
||||
@@ -59,7 +61,6 @@
|
||||
|
||||
;; Add .asdf to exec-path
|
||||
(when (file-exists-p (file-truename "~/.asdf"))
|
||||
(setq env-changed t)
|
||||
(push (file-truename "~/.asdf/shims") exec-path)
|
||||
(push (file-truename "~/.asdf/bin") exec-path))
|
||||
|
||||
@@ -67,8 +68,7 @@
|
||||
(setq exec-path
|
||||
(cl-remove-if (lambda (s)
|
||||
(and (< 5 (length s))
|
||||
(string= (substring s 0 6) "/mnt/c")
|
||||
(setq env-changed t)))
|
||||
(string= (substring s 0 6) "/mnt/c")))
|
||||
exec-path))
|
||||
|
||||
(when exec-path
|
||||
@@ -99,7 +99,6 @@
|
||||
(keymap-global-set "M-i" #'imenu)
|
||||
(keymap-global-set "<f5>" #'compile)
|
||||
(keymap-global-set "C-c r r" #'revert-buffer)
|
||||
(keymap-global-set "C-c C-c" #'comment-or-uncomment-region)
|
||||
(keymap-global-set "M-]" #'forward-paragraph)
|
||||
(keymap-global-set "M-[" #'backward-paragraph)
|
||||
(keymap-global-set "C-h h" #'eldoc)
|
||||
@@ -111,6 +110,12 @@
|
||||
(keymap-global-set "M-1" #'delete-other-windows)
|
||||
(keymap-global-set "M-2" #'split-window-below)
|
||||
(keymap-global-set "M-3" #'split-window-right)
|
||||
(keymap-global-set "C-," #'duplicate-dwim)
|
||||
|
||||
(keymap-set completion-list-mode-map "M-n" #'minibuffer-next-completion)
|
||||
(keymap-set completion-list-mode-map "M-p" #'minibuffer-previous-completion)
|
||||
(keymap-set completion-in-region-mode-map "M-n" #'minibuffer-next-completion)
|
||||
(keymap-set completion-in-region-mode-map "M-p" #'minibuffer-previous-completion)
|
||||
|
||||
(require 'dired)
|
||||
(setq dired-dwim-target t)
|
||||
@@ -118,6 +123,24 @@
|
||||
|
||||
(load-theme 'modus-vivendi t)
|
||||
|
||||
;; Let's prefer completion-preview for now if it's available
|
||||
(if (version<= "30.1" emacs-version)
|
||||
(use-package completion-preview
|
||||
:ensure nil
|
||||
:demand t
|
||||
:bind
|
||||
(:map completion-preview-active-mode-map
|
||||
("M-n" . completion-preview-next-candidate)
|
||||
("M-p" . completion-preview-preview-candidate))
|
||||
:config
|
||||
(global-completion-preview-mode t))
|
||||
(use-package corfu
|
||||
:custom
|
||||
(corfu-auto t)
|
||||
(corfu-cycle t)
|
||||
:config
|
||||
(global-corfu-mode 1)))
|
||||
|
||||
(use-package exec-path-from-shell
|
||||
:when is-mac
|
||||
:config
|
||||
@@ -147,7 +170,7 @@
|
||||
:defer t)
|
||||
|
||||
(use-package haskell-mode
|
||||
:defer t)
|
||||
:mode "\\.hs\\'")
|
||||
|
||||
(use-package company)
|
||||
|
||||
@@ -156,17 +179,19 @@
|
||||
(when (and
|
||||
(not (s-contains? "sbcl" buf))
|
||||
(not (s-contains? "ocicl" buf))
|
||||
(not (s-contains? "elpa" buf))
|
||||
(not (s-contains? "emacs-plus" buf))
|
||||
(not (string-prefix-p "*sly" buf)))
|
||||
(parinfer-rust-mode 1)
|
||||
(electric-quote-mode 1))))
|
||||
(parinfer-rust-mode 1))))
|
||||
|
||||
(use-package parinfer-rust-mode
|
||||
:defer t
|
||||
:hook ((lisp-mode emacs-lisp-mode) . enable-parinfer)
|
||||
:config
|
||||
(setq parinfer-rust-disable-troublesome-modes t))
|
||||
:custom
|
||||
(parinfer-rust-disable-troublesome-modes t))
|
||||
|
||||
(use-package sly
|
||||
:defer t
|
||||
:mode "\\.lisp\\'"
|
||||
:custom
|
||||
(inferior-lisp-program "/opt/homebrew/bin/sbcl"))
|
||||
|
||||
@@ -193,13 +218,6 @@
|
||||
(setq completion-styles '(orderless basic)
|
||||
completion-category-overrides '((file (styles basic partial-completion)))))
|
||||
|
||||
(use-package corfu
|
||||
:custom
|
||||
(corfu-auto t)
|
||||
(corfu-cycle t)
|
||||
:config
|
||||
(global-corfu-mode 1))
|
||||
|
||||
(use-package cape
|
||||
:init
|
||||
(add-to-list 'completion-at-point-functions #'cape-dabbrev))
|
||||
@@ -284,21 +302,21 @@
|
||||
(file-name-nondirectory (directory-file-name default-directory))
|
||||
" rg*"))))
|
||||
|
||||
(defun hgh/set-cursor-type-box (&rest _args)
|
||||
(setq-local cursor-type 'box))
|
||||
|
||||
(defun hgh/set-cursor-type-bar (&rest _args)
|
||||
(setq-local cursor-type 'bar))
|
||||
|
||||
(use-package multiple-cursors
|
||||
:hook ((multiple-cursors-mode-disabled . hgh/set-cursor-type-bar))
|
||||
:bind (("C->" . mc/mark-next-like-this)
|
||||
("C-<" . mc/mark-previous-like-this))
|
||||
:init
|
||||
(add-hook 'multiple-cursors-mode-enabled-hook
|
||||
(lambda ()
|
||||
(remove-hook 'activate-mark-hook 'hgh/disable-bar-cursor)
|
||||
(remove-hook 'deactivate-mark-hook 'hgh/disable-bar-cursor)
|
||||
(blink-cursor-mode 1)))
|
||||
(add-hook 'multiple-cursors-mode-disabled-hook
|
||||
(lambda ()
|
||||
(add-hook 'activate-mark-hook 'hgh/disable-bar-cursor)
|
||||
(add-hook 'deactivate-mark-hook 'hgh/disable-bar-cursor)
|
||||
(blink-cursor-mode 1)))
|
||||
:config
|
||||
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
|
||||
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this))
|
||||
;; NOTE(grant): I have no idea if the package is deferred or autoloaded anymore
|
||||
(advice-add 'mc/mark-next-like-this :before #'hgh/set-cursor-type-box)
|
||||
(advice-add 'mc/mark-previous-like-this :before #'hgh/set-cursor-type-box))
|
||||
|
||||
|
||||
(use-package yasnippet
|
||||
:diminish
|
||||
@@ -310,7 +328,7 @@
|
||||
:after (yasnippet))
|
||||
|
||||
(use-package markdown-mode
|
||||
:ensure t)
|
||||
:mode "\\.md\\'")
|
||||
|
||||
;; Run Prettier only in certain major-modes before saving:
|
||||
(defvar hgh/prettier-modes
|
||||
@@ -318,7 +336,7 @@
|
||||
"List of major modes where Prettier should auto-run on save.")
|
||||
|
||||
(defun hgh/run-prettier-if-appropriate ()
|
||||
"Run Prettier on the buffer’s file if `major-mode` is in `my/prettier-modes`."
|
||||
"Run Prettier on the buffer's file if `major-mode` is in `my/prettier-modes`."
|
||||
(when (and (buffer-file-name)
|
||||
(member major-mode hgh/prettier-modes))
|
||||
;; call the prettier CLI; output errors to *Prettier Errors* buffer
|
||||
@@ -329,32 +347,34 @@
|
||||
|
||||
(add-hook 'after-save-hook #'hgh/run-prettier-if-appropriate)
|
||||
|
||||
(use-package terraform-mode)
|
||||
(use-package terraform-mode
|
||||
:mode ("\\.tf\\'" "\\.tfvars\\'"))
|
||||
|
||||
(use-package cider
|
||||
:defer t)
|
||||
|
||||
(use-package org
|
||||
:defer t
|
||||
:ensure nil
|
||||
:mode ("\\.org\\'" . org-mode)
|
||||
:hook (org-mode . org-indent-mode)
|
||||
:custom
|
||||
(org-todo-keywords '((sequence "TODO" "INPROGRESS" "DONE")))
|
||||
(org-support-shift-select t)
|
||||
(org-default-notes-file (concat org-directory "/captures.org"))
|
||||
(org-html-validation-link nil)
|
||||
(org-html-head-include-default-style nil)
|
||||
(org-html-head-include-scripts nil)
|
||||
(org-html-head "<link rel=\"stylesheet\" href=\"https://cdn.simplecss.org/simple.min.css\" />")
|
||||
(org-capture-templates
|
||||
'(("t" "Task" entry (file+headline "~/org/inbox.org" "Tasks")
|
||||
"* TODO %?\n%U\n%i\n%a")
|
||||
("n" "Note" entry (file+headline "~/org/inbox.org" "Notes")
|
||||
"* %?\n%U\n%i\n%a")
|
||||
("i" "Idea" entry (file+headline "~/org/inbox.org" "Ideas")
|
||||
"* %?\n%U\n%i\n%a")))
|
||||
|
||||
:config
|
||||
(org-indent-mode)
|
||||
(require 'ox-publish)
|
||||
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
'((shell . t)))
|
||||
|
||||
(setq org-publish-use-timestamps-flag nil)
|
||||
|
||||
(setq org-publish-project-alist
|
||||
(org-publish-use-timestamps-flag nil)
|
||||
(org-publish-project-alist
|
||||
(list
|
||||
(list "writings"
|
||||
:base-directory "~/Documents/writings/content"
|
||||
@@ -364,30 +384,63 @@
|
||||
:time-stamp-file nil
|
||||
:section-numbers nil
|
||||
:with-creator t
|
||||
:with-author nil))))
|
||||
:with-author nil)))
|
||||
|
||||
:config
|
||||
(require 'ox-publish)
|
||||
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
'((shell . t))))
|
||||
|
||||
(use-package dumber-jump
|
||||
:init
|
||||
(add-hook 'xref-backend-functions #'dumber-jump-xref-activate))
|
||||
|
||||
(use-package flycheck)
|
||||
; :init (global-flycheck-mode)
|
||||
|
||||
|
||||
(use-package idris-mode)
|
||||
|
||||
(use-package htmlize)
|
||||
|
||||
(use-package zig-mode)
|
||||
(use-package zig-mode
|
||||
:mode "\\.zig\\'")
|
||||
|
||||
(use-package fsharp-mode)
|
||||
(use-package fsharp-mode
|
||||
:mode "\\.fs\\'")
|
||||
|
||||
(use-package caddyfile-mode)
|
||||
(use-package caddyfile-mode
|
||||
:defer t)
|
||||
|
||||
(use-package dockerfile-mode)
|
||||
(use-package dockerfile-mode
|
||||
:defer t)
|
||||
|
||||
(use-package odin-mode
|
||||
:mode "\\.odin\\'"
|
||||
:ensure nil)
|
||||
|
||||
(use-package emacs-lisp-mode
|
||||
:ensure nil
|
||||
:bind (:map emacs-lisp-mode-map ("C-c C-c" . eval-defun)))
|
||||
|
||||
(use-package codex
|
||||
:commands codex
|
||||
:custom
|
||||
(codex-provider nil)
|
||||
(codex-model nil)
|
||||
:ensure nil)
|
||||
|
||||
(use-package move-text
|
||||
:bind (("M-<up>" . move-text-up)
|
||||
("M-<down>" . move-text-down)))
|
||||
|
||||
(use-package emmet-mode
|
||||
:hook (sgml-mode tsx-ts-mode)
|
||||
:custom
|
||||
(emmet-jsx-major-modes
|
||||
'(rjsx-mode
|
||||
typescript-tsx-mode
|
||||
js-jsx-mode
|
||||
js2-jsx-mode
|
||||
jsx-mode
|
||||
js-mode
|
||||
;; Need to add this
|
||||
tsx-ts-mode)))
|
||||
|
||||
@@ -82,13 +82,13 @@ http_headers = {
|
||||
:type 'boolean
|
||||
:group 'codex)
|
||||
|
||||
(defcustom codex-sessions-file (concat (file-name-parent-directory user-init-file) "codex-sessions")
|
||||
(defcustom codex-sessions-file (concat user-emacs-directory "codex-sessions")
|
||||
"What the default name should be fore the codex chat buffer."
|
||||
:type 'string
|
||||
:group 'codex)
|
||||
|
||||
(defcustom codex-sessions-history-dir
|
||||
(concat (file-name-parent-directory user-init-file) "codex-sessions-history/")
|
||||
(concat user-emacs-directory "codex-sessions-history/")
|
||||
"Directory where Codex session histories are stored."
|
||||
:type 'directory
|
||||
:group 'codex)
|
||||
@@ -149,8 +149,8 @@ http_headers = {
|
||||
(insert-file-contents history-file)
|
||||
(goto-char (point-max))
|
||||
(unless (codex--set-prompt-start-from-buffer)
|
||||
(user-prompt)))
|
||||
(user-prompt)))))
|
||||
(codex--user-prompt)))
|
||||
(codex--user-prompt)))))
|
||||
|
||||
(defun list->hash-set (list &optional test)
|
||||
"Return a hash table whose keys are the elements of LIST."
|
||||
@@ -162,13 +162,13 @@ http_headers = {
|
||||
`(with-current-buffer (get-buffer-create codex-buffer-name)
|
||||
,@body))
|
||||
|
||||
(defun prompt-delimiter ()
|
||||
(defun codex--prompt-delimiter ()
|
||||
(newline)
|
||||
(insert "---")
|
||||
(newline))
|
||||
|
||||
(defun user-prompt ()
|
||||
(prompt-delimiter)
|
||||
(defun codex--user-prompt ()
|
||||
(codex--prompt-delimiter)
|
||||
(insert "User:")
|
||||
(newline)
|
||||
(setq codex--prompt-start (point-marker)))
|
||||
@@ -179,7 +179,7 @@ http_headers = {
|
||||
(insert "Codex:")
|
||||
(newline)
|
||||
(insert msg)
|
||||
(user-prompt)
|
||||
(codex--user-prompt)
|
||||
(codex--save-session-history)))
|
||||
|
||||
(defun codex--parse-session-id (jsons)
|
||||
@@ -219,12 +219,6 @@ http_headers = {
|
||||
(unless (member codex--session-id (mapcar #'cdr sessions))
|
||||
(codex--write-sessions-file (cons (cons prompt codex--session-id) sessions)))))
|
||||
|
||||
(defun codex--format-response (msg)
|
||||
(with-temp-buffer
|
||||
(insert msg)
|
||||
(fill-region (point-min) (point-max))
|
||||
(buffer-string)))
|
||||
|
||||
(defun codex--send (prompt)
|
||||
"Sends a prompt to codex."
|
||||
(let* ((buf (generate-new-buffer " *codex--send*"))
|
||||
@@ -250,7 +244,6 @@ http_headers = {
|
||||
(thread-first
|
||||
(buffer-string)
|
||||
codex--parse-msg-from-response
|
||||
codex--format-response
|
||||
codex--write-to-chat)
|
||||
(codex--ensure-session-in-sessions-file prompt)
|
||||
(kill-buffer)))
|
||||
|
||||
Reference in New Issue
Block a user