Connaissez-vous un editeur/edi qui fasse une completion pertinente sur du code Python ?
Par pertinente j'entends :
- va chercher les attributs et les méthodes de mes classes memes si elles sont décrites dans d'autres fichiers
- va chercher les attributs et les méthodes de toutes les api
que j'importe
-et si je fait :
aaa=""
aaa.
ça me sort toutes les méthodes de la classe string, comme c'est le cas dans le shell python
- J'ai essayé Eric4, qui m'a l'air très complet, sait faire le café tout ça, mais visiblement la complétion ne marche chez moi. c'est peut être un problème d'intégration ou de dépendances (j'ai essayé sur Mandriva et Xubuntu)
- J'aimerais bien utiliser emacs, mais je m'y perds complètement entre les différents modes, les différentes versions d'emacs (22.1, 23) et les tutos [1] qui sont pas à jour pour installer les modes qui sont sensés faire de la completion.
C'est dommage parceque j'aime bien cet éditeur
- Je ne parles pas de Pydev+Eclipse parce que je veux programmer sur mon petit portable et j'ai pas envie de le transformer en grille pain.
Le seul que j'ai testé qui fasse une completion qui tienne la route c'est Komodo-Edit, le soucis c'est que d'autres features (du style navigateur de code) sont réservées à la version payante, à un prix prohibitif pour moi.
Donc, ami développeur python, as-tu résolu ce problème dans ton quotidien ? quel edi utilises-tu ? si la complétion nécessite une mise en place particulière, as-tu un tuto à jour ?
[1] par exemple : http://hide1713.wordpress.com/2009/01/30/setup-perfect-pytho(...)
# vim
Posté par 태 (site web personnel) . Évalué à 3.
Sinon, j'utilise ipython comme shell et interpréteur python et il fait la complétion tout seul comme un grand avec la touche tab. Quand je cherche une fonction dont j'ai oublié le nom, c'est suffisant.
voir http://michael-prokop.at/blog/2007/06/07/python-on-the-conso(...)
[^] # Re: vim
Posté par Octabrain . Évalué à 2.
[^] # Re: vim
Posté par 태 (site web personnel) . Évalué à 2.
Oui, bien sur, l'omni-complétion de vim marche n'importe où.
[^] # Re: vim
Posté par Octabrain . Évalué à 2.
[^] # Re: vim
Posté par 태 (site web personnel) . Évalué à 3.
Tu voudrais compléter sur les arguments ? Un truc du genre
def fun(x):
? Là, clairement, non.x.
Tu veux que la complétion sur les noms de fonctions et de classes marche à l'intérieur d'une fonction comme elle marche à l'extérieur, pas de problème.
De toute façon, comme tu l'as déjà remarqué, Python n'est pas typable statiquement donc même sur du code déjà écrit, on peut ne pas savoir le type. Alors aucun éditeur ne pourra toujours te proposer exactement les bons complétements.
[^] # Re: vim
Posté par niko380 . Évalué à 1.
Par contre je n'ai pas su faire marcher la completion a partir de mes classes
De plus je ne suis pas tres familier avec vi.
Sait-il faire du debuggage, l affichage d un navigateur de classes, l affichage de plusieurs buffer en separant l ecran ?
[^] # Re: vim
Posté par 태 (site web personnel) . Évalué à 1.
> Sait-il faire du debuggage ?
Non
> l'affichage d un navigateur de classes
Oui, avec les 'tags'. Et j'utilise le script taglist pour naviguer http://www.vim.org/scripts/script.php?script_id=273
> l affichage de plusieurs buffer en separant l ecran ?
Oui, avec :split et :vsplit
[^] # Re: vim
Posté par niko380 . Évalué à 1.
tu utilises pysmell ?
[^] # Re: vim
Posté par 태 (site web personnel) . Évalué à 1.
[^] # Re: vim
Posté par Étienne . Évalué à 3.
Pour avoir la même chose avec cpython, il suffit de mettre dans ton ~/.pythonrc
try:
import readline
except ImportError:
print ("Module readline not available")
else:
import rlcompleter
readline.parse_and_bind("tab: complete")
# A byte of Vim en parle
Posté par palm123 (site web personnel) . Évalué à 3.
ウィズコロナ
# Non
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 3.
aaa=""
aaa.
ça me sort toutes les méthodes de la classe string, comme c'est le cas dans le shell python
Ici, ton exemple est trivial.
Mais dans le cas général, cette complétion est impossible car ça oblige à évaluer le code pour savoir quelle est le type (= la classe) de ton objet aaa.
Exemple (je connais pas python, donc j'invente un langage, hein)
aaa=""
if (random(1.0)>=0.5) {
aaa=42
}
aaa.<completion_automatique>
Et là, il te sort quoi ? Il complète pour des chaînes ou des nombres ?
[^] # Re: Non
Posté par niko380 . Évalué à 3.
Même si dans certains -rares ?- cas, ce qu'il propose tombe à côté de la plaque, j'y gagnerais toujours dans la majorité des situations.
C'est d'ailleurs ce que fait apparement vim, donc ça ne me parait pas impossible.
[^] # Re: Non
Posté par Octabrain . Évalué à 3.
"
def f(a):
... a.<tab>
"
Tu complètes comment ?
# Vim
Posté par sifu . Évalué à 3.
- http://vim-fr.org/index.php/Python
- http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/
- http://www.sontek.net/post/Python-with-a-modular-IDE-%28Vim%(...)
Bon courage !
# Ulipad
Posté par cppuser . Évalué à 1.
Essaye celui la tu verras bien, je débute donc...
Bonne soirée
# geany
Posté par NeoX . Évalué à 2.
qu'il conseillait l'editeur geany qui serait multiplateforme, et capable de faire de la completion (mais je n'ai pas testé)
http://www.geany.org/
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.