-
Notifications
You must be signed in to change notification settings - Fork 68
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
How do create a language server with Surelog/UHDM #1712
Comments
|
@hs-apotell for comments. |
We are planning on doing this. We are still in a prototype phase focused on very basic features. I am bringing up this issue now so we have time to plan for a how to use surelog for a full featured language server.
Completely out of scope for us.
Please provide some test names. So far, we have been invoking the entire process thru' the command line args way and that isn't optimal for use with language server. All the saving/loading is happening as part of call to start/shutdown compiler. |
I changed the meaning of -nouhdm option (You can also use CommandLinePrser::writeUhdm(false) ) . |
We will give this a try and revert back with findings. P.S. This might take a little longer to implement since the developer who was working on it is on personal leave for next week. |
Is this still relevant or you have moved on some other solution? |
Yes. There is work in progress on this just not a very high priority at the moment for us. Unfortunately, the core developer working on this had to move on to something more pressing. The core issue is however still relevant. |
For other implementations: I've implemented a SystemVerilog language server as one of the tools in Verible, which at this point does syntax checking, linting and formatting https://github.com/chipsalliance/verible/tree/master/verilog/tools/ls |
Yes & No. Yes it will be open source once I have it working with demonstrable features. However, It may be part of Surelog. The reason being that I am employing two different parsers - Surelog & Verible. Surelog for static parsing i.e. all the files that aren't currently changing and Verible for dynamic parsing i.e. the ones that are actively being edited. I think this approach gets us best of both worlds. All the semantic information that Surelog can provide and the speed that is needed for dynamically changing code. |
Excellent! |
From @hs-apotell:
A little context here would have helped. My bad.
This issue came up because one of team member is attempting to get a language server working and he has a very basic functional prototype to showcase. It was just by accident that he was using a rather large design for test case and the response time was very slow. So, he decided to fallback to load just the cache file, which worked well (for the minimum feature set he was focusing on) until he pulled and refreshed his local repository.
Long story short, if we are working with rather large design and we know for sure that only a specific file has been modified and need to be refreshed in the cache, can this be done safely. This thread is the result of that discussion.
So, coming back to the need for fast response time that is required for a language server like utility to work, what can be done to avoid/prevent having to re-parse the entire design over and over again for every keystroke?
The text was updated successfully, but these errors were encountered: