SF.net SVN: geany-plugins:[1333] trunk/geanygendoc

colombanw at users.sourceforge.net colombanw at xxxxx
Tue May 4 20:48:20 UTC 2010


Revision: 1333
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1333&view=rev
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 at 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 at herbesfolles.org
+:Copyright: This stylesheet has been placed in the public domain.
+
+Stylesheet for use with Docutils.
+*/
+
+ at 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.



More information about the Plugins-Commits mailing list