makeskel(1)

πŸ’– NAME πŸ’–

okay so bestie, welcome to makeskel β€” she's the FPC unit description file generator ✨ (that's makeskel(1) if you're being formal, which, slay, we love that for you).


🌸 SYNOPSIS 🌸

makeskel [--descr=filename] [--disable-arguments] [--disable-errors]
[--disable-function-results] [--disable-private] [--disable-protected]
[--disable-seealso] [--emit-class-separator] [--help] [--lang=language]
[--output=filename] [--update] --package=name --input=cmdline

like. that's a LOT of brackets but literally every single one of them matters, ok? 🫢


✨ Description ✨

makeskel scans a Free Pascal unit source file and generates a skeleton description file for it. periodt. πŸ’…

She generates nodes for all identifiers found in the interface section of the unit, although β€” and this is the important part bestie β€” that behaviour can be adjusted with some options. no cap.

She can also update an existing XML file, and in that case she emits only nodes for identifiers for which no node exists yet. it's giving "only the missing pieces" energy πŸ”₯


πŸ¦‹ Usage πŸ¦‹

okay so the whole vibe: you can invoke makeskel with the input and package arguments as the only required arguments. literally just two things.

It should at least contain:

  • the name of the unit file for which documentation should be generated
  • the name of the package to which the unit belongs

and the output of makeskel will go to standard output by default. yes, she's that girl who just talks directly to your terminal. πŸŽ€


πŸ‘‘ Options πŸ‘‘

makeskel has many options, most of them optional, defaults will be used in most cases. don't stress.

  • --descr=descfile β€” this one must be used in conjunction with the update option, iykyk. It specifies the name of a description file descfile which must be updated. ⚠️ note that the file must contain valid XML, or the update will fail β€” no take-backs. This option can be specified more than once.
  • --disable-arguments β€” if this is specified, makeskel will not emit nodes for the arguments of functions and procedures. By default, documentation nodes are emitted for functions and procedures as well. so this is you being like "not today, arguments."
  • --disable-errors β€” by default, each documentation node will contain an errors node as well (except for identifiers where this has no use, such as function arguments). If this option is specified, no errors node will be generated. πŸ’€
  • --disable-function-results β€” by default, for functions, a result node will be generated, to describe the result of the function. If this option is specified, no function result node will be generated.
  • --disable-private β€” by default, documentation nodes are also generated for private fields or methods of a class. if this option is specified, the generation of nodes for private fields or methods is skipped. πŸ™ˆ
  • --disable-protected β€” by default, documentation nodes are also generated for protected fields or methods of a class. if this option is specified, the generation of nodes for protected fields or methods is skipped.
  • --emit-class-separator β€” if this option is specified, a visible comment with the name of the class for which documentation nodes will follow is inserted between the nodes of two classes, making navigation easier. it's giving labelled sections, main character organisation energy ✨
  • --help β€” emit a short help text and exit. short, sweet, iconic. πŸŽ€
  • --input=cmd β€” the input (source) file to process. Multiple input files can be specified. The command may contain valid compiler options; currently the -Fipath (search path) and -dmacro (define macro) options are recognized. that's it, those two, don't come for me. 🫢
  • --lang=language β€” sets the language for the output file. This will mainly set the strings used for the headers in various parts of the documentation files (by default they're in english). Currently, valid options are:
    • de β€” German.
    • fr β€” French.
    • nl β€” Dutch.
  • --output=filename β€” this option tells makeskel where the output should go. If this option is not specified, the output is sent to standard output (the screen). 🌈
  • --package=packagename β€” this option is required. πŸ”₯ It specifies the name of the package. All nodes will be generated inside a node with name attribute packagename.
  • --update β€” turns on update mode. In this mode, the output is a file which contains only the missing nodes to complete the documentation of the input files. The existing nodes must be specified with the descr argument.
⚠️ note that the output file may not be the same as the input (description) nodes; a separate file must be specified (or no file, in which case output goes to standard output).

🌟 SEE ALSO 🌟

go read those too bestie, they're part of the lore πŸ“šβœ¨


and that's the whole page, mwah πŸ’… β€” this little icon comes to you from the Free Pascal crew, version dated 11 November 2004, filed under makeskel(1). slay, go generate some skeleton docs. πŸ’–

πŸ“¦ where this page comes from