-
Notifications
You must be signed in to change notification settings - Fork 299
Conversation
- Can select more than one item now - Can quickopen for colorschemes
Wow, really cool stuff in the gif! I like the colorscheme switching a lot 😄 And cool list - it's neat to see the progress indication on the PR.
One thing I was thinking about this - is I think there are going to be a few places in Oni where we will have a 'lightweight' edit experience (like a small textbox). A few scenarios I had in mind for this:
But for all these cases, it'd be nice to have a the full set of neovim key bindings I have configured (, , etc). I was thinking, potentially, of having these textboxes essentially be tiny neovim windows - so that we could use neovim to process the keybindings. That would be a bigger chunk of work, and depend on some of the initial multiplexing changes, so it might make sense to defer that piece (if that approach makes sense).
We might be able to remove the '10-item' limit and use something like https://github.com/bvaughn/react-virtualized to only render a subset. There were a couple of other things I was thinking top-of-mind too:
Looking awesome! |
Didn't realized it did progress I just wanted a nice list :).
If we use the single neovim instance strategy we could use a temporary hidden buffer that the user doesn't have to know about (i.e. we don't show hidden buffers and unless they open it with buffers! they won't ever know, if they close it we can just open it again...) and so we can use this temporary buffer, use setline()/getline() and that will be our input field, this way we don't have to wait for a new spin each and every time, we can just edit the buffer as the text field tied to it, and then we can edit just like any other neovim buffer... it's a bit complex but it's a wildy awesome idea and I would enjoy this a lot, but I don't even know how it's hooked up to begin with but, yeah.
I will look into that.
I plan on adding a bg/fg color to the state by using &bg/&fg, if these are null then use default (i'm not sure what this is in nvim I've never looked at it honestly without a color for normal...)
We need a solution, I can use my binary to do this but there is not a good way in typescript without writing an algorithm or porting a library and their dependencies, however I think a solution implemented in typescript may not be the best solution but using something like ag/ripgrep/etc that way we can stream async and we don't use a scripting language that can't optimize as other coding bases. |
currently writing a manual find, it's working pretty nice, almost done. |
typescript, only dependency is fs and ignore |
going to add support for a config ignore and config use global ignore ~/.gitignore |
These will be awesome enhancements, but could you add "update README" to your list of todo's? We need to be sure to track all the various key combos we're introducing, especially when there isn't a (neo)vim equivalent. |
Once I have a concrete list :) This is more of a guide really. |
1461c48
to
9579250
Compare
- Don't show directories - Don't recurse if it's not a directory - Explain oni.config - Use relative path instead of absolute, in long directories this could be VERY annoying... - For git ls-files and overriden command also filter user/global ignore and binary extensions.
Sorry I'm a bit late to the party here! Was (finally) reading through the comments 😄 I really liked this:
Sounds like we're exactly on the same page here! That's exactly how I was thinking of using it. I forgot to call out one use case I want to pursue also - I'd like to have an embedded browser in Oni (which is basically free, because Electron), and then use Neovim to manipulate text inputs. I think it'd be really helpful, at least for me, to be able to pop open github and use the keyboard to navigate around (#361) and use all the neovim-power I have to write text in the issues. Lots of cool possibilities! |
- Ignore image extensions, need to add more and more binary.. maybe convert to json? Idk strings are pretty easy. - Fixed ignore for git files so we ignore binary and image as well as global git ignore, need to add .oniignore, but maybe not? We have it already as a setting do we really need another config file? - Re-filter input if still loading directories (This is a big edge case) - Cache files on dir changed and construction, that way if we don't move dirs which most of the times people don't, it will just have the files saved, ready for loading. - Manual walk enhanced. Noticed a bug in overriden commands, doesn't seem to work at all with ag, need to investigate if it's just ag -l --nocolor or if it's others as well, git works fine... weird.
You're good, I've been super busy so sorry about the late commits.
And I would LOVE to be able to do normal day to day things with the power of neovim, sounds revolutionary in a way :P. If you don't care test it out, it works great for me, however like my commit says the overridden command doesn't seem to work. |
@extr0py |
Wow, that's awesome! Can't wait to have that integrated. It's so cool to see the changes to setting & configuration made real-time |
And thanks for linking the plugin, I'll check it out in a bit! I read through the README and it sounds interesting. I need to test it out / see how to map in my workflow. Yanking into a list and being able to grab from the list in a convenient manner sounds interesting, especially when you are juggling multiple items you want to store. |
Yeah I was super happy with the color-scheme outcome.
Thanks, from when I use it it's pretty useful, I haven't found any bugs since the initial commits ( I think 14 while demoing? ) |
@cyansprite: I don't know how familiar you are with helm, or if this is within your skillset/goal here, but do you think you could generalize the quickOpen? I could imagine this replacing wildmenu/cmdline pretty easily, all we'd have to do is have the user give us an activation action, a list of things to choose from, and a final behavior just a thought |
@bryphe since I haven't been here for a while, is this a Proof Of Concept or is this something wand merged in? I'm not saying I'd be able to do it, but I could try! |
@Bretley I think there are a lot of really great ideas in this PR from @cyansprite (and great discussion too!), so I've been using it as a reference. There are a few things that are top-of-mind for me in the menu space:
The most important gap we have today, though (in my opinion), is the 'first-run' experience - the first time you open Oni up, and open the quick open experience - it's a bit confusing and unintuitive. I like the experience VSCode has, where you can type Long-term, too, I'd like to see if it is possible to consolidate the Oni commands & Vim It might be a challenge to bring this PR in as-is giving that the menu API surface is changing, but if there are any parts that interest you that could be split out, I'm definitely open to that! Some ideas for chunks to split out could be the multi-selection (extending the new menu API to handle that), or create the colorscheme chooser - that was a really cool part of this PR too 👍 Otherwise, thinking about how we can smooth out that first-open experience would be awesome. |
Will close this out as it's pretty old, and some of the bits of functionality have migrated to other PRs. |
Progress Made
Can select more than one item now
Can quickopen for colorschemes
Fixed quickopen overflow with small windows
Force open bookmarks
TODO
QuickOpenTypes
, currently this would be files.Future TODO
* [ ] Make editing shortcuts for (nvim temporary buffer/instance)Gif Showing Basics Done so far.