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

ruff server: Introduce the ruff.printDebugInformation command #11831

Merged
merged 2 commits into from
Jun 11, 2024

Conversation

snowsignal
Copy link
Contributor

@snowsignal snowsignal commented Jun 10, 2024

Summary

Closes #11715.

Introduces a new command, ruff.printDebugInformation. This will print useful information about the status of the server to stderr.

Right now, the information shown by this command includes:

  • The path to the server executable
  • The version of the executable
  • The text encoding being used
  • The number of open documents and workspaces
  • A list of registered configuration files
  • The capabilities of the client

Test Plan

First, checkout and use the corresponding ruff-vscode PR.

Running the Print debug information command in VS Code should show something like the following in the Output channel:

Screenshot 2024-06-11 at 11 41 46 AM

Copy link
Contributor

github-actions bot commented Jun 10, 2024

ruff-ecosystem results

Linter (stable)

✅ ecosystem check detected no linter changes.

Linter (preview)

✅ ecosystem check detected no linter changes.

Copy link
Member

@MichaReiser MichaReiser left a comment

Choose a reason for hiding this comment

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

This is excellent! Do we have a place where we could document the new command? Like, have an issue, run this command and create an issue in the RUff repository.

Would it be possible to show the user a message hinting them that they should look at the output panel? It may otherwise not be clear where they can find the debug output

crates/ruff_server/src/session/index.rs Outdated Show resolved Hide resolved
Copy link
Member

@dhruvmanila dhruvmanila left a comment

Choose a reason for hiding this comment

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

Thank you for doing this! This will be very helpful

@snowsignal snowsignal merged commit 4e9d771 into main Jun 11, 2024
20 checks passed
@snowsignal snowsignal deleted the jane/server/command/print-debug branch June 11, 2024 18:42
@rainzee
Copy link

rainzee commented Jun 12, 2024

Considering a command that could be added to vsc? Using the C-S-p command center

image

@dhruvmanila
Copy link
Member

@rainzee I think astral-sh/ruff-vscode#495 does that.

dhruvmanila added a commit that referenced this pull request Jun 13, 2024
## Summary

This PR updates the server capabilities to include the commands that
Ruff supports. This is similar to how there's a list of possible code
actions supported by the server.

I noticed this when I was trying to find whether Helix supported
workspace commands or not based on Jane's comment
(#11831 (comment))
and I found the `:lsp-workspace-command` in the editor but it didn't
show up anything in the picker.

So, I looked at the implementation in Helix
(https://github.com/helix-editor/helix/blob/9c479e6d2de3bca9dec304f9182cee2b1c0ad766/helix-term/src/commands/typed.rs#L1372-L1384)
which made me realize that Ruff doesn't provide this in its
capabilities. Currently, this does require `ruff` to be first in the
list of language servers in the user config but that should be resolved
by helix-editor/helix#10176. So, the following
config should work:

```toml
[[language]]
name = "python"
# Ruff should come first until helix-editor/helix#10176 is released
language-servers = ["ruff", "pyright"]
```

## Test Plan

1. Neovim's server capabilities output should include the supported
commands:

```
  executeCommandProvider = {                                                                                                                          
    commands = { "ruff.applyFormat", "ruff.applyAutofix", "ruff.applyOrganizeImports", "ruff.printDebugInformation" },                                
    workDoneProgress = false                                                                                                                          
  },
```

2. Helix should now display the commands to pick from when
`:lsp-workspace-command` is invoked:

<img width="832" alt="Screenshot 2024-06-13 at 08 47 14"
src="https://github.com/astral-sh/ruff/assets/67177269/09048ecd-c974-4e09-ab56-9482ff3d780b">
snowsignal added a commit to astral-sh/ruff-vscode that referenced this pull request Jun 13, 2024
## Summary

Introduces a command to print debug information. It should look like
this in the Output window:

<img width="632" alt="Screenshot 2024-06-10 at 12 21 07 PM"
src="https://github.com/astral-sh/ruff-vscode/assets/19577865/671c38a0-00f6-4fd1-a4e6-824cc788b54f">

## Test Plan

See astral-sh/ruff#11831 for testing
information.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
server Related to the LSP server
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Server: Debug command
4 participants