aboutsummaryrefslogtreecommitdiffstats
path: root/lua/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'lua/plugins')
-rw-r--r--lua/plugins/codecompanion.lua559
-rw-r--r--lua/plugins/completition.lua82
-rw-r--r--lua/plugins/foatterm.lua22
-rw-r--r--lua/plugins/image.lua22
-rw-r--r--lua/plugins/img-clip.lua12
-rw-r--r--lua/plugins/markdown-preview.lua8
-rw-r--r--lua/plugins/markview.lua13
-rw-r--r--lua/plugins/navigator.lua1
-rw-r--r--lua/plugins/rustaceanvim.lua4
-rw-r--r--lua/plugins/snacks.lua154
10 files changed, 483 insertions, 394 deletions
diff --git a/lua/plugins/codecompanion.lua b/lua/plugins/codecompanion.lua
index 052b066..90c78b8 100644
--- a/lua/plugins/codecompanion.lua
+++ b/lua/plugins/codecompanion.lua
@@ -1,291 +1,328 @@
-local IS_DEV = false
return {
- {
- dir = IS_DEV and "~/Projects/research/codecompanion.nvim" or nil,
- "olimorris/codecompanion.nvim",
- dependencies = {
- "nvim-lua/plenary.nvim",
- "nvim-treesitter/nvim-treesitter",
- -- "nvim-telescope/telescope.nvim", -- Using telescope for file and buffer picker
- "jellydn/spinner.nvim", -- Show loading spinner when request is started
- "ravitemer/codecompanion-history.nvim", -- History management extension
- {
- "echasnovski/mini.diff",
- config = function()
- local diff = require "mini.diff"
- diff.setup { source = diff.gen_source.none() }
- end,
+ "olimorris/codecompanion.nvim",
+ branch = "main",
+ dependencies = {
+ {
+ "ravitemer/mcphub.nvim",
+ dependencies = {
+ "nvim-lua/plenary.nvim",
},
- {
- "ravitemer/mcphub.nvim",
- dependencies = {
- "nvim-lua/plenary.nvim",
- },
- build = "npm install -g mcp-hub@latest", -- Installs `mcp-hub` node binary globally
- config = function()
- require("mcphub").setup()
- end,
- },
- },
- opts = {
- log_level = "TRACE", -- or "DEBUG"
- adapters = {
- http = {
- ollama = function()
- return require("codecompanion.adapters").extend("ollama", {
- name = "tinyllama",
- env = {
- url = "http://127.0.0.1:11434",
- -- api_key = "",
- },
- headers = {
- ["Content-Type"] = "application/json",
- -- ["Authorization"] = "Bearer ${api_key}",
- },
- parameters = {
- sync = true,
- },
- schema = {
- model = {
- default = "qwen2.5-coder:0.5b",
- },
- },
- })
- end,
- anthropic = function()
- return require("codecompanion.adapters").extend("anthropic", {
- env = {
- api_key = "cmd:echo $ANTHROPIC_API_KEY",
- },
- schema = {
- model = {
- default = "claude-3-opus-20240229",
- },
- },
- })
- end,
- copilot = function()
- return require("codecompanion.adapters").extend("copilot", {
- schema = {
- model = {
- default = "gpt-4.1",
- },
- },
- })
- end,
- gemini = function()
- return require("codecompanion.adapters").extend("gemini", {
- env = {
- api_key = "cmd:echo $GEMINI_API_KEY",
+ build = "bundled_build.lua", -- Bundles `mcp-hub` binary along with the neovim plugin
+ config = function()
+ require("mcphub").setup({
+ use_bundled_binary = true, -- Use local `mcp-hub` binary
+ --- `mcp-hub` binary related options-------------------
+ config = vim.fn.expand("~/.config/mcphub/servers.json"), -- Absolute path to MCP Servers config file (will create if not exists)
+ port = 37373, -- The port `mcp-hub` server listens to
+ shutdown_delay = 5 * 60 * 000, -- Delay in ms before shutting down the server when last instance closes (default: 5 minutes)
+ use_bundled_binary = false, -- Use local `mcp-hub` binary (set this to true when using build = "bundled_build.lua")
+ mcp_request_timeout = 60000, --Max time allowed for a MCP tool or resource to execute in milliseconds, set longer for long running tasks
+ global_env = {}, -- Global environment variables available to all MCP servers (can be a table or a function returning a table)
+ workspace = {
+ enabled = true, -- Enable project-local configuration files
+ look_for = { ".mcphub/servers.json", ".vscode/mcp.json", ".cursor/mcp.json" }, -- Files to look for when detecting project boundaries (VS Code format supported)
+ reload_on_dir_changed = true, -- Automatically switch hubs on DirChanged event
+ port_range = { min = 40000, max = 41000 }, -- Port range for generating unique workspace ports
+ get_port = nil, -- Optional function returning custom port number. Called when generating ports to allow custom port assignment logic
+ },
+
+ ---Chat-plugin related options-----------------
+ auto_approve = false, -- Auto approve mcp tool calls
+ auto_toggle_mcp_servers = true, -- Let LLMs start and stop MCP servers automatically
+ extensions = {
+ avante = {
+ make_slash_commands = true, -- make /slash commands from MCP server prompts
+ }
+ },
+
+ --- Plugin specific options-------------------
+ native_servers = {}, -- add your custom lua native servers here
+ builtin_tools = {
+ edit_file = {
+ parser = {
+ track_issues = true,
+ extract_inline_content = true,
},
- })
- end,
- openai = function()
- return require("codecompanion.adapters").extend("openai", {
- env = {
- api_key = "cmd:echo $OPENAI_API_KEY",
- chat_url = "/v1/chat/completions",
- url = "https://api.openai.com",
+ locator = {
+ fuzzy_threshold = 0.8,
+ enable_fuzzy_matching = true,
},
- schema = {
- model = {
- default = function()
- return "gpt-4o-mini"
- end,
+ ui = {
+ go_to_origin_on_complete = true,
+ keybindings = {
+ accept = ".",
+ reject = ",",
+ next = "n",
+ prev = "p",
+ accept_all = "ga",
+ reject_all = "gr",
},
},
- })
+ },
+ },
+ ui = {
+ window = {
+ width = 0.8, -- 0-1 (ratio); "50%" (percentage); 50 (raw number)
+ height = 0.8, -- 0-1 (ratio); "50%" (percentage); 50 (raw number)
+ align = "center", -- "center", "top-left", "top-right", "bottom-left", "bottom-right", "top", "bottom", "left", "right"
+ relative = "editor",
+ zindex = 50,
+ border = "rounded", -- "none", "single", "double", "rounded", "solid", "shadow"
+ },
+ wo = { -- window-scoped options (vim.wo)
+ winhl = "Normal:MCPHubNormal,FloatBorder:MCPHubBorder",
+ },
+ },
+ json_decode = nil, -- Custom JSON parser function (e.g., require('json5').parse for JSON5 support)
+ on_ready = function(hub)
+ -- Called when hub is ready
end,
- openai_compatible_llama_cpp = function()
- return require("codecompanion.adapters").extend("openai_compatible", {
- env = {
- api_key = "cmd:echo $OPENAI_API_KEY",
- chat_url = "/v1/chat/completions",
- url = "http://127.0.0.1:8012",
- },
- headers = {
- ["Content-Type"] = "application/json",
- },
- schema = {
- model = {
- default = function()
- return "davinci"
- end,
- },
- },
- })
+ on_error = function(err)
+ -- Called on errors
end,
+ log = {
+ level = vim.log.levels.WARN,
+ to_file = false,
+ file_path = nil,
+ prefix = "MCPHub",
+ },
+ })
+ end,
+ },
+ "nvim-lua/plenary.nvim",
+ "nvim-treesitter/nvim-treesitter",
+ "nvim-treesitter/nvim-treesitter",
+ "jellydn/spinner.nvim", -- Show loading spinner when request is started
+ "ravitemer/codecompanion-history.nvim", -- History management extension
+ {
+ "echasnovski/mini.diff",
+ config = function()
+ local diff = require "mini.diff"
+ diff.setup { source = diff.gen_source.none() }
+ end,
+ },
+ {
+ "HakonHarnes/img-clip.nvim",
+ opts = {
+ filetypes = {
+ codecompanion = {
+ prompt_for_file_name = false,
+ template = "[Image]($FILE_PATH)",
+ use_absolute_path = true,
+ },
+ },
+ },
+ },
+ {
+ "OXY2DEV/markview.nvim",
+ lazy = false,
+ opts = {
+ preview = {
+ filetypes = { "markdown", "codecompanion" },
+ ignore_buftypes = {},
+ },
+ },
+ },
+
+ },
+ opts = {
+ log_level = "DEBUG",
+ },
+ config = function()
+ -- Compatibility patch for recent CodeCompanion/Copilot model schemas
+ -- where `schema.model.choices` can be a function instead of a table.
+ local adapter_utils = require("codecompanion.utils.adapters")
+ adapter_utils.model_choice = function(adapter)
+ local model = adapter_utils.model(adapter)
+ local choices = adapter.schema.model.choices
+
+ if type(choices) == "function" then
+ choices = choices(adapter, { async = false })
+ end
+
+ if type(choices) ~= "table" then
+ return nil
+ end
+
+ return choices[model]
+ end
- openai_compatible_qwen3_coder = function()
+ require("codecompanion").setup({
+ mcp = {
+ servers = {
+ ["duckduckgo-mcp"] = {
+ cmd = { "npx", "-y", "duckduckgo-mcp" },
+ },
+ },
+ opts = {
+ default_servers = { "duckduckgo-mcp" },
+ },
+ },
+ adapters = {
+ http = {
+ ["llama.cpp"] = function()
return require("codecompanion.adapters").extend("openai_compatible", {
env = {
- api_key = "cmd:echo $DASHSCOPE_API_KEY",
+ url = "http://127.0.0.1:8012", -- replace with your llama.cpp instance
chat_url = "/v1/chat/completions",
- url = "https://dashscope-intl.aliyuncs.com/compatible-mode",
- },
- headers = {
- ["Content-Type"] = "application/json",
- },
- schema = {
- model = {
- default = function()
- return "qwen3-coder-plus"
- end,
- },
- },
- })
- end,
-
- xai = function()
- return require("codecompanion.adapters").extend("xai", {
- env = {
- api_key = "cmd:op read op://personal/xAI_API/credential --no-newline",
- },
- })
- end,
- azure_openai = function()
- return require("codecompanion.adapters").extend("azure_openai", {
- env = {
- api_key = "cmd:echo $AZ_DS_API_KEY",
- endpoint = "https://DeepSeek-R1-nphob.eastus2.models.ai.azure.com",
- },
- schema = {
- model = {
- default = "DeepSeek-R1-nphob",
- },
},
})
end,
},
},
- display = {
- diff = {
- provider = "mini_diff",
- },
- },
- strategies = {
+ interactions = {
chat = {
- adapter = "openai_compatible_qwen3_coder",
- -- roles = { llm = " Copilot Chat", user = "IT Man" },
- },
- inline = { adapter = "copilot" },
- agent = { adapter = "copilot" },
- cmd = { adapter = "copilot" },
- },
- },
- config = function(_, options)
- require("codecompanion").setup(options)
- require("codecompanion").setup {
- opts = {
- language = "English",
- },
- extensions = {
- mcphub = {
- callback = "mcphub.extensions.codecompanion",
+ -- opts = {
+ -- system_prompt = function(ctx)
+ -- return "You are a helpful coding assistant. Today is " .. ctx.date
+ -- end,
+ -- },
+ auto_scroll = false,
+ tools = {
opts = {
- make_vars = true,
- make_slash_commands = true,
- show_result_in_chat = true,
+ default_tools = {
+ "agent",
+ "neovim",
+ "files",
+ "grep_search",
+ "get_changed_files",
+ "fetch_webpage",
+ },
+ auto_submit_errors = true, -- Send any errors to the LLM automatically?
+ auto_submit_success = true, -- Send any successful output to the LLM automatically?
},
},
- history = {
- enabled = true,
- opts = {
- -- Keymap to open history from chat buffer (default: gh)
- keymap = "gh",
- -- Keymap to save the current chat manually (when auto_save is disabled)
- save_chat_keymap = "sc",
- -- Save all chats by default (disable to save only manually using 'sc')
- auto_save = true,
- -- Number of days after which chats are automatically deleted (0 to disable)
- expiration_days = 0,
- -- Picker interface (auto resolved to a valid picker)
- picker = "snacks", -- ("telescope", "snacks", "fzf-lua", or "default")
- -- Optional filter function to control which chats are shown when browsing
- chat_filter = nil, -- function(chat_data) return boolean end
- -- Customize picker keymaps (optional)
- picker_keymaps = {
- rename = { n = "r", i = "<M-r>" },
- delete = { n = "d", i = "<M-d>" },
- duplicate = { n = "<C-y>", i = "<C-y>" },
+ slash_commands = {
+ ["file"] = {
+ -- Use Snacks as the provider for the /file command
+ opts = {
+ provider = "snacks", -- Can be "default", "telescope", "fzf_lua", "mini_pick" or "snacks"
},
- -- Automatically generate titles for new chats
- auto_generate_title = true,
- title_generation_opts = {
- -- Adapter for generating titles (defaults to current chat adapter)
- adapter = "copilot", -- Use copilot for cheaper title generation
- -- Model for generating titles (defaults to current chat model)
- model = "gpt-4.1", -- Use cheaper model for titles
- -- Number of user prompts after which to refresh the title (0 to disable)
- refresh_every_n_prompts = 3, -- Refresh after every 3rd user prompt
- -- Maximum number of times to refresh the title (default: 3)
- max_refreshes = 5,
- format_title = function(original_title)
- -- Custom formatting for titles
- return original_title
- end,
+ },
+ ["image"] = {
+ ---@param opts { adapter: CodeCompanion.HTTPAdapter }
+ ---@return boolean
+ enabled = function(opts)
+ return opts.adapter.opts and opts.adapter.opts.vision == true
+ end,
+ -- Keep snacks for image-aware picker preview
+ opts = {
+ provider = "snacks", -- Can be "default", "telescope", "fzf_lua", "mini_pick" or "snacks"
},
- -- On exiting and entering neovim, loads the last chat on opening chat
- continue_last_chat = false,
- -- When chat is cleared with `gx` delete the chat from history
- delete_on_clearing_chat = false,
- -- Directory path to save the chats
- dir_to_save = vim.fn.stdpath "data" .. "/codecompanion-history",
- -- Enable detailed logging for history extension
- enable_logging = false,
+ },
- -- Summary system
- summary = {
- -- Keymap to generate summary for current chat (default: "gcs")
- create_summary_keymap = "gcs",
- -- Keymap to browse summaries (default: "gbs")
- browse_summaries_keymap = "gbs",
- generation_opts = {
- adapter = "copilot", -- Use copilot for cheaper summary generation
- model = "gpt-4.1", -- Use cheaper model for summaries
- context_size = 90000, -- max tokens that the model supports
- include_references = true, -- include slash command content
- include_tool_outputs = true, -- include tool execution results
- system_prompt = nil, -- custom system prompt (string or function)
- format_summary = nil, -- custom function to format generated summary
- },
+ },
+ -- adapter = "llama.cpp",
+ adapter = {
+ name = "copilot",
+ model = "gpt-5-mini",
+ },
+ },
+ inline = {
+ -- adapter = "llama.cpp",
+ adapter = {
+ name = "copilot",
+ model = "gpt-5-mini",
+ },
+ },
+ cmd = {
+ -- adapter = "llama.cpp",
+ adapter = {
+ name = "copilot",
+ model = "gpt-5-mini",
+ },
+ },
+ background = {
+ -- adapter = "llama.cpp"
+ adapter = {
+ name = "copilot",
+ model = "gpt-5-mini",
+ },
+ },
+ },
+ extensions = {
+ history = {
+ enabled = true,
+ opts = {
+ keymap = "gh",
+ save_chat_keymap = "sc",
+ auto_save = true,
+ expiration_days = 0,
+ picker = "snacks",
+ chat_filter = nil,
+ picker_keymaps = {
+ rename = { n = "r", i = "<M-r>" },
+ delete = { n = "d", i = "<M-d>" },
+ duplicate = { n = "<C-y>", i = "<C-y>" },
+ },
+ auto_generate_title = true,
+ title_generation_opts = {
+ adapter = nil,
+ model = nil,
+ refresh_every_n_prompts = 0, -- e.g., 3 to refresh after every 3rd user prompt
+ max_refreshes = 3,
+ format_title = function(original_title)
+ return original_title
+ end
+ },
+ continue_last_chat = false,
+ delete_on_clearing_chat = false,
+ dir_to_save = vim.fn.stdpath("data") .. "/codecompanion-history",
+ enable_logging = false,
+
+ summary = {
+ create_summary_keymap = "gcs",
+ browse_summaries_keymap = "gbs",
+ generation_opts = {
+ adapter = nil, -- defaults to current chat adapter
+ model = nil, -- defaults to current chat model
+ context_size = 90000, -- max tokens that the model supports
+ include_references = true, -- include slash command content
+ include_tool_outputs = true, -- include tool execution results
+ system_prompt = nil, -- custom system prompt (string or function)
+ format_summary = nil, -- custom function to format generated summary e.g to remove <think/> tags from summary
},
+ },
- -- Memory system (requires VectorCode CLI)
- memory = {
- -- Automatically index summaries when they are generated
- auto_create_memories_on_summary_generation = false, -- Disabled by default
- -- Path to the VectorCode executable
- vectorcode_exe = "vectorcode",
- -- Tool configuration
- tool_opts = {
- -- Default number of memories to retrieve
- default_num = 10,
- },
- -- Enable notifications for indexing progress
- notify = true,
- -- Index all existing memories on startup
- index_on_startup = false,
+ memory = {
+ auto_create_memories_on_summary_generation = true,
+ vectorcode_exe = "vectorcode",
+ tool_opts = {
+ default_num = 10
},
+ notify = true,
+ index_on_startup = false,
},
- },
+ }
+ }
+ },
+ action_palette = {
+ width = 95,
+ height = 10,
+ prompt = "Prompt ", -- Prompt used for interactive LLM calls
+ provider = "snacks", -- Can be "default", "telescope", "fzf_lua", "mini_pick" or "snacks". If not specified, the plugin will autodetect installed providers.
+ opts = {
+ show_preset_actions = true, -- Show the preset actions in the action palette?
+ show_preset_prompts = true, -- Show the preset prompts in the action palette?
+ title = "CodeCompanion actions", -- The title of the action palette
},
- }
- -- Show loading spinner when request is started
- local spinner = require "spinner"
- local group = vim.api.nvim_create_augroup("CodeCompanionHooks", {})
- vim.api.nvim_create_autocmd({ "User" }, {
- pattern = "CodeCompanionRequest*",
- group = group,
- callback = function(request)
- if request.match == "CodeCompanionRequestStarted" then
- spinner.show()
- end
- if request.match == "CodeCompanionRequestFinished" then
- spinner.hide()
- end
- end,
- })
- end,
- },
+ },
+ })
+
+ -- Show loading spinner when request is started
+ local spinner = require "spinner"
+ local group = vim.api.nvim_create_augroup("CodeCompanionHooks", {})
+ vim.api.nvim_create_autocmd({ "User" }, {
+ pattern = "CodeCompanionRequest*",
+ group = group,
+ callback = function(request)
+ if request.match == "CodeCompanionRequestStarted" then
+ spinner.show()
+ end
+ if request.match == "CodeCompanionRequestFinished" then
+ spinner.hide()
+ end
+ end,
+ })
+ end,
}
diff --git a/lua/plugins/completition.lua b/lua/plugins/completition.lua
index 91a7b89..071c16c 100644
--- a/lua/plugins/completition.lua
+++ b/lua/plugins/completition.lua
@@ -5,16 +5,63 @@ return {
"rafamadriz/friendly-snippets",
{ "L3MON4D3/LuaSnip", version = "v1.*" },
"windwp/nvim-autopairs",
- {
- "zbirenbaum/copilot.lua",
- cmd = { "Copilot" },
- event = { "VeryLazy" },
- opts = { suggestion = { enabled = false }, panel = { enabled = false } },
- },
- -- Add blink.cmp copilot source
- "giuxtaposition/blink-cmp-copilot",
+ -- {
+ -- "zbirenbaum/copilot.lua",
+ -- cmd = { "Copilot" },
+ -- event = { "VeryLazy" },
+ -- opts = { suggestion = { enabled = false }, panel = { enabled = false } },
+ -- },
+ -- -- Add blink.cmp copilot source
+ -- {
+ -- "giuxtaposition/blink-cmp-copilot",
+ -- },
-- Add blink.cmp latex source for LaTeX/VimTeX support
"erooke/blink-cmp-latex",
+ -- Add minuet-ai for AI completions with llama-server
+ {
+ "milanglacier/minuet-ai.nvim",
+ config = function()
+ require('minuet').setup {
+ provider = 'openai_fim_compatible',
+ n_completions = 1, -- recommend for local model for resource saving
+ -- I recommend beginning with a small context window size and incrementally
+ -- expanding it, depending on your local computing power. A context window
+ -- of 512, serves as an good starting point to estimate your computing
+ -- power. Once you have a reliable estimate of your local computing power,
+ -- you should adjust the context window to a larger value.
+ context_window = 512,
+ provider_options = {
+ openai_fim_compatible = {
+ -- For Windows users, TERM may not be present in environment variables.
+ -- Consider using APPDATA instead.
+ api_key = 'TERM',
+ name = 'Qwen',
+ end_point = 'http://localhost:8012/v1/completions',
+ -- The model is set by the llama-cpp server and cannot be altered
+ -- post-launch.
+ model = 'PLACEHOLDER',
+ optional = {
+ max_tokens = 56,
+ top_p = 0.9,
+ },
+ -- Llama.cpp does not support the `suffix` option in FIM completion.
+ -- Therefore, we must disable it and manually populate the special
+ -- tokens required for FIM completion.
+ template = {
+ prompt = function(context_before_cursor, context_after_cursor, _)
+ return '<|fim_prefix|>'
+ .. context_before_cursor
+ .. '<|fim_suffix|>'
+ .. context_after_cursor
+ .. '<|fim_middle|>'
+ end,
+ suffix = false,
+ },
+ },
+ },
+ }
+ end,
+ },
},
-- use a release tag to download pre-built binaries
@@ -60,7 +107,7 @@ return {
border = "rounded",
draw = {
columns = {
- { "label", "label_description", gap = 1 },
+ { "label", "label_description", gap = 1 },
{ "kind_icon", "kind" },
},
},
@@ -70,19 +117,26 @@ return {
-- Default list of enabled providers
sources = {
- default = { "lsp", "path", "snippets", "buffer", "copilot" },
+ default = { "lsp", "path", "snippets", "buffer", "minuet" },
+ -- default = { "lsp", "path", "snippets", "buffer", "copilot", "minuet" },
per_filetype = {
tex = { "lsp", "path", "snippets", "buffer", "latex" },
bib = { "lsp", "path", "snippets", "buffer", "latex" },
codecompanion = { "codecompanion" },
},
providers = {
- copilot = {
- name = "copilot",
- module = "blink-cmp-copilot",
- score_offset = 100,
+ minuet = {
+ name = "minuet",
+ module = "minuet.blink",
+ score_offset = 101,
async = true,
},
+ -- copilot = {
+ -- name = "copilot",
+ -- module = "blink-cmp-copilot",
+ -- score_offset = 100,
+ -- async = true,
+ -- },
latex = {
name = "latex",
module = "blink-cmp-latex",
diff --git a/lua/plugins/foatterm.lua b/lua/plugins/foatterm.lua
deleted file mode 100644
index a6c64b5..0000000
--- a/lua/plugins/foatterm.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-return {
- "nvzone/floaterm",
- dependencies = "nvzone/volt",
- opts = {
- border = false,
- size = { h = 40, w = 70 },
- -- to use, make this func(buf)
- position = { row = 50, col = 35 },
- show_sidebar = false, -- oculta el sidebar
- show_bar = false, -- oculta la barra
- mappings = { sidebar = nil, term = nil },
-
- -- Default sets of terminals you'd like to open
- terminals = {
- { name = "Terminal" },
- -- cmd can be function too
- -- { name = "Terminal", cmd = "neofetch" },
- -- More terminals
- },
- },
- cmd = "FloatermToggle",
-}
diff --git a/lua/plugins/image.lua b/lua/plugins/image.lua
index c8e231f..edd938f 100644
--- a/lua/plugins/image.lua
+++ b/lua/plugins/image.lua
@@ -1,12 +1,24 @@
+
return {
- "samodostal/image.nvim",
- dependencies = {
- "m00qek/baleia.nvim",
- },
+ "3rd/image.nvim",
opts = {
+ backend = "sixel",
+ max_width = nil,
+ max_height = nil,
+ max_width_window_percentage = nil,
+ max_height_window_percentage = nil,
+ window_overlap_clear_enabled = true,
+ window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "notify", "noice", "lazy", "mason", "oil_list", "TelescopePrompt" },
+ editor_only_render_when_focused = true,
+ tmux_show_only_in_active_window = true,
render = {
+ debounce_ms = 10,
+ show_label = true,
+ label_align = "center",
+ label_format = "[image.nvim] %s",
foreground_color = true,
background_color = true,
- }
+ },
+ integrations = {},
},
}
diff --git a/lua/plugins/img-clip.lua b/lua/plugins/img-clip.lua
deleted file mode 100644
index 3926bde..0000000
--- a/lua/plugins/img-clip.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-return {
- "HakonHarnes/img-clip.nvim",
- opts = {
- filetypes = {
- codecompanion = {
- prompt_for_file_name = false,
- template = "[Image]($FILE_PATH)",
- use_absolute_path = true,
- },
- },
- },
-}
diff --git a/lua/plugins/markdown-preview.lua b/lua/plugins/markdown-preview.lua
deleted file mode 100644
index 15f57ce..0000000
--- a/lua/plugins/markdown-preview.lua
+++ /dev/null
@@ -1,8 +0,0 @@
-return {
- "adalessa/markdown-preview.nvim",
- dependencies = {
- "nvim-lua/plenary.nvim",
- },
- config = true,
- ft = "markdown",
-}
diff --git a/lua/plugins/markview.lua b/lua/plugins/markview.lua
deleted file mode 100644
index fb38eb8..0000000
--- a/lua/plugins/markview.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-return {
- "OXY2DEV/markview.nvim",
- lazy = false,
- opts = {
- preview = {
- filetypes = { "markdown", "codecompanion", "copilot-chat" },
- ignore_buftypes = {},
- },
- experimental = {
- check_rtp_message = false, -- Disable the runtime path warning message
- },
- },
-}
diff --git a/lua/plugins/navigator.lua b/lua/plugins/navigator.lua
index bc72469..954dfeb 100644
--- a/lua/plugins/navigator.lua
+++ b/lua/plugins/navigator.lua
@@ -14,6 +14,7 @@ return {
default_mapping = false,
lsp = {
disable_lsp = "all", -- Uses native LSP configuration instead of lspconfig
+ format_on_save = false,
hover = {
enable = false,
},
diff --git a/lua/plugins/rustaceanvim.lua b/lua/plugins/rustaceanvim.lua
index 46c4c82..6a48d93 100644
--- a/lua/plugins/rustaceanvim.lua
+++ b/lua/plugins/rustaceanvim.lua
@@ -1,5 +1,5 @@
return {
'mrcjkb/rustaceanvim',
- version = '^5', -- Recommended
- lazy = false, -- This plugin is already lazy
+ version = '^8', -- Recommended
+ lazy = false, -- This plugin is already lazy
}
diff --git a/lua/plugins/snacks.lua b/lua/plugins/snacks.lua
index bcec3e5..c6b63b3 100644
--- a/lua/plugins/snacks.lua
+++ b/lua/plugins/snacks.lua
@@ -10,79 +10,119 @@ return {
indent = { enabled = true },
input = { enabled = true },
notifier = { enabled = true },
- picker = { enabled = true },
+ picker = {
+ enabled = true,
+ ui_select = false,
+ jump = {
+ reuse_win = true,
+ },
+ on_show = function(picker)
+ vim.schedule(function()
+ -- vim.api.nvim_win_call(picker.input.win.win, function()
+ vim.cmd 'startinsert'
+ -- end)
+ end)
+ end,
+ sources = {
+ files = {
+ layout = { preset = "telescope" },
+ focus = "list",
+ },
+ },
+ },
+ layout = {
+ preset = "dropdown",
+ layout = {
+ backdrop = false,
+ width = 0.4,
+ min_width = 80,
+ height = 0.25,
+ min_height = 10,
+ border = "none",
+ box = "vertical",
+ {
+ box = "vertical",
+ border = true,
+ title = "{title} {live} {flags}",
+ title_pos = "center",
+ { win = "input", height = 1, border = "bottom" },
+ { win = "list", border = "none" },
+ },
+ },
+ },
quickfile = { enabled = true },
scope = { enabled = true },
scroll = { enabled = true },
statuscolumn = { enabled = true },
words = { enabled = true },
+ image = { enabled = true },
},
keys = {
-- Top Pickers & Explorer
- { "<leader><space>", function() Snacks.picker.smart() end, desc = "Smart Find Files" },
- { "<leader>,", function() Snacks.picker.buffers() end, desc = "Buffers" },
- { "<leader>/", function() Snacks.picker.grep() end, desc = "Grep" },
- { "<leader>:", function() Snacks.picker.command_history() end, desc = "Command History" },
- { "<leader>n", function() Snacks.picker.notifications() end, desc = "Notification History" },
- { "<leader>e", function() Snacks.explorer() end, desc = "File Explorer" },
+ { "<leader><space>", function() Snacks.picker.smart() end, desc = "Smart Find Files" },
+ { "<leader>,", function() Snacks.picker.buffers() end, desc = "Buffers" },
+ { "<leader>/", function() Snacks.picker.grep() end, desc = "Grep" },
+ { "<leader>:", function() Snacks.picker.command_history() end, desc = "Command History" },
+ { "<leader>n", function() Snacks.picker.notifications() end, desc = "Notification History" },
+ { "<leader>e", function() Snacks.explorer() end, desc = "File Explorer" },
-- find
- { "<leader>fb", function() Snacks.picker.buffers() end, desc = "Buffers" },
- { "<leader>fc", function() Snacks.picker.files({ cwd = vim.fn.stdpath("config") }) end, desc = "Find Config File" },
- { "<leader>ff", function(