Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
773e482
Add nvim-nio as dependency for nvim-dap-ui (#774)
alosarjos Mar 18, 2024
4c02e29
Update README.md (#781)
toocomputer Mar 20, 2024
dbba54c
README: wrap long lines (#784)
dam9000 Mar 21, 2024
2877a60
fix #799 (#800)
Saplyn Mar 27, 2024
93fde05
Add instructions to quit :lazy. Fixes #761
feoh Mar 27, 2024
1175f6d
Add a keymap space-f to format buffer using conform (#817)
dam9000 Mar 31, 2024
d605b84
Don't lazy load conform plugin (#818)
dam9000 Apr 1, 2024
19afab1
README: move backup and paths from external deps to install section (…
dam9000 Apr 1, 2024
c4363e4
Add a pull request template (#825)
dam9000 Apr 4, 2024
2377390
Update README (#832)
hoangvietdo Apr 8, 2024
e2bfa0c
Arch, btw (#852)
rdvm Apr 16, 2024
fabeb86
Comment about nerd font selection. Fixes #853 (#854)
dam9000 Apr 17, 2024
6d6b3f3
Fix: #847 - add prefer_git to treesitter config (#856)
feoh Apr 17, 2024
5540527
Enable inlay hints for the supporting servers (#843)
VlaDexa Apr 17, 2024
5e258d2
Move plugin examples from README to optional plugin files (#831)
dam9000 Apr 17, 2024
f5c9fe8
Add gitsigns recommended keymaps as an optional plugin (#858)
dam9000 Apr 18, 2024
b07176a
fix: restore Mason config timing for DAP startup (again) (#865)
GameFuzzy Apr 19, 2024
931ec5c
Update README.md (#860)
EvanCarroll Apr 20, 2024
9f5176f
Minor improvements of debian install instructions. Fixes #859 (#869)
dam9000 Apr 20, 2024
2e68a2c
Add a commented out example of the classic complete keymaps. Fixes #8…
dam9000 Apr 20, 2024
f92fb11
Fix deprecation notice of inlay hints (#873)
VlaDexa Apr 22, 2024
81f270a
Fix highlight errors when lsp crash or stop (#864)
sudo-tee Apr 22, 2024
942b261
fix: highlight group clear on each attach (#874)
sudo-tee Apr 22, 2024
8df3deb
Update README.md (#875)
adoante Apr 22, 2024
b7d5cc8
README: add clipboard tool dependency (#886)
dam9000 Apr 27, 2024
6f6f38a
Move LspDetach handler near kickstart-lsp-highlight group (#900)
dam9000 May 2, 2024
f86f18f
Add diff to treesitter's ensure_installed languages (#908)
rmacklin May 6, 2024
b9bd02d
fix: debug.lua (#918)
smiggiddy May 8, 2024
5aeddfd
Automatically set detached state as needed. (#925)
PerMalmberg May 10, 2024
f5c9195
which-key v3 update (#1022)
VlaDexa Jul 16, 2024
3e55ff1
fix(lazy): added error handling for bootstrap (#1001)
folke Jul 16, 2024
2df5137
fix: add required parsers from nvim-treesitter
tjdevries Jul 18, 2024
202910d
Fix neo-tree keymap description (#932)
dam9000 Jul 21, 2024
1cdf6fb
Remove redundant require (#959)
tjkuson Jul 21, 2024
4bbca64
Make debug lazy loadable (#978)
VlaDexa Jul 21, 2024
c405d3f
Update README.md | %userprofile%\appdata\local -> %localappdata% (#963)
MZhuvka Jul 21, 2024
b36d84d
Make conform.nvim be lazy-loadable again (#977)
VlaDexa Jul 21, 2024
07a9f44
Fix comment about mini.ai example (#985)
rmacklin Jul 21, 2024
7513ec8
Neovim 0.10 updates (#936)
VlaDexa Jul 22, 2024
6207327
Update lazydev config to fix "Undefined field `fs_stat`" LSP error (#…
rmacklin Jul 22, 2024
6f3fe35
lint: fix lsp warning in `vim.lsp.inlay_hint.is_enabled` (#947)
srdtrk Jul 22, 2024
56b9114
Update comment about the toggle inlay hints keymap (#1041)
rmacklin Jul 22, 2024
f00b286
Remove redundant hlsearch option (#1058)
rivenirvana Jul 28, 2024
1cef232
Modify conform comments to prevent deprecation warning when used (#1057)
igniscyan Jul 28, 2024
fd66454
refactor: remove lazydev and luvit-meta as lsp dependencies (#1047)
iton0 Jul 28, 2024
84cc123
performance: defer clipboard because xsel and pbcopy can be slow (#1049)
abeldekat Jul 28, 2024
bb9f84c
Remove treesitter prefer_git option (#1061)
jstrot Jul 30, 2024
1860184
Add explicit dependency of nvim-lspconfig on cmp-nvim-lsp (#1042)
jstrot Jul 30, 2024
c1ae909
Update README.md (#1091)
theoboldalex Aug 22, 2024
554a054
Add note in README about lazy-lock.json (#1090)
mattgallagher92 Aug 22, 2024
ce0c734
Check for loop or uv for lazypath (#1095)
LehMichael Aug 22, 2024
ac78e7d
refactor: update treesitter and which-key config (#1068)
iton0 Aug 23, 2024
d452633
Include visual mode in LSP code action keymap (#1060) (#1064)
byrmsh Aug 24, 2024
f49cc6c
Enable silent option for default neo-tree plugin keybinding (#1108)
byrmsh Aug 26, 2024
e4a5300
Fix: updated the windows installation commands (#1101)
pantharshit007 Aug 26, 2024
c76c323
fix: remove deprecated opt for conform.nvim (#1070)
iton0 Aug 26, 2024
24d368f
cleanup: refactor which-key configuration for cleaner setup (#1102)
iton0 Aug 26, 2024
a229761
Fix the which-key spec issue caused by recent cleanup (#1113)
dam9000 Aug 26, 2024
f98dc4c
Merge branch 'main' into patch/upstream-merge-24.9.1
abouthugo Sep 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
***************************************************************************
**NOTE**
Please verify that the `base repository` above has the intended destination!
Github by default opens Pull Requests against the parent of a forked repository.
If this is your personal fork and you didn't intend to open a PR for contribution
to the original project then adjust the `base repository` accordingly.
**************************************************************************

153 changes: 63 additions & 90 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,34 +21,52 @@ If you are experiencing issues, please make sure you have the latest versions.

### Install External Dependencies

> **NOTE**
> [Backup](#FAQ) your previous configuration (if any exists)

External Requirements:
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
- Clipboard tool (xclip/xsel/win32yank or other depending on 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
- Language Setup:
- If want to write Typescript, you need `npm`
- If want to write Golang, you will need `go`
- 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)| `%userprofile%\AppData\Local\nvim\` |
| Windows (powershell)| `$env:USERPROFILE\AppData\Local\nvim\` |
| Windows (cmd)| `%localappdata%\nvim\` |
| Windows (powershell)| `$env:LOCALAPPDATA\nvim\` |

### Install Kickstart
#### Recommended Step

Clone kickstart.nvim:
[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
[recommmended 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>

Expand All @@ -63,13 +81,13 @@ git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HO
If you're using `cmd.exe`:

```
git clone https://github.com/nvim-lua/kickstart.nvim.git %userprofile%\AppData\Local\nvim\
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:USERPROFILE\AppData\Local\nvim\
git clone https://github.com/nvim-lua/kickstart.nvim.git "${env:LOCALAPPDATA}\nvim"
```

</details>
Expand All @@ -83,93 +101,34 @@ nvim
```

That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
current plugin status.
current plugin status. Hit `q` to close the window.

Read through the `init.lua` file in your configuration folder for more
information about extending and exploring Neovim.
information about extending and exploring Neovim. That also includes
examples of adding popularly requested plugins.


### Getting Started

[The Only Video You Need to Get Started with Neovim](https://youtu.be/m8C0Cq9Uv9o)

### Recommended Steps

[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) and then install. You
can install it on your machine using the methods above.

> **NOTE**
> Your fork's url will be something like this: `https://github.com/<your_github_username>/kickstart.nvim.git`

#### Examples of adding popularly requested plugins

NOTE: You'll need to uncomment the line in the init.lua that turns on loading custom plugins.

<details>
<summary>Adding autopairs</summary>

This will automatically install [windwp/nvim-autopairs](https://github.com/windwp/nvim-autopairs) and enable it on startup. For more information, see documentation for [lazy.nvim](https://github.com/folke/lazy.nvim).

In the file: `lua/custom/plugins/autopairs.lua`, add:

```lua
-- File: lua/custom/plugins/autopairs.lua

return {
"windwp/nvim-autopairs",
-- Optional dependency
dependencies = { 'hrsh7th/nvim-cmp' },
config = function()
require("nvim-autopairs").setup {}
-- If you want to automatically add `(` after selecting a function or method
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
local cmp = require('cmp')
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)
end,
}
```

</details>
<details>
<summary>Adding a file tree plugin</summary>

This will install the tree plugin and add the command `:Neotree` for you. For more information, see the documentation at [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim).

In the file: `lua/custom/plugins/filetree.lua`, add:

```lua
-- File: lua/custom/plugins/filetree.lua

return {
"nvim-neo-tree/neo-tree.nvim",
version = "*",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
"MunifTanjim/nui.nvim",
},
config = function ()
require('neo-tree').setup {}
end,
}
```

</details>

### 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/`
* 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:
* 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.
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://github.com/folke/lazy.nvim#-uninstalling) information
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
Expand Down Expand Up @@ -228,7 +187,7 @@ wsl --install
wsl
sudo add-apt-repository ppa:neovim-ppa/unstable -y
sudo apt update
sudo apt install make gcc ripgrep unzip neovim
sudo apt install make gcc ripgrep unzip git xclip neovim
```
</details>

Expand All @@ -238,23 +197,37 @@ sudo apt install make gcc ripgrep unzip neovim
```
sudo add-apt-repository ppa:neovim-ppa/unstable -y
sudo apt update
sudo apt install make gcc ripgrep unzip neovim
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
echo "deb https://deb.debian.org/debian unstable main" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo apt install -t unstable neovim
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-linux64.tar.gz
sudo rm -rf /opt/nvim-linux64
sudo mkdir -p /opt/nvim-linux64
sudo chmod a+rX /opt/nvim-linux64
sudo tar -C /opt -xzf nvim-linux64.tar.gz

# make it available in /usr/local/bin, distro installs to /usr/bin
sudo ln -sf /opt/nvim-linux64/bin/nvim /usr/local/bin/
```
</details>
<details><summary>Fedora Install Steps</summary>

```
sudo dnf install -y gcc make git ripgrep fd-find neovim
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>

Loading