A Sublime Text plugin to jump to documentation for the current keyword.
- PHP
- JS / CoffeeScript
- HTML
- CSS/SASS/LESS
- Python (via
pydoc
) - Clojure
- Go
- Ruby (+Rails)
- C / C++
- Perl
- C#
- Lua
- Postgres
- Erlang
- Smarty
- Haskell
- ...you can add any other language via settings
Via Package Control
Search for GotoDocumentation
Manually
Clone this project in your Packages folder under the name GotoDocumentation
.
git clone https://github.com/kemayo/sublime-text-2-goto-documentation.git GotoDocumentation
Move the cursor inside the word you want the docs for and:
- Press
Super+Shift+H
or - Open command palette (Ctrl+Shift+P) and search for for GotoDocumentation
GotoDocumentation allows you to edit the url that opens by editing the settings.
{
"prefix": "", // added at the begging of the query
"suffix": "", // added at the end of the query
"docs": { // obj containing the docs for each scope
// these are merged with the default ones
// the key value pair represent scope -> doc url
// supported placeholders:
// - %(query)s the selected text/word
// - %(scope)s the current scope
"css": "http://devdocs.io/#q=%(scope)s+%(query)s",
// we can also have an object to
// run a command for finding docs
// inside the command you can use the same placeholders
"python": {
// the command to be executed
"command": ["python", "-m", "pydoc", "%(query)s"],
// a regex to determine if this was an invalid response from the console
"failTest": ".*no Python documentation found for.*",
// regex to select something from the valid response
"changeMatch": "(Related help topics)",
// regex to replace the matched result
"changeWith": "-------\n\\1",
// fallback url: if failTest returns true this will be used
"url": "http://docs.python.org/3/search.html?q=%(query)s"
}
},
// if we have no docs for the current scope
// we will try using the fallback one,
// to disable set to false
"fallback_scope": "google"
}
The change replace is done with the re.sub
method
To get the scope for a specific place open your sublime console with ctrl + `
and paste in this command
view.scope_name(view.sel()[0].begin()).rpartition('.')[2].strip()
You can then use that scope to set a rule in the docs
dictionary(object).
Submit a patch adding more and I'll include it.
If you find a bug or have suggestions open an issue here