From 7980f4dd28bcba72b519d5e5dcdd5ee61bb37074 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Wed, 23 Feb 2022 00:14:49 -0800 Subject: [PATCH] [oni-vc] Automatically check out files for Perforce When I start typing, automatically check out the file that I'm working with. --- oni-vc.el | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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 ;; 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