web-dev-qa-db-fra.com

Quelle bibliothèque gui est utilisée par l'éditeur de texte sublime?

J'ai téléchargé un éditeur de sublimetext et je veux savoir quelle bibliothèque GUI y est utilisée.

Les noms de fichiers des fichiers qui se trouvent dans le répertoire des exécutables de l'éditeur sont:

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     

Puis-je trouver les informations à partir des noms de fichiers?

60
Freewind

Sublime Text 2 est principalement codé en C++ et utilise une boîte à outils d'interface utilisateur personnalisée. Voici l'auteur, Jon Skinner, qui l'explique: http://news.ycombinator.com/item?id=2822114 .

Je continue à vouloir écrire un article de blog avec quelques détails à ce sujet, mais comme pour beaucoup de choses, je finis généralement par coder à la place. Sublime Text 2 est presque entièrement C++ (avec une poignée d'Objective C pour Cocoa et Python pour les plugins). Le codage est généralement assez simple: coder sur une plate-forme (principalement Linux pour le moment, mais Je change souvent de place), puis je m'assure qu'il compile ailleurs. Sublime Text 2 lui-même utilise une boîte à outils d'interface utilisateur personnalisée. Il existe de nombreuses applications où cela peut ne pas avoir de sens, mais ce n'est pas un choix si déraisonnable pour Sublime Text, où J'ai toujours su que de nombreux contrôles de l'interface utilisateur devaient être personnalisés, quelle que soit la boîte à outils (par exemple, le contrôle de texte et les onglets). La boîte à outils de l'interface utilisateur se trouve au-dessus d'une couche d'abstraction multiplateforme, qui est plutôt une union de la fonctionnalité de la plateforme plutôt que du plus petit dénominateur commun.

130
Hugo

un peu de recherche sur Google a suggéré d'utiliser l'interface graphique Sublime, qui, à en juger par le paquet source Debian, est écrite en C++.

puis à nouveau, en exécutant strings sur Linux sublime_text binaire affiche les bibliothèques partagées suivantes (équivalentes aux DLL Windows) qui pourraient suggérer 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

cela aussi suggère gtk.

23
jcomeau_ictx

Il pourrait ne pas être écrit en Python. La raison pour laquelle vous voyez Python est que les utilisateurs peuvent écrire des scripts/plugins en Pythons pour étendre Sublime Text. Je soupçonne qu'il est écrit en C++ avec GTK comme boîte à outils GUI.

15
jemeshsu