summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmin Bandali <bandali@kelar.org>2025-02-08 14:14:06 -0500
committerAmin Bandali <bandali@kelar.org>2025-02-08 14:14:06 -0500
commitdeba2c035794cdb0f129325487cd3d570301ebc4 (patch)
tree55434d2837839bbabc99b65c4db806cfbb6b2fdb
parent7b718d276e1d9f01287baea7187baef618e6b947 (diff)
downloadconfigs-deba2c035794cdb0f129325487cd3d570301ebc4.tar.gz
configs-deba2c035794cdb0f129325487cd3d570301ebc4.tar.xz
configs-deba2c035794cdb0f129325487cd3d570301ebc4.zip
Update bandali-essentials and add bandali-prog
-rw-r--r--.emacs.d/init.el120
-rw-r--r--.emacs.d/lisp/bandali-essentials.el39
-rw-r--r--.emacs.d/lisp/bandali-prog.el98
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