Giter Site home page Giter Site logo

senchalabs / jsduck Goto Github PK

View Code? Open in Web Editor NEW
1.5K 1.5K 236.0 6.06 MB

Simple JavaScript Duckumentation generator.

Home Page: http://docs.sencha.com/

License: GNU General Public License v3.0

Ruby 50.55% JavaScript 45.03% PHP 0.21% CSS 3.81% HTML 0.41%

jsduck's People

Contributors

bmoeskau avatar dhurlburtusa avatar edspencer avatar jdespatis avatar krinkle avatar kt3k avatar lacivert avatar limscoder avatar matmarex avatar mmoll avatar nene avatar nicholasboll avatar nick avatar rdougan avatar scottrobertwhittaker avatar subtlegradient 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  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

jsduck's Issues

How to document 'mixed' parameters

This seems like a trivial question to me but I couldn't find anything in the docs or in the issue tracker:

What's the preferred way to declare the pseudo-type "mixed"? Currently I simply use the string mixed in conjunction with the -external=mixed command line option to suppress jsduck warnings.

Syntax for parameters with properties

Having Markdown support already alleviates this issue, but it would be nice to have a special syntax for this.

One possibility is to adopt the same syntax that jsdoc-toolkit supports:

/**
  * @param userInfo Information about the user.
  * @param userInfo.name The name of the user.
  * @param userInfo.email The email of the user.
  */
 function logIn(userInfo) {
        doLogIn(userInfo.name, userInfo.email);
 }

Another option I've been thinking is to re-use @cfg:

/**
  * @param userInfo Information about the user.
  * @cfg name The name of the user.
  * @cfg email The email of the user.
  */
 function logIn(userInfo) {
        doLogIn(userInfo.name, userInfo.email);
 }

This greatly reduces the amount of duplication. If the function accepts only one parameter (as such functions often do), maybe we could even skip the @param completely:

/**
  * @cfg name The name of the user.
  * @cfg email The email of the user.
  */
 function logIn(userInfo) {
        doLogIn(userInfo.name, userInfo.email);
 }

The only downside is that when you have just one @cfg then the doc-comment will be interpreted as class-level config option, but having a function parameter object with just one possible property is a bit silly and one can always force parsing doc-comment as method doc-comment by using @method.

The best would be to support both syntaxes.

Better meta-tags support

The current --meta-tags option is quite limited. Here's a list of things that should be possible:

  • Multi-line meta-tags.
  • Markdown in contents of meta tag.
  • Transforming the content of meta tag.
  • Hiding the tag completely.

I'm thinking of a solution where one would supply an implementation of each meta-tag as a Ruby class:

class AuthorTag < JsDuck::MetaTag
  def initialize
    @name = "author"
    @title = "Author"
    @multiline = false
    @hidden = false
  end

  def transform(text)
    if text =~ /^(.*)<(.*)>$/
      "<a href='email:#{$2}'>#{markdown($1)}</a>"
    else
      markdown(text)
    end
  end
end

And then you supply this class or classes through --meta-tags option:

$jsduck --meta-tags /path/to/file.rb

This should allow transforming the meta tag in a huge amount of ways.

Better links from docs to source code

Currently we link to specific line number. But this way the links will get outdated each time the source code file changes even a little bit. Would be better to have links like in the old ext-doc:

<a href="source/Ext.html#method-define">source of Ext.define</a>

To achieve this we have to write out source files after the code in them has been analyzed. On the other hand, this way we will avoid writing source files for JavaScript files that contain no doc-comments at all.

Buttons don't work

Why don't properties, methods, config and events buttons work when I click on them?

Documenting callback method parameters

Is there a jsduck way to document asynchronous code like this?

prepareMenuItems: function(someData, cb, scope) {
  Ext.Ajax.request({
     ...
     success: function() {
        ...
        cb.call(scope || this, param1, param2, param3)
     } 
  });
}

How would I document cb's parameters?

Alternate Output Formats

I'm interested in generating a big document (in XML or JSON) of the complete API. Is that something I can pull out of intermediate files in using this, or is there something I can modify to make ti work this way?

Inline examples only work for Ext JS 4 built-in components.

It seems that only support ext build-in component?

how to show some inline example for my ux ?

maybe : write example outside,and "add link in doc" or "embed in a iframe in doc" ?

but this way, user can't modify the example and get a live show.

Stack overflow caused by @extends

Comment like this causes stack overflow:

/**
 * @class Foo
 * @extends Foo
 */

JSDuck will recurse into infinity trying to reach the parent class.

Windows support

Currently JSDuck doesn't really work on windows.

Things to do:

  • use parallel gem only when on UNIX,
  • accept directories as command line arguments and scan them for .js files - Windows doesn't have xargs,
  • Write documentation for setting up Ruby etc on Windows.

Installation problem

You should mention that installation requires the ruby1.8-dev package, took me a while to google that..

Ext.ClassManager.create instead of Ext.define?

Is it possible to let me use Ext.ClassManager.create instead of Ext.define to create a class?

I don't want to use the aliases when I'm coding to make it more understandable of what is happening.

If it's not supported right now could this feature be added any soon?

Support for documenting overrides

From Don:

I was thinking more about this and realized that we probably need some support from our jsdoc to properly handle overrides. In the case of Element, it would be best if the required overrides had the docs injected into Element. To the user, ideally only Element is exposed (not AbstractElement or artifacts of implementation).

There is likely going to need to be some @tags added, like @OverRide.

As a straw-man starting point, what about this:

/**
 * @override Ext.rtl.Element
 * @class Ext.dom.Element
 *
 * Blah blah blah RTL, blah blah.
 */
Ext.define('Ext.rtl.Elemement', {
    override: 'Ext.dom.Element',

    ...
});

The tool may not need @Class or even @OverRide if the structure of the code is vanilla (no wrapping functions or such). I suppose these override chunks could be turned into grouping/heading areas in the doc. Overrides probably also need the ability to have a dedicated place in the doc. Aria and RTL for example would, while the Element parts would not. Maybe we have a @Nodoc tag or something already.

The optimal solution on the docs side is one I am happy to let others ponder, but wanted to get the ball rolling and avoid last minute surprises.

It's magic is its interaction with build such that the override is not included unless the class it overrides is included.

Anyway, the first two places we are planning to use it in 4.1 (Aria and RTL support) might also benefit from both adding to the target class and being able to tell that the config property or method is provided by a separate override. This could be addressed other ways and these topics probably need their own Guide so we may just past links to the Guide in each method/property.

For example, RTL support will be used like this (roughly):

Ext.define('My.app.App', {
    requires: [
        'Ext.rtl.*'  // this might be encapsulated TBD
    ]
});

//--

Ext.define('My.app.View', {
    extend: 'Ext.Viewport',
    rtl: true,  // config added by RTL

    ...
});

The details are still in flux here, but the idea is that the 'rtl' config is added to AbstractComponent by the Ext.rtl.AbstractComponent override. In this way, RTL support take no space in the build unless you require it.

The temptation would be to have some simple mechanism to indicate this on the 'rtl' config property so users know they must include RTL support for it to work. Similar things will be true for Aria support.

@hide doesn't hide methods of parent class

When parent class has:

/**
 * My method, as implemented in parent class.
 */
foo: function() {

And subclass has:

/**
 * My method, as implemented in subclass.
 * @private
 */
foo: function() {

Then the documentation will still list documentation for the parent class method.

The issue was raised in Sencha forum: http://www.sencha.com/forum/showthread.php?119667#post581161

I really didn't expect that kind of use case... if you look at any language that allows methods to be declared public/private, none of them allows making public method of parent class a private method in subclass. This kind of thing looks like a design smell to me - you should be able to treat any subclass instance as instance of parent class.

Currently not a high priority.

CoffeeScript comments support

Would be nice to see support for .coffee comments. All content of the comments are the same, but use # instead of // or /*. For example

###
This is a block comment
Content goes in here
###

# This is an inline comment

Remove parameter names

I have noticed that jsduck's purpose is to remove unnecessary documentation. Eg. you shouldn't have to write two identical lines in two places.

There is one exception for this:

/**

  • Flaps wings and flies away.
  • @param {Number} speed Wingspeed in km/h.
  • @param {Boolean} silently (optional) True to not quack on his way.
  • @return {Boolean} true on success
    */
    fly: function(speed, silently) {
    },

Since params need to be commented you cannot avoid the @param tag. But isn't it smarter if its like this instead:

/**

  • Flaps wings and flies away.
  • @param {Number} Wingspeed in km/h.
  • @param {Boolean} (optional) True to not quack on his way.
  • @return {Boolean} true on success
    */
    fly: function(speed, silently) {
    },

If I change the name in the function argument I don't have to keep the doc in sync manually.

This would follow the vision of jsdoc with no cost of documentation quality.

Make typekit.com optional

The systematic use of typekit.com in the generated documentation makes if offline-unfriendly.

It would be nice having a command line option to suppress its use.

Thanks,

Christophe

Can not create overview

When trying to generate an overview of the documentation using the --categories switch I receive the following error:

nickolay@desktop:~/Playground/jsduck$ jsduck --output doc js/ --categories=overviewData.json                                                                                                               
Warning: Class Ext.data.Model not found in js//Gnt/model/Task.js line 1                                                                                                                                    
/home/nickolay/.gem/ruby/1.8/gems/jsduck-2.0.pre4/lib/jsduck/categories.rb:25:in `[]': can't convert String into Integer (TypeError)                                                                       
        from /home/nickolay/.gem/ruby/1.8/gems/jsduck-2.0.pre4/lib/jsduck/categories.rb:25:in `validate'                                                                                                   
        from /home/nickolay/.gem/ruby/1.8/gems/jsduck-2.0.pre4/lib/jsduck/categories.rb:24:in `each'                                                                                                       
        from /home/nickolay/.gem/ruby/1.8/gems/jsduck-2.0.pre4/lib/jsduck/categories.rb:24:in `validate'                                                                                                   
        from /home/nickolay/.gem/ruby/1.8/gems/jsduck-2.0.pre4/lib/jsduck/app.rb:112:in `run'                                                                                                              
        from /home/nickolay/.gem/ruby/1.8/gems/jsduck-2.0.pre4/lib/jsduck/timer.rb:26:in `time'                                                                                                            
        from /home/nickolay/.gem/ruby/1.8/gems/jsduck-2.0.pre4/lib/jsduck/app.rb:110:in `run'                                                                                                              
        from /home/nickolay/.gem/ruby/1.8/gems/jsduck-2.0.pre4/bin/jsduck:217                                                                                                                              
        from /home/nickolay/.gem/ruby/1.8/bin/jsduck:19:in `load'                                                                                                                                          
        from /home/nickolay/.gem/ruby/1.8/bin/jsduck:19                                                                                                                                                    
nickolay@desktop:~/Playground/jsduck$ 

Please find the sample data on this url: http://www.bryntum.com/ftp/jsduck.tar.gz

how to special the src path?

My js dir:
--js
|-----app
|-----ext
|-----ux

I am using : jsduck-2.0.pre4.exe D:\Workspace\Code\Vote\web-app\js**

now I want to gen docs for app and ux folder but except ext.
how?

Show link to overridden method

ChildClass's method override parent, can child's method's doc auto show a link to parent's method?
Or auto add @Seealso to child's method which override parent's method.

Better "left-margin" detection for parsing Markdown

Markdown stipulates that text indented four spaces is preformatted and/or code. JSDuck can be too literal when a comment does not include an explicit left-margin. For example, this comment will not render as expected:

Ext.define('Cs.file.data.FileUploader', {
   config: {
    /**
       @cfg {String}

       The URL to upload the form to. Can contain query parameters. For
       form uploads, the same-origin restriction still applies.
    */
    url: ""
   }
});

With explicit asterisks it works fine, but my editor doesn't insert those automatically. I think JSDuck should determine the left-margin by the first "@" attribute found, the column in which the last asterisk appears in the opening comment, or by the column in which comment text first appears. If nothing else, some way of specifying the starting column explicitly (globally or file-by-file) would be nice.

I get the results above with the jsduck-2.0-pre4.exe binary for Win 64.

Much faster scrolling?

Could the scrolling be much faster (or even no scrolling) since you are actually using the config, properties, methods and events all the time and the slow scrolling is annoying you and giving you a headache :)

Events and methods with same name conflict

For example Ext.form.Combobox has both method select and event select. In the generated docs both are listed, but event documentation is the same as method documentation.

Node.js port.

Can't this be ported to javascript on node.js instead.

Why use another language to generate documentation for one language.

If you are using the same we can all contribute much more easier and don't have to install ruby.

Support for recognizing Ext.define in alternate namespaces

Bill Hubbard wrote in forum:

we wrap Ext in our own namespace, so it doesn't appear to be scraping class information from our calls to Sjs.define, which are essentially calling Ext.define - is there a way to tell JSDuck what to look for?

The wrapping requirement came from folks higher up in the food chain. For whatever reason (legal? marketing?), they don't want to see "Ext" when peeking under the hood. So that part is out of my control, and I agree with it being questionable, but it is what it is.

Documenting automatic Ext4 config getters/setters

The new config system automatically creates getter and setter methods for all config options. We'd like to auto-generate boilerplate methods for each config option but allow these docs to be overridden if needs be.

eg on Ext.Button the maxWidth config option would generate a corresponding setMaxWidth and getMaxWidth methods.

I'm thinking of a syntax like this:

/**

  • @cfg {String} label The label to associate with this field.
  • @Accessor
    */

Because it's just an implementation detail whether getters/setters are created by the config preprocessor or written manually, I think they shuld be listed just like normal methods.

Function name detection doesn't work with style: ,name: function() {

JsDuck currently doesn't work when using coding style like that:

/**
 * Function 1
 */
,foo: function() {
    this.doSomething();
}
/**
 * Function 2
 */
,bar: function() {
    this.doSomethingElse();
}

Currently the initial comma confuses the parser, resulting in foo and bar being registered as properties with name == "". It's probably easy enough to fix. And it would be nice to cater for the users of that style too.

Can't create an arbitrary namespace

Please download the test case from http://www.bryntum.com/ftp/js.tar.gz

The issue is as follows.

I have 2 classes in different files: /js/Gnt/model/Task.js and /js/Gnt/model/Task/SubTask.js
Both classes have appropriate names: Gnt.model.Task and Gnt.model.Task.SubTask

I'd like to put the Gnt.model.Task.SubTask in the Gnt.model.Task namespace. In ext-doc there used to be a @namespace tag for that purpose, however it doesn't work now.

Thanks, Nickolay

Allow @example tag to be indented more than 4 spaces

zombeerose wrote:

I've noticed that the syntax is not picky when indenting code as long as it is indented over 4 spaces. However, the @example tag must be exactly 4 spaces. Is it possible for this tag to support 4 or more spaces? (For those IDEs that don't indent to the correct spot )

Should be simple to fix.

@tags for conditionally including/excluding documentation

Use case 1:

Currently @deprecated can be followed by one version number.
When we're in Touch we want the docs to say 'Deprecated in Touch 2.0'
but in Ext JS context we should say Ext 4.0.

Use case 2:

We'd like to write separate examples for ExtJS and Touch inside platform code
which is shared by both frameworks.

Use case 3:

Somebody wanted to write documentation in multiple languages, say, English and German.
And then he'd like to extract either the German or English version.

Solution:

I'm thinking of implementing something like the C preprocessor directives:

/**
 * @if touch
 * @deprecated 2.0
 * @else
 * @deprecated 4.0
 * @endif
 */

Then we could switch one or the other version from command line:

$ jsduck --define touch=true

This would cover all three use cases and possibly a lot more.

Better warning for subproperty mismatch

In my documentation, I had a config function with some parameters, and I updated the name of the config option but forgot to change the name of one of the sub-properties. This is what it looked like:

/**
 * @cfg {Function} someFn
 * 
 * This is a config function!
 * 
 * @cfg {Object} someFn.firstParam The first parameter you should pass.
 * @cfg {Object} oldFn.secondParam The second parameter that I forgot to rename.
 */

When I ran jsduck, it spit back this super-ugly stack trace:

C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/merger.rb:410:in `block in combine_properties': undefined method `[]' for nil:NilClass (NoMethodError)
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/merger.rb:406:in `each'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/merger.rb:406:in `combine_properties'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/merger.rb:389:in `detect_subproperties'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/merger.rb:171:in `create_cfg'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/merger.rb:18:in `merge'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/source_file.rb:27:in `block in initialize'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/source_file.rb:26:in `map'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/source_file.rb:26:in `initialize'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/app.rb:115:in `new'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/app.rb:115:in `block in parallel_parse'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/parallel_wrap.rb:24:in `map'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/parallel_wrap.rb:24:in `map'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/app.rb:113:in `parallel_parse'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/app.rb:46:in `block in run'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/timer.rb:26:in `time'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/lib/jsduck/app.rb:46:in `run'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/jsduck-3.0.pre2/bin/jsduck:26:in `<top (required)>'
    from C:/Ruby192/bin/jsduck:19:in `load'
    from C:/Ruby192/bin/jsduck:19:in `<main>'

Which is understandable, because there's no config option named 'oldFn' any more, but I had no idea what was causing the problem (or the file that it was located in), and it took me a while to narrow it down to this naming mismatch. What would be really nice is a warning similar to the other warnings for things like "Unknown type". Maybe something like:

Warning: Ignoring subproperty: oldFn.secondParam (no parent found with name 'oldFn') in path/to/src.js line 42

"this" as parameter's default value

I'm documenting a function that takes a function as its first and an optional second parameter which specifies the scope of that function. Unfortunately, I cannot tell jsduck that the default for the second parameter is this:

/* @param {Object} [scope=this] Scope for the callback function.

produces the following output:

  • scope : Object (optional)
    this] The scope for the callback function.

I can of course do [scope="this"] but that obviously has different semantics.

By the same token, native support for @return this would be tremendously helpful for documenting APIs that implement the fluent interface.

When source for parent class not included "Object" is shown as its name

When running JSDuck on a file that contains just this:

/**
 * @class Foo
 * @extends Bar
 */

The generated docs will say:

Class Foo
Extends: Object

At least this will currently generate a warning that class Bar is missing, but it should still display the correct name, although it can't create a link to the docs of that class.

Running 'rake build' creates error

When I run: 'rake build' I get the following error:

~/git/jsduck$ rake build
(in /home/ligaard/git/jsduck)
ERROR: While executing gem ... (Gem::InvalidSpecificationException)
["template/extjs/ext-all.js", "template/extjs/resources/themes/images/default/tree/arrows.gif", "template/extjs/resources/themes/images/default/grid/loading.gif", "template/extjs/resources/themes/images/default/form/text-bg.gif", "template/extjs/resources/themes/images/default/form/checkbox.gif"] are not files

It seems wrong that jsduck depends on something not provided by the checkout. At least it would be nice with some more polite information on why this happens and what should be done to fix it.

rake tasks doesn't work out of the box

The good: 'rake spec' runs flawlessly. The other two rake tasks I have tried are 'rake build' and 'rake docs' both doesn't work out of the box. Bummer :-(

rake docs

  1. On first run it instructs me to create a sdk-vars.rb file. Unfortunately the instructions are not very helpful, so I guessed.
  2. After having created the sdk-vars.rb file I re-ran 'rake docs' and was now - among other warnings - instructed to create a template/extjs directory, which I then did.
  3. Now I got new warnings and a new instruction: compass compile template/resources/sass, which I then did.
  4. Then once again I tried 'rake docs' and got a lot of warnings, in what seemed a death spiral, and yes: It died again.

At this point I gave up an typed this issue.

rake build

Doing 'rake build' had complained about missing files each time I ran it. Only after creating the template/extjs symlink did it build (see issue #51).

Custom objects as properties

I really love the idea that you are reading from the source code since it removes duplication of lines.

However, it doesn't seem that it supports custom objects as properties.

Eg. I usually have:

content: new MyApp.Content,

or

tasks: new MyApp.Tasks({nr: 100}),

Is it an idea to be able to automagically document these data types and also what I pass to the constructor?

JsDuck fails on ExtJS 4.0.1

Hi,
I am trying to run jsduck but it fails with the following

jsduck -v --json -o test1 ext-4.0.1/src/AbstractComponent.js
Parsing ext-4.0.1/src/AbstractComponent.js ...
Aggregating ext-4.0.1/src/AbstractComponent.js ...
Warning: Class Ext.util.Observable not found in ext-4.0.1/src/AbstractComponent.js line 1
Warning: Class Ext.util.Animate not found in ext-4.0.1/src/AbstractComponent.js line 1
Warning: Class Ext.state.Stateful not found in ext-4.0.1/src/AbstractComponent.js line 1
/usr/lib/ruby/gems/1.8/gems/jsduck-0.6/lib/jsduck/source_file.rb:50:in to_html': undefined methodlines' for #String:0xb7dc7154 (NoMethodError)
from /usr/lib/ruby/gems/1.8/gems/jsduck-0.6/lib/jsduck/app.rb:196:in write_src' from /usr/lib/ruby/gems/1.8/gems/jsduck-0.6/lib/jsduck/app.rb:195:ineach'
from /usr/lib/ruby/gems/1.8/gems/jsduck-0.6/lib/jsduck/app.rb:195:in write_src' from /usr/lib/ruby/gems/1.8/gems/jsduck-0.6/lib/jsduck/app.rb:62:inrun'
from /usr/lib/ruby/gems/1.8/gems/jsduck-0.6/lib/jsduck/timer.rb:24:in time' from /usr/lib/ruby/gems/1.8/gems/jsduck-0.6/lib/jsduck/app.rb:62:inrun'
from /usr/lib/ruby/gems/1.8/gems/jsduck-0.6/bin/jsduck:109
from /usr/bin/jsduck:19:in `load'

from /usr/bin/jsduck:19

can you please help?

Swallowing unknown @tags

Currently all unknown @tags are just left as is. That's a good behavior to avoid losing any information in doc-comments. But sometimes it is desirable to hide all these unknown @tags. Probably another config option to switch between ignoring and not-ignoring.

It should be enough to ignore from @unknown-tag to the end of line.

Another feature related to this is reporting of all the unknown @tags - often they can be just misspellings.

"External" parent class is not shown

Hello,

I can't make the JSDuck to show the parent class of my class. The parent class is external, however, I still expect it to be shown in the top-right corner, just w/o link.

Would be great to have the ability to specify the link for each external class, so I could point the user to Ext.data.Model.

I'm using jsduck-2.0pre4 on Ubuntu 10

/**

@class Gnt.model.Task
@extends Ext.data.Model

This is a descrition

*/
Ext.define('Gnt.model.Task', {
    extend          : 'Ext.data.Model',

    requires        : [
        'Sch.util.Date'
    ]

});

Thanks, Nickolay

Implement @template tag

A @template tag for empty methods that can be implemented so we can display a 'template' badge similar to static / protected etc. Eg Ext.form.Checkbox#doChecked

Also add a descriptive section (like private classes have) to every template member, explaining the concept of a template.

Suppress warnings

Is there an option to prevent warnings from being sent to STDERR? They pollutes the output from the build script. In the same time I don't want to redirect STDERR to /dev/null as it may skips a real errors.

Also -v option would be great :)

Thanks for the great tool btw, using HTML for documentation was a pure insanity :)

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.