diff options
author | Amin Bandali <bandali@kelar.org> | 2025-02-08 14:14:06 -0500 |
---|---|---|
committer | Amin Bandali <bandali@kelar.org> | 2025-02-08 14:14:06 -0500 |
commit | deba2c035794cdb0f129325487cd3d570301ebc4 (patch) | |
tree | 55434d2837839bbabc99b65c4db806cfbb6b2fdb | |
parent | 7b718d276e1d9f01287baea7187baef618e6b947 (diff) | |
download | configs-deba2c035794cdb0f129325487cd3d570301ebc4.tar.gz configs-deba2c035794cdb0f129325487cd3d570301ebc4.tar.xz configs-deba2c035794cdb0f129325487cd3d570301ebc4.zip |
Update bandali-essentials and add bandali-prog
-rw-r--r-- | .emacs.d/init.el | 120 | ||||
-rw-r--r-- | .emacs.d/lisp/bandali-essentials.el | 39 | ||||
-rw-r--r-- | .emacs.d/lisp/bandali-prog.el | 98 |
3 files changed, 150 insertions, 107 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 7ab00be..9267ce4 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -24,6 +24,14 @@ ;;; Code: +;; whoami +(setq + user-full-name "Amin Bandali" + user-mail-address "bandali@kelar.org") + + +;;; Package management + (setq use-package-verbose init-file-debug use-package-expand-minimally (not init-file-debug) @@ -32,17 +40,13 @@ debug-on-quit init-file-debug) (require 'package) +;; Install use-package on older Emascen if needed. (when (< emacs-major-version 29) (unless (package-installed-p 'use-package) (unless package-archive-contents (package-refresh-contents)) (package-install 'use-package))) -;; whoami -(setq - user-full-name "Amin Bandali" - user-mail-address "bandali@kelar.org") - ;;; Initial setup @@ -127,6 +131,7 @@ plain variables. This means that `setopt' will execute any (add-to-list 'load-path (b/emacs.d "lisp")) (require 'bandali-essentials) +(require 'bandali-prog) ;; (require 'bandali-exwm) (require 'bandali-eshell) (require 'bandali-ibuffer) @@ -141,70 +146,8 @@ plain variables. This means that `setopt' will execute any ;; smtpmail-queue-dir (concat b/maildir "queue/"))) ;;; IRC with ERC (require 'bandali-erc) - - -;;; Programming modes - -(use-package elisp-mode - :bind - ("C-c e e" . eval-last-sexp)) - -(use-package pp - :bind - ("C-c e m" . pp-macroexpand-last-sexp)) - -(with-eval-after-load 'lisp-mode - (add-hook - 'lisp-interaction-mode-hook - (lambda () (setq indent-tabs-mode nil)))) - -;; (add-to-list 'load-path (b/lisp "alloy-mode")) -;; (autoload 'alloy-mode "alloy-mode" nil t) -;; (with-eval-after-load 'alloy-mode -;; (setq alloy-basic-offset 2) -;; ;; (defun b/alloy-simple-indent (start end) -;; ;; (interactive "r") -;; ;; ;; (if (region-active-p) -;; ;; ;; (indent-rigidly start end alloy-basic-offset) -;; ;; ;; (if (bolp) -;; ;; ;; (indent-rigidly (line-beginning-position) -;; ;; ;; (line-end-position) -;; ;; ;; alloy-basic-offset))) -;; ;; (indent-to (+ (current-column) alloy-basic-offset))) -;; (define-key alloy-mode-map (kbd "RET") #'electric-newline-and-maybe-indent) -;; ;; (define-key alloy-mode-map (kbd "TAB") #'b/alloy-simple-indent) -;; (define-key alloy-mode-map (kbd "TAB") #'indent-for-tab-command)) -;; (add-to-list 'auto-mode-alist '("\\.\\(als\\|dsh\\)\\'" . alloy-mode)) -;; (add-hook 'alloy-mode-hook (lambda nil (setq-local indent-tabs-mode nil))) - -;; (eval-when-compile (defvar lean-mode-map)) -;; (run-with-idle-timer 0.4 nil #'require 'lean-mode) -;; (with-eval-after-load 'lean-mode -;; (require 'lean-input) -;; (setq default-input-method "Lean" -;; lean-input-tweak-all '(lean-input-compose -;; (lean-input-prepend "/") -;; (lean-input-nonempty)) -;; lean-input-user-translations '(("/" "/"))) -;; (lean-input-setup) -;; ;; local key bindings -;; (define-key lean-mode-map (kbd "S-SPC") #'company-complete)) - -(with-eval-after-load 'sgml-mode - (setopt sgml-basic-offset 0)) - -(with-eval-after-load 'css-mode - (setopt css-indent-offset 2)) - -(add-hook 'tex-mode-hook #'auto-fill-mode) -(add-hook 'tex-mode-hook #'flyspell-mode) - -(autoload 'cmake-mode "cmake-mode" nil t) -(add-to-list 'auto-mode-alist '("CMakeLists\\.txt\\'" . cmake-mode)) -(add-to-list 'auto-mode-alist '("\\.cmake\\'" . cmake-mode)) -(with-eval-after-load 'cmake-mode - (add-to-list 'load-path (b/emacs.d "lisp/cmake-font-lock")) - (require 'cmake-font-lock)) +;; (require 'bandali-misc) +(require 'bandali-po) ;;; Emacs enhancements & auxiliary packages @@ -224,43 +167,8 @@ plain variables. This means that `setopt' will execute any (debbugs-gnu debbugs-gnu-default-severities '("gnuzilla")))) -(with-eval-after-load 'eww - (setopt - eww-download-directory - (file-name-as-directory (getenv "XDG_DOWNLOAD_DIR")))) -(b/keymap-global-set "C-c e w" #'eww) - -(run-with-idle-timer - 0.2 nil #'require 'display-fill-column-indicator nil 'noerror) -(with-eval-after-load 'display-fill-column-indicator - (global-display-fill-column-indicator-mode 1)) - -(with-eval-after-load 'window - (setopt split-width-threshold 140)) - -(add-hook 'latex-mode-hook #'reftex-mode) - -(when (and - (featurep 'completion-preview) - (functionp #'completion-preview-mode)) - (b/keymap-set completion-preview-active-mode-map - "M-n" #'completion-preview-next-candidate) - (b/keymap-set completion-preview-active-mode-map - "M-p" #'completion-preview-prev-candidate) - (b/keymap-set completion-preview-active-mode-map - "M-i" #'completion-preview-insert) - (add-hook 'prog-mode-hook #'completion-preview-mode) - (add-hook 'text-mode-hook #'completion-preview-mode) - (with-eval-after-load 'comint - (add-hook 'comint-mode-hook #'completion-preview-mode))) - -(run-with-idle-timer 0.5 nil #'require 'delight) -(with-eval-after-load 'delight - (delight 'auto-fill-function " f" "simple") - (delight 'abbrev-mode "" "abbrev") - (delight 'mml-mode " mml" "mml")) - -(require 'bandali-po) +(use-package mml + :delight " mml") (add-to-list 'load-path (b/emacs.d "lisp/ffs")) (run-with-idle-timer 0.5 nil #'require 'ffs) diff --git a/.emacs.d/lisp/bandali-essentials.el b/.emacs.d/lisp/bandali-essentials.el index a0ea5f1..c9927de 100644 --- a/.emacs.d/lisp/bandali-essentials.el +++ b/.emacs.d/lisp/bandali-essentials.el @@ -102,6 +102,10 @@ :background grey :inherit 'fixed-pitch))))) +(use-package delight + :ensure t + :defer 0.5) + (use-package minibuffer :custom (read-file-name-completion-ignore-case t)) @@ -129,6 +133,10 @@ ("C-c F m" . make-frame-command) ("C-c F d" . delete-frame)) +(use-package window + :custom + (split-width-threshold 140)) + (use-package text-mode :mode "\\(README.*\\|COMMIT_EDITMSG$\\)") @@ -348,6 +356,10 @@ (show-paren-mode 1)) (use-package simple + :delight + (auto-fill-function " f") + :hook + ((text-mode tex-mode) . auto-fill-mode) :custom ;; Save what I copy into clipboard from other applications into ;; Emacs' kill-ring, which would allow me to still be able to @@ -376,12 +388,37 @@ :custom (flyspell-mode-line-string " fly") :hook - (text-mode . flyspell-mode)) + ((text-mode tex-mode) . flyspell-mode)) (use-package abbrev + :delight :hook (text-mode . abbrev-mode)) +(use-package eww + :bind + ("C-c e w" . eww) + :custom + (eww-download-directory + (file-name-as-directory (getenv "XDG_DOWNLOAD_DIR")))) + +(use-package display-fill-column-indicator + :defer 0.2 + :config + (global-display-fill-column-indicator-mode 1)) + +(use-package completion-preview + ;; :if (package-installed-p 'completion-preview) + :if (version<= "30" emacs-version) + :bind + (:map + completion-preview-active-mode-map + ("M-n" . completion-preview-next-candidate) + ("M-p" . completion-preview-prev-candidate) + ("M-i" . completion-preview-insert)) + :hook + ((prog-mode text-mode comint-mode) . completion-preview-mode)) + (use-package version :bind ("C-c e v" . emacs-version)) diff --git a/.emacs.d/lisp/bandali-prog.el b/.emacs.d/lisp/bandali-prog.el new file mode 100644 index 0000000..66f2c3a --- /dev/null +++ b/.emacs.d/lisp/bandali-prog.el @@ -0,0 +1,98 @@ +;;; bandali-prog.el --- programming modes setup -*- lexical-binding: t; -*- + +;; Copyright (c) 2018-2025 Amin Bandali <bandali@gnu.org> + +;; Author: Amin Bandali <bandali@gnu.org> +;; Keywords: languages + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <https://www.gnu.org/licenses/>. + +;;; Commentary: + +;; My customizations for various programming language modes. + +;;; Code: + +(use-package elisp-mode + :bind + ("C-c e e" . eval-last-sexp)) + +(use-package pp + :bind + ("C-c e m" . pp-macroexpand-last-sexp)) + +(use-package lisp-mode + :hook + (lisp-interaction-mode . (lambda () (setq-local indent-tabs-mode nil)))) + +(use-package alloy-mode + :disabled + :load-path "lisp/alloy-mode" + :mode "\\.\\(als\\|dsh\\)\\'" + :hook + (alloy-mode . (lambda nil (setq-local indent-tabs-mode nil))) + :init + (defun b/alloy-simple-indent (start end) + (interactive "r") + ;; (if (region-active-p) + ;; (indent-rigidly start end alloy-basic-offset) + ;; (if (bolp) + ;; (indent-rigidly (line-beginning-position) + ;; (line-end-position) + ;; alloy-basic-offset))) + (indent-to (+ (current-column) alloy-basic-offset))) + :bind + (:map + alloy-mode-map + (;; ("TAB" . b/alloy-simple-indent) + "RET" . electric-newline-and-maybe-indent)) + :custom + (alloy-basic-offset 2)) + +;; (eval-when-compile (defvar lean-mode-map)) +;; (run-with-idle-timer 0.4 nil #'require 'lean-mode) +;; (with-eval-after-load 'lean-mode +;; (require 'lean-input) +;; (setq default-input-method "Lean" +;; lean-input-tweak-all '(lean-input-compose +;; (lean-input-prepend "/") +;; (lean-input-nonempty)) +;; lean-input-user-translations '(("/" "/"))) +;; (lean-input-setup) +;; ;; local key bindings +;; (define-key lean-mode-map (kbd "S-SPC") #'company-complete)) + +(use-package sgml-mode + :custom + (sgml-basic-offset 0)) + +(use-package css-mode + :custom + (css-indent-offset 2)) + +(use-package cmake-mode + :mode + (("CMakeLists\\.txt\\'" . cmake-mode) + ("\\.cmake\\'" . cmake-mode))) + +(use-package cmake-font-lock + :after cmake-mode + :load-path "lisp/cmake-font-lock") + +(use-package reftex + :hook + (latex-mode . reftex-mode)) + +(provide 'bandali-prog) +;;; bandali-prog.el ends here |