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
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.
Check out many more improvements and bug fixes in the release notes.
Get all these improvements today by joining the Atom Beta Channel!