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

Interactive tab selection when no arguments are provided #1

Closed
austinjones opened this issue Aug 22, 2020 · 7 comments
Closed

Interactive tab selection when no arguments are provided #1

austinjones opened this issue Aug 22, 2020 · 7 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@austinjones
Copy link
Owner

No description provided.

@austinjones austinjones added the enhancement New feature or request label Aug 22, 2020
@Jacobious52
Copy link

This would be a great feature to have. Perhaps something with fuzzy search like fzf or skim would work well, if not overkill.

@austinjones
Copy link
Owner Author

@Jacobious52 Yep! That's exactly what I was thinking. Plus I can search the workspace / repo docstrings as well.

@austinjones austinjones added this to the 0.5.0 milestone Oct 7, 2020
@Jacobious52
Copy link

Nice! For fun/learning I did a super rough and buggy proof of concept in a fork in the fuzzy-poc branch here . I used skim since it has a rust library but matches fzf in functionality/quality, I think skim is quiet heavy on dependences though, so not sure if you wanna go that route. UX wise it feels good though. Keen to see what you come up with!

image

@austinjones
Copy link
Owner Author

Woah! Super cool.

Yeah, Rayon & Crossbeam. They make sense - it's based on blocking I/O. I also found https://github.com/jhbabon/scout which runs on smol/asyncstd.

I like the fzf search syntax. It's be nice if I could support that.

I'll probably get back to this in a week or so once 0.4.0 is out. This is gonna be so cool!

@austinjones
Copy link
Owner Author

@Jacobious52 I just merged initial support for this in #195. I used the fuzzy-matcher crate that Skim uses, so the matching behavior should be similar.

I wrote my own UI because I wanted it to be based on async and crossterm. Skim wasn't async, and scout was /dev/tty based (which would prevent future windows support). Plus it supports tab-aware search & output formatting.

no-filter

filter

I still have a few things to add:

  • Handle terminal size (truncate width & height), and redraw on resizes
  • Add the 'Matched/Total' counts

@austinjones austinjones self-assigned this Oct 13, 2020
@Jacobious52
Copy link

Wow! Looks awesome! Combining fuzzy-matcherwithcrossterm` looks like a great choice 👍 Can't wait to try it out.

@austinjones
Copy link
Owner Author

I think this is stable on the main branch, so I'm closing this.

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

2 participants