Compare commits

...

102 Commits

Author SHA1 Message Date
franchioping 6c9a94e600 nvimnew 2026-08-01 16:39:24 +01:00
orip f0a2108ed5 Follow symlinks in the custom plugins loader
fixes: #2087
2026-06-11 18:55:49 +03:00
orip ac51593f7a Add checkhealth to bug report step 2026-06-11 17:52:24 +03:00
Ori Perry 4e6bf9497f
Merge pull request #2066 from TomJGooding/chore-add-discussions-to-issue-template
chore: add discussions to issue template
2026-06-11 17:31:42 +03:00
Ori Perry 1f320746e4
Merge pull request #2012 from nvim-lua/feature/mini.icons
Switch from nvim-web-devicons to mini.icons
2026-06-11 17:29:12 +03:00
orip ec3f4489c2 Switch from nvim-web-devicons to mini.icons 2026-06-11 17:28:02 +03:00
orip f660e1f897 Follow symlinks for the neovim config picker
Closes: #2078
2026-06-11 16:52:52 +03:00
orip 7031a09bf9 Split the `foundation` section into `options` and `keymaps` 2026-06-11 16:44:01 +03:00
TomJGooding 97b3cbb790 chore: add discussions to issue template
Now that GitHub discussions have been enabled
(see https://github.com/nvim-lua/kickstart.nvim/issues/2026),
add links in the issue template to help redirect help/feature requests
from the bug tracker.
2026-05-28 01:45:20 +01:00
Ori Perry cfdc17be3a
Merge pull request #1982 from nathanzeng/jump-diagnostic
fix: deprecated diagnostic jumping config
2026-05-07 00:10:03 +03:00
Nathan Zeng a5d4d12c8c fix: deprecated diagnostic jumping config 2026-05-07 00:03:18 +03:00
Ori Perry 174b5fa2b1
Merge pull request #2005 from nvim-lua/refactor/vim.pack
Refactor/vim.pack
2026-05-06 23:48:20 +03:00
orip 2fccee4349 Split the vim.pack.add call and move each part to the relevant sections 2026-05-05 01:25:21 +03:00
orip 2e8d5b17cb Split into sections 2026-05-05 01:24:17 +03:00
orip a42ed30a09 Update the explanations and docs 2026-05-05 01:22:42 +03:00
orip 716d7465c0 Enable vim.loader for faster loading time 2026-05-05 01:18:15 +03:00
orip c4605421e5 Migrate to vim.pack 2026-05-05 01:18:15 +03:00
orip cd7adee3ce Refactor and update some of the comments 2026-05-05 01:17:59 +03:00
orip 4b065ad2f7 Fix mini.ai example 2026-04-22 17:59:57 +03:00
orip 9b4fbc5021 Fix conflicts between built-in incremental selection and mini.ai keymaps
closes #1996
closes #1992
2026-04-18 13:30:10 +03:00
Ori Perry f5b0e497c6
Merge pull request #1991 from nvim-lua/refactor/conform
Refactor/conform
2026-04-18 13:11:40 +03:00
orip ce353a9b0e Change format_on_save to a whitelist instead of a blacklist 2026-04-16 22:02:25 +03:00
orip 459b86865e Use stylua as an lsp formatter instead of an external formatter 2026-04-16 22:02:24 +03:00
Stattek 648471c9eb
Fix descriptions of gitsigns keymappings (#1997)
* Fix descriptions of keymappings

* Fix capitalization
2026-04-15 11:49:09 +03:00
orip f27810d1bd Fix treesitter indents
Thanks @jackHerby for the report
fixes #1995
2026-04-15 03:44:17 +03:00
Ori Perry c0cc054155
Merge pull request #1988 from sebastianstudniczek/fix/treesitter-indent-fallback
fix(treesitter): Add indentation fallback
2026-04-12 16:32:28 +03:00
Sebastian Studniczek c7f05a0f47 Add indentation fallback 2026-04-10 20:06:22 +02:00
Ori Perry 16dd8f5007 Add a comment to the line plugin about installing markdownlint 2026-03-31 23:49:19 +03:00
Ori Perry d3168308d4 Update the recommanded gitsigns keybinds
closes #1459
2026-03-31 23:41:40 +03:00
Ori Perry e01e1eb8f8 Auto install treesitter parsers when opening a file
closes #1951
2026-03-20 22:03:32 +02:00
Ori Perry 8ac4b12632 Refactor treesitter attach code 2026-03-20 21:59:19 +02:00
Ori Perry 0619d89884
Merge pull request #1914 from rmacklin/futher-clarify-gitignore-comment
Revise comment for lazy-lock.json in .gitignore
2026-03-20 12:59:54 +02:00
Ori Perry 58170c7ae3 Fix stylua 2026-03-10 22:12:41 +02:00
Richard Macklin 164cedf212 Revise comment for lazy-lock.json in .gitignore
This is a follow-up to df9436c0e5 to
hopefully make things even clearer.

Co-authored-by: Ori Perry <oriori1703@gmail.com>
2026-03-10 11:33:34 -07:00
Ori Perry 431cf2e881 Fix formating of plugins 2026-03-10 19:00:43 +02:00
Ori Perry d132bd3e9f
Merge pull request #1928 from nathanzeng/fix-lsp-blink-dependency
Remove blink from nvim-lspconfig dependencies
2026-03-10 17:34:11 +02:00
Ori Perry f7b74c7b83 Fix typo in the README 2026-03-10 15:18:41 +02:00
Ori Perry b212fdb33f
Merge pull request #1925 from nathanzeng/which-key-gitsigns
Clarify gitsigns keymap for which-key
2026-03-10 15:17:46 +02:00
Nathan Zeng d97de4f0ae Remove blink from nvim-lspconfig dependencies 2026-03-07 20:52:02 -08:00
Nathan Zeng 886f2bc076 Clarify gitsigns keymap for which-key 2026-03-06 19:18:40 -08:00
Ori Perry dabce46993 Add underline for warnings 2026-02-28 13:48:43 +02:00
Ori Perry 7cc245ecaf Format the dap keybinds 2026-02-28 11:32:40 +02:00
Ori Perry 86f1ba26f2 Improve undofile comment 2026-02-28 11:31:21 +02:00
Ori Perry 9a3a2f9678 Update the github actions 2026-02-28 11:29:58 +02:00
Ori Perry 1f4c21f463 Don't extend lsp capabilities because blink does it internally 2026-02-27 23:27:25 +02:00
Ori Perry 4021496050 Add treesitter indentation 2026-02-27 22:56:57 +02:00
Ori Perry a6dcf6874b Attach treesitter using language name instead of filetype 2026-02-27 21:36:39 +02:00
Ori Perry 966d5e94b1 Add installtion instructions for `tree-sitter-cli` to the README.md 2026-02-27 21:21:59 +02:00
Ori Perry a4bbfdc3db
Merge pull request #1896 from giogt/fix-gitignore-lazylock-comment
Clarify comment in .gitignore for lazy-lock.json
2026-02-27 21:09:55 +02:00
Ori Perry 80b1ee1789 Add 'gr' group to which-keys
Adds 'gr' to which-keys documentation, so users can see that LSP actions are grouped after 'gr' key binds.

Co-authored-by: thiago-negri <evohunz@gmail.com>
2026-02-27 21:04:07 +02:00
Ori Perry 09ab9ae265 Fix typo 2026-02-27 20:55:53 +02:00
Ori Perry afc734f993
Merge pull request #1494 from oriori1703/feature/type-hints
Add type hints to plugin options where possible
2026-02-27 20:51:08 +02:00
orip 177ff61483 Add type hints to plugin options where possible
This could help beginners to get autocompletion, catch mistakes earlier,
and allow them to skip the docs for simple configs.

This is not perfect because a lot of the plugins type all of their keys
as required, even though they have defaults, but this is good enough.
2026-02-27 20:43:08 +02:00
Ori Perry b9f3965282 Clean up the lua_ls config 2026-02-27 20:12:40 +02:00
Ori Perry 1ba1789318 Re-add mason-lspconfig 2026-02-27 19:56:55 +02:00
giogt df9436c0e5 Clarify comment in .gitignore for lazy-lock.json
The current comment in .gitignore for lazy-lock.json suggests to
uncomment it yourself, but you actually need to comment it instead.

This change modifies the comment to clarify the recommended approach for
kickstart users.
2026-02-22 23:28:15 +00:00
TJ DeVries e79572c9e6 fix: continue cleaning up docs and config 2026-01-27 12:09:56 -05:00
TJ DeVries 7e54a4c5c8 fix: trimming down config and updating stylua 2026-01-27 12:00:59 -05:00
Francesc Elies 8c6b78c770
feat(grep-string): works with visual selection too (#1605) 2026-01-27 10:55:15 -05:00
Mithrandir2k18 560d9dc894
docs: Document methods to get the latest neovim (#1626) 2026-01-27 10:49:58 -05:00
TJ DeVries 21d5aabc22 fix: simplify diagnostic config 2026-01-27 10:49:00 -05:00
TJ DeVries 318bd3e65c fix: update neovim min required version 2026-01-27 10:42:05 -05:00
TJ DeVries e87b7281ed
feat: move Telescope config to be contained by plugin (#1843)
* move telescope related lsp functions inside the telscope plugin declaration block

* explicitly enable telescope plugin, add some comments explainging why

* update comments with suggestions from @oriori1703

Co-authored-by: Ori Perry <48057913+oriori1703@users.noreply.github.com>

* fix formatting in accordance to stylua so that pipeline passes

---------

Co-authored-by: Philipp Szechenyi <philipp.szechenyi@cgm.com>
Co-authored-by: Philipp Szechenyi <45265588+szechp@users.noreply.github.com>
Co-authored-by: Ori Perry <48057913+oriori1703@users.noreply.github.com>
Co-authored-by: philipp <philipp@philipps-MacBook-Pro.local>
2026-01-27 10:33:53 -05:00
Cameron Cummings 88c65592ae
chore: Add .DS_Store to .gitignore (#1637) 2026-01-27 10:10:49 -05:00
Derrek b15cca8d31
chore: fix help tag (#1671) 2026-01-27 10:09:58 -05:00
rheia475 8f479db123
feat: add Telescope binding for searching through commands (#1675) 2026-01-27 10:08:09 -05:00
TJ DeVries 35822809e6 fix: remove deprecated methods 2026-01-27 10:07:04 -05:00
TJ DeVries b2af42acb3 fix: call setup on guess indent 2026-01-27 10:01:39 -05:00
Evgeni Chasnovski c8e189ff78
fix: adjust after 'mini.nvim' transfer to 'nvim-mini' org (#1713) 2026-01-27 09:58:30 -05:00
TJ DeVries ad246eb5dd fix: remove mason-lspconfig, we do not need it anymore 2026-01-27 09:55:59 -05:00
TJ DeVries 0c17d320bb maybe: seeing if we can get away without lazydev and just doing simpler setup 2026-01-27 09:52:00 -05:00
TJ DeVries 7ea937dbc5 fix: as far as i can tell i updated to the right tree sitter stuff 2026-01-27 09:29:57 -05:00
Yassine Zouggari 3ddda4a8b8
update: remove client_supports_method (#1810)
Neovim 0.11 is now stable
2026-01-27 09:19:51 -05:00
TJ DeVries 5740ddcf9c note: add info about why we ignore lazy-lock 2026-01-27 09:19:08 -05:00
Advin Suryavanshi 2d541c4140
fix: update main module reference for nvim-treesitter (#1832)
configs -> config in init.lua
2026-01-27 09:17:34 -05:00
Carlos Calla Alarcón 3338d39206
Update remaining Mason's old address (#1530) 2025-05-22 17:10:04 -04:00
Omri Sarig 6ba2408cdf
fix: rename vim.highlight.on_yank to vim.hl.on_yank (#1482)
The functions of vim.highlight were renamed to vim.hl on commit
18b43c331d8a0ed87d7cbefe2a18543b8e4ad360 of neovim, which was applied
with the release of nvim version 0.11.

Now, the use of vim.highlight is deprecated, and instead, one should
use vim.hl functions.
In practice, vim.highlight is still working, however, asking for help
for vim.highlight.on_yank fails (E149), while asking for help for
vim.hl.on_yank works as expected. So, by updating the used function, a
new user will have easier time looking getting the relevant help.

Co-authored-by: Omri Sarig <omri.sarig@prevas.dk>
2025-05-10 20:29:04 -04:00
Damjan 9000 f5a9f9cdc6
README: mention fd-find in requirements (#1477)
Fixes #1476
2025-05-10 20:23:54 -04:00
pynappo fb73617653
don't lazy-load neo-tree so netrw hijacking on startup works (#1489) 2025-05-10 20:18:04 -04:00
Ori Perry c92ea7ca97
Replace vim.opt with vim.o (#1495)
* Replace vim.opt with vim.o

Because it offers a nicer interface and info on hover.
For now leave vim.opt when using the table interface (until vim.o
with tables is implemented)

* Add type hint for vim.opt.rtp

* Add a comment about using vim.opt instead of vim.o
2025-05-10 20:16:03 -04:00
guru245 2b2f0f8364
feat: switch vim-sleuth for guess-indent.nvim (#1512) 2025-05-10 20:11:50 -04:00
guru245 76cb865e4f
Change to Mason's new address (#1516) 2025-05-09 19:41:44 -04:00
Liam Dyer d350db2449
feat: switch nvim-cmp for blink.cmp (#1426) 2025-04-09 17:25:57 -04:00
Dmytro Onypko 9929044f24
Remove Telescope `0.1` branch lock (#1448) 2025-04-09 11:05:40 -04:00
Theo P. 1a5787bc57
Change LSP Keybindings to Match the Default `gr` Bindings Introduced in Neovim 0.11 (#1427)
* refactor: change LSP keybindings to the default gr bindings introduced in 0.11

* refactor: modify existing LSP functions to follow  convention
2025-04-09 11:01:57 -04:00
dasvh 8a5a52f647
fix: minor misspellings (#1450)
* fix: minor misspellings

* revert change for `-Bbuild`
2025-04-09 10:39:17 -04:00
Sander e947649cb0
feat(keymap): move windows without `<C-w>` (#1368) 2025-03-24 15:34:57 -04:00
RulentWave 5e2d7e184b
changed Conform's format_on_save lambda so that buffers that match disable_filetypes return nil. This allows you to enable a formatter for langages in the disable_filetypes table to have a formatter that can be run manually with Leader-f but doesnt enable format_on_save for them (#1395) 2025-03-24 15:33:53 -04:00
Luca Saccarola 2abcb39fae
fix: use correct github abmonition syntax (#1414) 2025-03-20 18:16:35 -04:00
Crypto-Spartan 38f4744e25
feat: add `vim.opt.confirm = true` (#1384) 2025-03-12 17:24:44 -04:00
Chris Patti 34e7d29aa7
Propsed fix for init.lua warnings as per https://github.com/nvim-lua/kickstart.nvim/issues/1305#issuecomment-2657770325 (#1354) 2025-02-19 09:40:16 -05:00
Ari Pollak ea60b2b01f
Remove duplicate cmp-path (#1369) 2025-02-19 09:38:58 -05:00
Jonas Zeltner e64aa51ef2
fix: regression introduced in db78c0b217 (#1367) 2025-02-18 11:15:13 -05:00
Aryan Rajoria 7c49ba1cb7
Fix: fix the cmp-nvim-lsp-signature-help link (#1363) 2025-02-18 00:05:15 -05:00
Rob 282cbb9c82
feat: add basic function signature help (#1358)
* feat: add basic function signature help

* Update init.lua

Co-authored-by: makeworld <25111343+makew0rld@users.noreply.github.com>

---------

Co-authored-by: makeworld <25111343+makew0rld@users.noreply.github.com>
2025-02-17 19:12:06 -05:00
Joaquín Guerra ebca680dea
perf: load tokyonight.nvim in the intended way (#1360)
Fixes #1357
2025-02-17 19:10:48 -05:00
GeloCraft 76e06fec5c
feat(diagnostic): add diagnostic config (#1335)
Co-authored-by: gelocraft <gelocraft@users.noreply.github.com>
2025-02-17 13:01:07 -05:00
Jonas Zeltner db78c0b217
fix: arguments for the `vim.lsp.Client.supports_method` method (#1356) 2025-02-16 22:42:19 -05:00
Chris Patti d2c006819a
Add a blurb about installing missing emoji on Ubuntu
Right next to the nerdfonts blurb as requested.
2025-02-16 22:37:44 -05:00
Erlan Rangel 94f551b803
fix (#1319): gitsigns deprecated functions (#1321)
- This commit change two functions that are marked as deprecated now:
`gitsigns.stage_hunk` and `gitsigns.toggle_deleted`
2025-02-15 00:48:37 -05:00
bleacheda 71ad926ab1
docs: clarify using opts = {} vs config = function() ... require('plu… (#1316)
* docs: clarify using opts = {} vs config = function() ... require('plugin').setup({}) .. end

The current documentation mentioning that using "require" is equivalent to using "opts" without detailing the use in the "config = function()" block seems inaccurate.
Lower in the configuration the "config = function()" block is used without clarifying why it needed and what it does.
This clarification may help new users understand the difference between the two, or how and where to place the "require" statement.

* Update init.lua

* remove whitespace
2025-02-14 22:32:50 -05:00
Ryan Nevius abdbfce0f8
chore(docs): Update README.md (#1344)
Neovim has renamed the "linux64" binary to "linux-x86_64".
2025-02-14 22:23:31 -05:00
18 changed files with 1342 additions and 1158 deletions

View File

@ -10,9 +10,11 @@ assignees: ''
<!-- Any bug report not following this template will be immediately closed. Thanks -->
## Before Reporting an Issue
- I have read the kickstart.nvim README.md.
- I have read the appropriate plugin's documentation.
- I have searched that this issue has not been reported before.
- I have ran `:checkhealth` and so no obvious issue.
- [ ] **By checking this, I confirm that the above steps are completed. I understand leaving this unchecked will result in this report being closed immediately.**

10
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,10 @@
blank_issues_enabled: false
contact_links:
- name: Help
url: https://github.com/nvim-lua/kickstart.nvim/discussions/categories/q-a
about: Ask the community for help
- name: Ideas
url: https://github.com/nvim-lua/kickstart.nvim/discussions/categories/ideas
about: Share ideas for new features

View File

@ -9,13 +9,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Stylua Check
uses: JohnnyMorganz/stylua-action@v3
uses: JohnnyMorganz/stylua-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
version: latest
args: --check .

9
.gitignore vendored
View File

@ -4,4 +4,11 @@ test.sh
nvim
spell/
lazy-lock.json
# In your personal fork, you likely want to comment this, since it's recommended to track
# nvim-pack-lock.json in version control - see :help vim.pack-lockfile
# For the official `nvim-lua/kickstart.nvim` git repository, we leave it ignored to avoid unneeded
# merge conflicts.
nvim-pack-lock.json
.DS_Store

View File

@ -4,3 +4,4 @@ indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferSingle"
call_parentheses = "None"
collapse_simple_statement = "Always"

167
README.md
View File

@ -17,28 +17,38 @@ A starting point for Neovim that is:
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.
If you are experiencing issues, please make sure you have at least the latest
stable version. Most likely, you want to install neovim via a [package
manager](https://github.com/neovim/neovim/blob/master/INSTALL.md#install-from-package).
To check your neovim version, run `nvim --version` and make sure it is not
below the latest
['stable'](https://github.com/neovim/neovim/releases/tag/stable) version. If
your chosen install method only gives you an outdated version of neovim, find
alternative [installation methods below](#alternative-neovim-installation-methods).
### Install External Dependencies
External Requirements:
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation),
[fd-find](https://github.com/sharkdp/fd#installation)
- [tree-sitter CLI](https://github.com/tree-sitter/tree-sitter/blob/master/crates/cli/README.md#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**
> [!NOTE]
> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes
> and quick install snippets
### Install Kickstart
> **NOTE**
> [!NOTE]
> [Backup](#FAQ) your previous configuration (if any exists)
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
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**
> [!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).
You likely want to remove `nvim-pack-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 (see `:help vim.pack-lockfile`).
#### Clone kickstart.nvim
> **NOTE**
> [!NOTE]
> If following the recommended step above (i.e., forking the repo), replace
> `nvim-lua` with `<your_github_username>` in the commands below
@ -100,8 +111,10 @@ Start Neovim
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.
That's it! `vim.pack` will install all the plugins from your config. Use
`:lua vim.pack.update(nil, { offline = true })` to inspect plugin state and
`:lua vim.pack.update()` to fetch updates (`:write` applies updates, `:quit`
cancels them).
#### Read The Friendly Documentation
@ -135,7 +148,8 @@ examples of adding popularly requested plugins.
`~/.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
* Remove your config directory and local data directory (for example,
`~/.config/nvim` and `~/.local/share/nvim`).
* 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.
@ -151,22 +165,41 @@ examples of adding popularly requested plugins.
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.
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`
Kickstart's default config is make-only for `telescope-fzf-native.nvim`.
If `make` is unavailable, the plugin is skipped.
See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation)
Recommended: install `make` (see the chocolatey section below).
This requires:
If you want a CMake-only setup, customize `init.lua` in two places:
- Install CMake and the Microsoft C++ Build Tools on Windows
1. Include `telescope-fzf-native.nvim` when `cmake` is available:
```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' }
if vim.fn.executable 'make' == 1 or vim.fn.executable 'cmake' == 1 then
table.insert(plugins, gh 'nvim-telescope/telescope-fzf-native.nvim')
end
```
2. In the `PackChanged` hook, use CMake when `make` is unavailable:
```lua
if name == 'telescope-fzf-native.nvim' then
if vim.fn.executable 'make' == 1 then
run_build(name, { 'make' }, ev.data.path)
elseif vim.fn.executable 'cmake' == 1 then
run_build(name, { 'cmake', '-S.', '-Bbuild', '-DCMAKE_BUILD_TYPE=Release' }, ev.data.path)
run_build(name, { 'cmake', '--build', 'build', '--config', 'Release', '--target', 'install' }, ev.data.path)
end
return
end
```
See `telescope-fzf-native` documentation for [build details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation).
</details>
<details><summary>Windows with gcc/make using chocolatey</summary>
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
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
choco install -y neovim git ripgrep wget fd unzip gzip mingw make tree-sitter
```
</details>
<details><summary>WSL (Windows Subsystem for Linux)</summary>
@ -192,7 +225,7 @@ 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
sudo apt install make gcc ripgrep fd-find tree-sitter-cli unzip git xclip neovim
```
</details>
@ -202,37 +235,111 @@ sudo apt install make gcc ripgrep unzip git xclip neovim
```
sudo add-apt-repository ppa:neovim-ppa/unstable -y
sudo apt update
sudo apt install make gcc ripgrep unzip git xclip neovim
sudo apt install make gcc ripgrep fd-find tree-sitter-cli unzip git xclip neovim
```
</details>
<details><summary>Debian Install Steps</summary>
```
sudo apt update
sudo apt install make gcc ripgrep unzip git xclip curl
sudo apt install make gcc ripgrep fd-find tree-sitter-cli 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
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-linux64/bin/nvim /usr/local/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
sudo dnf install -y gcc make git ripgrep fd-find tree-sitter-cli unzip neovim
```
</details>
<details><summary>Arch Install Steps</summary>
```
sudo pacman -S --noconfirm --needed gcc make git ripgrep fd unzip neovim
sudo pacman -S --noconfirm --needed gcc make git ripgrep fd tree-sitter-cli unzip neovim
```
</details>
### Alternative neovim installation methods
For some systems it is not unexpected that the [package manager installation
method](https://github.com/neovim/neovim/blob/master/INSTALL.md#install-from-package)
recommended by neovim is significantly behind. If that is the case for you,
pick one of the following methods that are known to deliver fresh neovim versions very quickly.
They have been picked for their popularity and because they make installing and updating
neovim to the latest versions easy. You can also find more detail about the
available methods being discussed
[here](https://github.com/nvim-lua/kickstart.nvim/issues/1583).
<details><summary>Bob</summary>
[Bob](https://github.com/MordechaiHadad/bob) is a Neovim version manager for
all platforms. Simply install
[rustup](https://rust-lang.github.io/rustup/installation/other.html),
and run the following commands:
```bash
rustup default stable
rustup update stable
cargo install bob-nvim
bob use stable
```
</details>
<details><summary>Homebrew</summary>
[Homebrew](https://brew.sh) is a package manager popular on Mac and Linux.
Simply install using [`brew install`](https://formulae.brew.sh/formula/neovim).
</details>
<details><summary>Flatpak</summary>
Flatpak is a package manager for applications that allows developers to package their applications
just once to make it available on all Linux systems. Simply [install flatpak](https://flatpak.org/setup/)
and setup [flathub](https://flathub.org/setup) to [install neovim](https://flathub.org/apps/io.neovim.nvim).
</details>
<details><summary>asdf and mise-en-place</summary>
[asdf](https://asdf-vm.com/) and [mise](https://mise.jdx.dev/) are tool version managers,
mostly aimed towards project-specific tool versioning. However both support managing tools
globally in the user-space as well:
<details><summary>mise</summary>
[Install mise](https://mise.jdx.dev/getting-started.html), then run:
```bash
mise plugins install neovim
mise use neovim@stable
```
</details>
<details><summary>asdf</summary>
[Install asdf](https://asdf-vm.com/guide/getting-started.html), then run:
```bash
asdf plugin add neovim
asdf install neovim stable
asdf set neovim stable --home
asdf reshim neovim
```
</details>
</details>

1719
init.lua

File diff suppressed because it is too large Load Diff

View File

@ -2,4 +2,12 @@
-- I promise not to create any merge conflicts in this directory :)
--
-- See the kickstart.nvim README for more information
return {}
-- Iterate over all Lua files in the plugins directory and load them
local plugins_dir = vim.fs.joinpath(vim.fn.stdpath 'config', 'lua', 'custom', 'plugins')
for file_name, type in vim.fs.dir(plugins_dir, { follow = true }) do
if (type == 'file' or type == 'link') and file_name:match '%.lua$' and file_name ~= 'init.lua' then
local module = file_name:gsub('%.lua$', '')
require('custom.plugins.' .. module)
end
end

View File

@ -0,0 +1,49 @@
-- local function map(mode, lhs, rhs, opts)
-- local options = { noremap = true, silent = true }
-- if opts then
-- if opts.desc then
-- opts.desc = 'keymaps.lua: ' .. opts.desc
-- end
-- options = vim.tbl_extend('force', options, opts)
-- end
-- vim.keymap.set(mode, lhs, rhs, options)
-- end
--
-- vim.keymap.set('n', '<leader>/', 'gcc', { remap = true })
-- vim.keymap.set('v', '<leader>/', 'gc', { remap = true })
--
vim.keymap.set({ 'x', 'n' }, '<leader>d', '"_d', { remap = false, desc = 'Delete without copying' })
vim.keymap.set({'x','n'}, '<leader>/', 'gcc', { remap = true, desc = 'Toggle comment line' })
vim.g.tex_flavor = 'latex'
local list_snips = function()
local ft_list = require('luasnip').available()[vim.o.filetype]
local ft_snips = {}
for _, item in pairs(ft_list) do
ft_snips[item.trigger] = item.name
end
print(vim.inspect(ft_snips))
end
vim.api.nvim_create_user_command('SnipList', list_snips, {})
local list_all_snips = function()
local ft_lists = require('luasnip').available()
local ft_snips = {}
for _, ft_list in pairs(ft_lists) do
for _, item in pairs(ft_list) do
ft_snips[item.trigger] = item.name
end
end
print(vim.inspect(ft_snips))
end
vim.api.nvim_create_user_command('SnipListAll', list_all_snips, {})
vim.keymap.set('n', '<leader>e', function()
require('neo-tree.command').execute({ toggle = true })
end, { desc = 'Explorer', silent = true })

View File

@ -0,0 +1,2 @@
vim.pack.add { 'https://github.com/nvim-tree/nvim-web-devicons' }

View File

@ -0,0 +1,31 @@
vim.pack.add({
"https://github.com/ellisonleao/gruvbox.nvim"
})
require("gruvbox").setup(
{
terminal_colors = true, -- add neovim terminal colors
undercurl = true,
underline = true,
bold = true,
italic = {
strings = true,
emphasis = true,
comments = true,
operators = false,
folds = true,
},
strikethrough = true,
invert_selection = false,
invert_signs = false,
invert_tabline = false,
-- inverse = true, -- invert background for search, diffs, statuslines and errors
-- contrast = "", -- can be "hard", "soft" or empty string
-- palette_overrides = {},
-- overrides = {},
dim_inactive = false,
-- transparent_mode = false,
}
)
vim.cmd.colorscheme("gruvbox")

View File

@ -12,7 +12,7 @@ local check_version = function()
return
end
if vim.version.ge(vim.version(), '0.10-dev') then
if vim.version.ge(vim.version(), '0.12') then
vim.health.ok(string.format("Neovim version is: '%s'", verstr))
else
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))

View File

@ -1,16 +1,5 @@
-- autopairs
-- https://github.com/windwp/nvim-autopairs
return {
'windwp/nvim-autopairs',
event = 'InsertEnter',
-- 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,
}
vim.pack.add { 'https://github.com/windwp/nvim-autopairs' }
require('nvim-autopairs').setup {}

View File

@ -6,143 +6,90 @@
-- be extended to other languages as well. That's why it's called
-- kickstart.nvim and not kitchen-sink.nvim ;)
return {
-- NOTE: Yes, you can install new plugins here!
'mfussenegger/nvim-dap',
-- NOTE: And you can specify dependencies as well
dependencies = {
-- Creates a beautiful debugger UI
'rcarriga/nvim-dap-ui',
-- Required dependency for nvim-dap-ui
'nvim-neotest/nvim-nio',
-- Installs the debug adapters for you
'williamboman/mason.nvim',
'jay-babu/mason-nvim-dap.nvim',
-- Add your own debuggers here
'leoluz/nvim-dap-go',
},
keys = {
-- Basic debugging keymaps, feel free to change to your liking!
{
'<F5>',
function()
require('dap').continue()
end,
desc = 'Debug: Start/Continue',
},
{
'<F1>',
function()
require('dap').step_into()
end,
desc = 'Debug: Step Into',
},
{
'<F2>',
function()
require('dap').step_over()
end,
desc = 'Debug: Step Over',
},
{
'<F3>',
function()
require('dap').step_out()
end,
desc = 'Debug: Step Out',
},
{
'<leader>b',
function()
require('dap').toggle_breakpoint()
end,
desc = 'Debug: Toggle Breakpoint',
},
{
'<leader>B',
function()
require('dap').set_breakpoint(vim.fn.input 'Breakpoint condition: ')
end,
desc = 'Debug: Set Breakpoint',
},
-- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception.
{
'<F7>',
function()
require('dapui').toggle()
end,
desc = 'Debug: See last session result.',
},
},
config = function()
local dap = require 'dap'
local dapui = require 'dapui'
require('mason-nvim-dap').setup {
-- Makes a best effort to setup the various debuggers with
-- reasonable debug configurations
automatic_installation = true,
-- You can provide additional configuration to the handlers,
-- see mason-nvim-dap README for more information
handlers = {},
-- You'll need to check that you have the required things installed
-- online, please don't ask me how to install them :)
ensure_installed = {
-- Update this to ensure that you have the debuggers for the langs you want
'delve',
},
}
-- Dap UI setup
-- For more information, see |:help nvim-dap-ui|
dapui.setup {
-- Set icons to characters that are more likely to work in every terminal.
-- Feel free to remove or use ones that you like more! :)
-- Don't feel like these are good choices.
icons = { expanded = '', collapsed = '', current_frame = '*' },
controls = {
icons = {
pause = '',
play = '',
step_into = '',
step_over = '',
step_out = '',
step_back = 'b',
run_last = '▶▶',
terminate = '',
disconnect = '',
},
},
}
-- Change breakpoint icons
-- vim.api.nvim_set_hl(0, 'DapBreak', { fg = '#e51400' })
-- vim.api.nvim_set_hl(0, 'DapStop', { fg = '#ffcc00' })
-- local breakpoint_icons = vim.g.have_nerd_font
-- and { Breakpoint = '', BreakpointCondition = '', BreakpointRejected = '', LogPoint = '', Stopped = '' }
-- or { Breakpoint = '●', BreakpointCondition = '⊜', BreakpointRejected = '⊘', LogPoint = '◆', Stopped = '⭔' }
-- for type, icon in pairs(breakpoint_icons) do
-- local tp = 'Dap' .. type
-- local hl = (type == 'Stopped') and 'DapStop' or 'DapBreak'
-- vim.fn.sign_define(tp, { text = icon, texthl = hl, numhl = hl })
-- end
dap.listeners.after.event_initialized['dapui_config'] = dapui.open
dap.listeners.before.event_terminated['dapui_config'] = dapui.close
dap.listeners.before.event_exited['dapui_config'] = dapui.close
-- Install golang specific config
require('dap-go').setup {
delve = {
-- On Windows delve must be run attached or it crashes.
-- See https://github.com/leoluz/nvim-dap-go/blob/main/README.md#configuring
detached = vim.fn.has 'win32' == 0,
},
}
end,
vim.pack.add {
'https://github.com/mfussenegger/nvim-dap',
'https://github.com/rcarriga/nvim-dap-ui',
'https://github.com/nvim-neotest/nvim-nio',
'https://github.com/mason-org/mason.nvim',
'https://github.com/jay-babu/mason-nvim-dap.nvim',
'https://github.com/leoluz/nvim-dap-go',
}
-- Basic debugging keymaps, feel free to change to your liking!
vim.keymap.set('n', '<F5>', function() require('dap').continue() end, { desc = 'Debug: Start/Continue' })
vim.keymap.set('n', '<F1>', function() require('dap').step_into() end, { desc = 'Debug: Step Into' })
vim.keymap.set('n', '<F2>', function() require('dap').step_over() end, { desc = 'Debug: Step Over' })
vim.keymap.set('n', '<F3>', function() require('dap').step_out() end, { desc = 'Debug: Step Out' })
vim.keymap.set('n', '<leader>b', function() require('dap').toggle_breakpoint() end, { desc = 'Debug: Toggle Breakpoint' })
vim.keymap.set('n', '<leader>B', function() require('dap').set_breakpoint(vim.fn.input 'Breakpoint condition: ') end, { desc = 'Debug: Set Breakpoint' })
-- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception.
vim.keymap.set('n', '<F7>', function() require('dapui').toggle() end, { desc = 'Debug: See last session result.' })
local dap = require 'dap'
local dapui = require 'dapui'
require('mason-nvim-dap').setup {
-- Makes a best effort to setup the various debuggers with
-- reasonable debug configurations
automatic_installation = true,
-- You can provide additional configuration to the handlers,
-- see mason-nvim-dap README for more information
handlers = {},
-- You'll need to check that you have the required things installed
-- online, please don't ask me how to install them :)
ensure_installed = {
-- Update this to ensure that you have the debuggers for the langs you want
'delve',
},
}
-- Dap UI setup
-- For more information, see |:help nvim-dap-ui|
---@diagnostic disable-next-line: missing-fields
dapui.setup {
-- Set icons to characters that are more likely to work in every terminal.
-- Feel free to remove or use ones that you like more! :)
-- Don't feel like these are good choices.
icons = { expanded = '', collapsed = '', current_frame = '*' },
---@diagnostic disable-next-line: missing-fields
controls = {
icons = {
pause = '',
play = '',
step_into = '',
step_over = '',
step_out = '',
step_back = 'b',
run_last = '▶▶',
terminate = '',
disconnect = '',
},
},
}
-- Change breakpoint icons
-- vim.api.nvim_set_hl(0, 'DapBreak', { fg = '#e51400' })
-- vim.api.nvim_set_hl(0, 'DapStop', { fg = '#ffcc00' })
-- local breakpoint_icons = vim.g.have_nerd_font
-- and { Breakpoint = '', BreakpointCondition = '', BreakpointRejected = '', LogPoint = '', Stopped = '' }
-- or { Breakpoint = '●', BreakpointCondition = '⊜', BreakpointRejected = '⊘', LogPoint = '◆', Stopped = '⭔' }
-- for type, icon in pairs(breakpoint_icons) do
-- local tp = 'Dap' .. type
-- local hl = (type == 'Stopped') and 'DapStop' or 'DapBreak'
-- vim.fn.sign_define(tp, { text = icon, texthl = hl, numhl = hl })
-- end
dap.listeners.after.event_initialized['dapui_config'] = dapui.open
dap.listeners.before.event_terminated['dapui_config'] = dapui.close
dap.listeners.before.event_exited['dapui_config'] = dapui.close
-- Install golang specific config
require('dap-go').setup {
delve = {
-- On Windows delve must be run attached or it crashes.
-- See https://github.com/leoluz/nvim-dap-go/blob/main/README.md#configuring
detached = vim.fn.has 'win32' == 0,
},
}

View File

@ -2,60 +2,56 @@
-- NOTE: gitsigns is already included in init.lua but contains only the base
-- config. This will add also the recommended keymaps.
return {
{
'lewis6991/gitsigns.nvim',
opts = {
on_attach = function(bufnr)
local gitsigns = require 'gitsigns'
vim.pack.add { 'https://github.com/lewis6991/gitsigns.nvim' }
local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts)
end
require('gitsigns').setup {
on_attach = function(bufnr)
local gitsigns = require 'gitsigns'
-- Navigation
map('n', ']c', function()
if vim.wo.diff then
vim.cmd.normal { ']c', bang = true }
else
gitsigns.nav_hunk 'next'
end
end, { desc = 'Jump to next git [c]hange' })
local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts)
end
map('n', '[c', function()
if vim.wo.diff then
vim.cmd.normal { '[c', bang = true }
else
gitsigns.nav_hunk 'prev'
end
end, { desc = 'Jump to previous git [c]hange' })
-- Navigation
map('n', ']c', function()
if vim.wo.diff then
vim.cmd.normal { ']c', bang = true }
else
gitsigns.nav_hunk 'next'
end
end, { desc = 'Jump to next git [c]hange' })
-- Actions
-- visual mode
map('v', '<leader>hs', function()
gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
end, { desc = 'git [s]tage hunk' })
map('v', '<leader>hr', function()
gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
end, { desc = 'git [r]eset hunk' })
-- normal mode
map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
map('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' })
map('n', '<leader>hu', gitsigns.undo_stage_hunk, { desc = 'git [u]ndo stage hunk' })
map('n', '<leader>hR', gitsigns.reset_buffer, { desc = 'git [R]eset buffer' })
map('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' })
map('n', '<leader>hb', gitsigns.blame_line, { desc = 'git [b]lame line' })
map('n', '<leader>hd', gitsigns.diffthis, { desc = 'git [d]iff against index' })
map('n', '<leader>hD', function()
gitsigns.diffthis '@'
end, { desc = 'git [D]iff against last commit' })
-- Toggles
map('n', '<leader>tb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' })
map('n', '<leader>tD', gitsigns.toggle_deleted, { desc = '[T]oggle git show [D]eleted' })
end,
},
},
map('n', '[c', function()
if vim.wo.diff then
vim.cmd.normal { '[c', bang = true }
else
gitsigns.nav_hunk 'prev'
end
end, { desc = 'Jump to previous git [c]hange' })
-- Actions
-- visual mode
map('v', '<leader>hs', function() gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } end, { desc = 'git [s]tage hunk' })
map('v', '<leader>hr', function() gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } end, { desc = 'git [r]eset hunk' })
-- normal mode
map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
map('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' })
map('n', '<leader>hR', gitsigns.reset_buffer, { desc = 'git [R]eset buffer' })
map('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' })
map('n', '<leader>hi', gitsigns.preview_hunk_inline, { desc = 'git preview hunk [i]nline' })
map('n', '<leader>hb', function() gitsigns.blame_line { full = true } end, { desc = 'git [b]lame line' })
map('n', '<leader>hd', gitsigns.diffthis, { desc = 'git [d]iff against index' })
map('n', '<leader>hD', function() gitsigns.diffthis '@' end, { desc = 'git [D]iff against last commit' })
map('n', '<leader>hQ', function() gitsigns.setqflist 'all' end, { desc = 'git hunk [Q]uickfix list (all files in repo)' })
map('n', '<leader>hq', gitsigns.setqflist, { desc = 'git hunk [q]uickfix list (all changes in this file)' })
-- Toggles
map('n', '<leader>tb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' })
map('n', '<leader>tw', gitsigns.toggle_word_diff, { desc = '[T]oggle git intra-line [w]ord diff' })
-- Text object
map({ 'o', 'x' }, 'ih', gitsigns.select_hunk)
end,
}

View File

@ -1,9 +1,6 @@
return {
{ -- Add indentation guides even on blank lines
'lukas-reineke/indent-blankline.nvim',
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help ibl`
main = 'ibl',
opts = {},
},
}
-- Add indentation guides even on blank lines
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help ibl`
vim.pack.add { 'https://github.com/lukas-reineke/indent-blankline.nvim' }
require('ibl').setup {}

View File

@ -1,60 +1,53 @@
return {
-- Linting
{ -- Linting
'mfussenegger/nvim-lint',
event = { 'BufReadPre', 'BufNewFile' },
config = function()
local lint = require 'lint'
lint.linters_by_ft = {
markdown = { 'markdownlint' },
}
vim.pack.add { 'https://github.com/mfussenegger/nvim-lint' }
-- To allow other plugins to add linters to require('lint').linters_by_ft,
-- instead set linters_by_ft like this:
-- lint.linters_by_ft = lint.linters_by_ft or {}
-- lint.linters_by_ft['markdown'] = { 'markdownlint' }
--
-- However, note that this will enable a set of default linters,
-- which will cause errors unless these tools are available:
-- {
-- clojure = { "clj-kondo" },
-- dockerfile = { "hadolint" },
-- inko = { "inko" },
-- janet = { "janet" },
-- json = { "jsonlint" },
-- markdown = { "vale" },
-- rst = { "vale" },
-- ruby = { "ruby" },
-- terraform = { "tflint" },
-- text = { "vale" }
-- }
--
-- You can disable the default linters by setting their filetypes to nil:
-- lint.linters_by_ft['clojure'] = nil
-- lint.linters_by_ft['dockerfile'] = nil
-- lint.linters_by_ft['inko'] = nil
-- lint.linters_by_ft['janet'] = nil
-- lint.linters_by_ft['json'] = nil
-- lint.linters_by_ft['markdown'] = nil
-- lint.linters_by_ft['rst'] = nil
-- lint.linters_by_ft['ruby'] = nil
-- lint.linters_by_ft['terraform'] = nil
-- lint.linters_by_ft['text'] = nil
-- Create autocommand which carries out the actual linting
-- on the specified events.
local lint_augroup = vim.api.nvim_create_augroup('lint', { clear = true })
vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, {
group = lint_augroup,
callback = function()
-- Only run the linter in buffers that you can modify in order to
-- avoid superfluous noise, notably within the handy LSP pop-ups that
-- describe the hovered symbol using Markdown.
if vim.opt_local.modifiable:get() then
lint.try_lint()
end
end,
})
end,
},
local lint = require 'lint'
lint.linters_by_ft = {
markdown = { 'markdownlint' }, -- Make sure to install `markdownlint` via mason / npm
}
-- To allow other plugins to add linters to require('lint').linters_by_ft,
-- instead set linters_by_ft like this:
-- lint.linters_by_ft = lint.linters_by_ft or {}
-- lint.linters_by_ft['markdown'] = { 'markdownlint' }
--
-- However, note that this will enable a set of default linters,
-- which will cause errors unless these tools are available:
-- {
-- clojure = { "clj-kondo" },
-- dockerfile = { "hadolint" },
-- inko = { "inko" },
-- janet = { "janet" },
-- json = { "jsonlint" },
-- markdown = { "vale" },
-- rst = { "vale" },
-- ruby = { "ruby" },
-- terraform = { "tflint" },
-- text = { "vale" }
-- }
--
-- You can disable the default linters by setting their filetypes to nil:
-- lint.linters_by_ft['clojure'] = nil
-- lint.linters_by_ft['dockerfile'] = nil
-- lint.linters_by_ft['inko'] = nil
-- lint.linters_by_ft['janet'] = nil
-- lint.linters_by_ft['json'] = nil
-- lint.linters_by_ft['markdown'] = nil
-- lint.linters_by_ft['rst'] = nil
-- lint.linters_by_ft['ruby'] = nil
-- lint.linters_by_ft['terraform'] = nil
-- lint.linters_by_ft['text'] = nil
-- Create autocommand which carries out the actual linting
-- on the specified events.
local lint_augroup = vim.api.nvim_create_augroup('lint', { clear = true })
vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, {
group = lint_augroup,
callback = function()
-- Only run the linter in buffers that you can modify in order to
-- avoid superfluous noise, notably within the handy LSP pop-ups that
-- describe the hovered symbol using Markdown.
if vim.bo.modifiable then lint.try_lint() end
end,
})

View File

@ -1,24 +1,19 @@
-- Neo-tree is a Neovim plugin to browse the file system
-- https://github.com/nvim-neo-tree/neo-tree.nvim
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',
},
cmd = 'Neotree',
keys = {
{ '\\', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true },
},
opts = {
filesystem = {
window = {
mappings = {
['\\'] = 'close_window',
},
vim.pack.add {
{ src = 'https://github.com/nvim-neo-tree/neo-tree.nvim', version = vim.version.range '*' },
'https://github.com/nvim-lua/plenary.nvim',
'https://github.com/MunifTanjim/nui.nvim',
}
vim.keymap.set('n', '\\', '<Cmd>Neotree reveal<CR>', { desc = 'NeoTree reveal', silent = true })
require('neo-tree').setup {
filesystem = {
window = {
mappings = {
['\\'] = 'close_window',
},
},
},