Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: move to lazy and fix many issues #178

Merged
merged 21 commits into from
Feb 17, 2023
Merged

feat: move to lazy and fix many issues #178

merged 21 commits into from
Feb 17, 2023

Conversation

tjdevries
Copy link
Member

@tjdevries tjdevries commented Feb 15, 2023

Closes #175
Closes #177
Closes #173
Closes #169
Closes #161
Closes #144
Closes #138
Fixes #136
Closes #137
Closes #131
Closes #117
Closes #130
Closes #115
Closes #86
Closes #105
Closes #70
Fixes #176
Fixes #174
Fixes #160
Fixes #158

config = function()
-- Optional debug adapter setup
--
-- To enable setup, change `disable = true` in the packer section
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Guessing you'll want to update 'in the packer section' to something lazy.nvim specific?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, i will make it so the debug config works with lazy -- this was leftover from an old PR that I never submitted

dap.listeners.before.event_exited['dapui_config'] = dapui.close

-- Install golang specific config
require('dap-go').setup()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pardon my ignorance, but will it be clear to folks where they should add the require().setup() for their own favorite languages?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well you'll have to emulate what I've done here for golang -- i can list a few examples and the wiki entries to explore. I haven't done a bunch of DAP stuff for other languages

Copy link
Contributor

@szechp szechp Feb 16, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you add mason-nvim-dap and the following in your config for nvim-dap, then you can just install daps from mason, and they work out of the box. A very GUI-way of doing things, but for beginners its really cool. you would not need to configure anything in init.lua

require('mason-nvim-dap').setup({ automatic_setup = true })
('mason-nvim-dap').setup_handlers()

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here is my full call to nvim-dap with packer, for clarification:

	use { 'mfussenegger/nvim-dap',
		requires = {
			'theHamsta/nvim-dap-virtual-text', -- Show variable values in virtual text
			'jay-babu/mason-nvim-dap.nvim', -- Automatic DAP configuration
			'williamboman/mason.nvim',
		},
		config = function()
			vim.fn.sign_define('DapBreakpoint', { text = '', texthl = 'Error' })
			vim.fn.sign_define('DapBreakpointCondition', { text = 'לּ', texthl = 'Error' })
			vim.fn.sign_define('DapLogPoint', { text = '', texthl = 'Directory' })
			vim.fn.sign_define('DapStopped', { text = 'ﰲ', texthl = 'TSConstant' })
			vim.fn.sign_define('DapBreakpointRejected', { text = '', texthl = 'Error' })

			-- Automatically set up installed DAP adapters
			require('mason-nvim-dap').setup({ automatic_setup = true })
			require('mason-nvim-dap').setup_handlers()
			-- DAP virtual text --
			require('nvim-dap-virtual-text').setup()
		end
	}

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, but some of the plugins give you additional configuration that allow you to do different types of debugging (like attaching to running process, run individual unit tests, etc)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is something I've struggled with and hope to contribute back to help other newbies :)

Specifically, I find it tremendously confusing to understand how to express the configuration for any given plugin, and I think the root of the confusion is understaning what lua lexical/function closure/scope a given plugin wants for its configuration.

Take this for example - it took me forever to understand that wrapping all my extra 'use' directives in a return function(use) would allow Packer to ingest them despite their being in another file.

Is there a way to signpost this for new users? Will Lazy make this easier?

Thanks so much for all your hard work. kickstart.nvim & neovim have made me a more productive developer == PRICELESS :)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, the new method is much simpler and less error prone. I will add docs as well before I merge

@tjdevries tjdevries mentioned this pull request Feb 16, 2023
@tjdevries tjdevries mentioned this pull request Feb 16, 2023
@@ -2,4 +2,4 @@ tags
test.sh
.luarc.json
nvim
plugin/packer_compiled.lua
lazy-lock.json

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey! Thanks for the awesome setup, this is awesome for the community!

I think the lazy-lock should probably be committed to maintain versions across multiple machines?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think I want to commit mine. Users can commit their own though by modifying the gitignore.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tjdevries I have the same problem for LazyVim. I don't add the lockfile to .gitignore and simply never add mine to the repo. This way for users, they won't forget to add the lockfile to git.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I'm just thinking contributors and others will end up adding it on accident constantly haha

@folke
Copy link
Contributor

folke commented Feb 17, 2023

Hi! just had a quick look at that PR and the biggest thing you should pobably change is config() -> opts

So for pretty much all the plugin specs, change:

{ -- Adds git releated signs to the gutter, as well as utilities for managing changes
    'lewis6991/gitsigns.nvim',
    config = function()
      -- See `:help gitsigns.txt`
      require('gitsigns').setup {
        signs = {
          add = { text = '+' },
          change = { text = '~' },
          delete = { text = '_' },
          topdelete = { text = '' },
          changedelete = { text = '~' },
        },
      }
    end,
  },

to

{ -- Adds git releated signs to the gutter, as well as utilities for managing changes
    'lewis6991/gitsigns.nvim',
    opts = {
      signs = {
        add = { text = '+' },
        change = { text = '~' },
        delete = { text = '_' },
        topdelete = { text = '' },
        changedelete = { text = '~' },
      },
    }
}

In general for most plugins a user can just use opts. If config involves something more than that, they can use the custom config method. Like for Treesitter, where you need to call configure on a sub-module. The internal resolving of the main module is pretty intelligent, so you should be able to use opts for all your plugins.

Copy link
Contributor

@folke folke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good! See my other comments

init.lua Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
"MunifTanjim/nui.nvim",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, totally fine as is, but lua dependencies don't have to be explicitly defined with lazy.

With lazy, when a plugin loads, then first all its dependencies will be loaded. so in this case those three plugins would always be loaded, wether they are used or not.

If you don't specify the explicit dependencies, they would be automatically loaded when doing require("plenary") for example.

init.lua Show resolved Hide resolved
init.lua Outdated
plugins(use)
end
-- Fuzzy Finder (files, lsp, etc)
{ 'nvim-telescope/telescope.nvim', branch = '0.1.x', dependencies = { 'nvim-lua/plenary.nvim' } },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

version='*'

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Side note: you can also just specify the name of a dependency, so just plenary.nvim. But as I mentioned earlier, since this is a lua dep, you could just skip it altogether.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't I need to put it as a dependency to make sure something installs plenary?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just leave it as is. Just wanted to make sure you knew about the auto-loading of lua plugins, but to be fair it wouldn't make a difference here anyway, since config.defaults.lazy = false.

So all good!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 awesome, thanks

@tjdevries
Copy link
Member Author

Thanks for the review @folke

Copy link
Contributor

@folke folke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

opt -> opts :)

init.lua Outdated
},

-- Useful plugin to show you pending keybinds.
{ 'folke/which-key.nvim', opt = {} },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be opts. Same for a bunch of others below :)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good call haha

-- Adds additional commands as well to manage the behavior

return {
'neovim/nvim-lspconfig',
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: For myself, could add null-ls here since I know that's a big hang up for a lot of people

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

meh, i think i'll do this later if I want it

@varun-balaji
Copy link

In 775ff6a, is there a reason to change from '<c-backspace>' to '<M-space>'? I'm thinking of rebinding it back but I'm not sure if that'll break anything.

@tjdevries
Copy link
Member Author

@varun-balaji it won't break anything -- i just think it's a better keybind :)

qiuye2015 pushed a commit to qiuye2015/fjp.nvim that referenced this pull request Dec 10, 2023
ChuufMaster pushed a commit to ChuufMaster/nvim that referenced this pull request Sep 3, 2024
Fixed spelling error and missing marker

Removes extra space between "-  Annotation" -> "-Annotation"

Fix typo in help reference

Disable telemetry for sumneko lua lsp

Remove reference to wiki that doesn't exist

Closes nvim-lua#3

Don't pass args to vim.lsp.buf.format/formatting

Args passed by nvim_buf_create_user_command to the callback creates
errors with rust-analyzer on nvim 0.7.x and vim.lsp.buf.formatting.

Move Telescope from master to 0.1.x branch

Follow Telescope's README suggestion and use 0.1.x branch instead of
master

Added cpp to treesitter and ordered TS imports

Replace nvim-lsp-installer with mason.nvim

fix nvim-treesitter-textobjects install warning

Update README.md

Use links to tagged releases rather than hardcoding 0.x and having to change it every few months. Fix markdownlint errors and some spelling, like using the official 'Neovim', not 'neovim'.

lsp.update_ is deprecated

fix: syntax highlights tree-sitter
- `navarasu/onedark.nvim` support both API TS* and the new one @*
- `mjlbach/onedark.nvim` is archived and not support new syntax

reformat to reduce merge conflicts and add fidget

Add optional packer plugins hook (nvim-lua#20)

* Add optional packer plugins hook

* Provide help in README and simplify module

* Fix spelling and tweak verbiage about after/plugin

Update the amount of SLOC in README (nvim-lua#35)

Looks like the project has grown a tad bit :sweat

Enable parameter text objects (nvim-lua#36)

This seems like a natural addition. In classic Vim, I used to use https://github.com/b4winckler/vim-angry for this.

add more explicit note about latest versions of nvim

enh(treesitter): add help into ensure_installed (nvim-lua#39)

closes nvim-lua#38

fixup: add gitignore and style

small changes to default mappings (nvim-lua#41)

Closes nvim-lua#46

note: tell people to remove languages they arent going to use

Fix error on Windows when space in install path (nvim-lua#64)

fix: don't check third party for Lua LSP (nvim-lua#57)

* fix: don't check third party for Lua LSP

Co-authored-by: Sean <[email protected]>
Co-authored-by: TJ DeVries <[email protected]>
Co-authored-by: Sean <[email protected]>

Update issue templates (nvim-lua#72)

Update intstructions for existing nvim setups (nvim-lua#65)

* Update intstructions for existing nvim setups

If you already had a nvim setup, then this makes it so that the kickstarter can work without a problem. Having that file exist and loaded with plugins gives the script many issues.

Also better to have it be a shell command rather than have the script delete a bunch of files on your computer.

remove python indent: closes nvim-lua#78

move server config to easy to extend style (nvim-lua#71)

Move servers to new configuration style.

I will probably cover this in a new shorter video, or maybe in combination with something else.
This should hopefully remove  getting so many people making issues about LSPs that they don't want to.

I can update documentation if what is happening is not clear.

Adding cmake documentation to README.md (nvim-lua#85)

Prevent multiple language servers from being spawned after every file save of init.lua (nvim-lua#96)

* Prevent multiple language servers from being spawned

Prevent multiple language servers from being spawned after every save of init.lua, which eventually leads to high RAM usage and system freeze.

* Supress error messages

add `silent!` in case of error message when nvim-lspconfig is not installed

added vim to tree-sitter's ensured installed list (nvim-lua#110)

please refer to nvim-treesitter/nvim-treesitter#3092

Add windows init lua location (nvim-lua#121)

* feat: add init.lua location fir Windows

* feat: more specific number of lines

feat: move to lazy.nvim package manager and add first plugins (nvim-lua#178)

Closes nvim-lua#175
Closes nvim-lua#177
Closes nvim-lua#173
Closes nvim-lua#169
Closes nvim-lua#161
Closes nvim-lua#144
Closes nvim-lua#138
Fixes nvim-lua#136
Closes nvim-lua#137
Closes nvim-lua#131
Closes nvim-lua#117
Closes nvim-lua#130
Closes nvim-lua#115
Closes nvim-lua#86
Closes nvim-lua#105
Closes nvim-lua#70
Fixes nvim-lua#176
Fixes nvim-lua#174
Fixes nvim-lua#160
Fixes nvim-lua#158

feat: Add clipboard sync by default (nvim-lua#166)

docs: change telescope fzf native to lazy syntax (nvim-lua#185)

Update instructions for neo-tree set up (nvim-lua#200)

For me, setting this variable in the config function didn't work. Putting it outside the return block did the trick.

added descriptions to Diagnostic keymaps (nvim-lua#191)

* Update init.lua

* Update init.lua

help treesitter module has been renamed to vimdoc in master (nvim-lua#248)

fix: use :TSInstall on build with nvim-treesitter (nvim-lua#261)

mason nvim dap 2.0 removed setup_handlers() (nvim-lua#258)

minor modifications on the issue template (nvim-lua#244)

* use real markdown headers for section titles

* add a newline after the initial comment for readability

* make hint indications comments

Correct command for neo-tree (nvim-lua#216)

fix: move the Mason setup time forward from before (nvim-lua#210)

This commit fix the Mason [nvim-lua#1045](williamboman/mason.nvim#1045) issue. Quickly set up Mason to avoid DAP-related startup error messages.

Fix typo "documention" into "documentation" (nvim-lua#209)

Dapui.toggle is added

setup a standard binding for searching git files using telescope

Added disconnect emoji for nvim-dap-ui

Update README.md

Update README.md

Update README.md

Should fix the win paths

I fear adding bits like "Your paths may differ, these are just for reference." but the core behind the kickstart is getting "noobs" past big hurdles fast. This however means things need to be super spoon fed or basic things like not understanding relative paths and such might end up right where things started...ambiguous to some user instructions because they don't understand they need to know certain things because this is supposed to help them bypass knowing that for now...and the snake eats its tail. :)

Fixed Windows style path for home

Hmmm

Tested on a win10VM for location and such because I remembered %appdata% should be a thing but it's the wrong location and the win MSI creates nvim-data rather than just nvim. Then I noticed my previous changes weren't all saved...so here I go again heh.

Update README.md

ARG!

My browser should not be caching yet github seems to fight some changes. I'm also still unable to see why the formatting (line height) differs between the Archive Install section and the Git Clone Install section.

Hopefully this will at least save the correct changes to the Win stuff.

Update README.md

Tiny wording changes I requested from nvim-lua#283

corrected git clone command

Add <C-n>, <C-p> mappings to nvim-cmp setup

Udated tree sitter to use latest release branch

change luasnip tab jumping to locally jumpable

add local jumping to shift tab

Adding [+c and ]+c to move to diffs and leader+ph to show a pop up with the preview diff value.

Feat: Simplifying code

FIX: Updating command description.

Added friendly snippet support

refact: stylua

Update README.md

Fix for nvim-lua#314 - there's no -data at the end of the nvim dir.

refact: add cmp comments, other

refact: remove after/ reference in readme, other clean-up items

fix(docs): update windows path to a correct folder

Update README.md

fix(docs): whoops missed another instance of `nvim-data`

FIX: Conflict with vimdiff keybinding

Refactor theme and status line into their own file

Revert "Refactor theme and status line into their own file"

This reverts commit cdaa750.

Fixes nvim-lua#336 - Enabale treesitter indent for Python

Tested in my local configuratoin. Indenting works great.

Add legacy tag to fidget to avoid deprecation warning

Fix typo in ignorecase comment

In order to perform a case-sensitive search with ignorecase, the pattern
should contain `\C` instead of `/C`.

Add descriptions for debugging keybindings.

Add descriptions for debugging key bindings.

Improve formatting by changing double quotes to single quotes in order
to keep compatibility with the rest of the kickstart.nvim project.

Use call_parentheses

correct typo

Hey y'all 👋

I think there may have been a typo?

Make init.lua copy-paste friendly

docs: Update README.md 📚

Remove timeout

Add hint to uncomment line to autodetect plugins

Remove fixed line number and describe line

setup more language servers i use + allow customizing filetypes

Fix bug when server not explicitely defined in configuration but installed

Fix typo in init.lua

releated -> related

fix(init): turn telescope-fzf-native into a dependecy

fix: fix brackets

fix: missing comma

Update init.lua

added a URL to the lua-guide
may help others who miss the :help lua-guide

Fix typo in README.md

treesitter: ensure 'javascript' installed along with typescript and tsx

This parser is actually needed for some *JSX* parsing, and since
typescript and tsx are already getting installed, it makes sense to
also install the javascript parser.

Add telescope search resume key binding

Revert gitsigns keymaps but fix vimdiff and fugitive conflict

Originally, the keymaps for jumping to next and previous git hunks were
]c and [c. This was changed in nvim-lua#323 (83b65a1) because they overwrote the
built-in vimdiff keymaps.

However, the more traditional solution is to have ]c and [c *extend* the
built-in keymap. This is what fugitive and gitgutter have been doing for
years.

Gitsigns doesn't do this by itself, but it has a recommended keymap
configuration on which the present patch is based:

	https://github.com/lewis6991/gitsigns.nvim#keymaps

The only thing I've added is to have the keymaps work in visual mode as
well, which is the same behavior as the built in vimdiff keymaps.

Use telescope for goto implementation

Update init.lua

Fix typo in original.

Co-authored-by: Luis G Estrades <[email protected]>

docs: restructure README

docs: remove archive installation

Remove extra "r" Search Resume description

Remove lazy-lock.json from .gitignore

fix(init.lua): indent blankline v3 setup

fix: fix indent-blankline config

Add documentation for custom which-key groups

Fix git clone instruction - separate code blocks for Windows and UNIX.

Defer Treesitter setup to improve startup time of nvim {filename}

Fix Mason setup issue and run stylua.

Move mason setup up further

This helps if a user needs to find a mason executable

remove spaces in empty lines

docs: fix misstype on README.md

Fix bash errors

Fix help for indent-blankline plugin

Since version 3 `:help indent_blankline` no longer works. Replace it
with `:help ibl`.

feat(lsp): use Telescope builtin functions for LSP definition and type
definition

Update README Post Installation steps

Change the recommendation to just run nvim normally instead of the headless
mode for the first run. This will show Lazy UI updating the plugins which
would match what the video show and may be easier to understand what is going
on thant the silent headless run.

README.md: add a note about NVIM_APPNAME in the FAQ section

README.md: Added a FAQ: why is init.lua a single file

Update README.md

Added information on where to install if you use Powershell in windows. Since CMD and Powershell work differently.

`%userprofile%` only works for the CMD application.
`$env:USERPROFILE` works in Powershell.

add Telescope live_grep on Git root

change keymap  to not disrupt existing users of Search by Grep

Live Grep from Git root falls back to cwd on special buffers

init.lua: move diagnostic keymaps together with other keymaps

init.lua: minor edits of section comments for consistency

fix(auto-completion): ensure first menu item is selected by default

init.lua: remove 'legacy' tag from fidget.nvim

option to reduce noisy Lua_LS's missing-fields warnings (nvim-lua#511)

Update README.md (nvim-lua#520)

README.md: update install section formatting (nvim-lua#523)

Use alias instead of a wrapper script (nvim-lua#524)

It is much easier to stick an alias statement in `~/.{z,ba}shrc` than create a script, invoke another instance of interpreter and then run neovim

Add a github action on pull request to check lua formatting (nvim-lua#526)

GitHub Action used:
https://github.com/marketplace/actions/stylua

This runs `stylua --check` on a PR and it will show
success or failure. The suggested stylua changes can
be inspected when clicking on the details.

The PR can still be merged even if the check fails.

Run stylua (nvim-lua#525)

Add gitsigns recommended keymaps (nvim-lua#531)

* Import gitsigns README.md recommended keymaps (and apply stylua)

the previously added visual mode for ]c [c is kept.

* Add gitsigns keymap descriptions

Adds two essential telescope keymaps (nvim-lua#528)

* Added keymap for select Telescope picker

* Added keymap for search in all open files

feat(cmp): path completion feature (nvim-lua#536)

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

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

Co-authored-by: John Pekcan <[email protected]>

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

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

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

Improve stylua github workflow (nvim-lua#571)

Addressing issue nvim-lua#570

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

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

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

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

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

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

Removed duplicate line (nvim-lua#583)

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

Add Onedark Style (nvim-lua#590)

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

* stylua init.lua

* Load onedark through `require`

* Improve commenting

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

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

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

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

* fix: resolve stylua checks

* fix: resolve stylua checks

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

Add Build Step to LuaSnip (nvim-lua#611)

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

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

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

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

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

fixup: add autocommand link for help and description

fixup: change comment to reflect auto_install

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

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

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

fixup: updated some style stuff

feat: enable lua lsp snipppets (nvim-lua#660)

chore: fix typos (nvim-lua#666)

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

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

fix: add note in readme for custom plugins

fix: checkhealth reported nvim version (nvim-lua#685)

Change statusline location to LINE:COLUMN (nvim-lua#689)

chore: remove trailing spaces from readme (nvim-lua#679)

chore: link new installation youtube video (nvim-lua#678)

Add more detail to colorscheme comment (nvim-lua#713)

Make the Nerd Font an optional requirement (nvim-lua#716)

Fix typos and whatnot (nvim-lua#731)

use init for colorscheme (nvim-lua#715)

README.md: update neo-tree example - remove legacy setting (nvim-lua#744)

feat: allow treesitter defaults to be overwritten from custom directory (nvim-lua#732)

chore: rename <C-T> to <C-t> for consistency (nvim-lua#719)

Added folke/neodev.nvim for proper nvim api completion and annotation (nvim-lua#754)

Fixes nvim-lua#692

`neodev` configures Lua LSP for your Neovim config, runtime and plugins
used for completion, annotations and signatures of Neovim apis

With neodev, there's no more need to manually set lua_ls workspace
settings which don't seem to work properly anyway as currently nvim
api completion does not work.

Use `cmp-nvim-lua` as `nvim-cmp` source for neovim Lua API (nvim-lua#696)

* Use cmp-nvim-lua as nvim-cmp source for neovim Lua API

* Move the dependency to a more suitable place

Revert "Use `cmp-nvim-lua` as `nvim-cmp` source for neovim Lua API (nvim-lua#696)" (nvim-lua#755)

This reverts commit d8a1dbc.

doc: add info about timeoutlen (nvim-lua#691)

Add separate comment for `timeoutlen` option
`timeoutlen` option was under unrelated comment with `updatetime` option.

Add <C-b>/<C-f> cmp mapping to scroll cmp docs (nvim-lua#750)

Move friendly snippets to dependencies of LuaSnip (nvim-lua#759)

Co-authored-by: TJ DeVries <[email protected]>

doc: add note about advanced luasnip features

fix: disable ts indenting for Ruby

Tree-sitter indenting for ruby is pretty terrible.
But the fix requires a few steps, so showed those
and documented how you could do that for other languages
as well (with the tricky part being the
additional_vim_regex_highlighting trick)

Update README.md (nvim-lua#763)

Added file text to code block for consistency since the other plugin had file also inside code block.

conform: disable autoformat on save for specified filetypes (nvim-lua#694)

Provide a method to disable autoformat on save lsp fallback for
specified filetypes. By default disable for C/C++ as an example,
because it does not have a well standardized coding style.

Based on conform recipe:
https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md

README: additional install recipes for various OS (nvim-lua#767)

assign table to filetype in lua_ls config comment (nvim-lua#770)

feat: add linter plugin (nvim-lua#699)

Some suggestions and capitalised a few words (nvim-lua#771)

Add nvim-nio as dependency for nvim-dap-ui (nvim-lua#774)

It's a dependency now

Update README.md (nvim-lua#781)

The recommended step of forking the repo coming sequentially after the step instructing users to clone the current repo doesn't make sense.

This commit orders the install instructions in a manner that's more logical.

README: wrap long lines (nvim-lua#784)

fix nvim-lua#799 (nvim-lua#800)

Add `'luadoc'`, to the `ensure_installed` of `nvim-treesitter/nvim-treesitter`

Add instructions to quit :lazy. Fixes nvim-lua#761

Add a keymap space-f to format buffer using conform (nvim-lua#817)

This works also for visual range selection
Copied from conform recipe:
https://github.com/stevearc/conform.nvim/blob/master/doc/recipes.md

Don't lazy load conform plugin (nvim-lua#818)

README: move backup and paths from external deps to install section (nvim-lua#819)

Add a pull request template (nvim-lua#825)

Update README (nvim-lua#832)

Arch, btw (nvim-lua#852)

* Arch, btw

* Add unzip

* Add unzip for Fedora and --needed arg for Arch

Comment about nerd font selection. Fixes nvim-lua#853 (nvim-lua#854)

Fix: nvim-lua#847 - add prefer_git to treesitter config (nvim-lua#856)

Enable inlay hints for the supporting servers (nvim-lua#843)

Move plugin examples from README to optional plugin files (nvim-lua#831)

* Move autopairs example from README to an optional plugin

* Move neo-tree example from README to an optional plugin

Add gitsigns recommended keymaps as an optional plugin (nvim-lua#858)

fix: restore Mason config timing for DAP startup (again) (nvim-lua#865)

Update README.md (nvim-lua#860)

Attempted fix for nvim-lua#859, provide reasonable Debian install instructions -- comment on GitHub issue with refinement.

Minor improvements of debian install instructions. Fixes nvim-lua#859 (nvim-lua#869)

Add a commented out example of the classic complete keymaps. Fixes nvim-lua#866 (nvim-lua#868)

Fix deprecation notice of inlay hints (nvim-lua#873)

Fix highlight errors when lsp crash or stop (nvim-lua#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 <[email protected]>

fix: highlight group clear on each attach (nvim-lua#874)

Update README.md (nvim-lua#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."

README: add clipboard tool dependency (nvim-lua#886)

Fixes: nvim-lua#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.

Move LspDetach handler near kickstart-lsp-highlight group (nvim-lua#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.

Add diff to treesitter's ensure_installed languages (nvim-lua#908)

fix: debug.lua (nvim-lua#918)

Automatically set detached state as needed. (nvim-lua#925)

* Automatically set detached state as needed.

* Use vim.fn.has instead.

* Fix int vs bool.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants