Has anybody seen an effective way to use the same repository for both a native #Lua based plugin for #neovim and legacy #vimscript based plugin targeting plain #vim? In my case the best implementations for each is going to be completely different but it would be nice to do it from one code base.

Also and VIM users have thoughts on a plugin with a shell dependency vs. one that has to either detect, download, or build a Python module?

https://github.com/alerque/decasify

GitHub - alerque/decasify: A CLI utility, Rust crate, Lua Rock, Python module, JavaScript module, Neovim plugin, and SILE package to cast strings to title-case according to locale specific style guides including Turkish support.

A CLI utility, Rust crate, Lua Rock, Python module, JavaScript module, Neovim plugin, and SILE package to cast strings to title-case according to locale specific style guides including Turkish supp...

GitHub

Getting NeoVIM to not read anything VIM finds seems impossible, but it is easy to make the vimscript a noop with `if has('nvim') | finish | endif`. The similar Lua versions don't get read by VIM, so that direction isn't a problem.

I implemented Decasify in a single repo as a #vimscript plugin that loads in #vim and a #lua plugin that leads in #neovim, the former depending on the CLI and the latter depending on the Lua Rock. Also there is now an override so NeoVIM can go the other way too.