The latest Brackets release now includes one of the most requested features: multiple cursor/selection support. Plus, as always, we’ve got a good collection of fixes and improvements throughout.
Brackets now lets you create multiple cursors and selections in order to make lots of similar edits at once. It’s useful for things like adding the same text in multiple places or quickly renaming a variable.
There are a couple of basic ways to create multiple cursors or selections:
- Hold down the Alt key, then drag vertically to create cursors, or drag diagonally to create a rectangular selections.
- Make one selection, then hold down the Cmd key (Mac) or Ctrl key (Win) and click or drag to add another cursor or selection.
The following video shows some examples of these techniques along with more ways to create and manage multiple selections.
Multiple cursors is one of those things that you might see the first time and say “that’s neat, but I already have find and replace”. And then you start using the feature and you find yourself using it several times a day. Selecting the instances of text that you want to replace and watching the text change as you type has a great feel, especially when coupled with Live Preview. In the example below, I use the “Add Next Match to Selection” keyboard shortcut (ctrl-B on Windows/Linux, cmd-B on Mac) to grab a few instances of the word “Brackets” and then change them:
You also notice little, unexpected ways in which the feature saves you time, like visually updating a bunch of strings:
Multiple cursors and selections provides a bunch of new editor actions, so you might want to check out our documentation for using the feature. Thanks to Marijn Haverbeke and the other CodeMirror contributors for this great new CodeMirror 4 feature.
Inline Editor Hints
It hasn’t always been crystal clear when you could pop open an inline editor for CSS styles (the Quick Edit feature on the Navigate menu). Brackets will now give you some hints when Quick Edit is not available:
- We’ve continued improving our project find features with performance improvements on Windows and usability improvements for all platforms.
.icofiles can be viewed directly in Brackets now.
- Brackets now supports “asynchronous linters”, which are code checkers that require a bit more time to do their processing before they present their errors.
- In the file tree, you can use ctrl/cmd-click to expand/collapse all of the siblings in the tree. ctrl/cmd-alt-click will collapse a subtree.
- We added a bunch of UI polish throughout Brackets
- Support asynchronous linting / code inspection providers by Arzhan “kai” Kinzhalin (Intel Corp)
- New preference: allow scrolling past the end of file by Tomás Malbrán
- Added ‘Collapse File Tree’ feature by Martin Zagora
- Correctly selects filename when known extension with a dot inside is used by Martin Zagora
- Exclude file ext from initial selection when renaming a file. by Robo210
- JSLint: Respect tabSize setting when useTabChar is true by Martin Zagora
- Fix issue with invalid hint hiding after code was changed by Marcel Gerber
- Fix convertPreferences to accept non-module clientIDs by Marcel Gerber
- Set the font size before opening the documents by Tomás Malbrán
- Fix fontSizeChange event for Restore Font Size command by Lance Campbell
- Fixed bug in utils/Async.PromiseQueue where a rejected promise keeps the… by jayther
- Restore the correct selections after “Toggle line comment” by Marcel Gerber
- [BezierEditor] Fix fadeout issue by Marcel Gerber
- This fixes 2 issues when changing the Close Other Preferences by Tomás Malbrán
- do not calculate size with hidden elements when resizing by Martin Zagora
- Use rotateplane cursor as spinner by Marcel Gerber
- Style Extension Update buttons to the match the green notification “badge” by Matt Stow
- Moved .notification icon in Extension Manager dialog by Olgierd Grzyb
- Fix a case when extension less file is importing other less files by Martin Zagora
- Exclude .git files from console warnings by Martin Zagora
- Enable image viewer for .ico files by Marcel Gerber
- add support for streamlinejs file extensions by fyockm
- added ssi and xsl file extensions by gidsg
- Update languages.json by diegoleme
- Grunt build error, case sensitive name CodeMirror.js by ackalker
- Fixed apostrophes. by FezVrasta
- Update Commands.js comments for preferences toggle handlers by Lance Campbell
- Simplified Chinese translation update by peterfyj
- Add English (UK) language distinct from English (US) (no specific localizations yet though) by Martin Zagora
- Czech translation update by kvarel
- Italian translation update by ShinDarth
- Italian translation update by Denisov21
- German translation update by Marcel Gerber
- Spanish translation update by Tomás Malbrán
- Swedish translation update by Mikael Jorhult