We should also support @returns the same way as @return.
As template only checks whether the comment is present, empty comments resulted in overview title being added to HTML without any accompanying text. These situations are properly handled now by removing such comments while processing.
…#10. The problem was with __attribute__ being processed as part of property or method definition. This is properly detected now and is ignored, together with any combination of text enclosed within parenthesis following __attribute__ keyword. For example: "__attribute__()", "__attribute__(something)", "__attribute__((!@#!%^&*~`))" etc. are all ignored, as long as at least one open and close parenthesis should be following __attribute__ keyword
…ng protocol. Instead, the GBApplicationSettingsProvider class is used. Objective-C can solve "program to interface" rule quite easily through anonymous type and we can as easily mock classes as we can protocols, so having a protocol only complicated development...
…tings. Forgot to run unit tests after 93203e1 commit.
…opyWithZone: to make it more robus. The main reason for adding company identifier is to reuse it for documentation set bundle and publisher identifiers. The more robust unit test mentioned uses customly crafted expected string instead of simply getting it from settings object. This allows proper testing that all templates placeholders are actually being handled by the code!
This will be used for handling settings levels shortly - factory defaults, global parameters, command line arguments.
… placeholder strings and which placeholder strings are available.
These are required so that we can suppress certain options that are on by default - DDCli only sets booleans to YES, so implementation is kind of duplicative - we need to add additional prefixed option for each boolean option.
… unit tests.
Instead of displaying all entries (.h and .m files for example), first the file from comment is tried. If no comment, or missing source file information, the first header file from the object's sourceInfos list is returned. If no header file is found, the first file from the list is returned. Finally if no source information is found, nil is returned.
The problem was that extra spaces were added which resulted in output similar to "id < Protocol >" whereus we want to have "id<Protocol>" instead.
…undocumented methods is NO in case there is documentation available at one of the adopted protocols.
…oval of undocumented objects. Due to the fact that we may copy documentation from superclasses, we must remove undocumented members and objects only after processing members, otherwise we would delete overriden methods before getting the chance to copy the documentation.
The problem was that we required the same set of attributes for properties, however this produced errors for common scenarios like changing mutability in extensions like this: @interface Class @property (readonly,retain) id value; @end @interface Class() @property (readwrite,retain) id value; @end
…ds are registered. The problem was that we didn't count uncommented methods that were unregistered. But then we calculated the number of commented methods by subtracting the sum of uncommented methods from all methods before handling them. So either we would need to use existing methods count or count all undocumented methods. I chose the second approach.
At this point a single section is created and all methods registered to it.
At this point we simply remove the category without actually merging as we're only testing merging on/off switch.
…med on all types of top-level objects.
…ore specific testing in separate files. All unit tests specific to undocumented objects and members were moved to a separate file to keep test cases more understandable and up to the point.
…SectionData. This functionality is needed to allow removal of undocumented methods during processing.
…r as this class only handles variables for HTML.
This required some modifications to existing classes and some unit test updates.