From 9688a3bb91381e49434bc238b7ecbd2396142c85 Mon Sep 17 00:00:00 2001 From: plugd Date: Sun, 19 May 2024 21:47:01 +0200 Subject: [PATCH] Lots of tiny fixes. Thanks flycheck! --- murk.el | 67 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 27 deletions(-) diff --git a/murk.el b/murk.el index e89df65..a10fb2f 100644 --- a/murk.el +++ b/murk.el @@ -38,19 +38,23 @@ :group 'network) (defcustom murk-default-nick "plugd" - "Default nick.") + "Default nick." + :type '(string)) (defcustom murk-default-quit-msg "Bye" - "Default quit message when none supplied.") + "Default quit message when none supplied." + :type '(string)) (defcustom murk-networks '(("debug" "localhost" 6667 :notls) ("libera" "irc.libera.chat" 6697) ("tilde" "tilde.chat" 6697)) - "IRC networks.") + "IRC networks." + :type '(alist :key-type string)) (defcustom murk-display-header t - "If non-nil, use buffer header to display information on current host and channel.") + "If non-nil, use buffer header to display current host and channel." + :type '(boolean)) ;;; Faces @@ -141,7 +145,7 @@ This includes the process and the response string.") (setq murk-connection-table (assoc-delete-all server murk-connection-table))) (defun murk-make-server-filter (server) - (lambda (proc string) + (lambda (_proc string) (dolist (line (split-string (concat (murk-connection-response server) string) "\n")) (if (string-suffix-p "\r" line) @@ -149,7 +153,7 @@ This includes the process and the response string.") (murk-set-connection-response server line))))) (defun murk-make-server-sentinel (server) - (lambda (proc string) + (lambda (_proc string) (unless (equal "open" (string-trim string)) (murk-display-error "Disconnected from server.") (murk-connection-remove server) @@ -182,7 +186,7 @@ This includes the process and the response string.") (defun murk-connect (server) (if (assoc server murk-connection-table) - (murk-display-error "Already connected to this network.") + (murk-display-error "Already connected to this network") (if (not (assoc server murk-networks)) (murk-display-error "Network '" server "' is unknown.") (let ((proc (murk-start-process server))) @@ -198,7 +202,7 @@ This includes the process and the response string.") (let ((proc (murk-connection-process server))) (if (and proc (eq (process-status proc) 'open)) (process-send-string proc (concat (murk-msg->string msg) "\r\n")) - (murk-display-error "No server connection established.")))) + (murk-display-error "No server connection established")))) ;;; Server messages @@ -250,7 +254,7 @@ portion of the source component of the message, as mURK doesn't use this.") (append l r)) nil))) (apply #'murk-msg (append (list tags src cmd) params))) - (error "Failed to parse string " string))) + (error "Failed to parse string %s" string))) (defun murk-msg->string (msg) (let ((tags (murk-msg-tags msg)) @@ -331,9 +335,24 @@ The head of this list is always the current context.") (equal (seq-take ctx 2) test-ctx)) murk-contexts)))) +(defun murk-cycle-contexts (&optional reverse) + (setq murk-contexts + (if reverse + (let ((nminus1 (- (length murk-contexts) 1))) + (cons + (elt murk-contexts nminus1) + (seq-take murk-contexts nminus1))) + (append (cdr murk-contexts) (list (car murk-contexts)))))) + ;;; Buffer ;; +(defvar murk-prompt-marker nil + "Marker for prompt position in murk buffer.") + +(defvar murk-input-marker nil + "Marker for prompt position in murk buffer.") + (defun murk-render-prompt () (with-current-buffer "*murk*" (let ((update-point (= murk-input-marker (point))) @@ -367,12 +386,6 @@ The head of this list is always the current context.") (if (car v) (set-window-point (cadr v) murk-input-marker)))))) -(defvar murk-prompt-marker nil - "Marker for prompt position in murk buffer.") - -(defvar murk-input-marker nil - "Marker for prompt position in murk buffer.") - (defun murk-setup-header () (with-current-buffer "*murk*" (setq-local header-line-format @@ -493,8 +506,6 @@ The head of this list is always the current context.") (with-selected-window window (recenter -1)))))) - - (defconst murk-url-regex (rx (: (group (+ alpha)) @@ -629,7 +640,7 @@ The head of this list is always the current context.") from " on " server)) ((rx (let ping (: "\01PING " (* (not "\01")) "\01"))) - (murk-send-msg server (lurk-msg nil nil "NOTICE" (list from ping))) + (murk-send-msg server (murk-msg nil nil "NOTICE" (list from ping))) (murk-display-notice nil "CTCP ping received from " from " on " server)) ("\01USERINFO\01" @@ -719,10 +730,10 @@ The head of this list is always the current context.") (murk-connect network)) (murk-display-notice nil "Usage: /connect "))) -(defun murk-command-networks (params) +(defun murk-command-networks (_params) (murk-display-notice nil "Currently-known networks:") (dolist (row murk-networks) - (seq-let (network server port &rest others) row + (seq-let (network server port &rest _others) row (murk-display-notice nil "\t" network " [" server " " (number-to-string port) "]"))) @@ -731,7 +742,7 @@ The head of this list is always the current context.") (defun murk-command-quit (params) (let ((ctx (murk-current-context))) (if (not ctx) - (murk-display-error "No current context.") + (murk-display-error "No current context") (let ((quit-msg (if params (string-join params " ") murk-default-quit-msg))) (murk-send-msg (murk-context-server ctx) @@ -751,14 +762,14 @@ The head of this list is always the current context.") (murk-context-name (murk-current-context))))) (if channel (murk-send-msg server (murk-msg nil nil "PART" channel)) - (murk-display-error "No current channel to leave.")))) + (murk-display-error "No current channel to leave")))) (defun murk-command-msg (params) (let ((server (murk-context-server (murk-current-context)))) (if (and params (>= (length params) 2)) (let ((to (car params)) (text (string-join (cdr params) " "))) - (murk-send-msg server (lurk-msg nil nil "PRIVMSG" to text)) + (murk-send-msg server (murk-msg nil nil "PRIVMSG" to text)) (murk-display-message server (murk-connection-nick server) to text)) @@ -784,7 +795,7 @@ The head of this list is always the current context.") (murk-context-server (murk-current-context)) (murk-msg nil nil (upcase cmd-str) params))))) (_ - (murk-display-error "Badly formed command."))) + (murk-display-error "Badly formed command"))) (unless (string-empty-p string) (if (murk-current-context) (let ((server (murk-context-server (murk-current-context)))) @@ -793,10 +804,10 @@ The head of this list is always the current context.") (murk-context-name (murk-current-context)) string)) (murk-display-message server - murk-nick + (murk-connection-nick server) (murk-context->string (murk-current-context)) string)) - (murk-display-error "No current context."))))) + (murk-display-error "No current context"))))) ;;; Command history @@ -866,7 +877,7 @@ The head of this list is always the current context.") (re-search-backward " " murk-input-marker t))) (start (if space-idx (+ 1 space-idx) murk-input-marker))) (unless (string-prefix-p "/" (buffer-substring start end)) - (let* ((users (murk-get-context-users murk-current-context)) + (let* ((users (murk-get-context-users (murk-current-context))) (users-no@ (mapcar (lambda (u) (car (split-string u "@" t))) users))) @@ -881,6 +892,8 @@ The head of this list is always the current context.") (define-key map (kbd "TAB") 'murk-complete-input) (define-key map (kbd "") 'murk-history-prev) (define-key map (kbd "") 'murk-history-next) + (define-key map (kbd "") 'murk-cycle-contexts-forward) + (define-key map (kbd "") 'murk-cycle-contexts-reverse) (when (fboundp 'evil-define-key*) (evil-define-key* 'motion map (kbd "TAB") 'murk-complete-input)) -- 2.20.1