3.1.2
Housekeeping release, from the Package Control reviewer's report on the channel
entry. No behavior changes to how URLs and paths are matched or opened.
Fixes
No more console flash on Windows
Windows gives every child process its own console window unless it's told not
to, so the helpers Open URL launches only for their side effect flashed an empty
black box on screen. Four launch sites now pass CREATE_NO_WINDOW:
- System Open —
starthands the file off and exits immediately, so its
console was pure flicker; the app that opens is a separate process. - Open in a new Sublime window
- Custom openers run through the
runsentinel - Path transforms run through a shell command
Run in Terminal is deliberately unchanged — a visible console is the whole
point of that command.
Linux and Windows key bindings no longer leak onto macOS
The Linux/Windows bindings lived in Default.sublime-keymap, which Sublime
Text loads on every platform, macOS included. So a Mac install quietly got
three bindings it was never meant to have (ctrl+alt+u,
ctrl+alt+shift+o, ctrl+alt+shift+d) plus a collision on
ctrl+alt+shift+u, where the macOS file happened to win.
That file is now split into Default (Windows).sublime-keymap and
Default (Linux).sublime-keymap. Every platform gets exactly the bindings
documented in the readme, and nothing else.
If you had customized bindings in your User keymap, they're untouched.
Preferences → Key Bindings opens the right file off macOS
The menu item pointed at Default ($platform).sublime-keymap, which only ever
resolved on macOS — on Windows and Linux there was no such file to show. Fixed
by the split above. Both Settings and Key Bindings now also open your
User file side by side, so there's somewhere to type.
disable_default_key_bindings now also disables alt+double-click
The mouse binding was missing the guard the six key bindings all had, so it
stayed live after you'd turned the defaults off.
Internals
url.py moved to lib/url.py. Sublime Text loads every root-level .py in a
package as an independent plugin, so a shared helper sitting in the root was
being imported twice under two names. Nothing user-facing depends on it.