66 votes

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

J'ai téléchargé un éditeur de texte sublime et je veux savoir quelle bibliothèque GUI est utilisée là-dedans.

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

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 ?

138voto

Hugo Points 1192

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 .

J'ai toujours l'intention d'écrire un article de blog avec des détails sur ce sujet, mais comme avec beaucoup de choses, je finis généralement par coder à la place. Sublime Text 2 est est presque entièrement en C++ (avec un peu d'Objective C pour Cocoa et de 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 fréquemment fréquemment), et ensuite s'assurer qu'il compile toujours ailleurs. Sublime Text 2 lui-même utilise une boîte à outils d'interface utilisateur personnalisée. Il y a beaucoup d'applications où où cela n'a pas de sens, mais ce n'est pas un choix si déraisonnable pour Sublime Text, où je sais toujours ce que je fais. Sublime Text, où j'ai toujours su qu'une grande partie des contrôles de l'interface devaient être personnalisés, quelle que soit la boîte à outils (par exemple, le contrôle du texte et les contrôles de tabulation). et les contrôles de tabulation). La boîte à outils de l'interface utilisateur se trouve au-dessus d'une couche d'abstraction multiplateforme. couche d'abstraction multiplateforme, qui est plus une union de fonctionnalités plutôt qu'un plus petit dénominateur commun.

0 votes

Il semble que ce lien n'existe plus (404 Not Found).

13 votes

Par l'auteur de Sublime 2 : "Sublime Text 2 utilise lui-même une boîte à outils d'interface utilisateur personnalisée". nous savons qu'il s'agit d'une interface utilisateur personnalisée. Et, en se basant sur les librairies de Sublime 2 et les messages d'erreur, nous pouvons rassembler les éléments suivants "interface utilisateur personnalisée" est basé sur GTK (du moins en partie).

1 votes

Est-ce que vous, les gars, pensez que "interface utilisateur personnalisée" est accéléré par le matériel (OpenGL), ou non ?

29voto

jcomeau_ictx Points 15736

Une petite recherche sur Google a suggéré qu'il utilise l'interface graphique Sublime, qui, à en juger par le paquet source Debian, est écrit en C++.

mais encore une fois, courir strings sur le système Linux sublime_text binary montre les bibliothèques partagées suivantes (équivalentes aux DLL de 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

ceci aussi suggère gtk.

16voto

jemeshsu Points 883

Il se peut qu'il ne soit pas écrit en Python. La raison pour laquelle vous voyez du code Python est que les utilisateurs peuvent écrire des scripts/plugin en Python pour étendre Sublime Text. Je soupçonne qu'il est écrit en C++ avec GTK comme boîte à outils d'interface graphique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X