From 329f51c93ded5fc322c236a953deb0b52348ac1b Mon Sep 17 00:00:00 2001 From: Ivar Fatland Date: Wed, 10 Jun 2026 22:16:03 +0200 Subject: [PATCH] auto-detect compiler --- nvim/.config/nvim/init.lua | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index e8fefa8..c76c16d 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -342,6 +342,35 @@ do vim.keymap.set('n', ',z', toggle_padding) end +-- auto select compiler {{{1 +do + local compiler_mapping = { + dotnet={'*.csproj', '*.sln'}, + pyright={'requirements.txt', 'pyproject.toml'}, + go={'go.mod'} + } + + ---@type string[] + local folders = {vim.fn.getcwd()} + for dir in vim.fs.parents(vim.fn.getcwd()) do + table.insert(folders, dir) + end + + for _, dir in ipairs(folders) do + for compiler, patterns in pairs(compiler_mapping) do + for _, pattern in ipairs(patterns) do + local result = vim.fn.globpath(dir, pattern, false, false, false) + if result ~= '' then + vim.cmd('compiler! '..compiler) + goto exit + end + end + end + end + ::exit:: +end + + -- LAZY.NVIM BOOTSTRAP {{{1 local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim' if not (vim.uv or vim.loop).fs_stat(lazypath) then