Page 1 sur 1

[Ex] Inclure les Calltips de tous vos UDF!

Posté : mar. 12 janv. 2010 01:46
par matwachich
Un p'tit script comme ca en passant:

Code : Tout sélectionner

#include <string.au3>
#include <perso\FileListToArrayXT.au3>
#Include <File.au3>
;###########################
; à lancer de préférence dans Scite pour voir la progression
;###########################

$balise_darret = ";########## Arret, fonction internes ##########" ; à ajouter avant les fonctions internes de vos UDF
                                                                   ;pour qu'elles ne soit incluse dans les calltips de Scite

If FileGetSize(StringTrimRight(@AutoItExe, 11)&"\scite\au3.UDF.properties") > 0 Then
    $reponse = MsgBox(36, "AutoCalltips", "Voulez-vous éffacer les fonctions déja présentes?")
    If $reponse = 6 Then
        $openFlag = 2
    Else
        $openFlag = 1
    EndIf
    $calltips = FileOpen(StringTrimRight(@AutoItExe, 11)&"\scite\au3.UDF.properties", $openFlag)
Else
    $calltips = FileOpen(StringTrimRight(@AutoItExe, 11)&"\scite\au3.UDF.properties", 2)
EndIf

$description = "No description"
$manual_description = False
If MsgBox(36, "AutoCalltips", "voulez-vous entrer des description à chaqu'une des fonctions?") = 6 Then $manual_description = True
ConsoleWrite("Manual description = "&$manual_description& @CRLF)
ConsoleWrite("Description = "&$description& @CRLF)

$include = InputBox("AutoCalltips", "Quelle est le répertoire des vos UDFs?", StringTrimRight(@AutoItExe, 11)&"include")
ConsoleWrite("Include dir = "&$include& @CRLF)
ConsoleWrite("---------------------------------------------------------------------------------------------")

Global $liste = _FileListToArrayXT($include, "*.au3", 1, 2)
Global $names = _FileListToArrayXT($include, "*.au3", 1, 0)

For $i = 1 To UBound($liste) - 1 Step 1
    $file = FileOpen($liste[$i], 0)
    ConsoleWriteError(@CRLF & @CRLF & "File "&$i&" = "&$liste[$i]&", "&_FileCountLines($liste[$i])&" Lines --> Name: "&$names[$i]&" --> File open returns = "&$file  & @CRLF)
    ConsoleWriteError("*******************************************************************************************************************************"& @CRLF)

    Sleep(500)
    For $x = 1 To _FileCountLines($liste[$i]) Step 1
        If FileReadLine($file, $x) = $balise_darret Then
            ExitLoop
            ConsoleWrite("End of functions, entering Internal use functions region."&@CRLF)
        EndIf
        If StringLeft(FileReadLine($file, $x), 4) = "Func" Then

            $line = StringTrimLeft(FileReadLine($file, $x), 5)
            For $o = 1 To 10 Step 1
                If StringRight($line, 1) = "_" Then
                    $line = StringTrimRight($line, 1) & FileReadLine($file, $x+$o)
                    For $z = 0 To 20 Step 1
                        StringReplace($line, @TAB, "")
                    Next
                    For $z = 0 To 100 Step 1
                        StringReplace($line, "  ", " ")
                    Next
                EndIf
            Next

            ConsoleWrite("File: "&$names[$i]&", Line: "&$x&" --> Found function: "&$line & @CRLF)

            If $manual_description = True Then
                $description = InputBox("Description", "Fonction: "&$line)
                If $description = "" Then $description = "No description"
            Else
                FileWrite($calltips, $line&" "&$description&".(required: #include <"&$names[$i]&">)."& @CRLF & @CRLF)
            EndIf
        EndIf
    Next
Next
 
Lancez le de préférence dans Scite pour voir la progréssion, ou alors faite lui une interface! (il se peut que je le fasse quand j'en aurai envie!)

Il va tous simplement scaner le dossier ou se trouvent vos UDF's (en passant vaudrait mieu les regroupés dans un dossier SEPARE de celui des includes standard de autoit), en sortir les fonctions, et les metres bien comme il faut dans le fichier au3.UDF.properties.

Comme ca, plus besoin d'ouvrir a chaque fois un include pour se rappeler l'ordre des paramètres de vos fonctions perso!

Ceux qui ne savent pas ce que c'est un Calltip, dans Scite -> Help -> Scite Help, et il se débrouille!

PS: j'ai remarquer un truc, soit j'ai mal lu l'aide ou alors ya un truc qui cloche, normalement, les calltips c'est bien dans le ficheir au3.UDF.properties qu'il faut les metres, mais curieusement, il a fallu que je les copie dans le ficheir Scite\api\au3.user.calltips.api pour les avoir dans Scite.
Celui qui a une réponse prête, qu'il me la donne, sinon ne vous cassez pas la tête, ca vaut pas la peinne puisque de toute façons ca marche!!! mdr :lol:

Re: [Ex] Inclure les Calltips de tous vos UDF!

Posté : mar. 12 janv. 2010 02:34
par Tlem
Sans doute parce que vous avez installez Scite4AutoIt. ;)