-
-
Save shadow-fox/7bd91d02a75aee138be0f137829081b2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; init.el --- user-init-file -*- lexical-binding: t; -*- | |
;; Added by Package.el. This must come before configurations of | |
;; installed packages. Don't delete this line. If you don't want it, | |
;; just comment it out by adding a semicolon to the start of the line. | |
;; You may delete these explanatory comments. | |
;; (package-initialize) | |
(setq-default lexical-binding t) | |
(progn ; `startup' | |
(if (fboundp 'menu-bar-mode) (menu-bar-mode -1)) | |
(if (fboundp 'tool-bar-mode) (tool-bar-mode -1)) | |
(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1)) | |
(if (fboundp 'display-time-mode) (display-time-mode 1)) | |
;; Save backups, lots, in a different dir. | |
(setq backup-directory-alist '(("." . "~/.emacs.d/data/backups"))) | |
(setq delete-old-versions -1) | |
(setq version-control t) | |
(setq vc-make-backup-files t) | |
(setq auto-save-file-name-transforms '((".*" "~/.emacs.d/auto-save-list/" t))) | |
;; History, rememeber much. | |
(setq savehist-file "~/.emacs.d/data/savehist") | |
(savehist-mode 1) | |
(setq history-length t) | |
(setq history-delete-duplicates t) | |
(setq savehist-save-minibuffer-history 1) | |
(setq savehist-additional-variables | |
'(kill-ring | |
search-ring | |
regexp-search-ring)) | |
;; Yes/No/Maybe. | |
(fset 'yes-or-no-p 'y-or-n-p) | |
;; (setq visible-bell t) | |
(setq ring-bell-function 'ignore) | |
;;; Language environment | |
(set-language-environment 'UTF-8) | |
(global-display-line-numbers-mode) | |
;;; Truncate lines | |
(set-default 'truncate-lines t) | |
;;; Outline mode | |
;; Collapse subnodes when opening outline file | |
(add-hook 'outline-mode-hook '(lambda () | |
(hide-sublevels 1))) | |
(defconst emacs-start-time (current-time)) | |
(defvar file-name-handler-alist-old file-name-handler-alist) | |
(setq file-name-handler-alist nil | |
message-log-max 16384 | |
gc-cons-threshold 402653184 | |
gc-cons-percentage 0.6 | |
auto-window-vscroll nil) | |
(add-hook 'after-init-hook | |
`(lambda () | |
(setq file-name-handler-alist file-name-handler-alist-old | |
gc-cons-threshold 800000 | |
gc-cons-percentage 0.1) | |
(garbage-collect)) t) | |
(setq-default indent-tabs-mode nil) | |
(setq-default show-trailing-whitespace t) | |
;; Skip the default splash screen. | |
(setq inhibit-startup-message t) | |
;; Figure out the current hostname. | |
(setq hostname (replace-regexp-in-string "\\(^[[:space:]\n]*\\|[[:space:]\n]*$\\)" "" (with-output-to-string (call-process "hostname" nil standard-output)))) | |
;; Set default font | |
(set-face-attribute 'default nil | |
:family "Source Code Pro" | |
:height 110 | |
:weight 'normal | |
:width 'normal) | |
;; Goodies manager. | |
(setq package-enable-at-startup nil) | |
(setq load-prefer-newer t) | |
) | |
;; Make all commands of the “package” module present. | |
(require 'package) | |
;; Speef up start up by not loading any packages at startup. | |
;; (setq package-enable-at-startup nil) | |
;; Look at the *Messages* buffer before setting this to nil, then after. | |
;; Internet repositories for new packages. | |
(setq package-archives '(("org" . "https://orgmode.org/elpa/") | |
("gnu" . "https://elpa.gnu.org/packages/") | |
("melpa" . "https://melpa.org/packages/") | |
("melpa-stable" . "https://stable.melpa.org/packages/") | |
;; Maintainer is AWOL. | |
;; ("marmalade" . "https://marmalade-repo.org/packages/") | |
)) | |
(require 'cask "/usr/share/cask/cask.el") | |
(cask-initialize) | |
(require 'use-package) | |
;; Delight | |
(use-package delight | |
:ensure t) | |
;; Which Key binding help. | |
(use-package which-key | |
:demand t | |
:config | |
(progn | |
(which-key-mode) | |
(which-key-setup-side-window-bottom) | |
(setq which-key-idle-delay 0.5))) | |
;; Theme. | |
(use-package dracula-theme | |
:load-path "themes" | |
:config | |
(load-theme 'dracula t)) | |
;; (use-package ample-theme | |
;; :init (progn (load-theme 'ample t t) | |
;; (load-theme 'ample-flat t t) | |
;; (load-theme 'ample-light t t) | |
;; (enable-theme 'ample)) | |
;; :defer t | |
;; :ensure t) | |
;; Smart modeline | |
(use-package smart-mode-line | |
:ensure t | |
:init | |
(progn | |
(setq sml/no-confirm-load-theme t) | |
(sml/setup)) | |
:config | |
(setq sml/theme 'dark)) | |
;; Eldoc. | |
(use-package eldoc | |
:delight eldoc-mode | |
:init | |
(dolist (hook '(emacs-lisp-mode-hook | |
lisp-interaction-mode-hook | |
ielm-mode-hook | |
eval-expression-minibuffer-setup-hook)) | |
(add-hook hook 'eldoc-mode))) | |
;; Lua | |
(use-package lua-mode | |
:ensure t | |
:mode (("\\.lua\\'" . lua-mode))) | |
;; Haskell | |
(use-package haskell-mode | |
:hook (haskell-mode . turn-on-haskell-unicode-input-method) | |
:hook (haskell-mode . haskell-auto-insert-module-template) | |
:hook (haskell-mode . turn-on-haskell-doc-mode) | |
:custom | |
(haskell-indentation-mode nil) | |
:config | |
(progn | |
(setq haskell-stylish-on-save t) | |
(setq haskell-indentation-mode nil) | |
(define-key haskell-mode-map (kbd "C-c C-c") 'haskell-compile) | |
(define-key haskell-cabal-mode-map (kbd "C-c C-c") 'haskell-compile) | |
(setq haskell-compile-cabal-build-command "stack build")) | |
(progn | |
(use-package haskell-interactive-mode) | |
(use-package haskell-process) | |
(add-hook 'haskell-mode-hook 'interactive-haskell-mode) | |
(custom-set-variables | |
'(haskell-process-suggest-remove-import-lines t) | |
'(haskell-process-auto-import-loaded-modules t) | |
'(haskell-process-log t) | |
'(haskell-tags-on-save t) | |
'(haskell-process-suggest-remove-import-lines t) | |
'(haskell-process-suggest-hoogle-imports t) | |
'(haskell-interactive-types-for-show-ambiguous nil)) | |
(define-key haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-or-reload) | |
(define-key haskell-mode-map (kbd "C-`") 'haskell-interactive-bring) | |
(define-key haskell-mode-map (kbd "C-c C-t") 'haskell-process-do-type) | |
(define-key haskell-mode-map (kbd "C-c C-i") 'haskell-process-do-info) | |
(define-key haskell-mode-map (kbd "C-c C-c") 'haskell-process-cabal-build) | |
(define-key haskell-mode-map (kbd "C-c C-k") 'haskell-interactive-mode-clear) | |
(define-key haskell-mode-map (kbd "C-c c") 'haskell-process-cabal) | |
(define-key haskell-mode-map (kbd "M-.") 'haskell-mode-jump-to-def) | |
(define-key haskell-mode-map (kbd "M-.") 'haskell-mode-tag-find) | |
)) | |
(use-package intero | |
:hook (haskell-mode . intero-mode)) | |
;; Lua Mode | |
(use-package lua-mode) | |
;; Python Mode | |
;; (use-package python-mode) | |
;; Projectile: Manage projects. | |
(use-package projectile | |
:config | |
(define-key projectile-mode-map (kbd "s-p") 'projectile-command-map) | |
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) | |
(projectile-mode +1) | |
(setq projectile-project-search-path '("~/Sandbox/")) | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment