[Python] piccolo editor con autocompletamento del codice

enrico franchi enrico.franchi a gmail.com
Mar 7 Lug 2015 00:27:05 CEST


2015-07-06 20:09 GMT+01:00 germano carella <germano.carella a gmail.com>:

> Per scrivere un editor a questo punto è semplicissimo, perché basta sapere
> dove si trova il cursore... yeah!
>

Vedrai che ci saranno ancora parecchi punti spinosi; in generale
l'auto-completamento in Python e' molto limitato (anche con Jedi) e per
farlo funzionare a modo si cerca di incrociare tutto l'incrociabile. Per
intenderci, spesso si cerca anche di inferire roba dalla documentazione
oltre che dai call sites e perfino dagli unittest (quando l'utente li
esegue, ovviamente, non prima).

In effetti *anche* con Jedi scrivere un editor non e' semplicissimo. Prova
ne e' che la maggior parte degli editor ed ide la fuori fanno pena;
principalmente perche' arrivare al 70% e' "facile", ma per avere un buon
editor non basta. Insomma, fidati che ce ne e' ancora tanto di divertimento
prima di arrivare in fondo.

In generale ci sono tanti aspetti... per dire, che fare con virtualenv? Etc
etc etc.

Ah, solo una cosa... magari intendevi altro: abbandona l'idea di un editor
che *esegue* codice in background. La gente non ti vorra' bene se lo fai.
Perche' prima o poi qualcuno digitera' un programma (senza aspettarsi che
venga eseguito -- ancora -- ) e questa cosa potrebbe cancellargli dei file,
mandare la proverbiale email di prova con titolo "CACCA" al proprio capo,
andare in fork bomb, etc etc etc. Jedi e' ok proprio perche' non *esegue*
il codice. Lo guarda e basta (il che e' safe).

Nota che quello che dicevo sugli unittest e' diverso: ovvero quando
l'utente *sceglie* di lanciare gli unit-test, l'editor semplicemente
raccoglie dati per fare migliore inferenza sui tipi (ma solo su comando
dell'utente).




-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150706/38d8e321/attachment.html>


Maggiori informazioni sulla lista Python