Add new config

This commit is contained in:
riesjack
2026-03-08 18:36:36 +01:00
parent aaa8c9a592
commit 291e981da1
9 changed files with 142 additions and 0 deletions

36
init.lua Normal file
View File

@@ -0,0 +1,36 @@
-- Désactive l'avertissement de dépréciation de nvim-lspconfig
vim.g.lspconfig_suppress_deprecation_warning = true
-- Au lieu de : set number
vim.opt.number = true
vim.opt.relativenumber = true -- Très utile pour les sauts de ligne en tant que dev
-- Indentation (Python/C friendly)
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
-- Recherche
vim.opt.ignorecase = true
vim.opt.smartcase = true
-- Clipboard (pour copier vers l'OS directement)
vim.opt.clipboard = "unnamedplus"
-- 1. Définir la touche Leader (Espace est le standard moderne)
vim.g.mapleader = " "
-- 2. Installer Lazy.nvim si absent
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git", "clone", "--filter=blob:none",
"https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- 3. Charger tes options et tes plugins
require("core.options")
require("core.keymaps")
require("lazy").setup("plugins") -- Il va chercher les fichiers dans lua/plugins/

12
lazy-lock.json Normal file
View File

@@ -0,0 +1,12 @@
{
"catppuccin": { "branch": "main", "commit": "12c004cde3f36cb1d57242f1e6aac46b09a0e5b4" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
"nvim-lspconfig": { "branch": "master", "commit": "2163c54bb6cfec53e3e555665ada945b8c8331b9" },
"nvim-tree.lua": { "branch": "master", "commit": "4b30847c91d498446cb8440c03031359b045e050" },
"nvim-treesitter": { "branch": "main", "commit": "5cb05e1b0fa3c469958a2b26f36b3fe930af221c" },
"nvim-web-devicons": { "branch": "master", "commit": "737cf6c657898d0c697311d79d361288a1343d50" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }
}

24
lua/core/keymaps.lua Normal file
View File

@@ -0,0 +1,24 @@
local keymap = vim.keymap.set
-- Mieux gérer les splits (Fenêtres)
keymap("n", "<leader>v", ":vsplit<CR>", { desc = "Split vertical" })
keymap("n", "<leader>h", ":split<CR>", { desc = "Split horizontal" })
-- Navigation entre les splits avec Ctrl + direction (comme dans tmux)
keymap("n", "<C-h>", "<C-w>h")
keymap("n", "<C-j>", "<C-w>j")
keymap("n", "<C-k>", "<C-w>k")
keymap("n", "<C-l>", "<C-w>l")
-- Gestion des Buffers (les fichiers ouverts)
keymap("n", "<leader>bn", ":bnext<CR>", { desc = "Buffer suivant" })
keymap("n", "<leader>bp", ":bprev<CR>", { desc = "Buffer précédent" })
keymap("n", "<leader>bd", ":bdelete<CR>", { desc = "Fermer le buffer" })
-- Garder le curseur au milieu lors des sauts de page (confort visuel)
keymap("n", "<C-d>", "<C-d>zz")
keymap("n", "<C-u>", "<C-u>zz")
-- Déplacer des blocs de texte en mode Visuel (Alt + j/k)
keymap("v", "J", ":m '>+1<CR>gv=gv")
keymap("v", "K", ":m '<-2<CR>gv=gv")

0
lua/core/options.lua Normal file
View File

27
lua/plugins/lsp.lua Normal file
View File

@@ -0,0 +1,27 @@
return {
{
"williamboman/mason.nvim",
config = function()
require("mason").setup()
end
},
{
"neovim/nvim-lspconfig",
config = function()
-- AU LIEU DE : local lspconfig = require('lspconfig')
-- ON UTILISE DIRECTEMENT L'API 0.11 :
-- Configuration pour Python
vim.lsp.config('pyright', {})
-- Configuration pour C/C++
vim.lsp.config('clangd', {})
-- Configuration pour Bash
vim.lsp.config('bashls', {})
-- Note : Si tu veux ajouter des options spécifiques plus tard,
-- c'est dans le deuxième argument {} qu'on les met.
end
}
}

View File

@@ -0,0 +1,9 @@
return {
'nvim-telescope/telescope.nvim', tag = '0.1.5',
dependencies = { 'nvim-lua/plenary.nvim' },
config = function()
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {}) -- Recherche fichier
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {}) -- Recherche texte (nécessite ripgrep)
end
}

8
lua/plugins/tree.lua Normal file
View File

@@ -0,0 +1,8 @@
return {
"nvim-tree/nvim-tree.lua",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("nvim-tree").setup()
vim.keymap.set('n', '<leader>e', ':NvimTreeToggle<CR>') -- Espace + e pour ouvrir/fermer
end
}

View File

@@ -0,0 +1,17 @@
return {
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
-- On utilise pcall pour éviter de crash si le plugin n'est pas encore là
local status, ts = pcall(require, "nvim-treesitter.configs")
if not status then return end
ts.setup({
ensure_installed = { "lua", "vim", "vimdoc", "bash", "python", "c" },
highlight = { enable = true },
indent = { enable = true },
})
end
}
}

9
lua/plugins/ui.lua Normal file
View File

@@ -0,0 +1,9 @@
return {
-- Thème
{ "catppuccin/nvim", name = "catppuccin", priority = 1000,
config = function() vim.cmd.colorscheme "catppuccin" end },
-- Barre de statut
{ "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" },
config = function() require('lualine').setup() end },
}