Nice introductory article!

Leveraging Telescope
https://youtu.be/HXABdG3xJW4?si=LKsH40bAg3L7ATFj

TJDevries
https://youtu.be/n4Lp4cV8YR0?si=zmuRUaSh1FiC3rOt

testing plugins:
https://hiphish.github.io/blog/2024/01/29/testing-neovim-plugins-with-busted/


Playing with Telescope

1. setup

mkdir nvim-telescope-docker
cd nvim-telescope-docker
mkdir -p lua/telescope_docker

keybind to write and source (reload):
nmap <Leader>r :luafile %<cr>

lua/telescope_docker/init.lua:

local M = {}

M.show_docker_images = function ()
  print("Hello")
end

M.show_docker_images()

return M

Use <leader>r to see if Hello is going to be printed.

2. telescope basic usage

local pickers = require('telescope.pickers')
local finders = require('telescope.finders')
local config = require('telescope.config').values

local M = {}

M.show_docker_images = function (opts)
  pickers.new(opts, {
    finder = finders.new_table({
      "Yes",
      "No",
      "Maybe",
      "Perhaps",
    }),
    sorter = config.generic_sorter(opts)
  }):find()
end

3. telescope: dealing with richer data

-- ...
local previewers = require("telescope.previewers")
-- ...

pickers.new(opts, {
  finder = finders.new_table({
    results = {
      { name = "Yes", value = {1, 2, 3}},
      { name = "No", value = {1, 2, 3}},
      { name = "Maybe", value = {1, 2, 3}},
      { name = "Perhaps", value = {1, 2, 3}},
    },
    entry_maker = function(entry)
        return {
          display = entry.name,
          ordinal = entry.name,
        }
    end
  }),
  sorter = config.generic_sorter(opts),
  previewer = previewers.new_buffer_previewer ({
    title = "Docker Image Details",
    define_preview = function (self, entry)
      vim.api.nvim_buf_set_lines(self.state.bufnr, 0, 0, true, {"Hello", "Everyone" })
    end
  })
})

PAREI AQUI