Commits on May 11, 2011
  1. Released version 2.0.4, build 698.

    committed May 11, 2011
  2. 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.
    committed May 11, 2011
  3. Fixed escaping for documentation set when dealing with <> signs. Closes

    This covers issues like `Some text <UnknownEntity> and more`. Note that this simply deletes all occurrences of < and > markers. Although this prevents docsetutil from complaining when indexing, it can result in undesired removal of the markers in formulas or similar.
    Also note that current implementation would effectively make `<UnknownEntity>` invisible inside HTML. Although the string is emitted properly, HTML considers it unknown tag and doesn't render it! Although it could be possible overriding this by converting <> to `&ls;` and `&gt;`, this would prevent usage of any custom HTML formatting, like `<tt>something</tt>`.
    committed May 11, 2011
Commits on May 10, 2011
  1. Fixed methods being reported in several sections after merging catego…

    …ries into classes.
    Although model objects properly merged sections from categories, resulting in empty sections if there were no methods in there, HTML generator rendered existing methods in these sections as if they were actually registered. Although this might require further investigation to really fix the issue (i.e. why output generator doesn't render empty section, why it adds methods to it?), current solution simply removes all empty sections after merging.
    Also updated build number to 694.
    committed May 10, 2011
  2. Fixed handling method and properties declarations using different ret…

    …urn values. Closes #103.
    If method or property return value is different, the method is considered valid now, instead of asserting as before. In such case, the first occurrence is used (usually this would be the header file implementation).
    Also updated build number to 693.
    committed May 10, 2011
  3. Refined exit codes handling. Closes #102.

    This commit concentrates on two related issues:
    - It adds a new command line switch `--exit-threshold` which allows users specify the threshold value (numeric) which is used to filter out tool exit codes: if reported exit code is below the threshold value, tool simply returns 0.
    - Restructures exit codes values to have higher value representing more severe condition. This plays nicer with previous point. Currently warning has value 1, error 2, fatal 3 (although fatal is not used currently in the tool).
    Note that it's not possible to suppress crashes, regardless of whether the threshold is set above the value (250 currently)!
    Also updated build number to 692.
    committed May 10, 2011
Commits on May 9, 2011
  1. Restructured exit codes handling, attempting to tackle #102.

    Exit codes are now better structured to domains and error codes. Also added a debug log statement (available with `--verbose 6` switch) at the end of the run to log the exit code as "seen" by the application.
    committed May 9, 2011
  2. Removed Xcode 4.1 DP4 related macros from GRYes and GRNo implementati…

    …on. Closes #101.
    These were added to suppress compiler warnings originated when upgrading to Xcode 4.1 DP4. Reopening the project in Xcode brings back the warnings though (these persistent/disappearing compiler warning/errors in Xcode 4 are really annoying), so decided to just remove the macros all together for the moment being.
    committed May 9, 2011
Commits on May 6, 2011
  1. Fixed handling instance/static methods with same selector. Closes #90.

    Note that although this should work, proper solution would require properly handling cross references to these methods too. Currently instance method will be used whenever cross reference is given, regardless of +/- sign. On the other hand, this might not be very common (guessing!?) and would only affect cross references, so will leave this simple solution for now...
    committed May 6, 2011
Commits on May 3, 2011
  1. Implemented exit values different from 0 in case a warning, error or …

    …fatal message is logged. Closes #100.
    Exit values are:
    - 501 for warning
    - 502 for error (this would usually result in exception with exit code 1 anyway).
    - 503 for fatal (not used in appledoc at this point, but anyway)
    This also updates build number to 687.
    committed May 3, 2011
Commits on Apr 28, 2011
  1. Cleaned up few compiler warnings (no big deal).

    These seem to be new warnings from Xcode 4.1 as I didn't get them in Xcode 4.0.
    committed Apr 28, 2011
Commits on Apr 25, 2011
  1. Increased build number to 684.

    committed Apr 25, 2011
  2. Fixed ~!# placeholder remnants polluting generated HTML. Closes #77.

    Explanation: these placeholders are used to properly handle inline code or example blocks code which Markdown doesn't process. This is a remnant of converting to Discount as Markdown processor. Markdown treats single star as italics (double stars as bold), but appledoc treats it as bold, so we need to do some preprocessing and converting all single stars to double ones. However as appledoc doesn't control comment text processing anymore and Markdown doesn't process inline code or comment block text, there are two options: either detect comment blocks and inline code formatting and prevent handling text in there, or always convert to double stars and later on convert back to single ones leftovers. Although the first choice would lead to more consistent results, it would complicate code, especially for handling example blocks and duplicate substantial parts of Markdown functionality. So I decided to go with second choice, but needed some way of reliably converting double stars back to single ones (i.e. don't want to just convert any occurrence as users may actually have used double stars in some cases). To circumvent this, appledoc uses placeholders whenever it converts single stars. Later on it removes these placeholders to get clean HTML. But obviously cleanup code got confused and didn't convert all occurrences, especially when found in separate comment blocks. New code should handle these better.
    committed Apr 25, 2011
  3. Fixed remote member Markdown links detection. Partially solves #77.

    The regex used to detect Markdown links, didn't handle remote member links due to usage of square braces. The result was extra text in comment blocks and inline code (i.e instead of `[Class method]`, the result was `[Class method](Class.html#//api/...)`) The new regex handles both cases and with unit tests working we should work fine now (hope :)
    committed Apr 25, 2011
  4. Fixed variable arguments method declaration in generated HTML. Closes #…

    I completely forgot about this functionality. Added a unit test that covers this state, so it should stay fine in the future too.
    committed Apr 25, 2011
Commits on Apr 11, 2011
  1. Merge branch 'development'

    committed Apr 11, 2011
Commits on Mar 24, 2011
  1. Updated build number to 668.

    committed Mar 24, 2011
  2. Fixed _"Failed reading contents of custom document '(null)'..."_ mess…

    …age. Closes #91.
    The problem was in custom documents (i.e. --index-desc) parsing in cases when the document wasn't given. GBAppledocApplication requested parsing document from null path and parsing method didn't check for that.
    committed Mar 24, 2011
  3. Increased build number to 666 (perhaps a bit controversial in some pe…

    …ople eyes, but hopefully it would work properly anyway :)
    committed Mar 24, 2011
  4. Fixed remote member links descriptions for doc set. Closes #92.

    The problem was not dealing with parameter descriptions as I assumed, but with remote link Markdown descriptions. The standard regex for detecting Markdown links was not handling these cases: `[[class method]](description)`. This should properly work now.
    committed Mar 24, 2011
Commits on Mar 16, 2011
  1. Increased build number to 664.

    committed Mar 16, 2011
  2. Fixed remaining bug which resulted in duplicated output. Closes #83.

    The error was the same as before: although search range was given when looking for "simple" cross references, string's length was used when computing remaining search range instead of the given source range. This was a bit harder to spot as it only happened in certain circumstances: when using a combination of Markdown pre formatted cross references.
    Should work now...
    committed Mar 16, 2011
  3. Changed log verbosity level for parsing custom documents.

    This should make it compatible with static documents.
    committed Mar 16, 2011
Commits on Mar 14, 2011
  1. Fixed partial repeating of comment source strings while processing us…

    …er's Markdown links. Closes #83.
    The problem was in the processing code which didn't use search range but instead searched till the end of the string. This probably came via copy/paste from higher level method which actually handles the whole string... It only affected manual Markdown links written by the user. Also added additional unit test to guard against this for the future changes. Briefly checked other methods dealing with partial strings and they look valid, but it would be nice to keep this in mind in case something similar happens in the future.
    Note: This was one of those small issues code-wise that resulted in totally messed up output, giving impression some fundamental flaw was present. But, although a method was fundamentally wrong with it's presumptions, the error was very easy to pinpoint and fix. Now if only all the issues would work like that :)
    committed Mar 14, 2011
  2. Fixed conversion of single to double star within example blocks and s…

    …pans under certain circumstances. Closes #77.
    The problem was with appledoc treating single star as bold and single underscore as italics while Markdown treats single star or underscore as italics and double star or underscore as bold. This requires appledoc preprocessing comment text and converting any single star marker to double star. However as Markdown processor doesn't convert markers inside code blocks, this effectively changed the layout in there. To further complicate the issue, appledoc preprocessor doesn't know in advance whether certain part of text will be converted to code block or not. To compensate, appledoc now leaves original markers untouched and uses placeholder strings when converting single stars to double ones. These placeholders are caught and properly handled later on, in generated HTML where detecting code block or span is simple.
    committed Mar 14, 2011
Commits on Mar 3, 2011
  1. Increased build number to 659.

    committed Mar 3, 2011
  2. Implemented possibility to include companion guides to classes, categ…

    …ories and protocols. Closes #68.
    Any static document linked through related item directive (@see or @sa) inside the class/category or protocol comment is automatically added as a companion guide to the generated HTML table for the object.
    committed Mar 3, 2011
  3. Increased build number to 657.

    committed Mar 3, 2011
  4. Implemented possibility of injecting descriptions to main index file.…

    … Closes #74.
    Using `--index-desc` switch, you can pass the path to the file containing description that'll be injected in the auto generated index.html. The file can be formatted using the same rules as any other static document. The difference is it's not possible to link to it from other objects or documents (each generated object html already contains the link to main index and hierarchy). But it's possible to link any class or document from within the index description; the same logic is used for that as for any other source code comment or static document.
    Online documentation will follow briefly... For now give it a try and let me know if there's anything else missing or something not working as expected.
    committed Mar 3, 2011
  5. Fixed @name handling when followed by uncommented method. Closes #76.

    The problem was in the way comments were being processed. If any comment contained @name, it was always used for creating a new task section, even if followed by uncommented method. However delimited comments:
    	/// @name Something
    Were not correctly detected as @name comments. The reason was in the regex being used for matching @name: it expected the @name at the start of the comment string. By changing the regex to match in any line, this works correctly. The downside is that section names spanning multiple lines are now ignored (you can delimit @name and first word by new line though). On the other hand, I don't think anybody uses section names in such a way, so it'll probably work just fine.
    Proper solution would require using two regexes: one for matching @name before stripping delimiters and one for matching afterwards. Or alternatively strip delimiters immediately after recognizing a comment (at present this is all delayed until needed to make the tool as efficient as possible).
    committed Mar 3, 2011