[Ex] Inclure les Calltips de tous vos UDF!

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

[Ex] Inclure les Calltips de tous vos UDF!

#1

Message 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:
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#2

Message par Tlem »

Sans doute parce que vous avez installez Scite4AutoIt. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre