Coucou Abdel, Je viens de lire ton message.Donnes-moi jusqu'à demain matin et j'enverai une version avec les modifications intégrées, tout en prenant bien entendu en compte tes remarques.
J'ai besoin d'un petit somme avant de me mettre à programmer. Yannick Daniel Youalé Le 05/02/2016 19:34, _Abdel_ a écrit :
Salut Yannick,Mais bien sûr que tu es pleinement autorisé à modifier le forPython, car tu contribues à son amélioration.Tu vois, moi j'aime bien le travail collaboratif, surtout lorsque chaque participant apporte quelque chose qui pourrait aider les autres scripteurs ou programmeurs qui ne seraient pas bien familiers avec certaines commandes ou instructions.Cependant, je souhaitais juste attirer ton attention sur les points suivants :Lorsqu'on assigne à plusieurs variables une même valeur, on peut très bien écrire :variable1 = variable2 = variable3 = 0 Donc je remplacerais bien des instructions comme : iLineStart, iLineEnd, j = 0, 0, 0 Par : iLineStart = iLineEnd = j = 0Autre chose, Quentin a prévu un attribut pour la classe Page, qui retourne le nombre total de lignes.Donc, je remplacerais bien des instructions comme : nb = sp.window.curPage.lineOfOffset (len(sp.window.curPage.text)) Par : nb = sp.window.curPage.lineCountAutre chose, je pensais au Backspace, il ne supprime pas forcément un niveau d'indentation.Si l'utilisateur prévoit que ce soit des espaces, le Backspace ne supprimera qu'un espace à la fois.Alors que pour Tab et Shift Tab, Quentin a bien prévu le coup, quel que soit le nombre d'espace que l'utilisateur aura définit comme symbole d'indentation, ils seront bien considérés lors de l'ajout ou de la diminution d'un niveau.Donc, je te suggère que l'on retire le Backspace de la fonction onKeyUp, qu'en penses-tu?Je souhaitais aussi te demander, si tu n'y vois aucun inconvénient, de bien vouloir regarder avec moi les fonctions de sélections de la fonction courante et de la classe courante que j'ai moi-même créées.Je ne sais pas, mais j'ai l'impression que je n'ai pas bien ciblé chirurgicalement l'emplacement où une fonction ou classe serait susceptible de se terminer.Si tu as des idées, elles seront les bienvenues. Merci à toi. Bien amicalement, Abdel.----- Original Message ----- From: "Yannick Youalé" <[email protected]>To: <[email protected]> Sent: Friday, February 05, 2016 4:01 PM Subject: [progliste] Re: 6pad++- amélioration de l'extension forPythonRecoucou Abdel, Autre proposition d'amélioration pour l'extension forPython.Le but en réalisant ce qui s'approche le plus possible d'un IDE pour le langage pour python par les extension pour le 6pad++ est d'éviter aux utilisateurs de chercher ailleurs ce qu'ils peuvent directement trouver dans l'IDE.C'est pourquoi je propose peut-être la première fonctionnalité d'insertion, l'insertion des instructions d'en-tête de fichier.Plus précisément les commandes d'encodage du fichier. Exemple: # -*- coding: utf-8 -*-Mais pour ce faire, il faudrait que le forPython se distribue désormais avec un dossier dans lequel seront regroupés tous les fichiers annexes dont il aura besoin pour fonctionner.En pièce jointe à ce mail, je propose d'ailleurs le fichier "statements.txt" à mettre dans le même dossier que le script forPython), et qui contient une liste d'instruction d'en-tête de fichier que j'ai déja pu regrouper. Seulement six pour l'instant.Pour localiser le chemin vers l'extension en cours d'exécution, j'ai créé la fonction getCurScriptFolderPath() que tu veras plus bas.La fonction insertHeaderStatement(): se sert de tout ça et affiche une liste dans laquelle on doit choisir l'instruction à insérer à l'emplacement du curseur.Voici le code: Début du code python def insertHeaderStatement(): # propose une instruction d'en-tête de fichier à insérer sFile = getCurScriptFolderPath()+"\\statements.txt" if os.path.isfile(sFile): path = open(sFile,'r') s = path.read() # Récupération du contenu du fichier path.close() # Fermeture du fichier lignes=s.split("\n") lignes.remove("") # retrait des éléments videsi = sp.window.choice("Veuillez sélectionner une instruction d'en-tête de fichier à insérer", "Instructions d'en-tête de fichier", lignes, 1)if i>=0: sp.window.curPage.insert(sp.window.curPage.selectionStart, lignes[i]) # end if else:sp.window.alert("Le fichier statements.txt est introuvable près de l'extension 'forPython' \nVeuillez l'y installer et recommencer cette action.", "Fichier introuvable")return # end if # end def def getCurScriptFolderPath(): # renvoi le chemin vers le dossier contenant le script courant sPath = __name__ l = sPath.split(".") if len(l)>1: del l[-1] sPath=sp.appdir+"\\lib\\"+"\\".join(l) # si pas dans le dossier lib, on essai le dossier pluginif os.path.isdir(sPath)==False: sPath=sp.appdir+"\\plugin\\"+"\\".join(l)# si toujours pas trouvé, on ressort if os.path.isdir(sPath)==False: return "" return sPath # end def # création du menu associémnu.add(label="Insérer une instruction d'en-tête de fichier", action=insertHeaderStatement, name="insertHeaderStatement")Fin du code pythonSi tu trouves tout ça trop compliqué, donne moi l'autorisation et je les intègrerai dans la dernière version que tu as envoyé tout à l'heure.Amicalement, Yannick Daniel Youalé La programmation est une religion. Aimez-la, ou quittez-la. www.visuweb.net ----- Original Message ----- From: "_Abdel_" <[email protected]> To: <[email protected]> Sent: Thursday, February 04, 2016 11:24 PM Subject: [progliste] Re: 6pad++- amélioration de l'extension forPythonBonsoir la ML,Sans plus tarder, j'ai le plaisir de vous communiquer la nouvelle version del'extension "forPython", réalisée avec 6pad++ version beta. Grâce aux suggestions de Yannick, nous avons intégré la possibilité de pouvoir vocaliser les changements de niveaux avec tab, shift + tab, ou backSpace, lorsqu'on est en début de ligne.La seconde amélioration, que je qualifierais de plutôt importante, c'est que désormais, en réalisant le raccourci clavier "CTRL+M", chacune et chacun pourra modifier les raccourcis-claviers des différentes commandes, selon lespréférences. Idées d'amélioration.Je pense qu'il serait intéressant d'intégrer 2 autres modes de lecture des entêtes de lignes, "Lire les indentations" et "Lire les numéros de lignes etles indentations".Ca permettrait de reconnaître la mixité des caractères d'indentation s'il y en a et de pouvoir se corriger si on a fait une erreur en mélangeant destabs et des espaces.La seconde idée, ce serait d'isoler les regexp ayant permis de retrouver lesclasses et fonctions dans un dictionnaire.En effet, je trouve personnellement que les dictionnaires sont beaucoup plussouples à manier que les variables globales, mais ça reste un avis personnel.Autre idée, mais je pense qu'elle aura plus sa place lorsque j'aurais mieux compris comment implémenter une treeView avec la version alpha, ce serait depouvoir construire un plan du module en cours d'implémentation ou deconsultation, pour mieux reconnaître les relations classes/sous-classes etclasses/fonctions et attributs, etc. Mais ce n'est pour le moment qu'un rêve bien entendu. Ah j'oubliais, il faudrait aussi essayer d'intégrer la possibilitéd'exécuter du code comme dans le module de Cyrille, mais je n'ai pas encorebien compris comment implémenter cette partie. Toute aide sera la bienvenue les amis. Je vous souhaite une agréable soirée. Bien amicalement, Abdel.----- Original Message ----- From: "Cyrille" <[email protected]>To: <[email protected]> Sent: Thursday, February 04, 2016 10:30 PMSubject: [progliste] Re: 6pad++- amélioration de l'extens ion forPythonSalut Abdel, Merci, c'était bien ça ! Cyrille -----Message d'origine-----De : [email protected] [mailto:[email protected]] De lapart de _Abdel_ Envoyé : jeudi 4 février 2016 20:13 À : [email protected]Objet : [progliste] Re: 6pad++- amélioration de l'extens ion forPythonSalut Cyrille,Sauf erreur de ma part, il me semble que tu dois copier le répertoire lib figurant dans ton 6pad++ beta, dans le répertoire de ta version alpha, etle module ctypes sera alors importable sans PB. Je l'ai fait ici, et ça marche nickel. Bien amicalement, Abdel.----- Original Message ----- From: "Cyrille" <[email protected]>To: <[email protected]> Sent: Wednesday, February 03, 2016 11:13 PMSubject: [progliste] Re: 6pad++- amélioration de l'extens ion forPythonSalut Quentin, J'ai essayé de tester ton nouveau 6pad++. Mais il est incapable d'exécuter la ligne : import ctypesdans une de mes extensions, alors que la version beta le faisait bien.Sais-tu à quoi ça pourrait être dû ? Voici le traceback Python :File "D:\Applications\_test\6pad++_beta1_test2\plugins\perso.py", lineTraceback (most recent call last):6, in <module> import ctypesFile "C:\MinGW\ProgQ\9pad++\lib\ctypes\__init__.py", line 7, in <module>ImportError: No module named '_ctypes'>>> >>>Merci d'avance. Cyrille -----Message d'origine-----De : [email protected] [mailto:[email protected]] De lapart de QuentinC Envoyé : lundi 1 février 2016 20:53 À : [email protected]Objet : [progliste] Re: 6pad++- amélioration de l'extens ion forPythonBonsoir, Je vous mets ce soir en ligne en avant première une nouvelle version alpha de 6pad++. J'ai notamment enrichi l'API avec les task dialogs.J'y ai aussi ajouté les 3 plugins que j'avais commencé, si vous voulez les reprendre/continuer ce serait avec plaisir. Vous pouvez aussi vouscontenter de commenter bien sûr. Téléchargement ici: https://dl.dropboxusercontent.com/u/25797488/6pad%2B%2B.zip Les 3 plugins expérimentaux inclus sont : * audio_indent: un plugin qui sonorise les changements d'indentation * dialogs: un plugin qui va proposer des boîtes de dialogueadditionnelles et d'autres outils relatifs aux dialogues. Pour le momentje vous propose uniquement la TreeViewDialog. Vous pouvez déjà vous amuser pas mal avec ! * developer: un plugin dont le but était de regrouper desfonctionnalités utiles pour les développeurs. Ce qui est proposé pour le moment, c'est juste une petite démo qui ne fait pas grand chose. L'idéeest d'identifier le type de fichier en cours d'édition d'une part, et d'autre part le type de projet et son dossier racine. But du jeu, proposer des items de menus disponibles de manière globale mais réagissant différemment selon le type de fichier et le type de projet ouvert. Si on veut proposer des fonctionnalités pour aller à la fonction/classe précédente/suivante, commenter/décommenter une ligne, etc. multilangage, on peut partir de cette base. La détection de projet pourrait permettre d'ajouter des items genre compiler, exécuter, lancer les tests, le débogueur, etc. Conscient qu'on ne peut rien faire avec de concret pour l'instant, je voulais surtout avoir votre avis. Voilà, have fun ! Progliste : Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/[email protected]/ Je vous rappelle que les pièces jointe sont activés leur taille est limitéà 2 MO Pour accéder aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé,je vous répondrez en privé. ---L'absence de virus dans ce courrier électronique a été vérifiée par lelogiciel antivirus Avast. https://www.avast.com/antivirus Progliste : Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/[email protected]/ Je vous rappelle que les pièces jointe sont activés leur taille est limitéà 2 MO Pour accéder aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé,je vous répondrez en privé.Progliste : Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/[email protected]/Je vous rappelle que les pièces jointe sont activés leur taille est limitéà 2 MO Pour accéder aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé,je vous répondrez en privé. --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus Progliste : Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/[email protected]/Je vous rappelle que les pièces jointe sont activés leur taille est limitéà 2 MO Pour accéder aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé,je vous répondrez en privé.Progliste :Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribePour voir les archives de la liste : http://www.mail-archive.com/[email protected]/Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MOPour accéder aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je vous répondrez en privé.Progliste :Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribePour voir les archives de la liste : http://www.mail-archive.com/[email protected]/Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MOPour accéder aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gtPour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je vous répondrez en privé.
Progliste : Pour se désinscrire de la liste : mailto:[email protected]?subject=unsubscribe Pour voir les archives de la liste : http://www.mail-archive.com/[email protected]/Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO
Pour accéder aux fichiers de la liste http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr Ou en utilisant la nouvelle page de partage : http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je vous répondrez en privé.
