thanhvg / emacs-howdoyou

Search and read stackoverflow and its sisters’ sites

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Emacs Howdoyou - A package to search and read stackoverflow and its sisters’ sites

https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg

screenshots/howdoyou.png

Intro

This package is inspired by howdoi python and howdoi Emacs packages. it searches your query all across stackoverflow and it’s sisters’ sites. They are:

  • stackoverflow.com
  • stackexchange.com
  • superuser.com
  • serverfault.com
  • askubuntu.com

The result is then showed in an org-mode buffer. For each result, question and three answers were showed, but they are collapsed by default except the first answer. As this package uses Google to get the links, for each query there will be a dozen of links, the fist link will be used, then users can go to next link and previous link. The author believes that when searching for solutions it is important for users to read both questions and answers, so no “quick look” features such as code only view or code completion are provided.

Install

MELPA

https://melpa.org/packages/howdoyou-badge.svg

Spacemacs layer:

https://github.com/thanhvg/spacemacs-eos

Dependencies

promise and request are required. User must have org-mode 9.2 or later installed also.

Commands

  • howdoyou-query: prompt for query and do search
  • howdoyou-next-link: go to next link
  • howdoyou-previous-link: go to previous link
  • howdoyou-go-back-to-first-link: go back to first link
  • howdoyou-reload-link: reload link

Customization

  • howdoyou-use-curl: default is true if curl is available
  • howdoyou-number-of-answers: maximal number of answers to show, default is 3
  • howdoyou-switch-to-answer-buffer: switch to answer buffer if non nil, default is nil

Use with helm-google-suggest

add this snippet to you config file

(with-eval-after-load "helm-net"
  (push (cons "How Do You"  (lambda (candidate) (howdoyou-query candidate)))
        helm-google-suggest-actions))

Now helm-google-suggest will pass suggestion to howdoyou-query as default action.

Note that spacemas-eos has its own faster google suggetion engine provided by google-suggest package.

Use with counsel-web-suggest

Requires installed and configured 3rd party package counsel-web.

add this function definition to your config file

(defun my/howdoyou-with-suggestions ()
  "Call `howdoyou-query' with suggestions from `counsel-web-suggest'."
  (interactive)
  (counsel-web-suggest nil
                      "How Do You: "
                      #'counsel-web-suggest--google
                      (lambda (x)
                        (howdoyou-query x))))

Now when calling my/howdoyou-with-suggestion (either from M-x or by key binding of your choice) it will pass counsel-web-suggest suggestions to howdoyou-query.

Demo

screenshots/howdoyou.gif

screenshots/howdoyou2.gif

Test

generate google html files

cd test
bash curl.sh

new google html files are created to run test aganst them.

run test

at project root

cask exec ert-runner

Contributors (in no particular order):

dvzubarev, leothelocust, dickmao, Alois Janíček, Evan, Boruch Baum

Shoutout

References

About

Search and read stackoverflow and its sisters’ sites


Languages

Language:Emacs Lisp 100.0%