💫 CosmicNvim
CosmicNvim is a lightweight and opinionated Neovim config for web development,
specifically designed to provide a 💫 COSMIC programming experience!
## 🚀 Stellar Features
### Native LSP
Full featured native LSP functionality!
- 📘 Go-to definition
- 🔍 Find references/type def/declaration
- 💡 Code actions
- 🚨 Statusline diagnostics
- 🔧 Formatting/linting thanks to [null-ls](https://github.com/jose-elias-alvarez/null-ls.nvim)
#### Additional features
- Custom rename and code action popups via [Cosmic-UI](https://github.com/CosmicNvim/cosmic-ui)
- Amazing default theme via [tokyonight.nvim](https://github.com/folke/tokyonight.nvim)
- Enhanced syntax highlighting via [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
- Dashboard via [dashboard-nvim](https://github.com/glepnir/dashboard-nvim)
- Hand-built statusline via [galaxyline](https://github.com/CosmicNvim/galaxyline.nvim)
- Explore files via [nvim-tree](https://github.com/kyazdani42/nvim-tree.lua)
- Fuzzy finder via [Telescope](https://github.com/nvim-telescope/telescope.nvim)
- Floating terminal with [vim-floaterm](https://github.com/voldikss/vim-floaterm)
- Auto LSP installation via [nvim-lsp-installer](https://github.com/williamboman/nvim-lsp-installer)
- Autocompletion via [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
- Additional TypeScript support via [nvim-lsp-ts-utils](https://github.com/jose-elias-alvarez/nvim-lsp-ts-utils)
- Snippet support via [LuaSnip](https://github.com/L3MON4D3/LuaSnip)
- Session management via [auto-session](https://github.com/rmagatti/auto-session)
- Notifications via [nvim-notify](https://github.com/rcarriga/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._
## 🛠 Installation
### Quick guide
#### Prerequisites
- Neovim (+0.8.0)
- [Node.js](https://nodejs.org/en/)
- [prettierd](https://github.com/fsouza/prettierd) (for prettier formatting w/null_ls, optional)
- [eslint_d](https://www.npmjs.com/package/eslint_d) (for eslint w/null_ls, optional)
#### Install
```bash
# 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](https://github.com/CosmicNvim/CosmicNvim/wiki/Installation).
Additional LSP server installation [details](https://github.com/CosmicNvim/CosmicNvim/wiki/Installing-LSP-servers).
CosmicNvim uninstallation [details](https://github.com/CosmicNvim/CosmicNvim/wiki/Uninstalling-CosmicNvim).
## 🎨 Theming
CosmicNvim comes with first-class support for the following themes:
- [Catppuccino](https://github.com/Pocco81/Catppuccino.nvim)
- [Dracula](https://github.com/Mofiqul/dracula.nvim)
- [Enfocado](https://github.com/wuelnerdotexe/vim-enfocado)
- [Github](https://github.com/projekt0n/github-nvim-theme)
- [Gruvbox](https://github.com/ellisonleao/gruvbox.nvim)
- [Kanagawa](https://github.com/rebelot/kanagawa.nvim)
- [Monokai](https://github.com/tanvirtin/monokai.nvim)
- [Nightfox](https://github.com/EdenEast/nightfox.nvim)
- [Nord](https://github.com/shaunsingh/nord.nvim)
- [Onedark](https://github.com/navarasu/onedark.nvim)
- [Rose-pine](https://github.com/rose-pine/neovim)
- [Tokyonight](https://github.com/folke/tokyonight.nvim)
[Additional Screenshots](https://github.com/CosmicNvim/CosmicNvim/wiki/Theme-Screenshots)
## ⚙️ Configuration
[General Info](./lua/cosmic/config/examples/readme.md)
[Cosmic configurations](./lua/cosmic/config/examples/config.lua)
[Add additional vim options](./lua/cosmic/config/examples/editor.lua)
## ✨ Cosmic Commands
### Update CosmicNvim
```vimcommand
: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`.
### Clear cache and sync plugins
```vimcommand
:CosmicReloadSync
```
Useful for testing themes or plugins on the fly!
### Reload user config
```vimcommand
:CosmicReload
```
Useful for non-plugin related changes such as editor settings or mappings.
## 🗺 Default Mappings
[File navigation](./lua/cosmic/plugins/telescope/mappings.lua)
[File explorer](./lua/cosmic/plugins/nvim-tree/mappings.lua)
[Terminal](./lua/cosmic/plugins/terminal/mappings.lua)
[LSP](./lua/cosmic/lsp/mappings.lua)
[Other](./lua/cosmic/mappings.lua)
## 📷 Screenshots
### Statusline
### Autocomplete
### Rename
### Rename change notification
### Code Actions
### Hover
[See more screenshots](https://github.com/CosmicNvim/CosmicNvim/wiki/Screenshots)