summaryrefslogtreecommitdiff
path: root/.config/emacs/bd-development.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/bd-development.el')
-rw-r--r--.config/emacs/bd-development.el93
1 files changed, 93 insertions, 0 deletions
diff --git a/.config/emacs/bd-development.el b/.config/emacs/bd-development.el
new file mode 100644
index 0000000..18bc6d5
--- /dev/null
+++ b/.config/emacs/bd-development.el
@@ -0,0 +1,93 @@
+;; -*- lexical-binding: t; -*-
+
+(defun cleanup-buffer ()
+ (interactive)
+ (delete-trailing-whitespace)
+ (untabify (point-min) (point-max))
+ (indent-region (point-min) (point-max)))
+
+(require 'display-line-numbers)
+
+(defcustom display-line-numbers-exempt-modes
+ '(vterm-mode eshell-mode shell-mode term-mode ansi-term-mode image-mode doc-view-mode newsticker-treeview-mode newsticker-treeview-item-mode dired-mode org-agenda-mode)
+ "Major modes on which to disable line numbers."
+ :group 'display-line-numbers
+ :type 'list
+ :version "green")
+
+(defun display-line-numbers--turn-on ()
+ "Turn on line numbers except for certain major modes.
+Exempt major modes are defined in `display-line-numbers-exempt-modes'."
+ (unless (or (minibufferp)
+ (member major-mode display-line-numbers-exempt-modes))
+ (display-line-numbers-mode)))
+
+(use-package tex
+ :ensure auctex
+ :hook
+ ((latex-mode)
+ (text-mode . (lambda() (setq ispell-parser 'tex)))) ; improves ispell in LaTeX
+ :custom
+ (TeX-auto-save t)
+ ;; better support for latex packages
+ (TeX-parse-self t)
+ (TeX-view-program-selection '(((output-dvi has-no-display-manager)
+ "dvi2tty")
+ ((output-dvi style-pstricks)
+ "dvips and gv")
+ (output-dvi "xdvi")
+ (output-pdf "Zathura")
+ (output-html "xdg-open"))))
+
+(use-package company
+ :hook (prog-mode text-mode)
+ :config
+ (global-company-mode)
+ :custom
+ (company-global-modes '(bash-ts-mode emacs-lisp-mode
+ slime-mode js-ts-mode
+ json-ts-mode css-ts-mode
+ python-ts-mode java-ts-mode))
+ (company-set-idle-delay (lambda () (if (company-in-string-or-comment) nil 0.3)))
+ (company-minimum-prefix-length 1)
+ (company-tooltip-flip-when-above t)
+ (company-show-numbers t)
+ (company-tooltip-align-annotations t)
+ (company-tooltip-limit 15)
+ (company-selection-wrap-around t))
+
+(use-package slime
+ :commands slime
+ :config
+ (add-hook 'slime-mode-hook
+ (lambda ()
+ (local-set-key (kdb "C-c C-k") 'slime-eval-buffer)))
+ :custom
+ ;; more memory for ml libraries
+ (inferior-lisp-program "sbcl --dynamic-space-size 4096"))
+
+(use-package magit
+ :commands magit-status
+ :custom
+ (magit-define-global-key-bindings 'recommended))
+
+(use-package whole-line-or-region
+ :defer 15
+ :config
+ (whole-line-or-region-global-mode 1))
+
+(use-package python
+ :mode (("\\.py\\'" . python-ts-mode)))
+
+(use-package conda
+ :after python
+ :config
+ (conda-env-initialize-interactive-shells)
+ (custom-set-variables '(conda-anaconda-home "/home/bdunahu/miniforge3/"))
+ ;; kind of bad
+ (when (executable-find "ipython")
+ (setq python-shell-interpreter "ipython"
+ python-shell-interpreter-args "--simple-prompt")))
+
+;; compilation mode
+(setq compilation-always-kill t)