mahbinstuff/emacs-init-el

300 lines
11 KiB
Text
Raw Normal View History

(require 'package)
2017-08-24 15:26:23 +03:00
(set-language-environment "UTF-8")
(set-default-coding-systems 'utf-8)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
;;(add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/"))
(package-initialize)
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(eval-when-compile
(require 'use-package))
(require 'diminish)
(require 'bind-key)
(use-package better-defaults
:ensure t)
(use-package powerline
:ensure t
:config
(powerline-default-theme)
:init
)
;; helm
(use-package helm
:ensure t
:bind (("M-x" . helm-M-x)
("C-x C-f" . helm-find-files)
("C-x b" . helm-mini)
("C-x C-d" . helm-browse-project)
)
)
(use-package helm-themes
:ensure t)
(use-package helm-tramp
:ensure t)
2017-08-18 18:41:58 +03:00
(use-package company
:ensure t
:init (global-company-mode)
:config
(progn
;; use company for completion
(bind-key [remap completion-at-point] #'company-complete company-mode-map)
(setq company-tooltip-align-annotations t
;; Easy navigation to candidates with M-<n>
company-show-numbers t)
)
:diminish company-mode
)
(use-package company-quickhelp ; Documentation popups for Company
:ensure t
:defer t
:init (add-hook 'global-company-mode-hook #'company-quickhelp-mode))
(use-package company-go
:ensure t
:defer t
:init
(with-eval-after-load 'company
(add-to-list 'company-backends 'company-go)))
(use-package flycheck
:ensure t
:defer t
:init (add-hook 'sh-mode-hook 'flycheck-mode)
)
(use-package yasnippet
:ensure t
:init (yas-global-mode 1)
)
(use-package go-mode
:ensure t
:init
(progn
(setq gofmt-command "goimports")
(add-hook 'before-save-hook 'gofmt-before-save)
(bind-key [remap find-tag] #'godef-jump))
:config
(add-hook 'go-mode-hook 'electric-pair-mode)
(setq company-tooltip-limit 20)
(setq company-idle-delay .3)
(setq company-echo-delay 0)
(setq company-begin-commands '(self-insert-command))
)
(use-package markdown-mode
:ensure t)
(use-package magit
:ensure t
:bind (("C-x g" . magit-status)
)
)
(use-package paradox
:ensure t
:defer t)
2017-08-18 18:41:58 +03:00
;; kill the damned gnu screen
(setq inhibit-startup-screen t)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(ansi-color-faces-vector
[default default default italic underline success warning error])
2017-10-06 10:33:59 +03:00
'(ansi-color-names-vector
(vector "#c5c8c6" "#cc6666" "#b5bd68" "#f0c674" "#81a2be" "#b294bb" "#8abeb7" "#373b41"))
'(fci-rule-color "#373b41")
'(flycheck-color-mode-line-face-to-color (quote mode-line-buffer-id))
'(frame-background-mode (quote dark))
2017-09-16 00:38:29 +03:00
'(linum-format "%3i")
'(nrepl-message-colors
(quote
("#336c6c" "#205070" "#0f2050" "#806080" "#401440" "#6c1f1c" "#6b400c" "#23733c")))
'(package-selected-packages
(quote
2017-10-06 10:33:59 +03:00
(color-theme-sanityinc-tomorrow color-theme-solarized distinguished-theme alect-themes bubbleberry-theme go-snippets company-go cyberpunk-theme dad-joke darkane-theme darkmine-theme helm-themes markdown-mode anti-zenburn-theme helm-tramp magit use-package powerline paradox helm)))
'(paradox-github-token t)
'(pdf-view-midnight-colors (quote ("#232333" . "#c7c7c7")))
2017-09-16 00:38:29 +03:00
'(powerline-color1 "#3d3d68")
'(powerline-color2 "#292945")
'(tool-bar-mode nil)
'(vc-annotate-background "#d4d4d4")
'(vc-annotate-color-map
(quote
((20 . "#437c7c")
(40 . "#336c6c")
(60 . "#205070")
(80 . "#2f4070")
(100 . "#1f3060")
(120 . "#0f2050")
(140 . "#a080a0")
(160 . "#806080")
(180 . "#704d70")
(200 . "#603a60")
(220 . "#502750")
(240 . "#401440")
(260 . "#6c1f1c")
(280 . "#935f5c")
(300 . "#834744")
(320 . "#732f2c")
(340 . "#6b400c")
(360 . "#23733c"))))
'(vc-annotate-very-old-color "#23733c"))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:inherit nil :stipple nil :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 142 :width normal :foundry "unci" :family "MonofurForPowerline Nerd Font"))))
'(fixed-pitch ((t (:family "Iosevka")))))
2017-08-24 15:26:23 +03:00
;;; Fira code
;; This works when using emacs --daemon + emacsclient
(add-hook 'after-make-frame-functions (lambda (frame) (set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")))
;; This works when using emacs without server/client
(set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")
;; I haven't found one statement that makes both of the above situations work, so I use both for now
(defconst fira-code-font-lock-keywords-alist
(mapcar (lambda (regex-char-pair)
`(,(car regex-char-pair)
(0 (prog1 ()
(compose-region (match-beginning 1)
(match-end 1)
;; The first argument to concat is a string containing a literal tab
,(concat " " (list (decode-char 'ucs (cadr regex-char-pair)))))))))
'(("\\(www\\)" #Xe100)
("[^/]\\(\\*\\*\\)[^/]" #Xe101)
("\\(\\*\\*\\*\\)" #Xe102)
("\\(\\*\\*/\\)" #Xe103)
("\\(\\*>\\)" #Xe104)
("[^*]\\(\\*/\\)" #Xe105)
("\\(\\\\\\\\\\)" #Xe106)
("\\(\\\\\\\\\\\\\\)" #Xe107)
("\\({-\\)" #Xe108)
("\\(\\[\\]\\)" #Xe109)
("\\(::\\)" #Xe10a)
("\\(:::\\)" #Xe10b)
("[^=]\\(:=\\)" #Xe10c)
("\\(!!\\)" #Xe10d)
("\\(!=\\)" #Xe10e)
("\\(!==\\)" #Xe10f)
("\\(-}\\)" #Xe110)
("\\(--\\)" #Xe111)
("\\(---\\)" #Xe112)
("\\(-->\\)" #Xe113)
("[^-]\\(->\\)" #Xe114)
("\\(->>\\)" #Xe115)
("\\(-<\\)" #Xe116)
("\\(-<<\\)" #Xe117)
("\\(-~\\)" #Xe118)
("\\(#{\\)" #Xe119)
("\\(#\\[\\)" #Xe11a)
("\\(##\\)" #Xe11b)
("\\(###\\)" #Xe11c)
("\\(####\\)" #Xe11d)
("\\(#(\\)" #Xe11e)
("\\(#\\?\\)" #Xe11f)
("\\(#_\\)" #Xe120)
("\\(#_(\\)" #Xe121)
("\\(\\.-\\)" #Xe122)
("\\(\\.=\\)" #Xe123)
("\\(\\.\\.\\)" #Xe124)
("\\(\\.\\.<\\)" #Xe125)
("\\(\\.\\.\\.\\)" #Xe126)
("\\(\\?=\\)" #Xe127)
("\\(\\?\\?\\)" #Xe128)
("\\(;;\\)" #Xe129)
("\\(/\\*\\)" #Xe12a)
("\\(/\\*\\*\\)" #Xe12b)
("\\(/=\\)" #Xe12c)
("\\(/==\\)" #Xe12d)
("\\(/>\\)" #Xe12e)
("\\(//\\)" #Xe12f)
("\\(///\\)" #Xe130)
("\\(&&\\)" #Xe131)
("\\(||\\)" #Xe132)
("\\(||=\\)" #Xe133)
("[^|]\\(|=\\)" #Xe134)
("\\(|>\\)" #Xe135)
("\\(\\^=\\)" #Xe136)
("\\(\\$>\\)" #Xe137)
("\\(\\+\\+\\)" #Xe138)
("\\(\\+\\+\\+\\)" #Xe139)
("\\(\\+>\\)" #Xe13a)
("\\(=:=\\)" #Xe13b)
("[^!/]\\(==\\)[^>]" #Xe13c)
("\\(===\\)" #Xe13d)
("\\(==>\\)" #Xe13e)
("[^=]\\(=>\\)" #Xe13f)
("\\(=>>\\)" #Xe140)
("\\(<=\\)" #Xe141)
("\\(=<<\\)" #Xe142)
("\\(=/=\\)" #Xe143)
("\\(>-\\)" #Xe144)
("\\(>=\\)" #Xe145)
("\\(>=>\\)" #Xe146)
("[^-=]\\(>>\\)" #Xe147)
("\\(>>-\\)" #Xe148)
("\\(>>=\\)" #Xe149)
("\\(>>>\\)" #Xe14a)
("\\(<\\*\\)" #Xe14b)
("\\(<\\*>\\)" #Xe14c)
("\\(<|\\)" #Xe14d)
("\\(<|>\\)" #Xe14e)
("\\(<\\$\\)" #Xe14f)
("\\(<\\$>\\)" #Xe150)
("\\(<!--\\)" #Xe151)
("\\(<-\\)" #Xe152)
("\\(<--\\)" #Xe153)
("\\(<->\\)" #Xe154)
("\\(<\\+\\)" #Xe155)
("\\(<\\+>\\)" #Xe156)
("\\(<=\\)" #Xe157)
("\\(<==\\)" #Xe158)
("\\(<=>\\)" #Xe159)
("\\(<=<\\)" #Xe15a)
("\\(<>\\)" #Xe15b)
("[^-=]\\(<<\\)" #Xe15c)
("\\(<<-\\)" #Xe15d)
("\\(<<=\\)" #Xe15e)
("\\(<<<\\)" #Xe15f)
("\\(<~\\)" #Xe160)
("\\(<~~\\)" #Xe161)
("\\(</\\)" #Xe162)
("\\(</>\\)" #Xe163)
("\\(~@\\)" #Xe164)
("\\(~-\\)" #Xe165)
("\\(~=\\)" #Xe166)
("\\(~>\\)" #Xe167)
("[^<]\\(~~\\)" #Xe168)
("\\(~~>\\)" #Xe169)
("\\(%%\\)" #Xe16a)
;; ("\\(x\\)" #Xe16b) This ended up being hard to do properly so i'm leaving it out.
("[^:=]\\(:\\)[^:=]" #Xe16c)
("[^\\+<>]\\(\\+\\)[^\\+<>]" #Xe16d)
("[^\\*/<>]\\(\\*\\)[^\\*/<>]" #Xe16f))))
(defun add-fira-code-symbol-keywords ()
(font-lock-add-keywords nil fira-code-font-lock-keywords-alist))
(add-hook 'prog-mode-hook
#'add-fira-code-symbol-keywords)