Skip Navigation
InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)MU
muntoo @lemmy.world
Posts 0
Comments 7
folke/flash.nvim: Navigate your code with search labels, enhanced character motions and Treesitter integration
  • It feels far more natural to me than lightspeed.nvim and leap.nvim. I should probably time myself, but I feel like I'm jumping around at least 4x as fast leap.nvim et al, but without even thinking. At all. It's that natural.

    • Makes you feel faster than the Yellow Flash of the Hidden Leaf who killed 1000 50 shinobi within seconds by flashing around.
    • Type in as many characters as you want, not some semi-arbitrary number.
    • Stabilizes on a single jump character very quickly.
    • Minimizes information overload.
    • Bidirectional and smartcase design by default. I argued here why using unidirectional/case-sensitive matching is very, very suboptimal (only 2 bits of information for 2 additional key presses!). It's kind of like Golomb coding (i.e. unary code of up to length 2 + fixed-length code) when a fixed-length code on its own would be far more efficient.
    • Information theoretically ideal for the average scenario. (Just kidding, I haven't proved it rigorously or anything. In fact, even if it turns out not to be "ideal", it's so ergonomic that it's well worth a few wasted bits.) In contrast, lightspeed/leap seem like they were designed for the unlikely or exceptional scenario (for which they are, admittedly, decent), even at significant cost to much more common scenarios. If I ever encounter an exceptional scenario, I can always fall back on regular vim motions anyways, so I don't see the point of optimizing for the rare case.

    ...It's exactly how I would have designed such a navigation plugin I had time to create one, and addresses some things I would have liked to see in its predecessors. Actually, it's a bit better than what I would have come up with. I mean, it's a folke plugin. Simultaneously stellar engineering and design.

  • Mason Markdown Formatting
  • For autoformatting, try an autocmd:

    autocmd BufWritePre * lua vim.lsp.buf.format()
    

    Or alternatively, I use:

    autocmd BufWritePre * lua require("utils").format()
    
    -- Formats the current buffer
    function utils.format()
      local whitelist = { "python", "rust" }
      if vim.tbl_contains(whitelist, vim.bo.filetype) then
        vim.lsp.buf.format()
      end
    end
    
  • cmp comparators issues
  • Not sure if this helps, but here's my ordering:

            sorting = {
              priority_weight = 2,
              comparators = {
                require("copilot_cmp.comparators").prioritize,
                compare.offset,
                compare.exact,
                compare.recently_used,
                compare.score,
                compare.scopes,
                compare.locality,
                compare.kind,
                compare.sort_text,
                compare.length,
                compare.order,
              },
            },
    

    ...Realistically copilot is so good that it knows what the next word I'm completing is without even typing in a single character, so this doesn't bother me like it used to.

  • An Infinitely Large Napkin [pdf]
  • I've read parts of this. People I've recommended it to tell me that it's easier to read if you already know the topics beforehand. I don't disagree, but it's still nice to see what a "20 page crash course" in any given area of mathematics looks like.