Atom 1.39
July 23, 2019 jasonrudolph
Atom 1.39 speeds up find-and-replace operations by an order of magnitude, improves loading performance for large, single-line files, and upgrades Atom to Electron 3.1. Atom 1.40 beta brings richer integration with GitHub pull requests, improved reliability for many common operations, and continued enhancements to support for numerous programming languages.
Ripgrep-based find and replace
Performing a project-wide search on a large repository just got a lot faster with a new search backend based on ripgrep. For now, ripgrep is an experimental option that can be toggled in the settings for the find-and-replace
package.
We’ve been testing against repositories of various sizes, and we’re seeing searches run up to 22 times faster.
Type | Num Files | Time (standard) | Time (ripgrep) | Improvements |
---|---|---|---|---|
Small | 2K | 940ms | 62ms | 15X faster 🎉 |
Medium | 30K | 7.7s | 620ms | 12X faster 🎉 |
Large (returning 5 results) | 270K | 129s | 5.9s | 22X faster 🎉 |
Large (returning 26k results) | 270K | 142s | 17.5s | 8X faster 🎉 |
Upgrade to Electron 3.1
Atom now runs on Electron 3.1, which advances our underlying browser implementation from Chrome 61 to Chrome 66 and gives packages access to new browser features, including native support for async iterators and generators.
Improved performance loading large single-line files
In the past, loading multi-megabyte files containing a single line has caused performance problems for Atom. In 1.39, these kinds of files now load about 75 times faster than they did previously.
Improved JSX support in TypeScript
JSX expressions in .tsx
files are now supported by the ide-typescript
package. In addition, you can now provide type arguments in JSX expressions without confusing Atom’s syntax highlighting.
Community contribution highlights
We’re thankful for the community contributors that help Atom get better on each release. 💟
As usual, @50wliu makes a strong showing with multiple pull requests. He helped us fix apm installation issues on Linux, improved our approach to deserializing workspace items added by packages, and added the ability to hold ctrl/cmd when dragging to copy items in the tree view. He also contributed a few other PRs that were less visible but equally important. See the release notes for details.
Long-time contributor @Ben3eee continued his refinement of language support in Atom with a PR to improve the styling of strings in the Tree-sitter C grammar and added support for Tree-sitter to our JSON language package.
Also on the Tree-sitter front, @Caleb531 improved the handling of *args
and **kwargs
in our Python grammar.
There are many more details in the release notes.
Atom 1.40 Beta
See the status of pull request checks right inside Atom
When you’re working on a repository that has build statuses reported through the Checks API, you’ll now see the overall build status in the GitHub tab, and you can see the status of each individual check in the detail view for the pull request.
And speaking of pull requests, you can now edit pull request review comments and summaries directly within Atom as well.
Enjoy enhanced reliability
Atom 1.40 beta brings a more reliable experience across numerous common operations. When updating Atom, the “restart and install” operation provides more dependable behavior. Atom no longer stalls when opening a branch for a pull request that has a large patch (more than 1 megabyte). And the GitHub package now gracefully detects a loss of network connectivity and attempts to reconnect when the network becomes available again.
Experience improved language support
This release continues the march toward a rich and robust syntax highlighting experience for the many programming languages that Atom supports out-of-the-box. Among the improvements in Atom 1.40 beta are:
- Support for parsing and syntax highlighting of Rust macros
- Ability to use Tree-sitter grammars from the grammar selector
- Improved syntax highlighting for C and C++
Check out many more improvements and bug fixes in the release notes.
Get all these improvements today by joining the Atom Beta Channel!