diff --git a/custom.el b/custom.el index b07030a..ce2356a 100644 --- a/custom.el +++ b/custom.el @@ -4,13 +4,14 @@ ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. + '(apheleia-log-only-errors nil) '(custom-enabled-themes '(deeper-blue)) '(package-selected-packages - '(apheleia cape dart-mode diminish dumber-jump evil evil-collection - evil-surround exec-path-from-shell fish-mode ghostel - jai-mode magit mise move-text multiple-cursors org-roam - pgmacs terraform-mode undo-tree yaml-mode yasnippet - yasnippet-snippets)) + '(apheleia cape dart-mode diminish dotenv-mode dumber-jump evil + evil-collection evil-surround exec-path-from-shell + fish-mode ghostel jai-mode magit mise move-text + multiple-cursors org-roam pgmacs terraform-mode + undo-tree yaml-mode yasnippet yasnippet-snippets)) '(package-vc-selected-packages '((pgmacs :url "https://github.com/emarsden/pgmacs.git") (jai-mode :url "https://github.com/valignatev/jai-mode.git")))) diff --git a/init.el b/init.el index 434ace8..e63bfe4 100644 --- a/init.el +++ b/init.el @@ -22,7 +22,10 @@ (keymap-global-set "M-2" #'split-window-below) (keymap-global-set "M-3" #'split-window-right) +(keymap-global-set "C-x C-b" #'ibuffer) + (keymap-global-set "C-c e i" #'hgh/edit-init-file) +(keymap-global-set "C-c e l" #'hgh/load-init-file) (keymap-global-set "C-," #'duplicate-dwim) (keymap-set help-map "h" #'eldoc) @@ -47,6 +50,12 @@ duplicate-line-final-position -1 duplicate-region-final-position -1) +(setq project-switch-commands '((project-find-file "Find file" "f") + (project-find-dir "Find dir" "d") + (project-dired "Dired" "D") + (consult-ripgrep "ripgrep" "g") + (magit-project-status "Magit" "m"))) + (when (file-directory-p (hgh/emacs-directory "work")) (load-file (hgh/emacs-directory "work/work.el")) (add-to-list 'load-path (hgh/emacs-directory "work"))) @@ -56,7 +65,8 @@ (setopt use-short-answers t use-dialog-box nil - use-package-enable-imenu-support t) + use-package-enable-imenu-support t + display-line-numbers-type 'relative) (electric-pair-mode 1) (fido-mode 1) @@ -113,6 +123,12 @@ :init (setq evil-want-integration t) ;; This is optional since it's already set to t by default. (setq evil-want-keybinding nil) + + (defvar hgh/evil-eglot-prefix-map + (let ((map (make-sparse-keymap))) + (define-key map "a" 'eglot-code-actions) + (define-key map "r" 'eglot-rename) + map)) :config (evil-set-leader nil (kbd "SPC")) (evil-mode 1) @@ -131,6 +147,8 @@ (evil-global-set-key 'normal (kbd "p") project-prefix-map) (evil-global-set-key 'visual (kbd "TAB") #'indent-region) (evil-global-set-key 'normal (kbd "]d") #'flymake-goto-next-error) + (evil-global-set-key 'normal (kbd "[d") #'flymake-goto-prev-error) + (evil-define-key 'normal eglot-mode-map (kbd "l") hgh/evil-eglot-prefix-map) (evil-global-set-key 'normal (kbd "[d") #'flymake-goto-prev-error)) (use-package evil-collection @@ -207,10 +225,12 @@ :custom (eglot-documentation-renderer 'markdown-ts-view-mode) (eglot-code-action-indications nil) + :bind (("C-c l a" . eglot-code-actions)) :hook ((jai-mode . eglot-ensure) (dart-mode . eglot-ensure) (terraform-mode . eglot-ensure) - (typescript-ts-mode . eglot-ensure)) + (typescript-ts-mode . eglot-ensure) + (tsx-ts-mode . eglot-ensure)) :config (push `(jai-mode "jails" "-jai_path" ,(concat (getenv "HOME") "/.local/jai/")) eglot-server-programs) (push '(sql-mode "postgres-language-server" "lsp-proxy") eglot-server-programs)) @@ -272,9 +292,17 @@ (use-package apheleia :diminish apheleia-mode :config + (dolist (pair apheleia-formatters) + (let ((formatter (symbol-name (car pair)))) + (when (string-prefix-p "prettier" formatter) + (setf (alist-get (car pair) apheleia-formatters) + '("npx" "prettier" "--stdin-filepath" filepath))))) (apheleia-global-mode 1)) + (use-package mise :diminish mise-mode :config (global-mise-mode 1)) + +(use-package dotenv-mode) diff --git a/utils.el b/utils.el index e7c28e9..b8b0c79 100644 --- a/utils.el +++ b/utils.el @@ -3,6 +3,10 @@ (interactive) (find-file user-init-file)) +(defun hgh/load-init-file () + (interactive) + (load-file user-init-file)) + (defun hgh/duplicate-dwim () (interactive) (duplicate-dwim)