aboutsummaryrefslogtreecommitdiffstats
path: root/oni-vc.el
diff options
context:
space:
mode:
authorGravatar Tom Willemse2022-02-23 00:14:49 -0800
committerGravatar Tom Willemse2022-02-23 00:14:49 -0800
commit7980f4dd28bcba72b519d5e5dcdd5ee61bb37074 (patch)
tree341f8dde948d9c8f70093d7ad3b8560272171f1a /oni-vc.el
parent9a979dac067d1a3306b8c92ecfdab11ce5a8c47a (diff)
downloademacs-config-7980f4dd28bcba72b519d5e5dcdd5ee61bb37074.tar.gz
emacs-config-7980f4dd28bcba72b519d5e5dcdd5ee61bb37074.zip
[oni-vc] Automatically check out files for Perforce
When I start typing, automatically check out the file that I'm working with.
Diffstat (limited to 'oni-vc.el')
-rw-r--r--oni-vc.el19
1 files changed, 18 insertions, 1 deletions
diff --git a/oni-vc.el b/oni-vc.el
index 538861d..5da0147 100644
--- a/oni-vc.el
+++ b/oni-vc.el
@@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2021.1123.002400
+;; Version: 2022.0222.204847
;; Package-Requires: (vc-p4)
;; This program is free software; you can redistribute it and/or modify
@@ -26,8 +26,25 @@
;;; Code:
+(require 'vc)
+
(when (eql system-type 'windows-nt)
(require 'vc-p4))
+(defun oni-vc-maybe-checkout ()
+ "Call ‘vc-checkout’ if the current buffer is read-only and I'm typing."
+ (when (and buffer-read-only
+ (equal this-command 'self-insert-command))
+ (vc-checkout (buffer-file-name))))
+
+;;;###autoload
+(defun oni-vc-enable-auto-checkout-for-perforce ()
+ "Set up a ‘pre-command-hook’ to automatically check out a file if necessary."
+ (when (equal (vc-backend (buffer-file-name)) 'P4)
+ (add-hook 'pre-command-hook 'oni-vc-pre-edit-function nil t)))
+
+;;;###autoload
+(add-hook 'find-file-hook 'oni-vc-find-file-hook)
+
(provide 'oni-vc)
;;; oni-vc.el ends here