Releases: posit-dev/air
0.10.0
Release Notes
-
New
assignment-styleoption to enforce a preferred assignment operator, with the following values:-
"arrow": Use<-. This is the default, aligning Air further with the tidyverse style guide. -
"equal": Use=. -
"preserve": Assignment operators are preserved as is.
Note that prior to this option, Air's behavior was implicitly
"preserve". Set"preserve"or"equal"directly if you prefer either of those behaviors (#502). -
-
Fixed an issue where
# fmt: skip filein a file with CRLF line endings would result in\r\nline endings getting converted to\r\r\n(#498). -
Updated bundled tree-sitter-r, which comes with a few small fixes:
-
Hexadecimal constants with decimals are no longer parsed as two separate values (#495).
-
.{digit}(like.1) is now correctly parsed as a double rather than as an identifier. This means that things likefunction(.1 = 1) {}, where.1is expected to be an identifier but not a double, now correctly fails to parse (#496). -
elseis no longer consumed as eagerly in some special cases (#499).
-
Install air 0.10.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/posit-dev/air/releases/download/0.10.0/air-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/posit-dev/air/releases/download/0.10.0/air-installer.ps1 | iex"Download air 0.10.0
| File | Platform | Checksum |
|---|---|---|
| air-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| air-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| air-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| air-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| air-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| air-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.9.0
Release Notes
-
New
--stdin-file-path <path>to read from stdin. Read more about this on the website (#471). -
Air's behavior relating to directly supplied files and the
exclude/default-excludeoptions has changed to be safer by default. Previously,air format cpp11.Rwould formatcpp11.R, even though it was part of the set ofdefault-excludes, because we assumed that a direct request from a user like this could override these rules. However, tools such as pre-commit or IDEs that format via stdin will blindly callair formaton any file that changes and have no knowledge of whether that file should be excluded or not. For this reason, we now exclude files that matchexcludeordefault-excludepatterns even if they are directly supplied on the command line.Similarly,
air format my.qmdno longer attempts to formatmy.qmd. This file is not excluded byexcludeordefault-exclude, but is also not included by our internal set ofdefault-includes, which currently only accept.Rand.rfiles. Rather than blindly trying to format this directly supplied file, Air now ignores it (#476). -
New
--forceflag to bypass all exclusion and inclusion rules and force a file or folder to be formatted. This flag applies recursively, meaning that all files within a forced folder will also be forcibly formatted, regardless of file type. This flag should rarely be needed, but serves as an escape hatch for cases likeair format r-code.txt --force, which is no longer automatically formatted by Air as of this release due to the change mentioned above (#478). -
New
air generate-shell-completion <SHELL>hidden command that emits a script to stdout that generates shell completions. Supports bash, zsh, fish, powershell, and elvish (#477, @salim-b).For zsh, run the following to add to your
.zshrc:echo 'eval "$(air generate-shell-completion zsh)"' >> ~/.zshrc
For powershell, run the following to add to your profile:
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force } Add-Content -Path $PROFILE -Value '(& air generate-shell-completion powershell) | Out-String | Invoke-Expression'
Then restart your shell and type
air <tab>to see completions.
Install air 0.9.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/posit-dev/air/releases/download/0.9.0/air-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/posit-dev/air/releases/download/0.9.0/air-installer.ps1 | iex"Download air 0.9.0
| File | Platform | Checksum |
|---|---|---|
| air-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| air-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| air-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| air-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| air-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| air-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.8.2
Release Notes
-
Air is now distributed on PyPI as
air-formatter(#467).This allows air to be invoked via uv:
# Global install of `air` uv tool install air-formatter air format . # One-off run uvx --from air-formatter air format .
-
Air is now code-signed on Windows (#461).
Install air 0.8.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/posit-dev/air/releases/download/0.8.2/air-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/posit-dev/air/releases/download/0.8.2/air-installer.ps1 | iex"Download air 0.8.2
| File | Platform | Checksum |
|---|---|---|
| air-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| air-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| air-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| air-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| air-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| air-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.8.1
Release Notes
-
Added color to Air's terminal help. Disable by setting the environment variable
NO_COLOR=1(#447, @etiennebacher). -
Fixed an issue with Unicode elements and table alignment (#449).
Install air 0.8.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/posit-dev/air/releases/download/0.8.1/air-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/posit-dev/air/releases/download/0.8.1/air-installer.ps1 | iex"Download air 0.8.1
| File | Platform | Checksum |
|---|---|---|
| air-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| air-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| air-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| air-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| air-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| air-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.8.0
Release Notes
-
Added support for table formatting of
tribble()andfcase()calls (#113).
You can also opt into table formatting for any other call with the# fmt: tablecomment directive, or thetableTOML option. See also thedefault-tableoption to turn off Air's defaults fortribble()andfcase().Note: This feature is experimental. We'd be grateful for any feedback!
-
Formulas are now treated like assignment operators rather than like comparison operators, which means they now left-align expression chains on the right-hand side of the formula, respect persistent line breaks, and never automatically break around the
~operator itself (#336, #402).With model formulas:
# Before: y ~ year + age + size # After: y ~ year + age + size
With complex
case_when()calls:# Before: case_when( x %in% c(1, 2) ~ { this + complex + thing }, x %in% c(3, 4) ~ { that + thing } ) # After: case_when( x %in% c(1, 2) ~ { this + complex + thing }, x %in% c(3, 4) ~ { that + thing } )
Install air 0.8.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/posit-dev/air/releases/download/0.8.0/air-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/posit-dev/air/releases/download/0.8.0/air-installer.ps1 | iex"Download air 0.8.0
| File | Platform | Checksum |
|---|---|---|
| air-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| air-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| air-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| air-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| air-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| air-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.7.1
Release Notes
- We now recommend using Tombi for
air.tomlautocompletion and validation instead of Even Better TOML. Tombi is easily installable from the VS Code Marketplace, the OpenVSX Marketplace, as a Zed extension, or using some other supported installation method. We've improved on ourair.tomlconfiguration documentation to help tombi provide the bestair.tomlediting experience (#371).
Install air 0.7.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/posit-dev/air/releases/download/0.7.1/air-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/posit-dev/air/releases/download/0.7.1/air-installer.ps1 | iex"Download air 0.7.1
| File | Platform | Checksum |
|---|---|---|
| air-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| air-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| air-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| air-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| air-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| air-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.7.0
Release Notes
-
Autobracing is a new feature applied to if statements, for loops, while loops, repeat loops, and function definitions. This feature will automatically add
{}around the body of these code elements in certain cases to maximize readability, consistency, and portability (#225, #334).For example:
if (condition) a # Becomes: if (condition) { a }
fn <- function( a, b ) a + b # Becomes: fn <- function( a, b ) { a + b }
Single line if statements and function definitions are still allowed in certain contexts:
list(a = if (is.null(x)) NA else x) map(xs, function(x) x + 1)
-
Empty
{}are no longer ever expanded (#43).This allows for syntax like:
dummy <- function() {} while (waiting()) {} switch(x, a = {}, b = 2) function( expr = {} ) { this_first() expr }
-
Binary exponents are now supported in hexadecimal constants (#357).
-
NULLis now allowed in function call argument name position (#357). -
Fixed a case where some valid raw strings would cause a parse error (#255).
Install air 0.7.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/posit-dev/air/releases/download/0.7.0/air-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/posit-dev/air/releases/download/0.7.0/air-installer.ps1 | iex"Download air 0.7.0
| File | Platform | Checksum |
|---|---|---|
| air-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| air-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| air-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| air-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| air-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| air-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.6.0
Release Notes
-
Added documentation on using Air's GitHub Action, setup-air.
-
Added documentation on using Air in Zed.
Install air 0.6.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/posit-dev/air/releases/download/0.6.0/air-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/posit-dev/air/releases/download/0.6.0/air-installer.ps1 | iex"Download air 0.6.0
| File | Platform | Checksum |
|---|---|---|
| air-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| air-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| air-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| air-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| air-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| air-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.5.0
Release Notes
-
Added support for a
skipfield inair.toml(#273).This is an extension of the
# fmt: skipcomment feature that provides a single place for you to list functions you never want formatting for. For example:skip = ["tribble", "graph_from_literal"]
This
skipconfiguration would skip formatting for these function calls, even without a# fmt: skipcomment:tribble( ~x, ~y, 1, 2, 3, 4 ) igraph::graph_from_literal(A +-+ B +---+ C ++ D + E)
We expect this to be useful when working with packages that provide domain specific languages that come with their own unique formatting conventions.
-
Fixed an issue where
air.tomlsettings were not being applied to the correct R files (#294).
Install air 0.5.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/posit-dev/air/releases/download/0.5.0/air-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/posit-dev/air/releases/download/0.5.0/air-installer.ps1 | iex"Download air 0.5.0
| File | Platform | Checksum |
|---|---|---|
| air-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| air-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| air-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| air-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| air-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| air-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
0.4.1
Release Notes
- Language server configuration variables are now fully optional, avoiding issues in editors like Zed or Helix (#246).
Install air 0.4.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/posit-dev/air/releases/download/0.4.1/air-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/posit-dev/air/releases/download/0.4.1/air-installer.ps1 | iex"Download air 0.4.1
| File | Platform | Checksum |
|---|---|---|
| air-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| air-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| air-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| air-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| air-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| air-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |