diff options
Diffstat (limited to '.config/emacs/modules')
-rw-r--r-- | .config/emacs/modules/mm-editing.el | 26 | ||||
-rw-r--r-- | .config/emacs/modules/mm-keybindings.el | 4 | ||||
-rw-r--r-- | .config/emacs/modules/mm-modeline.el | 5 | ||||
-rw-r--r-- | .config/emacs/modules/mm-projects.el | 29 | ||||
-rw-r--r-- | .config/emacs/modules/mm-theme.el | 9 | ||||
-rw-r--r-- | .config/emacs/modules/mm-treesit.el | 45 |
6 files changed, 71 insertions, 47 deletions
diff --git a/.config/emacs/modules/mm-editing.el b/.config/emacs/modules/mm-editing.el index 911a2a0..c6c8532 100644 --- a/.config/emacs/modules/mm-editing.el +++ b/.config/emacs/modules/mm-editing.el @@ -24,7 +24,8 @@ (dolist (command #'(align-region c-backslash-region comment-dwim - makefile-backslash-region)) + makefile-backslash-region + sh-backslash-region)) (advice-add command :around #'mm-editing-force-space-indentation)) @@ -46,7 +47,8 @@ indent-tabs-mode (not mm-humanwave-p)) (defvar mm-editing-indentation-settings-alist - '((c-mode . (:extras c-basic-offset)) + '((awk-ts-mode . (:extras awk-ts-mode-indent-level)) + (c-mode . (:extras c-basic-offset)) (c-ts-mode . (:extras c-ts-mode-indent-offset)) (css-mode . (:extras css-indent-offset)) (emacs-lisp-mode . (:width 8 :spaces t)) ; GNU code uses 8-column tabs @@ -308,11 +310,25 @@ is as described by `emmet-expand-line'." (emmet-self-closing-tag-style "")) +;;; Number Formatting + +(use-package number-format-mode + :commands ( number-format-buffer number-format-region + number-unformat-buffer number-unformat-region + number-format-mode)) + + ;;; Additional Major Modes -(use-package csv-mode :ensure t) -(use-package git-modes :ensure t) -(use-package sed-mode :ensure t) +(use-package awk-ts-mode :ensure t) +(use-package git-modes :ensure t) +(use-package sed-mode :ensure t) + +(use-package csv-mode + :ensure t + :custom + (csv-align-style 'auto) + (csv-align-padding 2)) ;;; Mode-Specific Configurations diff --git a/.config/emacs/modules/mm-keybindings.el b/.config/emacs/modules/mm-keybindings.el index 9917ab8..a5919de 100644 --- a/.config/emacs/modules/mm-keybindings.el +++ b/.config/emacs/modules/mm-keybindings.el @@ -100,6 +100,10 @@ the first command is remapped to the second command." (keymap-global-unset "C-x C-l" :remove) ; ‘downcase-region’ (keymap-global-unset "C-x C-u" :remove) ; ‘upcase-region’ +;; The following conflict with ‘ace-window’ +(with-eval-after-load 'mhtml-mode + (keymap-unset html-mode-map "M-o" :remove)) + ;;; Bind Commands Globally diff --git a/.config/emacs/modules/mm-modeline.el b/.config/emacs/modules/mm-modeline.el index eaa852c..eae4dce 100644 --- a/.config/emacs/modules/mm-modeline.el +++ b/.config/emacs/modules/mm-modeline.el @@ -38,7 +38,7 @@ (propertize " (modified)" 'face 'mm-modeline-buffer-modified-face))) (defconst mm-modeline-mode-acronyms - '("css" "csv" "gsp" "html" "json" "mhtml" "rfc" "scss" "toml" "tsv") + '("css" "csv" "gsp" "html" "json" "mhtml" "rfc" "scss" "toml" "tsv" "url") "List of acronyms in major mode names that should be capitalized.") (defconst mm-modeline-remap-alist @@ -50,7 +50,8 @@ ("Gmake" . "GMake") ("Imake" . "IMake") ("Js" . "JavaScript") - ("Ts Mode" . "Tree-Sitter Mode")) + ("Ts Mode" . "Tree-Sitter Mode") + ("Wdired" . "WDired")) "Alist of substrings in major mode names that should be remapped. Some major modes have substrings that would be better displayed in another manner. For example expanding an abbreviation such as ‘Js’ to diff --git a/.config/emacs/modules/mm-projects.el b/.config/emacs/modules/mm-projects.el index f3a8710..be80789 100644 --- a/.config/emacs/modules/mm-projects.el +++ b/.config/emacs/modules/mm-projects.el @@ -20,18 +20,23 @@ This is intended to be called interactively via (mm-projects-project-magit-status "Git Status" ?s))) :config (unless mm-darwin-p - (if-let ((repo-directory (getenv "REPODIR")) - (directories - (cl-loop - for author in (directory-files repo-directory :full "\\`[^.]") - append (cl-loop - for path in (directory-files author :full "\\`[^.]") - collect (list (concat path "/")))))) - (progn - (with-temp-buffer - (prin1 directories (current-buffer)) - (write-file project-list-file)) - (project--read-project-list)) + (if-let ((repo-directory (getenv "REPODIR"))) + (with-eval-after-load 'async + (async-start + (lambda () + (require 'project) + (let* ((list-dir + (lambda (path) + (directory-files path :full "\\`[^.]"))) + (directories + (cl-loop for author in (funcall list-dir (getenv "REPODIR")) + append (cl-loop for path in (funcall list-dir author) + collect (list (concat path "/")))))) + (with-temp-buffer + (prin1 directories (current-buffer)) + (write-file project-list-file)))) + (lambda (_proc) + (project--read-project-list)))) (warn "The REPODIR environment variable is not set.")))) diff --git a/.config/emacs/modules/mm-theme.el b/.config/emacs/modules/mm-theme.el index 90d4992..f2e9b04 100644 --- a/.config/emacs/modules/mm-theme.el +++ b/.config/emacs/modules/mm-theme.el @@ -74,7 +74,7 @@ _FRAME is ignored." ((mhtml-mode html-mode html-ts-mode vue-ts-mode) . ("<!--" "-->" "/>")) (prog-mode - . ("<=" ">=" "==" "!=" "*=" "__"))) + . ("<<=" "<=" ">=" "==" "!=" "*=" "__"))) "Ligatures to enable in specific modes. Elements of this alist are of the form: @@ -203,9 +203,14 @@ See also the `mm-theme-background-opacity' variable." ;;; More Intuiative UI for Certain Modes +(defun mm-disable-line-selection-mode () + (line-selection-mode -1)) + (use-package line-selection-mode :hook ((bookmark-bmenu-mode dired-mode ibuffer-mode magit-repolist-mode) - . line-selection-mode)) + . line-selection-mode) + :config + (add-hook 'wdired-mode-hook #'mm-disable-line-selection-mode)) ;;; Line Highlighting diff --git a/.config/emacs/modules/mm-treesit.el b/.config/emacs/modules/mm-treesit.el index df3d85a..a41f52c 100644 --- a/.config/emacs/modules/mm-treesit.el +++ b/.config/emacs/modules/mm-treesit.el @@ -15,13 +15,15 @@ (setopt treesit-font-lock-level 4) (setopt treesit-language-source-alist - '((c "https://github.com/tree-sitter/tree-sitter-c") + '((awk "https://github.com/Beaglefoot/tree-sitter-awk") + (c "https://github.com/tree-sitter/tree-sitter-c") (cpp "https://github.com/tree-sitter/tree-sitter-cpp") (css "https://github.com/tree-sitter/tree-sitter-css") (go "https://github.com/tree-sitter/tree-sitter-go") (gomod "https://github.com/camdencheek/tree-sitter-go-mod") (gsp "git://git.thomasvoss.com/tree-sitter-gsp.git") (html "https://github.com/tree-sitter/tree-sitter-html") + (java "https://github.com/tree-sitter/tree-sitter-java") (javascript "https://github.com/tree-sitter/tree-sitter-javascript") (python "https://github.com/tree-sitter/tree-sitter-python") (typescript "https://github.com/tree-sitter/tree-sitter-typescript" @@ -32,32 +34,23 @@ ;;; Install Missing Parsers -(defun mm-treesit-sync-sources () - "Sync Tree-Sitter parsers. -Reinstall the Tree-Sitter parsers specified by - `treesit-language-source-alist'." +(defun mm-treesit-install-all () + "Install all Tree-Sitter parsers. +This is like `mm-treesit-install-missing' but also reinstalls parsers +that are already installed." (interactive) - (let ((total (length treesit-language-source-alist)) - (count 0) - (work treesit-language-source-alist) - (processors-to-use (max 1 (1- (num-processors))))) - (while work - (let ((specs (seq-take work processors-to-use))) - (dolist (spec specs) - (async-start - `(lambda () - ,(async-inject-variables "\\`treesit-language-source-alist\\'") - (treesit-install-language-grammar ',(car spec))) - (lambda (_) - (setq count (1+ count)) - (message "Done syncing Tree-Sitter grammar for `%s' [%d/%d]" - (car spec) count total)))) - (setq work (seq-drop work processors-to-use)))))) - -(thread-last - (mapcar #'car treesit-language-source-alist) - (seq-remove #'treesit-language-available-p) - (mapc #'treesit-install-language-grammar)) + (cl-loop for (lang) in treesit-language-source-alist + do (treesit-install-language-grammar lang))) + +(defun mm-treesit-install-missing () + "Install missing Tree-Sitter parsers. +The parsers are taken from `treesit-language-source-alist'." + (interactive) + (cl-loop for (lang) in treesit-language-source-alist + unless (treesit-language-available-p lang) + do (treesit-install-language-grammar lang))) + +(mm-treesit-install-missing) ;;; Install Additional TS Modes |