;;; Axel Lindskog's emacs config -*- lexical-binding: t; -*-

(load-theme 'modus-vivendi)

(tool-bar-mode -1)
(menu-bar-mode -1)
(scroll-bar-mode -1)
(fringe-mode -1)

(setq inhibit-startup-screen t
      split-height-threshold nil
      split-width-threshold 0
      display-buffer-base-action
      '((display-buffer-reuse-window
         display-buffer-use-least-recent-window
         display-buffer-pop-up-window))
      dabbrev-case-fold-search nil
      ring-bell-function 'ignore
      c-default-style "stroustrup++")

(setq-default truncate-lines t
              indent-tabs-mode nil
              tab-width 4)

(set-face-attribute 'default nil
                    :family "monospace"
                    :height 105)

(c-add-style "stroustrup++"
             '("stroustrup"
               (comment-start . "// ")
               (comment-end . "")
               (c-offsets-alist (case-label . +))))

(defun my-build-search ()
  "Save all buffers and run the nearest build script via `compile'."
  (interactive)
  (save-some-buffers t)
  (let ((file (if (eq system-type 'windows-nt) "build.bat" "./build.sh"))
        (directory default-directory))
    (if-let* ((default-directory (locate-dominating-file directory file)))
        (compile file)
      (message "Could not locate \"%s\" from \"%s\"" file directory))))

(keymap-global-set "M-m" 'my-build-search)
