Tuesday, 11 June, 2019 UTC


Summary

Atom 1.38 includes some improvements to the GitHub package and improvements to JS, ERB, Python, and JSON language support. Atom 1.39 beta includes a new ripgrep-based project search backend, an upgrade to Electron 3.1, and much improved loading times for multi-megabyte files containing only a single line of text.

Github package improvements

  • Now Atom displays an “edited” label next to a pull request comment if it has been edited.
  • User badges (like “First time contributor” or “Collaborator”) are shown next to the authors on PRs and review comments to encourage people to be kind to new folks.
  • Resolved comments are grouped together to make the pull request conversation easier to read.

Improvements to JS, ERB, and Python language grammars

A few fixes have been added to the language parsers/syntax highlighter. Now Atom allows folding the default label of switch statements in JS, it improves the handling of comment characters in ERB and it fixes an issue when folding if statements in Python.

Tree-sitter parsing support for JSON

Syntax highlighting performance on JSON files is now substantially improved thanks to Atom now using Tree-sitter to syntax highlight JSON files by default. Syntax-based folding and selection while editing JSON are another nice benefit of the switch to Tree-sitter.
There are many more details in the release notes.
Atom 1.39 Beta

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.
Here are some results from our testing against repositories of various sizes. 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 when Tree-sitter is enabled. 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. These are some of them:
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.
Check out many more improvements and bug fixes in the release notes.
Get all these improvements today by joining the Atom Beta Channel!