Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Feb 25, 2012
Commits on Dec 24, 2011
  1. Cleaned up HeaderDoc parsing code and made it optional. References #95

    …and #163.
    As comment preprocessing method in `GBTokenizer` became quite large, I divided it into separate methods by taking out header doc preprocessing. Also made header doc preprocessing optional and disabled by default (except the bare minimum covered by #95). To enable it, use `--preprocess-headerdoc` command line switch. The reason for opting it out by default is amount of preprocessing that could break things for existing appledoc users. Probably just me being paranoid, but better safe than sorry :)
Commits on Dec 8, 2011
Commits on May 26, 2011
  1. Fixed Xcode integration warnings and errors full paths handling. Fixes

    To allow Xcode properly open the file after selecting the warning in build list, it requires full path to it in the output, so I had to add full path to GBSourceInfo and use that when generating Xcode compatible log.
    Note that I had appledoc crashed inside `[GBLog logFormatterForLogFormat]` when using standard log formats. The problem was with sending the given format instance `lowercaseString` however in case numerical value was used, the actual instance was `NSNumber`. To compensate, additional check was added to make sure the instance is indeed a `NSString`. Strange no one reported this as I didn't touch this code since last pushing to GitHub (or everyone was hardly waiting for Xcode compatibility and are now using that mode :).
    Also added `xcode` log format option to help output and increased build number to 701.
Commits on May 11, 2011
  1. Added basic support for headerdoc comments. Closes #95.

    Note that this only adds support for headerdoc style comments (`/*! */`) and `@result` for return value. The tool could be further improved by ignoring unsupported headerdoc tags (like `@abstract`, `@class`, `@method` and similar), but I don't have time for that right now. Will close the issue for now as headerdoc comments can be extracted, and if there will be a lot of demand for this feature in the future, either this issue can be reopened or a new one created.
    Also increased build number to 697.
Commits on Mar 2, 2011
Commits on Feb 27, 2011
  1. Implemented proper handling of @name sections in more complex circums…

    Method group sections are now properly detected even when followed by uncommented method. Previously we just assigned last found comment to the method, but now we check if the comment contains method group description and use it to create a new task section. This is more expected.
    Note that group matching regex was changed also to match only when found at the start of the comment. This is important as previously and word ending with `name` would be matched as group section...
Commits on Jan 29, 2011
  1. Fixed undocumented methods and properties parsing. Closes #57.

    The problem was in cases like this:
    	/** comment */
    	@property (attributes) id commentedProperty;
    	- (void)uncommentedMethod;
    After working on workaround for #43 (commit 4262bb8) forgot to reset comments when parsing methods and properties. Although above case worked properly in case of two methods (in fact there was a unit test specific for that situation and it passed), it didn't work if uncommented method (or property) followed commented property. This is correctly handled now, so it should work for both cases (added another unit test to cover above situation).
    Thanks to "BloodDragon" for pointing this one out.
Commits on Jan 24, 2011
  1. Fixed HTML and XML handling within example blocks. Closes #54.

    The problem was two fold: template engine is specifically instructed to prevent any HTML escaping (otherwise using custom HTML tags within comment code wouldn't be possible), but this renders example blocks containing XML or HTML useless. To overcome this, example blocks are manually escaped by appledoc. Note that this required updating example blocks unit tests - changing to real settings provider as mock didn't do escaping...
    Second: GBTokenizer marked HTML/XML opening comment marker `<!--` as a delimiter and removed it from the string, leaving only the remaining text. This interfered with example blocks processing later on. This was actually a bug as delimiter should only be considered a line containing ONLY delimiter chars (at present the regex used was matching only from start of line)!
    Also added few more unit tests for validating example blocks prefixed with spaces are detected.
    Increased build number to 525.
Commits on Jan 6, 2011
  1. Fixed comments parsing for non-trivial sources. Closes #43.

    Considering this example (provided by "PrimaryFeather", appledoc would fail assigning the comment to the class:
    	/** Class description */
    	#ifdef __IPHONE_4_0
    	@interface SPBitmapFont : NSObject <NSXMLParserDelegate>
    	@interface SPBitmapFont : NSObject
    With this update, parses is able to attach the comment although with a twist by always assuming the first declaration as the valid one and ignoring all others. In other words: when using such solutions, make sure the first @interface (or @protocol) is the one you'd like to see in the generated documentation. For above example this means that documented class will list NSXMLParserDelegate as adopted protocol.
    Note that to properly handle this the solution was to persist any encountered comments during parsing and only update them when new comments are detected. However this lead to situations that any found comment would be used for all subsequent objects in the same file. Therefore I had to add manual resetting of comments after assigning them to an object.
    *Important:* Although all unit tests pass and generated documentation looks ok, this might require additional tweaking. Let's see if some more bug reports come...
Commits on Nov 14, 2010
  1. Copied all the changes from the old generating branch.

    Something broke while copying the project over from the old computer, so the simplest way to fix this was to pull from GitHub and copy all the files from the local backup...
Commits on Sep 26, 2010
  1. Fixed comment source info handling when two consequtive comments are …

    …found (i.e. previous and last comment).
Commits on Sep 24, 2010
  1. Fixed comment delimiters detection regex and cleaned up some code.

    Comment delimiter regex included a hyphen at the middle inside char class. This was interpreted as a range of chars. Hyphen is now properly written at the end of character class declaration... Couldn't write a unit test to catch this!
  2. Implemented debugDescription method for returning detailed object des…

    …cription with full debug information, updated log messages to include more information about source and fixed appledoc target to make it compile.
    Note that at this point debug information simply returns description.
  3. Implemented comment source file information parsing for all objects t…

    …hat can have comments attached.
  4. Added filename information to GBTokenizer to make it accessible for a…

    …ll higher level parsing classes.
  5. Refactored comment handling with GBModelBase by removing registerComm…

    …entString: and instead requiring clients to pass in the "whole" GBComment object instead.
  6. Refactored file data creation by moving the method to GBTokenizer.

    This makes it accessible for all higher level parsing classes.
Commits on Sep 22, 2010
  1. Implemented last stand-alone comment parsing.

    These need to be handled as they ussually contain method grouping information.
Commits on Sep 15, 2010
  1. Fixed parsing multiline comments with * prefix.

    The problem was that original regex used for detecting multiline comments didn't detect prefixed ones. After using proper regex, this works like a charm.
Commits on Aug 31, 2010
Commits on Aug 27, 2010
Commits on Aug 10, 2010
  1. Fixed comments reporting when empty comment is detected.

    The problem was that in case the pre-parsed comment value was empty string, the empty string was returned when nil was expected instead. This would be evident if valid comment with no data (//////////////////////////////// for example) was found just prior than an entity.
Commits on Aug 6, 2010
Commits on Jul 31, 2010
Commits on Jul 27, 2010
  1. Fixed object names to avoid clashing with NSObject className.

    Although only className caused problems (well this only showed in log, it didn't seem to affect functionality, but you never know with these things), I renamed all of the names to use the same format.
  2. Implemented class declaration parsing and renamed GBTokenizer consume…

    … with block quit parameter to stop.
Commits on Jul 26, 2010
Something went wrong with that request. Please try again.