146 Commits

Author SHA1 Message Date
orip
dc5f2febe7 Change format_on_save to a whitelist instead of a blacklist 2026-04-12 22:33:59 +03:00
orip
891f996b59 Use stylua as an lsp formatter instead of an external formatter 2026-04-12 20:49:22 +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
Diorman Colmenares
5bdde24dfb Use luals 3rd library for luv (#1303) 2025-01-15 14:38:26 -05:00
Nhan Luu
ff89769e45 chore: fix typo in bug report issue template (#1306) 2025-01-15 14:37:36 -05:00
Nhan Luu
f6abf682ff chore: remove redundant comment (#1307) 2025-01-15 14:37:03 -05:00
Tomas Gareau
db4867acb9 fix: prevent mason setup from being run twice (#1298)
* fix: prevent mason setup from being run twice

Addresses https://github.com/nvim-lua/kickstart.nvim/issues/1297

Currently, we're calling `require('mason').setup(...)` twice:
* once when setting it as a dependency of `nvim-lspconfig` (since we set
	`config = true`)
* once in the `config` function we define for `nvim-lspconfig`

Calling setup twice can cause issues with, e.g., setting the `PATH`
option: you might append Mason's bin dir in one setup call and prepend
it in the other.

We've kept the setup of `mason` in the `nvim-lspconfig` dependencies
table since leaving it to the `config` function caused some
plugin-loading-order related issues in the past. See:
* https://github.com/nvim-lua/kickstart.nvim/pull/210
* https://github.com/nvim-lua/kickstart.nvim/issues/554
* https://github.com/nvim-lua/kickstart.nvim/pull/555
* https://github.com/nvim-lua/kickstart.nvim/pull/865

* docs: tweak comments per review feedback
2025-01-07 10:44:29 -05:00
Ryan Jensen
a8f539562a Fix which-key delay settings (#1276)
The which-key plugin used to rely on vim.opt.timeoutlen, but it was
updated a few months ago to use its own opt.delay instead.

8ab96b38a2/NEWS.md (L10)

I set which-key's delay to 0 ms because it makes it feel snappy and
responsive! That way, we give new users a good first impression.
2024-12-29 12:04:10 -05:00
Ihsan Tonuzi
7ddaab3ffd chore: add pre-issue requirements (#1288)
* chore: add pre-issue requirements

Based on #1285

* docs: add header about documentation

Based on #1285
2024-12-29 12:00:16 -05:00
George
e84e187f3c Fix README.md grammar and typos (#1291) 2024-12-29 11:39:47 -05:00
Scott Swensen
de44f49101 fix(gitsigns): make visual mode descriptions consistent with normal mode (#1266) 2024-12-15 00:42:39 -05:00
ben fleis
bcdb4cd252 Issue 1249 which key comments (#1263)
* Tweak outdated comment about lazy's `config` key usage.

Remove outdated comment describing use of `config` key, replacing with
corrected `opt` key note.

Fixes #1249

* fix typo opt -> opts

Fixes #1250
2024-12-12 16:26:20 -05:00
Artem Dragunov
a2df3ea9eb Use consistent syntax style for { ... } "pseudocode" (#1247)
```
require('gitsigns').setup({ ... })
```

This was the first occurrence

It may be nice to have the same style everywhere

Cosmetic change (just to make docs/comments even more perfect)
2024-12-12 10:51:58 -05:00
ben fleis
7bc9d19a4d Tweak outdated comment about lazy's config key usage. (#1250)
Remove outdated comment describing use of `config` key, replacing with
corrected `opt` key note.

Fixes #1249
2024-12-12 10:50:55 -05:00
Miha
8d1ef972bc fix: which-key comment typo (#1227) 2024-11-20 08:41:50 -05:00
Anjishnu Banerjee
9dfb1b230f Fix nvim-dap not lazy loading (#1216)
* Fix nvim-dap not lazy loading

The keys property had local variables 'dap' and 'dap-ui' that used `require` and prevented all DAP related plugins from lazy-loading.
Fixed this by changing keys to a table and substituting the local variables with a lamba function

* Make debug keybind descriptions more consistent
2024-11-20 08:40:51 -05:00
gloomy-lemon-debatable
e5dc5f6d1c feat: Change to prepare for upcoming deprecation of configuring diagnostic-signs using sign_define() (#1232) 2024-11-20 08:37:22 -05:00
Will Winder
2ba39c6973 Remove two because there are more than two. (#1213) 2024-10-30 14:58:52 -04:00
gloomy-lemon-debatable
be678aa341 Set breakpoint icons and their highlight colors (#1194)
* feat: Set breakpoint icons and their highlight colors

* docs: Delete reference URL (written in PR)
feat: "Break" and "Stop" arguments of vim.api.nvim_set_hl are changed because they are too common nouns
feat: Comment out changes regarding diagnostic symbols so that only those who want to change them can do so

---------

Co-authored-by: name <email>
2024-10-30 13:01:42 -04:00
gloomy-lemon-debatable
d09d9bc6dc Change diagnostic symbols if vim.g.have_nerd_font is true (#1195)
* feat: Change diagnostic symbols if vim.g.have_nerd_font is true

* feat: Comment out changes regarding diagnostic symbols so that only those who want to change them can do so

---------

Co-authored-by: name <email>
2024-10-30 11:50:27 -04:00
sam
fb7f6a1c13 samarth-nagar fix: lazy help tag on line 931 (#1167)
* samarth-nagar fix: lazy help tag on line 931

found in issue #1152

* fixed white space

---------

Co-authored-by: sam <110125971+samarth-nagar@users.noreply.github.com>
2024-10-30 11:49:16 -04:00
Éric NICOLAS
5ed1bc38dc Disable linting autocmd for readonly buffers (#1202)
* Disable linting autocmd for readonly buffers

This should avoid linting in buffers outside of the user's control,
having in mind especially the handy LSP pop-ups that describe your
hovered symbol using markdown.

Co-authored-by: Robin Gruyters <2082795+rgruyters@users.noreply.github.com>

* Justify guarding try_lint in readonly buffers

Co-authored-by: Robin Gruyters <2082795+rgruyters@users.noreply.github.com>

---------

Co-authored-by: Robin Gruyters <2082795+rgruyters@users.noreply.github.com>
2024-10-30 11:41:46 -04:00
Bastien Traverse
4120893b8a fix: update lazy uninstall information link (#1148) 2024-09-24 11:06:14 -04:00
Nicolás Baquero
7201dc4801 feat: update references of tsserver to ts_ls (#1131) 2024-09-10 16:27:24 -04:00
Damjan 9000
a22976111e Fix the which-key spec issue caused by recent cleanup (#1113)
The recent cleanup accidentally broke the leader key specs
because the spec block was in the wrong level of braces.
That resulted in which-key no longer showing the description
of the <leader> key chains such as [S]earch and others.
2024-08-26 16:43:59 -04:00
Ihsan Tonuzi
24d368f9ff cleanup: refactor which-key configuration for cleaner setup (#1102)
- Moved `which-key` configuration from inline `config` to `opts` for better organization.
- Updated the key mappings setup to use `spec` for defining existing key chains.
- Removed deprecated or unnecessary comments and code.

This change aligns with updated `which-key` configuration practices, improving readability and maintainability as recommended by @VlaDexa in #1068.
2024-08-26 12:17:22 -04:00
Ihsan Tonuzi
c76c323a7c fix: remove deprecated opt for conform.nvim (#1070)
- changed lsp_fallback -> lsp_format
- updated format_on_save function to reflect change above
2024-08-25 23:28:26 -04:00
Harshit Pant
e4a5300bdb Fix: updated the windows installation commands (#1101)
* Update README.md

* Update README.md

* Fix: updated the windows installation commands
2024-08-25 23:27:46 -04:00
Bayram Kazik
f49cc6c935 Enable silent option for default neo-tree plugin keybinding (#1108) 2024-08-25 23:23:17 -04:00
Bayram Kazik
d452633b35 Include visual mode in LSP code action keymap (#1060) (#1064) 2024-08-24 17:31:43 -04:00
Ihsan Tonuzi
ac78e7d9e7 refactor: update treesitter and which-key config (#1068) 2024-08-22 21:00:39 -04:00
Michael L.
ce0c7340ff Check for loop or uv for lazypath (#1095) 2024-08-22 16:56:33 -04:00
Matt Gallagher
554a054bf9 Add note in README about lazy-lock.json (#1090) 2024-08-22 16:53:57 -04:00
theoboldalex
c1ae9092cb Update README.md (#1091) 2024-08-22 16:49:25 -04:00
jstrot
1860184830 Add explicit dependency of nvim-lspconfig on cmp-nvim-lsp (#1042) 2024-07-29 20:02:37 -04:00
jstrot
bb9f84ca8f Remove treesitter prefer_git option (#1061)
- It's not safe and can corrupt other git repos
- nvim-treesiter maintainers consider `prefer_git` as deprecated and no
  longer needed.

See nvim-treesitter PR for details: https://github.com/nvim-treesitter/nvim-treesitter/pull/6959
2024-07-29 20:01:19 -04:00
abeldekat
84cc12354d performance: defer clipboard because xsel and pbcopy can be slow (#1049) 2024-07-28 17:41:34 -04:00
Ihsan Tonuzi
fd66454c4a refactor: remove lazydev and luvit-meta as lsp dependencies (#1047) 2024-07-28 17:39:34 -04:00
Brandon Clark
1cef2325e0 Modify conform comments to prevent deprecation warning when used (#1057) 2024-07-28 12:43:08 -04:00
Arvin Verain
f00b2866de Remove redundant hlsearch option (#1058) 2024-07-28 12:39:54 -04:00
Richard Macklin
56b9114bf2 Update comment about the toggle inlay hints keymap (#1041) 2024-07-22 13:00:35 -04:00
srdtrk
6f3fe35de3 lint: fix lsp warning in vim.lsp.inlay_hint.is_enabled (#947)
* fix: lsp warning

* review suggestion

Co-authored-by: Tom Kuson <mail@tjkuson.me>

---------

Co-authored-by: Tom Kuson <mail@tjkuson.me>
2024-07-21 22:21:21 -04:00
Richard Macklin
620732789b Update lazydev config to fix "Undefined field fs_stat" LSP error (#1040)
7513ec8a7d switched from neodev to
lazydev, but in the process it introduced an LSP error in `init.lua`,
which degrades the desired "first timer" experience of kickstart.nvim.

This commit follows the configuration suggested in
6184ebbbc8 (-installation)
which resolves the LSP error.
2024-07-21 22:08:09 -04:00
Vladislav Grechannik
7513ec8a7d Neovim 0.10 updates (#936)
* Neovim 0.10 updates

Provide the buffer for which to enable inlay hints

Co-authored-by: Matt Mirus <matt@mattmirus.com>

* refactor: replace vim.loop with vim.uv

* Upgrade folke/neodev (sunsetting) to folke/lazydev

* Update checkhealth for 0.10 release

---------

Co-authored-by: Matt Mirus <matt@mattmirus.com>
Co-authored-by: mrr11k <me+github@mrr11k.dev>
Co-authored-by: Seb Tomasini <sebt@qgates.com>
2024-07-21 20:35:07 -04:00
Richard Macklin
07a9f446a3 Fix comment about mini.ai example (#985)
This example wasn't using `'` so this makes more sense
2024-07-21 16:34:51 -04:00
Vladislav Grechannik
b36d84ddf0 Make conform.nvim be lazy-loadable again (#977)
The PR that disabled lazy loading (#818) was to fix plugin not being
loaded before write. This sets up lazy to load conform before write.
2024-07-21 16:34:17 -04:00
Artyom
c405d3fd4f Update README.md | %userprofile%\appdata\local -> %localappdata% (#963)
- Replace `%userprofile%\AppData\Local\nvim\` and `$env:USERPROFILE\AppData\Local\nvim` to `%localappdata%\nvim` and `$env:LOCALAPPDATA\nvim respectfully`
2024-07-21 16:33:26 -04:00
Vladislav Grechannik
4bbca64157 Make debug lazy loadable (#978) 2024-07-21 16:24:57 -04:00
Tom Kuson
1cdf6fb377 Remove redundant require (#959) 2024-07-21 16:22:44 -04:00
Damjan 9000
202910d3fa Fix neo-tree keymap description (#932)
The lazy.nvim keys parameter does not need the `desc` to
be inside a table in the way that vim.keymap.set() does.
With this fix the keymap description will be properly
shown for example in telescope keymap search
2024-07-21 16:22:10 -04:00
TJ DeVries
2df5137e59 fix: add required parsers from nvim-treesitter 2024-07-17 21:37:31 -04:00
Folke Lemaitre
3e55ff1a83 fix(lazy): added error handling for bootstrap (#1001) 2024-07-16 12:06:47 -04:00
Vladislav Grechannik
f5c919558b which-key v3 update (#1022)
* which-key v3 update

* remove unneeded brackets from which-key registration
2024-07-16 12:05:40 -04:00
Per Malmberg
5aeddfdd5d Automatically set detached state as needed. (#925)
* Automatically set detached state as needed.

* Use vim.fn.has instead.

* Fix int vs bool.
2024-05-10 13:43:22 -04:00
Smig
b9bd02d55b fix: debug.lua (#918) 2024-05-08 10:55:49 -04:00
Richard Macklin
f86f18f27a Add diff to treesitter's ensure_installed languages (#908) 2024-05-05 21:01:39 -04:00
Damjan 9000
6f6f38a6b5 Move LspDetach handler near kickstart-lsp-highlight group (#900)
Moved to make sure the kickstart-lsp-highlight group exists when
the LspDetach handler is invoked. The LspDetach handler is used
to clean up any lsp highlights that were enabled by CursorHold
if the LSP is stopped or crashed.
2024-05-02 16:53:07 -04:00
Damjan 9000
b7d5cc8f42 README: add clipboard tool dependency (#886)
Fixes: #884
Neovim requires an external tool for proper system clipboard integration.
Some systems install this already by default:
- on Fedora xsel is already installed by default
- on Windows using the choko install the win32yank is alredy installed
This is not installed by default on ubuntu or debian so adding that
to the dependencies list and to the install instructions snippets.
2024-04-27 16:40:27 -04:00
Adolfo Gante
8df3deb6fe Update README.md (#875)
Line 102. Placed 'also' before the 'includes'.

"That includes also examples of adding popularly requested plugins." ---> "That also includes examples of adding popularly requested plugins."
2024-04-22 17:15:42 -04:00
Francis Belanger
942b26184c fix: highlight group clear on each attach (#874) 2024-04-22 15:53:45 -04:00
Francis Belanger
81f270a704 Fix highlight errors when lsp crash or stop (#864)
* Fix highlight errors when lsp crash or stop

It adds a check wether the client is still available before
highlighting.

If the client is not there anymore it returns `true` to unregister the
autocommand

This fix the
`method textDocument/documentHighlight is not supported by any of the servers registered for the current buffer`
errors when doing a LspRestart or the server crashes

* Delete the highlight autocommands in the LspDetatch event

* Only delete autocmds for the current buffer with the group name

* Simplify clearing the autocommands

---------

Co-authored-by: Francis Belanger <francis.belanger@ubisoft.com>
2024-04-22 11:43:10 -04:00
Vladislav Grechannik
f92fb11d68 Fix deprecation notice of inlay hints (#873) 2024-04-22 07:27:13 -04:00
Damjan 9000
2e68a2c253 Add a commented out example of the classic complete keymaps. Fixes #866 (#868) 2024-04-20 13:14:49 -04:00
Damjan 9000
9f5176fc2a Minor improvements of debian install instructions. Fixes #859 (#869) 2024-04-20 13:14:24 -04:00
Evan Carroll
931ec5c226 Update README.md (#860)
Attempted fix for #859, provide reasonable Debian install instructions -- comment on GitHub issue with refinement.
2024-04-20 11:55:01 -04:00
GameFuzzy
b07176aef6 fix: restore Mason config timing for DAP startup (again) (#865) 2024-04-19 13:50:42 -04:00
Damjan 9000
f5c9fe8e15 Add gitsigns recommended keymaps as an optional plugin (#858) 2024-04-17 21:00:39 -04:00
Damjan 9000
5e258d276f Move plugin examples from README to optional plugin files (#831)
* Move autopairs example from README to an optional plugin

* Move neo-tree example from README to an optional plugin
2024-04-17 15:25:54 -04:00
Vladislav Grechannik
5540527fab Enable inlay hints for the supporting servers (#843) 2024-04-17 14:04:55 -04:00
Chris Patti
6d6b3f38c1 Fix: #847 - add prefer_git to treesitter config (#856) 2024-04-17 14:02:24 -04:00
14 changed files with 770 additions and 473 deletions

View File

@@ -9,6 +9,13 @@ 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.
- [ ] **By checking this, I confirm that the above steps are completed. I understand leaving this unchecked will result in this report being closed immediately.**
## Describe the bug
<!-- A clear and concise description of what the bug is. -->
@@ -18,8 +25,8 @@ assignees: ''
## Desktop
<!-- please complete the following information. -->
- OS:
- Terminal:
- OS:
- Terminal:
## Neovim Version
<!-- Output of running `:version` from inside of neovim. -->

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 .

7
.gitignore vendored
View File

@@ -4,4 +4,11 @@ test.sh
nvim
spell/
# In your personal fork, you likely want to comment this, since it's recommended to track
# lazy-lock.json in version control - see https://lazy.folke.io/usage/lockfile
# For the official `nvim-lua/kickstart.nvim` git repository, we leave it ignored to avoid unneeded
# merge conflicts.
lazy-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"

223
README.md
View File

@@ -17,27 +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 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**
> [!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:
@@ -45,8 +56,8 @@ Neovim's configurations are located under the following paths, depending on your
| 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\` |
#### Recommended Step
@@ -54,12 +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**
> Your fork's url will be something like this:
> [!NOTE]
> Your fork's URL will be something like this:
> `https://github.com/<your_github_username>/kickstart.nvim.git`
You likely want to remove `lazy-lock.json` from your fork's `.gitignore` file
too - it's ignored in the kickstart repo to make maintenance easier, but it's
[recommended to track it in version control](https://lazy.folke.io/usage/lockfile).
#### Clone kickstart.nvim
> **NOTE**
> [!NOTE]
> If following the recommended step above (i.e., forking the repo), replace
> `nvim-lua` with `<your_github_username>` in the commands below
@@ -76,13 +92,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>
@@ -96,73 +112,17 @@ nvim
```
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
current plugin status. Hit `q` to close the window.
the current plugin status. Hit `q` to close the window.
#### Read The Friendly Documentation
Read through the `init.lua` file in your configuration folder for more
information about extending and exploring Neovim.
information about extending and exploring Neovim. That also includes
examples of adding popularly requested plugins.
> [!NOTE]
> For more information about a particular plugin check its repository's documentation.
#### 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>
### Getting Started
@@ -170,9 +130,9 @@ return {
### FAQ
* What should I do if I already have a pre-existing neovim configuration?
* 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`
* 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`
@@ -186,12 +146,12 @@ return {
`~/.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
* See [lazy.nvim uninstall](https://lazy.folke.io/usage#-uninstalling) information
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
* The main purpose of kickstart is to serve as a teaching tool and a reference
configuration that someone can easily use to `git clone` as a basis for their own.
As you progress in learning Neovim and Lua, you might consider splitting `init.lua`
into smaller parts. A fork of kickstart that does this while maintaining the
into smaller parts. A fork of kickstart that does this while maintaining the
same functionality is available here:
* [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim)
* Discussions on this topic can be found here:
@@ -202,7 +162,7 @@ return {
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
@@ -230,10 +190,10 @@ run in cmd as **admin**:
winget install --accept-source-agreements chocolatey.chocolatey
```
2. install all requirements using choco, exit previous cmd and
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>
@@ -243,7 +203,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 fd-find tree-sitter-cli unzip git xclip neovim
```
</details>
@@ -253,30 +213,111 @@ 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 git 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
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 fd-find tree-sitter-cli unzip git xclip curl
# Now we install nvim
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo rm -rf /opt/nvim-linux-x86_64
sudo mkdir -p /opt/nvim-linux-x86_64
sudo chmod a+rX /opt/nvim-linux-x86_64
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
# make it available in /usr/local/bin, distro installs to /usr/bin
sudo ln -sf /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/
```
</details>
<details><summary>Fedora Install Steps</summary>
```
sudo dnf install -y gcc make git ripgrep fd-find unzip neovim
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>

711
init.lua

File diff suppressed because it is too large Load Diff

View File

@@ -2,4 +2,7 @@
-- I promise not to create any merge conflicts in this directory :)
--
-- See the kickstart.nvim README for more information
---@module 'lazy'
---@type LazySpec
return {}

View File

@@ -6,13 +6,13 @@
--]]
local check_version = function()
local verstr = string.format('%s.%s.%s', vim.version().major, vim.version().minor, vim.version().patch)
if not vim.version.cmp then
local verstr = tostring(vim.version())
if not vim.version.ge then
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
return
end
if vim.version.cmp(vim.version(), { 0, 9, 4 }) >= 0 then
if vim.version.ge(vim.version(), '0.11') 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

@@ -0,0 +1,10 @@
-- autopairs
-- https://github.com/windwp/nvim-autopairs
---@module 'lazy'
---@type LazySpec
return {
'windwp/nvim-autopairs',
event = 'InsertEnter',
opts = {},
}

View File

@@ -6,6 +6,8 @@
-- be extended to other languages as well. That's why it's called
-- kickstart.nvim and not kitchen-sink.nvim ;)
---@module 'lazy'
---@type LazySpec
return {
-- NOTE: Yes, you can install new plugins here!
'mfussenegger/nvim-dap',
@@ -18,12 +20,23 @@ return {
'nvim-neotest/nvim-nio',
-- Installs the debug adapters for you
'williamboman/mason.nvim',
'mason-org/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'
@@ -31,7 +44,7 @@ return {
require('mason-nvim-dap').setup {
-- Makes a best effort to setup the various debuggers with
-- reasonable debug configurations
automatic_setup = true,
automatic_installation = true,
-- You can provide additional configuration to the handlers,
-- see mason-nvim-dap README for more information
@@ -45,23 +58,15 @@ return {
},
}
-- Basic debugging keymaps, feel free to change to your liking!
vim.keymap.set('n', '<F5>', dap.continue, { desc = 'Debug: Start/Continue' })
vim.keymap.set('n', '<F1>', dap.step_into, { desc = 'Debug: Step Into' })
vim.keymap.set('n', '<F2>', dap.step_over, { desc = 'Debug: Step Over' })
vim.keymap.set('n', '<F3>', dap.step_out, { desc = 'Debug: Step Out' })
vim.keymap.set('n', '<leader>b', dap.toggle_breakpoint, { desc = 'Debug: Toggle Breakpoint' })
vim.keymap.set('n', '<leader>B', function()
dap.set_breakpoint(vim.fn.input 'Breakpoint condition: ')
end, { desc = 'Debug: Set Breakpoint' })
-- 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 = '',
@@ -77,14 +82,29 @@ return {
},
}
-- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception.
vim.keymap.set('n', '<F7>', dapui.toggle, { desc = 'Debug: See last session result.' })
-- 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()
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,
}

View File

@@ -0,0 +1,63 @@
-- Adds git related signs to the gutter, as well as utilities for managing changes
-- NOTE: gitsigns is already included in init.lua but contains only the base
-- config. This will add also the recommended keymaps.
---@module 'lazy'
---@type LazySpec
return {
'lewis6991/gitsigns.nvim',
---@module 'gitsigns'
---@type Gitsigns.Config
---@diagnostic disable-next-line: missing-fields
opts = {
on_attach = function(bufnr)
local gitsigns = require 'gitsigns'
local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts)
end
-- 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' })
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)
map('n', '<leader>hq', gitsigns.setqflist)
-- 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)
-- Text object
map({ 'o', 'x' }, 'ih', gitsigns.select_hunk)
end,
},
}

View File

@@ -1,9 +1,13 @@
-- Add indentation guides even on blank lines
---@module 'lazy'
---@type LazySpec
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 = {},
},
'lukas-reineke/indent-blankline.nvim',
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help ibl`
main = 'ibl',
---@module 'ibl'
---@type ibl.config
opts = {},
}

View File

@@ -1,55 +1,59 @@
-- Linting
---@module 'lazy'
---@type LazySpec
return {
'mfussenegger/nvim-lint',
event = { 'BufReadPre', 'BufNewFile' },
config = function()
local lint = require 'lint'
lint.linters_by_ft = {
markdown = { 'markdownlint' }, -- Make sure to install `markdownlint` via mason / npm
}
{ -- Linting
'mfussenegger/nvim-lint',
event = { 'BufReadPre', 'BufNewFile' },
config = function()
local lint = require 'lint'
lint.linters_by_ft = {
markdown = { 'markdownlint' },
}
-- 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
-- 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()
require('lint').try_lint()
end,
})
end,
},
-- 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,
})
end,
}

View File

@@ -0,0 +1,29 @@
-- Neo-tree is a Neovim plugin to browse the file system
-- https://github.com/nvim-neo-tree/neo-tree.nvim
---@module 'lazy'
---@type LazySpec
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',
},
lazy = false,
keys = {
{ '\\', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true },
},
---@module 'neo-tree'
---@type neotree.Config
opts = {
filesystem = {
window = {
mappings = {
['\\'] = 'close_window',
},
},
},
},
}