From 9d0e18aaf5883aa1459667f4484d6de9929012f5 Mon Sep 17 00:00:00 2001 From: Alison Watson Date: Mon, 14 Feb 2022 12:15:27 -0700 Subject: [PATCH] emachs --- emacs/data.el | 10 +++-- emacs/early-init.el | 12 +----- emacs/init.el | 94 +++++++++++++++++++++++++++++++++------------ 3 files changed, 78 insertions(+), 38 deletions(-) diff --git a/emacs/data.el b/emacs/data.el index 13e934e..a1ca43b 100644 --- a/emacs/data.el +++ b/emacs/data.el @@ -18,13 +18,17 @@ "Binds a key into `agw-mode-map'." (define-key agw-mode-map (kbd (concat "C- " key)) def)) -(defun agw-fp-mode () - "Sets up lisp and other functional language major modes." +(defun agw-no-tabs () + "Sets `indent-tabs-mode' to `nil'." (setq-local indent-tabs-mode nil)) +(defun agw-yes-tabs () + "Sets `indent-tabs-mode' to `t'." + (setq-local indent-tabs-mode t)) + (defun agw-org-mode () "Sets up `org-mode'." - (setq-local indent-tabs-mode nil) + (agw-no-tabs) (define-key evil-normal-state-map (kbd "TAB") 'org-cycle)) (defun agw-cc-mode () diff --git a/emacs/early-init.el b/emacs/early-init.el index c8a6e59..a9d9697 100644 --- a/emacs/early-init.el +++ b/emacs/early-init.el @@ -37,18 +37,10 @@ (add-to-list 'default-frame-alist '(width . 80)) (add-to-list 'default-frame-alist '(height . 30)) -(set-face-attribute 'default nil :family "Courier Prime Code" - :height 120 :weight 'normal :width 'normal) +(set-face-attribute 'default nil :family "JetBrains Mono" + :height 120) (copy-face 'default 'fixed-pitch) (copy-face 'default 'mode-line) -;; fontset usage -(dolist (range '((#x2310 . #x26bf) - (#x26c0 . #x329f) - (#x1f000 . #x1fa9f))) - (set-fontset-font t range "Noto Color Emoji")) - -(set-fontset-font t '(#x2e80 . #x9fff) "Noto Sans CJK JP") - ;; EOF diff --git a/emacs/init.el b/emacs/init.el index 56c4e84..b471c28 100644 --- a/emacs/init.el +++ b/emacs/init.el @@ -3,6 +3,9 @@ (load custom-file) (load usr-data)) +;; tabulation +(setq-default tab-width 3) + ;; mode line (setq-default mode-line-format '("%+" @@ -22,7 +25,6 @@ ;; `prog-mode' (add-hook 'prog-mode-hook #'agw-flyspell-prog-mode) -(add-hook 'prog-mode-hook #'prettify-symbols-mode) (add-hook 'prog-mode-hook #'subword-mode) ;; `text-mode' @@ -36,10 +38,10 @@ (current-buffer) (find-file "~/org/init.org")))) -(add-hook 'emacs-lisp-mode-hook #'agw-fp-mode) -(add-hook 'lisp-mode-hook #'agw-fp-mode) -(add-hook 'reb-lisp-mode-hook #'agw-fp-mode) -(add-hook 'scheme-mode-hook #'agw-fp-mode) +(add-hook 'emacs-lisp-mode-hook #'agw-no-tabs) +(add-hook 'lisp-mode-hook #'agw-no-tabs) +(add-hook 'reb-lisp-mode-hook #'agw-no-tabs) +(add-hook 'scheme-mode-hook #'agw-no-tabs) (add-hook 'before-save-hook #'agw-before-save) @@ -60,10 +62,9 @@ (global-set-key (kbd "C-x C-") #'agw-key-map-mode) ;; packages -(require 'package) -(unless (package-installed-p 'use-package) - (package-refresh-contents) - (package-install 'use-package)) +(eval-when-compile + (add-to-list 'load-path "/home/marrub/src/use-package") + (require 'use-package)) ;; theme (use-package base16-theme @@ -106,6 +107,9 @@ (use-package elisp-mode) (use-package eldoc) +(use-package sfz-mode + :ensure t) + (use-package yaml-mode :ensure t) @@ -181,21 +185,24 @@ (use-package haskell-mode :ensure t - :hook (haskell-mode . agw-fp-mode)) + :hook (haskell-mode . agw-no-tabs)) (use-package markdown-mode :ensure t - :hook ((markdown-mode . agw-flyspell-mode)) + :hook (markdown-mode . agw-flyspell-mode) :mode (("\\.mdwn\\'" . markdown-mode))) (use-package ninja-mode :ensure t) (use-package ruby-mode - :hook ((ruby-mode . mmm-mode)) :init (defvaralias 'ruby-indent-level 'tab-width) - (setq ruby-insert-encoding-magic-comment nil)) + (defvaralias 'ruby-indent-tabs-mode 'indent-tabs-mode) + (setq ruby-insert-encoding-magic-comment nil + ruby-deep-arglist nil + ruby-deep-indent-paren nil + ruby-use-smie nil)) (use-package rust-mode :hook (rust-mode . agw-maybe-smart-tabs-mode) @@ -204,7 +211,13 @@ (defvaralias 'rust-indent-offset 'tab-width)) (use-package sgml-mode - :hook (html-mode . agw-fp-mode)) + :hook (html-mode . agw-no-tabs)) + +(use-package typescript-mode + :hook (typescript-mode . agw-maybe-smart-tabs-mode) + :ensure t + :init + (defvaralias 'typescript-indent-level 'tab-width)) ;; org-mode (use-package org @@ -266,7 +279,7 @@ ;; adjustments (use-package smart-tabs-mode :ensure t - :after (fish-mode glsl-mode rust-mode lua-mode) + :after (fish-mode glsl-mode rust-mode lua-mode ruby-mode) :config (smart-tabs-add-language-support powershell powershell-mode-hook ((powershell-indent-line . powershell-indent))) @@ -277,6 +290,8 @@ (smart-tabs-add-language-support glsl glsl-mode-hook ((c-indent-line . c-basic-offset) (c-indent-region . c-basic-offset))) + (smart-tabs-add-language-support ruby ruby-mode-hook + ((ruby-indent-line . ruby-indent-level))) (smart-tabs-add-language-support lua lua-mode-hook ((lua-indent-line . lua-indent-level)))) @@ -354,15 +369,21 @@ (use-package dired :config (setq dired-listing-switches "-alhp --si") - (agw-set-key "f" #'dired-jump) (agw-set-key "t" #'dired-create-empty-file)) -(use-package ranger +(use-package dired-x) + +(use-package diredfl :ensure t + :hook (dired-mode . diredfl-mode)) + +(use-package dirvish + :ensure t + :demand t :after dired - :hook (dired-mode . ranger-override-dired-fn) :config - (setq ranger-override-dired 'ranger)) + (agw-set-key "f" #'dirvish) + (dirvish-override-dired-mode)) (use-package deadgrep :ensure t) @@ -382,23 +403,25 @@ (use-package evil :ensure t - :init + :after (dirvish undo-tree) + :demand t + :hook ((evil-local-mode . turn-on-undo-tree-mode)) + :config (setq evil-cjk-emacs-word-boundary t evil-cross-lines t evil-mode-line-format 'after evil-shift-width 3 evil-vsplit-window-right t evil-want-keybinding nil - evil-indent-convert-tabs nil) - ;; tags - (setq evil-normal-state-tag "~" + evil-indent-convert-tabs nil + evil-normal-state-tag "~" evil-insert-state-tag "i" evil-operator-state-tag "o" evil-replace-state-tag "r" evil-visual-state-tag 'agw-evil-visual-state-tag evil-motion-state-tag "m" - evil-emacs-state-tag "x") - :config + evil-emacs-state-tag "x" + evil-undo-system 'undo-tree) (evil-mode t) (evil-global-set-key 'visual (kbd "g s") #'sort-lines) @@ -407,10 +430,31 @@ (use-package evil-collection :ensure t :after evil + :demand t :config (evil-collection-init)) ;; visuals +(use-package ligature + :load-path "/home/marrub/src/ligature.el" + :config + (ligature-set-ligatures + 't + '("---" "===" "!==" "=!=" "!=" "=:=" "=/=" "&&&" "&&" "&=" "+++" + "++" "***" ";;" "!!" "???" "??" "?:" "?." "?=" "<:<" "<:" ":<" + ":>" ">:" "<>" "<<<" ">>>" "-|" "_|_" "||-" "||=" "####" "###" + "##" "#{" "#[" "]#" "#(" "#?" "#_(" "#_" "#:" "#!" "#=" "^=" + "<$>" "<$" "$>" "<+>" "<+" "+>" "<*>" "<*" "*>" "" "" + "" "--" "->>" "<<-" "<-" "<=<" "=<<" "<<=" + "<==>" "<==" "<=>" "==>" "=>>" ">=>" ">>=" ">=" ">>-" "-<<" ">->" + ">-" "<-<" "-<" "<-|" "<=|" "<=" "<->" "|=>" "|->" "->" "=>" "|=" + "|-" "<~~" "<~>" "<~" "~~>" "~~" "~>" "~-" "-~" "~@" "[||]" "|]" + "[|" "|}" "{|" "[<" ">]" "<|>" "|||>" "<|||" "||>" "<||" "|>" + "<|" "||" "..." "..<" ".." ".=" ".?" ":::" "::=" "::" ":=" ":?" + ":?>" "///" "//" "/*" "*/" "//=" "/==" "==" "/=" "@_" "__" "<<" + ">>")) + (global-ligature-mode 't)) + (use-package simple :init (setq line-move-ignore-invisible nil)