# SCM Repository

[inlinedocs] View of /pkg/inlinedocs/man/extract.docs.setClass.Rd
 [inlinedocs] / pkg / inlinedocs / man / extract.docs.setClass.Rd

# View of /pkg/inlinedocs/man/extract.docs.setClass.Rd

Fri Jan 15 09:42:36 2010 UTC (9 years, 7 months ago) by kmpont
File size: 1433 byte(s)
Completed experimental implementation for S3 classes using R.oo.

1) Search for comments preceding definition now uses parse on file
insteadof grep via new method extract.file.parse. This works for more
ways of defining values and does not require blank lines after
definitions.

2) When an S3 generic is defined using setMethodS3:
a) the generic is documented with a copy of the inline documentation for the
specific.
b) (Very experimental!) further definitions of the same generic inherit
documentation from the first version defined in the same source file.
The idea is to avoid repeating documentation when defining the generic
repeatedly for an inheritance hierarchy.
Thus if an argument is not documented, the documentation from the first
version of the generic will be used. At present this applies to _all_
documentation entries, but that may be reduced in the future.

3) Further minor tweaks:
a) fixes to work around package.skeleton issue: if a default argument
contains a "%" character, then it should be escaped in the skeleton
\usage, but is not, causing things to break nastily.
b) If documentation for an object contains an explicit title but no
description, then the title is copied into the description in order
to avoid warnings from the package checking process which requires
description to be present. The idea here is to simplify generating
documentation for small methods by reducing it to the bare minimum.

\name{extract.docs.setClass}
\alias{extract.docs.setClass}
\title{S4 class inline documentation}
\description{Using the same conventions as for functions, definitions of S4 classes
in the form \code{setClass("classname",\dots)} are also located and
\usage{
}
\arguments{
}
}
\details{Extraction of S4 class documentation is currently limited to expressions
within the source code which have first line starting with
\code{setClass("classname"}. These are located from the source file
(allowing also for white space around the \code{setClass} and \code{(}).
Note that \code{"classname"} must be a quoted character string;
expressions returning such a string are not matched.

For class definitions, the slots (elements of the
\code{representation} list) fill the role of function
arguments, so may be documented by \code{##<<} comments on
the same line or \code{### } comments at the beginning of the
following line.

The class definition skeleton includes an \code{Objects from the Class}
section, to which any \code{##details<<} documentation chunks are
written. It is given a vanilla content if there are no specific
\code{##details<<} documentation chunks.}
\value{
}
\references{
}
\author{Toby Dylan Hocking <toby.hocking@inria.fr>, Keith Ponting <k.ponting@aurix.com>}
\note{
}

\seealso{
}
\examples{}