feat(emacs): Small repl things

This commit is contained in:
Madeleine Sydney
2025-02-18 19:45:17 -07:00
parent c48625f584
commit eceb06c654
6 changed files with 101 additions and 30 deletions

View File

@@ -1,8 +1,29 @@
;;; syd-lang-nix.el -*- lexical-binding: t; -*-
(require 'syd-handle-repl)
(require 'syd-handle-lookup)
(defun syd-nix-open-nix-repl ()
(interactive)
;; If possible, cd to the project root. Flakes force you to use relative
;; paths, which can be annoying in combination with
;;
;; REVIEW: Should this be something handled by `syd--call-repl-handler'?
(-some-> (syd-project-root) cd)
(nix-repl)
(current-buffer))
(use-package nix-mode
:mode "\\.nix\\'"
:init
(add-to-list 'auto-mode-alist
(cons (rx "/flake.lock'")
(if (fboundp 'json-mode)
'json-mode
'js-mode)))
:config
(add-hook 'nix-mode-hook #'lsp))
(add-hook 'nix-mode-hook #'lsp)
(set-popup-rule! "^\\*nixos-options-doc\\*$" :ttl 0 :quit t)
(set-repl-handler! 'nix-mode #'syd-nix-open-nix-repl))
(provide 'syd-lang-nix)