;;; misc.el --- Miscellaneous file formats. -*- lexical-binding: t; -*- ;; Time-stamp: <2020-05-20T05:53:50+0000> ;;; Commentary: ;;; Code: (require 'basics/package-management) (require 'text/common) (use-package conf-mode :mode (("^/etc/conf\\.d/" . conf-mode) ; openrc config. ("^/etc/portage/package\\.use/" . conf-space-mode) ; Portage config. ("^/etc/portage/package\\.accept_keywords/" . conf-space-mode) ("^/etc/portage/package\\.mask/" . conf-space-mode) ("^/etc/portage/package\\.unmask/" . conf-space-mode) ("package\\.mask$" . conf-space-mode) ; In ebuild repos. ("\\.pc\\(\\.in\\)?$" . conf-mode) ; pkg-config files. ("conanfile\\.txt$" . conf-mode))) ; Conan recipes. (use-package crontab-mode ;; Shrink minutes to normal size. :custom-face (outline-1 ((t (:inherit outline-1 :height 1.0)))) :mode (("/cron\\.d/" . crontab-mode) ("^'/etc/crontab$" . crontab-mode)) :hook (crontab-mode . (lambda () (auto-fill-mode -1)))) ; No word-wrapping. (use-package nginx-mode :defer t) ; Why defer? (use-package company-nginx :after (nginx-mode company) :hook (nginx-mode . company-nginx-keywords)) (use-package yaml-mode :mode ("\\.yml$" . yaml-mode) :hook (yaml-mode . my/truncate-lines)) (use-package mediawiki ;; Broken for >= 27, . :if (< emacs-major-version 27) :commands (mediawiki-mode)) (use-package csv-mode :mode ("\\.[Cc][Ss][Vv]$" . csv-mode)) (use-package adoc-mode :custom-face ;; Style headers. (markup-title-0-face ((t (:inherit markup-gen-face :height 1.4 :weight bold)))) (markup-title-1-face ((t (:inherit markup-gen-face :height 1.3 :weight bold)))) (markup-title-2-face ((t (:inherit markup-gen-face :height 1.2 :weight bold)))) (markup-title-3-face ((t (:inherit markup-gen-face :height 1.1 :weight bold)))) (markup-title-4-face ((t (:inherit markup-gen-face :height 1.0 :weight bold :underline t)))) (markup-title-5-face ((t (:inherit markup-gen-face :height 1.0 :weight bold)))) ;; Enlarge meta-data to the same size as the other text. (markup-meta-face ((t (:inherit font-lock-comment-face)))) (markup-secondary-text-face ((t (:inherit markup-gen-face :height 1.0)))) (markup-hide-delimiter-face ((t (:inherit markup-meta-face)))) (markup-meta-hide-face ((t (:inherit markup-meta-face)))) :config (set-face-background 'markup-verbatim-face ; Inline code. (face-background 'hl-line)) :mode ("\\.adoc$" . adoc-mode) :hook ((adoc-mode . auto-fill-mode) ; Wrap at fill-column. (adoc-mode . (lambda () ; Automatically update date. (setq-local time-stamp-pattern "8/:[dD][aA][tT][eE]: +%Y-%02m-%02d\n"))) (adoc-mode . yas-minor-mode))) ; Enable yasnippets. (use-package markdown-mode :custom (markdown-command "cmark") :custom-face ;; Style headers. (markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.4 :weight bold)))) (markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.3 :weight bold)))) (markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.2 :weight bold)))) (markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.1 :weight bold)))) (markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.0 :weight bold :underline t)))) (markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.0 :weight bold)))) (markdown-header-face-7 ((t (:inherit markdown-header-face :height 1.0 :weight bold)))) :config (set-face-background 'markdown-code-face ; Won't work in :custom-face. (face-background 'hl-line)) :mode (("README\\.md$" . gfm-mode) ("\\.md$" . gfm-mode) ("\\.markdown$" . gfm-mode)) :hook (markdown-mode . auto-fill-mode)) ; Wrap at fill-column. ;; Insert pseudo latin text. (use-package lorem-ipsum) ;; Document editing, formatting, and organizing mode. (use-package org :straight nil ; Use built-in version. :defines (org-default-notes-file) :commands (org-mode) :custom ((org-support-shift-select t) ; Make shift behave normally on text. (org-default-notes-file "~/notes.org")) :config (progn (set-face-attribute 'org-level-1 nil :height 1.4) (set-face-attribute 'org-level-2 nil :height 1.2)) :hook (org-mode . org-show-all) :bind (("C-c o" . (lambda () (interactive) ; Open notes. (find-file org-default-notes-file))) (:map org-mode-map ; Remove some annoying keybindings. ("M-" . nil) ("M-" . nil) ("M-" . nil) ("M-" . nil) ("M-S-" . nil) ("M-S-" . nil) ("M-S-" . nil) ("M-S-" . nil) ("S-" . nil) ("S-" . nil) ("S-" . nil) ("S-" . nil) ("C-S-" . nil) ("C-S-" . nil) ("C-S-" . nil) ("C-S-" . nil)))) (use-package org-bullets :after org :hook (org-mode . org-bullets-mode)) (use-package sendmail :mode ("/.claws-mail/tmp/tmpmsg\\." . mail-mode) ; claws-mail messages. :hook (mail-mode . (lambda () (set-fill-column 72)))) ;; Open more file extensions in nxml-mode. (use-package nxml :mode ("\\.qrc" . nxml-mode)) ;; Syntax highlighting for docker files. (use-package dockerfile-mode :mode ("Dockerfile$" . dockerfile-mode)) (use-package ebuild-mode :straight nil ; Only install if not on Gentoo. :init (unless (string-match-p "gentoo" operating-system-release) (straight-use-package '(ebuild-mode :type git :host nil :repo "https://anongit.gentoo.org/git/proj/ebuild-mode.git"))) :hook (ebuild-mode . (lambda () (set-fill-column 80)))) (provide 'text/misc) ;;; misc.el ends here