我已经下载了sublimetext的编辑器,我想知道那里使用的GUI库。
编辑器可执行文件目录中的文件的文件名是:
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
我可以从文件名中找到信息吗?
答案 0 :(得分:130)
Sublime Text 2主要使用C ++编码,并使用自定义UI工具包。以下是作者Jon Skinner解释:http://news.ycombinator.com/item?id=2822114。
我有意写一篇博文,其中有一些细节,但是 有很多东西,我通常最终编码。 Sublime Text 2是 几乎完全是C ++(对于Cocoa和C ++,有一些Objective C) 用于插件的Python)。编码通常很简单:代码 在一个平台上(目前主要是Linux,但我转过来 经常),然后确保它仍然编译在别处。升华 Text 2本身使用自定义UI工具包。有很多应用程序在哪里 这可能没有意义,但这不是一个不合理的选择 Sublime Text,我总是知道很多UI控件 无论工具包(例如文本),都必须进行自定义 控制和标签控件)。 UI工具包位于十字架的顶部 平台抽象层,更多的是平台联盟 功能而不是最低标准。
答案 1 :(得分:23)
一点Googling建议它使用Sublime GUI,由Debian源程序包判断是用C ++编写的。
然后,在Linux strings
二进制文件上运行sublime_text
会显示以下共享库(相当于Windows DLL),这些库可能会建议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建议使用gtk。
答案 2 :(得分:15)
它可能不是用Python编写的。您看到Python代码的原因是用户可以在Pythons中编写脚本/插件来扩展Sublime Text。我怀疑它是用C ++编写的,GTK是GUI工具包。