X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/84e1850a7cb61f9afa61eda5fa75ca14f672eadf..a0689e114cdccceedc366e1bfa5be00ad62b2a31:/contrib/stgit.el diff --git a/contrib/stgit.el b/contrib/stgit.el index d3d518d..4843f1e 100644 --- a/contrib/stgit.el +++ b/contrib/stgit.el @@ -44,12 +44,30 @@ instead of \"dir/old/file -> dir/new/file\"." (defcustom stgit-default-show-worktree t "Set to non-nil to by default show the working tree in a new stgit buffer. -Use \\\\[stgit-toggle-worktree] to toggle the -this setting in an already-started StGit buffer." +Use \\\\[stgit-toggle-worktree] to toggle this \ +setting in an already-started StGit buffer." :type 'boolean :group 'stgit :link '(variable-link stgit-show-worktree)) +(defcustom stgit-default-show-unknown nil + "Set to non-nil to by default show unknown files a new stgit buffer. + +Use \\\\[stgit-toggle-unknown] to toggle this \ +setting in an already-started StGit buffer." + :type 'boolean + :group 'stgit + :link '(variable-link stgit-show-unknown)) + +(defcustom stgit-default-show-ignored nil + "Set to non-nil to by default show ignored files a new stgit buffer. + +Use \\\\[stgit-toggle-ignored] to toggle this \ +setting in an already-started StGit buffer." + :type 'boolean + :group 'stgit + :link '(variable-link stgit-show-ignored)) + (defcustom stgit-find-copies-harder nil "Try harder to find copied files when listing patches. @@ -734,10 +752,12 @@ Cf. `stgit-file-type-change-string'." (defun stgit-insert-patch-files (patch) "Expand (show modification of) the patch PATCH after the line at point." - (let* ((patchsym (stgit-patch->name patch)) - (end (point-marker)) - (args (list "-z" (stgit-find-copies-harder-diff-arg))) - (ewoc (ewoc-create #'stgit-file-pp nil nil t))) + (let* ((patchsym (stgit-patch->name patch)) + (end (point-marker)) + (args (list "-z" (stgit-find-copies-harder-diff-arg))) + (ewoc (ewoc-create #'stgit-file-pp nil nil t)) + (show-ignored stgit-show-ignored) + (show-unknown stgit-show-unknown)) (set-marker-insertion-type end t) (setf (stgit-patch->files-ewoc patch) ewoc) (with-temp-buffer @@ -753,9 +773,9 @@ at point." `("diff-tree" ,@args "-r" ,(stgit-id patchsym))))) (when (and (eq patchsym :work)) - (when stgit-show-ignored + (when show-ignored (stgit-insert-ls-files '("--ignored" "--others") "I")) - (when stgit-show-unknown + (when show-unknown (stgit-insert-ls-files '("--directory" "--no-empty-directory" "--others") "X")) @@ -844,6 +864,8 @@ See also `stgit-expand'." (stgit-process-files (lambda (f) (setq node (ewoc-enter-after ewoc node f)))))) + (move-to-column (stgit-goal-column)) + (let ((inhibit-read-only t)) (put-text-property start end 'patch-data patch)))) @@ -1225,7 +1247,9 @@ Commands for branches: Customization variables: `stgit-abbreviate-copies-and-renames' +`stgit-default-show-ignored' `stgit-default-show-patch-names' +`stgit-default-show-unknown' `stgit-default-show-worktree' `stgit-find-copies-harder' `stgit-show-worktree-mode' @@ -1237,15 +1261,17 @@ See also \\[customize-group] for the \"stgit\" group." major-mode 'stgit-mode goal-column 2) (use-local-map stgit-mode-map) - (set (make-local-variable 'list-buffers-directory) default-directory) - (set (make-local-variable 'stgit-marked-patches) nil) - (set (make-local-variable 'stgit-expanded-patches) (list :work :index)) - (set (make-local-variable 'stgit-show-patch-names) - stgit-default-show-patch-names) - (set (make-local-variable 'stgit-show-worktree) stgit-default-show-worktree) - (set (make-local-variable 'stgit-index-node) nil) - (set (make-local-variable 'stgit-worktree-node) nil) - (set (make-local-variable 'parse-sexp-lookup-properties) t) + (mapc (lambda (x) (set (make-local-variable (car x)) (cdr x))) + `((list-buffers-directory . ,default-directory) + (parse-sexp-lookup-properties . t) + (stgit-expanded-patches . (:work :index)) + (stgit-index-node . nil) + (stgit-worktree-node . nil) + (stgit-marked-patches . nil) + (stgit-show-ignored . ,stgit-default-show-ignored) + (stgit-show-patch-names . ,stgit-default-show-patch-names) + (stgit-show-unknown . ,stgit-default-show-unknown) + (stgit-show-worktree . ,stgit-default-show-worktree))) (set-variable 'truncate-lines 't) (add-hook 'after-save-hook 'stgit-update-stgit-for-buffer) (unless stgit-did-advise @@ -2375,6 +2401,8 @@ work tree will show up." "Toggle the visibility of files ignored by git in the work tree. With ARG, show these files if ARG is positive. +Its initial setting is controlled by `stgit-default-show-ignored'. + Use \\[stgit-toggle-worktree] to show the work tree." (interactive) (stgit-assert-mode) @@ -2388,6 +2416,8 @@ Use \\[stgit-toggle-worktree] to show the work tree." "Toggle the visibility of files not registered with git in the work tree. With ARG, show these files if ARG is positive. +Its initial setting is controlled by `stgit-default-show-unknown'. + Use \\[stgit-toggle-worktree] to show the work tree." (interactive) (stgit-assert-mode)