kickstart.nvim/lua/custom/plugins/init.lua

124 lines
4.1 KiB
Lua

-- Plugins in this file
-- Git Blame Plugin
-- File Explorer
-- GitHub Copilot Chat
return {
-- Git Blame Plugin
{
'f-person/git-blame.nvim',
-- load the plugin at startup
event = 'VeryLazy',
-- Because of the keys part, you will be lazy loading this plugin.
-- The plugin will only load once one of the keys is used.
-- If you want to load the plugin at startup, add something like event = "VeryLazy",
-- or lazy = false. One of both options will work.
opts = {
-- your configuration comes here
-- for example
enabled = true, -- if you want to enable the plugin
message_template = ' <author> • <date> • <summary> ', -- template for the blame message, check the Message template section for more options
date_format = '%Y-%m-%d %H:%M', -- template for the date, check Date format section for more options
virtual_text_column = 1, -- virtual text start column, check Start virtual text at column section for more options
},
},
-- File Explorer
{
'stevearc/oil.nvim',
---@module 'oil'
---@type oil.SetupOpts
opts = {
default_file_explorer = true,
view_options = {
show_hidden = true,
},
},
-- Optional dependencies
dependencies = { { 'echasnovski/mini.icons', opts = {} } },
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons
-- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations.
lazy = false,
},
-- GitHub Copilot Chat
{
'CopilotC-Nvim/CopilotChat.nvim',
dependencies = {
{ 'github/copilot.vim' }, -- or zbirenbaum/copilot.lua
{ 'nvim-lua/plenary.nvim', branch = 'master' }, -- for curl, log and async functions
},
build = 'make tiktoken', -- Only on MacOS or Linux
opts = {
-- See Configuration section for options
},
-- See Commands section for default commands if you want to lazy load on them
},
{
'yetone/avante.nvim',
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
-- ⚠️ must add this setting! ! !
build = function()
-- conditionally use the correct build system for the current OS
if vim.fn.has 'win32' == 1 then
return 'powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false'
else
return 'make'
end
end,
event = 'VeryLazy',
version = false, -- Never set this value to "*"! Never!
---@module 'avante'
---@type avante.Config
opts = {
-- add any opts here
-- for exampleprovider = "ollama",
providers = {
ollama = {
endpoint = 'http://127.0.0.1:11434', -- Note that there is no /v1 at the end.
model = 'llama3.2:3b',
},
},
},
dependencies = {
'nvim-lua/plenary.nvim',
'MunifTanjim/nui.nvim',
--- The below dependencies are optional,
'echasnovski/mini.pick', -- for file_selector provider mini.pick
'nvim-telescope/telescope.nvim', -- for file_selector provider telescope
'hrsh7th/nvim-cmp', -- autocompletion for avante commands and mentions
'ibhagwan/fzf-lua', -- for file_selector provider fzf
'stevearc/dressing.nvim', -- for input provider dressing
'folke/snacks.nvim', -- for input provider snacks
'nvim-tree/nvim-web-devicons', -- or echasnovski/mini.icons
'zbirenbaum/copilot.lua', -- for providers='copilot'
{
-- support for image pasting
'HakonHarnes/img-clip.nvim',
event = 'VeryLazy',
opts = {
-- recommended settings
default = {
embed_image_as_base64 = false,
prompt_for_file_name = false,
drag_and_drop = {
insert_mode = true,
},
-- required for Windows users
use_absolute_path = true,
},
},
},
{
-- Make sure to set this up properly if you have lazy=true
'MeanderingProgrammer/render-markdown.nvim',
opts = {
file_types = { 'markdown', 'Avante' },
},
ft = { 'markdown', 'Avante' },
},
},
},
}