-
Notifications
You must be signed in to change notification settings - Fork 12
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
Support alternate config file/directory location #66
Comments
Although I said we could use the values from the To address that we would have to potentially parse the build file (pom.xml / build.gradle) to determine the plugin configuration. So far the language server has not needed to parse the build file. |
I wonder too about the idea of querying an opened XML file for a This does present the possibility that a user is getting assistance for an XML file that the LMP/LGP is not configured to use... i.e. a dead/stale file rather than a "live" one. Perhaps once the plugin is run a warning could be generated for a case like this... even though the warning wouldn't appear initially? Another downside though is performance... though parsing with a streaming API like STAX should be quick it still seems like there could be a case where it scales badly. |
I have assigned David to lead this, with support from Evie. Some ideas we discussed today for starting on this:
|
We discussed this a little bit at today's design issues call. For idea 2 above, if we added a new goal/task to the plugins that simply processed the build file to generate the |
Seems like an alternative to a new goal/task would be to use an existing one like install-server or create and if there are concerns about collision with normal install, working through those, e.g. using a dummy location. Not to say a new goal/task might not be better...but just thinking that through. |
I wouldn't want to actually install Liberty or create a server at that time, as that could affect the behavior of running dev mode later. (I'm thinking of the case of skip install feature, where it detects if this is the first install or not). Also, I would be worried about performance. This is basically a setup step that we need to perform and would want it to return quickly. |
@scottkurz In terms of design, catching our desired files with a good heuristic would be more straightforward than managing a growing list of files to support. Then in terms of consequences, I think potentially missing a file and denying a user features where they expect it may be worse than enabling Liberty support for a file a user didn't expect. It would be worthwhile to determine how the plugin could break user experience though. |
After discussing with David, supporting custom serverEnv/bootstrapProperties is a bit tricky. LCLS itself can't monitor the Based on LSP protocol, this has to be the flow:
The last part, I'm not sure how much of a performance impact it would have. |
2023-08-23 DXDI update - We like the idea of relying on the |
With #212, LCLS has the logic for scanning There is remaining work for the IDE clients to change their watch files. Here is a PR example for these changes in VS Code, but each IDE may be different. |
Status of IDE implementation
|
In the Maven/Gradle plugins, the default configDirectory can be overridden. The various config files (serverXmlFile, serverEnvFile, bootstrapPropertiesFile) can also be overridden. The liberty-plugin-cfg.xml file will contain the values used for those various config files/dir and can be used by our LS to determine if a file is indeed a config file that should have hover/completion/validation support.
This is not part of the MVP. This is included on slide 34 of the UFO.
The text was updated successfully, but these errors were encountered: