Files
mod-ale/docs/DOC_GEN.md
2014-12-21 21:08:19 -05:00

4.0 KiB

Documentation generation

Setting up

  • install python(2)
    • when installing, tick to install the path variable
    • may need restart after for installation to properly take effect
  • install a package manager like pip
    • if installed pip and doesnt work, restart or try easy_install command
  • install the dependencies with manager

Generating

  • Run in cmd python -m ElunaDoc when at \LuaEngine\docs\

Documenting

You can document functions in the Eluna source code. For examples, simply open a method header file with docs.

Template

Here are basic templates for a function. When defining a parameter or a return value, the type and value name are mandatory, unless the parameter type is ... (for variable arguments; don't include a name in this case).

/**
 * Short description (about 80 characters long).
 *
 * @param Type paramName
 * @return Type returnName
 */
/**
 * Short description (about 80 characters long).
 *
 * @param Type paramName = defaultValue : parameter description
 * @return Type returnName : return value description
 */

This is a template for a function that takes in different parameters. When defining a parameter or a return value, the type and value name are mandatory.

/**
 * Short description (about 80 characters long).
 *
 * @proto returnValue = (object)
 * @proto returnValue = (x, y, z)
 * @param [WorldObject] object = defaultValue : parameter description
 * @param float x = defaultValue : parameter description
 * @param float y = defaultValue : parameter description
 * @param float z = defaultValue : parameter description
 * @return Type returnName : return value description
 */

Standard

A documentation comment block will always start with /** and end with */. All lines start with * character followed by one space before any content.

The first paragrph is used as a short description of the function/class, so it should be kept to about 80 characters. The other paragraphs can be as long as desired.

All paragraphs in the description (including the first) should start with a capital letter and end with a period. Paragraphs must be separated by an empty line, e.g.:

/**
 * This is a short description (about 80 characters).
 *
 * Here's another paragraph with more info. NOTE THE EMPTY LINE BETWEEN THE PARAGRAPHS.
 * This does need to be short, and this line is still part of the same paragraph because
 * there is no empty line.
 */

The parameter and return value descriptions should start with a lowercase letter and not end with a period. If more than one sentence is needed, start the first without a capital letter and end the last without a period.

Any class, enum or function can be referenced (made a link to) with square brackets. [Player] will reference a player. [WeatherType] will reference an enum. [Player:GetName] will reference a function.

Use correct indentation with documentation comments.

/**
 * Correct indentation.
 */
/**
* Invalid indentation.
*/

Markdown

You can use markdown in your descriptions. For syntax see http://daringfireball.net/projects/markdown/syntax and http://pythonhosted.org//Markdown/#differences

/**
 * Description.
 *
 * - list item
 * - list item
 * - list item
 *
 *     // Codeblock
 *     // Code goes here.
 *     // Note the 4-space indent.
 *
 * `code line`
 *
 * *italic*
 * **bold**
 */

Produces:

Description.

  • list item

  • list item

  • list item

    // Codeblock // Code goes here. // Note the 4-space indent.

code line

italic bold

Types

Here are some examples of possible types and most commonly used ones:

string
uint32
uint16
uint8
int32
int16
int8
double
float
...
[EnumName]
[Player]
[Creature]
[GameObject]
[Item]
[Unit]
[WorldObject]
[Object]