This is a fork of https://github.com/LunarVim/nvim-basic-ide with some extra features, mappings and with updated dependencies
For the setup the following requirements are needed
- Neovim >= 0.9.0
- Git
- a terminal that support true color and undercurl, Kitty for macOS/Linux and for windows Windows terminal
- a Nerd Font
- a C compiler for
nvim-treesitter
. See here - Ripgrep for live search github
- Fd for finding files github
Installation for windows
Run the following commands:
winget install -e --id Microsoft.WindowsTerminal
winget install --id=Neovim.Neovim -e
winget install --id=sharkdp.fd -e
winget install --id=BurntSushi.ripgrep.MSVC -e
For a nerdfont download it from their webpage Nerd Font jetbrainsmono or firacode are recommended, install the font and then in windows terminal settings set the font.
warning for the font set the non mono version as those include the icons with the correct size, for example do not install jetbrainsmono mono, instead install jetbrainsmono.
For the C compiler llvm-mingw will be needed it can be obtained here
unzip in a folder then add the bin folder to the path
For MacOS:
brew install neovim
#TODO
Make sure to remove or backup your current nvim
directory
clone the repo in the AppData/Local/nvim folder for windows or in the ~/.config/nvim for Unix based Os
git clone https://github.com/Pineappletooth/pineapple-neovim-config.git ~/.config/nvim
Run nvim
and wait for the plugins to be installed
NOTE (You will notice treesitter pulling in a bunch of parsers the next time you open Neovim) if not use :TSUpdate
NOTE Checkout this file for some predefined keymaps: keymaps
Open nvim
and enter the following:
:checkhealth
If there are no errors here everything is good
To add a new LSP
First Enter:
:Mason
and press i
on the Language Server you wish to install
Next you will need to add the server to this list: servers Note: Builtin LSP doesn't contain all lsps from nvim-lspconfig.
If you want to install any from there, for example terraform_lsp(which adds more functionality than terraformls, like complete resource listing),
- You can add the lsp name in mason lsp block
-- lua/utils/init.lua
M.servers = {
"lua_ls",
"cssls",
"html",
"tsserver",
"pyright",
"bashls",
"jsonls",
"yamlls",
"terraform_lsp" -- New LSP
}
- Manually install the binary of the lsp and put it in your path by downloading the binary or through your package manager. For terraform_lsp example
Make sure the formatter or linter is installed and add it to this setup function: null-ls
NOTE Some are already setup as examples, remove them if you want
You can install new plugins here: plugins
Heres the wiki for installing new plugins refer to this: wiki
- alpha-nvim
- bufdelete.nvim
- bufferline.nvim
- cmp-buffer
- cmp-nvim-lsp
- cmp-nvim-lua
- cmp-path
- cmp_luasnip
- Comment.nvim
- DAPInstall.nvim
- friendly-snippets
- gitsigns.nvim
- indent-blankline.nvim
- lazy.nvim
- lualine.nvim
- LuaSnip
- mason-lspconfig.nvim
- mason.nvim
- null-ls.nvim
- nvim-autopairs
- nvim-cmp
- nvim-dap-ui
- nvim-dap
- nvim-lspconfig
- nvim-tree.lua
- nvim-treesitter
- nvim-ts-context-commentstring
- nvim-web-devicons
- plenary.nvim
- project.nvim
- telescope.nvim
- toggleterm.nvim
- tokyonight.nvim
- vim-illuminate
- which-key.nvim
- TODO: needs update
The computing scientist's main challenge is not to get confused by the complexities of his own making.
- Edsger W. Dijkstra