Output from anonymous category (private interface) in .m file #243

Open
drjackyl opened this Issue Aug 23, 2012 · 11 comments

Projects

None yet

6 participants

@drjackyl

I searched a while but couldn't find any issue describing this behaviour.

First of all: I am working with the current master of appledoc (1690b35, 14.8.2012 18:00) and Xcode 4.3.3

I'd like to document private methods and properties defined in an anonymous category (private interface) within the implementation file. So what I have here is:

/**
 * Private interface
 */
@interface TMDocsTest()

/// @name Documented private properties

/// Some private property!
@property (nonatomic, strong) BOOL someBool;


/// @name Documented private methods

/**
 * Starts the transformation
 */
- (void)transform;

@end

What I get is this:

Tasks

Public properties

      someString property

Initializers

    – initWithString:

Public methods

    – transformString

Other Methods

    – transform

Extension Methods

      someBool property

I expected "Other Methods" to actually be "Documented private methods" and "Extension methods" to be "Documented private properties"

When I put the appledoc-comment for the methods in the implementation-scope, I actually get "Documented private methods" as section and the method - transform

That doesn't work for the property.

I would like to be able to use sections in anymous categories / private interface.

Great tool, works really well,
keep up the good work,
regards,
Felix

@tomaz
Owner

Does --keep-merged-sections change something - as described here?

@drjackyl

Hm, I actually didn't read about --keep-merged-sections, my fault, but it didn't help either 8o)

It works for properties but not for methods. Example:

/**
 * Private interface
 */
@interface TMDocsTest()

/// @name Documented private properties

/// Some private property!
@property (nonatomic, strong) BOOL someBool;


/// @name Documented private methods

/**
 * Starts the transformation
 */
- (void)transform;

@end

leads to

Tasks

Public properties

      someString property

Initializers

    – initWithString:

Public methods

    – transformString

Other Methods

    – transform

Documented private properties

      someBool property
@tomaz
Owner

Marking it as bug, will make sure it works when implementing this in 3.0.

I'm focusing on 3.0 whenever I get some time, so am only dealing with pull requests and minor issues for 2.0...

@drjackyl

Thank you, I appreciate that.

@georgejecook

I desperately need this functionality.. is it long till 3.0?

If so, could you point me at what I need to hack to get it working?

@tomaz
Owner

3.0 is still far away :) Not behind my cimputer right now, but merging functionality is implemented in processing classes (GBProcessor). If you get stuck let me know.

@bhirt

I'm not sure if this is still on the radar, but I would love to see this too.

@tomaz
Owner

It's still on radar :) As said, I'll make sure it works on 3.0, so you'll have to bear with it for a while...

@thomasvalera

This fix would be great!
Did anybody fix it himself?

@danvales82

It's possible to work around the issue leaving undocumented the private properties/methods and set:
--keep-undocumented-objects = NO
--keep-undocumented-members = NO
I solved in this way.

Daniele

@georgejecook

Nice find. thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment