Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lsp: Prefer server for formatting #148

Merged
merged 1 commit into from
Apr 11, 2024
Merged

Conversation

charlieegan3
Copy link
Collaborator

Formatting rego files using the language server is marginally faster than shelling out to the local opa binary.

Since Regal can provide formatting functionality, this should be used if available. This change alters the extension to use the formatting functionality of the Regal if the user has chosen to enable Regal.

If they disable Regal, then the opa fmt formatter will return.

Formatting rego files using the language server is marginally faster
than shelling out to the local opa binary.

Since Regal can provide formatting functionality, this should be used if
available. This change alters the extension to use the formatting
functionality of the Regal if the user has chosen to enable Regal.

If they disable Regal, then the opa fmt formatter will return.

Signed-off-by: Charlie Egan <charlie@styra.com>
charlieegan3 added a commit to StyraInc/regal that referenced this pull request Apr 11, 2024
In #641 support was added to
handle textDocument/formatting requests from clients. However, the
functionality was disabled for fear that users would see a confusing
message:

#638 (comment)

In open-policy-agent/vscode-opa#148 the regal
formatter will be used if the user has enabled regal and opa fmt will be
used if not. This means that there is only ever one formatter available
for rego and the user will see no message.

Signed-off-by: Charlie Egan <charlie@styra.com>
@charlieegan3
Copy link
Collaborator Author

StyraInc/regal#643 is the related part that is needed in the server for this to work: StyraInc/regal#643

charlieegan3 added a commit to StyraInc/regal that referenced this pull request Apr 11, 2024
In #641 support was added to
handle textDocument/formatting requests from clients. However, the
functionality was disabled for fear that users would see a confusing
message:

#638 (comment)

In open-policy-agent/vscode-opa#148 the regal
formatter will be used if the user has enabled regal and opa fmt will be
used if not. This means that there is only ever one formatter available
for rego and the user will see no message.

Signed-off-by: Charlie Egan <charlie@styra.com>
anderseknert pushed a commit to StyraInc/regal that referenced this pull request Apr 11, 2024
In #641 support was added to
handle textDocument/formatting requests from clients. However, the
functionality was disabled for fear that users would see a confusing
message:

#638 (comment)

In open-policy-agent/vscode-opa#148 the regal
formatter will be used if the user has enabled regal and opa fmt will be
used if not. This means that there is only ever one formatter available
for rego and the user will see no message.

Signed-off-by: Charlie Egan <charlie@styra.com>
// opaFormatterRegistration is used to track the registration of the OPA formatter.
// The registration is disposed when the language server 'regal' is enabled so that
// the language server can handle formatting instead of shelling out to 'opa fmt'.
let opaFormatterRegistration: vscode.Disposable | undefined;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neat!

@anderseknert anderseknert merged commit ed144ff into master Apr 11, 2024
4 checks passed
@anderseknert anderseknert deleted the prefer-regal-for-formatting branch April 11, 2024 11:25
srenatus pushed a commit to srenatus/regal that referenced this pull request Oct 1, 2024
In StyraInc#641 support was added to
handle textDocument/formatting requests from clients. However, the
functionality was disabled for fear that users would see a confusing
message:

StyraInc#638 (comment)

In open-policy-agent/vscode-opa#148 the regal
formatter will be used if the user has enabled regal and opa fmt will be
used if not. This means that there is only ever one formatter available
for rego and the user will see no message.

Signed-off-by: Charlie Egan <charlie@styra.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants