Skip to content
ecelustkaPublic

About

Repo that contains my neovim configuration

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

67 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NEO

Neovim for TypeScript, Svelte, Astro and Go. Plain Lua on lazy.nvim, no distro, leader is ,.

Neovim Lua lazy.nvim Catppuccin License

✨ Features

  • Fast start. Everything lazy-loads on a key, command or event. Cold start is ~30 ms.
  • Web stack ready. LSP, formatting and debugging for TS, Svelte, Astro, Tailwind, CSS and Go, installed by Mason on first run.
  • Format on save. ESLint autofix, then Prettier / stylua / shfmt / gofmt via conform.nvim.
  • Modern treesitter. nvim-treesitter main with textobjects, sticky context and auto-closing tags.
  • Copilot on demand. Off by default, one key turns on inline suggestions and the blink.cmp source.
  • Small. About 1.1k lines of Lua, one file per plugin area, no framework.

📦 Requirements

Tool Used by
Neovim 0.12+ everything
git, make lazy.nvim, fzf-native, LuaSnip
node, go language servers, prettier, gofmt
ripgrep, fd Telescope
tree-sitter CLI (brew install tree-sitter-cli) building parsers
lazygit ,g
a Nerd Font icons

🚀 Install

git clone git@github.com:ecelustka/neo.git ~/.config/nvim
nvim

lazy.nvim bootstraps itself, then Mason installs language servers, formatters and the JS debug adapter. :Lazy and :Mason show progress.

🗂️ Layout

init.lua                    leader, requires config/*
lua/config/options.lua      vim options
lua/config/lazy.lua         lazy.nvim bootstrap, imports lua/plugins/*
lua/config/keymaps.lua      plugin-independent keymaps
lua/config/autocmds.lua     yank highlight, eslint fix + format on save
lua/plugins/*.lua           one plugin spec file per area
lua/blink_copilot_safe.lua  guard around the copilot completion source

Keymaps that belong to a plugin live in that plugin's spec under keys.

🔌 Plugins

Area Plugins
Colors catppuccin
Completion blink.cmp, LuaSnip, friendly-snippets, blink-cmp-copilot
LSP nvim-lspconfig, mason, mason-lspconfig, mason-tool-installer, lazydev
Syntax nvim-treesitter main, textobjects, context, nvim-ts-autotag
Formatting conform.nvim
Files neo-tree, Telescope + fzf-native, harpoon
Git gitsigns, lazygit.nvim, octo.nvim
Debug nvim-dap, nvim-dap-ui, nvim-dap-virtual-text
UI lualine, which-key, toggleterm, nvim-autopairs
Other copilot.lua, swagger-preview

Language servers: astro · cssls · eslint · gopls · html · jsonls · lua_ls · marksman · stylelint_lsp · svelte · tailwindcss · ts_ls · yamlls

Formatters: prettier · stylua · shfmt · gofmt · terraform fmt

⌨️ Keymaps

Leader is ,. Press it and wait for which-key.

Editing
Key Action
d x delete without touching the register
p (visual) paste without overwriting the register
,j ,k move line or selection down / up
,n new vertical split
<C-h/j/k/l> move between windows
af if ac ic aa ia function / class / argument textobjects
Find and navigate
Key Action
,p find files
,f live grep
,e toggle neo-tree
,ha ,he ,hD harpoon add / menu / clear
,h1 – ,h4 harpoon slot
<C-t> toggle terminal (2<C-t> for terminal 2)
LSP and diagnostics
Key Action
gd gD definition (same window / vsplit)
gr gi references / implementations
ge diagnostics list
K D hover / diagnostic float
,rn ,ca rename / code action
Git
Key Action
,g lazygit
]c [c next / previous hunk
,Gs ,Gr stage / reset hunk (also in visual)
,Gp ,Gb ,Gd preview hunk / blame line / diff buffer
Debug
Key Action
<F5> <F6> <F11> <F12> continue / step over / into / out
,b ,B breakpoint / conditional breakpoint
,ui toggle DAP UI
Copilot
Key Action
,ct toggle Copilot (inline suggestions and blink source)
,, accept suggestion
<M-]> <M-[> <C-]> next / previous / dismiss
Completion (blink.cmp default preset)
Key Action
<C-space> open / toggle docs
<C-n> <C-p> next / previous
<C-y> accept
<C-e> cancel
<Tab> <S-Tab> snippet jump

💾 Format on save

BufWritePre runs LspEslintFixAll on JS/TS/Svelte/Vue/Astro buffers, then conform formats the buffer with the filetype's formatter, falling back to the LSP where none is configured.

📄 License

MIT

About

Repo that contains my neovim configuration

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages