From d67c1a10a62e81088d5a49cbf13f9247804cfe6e Mon Sep 17 00:00:00 2001 From: Yoni Rabkin Date: Sat, 25 Oct 2014 20:17:20 -0400 Subject: Change the way lines are killed in emms-playlist-mode. This change was requested by Rasmus and Michael Olson. --- lisp/emms-playlist-mode.el | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'lisp') diff --git a/lisp/emms-playlist-mode.el b/lisp/emms-playlist-mode.el index 7f4d776..e8972c0 100644 --- a/lisp/emms-playlist-mode.el +++ b/lisp/emms-playlist-mode.el @@ -52,6 +52,9 @@ (defvar emms-playlist-mode-popup-enabled nil "True when the playlist was called as a popup window.") +(defvar emms-playlist-mode-kill-whole-line-p t + "When true line kills behave like a typical music player.") + (make-variable-buffer-local 'emms-playlist-mode-selected-overlay) @@ -129,7 +132,7 @@ This is true for every invocation of `emms-playlist-mode-go'." (define-key map (kbd "M-p") 'emms-playlist-mode-previous) (define-key map (kbd "a") 'emms-playlist-mode-add-contents) (define-key map (kbd "b") 'emms-playlist-set-playlist-buffer) - (define-key map (kbd "D") 'emms-playlist-mode-kill-entire-track) + (define-key map (kbd "D") 'emms-playlist-mode-kill-track) (define-key map (kbd "n") 'emms-next) (define-key map (kbd "p") 'emms-previous) (define-key map (kbd "SPC") 'scroll-up) @@ -346,7 +349,7 @@ set it as current." (and (<= a p) (<= p b))) -;; d +;; D (defun emms-playlist-mode-kill-entire-track () "Kill track at point, including newline." (interactive) @@ -354,23 +357,21 @@ set it as current." (emms-playlist-mode-kill-track))) ;; C-k -;; -;; Currently this kills as regular GNU/Emacs would and not like a -;; typical music player would. (defun emms-playlist-mode-kill-track () "Kill track at point." (interactive) (emms-with-inhibit-read-only-t (let ((track (emms-playlist-track-at))) - (if track - (let ((track-region (emms-property-region (point) - 'emms-track))) - (when (and emms-player-playing-p - (emms-playlist-selected-track-at-p)) - (emms-stop) - (delete-overlay emms-playlist-mode-selected-overlay) - (setq emms-playlist-mode-selected-overlay nil)) - (kill-line)) + (when track + (let ((track-region (emms-property-region (point) + 'emms-track))) + (when (and emms-player-playing-p + (emms-playlist-selected-track-at-p)) + (emms-stop) + (delete-overlay emms-playlist-mode-selected-overlay) + (setq emms-playlist-mode-selected-overlay nil)))) + (let ((kill-whole-line emms-playlist-mode-kill-whole-line-p)) + (goto-char (point-at-bol)) (kill-line))))) ;; C-w -- cgit v1.2.3