emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/subed 5b8c23a 348/389: New commands: subed-merge-with-next


From: ELPA Syncer
Subject: [nongnu] elpa/subed 5b8c23a 348/389: New commands: subed-merge-with-next, subed-merge-with-previous
Date: Fri, 3 Dec 2021 11:00:55 -0500 (EST)

branch: elpa/subed
commit 5b8c23a4d74a6fd697f10143de93b8340b0d6660
Author: Sacha Chua <sacha@sachachua.com>
Commit: Sacha Chua <sacha@sachachua.com>

    New commands: subed-merge-with-next, subed-merge-with-previous
    
    * subed/subed.el (subed-mode-map): Bind M-m to subed-merge-with-next.
      Bind M-M to subed-merge-with-previous
      (subed--generic-function-suffixes): Add generic merge-with-next.
    * subed/subed-common.el (subed-merge-with-previous): New command.
    * subed/subed-srt.el (subed-srt--merge-with-next): New command.
    * subed/subed-vtt.el (subed-vtt--merge-with-next): New command.
---
 subed/subed-common.el |  9 +++++++++
 subed/subed-srt.el    | 17 +++++++++++++++++
 subed/subed-vtt.el    | 17 +++++++++++++++++
 subed/subed.el        |  4 +++-
 4 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/subed/subed-common.el b/subed/subed-common.el
index 6f866cb..d501331 100644
--- a/subed/subed-common.el
+++ b/subed/subed-common.el
@@ -621,6 +621,15 @@ following manner:
     (subed-regenerate-ids-soon))
   (point))
 
+;;; Merging
+
+(defun subed-merge-with-previous ()
+  "Merge the current subtitle with the previous subtitle.
+Update the end timestamp accordingly."
+  (interactive)
+  (if (subed-backward-subtitle-id)
+      (subed-merge-with-next)
+    (error "No previous subtitle to merge into")))
 
 ;;; Replay time-adjusted subtitle
 
diff --git a/subed/subed-srt.el b/subed/subed-srt.el
index d738ea8..794a538 100644
--- a/subed/subed-srt.el
+++ b/subed/subed-srt.el
@@ -419,6 +419,23 @@ Return new point."
     (delete-region beg end))
   (subed-srt--regenerate-ids-soon))
 
+(defun subed-srt--merge-with-next ()
+  "Merge the current subtitle with the next subtitle.
+Update the end timestamp accordingly."
+  (interactive)
+  (save-excursion
+    (subed-srt--jump-to-subtitle-end)
+    (let ((pos (point)) new-end)
+      (if (subed-srt--forward-subtitle-time-stop)
+          (progn
+            (when (looking-at subed-srt--regexp-timestamp)
+              (setq new-end (subed-srt--timestamp-to-msecs (match-string 0))))
+            (subed-srt--jump-to-subtitle-text)
+            (delete-region pos (point))
+            (insert "\n")
+            (subed-srt--set-subtitle-time-stop new-end)
+            (subed-srt--regenerate-ids-soon))
+        (error "No subtitle to merge into")))))
 
 ;;; Maintenance
 
diff --git a/subed/subed-vtt.el b/subed/subed-vtt.el
index 76db4d7..dbdb282 100644
--- a/subed/subed-vtt.el
+++ b/subed/subed-vtt.el
@@ -416,6 +416,23 @@ Return new point."
               end (save-excursion (goto-char (point-max)))))
     (delete-region beg end)))
 
+(defun subed-vtt--merge-with-next ()
+  "Merge the current subtitle with the next subtitle.
+Update the end timestamp accordingly."
+  (interactive)
+  (save-excursion
+    (subed-vtt--jump-to-subtitle-end)
+    (let ((pos (point)) new-end)
+      (if (subed-vtt--forward-subtitle-time-stop)
+          (progn
+            (when (looking-at subed-vtt--regexp-timestamp)
+              (setq new-end (subed-vtt--timestamp-to-msecs (match-string 0))))
+            (subed-vtt--jump-to-subtitle-text)
+            (delete-region pos (point))
+            (insert "\n")
+            (subed-vtt--set-subtitle-time-stop new-end))
+        (error "No subtitle to merge into")))))
+
 
 ;;; Maintenance
 
diff --git a/subed/subed.el b/subed/subed.el
index 43a1e1d..7ae7807 100644
--- a/subed/subed.el
+++ b/subed/subed.el
@@ -56,6 +56,8 @@
     (define-key subed-mode-map (kbd "M-i") #'subed-insert-subtitle)
     (define-key subed-mode-map (kbd "C-M-i") #'subed-insert-subtitle-adjacent)
     (define-key subed-mode-map (kbd "M-k") #'subed-kill-subtitle)
+    (define-key subed-mode-map (kbd "M-m") #'subed-merge-with-next)
+    (define-key subed-mode-map (kbd "M-M") #'subed-merge-with-previous)
     (define-key subed-mode-map (kbd "M-s") #'subed-sort)
     (define-key subed-mode-map (kbd "M-SPC") #'subed-mpv-toggle-pause)
     (define-key subed-mode-map (kbd "C-c C-d") #'subed-toggle-debugging)
@@ -98,7 +100,7 @@
         "forward-subtitle-time-start" "backward-subtitle-time-start"
         "forward-subtitle-time-stop" "backward-subtitle-time-stop"
         "set-subtitle-time-start" "set-subtitle-time-stop"
-        "prepend-subtitle" "append-subtitle" "kill-subtitle"
+        "prepend-subtitle" "append-subtitle" "kill-subtitle" "merge-with-next"
         "regenerate-ids" "regenerate-ids-soon"
         "sanitize" "validate" "sort"))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]