.emacs.d

the most bloated Emacs config on this planet
git clone https://git.trogloxene.org/.emacs.d.git
Log | Files | Refs

init-prog.el (2372B)


      1 ;;; init-prog.el --- programming -*- lexical-binding: t -*-
      2 
      3 ;;; Commentary:
      4 ;; I don't really do any programming.
      5 
      6 ;;; Code:
      7 
      8 ;; comint
      9 (my-use-package comint
     10   :straight nil
     11   :config
     12   (setq comint-prompt-read-only t))
     13 
     14 ;; hideshow
     15 (my-use-package hideshow
     16   :straight nil
     17   :hook
     18   (prog-mode . hs-minor-mode))
     19 
     20 ;; xref
     21 (my-use-package xref
     22   :straight nil
     23   :autoload xref-show-definitions-completing-read
     24   :init
     25   (when (executable-find "rg")
     26     (setq xref-search-program 'ripgrep)))
     27 
     28 ;; eldoc-mouse
     29 (my-use-package eldoc-mouse
     30   :delight)
     31 
     32 ;; eglot
     33 (my-use-package eglot
     34   :config
     35   (setq eglot-send-changes-idle-time 0.25))
     36 
     37 ;; consult-eglot
     38 (my-use-package consult-eglot
     39   :init
     40   (defun my-consult-eglot-hack (fun)
     41     (let ((consult-async-split-styles-alist
     42            '((none :function consult--split-none)
     43              (comma :separator ?, :function consult--split-separator)
     44              (semicolon :separator ?\; :function consult--split-separator)
     45              (perl :initial nil :function consult--split-perl))))
     46       (call-interactively fun)))
     47   (advice-add #'consult-eglot-symbols :around #'my-consult-eglot-hack))
     48 
     49 ;; syntax checking
     50 (my-use-package flycheck
     51   :hook
     52   (prog-mode . flycheck-mode)
     53   :config
     54   (global-flycheck-eglot-mode))
     55 
     56 (my-use-package consult-flycheck)
     57 
     58 (my-use-package flycheck-guile
     59   :hook
     60   (scheme-mode . (lambda () (require 'flycheck-guile))))
     61 
     62 ;; scheme
     63 (my-use-package geiser
     64   :config
     65   (setq geiser-default-implementation 'guile))
     66 
     67 (my-use-package geiser-guile)
     68 
     69 ;; common-lisp
     70 (my-use-package sly
     71   :config
     72   (setq sly-lisp-implementations nil))
     73 
     74 ;; markdown
     75 (my-use-package markdown-mode
     76   :hook
     77   (markdown-mode . visual-line-mode)
     78   :init
     79   (defun markdown-cycle-parent-subtree()
     80     "Cycle parent markdown subtree."
     81     (interactive)
     82     (if (markdown-on-heading-p)
     83         (progn
     84           (markdown-up-heading 1)
     85           (markdown-cycle))
     86       (markdown-back-to-heading)
     87       (markdown-cycle)))
     88   :config
     89   (setq markdown-command "multimarkdown"
     90         markdown-fontify-code-blocks-natively t))
     91 
     92 (my-use-package edit-indirect)
     93 
     94 ;; caddy
     95 (my-use-package caddyfile-mode
     96   :mode "Caddyfile\\'" "caddy\\.conf\\'")
     97 
     98 ;; some modes
     99 (add-to-list 'auto-mode-alist '("\\.service\\'" . conf-unix-mode))
    100 (add-to-list 'auto-mode-alist '("\\.timer\\'" . conf-unix-mode))
    101 
    102 (provide 'init-prog)
    103 ;;; init-prog.el ends here