504 lines
13 KiB
Lua
504 lines
13 KiB
Lua
local function masterBranch(dep)
|
|
return {
|
|
dep,
|
|
branch = "master",
|
|
}
|
|
end
|
|
|
|
return {
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
opts = {
|
|
ensure_installed = {
|
|
"bash",
|
|
"html",
|
|
"javascript",
|
|
"json",
|
|
"lua",
|
|
"markdown",
|
|
"markdown_inline",
|
|
"python",
|
|
"query",
|
|
"regex",
|
|
"tsx",
|
|
"typescript",
|
|
"vim",
|
|
"yaml",
|
|
"heex",
|
|
"elixir",
|
|
},
|
|
highlight = { enable = true },
|
|
indent = { enable = true },
|
|
incremental_selection = {
|
|
enable = true,
|
|
keymaps = {
|
|
node_incremental = "v",
|
|
node_decremental = "V",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"gsuuon/note.nvim",
|
|
lazy = false,
|
|
opts = {
|
|
-- opts.spaces are note workspace parent directories.
|
|
-- These directories contain a `notes` directory which will be created if missing.
|
|
-- `<space path>/notes` acts as the note root, so for space '~' the note root is `~/notes`.
|
|
-- Defaults to { '~' }.
|
|
spaces = {
|
|
"~/git",
|
|
},
|
|
|
|
-- Set keymap = false to disable keymapping
|
|
keymap = {
|
|
prefix = "<leader>n",
|
|
},
|
|
},
|
|
cmd = "Note",
|
|
ft = "note",
|
|
},
|
|
-- { "nvim-neotest/nvim-nio" },
|
|
{ "nvim-lualine/lualine.nvim" },
|
|
-- {
|
|
-- "nvim-neotest/neotest",
|
|
-- dependencies = {
|
|
-- "jfpedroza/neotest-elixir",
|
|
-- },
|
|
-- opts = {
|
|
-- adapters = {
|
|
-- ["neotest-elixir"] = {},
|
|
-- },
|
|
-- },
|
|
-- },
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
opts = {
|
|
servers = {
|
|
-- disable to prevent elixir extra to install it automatically
|
|
elixirls = false,
|
|
},
|
|
},
|
|
},
|
|
{ "chrisgrieser/nvim-spider", lazy = true },
|
|
-- {
|
|
-- "hrsh7th/nvim-cmp",
|
|
-- opts = {
|
|
-- sources = {
|
|
-- { name = "copilot", group_index = 2 },
|
|
-- -- Other Sources
|
|
-- { name = "nvim_lsp", group_index = 2 },
|
|
-- { name = "path", group_index = 2 },
|
|
-- { name = "luasnip", group_index = 2 },
|
|
-- },
|
|
-- },
|
|
-- },
|
|
{
|
|
"ibhagwan/fzf-lua",
|
|
opts = {
|
|
buffers = {
|
|
actions = {
|
|
["ctrl-w"] = { fn = require("fzf-lua.actions").buf_del, reload = true },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"MagicDuck/grug-far.nvim",
|
|
opts = { headerMaxWidth = 80 },
|
|
cmd = "GrugFar",
|
|
keys = {
|
|
{
|
|
"<leader>sr",
|
|
function()
|
|
local grug = require("grug-far")
|
|
local ext = vim.bo.buftype == "" and vim.fn.expand("%:e")
|
|
grug.open({
|
|
transient = true,
|
|
prefills = {
|
|
filesFilter = ext and ext ~= "" and "*." .. ext or nil,
|
|
},
|
|
})
|
|
end,
|
|
mode = { "n", "v" },
|
|
desc = "Search and Replace",
|
|
},
|
|
},
|
|
},
|
|
-- {
|
|
-- "garymjr/nvim-snippets",
|
|
-- opts = {
|
|
-- search_paths = { "/Users/kacper.marzecki@schibsted.com/.snippets" },
|
|
-- },
|
|
-- },
|
|
{
|
|
"folke/snacks.nvim",
|
|
opts = {
|
|
-- dashboard = { enabled = false },
|
|
-- scratch = { enabled = false },
|
|
-- terminal = { enabled = false },
|
|
scroll = { enabled = false },
|
|
-- indent = { enabled = false },
|
|
},
|
|
},
|
|
{
|
|
"rafamadriz/friendly-snippets",
|
|
enabled = false,
|
|
},
|
|
{
|
|
"folke/zen-mode.nvim",
|
|
keys = {
|
|
{
|
|
"<leader>z",
|
|
"<cmd>ZenMode<CR>",
|
|
desc = "Zen Mode",
|
|
},
|
|
},
|
|
opts = {
|
|
window = {
|
|
backdrop = 0.95, -- shade the backdrop of the Zen window. Set to 1 to keep the same as Normal
|
|
-- height and width can be:
|
|
-- * an absolute number of cells when > 1
|
|
-- * a percentage of the width / height of the editor when <= 1
|
|
-- * a function that returns the width or the height
|
|
width = 120, -- width of the Zen window
|
|
height = 1, -- height of the Zen window
|
|
-- by default, no options are changed for the Zen window
|
|
-- uncomment any of the options below, or add other vim.wo options you want to apply
|
|
options = {
|
|
-- signcolumn = "no", -- disable signcolumn
|
|
-- number = false, -- disable number column
|
|
-- relativenumber = false, -- disable relative numbers
|
|
-- cursorline = false, -- disable cursorline
|
|
-- cursorcolumn = false, -- disable cursor column
|
|
-- foldcolumn = "0", -- disable fold column
|
|
-- list = false, -- disable whitespace characters
|
|
},
|
|
},
|
|
plugins = {
|
|
-- disable some global vim options (vim.o...)
|
|
-- comment the lines to not apply the options
|
|
options = {
|
|
enabled = true,
|
|
ruler = false, -- disables the ruler text in the cmd line area
|
|
showcmd = false, -- disables the command in the last line of the screen
|
|
-- you may turn on/off statusline in zen mode by setting 'laststatus'
|
|
-- statusline will be shown only if 'laststatus' == 3
|
|
laststatus = 0, -- turn off the statusline in zen mode
|
|
},
|
|
twilight = { enabled = true }, -- enable to start Twilight when zen mode opens
|
|
gitsigns = { enabled = false }, -- disables git signs
|
|
tmux = { enabled = false }, -- disables the tmux statusline
|
|
todo = { enabled = false }, -- if set to "true", todo-comments.nvim highlights will be disabled
|
|
-- this will change the font size on kitty when in zen mode
|
|
-- to make this work, you need to set the following kitty options:
|
|
-- - allow_remote_control socket-only
|
|
-- - listen_on unix:/tmp/kitty
|
|
kitty = {
|
|
enabled = false,
|
|
font = "+4", -- font size increment
|
|
},
|
|
-- this will change the font size on alacritty when in zen mode
|
|
-- requires Alacritty Version 0.10.0 or higher
|
|
-- uses `alacritty msg` subcommand to change font size
|
|
alacritty = {
|
|
enabled = false,
|
|
font = "14", -- font size
|
|
},
|
|
-- this will change the font size on wezterm when in zen mode
|
|
-- See alse also the Plugins/Wezterm section in this projects README
|
|
wezterm = {
|
|
enabled = false,
|
|
-- can be either an absolute font size or the number of incremental steps
|
|
font = "+4", -- (10% increase per step)
|
|
},
|
|
},
|
|
on_open = function(win) end,
|
|
on_close = function() end,
|
|
},
|
|
},
|
|
{
|
|
"nvim-telescope/telescope.nvim",
|
|
enabled = true,
|
|
opts = {
|
|
defaults = {
|
|
mappings = {
|
|
i = {
|
|
["<C-h>"] = "which_key",
|
|
["<C-j>"] = "move_selection_next",
|
|
["<C-k>"] = "move_selection_previous",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
keys = {
|
|
{
|
|
"<leader>,",
|
|
false,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"tomasky/bookmarks.nvim",
|
|
dependencies = { "nvim-telescope/telescope.nvim" },
|
|
config = function(_, opts)
|
|
require("bookmarks").setup(opts)
|
|
require("telescope").load_extension("bookmarks")
|
|
end,
|
|
},
|
|
{
|
|
"gpanders/nvim-parinfer",
|
|
},
|
|
{
|
|
"zaldih/themery.nvim",
|
|
lazy = false,
|
|
opts = {
|
|
themes = {
|
|
-- "nightfox",
|
|
-- "carbonfox",
|
|
-- "terafox",
|
|
-- "nordfox",
|
|
-- "duskfox",
|
|
-- "dawnfox",
|
|
-- "dayfox",
|
|
-- "blue",
|
|
-- "darkblue",
|
|
-- "blue",
|
|
-- "delek",
|
|
-- "desert",
|
|
-- "elflord",
|
|
-- "evening",
|
|
-- "industry",
|
|
-- "koehler",
|
|
-- "morning",
|
|
-- "murphy",
|
|
-- "pablo",
|
|
"peachpuff",
|
|
"kanagawa-wave",
|
|
"kanagawa-dragon",
|
|
"kanagawa-lotus",
|
|
-- "ron",
|
|
-- "shine",
|
|
-- "slate",
|
|
-- "torte",
|
|
-- "zellner",
|
|
"tokyonight",
|
|
"tokyonight-night",
|
|
"tokyonight-storm",
|
|
"tokyonight-day",
|
|
"tokyonight-moon",
|
|
"oxocarbon",
|
|
"vscode",
|
|
},
|
|
},
|
|
},
|
|
{ "EdenEast/nightfox.nvim", opts = {
|
|
colorblind = {
|
|
enable = true,
|
|
},
|
|
} },
|
|
{ "catppuccin/nvim", name = "catppuccin" },
|
|
{
|
|
"folke/tokyonight.nvim",
|
|
opts = {
|
|
transparent = true,
|
|
styles = {
|
|
sidebars = "transparent",
|
|
floats = "transparent",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"michaelb/sniprun",
|
|
branch = "master",
|
|
build = "sh install.sh",
|
|
config = function()
|
|
require("sniprun").setup({
|
|
repl_enable = { "Elixir_original", "elixir" },
|
|
display = {
|
|
"TerminalWithCode",
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"robitx/gp.nvim",
|
|
opts = {
|
|
agents = {
|
|
{
|
|
provider = "ollama",
|
|
name = "warhammer",
|
|
chat = true,
|
|
command = false,
|
|
-- string with model name or table with model name and parameters
|
|
model = {
|
|
model = "llama3",
|
|
temperature = 0.6,
|
|
top_p = 1,
|
|
min_p = 0.05,
|
|
},
|
|
-- system prompt (use this to specify the persona/role of the AI)
|
|
system_prompt = "You are a general AI assistant.",
|
|
},
|
|
},
|
|
|
|
providers = {
|
|
ollama = {
|
|
endpoint = "http://localhost:11434/v1/chat/completions",
|
|
},
|
|
openai = {
|
|
endpoint = "https://api.openai.com/v1/chat/completions",
|
|
secret = {
|
|
"echo ",
|
|
"$OPENAI_API_KEY",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"lmantw/themify.nvim",
|
|
|
|
lazy = false,
|
|
priority = 999,
|
|
|
|
opts = {
|
|
"folke/tokyonight.nvim",
|
|
"Yazeed1s/minimal.nvim",
|
|
masterBranch("sho-87/kanagawa-paper.nvim"),
|
|
masterBranch("ray-x/starry.nvim"),
|
|
masterBranch("sainnhe/everforest"),
|
|
"default",
|
|
},
|
|
},
|
|
{
|
|
"vhyrro/luarocks.nvim",
|
|
priority = 1000,
|
|
opts = {
|
|
luarocks_build_args = {
|
|
"--with-lua-include=/usr/include",
|
|
},
|
|
},
|
|
},
|
|
-- {
|
|
-- "stevearc/oil.nvim",
|
|
-- ---@module 'oil'
|
|
-- ---@type oil.SetupOpts
|
|
-- opts = {},
|
|
-- -- 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,
|
|
-- },
|
|
{
|
|
"yetone/avante.nvim",
|
|
event = "VeryLazy",
|
|
version = false,
|
|
-- for macos
|
|
opts = {
|
|
provider = "copilot",
|
|
copilot = {
|
|
-- endpoint = "https://api.githubcopilot.com/chat/completions",
|
|
model = "claude-3.7-sonnet",
|
|
-- timeout = 30000, -- timeout in milliseconds
|
|
-- temperature = 0, -- adjust if needed
|
|
-- max_tokens = 4096,
|
|
-- reasoning_effort = "high" -- only supported for reasoning models (o1, etc.)
|
|
},
|
|
},
|
|
-- for linux
|
|
-- or {
|
|
-- provider = "openai",
|
|
-- --
|
|
-- openai = {
|
|
-- model = "gpt-4o",
|
|
-- },
|
|
-- -- behaviour = {
|
|
-- -- --- ... existing behaviours
|
|
-- -- enable_cursor_planning_mode = true, -- enable cursor planning mode!
|
|
-- -- },
|
|
-- provider = "ollama",
|
|
-- ollama = {
|
|
-- endpoint = "http://127.0.0.1:11434", -- Note that there is no /v1 at the end.
|
|
-- model = "codellama:7b-instruct",
|
|
-- },
|
|
-- },
|
|
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
|
|
build = "make",
|
|
-- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows
|
|
dependencies = {
|
|
"nvim-treesitter/nvim-treesitter",
|
|
"stevearc/dressing.nvim",
|
|
"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
|
|
"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" },
|
|
},
|
|
},
|
|
},
|
|
{ "akinsho/toggleterm.nvim", version = "*", config = true },
|
|
{
|
|
"ThePrimeagen/harpoon",
|
|
branch = "harpoon2",
|
|
dependencies = { "nvim-lua/plenary.nvim" },
|
|
opts = {
|
|
file_with_line = {
|
|
create_list_item = function()
|
|
local file_path = vim.fn.expand("%:p") -- Absolute file path
|
|
local line_number = vim.fn.line(".")
|
|
|
|
if file_path == "" then
|
|
return nil
|
|
end
|
|
|
|
return {
|
|
value = file_path .. ":" .. line_number,
|
|
context = { file_path = file_path, line_number = line_number },
|
|
}
|
|
end,
|
|
|
|
select = function(list_item, list, option)
|
|
vim.cmd("edit " .. list_item.context.file_path)
|
|
|
|
-- Jump to the line
|
|
vim.api.nvim_win_set_cursor(0, { list_item.context.line_number, 0 })
|
|
end,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"sindrets/diffview.nvim",
|
|
opts = {},
|
|
},
|
|
}
|