Coder Social home page Coder Social logo

example_config's Introduction

NvChad

Neovim Minimum Version GitHub Issues Discord Matrix Telegram

Showcase

What is it?

  • NvChad is a neovim config written in lua aiming to provide a base configuration with very beautiful UI and blazing fast startuptime (around 0.02 secs ~ 0.07 secs). We tweak UI plugins such as telescope, nvim-tree, bufferline etc well to provide an aesthetic UI experience.

  • Lazy loading is done 93% of the time meaning that plugins will not be loaded by default, they will be loaded only when required also at specific commands, events etc. This lowers the startuptime and it was like 0.07~ secs tested on an old pentium machine 1.4ghz + 4gb ram & HDD.

  • NvChad isn't a framework! It's supposed to be used as a "base" config, so users can tweak the defaults well, and also remove the things they don't like in the default config and build their config on top of it. Users can tweak the entire default config while staying in their custom config (lua/custom dir). This is the control center of the user's config and gitignored so the users can stay up-to-date with NvChad's latest config (main branch) while still controlling it with their chadrc (file that controls entire custom dir).

Theme Showcase

Images (Click to expand!)

4 themes radium 1 radium 2 radium 3

(Note: these are just 4-5 themes, NvChad has around 56 themes)

UI related plugins used

Images (Click to expand!)

Nvim-tree.lua

Fast file tree:

Telescope-nvim

A fuzzy file finder, picker, sorter, previewer and much more:

Our own statusline written from scratch

NvChad UI

Tabufline (our own pertab bufferline)

  • Here's a video that showcases it.

NvCheatsheet ( our UI Plugin )

Plugins list

History

  • I (@siduck i.e creator of NvChad) in my initial days of learning to program wanted a lightweight IDE for writing code, I had a very low end system which was like 1.4ghz pentium + 4gb ram & HDD. I was into web dev stuff so many suggested me to use vscode but that thing was very heavy on my system, It took more ram than my browser! ( minimal ungoogled chromium ) so I never tried it again, sublime text was nice but the fear of using proprietary software XD for a linux user bugged me a lot. Then I tried doom-emacs which looked pretty but it was slow and I was lost within its docs, I tried lunarvim but too lazy to read the docs. Doom-emacs and lunarvim inspired me to make a config which is the prettiest + very fast and simple.

  • I'm decent at ricing i.e customizing system and making it look pretty so I posted my neovim rice on neovim subreddit, my neovim-dotfiles github repo blew up and then I had to come up with a name, I was amazed by the chad meme lol so I put NvChad as the name, the chad word in here doesnt literally mean the chad guy but in the sense such as chad linux vs windows i.e meaning superior, best etc. NvChad was made for my personal use but it gained some popularity which inspired me to make a public config i.e config usable by many and less hassle to update as everyone's going to use the same base config (NvChad) with their custom modifications (which are gitignored so that wont mess up), without the custom config stuff users would have to keep a track of every commit and copy paste git diffs to manually update nvchad.

💝 Support

If you like NvChad and would like to support & appreciate it via donation then I'll gladly accept it.

kofi paypal buymeacoffee patreon

Credits

  • Elianiva helped me with NeoVim Lua related issues many times, NvChad wouldn't exist without his help at all as he helped me in my initial neovim journey!
  • @lorvethe for making the beautiful NvChad logo.

example_config's People

Contributors

a-b avatar ambaradan avatar anosillus avatar guillenotfound avatar lucario387 avatar raulbethencourt avatar relepega avatar siduck avatar switch1220 avatar w7shdev 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

example_config's Issues

F# language support

This might be the wrong place to ask for help but it involves several open-source projects so here is where I likely get help.

Long story short: I want a working formatter (and perhaps a linter) for F#.

Longer versions:

Please have a look and see if you, the nvchad community, can help.

jsonls example

Would it be possible to jsonls setup example in extras? ;)

Move from v1.0 syntax to v2.0

Old:

["plugin"] = {
  override_options = ...,
}

New:

{
  "plugin",
  opts = ..., -- equivalent to old `override_options`
}

There isn't an exact key that will do what rm_default_opts = true do, so the example below is how to do the same thing with the new syntax

{
  "some default plugins of NvChad",
  events = function() return {"VimEnter"} end, -- remove all events, and set a new one 
  init = function() return end, -- remove default func to do onstartup
  opts = function() return end, -- remove all default opts for a plugin
  keys = function() return {"k"} end, -- remove all keybinds defined by NvChad, and add your custom ones
}

For dependencies, it's much harder (but for the better) to remove the defaults, you will need to have a table like the example below inside your custom.plugins to remove it

{
  "some dependencies"
  enabled = false, 
}

Migrate from packer:

https://github.com/folke/lazy.nvim#-migration-guide

Example Config Doesn't Work Out of Box

I'm trying learn nv chad and set up a clean install. I wanted to use this to kickstart lsp and other customizations, and I cloned this into the lua/custom directory. When doing a packersync I get the following error:

image

but not sure how to debug. Hoping someone can point me in the right direction.

TY

Formatting and Floating Diagnostic don't work in Python in NvChad 2.0

Neither <leader> + f or <leader> + fm works for Python under NvChad 2.0
Both of them work in other languages I've tried in 2.0 and Python under NvChad 1.0.

When <leader> + f in a python file, 2.0 gives me

        a  ->  find all         o  ->  find oldfiles
        b  ->  find buffers     w  ->  live grep
        f  ->  find files
        h  ->  help page

While <leader> + fm gives nothing.

Here is my custom directory.

opts = {} instead of config = true

I've seen config = true in some extra plugins. Shouldn't we replace it by opts = {} -- merge your opts here to allow merging custom configs with defaults ?
Ref:
image

Java setup

How can I setup java to work with nvchad?

enable all extras

I'm a lua/neovim noob.

Currently, to enable an extras plugin, you have to add an import line at the end of plugins.lua

What lua code could I add to the end of plugins.lua to automatically import all extras plugins without having to do it one by one?

A variant I would also like is:

if [ file in extras has a suffix of disabled, eg. trouble-disabled.lua];
then
  don't import
else # file is eg. trouble.lua
 automatically import
fi  

Thanks.

How can i add custom Key Mappings for nvim-tree

Hey there

in my current (non-NV-Chad) config I configure custom key binding for nvim-tree like this:

local status_ok, nvim_tree = pcall(require, "nvim-tree")
if not status_ok then
  return
end

local config_status_ok, nvim_tree_config = pcall(require, "nvim-tree.config")
if not config_status_ok then
  return
end

local tree_cb = nvim_tree_config.nvim_tree_callback

nvim_tree.setup {
  view = {
    width = 30,
    side = "right",
    hide_root_folder = true,
    mappings = {
      list = {
        { key = { "l", "<CR>", "o" }, cb = tree_cb "edit" },
        { key = "h", cb = tree_cb "close_node" },
        { key = "v", cb = tree_cb "vsplit" },
      },
    },
  },
}

How can i use the nvim-tree-config callbacks in the custom NvChad config?

Thank you for your help!!

Why is prettier only working with certain filetypes?

It's confusing: Why is it only working with these file types? Can't it work with javascript, typescript and jsx/react?

from the code
b.formatting.prettier.with { filetypes = { "html", "markdown", "css" } }, -- so prettier works only on these filetypes

Question about plugins in v2.0

In v1.0 I installed numirias/semshi like

  ["numirias/semshi"] = {
    ft = 'python',
    config = 'vim.cmd [[UpdateRemotePlugins]]',
  },

In v2.0 I attempted

{
    "numirias/semshi",
    ft = 'python',
    config = 'vim.cmd [[UpdateRemotePlugins]]',
}

but it complains

Cannot assign `string` to `fun(_: LazyPlugin, opts: table)|true

What is the 2.0 way of achieving the same thing?

How featureful should the "featureful" branch be?

tl;dr: There is another branch in example_config, named "v2.0_featureful". I want to make it like how the name suggests, "featureful"
Just wondering, Idk how many plugins i should add, which i should add, and so on

Edit (5月15日): Feel free to create PRs to add plugin supports

Would you guys like to have mason-lspconfig in example config

Pros:

  • Won't affect startuptime (load after "UIEnter")
  • make it easier to set up lsp

Cons:

  • Will need to remove nvchad mason/lspconfig setup to ensure load order
  • It is another plugin :)
  • Will have some impact if you download a bunch of thing on first install of example config tho :?

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.