2011-08-18 13 views
57

Ho scaricato un editor di sublimetext e voglio sapere quale libreria della GUI è utilizzata lì.Quale libreria gui viene utilizzata dall'editor di testo sublime?

I nomi dei file che si trovano nella directory Editor eseguibili sono:

bz2.pyd 
Microsoft.VC90.CRT.manifest 
msvcp90.dll 
msvcr90.dll     
PackageSetup.py 
PackageSetup.pyc    
pyexpat.pyd     
python26.dll 
python26.zip     
select.pyd 
sublimeplugin.py    
sublimeplugin.pyc 
sublimetext.exe    
unicodedata.pyd 
unins000.dat     
unins000.exe 
_ctypes.pyd     
_elementtree.pyd 
_hashlib.pyd     
_socket.pyd 
_ssl.pyd  

Posso trovare le informazioni dai nomi dei file?

risposta

126

Sublime Text 2 è per lo più codificato in C++ e utilizza un toolkit UI personalizzato. Ecco l'autore, Jon Skinner, che lo spiega: http://news.ycombinator.com/item?id=2822114.

io continuo intenzione di scrivere un post sul blog con alcuni dettagli su questo, ma come con molte cose, io di solito finiscono per codifica, invece. Sublime Text 2 è quasi interamente C++ (con un'infarinatura di Objective C per Cocoa e Python per plugin). La codifica è in genere abbastanza semplice: il codice su una piattaforma (per lo più Linux al momento, ma io cambio circa frequentemente), e poi assicurati che compila ancora altrove. Sublime Il testo 2 utilizza un toolkit UI personalizzato. Ci sono molte app in cui potrebbe non avere senso, ma non è una scelta così irragionevole per Testo Sublime, dove ho sempre saputo che molti dei controlli dell'interfaccia utente erano che dovevano essere personalizzati, non importa il toolkit (ad esempio, il testo controllo e controlli scheda). Il toolkit UI si trova sulla parte superiore del livello di astrazione della piattaforma , che è più un'unione della funzionalità della piattaforma piuttosto che del minimo comune denominatore.

+0

Sembra che puntano non esiste più (404 pagina non trovata) – Greg

+11

Dall'autore di Sublime 2: _ "Sublime Text 2 si utilizza un kit di strumenti di interfaccia utente personalizzata" _, sappiamo che è un'interfaccia utente personalizzata. E, in base alle librerie e ai messaggi di errore di Sublime 2, possiamo raccogliere _ "l'interfaccia utente personalizzata" _ è basata su GTK (almeno in parte). – 2Toad

+1

Ragazzi, pensate che quella "UI personalizzata" _ sia accelerata dall'hardware (OpenGL) o no? – cubuspl42

19

un po 'googling ha suggerito che sta usando la GUI Sublime, che a giudicare dal pacchetto sorgente Debian è scritto in C++.

poi di nuovo, in esecuzione strings sulla Linux sublime_text binario mostra le seguenti librerie condivise (equivalente di DLL di Windows), che potrebbe suggerire gtk:

/lib/ld-linux.so.2 
libgtk-x11-2.0.so.0 
libgdk-x11-2.0.so.0 
libatk-1.0.so.0 
libgio-2.0.so.0 
libpangoft2-1.0.so.0 
libpangocairo-1.0.so.0 
libgdk_pixbuf-2.0.so.0 
libcairo.so.2 
libpng12.so.0 
libpango-1.0.so.0 
libfreetype.so.6 
libfontconfig.so.1 
libgobject-2.0.so.0 
libgmodule-2.0.so.0 
libgthread-2.0.so.0 
librt.so.1 
libglib-2.0.so.0 
libpthread.so.0 
libdl.so.2 
libutil.so.1 
libm.so.6 
libX11.so.6 
libstdc++.so.6 
libgcc_s.so.1 
libc.so.6 
libgio-2.0.so 
libgio-2.0.so.0 
module.so 

this also suggerisce gtk.

13

Potrebbe non essere scritto in Python. Il motivo per cui vedi il codice Python è che gli utenti possono scrivere script/plugin in Python per estendere il testo sublime. Sospetto che sia scritto in C++ con GTK come toolkit GUI.

+0

E 'molto possibile, grazie – Freewind

Problemi correlati