;; Get deps on Debian w/
;; sudo apt install elpa-monokai-theme elpa-go-mode elpa-rust-mode elpa-php-mode elpa-which-key elpa-magit elpa-web-mode elpa-flycheck elpa-ligatures

;; configure packages that are installed ABOVE
(load-theme 'monokai t)
(which-key-mode +1)
(add-to-list 'default-frame-alist
             '(font . "Fira code-12"))

;; Thank you Bozhidar Batsov for inspiration!
;; Inspirational config found from https://github.com/bbatsov/emacs.d/
;; Also check out Emacs Prelude at https://github.com/bbatsov/prelude/
(setq inhibit-startup-message t)
(global-linum-mode t)
;(global-whitespace-mode t)
(delete-selection-mode t)
(global-tab-line-mode t)
;(when (fboundp 'tool-bar-mode)
;  (tool-bar-mode -1))
(setq backward-delete-char-untabify-method nil)
(setq c-default-style '((java-mode . "java") (awk-mode . "awk") (other . "linux")))
(defalias 'yes-or-no-p 'y-or-n-p)

;; mode line settings
(line-number-mode t)
(column-number-mode t)
(size-indication-mode t)

;; Tabbbbbbz
(setq tab-width 8
	c-basic-offset tab-width
	)

;; nice scrolling
(setq scroll-margin 0
      scroll-conservatively 100000
      scroll-preserve-screen-position 1)

;; store all backup and autosave files in the tmp dir
(setq backup-directory-alist
      `((".*" . ,temporary-file-directory)))
(setq auto-save-file-name-transforms
      `((".*" ,temporary-file-directory t)))

;; Code compilation shenanigans
;(setq native-comp-speed -1)
;(setq native-comp-jit-compilation nil)
;(setq native-comp-enable-subr-trampolines nil)

(require 'package)

(add-to-list 'package-archives
	     '("melpa" . "https://melpa.org/packages/") t)
;; keep the installed packages in .emacs.d
(setq package-user-dir (expand-file-name "elpa" user-emacs-directory))
(package-initialize)
;; update the package metadata is the local cache is missing
(unless package-archive-contents
  (package-refresh-contents))

(unless (package-installed-p 'use-package)
  (package-install 'use-package))

(require 'use-package)
(setq use-package-verbose t)
(setq package-install-upgrade-built-in t)

;; (use-package monokai-theme
;;   :ensure t
;;   :config
;;   (load-theme 'monokai t))

(use-package hl-line
  :ensure t
  :config
  (global-hl-line-mode +1))

;; (use-package which-key
;;   :ensure t
;;   :config
;;   (which-key-mode +1)
;;   ;(diminish 'which-key-mode)
;;   )

;; (use-package magit
;;   :ensure t
;;   :bind (("C-x g" . magit-status)))

;; (use-package go-mode
;;   :ensure t)
;; (use-package web-mode
;;   :ensure t)
;; (use-package markdown-mode
;;   :ensure t)
(use-package nasm-mode
  :ensure t)
;; (use-package flycheck
;;   :ensure t)