Navigation over new messages
This commit is contained in:
parent
eb06c3e0da
commit
e00a8c65d0
66
idec.el
66
idec.el
|
@ -121,13 +121,15 @@ Not used if `idec-smart-fetching' is not nil."
|
||||||
|
|
||||||
(defun idec-close-message-buffer ()
|
(defun idec-close-message-buffer ()
|
||||||
"Close buffer with message."
|
"Close buffer with message."
|
||||||
(kill-buffer (current-buffer)))
|
(kill-this-buffer))
|
||||||
|
|
||||||
(defvar idec-mode-hook nil)
|
(defvar idec-mode-hook nil)
|
||||||
|
|
||||||
(defvar idec-mode-map
|
(defvar idec-mode-map
|
||||||
(let ((map (make-keymap)))
|
(let ((map (make-keymap)))
|
||||||
(define-key map "\C-c \C-c" 'kill-this-buffer)
|
(define-key map "\C-c \C-c" 'kill-this-buffer)
|
||||||
|
(define-key map "\C-c \C-n" 'idec-next-message)
|
||||||
|
(define-key map "\C-c \C-b" 'idec-previous-message)
|
||||||
map)
|
map)
|
||||||
"Keymapping for IDEC mode.")
|
"Keymapping for IDEC mode.")
|
||||||
|
|
||||||
|
@ -144,7 +146,7 @@ Not used if `idec-smart-fetching' is not nil."
|
||||||
"Quotes highligting for IDEC mode.")
|
"Quotes highligting for IDEC mode.")
|
||||||
|
|
||||||
(defvar idec-font-lock-keywords idec-font-lock-keywords-2
|
(defvar idec-font-lock-keywords idec-font-lock-keywords-2
|
||||||
"Default highlighting expressions for WPDL mode.")
|
"Default highlighting expressions for IDEC mode.")
|
||||||
|
|
||||||
(defvar idec-mode-syntax-table
|
(defvar idec-mode-syntax-table
|
||||||
(let ((st (make-syntax-table)))))
|
(let ((st (make-syntax-table)))))
|
||||||
|
@ -154,7 +156,7 @@ Not used if `idec-smart-fetching' is not nil."
|
||||||
(interactive)
|
(interactive)
|
||||||
(kill-all-local-variables)
|
(kill-all-local-variables)
|
||||||
;; Mode definition
|
;; Mode definition
|
||||||
;; (set-syntax-table idec-mode-syntax-table)
|
(set-syntax-table idec-mode-syntax-table)
|
||||||
(use-local-map idec-mode-map)
|
(use-local-map idec-mode-map)
|
||||||
(set (make-local-variable 'font-lock-defaults) '(idec-font-lock-keywords))
|
(set (make-local-variable 'font-lock-defaults) '(idec-font-lock-keywords))
|
||||||
(setq major-mode 'idec-mode)
|
(setq major-mode 'idec-mode)
|
||||||
|
@ -162,15 +164,25 @@ Not used if `idec-smart-fetching' is not nil."
|
||||||
(setq imenu-generic-expression "*IDEC")
|
(setq imenu-generic-expression "*IDEC")
|
||||||
(run-hooks 'idec-mode-hook))
|
(run-hooks 'idec-mode-hook))
|
||||||
|
|
||||||
;; (define-derived-mode idec-mode
|
;; NAVIGATION FUNCTIONS
|
||||||
;; text-mode "[idec]"
|
;; ;;;;;;;;;;;;;;;;;;;;
|
||||||
;; "Major mode for view and editing IDEC messages."
|
|
||||||
;; (kill-all-local-variables)
|
(defun idec-next-message ()
|
||||||
;; ;; Mode definition
|
"Show next message."
|
||||||
;; (setq major-mode 'idec-mode)
|
(interactive)
|
||||||
;; (setq mode-name "[idec]")
|
(kill-this-buffer)
|
||||||
;; (use-local-map idec-mode-map)
|
(forward-button 1)
|
||||||
;; (setq imenu-generic-expression "*IDEC"))
|
(push-button))
|
||||||
|
|
||||||
|
(defun idec-previous-message ()
|
||||||
|
"Show next message."
|
||||||
|
(interactive)
|
||||||
|
(kill-this-buffer)
|
||||||
|
(backward-button 1)
|
||||||
|
(push-button))
|
||||||
|
|
||||||
|
;; END OF NAVIGATION FUNCTIONS
|
||||||
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
;; END OF MODE
|
;; END OF MODE
|
||||||
;; ;;;;;;;;;;;
|
;; ;;;;;;;;;;;
|
||||||
|
@ -253,21 +265,9 @@ White space here is any of: space, tab, Emacs newline (line feed, ASCII 10)."
|
||||||
(trim-string (nth 6 (split-string msg "\n"))))
|
(trim-string (nth 6 (split-string msg "\n"))))
|
||||||
|
|
||||||
(defun get-message-body (msg)
|
(defun get-message-body (msg)
|
||||||
"Get MSG body text."
|
"Get MSG body text.
|
||||||
(goto-char (point-min))
|
Return list with body content."
|
||||||
(forward-line 8)
|
(-drop 8 (split-string msg "\n")))
|
||||||
(substring msg (point) (point-max)))
|
|
||||||
;; (s-join "\n" (last (split-string msg "\n") 7)))
|
|
||||||
;; (defvar msg-counter 1)
|
|
||||||
;; (defvar msg-body '())
|
|
||||||
;; (defvar msg-list (split-string msg "\n"))
|
|
||||||
;; (dolist (line msg-list)
|
|
||||||
;; (if (not (= msg-counter 7))
|
|
||||||
;; (setq msg-counter (1+ msg-counter))
|
|
||||||
;; (setq msg-body (append msg-body '(line)))))
|
|
||||||
;; (dolist (b msg-body)
|
|
||||||
;; (message b))
|
|
||||||
;; (s-join "\n" msg-body))
|
|
||||||
|
|
||||||
(defun get-longest-field (field msg-list)
|
(defun get-longest-field (field msg-list)
|
||||||
"Return longest FIELD in MSG-LIST."
|
"Return longest FIELD in MSG-LIST."
|
||||||
|
@ -278,12 +278,7 @@ White space here is any of: space, tab, Emacs newline (line feed, ASCII 10)."
|
||||||
(when (> (length (get-message-field msg field))
|
(when (> (length (get-message-field msg field))
|
||||||
field-max)
|
field-max)
|
||||||
(setq field-max (length (get-message-field msg field)))))
|
(setq field-max (length (get-message-field msg field)))))
|
||||||
field-max
|
field-max)
|
||||||
;; Populate list
|
|
||||||
;; (dolist (msg msg-list)
|
|
||||||
;; (setq field-legth (append field-legth (length (get-message-field msg field)))))
|
|
||||||
;; (last (sort field-legth '<))
|
|
||||||
)
|
|
||||||
|
|
||||||
(defun get-message-field (msg field)
|
(defun get-message-field (msg field)
|
||||||
"Get message MSG FIELD."
|
"Get message MSG FIELD."
|
||||||
|
@ -316,13 +311,14 @@ White space here is any of: space, tab, Emacs newline (line feed, ASCII 10)."
|
||||||
(interactive)
|
(interactive)
|
||||||
(defvar current-echo nil)
|
(defvar current-echo nil)
|
||||||
(defvar new-messages '())
|
(defvar new-messages '())
|
||||||
|
(let (new-messages-list)
|
||||||
(dolist (line (split-string (download-subscriptions) "\n"))
|
(dolist (line (split-string (download-subscriptions) "\n"))
|
||||||
(if (string-match "\\." line)
|
(if (string-match "\\." line)
|
||||||
(and (setq current-echo line)
|
(and (setq current-echo line)
|
||||||
(store-echo-counter line))
|
(store-echo-counter line))
|
||||||
(when (and (check-message-in-echo line current-echo)
|
(when (and (check-message-in-echo line current-echo)
|
||||||
(> (length line) 1))
|
(> (length line) 1))
|
||||||
(download-message current-echo line))))
|
(download-message current-echo line)))))
|
||||||
(display-new-messages))
|
(display-new-messages))
|
||||||
|
|
||||||
(defun display-message (msg)
|
(defun display-message (msg)
|
||||||
|
@ -339,7 +335,7 @@ White space here is any of: space, tab, Emacs newline (line feed, ASCII 10)."
|
||||||
(princ (concat "At: " (get-message-field msg "time") "\n"))
|
(princ (concat "At: " (get-message-field msg "time") "\n"))
|
||||||
(princ (concat "Subject: " (get-message-field msg "subj") "\n"))
|
(princ (concat "Subject: " (get-message-field msg "subj") "\n"))
|
||||||
(princ (concat "__________________________________\n\n"
|
(princ (concat "__________________________________\n\n"
|
||||||
(get-message-field msg "body")))
|
(s-join "\n" (get-message-field msg "body"))))
|
||||||
(princ "\n__________________________________\n")
|
(princ "\n__________________________________\n")
|
||||||
(princ "[")
|
(princ "[")
|
||||||
(insert-button "Answer"
|
(insert-button "Answer"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user