🧩 Extras
Extras are optional feature packs that extend FtVim's functionality. They are disabled by default to keep the base configuration lean.
Available Extras
| Extra | Description | For |
|---|---|---|
| lang.42 | Norminette, 42 header, exam mode, pre-submission checks, valgrind... | Every 42 project |
| lang.cpp | .tpp files, clang-format | CPP Modules, ft_irc, webserv |
| lang.docker | Dockerfile, docker compose, YAML, nginx | Inception |
| lang.web | TypeScript, eslint, Tailwind, prettier | ft_transcendence |
| lang.python | flake8 and mypy | Python piscine |
| lang.rails | Ruby on Rails (Solargraph, ERB) | |
| dap | Debugging for C/C++ with gdb or codelldb | |
| copilot | GitHub Copilot AI code completion |
Enabling Extras
With :FtVimExtras (recommended)
Run :FtVimExtras (or <leader>Fx) and select an extra to toggle it, then restart Neovim.
FtVim Extras (select to toggle)
○ copilot Copilot Extra
○ dap Debugging Extra (C/C++)
● lang.42 42 School Extra
○ lang.cpp C++ Extra (CPP Modules, ft_irc, webserv)
...
Your selection is saved in ~/.config/nvim/ftvim.json.
In your config
You can also import them in ~/.config/nvim/lua/config/lazy.lua:
require("lazy").setup({
spec = {
-- FtVim core
{
"FtVim/FtVim",
import = "ftvim.plugins",
},
-- Enable extras here:
{ import = "ftvim.plugins.extras.lang.42" }, -- 42 School
{ import = "ftvim.plugins.extras.copilot" }, -- GitHub Copilot
-- Your plugins
{ import = "plugins" },
},
})
Extras imported this way show up as "in your config" in :FtVimExtras.
After enabling an extra, restart Neovim: lazy.nvim installs the new plugins automatically.
Creating Your Own Extras
You can create your own extras for features you want to toggle on/off. Create a file in ~/.config/nvim/lua/plugins/extras/:
-- ~/.config/nvim/lua/plugins/extras/rust.lua
return {
-- Rust support
{
"mrcjkb/rustaceanvim",
version = "^4",
ft = { "rust" },
},
-- Add rust-analyzer to mason
{
"mason-org/mason.nvim",
opts = {
ensure_installed = { "rust-analyzer" },
},
},
}
Then import it in your lazy.lua:
{ import = "plugins.extras.rust" },