Brackets (text editor)

Brackets is a source code editor with a primary focus on web development. Created by Adobe Inc., it is free and open-source software licensed under the MIT License, and is currently maintained on GitHub by open-source developers. It is written in JavaScript, HTML and CSS. Brackets is cross-platform, available for macOS, Windows, and most Linux distributions. The main purpose of Brackets is its live HTML, CSS and JavaScript editing functionality.

On November 4, 2014, Adobe announced the first (1.0) release of Brackets. The update introduced new features such as custom shortcut key combinations and more accurate JavaScript hinting. Brackets has a major focus on development in JavaScript-enabled, CSS and HTML. With release of version 1.0, Adobe announced a feature that extracts design information from a PSD file for convenience of coding in CSS. As of June 28, 2016, the feature is officially discontinued, due to low usage. However, Extract is still available via Photoshop and Dreamweaver, both of which are part of their paid service, Adobe Creative Cloud. In March 2021, Adobe announced it would end their support for Brackets on September 1, 2021.

The Brackets project was subsequently transferred to become a community-owned and driven project. The latest version release of Brackets is 2.2.1.

History
Adobe first started development of a text editor for web development on Edge Code, which was discontinued as of November 2014. This effort was later transformed into Adobe Brackets. With the release of Brackets 1.0, Adobe announced that the development of an open source application for web development was ready and was not an experimental project any more. Brackets contains contributions by more than 282 community contributors and has more than 400 requests for bug fixes and new features. Every version of Brackets had more than 100,000 downloads, and it was the 16th most popular project on GitHub as of January 16, 2015.

The Brackets repository on GitHub (Bracket repository) currently has 152 branches, 110 releases and 17,700 commits as of 30 Aug 2018. The source code is freely available under the MIT license. A developer can alter features on Brackets and personalize it for one's own convenience by forking the software code.

Adobe officially dropped support for Brackets on September 1, 2021 and recommended users migrate to Microsoft's Visual Studio Code. The final official release was version 1.14.2, but a community fork continues to release newer versions. In addition to the community continuation fork, Brackets community contributors announced Phoenix on August 30, 2021. Phoenix is a fork of Brackets targeting web browsers, as opposed to being a native application.

Features
Brackets provides several features including:
 * Quick Edit
 * Quick Docs
 * Live Preview
 * JSLint
 * LESS support
 * Open source
 * Extensibility
 * CodeMirror
 * RequireJS (modules)

Quick edit
Quick edit enables inline editing of CSS, Color Property, and JavaScript elements for developers. This built-in feature can be applied to multiple functions or properties simultaneously and all updates are applied directly to the file associated with the changed elements.

HTML file: Applying quick edit to HTML elements will display all corresponding CSS properties in a box beneath the selected element. Users can choose to create new CSS rules directly within the editor and edit a tag's CSS properties inline without leaving the context of the HTML file. JavaScript file: On JavaScript functions, quick edit performs the same procedure as with HTML elements, but it displays the selected function’s body within the drop down box. All updates to the function’s body will propagate and update directly within the corresponding JavaScript file. Files containing hex or RGB color properties: For color properties, quick edit will return an inline color picker for previewing and color adjustment functionality.

Live preview
When one clicks the respective code snippet in CSS/HTML the web browser immediately shows the output relating to that code snippet in web browser. This feature is termed as Live Preview, this feature also pushes code edits instantly to the browser to present an updated webpage as the developers modify the code. Brackets contains a Node.js backend that predicts what the code does as the developer types the code.

Two scenarios to live preview

No back end logic: Using Live Preview, Brackets will launch the chosen HTML file in Google Chrome by supplying static content from Brackets built-in server. This procedure does not require any back end logic to support viewing changes to the HTML file. Back end logic: With back end logic, Brackets will direct Google Chrome to a provided project URL running on a separate server, but it will disable support for HTML-related features. As a result, the browser will not be able to update any HTML, PHP, etc. files in real time and element highlighting will also be disabled for these files. Only edits and element highlighting related to CSS files will be reflected in real time. All non-CSS file updates will be auto-reloaded instead. These limitations exist because providing live editing functionality for HTML files requires injecting annotations into the HTML code before the code is loaded into the browser. These injections are normally handled by Brackets built-in server, but they are non-existent when projects make use of separate personal servers.

Functionality

 * 1) HTML & CSS real time updates (without reloading)
 * 2) Element Highlighting: Elements selected in HTML and CSS files are highlighted within the browser.

Live preview limitations

 * Currently only works with desktop Google Chrome (not open-source Chromium), as the target browser.
 * Opening developer tools in Google Chrome will close all live development connections.
 * All files to be viewed must be inside a currently open folder in Brackets.
 * Only one HTML file can be previewed at a time.
 * Real time updates are paused when syntactically invalid HTML is encountered. Brackets will resume pushing changes to the browser when the syntax is corrected.

Split view
This feature splits the main view into two parts. Users can split the view either vertically or horizontally according to their own convenience, thus allowing users to work on two files at same time. A developer can simultaneously work on two different files of two different types, two files of the same type, or even two different parts of the same file at the same time. Features such as Live Preview and Quick Edit work in both views.

Multiple file format support
Brackets supports codes from multiple file types from C++, C, VBScript to Java, JavaScript, HTML, Python, Perl and Ruby. The complete list comprises more than 38 file types. This gives the user flexibility to work on various files of a project simultaneously.

Brackets supports a feature called "PSD lens" that helps to smoothly extract each of pictures, logos and design styles from PSD file without opening Photoshop to check for them. By calling this feature a preview Adobe conveys that there is much work ahead before this feature can be perfected. This feature brought in positive reviews from developers, but many issues were reported during the initial stages of the feature release. The problem was later solved using an extension.

Theseus integration
Brackets integrates Theseus, an open-source JavaScript debugger that enables developers to set break points, step through code, and inspect the value of variables in real time. Theseus can be used to debug any extension in Brackets and is easily installed using the built-in extension manager. Theseus also works in conjunction with Live Preview through a proxy server that records a function and its associated values every time the function is called.

Extensions
Being built with HTML, CSS, and JavaScript, developers can provide additional functionality to Brackets by creating extensions. These extensions can be found and installed using the built-in extension manager. Extensions can also be found online via Brackets Extension Registry.