-
Notifications
You must be signed in to change notification settings - Fork 8
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
Not published in VSCode marketplace? #53
Comments
There are several reasons why it is not published: it is still work in progress, and it requires the ghdl-ls binary. So even if you could install it with a click, it wouldn't work without downloading the binary. I have to investigate how other projects deal with these constraints. |
To elaborate a bit further, ghdl-ls is tightly dependent on libghdl and the standard/ieee libs distributed as part of GHDL. Therefore, users cannot install any language server with any GHDL version. Moreover, there is no scheduled release scheme for GHDL and semver is not used. This makes it difficult to publish releases of the VSCode extension which include information about which GHDL versions are (in)compatible. Hence, the complexity is not to get the language server, but to distribute GHDL. |
I hope I can help you make some decisions:
Many extensions use a '(Preview)' tag to show it is still WIP. Visual Studio Live Share used to have this tag before general availability.
Other extensions, such as Python, automatically download and manage the language server. I believe it is safe to assume that an user that uses the extension will not use the language server on its own, or even know it exists, as what matters to him is taking advantage of code editor integration. I have seen other extensions that simply show a popup with a link to binaries / dependencies, so the user can quickly solve any issues
This indeed is a very big issue. How are you managing this compatibility issue right now in the language server? If the extension managed the language server on its own (possibly installing it in a separate place, with dedicated ports for the extension, avoiding conflicts with other installations), it could be bundled with the extension, and when a new version is uploaded, a new compatible version for the server is introduced |
Currently, we are not managing it. EDIT Also, there is a docker image in ghdl/docker which is updated/published periodically. |
A simple solution is to move ghdl-ls into the ghdl repo.
|
I think this is reasonable, given the small size of this project (the ls) and the tight dependency. Still, users would need to compile and install GHDL on their own, which I think is what this issue was/is about. |
Agreed. Moving the LS to the main repo + adding a descriptive message in the VSCode plugin so users know what / how they have to install is a good option |
@danilofuchs, since this is experimental yet, you might want to have a look at rust_hdl. See jeremiah-c-leary/vhdl-style-guide#312 interesting. |
Now moved. I have (quickly) updated the READMEs, but I am pretty sure the docker images have to be updated too.
I am not sure if 'make install' should also install the python part (ghdl-ls). Any hint ?
|
EDIT
|
• It seems that you moved the python server only. Are we going to keep this repo for the clients?
No, only the server will be moved.
• What about ghdl-ls/tests? If those are tests for the server, they should be moved to ghdl/ghdl.
Yes, at some points they will certainly be moved.
• NOTES? TODO?
I am not sure how them. The user entry point is ghdl-language-server, so I think this is the best place to document how to use it.
• The previous README required the user to install libghdl-py. However, this requirement seems to be gone: 82381b7 . Is it because libghdl-py is not required by the language server? Or is libghdl-py installed by default along with libghdl?
All the python files are installed together; so I think we could get rid of libghdl-py.
• I think that section https://github.com/ghdl/ghdl-language-server#usage belongs to ghdl/ghdl (subdir python) now. Here, a reference should be added.
I still prefer to let the documentation there.
• I don't think the python part should be installed by default, but it might be desirable to distribute it along with the tarball. So, make install would copy python sources to a known location, but not install them system-wide.
That makes sense for tarball, indeed.
• I will update docker images when I have a clear picture of the new structure.
Ok!
|
That makes sense. For now, libghdl-py is only used by the language server. If some other project uses it in the future, it is possible to split them again.
I think it would be cleaner if the docs and code for the clients were kept here, and the docs and code for the server were kept in ghdl/ghdl. Of course, references should be added between both READMEs. I believe that
Done. It fails because of |
I could not find the language server client in the marketplace (I'm sorry if this is my mistake and it is actually there, but I just couldn't find it!).
Building it manually is a huge entry barrier for anyone attempting to use this LS.
I work with VSCode daily in many different languages, and this is the only extension I had to clone the repo and build everything until I could get it to work, as opposed to VSCode's built-in single click install.
The text was updated successfully, but these errors were encountered: