nvim-lua / nvim-lua/kickstart.nvim

`cl.exe` Plugin Dependency On Windows

Open
#2,096 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Lua
Stars
31.5k
Forks
46.6k
Avg merge
2d 16h
Merged PRs (30d)
4

Description

Before Reporting an Issue

  • I have read the kickstart.nvim README.md.

  • I have read the appropriate plugin's documentation.

  • I have searched that this issue has not been reported before.

  • I have ran :checkhealth and so no obvious issue.

  • By checking this, I confirm that the above steps are completed. I understand leaving this unchecked will result in this report being closed immediately.

Describe the bug

cl.exe is required for one of plugins. I could see adding the dependencies below to the README.md.

Error
[nvim-treesitter/install/query] error: Error during "tree-sitter build": ^[[31mError:^[[0m Failed to compile parser

Caused by:
    Failed to execute the C compiler with the following command:
    "cl.exe" "-nologo" "-MD" "-O2" "-Brepro" "-std:c11" "-I" "C:\\Users\\matt\\AppData\\Local\\Temp\\nvim\\tree-sitter-query\\src" "-W4" "-LD" "
-utf-8" "/Fo\\\\?\\C:\\Users\\matt\\AppData\\Local\\Temp\\nvim\\tree-sitter-query\\tmp_5076_ThreadId(1)\\" "C:\\Users\\matt\\AppData\\Local\\Tem
p\\nvim\\tree-sitter-query\\src\\parser.c" "-link" "-out:\\\\?\\C:\\Users\\matt\\AppData\\Local\\Temp\\nvim\\tree-sitter-query\\parser.so" "/IMP
LIB:\\\\?\\C:\\Users\\matt\\AppData\\Local\\Temp\\nvim\\tree-sitter-query\\tmp_5076_ThreadId(1)\\temp.lib"
    Error: program not found

To Reproduce

  1. Be on windows
  2. git clone
  3. Open nvim
  4. Run through the vim.pack install
  5. Notice errors with cl.exe missing.
Workaround Using pwsh.exe
  1. choco install visualstudio2026buildtools -y
  2. choco install visualstudio2026-workload-vctools -y
  3. & 'C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\Common7\Tools\Launch-VsDevShell.ps1'

Some notes on the above. Need to be running with admin to perform the install. I am on 7.6.2 of PowerShell. Item 3 is needed to fix-up the $env:Path so processes can find cl.exe. On my system, when I run Get-Command cl after running the launcher ps1, I get C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.51.36231\bin\HostX86\x86\cl.exe. Presumably, one could update the $env:Path manually too, though there are four different copies of cl.exe.

There is probably a better world where one could use scoop install vswhere or choco install vswhere to ensure VS 2017 and later can be accounted for and we don't rely on the default location of the binary in the Visual Studio Installer location.

Below is how one can find the instance id to call into the cmdlet directly that is called by the ps1 above. It does get messy if folks don't have the exact install path as the above.

& 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe' -products Microsoft.VisualStudio.Product.BuildTools -latest -format json

And then with the whole archival of nvim-treesitter. Is it all worth it? Is there going to be a push to go "native" and "core" features with neovim? So one would rip out the nvim-treesitter dependency?

Desktop

  • OS: Windows
  • Terminal: Wezterm

Neovim Version

NVIM v0.12.3
Build type: Release
LuaJIT 2.1.1774638290

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with README.md and the nvim-treesitter installation requirements, then review the reported Windows reproduction and PowerShell workaround. Document the required cl.exe or Visual Studio Build Tools setup, including how to make the compiler discoverable, and verify the documented steps address the parser installation error.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, powershell
Domain
compilers, documentation, operating-systems
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.