Dani, Wayne,

Thanks


On Mon, 07 May 2018 21:59:39 +0000, Wayne Stewart via 4D_Tech wrote:
> Chip,
> 
> I wrote some code to do that for Foundation it relies on some discipline in
> creating your header comments of course.
> 
> <macro name="FHead">
> <text>// ----------------------------------------------------
> // Project Method: <method_name/> --> ReturnType
> // Description
> // Access: Shared
> // Parameters:
> //   $1 : Type : Description
> //   $x : Type : Description (optional)
> 
> // Returns:
> //   $0 : Type : Description
> 
> // Created by Wayne Stewart (<date format="9"/>)
> //     wa...@4dsupport.guru
> // ----------------------------------------------------
> </text>
> </macro>
> 
>    // ----------------------------------------------------
>    // Project Method: Fnd_Shell_WriteComments {(Method Name; Do not use)}
> 
>    // This method will create documentation comments
>    //   it is based on the assumption that you format your
>    //    method header comments in the same manner as Foundation
>    //  The second paramater is just used to trigger the method
>    //   starting in a new process, you should not pass anything in this
> parameter
> 
>    // Access: Shared
> 
>    // Parameters:
>    //   $1 : Text : Either pass
>    //       (a) "" - All methods (or don't pass any parameters)
>    //       (b) "Prefix" - Only methods which match a prefix (Eg. Fnd_Art)
>    //       (c) "Specific method name" - write comments for that method
>    //   $2 : Longint : Do not use this
> 
>    // Created by Wayne Stewart
>    // ----------------------------------------------------
> 
> C_TEXT($1)
> C_LONGINT($2)
> 
> 
C_LONGINT($CurrentMethod_i;$NumberOfMethods_i;$Position_i;$ProcessID_i;$StackSize_i)
> 
C_TEXT($FirstChars_t;$MethodCode_t;$MethodName_t;$ThreadSafe_t;$ThreadSafeSection_t)
> C_OBJECT($Attributes_o)
> 
> ARRAY TEXT($MethodCode_at;0)
> ARRAY TEXT($MethodNames_at;0)
> 
> If (False)
>    C_TEXT(Fnd_Shell_WriteComments ;$1)
>    C_LONGINT(Fnd_Shell_WriteComments ;$2)
> End if
> 
> 
> $StackSize_i:=0
> 
> If (Count parameters=2)
> 
>    METHOD GET PATHS(Path project method;$MethodNames_at)
> 
>    $MethodName_t:=$1
> 
>    If (Length($MethodName_t)>0)  //  A method name or prefix has been
> specified
> 
>      $NumberOfMethods_i:=Count in array($MethodNames_at;$MethodName_t)
> 
>      If ($NumberOfMethods_i=1)  // exactly one match (use this specific
> method)
>        APPEND TO ARRAY($MethodNames_at;$MethodName_t)
>      Else
> 
>        $NumberOfMethods_i:=Size of array($MethodNames_at)
>        For ($CurrentMethod_i;$NumberOfMethods_i;1;-1)  // Go Backwards
>          If ($MethodNames_at{$CurrentMethod_i}=($MethodName_t+"@"))
>          Else
>            DELETE FROM ARRAY($MethodNames_at;$CurrentMethod_i)
>          End if
> 
>        End for
> 
>      End if
> 
>    End if
> 
>    $NumberOfMethods_i:=Size of array($MethodNames_at)
> 
>    METHOD GET CODE($MethodNames_at;$MethodCode_at)
> 
>    ARRAY TEXT($MethodComments_at;$NumberOfMethods_i)
> 
>    For ($CurrentMethod_i;1;$NumberOfMethods_i)
>      $MethodCode_t:=$MethodCode_at{$CurrentMethod_i}
> 
>      $Position_i:=Position("comment added and reserved by
> 4D.\r";$MethodCode_t)
> 
>      $MethodCode_t:=Substring($MethodCode_t;$Position_i+Length("comment
> added and reserved by 4D.\r"))
> 
>        //  Threadsafe?
>      METHOD GET ATTRIBUTES($MethodNames_at{$CurrentMethod_i};$Attributes_o)
>      $ThreadSafe_t:=OB Get($Attributes_o;"preemptive")
> 
>      Case of
>        : ($ThreadSafe_t="capable")
>          $ThreadSafeSection_t:="\rPreemptive\r"
> 
>        : ($ThreadSafe_t="incapable")
>          $ThreadSafeSection_t:="\rCooperative\r"
> 
>        : ($ThreadSafe_t="indifferent")
>          $ThreadSafeSection_t:="\rPreemptive capable\r"
> 
>      End case
> 
>      $MethodCode_t:=Replace string($MethodCode_t;"\r  // Access:
> Shared\r";"\r  // Access: Shared\r"+$ThreadSafeSection_t)
>      $MethodCode_t:=Replace string($MethodCode_t;"\r  // Access:
> Private\r";"\r  // Access: Shared\r"+$ThreadSafeSection_t)
> 
>        //  End Threadsafe section
> 
>      $MethodCode_t:=Replace string($MethodCode_t;"  //
> ----------------------------------------------------\r";"")
>      $MethodCode_t:=Replace string($MethodCode_t;"//
> ----------------------------------------------------\r";"")
> 
>      $MethodCode_t:=Replace string($MethodCode_t;"  // Project Method: ";"")
>      $MethodCode_t:=Replace string($MethodCode_t;"// Project Method: ";"")
> 
>      $MethodCode_t:=Replace string($MethodCode_t;"  // ";"")
>      $MethodCode_t:=Replace string($MethodCode_t;"// ";"")
> 
>      $Position_i:=Position("Created by";$MethodCode_t)
> 
>      $MethodCode_t:=Substring($MethodCode_t;1;($Position_i-3))
> 
>      $FirstChars_t:=Substring($MethodCode_t;1;2)
>      While ($FirstChars_t="\r\r")
>        $MethodCode_t:=Substring($MethodCode_t;2)
>        $FirstChars_t:=Substring($MethodCode_t;1;2)
>      End while
> 
>      $MethodComments_at{$CurrentMethod_i}:=$MethodCode_t
> 
>    End for
> 
>    METHOD SET COMMENTS($MethodNames_at;$MethodComments_at)
> 
> Else
> 
>    If (Count parameters=1)
>      $MethodName_t:=$1
>    Else
>      $MethodName_t:=""
>    End if
> 
>      // This version allows for any number of processes
>      // $ProcessID_i:=New Process(Current method name;$StackSize_i;Current
> method name;0)
> 
>      // On the other hand, this version allows for one unique process
>    $ProcessID_i:=New process(Current method name;$StackSize_i;Current method
> name;$MethodName_t;0;*)
> 
>    RESUME PROCESS($ProcessID_i)
>    SHOW PROCESS($ProcessID_i)
>    BRING TO FRONT($ProcessID_i)
> End if
> 
> 
> Regards,
> 
> Wayne
> 
> 
> Wayne Stewart
> about.me/waynestewart
> 
> 
> 
> 
> On Tue, 8 May 2018 at 07:40, Dani Beaubien via 4D_Tech
> <4d_tech@lists.4d.com>
> wrote:
> 
>> Hi Chip,
> 
>> You can use "METHOD SET COMMENTS” to set the method comments using code.
> 
>> I actually use that call in my Code Analysis component. I have a feature
> that will look at each method, grab the comment lines at the top of the
> method until it hits a line that is not a comment, and then put those
> comments into the method comments using "METHOD SET COMMENTS”. Really
> useful for ensuring all the shared methods in a component have a comment
> can then be seen as a tip in a host database.
> 
>> The Code Analysis component can be grabbed from here. Source code is
> there as well.
>> http://openroaddevelopment.com/downloads.html
> 
>> Dani
> 
> 
>>> On May 7, 2018, at 3:04 PM, Chip Scheide via 4D_Tech <
> 4d_tech@lists.4d.com> wrote:
>>> 
>>> I have not looked into this much...
>>> Is there a way in code to access the method comments (form the Explorer
>>> Pane)?
>>> 
>>> I would like to be able to, as a start, copy the actual method header
>>> comments into this area.
>>> 
>>> any info appreciated.
>>> 
>>> Thanks
>>> Chip
>>> 
>>> ---------------
>>> Gas is for washing parts
>>> Alcohol is for drinkin'
>>> Nitromethane is for racing
>>> **********************************************************************
>>> 4D Internet Users Group (4D iNUG)
>>> FAQ:  http://lists.4d.com/faqnug.html
>>> Archive:  http://lists.4d.com/archives.html
>>> Options: https://lists.4d.com/mailman/options/4d_tech
>>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
>>> **********************************************************************
> 
>> **********************************************************************
>> 4D Internet Users Group (4D iNUG)
>> FAQ:  http://lists.4d.com/faqnug.html
>> Archive:  http://lists.4d.com/archives.html
>> Options: https://lists.4d.com/mailman/options/4d_tech
>> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
>> **********************************************************************
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> FAQ:  http://lists.4d.com/faqnug.html
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **********************************************************************
---------------
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing 
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to