The problem was in appledoc expecting to have either both or neither of variable name and type keywords for a method argument. So this would pass `-(void)method:`, but this not `-(void)method:var`. The fix is simple: just assume the argument is `id`. So later example would transform internally to `-(void)method:(id)var`. Which is probably what Objective C compiler does too. Have no idea why I didn't think of this before, it's much less restricting (although probably not the recommended way of doing things in ObjC, but that's whole other topic I guess :)
…resses #117. This is on by default, but can be controlled through `--merge-category-comment` cmd line switch.
…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 :)
The problem was in Discount parsing URL with parenthesis `[text](path/with(parenthesis).html)` as `<a href="path/with(parenthesis">text</a>.html)`. Not sure if this is Markdown rule of how paths with parenthesis are handled, but the simplest solution was to convert category paths to not use parenthesis. **IMPORTANT:** From here on, category paths are constructed with a plus sign: `class+category`. Previously they were using format `class(category)`. Although this should be simply upgraded by running appledoc, it may break external links. Something to keep in mind...
The problem with star delimited unordered lists was in appledoc comment preprocessor which consumed single star and replaced them with double star markers so that text would be emitted in bold. That's actually a feature of appledoc which allows single stars be used for bold markers, but may break compatibility with Markdown as the result. As there's no reliable way of determining whether the user wants to have star delimited, I decided to go the route I had in my mind for some time now: introduce another command line switch that would prevent handling single stars. It's on/off solution, so not the best one, but everyone can choose at least... Also updated [online documentation](http://gentlebytes.com/appledoc-docs-examples-basic/index.html#compatibility) with example of using the new switch. **Important:** As of this version on, single star handling is **off** by default! This may break backwards compatibility with some folks, but I feel it's better to keep as Markdown compatible for new people as possible...
…ass method. Closes #90. This was working when instance method was registered first and class method with the same name was merged on it later on. But it didn't handle the other ordering. Hopefully this will allow handling all cases. Note that there might still be cases when merging properties and class methods - keep in mind if the issue get's re-opened. Also updated build number to 703.
…partially easing #107. Note: unfortunately it wasn't possible to continue indexing remaining files after encountering an error - docsetutil takes path to docset bundle, not individual files. So all symbols in the offending file AND all symbols in subsequent files will not be indexed. Also note that appledoc will log a warning and hence exit with code 1 in case it gets these errors! You'll probably want to use `--exit-threshold 2` or more if you're running from Xcode build script. For the moment, the only "workaround" is to stay clear of using these symbols in your own documentation. If you're using third party libraries or frameworks containing these symbols and only running them through appledoc to get similar looking docs encountering issues, you can only pass it through `--create-html` phase. If you want to have it integrated in Xcode, then go ahead and experiment to see how much of it is usable...
…#105. 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.
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.
…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.
…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.
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.
…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.
…ople eyes, but hopefully it would work properly anyway :)
This took quite a bit longer than estimated, but was worth it as now full Markdown syntax is supported (with extensions). Instead of doing internal parsing of source code, I embedded [Discount](http://www.pell.portland.or.us/~orc/Code/discount/) for this. Check the documentation to see all options it supports! Documentation is now 100% Markdown compatible, although several appledoc features are preserved and change default Markdown syntax: - Single star is converted to strong tag instead of em as in Markdown. You can also use Markdown default double star or double underscore for the same effect! - Single star and underscore markers are still converted to strong/em combination. Markdown would otherwise convert these to strong only. - Cross references are handled the same way as before. - You can now use cross references to documented objects with arbitrary descriptions (#41) using Markdown inline links like this: `[description](Class)` or `[description]([Class method:] "title"). If the address is recognized as documented object, this will be converted to proper link using description as the text! This works for classes, categories, protocols, methods and static documents! - You can also use the same for Markdown ref links, so this: `[description]` followed by: `: Class` or `: [Class method:] "title"` is properly converted to link to object, method or static document. Generally the documentation should be backwards compatible, so most users won't notice a difference, but there are a couple of points that are handled differently now with Discount, so some may experience different layout in the generated HTML files. You should now follow [Markdown syntax](http://daringfireball.net/projects/markdown/syntax). Perhaps most noticeable: example blocks following list item are now treated as continuation of list item, whereas before they were converted to example blocks. Hopefully these changes are for the best and definitely more in-spec with Markdown... If you experience some strange behavior, open a new issue or comment on this one... *IMPORTANT:* Don't forget to update template files! *NOTE:* Actually this commit only updates version, the actual solution was implemented on a temporary branch, merged to development at b7b92f8. The actual implementation starts at 1ad2f9d and ends with 226b767. GitHub still doesn't support linking commits to issues beyond closing... Not too elegant, but this was far too large to be handled by a single commit!