diff options
author | Sacha Chua <sacha@sachachua.com> | 2023-10-16 10:50:55 -0400 |
---|---|---|
committer | Sacha Chua <sacha@sachachua.com> | 2023-10-16 10:50:55 -0400 |
commit | 227fe1a45398ebf3f0663bf8c73cd4d7e431b38a (patch) | |
tree | 2a1bb7e66b213c3a2c674341985a19d646b34cab | |
parent | 8ee0e58cf9703e56d3ceca605796f5e2f16419fa (diff) | |
download | emacsconf-el-227fe1a45398ebf3f0663bf8c73cd4d7e431b38a.tar.xz emacsconf-el-227fe1a45398ebf3f0663bf8c73cd4d7e431b38a.zip |
emacsconf-subed: add splitting
-rw-r--r-- | emacsconf-subed.el | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/emacsconf-subed.el b/emacsconf-subed.el index f82e557..6369cdd 100644 --- a/emacsconf-subed.el +++ b/emacsconf-subed.el @@ -293,5 +293,34 @@ Create it if necessary." (error "Duration %d is less than minimum" (- (subed-subtitle-msecs-stop) (subed-subtitle-msecs-start)))) (or (subed-forward-subtitle-text) (goto-char (point-max))))) +(defun emacsconf-subed-split-at-mouse (event) + "Split at the word clicked on." + (interactive "e") + (goto-char (posn-point (event-start event))) + (skip-syntax-backward "w") + (subed-split-subtitle)) + +(defun emacsconf-subed-merge-and-fill () + "Merge this subtitle with the next one." + (interactive) + (subed-merge-with-next) + (fill-paragraph)) + +(defun emacsconf-subed-split () + "Transient map for splitting subtitles." + (interactive) + (set-transient-map + (let ((map (make-sparse-keymap))) + (define-key map [down-mouse-1] #'emacsconf-subed-split-at-mouse) + (define-key map [mouse-1] #'ignore) + (define-key map [up-1] #'ignore) + (define-key map [drag-mouse-1] #'ignore) + (define-key map [mouse-movement] #'ignore) + (define-key map "q" #'fill-paragraph) + (define-key map "." #'emacsconf-subed-merge-and-fill) + (define-key map (kbd "SPC") #'scroll-up) + map) + t)) + (provide 'emacsconf-subed) ;;; emacsconf-subed.el ends here |