Sublime文本编辑器使用哪个GUI库?

66

我下载了一个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     

我能从文件名中找到信息吗?

3个回答

138

Sublime Text 2主要使用C++编写,并使用自定义UI工具包。以下是作者Jon Skinner解释它的原因:http://news.ycombinator.com/item?id=2822114

我一直想写一篇博客文章详细介绍这个,但就像许多事情一样,我通常最终选择编码。 Sublime Text 2几乎完全使用C ++(偶尔会使用Objective C来进行Cocoa和Python插件)。编码通常相当简单:在一个平台上编写代码(目前大多数情况下是Linux,但我经常切换),然后确保它仍然可以在其他地方编译。Sublime Text 2本身使用自定义UI工具包。有很多应用程序可能不太适合这种选择,但对于Sublime Text来说并不是一个不合理的选择,因为我始终知道无论使用哪种工具包,许多UI控件都必须是自定义的(例如文本控件和选项卡控件)。 UI工具包位于跨平台抽象层之上,这实际上更像是平台功能的结合体,而不是最低公共分母。


看起来该链接已不存在(404未找到)。 - Greg
13
根据《Sublime 2》的作者所说:“Sublime Text 2本身使用自定义的UI工具包”,我们知道这是一种自定义的用户界面。而且,根据《Sublime 2》库和错误信息,我们可以得出“自定义UI”基于GTK(至少部分地)。 - 2Toad
1
你们觉得这个“自定义用户界面”是硬件加速的吗(OpenGL),还是不是? - cubuspl42
有些帖子说他在Windows上使用Direct2D。现在找不到链接了。 - user1596212
2
几周前我在HackerNews上读到(我想是在Sublime Merge发布公告中),自定义UI工具包基于Skia - balu

29
一些谷歌搜索显示它使用Sublime GUI,根据Debian源代码包的判断是用C ++编写的。另外,在Linux的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

这也表明了gtk的必要性。


16

它可能不是用Python编写的。你看到Python代码的原因是用户可以使用Python编写脚本/插件来扩展Sublime Text。我怀疑它是用C++编写的,使用GTK作为GUI工具包。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接