Sublime Text 2 plugin to go to documentation
Python
Pull request Compare This branch is even with kemayo:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
Default (Linux).sublime-keymap
Default (OSX).sublime-keymap
Default (Windows).sublime-keymap
Default.sublime-commands
Main.sublime-menu
README.markdown
goto_documentation.py
goto_documentation.sublime-settings

README.markdown

GotoDocumentation

A Sublime Text plugin to jump to documentation for the current keyword.

Supports

  • 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

Installation

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

How to use

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

Edit the urls

GotoDocumentation allows you to edit the url that opens by editing the settings.

The available settings are:

{
    "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

How to get the scope

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).

Contributions

Submit a patch adding more and I'll include it.

If you find a bug or have suggestions open an issue here