# HG changeset patch # User zegervdv # Date 1659342406 -7200 # Node ID c0cef1aa4ccdda7a7e0b2d2f2d5f1d808cbfb462 # Parent 5cceedc51955bcb535eb2874a8fc7cb4fbde9502 Replace didyoumean with lua implementation using vim.ui.select diff -r 5cceedc51955 -r c0cef1aa4ccd .chezmoitemplates/init.lua --- a/.chezmoitemplates/init.lua Mon Aug 01 10:24:05 2022 +0200 +++ b/.chezmoitemplates/init.lua Mon Aug 01 10:26:46 2022 +0200 @@ -39,7 +39,6 @@ } end, } - use { 'einfachtoll/didyoumean' } use { 'tpope/vim-eunuch', diff -r 5cceedc51955 -r c0cef1aa4ccd dot_config/nvim/plugin/filetypo.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dot_config/nvim/plugin/filetypo.lua Mon Aug 01 10:26:46 2022 +0200 @@ -0,0 +1,24 @@ +-- Inspired by https://github.com/EinfachToll/DidYouMean/blob/master/plugin/DidYouMean.vim + +local filetypo = function() + if vim.fn.filereadable(vim.fn.expand '%') == 1 then return end + + local filename = vim.fn.expand '%' + local matching_files = vim.fn.split(vim.fn.glob(filename .. '*', 0), '\n') + if matching_files == nil then matching_files = vim.fn.split(vim.fn.glob(filename .. '*', 1), '\n') end + + local buf = vim.api.nvim_get_current_buf() + vim.schedule(function() + vim.ui.select(matching_files, { prompt = 'Select File:' }, function(choice) + vim.cmd.edit(vim.fn.fnameescape(choice)) + vim.api.nvim_buf_delete(buf, { force = true }) + + vim.cmd.doautocmd { 'BufReadPre', mods = { silent = true } } + vim.cmd.doautocmd { 'BufRead', mods = { silent = true } } + vim.cmd.doautocmd { 'BufReadPost', mods = { silent = true } } + vim.cmd.doautocmd { 'TextChanged', mods = { silent = true } } + end) + end) +end + +vim.api.nvim_create_autocmd('BufNewFile', { pattern = '*', callback = filetypo })