Git Product home page Git Product logo

lazyvim's Introduction


LazyVim is a Neovim setup powered by 💤 lazy.nvim to make it easy to customize and extend your config. Rather than having to choose between starting from scratch or using a pre-made distro, LazyVim offers the best of both worlds - the flexibility to tweak your config as needed, along with the convenience of a pre-configured setup.

image

image

✨ Features

  • 🔥 Transform your Neovim into a full-fledged IDE
  • 💤 Easily customize and extend your config with lazy.nvim
  • 🚀 Blazingly fast
  • 🧹 Sane default settings for options, autocmds, and keymaps
  • 📦 Comes with a wealth of plugins pre-configured and ready to use

⚡️ Requirements

  • Neovim >= 0.9.0 (needs to be built with LuaJIT)
  • Git >= 2.19.0 (for partial clones support)
  • a Nerd Font (optional)
  • a C compiler for nvim-treesitter. See here

🚀 Getting Started

You can find a starter template for LazyVim here

Try it with Docker
docker run -w /root -it --rm alpine:edge sh -uelic '
  apk add git lazygit neovim ripgrep alpine-sdk --update
  git clone https://github.com/LazyVim/starter ~/.config/nvim
  cd ~/.config/nvim
  nvim
'
Install the LazyVim Starter
  • Make a backup of your current Neovim files:

    mv ~/.config/nvim ~/.config/nvim.bak
    mv ~/.local/share/nvim ~/.local/share/nvim.bak
  • Clone the starter

    git clone https://github.com/LazyVim/starter ~/.config/nvim
  • Remove the .git folder, so you can add it to your own repo later

    rm -rf ~/.config/nvim/.git
  • Start Neovim!

    nvim

    Refer to the comments in the files on how to customize LazyVim.


There's a great video created by @elijahmanor with a walkthrough to get started.

Watch the video

📂 File Structure

The files under config will be automatically loaded at the appropriate time, so you don't need to require those files manually. LazyVim comes with a set of default config files that will be loaded before your own. See here

You can add your custom plugin specs under lua/plugins/. All files there will be automatically loaded by lazy.nvim

~/.config/nvim
├── lua
│   ├── config
│   │   ├── autocmds.lua
│   │   ├── keymaps.lua
│   │   ├── lazy.lua
│   │   └── options.lua
│   └── plugins
│       ├── spec1.lua
│       ├── **
│       └── spec2.lua
└── init.lua

⚙️ Configuration

Refer to the docs

lazyvim's People

Contributors

2giosangmitom avatar abeldekat avatar agriffis avatar alexander-born avatar amaanq avatar andresatierf avatar appelgriebsch avatar briandipalma avatar dpetka2001 avatar folke avatar frederick888 avatar github-actions[bot] avatar hezhizhen avatar jakub-kozlowicz avatar jomik avatar jyuan0 avatar kevintraver avatar leisurelicht avatar lkhphuc avatar loichyan avatar loqusion avatar minusfive avatar mrcjkb avatar oneofone avatar radvil avatar rubiin avatar skoch13 avatar tmcw avatar ueaner avatar uthmanmoh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lazyvim's Issues

bug: Pressing <Leader>c in Visual mode deletes selection

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.9.0-dev-661+ga37c686d2

Operating system/version

MacOS 12.6.1

Describe the bug

When using visual mode to select text I often will press to bring up the which-key prompt to see what options are available to me. If I click c to bring up the code options, however, it deletes my entire selection.

Here's a recording of the issue:
visual-delete

I followed this recommendation from StackOverflow to capture all of the keymaps to see if there was a separate issue mapping: https://stackoverflow.com/a/15756785

x  <Space>c    * <Cmd>lua require("which-key").show(" c", {mode = "v", auto = true})<CR>
	Last set from Lua

Steps To Reproduce

  1. Enter visual mode and select some text
  2. Click and wait to bring up which-key prompt
  3. Click c to go to the code section
  4. Text should be deleted

Expected Behavior

Text should not be deleted and instead which-key should navigate to the next window

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

bug: guifont is always set to Firacode before user options are loaded.

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

v0.8.2

Operating system/version

Windows 10 Home x86_64

Describe the bug

"Unknown font: FiraCode Nerd Font" is logged whenever I start up. I already have a nerd front that I want to use which I've set in my options but the defaults always try to set the guifont regardless.

Steps To Reproduce

  • Dont have the default nerd font installed.
  • Set a suitable guifont in your options.lua

Expected Behavior

No missing font error if you've configured your own font.

Repro

No response

bug: Treesitter error evrytime I write a command

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.8.2

Operating system/version

MacOS 12.6

Describe the bug

First, I'd like to thank you for this amazing repo and plugin. I was impressed by the speed of neovim tbh comparing to my last config even though I was using lazy.

But I have some issue though:

Tree sitter issue appears whenever I open the command mode to write something. It appears after opening some lua files.

Also lua files sometimes shows an error and open files without highlights. I need to quit vim and then re-open it again to solve the issue.

  1. Here is some photos for the issue. the issue notification appears with every character I write in the command mode.

Screen Shot 2023-01-20 at 10 43 41 PM

Screen Shot 2023-01-20 at 10 19 20 PM

  1. And here is a photo for the highlight issue:

Screen Shot 2023-01-20 at 10 57 34 PM

Screen Shot 2023-01-20 at 11 21 10 PM

Solutions I tried:

  1. After that I deleted the example.lua file since it's written in the docs that this file is just an example and lazy don't load it already. But the issue persist.
  2. I disabled the noice.nvim, the notification doesn't appear but it's still there wherever I open lua file.
    the checkhealth command will give you an insight since it has many issue 🫣
  3. I deleted every nvim folder even the cach and then re-installed it from the start, but the issue appeared like after opening neovim with lua multiple times.
checkhealth - CLICK ME

lazy: require("lazy.health").check()
========================================================================
## lazy.nvim
  - OK: no existing packages found by other package managers
  - OK: packer_compiled.lua not found

man: require("man.health").check()
========================================================================
  - OK: plugin/man.vim not in $VIMRUNTIME
  - OK: autoload/man.vim not in $VIMRUNTIME

noice: require("noice.health").check()
========================================================================
## noice.nvim
  - OK: **Neovim** >= 0.8.0
  - WARNING: **Neovim** 0.9.0 (nightly) is recommended, since it fixes some issues related to `vim.ui_attach`
  - OK: Not running inside **Neovide**
  - OK: You're not using a GUI
  - OK: **vim.go.lazyredraw** is not enabled
  - OK: **nvim-notify** is installed
  - OK: **TreeSitter vim** parser is installed
  - WARNING: **TreeSitter regex** parser is not installed. Highlighting of the cmdline for regex might be broken
  - OK: **TreeSitter lua** parser is installed
  - WARNING: **TreeSitter bash** parser is not installed. Highlighting of the cmdline for bash might be broken
  - WARNING: **TreeSitter markdown** parser is not installed. Highlighting of the cmdline for markdown might be broken
  - WARNING: **TreeSitter markdown_inline** parser is not installed. Highlighting of the cmdline for markdown_inline might be broken
  - OK: `vim.notify` is set to **Noice**
  - OK: `vim.lsp.handlers["textDocument/hover"]` is set to **Noice**
  - OK: `vim.lsp.handlers["textDocument/signatureHelp"]` is set to **Noice**
  - OK: `vim.lsp.handlers["window/showMessage"]` is set to **Noice**
  - OK: `vim.lsp.util.convert_input_to_markdown_lines` is set to **Noice**
  - OK: `vim.lsp.util.stylize_markdown` is set to **Noice**

nvim: health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $COLORTERM='truecolor'

provider: health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: pbcopy

## Python 3 provider (optional)
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Multiple python3 executables found.  Set `g:python3_host_prog` to avoid surprises.
  - INFO: Executable: /usr/local/bin/python3
  - INFO: Other python executable: /usr/bin/python3
  - INFO: Python version: 3.10.9
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - INFO: Ruby: ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.x86_64-darwin21]
  - WARNING: `neovim-ruby-host` not found.
    - ADVICE:
      - Run `gem install neovim` to ensure the neovim RubyGem is installed.
      - Run `gem environment` to ensure the gem bin directory is in $PATH.
      - If you are using rvm/rbenv/chruby, try "rehashing".
      - See :help |g:ruby_host_prog| for non-standard gem installations.
      - You may disable this provider (and warning) by adding `let g:loaded_ruby_provider = 0` to your init.vim

## Node.js provider (optional)
  - INFO: Node.js: v19.4.0
  - WARNING: Missing "neovim" npm (or yarn, pnpm) package.
    - ADVICE:
      - Run in shell: npm install -g neovim
      - Run in shell (if you use yarn): yarn global add neovim
      - Run in shell (if you use pnpm): pnpm install -g neovim
      - You may disable this provider (and warning) by adding `let g:loaded_node_provider = 0` to your init.vim

## Perl provider (optional)
  - WARNING: "Neovim::Ext" cpan module is not installed
    - ADVICE:
      - See :help |provider-perl| for more information.
      - You may disable this provider (and warning) by adding `let g:loaded_perl_provider = 0` to your init.vim

vim.lsp: require("vim.lsp.health").check()
========================================================================
  - INFO: LSP log level : WARN
  - INFO: Log path: /Users/bassam/.local/state/nvim/lsp.log
  - INFO: Log size: 0 KB

vim.treesitter: require("vim.treesitter.health").check()
========================================================================
  - INFO: Runtime ABI version : 14
  - OK: Loaded parser for c: ABI version 13
  - OK: Loaded parser for help: ABI version 14
  - OK: Loaded parser for lua: ABI version 13
  - OK: Loaded parser for vim: ABI version 14

which_key: health#which_key#check
========================================================================
## WhichKey: checking conflicting keymaps
  - WARNING: conflicting keymap exists for mode **"n"**, lhs: **"gc"**
  - INFO: rhs: `v:lua.MiniComment.operator()`
  - WARNING: buffer-local keymap overriding global for mode **"n"**, buf: 0, lhs: **"c"**
  - INFO: old rhs: `:e $MYVIMRC <CR>`
  - INFO: new rhs: `<cmd>lua require("which-key").show("c", {mode = "n", auto = true})<cr>`
  - WARNING: buffer-local keymap overriding global for mode **"n"**, buf: 0, lhs: **"g"**
  - INFO: old rhs: `:Telescope live_grep <CR>`
  - INFO: new rhs: `<cmd>lua require("which-key").show("g", {mode = "n", auto = true})<cr>`

side note: I don't use (cargo, npm, etc..) I use usually Python,R, SQL and config dotfiles.

Thank you so much.

Steps To Reproduce

  1. open any neovim config lua file.
  2. start editing.
  3. close neovim.
  4. open neovim again and start editing any file in the plugin folder.
  5. the issue appears.
  6. It may not happen from the first 1 or 2 times but eventually will happen like after 3rd time of editing the config.
  7. Then it keeps happening.

Expected Behavior

to be working properly without issues.

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

No specs found for module lazyvim.plugins

Trying to use this repo as you did in your dotfiles I am getting this erro:

Error detected while processing /Users/chell/.config/nvim/init.lua:
No specs found for module lazyvim.plugins
Press ENTER or type command to continue

Here is my lazy setup:

require("lazy").setup({
  spec = {
    { "folke/LazyVim", dev = true, lazy = false, priority = 10000 },
    { import = "lazyvim.plugins" },
    { import = "plugins" },
  },
  defaults = { lazy = true },
  install = { colorscheme = { "tokyonight", "habamax" } },
  checker = { enabled = true },
  diff = {
    cmd = "terminal_git",
  },
  performance = {
    cache = {
      enabled = true,
    },
    rtp = {
      disabled_plugins = {
        "gzip",
        "matchit",
        "matchparen",
        "netrwPlugin",
        "tarPlugin",
        "tohtml",
        "tutor",
        "zipPlugin",
        "nvim-treesitter-textobjects",
      },
    },
  }
})

I noticed you are still in the middle of refactoring a lot of stuff to this repo, so maybe I am trying to make it work at the wrong time eh :)

bug: Cannot override keymaps configured in "keys" property of lazy.nvim

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

0.8

Operating system/version

Arch Linux

Describe the bug

Setting a keymap that is already being set inside the "keys" property of a plugin will not work, as it'll be overridden once that plugin loads.

Steps To Reproduce

  1. clone lazyvim starter template
  2. set keymap("n", "<leader>/", "gcc", opts) inside lua/config/keymaps.lua
  3. press the key combination

Expected Behavior

keymap works -> line/ block gets commented

Actual Behavior

custom keymap has no effect
leader + / stlil opens telescope live grep as defined here:

{ "<leader>/", Util.telescope("live_grep"), desc = "Find in Files (Grep)" },

bug: overriding formatoptions

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.8.2

Operating system/version

Linux 6.1.6-arch1-1

Describe the bug

I'm trying to set my own vim.opt.formatoptions in the ~/.config/nvim/lua/config/options.lua file.
But they are not taken into account and the default formatoptions defined by lazyvim are set.

Steps To Reproduce

  1. Add vim.opt.formatoptions="jcqlnt" to ~/.config/nvim/lua/config/options.lua
  2. Start nvim
  3. Check formatoptions with set fo?

Expected Behavior

User set formatoptions should take precedence over the default setting defined by Lazyvim.

Note that other options I changed like wrap do get taken into account.

Repro

No response

bug: crash when using telescope

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

0.9.0-dev-647+g1df2db0bc-dirty

Operating system/version

MacOS 12.6

Describe the bug

When using Telescope with this keymap: { "<leader>/", util.telescope("live_grep"), desc = "Find in Files (Grep)" }

In a fairly large project, typing/removing a few letters seems to crash neovim.
I have only between 16 and 60 results when it crashes.

Is there any way to pinpoint the issue as neovim just closes without any message?

I checked on the Telescope repo, some open issues are about crashes but they all seem to get errors shown inside of neovim.

My config is straight from the starter, no change at all.

Steps To Reproduce

  1. Open a large project
  2. /
  3. type/remove a few letters e.g: abcde (speed doesn't seem to matter)
  4. I am back to my terminal without any message.

Expected Behavior

no crash

Repro

Same as starter

wiki: Add something to the wiki on how to enable supertab for cmp

  I tried to override `nvim-cmp` under `lua/plugins` like this:
  {
    "hrsh7th/nvim-cmp",
    opts = function()
      local cmp = require("cmp")
      return {
        mapping = cmp.mapping.preset.insert({
          ["<tab>"] = cmp.mapping.confirm({ select = true }),
        }),
      }
    end
  },

Not working.

Then I tried to set a keymap like this:

local cmp = require("cmp")
vim.keymap.set("s", "<tab>", function()
  cmp.mapping.confirm({ select = true })
end)

Also not working.

Pressing Enter to autocomplete makes me cry. I don't want to cry.

Originally posted by @justjew in #39

bug: bad incremental selection boolean keymap

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.8.2

Operating system/version

Linux 6.1.6-arch1-1

Describe the bug

treesitter complains about a bad keymap in the new incremental selection config.

Error detected while processing BufReadPost Autocommands for "*":
Error executing lua callback: /usr/share/nvim/runtime/filetype.lua:22: Error executing lua: /usr/shar
e/nvim/runtime/filetype.lua:23: Vim(append):Error executing lua callback: vim/keymap.lua:0: lhs: expe
cted string, got boolean

The newly added incremental selection config for treesitter includes the keymaps:

        scope_incremental = false,

I don't think you can put boolean values here. If I replace the false with a valid keymap the issue is fixed.

Steps To Reproduce

Start vim

Expected Behavior

treesitter should start without issue.

Repro

No response

How to re-enable Netrw

I've been customizing this setup mostly by paring it way down but disabling neo-tree leaves me with no file explorer. :Ex just throws a E492: not an editor command: Ex error. Is there a way to re-enable Netrw?

I've haphazardly tried to remove all the configuration from the "neo-tree" entry in in ~/.local/share/nvim/LazyVim/lua/lazyvim/plugins/editor.lua such that it's only

local Util = require("lazyvim.util")

return {

    -- file explorer
    {
        "nvim-neo-tree/neo-tree.nvim",
    },
    -- everything else left untouched
    -- ...
}

but that seems to have done nothing.

Thanks for any pointers, and thanks for the cool plugin!

bug: Use other than "LazyVim/LazyVim" as source repo

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.9.0-dev-594+gc590641feb Build type: RelWithDebInfo LuaJIT 2.1.0-beta3 C

Operating system/version

6.1.1-1-MANJARO #1 SMP PREEMPT_DYNAMIC

Describe the bug

So I'm trying to load my own fork of LazyVim to experiment with getting rid of some plugins, keymaps, etc.

But I'm getting this error after opening nvim for the second time on a fresh install:

Failed (1)
                     ● LazyVim 1.35ms  start     ■■ origin failed
                         Origin has changed:
                           * old: https://github.com/TheJoeSchr/LazyVim
                           * new: https://github.com/LazyVim/LazyVim.git
                         Please run update to fix

Steps To Reproduce

I was using the starter as source, so the file/folder structure is accordingly. I posted the complete lazy.lua in belows field for init.lua

prerequisite: rm -rf ~/.local/share/nvim/lazy

  1. open config/lazy.lua
  2. replace
-- { "LazyVim/LazyVim", import = "lazyvim.plugins" },
  1. with
 { "TheJoeSchr/LazyVim", dir = "~/.local/share/nvim/lazy/LazyVimJoe/", import = "lazyvim.plugins" },

3a. (or optionally with same dirmane) { dir = "~/.local/share/nvim/lazy/LazyVim/", import = "lazyvim.plugins" },
3b. (also tried directly cloning it:) git clone https://github.com/TheJoeSchr/LazyVim ~/.local/share/nvim/lazy/LazyVim/
4. open nvim, let everything Install => all should be fine
5. close and reopen => above error

Expected Behavior

Letting me use my own fork. Or even preferably a easy way to slim down plugins and keymaps not needed. I'm converting my original init.vim and :checkhealth WhichKey crashes and :checkhealth Lazy complains about quite a lot of overrides. So that's why I thought I try this route.

Repro

local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  -- bootstrap lazy.nvim
  -- stylua: ignore
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
end
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)

require("lazy").setup({
  spec = {
    -- import LazyVim plugins
    -- { "LazyVim/LazyVim", import = "lazyvim.plugins" },
    -- { "TheJoeSchr/LazyVim", dir = "~/.local/share/nvim/lazy/LazyVimJoe/", import = "lazyvim.plugins" },
    { dir = "~/.local/share/nvim/lazy/LazyVimJoe/", import = "lazyvim.plugins" },
    { import = "plugins" },
    -- import any extras modules here
    -- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
    -- treesitter, mason and typescript.nvim. So instead of the above, you can use:
    { import = "lazyvim.plugins.extras.lang.typescript" },
    -- add jsonls and schemastore ans setup treesitter for json, json5 and jsonc
    { import = "lazyvim.plugins.extras.lang.json" },
    -- use my own mini.starter instead of LazyVim's
    { import = "plugins.extras.ui.mini-starter" },
  },
  defaults = {
    -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
    -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
    lazy = false,
    -- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
    -- have outdated releases, which may break your Neovim install.
    version = false, -- always use the latest git commit
    -- version = "*", -- try installing the latest stable version for plugins that support semver
  },
  install = { colorscheme = { "tokyonight", "habamax" } },
  checker = { enabled = true }, -- automatically check for plugin updates
  performance = {
    rtp = {
      -- disable some rtp plugins
      disabled_plugins = {
        "gzip",
        "matchit",
        "matchparen",
        -- "netrwPlugin",
        "tarPlugin",
        "tohtml",
        "tutor",
        "zipPlugin",
      },
    },
  },
})

bug: Custom plugins stuck in `not loaded` section

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

v0.8.2

Operating system/version

macOS 13.1

Describe the bug

Just install from starter and add a plugins.custom file with a plugin included:

return {
  {
    "TimUntersberger/neogit",
    config = function()
      require("neogit").setup({
        integrations = {
          diffview = true,
        },
      })
    end,
    dependencies = {
      "nvim-lua/plenary.nvim",
      "sindrets/diffview.nvim",
    },
  },
  { "weizheheng/ror.nvim" },
}

and this both plugin are still in not loaded

Steps To Reproduce

Start nvim and open Lazy
Screenshot 2023-01-16 at 15 28 46

Expected Behavior

Plugins are loaded after startup

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

Use some other 'mini.nvim' modules?

These significantly improve workflow even with default require('mini.xxx').setup():

These are not so critical, but useful:

  • mini.align to interactively align things.
  • mini.indentscope shows current indent scope (with animation) and provides texobject and motion based on indent. Should correctly work alongside 'lukas-reineke/indent-blankline.nvim'.

These are purely suggestions for something that might be missing from current plugin lineup.

bug: Quickly opening file in neotree opens file in Noice notification

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.8.2

Operating system/version

MacOS 11.5

Describe the bug

When launching vim with no args and selecting a file from neotree, if there is an open noice popup the file will open inside the popup instead of replacing the dashboard.

image

Steps To Reproduce

  1. Run vim in the terminal with some state that causes a noice popup. For me, the most common case is the lazy.nvim Plugin Updates popup on launch.
  2. Quickly hit <leader>e to open neotree
  3. Select a file and hit enter
  4. The file will open in the noice popup instead of the primary buffer.

Expected Behavior

Expect the file to replace the LAZYVIM dashboard and open normally instead of in the small popup.

Repro

No response

bug: Weird cmd displayed at LspInfo

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

0.8.2

Operating system/version

PopOs 22.04

Describe the bug

I added the omnisharp server to the lsp servers and everything is working fine.
But when I use LspInfo the cmd command shows a lot of duplicates.

Basicalles it shows
omnisharp -z -s /home/path --hostPID 2352 DotNet:enablePackageRestore=false --encoding utf-8 --languageserver FormattingOptions:EnableEditorConfigSupport=true Sdk:IncludePrereleases=true -z -s /home/path --hostPID 2352 DotNet:enablePackageRestore=false --encoding utf-8 --languageserver FormattingOptions:EnableEditorConfigSupport=true Sdk:IncludePrereleases=true-z -s /home/path --hostPID 2352 DotNet:enablePackageRestore=false --encoding utf-8 --languageserver FormattingOptions:EnableEditorConfigSupport=true Sdk:IncludePrereleases=true-z -s /home/path --hostPID 2352 DotNet:enablePackageRestore=false --encoding utf-8 --languageserver FormattingOptions:EnableEditorConfigSupport=true Sdk:IncludePrereleases=true-z -s /home/path --hostPID 2352 DotNet:enablePackageRestore=false --encoding utf-8 --languageserver FormattingOptions:EnableEditorConfigSupport=true Sdk:IncludePrereleases=true

Since the server is running it is not very urgent but still weird.

Steps To Reproduce

  1. add omnisharp to the server list with omnisharp = {}
  2. open a .cs file in a with a project
  3. run LspInfo command

Expected Behavior

cmd section only shows:
omnisharp -z -s /home/path --hostPID 2352 DotNet:enablePackageRestore=false --encoding utf-8 --languageserver FormattingOptions:EnableEditorConfigSupport=true Sdk:IncludePrereleases=true

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

bug: Docker install method needs more verbosity

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

v0.7.0

Operating system/version

Ubuntu 22.04.1 LTS

Describe the bug

Pasted the Docker install script from lazyvim.github.io and it either hangs or is too slow to know the difference

Steps To Reproduce

[~]$ docker run -w /root -it --rm alpine:edge sh -uelic '
  apk add git lazygit neovim ripgrep alpine-sdk --update
  git clone https://github.com/LazyVim/starter ~/.config/nvim
  cd ~/.config/nvim
  nvim
'

Expected Behavior

Install

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

usage: Unclear how to unset lspconfig keybinding

First, thanks for developing and publishing this, it's really great as a starting point for neovim.

I was checking the plugins/example.lua trying to check how to unset premade keybindings by LazyVim. In particular, I want to use the K keymap in normal mode for moving this around with mini.move. I'm doing this by adding the following to my init.lua

require("mini.move").setup({
  mappings = {
    left = "H",
    right = "L",
    down = "J",
    up = "K",
    line_left = "H",
    line_right = "L",
    line_down = "J",
    line_up = "K",
  },
})

However, the on_attach call by lspconfig that LazyVim preconfigures in keymaps.lua takes precendence so K doesn't call the mini.move function.

As a sanity check

:nmap K
n  K           *@<Lua 807: /usr/local/Cellar/neovim/0.8.1/share/nvim/runtime/lua/vim/lsp/buf.lua:41>
                 Hover
n  K           * <Cmd>lua MiniMove.move_line('up')<CR>
                 Move line up

What is the intended way of disabling particular keybindings done vim LazyVim in this way?

Treesitter build failures on Windows

I'm new to Vim/NeoVim and wish I knew better how to debug this. I've been trying configs (ThePrimeagen/init.lua, LunarVim/nvim-basic-ide, nvim-lua/kickstart.nvim) and rewriting a few dozen trying to learn before evolving in this direction. I didn't have any trouble getting the others up with TreeSitter & LSP functional but this one fails on Windows. Likely pathing issue? Target and Source seem to exist but getting access errors.

NVIM v0.8.2
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compiled by runneradmin@fv-az28-353

Features: -acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM\sysinit.vim"
  fall-back for $VIM: "C:/Program Files (x86)/nvim/share/nvim"
[nvim-treesitter] [0/15] Downloading tree-sitter-bash...
[nvim-treesitter] [0/15] Downloading tree-sitter-help...
[nvim-treesitter] [0/15] Downloading tree-sitter-html...
[nvim-treesitter] [0/15] Downloading tree-sitter-javascript...
[nvim-treesitter] [0/15] Downloading tree-sitter-json...
[nvim-treesitter] [0/15] Downloading tree-sitter-lua...
[nvim-treesitter] [0/15] Downloading tree-sitter-markdown...
[nvim-treesitter] [0/15] Downloading tree-sitter-markdown_inline...
[nvim-treesitter] [0/15] Downloading tree-sitter-python...
[nvim-treesitter] [0/15] Downloading tree-sitter-query...
[nvim-treesitter] [0/15] Downloading tree-sitter-regex...
[nvim-treesitter] [0/15] Downloading tree-sitter-tsx...
[nvim-treesitter] [0/15] Downloading tree-sitter-typescript...
[nvim-treesitter] [0/15] Downloading tree-sitter-vim...
[nvim-treesitter] [0/15] Downloading tree-sitter-yaml...
[nvim-treesitter] [0/15] Checking out locked revision
[nvim-treesitter] [0/15] Checking out locked revision
[nvim-treesitter] [0/15] Checking out locked revision
[nvim-treesitter] [0/15] Checking out locked revision
[nvim-treesitter] [0/15] Checking out locked revision
[nvim-treesitter] [0/15] Checking out locked revision
[nvim-treesitter] [0/15] Checking out locked revision
[nvim-treesitter] [0/15] Compiling...
[nvim-treesitter] [0/15] Compiling...
[nvim-treesitter] [0/15] Compiling...
[nvim-treesitter] [0/15] Compiling...
[nvim-treesitter] [0/15] Compiling...
[nvim-treesitter] [0/15] Compiling...
[nvim-treesitter] [0/15] Compiling...
[nvim-treesitter] [0/15] Checking out locked revision
[nvim-treesitter] [0/15] Compiling...
[nvim-treesitter] [1/15] Treesitter parser for json has been installed
[nvim-treesitter] [2/15] Treesitter parser for query has been installed
[nvim-treesitter] [3/15] Treesitter parser for regex has been installed
[nvim-treesitter] [4/15] Treesitter parser for help has been installed
        0 file(s) moved.
nvim-treesitter[lua]: Failed to execute the following command:
{
  cmd = "cmd",
  opts = {
    args = { "/C", "move", "/Y", "parser.so", "C:/Users/simsrw73/.local/share/nvim-data/lazy/nvim-treesitter\\parser\\lua.so" },
    cwd = "C:\\Users\\simsrw73\\.local\\share\\nvim-data\\tree-sitter-lua",
    stdio = {
      [2] = <userdata 1>,
      [3] = <userdata 2>
    }
  }
}
Access is denied.
[nvim-treesitter] [6/15, failed: 1] Treesitter parser for yaml has been installed
[nvim-treesitter] [7/15, failed: 1] Treesitter parser for html has been installed
[nvim-treesitter] [8/15, failed: 1] Treesitter parser for bash has been installed
[nvim-treesitter] [8/15, failed: 1] Checking out locked revision
[nvim-treesitter] [8/15, failed: 1] Compiling...
[nvim-treesitter] [8/15, failed: 1] Checking out locked revision
[nvim-treesitter] [8/15, failed: 1] Compiling...
[nvim-treesitter] [8/15, failed: 1] Checking out locked revision
[nvim-treesitter] [8/15, failed: 1] Compiling...
        0 file(s) moved.
nvim-treesitter[markdown_inline]: Failed to execute the following command:
{
  cmd = "cmd",
  opts = {
    args = { "/C", "move", "/Y", "parser.so", "C:/Users/simsrw73/.local/share/nvim-data/lazy/nvim-treesitter\\parser\\markdown_inline.so" },
    cwd = "C:\\Users\\simsrw73\\.local\\share\\nvim-data\\tree-sitter-markdown_inline\\tree-sitter-markdown-inline",
    stdio = {
      [2] = <userdata 1>,
      [3] = <userdata 2>
    }
  }
}
Access is denied.
[nvim-treesitter] [10/15, failed: 2] Treesitter parser for python has been installed
        0 file(s) moved.
nvim-treesitter[markdown]: Failed to execute the following command:
{
  cmd = "cmd",
  opts = {
    args = { "/C", "move", "/Y", "parser.so", "C:/Users/simsrw73/.local/share/nvim-data/lazy/nvim-treesitter\\parser\\markdown.so" },
    cwd = "C:\\Users\\simsrw73\\.local\\share\\nvim-data\\tree-sitter-markdown\\tree-sitter-markdown",
    stdio = {
      [2] = <userdata 1>,
      [3] = <userdata 2>
    }
  }
}
Access is denied.
[nvim-treesitter] [11/15, failed: 3] Checking out locked revision
[nvim-treesitter] [11/15, failed: 3] Checking out locked revision
[nvim-treesitter] [11/15, failed: 3] Compiling...
[nvim-treesitter] [11/15, failed: 3] Compiling...
[nvim-treesitter] [12/15, failed: 3] Treesitter parser for javascript has been installed
[nvim-treesitter] [13/15, failed: 3] Treesitter parser for vim has been installed
[nvim-treesitter] [13/15, failed: 3] Checking out locked revision
[nvim-treesitter] [13/15, failed: 3] Compiling...
[nvim-treesitter] [14/15, failed: 3] Treesitter parser for tsx has been installed
[nvim-treesitter] [14/15, failed: 3] Checking out locked revision
[nvim-treesitter] [14/15, failed: 3] Compiling...
[nvim-treesitter] [15/15, failed: 3] Treesitter parser for typescript has been installed

Disabling telescope customization

I noticed after setting up the the lazyvim starter that my usual mode of starting up nvim and telescoping for a file (nvim -> <leader>ff -> open and edit) was noticeably slower, instead of being instantaneous it took roughly half a second or more before the files showed up in the telescope prompt.

I then noticed that the prompt said Git Files and that the files shown are from the entire git repo and not from the current working directory and down. So I looked around and found that there seems to be a telescope customization for the file search here which toggles between Git Files and Find Files search.

Since I've defined the below keymap in my telescope plugin config I was expecting it to behave as before lazyvim with plain find_files (which is much faster in my case).

    {
      "<leader>ff",
      function()
        require("telescope.builtin").find_files({ hidden = true })
      end,
      desc = "Find Files",
    },

Since the customization of this telescope behavior is "upstream" in lazyvim, is there an easy way for me to disable it from my telescope plugin spec?

bug: leap/flit config issue

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.8.2

Operating system/version

Linux

Describe the bug

Bad UX when doing a dot-repeat motion due to flit.nvim.

If you happen to do a dot-repeat after a motion (see reproduction steps below) it appears as if nvim has frozen. See: ggandor/flit.nvim#13 (comment)

Steps To Reproduce

  1. Open a blank file
  2. Type "delete" on one line. <esc>yypggdtt to delete till letter 't' on first line "delete"
  3. Go to next line and press '.' to repeat on second "delete"
  4. Appears that nvim has frozen, but you can C-c to get unstuck...

Expected Behavior

User is aware that they are in flit mode or maybe make exit it 😕
or https://github.com/tpope/vim-repeat added to dependencies of leap.nvim

Repro

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
	vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
	"folke/tokyonight.nvim",
	"folke/LazyVim",
	{
		"ggandor/leap.nvim",
		lazy = false,
		dependencies = { { "ggandor/flit.nvim", opts = { labeled_modes = "nv" } } },
		config = function(_, opts)
			local leap = require("leap")
			for k, v in pairs(opts) do
				leap.opts[k] = v
			end
			leap.add_default_mappings(true)
		end,
	},
	-- add any other plugins here
}
require("lazy").setup(plugins, {
	root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

bug: autocmds loaded to late if file opened directly `vim README.md`

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.9.0-dev

Operating system/version

Ubuntu 18.04

Describe the bug

While opening a file directly on the command line the autocmds eg. for markdown files are loaded after the file is loaded so they are not "executed". In the case of markdown file the specific settings are not applied(speell/wrap). If the file is opened over the Dashboard the autocmds are "executed" and spell/wrap is set.

Refreshing the file over:e "executes" the autocmds.

Steps To Reproduce

  1. open file directly via vim README.md

  2. check settings for wrap/spell eg echo &spell

  3. close

  4. open vim to be on the dashboard

  5. open the file over f keymap

  6. check settings for wrap/spell

Expected Behavior

autocmds are loaded before the file so that they can be "executed"

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

bug: Load gruvbox colorscheme with options

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.8.2

Operating system/version

Linux 6.1.5-arch2-1

Describe the bug

I-m trying to load the ellisonleao/gruvbox.nvim colorscheme with the options:

return {
  "ellisonleao/gruvbox.nvim",
  opts = {
    contrast = "hard",
    transparent_mode = true,
  },
  config = function(_, opts)
    require("gruvbox").setup(opts)
  end,
}

I set LazyVim to load gruvbox with:

return {
  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = function()
        require("gruvbox").load()
      end,
    },
  },
}

The colorscheme is set to gruvbox but the options aren't taken into account.

Steps To Reproduce

I wasn't able to reproduce the bug using the recommended repro.lua, but if you add the provided plugin spec to a fresh setup of LazyVim the issue is reproducible.

  1. Fresh install LazyVim
  2. Add the provided plugin spec in the ~/.config/nvim/lua/plugins/ folder
  3. Start nvim

Expected Behavior

nvim should start with the gruvbox colorscheme using the configured options, in this case with transparent_mode and using the hard variant. Instead the default gruvbox options are used.

Repro

return {
  {
    "ellisonleao/gruvbox.nvim",
    opts = {
      contrast = "hard",
      transparent_mode = true,
    },
    config = function(_, opts)
      require("gruvbox").setup(opts)
    end,
  },
  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = function()
        require("gruvbox").load()
      end,
    },
  },
}

feature: only_custom_keys

Did you check the docs?

  • I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.

My personal keymap preferences are very different, so i would have to almost disable all keymaps

Describe the solution you'd like

In the configuration, add a custom_keys_only option (for users to put in lua/plugins/*.lua), which will cause the key list to be replaced instead of extended

Describe alternatives you've considered

A global option, but i think per plugin is more appropiate

Additional context

No response

bug: using copilot (or another type of lsp on top of null-ls/lspconfig) can override custom binds for a certain language

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.9.0-dev-588+g99cf11128

Operating system/version

Arch Linux 6.1.4-zen2-1

Describe the bug

cc: @appelgriebsch since I practically use his extras/lang/rust config

If I rebind a key like "K" (hover) to RustHoverActions, copilot calls the regular lsp_attach function and as a result any overridden keymaps like "K" are reset to their original one. Debugged by putting a few vim.notifys, namely in the rust setup here ("rust config loaded"), right before the keymap "Hover" is set here ("keymaps on_attach reached"), and inside the base lsp-config on_attach function here ("client.name = x").

Result is the screenshot below, clearly copilot is the culprit always loading last and resetting the binds. A fix could be to check for the client name inside the on_attach function before setting keymaps, but I'd like a better fix that is in my own config that extends upon LazyVim, so as to not intrude on LazyVim itself with ugly conditional checks 😅

image

Steps To Reproduce

  1. Use copilot
  2. Use an extra lang config that extends on a LazyVim config that overrides a default lsp keybind
  3. Default lsp keybind is set when it should be the overridden one

Expected Behavior

Overridden keybind should be set

Repro

Using appelgriebsch/Nv with copilot added should trigger it

bug: cmp-nvim "<tab>" mapping clashes with luasnip "<tab>" mapping

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.9.0-dev-588+g99cf11128

Operating system/version

ubuntu 22.04

Describe the bug

Mapping the tab key for nvim-cmp does not work correctly (mapping taken from here). It freezes the terminal (most likely an infinite loop of the remap), when it should only indent some text. Completion menu navigation works correctly though.

I've pinned the problem down to this mapping from the default luasnip config:

expr = true, remap = true, silent = true, mode = "i",

More specifically, changing the remap=true option to something else like noremap=true, or deleting it makes things work again.
I'm not sure, if this is actually an issue with nvim-cmp, or a conflicting setting for the luasnip mapping.
Anyway, I guess the fix is easy, unless remap=true has some more specific use-cases?

Steps To Reproduce

  • Wipe nvim/lazy caches
  • Use minimal repro.lua from down below and start with nvim -u repro.lua repro.lua
  • enter insert mode in front of some text
  • press tab -> terminal freezes

Expected Behavior

Well, indenting text...

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here

  {
    "L3MON4D3/LuaSnip",
    dependencies = {
      "rafamadriz/friendly-snippets",
      config = function()
        require("luasnip.loaders.from_vscode").lazy_load()
      end,
    },
    opts = {
      history = true,
      delete_check_events = "TextChanged",
    },
    -- stylua: ignore
    keys = {
      {
        "<tab>",
        function()
          return require("luasnip").jumpable(1) and "<Plug>luasnip-jump-next" or "<tab>"
        end,
        expr = true, remap = true, silent = true, mode = "i",
      },
      { "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
      { "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
    },
  },

  {
    "hrsh7th/nvim-cmp",
    event = "InsertEnter",
    dependencies = {
      "hrsh7th/cmp-nvim-lsp",
      "hrsh7th/cmp-buffer",
      "hrsh7th/cmp-path",
      "saadparwaiz1/cmp_luasnip",
    },
    opts = function()


      local has_words_before = function()
        unpack = unpack or table.unpack
        local line, col = unpack(vim.api.nvim_win_get_cursor(0))
        return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
      end

      local luasnip = require("luasnip")


      local cmp = require("cmp")
      return {
        completion = {
          completeopt = "menu,menuone,noinsert",
        },
        snippet = {
          expand = function(args)
            require("luasnip").lsp_expand(args.body)
          end,
        },
        mapping = cmp.mapping.preset.insert({
          ["<Tab>"] = cmp.mapping(function(fallback)
            if cmp.visible() then
              cmp.select_next_item()
              -- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
              -- they way you will only jump inside the snippet region
            elseif luasnip.expand_or_jumpable() then
              luasnip.expand_or_jump()
            elseif has_words_before() then
              cmp.complete()
            else
              fallback()
            end
          end, { "i", "s" }),
          ["<C-b>"] = cmp.mapping.scroll_docs(-4),
          ["<C-f>"] = cmp.mapping.scroll_docs(4),
          ["<C-Space>"] = cmp.mapping.complete(),
          ["<C-e>"] = cmp.mapping.abort(),
          ["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
        }),
        sources = cmp.config.sources({
          { name = "nvim_lsp" },
          { name = "luasnip" },
          { name = "buffer" },
          { name = "path" },
        }),
        formatting = {
          format = function(_, item)
            local icons = require("lazyvim.config").icons.kinds
            if icons[item.kind] then
              item.kind = icons[item.kind] .. item.kind
            end
            return item
          end,
        },
        experimental = {
          ghost_text = {
            hl_group = "LspCodeLens",
          },
        },
      }
    end,
  },
}




require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

-- add anything else here
-- do not remove the colorscheme!
vim.cmd([[colorscheme tokyonight]])

feature: document how you would load your profile for toggleterm window

Did you check the docs?

  • I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.

When using toggleterm previously I added opt.term = "bash -l" to load my profile and have my own prefs in my toggleterm window. This doesn't seem to work with the LazyVim config so I would like to know how you would do this.

Describe the solution you'd like

When using toggleterm previously I added opt.term = "bash -l" to load my profile and have my own prefs in my toggleterm window. This doesn't seem to work with the LazyVim config so I would like to know how you would do this.

Describe alternatives you've considered

When using toggleterm previously I added opt.term = "bash -l" to load my profile and have my own prefs in my toggleterm window. This doesn't seem to work with the LazyVim config so I would like to know how you would do this.

Additional context

No response

bug: Treesitter ensure_installed="all"

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

0.8.2

Operating system/version

MacOS 13.1

Describe the bug

I think config merge doesn't support strings.

vim/shared.lua:0: dst: expected table, got string

stacktrace:

  • vim/shared.lua:0 in validate
  • vim/shared.lua:0 in list_extend
  • /LazyVim/lua/lazyvim/plugins/extras/lang/typescript.lua:7 in values
  • /noice.nvim/lua/noice/view/backend/notify.lua:154 in _notify
  • /noice.nvim/lua/noice/view/backend/notify.lua:184
  • /noice.nvim/lua/noice/util/call.lua:149 in try
  • /noice.nvim/lua/noice/view/init.lua:136 in display
  • /noice.nvim/lua/noice/message/router.lua:204
  • /noice.nvim/lua/noice/util/call.lua:149
  • /noice.nvim/lua/noice/util/init.lua:108 in ****
  • vim/_editor.lua:0 in ****
  • vim/_editor.lua:0

Steps To Reproduce

Tried with and without curly brackets.

Expected Behavior

Support Treesitter ensure_installed="all"

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

feature: use mason-null-ls.nvim

Did you check the docs?

  • I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.

Null-ls can be automatically setup from mason using this package: https://github.com/jay-babu/mason-null-ls.nvim

Describe the solution you'd like

Be able to have anything supported and installed on mason automatically setup up on null-ls.

Describe alternatives you've considered

This could be done by hand, but I think this package already does a good job.

The other alternative is to just source everything manually in the config file.

Additional context

No response

feature: Adding autocmd for noh instead of keymap so multiple keys can remove search highlights

Did you check the docs?

  • I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.

It's not a problem with LazyVim. It's just a suggestion that might enhance LazyVim I think.

Describe the solution you'd like

This autocmd can remove the search highlights whenever I any keys except that I specify here. so no need to press <Esc> before pressing j,k,l or any other key.

vim.on_key(function(char)
  if vim.fn.mode() == "n" then
    local new_hlsearch = vim.tbl_contains({ "n", "N", "*", "#", "?", "/" }, vim.fn.keytrans(char))
    if vim.opt.hlsearch:get() ~= new_hlsearch then
      vim.opt.hlsearch = new_hlsearch
    end
  end
end, vim.api.nvim_create_namespace("auto_hlsearch"))
return

I'm sure people here know about that, it's just a suggestion (I'm not a software engineer and this wasn't my code, I've seen it in reddit and multiple pre-configs..Astrovim..etc).

It can be added directly, but I can do a PR if you want so.

Describe alternatives you've considered

Despite not implementing it, I still consider LazyVim a greeeeeat one :)

Additional context

No response

bug: No longer displays line numbers when opening a file directly

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.8.2

Operating system/version

MacOS 11.5

Describe the bug

The latest version of LazyVim no longer displays the line numbers to the left of the buffer when opening a file directly from the terminal.

Steps To Reproduce

  1. Go to a directory in the terminal
  2. vim filename directly
  3. There are no line numbers on the left

Expected Behavior

Line numbers would be on the left, just like they are if you open vim and then open a file from within vim.

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

Error executing vim.schedule lua callback

I got this error when using a fresh instance of LazyVim and starting it up. Not sure how to get rid of it.

Error executing vim.schedule lua callback: .../.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/util.lua:145: Vim(append):Failed loading lazyvim.config.keymaps
stack traceback:
        [C]: in function 'cmd'
        .../.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/util.lua:145: in function ''
        vim/_editor.lua: in function ''
        vim/_editor.lua: in function <vim/_editor.lua:0>
Press ENTER or type command to continue

Make diagnostics configurable

  I am a beginner and use Lunarvim but wanted to give LazyVim a try. So this might be obvious but can someone tell me how to disable virtual text.

Also does LazyVim expose a folder for custom snippets where I can just add my snippets like Lunarvim or do I need to set it up all by myself.

Originally posted by @PhosCity in #54

feature: Allow disabling "No information available" when lsp has no definitions.

Did you check the docs?

  • I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.

When multiple LSPs are active for a single buffer, they will all attempt to get information when you trigger a hover. This leads to a single popup of the information you're looking for, with multiple "No information available" popups simultaneously appearing on the top right of the screen.

Describe the solution you'd like

Ideally, if any of the LSPs found a result you will only see the result popup, and no "No information available" messages.

Similarly, if none of the LSPs find a result, you could see a single "No information available" popup.

From what I've gathered its effectively an all or nothing operation, and having zero "No information available" is preferable to a bunch of them, erroneously.

Describe alternatives you've considered

In my old config I had this to globally replace the floating preview for hover.
It would make the hover rounded to better separate it from the buffer, and return early if there were no results.

For some reason this does nothing when set in my LazyVim installation.

vim.lsp.handlers["textDocument/hover"] = function(_, result, ctx, config)
  config = config or {}
  config.focus_id = ctx.method
  config.border = "rounded"
  if not (result and result.contents) then
    return
  end
  local markdown_lines = vim.lsp.util.convert_input_to_markdown_lines(result.contents)
  markdown_lines = vim.lsp.util.trim_empty_lines(markdown_lines)
  if vim.tbl_isempty(markdown_lines) then
    return
  end
  return vim.lsp.util.open_floating_preview(markdown_lines, "markdown", config)
end

Additional context

No response

bug: slow when leaving neovim

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.9.0-dev-5e1687e-dirty

Operating system/version

Arch Linux

Describe the bug

When I leave neovim, it takes so long for neovim to actually stop. Like this:

2023-01-06_09-29-51.mp4

Also, neovim is just generally slow. While I type, it takes a couple of milliseconds to display. Typically, neovim is behind an entire word. Like I finished pressing the keys for the word hello and I'm already typing world and neovim hasn't even displayed the entire word hello.

Steps To Reproduce

  1. git clone --recursive https://github.com/SingularisArt/Singularis ~/Singularis.
  2. mv ~/.config/nvim ~/.config/nvim-back-up
  3. mv ~/Singularis/aspects/nvim/files/.config/nvim ~/.config/nvim
  4. nvim

Expected Behavior

I'm expecting neovim to be very fast, or at least not this slow.

Repro

No response

feature: Add timeout config for `vim.lsp.buf.format`

Did you check the docs?

  • I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.

Some formatters may take more time than the default timeout_ms (1000 ms).

Describe the solution you'd like

Add an option to LazyVim and apply it when calling vim.lsp.buf.format?

Describe alternatives you've considered

The alternative solution maybe let user override vim.lsp.buf.format in their own config.

Additional context

No response

I noticed when trying to set up a lsp server, that could not be installed by mason, that it would not be set up.

  I noticed when trying to set up a lsp server, that could not be installed by mason, that it would not be set up.

It seems that this is due to the use of mason here:

require("mason-lspconfig").setup_handlers({

The setup_handlers method skips any lsp server for which it does not have a package: https://github.com/williamboman/mason-lspconfig.nvim/blob/a910b4d50f7a32d2f9057d636418a16843094b7c/lua/mason-lspconfig/init.lua#L40

So, the servers and setup are ignored for servers unrecognized by Mason.

This is a small nuisance, but it would be nice if these servers could be set up in a similar manner. :)

Originally posted by @MikaelElkiaer in #94

feature: allowing users to turn on/off submodules

Did you check the docs?

  • I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.

Currently users can only specify a single plugin directory, under which all submodules are loaded, I use my personal config as an example:

...
│   ├── modules
│   │   ├── base
│   │   │   ├── configs.lua
│   │   │   └── init.lua
│   │   ├── completion
│   │   │   ├── configs.lua
│   │   │   ├── init.lua
│   │   │   └── snippets
│   │   │       ├── cpp.lua
│   │   │       └── markdown.lua
│   │   ├── lsp
│   │   │   ├── configs.lua
│   │   │   ├── init.lua
│   │   │   └── lsp-server-configs
│   │   │       └── sumneko_lua.lua
│   │   ├── markup
│   │   │   ├── configs.lua
│   │   │   └── init.lua
│   │   ├── misc
│   │   │   ├── configs.lua
│   │   │   └── init.lua
│   │   ├── tools
│   │   │   ├── configs.lua
│   │   │   └── init.lua
│   │   ├── treesitter
│   │   │   ├── configs.lua
│   │   │   └── init.lua
│   │   └── ui
│   │       ├── configs.lua
│   │       └── init.lua
...

with this structure, if I setup Lazy with require('lazy').setup('modules'), all submodules (i.e., base, completion, lsp, etc) will be taken into consideration, which is great, but when nvim is used as an embedded editor in vscode, I would like to enable only a few modules, in which case it would be convenient to set Lazy with:

require('lazy').setup({
    'modules.base',
    'modules.misc',
    'modules.treesitter',
})

Describe the solution you'd like

See above

Describe alternatives you've considered

See above

Additional context

No response

help about configuration

Hello.
The following isn't an issues, just a help like on a forum. I could have posted on a forum (for example of my GNU/Linux distribution) or on Reddit Neovim, but if they don't use LazyVim it's time wasted.
I've just installed LazyNvim (good work, thank you, I really like it). I don't know Lua language, nor Neovim enough because I migrated from Vim a few days ago.

I have some file written in vimscript. Where can I put these files to be loaded from lazynvim? If I put a plugin file 'foo.vim' in the '.../lua/plugins' directory, it doesn't work.

I want to disable 'witch-key' plugin, so I added it to "disable_plugin" array within '.../lua/config/lazy.lua' file. How can I see all the plugins?

Sometimes, I got messages like:

- Failed (18)
  cmp-buffer	fetch failed
    fatal: unable to access '.../cmp-buffer.git/': Could not resolve github.com
  lualine.nvim	fetch failed
  [...]

How fix these manually?

I'm using:
NVIM v0.9.0-dev-710+gef89f9fd46
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3

Thank you.
Kind regards

nvim crash by whichkey

Hello, try the following:

  • open a file
  • press leader (space) (whichkey is opening)
  • wait a bit (1sec)
  • press "f"

my NVIM v0.9.0-dev crashes after these steps. If i am fast enough and can press "leader + ft" really fast then neo-tree can open.

bug: Opening nv then hitting <leader>qs very fast results in the opened buffer not having any highlights/colors?

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

v0.9.0-dev-588+g99cf11128

Operating system/version

Arch Linux 6.1.4-zen2-1

Describe the bug

Open a project you've edited before with this spec, restore session with qs as fast as you can, you'll see sometimes the opened buffer will be all white text, which can be fixed with :e. I have no idea how to go about debugging this, nor is this really an issue as it's rare I restore a session that fast to begin wtih.

Steps To Reproduce

  1. Open neovim
  2. qs or require("persistence").load() (impossible to be fast enough without a bind)
  3. voila

Expected Behavior

Syntax highlighting is ok

Repro

Used your dots for nvim to check if it was just mine, that also has an issue, so not sure if it's from the dots or LazyVim.

bug: fail to jump to next LSP warning

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

v0.9.0-dev-771+g18fb669b9b

Operating system/version

Arch linux

Describe the bug

We have a default keymap to jump to next LSP warning

{ "]w", M.diagnostic_goto(true, "WARNING"), desc = "Next Warning" },

But according to my test, we will jump to every diagnostic using this keymap including info, warning , error etc.

Steps To Reproduce

open nvim with LSP, then press ]w

Expected Behavior

Only jump to next warning, like ]e only jump to next error

Repro

default configuration

feature: Consider `BufNewFile` as indentlines and other related plugins

Did you check the docs?

  • I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.

When I open a new file, I have to save it, quit it, and open it again so that NVIM loads the required plugins for me.

Describe the solution you'd like

It would be great if plugins like indent lines and LSP start working directly on creating a new file. For the indent lines, LSP, and similar plugins, adding a BufNewFile would be enough I guess.

Describe alternatives you've considered

Currently, I quit nvim and reopen it.

Additional context

No response

help pls

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

latest

Operating system/version

win 10

Describe the bug

this comes up when i try to open nvim
Screenshot 2023-01-23 134124

Steps To Reproduce

instakll nvim
move all the starter files to ..\appdata\local\nvim

Expected Behavior

for it to work

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

bug: Bufferline does not load if multiple files are open on init

Did you check docs and existing issues?

  • I have read all the LazyVim docs
  • I have searched the existing issues of LazyVim
  • I have searched the exsiting issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.8.2

Operating system/version

6.0.12-arch1-1

Describe the bug

Opening two or more files at init with LazyVim's default config results in a missing bufferline. This is because the BufAdd event only fires for buffers added during runtime, not at init. Relatedly, the bufferline still does not open when navigating these buffers, as this does not fire BufAdd.

To fix this, you'd probably have to use the VeryLazy event instead of BufAdd.

  • The other events (BufEnter, BufLeave) don't guarantee that two or more buffers are open, so we can't catch this on the rebound if the user were to switch among their open buffers in this state.
  • There's no event to tell if two or more files are open at init
  • You can check the number of active buffers and load the plugin yourself, but this is very not lazy.

Steps To Reproduce

  1. nvim file1 file2
  2. Observe bufferline does not open

For comparison:

  1. nvim file
  2. :e file2
  3. Observe opened bufferline

Expected Behavior

Bufferline should load if buffers are opened at init

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")
-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/LazyVim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

feature: Disable autoformat when saving file.

Did you check the docs?

  • I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.

Thanks for all your work, with this repo I have completely moved away from vs-code.
I like the auto-format on save function and I still want it to be default. But it would be convenient to be able to quickly toggle the function. There is probably a way to disable for "*.json" for example, but this would not help my workflow.
Is there a quick way to toggle this function?

Describe the solution you'd like

A toggle function for enable/disable auto-format on save.

Describe alternatives you've considered

:set eventignore=BufWritePre

Additional context

No response

feature: border of float term

Did you check the docs?

  • I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.

No

Describe the solution you'd like

add a border of float_term, with the same options as lazy.nvim

Describe alternatives you've considered

maybe raise this request at lazy.nvim repo?

Additional context

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.