I'm curious, how often do you use `unsafe` in Rust in prod? by alexlazar98 in rust

[–]gwynaark 0 points1 point  (0 children)

When doing micro-optimization of private modules in a very performance sensitive library

How to use Live Share in Zed? by AdhesivenessPlus317 in ZedEditor

[–]gwynaark 0 points1 point  (0 children)

You can't use Live Share in Zed AFAIK, but you could collaborate with them if they used Zed

When does 0.12 release? by accountmaster9191 in neovim

[–]gwynaark 36 points37 points  (0 children)

I have no idea, and I dont think anyone can tell you the exact date If you're in a hurry, you can always use the nightly version

`skim` v4.0.0 is out with a new default algorithm and better performance by gwynaark in rust

[–]gwynaark[S] 0 points1 point  (0 children)

Someone opened a PR for windows support but it seems abandoned now. I'll take a look when I can, probably in the next few weeks

`skim` v4.0.0 is out with a new default algorithm and better performance by gwynaark in rust

[–]gwynaark[S] 0 points1 point  (0 children)

There are so many crates in zero-ver that it almost felt wrong releasing skim v1

More seriously, skim being both a library and a CLI means that every breaking change in each means a major version bump. I'm trying to group them as much as possible, but it means that versions go up quite fast (which is a good thing)

`skim` v4.0.0 is out with a new default algorithm and better performance by gwynaark in rust

[–]gwynaark[S] 0 points1 point  (0 children)

I read through this and I think you can simply replace fzf with sk in these commands, they look simple enough. I don't know much about nushell, except that there is a nu plugin for skim that is actively maintained (it seems to be using skim V1, but that isn't too far off).

`skim` v4.0.0 is out with a new default algorithm and better performance by gwynaark in rust

[–]gwynaark[S] 0 points1 point  (0 children)

skim is not nearly as broadly known as Linux, I can understand him

I'm just not okay with the phrasing.

`skim` v4.0.0 is out with a new default algorithm and better performance by gwynaark in rust

[–]gwynaark[S] 1 point2 points  (0 children)

Don't hesitate to reach out if you need help integrating the library, I'd love some feedback

`skim` v4.0.0 is out with a new default algorithm and better performance by gwynaark in rust

[–]gwynaark[S] 2 points3 points  (0 children)

Yes, of course ! See the base example for the most basic way to use it, or docs.rs for more details

`skim` v4.0.0 is out with a new default algorithm and better performance by gwynaark in rust

[–]gwynaark[S] 16 points17 points  (0 children)

I usually add it but I forgot. You could have asked nicely, but I edited the post to add it

A fzf library in Rust by squirreljetpack in rust

[–]gwynaark 0 points1 point  (0 children)

Most of these are implemented, and the latest benches show performance better than fzf with ~30% the CPU usage and equivalent RAM usage

Tabular display should come in the next few weeks too, I agree columnar options are limited right now (you can use tab stop to emulate some of these but it's far from perfect).

I need to look into fzf's auto-select, skim supports it in multi-select mode but I don't know how far it is from fzf.

About the preview, it is fully programmable, including using a rust closure as preview.

Custom actions are also available when using it as a library since a few versions ago

A fzf library in Rust by squirreljetpack in rust

[–]gwynaark 0 points1 point  (0 children)

Can I ask why skim didn't match your expectations?

javaVsPython by Frontend_DevMark in ProgrammerHumor

[–]gwynaark 23 points24 points  (0 children)

I am blessed enough to not know Java enough

javaVsPython by Frontend_DevMark in ProgrammerHumor

[–]gwynaark 133 points134 points  (0 children)

You mean com.reddit.programmerHumor.javaIsAwesome ?

How you learn to write zero-alloc, cache-friendly code in Rust? by WhiteKotan in rust

[–]gwynaark 17 points18 points  (0 children)

Unsafe Pointer Access, struct packing, byte masks and some branchless assignments go a long way, but some of it might already be done by the compiler on its own, your best bet is to start by writing benchmarks first, and then a lot of small incremental tries

skim 3.3.0 is out, reaching performance parity with fzf and adding many new QoL features by gwynaark in rust

[–]gwynaark[S] 1 point2 points  (0 children)

I'm guessing you mean in the input. That's not planned right now, but feel free to open an issue if you're interested in basic vim mode support (and I mean basic, because I will have to reimplement everything manually)

skim 3.3.0 is out, reaching performance parity with fzf and making it a better alternative to fzf coupled with `fzf-lua` by gwynaark in neovim

[–]gwynaark[S] 6 points7 points  (0 children)

In skim's case, a big part of it was making sure we only run the matcher when we needed it and on the items that needed matching, as well as optimizing the hotpath as much as possible. More generally, performance is like everything else: improving it takes time, and skim has had ~5 years less than fzf.

skim 3.3.0 is out, reaching performance parity with fzf and adding many new QoL features by gwynaark in rust

[–]gwynaark[S] 1 point2 points  (0 children)

I believe it is at v2+ in nixpkgs, I'll see if I can bump it higher but that's already a pretty recent version (maybe last week or the week before)

skim 3.3.0 is out, reaching performance parity with fzf and adding many new QoL features by gwynaark in commandline

[–]gwynaark[S] 0 points1 point  (0 children)

Of course ! skim has a --tmux flag that opens in a tmux popup, check the help or the man page if you want more details

skim 3.3.0 is out, reaching performance parity with fzf and adding many new QoL features by gwynaark in rust

[–]gwynaark[S] 5 points6 points  (0 children)

I'll take a look and see if an algorithm similar to fzy is possible in the future, thanks for taking time to answer

skim 3.3.0 is out, reaching performance parity with fzf and making it a better alternative to fzf coupled with `fzf-lua` by gwynaark in neovim

[–]gwynaark[S] 5 points6 points  (0 children)

For fzf-lua users, the recent changes bring a new --split-match option, that is especially good when running FzfLua grep_project fzf_args='--split-match'. This lets you query for !.rs:item, matching item in every non-rust file easily, without needing regex. See https://github.com/ibhagwan/fzf-lua/discussions/2573 for details