;;; bandali-prog.el --- programming modes setup -*- lexical-binding: t; -*- ;; Copyright (c) 2018-2025 Amin Bandali ;; Author: Amin Bandali ;; 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 . ;;; 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