willothy / nvim-config

My personal Neovim config

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

nvim-config

My personal Neovim config

I would not recommend using this - It's setup for me, I cannot guarantee that it will work for you, and I will not fix issues that do not occur on my computers. However, feel free to copy paste snippets to add to your own config :)

Note
Requires Neovim Nightly

Bloated AND Blazingly Fast™

  • Over 150 plugins
  • ~15ms startup on both my desktop and laptop
  • Lazy load EVERYTHING. Only a few plugins load before UiEnter.
  • I've spent a stupid amount of time optimizing

startuptime n_plugins
fastest recorded startup time with this config

Some things I'm working on in this repo

  • Custom UI elements

    • Simple floating scrollbars for split windows
    • Custom foldexpr and foldtext
      • Foldexpr
        • Shows both the last line of the fold
      • Foldtext
        • Removed as neovim/neovim#20750 renders this redundant, see commit 1a93bd9 for my implementation.
        • Preserves, extmarks, semantic highlights, and inlay hints.
    • ui.select based on dropbar.nvim
      • This has now been merged into dropbar.nvim, see the implementation there.
    • Code action menu with preview, based on dropbar.nvim's ui-select
      • Preview functionality for ui-select is not upstreamed in dropbar so a fork is used, but should be upstreamed soon.
    • Simple but featureful bars and lines:
  • native/: Native module written in Rust

    • basic http client (wip)
  • graphql.lua: Asynchronous GraphQL client built on libuv and tokio

    • "compiler" which turns text queries into Lua functions bound to a client.
      • These functions are called with args specifying the query variables.
    • opt-in automatic query memoization (wip)
  • rx.lua: Reactive extensions for Neovim (very WIP, kinda abandoned)

    • signals and effects
    • automatic dependency tracking
    • automatic cleanup (wip)
    • scoping & signal ownership
  • player.lua: Playerctl UI for Neovim

    • playerctl wrapper
    • nui UI (wip)

About

My personal Neovim config


Languages

Language:Lua 96.3%Language:Rust 3.6%Language:Scheme 0.1%Language:Just 0.0%