Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What gui library is used by sublime text editor?

I've downloaded an editor of sublimetext and I want to know what GUI library is used in there.

The filenames of files that are in the editor executables directory are:

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      

Can I find the information from the file names?

like image 698
Freewind Avatar asked Aug 18 '11 04:08

Freewind


People also ask

What does Sublime Text use?

Sublime Text is a commonly-used text editor used to write Python code. Sublime Text's slick user interface along with its numerous extensions for syntax highlighting, source file finding and analyzing code metrics make the editor more accessible to new programmers than some other applications like Vim and Emacs.

Does Sublime Text have IDE?

Sublime also has tons of plugins you can find through Package Control. But it's only a text editor and not an IDE . An IDE is a software application that provides comprehensive facilities to computer programmers for software development.

Is Sublime Text a Python IDE?

Written by a Google engineer sublime text is a cross-platform IDE developed in C++ and Python. It has basic built-in support for Python.

What is the Sublime Text editor?

Sublime Text editor is a sophisticated text editor which is widely used among developers. It includes wide features such as Syntax Highlight, Auto Indentation, File Type Recognition, Sidebar, Macros, Plug-in and Packages that make it easy for working with code base.


2 Answers

Sublime Text 2 is mostly coded in C++ and uses a custom UI toolkit. Here is the author, Jon Skinner, explaining it: http://news.ycombinator.com/item?id=2822114.

I keep meaning to write a blog post with some details on this, but as with many things, I usually end up coding instead. Sublime Text 2 is almost entirely C++ (with a smattering of Objective C for Cocoa and Python for plugins). Coding is generally fairly straight forward: code on one platform (mostly Linux at the moment, but I switch around frequently), and then make sure it still compiles elsewhere. Sublime Text 2 itself uses a custom UI toolkit. There are a lot of apps where this may not make sense, but it's not such an unreasonable choice for Sublime Text, where I always knew that a lot of the UI controls were going to have to be custom no matter the toolkit (e.g., the text control and tab controls). The UI toolkit sits on top of a cross platform abstraction layer, which is more a union of platform functionality rather than lowest common denominator.

like image 97
Hugo Avatar answered Sep 22 '22 08:09

Hugo


a little Googling suggested it is using the Sublime GUI, which judging by the Debian source package is written in C++.

then again, running strings on the Linux sublime_text binary shows the following shared libraries (equivalent of Windows DLLs) which might suggest 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 suggests gtk.

like image 26
jcomeau_ictx Avatar answered Sep 24 '22 08:09

jcomeau_ictx