ThePrimeagen/vim-be-good

[Discussion]: Lua

ThePrimeagen opened this issue ยท 11 comments

I am considering switching this plugin to Lua, but I would like to discuss with the core contributors.

Pros

  • Significantly reduces the complexity of installation
    • No External libraries
    • No node requirements
    • No UpdateRemotePlugins requirement
  • There are outstanding windows installation issues #31 #13 that are likely to be resolved by going into native module status.
  • Timings will be significantly more accurate as there is no remote communication.
  • Lua is a very easy language. I am 3 hours into it and feel slightly proficient.
  • Brazilians love Lua (except yshows).
  • Rewriting could potentially be done in piece meal.
  • More people could contribute if its in Lua

Cons

  • Lua rewrite. I don't want to rewrite anything
  • Is it possible to rewrite piece meal?
  • Less people could contribute if its in Lua
  • Unknown challenges when working with Lua. Even though Pro that I felt any form of proficiency, that does not mean it will scale the more I use it.

Thoughts?

@FL3SH @bryall @brandoncc @vegerot @lpanebr

Brazilians love it...'nuff said?

I don't see a problem switching. I don't know lua at the moment, but it seemed decent once you get your head around the syntax.

In reality though, I don't think the timings have to be super exact. I haven't noticed a lag issue on my machine, but the windows install issues are definitely a reason to consider the switch.

Brazilians love it...'nuff said?

lol. You really think the guy that names his default branch "master" is gonna care about that?

Ok ok ok ok. No trolls. Bring it down at least 17%

Definitely helps install issues which seem to be a roadblock to many. And if you do a rewrite you can fix some structure issues that are known.

you may be able to piece meal the refactor by breaking up the code into vim functions that live on each side and make function calls. this could be complicated through.

I willing to help with the rewrite if you want. getting into lua with the lsp and treesitter stuff in neovim

Got to get back to work in a second, but I'm confused why installing is so difficult? coc.nvim uses a similar api and all you gotta do is install node and run

Plug 'neoclide/coc.nvim', {'branch': 'release'}

That is a good point. Perhaps I need to review how neoclide does its installation and how it runs. Because I never installed "npm i -g neovim" with them.

FL3SH commented
  • I neither do know js nor Lua, so I am fine as long as someone can review my code ;)

  • @TheProme you already mentioned a few times that you need to rewrite some part of code so you can do that for the whole plugin

  • the js version might be considered as PoC, now required features are known so it should be easier to implement them because the code would be already designed for that kind of feature (games statistics #41, practice mode #40, remember options #52, #52, #8 and so on)

  • I am not sure if Lua brings more people

You could use a new branch for it and improve it then marge it when it meets js features.

I'm a Brazilian and the only Lua I know (and love) is the one floating around our nice blue planet.

Anyway, I've just googled "vim Lua plugin development" and found this pretty simple tutorial to create simple but very nice floating window plugin.

It seems like a good starting point should @ThePrimeagen decide VimBeGood going to the Moon will be indeed a project milestone!

@ThePrimeagen, have you made a decision on this?

I would like to make a game mode, but I am unsure if I should wait for the lua version?

The Lua version is almost done, the conversion is definitely happening.

closing since we have switched to lua