Skip to content

Latest commit

 

History

History
76 lines (66 loc) · 5.3 KB

README.md

File metadata and controls

76 lines (66 loc) · 5.3 KB

Nvchad config C++

What is it?

It's my config for NvChad with orientation to C++ and python.

How to use it?

Install neovim ( google it if you don't know how )

If you are on linux:

  • In a console: git clone https://github.com/Gerodote/Nvchad_config_cpp.git --branch master ~/.config/nvim

If another operational system:

  • check where neovim config is usually located and change the last part of the command for linux.

Then maybe type :MasonInstallAll

Then maybe type :Lazy and update all packages using <shift>u keybindging.

To get some plugins working, which are written in some other languages than lua ( aka remote plugins ), do next stuff:

  • :runtime! plugin/rplugin.vim
  • :UpdateRemotePlugins
  • restart neovim

Is it good?

It's have clangd through Mason, cmake plugin, cmake debugger, c++ debugger, python debugger, some keybindings. In general, it's great to use.

TODO

  • Find a good solution for .ipynb files.
  • migrate to nvchad v2.5
  • Debugger stuff. Console GDB/LLDB is cool, but some want it inside editor...
    • CMake debugger in neovim !!! CMake Generate (<leader>G), toggle a breakpoint (<leader>b), press Continue(<F5>), it works! Prerequisite: cmake is 3.27+ and is compiled with dap feature. (for gentoo users flaggie dev-build/cmake +dap).
      • build folder is taken from cmake plugin
        • (Resolved) is taken at the initialization of neovim. Changed build dir? Right now only restart neovim.
      • (Resolved) it doesn't take generate_options from :CMakeSettings.
    • c++/c/rust debugger : press CMake debug (<leader>cd), enjoy
      • codelldb by default is taken from meson. So, generally, no manual typing pathes
      • how to go through asm instructions? seems that codelldb doesn't support it, or my experimental mapping doesn't work.
      • how to place breakpoint at main, if executable is compiled with -g0 ? In raw gdb or lldb it's possible.
    • nvim-dapui is connected
      • added bindings for opening(<leader>do) and closing (<leader>dc) nvim-dapui .
    • nvim-dap-ui and cmake-tools are added at startup, not lazy.
      • for cmake stuff find out how in lazy package manager load it if project folder has CMakeLists.txt . Investigation.
      • for dap stuff should be loading by certain keymappings, though idk how exactly now. Investigation.
    • where's python debugger?
      • added debugpy through mason and copy pasted config for it with slight changes
      • toggle breakpoint, <F5>, wooalla
  • More keybindigs for some plugins
    • dap related
    • telescope related
    • gitsigns related
  • tmux navigator. Added keybindings for it. Ctrl+hjkl for navigating + tmux integration!!!
  • added CodeCompanion plugin. Do you have ollama installed? Do you have a self-deployed AI ? This plugin is for you
    • check next stuff to specify what model to use, if it's self-deployed: here
    • still no shortcuts. :CodeCompanion will give you options to use.
  • Find out if there's a way to turn on less plugin not lazily. Investigation
    • ft for some plugins works, for some not, idk why0
  • Added rcarriga/nvim-notify. Good looking plugin.
  • Find a plugin for cool command palette
    • hachy/cmdpalette.nvim doesn't support ranges and feels not so good
    • gelguy/wilder.nvim seems to be a little bit unmaintained (my pain at installing it). UPD: it's still is too buggy, and most important: it's slow. It's using python behind in sync way and on my pc it feels so badly sometimes... Maybe this plugin should be rewritten to lua or C/C++/Rust/Go/whatever_language ?
      • has some problems with config portability?
    • VonHeikemen/fine-cmdline.nvim doesn't support ranges
    • mrjones2014/legendary.nvim seems to not have ability to somehow get commands from everywhere like :Telescope commands , though looks cool. Doesn't support ranges.
  • Find out how to put more snippets and put them from somewhere. Investigation.
  • Find a good alternative to :s.
  • Allow more diversity of folder structures for include-guard plugin. Now only works if there's src in a path to a file.
    • Rewrite plugin to lua and use neovim's API?
    • Actually there's a snippet #guard.