nftable-migration
 1;;; config-files.el --- -*- lexical-binding: t; -*-
 2;;; Commentary:
 3;;; Files related configurations
 4;;; Code:
 5(use-package ffap
 6  :hook
 7  (after-init . ffap-bindings))
 8;; (use-package autoinsert
 9;;   :init
10;;   (setq-default auto-insert-query nil
11;;                 auto-insert-alist nil)
12;;   :config
13;;   (auto-insert-mode 1))
14
15(require 'hardhat)
16(global-hardhat-mode)
17
18(use-package files
19  :commands (revert-buffer)
20  :bind (("<f5>" . revert-buffer))
21  :config
22  (setq-default view-read-only t))
23
24(use-package envrc
25  :defer 2
26  :if (executable-find "direnv")
27  :bind (:map envrc-mode-map
28              ("C-c e" . envrc-command-map))
29  :config (envrc-global-mode))
30
31(use-package highlight-indentation
32  :unless noninteractive
33  :commands (highlight-indentation-mode highlight-indentation-current-column-mode)
34  :config
35  (set-face-background 'highlight-indentation-face "#e3e3d3")
36  (set-face-background 'highlight-indentation-current-column-face "#c3b3b3"))
37
38(defun vde/delete-this-file ()
39  "Delete the current file, and kill the buffer."
40  (interactive)
41  (or (buffer-file-name) (error "No file is currently being edited"))
42  (when (yes-or-no-p (format "Really delete '%s'?"
43                             (file-name-nondirectory buffer-file-name)))
44    (delete-file (buffer-file-name))
45    (kill-this-buffer)))
46
47(defun vde/rename-this-file-and-buffer (new-name)
48  "Renames both current buffer and file it's visiting to NEW-NAME."
49  (interactive "sNew name: ")
50  (let ((name (buffer-name))
51        (filename (buffer-file-name)))
52    (unless filename
53      (error "Buffer '%s' is not visiting a file!" name))
54    (if (get-buffer new-name)
55        (message "A buffer named '%s' already exists!" new-name)
56      (progn
57        (when (file-exists-p filename)
58          (rename-file filename new-name 1))
59        (rename-buffer new-name)
60        (set-visited-file-name new-name)))))
61
62(bind-key "C-c f D" #'vde/delete-this-file)
63(bind-key "C-c f R" #'vde/rename-this-file-and-buffer)
64
65;; Additional bindings for built-ins
66(bind-key "C-c f v d" #'add-dir-local-variable)
67(bind-key "C-c f v l" #'add-file-local-variable)
68(bind-key "C-c f v p" #'add-file-local-variable-prop-line)
69
70(defun vde/reload-dir-locals-for-current-buffer ()
71  "Reload dir locals for the current buffer."
72  (interactive)
73  (let ((enable-local-variables :all))
74    (hack-dir-local-variables-non-file-buffer)))
75
76(defun vde/reload-dir-locals-for-all-buffers-in-this-directory ()
77  "Reload dir-locals for all buffers in current buffer's `default-directory'."
78  (interactive)
79  (let ((dir default-directory))
80    (dolist (buffer (buffer-list))
81      (with-current-buffer buffer
82        (when (equal default-directory dir))
83        (vde/reload-dir-locals-for-current-buffer)))))
84
85(bind-key "C-c f v r" #'vde/reload-dir-locals-for-current-buffer)
86(bind-key "C-c f v r" #'vde/reload-dir-locals-for-all-buffers-in-this-directory)
87
88(provide 'config-files)
89;;; config-files.el ends here