doom-neovim / doom-nvim

A Neovim configuration for the advanced martian hacker
GNU General Public License v2.0
1k stars 108 forks source link

DEMO: NEW MODULE STRUCTURE #390

Closed molleweide closed 1 year ago

molleweide commented 1 year ago

this is just a demo. look at ./modules.lua

connorgmeehan commented 1 year ago

This is a very very impressive feature set but I'm curious about how adaptable/resistant DUI is to future changes. I'm a bit weary about maintaining another 5000 lines of code as I'm already pretty tight on time. Especially for something like this, unless reliability is 95%+ it might make things harder for the end user (reading docs that have two ways of doing same thing, frustrating when things only work sometimes, crashes cause user to restart neovim). That being said I'm still open to dui, if we can get it in a stable state and if the maintenance cost is low then i'd say it's a good thing to have. I have some questions that might help me understand the maintenance cost of

connorgmeehan commented 1 year ago

I had a test and found a few bugs, do you want me to post them here?

molleweide commented 1 year ago

@connorgmeehan I shall answer your questions more in depth later today.

This PR is just a demo. This is the main PR https://github.com/NTBBloodbath/doom-nvim/pull/382. I added some more there notes there earlier.

connorgmeehan commented 1 year ago

Oh my bad, I'll have a read through the other PR hopefully this weekend

molleweide commented 1 year ago
  • How does dui handle new modules, will it automatically show them in the telescope finder?

yes 100% regardless if enabled or disabled. Checkout PR 382 with util/tree.lua and module/utils.lua extend().

molleweide commented 1 year ago
  • How does dui handle changes to the modules API? For example if I renamed <module_name>.binds to <module_name>.keybinds what would need to be updated and in how many places / files?

duiis still wip so maybe in a handful of places, but the goal is only a single place.

molleweide commented 1 year ago
  • How resilient is dui to formatting differences, from what I understand it uses treesitter queries, even though we have an auto formatter we should still expect differences in code structure etc. As long as it doesn't crash basically.

I'm not sure I understand this question fully.

molleweide commented 1 year ago
  • How deeply coupled to the current telescope API is it? If telescope were to change the way you define pickers or handle selecting options what would need to be updated and in how many places? I would prefer to use the most stable version of telescope (as most user's would want that) than run an old version that's compatible with dui.

Should be 100% compatible.

molleweide commented 1 year ago
  • Could you also provide a little bit of documentation over the responsibilities of each file in lua/doom/modules/ui/dui, maybe just 2 lines on what it does and what it interacts with? I'm struggling a bit to understand the architecture.

I do this in PR #382

molleweide commented 1 year ago

Oh my bad, I'll have a read through the other PR hopefully this weekend

Cool! No stress. I put a lot of stuff in the same PR but each commit should be understandable. I list the 3 most important files for you to checkout.