Sublime Blog Sublime Text News March 25, 2015 en hourly 1 Sublime Text 3 File Indexing March 25, 2015 Jon Skinner Some of the core features in Sublime Text 3 are Goto Definition and Goto Symbol in Project. Both of these work by indexing the files in the current project to determine where each symbol is defined.

When indexing is in progress, several low priority background processes will be launched to do the work, and a progress indicator will be shown on the status bar. In general, even for large projects, indexing should take only a few seconds, and be unobtrusive.

However, things can go wrong, so if you're seeing high CPU usage in Sublime Text 3, then file indexing is the first thing to look at. There are two things that can cause excess CPU usage from the indexing:

  • A corrupted index. Various events can cause the index itself to become corrupted, and when this happens, Sublime Text will do the indexing work, but be unable to write the results to disk, so it'll start again in the near future. The next build of Sublime Text will handle this situation more gracefully, but in the mean time you can check this for yourself: if the index is corrupted, there will be a log message in the console (accessible from the View/Show Console menu), which indicates which directory needs to be deleted to reset the index.
  • Some files. File indexing works by applying syntax highlighting rules to each file, and then extracting everything that looks like a symbol. The syntax highlighting rules are regex based, and some combinations of rules and files can cause the parsing to take a long time. See below to find out what's going on, and then consider adding the files to the index_exclude_patterns setting.

To see when files are being indexed, you can enter sublime.log_indexing(True) in Sublime Text's console. This will trigger Sublime Text to start logging relevant information whenever it indexes files.

To disable file indexing altogether, you can set the index_files setting to false. ]]> Sublime Text 3 Build 3080 March 24, 2015 Jon Skinner Build 3080 is now available, with many fixes, improvements and new features. Full details, and downloads, are on the Sublime Text 3 page.

Sublime Text 3, while still technically in beta, is the recommended version of Sublime Text to use: compared to Sublime Text 2, it's faster, more polished, and of course, has a lot of extra functionality. Download it now and give it a try!

There will be more Sublime Text 3 builds coming in the near future. If you're a registered user, you can get early access by using one of the Dev Builds. New dev builds are announced and discussed on the Forum - there's generally a new one each week. ]]> Sublime Text 3 Build 3065 August 27, 2014 Jon Skinner Build 3065 is now available. Full details, and downloads, are on the Sublime Text 3 page. ]]> Sublime Text 3 Build 3059 December 18, 2013 Jon Skinner Build 3059 is now available. Full details, and downloads, are on the Sublime Text 3 page. ]]> Sublime Text 3 Public Beta June 28, 2013 Jon Skinner Build 3047 is now available to both registered users and the general public. Build 3047 is the fastest, most stable, most polished version of Sublime Text yet.

New in 3047 is High DPI support for Windows and Linux, as well as improved file change detection, smarter atomic save, improved rendering performance and many bug fixes. The full list of changes is on the Sublime Text 3 page.

If you're coming from Sublime Text 2, some of the core features in Sublime Text 3 are:

  • Speed. Startup time, file load time, and Replace All have all been significantly improved. If you're using OS X with a Retina display, then you'll find huge rendering speed improvements too.
  • Symbol Indexing, for Goto Definition and Goto Symbol in Project. Complementing these are the Jump Forward and Jump Back features.
  • Improved HTML Editing, including tag and attribute completion as well as automatic tag closing.
  • Improved Project and Pane management, including multiple workspaces for a single project.
  • Richer API. Plugins are better insulated from the application, and now have a broader and fully threadsafe API to work with.

There's been hundreds of smaller improvements to almost every aspect. There's some more details in the original announcement.

You can download Build 3047, as well as see a full list of changes, at the Sublime Text 3 page. ]]> Sublime Text 3 Beta 3033 May 10, 2013 Jon Skinner Build 3033 is now available for registered users. The focus for 3033 has been on general polish, and cleaning up a few loose ends. It shouldn't be too long now until the first public beta for Sublime Text 3.

The full list of changes is available on the Sublime Text 3 page. ]]> Sublime Text 3 Beta 3019 March 11, 2013 Jon Skinner Build 3019 is now available for registered users to download. Some of the highlights since the first Sublime Text 3 beta:

Jump Back and Jump Forward - Jump Back allows you to go to previous editing positions. This goes hand in hand with Goto Definition: you can now inspect a symbol definition, and quickly jump back to where you were previously. Jump Back is bound to Alt+Minus^Minus by default.

Improved HTML Editing - HTML completions have been improved, and now offer completions for tag attributes. Tags are also closed automatically when </ is entered. Finally, auto indent logic is more friendly for HTML.

Retina Performance - Sublime Text is now super smooth on Retina displays, even at maximum resolution.

Large File Loading - Large plain text files, such as log files, now load significantly faster, finishing in 1/2 to 1/3 of the time depending on platform. Note that for files requiring syntax highlighting, there is only a small improvement in load time due to the regex matching bottleneck.

API Parity - Sublime Text 3 now has full API parity with Sublime Text 2, along with a nice set of additions. New functionality in 3019 includes per-command callbacks, and resource loading APIs. Full details are in the API Reference. Please note that while Sublime Text 3 supports all the API functionality in Sublime Text 2, plugins are by default not source compatible, and must be ported.

Lots More! The full changelog is available on the Sublime Text 3 page. ]]> Upgrades February 15, 2013 Kari With the advent of Sublime Text 3 we have been flooded with kind words as well as queries and suggestions; please take the below as a first attempt at answering the most pressing questions.

  • Upgrades from Sublime Text 2 to Sublime Text 3 will become available when version 3.0 is released later this year. Until such time, upgrading is not required, as Sublime Text 3 will accept Sublime Text 2 license keys during the beta period.
  • For customers who purchased in the 90 days prior to the announcement of Sublime Text 3, we are reducing the cost of upgrading from $15 down to $11. Customers who purchased Sublime Text 2 before this time period are still subject to a $30 upgrade fee when 3.0 is released.
  • All license keys purchased since the previous blog post announcing Sublime Text 3 are already full Sublime Text 3 license keys, and no upgrade will be required for these purchases. Please note that while these are Sublime Text 3 license keys, they are also valid for Sublime Text 2.

Please continue to direct your queries to and we will endeavor to get back to you as soon as possible. ]]> Sublime Text 3 Beta January 29, 2013 Jon Skinner The first beta of Sublime Text 3 is now available to download for registered users. Some feature highlights are below, followed by our new pricing and upgrade policies, and system compatibility for Sublime Text 3.

Symbol Indexing. Sublime Text now scans the files in your project, and builds an index of which files contain which symbols. This backs the new features Goto Definition and Goto Symbol in Project, both of which are available from the Goto menu. Goto Definition takes you to the definition of the symbol under the caret, while Goto Symbol in Project prompts you to select a symbol via fuzzy matching, and then takes you to the definition of that symbol.

Pane Management. Working with multiple panes is now more efficient, with commands to create and destroy panes, and quickly move files between panes. You can see the new options under View/Groups, View/Focus Group and View/Move file to Group.

Speed. Sublime Text has always had speed as a feature, but version 3 addresses some weak points. Startup time is now virtually immediate, and plugins no longer have the opportunity to bring this down. Replace All performance is also significantly faster.

API. Sublime Text now uses Python 3.3 for plugins, and runs them out of process, so any plugins that load native code no longer risk crashing the main Sublime Text process. The API is also fully thread-safe, and provides several callbacks that run asynchronously (e.g., on_modified_async). There are also new API functions, including full access to the project data. Sublime Text 2 plugins will require porting to work with Sublime Text 3, however in most cases the changes will be small.

Selected Changes:

  • Added Goto Definition, and Goto Symbol in Project
  • Significantly improved startup time
  • Significantly improved Replace All performance
  • Improved matching algorithm used for Goto Anything and auto-complete accepts transposed characters
  • UI: Enhanced pane management
  • UI: Previewing files from the sidebar creates a preview tab
  • UI: Improved animation in the side bar
  • Projects: Multiple workspaces can be created for a single project
  • Projects: When adding folders to the sidebar, symlinks are not followed by default. This can be changed by enabling follow_symlinks in the project
  • Build Systems: Added 'shell_cmd', which supersedes 'cmd', with more intuitive syntax
  • Build Systems: Better PATH handling behavior on OS X when using shell_cmd
  • Build Systems: 'Make' build system has an improved error message regex
  • Build Systems: Syntax file can be specified for the output
  • Build Systems: Word wrap is enabled by default
  • Find in Files: Improved handling of binary files
  • Find in Files: Line numbers are hidden in the output
  • Find: Find in Selection will no longer be automatically selected
  • OSX: Improved performance on Retina displays
  • OSX: 10.7 or later is required
  • OSX: 64 bit only
  • OSX: System version of Python is no longer a dependency
  • OSX: Italic fonts are synthesized when not available in the typeface
  • Linux: .deb files are provided
  • Linux: Starting from the command line will daemonize the process by default
  • API: Upgrade from Python 2.6 to Python 3.3
  • API: Plugins run out-of-process
  • API: Plugin API is now thread-safe
  • API: Some API events are now run asynchronously
  • API: begin_edit() / end_edit() are no longer accessible
  • API: Projects are exposed to the API
  • API: Added window.settings() and window.template_settings()
  • API: show_quick_panel() accepts an on_highlighted callback

Compatibility. Sublime Text 3 should work on all systems that currently run Sublime Text 2, with the exception of OS X 10.6. Unfortunately, it has not been possible to maintain 10.6 compatibility, as there is no C++11 toolchain for OS X 10.6, and Sublime Text 3 makes extensive use of functionality in C++11.

Pricing. The price for a Sublime Text license key has increased by $11, from $59 to $70, the first price rise in Sublime Text's five year history. All licenses purchased at this new price are valid for Sublime Text 3. Users with a Sublime Text 2 license key can continue using the key with Sublime Text 3 while it's in beta. When 3.0 is released, upgrades will be available for $30, or $15 for users who have purchased recently. The cut off date for the reduced upgrade price will be based on the actual date of the 3.0 release.

Sublime Text 3 is currently available to registered users only. An evaluation version will be available later.

Sublime Text 2.0 Released June 26, 2012 Jon Skinner var delay_scale = 0.7 var timer = null var animate = function(img, timeline, element) { var i = 0 var run_time = 0 for (var j = 0; j < timeline.length - 1; ++j) run_time += timeline[j].delay var f = function() { var frame = i++ % timeline.length var delay = timeline[frame].delay * delay_scale var blits = timeline[frame].blit var ctx = element.getContext('2d') for (j = 0; j < blits.length; ++j) { var blit = blits[j] var sx = blit[0] var sy = blit[1] var w = blit[2] var h = blit[3] var dx = blit[4] var dy = blit[5] ctx.drawImage(img, sx, sy, w, h, dx, dy, w, h) } timer = window.setTimeout(f, delay) } if (timer) window.clearTimeout(timer) f() } var animate_fallback = function(img, timeline, element) { var i = 0 var run_time = 0 for (var j = 0; j < timeline.length - 1; ++j) run_time += timeline[j].delay var f = function() { if (i % timeline.length == 0) { while (element.hasChildNodes()) element.removeChild(element.lastChild) } var frame = i++ % timeline.length var delay = timeline[frame].delay * delay_scale var blits = timeline[frame].blit for (j = 0; j < blits.length; ++j) { var blit = blits[j] var sx = blit[0] var sy = blit[1] var w = blit[2] var h = blit[3] var dx = blit[4] var dy = blit[5] var d = document.createElement('div') = 'absolute' = dx + "px" = dy + "px" = w + "px" = h + "px" = "url('" + img.src + "')" = "-" + sx + "px -" + sy + "px" element.appendChild(d) } timer = window.setTimeout(f, delay) } if (timer) window.clearTimeout(timer) f() } function set_animation(img_url, timeline, canvas_id, fallback_id) { var img = new Image() img.onload = function() { var canvas = document.getElementById(canvas_id) if (canvas && canvas.getContext) animate(img, timeline, canvas) else animate_fallback(img, timeline, document.getElementById(fallback_id)) } img.src = img_url }

Ladies and Gentlemen, I'm pleased to announce that Sublime Text 2 has graduated out of beta, with 2.0 now available for your text editing pleasure.

I'd like to thank everyone who's purchased, used or given feedback on Sublime Text 2 since the inital version in 2011. Sublime Text has had an amazingly positive reception, and it's time to raise a toast to many versions to come.

Compared to the last beta, version 2.0 offers a more polished experience, with over one hundred tweaks and improvements. Some of the notable ones are:

Retina display support for OS X. Additionally for OS X, the ODB Editor Suite is now supported, as is the system find pasteboard.

Quick Skip Next. Quick Add Next (Ctrl+D⌘D) is one of the most popular editing commands in Sublime Text. It's now been complemented with Quick Skip Next (Ctrl+K, Ctrl+D⌘K, ⌘D), to skip over matches, so you can select just the ones you want:

Lots more! Text drag and drop, improved build systems, CSS completions, modified tab highlighting with the highlight_modified_tabs setting, Vintage mode improvements, and many more. See the changelog for the full list.

Download Sublime Text 2.0 now, or to see what it's all about, take the tour on the home page. ]]>