From 92ef068d866ba613a1f3e29ef8c5bd8d2a18d417 Mon Sep 17 00:00:00 2001 From: Warwick Date: Fri, 8 Aug 2025 17:56:06 +0100 Subject: [PATCH] Got org roam working with emacs 30 --- init.el | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/init.el b/init.el index 419bd1e..fea1580 100644 --- a/init.el +++ b/init.el @@ -31,17 +31,19 @@ (unless (package-installed-p 'use-package) (package-refresh-contents) (package-install 'use-package)) -(eval-and-compile - (setq use-package-always-ensure t - use-package-expand-minimally t)) + +(setq use-package-always-ensure t) +(setq use-package-expand-minimally t) ;; Ivy (use-package ivy + :ensure t :diminish :config (ivy-mode 1)) (use-package counsel + :ensure t :after ivy :bind (("M-x" . counsel-M-x) ("C-x b" . counsel-ibuffer) @@ -52,40 +54,48 @@ (setq ivy-initial-inputs-alist nil)) ;; Don't start searches with ^ (use-package ivy-rich + :ensure t :config (ivy-rich-mode 1)) ;; Theme (load-theme 'modus-vivendi) (use-package doom-modeline + :ensure t :init (doom-modeline-mode 1) :config (setq doom-modeline-height 15)) ;; Projects (use-package projectile + :ensure t :diminish projectile-mode :config (projectile-mode) :custom ((projectile-completion-system 'ivy)) :bind-keymap ("C-c p" . projectile-command-map)) (use-package magit) + :ensure t ;; TODO Look into forge for git community engagement ;; Make M-x all-the-icons-install-fonts and M-x nerd-icons-install-fonts available (use-package all-the-icons + :ensure t :if (display-graphic-p)) ;; Quality of life (use-package rainbow-delimiters + :ensure t :hook (prog-mode . rainbow-delimiters-mode)) (use-package which-key + :ensure t :init (which-key-mode) :diminish which-key-mode :config (setq which-key-idle-delay 0.3)) (use-package helpful + :ensure t :custom (counsel-describe-function-function #'helpful-callable) (counsel-describe-variable-function #'helpful-variable) @@ -96,15 +106,30 @@ ([remap describe-key] . helpful-key)) ;; Org mode -(use-package org) +(use-package org + :ensure t) +(use-package org-roam + :ensure t + :custom + (org-roam-directory "/home/warwick/Sync/wiki/org/roam/") + :bind (("C-c n l" . org-roam-buffer-toggle) + ("C-c n f" . org-roam-node-find) + ("C-c n i" . org-roam-node-insert) + ("C-c n c" . org-roam-capture) + ("C-c n a" . org-roam-alias-add)) + :config + (org-roam-db-autosync-mode 1)) (use-package org-bullets + :ensure t :after org - :hook (org-mode . org-bullet-mode)) + :hook (org-mode . org-bullets-mode)) ;; TODO configure to be prettier ;; Tree Sitter (better syntax highlighting) -(use-package tree-sitter) +(use-package tree-sitter + :ensure t) (use-package tree-sitter-langs + :ensure t :after tree-sitter :init (global-tree-sitter-mode) @@ -112,17 +137,22 @@ ;; lsp-mode (use-package lsp-mode + :ensure t :commands (lsp lsp-deferred) :init (setq lsp-keymap-prefix "C-c l") :hook (lsp-mode . lsp-enable-which-key-integration)) (use-package lsp-ui + :ensure t :hook (lsp-mode . lsp-ui-mode)) (use-package lsp-treemacs + :ensure t :after lsp) -(use-package lsp-ivy) +(use-package lsp-ivy + :ensure t) ;; company (useful for showing lsp-mode popups) (use-package company + :ensure t :after lsp-mode :hook (lsp-mode . company-mode) :bind @@ -134,10 +164,12 @@ (company-minimum-prefix-length 1) (company-idle-delay 0.0)) (use-package company-box + :ensure t :hook (company-mode . company-box-mode)) ;; TypeScript (use-package typescript-mode + :ensure t :mode ("\\.[jt]s\\'" "\\.[jt]sx\\'") :hook (typescript-mode . lsp-deferred) :config (setq typescript-indent-level 2)) @@ -155,8 +187,7 @@ ;; 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. - '(package-selected-packages - '(tree-sitter-langs tree-sitter lsp-ivy lsp-treemacs lsp-ui company-box company which-key use-package typescript-mode rainbow-delimiters projectile org-bullets magit lsp-mode ivy-rich helpful doom-modeline counsel all-the-icons))) + '(package-selected-packages nil)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful.