-
Notifications
You must be signed in to change notification settings - Fork 50
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
[Feature] Integrate language server #119
Comments
I'll write a nix expression so we can test the distro packaged aproach |
I've setup a COPR for Fedora 37, here: https://copr.fedorainfracloud.org/coprs/jcwasmx86/Swift-MesonLSP/ |
An APT Repo for Ubuntu 18.04/20.04/22.04 and Debian Stable/Testing/Unstable is set up here: https://github.com/JCWasmx86/swift-mesonlsp-apt-repo |
While #123 is probably in the last 10% before merging, here is some other stuff that has to be done after merging.
{
"Swift-MesonLSP": {
"versions": [
{
"number": "2.2",
"diff": "https://link/to/diff/of/previous/version",
"downloads": {
"win32-x64": {
"url": "https://...",
"hash": "12345"
},
"darwin-x64": {
"url": "https://...",
"hash": "12345"
}
}
}
]
}
} Updating would require that at one person merges a PR that updates the file. While auditing it to 100% is impossible, some basic checks for malicious code could be inserted there, albeit that would require effort you can't expect from volunteers. And obviously A can't review an update for the language server by A, as otherwise this entire construct would be pointless. I'm not sure what your threat model is, but I think it auto-updating functionality (Or even just updating using a dialog "There is an update available, do you want to install it?") needs to consider security at some point. (Or maybe I'm thinking a bit too much about it) |
Perhaps this document should just be part of the extension. I don't really see why it couldn't. I think we should stand on the shoulders of giants in this regard. I haven't looked at how it works, but the clangd extension has pretty good update functionality. |
Yes, makes sense. But if the JSON file is in the extension, it couples the language server to the extension version. But I will implement it in some next PR (Expect it sometime in the next five weeks) |
I don't really think that is a big deal if I am being honest. Maybe @dcbaker has a different opinion. |
Now post-release there are these issues left: Somewhat easy
Complicated
|
There is now server-side support for configs. It requires the configuration to be sent using the didChangeConfiguration notification with this JSON:
|
Over the past few moths, I have rewritten Swift-MesonLSP in C++ (Now called mesonlsp): JCWasmx86/mesonlsp#36 While it is not 100% finished yet, I wanted to outline the relevant changes: Miscellaneous
Config Options
Potential future for LSP in vscode-meson (My ideas)
Thoughts of implementing something that encourages user feedbackMy biggest problem is, that I basically have no feedback from the users. I asked once e.g. in the matrix channel for feedback, no responses. I'm basically in flying blind with e.g. requested features, bugs found, potential improvement ideas. I'm not sure how to solve this in a manner that is respectful to the user (==Absolutely no unwanted network connection, I'm absolutely against telemetry, and it's too much legal headache) and allows me to get user feedback. Swift-MesonLSP 3.1.3 has 7k downlads, so let's say 6.5k users. I basically get continuous feedback from one person, I got maybe 3-4 issues with bugs/feature requests, so basically I have no idea what people want. |
If I understood correctly, mesonlsp have I.e. my monorepo setup have several projects with different languages/build systems involved. mesonlsp looks for meson.build in root directory of workspace and I see such error messages in log:
|
Theoretically a client could send a set of Maybe this could help temporarily: https://code.visualstudio.com/docs/editor/multi-root-workspaces But in the long-term it would be nice to have some property like |
I wrote a language server for meson: https://github.com/JCWasmx86/Swift-MesonLSP (GPLv3, but currently trivially changeable as I'm the only contributor)
This is a tracking issue for integration in this extension.
Requirements
Runtime dependencies
muon
for formattingwget
orcurl
for downloading file wraps/patchesgit
/hg
/svn
for downloading the VCS wrapsgit
orpatch
for applying patchesOpen questions
I made a fork of vscode-meson for testing: https://github.com/JCWasmx86/vscode-meson
The text was updated successfully, but these errors were encountered: