From the first release of Sublime Merge, we talked about the simple joy of software that ‘gets it really right’. For our team it means going beyond the minimum, making software as good as it can be, and paying attention to the details.
It’s been almost two years since Sublime Merge was launched, and our focus hasn’t changed. Our aim for the newest update was to ‘get it really right’ when it comes to flexibility and customization.
Our community uses Sublime Merge in many different ways; from reviewing commits on a tablet, to writing thousands of lines of code on a desktop computer.
The latest version of Sublime Merge is packed full of upgrades, but we want to highlight some of the ways we’re giving you flexibility in the way you work. We’ve included the full list of changes at the bottom of this post (spoiler: there’s a lot)
- Repository-Level Tabs - use tabs to quickly navigate between multiple repositories
- Upgraded Commit UI - focus on what’s important with an upgraded commit UI
- Flexible Layouts - adapt the layout to fit your context and workflow
- Hardware Acceleration - harness your device's power with OpenGL rendering
To get started straight away, visit the download page.
Tabs. Tabs. Tabs.
As developers, we know that windows can be cumbersome. We want to give you the tools you need to focus on your work, not on managing windows.
The new update provides the flexibility to view all your projects in one window.
Upgraded Commit UI
We’ve re-worked the commit UI to support different workflows. You can now configure the commit message position, and toggle between individual files using file tabs. You’ll also notice the new file stats.
Your Git Client. Your Layout.
With the wide variety of displays available today, it’s important to have a flexible layout that works for you. Starting today, you can simply select the layout that fits your set up. Whether you’re on your 4K desktop screen, your work laptop, or even a tablet, we’ve got you covered.
Even Faster 🚀
We're excited to announce support for hardware acceleration in Sublime Merge. Powered by OpenGL, this will deliver significant rendering performance improvements on all platforms. It is enabled by default on MacOS, and can be controlled via the advanced section of the preferences.
What’s Next
Review Workflow
Many of us use Sublime Merge to manage and share our work, but some of us also use it to review work. File tabs have improved this process significantly, but there’s more work to do. Keep your eyes out for multiple improvements focused on improving your ability to review.
Image Diffs
If you’re using Git, chances are you’re working with images too. Just like code, it’s important to see what’s changed when modifying image files. We want to make reviewing image changes as seamless as reviewing code changes.
Plugin Support
It’s incredible to see what the community has built using the plugin system for Sublime Text. The plugin system offers the power and flexibility needed to truly personalize your experience. We know this is an important part of software that gets it really right, so we’ll be bringing it to Sublime Merge.
The Team Behind Sublime Merge
We’ve got big plans for the Sublime Merge team, and we’re full steam ahead! Our team is growing, and we’d like to welcome our new developer, David! You can thank him for features such as commit stats, the new console, and some great performance improvements in Sublime Merge.
Hello hello, I’m David, one of the software engineers at Sublime HQ.
I’m usually the quiet guy that enjoys making silly jokes whenever I’m given the chance.
As a programmer, I enjoy learning how to make traditional software, and writing clean compact code.
In my own time I’ve been learning how to draw digitally.
Feedback
As always, we’re excited to hear your thoughts. We’ll be on the forum listening to any feedback. We also have an official bug tracker, where you can share your ideas for features.
Thank You
We know times are tough on a global scale at the moment, and our thoughts are with all of you. We’d like to take this time to thank you for your feedback and participation, whether it be on the forums or the Discord server. Through this, you have guided Sublime Merge to where it is today. We’re excited to continue delivering the best Git experience to you.
Sublime Merge 2 Changelog
General
- New UI, including repository tabs
- GPU Rendering
- UI: Reworked Commit Dialog
- UI: Added repository tabs, to have multiple repositories open in a single window
- UI: Added file tabs when viewing the contents of a commit
- Implement commit signature creation and validation
- Added a lines changed indicator to commits
- Added command history, available from the Show Git Output icon in the tool bar
- Added commit message history, available from the dropdown arrow in the commit message box
- Added support for non-overlay scrollbars in diffs
- Added Resolve Ours / Resolve Theirs dropdown to unmerged files
- URLs in commit messages and git output can be opened via the context menu
- Left and Right keys can be used to expand/collapse merge commits
- Added Navigate/Go to Child
- Stash commands no longer supply -q by default, to work around a bug in Git 2.24
- Checking out a hidden ref will make the ref visible
- Add Recent Repositories to Welcome Page
- Search: Added before and after operators
- Added set_preference and toggle_preference commands
- Added gitflow publish support
- Preferences: Updating settings via the preferences dialog no longer clears comments in the settings file
- Preferences: Added Preferences entry for Ignore Whitespace in diffs
- Added checks for pushDefault and pushRemote when pushing
- Added Tools/Show Console
- Improved selection behavior while loading large repositories
- Improved menu auto hide behavior on Linux and Windows
- Improved performance with a very large number of untracked or modified files
- Improved performance in repositories with a large number of authors
- Running smerge without any arguments will focus the current window, if any
- Fixed not being able to commit when email is set to empty string
- Fixed a bug in destination path calculation in the clone dialog
- Fixed Create Tag with an empty message creating the tag incorrectly
- Fixed hunk staging using the wrong encoding in some scenarios
- Fixed shift+enter staging a file even when focus is in commit message box
Merge Tool
- Indentation settings are now automatically detected from the contents of the file
- Saving a file with unresolved conflicts will warn before saving
- Added a preference to trim trailing whitespace on save
GPU Rendering
- New hardware_acceleration setting will composite the UI on the GPU
- By default, GPU rendering is enabled on Mac, and disabled on Windows and Linux. This can be changed via the Preferences dialog.
- Details about the active GPU will be displayed in the Console
Git
- Git: Added support for smudge and clean filters, enabling Git LFS support
- Git: Improved handling of the working-tree-encoding attribute
- Git: Improved parsing of .gitattributes files
- Git: Added support for GUI encoding config
- Windows and Mac: Updated bundled Git to 2.26.2
- Windows: Fixed core.worktree support
- Submodules: Added Initialize All Submodules context menu
- Submodules: The location bar now indicates the value of HEAD for each submodule
Editor Control
- Expanded draw_white_space setting, supporting leading and trailing white space
- Unicode white space characters, such as the zero width no-break space, are now drawn as hex values. Controlled via draw_unicode_white_space setting.
- Spell Checking: Added support for languages with upper case characters after start of word
- Spell Checking: Updated dictionaries
- Spell Checking: Added support for non-utf8 dictionaries
- Spell Checking: System dictionaries are now available on Linux
- Spell Checking: Dictionaries in ~/Library/Spelling are now available on Mac
- Linux: Text drag and drop is now supported
- Linux: Added support for alternate font weight names
- Linux: Selection is no longer cleared when another application makes a selection
Text Commands
- Improved behavior of Wrap Paragraph
- Improved behavior of Swap Lines
- Added Selection/Expand Selection as a general mechanism to expand the selection
- Selection/Split into Lines will now split a selection into words if the selection doesn't contain any newlines
- Fixed swap_line_down not being able to swap an empty line onto the last line of a file
Input Handling
- Modifier key taps can now be used as part of a key binding. For example, ["ctrl", "ctrl"] will trigger when Ctrl is pressed twice without pressing any other keys in between.
- Linux: AltGr can now be used in key bindings via altgr
- Linux: Added a workaround for a touchscreen driver bug, which would cause right click and mouse scrolling to stop working
- Linux: When the menu is hidden, pressing alt will show it
- Linux: Improved compatibility with some keyboard layouts
- Mac: Fix Pinyin input
- Mac: Keypad keys can now be bound to as expected
- Mac: Improved compatibility with some keyboard layouts
- Windows, Linux: Hide mouse cursor when typing. Controlled via hide_pointer_while_typing setting.
- Windows, Linux: Fixed being unable to bind Ctrl+Break
- Windows: Improved IME support
- Windows, Linux: Added Shift+F10 key binding to open the context menu
UI
- Added highlight_gutter and highlight_line_number settings
- Themes now have a style property for title_bar element, for better integration with OS "dark modes"
- Color Schemes: Added glow font option to color schemes
- Color Schemes: Added support for the underline font style
- Linux: Show sequential key bindings in the menu
- Linux: Fixed context menu position being slightly offset
Rendering
- Windows, Linux: Added support for per-display subpixel ordering
- Mac: Improved window resize performance
- Windows: Fixed rendering bug where other applications could cause persistent artifacts via window animations
Application Behavior
- Added Safe Mode, to simulate a clean install. Enabled by passing --safe-mode on the command line.
- Holding down Shift on Windows, or Option on macOS, will start Sublime Merge in Safe Mode
- Settings containing a UTF-8 BOM will no longer fail to load
Syntax Definitions
- Added ability to "branch" within syntax definitions, for non-deterministic or multi-line constructs
- Many syntax highlighting improvements, including significant improvements to:
- Erlang, with thanks to deathaxe
- Improved syntax definition load time
- Fixed a performance issue with bounded repeats in regular expressions