posit-dev / posit-dev/air

Turning client-side settings into air.toml files

Open
#150 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
446
Forks
32
Avg merge
16h 48m
Merged PRs (30d)
1

Description

With #148 we now support client-side settings. As mentioned by @jennybc, it would be helpful to provide a way to turn such settings into an air.toml file. I'm imagining a custom LSP request that takes a folder path and produces the side effect of creating an air.toml file based on client settings.

  • The client sends the request to the server with the path. It should be a folder.
  • We send a configuration request from the server to the client with all relevant settings, for that path.
  • We get the results and use these to create an air.toml file in the folder.

This can be exposed as a Code command.

And the nice thing is that it would be a convenient way of snapshotting client-side settings in extension tests (cc @juliasilge). We'd set up different scenarios of settings and ask the LSP to create a snapshot of those settings in the form of an air.toml file.

This could also be a way to support editorconfig on the client side (cc @jmcphers). Users of editorconfig files probably have the editorconfig extension enabled, which means the workspace is automatically set up to use the editorconfig settings. So the request described above would be a way to transform an editorconfig file into an air.toml one, at least from VS Code and Positron. Edit: Actually not really because editorconfig changes the settings of editors, not the settings of workspaces, which we would really need here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the existing client-side settings flow and custom LSP requests between the editor and server. Done means a folder-targeted request can gather configuration, write an air.toml file, expose a Code command, and support snapshotting the resulting settings in extension tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, vscode
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.