{"id":344,"date":"2014-02-02T23:58:06","date_gmt":"2014-02-02T22:58:06","guid":{"rendered":"http:\/\/www.tapper-ware.net\/blog\/?p=344"},"modified":"2014-02-02T23:58:06","modified_gmt":"2014-02-02T22:58:06","slug":"jsdoc-for-mozilla-firefox-components-interfaces","status":"publish","type":"post","link":"https:\/\/www.tapper-ware.net\/blog\/jsdoc-for-mozilla-firefox-components-interfaces\/","title":{"rendered":"JSDoc for Mozilla Firefox Components.interfaces"},"content":{"rendered":"<p>I freely admit, I&#8217;ve been spoiled by VisualStudio and .NET. But right now I need to write some JS code for XULRunner and it&#8217;s getting painful:<\/p>\n<p>All the information one needs is available on the Wiki, but I want auto-complete, I want argument descriptions and all the little niceties I&#8217;ve come to expect from a development environment. WebStorm does an admirable job at allowing me to document my code in a way that makes all this possible, but it needs JSDoc, not a set of Wiki pages in order to do this.<\/p>\n<p>My solution is less than perfect. I wrote a little parser that tries to scrape the content from the Wiki and transforms it into JSDoc. But since a Wiki is not a structured database, this means interpreting the data. Usually my little parser gets it right, but not always. It&#8217;s also a terrible bit of code with lots of little fixes every time I encountered a new style that somebody was using. I&#8217;ll release it in time, but right now it&#8217;s just too ugly.<\/p>\n<p>However, the result it produced is still apparently the best thing we have available right now, so I&#8217;m putting it up here. If there&#8217;s any interest, particularly in a permanent solution (which would probably involve keeping the documentation in a standardized format and occasionally syncing it with the Wiki), I&#8217;ll be happy to help.<\/p>\n<p>Just add this as a reference to your code in order to use it:<\/p>\n<p><a title=\"Components.interfaces JSDOC\" href=\"http:\/\/www.tapper-ware.net\/data\/devel\/web\/docs\/Components.Classes.Doc\/Interfaces.doc.js\">Components.interfaces JSDOC<br \/>\n<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I freely admit, I&#8217;ve been spoiled by VisualStudio and .NET. But right now I need to write some JS code for XULRunner and it&#8217;s getting painful: All the information one needs is available on the Wiki, but I want auto-complete, I want argument descriptions and all the little niceties I&#8217;ve come to expect from a &hellip; <a href=\"https:\/\/www.tapper-ware.net\/blog\/jsdoc-for-mozilla-firefox-components-interfaces\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">JSDoc for Mozilla Firefox Components.interfaces<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.tapper-ware.net\/blog\/wp-json\/wp\/v2\/posts\/344"}],"collection":[{"href":"https:\/\/www.tapper-ware.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tapper-ware.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tapper-ware.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tapper-ware.net\/blog\/wp-json\/wp\/v2\/comments?post=344"}],"version-history":[{"count":1,"href":"https:\/\/www.tapper-ware.net\/blog\/wp-json\/wp\/v2\/posts\/344\/revisions"}],"predecessor-version":[{"id":345,"href":"https:\/\/www.tapper-ware.net\/blog\/wp-json\/wp\/v2\/posts\/344\/revisions\/345"}],"wp:attachment":[{"href":"https:\/\/www.tapper-ware.net\/blog\/wp-json\/wp\/v2\/media?parent=344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tapper-ware.net\/blog\/wp-json\/wp\/v2\/categories?post=344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tapper-ware.net\/blog\/wp-json\/wp\/v2\/tags?post=344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}