isovector / cornelis

agda-mode for neovim
BSD 3-Clause "New" or "Revised" License
129 stars 22 forks source link

Vimscript: is this a design choice? #144

Open lane-core opened 5 months ago

lane-core commented 5 months ago

Hi, I've recently picked up Cornelis and I'm enamored thinking about the possibilities of how the vim ecosystem could assist Agda programming, as its a great foundation.

I use neovim as my vim of choice, and am generally more fond of plugins written in Lua. I am curious as to whether the choice to code Cornelis in Vimscript is a design choice so as not to exclude vanilla vim users (which is totally legitimate), or whether the project would be open to Vimscript being converted to Lua, as it seems like a straightforward port and I imagine there are other developers who might prefer Lua as well (full disclosure: I have little desire to learn Vimscript, personally). Obviously, this means committing to the neovim ecosystem, but it feels like its gonna keep being a nice vibe there and I don't think that's something the project would regret.

I may try out a Lua port in a branch in my forked repo, so I wanted to inquire whether this is something you would be interested in as I'd then seek to contribute my results back to the project. Want to close off by saying I really love what you've done here @isovector and I think that there is a lot of low hanging fruit after the foundation you've laid that will be able to flesh out a lovely agda programming experience in vim.

isovector commented 5 months ago

Hi,

Almost none of the plugin is written in vimscript; the vast majority is written in Haskell and plugs into neovim via neovim-hs. Some of the configuration is, but this is not on purpose; I just happen to have read the vimscript book at some point in my life.

lane-core commented 5 months ago

Sorry for taking so long to get back to this. I feel like this came off as if I was diminishing your work as yet another vimscirpt plugin, but the strong foundation I was referring to in my original post was the haskell core. I am way more agda-literate than I am in haskell at the moment, although that probably disposes me towards remedying that quickly. This is good because need to be living more in haskell world more in the near future, and I hope to contribute to the project in that way as I begin to feel fluent in haskell as Cornelis has replaced agda-mode for me and soon I might be familiar enough with how Cornelis works from my experience using it and digging into the backend to see if I can attack some items in your issues list.

To the extent I was talking about the vimscript (or possibly lua) shell, it was to the extent that with relatively little addition to wrapper code we could probably improve the default experience quite a bit-- I had to refresh myself on vim config things just to get this working to what seemed like a sensible default (I can attach my config if you are curious what that means to me). Another motivation for wanting lua was that I want to do some experiments and see in what ways Cornelis could integrate into the wider neovim plugin ecosystem if one allowed access to these neovim apis.

I will probably just port over the vimscript to lua to prototype possibilities there so I have concrete examples to point to down the line, but this general consideration was what originally prompted me to want to write the current ticket to inquire if the project is wedded to vimscript. Not only because I want to know whether I should prime my code with an eye towards submitting it, but also because regardless of the project's decision of the language I want to contribute nonetheless, so if Cornelis is sticking with vimscript for the wrapper layer I will have to learn vimscript in order to make contributions on that front.

On the main, I hope this clarified my intention/motivations of why I wrote my original issue ticket. I want to extend my thanks again for your work, I've been delighted to use Cornelis and l look forward to helping out if possible in the future.

isovector commented 5 months ago

All contributions are welcome!