CosmicNvim is a lightweight and opinionated Neovim config for web development, specifically designed to provide a 💫 COSMIC programming experience!
Full featured native LSP functionality!
- 📘 Go-to definition
- 🔍 Find references/type def/declaration
- 💡 Code actions
- 🚨 Statusline diagnostics
- 🔧 Formatting/linting thanks to null-ls
- Custom rename and code action popups via Cosmic-UI
- Amazing default theme via tokyonight.nvim
- Enhanced syntax highlighting via nvim-treesitter
- Dashboard via dashboard-nvim
- Hand-built statusline via galaxyline
- Explore files via nvim-tree
- Fuzzy finder via Telescope
- Floating terminal with vim-floaterm
- Auto LSP installation via nvim-lsp-installer
- Autocompletion via nvim-cmp
- Additional TypeScript support via nvim-lsp-ts-utils
- Snippet support via LuaSnip
- Session management via auto-session
- Notifications via nvim-notify
- Additional custom highlighting
- Floating windows for references, renaming, diagnostics, code actions and more!
While CosmicNvim is geared specifically toward TypeScript/JavaScript development, it should be able to provide a great experience with any LSP supported language.
- Neovim (+0.8.0)
- Node.js
- prettierd (for prettier formatting w/null_ls, optional)
- eslint_d (for eslint w/null_ls, optional)
# move to config dir
cd ~/.config
# back up current config
cp -r nvim nvim.backup
# clone repository
git clone git@github.com:CosmicNvim/CosmicNvim.git nvim
# open nvim and install plugins
nvim +CosmicReloadSync
Additional CosmicNvim installation details.
Additional LSP server installation details.
CosmicNvim uninstallation details.
CosmicNvim comes with first-class support for the following themes:
- Catppuccino
- Dracula
- Enfocado
- Github
- Gruvbox
- Kanagawa
- Monokai
- Nightfox
- Nord
- Onedark
- Rose-pine
- Tokyonight
:CosmicUpdate
By default, this will assume the Cosmic git directory is placed at vim.fn.stdpath('config')
, i.e. ~/.config/nvim
.
Otherwise, you may define the shell environment variable COSMICNVIM_INSTALL_DIR
.
:CosmicReloadSync
Useful for testing themes or plugins on the fly!
:CosmicReload
Useful for non-plugin related changes such as editor settings or mappings.