2011-08-18 9 views
57

He descargado un editor de sublimetext y quiero saber qué biblioteca de GUI se utiliza allí.¿Qué biblioteca de GUI es utilizada por el editor de texto sublime?

Los nombres de archivo de los archivos que se encuentran en el directorio de archivos ejecutables de edición son:

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  

¿Puedo encontrar la información de los nombres de los archivos?

Respuesta

126

Sublime Text 2 está principalmente codificado en C++ y utiliza un kit de herramientas de interfaz de usuario personalizado. Aquí está el autor, Jon Skinner, explicándolo: http://news.ycombinator.com/item?id=2822114.

sigo queriendo escribir un post con algunos detalles sobre esto, pero como con muchas cosas, por lo general terminan en lugar de codificación. Sublime Text 2 es casi en su totalidad C++ (con una noción de Objective C para Cocoa y Python para complementos). La codificación generalmente es bastante sencilla: código en una plataforma (principalmente Linux en este momento, pero cambio alrededor de con frecuencia), y luego asegúrese de que todavía compila en otro lugar. Sublime El texto 2 mismo usa un kit de herramientas de IU personalizado. Hay muchas aplicaciones donde esto puede no tener sentido, pero no es una opción tan poco razonable para Sublime Text, donde siempre supe que muchos de los controles UI eran que iban a tener que ser personalizados sin importar el kit de herramientas (por ejemplo, el control de texto y controles de pestañas). El conjunto de herramientas UI se encuentra sobre una capa de abstracción de plataforma , que es más una unión de la funcionalidad de la plataforma en lugar del mínimo común denominador.

+0

Parece que enlazan ya no existe (404 Not Found) – Greg

+11

Del autor del Sublime 2: _ "Sublime Text 2 en sí utiliza un conjunto de herramientas de interfaz de usuario personalizada" _, sabemos que es una interfaz de usuario personalizada. Y, en base a las libs y los mensajes de error de Sublime 2, podemos recopilar _ la "IU personalizada" _ se basa en GTK (al menos en parte). – 2Toad

+1

¿Ustedes, muchachos, piensan que _ _la "IU personalizada" _ es hardware acelerada (OpenGL), o no? – cubuspl42

19

un poco Google sugirió que está utilizando la GUI Sublime, que a juzgar por el paquete fuente Debian está escrita en C++.

, de nuevo, corriendo strings en el binario de Linux sublime_text muestra las siguientes bibliotecas compartidas (equivalentes de archivos DLL de Windows) que podría sugerir 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 sugiere GTK.

13

Es posible que no esté escrito en Python. La razón por la que ve el código de Python es que los usuarios pueden escribir scripts/plugins en Python para extender el texto sublime. Sospecho que está escrito en C++ con GTK como GUI toolkit.

+0

Es muy posible, gracias – Freewind

Cuestiones relacionadas