From b9988e7ae3df4503d30da36f749b8537eaa6465b Mon Sep 17 00:00:00 2001 From: Artur Malabarba Date: Tue, 25 Nov 2014 00:29:35 +0000 Subject: Refactor visit from question-list to sx --- sx.el | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'sx.el') diff --git a/sx.el b/sx.el index cae5b29..018b1ec 100644 --- a/sx.el +++ b/sx.el @@ -27,6 +27,7 @@ ;; StackMode. ;;; Code: +(require 'tabulated-list) (defconst sx-version "0.1" "Version of the `sx' package.") @@ -165,15 +166,22 @@ Return the result of BODY." ;;; Using data in buffer (defun sx--data-here () "Get the text property `sx--data-here'." - (get-text-property (point) 'sx--data-here)) + (or (get-text-property (point) 'sx--data-here) + (and (derived-mode-p 'sx-question-list-mode) + (tabulated-list-get-id)))) (defun sx-visit () "Visit in a web browser the object under point. Object can be a question, answer, or comment." (interactive) - (sx-assoc-let (sx--data-here) - (when (stringp .link) - (browse-url .link)))) + (let ((data (sx--data-here))) + (sx-assoc-let data + (when (stringp .link) + (browse-url .link)) + (when .title + (sx-question--mark-read data) + (when (derived-mode-p 'sx-question-list-mode) + (sx-question-list-refresh 'redisplay 'no-update)))))) ;;; Assoc-let -- cgit v1.2.3