X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=lurk.el;h=96b93aeb87ca17829e54a061d1fe7f3a9c5f0a5b;hb=5b5f1cc35df3846056af4179cbf30296d99af506;hp=26eb8949d8a6adca12617bf90e1f303e2fda2331;hpb=8d3a7b25c3766e81cbbd0062b311c8bb6cf25abb;p=lurk.git diff --git a/lurk.el b/lurk.el index 26eb894..96b93ae 100644 --- a/lurk.el +++ b/lurk.el @@ -58,6 +58,9 @@ (defcustom lurk-show-joins nil "Set to non-nil to be notified of joins, parts and quits.") +(defcustom lurk-display-header t + "If non-nil, use buffer header to display information on current host and channel.") + ;;; Faces ;; @@ -364,6 +367,24 @@ portion of the source component of the message, as LURK doesn't use this.") (defvar lurk-input-marker nil "Marker for prompt position in LURK buffer.") +(defun lurk-setup-header () + (setq-local header-line-format + '(:eval + (let ((proc (get-process "lurk"))) + (if proc + (concat + "Host: " (car (process-contact proc)) + ", Context: " + (if lurk-current-context + (concat + lurk-current-context + " (" + (number-to-string + (length (lurk-get-context-users lurk-current-context))) + " users)") + "Server")) + "No connection"))))) + (defun lurk-setup-buffer () (with-current-buffer (get-buffer-create "*lurk*") (setq-local scroll-conservatively 1) @@ -375,7 +396,9 @@ portion of the source component of the message, as LURK doesn't use this.") (set-marker lurk-input-marker (point-max)) (setq lurk-input-marker (point-max-marker))) (goto-char (point-max)) - (lurk-render-prompt))) + (lurk-render-prompt) + (if lurk-display-header + (lurk-setup-header)))) ;;; Output formatting and highlighting @@ -464,7 +487,9 @@ portion of the source component of the message, as LURK doesn't use this.") (if (equal to lurk-nick) from to)))) (lurk-display-string context - (concat "* " from) + (propertize + (concat context " * " from) + 'face (lurk-get-context-facelist context)) action-text))) (defun lurk-display-notice (context &rest notices) @@ -711,6 +736,14 @@ portion of the source component of the message, as LURK doesn't use this.") (setq lurk-debug (not lurk-debug)) (lurk-display-notice nil "Debug mode now " (if lurk-debug "on" "off") ".")) + ((rx "HEADER") + (if header-line-format + (progn + (setq-local header-line-format nil) + (lurk-display-notice nil "Header disabled.")) + (lurk-setup-header) + (lurk-display-notice nil "Header enabled."))) + ((rx (: "CONNECT " (let network (* not-newline)))) (lurk-display-notice nil "Attempting to connect to " network "...") (lurk-connect network)) @@ -842,7 +875,8 @@ portion of the source component of the message, as LURK doesn't use this.") (let* ((end (max lurk-input-marker (point))) (space-idx (save-excursion (re-search-backward " " lurk-input-marker t))) - (start (if space-idx (+ 1 space-idx) lurk-input-marker))) + (start (if space-idx (+ 1 space-idx) lurk-input-marker)) + (completion-ignore-case t)) (unless (string-prefix-p "/" (buffer-substring start end)) (completion-in-region start end (lurk-get-context-users lurk-current-context))))))