💫 CosmicNvim

Neovim Minimum Version GitHub last commit Discord Website

CosmicNvim is a lightweight and opinionated Neovim config for web development, specifically designed to provide a 💫 COSMIC programming experience! Screen Shot 2021-12-19 at 1 25 24 PM ## 🚀 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) - UI enhancements via [noice](https://github.com/folke/noice.nvim) - Enhanced syntax highlighting via [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) - Dashboard via [dashboard-nvim](https://github.com/glepnir/dashboard-nvim) - Custom statusline via [lualine](https://github.com/nvim-lualine/lualine.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/formatter/linter installation via [mason.nvim](https://github.com/williamboman/mason.nvim) - Autocompletion via [nvim-cmp](https://github.com/hrsh7th/nvim-cmp) - Snippet support via [LuaSnip](https://github.com/L3MON4D3/LuaSnip) - Session management via [auto-session](https://github.com/rmagatti/auto-session) - 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.10.0) nightly - [Node.js](https://nodejs.org/en/) - [prettierd](https://github.com/fsouza/prettierd) - [eslint](https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#eslint) #### 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 ``` By default, this will assume the Cosmic git directory is placed at `vim.fn.stdpath('config')`, i.e. `~/.config/nvim`. If you are symlinking your pulled repo to `~/.config/nvim`, you must define the shell environment variable `COSMICNVIM_INSTALL_DIR` that points to your installation. 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 _New documentation coming soon!_ ## ⚙️ 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 Updates CosmicNvim to the latest version ```vimcommand :CosmicUpdate ``` ## 🗺 Default Mappings [File navigation](./lua/cosmic/plugins/telescope/init.lua) [File explorer](./lua/cosmic/plugins/nvim-tree/init.lua) [Terminal](./lua/cosmic/plugins/terminal/mappings.lua) [LSP](./lua/cosmic/lsp/mappings.lua) [Other](./lua/cosmic/core/mappings.lua) ## 📷 Screenshots [See more](https://github.com/CosmicNvim/CosmicNvim/wiki/Screenshots)