Skip to content

ember-tooling/neovim-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ember Neovim Config

A minimal Neovim configuration tailored for Ember.js development, featuring Tree-sitter for syntax highlighting and Language Server Protocol (LSP) support for Ember and TypeScript.

This is not a full-featured IDE setup — it's intentionally simple to serve as a starting point for your own configuration.

✨ Features

  • 🧹 Clean Lua-based config structure
  • 📦 Ember.js and TypeScript LSP integration
  • 🎨 Tree-sitter-based syntax highlighting
  • 🧠 Autocompletion with blink.cmp

📁 Project Structure

.
├── init.lua                     # Main Neovim entry point
├── lazy-lock.json               # Plugin lockfile
├── LICENSE
├── lua
│   ├── config
│   │   ├── base.lua             # Core editor settings (e.g. line numbers, tabs)
│   │   ├── keymaps.lua          # Key bindings
│   │   └── lazy.lua             # Lazy.nvim setup
│   └── plugins
│       ├── lsp.lua              # LSP config (via mason + lspconfig)
│       └── treesitter.lua       # Tree-sitter config

🚀 Getting Started

  1. Clone this repo into your Neovim config:
git clone https://github.com/ember-tooling/neovim-config ~/.config/nvim
  1. Open Neovim. (Plugins will be installed automatically by lazy.nvim)
nvim .

Multiple Neovim Configs

If you want to maintain multiple Neovim configurations, you can clone this repo into a different directory, such as ~/.config/nvim-ember, and then start Neovim with that config:

NVIM_APPNAME=nvim-ember nvim .

⚙️ Features

<leader> is set to . You can change this in lua/config/base.lua.

✅ Plugin Management

Lazy.nvim is used for efficient plugin management.

✅ Tree-sitter

Enables syntax highlighting and structural editing. Controlled via the ensure_installed list to define which languages to support.

Tree-sitter intro: YouTube – TreeSitter Explained

✅ Language Server Protocol (LSP)

Brings IDE-like features directly into Neovim.

LSP intro: YouTube – LSP Explained in 5 Minutes

Core LSP Plugins Used:

Plugin Purpose
mason.nvim Install and manage LSPs, formatters, linters
nvim-lspconfig Provides base configurations for common LSPs
mason-lspconfig.nvim Bridges mason.nvim with nvim-lspconfig
blink.cmp Autocompletion UI for LSP and snippets

✅ Key Bindings

Key bindings are defined in lua/config/keymaps.lua.

The keymap added as an example passes the definitions of the symbol under the cursor to the quickfix list.

vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Go to definition" })

To see all default LSP key bindings see global-defaults.

🚀 Alternative Neovim Setups

If you're looking for more comprehensive Neovim configurations with more plugins and UI enhancements, check out the following options:

📦 Kickstart.nvim

A small, single-file starter config, great for learning.

To add Ember support, simply modify the LSP section:

local servers = {
  tsserver = {},
  ember = {},
}

💤 LazyVim

LazyVim.

A powerful, batteries-included Neovim distribution created by folke.

Note: You’ll need this PR merged for full Ember support.

To enable Ember and TypeScript support:

  • Run :LazyExtras
  • Search for lang.ember and lang.typescript
  • Enable using the key

👨‍💻 User Config Examples

More coming soon—feel free to submit a PR with your own setup!

About

A starter config to help you setup Neovim for Ember development

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages