summaryrefslogtreecommitdiffstats
path: root/.emacs.d/lisp/bandali-prog.el
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 /.emacs.d/lisp/bandali-prog.el
parent7b718d276e1d9f01287baea7187baef618e6b947 (diff)
downloadconfigs-deba2c035794cdb0f129325487cd3d570301ebc4.tar.gz
configs-deba2c035794cdb0f129325487cd3d570301ebc4.tar.xz
configs-deba2c035794cdb0f129325487cd3d570301ebc4.zip
Update bandali-essentials and add bandali-prog
Diffstat (limited to '.emacs.d/lisp/bandali-prog.el')
-rw-r--r--.emacs.d/lisp/bandali-prog.el98
1 files changed, 98 insertions, 0 deletions
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