Coder Social home page Coder Social logo

helm-dash's Introduction

Helm Dash

Build Status Coverage Status MELPA MELPA Stable Tag Version License

What's it

This package uses Dash docsets inside emacs to browse documentation. Here's an article explaining the basic usage of it.

It doesn't require Dash app.

What's not

If you're looking for dash.el, the list library, please go to dash.el

Requirements

Installation

It's available on MELPA.

Now, it's possible to choose between install the stable or development version of helm-dash. Here there is an explanation about stable packages and MELPA and here a list of our tags.

m-x package-install helm-dash RET

Installing docsets

Helm-dash uses the same docsets as Dash. You can install them with m-x helm-dash-install-docset for the official docsets or m-x helm-dash-install-user-docset for user contributed docsets (experimental).

To install a docset from a file in your drive you can use m-x helm-dash-install-docset-from-file'. That function takes as input a tgzfile that you obtained, starting from a folder named.docset`, with the command:

tar --exclude='.DS_Store' -cvzf <docset name>.tgz <docset name>.docset

as explained here.

Usage

m-x helm-dash RET will run helm with your active docsets loaded. Typing substrings of what you search will find-as-you-type.

  • The search starts from 3 chars.
  • Install new docsets with m-x helm-dash-install-docset
  • After installing a new docset, add the name of the docset to `helm-dash-common-docsets' or in 'helm-dash-docsets' (which is ment to be buffer local)

m-x helm-dash-at-point RET is like helm-dash, but it will prefill the search input with the symbol at point.

The command helm-dash-reset-connections will clear the connections to all sqlite db's. Use it in case of errors when adding new docsets. The next call to helm-dash will recreate them.

Variables to customize

helm-dash-docsets-path is the prefix for your docsets. Defaults to ~/.docsets

helm-dash-min-length tells helm-dash from which length to start searching. Defaults to 3.

helm-dash-browser-func is a function to encapsulate the way to browse Dash' docsets. Defaults to browse-url. For example, if you want to use eww to browse your docsets, you can do: (setq helm-dash-browser-func 'eww).

When helm-dash-enable-debugging is non-nil stderr from sqlite queries is captured and displayed in a buffer. The default value is t. Setting this to nil may speed up queries on some machines (capturing stderr requires the creation and deletion of a temporary file for each query).

Sets of Docsets

Common docsets

`helm-dash-common-docsets' is a list that should contain the docsets to be active always. In all buffers.

Buffer local docsets

Different subsets of docsets can be activated depending on the buffer. For the moment (it may change in the future) we decided it's a plain local variable you should setup for every different filetype. This way you can also do fancier things like project-wise docsets sets.

(defun go-doc ()
  (interactive)
  (setq-local dash-docs-docsets '("Go")))

(add-hook 'go-mode-hook 'go-doc)

Only one docset

To narrow the search to just one docset, type its name in the beginning of the search followed by a space. If the docset contains spaces, no problemo, we handle it :D.

FAQ

  • Does it work in osX?

sqlite queries. Provisionally, we're executing shell-commands directly. Our idea is come back to use esqlite when some issues will be fixed.

helm-dash has been tested only in linux. We've been notified that it doesn't work in Mac, so we ask for elisp hackers who own something that runs Mac OSX if they could take a look at it.

Hints: It looks like something with 'end of line' differences. The suspicious are esqlite (which helm-dash requires) or pcsv (which esqlite requires)

  • I'm using mac osx and pages open but not in the correct anchor

bug on mac osx's browse-url which can't open urls with #. If you find this issue, and want to debug, great, otherwise, you can use eww or w3 or w3m which will work just fine

  • I get nil for every search I do

make sure you don't have sqlite3 .mode column but .mode list (the default). check your .sqliterc

  • When selecting an item in helm-dash, no browser lookup occurs with firefox >= 38.0.and emacs >= 24.4

try:

(setq browse-url-browser-function 'browse-url-generic
      browse-url-generic-program "/path/to/firefox")
(setq helm-dash-browser-func 'browse-url-generic)

Contribution

We ♥ feedback, issues or pull requests. Feel free to contribute in helm-dash.

We're trying to add tests to the project, if you send a PR please consider add new or update the existing ones.

Install Cask if you haven't already, then:

$ cd /path/to/helm-dash
$ cask

Run all tests with:

$ make

Authors

helm-dash's People

Contributors

agpchil avatar areina avatar aslpavel avatar asmundg avatar coalman avatar davidshepherd7 avatar dickby avatar dvzubarev avatar emacs18 avatar gfzeng avatar gilbertw1 avatar jfeltz avatar kidd avatar marcelino-m avatar marcinant avatar meditans avatar olymk2 avatar otsaloma avatar otsaw avatar pao avatar purcell avatar sanderson-sfdc avatar sometimesfood avatar stardiviner avatar syohex avatar thomasf avatar tko avatar vspinu avatar xiongtx avatar yasuyk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

helm-dash's Issues

`browse-url` fails

I'm using Emacs 24.3.1 on Macos. It seems that url browsing does not work. When I try:

(browse-url "file:///Users/asok/.docsets/Ruby on Rails.docset/Contents/Resources/Documents/api.rubyonrails.org/v3.2.16/classes/AbstractController/Callbacks/ClassMethods.html#method-i-append_before_filter")

In the *Messages* I see:

#<process open file:///Users/asok/.docsets/Ruby on Rails.docset/Contents/Resources/Documents/api.rubyonrails.org/v3.2.16/classes/AbstractController/Callbacks/ClassMethods.html#method-i-append_before_filter>

And no browser's window is opened.
Though when I strip the #target part of the url:

(browse-url "file:///Users/asok/.docsets/Ruby on Rails.docset/Contents/Resources/Documents/api.rubyonrails.org/v3.2.16/classes/AbstractController/Callbacks/ClassMethods.html")

The browser window is opened with the html file.

It might be the bug mentioned here (under the section named: "Bug" in browse-url-default-windows-browser).

Maybe it's worth mentioning that in the README.

Error: no such table: ZTOKEN

Current path (pwd) is /home/stardiviner/.emacs.d/init/programming/document/.

----------------
 HEY! This is helm-dash (sqlite) error logging. If you want to disable it, set `helm-dash-enable-debugging` to nil
---------------- 

Error: no such table: ZTOKEN
Error: no such table: ZTOKEN
Error: no such table: ZTOKEN


Error: unable to open database "/home/stardiviner/.emacs.d/init/programming/document/Contents/Resources/docSet.dsidx": unable to open database file

Error: unable to open database "/home/stardiviner/.emacs.d/init/programming/document/Contents/Resources/docSet.dsidx": unable to open database file

Error: unable to open database "/home/stardiviner/.emacs.d/init/programming/document/Contents/Resources/docSet.dsidx": unable to open database file

Error: unable to open database "/home/stardiviner/.emacs.d/init/programming/document/Contents/Resources/docSet.dsidx": unable to open database file

I found some docsets can not query now.
here is the error message after I toggle helm-dash-enable-debugging.

The debug info shows helm-dash is opening docset database in a wrong place, my docsets path is ~/.docsets.

Some docsets has this problem, some docsets not.
problem docsets: Ruby, Go,

Change docset location from init file

Is it possible to change the default docset install location (currently ~/.docset) from init file, e.g.:

(require 'helm-dash)
(helm-dash-docset-path "....")
(helm-dash-install-docset "....")
(helm-dash-install-docset "....")
(helm-dash-install-docset "....")

  • ju

handle directories like haskell-either-4.3.10.docset

After wondering why my docset wasn't working (checking schema plist etc.) it turns out the problem is that helm-dash doesn't understand directories like haskell-either-4.3.10.docset, and instead truncates the docset at haskell-either-4, I suspect because it assumes that suffix docset begins after the first period. Is this a bug in helm-dash, or is this path violating the dash standard or something? If it is the former, then I will submit a pull request.

Still no candidates provided

Further to Issue 41, i've just uninstalled the helm-dash (MELPA) package via the package manager, cloned the master branch, and loaded helm-dash from that; but it's still not providing any candidates for either of the two docsets i've installed ('HTML' and 'CSS').

open helm-dash prefilled with word at point

It would be great if one could have a elisp function to bind on a hotkey which would prefill the minibuffer with the word at the point. E.g. point is at setsid(), press F1 and helm-dash opens with setsid prefilled

Add a way to open doc in other window

Hello, I have implemented this (copy paste from helm-dash-browse-url)

(defun helm-dash-browse-url-other-window (search-result)
  "Call to `browse-url' with the result returned by `helm-dash-result-url'.
Get required params to call `helm-dash-result-url' from SEARCH-RESULT."
  (let ((docset-name (car search-result))
    (filename (nth 2 (cadr search-result)))
    (anchor (nth 3 (cadr search-result))))
    (if (< (length (window-list)) 2)
        (split-window-horizontally))
    (other-window 1)
    (funcall helm-dash-browser-func (helm-dash-result-url docset-name filename anchor))))

and also modified

(defun helm-dash-actions (actions doc-item)
  "Return an alist with the possible actions to execute with DOC-ITEM."
  `(("Go to doc" . helm-dash-browse-url)
    ("Go to doc other window" . helm-dash-browse-url-other-window)
    ("Copy to clipboard" . helm-dash-copy-to-clipboard)))

but when I select second action in helm buffer documentation just opens inside the same buffer.
How should I fix this code to make it work?

Also, using split-window-horizontally is too ad-hoc, maybe you know a better way to do that to make reasonable pull request?

BTW, I am using eww for browsing docs, this feature may be unrelated for other browser users, and I dont know how to deal with it.

helm-dash does not complete (seems does not connect to docsets correctly)

I install helm-dash through el-get.
And configure it with:

(require 'helm-dash)

(setq helm-dash-docsets-path (expand-file-name "~/.docsets")
      helm-dash-min-length 3
      ;; helm-dash-completing-read-func 'completing-read ; 'completing-read, 'ido-completing-read
      helm-dash-browser-func 'browse-url ; 'browse-url, 'eww
      ;; helm-dash-connections
      helm-dash-common-docsets '("Ruby" "Ruby on Rails"
                                 "HTML" "CSS" "JavaScript" "CoffeeScript"
                                 "Common_Lisp" "Clojure"
                                 "C" "Go"
                                 "SQLite" "MySQL" "Redis" "MongoDB"
                                 "Qt"
                                 "Vagrant" "Nginx"
                                 )
      ;; helm-dash-docsets
      )
(define-key help-document-map (kbd "C-d") 'helm-dash-at-point)

After download docsets with helm-dash-install-docsets.
And when I execute [M-x helm-dash]. It only show Ruby nil
or Ruby on Rails nil. I also tried command helm-dash-active-docsets.
None of them can work correctly.

Ignore list

Regarding the ignore list at https://github.com/areina/helm-dash/blob/master/helm-dash.el#L99. You should change it so that anything that's not .xml is ignored, because I might add other .txt's and stuff in the future (although not that often).

If you can't make it so that all except .xml are ignored, you should also add the following to the ignore list: latencyTest.txt, latencyTest_v2.txt.

Also amongst the .xml's there are a few that you should ignore:

  • Bootstrap.xml (this one has been split into Bootstrap_2.xml and Bootstrap_3.xml), so there's no need for "Bootstrap.xml" anymore but it's kept around until all users have a chance to update Dash.
  • Drupal.xml (same as Bootstrap, it has been split into Drupal_7.xml and Drupal_8.xml)
  • Zend_Framework.xml (same as Bootstrap, it has been split into Zend_Framework_1.xml and Zend_Framework_2.xml)
  • Ruby_Installed_Gems.xml. This is an empty placeholder docset. Dash fills it with content at runtime (with the gems that the user has installed on his Mac)
  • Man_Pages.xml. This is an empty placeholder docset. Dash fills it with content at runtime (with the man pages that the user has installed on his Mac)

add support for ivy-mode etc completion system?

I hope dash.el can add support for other completion systems like ivy-mode.
helm-dash should add a customizable variable helm-dash-completion-system so that user can set user own favourite item like ido, ivy etc.

Why is helm-dash-completing-read-func used?

I'm a bit curious about the use of helm-dash-completing-read-func. Is there any reason it's being used in a helm-specific package?

When I asked helm-dash to install a docset, I wasn't expecting an ido prompt. Now I could quite happily add helm-comp-read to the options for helm-dash-completing-read-func and perhaps make it the default, but on second thought, it seems a little weird to have the configuration at all here.

Search results empty on first call

I use helm-dash with buffer-local docsets and I have a key bound to helm-dash-at-point. Often the first time I call helm-dash-at-point the result list is empty. If I cancel that and call again the expected results show up. This happens often, but not always and with some docsets more often than others, but not consistently.

I looked at the code and if I understand correctly, registering the actual connection into helm-dash-connections under helm-dash-create-buffer-connections should happen only once per source per buffer, but it often seems to be done twice. Maybe it is related?

I currently call helm-dash-create-buffer-connections multiple times on after-change-major-mode-hook, which seems to work around the problem.

Mac gnutls.c: [0] (Emacs) fatal error: The TLS connection was non-properly terminated.

I tried to install the Common Lisp and the CoffeeScript docs on Mac OS X 10.8. Both failed with this error message

gnutls.c: [0] (Emacs) fatal error: The TLS connection was non-properly terminated.

Afterwards calling helm-dash will result in

esqlite--error: esqlite: "unable to open database \"~/.docsets/Common_Lisp.docset/Contents/Resources/docSet.dsidx\": unable to open database file
"

helm-dash can't open result entry.

I have Emacs version 25.0.50.2
And use the latest helm-dash from el-get.

And have this configuration.

(require 'helm-dash)

(setq helm-dash-docsets-path (expand-file-name "~/.docsets")
      helm-dash-min-length 3
      ;; helm-dash-completing-read-func 'completing-read ; 'completing-read, 'ido-completing-read
      helm-dash-browser-func 'browse-url ; 'browse-url, 'eww
      ;; helm-dash-connections
      helm-dash-common-docsets '("Ruby" "Ruby on Rails"
                                 "Python 3"
                                 "HTML" "CSS" "JavaScript" "CoffeeScript"
                                 "Common_Lisp" "Clojure"
                                 "C" "Go"
                                 "SQLite" "MySQL" "Redis" "MongoDB"
                                 "Qt"
                                 "Vagrant" "Nginx"
                                 "Android"
                                 "RubyMotion" "AngularJS"
                                 )
      ;; helm-dash-docsets
      )

And when I press Enter on result entry Ruby Kernel.autoload. Then this error raised.

(wrong-type-argument stringp ("Ruby" ("clm" "Kernel.autoload" "Kernel.html#method-i-autoload")))
  try-completion(("Ruby" ("clm" "Kernel.autoload" "Kernel.html#method-i-autoload")) nil nil)
  helm-confirm-and-exit-minibuffer()
  funcall-interactively(helm-confirm-and-exit-minibuffer)
  call-interactively(helm-confirm-and-exit-minibuffer nil nil)
  command-execute(helm-confirm-and-exit-minibuffer)
  read-from-minibuffer("pattern: " nil (keymap (return . helm-confirm-and-exit-minibuffer) (tab . helm-select-action) (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 lambda nil (interactive) (helm-select-nth-action 8)) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (109 . helm-help) (104 . undefined) (8 . undefined) (4 . helm-debug-output)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (triple-mouse-3 . ignore) (double-mouse-3 . ignore) (mouse-3 . ignore) (drag-mouse-3 . ignore) (down-mouse-3 . ignore) (triple-mouse-2 . ignore) (double-mouse-2 . ignore) (mouse-2 . ignore) (drag-mouse-2 . ignore) (down-mouse-2 . ignore) (triple-mouse-1 . ignore) (double-mouse-1 . ignore) (mouse-1 . ignore) (drag-mouse-1 . ignore) (down-mouse-1 . ignore) (67108897 . helm-toggle-suspend-update) (3 keymap (21 . helm-force-update) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (4 . helm-delete-current-selection) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . undefined) (18 . undefined) (23 . helm-yank-text-at-point) (24 keymap (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11 . helm-delete-minibuffer-contents) (67108896 . helm-toggle-visible-mark) (0 . helm-toggle-visible-mark) (C-M-up . helm-scroll-other-window-down) (C-M-down . helm-scroll-other-window) (M-prior . helm-scroll-other-window-down) ...) nil nil nil t)
  helm-read-pattern-maybe(nil nil nil nil nil nil nil)
  helm-internal((((name . "Dash") (volatile) (delayed) (requires-pattern . 3) (candidates-process . helm-dash-search) (action-transformer . helm-dash-actions))) nil nil nil nil "*helm-dash*" nil nil nil)
  apply(helm-internal ((((name . "Dash") (volatile) (delayed) (requires-pattern . 3) (candidates-process . helm-dash-search) (action-transformer . helm-dash-actions))) nil nil nil nil "*helm-dash*" nil nil nil))
  helm((((name . "Dash") (volatile) (delayed) (requires-pattern . 3) (candidates-process . helm-dash-search) (action-transformer . helm-dash-actions))) nil nil nil nil "*helm-dash*" nil nil nil)
  apply(helm ((((name . "Dash") (volatile) (delayed) (requires-pattern . 3) (candidates-process . helm-dash-search) (action-transformer . helm-dash-actions))) nil nil nil nil "*helm-dash*" nil nil nil))
  helm(:sources (((name . "Dash") (volatile) (delayed) (requires-pattern . 3) (candidates-process . helm-dash-search) (action-transformer . helm-dash-actions))) :buffer "*helm-dash*" :input nil)
  helm-dash-at-point()
  funcall-interactively(helm-dash-at-point)
  call-interactively(helm-dash-at-point nil nil)
  command-execute(helm-dash-at-point)

Install docsets from init file

Is it possible to install docsets directly from within the init file, e.g.:

(require 'helm-dash)
(helm-dash-install-docset "Qt_5")
(helm-dash-install-docset "...")
(helm-dash-install-docset "...")

  • ju

need a better way to filter for long terms docsets

Here is the original issue magnars/dash.el#132

I thought it is the issue in dash.el, but it's not, I searched with grep in Rails docset. and found the Flash.html page. in /home/stardiviner/.docsets/Ruby on Rails.docset/Contents/Resources/Documents/api.rubyonrails.org/classes/ActionDispatch/Flash.html

I guess this really is the problem in helm-dash.

Issue when using `helm-dash-install-docset-from-file`

Hi, I created a custom docset named target.docset (which is a folder) in the folder of one of my projects. When I'm into that project, I want to use that docset.

However, when I try the function helm-dash-install-docset-from-file, I get in the minibuffer the string Docset installed. Add "tar: Error is not recoverable: exiting now" to helm-dash-common-docsets or helm-dash-docsets. and I get no results in the helm-dash search.

What am I missing here? What is the recommended workflow to have a custom docset per project?

Error: no such table: ZTOKEN in Ruby docset and Go docset etc

I found some docsets can not query now.
here is the error message after I toggle helm-dash-enable-debugging.

Error: no such table: ZTOKEN
Error: unable to open database "/home/stardiviner/.emacs.d/init/programming/document/Contents/Resources/docSet.dsidx": unable to open database file

The debug info shows helm-dash is opening docset database in a wrong place, my docsets path is ~/.docsets.

Some docsets has this problem, some docsets not.
problem docsets: Ruby, Go,

give user a hint when helm-dash ins quering or when no result

I don't know what helm-dash is doing, when just blank result. still quering, or just no result.
I mean I want to know helm-dash's status.
helm-dash can show status info in mode-line, or somewhere else. (minibuffer (echo-area) is already been used by input).

Support multiple search paths

Right now helm-dash supports a single path for finding docsets, but Dash uses multiple internally:

~/L/A/Dash: ls                                                          16:42:01
Cheat Sheets      Java DocSets      Temp              library.dash
DocSets           License           Versioned DocSets

open doc as you type

This works kinda ok, but it's super slow. makes everything sluggish.

We should investigate on that, There's also helm-idle-delay worth investigating

(add-hook 'helm-update-hook 'helm-dash-update t)

(defun helm-dash-update ()
  (interactive)
  (with-selected-window
    (eww (helm-get-selection))))

Allow full HTTP links

helm-dash seems to work with local HTML files and file:// URLs. It would be useful if the "path" could be a full http(s):// link. This way I could avoid trying scrape some gigantic web pages, just download an index page, parse that and construct full HTTP URLs in the database file. Dash allows this too ("Alternatively, Dash also supports http:// URL entries.").

Maybe something like

(if (string-match-p "^https?://" path) 
    path
  ...)

in helm-dash-result-url? Do you want a pull request?

How to diagnose helm-dash not showing anything?

Is there a verbose setting or a flag I can enable to help track down why helm-dash does not show anything? I have two docsets enabled, one activated, sqlite3 on the $PATH, but no results are ever returned.

make install docset async

install docset with function url-copy-file un-available to user.
I think helm-dash-install-docset should use async-start or something else.

Finding a way to support Windows

I know, I know, boo Windows, but let's see if we can't figure this out.

tar and weird paths

Emacs seems to do a good job of handling weird paths: for instance, directory-files correctly lists the files for the string "C:\\Users\\Matt\\/.docsets". So that's great, but external programs will have trouble with that.

Sadly, there may need to be two special cases for Windows users here: one for people who use Cygwin, and one for more Windows-like versions of Unix programs (GnuWin32, UnixUtils, MsysGit, etc). I use Cygwin, so what follows works for me, but it should probably be the backup case if the default fails.

The first hangup is when using helm-dash-install-docset. Under Cygwin, the only way I could get tar to work was to use the cygpath program to convert the target file to an absolute path. helm-dash-docsets-path seems to work as-is though, strangely. Working example, with a pre-downloaded archive:

(let ((testing "C:\\Users\\Matt\\.docsets\\LaTeX.tar.bz2"))
    (shell-command-to-string (format "tar xvf %s -C %s"
        (s-trim (shell-command-to-string 
            (format "cygpath -a %s" testing))) helm-dash-docsets-path)))

With cygpath, -a generates absolute paths, and it looks like shell-command-to-string keeps the trailing newline, so I'm trimming that with s.el.

If I add a call to cygpath in helm-dash-install-docset, I can in fact get docsets installed. Yay! But I don't know the best way to conditionally activate the cygpath conversion. Maybe try tar without, then it if fails, check for a cygpath executable on $PATH, and use it if one is found?

That is, assuming other distributions of Unix utilities opt for a more Windows-like approach, and should handle normal Windows paths. That being said, I've tested a bit with the MsysGit version of tar, and it seems to suck just as much as the Cygwin version - I couldn't get it to work at all with any absolute path, only relative ones. Sigh.

Beyond tar

With the Emacs Lisp docset installed, and this line executed:

(setq helm-dash-common-docsets '("Emacs Lisp"))

I don't get any results from running helm-dash, no matter what I type. I've installed esqlite, and pcsv, and they seem to at least load correctly. I'm not getting any error messages or warnings. At this stage, I don't have an easy guess for what the error might be. I'd be happy to test any likely sources of errors, though :)

No error is given if sqlite3 cannot be found

When emacs cannot find sqlite3 helm-dash fails silently. The list of completions remains simply remains empty, no error message or stack trace appears. It would be nicer if errors were displayed somehow.

I had some problems because of this. For some reason even though sqlite3 was installed emacs couldn't find it (I didn't find out why but a re-install fixed it). However, in order to find out that this was the issue I had to dig quite deeply into the code.

I'm working on a fix at the moment, but emacs' process calling functions are a confusing mess!

New release for melpa-stable

The last release of helm-dash on melpa-stable (1.1.0) does not work with current helm versions:

helm-dash.el:41:1:Error: Cannot open load file: no such file or directory, helm-match-plugin

This error seems to have been fixed in 4e1046f.

Could you please release a new version of helm-dash for the melpa-stable users out there? Thanks!

Don't require helm-mode

Hi,

on my win32 emacs I only get helm-dash to work (more precisely, list doclets) when

helm-comp-read-case-fold-search

is non-nil, which is defined in helm-mode. AFAIK helm-mode is considered optional, in general.

Docset path confusion with underscores

When you install docsets that have underscores in the name the end result is rather unpredictable, e.g.

  • Bootstrap_2 => Bootstrap.docset
  • Bootstrap_3 => Bootstrap 3.docset
  • Common_Lisp => Common Lisp.docset
  • Emacs_Lisp => Emacs Lisp.docset

In a way none of docsets are available after installation due to underscore / whitespace mismatch, not to mention the loss of '2' even. I'd think the docsets should be available with the exact same id that was used for installing.

On the other hand dash itself installs docsets little differently which keeps the id intact, though it is never really shown to the user, e.g.

  • Bootstrap_2 => Bootstrap_2/Bootstrap.docset
  • Bootstrap_3 => Bootstrap_3/Bootstrap 3.docset
  • Common_Lisp => Common_Lisp/Common Lisp.docset
  • Emacs_Lisp => Emacs_Lisp/Emacs Lisp.docset

In this scenario helm-dash is failing to notice already installed docsets because of the small differences between directory names.

Helm-dash can't find docs when on remote host (TRAMP)

When I scp to a remote host with TRAMP I can't open my docs anymore using helm-dash. The only way for me to open them is to go back to a file on my local machine and enable the docset there. I've also tried installing docs on the remote host but that didn't work either. Any idea?

autoload 'helm-dash-activate-docset

Hello,

In my config, I do not set helm-dash-common-docsets as it forces my to download all of them whenever I clone my emacs configuration from a machine to another.

So I like to use helm-dash-install-docset interactively, but subsequently, helm-dash does not provide any candidate unless If i activate it via helm-dash-activate-docset. Unfortunately this function is only invokable once helm-dash has been called once. So the workflow is broken. It would be very nice to autoload helm-dash-activate-docset so that the workflow could be:

  1. helm-dash-install-docset
  2. helm-dash-activate-docset
  3. helm-dash

Thanks !

No data base connection on OS X

Using helm-dash after installing Python_3 docset via helm-dash-install-docset on OS X gives the error (see below for full Backtrace):

esqlite: "Stream buffer has been deleted"

How can I debug this further? Is relevant information missing?

Used Versions:
helm-dash from MELPA (20140114.1710)
esqlite from MELPA (20140115.728)
emacs 24.3.1 (x86_64-apple-darwin)

Backtrace:

Debugger entered--Lisp error: (esqlite-error "Stream buffer has been deleted")
  signal(esqlite-error ("Stream buffer has been deleted"))
  esqlite--error("Stream buffer has been deleted")
  esqlite-stream-read(#<process Esqlite> "SELECT name FROM sqlite_master WHERE type = 'table' LIMIT 1")
  helm-dash-docset-type(#<process Esqlite>)
  #[(x) "\303�  \"?\205�

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.