avante
This commit is contained in:
@ -1,99 +1,111 @@
|
||||
local use_google = require("utils").use_google
|
||||
local flags = require("utils").flags
|
||||
|
||||
local kind_icons = {
|
||||
-- LLM Provider icons
|
||||
claude = "",
|
||||
openai = "",
|
||||
codestral = "",
|
||||
gemini = "",
|
||||
nvim_ciderlsp = "",
|
||||
Groq = "",
|
||||
Openrouter = "",
|
||||
Ollama = "",
|
||||
["Llama.cpp"] = "",
|
||||
Deepseek = "",
|
||||
-- LLM Provider icons
|
||||
claude = "",
|
||||
openai = "",
|
||||
codestral = "",
|
||||
gemini = "",
|
||||
nvim_ciderlsp = "",
|
||||
Groq = "",
|
||||
Openrouter = "",
|
||||
Ollama = "",
|
||||
["Llama.cpp"] = "",
|
||||
Deepseek = "",
|
||||
}
|
||||
|
||||
return {
|
||||
{
|
||||
"milanglacier/minuet-ai.nvim",
|
||||
cond = not use_google(),
|
||||
config = function()
|
||||
require("minuet").setup({
|
||||
provider = "gemini",
|
||||
provider_options = {
|
||||
gemini = {
|
||||
optional = {
|
||||
generationConfig = {
|
||||
maxOutputTokens = 256,
|
||||
},
|
||||
safetySettings = {
|
||||
{
|
||||
-- HARM_CATEGORY_HATE_SPEECH,
|
||||
-- HARM_CATEGORY_HARASSMENT
|
||||
-- HARM_CATEGORY_SEXUALLY_EXPLICIT
|
||||
category = "HARM_CATEGORY_DANGEROUS_CONTENT",
|
||||
-- BLOCK_NONE
|
||||
threshold = "BLOCK_ONLY_HIGH",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
-- Your configuration options here
|
||||
virtualtext = {
|
||||
auto_trigger_ft = {},
|
||||
keymap = {
|
||||
-- accept whole completion
|
||||
accept = "<A-A>",
|
||||
-- accept one line
|
||||
accept_line = "<A-a>",
|
||||
-- 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 = "<A-e>",
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"saghen/blink.compat",
|
||||
-- use the latest release, via version = '*', if you also use the latest release for blink.cmp
|
||||
version = "*",
|
||||
-- lazy.nvim will automatically load the plugin when it's required by blink.cmp
|
||||
lazy = true,
|
||||
-- make sure to set opts so that lazy.nvim calls blink.compat's setup
|
||||
cond = flags.blink,
|
||||
opts = {
|
||||
impersonate_nvim_cmp = true,
|
||||
debug = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
"saghen/blink.cmp",
|
||||
lazy = false, -- lazy loading handled internally
|
||||
cond = flags.blink,
|
||||
dependencies = {
|
||||
"chrisgrieser/cmp-nerdfont",
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"mikavilpas/blink-ripgrep.nvim",
|
||||
"moyiz/blink-emoji.nvim",
|
||||
"rafamadriz/friendly-snippets", -- optional: provides snippets for the snippet source
|
||||
"saghen/blink.compat",
|
||||
},
|
||||
version = "v0.*", -- use a release tag to download pre-built binaries
|
||||
-- build = 'cargo build --release',
|
||||
{
|
||||
"yetone/avante.nvim",
|
||||
event = "VeryLazy",
|
||||
version = false, -- Never set this value to "*"! Never!
|
||||
opts = {
|
||||
-- add any opts here
|
||||
-- for example
|
||||
provider = "openai",
|
||||
openai = {
|
||||
endpoint = "https://api.openai.com/v1",
|
||||
model = "gpt-4o", -- your desired model (or use gpt-4o, etc.)
|
||||
timeout = 30000, -- Timeout in milliseconds, increase this for reasoning models
|
||||
temperature = 0,
|
||||
max_completion_tokens = 8192, -- Increase this to include reasoning tokens (for reasoning models)
|
||||
--reasoning_effort = "medium", -- low|medium|high, only used for reasoning models
|
||||
},
|
||||
},
|
||||
-- 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",
|
||||
"Kaiser-Yang/blink-cmp-avante",
|
||||
"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" },
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"saghen/blink.compat",
|
||||
-- use the latest release, via version = '*', if you also use the latest release for blink.cmp
|
||||
version = "*",
|
||||
-- lazy.nvim will automatically load the plugin when it's required by blink.cmp
|
||||
lazy = true,
|
||||
cond = flags.blink,
|
||||
-- make sure to set opts so that lazy.nvim calls blink.compat's setup
|
||||
opts = {
|
||||
impersonate_nvim_cmp = true,
|
||||
debug = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
"saghen/blink.cmp",
|
||||
lazy = false, -- lazy loading handled internally
|
||||
cond = flags.blink,
|
||||
dependencies = {
|
||||
"chrisgrieser/cmp-nerdfont",
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"mikavilpas/blink-ripgrep.nvim",
|
||||
"moyiz/blink-emoji.nvim",
|
||||
"rafamadriz/friendly-snippets", -- optional: provides snippets for the snippet source
|
||||
"saghen/blink.compat",
|
||||
},
|
||||
version = "v0.*", -- use a release tag to download pre-built binaries
|
||||
-- build = 'cargo build --release',
|
||||
|
||||
|
||||
---@module 'blink.cmp'
|
||||
---@type blink.cmp.Config
|
||||
opts = {
|
||||
---@module 'blink.cmp'
|
||||
---@type blink.cmp.Config
|
||||
opts = {
|
||||
-- stylua: ignore
|
||||
keymap = {
|
||||
preset = "none",
|
||||
@ -110,105 +122,120 @@ return {
|
||||
["<S-Up>"] = { "scroll_documentation_up", "fallback" },
|
||||
["<S-Down>"] = { "scroll_documentation_down", "fallback" },
|
||||
},
|
||||
appearance = {
|
||||
use_nvim_cmp_as_default = true,
|
||||
nerd_font_variant = "normal",
|
||||
kind_icons = kind_icons,
|
||||
},
|
||||
sources = {
|
||||
default = function(ctx)
|
||||
local providerToEnable = {
|
||||
"lsp",
|
||||
"path",
|
||||
"snippets",
|
||||
"ripgrep",
|
||||
"emoji",
|
||||
"nerdfont",
|
||||
"buffer",
|
||||
}
|
||||
if use_google() then
|
||||
table.insert(providerToEnable, "nvim_ciderlsp")
|
||||
else
|
||||
table.insert(providerToEnable, "minuet")
|
||||
end
|
||||
return providerToEnable
|
||||
end,
|
||||
providers = {
|
||||
lsp = { name = "LSP", module = "blink.cmp.sources.lsp", score_offset = 90 },
|
||||
-- dont show LuaLS require statements when lazydev has items
|
||||
lazydev = { name = "LazyDev", module = "lazydev.integrations.blink", fallbacks = { "lsp" } },
|
||||
ripgrep = {
|
||||
module = "blink-ripgrep",
|
||||
name = "Ripgrep",
|
||||
-- the options below are optional, some default values are shown
|
||||
---@module "blink-ripgrep"
|
||||
---@type blink-ripgrep.Options
|
||||
opts = {
|
||||
prefix_min_len = 3,
|
||||
context_size = 5,
|
||||
max_filesize = "1M",
|
||||
additional_rg_options = {},
|
||||
},
|
||||
},
|
||||
-- https://github.com/moyiz/blink-emoji.nvim
|
||||
emoji = {
|
||||
module = "blink-emoji",
|
||||
name = "Emoji",
|
||||
score_offset = 15, -- the higher the number, the higher the priority
|
||||
opts = { insert = true }, -- Insert emoji (default) or complete its name
|
||||
},
|
||||
buffer = {
|
||||
name = "Buffer",
|
||||
enabled = true,
|
||||
max_items = 3,
|
||||
module = "blink.cmp.sources.buffer",
|
||||
min_keyword_length = 4,
|
||||
score_offset = 15, -- the higher the number, the higher the priority
|
||||
},
|
||||
-- compat sources
|
||||
nerdfont = {
|
||||
name = "nerdfont",
|
||||
module = "blink.compat.source",
|
||||
},
|
||||
minuet = {
|
||||
name = "minuet",
|
||||
module = "minuet.blink",
|
||||
score_offset = 100, -- Gives minuet higher priority among suggestions
|
||||
},
|
||||
nvim_ciderlsp = {
|
||||
name = "nvim_ciderlsp",
|
||||
module = "blink.compat.source",
|
||||
score_offset = 100,
|
||||
},
|
||||
},
|
||||
},
|
||||
-- experimental signature help support
|
||||
signature = { enabled = true },
|
||||
completion = {
|
||||
-- Recommended to avoid unnecessary request
|
||||
trigger = { prefetch_on_insert = false },
|
||||
list = {
|
||||
appearance = {
|
||||
use_nvim_cmp_as_default = true,
|
||||
nerd_font_variant = "normal",
|
||||
kind_icons = kind_icons,
|
||||
},
|
||||
sources = {
|
||||
default = function(ctx)
|
||||
local providerToEnable = {
|
||||
"lsp",
|
||||
"path",
|
||||
"snippets",
|
||||
"ripgrep",
|
||||
"emoji",
|
||||
"nerdfont",
|
||||
"buffer",
|
||||
}
|
||||
if use_google() then
|
||||
table.insert(providerToEnable, "nvim_ciderlsp")
|
||||
table.insert(providerToEnable, "buganizer")
|
||||
else
|
||||
table.insert(providerToEnable, "avante")
|
||||
table.insert(providerToEnable, "minuet")
|
||||
end
|
||||
return providerToEnable
|
||||
end,
|
||||
providers = {
|
||||
lsp = { name = "LSP", module = "blink.cmp.sources.lsp", score_offset = 90 },
|
||||
-- dont show LuaLS require statements when lazydev has items
|
||||
lazydev = { name = "LazyDev", module = "lazydev.integrations.blink", fallbacks = { "lsp" } },
|
||||
ripgrep = {
|
||||
module = "blink-ripgrep",
|
||||
name = "Ripgrep",
|
||||
-- the options below are optional, some default values are shown
|
||||
---@module "blink-ripgrep"
|
||||
---@type blink-ripgrep.Options
|
||||
opts = {
|
||||
prefix_min_len = 3,
|
||||
context_size = 5,
|
||||
max_filesize = "1M",
|
||||
additional_rg_options = {},
|
||||
},
|
||||
score_offset = 20, -- the higher the number, the higher the priority
|
||||
},
|
||||
-- https://github.com/moyiz/blink-emoji.nvim
|
||||
emoji = {
|
||||
module = "blink-emoji",
|
||||
name = "Emoji",
|
||||
score_offset = 1, -- the higher the number, the higher the priority
|
||||
opts = { insert = true }, -- Insert emoji (default) or complete its name
|
||||
},
|
||||
buffer = {
|
||||
name = "Buffer",
|
||||
enabled = true,
|
||||
max_items = 3,
|
||||
module = "blink.cmp.sources.buffer",
|
||||
min_keyword_length = 4,
|
||||
score_offset = 15, -- the higher the number, the higher the priority
|
||||
},
|
||||
-- compat sources
|
||||
nerdfont = {
|
||||
name = "nerdfont",
|
||||
module = "blink.compat.source",
|
||||
score_offset = 1, -- the higher the number, the higher the priority
|
||||
},
|
||||
minuet = {
|
||||
name = "minuet",
|
||||
module = "minuet.blink",
|
||||
score_offset = 100, -- Gives minuet higher priority among suggestions
|
||||
},
|
||||
avante = {
|
||||
module = 'blink-cmp-avante',
|
||||
name = 'Avante',
|
||||
opts = {
|
||||
-- options for blink-cmp-avante
|
||||
}
|
||||
},
|
||||
nvim_ciderlsp = {
|
||||
name = "nvim_ciderlsp",
|
||||
module = "blink.compat.source",
|
||||
score_offset = 100,
|
||||
},
|
||||
buganizer = {
|
||||
name = "nvim_buganizer",
|
||||
module = "blink.compat.source",
|
||||
},
|
||||
},
|
||||
},
|
||||
-- experimental signature help support
|
||||
signature = { enabled = true },
|
||||
completion = {
|
||||
-- Recommended to avoid unnecessary request
|
||||
trigger = { prefetch_on_insert = false },
|
||||
list = {
|
||||
-- stylua: ignore
|
||||
selection = {
|
||||
preselect = function(ctx) return ctx.mode ~= 'cmdline' end,
|
||||
auto_insert = function(ctx) return ctx.mode ~= 'cmdline' end,
|
||||
},
|
||||
},
|
||||
documentation = {
|
||||
auto_show = true,
|
||||
},
|
||||
-- Displays a preview of the selected item on the current line
|
||||
ghost_text = {
|
||||
enabled = true,
|
||||
},
|
||||
trigger = {
|
||||
show_on_x_blocked_trigger_characters = { "'", '"', "(", "{" },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
documentation = {
|
||||
auto_show = true,
|
||||
},
|
||||
-- Displays a preview of the selected item on the current line
|
||||
ghost_text = {
|
||||
enabled = true,
|
||||
},
|
||||
trigger = {
|
||||
show_on_x_blocked_trigger_characters = { "'", '"', "(", "{" },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- allows extending the providers array elsewhere in your config
|
||||
-- without having to redefine it
|
||||
opts_extend = { "sources.default" },
|
||||
},
|
||||
-- allows extending the providers array elsewhere in your config
|
||||
-- without having to redefine it
|
||||
opts_extend = { "sources.default" },
|
||||
},
|
||||
}
|
||||
|
@ -1,90 +1,90 @@
|
||||
local use_google = require("utils").use_google
|
||||
|
||||
return {
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
event = { "BufWritePre" },
|
||||
cmd = { "ConformInfo", "FormatDisable", "FormatEnable" },
|
||||
keys = {
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
event = { "BufWritePre" },
|
||||
cmd = { "ConformInfo", "FormatDisable", "FormatEnable" },
|
||||
keys = {
|
||||
-- stylua: ignore
|
||||
{ "<leader>fmt", function() require("conform").format({ async = true, lsp_fallback = true }) end, mode = "", desc = "Format buffer", },
|
||||
{ "<leader>fj", ":%!python -m json.tool" },
|
||||
},
|
||||
config = function()
|
||||
vim.g.disable_autoformat = false
|
||||
vim.api.nvim_create_user_command("FormatDisable", function(args)
|
||||
if args.bang then
|
||||
-- FormatDisable! will disable formatting just for this buffer
|
||||
vim.b.disable_autoformat = true
|
||||
else
|
||||
vim.g.disable_autoformat = true
|
||||
end
|
||||
end, {
|
||||
desc = "Disable autoformat-on-save",
|
||||
bang = true,
|
||||
})
|
||||
vim.api.nvim_create_user_command("FormatEnable", function()
|
||||
vim.b.disable_autoformat = false
|
||||
vim.g.disable_autoformat = false
|
||||
end, {
|
||||
desc = "Re-enable autoformat-on-save",
|
||||
})
|
||||
{ "<leader>fj", ":%!python -m json.tool" },
|
||||
},
|
||||
config = function()
|
||||
vim.g.disable_autoformat = false
|
||||
vim.api.nvim_create_user_command("FormatDisable", function(args)
|
||||
if args.bang then
|
||||
-- FormatDisable! will disable formatting just for this buffer
|
||||
vim.b.disable_autoformat = true
|
||||
else
|
||||
vim.g.disable_autoformat = true
|
||||
end
|
||||
end, {
|
||||
desc = "Disable autoformat-on-save",
|
||||
bang = true,
|
||||
})
|
||||
vim.api.nvim_create_user_command("FormatEnable", function()
|
||||
vim.b.disable_autoformat = false
|
||||
vim.g.disable_autoformat = false
|
||||
end, {
|
||||
desc = "Re-enable autoformat-on-save",
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
pattern = "*",
|
||||
callback = function(args)
|
||||
if vim.g.disable_autoformat or vim.b[args.buf].disable_autoformat then
|
||||
return
|
||||
end
|
||||
require("conform").format({ bufnr = args.buf })
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
pattern = "*",
|
||||
callback = function(args)
|
||||
if vim.g.disable_autoformat or vim.b[args.buf].disable_autoformat then
|
||||
return
|
||||
end
|
||||
require("conform").format({ bufnr = args.buf })
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_user_command("Format", function(args)
|
||||
local range = nil
|
||||
if args.count ~= -1 then
|
||||
local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1]
|
||||
range = {
|
||||
start = { args.line1, 0 },
|
||||
["end"] = { args.line2, end_line:len() },
|
||||
}
|
||||
end
|
||||
require("conform").format({ async = true })
|
||||
end, { range = true })
|
||||
end,
|
||||
-- This will provide type hinting with LuaLS
|
||||
---@module "conform"
|
||||
---@type conform.setupOpts
|
||||
opts = {
|
||||
log_level = vim.log.levels.DEBUG,
|
||||
formatters_by_ft = {
|
||||
rust = { "rustfmt" },
|
||||
-- Conform will run multiple formatters sequentially
|
||||
-- go = { "goimports", "gofmt" },
|
||||
-- Use a sub-list to run only the first available formatter
|
||||
lua = { "stylua" },
|
||||
-- Conform will run multiple formatters sequentially
|
||||
python = { "isort" },
|
||||
-- Use a sub-list to run only the first available formatter
|
||||
javascript = { "prettier" },
|
||||
gdscript = { "gdformat" },
|
||||
ron = { "ronfmt" },
|
||||
dashboard = {},
|
||||
-- Use the "*" filetype to run formatters on all filetypes.
|
||||
-- ["*"] = { "codespell" },
|
||||
-- Use the "_" filetype to run formatters on filetypes that don't
|
||||
-- have other formatters configured.
|
||||
["_"] = { "trim_whitespace" },
|
||||
},
|
||||
formatters = {
|
||||
-- ronfmt = {
|
||||
-- command = "ronfmt",
|
||||
-- args = { "-d", "$FILENAME" },
|
||||
-- },
|
||||
gdformat = {
|
||||
prepend_args = { "-l", "100" },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
vim.api.nvim_create_user_command("Format", function(args)
|
||||
local range = nil
|
||||
if args.count ~= -1 then
|
||||
local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1]
|
||||
range = {
|
||||
start = { args.line1, 0 },
|
||||
["end"] = { args.line2, end_line:len() },
|
||||
}
|
||||
end
|
||||
require("conform").format({ async = true })
|
||||
end, { range = true })
|
||||
end,
|
||||
-- This will provide type hinting with LuaLS
|
||||
---@module "conform"
|
||||
---@type conform.setupOpts
|
||||
opts = {
|
||||
log_level = vim.log.levels.DEBUG,
|
||||
formatters_by_ft = {
|
||||
rust = { "rustfmt" },
|
||||
-- Conform will run multiple formatters sequentially
|
||||
-- go = { "goimports", "gofmt" },
|
||||
-- Use a sub-list to run only the first available formatter
|
||||
lua = { "stylua" },
|
||||
-- Conform will run multiple formatters sequentially
|
||||
python = { "isort" },
|
||||
-- Use a sub-list to run only the first available formatter
|
||||
javascript = { "prettier" },
|
||||
gdscript = { "gdformat" },
|
||||
ron = { "ronfmt" },
|
||||
dashboard = {},
|
||||
-- Use the "*" filetype to run formatters on all filetypes.
|
||||
-- ["*"] = { "codespell" },
|
||||
-- Use the "_" filetype to run formatters on filetypes that don't
|
||||
-- have other formatters configured.
|
||||
["_"] = { "trim_whitespace" },
|
||||
},
|
||||
formatters = {
|
||||
-- ronfmt = {
|
||||
-- command = "ronfmt",
|
||||
-- args = { "-d", "$FILENAME" },
|
||||
-- },
|
||||
gdformat = {
|
||||
prepend_args = { "-l", "100" },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -12,49 +12,49 @@ end
|
||||
|
||||
|
||||
return {
|
||||
{
|
||||
"kosayoda/nvim-lightbulb",
|
||||
commit = "1cae7b7153ae98dcf1b11173a443ac1b6d8e3d49",
|
||||
event = { "LspAttach" },
|
||||
opts = {
|
||||
autocmd = { enabled = true },
|
||||
virtual_text = {
|
||||
enabled = true,
|
||||
text = " ",
|
||||
hl = "DiagnosticWarn",
|
||||
},
|
||||
sign = { enabled = false },
|
||||
},
|
||||
},
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
build = "make install_jsregexp",
|
||||
config = function()
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
end,
|
||||
dependencies = { "rafamadriz/friendly-snippets" },
|
||||
},
|
||||
{
|
||||
"ray-x/go.nvim",
|
||||
dependencies = { -- optional packages
|
||||
"ray-x/guihua.lua",
|
||||
"neovim/nvim-lspconfig",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
},
|
||||
-- cond = not use_google(),
|
||||
config = function()
|
||||
local capabilities = flags.blink
|
||||
and require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
or require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
capabilities.offsetEncoding = { "utf-16" }
|
||||
require("go").setup({
|
||||
lsp_cfg = { capabilities = capabilities },
|
||||
lsp_keymaps = false,
|
||||
lsp_inlay_hints = {
|
||||
enable = not use_google(), -- doesn't work with ciderlsp
|
||||
},
|
||||
})
|
||||
-- Run gofmt + goimports on save
|
||||
{
|
||||
"kosayoda/nvim-lightbulb",
|
||||
commit = "1cae7b7153ae98dcf1b11173a443ac1b6d8e3d49",
|
||||
event = { "LspAttach" },
|
||||
opts = {
|
||||
autocmd = { enabled = true },
|
||||
virtual_text = {
|
||||
enabled = true,
|
||||
text = " ",
|
||||
hl = "DiagnosticWarn",
|
||||
},
|
||||
sign = { enabled = false },
|
||||
},
|
||||
},
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
build = "make install_jsregexp",
|
||||
config = function()
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
end,
|
||||
dependencies = { "rafamadriz/friendly-snippets" },
|
||||
},
|
||||
{
|
||||
"ray-x/go.nvim",
|
||||
dependencies = { -- optional packages
|
||||
"ray-x/guihua.lua",
|
||||
"neovim/nvim-lspconfig",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
},
|
||||
-- cond = not use_google(),
|
||||
config = function()
|
||||
local capabilities = flags.blink
|
||||
and require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
or require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
capabilities.offsetEncoding = { "utf-16" }
|
||||
require("go").setup({
|
||||
lsp_cfg = { capabilities = capabilities },
|
||||
lsp_keymaps = false,
|
||||
lsp_inlay_hints = {
|
||||
enable = not use_google(), -- doesn't work with ciderlsp
|
||||
},
|
||||
})
|
||||
-- Run gofmt + goimports on save
|
||||
|
||||
local format_sync_grp = vim.api.nvim_create_augroup("goimports", {})
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
@ -97,41 +97,44 @@ return {
|
||||
local lspconfig = require("lspconfig")
|
||||
local lsp_configs = require("lspconfig.configs")
|
||||
|
||||
lsp_configs.ciderlsp = {
|
||||
default_config = {
|
||||
cmd = {
|
||||
"/google/bin/releases/cider/ciderlsp/ciderlsp",
|
||||
"--tooltag=nvim-lsp",
|
||||
"--noforward_sync_responses",
|
||||
},
|
||||
filetypes = {
|
||||
"c",
|
||||
"cpp",
|
||||
"java",
|
||||
"kotlin",
|
||||
"objc",
|
||||
"proto",
|
||||
"textproto",
|
||||
"go",
|
||||
"python",
|
||||
"bzl",
|
||||
"typescript",
|
||||
},
|
||||
offset_encoding = "utf-8",
|
||||
root_dir = lspconfig.util.root_pattern(".citc"),
|
||||
settings = {},
|
||||
},
|
||||
}
|
||||
lsp_configs.ciderlsp = {
|
||||
default_config = {
|
||||
cmd = {
|
||||
"/google/bin/releases/cider/ciderlsp/ciderlsp",
|
||||
"--tooltag=nvim-lsp",
|
||||
"--noforward_sync_responses",
|
||||
},
|
||||
filetypes = {
|
||||
"c",
|
||||
"cpp",
|
||||
"java",
|
||||
"kotlin",
|
||||
"objc",
|
||||
"proto",
|
||||
"textproto",
|
||||
"go",
|
||||
"python",
|
||||
"bzl",
|
||||
"typescript",
|
||||
},
|
||||
offset_encoding = "utf-8",
|
||||
root_dir = lspconfig.util.root_pattern(".citc"),
|
||||
settings = {},
|
||||
},
|
||||
}
|
||||
|
||||
if use_google() then
|
||||
lspconfig.ciderlsp.setup({})
|
||||
end
|
||||
if use_google() then
|
||||
lspconfig.ciderlsp.setup({})
|
||||
end
|
||||
|
||||
require("lspconfig").gdscript.setup({})
|
||||
vim.cmd([[autocmd FileType gdscript setlocal commentstring=#\ %s]])
|
||||
vim.cmd([[autocmd FileType gdscript setlocal autoindent noexpandtab tabstop=4 shiftwidth=4]])
|
||||
lspconfig.gdscript.setup({})
|
||||
-- require('lspconfig').gdscript.setup { cmd = { "ncat", "localhost", "6005" }, root_dir = function()
|
||||
-- return vim.fs.dirname(vim.fs.find('project.godot', { upward = true })[1])
|
||||
-- end
|
||||
-- }
|
||||
|
||||
require("lspconfig").gdshader_lsp.setup({})
|
||||
end,
|
||||
},
|
||||
vim.cmd([[autocmd FileType gdscript setlocal commentstring=#\ %s]])
|
||||
vim.cmd([[autocmd FileType gdscript setlocal autoindent noexpandtab tabstop=4 shiftwidth=4 wrap]])
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
44
vim/.vim/lua/plugins/minuet.lua
Normal file
44
vim/.vim/lua/plugins/minuet.lua
Normal file
@ -0,0 +1,44 @@
|
||||
return {
|
||||
'milanglacier/minuet-ai.nvim',
|
||||
config = function()
|
||||
require('minuet').setup {
|
||||
provider = 'gemini',
|
||||
provider_options = {
|
||||
gemini = {
|
||||
optional = {
|
||||
generationConfig = {
|
||||
maxOutputTokens = 256,
|
||||
},
|
||||
safetySettings = {
|
||||
{
|
||||
-- HARM_CATEGORY_HATE_SPEECH,
|
||||
-- HARM_CATEGORY_HARASSMENT
|
||||
-- HARM_CATEGORY_SEXUALLY_EXPLICIT
|
||||
category = 'HARM_CATEGORY_DANGEROUS_CONTENT',
|
||||
-- BLOCK_NONE
|
||||
threshold = 'BLOCK_ONLY_HIGH',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
virtualtext = {
|
||||
auto_trigger_ft = {},
|
||||
keymap = {
|
||||
-- accept whole completion
|
||||
accept = '<A-A>',
|
||||
-- accept one line
|
||||
accept_line = '<A-a>',
|
||||
-- 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 = '<A-e>',
|
||||
},
|
||||
}
|
||||
}
|
||||
end,
|
||||
}
|
Reference in New Issue
Block a user