Skip to content

Conversation

@F-Kearney
Copy link
Contributor

@F-Kearney F-Kearney commented Jul 22, 2025

Adding 💬 to indicate that thing is a language server protocol. (#4973)

The script used to check if something is an lsp is pulling from Microsoft's list of lsp's (https://microsoft.github.io/language-server-protocol/implementors/servers/) and also if the word contains "lsp" anywhere. This should have picked up most valid matches but there may be a few stragglers left.

@F-Kearney F-Kearney changed the title Appended 💬 emoji to any line containing an lsp (#4973) Appended 💬 emoji to any line containing an lsp Jul 22, 2025
@rymdbar
Copy link
Contributor

rymdbar commented Jul 23, 2025

Having those 💬 sure looks beautiful!

That's an impressive work you've done going through the list. As you state there may be a few stragglers left and I'd say it seems like a hard task to get it fully correct through a purely manual process. Unassisted by technology, it likely becomes impossibly to keep the list correct as new tools are added.

Luckily we do have the source code which already contains information on which tools are LSPs. What would you think about adding a script in the test/script/ folder, and make it run in CI just like the other scripts in that directory?

I started hacking together a check-lsp-emojis script on my fork. Far from ready, but arguably already usable for quality assurance of this PR.

When running it, I see that rust-analyzer is missing its 💬 and that cargo is misclassified to have one. Rust is a language I happen to know well enough be sure the script gets those two right.

Apart from those, there are a few more differences to be addressed. While some might be mistakes, it is not unlikely that there are tools which may operate both as LSPs and as single-shot linters. In case ale only use them in the latter form, creating issues to add the LSP mode as a new tools might be a welcome outcome of this exercise.

In the pushed version of the script all underscores are replaced with dashes. That was added to filter out false positives. Perhaps the right thing to do is to update the documentation to have tools mentioned with their correct "spelling". If instead it turns out the linter definitions has gotten the separator signs wrong, correcting them ought to only be done if at the same time adding the previous name as an alias.

Would you be up for running the script and do a round of re-classification?

@rymdbar
Copy link
Contributor

rymdbar commented Jul 23, 2025

In the pushed version of the script all underscores are replaced with dashes.

Only after posting the comment I realize this is due to :help ale-dev and thus works as intended.

Use snake_case names for linter names, so they can be used as part of variable names. You can define aliases for linters, for other names people might try to configure linters with.

Thus we do not wish to update linter names in the source code, even if their official names contain dashes.

Copy link
Member

@w0rp w0rp left a comment

Choose a reason for hiding this comment

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

I'll take this. Cheers! 🍻

@w0rp w0rp merged commit ac691b0 into dense-analysis:master Aug 13, 2025
7 checks passed
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.

3 participants