Coucou Abdel,

Quelques remarques et critiques constructives:

* Chez moi, j'ai changé le label du menu for python en simplement Python.
En effet, les autres menus principaux sont en un seul mot et ça génait un peu ma fibre lingustique. Mais tu sais ce qu'on dit sur les goûts.

* Dans le menu sélection, il y a un sous-éléments qui n'effectuent pas en réalité de sélection, mais plutôt un déplacement.
C'est l'item de menu "sélectionner la classe ou fonction".
Je te suggère de la renommer par exemple en "Liste des classes et fonctions...", et la déplacer dans le menu "navigation"

* dans le menu suppression, je trouve que les éléments supprimer la classe courante et supprimer la fonction courante seront assez peu utilisées en l'état et ne méritent donc pas d'avoir des raccourcis clavier. Principalement parce qu'il existe déja des fonctions de sélection de la classe et de la fonction courante. A mon avis ces raccourcis peuvent être plus judicieusement attribués à d'autres actions plus fréquemment exécutées.

* comme action de suppression candidate au menu suppression qui peut être plus fréquemment utilisé et qui selon moi mérite par exemple le raccourci ctrl+d est la suppression de la ligne courante. Avantage: supprimer une ligne en un coup, sans avoir à se soucier si l'indentation a bien été pris en compte.

Je te propose une version ci-dessous:

Début du code python

def deleteCurrentLine ():
# supprime la ligne sous le curseur
nb = 0
i, j = 0, 0
d, f = 0, 0
# on trouve le nombre de lignes total du document
nb = sixpad.window.curPage.lineOfOffset (len(sixpad.window.curPage.text))
# on trouve le numéro de la ligne courante
i = sixpad.window.curPage.lineOfOffset (sixpad.window.curPage.selectionStart)
# on identifie la position de début du texte à supprimer
d = sixpad.window.curPage.lineStartOffset(i)
# si on est à la dernière ligne
if i == nb:
 # la position de fin est la fin de tout le texte
 f = len(sixpad.window.curPage.text)
else: # ce n'est pas la dernière ligne
 # la fin est le début de la ligne suivante
 f = sixpad.window.curPage.lineStartOffset(i+1)
# end--if
# sélection de la portion à supprimer
sixpad.window.curPage.select(d, f)
# suppression
sixpad.window.curPage.selectedText = ""
sixpad.say("Suppression de ligne", True)
sixpad.say(sixpad.window.curPage.line(sixpad.window.curPage.curLine))
# end--function

Fin du code python

Evidemment, cette fonction peut être améliorée en faisant en sorte qu'elle prenne en compte plusieurs lignes sélectionnée.

Sinon, à part ça, ton travail est génial.
Et je viens officiellement de l'élire comme extension privilégiée pour mes scriptings dans le 6pad++.

Notamment, la fonctionnalité d'indication automatique du niveau d'indentation a fini de me convaincre.

Je le répète, t'es un chef  Abdel !

PS: je dois préciser qu'à chaque fois que tu envoi le forPython, je suis obligé de le customiser un peu. Essentiellement en faisant qu'il ne s'exécute que si un fichier python est ouvert, parce que j'utilise le 6pad++ pour bien d'autres choses..

Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
www.visuweb.net







----- Original Message ----- From: "_Abdel_" <abdelkrim.bens...@free.fr>
To: <progliste@ml.free.fr>
Sent: Thursday, January 28, 2016 9:01 PM
Subject: [progliste] Re: Extension pour 6pad++


Resalut les scripteurs !

L'extension forPython pour 6pad++ vient de connaître une nouvelle mise à
jour.

Désormais, toutes les commandes ainsi que leurs raccourcis claviers ont été intégrées dans un menu, "for Python", situé entre le menu "Format et le menu
Outils.

Vous pouvez maintenant sélectionner la fonction courante avec CTRL + R, la
classe courante avec CTRL + SHIFT + R, supprimer la fonction courante avec
CTRL + D, supprimer la classe courante avec CTRL + SHIFT + D.

Pour les suppressions, il faudra bien sûr les utiliser avec prudence,
sachant que l'on peut sélectionner puis supprimer si l'on préfère.

Autre chose, si vous avez d'autres extensions qui utilisent les événements
"pageOpened" ou "keyDown", essayez de les intégrer dans le module forPython,
en veillant à ce qu'il n'y ait qu'une seule fonction callback pour chaque
événement.

L'extension n'utilise que les événements "pageOpened" et "keyDown".

Voilà, j'essaie maintenant de voir s'il n'y aurait pas une possibilité
d'offrir aux utilisateurs de personnaliser les raccourcis clavier, en créant
par exemple un menu qui le proposerait.

En lisant l'aide de 6pad++, je vois que les membres ou attributs des menus
sont parfaitement modifiables, on devrait donc pouvoir le faire pour
l'attribut accelerator des items qui proposent une action callback.

Voilà, merci à vous...

Bien amicalement,
Abdel.

----- Original Message ----- From: "_Abdel_" <abdelkrim.bens...@free.fr>
To: <progliste@ml.free.fr>
Sent: Tuesday, January 26, 2016 11:45 PM
Subject: [progliste] Re: Extension pour 6pad++


Ouais ouais JF,

En fait, je pense que le PB que tu rencontres est lié au fait que tu as
déjà un événement "pageOpened" dans ton fichier "6pad++.py", puisque tu
m'as dis que tu en avais programmé 1.

Le PB est donc parfaitement logique, si tu utilise l'extension forPython,
étant-donné que cette extension l'utilise aussi, ca a du faire un conflit
d'événement "pageOpened".

Pour solutionner le PB, à mon avis, il faudrait tout simplement réunir
tout ce que tu veux faire dans une seule et unique fonction événementielle
"pageOpened", et ça devrait rouler.

Pour les constantes, Quentin vient de nous les donner, merci à lui.

Bien amicalement,
Abdel.

----- Original Message ----- From: "Jean-François Colas" <jfco...@free.fr>
To: <progliste@ml.free.fr>
Sent: Tuesday, January 26, 2016 10:41 PM
Subject: [progliste] Re: Extension pour 6pad++


Salut Abdel et tous,

Ah OK, donc c'est le même secret que celui que je m'apprête à mettre en
place. Ne pourrait-on pas fabriquer un fichier de constantes, un dico, un
truc qui permettrait de savoir directement que 38 c'est la flèche bas ou
je ne sais trop quoi... Bon ça c'est pour le côté pauvre progra mmeur,
l'ordi n'en a rien à carrer... Puis ya pas d'urgence.

Pour le plantage, tu as sans doute raison, mais ya trop de choses qui ont
changé entre hier et aujourd'hui, aujourd'hui ton module n'est pas
activable et je ne sais pas pourquoi parce que je n'ai pas gardé celui
d'hier... Ce qui est sûr, c'est que je suis assez près de débusquer un
zoh-oli plantage, il sera certainement dû à un truc qu'on devrait pas
faire mais il plante 6Pad++ sérieux. Je continue mes investigations
demain. Je crois que c'est lié à la gestion des instances de la classe
Page, décidément j'ai quelques soucis avec celle-là lol.

J.-F.


Le 25/01/2016 23:49, _Abdel_ a écrit :
Salut JF et la liste,

Pour les scan codes, voici mon secret :

def onKeyDown(activePage, vk):
   sp.say(str(vk), True)
   return True

Tu es obligé de retourner True si tu veux pouvoir refermer le programme
avec Alt F4, sinon, il ne voudra pas se fermer.

C'est normal, on ne retourne False que si l'on souhaite que la touche en
question fasse une action différente de celle par défaut.

Pour le plantage, je ne pense pas qu'il vienne de là, car ici, sur trois
PC, je n'ai eu aucun plantage...

En faite, si je n'avais pas associé un événement "pageOpened", le PB que
j'avais, c'est que l'événement "keyDown" que j'ai utilisé ne
fonctionnait qu'à Louverture de 6pad++, mais pas si j'ouvrais une
nouvelle page...

Apparemment, selon les tests que j'ai fait, l'événement "keyDown"
personnalisé ne fonctionne que lors de l'ouverture de 6pad++, mais il ne
fonctionne pas si l'on ouvre une nouvelle page avec Contrôle O, c'est
pourquoi je l'ai appelé également dans la fonction callback de
l'événement "pageOpened".

Sinon, je m'excuse pour le double postage de mon dernier mail, ne
l'ayant pas vu passer sur la liste, je l'ai envoyé à nouveaux...

Voila, bonne soirée et à bientôt.

Bien amicalement,
Abdel.

----- Original Message ----- From: "Jean-François Colas"
<jfco...@free.fr>
To: <progliste@ml.free.fr>
Sent: Monday, January 25, 2016 10:59 PM
Subject: [progliste] Re: Extension pour 6pad++


Hello tous,

Petit passage rapide sur mon adresse du soir...

Juste deux petits points à aborder, dont un qui me semble pas mal
d'actualité si on parle de développements communs.

Abdel, en regardant la fonction onKeyDown de ton module, je crois piger que le paramètre vk correspond aux "scan codes" des touches. Quelle est ta source pour déterminer ces scan codes? Je crois qu'il y a longtemps,
j'avais une référence, mais apparemment, je ne la retrouve pas...

Sinon, quand j'ai mis la nouvelle version de forPython, j'ai eu droit à
un vieux plantage:

6pad++.exe
6pad++.exe ne répond pas
Windows peut rechercher une solution en ligne. Si vous fermez le
programme, vous risquez de
perdre des informations.
Rechercher une solution et fermer le programme
Fermer le programme
Attendre que le programme réponde.
Voir des détails sur ce problème

Pour une raison apparemment toute bête: A la fois dans ce module et
dans mon 6Pad++.py, se trouve une ligne
sp.window.addEvent ("pageOpened", uneFonctionAssociée)

Ca me paraît pas systématique à 100%, alors peut-être déjà, est-ce que
c'est plausible en soi, ou bien est-ce que le problème vient forcément
d'ailleurs?

Voilà, ce sera mon dernier mot du soir...

J.-F.


Le 23/01/2016 18:17, _Abdel_ a écrit :
Salut JF et la liste,

Merci, je te joins ce que j'ai pu faire jusqu'à présent.

Avec CTRL + F8, on bascule désormais entre le mode "Dire les numéros
de
lignes", "Dire les niveaux", "Dire les numéros de lignes et les
niveaux", et "Ne rien dire", qui est le choix par défaut.

PS :

Ta méthode pour la lecture des entêtes et très précise, car elle prend
en considération les doubles ou multiples tabulations.

On verra par la suite comment créer un menu, et proposer la
modifications des touches de racourcis.

Vous pouvez me dire ce que vous en pensez, et vous êtes tout à fait
autorisés à modifier le code comme vous voulez, c'est un travail de
partage et d'entraide.

Bien amicalement,
Abdel.

----- Original Message ----- From: "Jean-François Colas"
<jfco...@free.fr>
To: <progliste@ml.free.fr>
Sent: Saturday, January 23, 2016 2:39 PM
Subject: [progliste] Re: Extension pour 6pad++


Hello,

Avec, pourquoi pas, à terme, un module permettant de modifier un jeu
de raccourcis clavier, avec liste des fonctions disponibles,
détection
de conflits de raccourcis... histoire de ne pas s'y perdre. Comme ça,
tu distribue ton module, je modifie le jeu de raccourcis, tu
distribues une nouvelle version de ton module, plutôt que de tout
reprendre je réapplique chez moi mon jeu de raccourcis si besoin...

J.-F.


Le 21/01/2016 14:12, _Abdel_ a écrit :
OK Mathieu, super !

En fait, pour que tout le monde y trouve son compte, ne vous
inquiétez pas pour les raccourcis clavier, chacun pourra très bien
modifier ses sixpad.window.addAccelerator comme bon lui semble.

Le plus important, ce serait de réussir à créer une extension digne
de ce nom, qui permette à chacun d'entre nous de créer des
programmes
Python en toute accessibilité, avec ce super éditeur qu'est 6pad++ !

Bien amicalement,
Abdel.

----- Original Message ----- From: "Mathieu Barbe"
<mathieu.ba...@cea.fr>
To: <progliste@ml.free.fr>
Sent: Thursday, January 21, 2016 1:53 PM
Subject: [progliste] Re: Extension pour 6pad++


C'est  bon, ça marche.
C'est pas grâce à ta technique.
Je suis trop nul, pour mes tests j'avais ouvert des fichier python
sans fonctions.
Le boulait!
Merci.



Le 21/01/2016 12:24, _Abdel_ a écrit :
Salut Mathieu,

C'est vrai que j'ai aussi eu un peu de mal pour faire reconnaître
l'extension.

Essaie ce qui suit:

1. Tu ouvres l'éditeur 6pad++.

2. Tu presses la touche F12 pour afficher la console.

3. Dans la console, tu écris ce qui suit, sans les guillemets bien
entendu, puis tu valides avec entrée :

"sixpad.setConfig("extension", "plugins/forPython.py")

Après, pour vérifier l'activation, toujours dans la console, tu
écris ce qui suit, puis tu valides sur entrée :

"print(sixpad.getConfig("extension"))"

Attention, pour ceux qui ne sont pas familiers avec Python 3.4, le
paramètre de print doit être entre parenthèses.

Bien amicalement,
Abdel.

----- Original Message ----- From: "Mathieu Barbe"
<mathieu.ba...@cea.fr>
To: <progliste@ml.free.fr>
Sent: Thursday, January 21, 2016 12:13 PM
Subject: [progliste] Re: Extension pour 6pad++


+1.
J'ai installé le plugins, mais cela ne fonctionne pas.
Puis-je voir si le plugins est bien lancé?
Math

Le 21/01/2016 12:12, QuentinC a écrit :
Salut,

En fait il faudrait utiliser des raccourcis genre Alt+Haut/Bas
pour aller de fonction en fonction ou de classe en classe. C'est
beaucoup plus pratique que de chercher F2.
Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/

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



--
Mathieu Barbe
Research Engineer at CEA-LETI
DRT/LETI/DACLE/ LIALP
Laboratoire Infrastructures et Ateliers pour le Logiciel sur
Puces

Commissariat à l’énergie atomique et aux énergies alternatives
MINATEC Campus | 17 rue des Martyrs | 38054 Grenoble Cedex 9
Tel : +33 (0)4 38 78 30 08
mathieu.ba...@cea.fr

Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/
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é.




Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/

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



--
Mathieu Barbe
Research Engineer at CEA-LETI
DRT/LETI/DACLE/ LIALP
Laboratoire Infrastructures et Ateliers pour le Logiciel sur Puces

Commissariat à l’énergie atomique et aux énergies alternatives
MINATEC Campus | 17 rue des Martyrs | 38054 Grenoble Cedex 9
Tel : +33 (0)4 38 78 30 08
mathieu.ba...@cea.fr

Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/
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é.




Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/

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


Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/
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é.



Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/
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é.




Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/

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


Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/
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é.




Progliste :
Pour se désinscrire de la liste :
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/
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é.





Progliste :
Pour se désinscrire de la liste : 
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/       

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

Répondre à