aboutsummaryrefslogtreecommitdiff
path: root/bard-emacs-modules/bard-emacs-prog.el
diff options
context:
space:
mode:
authorbard <[email protected]>2024-04-02 13:34:24 -0400
committerbard <[email protected]>2024-04-02 13:34:24 -0400
commit2ba78ae7994ce687e0efbdb7d7d8aba573572571 (patch)
treed5e49192ae8167cb6ea86dd744b91a6f36b30d56 /bard-emacs-modules/bard-emacs-prog.el
parenta36fe62ebd484102ddd35471f10fa9109b4fb281 (diff)
name fits better for purpose
Diffstat (limited to 'bard-emacs-modules/bard-emacs-prog.el')
-rw-r--r--bard-emacs-modules/bard-emacs-prog.el79
1 files changed, 79 insertions, 0 deletions
diff --git a/bard-emacs-modules/bard-emacs-prog.el b/bard-emacs-modules/bard-emacs-prog.el
new file mode 100644
index 0000000..4fb5a45
--- /dev/null
+++ b/bard-emacs-modules/bard-emacs-prog.el
@@ -0,0 +1,79 @@
+;;; bard-emacs-lang.el --- configuration for specific languages -*- lexical-binding: t -*-
+
+;; Author: Bardman
+;; Maintainer: Bardman
+;; Version: 0.1.0
+;; Package-Requires: ((Emacs "28.1"))
+
+;; This file is not part of GNU Emacs
+
+;; 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:
+
+;;; Code:
+
+;; Input methods
+(global-set-key (kbd "<f10>") 'toggle-input-method)
+
+(defun bard/common-modes-hook ()
+ "Commonly used modes, bundled in one hook."
+ (display-line-numbers-mode 1)
+ (bard/set-up-whitespace-handling)
+ (hl-todo-mode 1))
+
+(add-hook 'prog-mode-hook 'bard/common-modes-hook)
+(add-hook 'haskell-mode-hook 'interactive-haskell-mode)
+(add-hook 'haskell-mode-hook 'haskell-doc-mode)
+(add-hook 'haskell-mode-hook 'haskell-indent-mode)
+
+;; CPP Mode
+;; (defun bard/c++-mode-keybindings ()
+;; (define-key 'c++-mode-map (kbd "C-c C-c") 'compile))
+
+;; (add-hook 'c++-mode-hook 'bard/c++-mode-keybindings)
+(add-hook 'c++-mode 'bard/common-modes-hook)
+(setq-default c-basic-offset 4)
+(with-eval-after-load "c++-mode"
+ (define-key c++-mode-map (kbd "C-z s") #'consult-ripgrep))
+
+;; Haskell
+;; (add-to-list 'company-backends 'company-dabbrev-code)
+;; (add-to-list 'company-backends 'company-yasnippet)
+;; (add-to-list 'company-backends 'company-files)
+
+;; disable ghci popups
+(setq haskell-interactive-popup-errors nil)
+
+(add-to-list 'exec-path "/home/bard/.ghcup/bin")
+(add-to-list 'exec-path "/home/bard/.cabal/bin")
+(add-to-list 'exec-path "/home/bard/.local/bin")
+(add-to-list 'exec-path "/home/bard/opt/")
+
+;; GGTAGS
+(with-eval-after-load 'ggtags
+ (define-key ggtags-mode-map (kbd "M->") nil)
+ (define-key ggtags-mode-map (kbd "M-<") nil))
+
+(add-hook 'clojure-mode-hook
+ (lambda()
+ (define-key clojure-mode-map (kbd "C-<tab>") #'cider-switch-to-repl-buffer)))
+
+(add-hook 'cider-repl-mode-hook
+ (lambda()
+ (define-key cider-repl-mode-map (kbd "C-<tab>") #'cider-switch-to-last-clojure-buffer)))
+
+(provide 'bard-emacs-lang.el)
+;;; bard-emacs-lang.el ends here