51 lines
2.7 KiB
Markdown
51 lines
2.7 KiB
Markdown
# 💤 Neovim Dotfiles
|
|
|
|
My Neovim configuration files, built on top of [LazyVim](https://github.com/LazyVim/LazyVim). Makes Neovim an actual usable IDE.
|
|
|
|
The main goal of this setup is to reach somewhat feature parity with VSCode's Intellisense features (in other words, to be _at least_ as productive as in VSCode).
|
|
|
|
## Installation
|
|
|
|
Ensure you have the latest version of Neovim installed, and remove or backup your existing settings. Install `tree-sitter-cli` with either `cargo` or `npm`, and ensure `npm` and `tree-sitter-cli` are on your `PATH`.
|
|
|
|
```sh
|
|
rm -rf ~/.config/nvim
|
|
mv ~/.nvim ~/.nvim.bak
|
|
|
|
# with npm (or pnpm, bun, yarn)
|
|
npm install --global tree-sitter-cli
|
|
|
|
# with cargo
|
|
cargo install tree-sitter-cli
|
|
```
|
|
|
|
Then, clone this repository into where Neovim is expecting configuration files (usually `~/.config/nvim`).
|
|
|
|
```sh
|
|
git clone https://github.com/couscousdude/neovim-dots ~/.config/nvim
|
|
```
|
|
|
|
Launch Neovim and it should automatically setup `lazy.nvim` and install all plugins.
|
|
|
|
You can install LSPs for new languages by running `:MasonInstall <language>` and Treesitter parsers with `:TSInstall <language>`.
|
|
|
|
Set up Copilot with `:Copilot setup` and follow the instructions (or remove it by going to the LazyVim "Extras" section and uninstalling it. You can replace it with Codeium or Tab9).
|
|
|
|
Set up Wakatime with `:WakaTimeApiKey` (or uninstall it by removing its entry from `nvim/lua/plugins/extras.lua`).
|
|
|
|
Check the [LazyVim documentation](https://github.com/LazyVim/LazyVim) for more information on the rest of the features and plugins.
|
|
|
|
## Non-exhaustive list of changes on top of LazyVim
|
|
|
|
- More LSP configuration
|
|
- `typescript-tools.nvim` to replace `typescript-language-server` from Mason, to reduce crashes and improve performance.
|
|
- `tailwind-fold` to fold long CSS classnames
|
|
- `vim-wakatime` to track time spent coding.
|
|
- Made background transparent and increased some colors to increase contrast (line numbers, etc).
|
|
- Add `presence.nvim` for Discord Rich Presence integration.
|
|
- Add Arch logo to the dashboard (page that initially opens if you type `nvim`) (did I mention I use Arch btw).
|
|
- Fix various annoyances with plugins:
|
|
- Disable duplicate TS error reports from `tsserver` and `typescript-language-server`.
|
|
- Rebind window resizing to use the `<alt>` key instead of `<ctrl>` because it conflicts with macOS window change shortcuts.
|
|
- Configure notification plugin (`noice.nvim`) to suppress "No information available" when triggering hover (this is to prevent tailwind-language-server from showing this message on every hover when editing files containing both Tailwind and other languages with LSPs, such as `.svelte`).
|
|
- Move `neo-tree` to the right side of the screen by default (life changing).
|