Blog

Brackets 0.42 Release (Themes!)

I’m really excited to introduce the 0.42 release of Brackets which includes support for themes as well as a few other significant features including file-mode switching and numerous community features. This is a big release for us!

Themes

We are particularly proud of the themes feature because it’s one of the biggest collaborations yet between the community and our team. In this case we worked very closely with Miguel Castillo to add his very popular Brackets-Themes extension into core. Miguel put in many, many hours working with the team to make this happen. He had to do quite a bit of work to refactor the original extension so it would fit the style of core code and be able to load themes as extensions. Huge thank you to both Miguel and all the community members who provided feedback.

This initial release not only lets you choose themes to change the code editor surface, but you can also change the default font and the font size. All of this can be done by going to the View > Themes… menu in Brackets. We currently ship with two default themes, the normal light theme that we’ve had as well as a beautiful new dark theme done by our designer, Larz.

themes-feature-screenshot

Themes install just like extensions, so to get new themes, you can use the Extension Manager. There are already a number of themes that are up on the extension registry. Long term we want to separate these themes into their own tab, but for now you can search for “theme” and you’ll see a bunch of new themes you can install and use. There’s also a GitHub organization for Brackets theme developers which has the repositories for a number of themes all in one place. If you’re interested in creating your own themes and publishing them, we’ve got a Creating Themes document on the Brackets wiki that will get you started.

Switch Language Mode/Syntax Definition of a File

We also added the ability to switch the language mode and syntax definition of a file. To use this feature, click the file extension in the bottom status bar. You’ll now see a list of all the different language modes that Brackets supports. You can select one and you’ll now get syntax highlighting for that file as well as any other rules that apply to it.

syntax-highlighting

Other Changes

Replace in Files: The headings for each file include a checkbox for quickly including or excluding all matches in the file.

Extension Manager enhancements: The Extension Manager now shows the list of languages that an extension has been translated for. You can also install a local .zip file containing an extension by dragging and dropping it into the Extension Manager dialog.

JavaScript code hints: There were a couple of bug fixes that addressed an issue where some files would cause Brackets to hang or crash when using JavaScript hints that we fixed in the last release. In this release we now provide a notification in the cases when that happens. When the notification pops up the file will now automatically be added to the jscodehints.detectedExclusions preference so it will ignore these files in the future.

New translations: Brackets has been translated into Traditional Chinese as well as Galician!

You can see the full list of changes as well as specific pull requests on the Release Notes.

Community Contributions

Again, a huge thanks to Miguel Castillo and all of the community members who helped add themes to core. It was one of our most substantial community contributions to date and it’s a huge feature for Brackets.

There were a number of other community contributions this release including:

12 Responses


Brackets 0.41 Release (Replace Across Files)

The latest Brackets release is out, introducing a much-requested feature: the ability to replace text across multiple files in one batch.

Replace In Files
The new multi-file Replace In Files works like a blend of the existing Find In Files and single-file Replace commands. Start by selecting Find > Replace In Files (or right-click a folder and select Replace In… to limit the scope):

Using the Replace In Files bar, you can choose which files to search (using the same “exclusion sets” as in Find In Files) and set your search & replacement text (using all the same options as available in the single-file Replace bar). But Brackets doesn’t modify any files yet – first you get an opportunity to review all the matches and filter out ones you don’t want to modify:

Once you’re done, click the Replace button in the panel header to replace all the selected matches. By default, Brackets will leave all these replacements as unsaved changes – so you can Undo if needed. But if more than 20 files are involved, Brackets avoids flooding your workspace with open documents by performing the replacement directly on disk. You’ll always be warned in this case, since such replacements can’t be reverted via Undo:

Note: if you like the bottom panel’s checklist of replacements, you can use it for single-file replace too! Either right-click a file and choose Replace In…, or start a regular single-file Replace and click the “Batch…” button (formerly named “All…”):

Lastly, we took this opportunity to considerably clean up and consolidate our find/replace-related code. This will make further improvements in the future much easier – look for more to come!

Other Changes
Stability improvements – In the past, certain JS files have caused Brackets to freeze or become sluggish while analyzing the file for code hint information. Now, files that take too long to process are automatically ignored (code hints will still show, but they will reflect only what was gleaned from the other files in the project).

Renaming files – There’s now another way to rename files in Brackets: in the file tree, click the selected file a second time to rename it. This is similar to how the Windows Explorer and OS X Finder file views work.

Community Contributions

Summer Break
Lastly, a quick reminder: Adobe members of the Brackets team will be on break the week of June 30 – July 4, so responses to bug reports & pull requests may be delayed.

7 Responses


Brackets 0.40 Release (Find Exclusion Sets)

We’ve shipped a new and improved Brackets! If you don’t see an automatic update notification for it, be sure to manually “Check for Updates” from the Help menu, because there was a bug preventing update notifications from appearing under some circumstances. This bug is fixed in 0.40, so you should be all set after this one.

Exclusion Sets

The biggest improvement in the new release is the ability to manage multiple “exclusion sets”. Previously, you could exclude files and folders from searches. It’s often the case that you need to exclude different files depending on the project you’re working on or even within a single project if you’re searching either the client side code or the server side code, for example. The new Find in Files bar supports that:

 

Exclusion sets in Find in Files

Exclusion sets in Find in Files

 

Why exclude files? Brackets file search has gotten much faster since we introduced caching a few releases back. Even so, if you can reduce the files that Brackets needs to search, you’ll speed up those searches even more. But, more importantly, excluding files you know are not interesting improves your search results and lets you focus on the matches you truly need.

The New UI

Where there used to be a button to modify the list of excluded files, now there’s a drop down menu.

New Exclusion Set… opens up the editing dialog to create a new exclusion set.

Don’t Exclude Files turns off the exclusions and tells Brackets you want to search all files in the project.

Below those two items is a list of your saved exclusion sets. The currently selected one has a checkmark next to it. You can edit any of these previously used sets by hovering over that item and clicking the pencil icon that appears.

Editing Exclusion Sets

Edit Exclusion Set dialog

Edit Exclusion Set dialog

The Edit Exclusion Set dialog lists the wildcards for files you wish to exclude, as it did before. New in this release is the ability to give the set of exclusions a name, making it easier to identify in the menu. Also new is a display of how many files in your project will be searched, giving you an idea of how effective your filter is. In the screenshot above, Brackets will only search 27% of the files in the project (which is Brackets itself). If I remove node_modules from the list of exclusions, I see this:

WithoutNodeModules

I jump to searching 76% of the files in the project. It’s easy to see that I’m saving myself a lot of searching. Even better, this can give me an indication that I may have typed something wrong if the effect on the number of files to search is more or less than I expected. Enter just “*” and you’ll see the number of files to search drop to zero!

API Documentation

Brackets committer Chema Balsas has put together a program for generating Brackets API documentation. He and Randy Edmunds worked together recently to get the docs cleaned up and online. There’s still some room for improvement, but we wanted to spread the word because these docs are already a big win for extension developers. Check out the Command Manager docs, for example, for a details on how commands are added to Brackets.

CommandManager Docs

CommandManager Docs

Community Contributions

8 Responses


Brackets 0.39 Release

Brackets is out and we’ve packed this release with features that improve coder workflows.

CSS Fuzzy Code Hints

Brackets now lets you type in a few key characters for CSS to quickly narrow the list of available properties and values for auto-completion.

Type in blc, for instance, and the auto-completion list will show border-left-color at the top of the suggestion list.

Brackets-Fuzzy-Css-Hints

Cut/Copy Entire Lines

When the selection is a cursor (or cursors, for those using multiple cursors), Cut and Copy operate on the line(s) containing a cursor. This is a fairly standard editor shortcut for quickly moving code around and it’s now available in Brackets.

Custom Language and Syntax Highlight Mapping

Telling Brackets to treat files with special names or extensions as Javascript or Python, or any other built in language, used to require writing a Brackets extension. Now you can set a project or global level preference through your user or project preferences file. The Language Support wiki page has the details for this new configuration option.

Extension Update Notifications

Back when we first introduced the Extension Manager, you had to manually update extensions, and it was pretty annoying. Then we added the “Update” button, which made it so you could easily update extensions with one click. But you still had to go into the Extension Manager each time you started Brackets to see whether there were any extensions that needed updating.

Starting in Release 0.39, Brackets will check for updates on startup and tell you if you have updates available with a green the toolbar icon. So, you don’t have to periodically check the Extension Manager to see if there are updates to your extensions.
update

Windows File Encoding Support

Currently, Brackets only has support for UTF-8 encoded files. Although we have plans in the future to add support for other encodings, we had no enforcement of this on Windows or Linux. This is enforced at the filesystem level on the Mac, but Linux and Windows have no such filesystem equivalent. This meant that Brackets would open any file for editing on Windows and Linux unless the file was a known file type.

For some projects, this meant that Find In Files would traverse into files that could not be displayed or edited, like binary files. These files are typically quite large and searching them would cause Brackets to become sluggish and even run out of memory. It also took a lot longer to find the results you were looking for.

Starting in Release 0.39, we added support for UTF-8 encoding enforcement on Windows and Linux and large binary files will not be searched.

New Find Menu

The Brackets Edit Menu was getting quite large so we moved all of the Find commands to their own menu.

brackets_new_find_menu

Community Contributions

Brackets wouldn’t be where it is today without its many contributors from around the world. Thank you!

9 Responses


Brackets 0.38 Release (Multiple cursors)

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.

Multiple Cursors

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:

Multiple selections with Live Preview

Multiple selections with Live Preview

You also notice little, unexpected ways in which the feature saves you time, like visually updating a bunch of strings:

Using multiple cursors to update several lines at once.

Using multiple cursors to update several lines at once.

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:

Messages appear when Quick Edit is not available.

Messages appear when Quick Edit is not available.

Other Changes

  • We’ve continued improving our project find features with performance improvements on Windows and usability improvements for all platforms.
  • .ico files 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

Community Contributions

 

24 Responses


Brackets Sprint 37 Build

It’s time, once again, for a new Brackets build. This release has a balance of new features, under-the-hood improvements, and some key bug fixes in recently-added features.

more

26 Responses


Brackets Sprint 36 Build

The New Year is here, and we’ve got a new Brackets build for you. OK, so we’re actually a few days past the Chinese New Year, but the new Brackets build is all the more awesome as a result.

more

15 Responses


Brackets Sprint 35 Build

Right on time for the season, Brackets Sprint 35 build was released to brackets.io yesterday. This will give you something to play with, for the time between unwrapping presents and hanging out with family and friends.
more

20 Responses


Brackets Sprint 34 Build

Brackets Sprint 34 marks a new beginning for our installation process. For the first time Brackets will be installed to just “Brackets” – not “Brackets Sprint 34″. This means that Brackets Sprint 35 will install over top of the Brackets Sprint 34 installation allowing for shortcuts, symlinks, pinned tasktray items,
dock icons, etc… to point to the Sprint 35 install. Linux SSHFS/REISERFS support, Extension Manager UI Updates, Pixel Guides, bug fixes, a new look, and some architecture changes round out the release.

more

17 Responses


Brackets Sprint 33 Build

When you install Brackets 33, you’ll find it easier to work on new designs, more convenient to work with images in your project and more fun to edit Bezier timing in your CSS files. A handful of other improvements round out the release.

more

15 Responses