Doom Emacs config

Doom Emacs #

This is my Doom Emacs configuration (source).

Lexical binding #

Make this file run (slightly) faster with lexical binding (see this blog post for more info).

;;; config.el -*- lexical-binding: t; -*-

General #

(setq user-full-name "Anders K. Pettersen"
      user-mail-address "staticaland@users.noreply.github.com")

Projectile #

Projectile is my favourite way to work with projects.

(after! projectile
  (setq +workspaces-on-switch-project-behavior t)

  (setq projectile-ignored-projects '("~/" "/tmp" "~/.emacs.d/.local/straight/repos/"))
  (defun projectile-ignored-project-function (filepath)
      "Return t if FILEPATH is within any of `projectile-ignored-projects'"
      (or (mapcar (lambda (p) (s-starts-with-p p filepath)) projectile-ignored-projects))))

Dired file explorer #

(after! dired

  (add-hook! 'dired-mode-hook 'dired-hide-details-mode)
  (add-hook! 'dired-mode-hook 'hl-line-mode)

  (if (executable-find "gls")
      (progn
	(setq insert-directory-program "gls")
	(setq dired-listing-switches "-lFaGh1v --group-directories-first"))
    (setq dired-listing-switches "-ahlF"))

  (setq ls-lisp-dirs-first t)

  (setq dired-listing-switches "-lat") ; sort by date (new first)
  (put 'dired-find-alternate-file 'disabled nil)

  (setq delete-by-moving-to-trash t)
  (setq dired-dwim-target t)
  (setq dired-recursive-copies (quote always))
  (setq dired-recursive-deletes (quote top)))

CUE #

CUE.

(add-hook! cue-mode
  (cuefmt-on-save-mode))

Go #

Go.

(add-hook! go-mode
  (gofmt-on-save-mode))

Terraform #

Terraform.

(add-hook! terraform-mode
  (terraform-format-on-save-mode))

Org #

Org Mode.

(after! org
  (setq org-imenu-depth 7)
  (setq org-ellipsis " ▾ ")
  (setq org-superstar-headline-bullets-list '("⁖"))
  (setq org-babel-python-command "python3")
  (setq org-cycle-separator-lines 1)
  (setq org-edit-src-content-indentation 0)
  (setq org-export-initial-scope 'subtree)
  (setq org-image-actual-width 400)
  (setq org-src-window-setup 'current-window)
  (setq org-startup-indented t))

Add ox-gfm to make it possible to export Org Mode documents to GitHub Flavoured Markdown.

(use-package! ox-gfm
  :after org)

Treemacs file tree #

(use-package! treemacs
  :commands treemacs
  :init
    (map! :leader
      (:prefix ("f" . "file")
	:desc "Open Treemacs" "t" #'+treemacs/toggle))
  :config
  (treemacs-git-mode 'extended)
  (setq treemacs-is-never-other-window nil)
    (add-to-list 'treemacs-pre-file-insert-predicates #'treemacs-is-file-git-ignored?))

Outline #

(use-package! outline
  :config
  (setq outline-blank-line t))

Occur #

(use-package! replace
  :init
    (map! :map occur-mode-map
      :n  "e" 'occur-edit-mode)

  (add-hook 'occur-hook
	  '(lambda ()
	     (switch-to-buffer-other-window "*Occur*"))))

JSON schema #

(after! lsp-mode
  (setq lsp-yaml-schemas (make-hash-table))
  (puthash "https://ecs-intellisense.s3-us-west-2.amazonaws.com/task-definition/schema.json" ["*ecs-task-def.json" "task-definition.json"] lsp-yaml-schemas))

Modes #

I used this while making Go HTTP templates while reading Let’s Go.

(use-package web-mode
  :mode (("\\.html$" . web-mode)
	 ("\\.tmpl\\'" . web-mode)))
(add-hook! web-mode
  (prettier-on-save-mode))

Various #

There is nothing here yet.