[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/nix-mode fe00d5930b 423/500: Merge pull request #119 from
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/nix-mode fe00d5930b 423/500: Merge pull request #119 from NixOS/derived-nix-drv-mode |
Date: |
Sat, 29 Jan 2022 08:27:51 -0500 (EST) |
branch: elpa/nix-mode
commit fe00d5930b22c56e12a20c4b27ad97e70ebea451
Merge: 53ea839a52 aef98227cc
Author: Matthew Bauer <mjbauer95@gmail.com>
Commit: GitHub <noreply@github.com>
Merge pull request #119 from NixOS/derived-nix-drv-mode
Make nix-drv-mode a derived-mode of javascript-mode
---
nix-drv-mode.el | 47 +++++++++++++++++++++++++----------------------
1 file changed, 25 insertions(+), 22 deletions(-)
diff --git a/nix-drv-mode.el b/nix-drv-mode.el
index 12223365d8..b8e9f1896c 100644
--- a/nix-drv-mode.el
+++ b/nix-drv-mode.el
@@ -19,30 +19,33 @@
(require 'js)
(require 'nix)
-(defvar-local nix-drv-mode nil)
-
;;;###autoload
-(defun nix-drv-mode ()
+(define-derived-mode nix-drv-mode js-mode "Nix-Derivation"
"Pretty print Nix’s .drv files."
- (interactive)
- (when (string-match (format "^%s/" nix-store-dir) (buffer-file-name))
- (if nix-drv-mode
- (progn
- (erase-buffer)
- (insert-file-contents (buffer-file-name))
- (setq nix-drv-mode nil)
- (set-buffer-modified-p nil)
- (read-only-mode nil))
- (let ((inhibit-read-only t))
- (setq nix-drv-mode t)
- (erase-buffer)
- (insert (shell-command-to-string
- (format "%s show-derivation \"%s\""
- nix-executable
- (buffer-file-name))))
- (js-mode)
- (set-buffer-modified-p nil)
- (read-only-mode 1)))))
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (insert (shell-command-to-string
+ (format "%s show-derivation \"%s\""
+ nix-executable
+ (buffer-file-name))))
+ (set-buffer-modified-p nil)
+ (read-only-mode 1))
+
+ (add-hook 'change-major-mode-hook #'nix-drv-mode-dejsonify-buffer nil t))
+
+(defun nix-drv-mode-dejsonify-buffer ()
+ "Restore nix-drv-mode when switching to another mode."
+
+ (remove-hook 'change-major-mode-hook #'nix-drv-mode-dejsonify-buffer t)
+
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (insert-file-contents (buffer-file-name))
+ (set-buffer-modified-p nil)
+ (read-only-mode nil)))
+
+;;;###autoload
+(add-to-list 'auto-mode-alist '("\\.drv\\'" . nix-drv-mode))
(provide 'nix-drv-mode)
;;; nix-drv-mode.el ends here
- [nongnu] elpa/nix-mode 023a471576 329/500: Remove unnecessary while loop., (continued)
- [nongnu] elpa/nix-mode 023a471576 329/500: Remove unnecessary while loop., ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 82d26d496a 335/500: Fix easy-menu name, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode bf027132d0 341/500: Merge pull request #83 from j-piecuch/smie-tweaks, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 5b5961780f 358/500: Merge pull request #90 from purcell/dash-syntax, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode aa1fa07344 342/500: Fix handling of keywords in identifiers, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 7d681ff81b 357/500: Merge pull request #91 from purcell/relative-executable-paths, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 47ec698474 422/500: Add version to invocation of define-obsolete-function-alias, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode e32c6bf7ad 415/500: Merge pull request #115 from taku0/ffap-in-string, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 30587b2205 411/500: Merge pull request #114 from TristanCacqueray/master, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 471a90ac96 394/500: Release 1.4.5, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode fe00d5930b 423/500: Merge pull request #119 from NixOS/derived-nix-drv-mode,
ELPA Syncer <=
- [nongnu] elpa/nix-mode 7e081a560b 427/500: nix-drv-mode.el: make regexp more selective, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 91e1a05ea6 399/500: Merge pull request #107 from rossabaker/check-for-proc, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode b4b7518231 441/500: Refactor process calling, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 75d2111891 433/500: Merge pull request #129 from nagy/nix-search-separate, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 949cb98ba5 432/500: Set meta.description, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode a8a513770a 436/500: Simplify some functions, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 7f689c4161 450/500: In flake.nix, split name into pname and version, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode b12fa70dd7 446/500: Indicate constants, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 53d1fb9687 469/500: nix-flake: Add nix-flake-init, ELPA Syncer, 2022/01/29
- [nongnu] elpa/nix-mode 1604a9cec8 484/500: nix-flake: Allow updating the lockfile, ELPA Syncer, 2022/01/29