Bringing the addon manager to everyone #2082
Replies: 3 comments 7 replies
-
I think that a CLI tool would be awesome, and making the UI depend on the CLI tool would be the best way to bring the addon manager to everyone, that way all UI implementations would use the same communication layer to find and use all the addons, and the CLI can still be used directly for those that don't have a UI. The CLI could take an approach similar to the existing interface, like this. # show a help message
# might also show other information like server path, logs, feedback
lls-addon help
lls-addon --help
lls-addon -h
# get the CLI's version
lls-addon --version
lls-addon -v
# get the language server path
lls-addon server
# set the language server path
lls-addon server <path>
# enable an addon, install if necessary
# like clicking the 'Enable' button
lls-addon enable <addons...>
# disable an addon
# like clicking the 'Disable' button
lls-addon disable <addons...>
# uninstall an addon, disable if possible
# like clicking the 'Uninstall' button
lls-addon uninstall <addons...>
# show a list of addons
lls-addon list [page]
--filter <category> # show a certain category of addons, can be specified multiple times
# show information about an addon
lls-addon show <addon>
--field path # show a certain field of the addon, can be specified multiple times
--field github
--field name
--field description
# etc. To help facilitate UI communication, you could add a Personally, I don't need a UI for the addon manager, but I also think it's more user-friendly than the CLI. |
Beta Was this translation helpful? Give feedback.
-
@sumneko How can I get set up for developing the language server? I am trying to create a Docker container that contains all the tools and things needed for the language server. Ideally, this allows people to very quickly get the complete environment up and running, independent of hardware. Using the VS Code dev container extension, you should also be able to connect to and develop the language server, entirely within the container. Assuming I can get it to work, I can then share the I have a few questions though: The language server should be able to be run in the container and then port forward out to the VS Code client. Is this possible? Does the VS Code client allow me to specify a separate IP/Port rather than the server started by the extension?
|
Beta Was this translation helpful? Give feedback.
-
I am currently planning on changing the way the addons are retrieved. Having them all in the LLS-Addons repo is nice for discoverability, but I think it will have trouble scaling due to the whole repo being cloned. The safest solution is to simply provide the git clone URL for the desired addon:
The language server would then use Git to install the I think it would make sense to not clone LLS-Addons, as is done currently, and instead have the LLS-Addons repository publish a GitHub Pages website that is just simply the needed JSON data. The language server can then just retrieve that instead of having to clone the whole repo with the git history and whatnot. |
Beta Was this translation helpful? Give feedback.
-
This discussion has been replaced by #2408
The addon manager seems to be working pretty smoothly now and is serving its initial purpose of making discovery and installation of definition files easier 🥳. However, there has always been a rather large compromise with the addon manager; it only works for VS Code users. This leaves a lot of people in the dark.
There are two problems with bringing the addon manager to everyone:
Possible solutions
The addon managing logic could maybe be moved into the language server, this way, wherever the language server goes, the addon manager goes. However, I don't even know where to begin with interacting with Git and the filesystem from the language server in Lua.
It also is possible to instead use the language server to host the UI locally, the editor can then just open the website in an iframe (which as far as I know, still wouldn't work in NeoVim) or browser. This would again require the addon managing logic to move to the language server.
The addon manager could also just be a simple CLI tool and the fancy UI could be thrown out, but this seems like a significant downgrade for VS Code users.
And finally, I could possibly make a separate executable that fires up the website locally, allowing it to be visited in an iframe or browser.
I am interested in what you guys think. I am not sure how many people are truly missing out on the addon manager, or how important a UI is. So please, let me know what you think 🙂
Beta Was this translation helpful? Give feedback.
All reactions