[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/subed c865969 058/389: Toggle subed-mode when `subed-mode'
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/subed c865969 058/389: Toggle subed-mode when `subed-mode' is called |
Date: |
Fri, 3 Dec 2021 10:59:56 -0500 (EST) |
branch: elpa/subed
commit c8659691181889e68cb17a06bb6c6e9747c08a4b
Author: Random User <rndusr@posteo.de>
Commit: Random User <rndusr@posteo.de>
Toggle subed-mode when `subed-mode' is called
---
subed/subed-config.el | 4 ++++
subed/subed.el | 60 ++++++++++++++++++++++++++++++++++-----------------
2 files changed, 44 insertions(+), 20 deletions(-)
diff --git a/subed/subed-config.el b/subed/subed-config.el
index e112fd9..f9e6fd7 100644
--- a/subed/subed-config.el
+++ b/subed/subed-config.el
@@ -77,6 +77,10 @@
:group 'hypermedia
:prefix "subed-")
+(defvar-local subed--mode-enabled nil
+ "Whether `subed-mode' is enabled.
+This is automatically set by `subed-mode-enable' and `subed-mode-disable'.")
+
(defvar-local subed--debug-enabled nil
"Whether `subed-debug' prints to `subed-debugging-buffer'.")
diff --git a/subed/subed.el b/subed/subed.el
index b1769f1..c45270a 100644
--- a/subed/subed.el
+++ b/subed/subed.el
@@ -25,7 +25,7 @@
;;
;;; Code:
-(add-to-list 'auto-mode-alist '("\\.srt$" . subed-mode))
+(add-to-list 'auto-mode-alist '("\\.srt$" . subed-mode-enable))
(require 'subed-config)
(require 'subed-srt)
@@ -383,47 +383,67 @@ existing file."
(throw 'found-videofile file-video)))))))
-(defun subed-mode ()
- "Major mode for editing subtitles.
-
-Key bindings:
-\\{subed-mode-map}"
+(defun subed-mode-enable ()
+ "Enable subed mode."
+ (message "enabling subed-mode")
(interactive)
-
- ;; Buffer-local variables
(kill-all-local-variables)
(setq-local font-lock-defaults '(subed-font-lock-keywords))
(setq-local paragraph-start "^[[:alnum:]\n]+")
(setq-local paragraph-separate "\n\n")
-
- ;; Keybindings
(use-local-map subed-mode-map)
-
- ;; Provide point-motion and subtitle-motion hooks
(add-hook 'post-command-hook 'subed--post-command-handler :append :local)
-
- ;; Sort and reload subtitles in player on C-x C-s
(add-hook 'before-save-hook 'subed-sort :append :local)
(add-hook 'after-save-hook 'subed-mpv-reload-subtitles :append :local)
-
- ;; Close player when buffer is killed
(add-hook 'kill-buffer-hook 'subed-mpv-kill :append :local)
-
- ;; Auto-open relevant video file
(when subed-auto-find-video
(let ((video-file (subed-guess-video-file)))
(when video-file
(subed-debug "Auto-discovered video file: %s" video-file)
(subed-mpv-find-video video-file))))
-
(subed-enable-pause-while-typing)
(subed-enable-sync-point-to-player)
(subed-enable-sync-player-to-point)
(subed-enable-replay-adjusted-subtitle)
-
(setq major-mode 'subed-mode
mode-name "SubEd")
+ (setq subed--mode-enabled t)
(run-mode-hooks 'subed-mode-hook))
+(defun subed-mode-disable ()
+ "Disable subed mode."
+ (interactive)
+ (message "disabling subed-mode")
+ (subed-disable-pause-while-typing)
+ (subed-disable-sync-point-to-player)
+ (subed-disable-sync-player-to-point)
+ (subed-disable-replay-adjusted-subtitle)
+ (subed-mpv-kill)
+ (subed-disable-debugging)
+ (kill-all-local-variables)
+ (remove-hook 'post-command-hook 'subed--post-command-handler :local)
+ (remove-hook 'before-save-hook 'subed-sort :local)
+ (remove-hook 'after-save-hook 'subed-mpv-reload-subtitles :local)
+ (remove-hook 'kill-buffer-hook 'subed-mpv-kill :local)
+ (setq subed--mode-enabled nil)
+ (message "post-command-hook: %s" post-command-hook)
+ (message "before-save-hook: %s" before-save-hook)
+ (message "after-save-hook: %s" after-save-hook)
+ (message "kill-buffer-hook: %s" kill-buffer-hook))
+
+(defun subed-mode ()
+ "Major mode for editing subtitles.
+
+This function enables or disables subed-mode. See also
+`subed-mode-enable' and `subed-mode-disable'.
+
+Key bindings:
+\\{subed-mode-map}"
+ (interactive)
+ ;; Use 'enabled property of this function to store enabled/disabled status
+ (if subed--mode-enabled
+ (subed-mode-disable)
+ (subed-mode-enable)))
+
(provide 'subed)
;;; subed.el ends here
- [nongnu] elpa/subed 5da6d79 112/389: Add "pause with key" to features, (continued)
- [nongnu] elpa/subed 5da6d79 112/389: Add "pause with key" to features, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 868d05c 114/389: Adjust some variable descriptions, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 6cf5df4 036/389: Remove annoying minibuffer messages, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 3927690 037/389: Some rewording, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 62d5d3d 038/389: Use (unless ...) instead of (when (not ...)), ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 166988c 041/389: Special subtitle separator when moving to end of subtitle, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed e471802 046/389: Adjust test description, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 727275d 043/389: subed-srt-sanitize: Wrap function body in atomic-change-group, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a30a4b1 054/389: subed-srt-regenerate-ids: Don't change buffer unless it's necessary, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 5fd2009 055/389: subed-mpv: Handle invalid JSON, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed c865969 058/389: Toggle subed-mode when `subed-mode' is called,
ELPA Syncer <=
- [nongnu] elpa/subed 65bfba6 057/389: When enabling debugging, expect the debug window to exist, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed dc60c27 060/389: subed-srt--subtitle-id-at-msecs: Try to ignore invalid time stamps, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 0781285 061/389: Make mpv RPC socket and client buffer unique per buffer, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 2f86a8e 030/389: Add function: subed-srt--subtitle-text, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 17f3ae5 034/389: Add/fix tests for srt parsing changes, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed fb9354c 039/389: Adjust tests for subed-srt-move-to-subtitle-end, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 4e3e42f 044/389: subed-srt-sort: Wrap function body in atomic-change-group, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 33f27c5 063/389: Fix docstring, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 7932aee 066/389: subed-srt-sort: Sanitize before validating, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed dc771c8 067/389: Fix/Add tests, ELPA Syncer, 2021/12/03