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
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


