Compare commits

12 Commits

11 changed files with 394 additions and 75 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
lazy-lock.json

View File

@ -4,72 +4,102 @@
---@type LazySpec ---@type LazySpec
return { return {
"AstroNvim/astrocommunity", "AstroNvim/astrocommunity",
{ import = "astrocommunity.pack.lua" }, { import = "astrocommunity.pack.lua" },
-- import/override with your plugins folder -- import/override with your plugins folder
-- --
-- Personal config -- Personal config
-- --
-- Packs -- Packs
{ import = "astrocommunity.pack.json" },
{ import = "astrocommunity.pack.yaml" }, { import = "astrocommunity.pack.bash" },
{ import = "astrocommunity.pack.toml" }, { import = "astrocommunity.pack.chezmoi" },
{ import = "astrocommunity.pack.markdown" },
{ import = "astrocommunity.pack.bash" }, { import = "astrocommunity.pack.json" },
{ import = "astrocommunity.pack.yaml" },
{ import = "astrocommunity.pack.toml" },
{ import = "astrocommunity.pack.markdown" },
{ import = "astrocommunity.pack.python" }, { import = "astrocommunity.pack.python" },
-- { import = "astrocommunity.pack.ruby" },
-- { import = "astrocommunity.pack.java" }, -- { import = "astrocommunity.pack.java" },
-- { import = "astrocommunity.pack.html-css" }, -- { import = "astrocommunity.pack.html-css" },
-- { import = "astrocommunity.pack.angular" }, -- { import = "astrocommunity.pack.angular" },
{ import = "astrocommunity.pack.ansible" },
{ import = "astrocommunity.pack.docker" },
{ import = "astrocommunity.pack.helm" },
{ import = "astrocommunity.pack.terraform" },
-- Recipes -- { import = "astrocommunity.pack.ansible" },
{ import = "astrocommunity.recipes.heirline-mode-text-statusline" }, -- { import = "astrocommunity.pack.terraform" },
{ import = "astrocommunity.recipes.cache-colorscheme" }, -- { import = "astrocommunity.pack.docker" },
{ import = "astrocommunity.recipes.neo-tree-dark" }, -- { import = "astrocommunity.pack.helm" },
{ import = "astrocommunity.recipes.disable-tabline" },
-- Individual plugins (misc) -- { import = "astrocommunity.pack.rainbow-delimiter-indent-blankline" },
{ import = "astrocommunity.diagnostics.trouble-nvim" }, { import = "astrocommunity.indent.indent-rainbowline" },
-- { 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) -- Recipes
{ 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 { import = "astrocommunity.recipes.disable-tabline" },
-- { { import = "astrocommunity.recipes.heirline-mode-text-statusline" },
-- "nvim-treesitter/nvim-treesitter", { import = "astrocommunity.recipes.heirline-vscode-winbar" },
-- opts = function(_, opts) { import = "astrocommunity.recipes.cache-colorscheme" },
-- local utils = require "astronvim.utils" { import = "astrocommunity.recipes.neo-tree-dark" },
-- if opts.ensure_installed ~= "all" then { import = "astrocommunity.recipes.neovide" },
-- opts.ensure_installed = utils.list_insert_unique(opts.ensure_installed, -- { import = "astrocommunity.recipes.ai" },
-- { "lua", "xml", "http", "json", "graphql" })
-- end
-- end,
-- },
-- Now provided by core -- Completion
-- { import = "astrocommunity.bars-and-lines.vim-illuminate" }, { import = "astrocommunity.completion.blink-cmp-git" },
-- { import = "astrocommunity.editing-support.todo-comments-nvim" }, { import = "astrocommunity.completion.blink-cmp-emoji" },
-- { import = "astrocommunity.completion.cmp-nerdfont" },
{ import = "astrocommunity.completion.minuet-ai-nvim" },
-- { import = "astrocommunity.completion.cmp-spell" },
-- { import = "astrocommunity.completion.copilot-lua-cmp" },
-- Telescope
{ import = "astrocommunity.terminal-integration.toggleterm-manager-nvim" }, -- A Telescope extension to manage Toggleterm's terminals in NeoVim
-- { import = "astrocommunity.file-explorer.telescope-file-browser-nvim" },
-- Individual plugins (misc)
{ import = "astrocommunity.workflow.hardtime-nvim" }, -- Display hints to get rid of bad habits
{ import = "astrocommunity.diagnostics.trouble-nvim" },
{ import = "astrocommunity.editing-support.nvim-devdocs" },
{ import = "astrocommunity.git.diffview-nvim" },
{ import = "astrocommunity.markdown-and-latex.render-markdown-nvim" },
{ import = "astrocommunity.motion.marks-nvim" }, -- Display marks in the sign column
{ import = "astrocommunity.programming-language-support.kulala-nvim" }, -- A minimal HTTP-client interface for Neovim
{ import = "astrocommunity.markdown-and-latex.markview-nvim" },
-- Disabled
-- { import = "astrocommunity.bars-and-lines.smartcolumn-nvim" }, -- display a column when text width exceed defined limit
-- { import = "astrocommunity.editing-support.chatgpt-nvim" },
-- { import = "astrocommunity.programming-language-support.rest-nvim" },
-- { import = "astrocommunity.project.project-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" }, -- highlight other uses of the word under cursor
-- { import = "astrocommunity.editing-support.todo-comments-nvim" },
} }

View File

@ -39,7 +39,7 @@ return {
options = { options = {
opt = { -- vim.opt.<key> opt = { -- vim.opt.<key>
number = true, -- sets vim.opt.number number = true, -- sets vim.opt.number
relativenumber = false, -- sets vim.opt.relativenumber relativenumber = true, -- sets vim.opt.relativenumber
spell = false, -- sets vim.opt.spell spell = false, -- sets vim.opt.spell
spelllang = "fr", -- Set spell language to french spelllang = "fr", -- Set spell language to french
signcolumn = "yes", -- sets vim.opt.signcolumn to yes signcolumn = "yes", -- sets vim.opt.signcolumn to yes
@ -49,7 +49,6 @@ return {
-- configure global vim variables (vim.g) -- configure global vim variables (vim.g)
-- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup` -- 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 -- This can be found in the `lua/lazy_setup.lua` file
}, },
}, },
-- Mappings can be configured through AstroCore as well. -- Mappings can be configured through AstroCore as well.
@ -82,15 +81,32 @@ return {
-- Normal mode : Custom mappings -- Normal mode : Custom mappings
["<F2>"] = { "<cmd>Neotree toggle<cr>", desc = "File Explorer" }, -- F26 corresponds to <Ctrl+F2> on my keyboard ["<F2>"] = { "<cmd>Neotree toggle<cr>", desc = "File Explorer" }, -- F26 corresponds to <Ctrl+F2> on my keyboard
["<F3>"] = { function() require("astrocore").toggle_term_cmd({cmd="lazygit", direction="float"}) end, desc = "Lazygit terminal" }, -- F27 corresponds to <Ctrl+F3> on my keyboard ["<F3>"] = {
["<F4>"] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to <Ctrl+F4> on my keyboard function() require("astrocore").toggle_term_cmd { cmd = "lazygit", direction = "float" } end,
desc = "Lazygit terminal",
},
["<F4>"] = {
function() require("astrocore").toggle_term_cmd { cmd = "tig", direction = "float" } end,
desc = "Tig terminal",
},
}, },
-- Insert mode : Custom mappings -- Insert mode : Custom mappings
i = { i = {
["<F2>"] = { "<cmd>Neotree toggle<cr>", desc = "File Explorer" }, -- F26 corresponds to <Ctrl+F2> on my keyboard ["<F2>"] = { "<cmd>Neotree toggle<cr>", desc = "File Explorer" }, -- F26 corresponds to <Ctrl+F2> on my keyboard
["<F3>"] = { function() require("astrocore").toggle_term_cmd({cmd="lazygit", direction="float"}) end, desc = "Lazygit terminal" }, -- F27 corresponds to <Ctrl+F3> on my keyboard ["<F3>"] = {
["<F4>"] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to <Ctrl+F4> on my keyboard function() require("astrocore").toggle_term_cmd { cmd = "lazygit", direction = "float" } end,
desc = "Lazygit terminal",
},
["<F4>"] = {
function() require("astrocore").toggle_term_cmd { cmd = "tig", direction = "float" } end,
desc = "Tig terminal",
},
}, },
-- INFO:
-- F26 corresponds to <Ctrl+F2> on my keyboard
-- F27 corresponds to <Ctrl+F3> on my keyboard
-- F28 corresponds to <Ctrl+F4> on my keyboard
-- Terminal mode : Custom mappings -- Terminal mode : Custom mappings
t = { t = {
-- Switch to normal mode in terminal mode -- Switch to normal mode in terminal mode
@ -102,10 +118,15 @@ return {
["<C-j>"] = false, ["<C-j>"] = false,
["<C-k>"] = false, ["<C-k>"] = false,
-- My terms -- My terms
["<F3>"] = { function() require("astrocore").toggle_term_cmd({cmd="lazygit", direction="float"}) end, desc = "Lazygit terminal" }, -- F27 corresponds to <Ctrl+F3> on my keyboard ["<F3>"] = {
["<F4>"] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to <Ctrl+F4> on my keyboard function() require("astrocore").toggle_term_cmd { name = "LazyGit", cmd = "lazygit", direction = "float" } end,
desc = "Lazygit terminal",
}, -- F27 corresponds to <Ctrl+F3> on my keyboard
["<F4>"] = {
function() require("astrocore").toggle_term_cmd { name = "Tig", cmd = "tig", direction = "float" } end,
desc = "Tig terminal",
}, -- F28 corresponds to <Ctrl+F4> on my keyboard
}, },
}, },
}, },
} }

View File

@ -0,0 +1,37 @@
return {
{
-- The improved vscode terminal for Neovim written in pure lua
"CRAG666/betterTerm.nvim",
opts = {
prefix = "betterTerm ",
position = "bot",
size = 25,
},
keys = {
{
mode = { 'n', 't' },
'<leader>t&',
function()
require('betterTerm').open(1)
end,
desc = 'Open betterTerm 1',
},
{
mode = { 'n', 't' },
'<leader>té',
function()
require('betterTerm').open(2)
end,
desc = 'Open betterTerm 2',
},
{
'<leader>tS',
function()
require('betterTerm').select()
end,
desc = 'Select a betterTerm terminal',
}
},
},
}

View File

@ -0,0 +1,62 @@
local prefix = "<Leader>A"
---@type LazySpec
return {
{
"olimorris/codecompanion.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
{
"AstroNvim/astrocore",
---@param opts AstroCoreOpts
opts = function(_, opts)
if not opts.mappings then opts.mappings = {} end
opts.mappings.n[prefix] = { desc = require("astroui").get_icon("CodeCompanion", 1, true) .. "CodeCompanion" }
opts.mappings.v[prefix] = { desc = require("astroui").get_icon("CodeCompanion", 1, true) .. "CodeCompanion" }
opts.mappings.n[prefix .. "c"] = { "<cmd>CodeCompanionChat Toggle<cr>", desc = "Toggle chat" }
opts.mappings.v[prefix .. "c"] = { "<cmd>CodeCompanionChat Toggle<cr>", desc = "Toggle chat" }
opts.mappings.n[prefix .. "p"] = { "<cmd>CodeCompanionActions<cr>", desc = "Open action palette" }
opts.mappings.v[prefix .. "p"] = { "<cmd>CodeCompanionActions<cr>", desc = "Open action palette" }
opts.mappings.n[prefix .. "q"] = { "<cmd>CodeCompanion<cr>", desc = "Open inline assistant" }
opts.mappings.v[prefix .. "q"] = { "<cmd>CodeCompanion<cr>", desc = "Open inline assistant" }
opts.mappings.v[prefix .. "a"] = { "<cmd>CodeCompanionChat Add<cr>", desc = "Add selection to chat" }
-- Expand cc to CodeCompanion in cmdline mode
vim.cmd [[cab cc CodeCompanion]]
end,
},
{ "AstroNvim/astroui", opts = { icons = { CodeCompanion = "󱙺" } } },
},
event = "User AstroFile",
cmd = {
"CodeCompanion",
"CodeCompanionActions",
"CodeCompanionChat",
"CodeCompanionCmd",
},
opts = {
strategies = {
chat = {
adapter = "mistral",
},
inline = {
adapter = "mistral",
},
},
},
},
{
"MeanderingProgrammer/render-markdown.nvim",
optional = true,
opts = function(_, opts)
if not opts.file_types then opts.file_types = { "markdown" } end
opts.file_types = require("astrocore").list_insert_unique(opts.file_types, { "codecompanion" })
end,
},
}

63
lua/plugins/incline.lua Normal file
View File

@ -0,0 +1,63 @@
return {
{
-- Incline is a plugin for creating lightweight floating statuslines.
-- It works great with Neovim's global statusline (:set laststatus=3)
'b0o/incline.nvim',
config = function()
local devicons = require 'nvim-web-devicons'
require('incline').setup {
render = function(props)
local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ':t')
if filename == '' then
filename = '[No Name]'
end
local ft_icon, ft_color = devicons.get_icon_color(filename)
local function get_git_diff()
local icons = { removed = '', changed = '', added = '' }
local signs = vim.b[props.buf].gitsigns_status_dict
local labels = {}
if signs == nil then
return labels
end
for name, icon in pairs(icons) do
if tonumber(signs[name]) and signs[name] > 0 then
table.insert(labels, { icon .. signs[name] .. ' ', group = 'Diff' .. name })
end
end
if #labels > 0 then
table.insert(labels, { '' })
end
return labels
end
local function get_diagnostic_label()
local icons = { error = '', warn = '', info = '', hint = '' }
local label = {}
for severity, icon in pairs(icons) do
local n = #vim.diagnostic.get(props.buf, { severity = vim.diagnostic.severity[string.upper(severity)] })
if n > 0 then
table.insert(label, { icon .. n .. ' ', group = 'DiagnosticSign' .. severity })
end
end
if #label > 0 then
table.insert(label, { '' })
end
return label
end
return {
{ get_diagnostic_label() },
{ get_git_diff() },
{ (ft_icon or '') .. ' ', guifg = ft_color, guibg = 'none' },
{ filename .. ' ', gui = vim.bo[props.buf].modified and 'bold,italic' or 'bold' },
{ '┊  ' .. vim.api.nvim_win_get_number(props.win), group = 'DevIconWindows' },
}
end,
}
end,
-- Optional: Lazy load Incline
event = 'VeryLazy',
},
}

71
lua/plugins/minuet-ai.lua Normal file
View File

@ -0,0 +1,71 @@
-- if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
return {
"milanglacier/minuet-ai.nvim",
opts = {
-- provider = "codestral",
virtualtext = {
auto_trigger_ft = { "sh", "lua", "python", "yaml", "json" },
keymap = {
-- accept whole completion
accept = "<A-y>",
-- accept one line
accept_line = "<A-l>",
-- accept n lines (prompts for number)
-- e.g. "A-z 2 CR" will accept 2 lines
accept_n_lines = "<A-z>",
-- Cycle to prev completion item, or manually invoke completion
prev = "<A-[>",
-- Cycle to next completion item, or manually invoke completion
next = "<A-]>",
-- Dismiss
dismiss = "<A-c>",
},
},
},
-- specs = {
-- "Saghen/blink.cmp",
-- optional = true,
-- opts = {
-- keymap = {
-- -- Manually invoke minuet completion.
-- ["<A-y>"] = require("minuet").make_blink_map(),
-- },
-- sources = {
-- -- Enable minuet for autocomplete
-- default = { "lsp", "path", "buffer", "snippets", "minuet" },
-- -- For manual completion only, remove 'minuet' from default
-- providers = {
-- minuet = {
-- name = "minuet",
-- module = "minuet.blink",
-- async = true,
-- -- Should match minuet.config.request_timeout * 1000,
-- -- since minuet.config.request_timeout is in seconds
-- timeout_ms = 3000,
-- score_offset = 50, -- Gives minuet higher priority among suggestions
-- },
-- },
-- },
-- -- Recommended to avoid unnecessary request
-- completion = { trigger = { prefetch_on_insert = false } },
-- },
-- },
-- specs = {
-- {
-- "AstroNvim/astrocore",
-- opts = {
-- options = {
-- g = {
-- -- set the ai_accept function
-- ai_accept = function()
-- if require("minuet.virtualtext").action.is_visible then
-- vim.api.nvim_input(require("minuet.virtualtext").action.accept_n_lines)
-- return true
-- end
-- end,
-- },
-- },
-- },
-- },
-- },
}

View File

@ -1,10 +1,16 @@
-- 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 -- Locate python3 using PATH
local python_path = vim.fn.exepath("python3") local python_path = vim.fn.exepath("python3")
if python_path == nil or python_path == "" then if python_path == nil or python_path == "" then
else else
vim.g.python3_host_prog = python_path vim.g.python3_host_prog = python_path
end end
-- 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

3
spell/en.utf-8.add Normal file
View File

@ -0,0 +1,3 @@
HelmRelease
filebeat
daemonset

BIN
spell/en.utf-8.add.spl Normal file

Binary file not shown.

View File

@ -1,9 +1,34 @@
Vault
Docker
docker
Dockerfile
Kubernetes
kubernetes
Helm
helm
Helmchart
helmchart
Chart
chart
kubectl
k9s
Beats
beats
filebeat
metricbeat
Kafka
kafka
password
topics
Jenkins
Jenkinsfile
jenkinsfile
Angular Angular
Spring Spring
Drupal Drupal
Vault
Jenkinsfile
Dockerfile
jenkinsfile
Jenkins
Kubernetes