| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- -- Here be dragons
 
- -- Opening files with telescope will not start LSP without this
 
- local ft = {}
 
- ft.find_lua_ftplugins = function(filetype)
 
-   local patterns = {
 
-     string.format("ftplugin/%s.lua", filetype),
 
-     -- Looks like we don't need this, because the first one works
 
-     -- string.format("after/ftplugin/%s.lua", filetype),
 
-   }
 
-   local result = {}
 
-   for _, pat in ipairs(patterns) do
 
-     vim.list_extend(result, vim.api.nvim_get_runtime_file(pat, true))
 
-   end
 
-   return result
 
- end
 
- ft.do_filetype = function(filetype)
 
-   local ftplugins = ft.find_lua_ftplugins(filetype)
 
-   local f_env = setmetatable({
 
-     -- Override print, so the prints still go through, otherwise it's confusing for people
 
-     print = vim.schedule_wrap(print),
 
-   }, {
 
-     -- Buf default back read/write to whatever is going on in the global landscape
 
-     __index = _G,
 
-     __newindex = _G,
 
-   })
 
-   for _, file in ipairs(ftplugins) do
 
-     local f = loadfile(file)
 
-     if not f then
 
-       vim.api.nvim_err_writeln("Unable to load file: " .. file)
 
-     else
 
-       local ok, msg = pcall(setfenv(f, f_env))
 
-       if not ok then
 
-         vim.api.nvim_err_writeln("Error while processing file: " .. file .. "\n" .. msg)
 
-       end
 
-     end
 
-   end
 
- end
 
- return ft
 
 
  |