Compare commits

..

No commits in common. "7328b847df551a1c034063356e071a59b5b7c7bf" and "c75b77b0d60df65e864263058e2e973de7e61c5f" have entirely different histories.

18 changed files with 521 additions and 0 deletions

View File

@ -0,0 +1,72 @@
vim.api.nvim_create_autocmd(
"FileType", {
desc = "Customizations for groovy files",
pattern = { "groovy", "Jenkinsfile" },
callback = function()
local utils = require("astronvim.utils")
utils.notify("Loading autocmd customizations for groovy files")
-- Terminal settings
-- Define prefered options for the terminal
-- local command = string.format(" groovy %s", vim.api.nvim_buf_get_name(0))
local name = "groovy"
local command = " groovysh"
local direction = "horizontal"
local size = 25
local toggle_key = "<F10>"
-- Define a new terminal dedicated to groovy
local toggleterm = require('toggleterm')
local Terminal = require('toggleterm.terminal').Terminal
local groovy = Terminal:new({
name = name,
cmd = command,
direction = direction,
size = size,
hidden = true,
close_on_exit = true,
})
-- Spawn in background so it will be ready to execute code
groovy:spawn()
-- -- Define a function to run code from current buffer in the terminal
-- function _Groovy_buffer_exec()
-- if not groovy:is_open() then groovy:open(size, direction) end
-- groovy:send(' clear', true)
-- groovy:send(command, true)
-- end
--
-- Define a function to run code from visual selection in the terminal
function _Groovy_visual_exec()
if not groovy:is_open() then groovy:open(size, direction) end
toggleterm.send_lines_to_terminal("visual_lines", true, { groovy.id })
end
-- Define a keymap to run the current buffer in the terminal
vim.keymap.set({ 'n', 'i', 'v', 't' }, '<F10>', function() groovy:toggle(size, direction) end,
{ noremap = true, silent = true })
vim.api.nvim_set_keymap("v", "<F22>", "<cmd>lua _Groovy_visual_exec()<cr>", { noremap = true, silent = true })
-- Vim settings
vim.opt_local.signcolumn = 'auto'
vim.opt_local.foldcolumn = 'auto'
vim.opt_local.makeprg = 'groovy %'
vim.keymap.set({ 'n', 'i', 'v' }, '<F5>', ':make<CR>', { buffer = true })
-- vim.keymap.nnoremap { '<leader>²x', ':make<CR>' }
-- vim.keymap.inoremap { '<leader>²x', '<ESC>:make<CR>' }
-- DevDocs
require('nvim-devdocs').setup({
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
})
vim.keymap.set({ 'n', 'i', 'v' }, '<F1>', ':DevdocsOpen groovy-2.4<CR>', { buffer = true })
end,
}
)

View File

@ -0,0 +1,87 @@
vim.api.nvim_create_autocmd(
"FileType", {
pattern = { "python" },
desc = "Customizations for python files",
callback = function()
local utils = require("astronvim.utils")
utils.notify("Loading autocmd customizations for python files")
-- Terminal settings
-- Define prefered options for the terminal
local name = "python"
local direction = "vertical"
local size = 100
-- Define a new terminal dedicated to python
local Terminal = require('toggleterm.terminal').Terminal
local python = Terminal:new({
name = name,
size = size,
direction = direction,
hidden = true,
-- close_on_exit = true,
})
-- Spawn it in background so it will be ready to execute code
python:spawn()
-- Define a function to toggle the terminal
function _Python_terminal_toggle()
python:toggle(size, direction)
end
-- Define a function to run code from current buffer in the terminal
function _Python_buffer_exec()
local command = string.format(" python %s", vim.api.nvim_buf_get_name(0))
if not python:is_open() then python:open(size, direction) end
python:send(' clear', true)
python:send(command, true)
end
-- Define a keymap to run the current buffer in the terminal
-- <F10> corresponds to F10 on my keyboard
-- <F22> corresponds to Shift + F10 on my keyboard
-- <F34> corresponds to Ctrl + F10 on my keyboard
vim.api.nvim_set_keymap("n", "<F10>",
"<cmd>lua _Python_terminal_toggle()<cr>",
{ noremap = true, silent = true })
vim.api.nvim_set_keymap("i", "<F10>",
"<cmd>lua _Python_terminal_toggle()<cr>",
{ noremap = true, silent = true })
vim.api.nvim_set_keymap("t", "<F10>",
"<cmd>lua _Python_terminal_toggle()<cr>",
{ noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<F34>",
-- "<cmd>TermExec name=python cmd='python %'<cr>",
'<cmd>lua _Python_buffer_exec()<cr>',
{ noremap = true, silent = true })
vim.api.nvim_set_keymap("i", "<F34>",
-- "<cmd>TermExec name=python cmd='python %'<cr>",
'<cmd>lua _Python_buffer_exec()<cr>',
{ noremap = true, silent = true })
vim.api.nvim_set_keymap("t", "<F34>",
-- "<cmd>TermExec name=python cmd='python %'<cr>",
'<cmd>lua _Python_buffer_exec()<cr>',
{ noremap = true, silent = true })
utils.notify("Type <F10> to toggle the python terminal")
utils.notify("Type Ctrl+<F10> to run current buffer in the python terminal")
-- DevDocs
require('nvim-devdocs').setup({
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
})
vim.keymap.set({ 'n', 'i', 'v' }, '<F1>', ':DevdocsOpen python-3.10<CR>', { buffer = true })
utils.notify("Type <F1> to access DevDocs documentation for python")
-- Vim settings
vim.opt_local.signcolumn = "auto"
vim.opt_local.foldcolumn = "auto"
end,
}
)

View File

@ -0,0 +1,6 @@
vim.api.nvim_create_autocmd("TermOpen", {
desc = "Auto switch to insert mode for terminal",
group = vim.api.nvim_create_augroup("term_auto_insert", { clear = true }),
pattern = "term://*",
command = "startinsert",
})

View File

@ -0,0 +1,9 @@
vim.api.nvim_create_autocmd("FileType", {
desc = "Enable wrap and spell for text like documents",
group = vim.api.nvim_create_augroup("auto_spell", { clear = true }),
pattern = { "gitcommit", "markdown", "text", "plaintex" },
callback = function()
vim.opt_local.wrap = true
vim.opt_local.spell = true
end,
})

1
lua/user/colorscheme.lua Normal file
View File

@ -0,0 +1 @@
return "onenord"

52
lua/user/init.lua Normal file
View File

@ -0,0 +1,52 @@
return {
lsp = {
formatting = {
disabled = {
"yq",
"yamllint",
"yamlls"
},
},
},
-- This function is run last and is a good place to configuring
-- augroups/autocommands and custom filetypes also this just pure lua so
-- anything that doesn't fit in the normal config locations above can go here
polish = function()
-- Set key binding
-- Set autocommands
-- vim.api.nvim_create_augroup("packer_conf", { clear = true })
-- vim.api.nvim_create_autocmd("BufWritePost", {
-- desc = "Sync packer after modifying plugins.lua",
-- group = "packer_conf",
-- pattern = "plugins.lua",
-- command = "source <afile> | PackerSync",
-- })
-- Set up custom autocmds
require "user.autocmds.text"
require "user.autocmds.terminal"
require "user.autocmds.groovy"
require "user.autocmds.python"
-- Set up custom filetypes
-- vim.filetype.add {
-- extension = {
-- foo = "fooscript",
-- },
-- filename = {
-- ["Foofile"] = "fooscript",
-- },
-- pattern = {
-- ["~/%.config/foo/.*"] = "fooscript",
-- },
-- }
vim.filetype.add {
filename = {
["Jenkinsfile"] = "groovy",
},
extension = {
Jenkinsfile = "groovy",
},
}
end,
}

62
lua/user/mappings.lua Normal file
View File

@ -0,0 +1,62 @@
return {
-- Normal mode
n = {
-- ["<leader>bb"] = { "<cmd>tabnew<cr>", desc = "New tab" },
-- ["<leader>bc"] = { "<cmd>BufferLinePickClose<cr>", desc = "Pick to close" },
-- ["<leader>bj"] = { "<cmd>BufferLinePick<cr>", desc = "Pick to jump" },
-- ["<leader>bt"] = { "<cmd>BufferLineSortByTabs<cr>", desc = "Sort by tabs" },
-- Easy buffer navigation
["<tab>"] = { "<cmd>bnext<cr>", desc = "Switch to next buffer" },
["<S-tab>"] = { "<cmd>bprevious<cr>", desc = "Switch to previous buffer" },
-- quick save
-- ["<C-s>"] = { ":w!<cr>", desc = "Save File" }, -- change description but the same command
-- My telescope keybindings
["<F1>"] = { "<cmd>Telescope help_tags<cr>", desc = "Find help with Telescope" },
["<leader>gf"] = { "<cmd>Telescope git_files<cr>", desc = "Find git files with Telescope" },
["<leader>fq"] = { "<cmd>Telescope quickfix<cr>", desc = "Find quickfixes with Telescope" },
["<leader>fs"] = { "<cmd>Telescope spell_suggest<cr>", desc = "Find spell suggestions with Telescope" },
["<leader>fp"] = { "<cmd>Telescope projects<cr>", desc = "Find projetcs with Telescope" },
-- My personal keybindings
["<leader>²"] = { name = "Personal" },
["<leader>²t"] = { name = "Terminals" },
["<leader>²tt"] = { "<cmd>TermSelect<cr>", desc = "Select a terminal" },
["<leader>²tg"] = { "<cmd>terminal tig<cr>", desc = "Open tig in a new tab" },
["<leader>²n"] = { name = "Neotree" },
["<leader>²nb"] = { "<cmd>Neotree toggle buffers left<cr>", desc = "Open Neotree Buffers" },
["<leader>²ng"] = { "<cmd>Neotree toggle git_status left<cr>", desc = "Open Neotree Git status" },
["<F2>"] = { '<cmd>Neotree toggle<cr>', desc = "File Explorer" }, -- F26 corresponds to <Ctrl+F2> on my keyboard
["<F3>"] = { function() require("astronvim.utils").toggle_term_cmd "lazygit" end, desc = "Lazygit terminal" }, -- F27 corresponds to <Ctrl+F3> on my keyboard
["<F4>"] = { function() require("astronvim.utils").toggle_term_cmd "tig" end, desc = "Tig terminal" }, -- F28 corresponds to <Ctrl+F4> on my keyboard
},
-- Insert mode
i = {
["<F2>"] = { '<cmd>Neotree toggle<cr>', desc = "File Explorer" }, -- F26 corresponds to <Ctrl+F2> on my keyboard
["<F3>"] = { function() require("astronvim.utils").toggle_term_cmd "lazygit" end, desc = "Lazygit terminal" }, -- F27 corresponds to <Ctrl+F3> on my keyboard
["<F4>"] = { function() require("astronvim.utils").toggle_term_cmd "tig" end, desc = "Tig terminal" }, -- F28 corresponds to <Ctrl+F4> on my keyboard
},
-- Terminal mode
t = {
-- setting a mapping to false will disable it
-- ["<esc>"] = false,
-- Switch to normal mode in terminal mode
["<Esc><Esc><Esc>"] = { "<C-\\><C-n>" },
-- Clear Ctrl+l so that we can use it to clear the terminal
["<C-l>"] = false,
["<C-h>"] = false,
-- Clear Ctrl-J and Ctrl-K so that we can use them to navigate the terminal (for lazygit)
["<C-j>"] = false,
["<C-k>"] = false,
-- My terms
["<F3>"] = { function() require("astronvim.utils").toggle_term_cmd "lazygit" end, desc = "Lazygit terminal" }, -- F27 corresponds to <Ctrl+F3> on my keyboard
["<F4>"] = { function() require("astronvim.utils").toggle_term_cmd "tig" end, desc = "Tig terminal" }, -- F28 corresponds to <Ctrl+F4> on my keyboard
},
}

39
lua/user/options.lua Normal file
View File

@ -0,0 +1,39 @@
-- set vim options here (vim.<first_key>.<second_key> = value)
return {
opt = {
cmdheight = 1,
scrolloff = 0, -- Set scroll offset to zero so that zt and zb work as expected
number = true, -- sets vim.opt.number
relativenumber = false, -- sets vim.opt.relativenumber
signcolumn = "auto", -- sets vim.opt.signcolumn to auto
foldcolumn = "auto", -- sets vim.opt.foldcolumn to auto
spelllang = "fr", -- Set spell language to french
-- spell = false, -- sets vim.opt.spell
-- wrap = false, -- sets vim.opt.wrap
},
g = {
-- mapleader = " ", -- sets vim.g.mapleader
-- autoformat_enabled = true, -- enable or disable auto formatting at start (lsp.formatting.format_on_save must be enabled)
-- cmp_enabled = true, -- enable completion at start
-- autopairs_enabled = true, -- enable autopairs at start
-- diagnostics_mode = 3, -- set the visibility of diagnostics in the UI (0=off, 1=only show in status line, 2=virtual text off, 3=all on)
-- icons_enabled = true, -- disable icons in the UI (disable if no nerd font is available, requires :PackerSync after changing)
-- ui_notifications_enabled = true, -- disable notifications when toggling UI elements
},
}
-- If you need more control, you can use the function()...end notation
-- return function(local_vim)
-- local_vim.opt.relativenumber = true
-- local_vim.g.mapleader = " "
-- local_vim.opt.whichwrap = vim.opt.whichwrap - { 'b', 's' } -- removing option from list
-- local_vim.opt.shortmess = vim.opt.shortmess + { I = true } -- add to option list
--
-- return local_vim
-- end

View File

@ -0,0 +1,8 @@
return {
{ 'jacoborus/tender.vim', lazy = false },
{ 'altercation/vim-colors-solarized', lazy = false },
{ 'bluz71/vim-moonfly-colors', lazy = false },
{ 'ray-x/aurora', lazy = false },
{ 'rmehri01/onenord.nvim' },
{ 'joshdick/onedark.vim' },
}

View File

@ -0,0 +1,63 @@
return {
-- Add the community repository of plugin specifications
"AstroNvim/astrocommunity",
-- example of importing a plugin, comment out to use it or add your own
-- available plugins can be found at https://github.com/AstroNvim/astrocommunity
-- { import = "astrocommunity.colorscheme.catppuccin" },
-- { import = "astrocommunity.pack.rust" },
-- { import = "astrocommunity.pack.python" },
--
-- Personal config
{ import = "astrocommunity.pack.bash" },
{ import = "astrocommunity.pack.json" },
{ import = "astrocommunity.pack.yaml" },
{ import = "astrocommunity.pack.toml" },
{ import = "astrocommunity.pack.markdown" },
-- { import = "astrocommunity.pack.ansible" },
{ import = "astrocommunity.pack.docker" },
{ import = "astrocommunity.pack.helm" },
{ import = "astrocommunity.pack.terraform" },
{ import = "astrocommunity.pack.python" },
{ import = "astrocommunity.pack.java" },
{ import = "astrocommunity.pack.html-css" },
{ import = "astrocommunity.pack.angular" },
{ import = "astrocommunity.bars-and-lines.smartcolumn-nvim" },
{ import = "astrocommunity.bars-and-lines.vim-illuminate" },
{ import = "astrocommunity.completion.copilot-lua-cmp" },
{ import = "astrocommunity.diagnostics.trouble-nvim" },
{ import = "astrocommunity.editing-support.todo-comments-nvim" },
-- { import = "astrocommunity.editing-support.chatgpt-nvim" },
{ import = "astrocommunity.programming-language-support.rest-nvim" },
-- further customize the options set by the community
{
"rest-nvim/rest.nvim",
dependencies = { "luarocks.nvim" },
config = function()
require("rest-nvim").setup()
end,
},
{
"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.project.project-nvim" },
{ import = "astrocommunity.colorscheme.vscode-nvim" },
{ import = "astrocommunity.colorscheme.github-nvim-theme" },
{ import = "astrocommunity.colorscheme.nord-nvim" },
{ import = "astrocommunity.colorscheme.nordic-nvim" },
{ import = "astrocommunity.colorscheme.iceberg-vim" },
}

View File

@ -0,0 +1,27 @@
-- Github Copilot official plugin
-- (Voir https://docs.github.com/fr/copilot/getting-started-with-github-copilot?tool=neovim)
-- Actuellement désactivé en faveur de la version communautaire (définie dans plugins/community.lua)
-- return {
-- {
-- "github/copilot.vim",
-- event = "InsertEnter",
-- keys = {
-- { "<F12>", "<cmd>Copilot panel<CR>", mode = { "n", "i", "v" }, desc = "Display Copilot panel" },
-- { "<C-a>", "<cmd>copilot#Accept()<CR>", mode = "i", desc = "Accept Copilot solution", { silent = true, expr = true } },
-- },
-- }
-- }
-- Exemple de configuration des touches
-- imap <silent><script><expr> <C-J> copilot#Accept("\<CR>")
-- let g:copilot_no_tab_map = v:true
-- Github Copilot Chat plugin
-- (Voir https://github.com/gptlang/CopilotChat.nvim)
return {
{
"gptlang/CopilotChat.nvim",
lazy = false,
}
}

View File

@ -0,0 +1,11 @@
return {
"luckasRanarison/nvim-devdocs",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim",
"nvim-treesitter/nvim-treesitter",
},
opts = {
previewer_cmd = "glow", -- for example: "glow"
}
}

View File

@ -0,0 +1,3 @@
return {
{ "modille/groovy.vim", lazy = false },
}

View File

@ -0,0 +1,27 @@
return {
{
"nvim-neo-tree/neo-tree.nvim",
opts = {
window = {
width = 50,
mappings = {
["<space>"] = false, -- disable space until we figure out which-key disabling
[">"] = "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,
},
}
}

View File

@ -0,0 +1,19 @@
return {
"jose-elias-alvarez/null-ls.nvim",
opts = function(_, config)
-- config variable is the default configuration table for the setup function call
local null_ls = require "null-ls"
-- Check supported formatters and linters
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
config.sources = {
-- Set a formatter
-- null_ls.builtins.formatting.stylua,
-- null_ls.builtins.formatting.prettier,
null_ls.builtins.formatting.npm_groovy_lint,
null_ls.builtins.diagnostics.npm_groovy_lint,
}
return config -- return final config table
end,
}

View File

@ -0,0 +1,17 @@
return {
-- direnv
{ "direnv/direnv.vim", lazy = false },
{
"vhyrro/luarocks.nvim",
priority = 1000,
config = true,
},
-- {
-- "rest-nvim/rest.nvim",
-- ft = "http",
-- dependencies = { "luarocks.nvim" },
-- config = function()
-- require("rest-nvim").setup()
-- end,
-- }
}

View File

@ -0,0 +1,13 @@
return {
"nvim-telescope/telescope.nvim",
dependencies = {
"nvim-telescope/telescope-file-browser.nvim",
"da-moon/telescope-toggleterm.nvim",
},
config = function(...)
require "plugins.configs.telescope" (...)
local telescope = require "telescope"
telescope.load_extension "file_browser"
telescope.load_extension "toggleterm"
end,
}

View File

@ -0,0 +1,5 @@
return {
{ "tpope/vim-surround", event = "User AstroFile" },
{ "tpope/vim-speeddating", event = "User AstroFile" },
{ "tpope/vim-repeat", event = "User AstroFile" },
}