Skip to content

ditsuke/nvim-config

Repository files navigation

💤 ditsuke's nvim config

A tailored prose-writing and programming environment based on @folke's LazyVim

Dash

Requirements

  • Neovim Nightly.
  • Terminal emulator with support for the Kitty graphics protocol.
  • sqlite and lib-sqlite. See instructions.
  • A C compiler (e.g. gcc), make and cmake for some native plugins.

Features

  • IDE experience, out of the box
  • Debug Go, Rust, JS and others out of the box.
  • Integrated tests for popular languages/frameworks (powered by Neotest)
  • Automatic session management (including reloads!) with flag (+NoSession) to disable it.
  • Floating, persistent terminal
  • Better marks with Harpoon.
  • Editor context awareness and more powered by Treesitter. Checked for performance on large (>5000LOC) files!
  • LSP-sensitive completion context (import paths)
  • A ton of themes

Screenshots

Floating Terminals

Terminal search

File search

Structural Symbol Explorer

Better Quickfix list

How can I try this configuration?

There are 2 ways:

  1. Clone this into ~/.config/nvim-ditsuke, then run:

    NVIM_APPNAME=nvim-ditsuke nvim
  2. Use it as a layer in your LazyVim configuration. Note that 1. is simpler to get started and I personally don't dogfood this configuration as a layer.

    { "ditsuke/nvim-config", import = "ditsuke.plugins"}
    -- And any additional layers
    -- { import = "ditsuke.extras.code.neotest" },
    -- { import = "ditsuke.extras.utils.ai" },
    -- { import = "ditsuke.extras.utils.wakatime" },
    --
    -- -- Language extensions
    -- { import = "ditsuke.extras.lang.go" },
    -- { import = "ditsuke.extras.lang.java" },
    -- { import = "ditsuke.extras.lang.typescript" }, -- vs `lazyvim.plugins.extras.lang.typescript`, this one uses vtsls instead
    -- { import = "ditsuke.extras.lang.python" },
    -- { import = "ditsuke.extras.lang.rust" },

Stability

I consider this configuration bleeding edge and maintain it for my own use. As such, there are no guarantees on stability but I'm open to issues and fixes and try to keep the configuration as plug-and-play as possible.

FAQs

Fresh install appears broken

It's likely the WakaTime plugin, which misbehaves when the API key is not set. You can either set the API key (:WakaTimeApiKey) or disable the WakaTime extra in ./lua/ditsuke/config/lazy.lua

If it's another plugin installation that's failing, please ensure you satisfy all requirements. If you're still stuck, please open an issue.

Ideas and Inspiration

And countless other dotfiles

About

Batteries included Neovim configuration for code and prose

Topics

Resources

License

Stars

Watchers

Forks

Languages