;; -*- no-byte-compile: t; -*-
;;; $DOOMDIR/packages.el

;; To install a package:
;;
;;   1. Declare them here in a `package!' statement,
;;   2. Run 'doom sync' in the shell,
;;   3. Restart Emacs.
;;
;; Use 'C-h f package\!' to look up documentation for the `package!' macro.


;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
;; (package! some-package)

;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
;; https://github.com/radian-software/straight.el#the-recipe-format
;; (package! another-package
;;   :recipe (:host github :repo "username/repo"))

;; If the package you are trying to install does not contain a PACKAGENAME.el
;; file, or is located in a subdirectory of the repo, you'll need to specify
;; `:files' in the `:recipe':
;; (package! this-package
;;   :recipe (:host github :repo "username/repo"
;;            :files ("some-file.el" "src/lisp/*.el")))

;; If you'd like to disable a package included with Doom, you can do so here
;; with the `:disable' property:
;; (package! builtin-package :disable t)

;; You can override the recipe of a built in package without having to specify
;; all the properties for `:recipe'. These will inherit the rest of its recipe
;; from Doom or MELPA/ELPA/Emacsmirror:
;; (package! builtin-package :recipe (:nonrecursive t))
;; (package! builtin-package-2 :recipe (:repo "myfork/package"))

;; Specify a `:branch' to install a package from a particular branch or tag.
;; This is required for some packages whose default branch isn't 'master' (which
;; our package manager can't deal with; see radian-software/straight.el#279)
;; (package! builtin-package :recipe (:branch "develop"))

;; Use `:pin' to specify a particular commit to install.
;; (package! builtin-package :pin "1a2b3c4d5e")


;; Doom's packages are pinned to a specific commit and updated from release to
;; release. The `unpin!' macro allows you to unpin single packages...
;; (unpin! pinned-package)
;; ...or multiple packages
;; (unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;; (unpin! t)

;; Corfu completion requirements:
(package! cape)
(package! kind-icon)
(package! corfu-terminal)

;; GPTEl
(package! gptel :recipe (:nonrecursive t))

;; Centered cursor
(package! centered-cursor-mode)

;; Emmet
(package! ement)

;; hugo
(package! ox-hugo)

;; pandoc
(package! org-pandoc-import
  :recipe (:host github :repo "tecosaur/org-pandoc-import"))

;; Navigation
(package! link-hint)

;; Writing
(package! olivetti)

;; Org enhancements
(package! org-modern
  :recipe (:host github :repo "minad/org-modern"))  ; pin to latest main, bypasses Doom lockfile
(package! org-fragtog)
(package! org-super-agenda)
(package! org-noter
  :recipe (:host github :repo "org-noter/org-noter"))  ; maintained fork, weirdNox is abandoned

;; Formatters
(package! reformatter)

;; Git
(package! git-link)

;;; ============================================================
;;; EXTENSIONS — Tier 1-3
;;; ============================================================

;; Tier 1 — High impact
(package! kubel)
(package! org-caldav)
(package! envrc)

;; Tier 2 — Quality of life
(package! vundo)
(package! iedit)
(package! combobulate :recipe (:host github :repo "mickeynp/combobulate"))
(package! breadcrumb :recipe (:host github :repo "joaotavora/breadcrumb"))

;; Bibliography: CSL citation processor for org-cite export
(package! citeproc)

;; Tier 3 — Supplementary
(package! org-anki)
(package! org-ql)
(package! calfw)
(package! calfw-org)
(package! org-roam-ui)
(package! dirvish)

