Skip to content
This repository has been archived by the owner on Apr 1, 2020. It is now read-only.

Plugin Management #186

Open
bryphe opened this issue Jan 23, 2017 · 2 comments
Open

Plugin Management #186

bryphe opened this issue Jan 23, 2017 · 2 comments

Comments

@bryphe
Copy link
Member

bryphe commented Jan 23, 2017

ONI has some additional features / functionality around plugin management. In particular, it would be helpful to support:

  • Per-project plugins
  • JavaScript plugins (that may require npm install / node build)

For package management, there are also two modes that would be helpful to support:

Long-term, I'd like to have integration with the command palette and a UI for enabling, disabling, updating, and measuring performance characteristics of plugins. In the short-term, adding an opm command like:

  • opm ls
  • opm install https://github.com/tpope/vim-fugitive (git clone)
  • opm install oni-plugin-python-language-service (npm install)
  • opm uninstall oni-plugin-python-language-service (npm uninstallJ)

By default, the packages would be installed per-user. Adding a -p flag would tell ONI to install in the project directory, which is the first directory upward named .oni.

@bryphe bryphe added this to the 0.2 milestone Jan 23, 2017
@bryphe
Copy link
Member Author

bryphe commented Jan 23, 2017

This is a pre-req for some of the language service work... There needs to be a robust way to add language service providers.

@bryphe bryphe changed the title Package Management Plugin Management Jan 23, 2017
@bryphe bryphe modified the milestones: 0.3, 0.2 Mar 31, 2017
@bryphe bryphe modified the milestones: Backlog, 0.3 Apr 26, 2017
@bryphe bryphe mentioned this issue Dec 13, 2017
@bryphe bryphe added the insider label Feb 5, 2018
bryphe added a commit that referenced this issue Mar 22, 2018
* Add prettierignore

* Add yarn

* Hook up yarn script to plugin installer

* Initial implementation of plugin installer

* Fix lint issues
@akinsho
Copy link
Member

akinsho commented May 30, 2018

@bryphe re. plugins and plugin management do you have a vision for how it might be implemented initially/minimally?

I've just been trying to setup the lsp for go and rust and theres seems to be a fair bit of leg work for a user to do in order to get that working, had a look at some vscode lsp extensions and basically they seem to programmatically just install dependencies, update them and call the right commands, having just done it manually (unsuccessfully on both counts sadly) kind of made me realise how incredibly useful it'd would have been to just install something that did that all for me successfully, basically ended up giving up which seemed like a point where we might lose a user.

It might be that theres no easy minimal way to do this although I noticed you added a YarnInstaller which seems to do something like this, is it possible to use that as a stepping of point for a minimal implementation of an lsp plugin for something like rust or go? v. much along the same lines as the vscode plugins

Ps: apologies for belabouring the minimal part it's something I'd love to see implemented enough to take on but I'd rather not take it on if was necessarily large in scope re initial implementation, plus pretty sure i've already spread myself ridiculously thin across issues I said i'd look at 😆

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants