;; Eglot recommends pulling the latest of the standard libraries it
;; uses from ELPA if you're not tracking the current emacs development
;; branch.
(use-package xref
  :pin gnu
  )

(use-package eldoc
  :pin gnu
  :diminish
  )

;; Other packages

(use-package emacs
  :config
  (setq enable-recursive-minibuffers t)

  ;; Filter the M-x list base on the current mode
  (setq read-extended-command-predicate #'command-completion-default-include-p)

  ;; Enable triggering completion with the tab key.
  (setq tab-always-indent 'complete)
  )

(use-package dashboard
  :config
  (dashboard-setup-startup-hook))

(use-package ediff
  :config
  (setq ediff-window-setup-function 'ediff-setup-windows-plain)
  (setq-default ediff-highlight-all-diffs 'nil)
  (setq ediff-diff-options "-w"))

(when (version<= "26.0.50" emacs-version )
  (add-hook 'prog-mode-hook 'display-line-numbers-mode)
  (add-hook 'prog-mode-hook 'column-number-mode)
  )

(use-package page-break-lines)

(use-package recentf
  ;; This is an emacs built-in but we're pulling the latest version
  :config
  (setq recentf-max-saved-items 100)
  (setq recentf-save-file (recentf-expand-file-name "~/.emacs.d/private/cache/recentf"))
  (recentf-mode 1))

;; Persist history over Emacs restarts. Vertico sorts by history position.
(use-package savehist
  ;; This is an emacs built-in but we're pulling the latest version
  :config
  (savehist-mode))

(use-package which-key
  :diminish
  :config
  (which-key-mode))

(use-package windmove
  :config
  (windmove-default-keybindings))

(setq tramp-default-method "ssh")

(use-package dockerfile-mode)

(use-package nginx-mode
  :config
  (setq nginx-indent-level 4))

(use-package systemd
  :mode
  (("\\.service\\'" . systemd-mode)
   ("\\.timer\\'" . systemd-mode))
  )

(use-package pkgbuild-mode
  :mode
  (("PKGBUILD\\'" . pkgbuild-mode))
  )

(provide 'base-extensions)
