nvim-snappy/TODO.md

5.8 KiB

Neovim Version Manager: https://github.com/MordechaiHadad/bob

Search: telescope.nvim?

Version Control:

  • sindrets/diffview.nvim: Reviewing changes seems like an ideal thing.
  • gitsigns: Some more configuration.
    • For more crazy git stuff, just toggleterm into lazygit.

LSP

  • What do we think of <leader>l for LSP stuff? We already have <leader>t for test stuff and <leader>d for debug stuff, right?
  • Formatters don't always behave. Consider stevearc/conform.nvim.
  • Finish config incl. reconsider keymaps. See https://neovim.io/doc/user/lsp.html#_quickstart.
  • Finish getting and configuring a bunch of LSPs. See https://github.com/neovim/nvim-lspconfig/blob/master/lua/lspconfig/configs/ruff.lua
  • folke/trouble.nvim: Configure it as a kind of universal "what's up" sidebar.
    • Consider keyboard shortcuts to manage a "permanant" right-hand-side buffer, which should support mindful trouble info and diagnostics, ongoing neotest harnesses, and running DAP processes.

Editing:

  • Tutorial: https://martinlwx.github.io/en/learn-to-use-text-objects-in-vim/
  • folke/todo-comments.nvim: Honestly such a crazy neat thing.
  • lukas-reineke/headlines.nvim
  • kylechui/nvim-surround: For managing stuff wrapped in other stuff.
  • nvim-treesitter/nvim-treesitter-textobjects: Syntax aware text objects.
  • roobert/surround-ui.nvim: For pretty and learning.
  • numToStr/Comment.nvim: Honestly, we do a lot of commenting overall.
  • danymat/neogen: No excuse not to write documentation now :)
  • hat0uma/csvview.nvim: Handle CSV files directly and sanely.

Motion:

  • folke/flash.nvim: Fast motions.
  • chrishrb/gx.nvim: Better implementation of gx.

UX:

  • For the editing overview, use the toggleable filetree.
  • matbme/JABS.nvim: OH HELLO! A tiny little buffer switcher boi!
  • kazhala/close-buffers.nvim: Maybe not exactly this, but some sort of principled way of keeping buffers under control and not outside of my object permanance.
    • Like this: ChuufMaster/buffer-vacuum
  • nanozuki/tabby.nvim: Don't use the tabs as a bufferline.
    • Use it as a buffer multiplexer.
  • akinsho/toggleterm.nvim: Don't mess around with tmux.
  • Consider breadcrumbs? See: Bekaboo/dropbar.nvim
  • 3rd/image.nvim: Support images. Mainly for other plugins.

Workflow:

  • Need solution for the following:
    • nvim file.txt without any hubub, incl. use of LSPs and such. Doesn't need to be recoverable.
    • Opening any file within a project should cd to that project's root.
    • Special project should be daily-note taking, w/sync across platforms.
    • Turning notes into other stuff ex. calendar events, tasks, projects, notes within projects.
    • Projects in predictable places should be quick to navigate to.
    • Having many projects open w/different layouts, all sessions under the project's namespace.
    • Automatic session saving and recovery, including buffer layouts and terminals.
  • gnikdroy/projections.nvim: It has its frustrations, but it
    • Consider coffebar/neovim-project as alternative.
    • Consider the multi-branch sessions workflows. Ideally, reuse the LSP rootdir. Ensure correct CWD is set.
    • We might just have to DIY this...
  • nvim-tree/nvim-tree: Finish configuring properly. The floating window is nice. Relies only on correct CWD.
    • Or oil.nvim?
  • moyiz/git-dev.nvim: Easy shallow clones.

Completion:

  • nvim-cmp

AI:

  • David-Kunz/gen.nvim
    • Combine with a mindful way of starting ollama.

Quarto:

  • jmbuhr/otter.nvim: Embedding langs within other langs.
  • benlubas/molten-nvim: Running code cells.
  • HakonHarnes/img-clip.nvim: Paste images directly from clipboard.
  • jbyuki/nabla.nvim: Preview LaTeX.
  • jakewvincent/mkdnflow.nvim: Consider this little plugin.
  • lukas-reineke/headlines.nvim: This one too!
    • Or this? MeanderingProgrammer/render-markdown.nvim
  • Myzel394/easytables.nvim: Make markdown tables awesome.
  • nvim-telescope/telescope-bibtex.nvim

Workflows:

  • There exists this: b0o/blender.nvim. Can we do better with blext?
  • mrcjkb/rustaceanvim: Superpowered Rust.
  • roobert/tailwindcss-colorizer-cmp.nvim and luckasRanarison/tailwind-tools.nvim: For TailwindCSS

Organization:

  • Zeioth/markmap.nvim: Mindmap from markdown.
  • richardbizik/nvim-toc: A little niche, but isn't it interesting?
  • nfrid/due.nvim: Extremely clever use of virtual text.
  • Some sort of "scratchpad" that doesn't just get deleted by default.

Annoyances:

  • roobert/f-string-toggle.nvim: Fucking finally!
  • nfrid/markdown-togglecheck: Toggle Markdown checkboxes! Kinda hype, to be honest.
  • nkakouros-original/numbers.nvim: Slightly smarter relative line numbers.
  • Saecki/crates.nvim: This is nice. Makes crate management maybe a bit easier.
  • linrongbin16/gitlinker.nvim: Generate permalinks to lines in git.
  • Something to help navigate between many open windows. yorickpeterse/nvim-window?
  • Wansmer/treesj: Yay!

Big Projects:

  • ray-x/sad.nvim: Large scale refactoring with sad.

Niche:

  • Julian/lean.nvim: Lean theorem prover w/interactivity.
  • niuiic/typst-preview.nvim: typst does look quite interesting.
  • theKnightsOfRohan/hexer.nvim: Converting between binary representations.
  • Willem-J-an/visidata.nvim: Exploring pandas (polars too?) data in a terminal.
  • sachinsenal0x64/hot.nvim: Seems interesting but unsure how exactly.
  • notomo/gesture.nvim: Unironically interesting for touchscreens.
  • azratul/live-share.nvim: Pair programming.
  • m4xshen/hardtime.nvim: Bad habits die hard.
  • krady21/compiler-explorer.nvim: I love it, but I want it local...

Testing: nvim-neotest

  • Python
  • Rust
  • C++

Debugging: nvim-dap

  • Python: debugpy
  • C++: codelldb