aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2023-07-22 22:28:39 -0700
committerGravatar Tom Willemse2023-07-22 22:28:39 -0700
commitb8c519dd2b2f3b9e300f6547cd0e2ea7c2fcf7ed (patch)
tree4e4f8294420aa3bd9535a014c1d30e5775db3556
parentbe45505e654c841216f766fa7a09aa856daadc04 (diff)
downloademacs-config-b8c519dd2b2f3b9e300f6547cd0e2ea7c2fcf7ed.tar.gz
emacs-config-b8c519dd2b2f3b9e300f6547cd0e2ea7c2fcf7ed.zip
[oni-project] Add configuration for ‘project’
This adds a magit option to the project switch commands so that I can view the git status of a project right away.
-rw-r--r--oni-project.el42
1 files changed, 42 insertions, 0 deletions
diff --git a/oni-project.el b/oni-project.el
new file mode 100644
index 0000000..2443485
--- /dev/null
+++ b/oni-project.el
@@ -0,0 +1,42 @@
+;;; oni-project.el --- Project configuration settings -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2023 Tom Willemse
+
+;; Author: Tom Willemse <tom@ryuslash.org>
+;; Keywords: local
+;; Version: 2023.0722.222800
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Configuration for Emacs' project functionality.
+
+;;; Code:
+
+(require 'project)
+
+(declare-function magit-status-setup-buffer "magit-status.el")
+
+(defun oni-project-magit ()
+ "Start Magit in the current project's root directory."
+ (interactive)
+ (magit-status-setup-buffer (project-root (project-current t))))
+
+(when (locate-library "magit")
+ (define-key project-prefix-map (kbd "m") #'oni-project-magit)
+ (add-to-list 'project-switch-commands '(oni-project-magit "Magit status")))
+
+(provide 'oni-project)
+;;; oni-project.el ends here