Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit b83b2b0
Author: Chiller Dragon <chillerdragon@gmail.com>
Date:   Mon Mar 4 21:47:45 2024 +0800

    chore: link new installation youtube video (#678)

commit a02abdb
Author: Chiller Dragon <chillerdragon@gmail.com>
Date:   Mon Mar 4 21:47:11 2024 +0800

    chore: remove trailing spaces from readme (#679)

commit c3127f1
Author: Damjan 9000 <damjan.9000@gmail.com>
Date:   Mon Mar 4 14:16:50 2024 +0100

    Change statusline location to LINE:COLUMN (#689)

commit c9122e8
Author: Damjan 9000 <damjan.9000@gmail.com>
Date:   Mon Mar 4 01:32:06 2024 +0100

    fix: checkhealth reported nvim version (#685)

commit e6710a4
Author: TJ DeVries <devries.timothyj@gmail.com>
Date:   Sun Mar 3 03:13:16 2024 -0500

    fix: add note in readme for custom plugins

commit 23fc4e5
Author: Damjan 9000 <damjan.9000@gmail.com>
Date:   Sun Mar 3 03:12:55 2024 +0100

    README.md: updated windows install instructions (#674)

commit b99af2d
Author: Taulant Aliraj <tau141@gmail.com>
Date:   Sun Mar 3 02:07:58 2024 +0000

    feat: use VimEnter event instead of VeryLazy (#673)

commit 94a9364
Author: Nhan Luu <62146587+nhld@users.noreply.github.com>
Date:   Sat Mar 2 04:07:34 2024 +0700

    chore: fix typos (#666)

commit 38828dc
Author: Anton Kastritskii <halloy52@gmail.com>
Date:   Thu Feb 29 18:14:36 2024 +0000

    feat: enable lua lsp snipppets (#660)

commit b58666d
Author: TJ DeVries <devries.timothyj@gmail.com>
Date:   Thu Feb 29 12:08:01 2024 -0500

    fixup: updated some style stuff

commit 465d6f2
Author: Damjan 9000 <damjan.9000@gmail.com>
Date:   Wed Feb 28 19:23:13 2024 +0100

    Change mini.statusline location format to LINE:COLUMN (#659)

    Default mini.statusline location format is:
      'cursor line | total lines │ cursor column | total columns'

commit 18b919c
Author: brxxlstxrs <92815065+brxxlstxrs@users.noreply.github.com>
Date:   Tue Feb 27 21:08:37 2024 +0300

    add plugin specs docstring, remove lazy.nvim configuration (empty) table (#652)

commit af4fd23
Author: TJ DeVries <devries.timothyj@gmail.com>
Date:   Mon Feb 26 10:46:31 2024 -0500

    fixup: change comment to reflect auto_install

commit 1c89b02
Author: TJ DeVries <devries.timothyj@gmail.com>
Date:   Mon Feb 26 10:45:32 2024 -0500

    fixup: add autocommand link for help and description

commit 8b5d48a
Author: TJ DeVries <devries.timothyj@gmail.com>
Date:   Mon Feb 26 10:03:53 2024 -0500

    rewrite: slimmer, trimmer and more lazy kickstart.nvim (#635)

    We've removed over 1/3 of the code that was in kickstart previously,
    and more than doubled the amount of comments explaining every line
    of code (to the best of my ability).

    kickstart now properly uses many of the lazy.nvim config and loading
    idioms, which should be really helpful for people moving both to
    modular configs, as well as extending the kickstart config in one file.

    Additional features:
    - Beautiful ascii art
    - Added some documentation that explains what is an LSP, what is telescope, etc
    - There is now a `:checkhealth` for kickstart, which checks some basic information
      and adds useful information for maintainers (for people cloning the repo).
    - Improved LSP configuration and tool installation, for easier first time startup
    - Changed init.lua ordering, so that it moves from simple options to complicated config

    ```
    -------------------------------------------------------------------------------
    Language                     files          blank        comment           code
    -------------------------------------------------------------------------------
    Lua                              1            108            404            298
    -------------------------------------------------------------------------------
    ```

commit 7af594f
Author: rgarber11 <rg.1029384756@gmail.com>
Date:   Mon Feb 5 13:49:19 2024 -0500

    Add Build Step to LuaSnip (#611)

commit 5d2d81b
Author: Chris Patti <feoh@feoh.org>
Date:   Sat Feb 3 19:15:25 2024 -0500

    Fixes #607. Add hints for new neovim users to learn how to learn. (#615)

commit bc4ad12
Author: Micah Effiong <52747707+micaiah-effiong@users.noreply.github.com>
Date:   Fri Feb 2 21:24:46 2024 +0100

    feat: added contexts for code action - source fix-all errors (#599)

    * feat: added contexts for code action - source fix-all errors

    * fix: resolve stylua checks

    * fix: resolve stylua checks

commit c3ae716
Author: Damjan 9000 <damjan.9000@gmail.com>
Date:   Thu Feb 1 17:01:46 2024 +0100

    issue: #594 stylua workflow only on official kickstart repo (#609)

    Only run the github stylua workflow check on the official
    kickstart repo (nvim-lua/kickstart.nvim) so that it's not
    enforced on any other forks.
    As suggested by: @zwergius

commit b115814
Author: Nazar <63452145+Tokarak@users.noreply.github.com>
Date:   Mon Jan 29 18:52:50 2024 +0000

    Add Onedark Style (#590)

    * Add style options to Onedark setup (init.lua)

    * stylua init.lua

    * Load onedark through `require`

    * Improve commenting

commit deaafcf
Author: Victor Bertin <83238030+v-bertin@users.noreply.github.com>
Date:   Mon Jan 29 13:48:14 2024 +0100

    Set status line theme to the global colorscheme (#600)

commit 2510c29
Author: Sreejith I V <46400271+pzerone@users.noreply.github.com>
Date:   Wed Jan 10 20:06:33 2024 +0530

    Removed duplicate line (#583)

commit 60b93c9
Author: Damjan 9000 <damjan.9000@gmail.com>
Date:   Mon Jan 8 20:44:00 2024 +0100

    README.md: rename the duplicate "Introduction" to "Getting Started" (#572)

    Changing this second "Introduction" heading to "Getting Started"
    The recent change in README which moved the youtube link from FAQ
    to it's own section used the heading "Introduction" which is already
    the first heading in the file.

commit c11afa2
Author: Mohamad Alamin Yassin <ameen.yaseen.98@gmail.com>
Date:   Mon Jan 8 20:17:01 2024 +0300

    Add Missing Fields to Treesitter Config to Resolve Warnings (#582)

    This commit introduces three additional fields - `sync_install`, `ignore_install`, and `modules` - to the Treesitter configuration. This update is aimed at resolving warnings that were previously displayed, potentially causing confusion or frustration for new users of Neovim. By explicitly defining these fields, the configuration aligns better with the latest `nvim-treesitter` requirements.

commit c4055a2
Author: Damjan 9000 <damjan.9000@gmail.com>
Date:   Wed Jan 3 18:30:37 2024 +0100

    Improve stylua github workflow (#571)

    Addressing issue nvim-lua/kickstart.nvim#570

    This improves the github workflow to no longer require manual
    approval for PRs from first time contributors.

    Changes the github event from pull_request to pull_request_target
    and adds an explicit PR head checkout

commit d45e5fe
Author: gitressa <3491208+gitressa@users.noreply.github.com>
Date:   Wed Jan 3 16:03:23 2024 +0100

    Move video up on the README.md page (#563)

    To help new users get started, how about moving the video link ("Effective Neovim: Instant IDE ") right after "Post Installation"?

    This way new users, can install it, and right away proceed to learn how to use it.

commit 4d0dc8d
Author: John Pekcan <johnpekcan@gmail.com>
Date:   Sat Dec 23 20:59:59 2023 -0800

    fix: restore mason config timing for dap startup (#555)

    Co-authored-by: John Pekcan <john.pekcan@epicgames.com>

commit e39a8bc
Author: Ari Pollak <aripollak@users.noreply.github.com>
Date:   Thu Dec 21 15:35:28 2023 -0500

    Switch cmp up mapping from C-d to C-b to match regular vim up key (#549)

commit 76c5b1e
Author: Shashwat Agrawal <72117025+ShashwatAgrawal20@users.noreply.github.com>
Date:   Fri Dec 8 18:44:06 2023 +0530

    feat(cmp): path completion feature (#536)
  • Loading branch information
0xjairo committed Mar 4, 2024
1 parent 6e246a0 commit 71031cf
Show file tree
Hide file tree
Showing 7 changed files with 880 additions and 590 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/stylua.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
# Check Lua Formatting
name: Check Lua Formatting
on: pull_request
on: pull_request_target

jobs:
stylua-check:
if: github.repository == 'nvim-lua/kickstart.nvim'
name: Stylua Check
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Stylua Check
uses: JohnnyMorganz/stylua-action@v3
with:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@ tags
test.sh
.luarc.json
nvim

spell/
lazy-lock.json
133 changes: 77 additions & 56 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,75 @@
# kickstart.nvim

https://github.com/kdheepak/kickstart.nvim/assets/1813121/f3ff9a2b-c31f-44df-a4fa-8a0d7b17cf7b

### Introduction
## Introduction

A starting point for Neovim that is:

* Small
* Single-file (with examples of moving to multi-file)
* Documented
* Modular
* Single-file
* Completely Documented

**NOT** a Neovim distribution, but instead a starting point for your configuration.

This repo is meant to be used by **YOU** to begin your Neovim journey; remove the things you don't use and add what you miss.
## Installation

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 Neovim

Distribution Alternatives:
- [LazyVim](https://www.lazyvim.org/): A delightful distribution maintained by @folke (the author of lazy.nvim, the package manager used here)
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.

### Installation
### Install External Dependencies

> **NOTE**
> **NOTE**
> [Backup](#FAQ) your previous configuration (if any exists)
Requirements:
* Make sure to review the readmes of the plugins if you are experiencing errors. In particular:
* [ripgrep](https://github.com/BurntSushi/ripgrep#installation) is required for multiple [telescope](https://github.com/nvim-telescope/telescope.nvim#suggested-dependencies) pickers.
* See [Windows Installation](#Windows-Installation) if you have trouble with `telescope-fzf-native`
External Requirements:
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
- Language Setup:
- If want to write Typescript, you need `npm`
- If want to write Golang, you will need `go`
- etc.

> **NOTE**
> See [Windows Installation](#Windows-Installation) to double check any additional Windows notes
Neovim's configurations are located under the following paths, depending on your OS:

| OS | PATH |
| :- | :--- |
| Linux | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
| MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
| Linux, MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
| Windows (cmd)| `%userprofile%\AppData\Local\nvim\` |
| Windows (powershell)| `$env:USERPROFILE\AppData\Local\nvim\` |

### Install Kickstart

Clone kickstart.nvim:

- on Linux and Mac
<details><summary> Linux and Mac </summary>

```sh
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
```

- on Windows (cmd)
</details>

<details><summary> Windows </summary>

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 %userprofile%\AppData\Local\nvim\
```

- on Windows (powershell)
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:USERPROFILE\AppData\Local\nvim\
```

</details>

### Post Installation

Expand All @@ -63,33 +79,33 @@ Start Neovim
nvim
```

The `Lazy` plugin manager will start automatically on the first run and install the configured plugins - as can be seen in the introduction video. After the installation is complete you can press `q` to close the `Lazy` UI and **you are ready to go**! Next time you run nvim `Lazy` will no longer show up.
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
current plugin status.

If you would prefer to hide this step and run the plugin sync from the command line, you can use:
Read through the `init.lua` file in your configuration folder for more
information about extending and exploring Neovim.

```sh
nvim --headless "+Lazy! sync" +qa
```
### 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 installing you can install to your machine using the methods above.
[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 installing you
can install to your machine using the methods above.

> **NOTE**
> **NOTE**
> Your fork's url will be something like this: `https://github.com/<your_github_username>/kickstart.nvim.git`
### Configuration And Extension
#### Examples of adding popularly requested plugins

* Inside of your copy, feel free to modify any file you like! It's your copy!
* Feel free to change any of the default options in `init.lua` to better suit your needs.
* For adding plugins, there are 3 primary options:
* Add new configuration in `lua/custom/plugins/*` files, which will be auto sourced using `lazy.nvim` (uncomment the line importing the `custom/plugins` directory in the `init.lua` file to enable this)
* Modify `init.lua` with additional plugins.
* Include the `lua/kickstart/plugins/*` files in your configuration.
NOTE: You'll need to uncomment the line in the init.lua that turns on loading custom plugins.

You can also merge updates/changes from the repo back into your fork, to keep up-to-date with any changes for the default configuration.
<details>
<summary>Adding autopairs</summary>

#### Example: Adding an autopairs plugin
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:

Expand All @@ -113,10 +129,11 @@ return {
}
```

</details>
<details>
<summary>Adding a file tree plugin</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).

#### Example: Adding a file tree plugin
This will install the tree plugin and add the command `:Neotree` for you. You can explore the documentation at [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) for more information.

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

Expand All @@ -138,23 +155,13 @@ return {
}
```

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

### Contribution

Pull-requests are welcome. The goal of this repo is not to create a Neovim configuration framework, but to offer a starting template that shows, by example, available features in Neovim. Some things that will not be included:

* Custom language server configuration (null-ls templates)
* Theming beyond a default colorscheme necessary for LSP highlight groups

Each PR, especially those which increase the line count, should have a description as to why the PR is necessary.
</details>

### FAQ

* What should I do if I already have a pre-existing neovim configuration?
* You should back it up, then delete all files associated with it.
* This includes your existing init.lua and the neovim files in `~/.local` which can be deleted with `rm -rf ~/.local/share/nvim/`
* You may also want to look at the [migration guide for lazy.nvim](https://github.com/folke/lazy.nvim#-migration-guide)
* 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:
```
Expand All @@ -163,9 +170,6 @@ Each PR, especially those which increase the line count, should have a descripti
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
* Are there any cool videos about this plugin?
* Current iteration of kickstart (coming soon)
* Here is one about the previous iteration of kickstart: [video introduction to Kickstart.nvim](https://youtu.be/stqUbv-5u2s). Note the install via init.lua no longer works as specified. Please follow the install instructions in this file instead as they're up to date.
* 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 `git clone` as a basis for their own.
Expand All @@ -191,3 +195,20 @@ This requires:
{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }
```

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 previous cmd and
open a new one so that choco path is set, run in cmd as **admin**:
```
choco install -y neovim git ripgrep wget fd unzip gzip mingw make
```

Then continue with the [Install Kickstart](#Install-Kickstart) step.
Loading

0 comments on commit 71031cf

Please sign in to comment.