;;
(defface lurk-text
- '((t :inherit font-lock-preprocessor-face))
+ '((t :inherit default))
"Face used for Lurk text.")
(defface lurk-prompt
- '((t :inherit org-level-2))
+ '((t :inherit org-priority))
"Face used for the prompt.")
(defface lurk-context
- '((t :inherit org-list-dt))
+ '((t :inherit org-tag))
"Face used for the context name in the prompt.")
(defface lurk-faded
- '((t :inherit font-lock-preprocessor-face))
+ '((t :inherit org-agenda-dimmed-todo-face))
"Face used for faded Lurk text.")
-(defface lurk-bold
- '((t :inherit font-lock-function-name-face))
- "Face used for bold Lurk text.")
-
(defface lurk-error
'((t :inherit font-lock-regexp-grouping-construct))
"Face used for Lurk error text.")
(unless (equal "open" (string-trim string))
(lurk-display-error "Disconnected from server.")
(clrhash lurk-contexts)
- (setq lurk-current-context nil)
+ (lurk-set-current-context nil)
(lurk-render-prompt)
(cancel-timer lurk-ping-timer)))
(if (not (assoc network lurk-networks))
(lurk-display-error "Network '" network "' is unknown.")
(clrhash lurk-contexts)
- (setq lurk-current-context nil)
+ (lurk-set-current-context nil)
(lurk-start-process network)
(lurk-send-msg (lurk-msg nil nil "USER" lurk-nick 0 "*" lurk-nick))
(lurk-send-msg (lurk-msg nil nil "NICK" lurk-nick))
(car context-list)))
nil))
+(defun lurk-set-current-context (context)
+ (setq lurk-current-context context)
+ (lurk-highlight-context context))
+
(defun lurk-cycle-contexts (&optional rev)
(if lurk-current-context
(progn
- (setq lurk-current-context (lurk-get-next-context rev))
+ (lurk-set-current-context (lurk-get-next-context rev))
(lurk-render-prompt))
(lurk-display-error "No channels joined.")))
(defun lurk-cycle-contexts-forward ()
(interactive)
- (lurk-cycle-contexts)
- (lurk-highlight-context lurk-current-context))
+ (lurk-cycle-contexts))
(defun lurk-cycle-contexts-reverse ()
(interactive)
- (lurk-cycle-contexts t)
- (lurk-highlight-context lurk-current-context))
+ (lurk-cycle-contexts t))
;;; Buffer
(maphash
(lambda (this-context facelist)
(if (equal this-context context)
- (setcar facelist 'lurk-bold)
+ (setcar facelist 'lurk-text)
(setcar facelist 'lurk-faded)))
lurk-context-facelists)
(force-window-update "*lurk*"))
(defun lurk-eval-msg-string (string)
;; (lurk-display-string nil string)
(let* ((msg (lurk-string->msg string)))
- ;; (message (pp msg))
(pcase (lurk-msg-cmd msg)
("PING"
(lurk-send-msg
(lurk--as-string (length (lurk-get-context-users channel)))
" users in " channel)))
+ ("331"
+ (let* ((params (lurk-msg-params msg))
+ (channel (elt params 1)))
+ (lurk-display-notice
+ channel
+ "No topic set.")))
+
+ ("332"
+ (lurk-display-notice nil "Detected 332: "string)
+ (let* ((params (lurk-msg-params msg))
+ (channel (elt params 1))
+ (topic (elt params 2)))
+ (lurk-display-notice channel "Topic: " topic)))
+
((rx (= 3 (any digit)))
(lurk-display-notice nil (mapconcat 'identity (cdr (lurk-msg-params msg)) " ")))
(guard (equal lurk-nick (lurk-msg-src msg))))
(let ((channel (car (lurk-msg-params msg))))
(lurk-add-context channel)
- (setq lurk-current-context channel)
+ (lurk-set-current-context channel)
(lurk-display-notice channel "Joining channel " channel)
(lurk-render-prompt)))
(lurk-display-notice channel "Left channel " channel)
(lurk-del-context channel)
(if (equal channel lurk-current-context)
- (setq lurk-current-context (lurk-get-next-context)))
+ (lurk-set-current-context (lurk-get-next-context)))
(lurk-render-prompt)))
("PART"
"Started LURK.")
-
;;; lurk.el ends here