Release Notes: Sprint 36
Clone this wiki locally
What's New in Sprint 36
File System & Performance
- File/directory watchers: Brackets will detect external modifications to files almost instantly and update the project tree, editor contents, etc. automatically (manually refreshing the tree is no longer needed).
- File caching: Operations like Find in Files will be much faster when used repeatedly, as the contents of files are now cached in memory.
- Extension download counts: We will begin tracking how many times each extension has been installed, and will post the download counts at periodic intervals. This will help extension authors decide where to prioritize their efforts, and will help Brackets developers understand what functionality is most important for our users.
- "Safe Mode": Choose Debug > Reload Without Extensions to temporarily run Brackets without any extensions loaded for troubleshooting. Extensions are re-enabled when you restart Brackets through any other means.
- Automated restart after updating/removing extensions: Previously, Brackets would quit and force you to relaunch it manually; now Brackets reloads automatically.
- LESS Support
Visually edit CSS transition step timing functions: Invoke Quick Edit when your cursor is on any
steps()function in a CSS rule to edit it (building on top of the existing visual
cubic-bezier()editor). Also works in LESS & SCSS files.
- Visually edit CSS transition step timing functions: Invoke Quick Edit when your cursor is on any
- Overall UI
- Quick Open
Scrollbars - Scrollbars on all versions of Windows now have a flatter, Windows-8-style appearance that matches the overall Brackets UI design better.
CSS code hints - When selecting a property name hint, a space is now automatically inserted after the ":".
FileSystem - Nothing needs to change for most code; the public FileSystem APIs are unchanged except for the
"change" event (see docs for details). All file operations automatically receive the benefits of caching, and all Document objects are automatically updated (firing appropriate events) when file watchers detect an update.
The API for developing an alternative file system implementation has changed, however.
Linting - The process for registering a linter is unchanged, but it's now possible to register more than one linter per file type. (Except that, as before, the built-in JSLint provider is automatically disabled when any other JS linter is registered).
The result yielded by
CodeInspection.inspectFile() has changed: instead of a single linter result, it now returns an array of objects, each containing the result of one specific linter.
CSS tokens - The latest version of CodeMirror parses CSS files differently. If you rely on the raw tokens emitted by CodeMirror, your code will likely need updates; see PR #6268 for notes. However, the Brackets
CSSUtils API remains unchanged.
Node version - The internal copy of Node.js included in Brackets has been upgraded to 0.10.24 (from 0.10.18).
Dialog boxes - The built-in dialog box shown via
showModalDialog() no longer has a close button: it can only be dismissed by clicking the main buttons at bottom, or by pressing a shortcut such as Escape. Custom dialogs displayed via
showModalDialogUsingTemplate() are unaffected.
New/Improved Extensibility APIs
Preferences - Although new preferences APIs have been added, please continue to use the old APIs for now. The old APIs remain unchanged. The new APIs are still undergoing some flux and will not be ready for wider use until Sprint 37.
Node integration - New, simplified
NodeDomain API makes connecting to Node from Brackets code easier and less error-prone. Full docs TBD, but details here in the meantime.
Also, Node-side APIs can now send back binary data to Brackets by returning a
Buffer, which will show up on the Brackets side as an
ArrayBuffer. Read more.
addIndicator() can now actually be used to add indicators to the status bar (previously it did not do what the name implied, making it less useful). It also has a new optional parameter,
insertBefore. If specified, the new statusbar indicator is inserted before the indicator with id of
insertBefore. If omitted, the indicator will be inserted at the beginning. (In some previous sprints, the indicator
- Windows XP issues: Unable to install extensions, run Live Preview, or detect external file changes instantly. Bug 6951.
- Mountain Lion (OS X 10.8) by default will not allow Brackets to run since it's not digitally signed yet. To work around this, right click the Brackets app and choose Open. You only need to do that once -- afterward, launching Brackets the normal way will work also.
- Activity Monitor in Mavericks (OS X 10.9) says the Brackets Helper process is "Not Responding" even when it's working normally (#5794). You can safely ignore this unless Brackets is actually failing to respond when you click or type text.
- #2272: Windows Vista may not allow the Brackets installer to run (you may not see any error message). To work around this, right-click the installer file, choose Properties, and click the Unblock button.
- #3207: If you use a Sprint 21 or earlier build after using this build at least once, a few preferences such as Recent Projects may get reset. (You can back up your cache folder if you're concerned about this).
- #4362: Slow startup of Brackets and Live Preview on Windows due to Chrome proxy settings. See workaround.
- Debug > Run Tests is disabled in the installer/DMG distributions of Brackets, because the unit test code is not included. To run unit tests, pull Brackets from GitHub instead.
Community contributions to Brackets
- Debug > Reload Without Extensions command by Lance Campbell (part 2, part 3)
- After extension is updated/removed, reload Brackets instead of quitting by Lance Campbell
- Support ':line,col' syntax in Quick Open and Go to Line by Chema Balsas
- Add Greek translation by Theodore Keloglou
- Add Korean translation by Ki-soo Kim
- Include space after colon when inserting CSS code hints by Matt Stow
- Mac: Ensure Chrome is focused when launching Live Preview by fungl164
- Mac: Don't force a switch from mobile to discrete graphics GPU by David Mead
- Improve code hint behavior when pressing Backspace by Yu Ao (partially disabled for now)
- Disable "Update" button for "dev" folder extensions (which can't actually be updated) by Marcel Gerber
- Custom, flatter Windows scrollbar appearance by Tomás Malbrán
- Remove "X" close button from all dialog boxes by Bernhard Sirlinger
- Fix StatusBar.addIndicator() so it's usable by extensions by Lance Campbell
- Fix problem with new preferences scopes implementation by Arzhan "kai" Kinzhalin (Intel Corp)
Add CSS value hints for
list-style-imageby Matt Stow
Add CSS value hints for
marginand related properties (enumerated values only) by Matt Stow
Fix CSS value hints for
font-variantby Matt Stow
- Fix Find in Files UI wrap issues at narrow window sizes by ishanatmuz
- Fix UI overlapping the side toolbar at narrow window sizes by ishanatmuz
- Make CodeInspection API robust to linters that return bad line numbers by Arzhan "kai" Kinzhalin (Intel Corp)
- Fix UrlParams utility to handle URLs without parameters by Lance Campbell
- Fix spacing in "Install extension" progress dialog by Marcel Gerber
- Change AppShellFileSystem impl to match docs about optional args by Kyle Binns (subsequently switched to change docs to match impl instead)
- Update localization README to include new languages by Marcel Gerber
- Update About box copyright year by Marcel Gerber
- Czech translation update by kvarel
- Dutch translation fixes by Eric Smekens
- German translation update by Marcel Gerber (part 2, part 3, part 4)
- Italian translation update by asbruff
- Italian translation fixes by Soleedus
- Russian translation update by Arzhan "kai" Kinzhalin (Intel Corp)
- Russian translation update by sergeizelenyi
- Spanish translation update by Tomás Malbrán
- Swedish translation update by Mikael Jorhult
Pulling source code from Git
- A new brackets-shell build is required for this sprint.
- If you have ever built brackets-shell before, delete the
brackets-shell\deps\nodefolder and any Node-related files in
brackets-shell\downloads, then re-run
grunt setup(this one-time step is required due to a change in the node executable filename).
- Some submodules were updated this sprint. Run
git submodule updateto ensure your source tree is fully up to date.
Bugs fixed in Sprint 36
For details on the bugs addressed, please refer to closed sprint 36 bugs. Not all fixed bugs will be caught by this search query, however.