+(use-package org
+ :ensure t)
+
+(use-package org-evil
+ :ensure t)
+
+
+(use-package flycheck
+ :ensure t
+ :init (global-flycheck-mode))
+
+(use-package flycheck-mypy
+ :ensure t)
+
+(use-package helm-config
+ :ensure helm
+ :config
+ (helm-mode 1)
+ (global-set-key (kbd "M-x") 'helm-M-x))
+
+(use-package projectile
+ :ensure t)
+
+(use-package helm-projectile
+ :ensure t
+ :config
+ (projectile-global-mode)
+ (setq projectile-completion-system 'helm)
+ (helm-projectile-on))
+
+;(use-package highlight-indent-guides
+; :ensure t
+; :config
+; (add-hook 'prog-mode-hook 'highlight-indent-guides-mode)
+; (setq highlight-indent-guides-method 'character)
+; (setq highlight-indent-guides-character ?\|)
+; (set-face-foreground 'highlight-indent-guides-character-face "darkgray"))
+
+(use-package jinja2-mode
+ :ensure t)
+
+(use-package whitespace
+ :config
+ (setq whitespace-style '(face tabs tab-mark))
+ (setq whitespace-line-column 80)
+ (global-whitespace-mode +1))
+
+(use-package magit
+ :ensure t
+ :config
+ (global-set-key (kbd "C-x g") 'magit-status))
+
+(use-package evil-magit
+ :ensure t)
+
+(use-package editorconfig
+ :ensure t
+ :init
+ (add-hook 'prog-mode-hook (editorconfig-mode 1))
+ (add-hook 'text-mode-hook (editorconfig-mode 1)))
+
+(use-package js2-mode
+ :ensure t
+ :config
+ (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
+ (setq js2-strict-missing-semi-warning nil))
+
+(use-package yaml-mode
+ :ensure t)
+
+(use-package jl-encrypt)
+
+(use-package smart-mode-line
+ :ensure t
+ :config
+ (sml/setup))
+
+(use-package smart-tabs-mode
+ :ensure t
+ :config
+ (smart-tabs-insinuate 'c))
+
+(use-package fill-column-indicator
+ :ensure t
+ :config
+ (setq fci-rule-column 80)
+ (add-hook 'after-change-major-mode-hook 'fci-mode))
+
+
+;;;(global-company-mode)
+;;;(add-hook 'after-init-hook 'global-company-mode)
+
+(add-hook 'prog-mode-hook 'electric-pair-mode)
+
+(eval-after-load 'company
+ '(add-to-list 'company-backends 'company-jedi))
+
+(eval-after-load 'autoinsert
+ '(define-auto-insert '("\\.org\\'" . "Org header")
+ '(
+ "Hides all but one star and uncollapses everything."
+ "#+STARTUP: hidestars showall\n\n"
+ _)))
+
+(add-hook 'find-file-hook 'auto-insert)
+
+; Sane C formatting
+
+(defun c-lineup-arglist-tabs-only (ignored)
+ "Line up argument lists by tabs, not spaces."
+ (let* ((anchor (c-langelem-pos c-syntactic-element))
+ (column (c-langelem-2nd-pos c-syntactic-element))
+ (offset (- (1+ column) anchor))
+ (steps (floor offset c-basic-offset)))
+ (* (max steps 1)
+ c-basic-offset)))
+
+(add-hook 'c-mode-common-hook
+ (lambda ()
+ ;; Add kernel style
+ (c-add-style
+ "linux-tabs-only"
+ '("linux" (c-offsets-alist
+ (arglist-cont-nonempty
+ c-lineup-gcc-asm-reg
+ c-lineup-arglist-tabs-only))))))
+
+(add-hook 'c-mode-hook
+ (lambda ()
+ (let ((filename (buffer-file-name)))
+ ;; Enable kernel mode for the appropriate files
+ (setq indent-tabs-mode t)
+ (setq show-trailing-whitespace t)
+ (c-set-style "linux-tabs-only")))))