Neovim v0.10.0 with empty configuration errors on load of any *.lua file

On Fedora 40 with Neovim v0.10.0 just installed. Simple config and directory structure:

── init.lua
├── lua
│   └── user
└── plugin

init.lua simply references options.lua.

init.lua:
require("user.options")

options.lua:

vim.opt.number = true
vim.opt.relativenumber = true

vim.opt.splitbelow = true
vim.opt.splitright = true

vim.opt.wrap = false

vim.opt.expandtab = true
vim.opt.tabstop = 4

vim.opt.clipboard = "unnamedplus"

vim.opt.scrolloff = 999

vim.opt.cursorline = true
vim.opt.cursorcolumn = true

Ran with this configuration in the previous version, worked great. Performed a system update via dnf and loaded init.lua and options.lua to edit and got the following error:

Error detected while processing BufReadPost Autocommands for "*":
Error executing lua callback: /usr/share/nvim/runtime/filetype.lua:35: Error executing lua: /usr/share/
nvim/runtime/filetype.lua:36: BufReadPost Autocommands for "*"..FileType Autocommands for "*"..function
<SNR>1_LoadFTPlugin[20]..script /usr/share/nvim/runtime/ftplugin/lua.lua: Vim(runtime):E5113: Error while
calling lua chunk: /usr/share/nvim/runtime/lua/vim/treesitter/language.lua:107: no parser for 'lua' language, see :help treesitter-parsers
stack traceback:
        [C]: in function 'error'
        /usr/share/nvim/runtime/lua/vim/treesitter/language.lua:107: in function 'add'
        /usr/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:111: in function 'new'
        /usr/share/nvim/runtime/lua/vim/treesitter.lua:41: in function '_create_parser'
        /usr/share/nvim/runtime/lua/vim/treesitter.lua:108: in function 'get_parser'
        /usr/share/nvim/runtime/lua/vim/treesitter.lua:416: in function 'start'
        /usr/share/nvim/runtime/ftplugin/lua.lua:2: in main chunk
        [C]: in function 'nvim_cmd'
        /usr/share/nvim/runtime/filetype.lua:36: in function </usr/share/nvim/runtime/filetype.lua:35>
        [C]: in function 'nvim_buf_call'
        /usr/share/nvim/runtime/filetype.lua:35: in function </usr/share/nvim/runtime/filetype.lua:10>
stack traceback:
        [C]: in function 'nvim_cmd'
        /usr/share/nvim/runtime/filetype.lua:36: in function </usr/share/nvim/runtime/filetype.lua:35>
        [C]: in function 'nvim_buf_call'
        /usr/share/nvim/runtime/filetype.lua:35: in function </usr/share/nvim/runtime/filetype.lua:10>
stack traceback:
        [C]: in function 'nvim_buf_call'
        /usr/share/nvim/runtime/filetype.lua:35: in function </usr/share/nvim/runtime/filetype.lua:10>

Replaced the pre-existing config files with an empty init.lua and loading of just *.lua files still errors

Ran :checkhealth with the following output:

nvim: require("nvim.health").check()

Configuration ~
- OK no issues found

Runtime ~
- OK $VIMRUNTIME: /usr/share/nvim/runtime

Performance ~
- OK Build type: RelWithDebInfo

Remote Plugins ~
- OK Up to date

terminal ~
- key_backspace (kbs) terminfo entry: `key_backspace=\177`
- key_dc (kdch1) terminfo entry: `key_dc=\E[3~`
- $COLORTERM="truecolor"

External Tools ~
- OK ripgrep 14.1.0 (/usr/bin/rg)

==============================================================================
provider.clipboard: require("provider.clipboard.health").check()

Clipboard (optional) ~
- OK Clipboard tool found: wl-copy

==============================================================================
provider.node: require("provider.node.health").check()

Node.js provider (optional) ~
- Node.js: v21.7.1

- Nvim node.js host: /home/jroundtree/.config/nvm/versions/node/v21.7.1/lib/node_modules/neovim/bin/cli.js
- OK Latest "neovim" npm/yarn/pnpm package is installed: 5.1.0


==============================================================================
provider.perl: require("provider.perl.health").check()

Perl provider (optional) ~
- perl executable: /usr/bin/perl
- OK Latest "Neovim::Ext" cpan module is installed: Built-in function 'builtin::blessed' is experimental at /usr/share/perl5/overload.pm line 103.
  Subroutine version::declare redefined at /usr/lib64/perl5/vendor_perl/version.pm line 47.
  Subroutine version::qv redefined at /usr/lib64/perl5/vendor_perl/version.pm line 48.
  Subroutine version::_VERSION redefined at /usr/lib64/perl5/vendor_perl/version.pm line 49.
  Subroutine version::vcmp redefined at /usr/lib64/perl5/vendor_perl/version.pm line 50.
  Subroutine version::new redefined at /usr/lib64/perl5/vendor_perl/version.pm line 51.
  Subroutine version::numify redefined at /usr/lib64/perl5/vendor_perl/version.pm line 52.
  Subroutine version::normal redefined at /usr/lib64/perl5/vendor_perl/version.pm line 53.
  Subroutine version::stringify redefined at /usr/lib64/perl5/vendor_perl/version.pm line 60.
  Subroutine version::("" redefined at /usr/lib64/perl5/vendor_perl/version.pm line 61.
  Subroutine version::(<=> redefined at /usr/lib64/perl5/vendor_perl/version.pm line 62.
  Subroutine version::(cmp redefined at /usr/lib64/perl5/vendor_perl/version.pm line 63.
  Subroutine version::parse redefined at /usr/lib64/perl5/vendor_perl/version.pm line 64.
  class is experimental at (eval 8) line 2.
  field is experimental at (eval 8) line 4.
  method is experimental at (eval 8) line 5.
  field is experimental at (eval 8) line 6.
  method is experimental at (eval 8) line 7.
  field is experimental at (eval 8) line 8.
  method is experimental at (eval 8) line 9.
  field is experimental at (eval 8) line 10.
  method is experimental at (eval 8) line 11.
  field is experimental at (eval 8) line 12.
  method is experimental at (eval 8) line 13.
  field is experimental at (eval 8) line 14.
  method is experimental at (eval 8) line 15.
  class is experimental at (eval 10) line 2.
  field is experimental at (eval 10) line 4.
  method is experimental at (eval 10) line 5.
  field is experimental at (eval 10) line 6.
  method is experimental at (eval 10) line 7.
  0.06

==============================================================================
provider.python: require("provider.python.health").check()

Python 3 provider (optional) ~
- Using: g:python3_host_prog = "/usr/bin/python3"
- Executable: /usr/bin/python3
- Python version: 3.12.3
- pynvim version: 0.5.0
- OK Latest pynvim is installed.

Python virtualenv ~
- OK no $VIRTUAL_ENV

==============================================================================
provider.ruby: require("provider.ruby.health").check()

Ruby provider (optional) ~
- Ruby: ruby 3.3.1 (2024-04-23 revision c56cd86388) [x86_64-linux]
- WARNING `neovim-ruby-host` not found.
  - ADVICE:
    - Run `gem install neovim` to ensure the neovim RubyGem is installed.
    - Run `gem environment` to ensure the gem bin directory is in $PATH.
    - If you are using rvm/rbenv/chruby, try "rehashing".
    - See :help |g:ruby_host_prog| for non-standard gem installations.
    - You may disable this provider (and warning) by adding `let g:loaded_ruby_provider = 0` to your init.vim

==============================================================================
vim.lsp: require("vim.lsp.health").check()

- LSP log level : WARN
- Log path: /home/jroundtree/.local/state/nvim/lsp.log
- Log size: 0 KB

vim.lsp: Active Clients ~
- No active clients

vim.lsp: File watcher ~
- file watching "(workspace/didChangeWatchedFiles)" disabled on all clients

==============================================================================
vim.treesitter: require("vim.treesitter.health").check()

- Nvim runtime ABI version: 14

I am asking for whatever assistance can be provided. Just starting out with this application.

Thank you.

1 Like

Neovim 0.10 uses treesitter for syntax highlighting of lua files by default. The lua parser should be installed by default, so I think this is an issue with the Fedora package, which you should chase up with the Fedora maintainers. Adding vim.treesitter.stop() at the end of init.lua might mitigate the issue? Can’t say for sure since I’m not on Fedora and it doesn’t reproduce on other distros.

1 Like

This way doesn’t work on my machine :cry:

You should maybe ask over at neovim/neovim · Discussions · GitHub, giving more info about your setup and how you are launching neovim. This site is not maintained nor moderated by neovim devs. Also, please try using neovim -u NORC to launch with default settings instead of your config file, and report any errors in the discussion.

Similar problem in Ubuntu, with neovim install from ppa
solved installing treesitter (done it adding the apropiated line in lazy package manager)
then executed :TSInstall lua
voila

1 Like

Yes I should have mentioned this workaround, sorry. However, for a properly packaged neovim the lua treesitter files should be installed by default. From my perspective this is a distro packaging issue, but there may be good reasons for why it is “broken” by default.

Relevant report: No Parser Found for 'lua' Language in Treesitter · Issue #27951 · neovim/neovim · GitHub

Also, for Fedora specifically, it looks like they are intending to bundle the default treesitter parsers. Check this changelog for the Jul 02 2024 entry. So it probably should “just work”?