;;; init --- Initialization file for Emacs  -*- mode: emacs-lisp; lexical-binding: t -*-

;;; Commentary:
;; Emacs Startup File --- initialization for Emacs
;; https://blog.d46.us/advanced-emacs-startup/

;; Requirements: git gnuplot ledger

;;; Code:
(setq config-dir (file-name-directory (file-truename user-init-file)))  ;; user-init-file: ~/.config/emacs/init, file-truename: /opt/emacs-conf/init
(require 'pre-settings (concat config-dir "settings/pre-settings.el"))  ;; use-package delight functions variables
(require 'which-key-settings)                      ;; https://melpa.org/#/which-key
(require 'general-settings)                        ;; requires which-key
(require 'my-settings)
(require 'gui-settings)                            ;; emacs modeline indent rainbow focus dashboard
(require 'theme-settings)                          ;; spacemacs-theme fonts emojify
(require 'popwin-settings)                         ;; https://melpa.org/#/popwin
(require 'toolbar-settings)
(require 'deft-settings)                           ;; https://melpa.org/#/deft
(require 'completion-settings)                     ;; requires ivy counsel company yasnippet popup amx, see also semantic
(require 'cedet-settings)                          ;; requires srefactor stickyfunc-enhance
(require 'spell-settings)                          ;; requires langtool (languagetool)
(require 'syntax-checking-settings)                ;; requires flycheck
(require 'bibliography-settings)                   ;; requires org-ref ivy-bibtex ox-bibtex (org contrib)
(require 'version-control-settings)                ;; requires magit git-messenger orgit diff-hl
(require 'treemacs-settings)                       ;; requires treemacs treemacs-magit s f ht ace-window avy pfuture hydra
(require 'org-settings)                            ;; requires htmlize ox-tufte ox-extra gnuplot (src block) ob-async org-superstar org-sticky-header org-drill
(require 'multiple-cursors-settings)
;;(require 'eaf-settings)
(require 'mail-settings)

;; languages / filetypes
(require 'plot-settings)                           ;; gnuplot-mode plantuml-mode (dash)
(require 'ess-settings)                            ;; requires ess ess-R-data-view ctable popup
(require 'ledger-settings)                         ;; ledger-mode company-ledger
(require 'python-settings)                         ;; requires anaconda-mode pythonic company-anaconda
(require 'shell-settings)                          ;; sh-script powershell
(require 'web-settings)                            ;; css js2 php web-mode company-web
(require 'filetype-settings)                       ;; markdown sql systemd
(require 'polymode-settings)                       ;; polymode

(require 'post-settings)
;;; init ends here
