-
Notifications
You must be signed in to change notification settings - Fork 48
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
Migration from DAPInstall.nvim #71
Comments
Heya!
True. Not trying to justify what I did, I really should've explained publicly my reasons for doing this (did it in Reddit comment, but should've announced something here). My bad! :)
Nope, my reasoning is that they are the same but one (dap-buddy) is going to be better than the other. The other one could perfectly live inside the commit history and since most plug-in managers can point to an specific one there shouldn't be a problem.
Not yet, I will open it in a bit.
I can share the features I've planned so far here actually:
Plausibly possibly possible yet very likely to be included:
Right now there is only a blueprint with boilerplate code that works well, so it looks promising! New ideas are, as always, welcomed! |
Until dap-buddy get documentation etc ready, we can I think use "dev" branch which still has older code. Once we learn about dap-buddy how to setup and install, we can move to dap-buddy main branch. |
Hey all! Thought I'd chime in here with some of my plans. While https://github.com/williamboman/nvim-lsp-installer so far only targets LSP servers, there's nothing special about the management of LSP servers that would motivate solely targeting LSP servers. So, I've been working towards repurposing the existing installation and TUI infrastructure for other purposes (linters, formatters, DAP, even plugin management, etc.). So far the effort has been put into decoupling internals and rework some things to provide nicer APIs, as well as thinking a bit more about how to best deal with PATH to improve interop with other plugins (the What I've been thinking is extracting the core modules to an There are two items remaining before I'll start looking into my ideas above:
|
@williamboman this sounds really awesome. I really like how the downloads are handled in your plugin having the same for dap sounds just amazing. |
@williamboman yes I had this idea a while ago! Well, not mine but I remember that under a post of mine or something someone commented about making a generic installer for nvim related tooling. Something every editor must have. I replied with something along the lines of "I'll take on the challenge." But left it there and ended up just writing it down a couple of nights ago where a rewrite of DAPInstall resurfaced. (I'll try to look for the comment.) In the mean time, I'll try to look deeper into how to get something like this to become a reality. Shouldn't be too hard as other projects already exist that try to achieve something like this. What I'm questioning is whether interfaces should be provided to interact with those tools (i.e. running a linter), or just, you know, manage them. Anyways, I'll try to get back once I have got something working :) |
Also, I believe null-ls achieves some of this. |
Hello again, so I've been hard at work refactoring things per my previous comment (so far click to expand local installer = require("installer-plugin-name-tbd").adapters.nvim_dap
-- OPTION 1
-- Provide functions that receive user config and decorates these accordingly
dap.adapters.python = installer.adapters.python {}
dap.configuration.python = installer.configuration.python {
{
-- user custom
}
}
dap.adapters.go = installer.adapters.go {}
dap.configuration.go = {
installer.configuration.go {
type = 'go';
name = 'Debug';
request = 'launch';
showLog = false;
program = "${file}";
}
}
-- OPTION 2
-- Expose configuration fields as standalone fields, users are required to access these manually.
dap.adapters.python = {
type = 'executable';
command = installer.adapters.python.command;
args = { '-m', 'debugpy.adapter' };
}
dap.configuration.python = {
{
-- user custom
}
}
dap.adapters.go = {
type = 'executable';
command = 'node';
args = installer.adapters.go.args;
}
dap.configuration.go = {
{
type = 'go';
name = 'Debug';
request = 'launch';
showLog = false;
program = "${file}";
dlvToolPath = installer.adapters.go.dlvToolPath
}
} Sneak peak: |
@williamboman create a branch for this beta release, post it on r/neovim. More people would know about this beta and should be happy to help us around. I can pick up some during weekend and give you results. |
@williamboman i would more then be happy to test out the beta version! |
Cool! It's not quite ready just yet, hopefully it is in the next week or so. I will probably create a new repo altogether and let you know! |
I just made https://github.com/williamboman/mason.nvim public for alpha testing. Feel free to give it a spin if you'd like, for the time being only a small set of new packages have been added on top the nvim-lsp-installer base (PRs to add new packages are very much welcomed). I'll let it settle for a while now before looking into releasing some stable release branch - any feedback until then would be much appreciated! (again, disclaimer: very few DAP servers have been added so far as my focus has not been there yet) For those who currently use nvim-lsp-installer and want to switch entirely during testing (which I recommend), the minimum you need to get started is: require("mason").setup()
require("mason-lspconfig").setup() Note that you will have to manually clean up the old installation directory that nvim-lsp-installer used - mason installs to a new one by default. |
@williamboman awesome! I'll give it for a spin and give feedback in the repo. Thanks! |
I just found that you rebranded the plugin
DAPInstall.nvim
todap-buddy.nvim
.However, this breaks everything about previous
dap_install
. An existing configuration will be broken and it looks like that you've changed a lot fromDAPInstall.nvim
. No:DIInstall
commands any more, etc.. Well, I'm not sure such a sudden changing to a seemingly different project was a good idea; or you could've done that more carefully -- for example, rewrite might deserve a new repository where the previous one could still exist for an archival purpose. Or if it's still not fully complete yet, why not having them in a dev/unstable branch rather thanmain
? But I can do see and understand the rational you've got for this rebranding.Anyway congratulations on the major refactoring and rebranding. Hope the new one is better than the older one. But I'm now completely lost how to use the new one. Is there any documentation/tracking issue/migration guide available? I cannot find any documentation/README at this point. Probably you are still working on that, but any information would be appreciated.
For now, I'll need to pin the plugin version at 24923c3, but look forward to myself migrating to the new one soon.
The text was updated successfully, but these errors were encountered: