nvim-pack / nvim-spectre

Find the enemy and replace them with dark power.
MIT License
1.91k stars 67 forks source link

Add support for search_paths option #194

Closed defr0std closed 4 months ago

defr0std commented 7 months ago

Hi,

Thanks for the great plugin!

This is a proposed fix for #184. Currently, spectre always searches in the cwd, it launches the job with a given cwd and then passes . to the search tool.

Unfortunately, this does not work for large directories, such as monorepos. In a monorepo, you usually work in a number of different directories depending on the current project. So it is convenient to search in the scope of those directories.

Note that the path option in the spectre does not solve the issue. The search is still performed in the cwd, but only the files matched by the path glob are used for searching. But the search tool still needs to list the files recursively in the entire monorepo, which is very slow.

This PR adds another option to the configuration called search_paths. The search paths are then passed to the search tool, instead of the ..

Also need to fix the opening of the file. When searched like this, the returned file paths could be absolute, so we don't need to make a relative path to the cwd.

EpsilonKu commented 6 months ago

Can you add to README?

defr0std commented 6 months ago

Done, please take a look.

EpsilonKu commented 6 months ago

You put Search paths inside config code.

defr0std commented 6 months ago

But cwd option is not in config, and search paths option is similar to cwd.

EpsilonKu commented 6 months ago

I mean this: image What about to put it outside of code block?

defr0std commented 6 months ago

Oh, sorry, done :)

EpsilonKu commented 4 months ago

LGTM