~cjoly/telescope-repo.nvim

867f87a91e5b57966ea413031df8d7eeeb2a5a3b — Clément Joly 1 year, 8 months ago 243ce4d + daaac40
Merge pull request #41 from cljoly/global-settings

Global settings
M .github/workflows/lint.yml => .github/workflows/lint.yml +1 -0
@@ 28,3 28,4 @@ jobs:
            token: ${{ secrets.GITHUB_TOKEN }}
            # CLI arguments
            args: --check .
            version: 0.13.1

M README.md => README.md +45 -3
@@ 106,7 106,50 @@ use {

## Usage

### list
### Global Configuration

You can change the default argument given to subcommands (like [`list`](#list) or [`cached_list`](#cached_list)) using the telescope `setup` function with a table like this:

```lua
{
  extensions = {
    repo = {
      <subcommand> = {
        <argument> = {
          "new",
          "default",
          "value",
        },
      },
    },
  },
}
```

for instance, you could do:

```lua
require("telescope").setup {
  extensions = {
    repo = {
      list = {
        fd_opts = {
          "--no-ignore-vcs",
        },
        search_dirs = {
          "~/my_projects",
        },
      },
    },
  },
}

require("telescope").load_extension "repo"
```

**Note**: make sure to have `require("telescope").load_extension "repo"` *after* the call to `require("telescope").setup {…}`, otherwise the global configuration won’t be taken into account.

### `list`

`:Telescope repo list` or `lua require'telescope'.extensions.repo.list{}`



@@ 198,7 241,7 @@ Here is how you can use this plugin with various SCM:

Is your favorite SCM missing? It should be straightforward to support it by changing the pattern parameter. If you want it to be considered for addition here, open a PR!

### cached_list
### `cached_list`

`:Telescope repo cached_list`



@@ 236,7 279,6 @@ exports the `LOCATE_PATH` variable.

Provide instructions on how to setup periodic update of the locate database.


#### Troubleshooting

You should try to run:

M lua/telescope/_extensions/repo.lua => lua/telescope/_extensions/repo.lua +2 -0
@@ 1,10 1,12 @@
local main = require("telescope._extensions.repo.main")
local r_config = require("telescope._extensions.repo.config")
local health = require("telescope._extensions.repo.health")

local fallback_error = { "Falling back to `:Telescope repo list`, but this behavior may change in the future" }

return require("telescope").register_extension({
    health = health.check,
    setup = r_config.setup,
    exports = {
        list = main.list,
        cached_list = main.cached_list,

A lua/telescope/_extensions/repo/config.lua => lua/telescope/_extensions/repo/config.lua +9 -0
@@ 0,0 1,9 @@
local M = {}

M.values = {}

M.setup = function(opts)
    M.values = opts
end

return M

M lua/telescope/_extensions/repo/main.lua => lua/telescope/_extensions/repo/main.lua +3 -2
@@ 17,6 17,7 @@ local Path = require("plenary.path")
local utils = require("telescope._extensions.repo.utils")
local list = require("telescope._extensions.repo.list")
local cached_list = require("telescope._extensions.repo.cached_list")
local r_config = require("telescope._extensions.repo.config")

local M = {}



@@ 187,7 188,7 @@ end

-- List of repos built using locate (or variants)
M.cached_list = function(opts)
    opts = opts or {}
    opts = vim.tbl_deep_extend("force", r_config.values.cached_list or {}, opts or {})
    opts.entry_maker = t_utils.get_lazy_default(opts.entry_maker, gen_from_locate_wrapper, opts)
    local locate_command = cached_list.prepare_command(opts)



@@ 196,7 197,7 @@ end

-- Always up to date list of repos built using fd
M.list = function(opts)
    opts = opts or {}
    opts = vim.tbl_deep_extend("force", r_config.values.list or {}, opts or {})
    opts.entry_maker = t_utils.get_lazy_default(opts.entry_maker, gen_from_fd, opts)
    local fd_command = list.prepare_command(opts)