.emacs.d/init.d/text/misc.el

181 lines
7.2 KiB
EmacsLisp
Raw Normal View History

2019-10-14 17:38:14 +02:00
;;; misc.el --- Miscellaneous file formats. -*- lexical-binding: t; -*-
;; Time-stamp: <2020-06-29T09:23:40+0200>
2019-10-14 17:38:14 +02:00
;;; Commentary:
;;; Code:
(require 'basics/package-management)
2019-10-14 17:38:14 +02:00
(require 'text/common)
(use-package conf-mode
2020-03-27 18:05:15 +01:00
: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.
2020-03-27 18:05:15 +01:00
("\\.pc\\(\\.in\\)?$" . conf-mode) ; pkg-config files.
("conanfile\\.txt$" . conf-mode))) ; Conan recipes.
2019-10-14 17:38:14 +02:00
(use-package crontab-mode
2020-03-27 18:05:15 +01:00
;; 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.
2019-10-14 17:38:14 +02:00
(use-package nginx-mode)
2019-10-14 17:38:14 +02:00
(use-package company-nginx
:after (nginx-mode company)
2020-03-27 18:05:15 +01:00
:hook (nginx-mode . company-nginx-keywords))
2019-10-14 17:38:14 +02:00
(use-package yaml-mode
2020-03-27 18:05:15 +01:00
:mode ("\\.yml$" . yaml-mode)
:hook (yaml-mode . my/truncate-lines))
2019-10-14 17:38:14 +02:00
(use-package mediawiki
;; Broken for >= 27, <https://github.com/hexmode/mediawiki-el/issues/35>.
:if (< emacs-major-version 27)
2020-03-27 18:05:15 +01:00
:commands (mediawiki-mode))
2019-10-14 17:38:14 +02:00
(use-package csv-mode
2020-03-27 18:05:15 +01:00
:mode ("\\.[Cc][Ss][Vv]$" . csv-mode))
2019-10-14 17:38:14 +02:00
(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))))
2020-04-17 05:04:56 +02:00
(markup-secondary-text-face ((t (:inherit markup-gen-face :height 1.0))))
2019-10-14 17:38:14 +02:00
(markup-hide-delimiter-face ((t (:inherit markup-meta-face))))
(markup-meta-hide-face ((t (:inherit markup-meta-face))))
2020-04-17 05:04:56 +02:00
:config (set-face-background 'markup-verbatim-face ; Inline code.
(face-background 'hl-line))
2019-10-14 17:38:14 +02:00
2020-03-27 18:05:15 +01:00
: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
2020-04-17 05:04:56 +02:00
"8/:[dD][aA][tT][eE]: +%Y-%02m-%02d\n")))
2020-03-27 18:05:15 +01:00
(adoc-mode . yas-minor-mode))) ; Enable yasnippets.
2019-10-14 17:38:14 +02:00
(use-package markdown-mode
2020-03-27 18:05:15 +01:00
:custom (markdown-command "cmark")
2019-10-14 17:38:14 +02:00
: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))))
2020-04-17 05:04:56 +02:00
:config (set-face-background 'markdown-code-face ; Won't work in :custom-face.
(face-background 'hl-line))
2020-03-27 18:05:15 +01:00
:mode (("README\\.md$" . gfm-mode)
("\\.md$" . gfm-mode)
("\\.markdown$" . gfm-mode))
:hook (markdown-mode . auto-fill-mode)) ; Wrap at fill-column.
2019-10-14 17:38:14 +02:00
2020-03-27 18:05:15 +01:00
;; Insert pseudo latin text.
2019-11-20 18:28:25 +01:00
(use-package lorem-ipsum)
;; Document editing, formatting, and organizing mode.
(use-package org
2020-05-13 02:46:17 +02:00
:straight nil ; Use built-in version.
2020-04-17 05:28:08 +02:00
: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)
(org-babel-do-load-languages 'org-babel-load-languages
'((emacs-lisp . t)
(shell . t)
(C .t))))
2020-05-09 03:48:38 +02:00
: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-<left>" . nil)
("M-<right>" . nil)
("M-<up>" . nil)
("M-<down>" . nil)
("M-S-<left>" . nil)
("M-S-<right>" . nil)
("M-S-<up>" . nil)
("M-S-<down>" . nil)
("S-<left>" . nil)
("S-<right>" . nil)
("S-<up>" . nil)
("S-<down>" . nil)
("C-S-<left>" . nil)
("C-S-<right>" . nil)
("C-S-<up>" . nil)
("C-S-<down>" . nil))))
2020-05-04 20:44:00 +02:00
(use-package org-bullets
:after org
:hook (org-mode . org-bullets-mode))
(use-package sendmail
2020-03-27 18:05:15 +01:00
:mode ("/.claws-mail/tmp/tmpmsg\\." . mail-mode) ; claws-mail messages.
:hook (mail-mode . (lambda () (set-fill-column 72))))
2020-02-25 05:20:50 +01:00
;; Open more file extensions in nxml-mode.
(use-package nxml
2020-03-27 18:05:15 +01:00
:mode ("\\.qrc" . nxml-mode))
2020-02-25 05:20:50 +01:00
2020-04-19 13:53:51 +02:00
;; 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
:host nil
:repo "https://anongit.gentoo.org/git/proj/ebuild-mode.git")))
:hook (ebuild-mode . (lambda () (set-fill-column 80))))
;; Translate ANSI escape color codes.
(use-package ansi-color
:config (defun my/display-ansi-colors ()
(interactive)
(let ((inhibit-read-only t))
(ansi-color-apply-on-region (point-min) (point-max))))
:mode ("\\.log$" . my/display-ansi-colors))
2020-05-29 09:42:15 +02:00
;; Syntax-highlighting mode for text/gemini.
(use-package gemini-mode
:hook (gemini-mode . (lambda() (auto-fill-mode -1))))
2019-10-14 17:38:14 +02:00
(provide 'text/misc)
;;; misc.el ends here