[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"))
- [nongnu] elpa/subed 89df304 304/389: subed-srt--sanitize: Don't insert newline in empty buffer, (continued)
- [nongnu] elpa/subed 89df304 304/389: subed-srt--sanitize: Don't insert newline in empty buffer, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed b0a4ff0 307/389: Fix parentheses, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 8007c12 308/389: Make debugging window a bit smaller, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed ec38a0b 317/389: Add function: subed-mpv-add-subtitles, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 7764909 324/389: Add some (require ...)s to prevent compiler warnings, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a084f5d 326/389: Improve comment, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed cd3af86 328/389: Silence checkdoc, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 29d8b84 337/389: Initial implementation of subed-vtt.el, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 6db0005 338/389: New function subed-mpv-play-video-from-url, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed d3df6f2 347/389: Fix "test" target in Makefile, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 5b8c23a 348/389: New commands: subed-merge-with-next, subed-merge-with-previous,
ELPA Syncer <=
- [nongnu] elpa/subed a7b25c8 341/389: subed-vtt: Fix ID->timestamp and stop generating IDs, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 9796a77 349/389: Merge branch 'sacha', ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed c4e3fec 352/389: Add error handling for subed-split-subtitle, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 918ba6f 370/389: Prevent showing the "Match data clobbered" message, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 808ef92 118/389: Fix comment, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 97bb125 183/389: Add default keybindings for copying player position, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 7665826 248/389: Add tests for copying player position to start/stop time, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a280e89 251/389: Add more text to README, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 311f4af 331/389: Require Emacs 25.1, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed fc7a12d 335/389: Fix mpv arguments, ELPA Syncer, 2021/12/03