Personal Statement
I stand in solidarity with the Palestinian people and support their fundamental human rights. I oppose ongoing violence, occupation, and human rights violations, and I call for justice, dignity, and freedom for all.
The over-engineered Neovim distribution for developers who want everything
Adev.nvim is a feature-rich Neovim configuration that provides a complete development environment out of the box. Built with modern Neovim features and carefully selected plugins, it offers blazing-fast performance while maintaining extensive functionality.
experimental_adev_files: Enable new adev-files file management systemBackup your existing config (if any):
mv ~/.config/nvim ~/.config/nvim.backup
Clone Adev.nvim:
git clone https://github.com/abdellatif-temsamani/adev.nvim ~/.config/nvim
Start Neovim (auto-configuration for new users):
nvim
For new users: Adev.nvim will automatically detect that you're new and
generate the necessary configuration files (init.lua and
lua/adev/init-opts.lua) with default settings. It will then restart Neovim
to apply the configuration.
For advanced users: If you want to customize before first run, you can manually create the config:
nvim ~/.config/nvim/lua/adev/init.lua
Then write your custom setup:
require("adev").setup {
-- Your custom options here
-- See :help adev-setup for full options
}
Adev.nvim is highly configurable. For new users, configuration files are
auto-generated with defaults. You can customize by editing the generated
init-opts.lua file or by passing options to the setup function:
After first run, edit ~/.config/nvim/lua/adev/init-opts.lua to customize
settings:
-- Auto-generated by adev configuration
return {
git = "git",
mapleader = " ",
auto_update_check = true,
colorscheme = "catppuccin",
catppuccin = {
enable = true,
flavour = "mocha",
transparent = false,
},
ui = {
border = "single",
},
lazy = {
lazy_loading = true,
auto_update_check = true,
plugin_version = nil,
},
lsp = {
enable = true,
servers = nil,
},
ai_assistant = {
enabled = false,
plugin = "augmentcode/augment.vim",
command = "Augment",
opts = nil,
},
-- Modify any options here
}
For custom configurations before first run:
require("adev").setup {
-- Git executable path (default: "git")
git = "git",
-- Leader key (default: " ")
mapleader = " ",
-- Auto update check (default: true)
auto_update_check = true,
-- Colorscheme (default: "catppuccin")
colorscheme = "catppuccin",
-- Catppuccin theme settings
catppuccin = {
enable = true,
flavour = "mocha",
transparent = false,
},
-- UI options
ui = {
border = "single",
},
-- Lazy.nvim settings
lazy = {
lazy_loading = true,
auto_update_check = true,
plugin_version = nil,
},
-- LSP configuration
lsp = {
enable = true,
servers = nil, -- nil uses all available servers
},
-- AI assistant (default: false)
ai_assistant = {
enabled = false,
plugin = "augmentcode/augment.vim",
command = "Augment",
opts = nil,
},
-- And many more options...
}
For a complete list of configuration options, see :help adev-setup or check
the defaults.lua file.
Adev includes an experimental feature flags system to enable/disable features:
experimental_adev_files: Enable the new adev-files file management systemTo enable experimental features, run :ADConfig to edit your init-opts.lua and add:
return {
flags = {
experimental_adev_files = true,
},
}
For detailed documentation on all setup options and advanced configuration, see
:help adev.
Adev.nvim provides several custom commands to enhance your workflow:
:ADUpdate - Update Adev configuration via git pull:ADConfig - Edit Adev configuration file:ADUpdateCheck - Check for available updates without updating:ADChangelog - View the changelog for current or specified version:ADVersions - List available versions from git tags:Lazy profile - Analyze plugin loading times:Lazy sync - Update all plugins:Mason - Manage LSP servers and tools:Telescope - Fuzzy find files, buffers, and more~/.config/nvim/
├── CHANGELOG.md -- Change history
├── cliff.toml -- Git-cliff configuration
├── CODE_OF_CONDUCT.md -- Code of conduct
├── CONTRIBUTING.md -- Contributing guidelines
├── LICENSE -- License file
├── README.md -- Project README
├── TODO.md -- TODO list
├── init.lua -- Auto-generated entry point
├── lazy-lock.json -- Plugin lockfile
├── doc/ -- Documentation
│ ├── adev.txt -- This documentation
│ └── tags -- Help tags
├── images/ -- Images and assets
│ └── startuptime.png -- Performance benchmark
├── lua/adev/ -- Main configuration modules
│ ├── init.lua -- Main module
│ ├── init-opts.lua -- Auto-generated configuration options (included in .gitignore)
│ ├── commands.lua -- Custom commands
│ ├── changelog.lua -- Changelog command
│ ├── defaults.lua -- Default configuration
│ ├── lazy.lua -- Plugin manager setup
│ ├── lsp.lua -- LSP configuration
│ ├── onboarding/ -- Auto configuration generation
│ │ └── init.lua -- Onboarding system
│ ├── update_manager/ -- Update management
│ │ ├── check_update.lua -- Update checking
│ │ ├── init.lua -- Update manager
│ │ └── update.lua -- Update functionality
│ ├── utils/ -- Utility functions
│ │ ├── init.lua -- Utility functions
│ │ └── events.lua -- Event definitions
│ ├── config/ -- Configuration files
│ │ ├── lspconfig.lua -- LSP client configs
│ │ ├── mini.lua -- Mini.nvim configuration
│ │ └── none-ls/ -- None-ls configurations
│ │ ├── init.lua -- Main none-ls setup
│ │ ├── deno_fmt.lua -- Deno formatter
│ │ └── dgformat.lua -- DG formatter
│ ├── custom-plugins/ -- User custom plugins directory
│ │ └── example.lua -- Example custom plugin
│ ├── types/ -- Type definitions
│ │ ├── adev.lua -- Adev type annotations
│ │ ├── flags.lua -- Feature flags definitions
│ │ └── init.lua -- Type system initialization
│ ├── ui/ -- UI configuration
│ │ └── init.lua -- UI setup and theming
│ └── plugins/ -- Plugin specifications (24 files)
│ ├── ai.lua -- AI assistant integration
│ ├── blink.lua -- Completion engine
│ ├── cloak.lua -- Environment variable concealing
│ ├── color-highlight.lua -- Color highlighting
│ ├── comment.lua -- Smart commenting
│ ├── crates.lua -- Rust crate management
│ ├── git-signs.lua -- Git integration
│ ├── jdtls.lua -- Java development tools
│ ├── laravel.lua -- Laravel development tools
│ ├── lazydev.lua -- Lua development enhancements
│ ├── lspconfig.lua -- LSP configurations
│ ├── lualine.lua -- Statusline
│ ├── luasnip.lua -- Snippet engine
│ ├── mason.lua -- LSP/tool installer
│ ├── mini.lua -- Various mini plugins
│ ├── neogen.lua -- Code generation
│ ├── noice.lua -- Enhanced UI
│ ├── none-ls.lua -- Formatting and linting
│ ├── octo.lua -- GitHub integration
│ ├── snacks.lua -- Modern UI components
│ ├── telescope.lua -- Fuzzy finder
│ ├── theme.lua -- Catppuccin theme
│ ├── todo-comments.lua -- TODO highlighting
│ └── treesitter.lua -- Syntax highlighting
├── plugin/ -- Core Neovim settings
│ ├── autocmd.lua -- Autocommands (53 lines)
│ ├── keymaps.lua -- Key mappings (151 lines)
│ └── options.lua -- Vim options (65 lines)
└── queries/ -- Custom queries
└── lua/ -- Lua-specific queries
└── highlights.scm -- Lua syntax highlighting

Startup time measured on a typical development machine.
While pull requests are rarely accepted to maintain consistency, contributions are welcome in other forms:
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
Happy coding with Adev.nvim! 🚀
"The over-engineered Neovim distribution for developers who want everything"