Skip to main content

🧩 Extras

Extras are optional feature packs that extend FtVim's functionality. They are disabled by default to keep the base configuration lean.

Available Extras​

ExtraDescriptionFor
lang.42Norminette, 42 header, exam mode, pre-submission checks, valgrind...Every 42 project
lang.cpp.tpp files, clang-formatCPP Modules, ft_irc, webserv
lang.dockerDockerfile, docker compose, YAML, nginxInception
lang.webTypeScript, eslint, Tailwind, prettierft_transcendence
lang.pythonflake8 and mypyPython piscine
lang.railsRuby on Rails (Solargraph, ERB)
dapDebugging for C/C++ with gdb or codelldb
copilotGitHub Copilot AI code completion

Enabling Extras​

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" },