Compare commits

10 Commits

10 changed files with 384 additions and 71 deletions

1
.gitignore vendored Normal file
View File

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

View File

@ -4,72 +4,102 @@
---@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
--
--
-- 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.bash" },
{ import = "astrocommunity.pack.chezmoi" },
{ import = "astrocommunity.pack.json" },
{ import = "astrocommunity.pack.yaml" },
{ import = "astrocommunity.pack.toml" },
{ import = "astrocommunity.pack.markdown" },
{ import = "astrocommunity.pack.python" },
-- { import = "astrocommunity.pack.ruby" },
-- { 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" },
-- { import = "astrocommunity.pack.ansible" },
-- { import = "astrocommunity.pack.terraform" },
-- { import = "astrocommunity.pack.docker" },
-- { import = "astrocommunity.pack.helm" },
-- 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" },
-- { import = "astrocommunity.pack.rainbow-delimiter-indent-blankline" },
{ import = "astrocommunity.indent.indent-rainbowline" },
-- 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" },
-- Recipes
-- 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,
-- },
{ import = "astrocommunity.recipes.disable-tabline" },
{ import = "astrocommunity.recipes.heirline-mode-text-statusline" },
{ import = "astrocommunity.recipes.heirline-vscode-winbar" },
{ import = "astrocommunity.recipes.cache-colorscheme" },
{ import = "astrocommunity.recipes.neo-tree-dark" },
{ import = "astrocommunity.recipes.neovide" },
-- { import = "astrocommunity.recipes.ai" },
-- Now provided by core
-- { import = "astrocommunity.bars-and-lines.vim-illuminate" },
-- { import = "astrocommunity.editing-support.todo-comments-nvim" },
-- Completion
{ import = "astrocommunity.completion.blink-cmp-git" },
{ 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 = {
opt = { -- vim.opt.<key>
number = true, -- sets vim.opt.number
relativenumber = false, -- sets vim.opt.relativenumber
relativenumber = true, -- 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
@ -49,7 +49,6 @@ 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.
@ -82,15 +81,32 @@ return {
-- Normal mode : Custom mappings
["<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
["<F4>"] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to <Ctrl+F4> on my keyboard
["<F3>"] = {
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
i = {
["<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
["<F4>"] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to <Ctrl+F4> on my keyboard
["<F3>"] = {
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
t = {
-- Switch to normal mode in terminal mode
@ -102,10 +118,15 @@ return {
["<C-j>"] = false,
["<C-k>"] = false,
-- 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
["<F4>"] = { function() require("astrocore").toggle_term_cmd({cmd="tig", direction="float"}) end, desc = "Tig terminal" }, -- F28 corresponds to <Ctrl+F4> on my keyboard
["<F3>"] = {
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,
-- },
-- },
-- },
-- },
-- },
}

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
Spring
Drupal
Vault
Jenkinsfile
Dockerfile
jenkinsfile
Jenkins
Kubernetes