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

Fuzzy search for a file, or a folder in the project directory, then open its parent directory in the telescope-file-browser #69

Closed
quantum-booty opened this issue Jan 15, 2022 · 12 comments
Labels
enhancement New feature or request

Comments

@quantum-booty
Copy link

quantum-booty commented Jan 15, 2022

Tree like browsers like LuaTree frustrates me a bit when I know exactly the name of the folder or a file, but I still have to traverse down the tree to find it.
It would be nice if I could fuzzy search for the file or folder, then open the telescope-file-browser in the directory which the file or folder resides in.

@quantum-booty quantum-booty added the enhancement New feature or request label Jan 15, 2022
@quantum-booty quantum-booty changed the title Fuzzy search for a file, or a folder in the project directory, then open the folder in the telescope-file-browser Fuzzy search for a file, or a folder in the project directory, then open its parent directory in the telescope-file-browser Jan 15, 2022
@fdschmidt93
Copy link
Member

fdschmidt93 commented Jan 15, 2022

Does the folder_browser not work for you? See workflow of README and GIF. It's amongst the primary selling points of telescope-file-browser :)

Toggling between file and folder browser is currently mapped by default to <C-f> in insert and f in normal mode, respectively. (Mappings are being revisited, possibly subject to change).

Closing this because I believe it's just an oversight of the README. Let me know in case there's more to do here.

@quantum-booty
Copy link
Author

@fdschmidt93 thanks I see! Can I make folder_browser the default finder?

@ikerurda
Copy link
Contributor

require"telescope".setup {
  ...
  extensions = {
    file_browser = {
      ...
      files = false,
    }
  }
}

@quantum-booty
Copy link
Author

Also can I select a result from for example require('telescope.builtin').git_files() and open the folder in the file_browser? I guess this is what I had in mind originally.

@ikerurda
Copy link
Contributor

ikerurda commented Jan 15, 2022

local open_in_fb = function(prompt_bufnr)
  local action_state = require "telescope.actions.state"
  local Path = require "plenary.path"
  local actions = require "telescope.actions"
  local fb = require("telescope").extensions.file_browser.file_browser

  local entry = action_state.get_selected_entry()[1]
  local entry_path = Path:new(entry):parent():absolute()
  actions._close(prompt_bufnr, true)
  fb { path = entry_path }
end

...
require"telescope".setup {
  ...
  extensions = {
    git_files = {
      mappings = {
        i = { ["<a-e>"] = open_in_fb },
        n = { ["<a-e>"] = open_in_fb },
      }
    }
  }
}
...

This should work, don't know if there's a better way of doing it tho

@quantum-booty
Copy link
Author

Thanks I think it should be plenary.path instead of plenary.Path, and it only works if the file=true.
But it works!

@quantum-booty
Copy link
Author

@ikerurda Is it possible to move the cursor on to the file as well?

e.g. I search for telescope in git-files, then open the file_browser.
image
The cursor is on the first line.
image
However it would be nice if it can be placed onto the telescope file directly, like this:
image

@quantum-booty
Copy link
Author

I think this would be a very nice workflow, worth adding it into the readme.

@ikerurda
Copy link
Contributor

I've been trying, but haven't found a way of doing it...
Hope somebody can help you :)

@fdschmidt93
Copy link
Member

fdschmidt93 commented Jan 17, 2022

I guess what we could add is opting-in that the folder_browser shows one of (i) files (ii) folders or (iii) files and folders and then, whenever one of the three is selected you go to the corresponding folder.

For files, I suppose it makes sense to place the cursor on the selected file.

Once this is natively supported from within the folder browser, I'm happy to add this to the readme.

@quantum-booty
Copy link
Author

I think it makes more sense to support it as a function rather than another file browser mode, because having it as a functions allows me to open file_browser with various pickers like grep_string and lsp reference.

@fdschmidt93
Copy link
Member

fdschmidt93 commented Jan 17, 2022

I think it makes more sense to support it as a function rather than another file browser mode, because having it as a functions allows me to open file_browser with various pickers like grep_string and lsp reference.

Any user is free to customize the extension as they like; that is, such a function is something for the wiki and then everyone can tailor the function to their use case rather than having another action natively. Such an action is not necessarily easy to fit to any picker as information within entries varies across pickers and maybe some users don't want the selected entry to be the file. That's why I prefer something like this for the wiki.

telescope-file-browser should ship with primarily "native" features particular to the extension itself.

For what I elaborated above, having something like this built-in would I guess result in something like #73

E: In any case, I try to add some more information also onto the wiki soon, once better entry display and directory previewer customization lands.

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

No branches or pull requests

3 participants