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

Breaking changes and plan forward: drop legacy vim/neovim support #36

Closed
wookayin opened this issue Sep 14, 2022 · 3 comments
Closed

Breaking changes and plan forward: drop legacy vim/neovim support #36

wookayin opened this issue Sep 14, 2022 · 3 comments

Comments

@wookayin
Copy link
Owner

wookayin commented Sep 14, 2022

I have been maintaining a minimal level of backward compatibility support for outdated neovims -- but from now on, there will be no backward compatibility support for old versions of neovim.

This means that neovim will be always assumed to be latest (but not including nightly).

  • The minimum neovim version supported will be 0.7.0 and catching up with latest neovim version will be mandatory.
  • config/init.vim will be also re-written as config/init.lua
  • vimrc will be heavily refactored to (modular) lua configs as much as possible.
  • Plugin managers will be switched from vim-plug to packer.nvim lazy.nvim. Vanilla vim will have almost no plugins working.
  • Overall, these changes will limit the vanilla vim support, but in practice it should have no problem for most of the users.

This is inevitable because all the plugins keep changing and breaking as they require latest features, so there's no point of supporting different versions of neovim using a lot of has('nvim-0.x.x') branchings..

@wookayin wookayin pinned this issue Sep 14, 2022
wookayin added a commit that referenced this issue Sep 16, 2022
Core lua plugins like lsp, treesitter, telescope, etc. require
neovim 0.7.0 or higher. Neovim 0.5.x or 0.6.x can still run minimally
with this and after versions of dotfiles, but most of lua-based
plugins will be disabled.
wookayin added a commit that referenced this issue Oct 17, 2022
Lua has been a preferred language for neovim config since nvim 0.5.0.
As the first step to migrate to lua-based config, we rewrite init.vim
to init.lua. Older neovims will no longer work.

The init.lua file manages the python3_host_prog variable and runs
some sanity check on python versions. All the actual vim configs still
lie in ~/.vimrc and ~/.config/nvim/lua/* files, so your neovim should
behave basically the same as with the previous init.vim config.

For some reason the buffer reloading trick for lazy loaded lua plugins
is no longer needed. So we can execute these lua-based configs for
LSP, treesitter, and telescope lazily after the VimEnter event.
wookayin added a commit that referenced this issue Oct 20, 2022
See #36 -- we now assume neovim is 0.7.0 or higher.
wookayin added a commit that referenced this issue Oct 21, 2022
wookayin added a commit that referenced this issue Nov 7, 2022
Neovim 0.7.0+ supports `:lua =expr` (or `:lua= expr`) for evaluating
and printing some lua expressions. (See help :lua)

We deprecate the custom command `:LuaEcho` in favor of the built-in
command, now that we require neovim 0.7.0 or higher (#36).
All the command aliases for lua and LuaEcho are updated accordingly.
@wookayin
Copy link
Owner Author

Minimum neovim version will be 0.8.0 since May 2023.

wookayin added a commit that referenced this issue May 2, 2023
init.lua would be a better place than vimrc because it's specific to
neovim. Also, allow users to suppress this startup deprecation warning
message by setting `DOTFILES_SUPPRESS_NEOVIM_VERSION_WARNING=1`.
@wookayin
Copy link
Owner Author

Minimum neovim version has been bumped up to 0.8.0 (#44). The dotfiles install neovim script also supports neovim 0.8.0 for old linux distros.

@wookayin
Copy link
Owner Author

Starting 2024, neovim 0.8.0 will retire, requiring neovim 0.9+. FYI, neovim 0.10 is expected to ship in March 2024.

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

1 participant