Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Michael Van Canneyt


On Sun, 17 Feb 2008, Mattias Gaertner wrote:

 
 In the LCL there is documentation for TControl.Caption which is useful
 for all descendant classes like TButton.Caption too. It would be nice
 if fpdoc shows the content of TControl.Caption if TButton.Caption does
 not have a value or at least show a link to the inherited entries.
 
 Comments?

This is in mantis as a feature request, but it is not easy to implement.

Feel free to do a proposition. I'll then do the implementation :-)

Michael.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Marco van de Voort
 In the LCL there is documentation for TControl.Caption which is useful
 for all descendant classes like TButton.Caption too. It would be nice
 if fpdoc shows the content of TControl.Caption if TButton.Caption does
 not have a value or at least show a link to the inherited entries.
 
 Comments?

Make it mandatory to flag such properties if you want to use this feature.
Nobody is interested in all inbetween properties and symbols.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Mattias Gärtner
Zitat von Michael Van Canneyt [EMAIL PROTECTED]:



 On Sun, 17 Feb 2008, Mattias Gaertner wrote:

 
  In the LCL there is documentation for TControl.Caption which is useful
  for all descendant classes like TButton.Caption too. It would be nice
  if fpdoc shows the content of TControl.Caption if TButton.Caption does
  not have a value or at least show a link to the inherited entries.
 
  Comments?

 This is in mantis as a feature request, but it is not easy to implement.

I added a button to the IDE built in fpdoc editor to automatically create a 'see
also' link to the next documented ancestor entry.


 Feel free to do a proposition. I'll then do the implementation :-)

That's an amazing offer.

fpdoc already knows the ancestor classes. So it should be possible to find out
the ancestor property/method/variable, right? (It's ok if the overridden method
search is not 100% perfect)

If yes, then it might be possible to traverse through all ancestors and find the
next existing short description, right?


Mattias

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Michael Van Canneyt


On Mon, 18 Feb 2008, Mattias Gärtner wrote:

 Zitat von Michael Van Canneyt [EMAIL PROTECTED]:
 
 
 
  On Sun, 17 Feb 2008, Mattias Gaertner wrote:
 
  
   In the LCL there is documentation for TControl.Caption which is useful
   for all descendant classes like TButton.Caption too. It would be nice
   if fpdoc shows the content of TControl.Caption if TButton.Caption does
   not have a value or at least show a link to the inherited entries.
  
   Comments?
 
  This is in mantis as a feature request, but it is not easy to implement.
 
 I added a button to the IDE built in fpdoc editor to automatically create a 
 'see
 also' link to the next documented ancestor entry.
 
 
  Feel free to do a proposition. I'll then do the implementation :-)
 
 That's an amazing offer.
 
 fpdoc already knows the ancestor classes. So it should be possible to find out
 the ancestor property/method/variable, right? (It's ok if the overridden 
 method
 search is not 100% perfect)

The problem is that you may or may not have the definition (and
corresponding page) in memory. If the parent def (and doc) is not 
in memory, you don't know whether a page is available or not.

 
 If yes, then it might be possible to traverse through all ancestors and find 
 the
 next existing short description, right?

In theory, yes.

Then you need to decide what to do:
- Create a page for TChild.Property and simply refer to TParent.property
  (a braindead solution imho)
- do not generate a page but In the 'Property/methods/Class overview' of 
TChild, 
  refer to TParent.property whenever TChild.Property is not documented.

In the latter case, pressing F1 on TChild.Property will refer to a
non-existing page.

Michael.___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Mattias Gärtner
Zitat von Michael Van Canneyt [EMAIL PROTECTED]:



 On Mon, 18 Feb 2008, Mattias Gärtner wrote:

  Zitat von Michael Van Canneyt [EMAIL PROTECTED]:
 
  
  
   On Sun, 17 Feb 2008, Mattias Gaertner wrote:
  
   
In the LCL there is documentation for TControl.Caption which is useful
for all descendant classes like TButton.Caption too. It would be nice
if fpdoc shows the content of TControl.Caption if TButton.Caption does
not have a value or at least show a link to the inherited entries.
   
Comments?
  
   This is in mantis as a feature request, but it is not easy to implement.
 
  I added a button to the IDE built in fpdoc editor to automatically create a
 'see
  also' link to the next documented ancestor entry.
 
 
   Feel free to do a proposition. I'll then do the implementation :-)
 
  That's an amazing offer.
 
  fpdoc already knows the ancestor classes. So it should be possible to find
 out
  the ancestor property/method/variable, right? (It's ok if the overridden
 method
  search is not 100% perfect)

 The problem is that you may or may not have the definition (and
 corresponding page) in memory. If the parent def (and doc) is not
 in memory, you don't know whether a page is available or not.

How do the links to the ancestor classes work?


  If yes, then it might be possible to traverse through all ancestors and
 find the
  next existing short description, right?

 In theory, yes.

:)


 Then you need to decide what to do:
 - Create a page for TChild.Property and simply refer to TParent.property
   (a braindead solution imho)
 - do not generate a page but In the 'Property/methods/Class overview' of
 TChild,
   refer to TParent.property whenever TChild.Property is not documented.

 In the latter case, pressing F1 on TChild.Property will refer to a
 non-existing page.

The final presentation whether fpdoc creates a 'see also' link OR copies the
content OR refers directly is a second step. First fpdoc must gather some data:

It should only refer, iff the TChild.Property is not documented (= has no short
description) and iff there is a documented TParent.Property, where TParent does
not need to be the direct ancestor. For example TButton.Caption should not refer
to TCustomButton.Caption nor TWinControl.Caption, but to TControl.Caption.


Mattias

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Michael Van Canneyt


On Mon, 18 Feb 2008, Mattias Gärtner wrote:

 Zitat von Michael Van Canneyt [EMAIL PROTECTED]:
 
 
 
  On Mon, 18 Feb 2008, Mattias Gärtner wrote:
 
   Zitat von Michael Van Canneyt [EMAIL PROTECTED]:
  
   
   
On Sun, 17 Feb 2008, Mattias Gaertner wrote:
   

 In the LCL there is documentation for TControl.Caption which is useful
 for all descendant classes like TButton.Caption too. It would be nice
 if fpdoc shows the content of TControl.Caption if TButton.Caption does
 not have a value or at least show a link to the inherited entries.

 Comments?
   
This is in mantis as a feature request, but it is not easy to implement.
  
   I added a button to the IDE built in fpdoc editor to automatically create 
   a
  'see
   also' link to the next documented ancestor entry.
  
  
Feel free to do a proposition. I'll then do the implementation :-)
  
   That's an amazing offer.
  
   fpdoc already knows the ancestor classes. So it should be possible to find
  out
   the ancestor property/method/variable, right? (It's ok if the overridden
  method
   search is not 100% perfect)
 
  The problem is that you may or may not have the definition (and
  corresponding page) in memory. If the parent def (and doc) is not
  in memory, you don't know whether a page is available or not.
 
 How do the links to the ancestor classes work?

Through a complicated search mechanism :-)

   If yes, then it might be possible to traverse through all ancestors and
  find the
   next existing short description, right?
 
  In theory, yes.
 
 :)
 
 
  Then you need to decide what to do:
  - Create a page for TChild.Property and simply refer to TParent.property
(a braindead solution imho)
  - do not generate a page but In the 'Property/methods/Class overview' of
  TChild,
refer to TParent.property whenever TChild.Property is not documented.
 
  In the latter case, pressing F1 on TChild.Property will refer to a
  non-existing page.
 
 The final presentation whether fpdoc creates a 'see also' link OR copies the
 content OR refers directly is a second step. First fpdoc must gather some 
 data:
 
 It should only refer, iff the TChild.Property is not documented (= has no 
 short
 description) and iff there is a documented TParent.Property, where TParent 
 does
 not need to be the direct ancestor. For example TButton.Caption should not 
 refer
 to TCustomButton.Caption nor TWinControl.Caption, but to TControl.Caption.

I am more in favour of adding a new attribute to allow more control by the
documentor:

element name=TButton.Caption link=TControl.Caption/

It has the advantage of being faster as well: the documenting process can
use some speedup, it gets slower by the day. The disadvantage is that you 
must fill it in manually - although a simple button in the editor can take 
care of that: 
- fill this property for the current element, 
or 
- for all elements with fill your favorite recipe here fill the closest 
ancestor.

Michael.___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Michael Van Canneyt


On Mon, 18 Feb 2008, Felipe Monteiro de Carvalho wrote:

 On Feb 18, 2008 12:51 PM, Michael Van Canneyt [EMAIL PROTECTED] wrote:
  Then you need to decide what to do:
  - Create a page for TChild.Property and simply refer to TParent.property
(a braindead solution imho)
 
 Why is creating a link from TChild.Property to TParent.Property a bad thing?

Because you don't need the TChild.Property page at all.

There should not be a link to TChild.Property anywhere. All links should
always be to TParent.property.

In the overview page:

Class TChild
...
Properties
...
Property MyProperty; -- link to TParent.MyProperty, NOT to TChild.Property


 
 AFAIK, if you use Doc-o-Mactic it will do exactly that. Delphi help
 also works like that. In fact, I don't know any example of a source
 code documenting system that copyes the same text on several places
 for the same function.

Delphi uses the second mechanism which I proposed (the not-braindead-one).

In the 'TFileStream Methods', just click on TFileStream.WriteBuffer, under 
'Derived from TStream', and it takes you to to TStream.WriteBuffer.

The braindead one would take you to a mostly empty page TFileStream.WriteBuffer 
with a small clickable text 'This method is documented in TStream.WriteBuffer.'

Michael.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Felipe Monteiro de Carvalho
On Feb 18, 2008 12:51 PM, Michael Van Canneyt [EMAIL PROTECTED] wrote:
 Then you need to decide what to do:
 - Create a page for TChild.Property and simply refer to TParent.property
   (a braindead solution imho)

Why is creating a link from TChild.Property to TParent.Property a bad thing?

AFAIK, if you use Doc-o-Mactic it will do exactly that. Delphi help
also works like that. In fact, I don't know any example of a source
code documenting system that copyes the same text on several places
for the same function.

-- 
Felipe Monteiro de Carvalho
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Felipe Monteiro de Carvalho
On Feb 18, 2008 2:17 PM, Michael Van Canneyt [EMAIL PROTECTED] wrote:
 Because you don't need the TChild.Property page at all.

 There should not be a link to TChild.Property anywhere. All links should
 always be to TParent.property.

Ah ... ok, I misunderstood you. We have the same oppinion =)

-- 
Felipe Monteiro de Carvalho
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Mattias Gärtner
Zitat von Michael Van Canneyt [EMAIL PROTECTED]:

[...]
   The problem is that you may or may not have the definition (and
   corresponding page) in memory. If the parent def (and doc) is not
   in memory, you don't know whether a page is available or not.
 
  How do the links to the ancestor classes work?

 Through a complicated search mechanism :-)

Ok.


If yes, then it might be possible to traverse through all ancestors and
   find the
next existing short description, right?
  
   In theory, yes.
 
  :)
 
 
   Then you need to decide what to do:
   - Create a page for TChild.Property and simply refer to TParent.property
 (a braindead solution imho)
   - do not generate a page but In the 'Property/methods/Class overview' of
   TChild,
 refer to TParent.property whenever TChild.Property is not documented.
  
   In the latter case, pressing F1 on TChild.Property will refer to a
   non-existing page.
 
  The final presentation whether fpdoc creates a 'see also' link OR copies
 the
  content OR refers directly is a second step. First fpdoc must gather some
 data:
 
  It should only refer, iff the TChild.Property is not documented (= has no
 short
  description) and iff there is a documented TParent.Property, where TParent
 does
  not need to be the direct ancestor. For example TButton.Caption should not
 refer
  to TCustomButton.Caption nor TWinControl.Caption, but to TControl.Caption.

 I am more in favour of adding a new attribute to allow more control by the
 documentor:

 element name=TButton.Caption link=TControl.Caption/

 It has the advantage of being faster as well: the documenting process can
 use some speedup, it gets slower by the day. The disadvantage is that you
 must fill it in manually - although a simple button in the editor can take
 care of that:
 - fill this property for the current element,
 or
 - for all elements with fill your favorite recipe here fill the closest
 ancestor.

Ey, I thought I do the proposal and you do the implementation!?
Now it seems I have to implement this 'for all elements' function in the editor.

Will you implement the fpdoc part, that means the 'link' attribute, so that
fpdoc does not create the TChild.Property pages and instead directly links to
the linked page and update the fpdoc docs?


Mattias

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] fpdoc inherited entries

2008-02-18 Thread Michael Van Canneyt


On Mon, 18 Feb 2008, Mattias Gärtner wrote:

   It should only refer, iff the TChild.Property is not documented (= has no
  short
   description) and iff there is a documented TParent.Property, where TParent
  does
   not need to be the direct ancestor. For example TButton.Caption should not
  refer
   to TCustomButton.Caption nor TWinControl.Caption, but to TControl.Caption.
 
  I am more in favour of adding a new attribute to allow more control by the
  documentor:
 
  element name=TButton.Caption link=TControl.Caption/
 
  It has the advantage of being faster as well: the documenting process can
  use some speedup, it gets slower by the day. The disadvantage is that you
  must fill it in manually - although a simple button in the editor can take
  care of that:
  - fill this property for the current element,
  or
  - for all elements with fill your favorite recipe here fill the closest
  ancestor.
 
 Ey, I thought I do the proposal and you do the implementation!?

Hehe :)

 Now it seems I have to implement this 'for all elements' function in the 
 editor.

Clever twist of me, eh ? ;-) 

 Will you implement the fpdoc part, that means the 'link' attribute, so that
 fpdoc does not create the TChild.Property pages and instead directly links to
 the linked page and update the fpdoc docs?

Yes. 

It means a lot of checking, though, because all link id= references to
TChild.Property must also be changed. If speed is affected, maybe I'll have
to do some tricks in the search mechanism as well :(

Michael.___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] fpdoc inherited entries

2008-02-17 Thread Mattias Gaertner

In the LCL there is documentation for TControl.Caption which is useful
for all descendant classes like TButton.Caption too. It would be nice
if fpdoc shows the content of TControl.Caption if TButton.Caption does
not have a value or at least show a link to the inherited entries.

Comments?


Mattias
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel