This page provides instructions on how plugin developers can integrate Dash with other apps. This page is not meant for regular Dash users. If you're just looking for a way to integrate Dash with your favorite app, check out Dash's Preferences > Integration.
You can trigger a search in Dash by opening a dash://{query}
URL. For example, click here. For instructions on how to open custom URLs in Terminal, System Services or AppleScripts, check out Dash's Preferences > Integration.
Dash supports a lot of different docsets and it would be great if plugins would be able to tell Dash which docsets it should search exactly. This is usually determined based on the type of file the user currently has opened when he/she triggers a search.
The format is: dash-plugin://keys={keywords}&query={query}
keys
tells Dash which docsets it should search for
python,django
or macosx,iphoneos
. For a list of available docset keywords, see below.query
is the actual search query.Examples:
dash-plugin://keys=python,django&query=string
will search the Python and Django docsets for "string"dash-plugin://keys=python,django
will activate the Python and Django docsets and the user will have to enter the querydash-plugin://query=string
will just search for "string" using the docsets that the user has active by defaultThe trick is which keywords to use given a file type. The general guideline is to use all the keywords that are relevant. If a user does not have a docset installed for a keyword, the keyword is simply ignored, so there's no harm if you send over too many keywords. For example, if the user triggers a search from a .php
file, you shouldn't only send over the php
keyword, but also keywords for all the PHP frameworks and even the HTML-related ones.
This list is a work in progress. Please contact me if anything needs to be changed.
ActionScript (.as, .as3)keys=actionscriptAndroid
keys=androidBoo (.boo)
keys=unity3dC (.c, .h)
keys=c,glib,gl2,gl3,gl4,manpagesC++ (.cpp, .cc, .cp, .cxx, .c++, .C, .h, .hh, .hpp, .hxx, .h++, .inl, .ipp)
keys=cpp,net,boost,qt,cvcpp,cocos2dx,c,manpagesC# (.cs)
keys=net,mono,unity3dCappuccino / Objective-J (.j, .h)
keys=cappuccinoClojure (.clj, .cljs, .cljc, .edn)
keys=clojureCoffeeScript (.coffee)
keys=coffeeColdFusion (.cfm, .cfml)
keys=cfConfig Files (.config)
keys=nginxCSS (.css)
keys=css,bootstrap,foundation,less,awesome,cordova,phonegapDart (.dart)
keys=dartlang,polymerdart,angulardartElixir (.ex, .exs)
keys=elixirErlang (.erl, .hrl)
keys=erlangGo (.go)
keys=go,godocGradle (.gradle)
keys=gradleHaskell (.hs, .lhs)
keys=haskellHaml (.haml)
keys=hamlHTML (.html, .htm, .shtml, .xhtml, .phtml, .inc, .tmpl, .tpl, .ctp)
keys=html,svg,css,bootstrap,foundation,awesome,statamic,javascript,jquery,jqueryui,jquerym,angularjs,backbone,marionette,meteor,moo,prototype,ember,lodash,underscore,sencha,extjs,knockout,zepto,cordova,phonegap,yuiJade (.jade)
keys=jadeJava (.java, .jsp, .bsh)
keys=java,javafx,grails,groovy,playjava,spring,cvj,processingJavaScript (.js, .htc, .jsx)
keys=javascript,jquery,jqueryui,jquerym,angular,angularjs,react,vue,backbone,marionette,meteor,sproutcore,moo,prototype,bootstrap,foundation,lodash,underscore,ember,sencha,extjs,titanium,knockout,zepto,yui,d3,svg,dojo,coffee,nodejs,express,grunt,mongoose,moment,require,awsjs,jasmine,sails,sinon,chai,html,css,cordova,phonegap,unity3dJulia (.jl)
keys=juliaLess (.less)
keys=lessLisp (.lisp)
keys=lispLua (.lua)
keys=lua,coronaMarkdown (.md, .mdown, .markdown, .markdn)
keys=markdownObjective-C (.m, .h)
keys=iphoneos,macosx,watchos,tvos,cocoapods,appledoc,cocos2d,cocos3d,kobold2d,sparrow,c,manpagesObjective-C++ (.mm, .M, .h)
keys=cpp,iphoneos,macosx,cocoapods,appledoc,cocos2dx,cocos2d,cocos3d,kobold2d,sparrow,c,manpagesOcaml (.ml, .mli, .mll, .mly)
keys=ocamlPerl (.pl, .pm, .pod, .t)
keys=perl,manpagesPHP (.php, .inc)
keys=php,wordpress,drupal,zend,laravel,yii,joomla,ee,codeigniter,cakephp,phpunit,symfony,typo3,twig,smarty,craft,phpp,html,statamic,mysql,sqlite,mongodb,psql,redisProcessing (.pde)
keys=processingPug (.pug)
keys=pugPuppet (.pp)
keys=puppetPython (.py, .rpy, .pyw, .cpy)
keys=python,django,twisted,sphinx,flask,tornado,sqlalchemy,numpy,scipy,salt,pandas,matplotlib,cvpR (.r, .s, .rd, .Rprofile)
keys=rRacket (.rkt, .ss, .scm, .sch)
keys=racketRuby (.rb, .rbx, .rjs, .Rakefile, .rake, .cgi, .fcgi, .gemspec, .irbrc, .capfile, .Gemfile)
keys=ruby,rubygems,railsRust (.rs, .rc)
keys=rustSass (.sass, .scss)
keys=sass,compass,bourbon,neat,susy,cssScala (.scala)
keys=scala,akka,playscalaShell Scripts (.sh)
keys=bash,manpagesSQL (.sql)
keys=mysql,sqlite,psqlStylus (.styl, .stylus)
keys=stylusSwift (.swift)
keys=swift,iphoneos,macosx,watchos,tvos,cocoapods,appledocTcl (.tcl, .adp)
keys=tclTypeScript (.ts, .tsx)
keys=typescriptYAML (.yaml, .yml)
keys=chef,ansible