From 99209b6963807db6b656466961ba4cb86a778254 Mon Sep 17 00:00:00 2001 From: Xavier Logerais Date: Tue, 1 Apr 2025 16:04:41 +0000 Subject: [PATCH] feat: Personnal configuration --- lua/community.lua | 73 ++++++++++++++++++++++++++++++++++++--- lua/lazy_setup.lua | 14 ++++---- lua/plugins/astrocore.lua | 32 +++++++++++++++-- lua/plugins/neo-tree.lua | 29 ++++++++++++++++ lua/plugins/tpope.lua | 6 ++++ lua/polish.lua | 15 ++++++-- 6 files changed, 152 insertions(+), 17 deletions(-) create mode 100644 lua/plugins/neo-tree.lua create mode 100644 lua/plugins/tpope.lua diff --git a/lua/community.lua b/lua/community.lua index c842899..9b554a0 100644 --- a/lua/community.lua +++ b/lua/community.lua @@ -1,12 +1,75 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - -- AstroCommunity: import any community modules here -- We import this file in `lazy_setup.lua` before the `plugins/` folder. -- This guarantees that the specs are processed before any user plugins. ---@type LazySpec return { - "AstroNvim/astrocommunity", - { import = "astrocommunity.pack.lua" }, - -- import/override with your plugins folder + "AstroNvim/astrocommunity", + { import = "astrocommunity.pack.lua" }, + -- import/override with your plugins folder + + -- + -- Personal config + -- + + -- Packs + { import = "astrocommunity.pack.json" }, + { import = "astrocommunity.pack.yaml" }, + { import = "astrocommunity.pack.toml" }, + { import = "astrocommunity.pack.markdown" }, + { import = "astrocommunity.pack.bash" }, + { import = "astrocommunity.pack.python" }, + -- { import = "astrocommunity.pack.java" }, + -- { import = "astrocommunity.pack.html-css" }, + -- { import = "astrocommunity.pack.angular" }, + { import = "astrocommunity.pack.ansible" }, + { import = "astrocommunity.pack.docker" }, + { import = "astrocommunity.pack.helm" }, + { import = "astrocommunity.pack.terraform" }, + + -- Recipes + { import = "astrocommunity.recipes.heirline-mode-text-statusline" }, + { import = "astrocommunity.recipes.cache-colorscheme" }, + { import = "astrocommunity.recipes.neo-tree-dark" }, + { import = "astrocommunity.recipes.disable-tabline" }, + + -- Individual plugins (misc) + { import = "astrocommunity.diagnostics.trouble-nvim" }, + -- { import = "astrocommunity.bars-and-lines.smartcolumn-nvim" }, + -- { import = "astrocommunity.completion.copilot-lua-cmp" }, + { import = "astrocommunity.editing-support.rainbow-delimiters-nvim" }, + { import = "astrocommunity.editing-support.nvim-devdocs" }, + -- { import = "astrocommunity.editing-support.chatgpt-nvim" }, + { import = "astrocommunity.indent.indent-rainbowline" }, + -- { import = "astrocommunity.programming-language-support.rest-nvim" }, + -- { import = "astrocommunity.project.project-nvim" }, + { import = "astrocommunity.file-explorer.telescope-file-browser-nvim" }, + { import = "astrocommunity.git.diffview-nvim" }, + + -- Individual plugins (colorschemes) + { import = "astrocommunity.colorscheme.vscode-nvim" }, + { import = "astrocommunity.colorscheme.github-nvim-theme" }, + { import = "astrocommunity.colorscheme.neosolarized-nvim" }, + { import = "astrocommunity.colorscheme.nord-nvim" }, + { import = "astrocommunity.colorscheme.nordic-nvim" }, + { import = "astrocommunity.colorscheme.iceberg-vim" }, + { import = "astrocommunity.colorscheme.tokyodark-nvim" }, + { import = "astrocommunity.colorscheme.tokyonight-nvim" }, + { import = "astrocommunity.colorscheme.onedarkpro-nvim" }, + + -- Individual plugins customization + -- { + -- "nvim-treesitter/nvim-treesitter", + -- opts = function(_, opts) + -- local utils = require "astronvim.utils" + -- if opts.ensure_installed ~= "all" then + -- opts.ensure_installed = utils.list_insert_unique(opts.ensure_installed, + -- { "lua", "xml", "http", "json", "graphql" }) + -- end + -- end, + -- }, + + -- Now provided by core + -- { import = "astrocommunity.bars-and-lines.vim-illuminate" }, + -- { import = "astrocommunity.editing-support.todo-comments-nvim" }, } diff --git a/lua/lazy_setup.lua b/lua/lazy_setup.lua index 4d9552f..159a9a2 100644 --- a/lua/lazy_setup.lua +++ b/lua/lazy_setup.lua @@ -20,13 +20,13 @@ require("lazy").setup({ performance = { rtp = { -- disable some rtp plugins, add more to your liking - disabled_plugins = { - "gzip", - "netrwPlugin", - "tarPlugin", - "tohtml", - "zipPlugin", - }, + -- disabled_plugins = { + -- "gzip", + -- "netrwPlugin", + -- "tarPlugin", + -- "tohtml", + -- "zipPlugin", + -- }, }, }, } --[[@as LazyConfig]]) diff --git a/lua/plugins/astrocore.lua b/lua/plugins/astrocore.lua index 03d7441..2a7e70f 100644 --- a/lua/plugins/astrocore.lua +++ b/lua/plugins/astrocore.lua @@ -1,5 +1,3 @@ -if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - -- AstroCore provides a central place to modify mappings, vim options, autocommands, and more! -- Configuration documentation can be found with `:h astrocore` -- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`) @@ -40,9 +38,10 @@ return { -- vim options can be configured here options = { opt = { -- vim.opt. - relativenumber = true, -- sets vim.opt.relativenumber number = true, -- sets vim.opt.number + relativenumber = false, -- sets vim.opt.relativenumber spell = false, -- sets vim.opt.spell + spelllang = "fr", -- Set spell language to french signcolumn = "yes", -- sets vim.opt.signcolumn to yes wrap = false, -- sets vim.opt.wrap }, @@ -50,6 +49,7 @@ return { -- configure global vim variables (vim.g) -- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup` -- This can be found in the `lua/lazy_setup.lua` file + }, }, -- Mappings can be configured through AstroCore as well. @@ -79,7 +79,33 @@ return { -- setting a mapping to false will disable it -- [""] = false, + + -- Normal mode : Custom mappings + [""] = { "Neotree toggle", desc = "File Explorer" }, -- F26 corresponds to on my keyboard + [""] = { function() require("astrocore").toggle_term_cmd({cmd="lazygit", direction="float"}) end, desc = "Lazygit terminal" }, -- F27 corresponds to on my keyboard + [""] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to on my keyboard }, + -- Insert mode : Custom mappings + i = { + [""] = { "Neotree toggle", desc = "File Explorer" }, -- F26 corresponds to on my keyboard + [""] = { function() require("astrocore").toggle_term_cmd({cmd="lazygit", direction="float"}) end, desc = "Lazygit terminal" }, -- F27 corresponds to on my keyboard + [""] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to on my keyboard + }, + -- Terminal mode : Custom mappings + t = { + -- Switch to normal mode in terminal mode + [""] = { "" }, + -- Clear Ctrl+l so that we can use it to clear the terminal + [""] = false, + [""] = false, + -- Clear Ctrl-J and Ctrl-K so that we can use them to navigate the terminal (for lazygit) + [""] = false, + [""] = false, + -- My terms + [""] = { function() require("astrocore").toggle_term_cmd({cmd="lazygit", direction="float"}) end, desc = "Lazygit terminal" }, -- F27 corresponds to on my keyboard + [""] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to on my keyboard + }, + }, }, } diff --git a/lua/plugins/neo-tree.lua b/lua/plugins/neo-tree.lua new file mode 100644 index 0000000..12a58bc --- /dev/null +++ b/lua/plugins/neo-tree.lua @@ -0,0 +1,29 @@ +return { + { + "nvim-neo-tree/neo-tree.nvim", + opts = { + window = { + width = 50, + mappings = { + [""] = false, -- disable space until we figure out which-key disabling + [">"] = "next_source", + ["<"] = "prev_source", + [""] = "next_source", + [""] = "prev_source", + }, + }, + event_handlers = { + { + event = "file_opened", + handler = function(file_path) + -- auto close + -- vimc.cmd("Neotree close") + -- OR + require("neo-tree.command").execute({ action = "close" }) + end + }, + }, + close_if_last_window = true, + }, + } +} diff --git a/lua/plugins/tpope.lua b/lua/plugins/tpope.lua new file mode 100644 index 0000000..4ffb572 --- /dev/null +++ b/lua/plugins/tpope.lua @@ -0,0 +1,6 @@ +return { + { "tpope/vim-surround", event = "User AstroFile" }, + { "tpope/vim-speeddating", event = "User AstroFile" }, + { "tpope/vim-repeat", event = "User AstroFile" }, + -- { "tpope/vim-fugitive", event = "User AstroFile" }, +} diff --git a/lua/polish.lua b/lua/polish.lua index 642719f..1ea0243 100644 --- a/lua/polish.lua +++ b/lua/polish.lua @@ -1,5 +1,16 @@ -if true then return end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE - -- This will run last in the setup process. -- This is just pure lua so anything that doesn't -- fit in the normal config locations above can go here + +-- Custom keymaps + +-- use gp to set visual selection on the recently pasted text +vim.keymap.set('n', 'gp', '`[v`]', { desc = 'Visual selection of pasted text' }) + +-- Needed for python3 through mise +-- Locate python3 using PATH +local python_path = vim.fn.exepath("python3") +if python_path == nil or python_path == "" then +else + vim.g.python3_host_prog = python_path +end