Skip to content

Commit c2d78d9

Browse files
authored
Merge branch 'master' into master
2 parents c6a680a + cfdc17b commit c2d78d9

14 files changed

Lines changed: 1204 additions & 1156 deletions

File tree

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ assignees: ''
1111

1212
## Before Reporting an Issue
1313
- I have read the kickstart.nvim README.md.
14-
- I have read the appropiate plugin's documentation.
14+
- I have read the appropriate plugin's documentation.
1515
- I have searched that this issue has not been reported before.
1616

1717
- [ ] **By checking this, I confirm that the above steps are completed. I understand leaving this unchecked will result in this report being closed immediately.**

.github/workflows/stylua.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,12 @@ jobs:
99
runs-on: ubuntu-latest
1010
steps:
1111
- name: Checkout Code
12-
uses: actions/checkout@v2
12+
uses: actions/checkout@v6
1313
with:
1414
ref: ${{ github.event.pull_request.head.sha }}
1515
- name: Stylua Check
16-
uses: JohnnyMorganz/stylua-action@v3
16+
uses: JohnnyMorganz/stylua-action@v4
1717
with:
1818
token: ${{ secrets.GITHUB_TOKEN }}
1919
version: latest
2020
args: --check .
21-

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,12 @@ test.sh
44
nvim
55

66
spell/
7+
8+
# In your personal fork, you likely want to comment this, since it's recommended to track
9+
# nvim-pack-lock.json in version control - see :help vim.pack-lockfile
10+
# For the official `nvim-lua/kickstart.nvim` git repository, we leave it ignored to avoid unneeded
11+
# merge conflicts.
12+
nvim-pack-lock.json
13+
14+
.DS_Store
15+

.stylua.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ indent_type = "Spaces"
44
indent_width = 2
55
quote_style = "AutoPreferSingle"
66
call_parentheses = "None"
7+
collapse_simple_statement = "Always"

README.md

Lines changed: 137 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,38 @@ A starting point for Neovim that is:
1717
Kickstart.nvim targets *only* the latest
1818
['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest
1919
['nightly'](https://github.com/neovim/neovim/releases/tag/nightly) of Neovim.
20-
If you are experiencing issues, please make sure you have the latest versions.
20+
If you are experiencing issues, please make sure you have at least the latest
21+
stable version. Most likely, you want to install neovim via a [package
22+
manager](https://github.com/neovim/neovim/blob/master/INSTALL.md#install-from-package).
23+
To check your neovim version, run `nvim --version` and make sure it is not
24+
below the latest
25+
['stable'](https://github.com/neovim/neovim/releases/tag/stable) version. If
26+
your chosen install method only gives you an outdated version of neovim, find
27+
alternative [installation methods below](#alternative-neovim-installation-methods).
2128

2229
### Install External Dependencies
2330

2431
External Requirements:
2532
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
26-
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
33+
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation),
34+
[fd-find](https://github.com/sharkdp/fd#installation)
35+
- [tree-sitter CLI](https://github.com/tree-sitter/tree-sitter/blob/master/crates/cli/README.md#installation)
2736
- Clipboard tool (xclip/xsel/win32yank or other depending on the platform)
2837
- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons
2938
- if you have it set `vim.g.have_nerd_font` in `init.lua` to true
39+
- Emoji fonts (Ubuntu only, and only if you want emoji!) `sudo apt install fonts-noto-color-emoji`
3040
- Language Setup:
3141
- If you want to write Typescript, you need `npm`
3242
- If you want to write Golang, you will need `go`
3343
- etc.
3444

35-
> **NOTE**
45+
> [!NOTE]
3646
> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes
3747
> and quick install snippets
3848
3949
### Install Kickstart
4050

41-
> **NOTE**
51+
> [!NOTE]
4252
> [Backup](#FAQ) your previous configuration (if any exists)
4353
4454
Neovim's configurations are located under the following paths, depending on your OS:
@@ -55,16 +65,17 @@ Neovim's configurations are located under the following paths, depending on your
5565
so that you have your own copy that you can modify, then install by cloning the
5666
fork to your machine using one of the commands below, depending on your OS.
5767

58-
> **NOTE**
68+
> [!NOTE]
5969
> Your fork's URL will be something like this:
6070
> `https://github.com/<your_github_username>/kickstart.nvim.git`
6171
62-
You likely want to remove `lazy-lock.json` from your fork's `.gitignore` file
63-
too - it's ignored in the kickstart repo to make maintenance easier, but it's
64-
[recommended to track it in version control](https://lazy.folke.io/usage/lockfile).
72+
You likely want to remove `nvim-pack-lock.json` from your fork's `.gitignore`
73+
file too - it's ignored in the kickstart repo to make maintenance easier, but
74+
it's recommended to track it in version control (see `:help vim.pack-lockfile`).
6575

6676
#### Clone kickstart.nvim
67-
> **NOTE**
77+
78+
> [!NOTE]
6879
> If following the recommended step above (i.e., forking the repo), replace
6980
> `nvim-lua` with `<your_github_username>` in the commands below
7081
@@ -100,8 +111,10 @@ Start Neovim
100111
nvim
101112
```
102113

103-
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
104-
the current plugin status. Hit `q` to close the window.
114+
That's it! `vim.pack` will install all the plugins from your config. Use
115+
`:lua vim.pack.update(nil, { offline = true })` to inspect plugin state and
116+
`:lua vim.pack.update()` to fetch updates (`:write` applies updates, `:quit`
117+
cancels them).
105118

106119
#### Read The Friendly Documentation
107120

@@ -135,7 +148,8 @@ examples of adding popularly requested plugins.
135148
`~/.local/share/nvim-kickstart`. You can apply this approach to any Neovim
136149
distribution that you would like to try out.
137150
* What if I want to "uninstall" this configuration:
138-
* See [lazy.nvim uninstall](https://lazy.folke.io/usage#-uninstalling) information
151+
* Remove your config directory and local data directory (for example,
152+
`~/.config/nvim` and `~/.local/share/nvim`).
139153
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
140154
* The main purpose of kickstart is to serve as a teaching tool and a reference
141155
configuration that someone can easily use to `git clone` as a basis for their own.
@@ -151,22 +165,41 @@ examples of adding popularly requested plugins.
151165
152166
Below you can find OS specific install instructions for Neovim and dependencies.
153167
154-
After installing all the dependencies continue with the [Install Kickstart](#Install-Kickstart) step.
168+
After installing all the dependencies continue with the [Install Kickstart](#install-kickstart) step.
155169
156170
#### Windows Installation
157171
158172
<details><summary>Windows with Microsoft C++ Build Tools and CMake</summary>
159-
Installation may require installing build tools and updating the run command for `telescope-fzf-native`
173+
Kickstart's default config is make-only for `telescope-fzf-native.nvim`.
174+
If `make` is unavailable, the plugin is skipped.
160175
161-
See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation)
176+
Recommended: install `make` (see the chocolatey section below).
162177
163-
This requires:
178+
If you want a CMake-only setup, customize `init.lua` in two places:
164179
165-
- Install CMake and the Microsoft C++ Build Tools on Windows
180+
1. Include `telescope-fzf-native.nvim` when `cmake` is available:
166181
167182
```lua
168-
{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }
183+
if vim.fn.executable 'make' == 1 or vim.fn.executable 'cmake' == 1 then
184+
table.insert(plugins, gh 'nvim-telescope/telescope-fzf-native.nvim')
185+
end
169186
```
187+
188+
2. In the `PackChanged` hook, use CMake when `make` is unavailable:
189+
190+
```lua
191+
if name == 'telescope-fzf-native.nvim' then
192+
if vim.fn.executable 'make' == 1 then
193+
run_build(name, { 'make' }, ev.data.path)
194+
elseif vim.fn.executable 'cmake' == 1 then
195+
run_build(name, { 'cmake', '-S.', '-Bbuild', '-DCMAKE_BUILD_TYPE=Release' }, ev.data.path)
196+
run_build(name, { 'cmake', '--build', 'build', '--config', 'Release', '--target', 'install' }, ev.data.path)
197+
end
198+
return
199+
end
200+
```
201+
202+
See `telescope-fzf-native` documentation for [build details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation).
170203
</details>
171204
<details><summary>Windows with gcc/make using chocolatey</summary>
172205
Alternatively, one can install gcc and make which don't require changing the config,
@@ -182,7 +215,7 @@ winget install --accept-source-agreements chocolatey.chocolatey
182215
2. install all requirements using choco, exit the previous cmd and
183216
open a new one so that choco path is set, and run in cmd as **admin**:
184217
```
185-
choco install -y neovim git ripgrep wget fd unzip gzip mingw make
218+
choco install -y neovim git ripgrep wget fd unzip gzip mingw make tree-sitter
186219
```
187220
</details>
188221
<details><summary>WSL (Windows Subsystem for Linux)</summary>
@@ -192,7 +225,7 @@ wsl --install
192225
wsl
193226
sudo add-apt-repository ppa:neovim-ppa/unstable -y
194227
sudo apt update
195-
sudo apt install make gcc ripgrep unzip git xclip neovim
228+
sudo apt install make gcc ripgrep fd-find tree-sitter-cli unzip git xclip neovim
196229
```
197230
</details>
198231

@@ -202,37 +235,111 @@ sudo apt install make gcc ripgrep unzip git xclip neovim
202235
```
203236
sudo add-apt-repository ppa:neovim-ppa/unstable -y
204237
sudo apt update
205-
sudo apt install make gcc ripgrep unzip git xclip neovim
238+
sudo apt install make gcc ripgrep fd-find tree-sitter-cli unzip git xclip neovim
206239
```
207240
</details>
208241
<details><summary>Debian Install Steps</summary>
209242

210243
```
211244
sudo apt update
212-
sudo apt install make gcc ripgrep unzip git xclip curl
245+
sudo apt install make gcc ripgrep fd-find tree-sitter-cli unzip git xclip curl
213246
214247
# Now we install nvim
215-
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
216-
sudo rm -rf /opt/nvim-linux64
217-
sudo mkdir -p /opt/nvim-linux64
218-
sudo chmod a+rX /opt/nvim-linux64
219-
sudo tar -C /opt -xzf nvim-linux64.tar.gz
248+
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
249+
sudo rm -rf /opt/nvim-linux-x86_64
250+
sudo mkdir -p /opt/nvim-linux-x86_64
251+
sudo chmod a+rX /opt/nvim-linux-x86_64
252+
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
220253
221254
# make it available in /usr/local/bin, distro installs to /usr/bin
222-
sudo ln -sf /opt/nvim-linux64/bin/nvim /usr/local/bin/
255+
sudo ln -sf /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/
223256
```
224257
</details>
225258
<details><summary>Fedora Install Steps</summary>
226259

227260
```
228-
sudo dnf install -y gcc make git ripgrep fd-find unzip neovim
261+
sudo dnf install -y gcc make git ripgrep fd-find tree-sitter-cli unzip neovim
229262
```
230263
</details>
231264

232265
<details><summary>Arch Install Steps</summary>
233266

234267
```
235-
sudo pacman -S --noconfirm --needed gcc make git ripgrep fd unzip neovim
268+
sudo pacman -S --noconfirm --needed gcc make git ripgrep fd tree-sitter-cli unzip neovim
269+
```
270+
</details>
271+
272+
### Alternative neovim installation methods
273+
274+
For some systems it is not unexpected that the [package manager installation
275+
method](https://github.com/neovim/neovim/blob/master/INSTALL.md#install-from-package)
276+
recommended by neovim is significantly behind. If that is the case for you,
277+
pick one of the following methods that are known to deliver fresh neovim versions very quickly.
278+
They have been picked for their popularity and because they make installing and updating
279+
neovim to the latest versions easy. You can also find more detail about the
280+
available methods being discussed
281+
[here](https://github.com/nvim-lua/kickstart.nvim/issues/1583).
282+
283+
284+
<details><summary>Bob</summary>
285+
286+
[Bob](https://github.com/MordechaiHadad/bob) is a Neovim version manager for
287+
all platforms. Simply install
288+
[rustup](https://rust-lang.github.io/rustup/installation/other.html),
289+
and run the following commands:
290+
291+
```bash
292+
rustup default stable
293+
rustup update stable
294+
cargo install bob-nvim
295+
bob use stable
296+
```
297+
298+
</details>
299+
300+
<details><summary>Homebrew</summary>
301+
302+
[Homebrew](https://brew.sh) is a package manager popular on Mac and Linux.
303+
Simply install using [`brew install`](https://formulae.brew.sh/formula/neovim).
304+
305+
</details>
306+
307+
<details><summary>Flatpak</summary>
308+
309+
Flatpak is a package manager for applications that allows developers to package their applications
310+
just once to make it available on all Linux systems. Simply [install flatpak](https://flatpak.org/setup/)
311+
and setup [flathub](https://flathub.org/setup) to [install neovim](https://flathub.org/apps/io.neovim.nvim).
312+
313+
</details>
314+
315+
<details><summary>asdf and mise-en-place</summary>
316+
317+
[asdf](https://asdf-vm.com/) and [mise](https://mise.jdx.dev/) are tool version managers,
318+
mostly aimed towards project-specific tool versioning. However both support managing tools
319+
globally in the user-space as well:
320+
321+
<details><summary>mise</summary>
322+
323+
[Install mise](https://mise.jdx.dev/getting-started.html), then run:
324+
325+
```bash
326+
mise plugins install neovim
327+
mise use neovim@stable
328+
```
329+
330+
</details>
331+
332+
<details><summary>asdf</summary>
333+
334+
[Install asdf](https://asdf-vm.com/guide/getting-started.html), then run:
335+
336+
```bash
337+
asdf plugin add neovim
338+
asdf install neovim stable
339+
asdf set neovim stable --home
340+
asdf reshim neovim
236341
```
342+
237343
</details>
238344

345+
</details>

0 commit comments

Comments
 (0)