Skip to content
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

Vimscript: is this a design choice? #144

Open
lane-core opened this issue Mar 22, 2024 · 3 comments
Open

Vimscript: is this a design choice? #144

lane-core opened this issue Mar 22, 2024 · 3 comments

Comments

@lane-core
Copy link

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
Copy link
Owner

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
Copy link
Author

lane-core commented Apr 2, 2024

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
Copy link
Owner

All contributions are welcome!

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

No branches or pull requests

2 participants