Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Telescope integration not working #1186

Closed
elC0mpa opened this issue Feb 23, 2024 · 4 comments
Closed

Telescope integration not working #1186

elC0mpa opened this issue Feb 23, 2024 · 4 comments

Comments

@elC0mpa
Copy link

elC0mpa commented Feb 23, 2024

Description

I have the following configuration for neogit in my config:

  "NeogitOrg/neogit",
  dependencies = {
	"nvim-lua/plenary.nvim",         -- required
    	"sindrets/diffview.nvim",        -- optional - Diff integration
    	"nvim-telescope/telescope.nvim", -- optional
  },
  opts = {
	disable_signs = true,
	graph_style = "unicode",
  },
}```

As I have read, it looks like Telescope integration shuld be automatically detected
Is there any way I could know if it is really integrated?
For me it doesn't looks like it is using telescope 

![image](https://github.com/NeogitOrg/neogit/assets/53531665/d12351cc-51f4-4705-bda8-a66af6f16254)
This is the way I select the different branches in my project
Also, could you provide a better documentation related to this?
Maybe I can specify if I can want to use telescope for some things and not for others

### Neovim version

NVIM v0.9.5
Build type: RelWithDebInfo
LuaJIT 2.1.1692716794

### Operating system and version

Fedora 39

### Steps to reproduce

Jus open neovim and open neogit and try to select some branches
I think definitely it is not using telescope

### Expected behavior

A better looking way to select the branches 

### Actual behavior

Neogit is not using telescope, at least thats what I think

### Minimal config

```Lua
-- NOTE: See the end of this file if you are reporting an issue, etc. Ignore all the "scary" functions up top, those are
-- used for setup and other operations.
local M = {}

local base_root_path = vim.fn.fnamemodify(debug.getinfo(1, "S").source:sub(2), ":p:h") .. "/.min"
function M.root(path)
  return base_root_path .. "/" .. (path or "")
end

function M.load_plugin(plugin_name, plugin_url)
  local package_root = M.root("plugins/")
  local install_destination = package_root .. plugin_name
  vim.opt.runtimepath:append(install_destination)

  if not vim.loop.fs_stat(package_root) then
    vim.fn.mkdir(package_root, "p")
  end

  if not vim.loop.fs_stat(install_destination) then
    print(string.format("> Downloading plugin '%s' to '%s'", plugin_name, install_destination))
    vim.fn.system({
      "git",
      "clone",
      "--depth=1",
      plugin_url,
      install_destination,
    })
    if vim.v.shell_error > 0 then
      error(string.format("> Failed to clone plugin: '%s' in '%s'!", plugin_name, install_destination),
        vim.log.levels.ERROR)
    end
  end
end

---@alias PluginName string The plugin name, will be used as part of the git clone destination
---@alias PluginUrl string The git url at which a plugin is located, can be a path. See https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols for details
---@alias MinPlugins table<PluginName, PluginUrl>

---Do the initial setup. Downloads plugins, ensures the minimal init does not pollute the filesystem by keeping
---everything self contained to the CWD of the minimal init file. Run prior to running tests, reproducing issues, etc.
---@param plugins? table<PluginName, PluginUrl>
function M.setup(plugins)
  vim.opt.packpath = {}                      -- Empty the package path so we use only the plugins specified
  vim.opt.runtimepath:append(M.root(".min")) -- Ensure the runtime detects the root min dir

  -- Install required plugins
  if plugins ~= nil then
    for plugin_name, plugin_url in pairs(plugins) do
      M.load_plugin(plugin_name, plugin_url)
    end
  end

  vim.env.XDG_CONFIG_HOME = M.root("xdg/config")
  vim.env.XDG_DATA_HOME = M.root("xdg/data")
  vim.env.XDG_STATE_HOME = M.root("xdg/state")
  vim.env.XDG_CACHE_HOME = M.root("xdg/cache")

  -- NOTE: Cleanup the xdg cache on exit so new runs of the minimal init doesn't share any previous state, e.g. shada
  vim.api.nvim_create_autocmd("VimLeave", {
    callback = function()
      vim.fn.system({
        "rm",
        "-r",
        "-f",
        M.root("xdg")
      })
    end
  })
end

-- NOTE: If you have additional plugins you need to install to reproduce your issue, include them in the plugins
-- table within the setup call below.
M.setup({
  plenary = "https://github.com/nvim-lua/plenary.nvim.git",
  telescope = "https://github.com/nvim-telescope/telescope.nvim",
  diffview = "https://github.com/sindrets/diffview.nvim",
  neogit = "https://github.com/NeogitOrg/neogit"
})
-- WARN: Do all plugin setup, test runs, reproductions, etc. AFTER calling setup with a list of plugins!
-- Basically, do all that stuff AFTER this line.
require("neogit").setup({
	disable_signs = true,
	graph_style = "unicode",
}) -- For instance, setup Neogit
@elC0mpa elC0mpa added the bug Something isn't working label Feb 23, 2024
@CKolkey
Copy link
Member

CKolkey commented Feb 23, 2024

Thats working fine, it's just not using your telescope config - it's using ours. We do some custom stuff under the hood to get the different kinds of pickers to work, and I never bothered to expose the layout config.

What documentation do you feel is missing? I'm definitely not going to make this an opt in on a per case basis, that would be way too much of a pain. The choices are telescope, fzf-lua, or vim.ui.select if those are not available.

@CKolkey CKolkey closed this as completed Feb 23, 2024
@CKolkey CKolkey removed the bug Something isn't working label Feb 23, 2024
@dudicoco
Copy link

@CKolkey I've also ran into this issue, it seems to me that the telescope integration is working when I set integrations.telescope = false:
Screenshot 2024-02-25 at 12 24 09

With telescope=true:
Screenshot 2024-02-25 at 12 23 18

@CKolkey
Copy link
Member

CKolkey commented Feb 25, 2024

@dudicoco, the top image is showing vim.ui.select because you set integrations.telescope = false. If you overloaded that function with something else (telescope, for example), then it's showing telescope how you configured it. Note, it won't have all the functionality that the built-in telescope picker has, like multiple file selection, but it'll work just fine in most cases.

The bottom picture is showing the telescope picker that I configured. This has some extra goodies and lets me have more control over the UX.

Hope that clears things up.

@dudicoco
Copy link

thanks @CKolkey, turns out https://github.com/stevearc/dressing.nvim is setting vim.ui.select to use telescope.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants