; set variables
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(setq inhibit-splash-screen t)
(setq tab-width 4)
(setq custom-file "~/emacs-custom.el")
(setq display-line-numbers 'relative)

; Toggle modes
(ido-mode 1)
(tool-bar-mode -1)
(toggle-scroll-bar -1)
(menu-bar-mode -1)
(global-display-line-numbers-mode 1)

; Install and load packages
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)

(require 'use-package-ensure)
(setq use-package-always-ensure t)

(use-package catppuccin-theme)
(use-package magit)
(use-package paredit)


(use-package evil
  :init
  (setq evil-want-integration t)
  (setq evil-want-keybinding nil)
  :config
  (evil-mode 1)
  )

(use-package evil-collection
  :pin melpa
  :after evil
  :config
  (evil-collection-init))

(use-package all-the-icons)
(use-package nerd-icons)
  
(use-package lsp-mode
  :commands (lsp lsp-deferred)
  :init
  (setq lsp-keymap-prefix "C-c l")
  )

(use-package lsp-ui
  :after lsp-mode
  :hook (lsp-mode . lsp-ui-mode)
  :custom
  (lsp-ui-doc-position 'bottom))

(use-package fzf
  :bind
  :config
  (setq fzf/args "-x --color bw --print-query --margin=1,0 --no-hscroll"
	fzf/executable "fzf"
	fzf/git-grep-args "-i --line-number %s"
	fzf/grep-command "grep -nrH"
	fzf/position-bottom t
	fzf/window-height 15))

(use-package consult
  :bind
  ;; Keybindings
  :hook (completion-list-mode . consult-preview-at-point-mode)
  :init
  (setq register-preview-delay 0.5)
  (setq xref-show-xrefs-function #'consult-xref
	xref-show-definitions-function #'consult-xref)) 

(use-package magit-delta
  :hook (magit-mode . magit-delta-mode)
  )


; activate font and theme
(add-to-list 'default-frame-alist '(font .  "SF Mono"))
(set-face-attribute 'default t :font "SF Mono")
(load-theme 'catppuccin :no-confirm)
(setq catppuccin-flavor 'frappe)
(set-frame-parameter nil 'alpha-background 80)
(add-to-list 'default-frame-alist '(alpha-background . 80))

(load custom-file)