[Python] piccolo editor con autocompletamento del codice

enrico franchi enrico.franchi a gmail.com
Mer 8 Lug 2015 14:44:04 CEST


2015-07-07 6:45 GMT+01:00 germano carella <germano.carella a gmail.com>:

>
>
> Il 07/07/2015 00:27, enrico franchi ha scritto:
>
>
> 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.
>
>   Sì sì, ho già visto, per esempio, che se importi il modulo clr,
> (package pythonnet), jedi non riconosce i componenti dotnet tipo
> System.Windows.Forms, però inspect.getmembers ci riesce...
>

Eh, bella forza! Uno esegue il modulo e poi chiede direttamente agli
oggetti oh, ma tu che metodi hai?
L'altro fa analisi statica.


>  In generale ci sono tanti aspetti... per dire, che fare con virtualenv?
> Etc etc etc.
>
> Giusto... virtualenv non lo avevo considerato... arg! comunque, se
> qualcuno volesse aiutarmi io ne sarei felicissimo!!!
>

Guarda, scusa ma passo. Non ho una macchina windows in 2 case e non so
manco che faccia abbia.
E trovo, sinceramente, il problema delle UI desktop poco interessante. Su
tutto, *per me* il problema editor e' risolto dal '91; capisco che per te
non lo sia e fai benissimo a proseguire, ma io mi troverei a lavorare su un
progetto che non uso.

Come nota a margine, non sono sicuro che per te la cosa "vincente" sarebbe
scrivere da 0 un editor (accessibile) dovendo risolvere tutta una serie di
problematiche su cui sei poco familiare invece di lavorare con gli
sviluppatori di qualcosa di esistente per renderlo accessibile (e da quello
che capisco, sei molto forte sul campo). Poi magari mi dici che i candidati
non esistono perche' di fatto si tratterebbe di riscriverli e fine della
fiera...  pero' non so... Chrome e' accessibile? E Atom?


>
>
>  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).
>
>   Grazie Enrico, l'ho subito tolta, anche perché non serve piu', come
> giustamente dici tu. La mia idea iniziale era quella di poter segnalare
> all'utente anche gli errori in fase di scrittura, ecco perché avevo pensato
> alla console in background.
>

Eh... ma puoi farlo (in tanti modi). Solo non eseguire il codice.
Ovviamente e' ok passarlo ad un parser e andare ad acchiappare i syntax
error, quello si.
Poi ci sono vari tool per altre classi di errori (PEP8, flake8, pylint)



>  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).
>
>  Ecco... Sugli unit test ho bisogno di un'infarinatura, perché non ne so
> molto; anzi, sono proprio ignorante in materia... :D
>
>
Ecco, io direi di lavorarci un pochetto. Lavorare ad un'applicazione
complessa senza unit-test e' semplicemente tafaziano. Possibile che ci
arrivi in fondo, ma se avessi seguito una procedura piu' robusta nello
stesso tempo ne avresti scritte 3 di applicazioni complesse. E sarebbero
state tutte di qualita' piu' elevata.

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


Maggiori informazioni sulla lista Python