Brackets Blog

code the web

Brackets 0.43 Release

The team has been busy polishing the exterior of Brackets for our upcoming Max release so we’re packing some of Brackets’ existing features with a little extra love in this release.

SCSS/LESS support

Remember when the Quick Edit and Quick Find Definition features were first introduced but they didn’t work for your SCSS or LESS files? Well now they do. Any selector, even the ampersand Selector, can be located using Quick Find and any class, ID or tag selector can be targeted for QuickEdit in SCSS/LESS files.

And that’s not all—mousing over rules declared in SCSS or LESS files will highlight their usage in the browser when using the Live Preview feature. Editing rules, however, will still require that your source file be recompiled. May we suggest the LESS AutoCompile Extension or the brackets-sass extension to automatically recompile them on save?

Extra Dark Theme

Our Dark Theme has spread to make more of Brackets UI dark. Now, when you choose the Dark Theme, you’ll notice the status bar, context menus, dialogs, etc… are styled to match the rest of the UI. Custom Theme Authors can designate their theme to use the Dark or Light UI for the Brackets components which Themes Extensions cannot style.

Brackets After Dark

Themes Tab

The overwhelming popularity of custom themes support exploded our Extensions Manager dialog so Brackets committer Miguel Castillo took it upon himself to do something about it by creating a “Themes” tab.

This makes it easier to find a great theme from the vast array of Custom Themes already added to the registry and new ones being added daily.

Extension Manager Themes Tab

Find UI Improvements

We added a “Find Index” hint to the Find Bar.

Find 1 of 12

This helps to show where you are in the file so you know when you’ve wrapped back around to the beginning.

This is extremely useful for the Replace feature as it shows how many replacements are remaining.

Default Language Switcher

Language Support

The “Language Switcher” (that thing on the status bar that allows you to change the language starting in Release 0.42) could be used to change any document’s language. With Release 0.43, we’ve added the ability to save that setting for all files for the current file’s type.

 

Community Contributions

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

Extras

The Brackets team has updated the wiki article on working with multiple selections to include changes to how Multiple Selections are Pasted. Check it out and let us know how it helps you improve your productivity!

Brackets Weekly Episode 10

If you have trouble watching the video below, make sure you have Flash enabled for www.ccv.adobe.com.

Covered this week:

Keep up with Brackets Weekly and new releases of Brackets via the low-traffic brackets-announce mailing list.

Welcome New Brackets Committer Miguel Castillo

I’m very excited to be able to publicly welcome Miguel Castillo as the newest Brackets committer. Miguel is responsible for some fantastic Brackets extensions including Interactive Linter, Whitespace Sanitizer, Tomcat Manager, and of course Themes. It’s this last one that has had the biggest impact on Brackets as Miguel recently worked with the other committers to bring his extension into core so we could ship themes as a default feature in Brackets.

It was a huge undertaking and involved a lot of tireless effort on the part of Miguel to refactor his code to fit in with the other core features. But it’s also had a huge impact. Themes was one of the most requested features in the Brackets backlog and since releasing themes in Release 42 we’ve seen lots of themes uploaded to the extension registry.

I asked Miguel to write up a little bit about himself:

My early days were in C++ and Java building headless browsers to enable load testing of web platforms, then moved on to C# and WPF which ended up molding some of the current practices I like to follow.  Eventually, I found my way to building large scale web applications with JavaScript et all.  Since my move to JavaScript, I started my endless search for an editor that was for the Web, which eventually led me to Brackets.  Its extensibility and community has captivated me.

Currently, I am a software developer at Symphono. My focus is on web technologies where I get to work on cool stuff like WebRTC and D3 goodness, among others.

I love Open Source, Beer, and most of all, my family.

If you want to see what he’s up to or give him a congratulations shout-out, you can find him on Github and Twitter.

This brings the total number of community committers on Brackets to 8. We’re looking forward to adding more!

Brackets Weekly Episode 8

If you have trouble watching the video below, make sure you have Flash enabled for www.ccv.adobe.com.

Covered this week:

Keep up with Brackets Weekly and new releases of Brackets via the low-traffic brackets-announce mailing list.

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:

Love what you create

I love what you create

My name is Peter Thiess and I’m the engineering manager of the Brackets core team and a few related initiatives here at Adobe. After more than a decade developing proprietary software, it’s my pleasure to work on a project like Brackets and really exciting that Adobe has invested in this open source project.
Ever since I worked with tools like KDevelop and Subversion, or libraries like curl, the passion and dedication of Open Source contributors like Daniel Stenberg, have encouraged me to believe that there is a humble and humane force behind coding. Open Source is social coding and has always been, but it never felt as close as with Github; respect — you guys changed the world, yeah!

Individuals like Marijn Haverbeke or Tomás Malbrán have gained my deepest respect while working on Brackets. In addition, every single contributor to Brackets thrills and motivates me and my team every day. Not that one needs a lot of additional motivation to work on Brackets. It’s a real honor and a lot of fun to work with such smart engineers and an astonishing community. I love what you create! more

Brackets Weekly Episode 7

If you have trouble watching the video below, make sure you have Flash enabled for www.ccv.adobe.com.

Covered this week:

Keep up with Brackets Weekly via the low-traffic brackets-announce mailing list.

Brackets Weekly Episode 6

If you have trouble watching the video below, make sure you have Flash enabled for www.ccv.adobe.com.

Covered this week:

Keep up with Brackets Weekly via the low-traffic brackets-announce mailing list.

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.