NVChad has had some breaking changes since this video! It's recommended to using the v2.0 branch instead for this video. I'll be doing an updated version of this video again soon!. git clone -b v2.0 github.com/NvChad/NvChad ~/.config/nvim --depth 1
@@ryancloud-r9c thank you! Yeah I'm leaning towards a from scratch course / video. Currently playing with some ideas of how I can differentiate it from other ones but I think I have an idea!
You can also install the go formatters using Mason, by adding `golines` `goimports` etc to your mason ensure_installed table. Shout out to @dattien6212 for this suggestion.
This is just what ive been looking for. Thank you very much for this awesome content! Comming from 3 years of vscode, setting up neovim from scratch was pretty challenging specially because id never spoke lua before. Thanks! :wq
I'm just starting with nvim and as someone who doesn't know a lot of lua, or nvim config, your video helped a ton. It was one of the most simple setups to quickly get started with go. Thanks man, keep up the good work.
Great video. It's going to take me a while to modify my config on top of nvchad default and the plugin ray-x/go.nvim to make things work well, but you showed me how to do something that was bothering me a ton. I think it would be good to show I to do formatting without more that gopls, for people like me wants to use as less plugins as possible until they get a good understanding on the basics. Thanks!
First of all, great video!! I'm also using NvChad thanks to you, you have freed me from using the old 'vi" for years. I just have one problem with NeoVim which is Lua. For instance, how would the final configuration be, if I wanted to merge the Rust configuration you made previously, with this one? I think you could make a video on this, or a shorts, after seeing people here on this comment section asking for more languages. Lastly I found a typo on the splits for the "Debugging" section. Thanks for the time and effort making very high quality content.
Thank you for the feedback! And for spotting the typo. As for merging, you should just be able to apply the same process but just add the additional fields, rather than replacing anything. i.e. for mason ``` ensure_installed { "rust-analyzer", "gopls" } ``` and for the lsp you'd have two entires, one for lspconfig.gopls and one for lspconfig.rust_analyzer. A short is a great idea! I may also set up a website with an faq as well.
Great video! Learn a ton and got a great neovim env for Go! One thing though, looks like gopls doesn't have the completeUnimported option anymore (4:02) and the behavior is there by default now.
Now that null-ls is a public archive and no longer maintained, do you plan to redo your series of setups that use null-ls? It's a shame it was archived but here we are. For this series, we could use mason to install the formatting tools and then, for example, when using lspconfig, just pass the gofumpt setting to gopls. just a thought :) thanks for the great series of setup videos!!
@@dreamsofcode that's great to hear. yeah i was looking at none-ls and was going to attempt the drop-in and go from there :) looking forward to the redo. thank you for all of your hard work, it's appreciated.
2:03 how do you enter newline between that curly braces in Vim? My way is press “i” and then press “enter” to do that. But it seems like you are still in Normal mode doing that. How? This is my first time using Vim 🙏
I friends ty for your video, i'm trying to install nvchad like you install in this video but that's not work, I'm required to install the version 0.9.0 because i have for now the 0.9.5 for work or that's work with all version of neovim ?
This is amazing! Would like to see a setup for python as was a lot more work (at least for me). Ruff seems promising. Edit: found your python video. Thanks!
nvim its really so hard... what is good in ide? its work right here right now. For beginner trying to nvim is nightmare does it works on mac? I got this error with debug Error on launch: Failed to launch: could not launch process: can not run under Rosetta, check that the installed build of Go is right for your CPU architecture
Nice video! I have a question since I watched the NvChad video. Is there a way to execute the various installs/updates through NvChad o masoninstall from command line? I wrote an ansible playbook for some configs in vim and nvim and I wanted to install all through that
Hmm that's a good question. I'm sure there is but I'll have to dig it. I just tend to use git to manage my config. Mason itself can be used more than I'm using in the video, which is my mistake!
hello, thank you for the video, you've earned yourself a subscriber! I'm getting started with NvChad and having some difficulty understanding how the config works. Could you help me please? 1. in 9:49, we use init field for loading key mapping for nvim-dap but config field for loading key mapping for dap_go, why is that? 2. Is this the preferred way for setting keybinding for nvChad? Also, I can’t see how load_mappings is linked to fetching the table from mappings.lua to get the key mapping 😅 Thank you so much for your help!
I use a lot the rename identifiers with f2 (using :%s/aa/bb/g is not the same). is there a similar function? Also generate unit test and the "extract function" from the selection of a block of code.
Amazing video! I'm eager to try it out and add my own plugins / customizations. I even managed to get a grasp on Lua configuration on nvchad, i was working from a sample config and i found it a bit hard. I'd like to see some setups on other programming languages, i love adding them to my developer toolkit. What about python? Ruby? Keep up the good work!
You see that red line error that the LSP gives when you make an error, is there a way to give it a max charecter limit for example for each 30 charecter make a new line
Still install it using mason but it's a great question on what to use next. I'll probably do a video on the right option when one appears! In the next video on the series I'm going to look at a couple of options for it
Man, you make it look so simple. I'm struggeling to wrap my head around all of this stuff. Between `zero-lsp` `lspconfig` `null-ls` its all just a confusing mess. The documentations are either none existing, to sparse or to detailed for my ADHD brain to handle. nvChad puts its own config layer on top of all of that and provides no usable documentation either. (Although their Website looks pretty, I'll give them that) I was able to follow your Video until the "Auto Format on Save" part. that one just does not want to work. No errors, nothing. Functions and go packages are installed. Running the :lua vim.lsp.buf.format() command by hand works fine too. In addition some of my projects need specific build flags. how can I set these on a per Project basis? I'm concidering going back to VSCode but their VIM-Support sucks. Maybe learning VIM was a mistake after all. Sorry for crying my heart out. I've wasted all day. trying to make this somehow work and I just don't want anymore.
What is your perfect terminal emulator? Looks so nice. I'm on macos and use warp (yeah I know telemetry etc, but this is so beatyful), but looking some for backup.
I use Alacritty! Warp does look nice but as you mentioned. I've just picked up a Mac for creative work so may give warp a little try. I have alacritty on it currently however.
This is perfect, I was really struggling with SpaceVim... Now, I tried it on a M1 and while it seems that everything's setup the same, when opening a go project it says that the LSP is not attached to the buffer, but it reports all of the configurations correctly and the LSP works perfectly with Lua. Has anyone experienced the same?
hi! how can i setup goimports-reviser to delete unused imports? the mentioned config doesn't do this, maybe at my case however i tried to write, rewrite and simply copy-paste the whole config and tried to add `null_ls.builtins.formatting.goimports_reviser.with({ args = { "-rm", "unused", "$FILENAME" }, })` to the custom/configs/null-ls.lua file but it didn't work too. i'll appreciate any advice. thanks!
Great video, I have one issue though, for tag adds, I keep getting struct not found even though there are structs defined and the cursor is on them, could you maybe help me out or point me in the right direction? thanks
Excellent videos, when I am using the nvim-dap-go, I found that if there is an error in the test function, the debugger exits without showing the error message. Have you encountered the same problem before?
Let's say that I have a function f, which has an error, that could be fixed by a blank import. When I run test code for f, I expect the test to fail and produce an error message related to the error of f, but when I ran the test code, it just silently ended, no error messages or no signs. `result, err := f(...)`, there is something in `err` and I call log.Fatal(..., err), but there is no log showing. @@dreamsofcode
For some reason, auto save doesn't work in my case, I will get back here if it works, I literally copied everything from the config and it still doesn't auto format on save :(
@@dreamsofcode I will just copy paste everything from your repo, since I already have some plugins beforehand - been using nvchad for some time now, but I am programming mainly in go now. Thank you for answer
Running into some issues while installing gopher.vim, In the video you have code below, which when I run nothing happens, gopher is not installed config = function(_, opts) require("gopher").setup(opts) end, However in your repo you've add an addition require line below,, which throws a nil error. config = function(_, opts) require("gopher").setup(opts) require("core.utils").load_mappings("gopher") end What I'm I missing? Everything else works fine.
That additional line is for loading the custom mapping. If you jump over to my discord I can help take a look. Also you can reference my Neovim config in the description
in my case it works when you write some code and wants to use unimported package you simply start write its name where you want to use its function and gopls will suggest you with this package in autocomplete dropdown. if you accept this suggestion by pressing enter - gopls will import this package for you
I've tried doing a clean install of NvChad and I keep running into the same issue: Mason doesn't have any of the golang formatters listed. When I try to run the install at 2:33, it gives me a error saying that it can't find those packages. "spawn: go failed with exit code - and signal -. go is not executable" Any advice?
@@dreamsofcode Oh, that might be why! I've got golang installed because I build sites through Hugo. I'd be more than grateful if you give me a hand on Discord!
even though nvim is super fast why your video is so fast? why can't you slow down a bit and give viewers a chance to at least read the commands you are typing. Or you just want to show off?
Can someone say why there's no autoimport? Doesn't null_ls.builtins.formatting.goimports_reviser shouldn't do that? Also autocomplete and formatting is not working in .tmpl files (i have 0 clients attached to tmpl file in LspInfo - no gopls, html or emmet_ls). Someone pls help :)
@@dreamsofcode Thanks for help - goimports works. Do You have any solution to emmet_ls or gopls in .tmpl files? I am not able to attach any of these servers to .tmpl files
@@dreamsofcode Just a suggestion but i think you should turn this into a series, you could make setups for other languages and i know a LOT of developers would thank you for this. Keep up the amazing work!
@@Redyf That's a great suggestion. It's certainly becoming a series already. Do you think I should keep the title structure? Perhaps if I set up a playlist that will help serialize it.
@@dreamsofcode Ty so much, I could be able to debug my app using dlv with dap, but on my local machine, on the docker I could not. It seems something related do the debug symbols, because I can connect to the remote delve, but cannot make breakpoints (break) :( Ps. used the -gcflags=all="-N -l" to generate the symbols
@@guitaripod You absolutely can compound them! I may have to do a quick video on how to do that, but that is the idea behind the series :). The only change I'd make is to try and use `null-ls` with Rust as well, which I couldn't get working the first time. I'll probably need to do a quick video on this.