Mattias Gaertner schrieb:
When I work in a local branch, and find something worth to document,
then this documentation is added to the branch and removed when
switching back to another branch.
Why not merge the change to the other branches?
I'm using Git in my experiments, and switch branches frequently. After a
while it's hard to remember in which branch I've updated the
documentation, and into which other branches the updates have not yet
been merged. That's the most important argument for storing
documentation apart from source code.
How can help files for lcl version 1.0 and lcl version 2.0 be
distinguished?
When this matters, the user can create separate doc folders.
How should that work with the above search pattern
<helpdir/xml>/lcl/*.xml.
?
The helpdir is set in the Lazarus options, so that Lazarus1 uses lcl 1.0
and LazHelp1, and Lazarus2 uses lcl 2.0 and the LazHelp2 directory.
[...]
Only the final documentation may have to know about versions, so that
the proper overviews can be created for the 1.0 and 2.0 version. IMO
such overviews *always* should be created from the source code of the
proper version (like makeskel does), not from manually maintained lists
in help or topic files. The related entries then can be collected from
the separate help files, where every item can be tagged with the version
that introduced (moved, renamed...) that source code item.
AFAIK fpdoc does not support such tagging.
That's not a general problem - XML supports any number of tags ;-)
Since documentation is written only after the source code has been
created and committed, it doesn't make sense to have both in the same
versioning system. When help *on* r0815 source code is committed, the
help should become visible *starting* with r0815 as well, not only when
committed *as* r4711. Of course SVN doesn't allow to amend an older
commit, so that separate source and help repositories IMO are the only
viable solution.
True.
When can this change be expected?
@Graeme: can you split your Git repository accordingly?
Overriding the fpdoc search path for packages is needed.
It may be a good idea to move all help directories under docs/, and to
turn Lazarus/docs into an SVN (sub-)project.
[...]
Dedicated help directories are somewhat self-organizing, no chance for
missing help files in a search. But lists of packages and their
contained files can be incomplete.
If the file is not listed in any package the IDE searches in the unit
and src paths of all packages.
Why use search paths for packages, when it's easier to specify search
paths for documentation?
I understood the question as what happens when the lpk file does not list all
files of the
package.
This is one case that can never occur when the directories are searched
for the source and help files :-)
The IDE will fail to associate a unit that is in a
directory only used on another target. So the IDE does not know where
the help is for the w32wscontrols.pas under Linux.
The help is in the same place on all platforms.
Although with some
guesswork it could. Maybe this will be added, when the problem arises.
So far no one needed that.
I just found a lot of help for the gtk widgetset, so no general problem
seems to exist. I only couldn't make the FPDoc Editor display content of
these files (on Windows). It should not be a problem to find
<lazdocdir>/xml/lcl/interfaces/gtk/gtkdef.xml for
<lazdir>/lcl/interfaces/gtk/gtkdef.pp.
When Lazarus/lcl/ (currently) is associated with Lazarus/docs/xml/lcl/,
or ../docs/xml/lcl/, the remaining interfaces/gtk/ portion can be
applied to that root directory.
As already mentioned, a single LazDoc path may
be sufficient, when all docs are installed into subdirectories of that
directory.
Of what directory? The directory of the current unit or the global
override directory for fpdoc files?
All help files should reside in subdirectories of the global fpdoc
directory, i.e. currently in the Lazarus/docs/xml/ directory. No
difference to the current handling, only that the $(LazarusDir)/docs/
part should be replaced by $(LazarusDocs). Then the FPDoc search path
must not contain separate entries for all the subdirectories (lcl,
rtl...), as long as these reside in the same parent directory (as is).
Extra entries will be required only for third-party packages, whose help
resides in other directories, or a symlink to that directory can be put
into the default help directory.
The FPDoc editor is only a tool for the Lazarus way of fpdoc files. Its
big brother lazde can be used to create any kind of fpdoc files.
How does lazde make the created files known to the IDE?
And AFAIR lazde had the same problem, with files not belonging to a package.
As a concrete example, I couldn't add help on widgetset-specific units
like win32wscomctrls.pp. Why should help be available only for installed
packages, known to the IDE, when the IDE allows to *open* source files
without such a restriction?
The IDE allows to open a win32wscomctrls.pp, but many code features
only work under windows.
It's sufficient when the IDE (FPDoc Editor or F1) also shows the help
for the opened units.
The unit belongs to the package LCL, which has no fpdoc path set yet.
When I open the unit qtobjects.pas under Linux/QT, move cursor to
an identifier and click on "create" in the fpdoc editor the IDE asks me
to setup a fpdoc path first. I set it to "docs/xml/lcl" and a new fpdoc
file is created. It's pretty easy.
Again, how is that file (or directory) made known to the IDE?
When e.g. an index file is added to every source directory, that file
could contain all the information required to find the associated help
files. Such a file can be created automatically, or when not found the
parent directories can be searched. Then the help file for
$(LazDir)/lcl/interfaces/win32/someunit.pp could be found in
$(LazDoc)[/xml]/lcl/interfaces/win32/someunit.xml, with the only
required information that $(LazDir)/lcl/ is the root directory of
package lcl. For projects an existing .lpi file could be used as the
root-directory marker of the project, and similar conventions could
apply to package directories.
First of all, the lpk is an index. No need to invent another one.
It only is a manually created and maintained index, which does not
necessarily contain all files of the package (etc.).
Searching the lpk/lpi file when opening a unit is a good idea.
But an lpi or lpk file is not always placed in the root
directory of a package/project. In fact many ported Delphi
packages/projects put the Lazarus stuff into a sub directory. A more
sophisticated search is needed.
Fourth, a special solution for the packages in the Lazarus sources can
be done.
And all this is why I suggested an independent/additional file, that can
be added to every package source directory. Such a file is required only
when the IDE can not otherwise locate the root directory of a package or
project. The IDE can e.g. search for an '*.lp?' file, in the directory
of the source file and all parent directories. Once such a file is
found, its name specifies the project or package name, and the default
location (directory name) of the associated documentation in the LazDoc
path. In so far I don't understand why the lcl package file is named
lclbase.lpk, and not lcl.lpk :-(
DoDi
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus