From 13de999a3a8667a9c5dafbdb70a591f0660e2ee2 Mon Sep 17 00:00:00 2001 From: plugd Date: Tue, 13 Jul 2021 21:21:33 +0200 Subject: [PATCH] Network names now complete. --- lurk.el | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/lurk.el b/lurk.el index 36f39b4..7b46aae 100644 --- a/lurk.el +++ b/lurk.el @@ -957,16 +957,26 @@ in which case they match anything.") (lurk-zoom-in lurk-current-context)) (setq lurk-zoomed (not lurk-zoomed))) -(defun lurk-complete-nick () +(defun lurk-complete-input () (interactive) - (when (and (>= (point) lurk-input-marker) lurk-current-context) - (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)) - (completion-ignore-case t)) - (unless (string-prefix-p "/" (buffer-substring start end)) - (completion-in-region start end (lurk-get-context-users lurk-current-context)))))) + (when (and (>= (point) lurk-input-marker)) + (pcase (buffer-substring lurk-input-marker (point)) + ((rx (: "/connect" (+ " ") + (opt (let network (* (not whitespace)))) + string-end)) + (let ((space-idx (save-excursion + (re-search-backward " " lurk-input-marker t)))) + (completion-in-region (+ 1 space-idx) + (point) + (mapcar (lambda (row) (car row)) lurk-networks)))) + (_ + (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)) + (completion-ignore-case t)) + (unless (string-prefix-p "/" (buffer-substring start end)) + (completion-in-region start end (lurk-get-context-users lurk-current-context)))))))) ;;; Mode @@ -975,7 +985,7 @@ in which case they match anything.") (defvar lurk-mode-map (let ((map (make-sparse-keymap))) (define-key map (kbd "RET") 'lurk-enter) - (define-key map (kbd "") 'lurk-complete-nick) + (define-key map (kbd "") 'lurk-complete-input) (define-key map (kbd "C-c C-z") 'lurk-toggle-zoom) (define-key map (kbd "") 'lurk-cycle-contexts-forward) (define-key map (kbd "") 'lurk-cycle-contexts-reverse) -- 2.20.1