Revision: 1333 http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1333&view=re... Author: colombanw Date: 2010-05-04 20:48:19 +0000 (Tue, 04 May 2010)
Log Message: ----------- GeanyGenDoc: Add and install documentation
Add a manual and install it (and other missing documentation files).
Modified Paths: -------------- trunk/geanygendoc/Makefile.am trunk/geanygendoc/README.in trunk/geanygendoc/configure.ac
Added Paths: ----------- trunk/geanygendoc/docs/ trunk/geanygendoc/docs/Makefile.am trunk/geanygendoc/docs/help/ trunk/geanygendoc/docs/help/Makefile.am trunk/geanygendoc/docs/help/html4css1.css trunk/geanygendoc/docs/help/manual.css trunk/geanygendoc/docs/help/manual.rst
Modified: trunk/geanygendoc/Makefile.am =================================================================== --- trunk/geanygendoc/Makefile.am 2010-05-03 22:53:23 UTC (rev 1332) +++ trunk/geanygendoc/Makefile.am 2010-05-04 20:48:19 UTC (rev 1333) @@ -1,5 +1,5 @@
-SUBDIRS = src data po +SUBDIRS = src data po docs
ACLOCAL_AMFLAGS = -I build/m4
@@ -7,6 +7,10 @@ README \ po/LINGUAS
+doc_DATA = AUTHORS \ + COPYING \ + README + sign: if test -f $(PACKAGE)-$(VERSION).tar.gz; then \ gpg --detach-sign --digest-algo SHA512 $(PACKAGE)-$(VERSION).tar.gz; fi
Modified: trunk/geanygendoc/README.in =================================================================== --- trunk/geanygendoc/README.in 2010-05-03 22:53:23 UTC (rev 1332) +++ trunk/geanygendoc/README.in 2010-05-04 20:48:19 UTC (rev 1333) @@ -17,7 +17,11 @@ - A working make implementation (GNU make is recommended, http://www.gnu.org/software/make/)
+You may also want the following packages that enables extra features: + - Docutils (http://docutils.sourceforge.net/) -- or another implementation of + rst2html -- is needed to (re)generate the HTML manual.
+ Installation ============
Modified: trunk/geanygendoc/configure.ac =================================================================== --- trunk/geanygendoc/configure.ac 2010-05-03 22:53:23 UTC (rev 1332) +++ trunk/geanygendoc/configure.ac 2010-05-04 20:48:19 UTC (rev 1333) @@ -18,6 +18,10 @@ LT_INIT([disable-static]) AC_PROG_INSTALL
+AC_PATH_PROG([RST2HTML], [rst2html], [no]) +AC_SUBST([RST2HTML]) +AM_CONDITIONAL([BUILD_RST], [test "x$RST2HTML" != "xno"]) + # checking for Geany PKG_CHECK_MODULES(GEANY, [geany >= 0.18.1]) PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.12]) @@ -57,6 +61,8 @@ # same for the data, since we use geany->app->datadir plugindatadir="`$PKG_CONFIG --variable=datadir geany`/geany/plugins/${PACKAGE_TARNAME}" AC_SUBST([plugindatadir]) +# docdir +docdir="`$PKG_CONFIG --variable=prefix geany`/share/doc/geany-plugins/${PACKAGE_TARNAME}/"
AC_CONFIG_FILES([ @@ -66,6 +72,8 @@ data/Makefile data/filetypes/Makefile po/Makefile.in + docs/Makefile + docs/help/Makefile ]) AC_OUTPUT
Added: trunk/geanygendoc/docs/Makefile.am =================================================================== --- trunk/geanygendoc/docs/Makefile.am (rev 0) +++ trunk/geanygendoc/docs/Makefile.am 2010-05-04 20:48:19 UTC (rev 1333) @@ -0,0 +1 @@ +SUBDIRS = help
Added: trunk/geanygendoc/docs/help/Makefile.am =================================================================== --- trunk/geanygendoc/docs/help/Makefile.am (rev 0) +++ trunk/geanygendoc/docs/help/Makefile.am 2010-05-04 20:48:19 UTC (rev 1333) @@ -0,0 +1,14 @@ +EXTRA_DIST = manual.rst \ + manual.css \ + html4css1.css + +doc_DATA = + +if BUILD_RST +doc_DATA += manual.html + +EXTRA_DIST += manual.html + +manual.html: manual.rst manual.css + $(AM_V_GEN) $(RST2HTML) -d --strict --stylesheet-path manual.css $< $@ +endif BUILD_RST
Added: trunk/geanygendoc/docs/help/html4css1.css =================================================================== --- trunk/geanygendoc/docs/help/html4css1.css (rev 0) +++ trunk/geanygendoc/docs/help/html4css1.css 2010-05-04 20:48:19 UTC (rev 1333) @@ -0,0 +1,293 @@ +/* +:Author: David Goodger (goodger@python.org) +:Id: $Id: html4css1.css 5951 2009-05-18 18:03:10Z milde $ +:Copyright: This stylesheet has been placed in the public domain. + +Default cascading style sheet for the HTML output of Docutils. + +See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to +customize this style sheet. +*/ + +/* used to remove borders from tables and images */ +.borderless, table.borderless td, table.borderless th { + border: 0 } + +table.borderless td, table.borderless th { + /* Override padding for "table.docutils td" with "! important". + The right padding separates the table cells. */ + padding: 0 0.5em 0 0 ! important } + +.first { + /* Override more specific margin styles with "! important". */ + margin-top: 0 ! important } + +.last, .with-subtitle { + margin-bottom: 0 ! important } + +.hidden { + display: none } + +a.toc-backref { + text-decoration: none ; + color: black } + +blockquote.epigraph { + margin: 2em 5em ; } + +dl.docutils dd { + margin-bottom: 0.5em } + +/* Uncomment (and remove this text!) to get bold-faced definition list terms +dl.docutils dt { + font-weight: bold } +*/ + +div.abstract { + margin: 2em 5em } + +div.abstract p.topic-title { + font-weight: bold ; + text-align: center } + +div.admonition, div.attention, div.caution, div.danger, div.error, +div.hint, div.important, div.note, div.tip, div.warning { + margin: 2em ; + border: medium outset ; + padding: 1em } + +div.admonition p.admonition-title, div.hint p.admonition-title, +div.important p.admonition-title, div.note p.admonition-title, +div.tip p.admonition-title { + font-weight: bold ; + font-family: sans-serif } + +div.attention p.admonition-title, div.caution p.admonition-title, +div.danger p.admonition-title, div.error p.admonition-title, +div.warning p.admonition-title { + color: red ; + font-weight: bold ; + font-family: sans-serif } + +/* Uncomment (and remove this text!) to get reduced vertical space in + compound paragraphs. +div.compound .compound-first, div.compound .compound-middle { + margin-bottom: 0.5em } + +div.compound .compound-last, div.compound .compound-middle { + margin-top: 0.5em } +*/ + +div.dedication { + margin: 2em 5em ; + text-align: center ; + font-style: italic } + +div.dedication p.topic-title { + font-weight: bold ; + font-style: normal } + +div.figure { + margin-left: 2em ; + margin-right: 2em } + +div.footer, div.header { + clear: both; + font-size: smaller } + +div.line-block { + display: block ; + margin-top: 1em ; + margin-bottom: 1em } + +div.line-block div.line-block { + margin-top: 0 ; + margin-bottom: 0 ; + margin-left: 1.5em } + +div.sidebar { + margin: 0 0 0.5em 1em ; + border: medium outset ; + padding: 1em ; + background-color: #ffffee ; + width: 40% ; + float: right ; + clear: right } + +div.sidebar p.rubric { + font-family: sans-serif ; + font-size: medium } + +div.system-messages { + margin: 5em } + +div.system-messages h1 { + color: red } + +div.system-message { + border: medium outset ; + padding: 1em } + +div.system-message p.system-message-title { + color: red ; + font-weight: bold } + +div.topic { + margin: 2em } + +h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, +h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { + margin-top: 0.4em } + +h1.title { + text-align: center } + +h2.subtitle { + text-align: center } + +hr.docutils { + width: 75% } + +img.align-left, .figure.align-left{ + clear: left ; + float: left ; + margin-right: 1em } + +img.align-right, .figure.align-right { + clear: right ; + float: right ; + margin-left: 1em } + +.align-left { + text-align: left } + +.align-center { + clear: both ; + text-align: center } + +.align-right { + text-align: right } + +/* reset inner alignment in figures */ +div.align-right { + text-align: left } + +/* div.align-center * { */ +/* text-align: left } */ + +ol.simple, ul.simple { + margin-bottom: 1em } + +ol.arabic { + list-style: decimal } + +ol.loweralpha { + list-style: lower-alpha } + +ol.upperalpha { + list-style: upper-alpha } + +ol.lowerroman { + list-style: lower-roman } + +ol.upperroman { + list-style: upper-roman } + +p.attribution { + text-align: right ; + margin-left: 50% } + +p.caption { + font-style: italic } + +p.credits { + font-style: italic ; + font-size: smaller } + +p.label { + white-space: nowrap } + +p.rubric { + font-weight: bold ; + font-size: larger ; + color: maroon ; + text-align: center } + +p.sidebar-title { + font-family: sans-serif ; + font-weight: bold ; + font-size: larger } + +p.sidebar-subtitle { + font-family: sans-serif ; + font-weight: bold } + +p.topic-title { + font-weight: bold } + +pre.address { + margin-bottom: 0 ; + margin-top: 0 ; + font: inherit } + +pre.literal-block, pre.doctest-block { + margin-left: 2em ; + margin-right: 2em } + +span.classifier { + font-family: sans-serif ; + font-style: oblique } + +span.classifier-delimiter { + font-family: sans-serif ; + font-weight: bold } + +span.interpreted { + font-family: sans-serif } + +span.option { + white-space: nowrap } + +span.pre { + white-space: pre } + +span.problematic { + color: red } + +span.section-subtitle { + /* font-size relative to parent (h1..h6 element) */ + font-size: 80% } + +table.citation { + border-left: solid 1px gray; + margin-left: 1px } + +table.docinfo { + margin: 2em 4em } + +table.docutils { + margin-top: 0.5em ; + margin-bottom: 0.5em } + +table.footnote { + border-left: solid 1px black; + margin-left: 1px } + +table.docutils td, table.docutils th, +table.docinfo td, table.docinfo th { + padding-left: 0.5em ; + padding-right: 0.5em ; + vertical-align: top } + +table.docutils th.field-name, table.docinfo th.docinfo-name { + font-weight: bold ; + text-align: left ; + white-space: nowrap ; + padding-left: 0 } + +h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, +h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { + font-size: 100% } + +ul.auto-toc { + list-style-type: none }
Added: trunk/geanygendoc/docs/help/manual.css =================================================================== --- trunk/geanygendoc/docs/help/manual.css (rev 0) +++ trunk/geanygendoc/docs/help/manual.css 2010-05-04 20:48:19 UTC (rev 1333) @@ -0,0 +1,68 @@ +/* +:Author: Colomban Wendling +:Contact: ban@herbesfolles.org +:Copyright: This stylesheet has been placed in the public domain. + +Stylesheet for use with Docutils. +*/ + +@import url(html4css1.css); + +html { + background-color: #eeeeec; + color: #2e3436; + font-family: bitstream vera sans, sans-serif; + margin: 0 1em; +} + + +h1, h2, h3, h4, h5, h6, p.topic-title { + font-family: georgia, times new roman, times, serif; +} + +h2.subtitle { + font-style: italic; + font-weight: normal; +} + +p, dd { + text-align: justify; +} + +.literal-block, +.literal { + background: #fff; +} +.literal-block { + border: 1px solid #babdb6; + padding: 1px 2px; +} +h1 .literal, h2 .literal, h3 .literal, h4 .literal, h5 .literal, h6 .literal +p.topic-title .literal { + background: inherit; + text-align: left; +} + + +.footnote-reference { + vertical-align: super; + font-size: 75%; +} + + +a { text-decoration: none; } +a:hover { text-decoration: underline } +a:link { color: #204a87; } +a:visited { color: #5c3566; } + +h1 a, h1 a:hover, h1 a:link, h1 a:visited, +h2 a, h2 a:hover, h2 a:link, h2 a:visited, +h3 a, h3 a:hover, h3 a:link, h3 a:visited, +h4 a, h4 a:hover, h4 a:link, h4 a:visited, +h5 a, h5 a:hover, h5 a:link, h5 a:visited, +h6 a, h6 a:hover, h6 a:link, h6 a:visited, +p.topic-title a, p.topic-title a:hover, p.topic-title a:link, p.topic-title a:visited +{ + text-decoration: none; + color: inherit; +}
Added: trunk/geanygendoc/docs/help/manual.rst =================================================================== --- trunk/geanygendoc/docs/help/manual.rst (rev 0) +++ trunk/geanygendoc/docs/help/manual.rst 2010-05-04 20:48:19 UTC (rev 1333) @@ -0,0 +1,452 @@ +======================= +GeanyGenDoc User Manual +======================= +------------------------------------------------- +A handy hand guide for the lazy documenter in you +------------------------------------------------- + + +Introduction +============ + +First of all, welcome to this manual. Then, what is GeanyGenDoc? It is a +plug-in for Geany as you might have noticed; but what is it meant to do? +Basically, it generates and inserts text chunks, particularly from document's +symbols. Its goal is to ease writing documentation for the good. + + +.. contents:: + + +Design +====== + +GeanyGenDoc has an extensible design based on three points: file type, +documentation type and rules. + +`File type`_ + The file type determines which configuration applies to which document. For + example, the "c" file type corresponds to C source, and so on. + +`Documentation type`_ + A documentation type is an arbitrary name for a set of rules. The goal of + documentation types is to allow different set of rules to be defined for each + file type. + One might want to have separate rules to generate for example `Doxygen`_ + and `Gtk-Doc`_ documentation from C sources. She should then create two + documentation types in the C `file type configuration file`_, such as + "doxygen" and "gtkdoc". + +`Rule`_ + A rule is a group of settings controlling how a documentation comment is + generated. For example, it can define a template, describe how to handle + particular imbrications and so on. + + +Syntax +====== + +Key-Value pairs +--------------- + +The syntax is an extended key-value tree definition based on common concepts +(trees, string literals, semicolon-ended values, etc.). + +The key-value syntax is as follows:: + + key = value + +where value is either a semicolon-ended single value:: + + value; + +or a brace-surrounded list of key-value pairs that use the same syntax again:: + + { + key1 = value1 + key2 = value2 + } + +Here a little example of the *syntax* (not any actual configuration example):: + + key1 = value1; + key2 = { + sub-key1 = sub-value1; + sub-key2 = { + sub-sub-key1 = sub-sub-value1; + } + } + + +Naming +------ + +Key-value pairs are often referred as *group* when they are meant to have +multiple values and as *setting* when they have a single value. + + +Comments +-------- + +Is considered as comment (and therefore ignored) everything between a number +sign (``#``) and the following end of line, unless the ``#`` occurs as part of +another syntactic element (such as a string literal). + +A short example:: + + # This is a comment + key = value; # This is also a comment + string = "A string. # This isn't a comment but a string"; + + +Value types +----------- + +string + A string literal. String literals are surrounded by either single (``'``) or + double (``"``) quotes. + + Some special characters can be inserted in a string with an escape sequence: + + ``\t`` + A tabulation. + ``\n`` + A new line. + ``\r`` + A carriage return. + ``\`` + A backslash. + ``'`` + A single quote (escaping only needed in single-quotes surrounded strings). + ``"`` + A double quote (escaping only needed in double-quotes surrounded strings). + + Note that backslashes are used as the escaping character, which means that it + must be escaped to be treated as a simple backslash character. + + A simple example:: + + "This is a string with "special" characters.\nThis is another line!" + +boolean + A boolean. It can take one of the two symbolic values ``True`` and ``False``. + +enumeration + An enumeration. It consists of a named constant, generally in capital letters. + The possible values depend on the setting that use this type. + +flags + A logical OR of named constants. This is like enumerations but can combine + different values. + + The syntax is common for such types and uses the pipe (``|``) as + combination character. Considering the ``A``, ``B`` and ``C`` constants, a + valid value could be ``A | C``, which represents both ``A`` and ``C`` but + not ``B``. + +list + A list of values (often referred as array). + + +File types +========== + +The file type determines which configuration applies to which document. +*File type identifiers* are the lowercased name of the Geany's file type, for +example "c" or "python". + +Configuration for a particular file type goes in a file named +``file-type-identifier.conf`` in the ``filetypes`` sub-directory of a +`configuration directory`_. + +A file type configuration can contain two type of things: file-type-wide +settings and any number of `documentation types`_. + + +The ``settings`` group +---------------------- + +This group contains the file-type-wide settings. + +``match_function_arguments`` (string) + A regular expression used to extract arguments from a function-style argument + list (functions, methods, macros, etc.). This regular expression should match + one argument at a time and capture only the argument's name. + This setting is a little odd but currently needed to extract argument list + from function definitions. + +``global_environment`` (string) + A description of a CTPL_ environment to add when parsing rule_'s templates. + + +The ``doctypes`` group +---------------------- + +This group contains a list of `documentation types`_. + + +Documentation types +=================== + +A documentation type is a named set of rules_ for a `file type`_, describing how +to generate a particular type of documentation (i.e. Doxygen_, `Gtk-Doc`_, +Valadoc_ or whatever). + +A documentation type is identified by its name and must therefore be unique +in a file type. But of course, different file types can define the same +documentation type. It is even recommended for a better consistency to use the +same identifier in different file types when they generate the same type of +documentation (even though it is completely up to you). + + +Short example +------------- + +:: + + doxygen = { + struct.member = { + template = " /**< {cursor} */"; + position = AFTER; + } + struct.template = "/**\n * @brief: {cursor}\n * \n * \n */\n"; + } + + +Rules: the cool thing +===================== + +Rules are the actual definition of how documentation is generated. A rule +applies to a symbol type and hierarchy, allowing fine control over which and +how symbols are documented. + +A rule is represented as a group of `settings`_ in a `documentation type`_. +The name of this group is the `type hierarchy`_ to which the settings applies. + + +Type hierarchy +-------------- + +A type hierarchy is a hierarchy of the types that a symbol must have to match +this rule. + +In the symbol side, the type hierarchy is the types of the symbol's parents, +terminated by the symbol's own type. For example, a method in a class would +have a hierarchy like ``class -> method``; and if the class is itself in a +namespace, the hierarchy would the look like ``namespace -> class -> method``, +and so on. + +For a rule to apply, its type hierarchy must match *the end* of the symbol +type hierarchy. For example a rule with the type hierarchy ``class`` will match +a symbol with the type hierarchy ``namespace -> class`` but not one with +``class -> method``. + +A type hierarchy uses dots (``.``) to separate types and build the hierarchy. +For example, the type hierarchy representing ``namespace -> class`` would be +written ``namespace.class``. + + +Known types +~~~~~~~~~~~ + +``class`` + A class. +``enum`` + An enumeration. +``enumval`` + An enumeration value. +``field`` + A field (of a class for example). +``function`` + A function. +``interface`` + An interface. +``member`` + A member (of a structure for example). +``method`` + A method. +``namespace`` + A namespace. +``package`` + A package. +``prototype`` + A prototype. +``struct`` + A structure. +``typedef`` + A type alias definition (*typedef* in C). +``union`` + An union. +``variable`` + A variable. +``extern`` + `???` +``define`` + A definition (like the *define* C preprocessor macro). +``macro`` + A macro. +``file`` + A file (will never match). + + +Rule settings +------------- + +``template`` (string) + A CTPL_ template that can include references to the following predefined + variables in addition to the file-type-wide and the global environment: + + ``argument_list`` (string list) + A list of the arguments of the currently documented symbol. + + ``returns`` (boolean) + Indicates whether the currently documented symbol returns a value + (makes sense only for symbols that may return a value). + + ``children`` (string list) + A list of the current symbol's first-level children. This is only set if + the rule's setting ``children`` is set to ``MERGE``. + + **[...]** + + ``cursor`` (special, described below) + This can be used to mark in the template the position where the editor's + cursor should be moved to after comment insertion. + This mark will be removed from the generated documentation. + Note that even if this mark may occur as many times as you want in a + template, only the first will be actually honored, the latter being + only removed. + +``position`` (enumeration) + The position where the documentation should be inserted. Possible values are: + + ``BEFORE`` [default]_ + Inserts the documentation just before the symbol. + + ``AFTER`` + Inserts the documentation just after the symbol (currently quite limited, it + inserts the documentation at the end of the symbol's first line). + + ``CURSOR`` + Inserts the documentation at the current cursor position. + +``policy`` (enumeration) + How the symbol is documented. Possible values are: + + ``KEEP`` [default]_ + The symbol documents itself. + + ``FORWARD`` + Forward the documentation request to the parent. This is useful for symbols + that are documented by their parent, such as `Gtk-Doc`_'s enumerations. + +``children`` (enumeration) + How the symbol's children can be used in the template. Possible values are: + + ``SPLIT`` [default]_ + The symbol's children are provided as per-type lists. + + ``MERGE`` + The symbol's children are provided as a single list named ``children``. + +``matches`` (flags) + List of the children types that should be provided. Only useful if the + ``children`` setting is set to ``MERGE``. + Defaults to all. + **FIXME: check the exactitude of this description** + +``auto_doc_children`` (boolean) + Whether to also document symbol's children (according to their own rules). + + +Miscellaneous +============= + +Configuration directories +------------------------- + +Configuration directories hold GeanyGenDoc's configuration. They are the +following: + +* + The user-specific configuration directory, containing the user-defined + settings is ``$GEANY_USER_CONFIG/plugins/geanygendoc/``. + ``$GEANY_USER_CONFIG`` is generally ``~/.config/geany/`` on UNIX systems. +* + The system-wide configuration directory containing the default and + pre-installed configuration is ``$GEANY_SYS_CONFIG/plugins/geanygendoc/``. + ``$GEANY_SYS_CONFIG`` is generally ``/usr/share/geany/`` or + ``/usr/local/share/geany`` on UNIX systems. + +When searching for configuration, GeanyGenDoc will first look in the +user's configuration directory, and if it wasn't successful, in the system +configuration directory. If both failed, it assumes that there is no +configuration at all. + + +Appendix +======== + +Configuration syntax summary +---------------------------- + +:: + + string ::= ( """ .* """ | "'" .* "'" ) + constant ::= [_A-Z][_A-Z0-9]+ + integer ::= [0-9]+ + boolean ::= ( "True" | "False" ) + setting_value ::= ( string | constant | integer ) + setting ::= "setting-name" "=" setting_value ";" + setting_list ::= ( "{" setting* "}" | setting ) + setting_section ::= "settings" "=" setting_list + + position ::= ( "BEFORE" | "AFTER" | "CURSOR" ) + policy ::= ( "KEEP" | "FORWARD" ) + children ::= ( "SPLIT" | "MERGE" ) + type ::= ( "class" | "enum" | "enumval" | "field" | + "function" | "interface" | "member" | "method" | + "namespace" | "package" | "prototype" | "struct" | + "typedef" | "union" | "variable" | "extern" | + "define" | "macro" | "file" ) + matches ::= type ( "|" type )* + doctype_subsetting ::= ( "template" "=" string | + "position" "=" position | + "policy" "=" policy | + "children" "=" children | + "matches" "=" matches | + "auto_doc_children" "=" boolean ) ";" + match ::= type ( "." type )* + doctype_setting ::= ( match "=" "{" doctype_subsetting* "}" | + match "." doctype_subsetting ) + doctype_setting_list ::= ( "{" doctype_setting* "}" | doctype_setting ) + doctype ::= "doctype-name" "=" doctype_setting_list + doctype_list ::= ( "{" doctype* "}" | doctype ) + doctype_section ::= "doctypes" "=" doctype_list + + document ::= ( setting_section? doctype_section? | + doctype_section? setting_section? ) + + +.. Content end, begin references + +.. External links +.. +.. _Doxygen: http://www.doxygen.org +.. _Gtk-Doc: http://www.gtk.org/gtk-doc/ +.. _Valadoc: http://www.valadoc.org/ +.. _CTPL: http://ctpl.tuxfamily.org/ + +.. Internal links +.. +.. _file type: `File types`_ +.. _file type configuration file: `File types`_ +.. _documentation type: `Documentation types`_ +.. _rule: `Rules: the cool thing`_ +.. _rules: `Rules: the cool thing`_ +.. _settings: `Rule settings`_ +.. _configuration directory: `Configuration directories`_ + +------------------- + +.. [default] This is the default value of the setting
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.