You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1.8 KiB

Core - Mode

Package

Define core mode package.

  (use-package emacs
    :after uno
    :config
    (provide 'uno-mode))

Program Mode

Define custom prog-mode as there are some libraries that do not abide.

  (use-package emacs
    :after uno-mode
    :hook
    ((conf-mode prog-mode) . uno/run-prog-mode-hook)
    :init
    (defvar uno-prog-based-modes '(nxml-mode prog-mode sgml-mode)
      "List of prog based modes.")
    (defun uno/add-prog-mode (mode)
      "Consider MODE prog based."
      (push mode uno-prog-based-modes))
    (defun uno/run-prog-mode-hook ()
      "Configure program mode."
      (run-hooks 'uno-prog-mode-hook)))

Text Mode

Define custom text-mode as there are some libraries that do not abide.

  (use-package dash
    :after uno-mode
    :hook
    (text-mode . uno/run-text-mode-hook)
    :init
    (defun uno/run-text-mode-hook ()
      "Configure text mode, checking for prog mode."
      (if (-any? 'derived-mode-p uno-prog-based-modes)
          (uno/run-prog-mode-hook)
        (run-hooks 'uno-text-mode-hook))))

Special Mode

Define custom special-mode as there are some libraries that do not abide.

  (use-package emacs
    :after uno-mode
    :hook
    (special-mode . uno/run-special-mode-hook)
    :init
    (defvar uno-non-special-based-modes nil
      "List of special based modes to exclude.")
    (defun uno/exclude-special-mode (mode)
      "Exclude MODE as special based."
      (push mode uno-non-special-based-modes))
    (defun uno/run-special-mode-hook ()
      "Configure program mode."
      (unless (member major-mode uno-non-special-based-modes)
        (run-hooks 'uno-special-mode-hook))))