chore: update project
This commit is contained in:
parent
409f61ca36
commit
d6b231329f
243
README.md
243
README.md
|
|
@ -1,241 +1,24 @@
|
||||||
# kickstart.nvim
|
# Isenguard NVM
|
||||||
|
|
||||||
## Introduction
|
This is a simplistic nvm distro based on Kickstart NVM.
|
||||||
|
|
||||||
A starting point for Neovim that is:
|
## Requirements
|
||||||
|
|
||||||
* Small
|
- [Nerd fonts](https://www.nerdfonts.com/) install using your OS package manager
|
||||||
* Single-file
|
- Make your terminal use the nerdfonts
|
||||||
* Completely Documented
|
|
||||||
|
|
||||||
**NOT** a Neovim distribution, but instead a starting point for your configuration.
|
## How to install
|
||||||
|
|
||||||
## Installation
|
- Install Isenguard NVM with git
|
||||||
|
|
||||||
### Install Neovim
|
```bash
|
||||||
|
git clone git@github.com:graned/isenguard.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/isenguard
|
||||||
Kickstart.nvim targets *only* the latest
|
|
||||||
['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest
|
|
||||||
['nightly'](https://github.com/neovim/neovim/releases/tag/nightly) of Neovim.
|
|
||||||
If you are experiencing issues, please make sure you have the latest versions.
|
|
||||||
|
|
||||||
### Install External Dependencies
|
|
||||||
|
|
||||||
External Requirements:
|
|
||||||
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
|
|
||||||
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation),
|
|
||||||
[fd-find](https://github.com/sharkdp/fd#installation)
|
|
||||||
- Clipboard tool (xclip/xsel/win32yank or other depending on the platform)
|
|
||||||
- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons
|
|
||||||
- if you have it set `vim.g.have_nerd_font` in `init.lua` to true
|
|
||||||
- Emoji fonts (Ubuntu only, and only if you want emoji!) `sudo apt install fonts-noto-color-emoji`
|
|
||||||
- Language Setup:
|
|
||||||
- If you want to write Typescript, you need `npm`
|
|
||||||
- If you want to write Golang, you will need `go`
|
|
||||||
- etc.
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes
|
|
||||||
> and quick install snippets
|
|
||||||
|
|
||||||
### Install Kickstart
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> [Backup](#FAQ) your previous configuration (if any exists)
|
|
||||||
|
|
||||||
Neovim's configurations are located under the following paths, depending on your OS:
|
|
||||||
|
|
||||||
| OS | PATH |
|
|
||||||
| :- | :--- |
|
|
||||||
| Linux, MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
|
|
||||||
| Windows (cmd)| `%localappdata%\nvim\` |
|
|
||||||
| Windows (powershell)| `$env:LOCALAPPDATA\nvim\` |
|
|
||||||
|
|
||||||
#### Recommended Step
|
|
||||||
|
|
||||||
[Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) this repo
|
|
||||||
so that you have your own copy that you can modify, then install by cloning the
|
|
||||||
fork to your machine using one of the commands below, depending on your OS.
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> Your fork's URL will be something like this:
|
|
||||||
> `https://github.com/<your_github_username>/kickstart.nvim.git`
|
|
||||||
|
|
||||||
You likely want to remove `lazy-lock.json` from your fork's `.gitignore` file
|
|
||||||
too - it's ignored in the kickstart repo to make maintenance easier, but it's
|
|
||||||
[recommended to track it in version control](https://lazy.folke.io/usage/lockfile).
|
|
||||||
|
|
||||||
#### Clone kickstart.nvim
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> If following the recommended step above (i.e., forking the repo), replace
|
|
||||||
> `nvim-lua` with `<your_github_username>` in the commands below
|
|
||||||
|
|
||||||
<details><summary> Linux and Mac </summary>
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
This will install the project in the `.config/` folder under folder `isenguard`
|
||||||
|
|
||||||
<details><summary> Windows </summary>
|
- Add alias in your zsh (Optional)
|
||||||
|
|
||||||
If you're using `cmd.exe`:
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
alias isenguard='NVIM_APPNAME="isn" nvm'
|
||||||
```
|
```
|
||||||
git clone https://github.com/nvim-lua/kickstart.nvim.git "%localappdata%\nvim"
|
|
||||||
```
|
|
||||||
|
|
||||||
If you're using `powershell.exe`
|
|
||||||
|
|
||||||
```
|
|
||||||
git clone https://github.com/nvim-lua/kickstart.nvim.git "${env:LOCALAPPDATA}\nvim"
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
### Post Installation
|
|
||||||
|
|
||||||
Start Neovim
|
|
||||||
|
|
||||||
```sh
|
|
||||||
nvim
|
|
||||||
```
|
|
||||||
|
|
||||||
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
|
|
||||||
the current plugin status. Hit `q` to close the window.
|
|
||||||
|
|
||||||
#### Read The Friendly Documentation
|
|
||||||
|
|
||||||
Read through the `init.lua` file in your configuration folder for more
|
|
||||||
information about extending and exploring Neovim. That also includes
|
|
||||||
examples of adding popularly requested plugins.
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> For more information about a particular plugin check its repository's documentation.
|
|
||||||
|
|
||||||
|
|
||||||
### Getting Started
|
|
||||||
|
|
||||||
[The Only Video You Need to Get Started with Neovim](https://youtu.be/m8C0Cq9Uv9o)
|
|
||||||
|
|
||||||
### FAQ
|
|
||||||
|
|
||||||
* What should I do if I already have a pre-existing Neovim configuration?
|
|
||||||
* You should back it up and then delete all associated files.
|
|
||||||
* This includes your existing init.lua and the Neovim files in `~/.local`
|
|
||||||
which can be deleted with `rm -rf ~/.local/share/nvim/`
|
|
||||||
* Can I keep my existing configuration in parallel to kickstart?
|
|
||||||
* Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME`
|
|
||||||
to maintain multiple configurations. For example, you can install the kickstart
|
|
||||||
configuration in `~/.config/nvim-kickstart` and create an alias:
|
|
||||||
```
|
|
||||||
alias nvim-kickstart='NVIM_APPNAME="nvim-kickstart" nvim'
|
|
||||||
```
|
|
||||||
When you run Neovim using `nvim-kickstart` alias it will use the alternative
|
|
||||||
config directory and the matching local directory
|
|
||||||
`~/.local/share/nvim-kickstart`. You can apply this approach to any Neovim
|
|
||||||
distribution that you would like to try out.
|
|
||||||
* What if I want to "uninstall" this configuration:
|
|
||||||
* See [lazy.nvim uninstall](https://lazy.folke.io/usage#-uninstalling) information
|
|
||||||
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
|
|
||||||
* The main purpose of kickstart is to serve as a teaching tool and a reference
|
|
||||||
configuration that someone can easily use to `git clone` as a basis for their own.
|
|
||||||
As you progress in learning Neovim and Lua, you might consider splitting `init.lua`
|
|
||||||
into smaller parts. A fork of kickstart that does this while maintaining the
|
|
||||||
same functionality is available here:
|
|
||||||
* [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim)
|
|
||||||
* Discussions on this topic can be found here:
|
|
||||||
* [Restructure the configuration](https://github.com/nvim-lua/kickstart.nvim/issues/218)
|
|
||||||
* [Reorganize init.lua into a multi-file setup](https://github.com/nvim-lua/kickstart.nvim/pull/473)
|
|
||||||
|
|
||||||
### Install Recipes
|
|
||||||
|
|
||||||
Below you can find OS specific install instructions for Neovim and dependencies.
|
|
||||||
|
|
||||||
After installing all the dependencies continue with the [Install Kickstart](#Install-Kickstart) step.
|
|
||||||
|
|
||||||
#### Windows Installation
|
|
||||||
|
|
||||||
<details><summary>Windows with Microsoft C++ Build Tools and CMake</summary>
|
|
||||||
Installation may require installing build tools and updating the run command for `telescope-fzf-native`
|
|
||||||
|
|
||||||
See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation)
|
|
||||||
|
|
||||||
This requires:
|
|
||||||
|
|
||||||
- Install CMake and the Microsoft C++ Build Tools on Windows
|
|
||||||
|
|
||||||
```lua
|
|
||||||
{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
<details><summary>Windows with gcc/make using chocolatey</summary>
|
|
||||||
Alternatively, one can install gcc and make which don't require changing the config,
|
|
||||||
the easiest way is to use choco:
|
|
||||||
|
|
||||||
1. install [chocolatey](https://chocolatey.org/install)
|
|
||||||
either follow the instructions on the page or use winget,
|
|
||||||
run in cmd as **admin**:
|
|
||||||
```
|
|
||||||
winget install --accept-source-agreements chocolatey.chocolatey
|
|
||||||
```
|
|
||||||
|
|
||||||
2. install all requirements using choco, exit the previous cmd and
|
|
||||||
open a new one so that choco path is set, and run in cmd as **admin**:
|
|
||||||
```
|
|
||||||
choco install -y neovim git ripgrep wget fd unzip gzip mingw make
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
<details><summary>WSL (Windows Subsystem for Linux)</summary>
|
|
||||||
|
|
||||||
```
|
|
||||||
wsl --install
|
|
||||||
wsl
|
|
||||||
sudo add-apt-repository ppa:neovim-ppa/unstable -y
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install make gcc ripgrep unzip git xclip neovim
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
#### Linux Install
|
|
||||||
<details><summary>Ubuntu Install Steps</summary>
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo add-apt-repository ppa:neovim-ppa/unstable -y
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install make gcc ripgrep unzip git xclip neovim
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
<details><summary>Debian Install Steps</summary>
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install make gcc ripgrep unzip git xclip curl
|
|
||||||
|
|
||||||
# Now we install nvim
|
|
||||||
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
|
|
||||||
sudo rm -rf /opt/nvim-linux-x86_64
|
|
||||||
sudo mkdir -p /opt/nvim-linux-x86_64
|
|
||||||
sudo chmod a+rX /opt/nvim-linux-x86_64
|
|
||||||
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
|
|
||||||
|
|
||||||
# make it available in /usr/local/bin, distro installs to /usr/bin
|
|
||||||
sudo ln -sf /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
<details><summary>Fedora Install Steps</summary>
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo dnf install -y gcc make git ripgrep fd-find unzip neovim
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
<details><summary>Arch Install Steps</summary>
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo pacman -S --noconfirm --needed gcc make git ripgrep fd unzip neovim
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
|
|
|
||||||
69
init.lua
69
init.lua
|
|
@ -91,7 +91,7 @@ vim.g.mapleader = ' '
|
||||||
vim.g.maplocalleader = ' '
|
vim.g.maplocalleader = ' '
|
||||||
|
|
||||||
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
||||||
vim.g.have_nerd_font = false
|
vim.g.have_nerd_font = true
|
||||||
|
|
||||||
-- [[ Setting options ]]
|
-- [[ Setting options ]]
|
||||||
-- See `:help vim.o`
|
-- See `:help vim.o`
|
||||||
|
|
@ -114,9 +114,9 @@ vim.o.showmode = false
|
||||||
-- Schedule the setting after `UiEnter` because it can increase startup-time.
|
-- Schedule the setting after `UiEnter` because it can increase startup-time.
|
||||||
-- Remove this option if you want your OS clipboard to remain independent.
|
-- Remove this option if you want your OS clipboard to remain independent.
|
||||||
-- See `:help 'clipboard'`
|
-- See `:help 'clipboard'`
|
||||||
vim.schedule(function()
|
--vim.schedule(function()
|
||||||
vim.o.clipboard = 'unnamedplus'
|
-- vim.o.clipboard = 'unnamedplus'
|
||||||
end)
|
-- end)
|
||||||
|
|
||||||
-- Enable break indent
|
-- Enable break indent
|
||||||
vim.o.breakindent = true
|
vim.o.breakindent = true
|
||||||
|
|
@ -661,6 +661,7 @@ require('lazy').setup({
|
||||||
-- So, we create new capabilities with blink.cmp, and then broadcast that to the servers.
|
-- So, we create new capabilities with blink.cmp, and then broadcast that to the servers.
|
||||||
local capabilities = require('blink.cmp').get_lsp_capabilities()
|
local capabilities = require('blink.cmp').get_lsp_capabilities()
|
||||||
|
|
||||||
|
-- helper to attach any LSP config to a filetype
|
||||||
-- Enable the following language servers
|
-- Enable the following language servers
|
||||||
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
|
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
|
||||||
--
|
--
|
||||||
|
|
@ -683,7 +684,40 @@ require('lazy').setup({
|
||||||
-- But for many setups, the LSP (`ts_ls`) will work just fine
|
-- But for many setups, the LSP (`ts_ls`) will work just fine
|
||||||
-- ts_ls = {},
|
-- ts_ls = {},
|
||||||
--
|
--
|
||||||
|
-- TypeScript / JavaScript (vtsls instead of tsserver)
|
||||||
|
vtsls = {
|
||||||
|
settings = {
|
||||||
|
complete_function_calls = true,
|
||||||
|
tsserver_file_preferences = {
|
||||||
|
includeInlayParameterNameHints = 'all',
|
||||||
|
includeCompletionsForModuleExports = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Python
|
||||||
|
basedpyright = {}, -- type checking
|
||||||
|
ruff_lsp = { -- linting + quickfixes
|
||||||
|
on_attach = function(client)
|
||||||
|
-- Let basedpyright handle hovers; ruff for diagnostics/code actions
|
||||||
|
client.server_capabilities.hoverProvider = false
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Rust (use this only if you are NOT using rustaceanvim)
|
||||||
|
-- If you DO use rustaceanvim, delete this rust_analyzer entry to avoid double attach.
|
||||||
|
-- rust_analyzer = {
|
||||||
|
-- settings = {
|
||||||
|
-- ["rust-analyzer"] = {
|
||||||
|
-- cargo = { allFeatures = true },
|
||||||
|
-- checkOnSave = true,
|
||||||
|
-- check = { command = "clippy" },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
|
||||||
|
-- (optional) TOML LSP for Cargo.toml
|
||||||
|
taplo = {},
|
||||||
lua_ls = {
|
lua_ls = {
|
||||||
-- cmd = { ... },
|
-- cmd = { ... },
|
||||||
-- filetypes = { ... },
|
-- filetypes = { ... },
|
||||||
|
|
@ -876,28 +910,6 @@ require('lazy').setup({
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
{ -- You can easily change to a different colorscheme.
|
|
||||||
-- Change the name of the colorscheme plugin below, and then
|
|
||||||
-- change the command in the config to whatever the name of that colorscheme is.
|
|
||||||
--
|
|
||||||
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
|
||||||
'folke/tokyonight.nvim',
|
|
||||||
priority = 1000, -- Make sure to load this before all the other start plugins.
|
|
||||||
config = function()
|
|
||||||
---@diagnostic disable-next-line: missing-fields
|
|
||||||
require('tokyonight').setup {
|
|
||||||
styles = {
|
|
||||||
comments = { italic = false }, -- Disable italics in comments
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Load the colorscheme here.
|
|
||||||
-- Like many other themes, this one has different styles, and you could load
|
|
||||||
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
|
||||||
vim.cmd.colorscheme 'tokyonight-night'
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Highlight todo, notes, etc in comments
|
-- Highlight todo, notes, etc in comments
|
||||||
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
|
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
|
||||||
|
|
||||||
|
|
@ -952,7 +964,7 @@ require('lazy').setup({
|
||||||
-- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
|
-- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
|
||||||
-- If you are experiencing weird indenting issues, add the language to
|
-- If you are experiencing weird indenting issues, add the language to
|
||||||
-- the list of additional_vim_regex_highlighting and disabled languages for indent.
|
-- the list of additional_vim_regex_highlighting and disabled languages for indent.
|
||||||
additional_vim_regex_highlighting = { 'ruby' },
|
-- additional_vim_regex_highlighting = { 'ruby' },
|
||||||
},
|
},
|
||||||
indent = { enable = true, disable = { 'ruby' } },
|
indent = { enable = true, disable = { 'ruby' } },
|
||||||
},
|
},
|
||||||
|
|
@ -979,7 +991,8 @@ require('lazy').setup({
|
||||||
require 'kickstart.plugins.autopairs',
|
require 'kickstart.plugins.autopairs',
|
||||||
require 'kickstart.plugins.neo-tree',
|
require 'kickstart.plugins.neo-tree',
|
||||||
require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||||
-- require 'kickstart.plugins.devstack',
|
require 'kickstart.plugins.devstack',
|
||||||
|
require 'kickstart.plugins.theme',
|
||||||
|
|
||||||
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
||||||
-- This is the easiest way to modularize your config.
|
-- This is the easiest way to modularize your config.
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ return {
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
-- LSP servers
|
-- LSP servers
|
||||||
'basedpyright', -- Python
|
'basedpyright', -- Python
|
||||||
'ruff_lsp', -- Python linter LSP
|
'ruff', -- Python linter LSP
|
||||||
'tsserver', -- TypeScript/JavaScript
|
'vtsls', -- TypeScript/JavaScript
|
||||||
'rust_analyzer', -- Rust
|
'rust_analyzer', -- Rust
|
||||||
},
|
},
|
||||||
automatic_installation = true,
|
automatic_installation = true,
|
||||||
|
|
@ -25,14 +25,17 @@ return {
|
||||||
-- Python
|
-- Python
|
||||||
'basedpyright',
|
'basedpyright',
|
||||||
'ruff',
|
'ruff',
|
||||||
'ruff-lsp',
|
|
||||||
'black',
|
'black',
|
||||||
-- TypeScript/JS
|
-- TypeScript/JS
|
||||||
'typescript-language-server',
|
'vtsls',
|
||||||
'prettierd',
|
'prettierd',
|
||||||
-- Rust
|
-- Rust
|
||||||
'rust-analyzer',
|
'rust-analyzer',
|
||||||
'codelldb',
|
'codelldb',
|
||||||
|
-- git
|
||||||
|
'lazygit',
|
||||||
|
--markdown
|
||||||
|
'markdownlint',
|
||||||
},
|
},
|
||||||
auto_update = true,
|
auto_update = true,
|
||||||
run_on_start = true,
|
run_on_start = true,
|
||||||
|
|
@ -41,35 +44,6 @@ return {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- LSP configs
|
|
||||||
{
|
|
||||||
'neovim/nvim-lspconfig',
|
|
||||||
config = function()
|
|
||||||
local lsp = require 'lspconfig'
|
|
||||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
|
||||||
local ok_cmp, cmp = pcall(require, 'cmp_nvim_lsp')
|
|
||||||
if ok_cmp then
|
|
||||||
capabilities = cmp.default_capabilities(capabilities)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Python: basedpyright + ruff_lsp
|
|
||||||
lsp.basedpyright.setup { capabilities = capabilities }
|
|
||||||
lsp.ruff_lsp.setup {
|
|
||||||
capabilities = capabilities,
|
|
||||||
on_attach = function(client)
|
|
||||||
-- Let Ruff format/fix; disable hover if you prefer Pyright’s hover
|
|
||||||
client.server_capabilities.hoverProvider = false
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
||||||
-- TypeScript / JavaScript
|
|
||||||
lsp.tsserver.setup { capabilities = capabilities }
|
|
||||||
|
|
||||||
-- Rust (use rustaceanvim below; comment that out if you prefer plain lsp)
|
|
||||||
lsp.rust_analyzer.setup { capabilities = capabilities }
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Rust UX (recommended)
|
-- Rust UX (recommended)
|
||||||
{
|
{
|
||||||
'mrcjkb/rustaceanvim',
|
'mrcjkb/rustaceanvim',
|
||||||
|
|
@ -80,7 +54,8 @@ return {
|
||||||
settings = {
|
settings = {
|
||||||
['rust-analyzer'] = {
|
['rust-analyzer'] = {
|
||||||
cargo = { allFeatures = true },
|
cargo = { allFeatures = true },
|
||||||
checkOnSave = { command = 'clippy' },
|
checkOnSave = true,
|
||||||
|
check = { command = 'clippy' },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -115,37 +90,60 @@ return {
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Codeium (AI pair programming)
|
-- NeoGit
|
||||||
{
|
{
|
||||||
'Exafunction/codeium.nvim',
|
'NeogitOrg/neogit',
|
||||||
dependencies = {
|
dependencies = {
|
||||||
'nvim-lua/plenary.nvim',
|
'nvim-lua/plenary.nvim',
|
||||||
'hrsh7th/nvim-cmp', -- if you’re using cmp (kickstart does)
|
'sindrets/diffview.nvim', -- optional but great for diffs
|
||||||
|
'nvim-telescope/telescope.nvim', -- optional pickers
|
||||||
},
|
},
|
||||||
config = function()
|
cmd = { 'Neogit' },
|
||||||
require('codeium').setup {}
|
|
||||||
-- After first start, run :Codeium Auth in Neovim to link your account.
|
|
||||||
-- If you want Codeium suggestions inline + cmp source, ensure the cmp source is added (see below).
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Add Codeium to nvim-cmp sources (if your repo has a cmp config file already)
|
|
||||||
{
|
|
||||||
'hrsh7th/nvim-cmp',
|
|
||||||
opts = function(_, opts)
|
|
||||||
opts.sources = opts.sources or {}
|
|
||||||
-- Prepend Codeium to increase its priority (optional)
|
|
||||||
table.insert(opts.sources, 1, { name = 'codeium' })
|
|
||||||
return opts
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- LazyGit integration
|
|
||||||
{
|
|
||||||
'kdheepak/lazygit.nvim',
|
|
||||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
|
||||||
keys = {
|
keys = {
|
||||||
{ '<leader>gg', '<cmd>LazyGit<cr>', desc = 'LazyGit' },
|
{
|
||||||
|
'<leader>gg',
|
||||||
|
function()
|
||||||
|
require('neogit').open()
|
||||||
|
end,
|
||||||
|
desc = 'Neogit',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>gc',
|
||||||
|
function()
|
||||||
|
require('neogit').open { 'commit' }
|
||||||
|
end,
|
||||||
|
desc = 'Neogit Commit',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>gpr',
|
||||||
|
function()
|
||||||
|
require('neogit').open { 'pull' }
|
||||||
|
end,
|
||||||
|
desc = 'Neogit Pull',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>gp',
|
||||||
|
function()
|
||||||
|
require('neogit').open { 'push' }
|
||||||
|
end,
|
||||||
|
desc = 'Neogit Push',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
disable_signs = false,
|
||||||
|
disable_commit_confirmation = true,
|
||||||
|
integrations = {
|
||||||
|
diffview = true, -- use Diffview for diffs/log
|
||||||
|
telescope = true, -- Telescope pickers
|
||||||
|
},
|
||||||
|
kind = 'tab', -- "tab" | "replace" | "floating"
|
||||||
|
commit_editor = {
|
||||||
|
kind = 'auto', -- smartly choose where to open commit buffer
|
||||||
|
},
|
||||||
|
mappings = {
|
||||||
|
commit_editor = { ['q'] = 'Close' },
|
||||||
|
rebase_editor = { ['q'] = 'Close' },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'nvim-neo-tree/neo-tree.nvim',
|
'nvim-neo-tree/neo-tree.nvim',
|
||||||
version = '*',
|
branch = 'v3.x',
|
||||||
dependencies = {
|
dependencies = {
|
||||||
'nvim-lua/plenary.nvim',
|
'nvim-lua/plenary.nvim',
|
||||||
'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
|
'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
|
||||||
|
|
@ -15,6 +15,11 @@ return {
|
||||||
},
|
},
|
||||||
opts = {
|
opts = {
|
||||||
filesystem = {
|
filesystem = {
|
||||||
|
filtered_items = {
|
||||||
|
visible = true,
|
||||||
|
hide_dotfiles = false,
|
||||||
|
hide_gitignored = false,
|
||||||
|
},
|
||||||
window = {
|
window = {
|
||||||
mappings = {
|
mappings = {
|
||||||
['\\'] = 'close_window',
|
['\\'] = 'close_window',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue