astro-nvim-v3 - change: turn off declare symbols basedpyright
This commit is contained in:
@@ -1,139 +1,185 @@
|
||||
local function has_words_before()
|
||||
local line, col = (unpack or table.unpack)(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
return {
|
||||
{
|
||||
"onsails/lspkind.nvim",
|
||||
opts = {
|
||||
symbol_map = require "plugins.configs.ui.lspkind",
|
||||
},
|
||||
},
|
||||
{ "hrsh7th/cmp-cmdline", event = "CmdlineEnter" },
|
||||
{ "github/copilot.vim", event = "BufRead" },
|
||||
{ "hrsh7th/cmp-buffer", event = "BufRead" },
|
||||
{ "hrsh7th/cmp-path", event = "BufRead" },
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
event = "VimEnter",
|
||||
depedencies = {
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
},
|
||||
opts = function(_, opts)
|
||||
local cmp = require "cmp"
|
||||
local luasnip = require "luasnip"
|
||||
{
|
||||
"github/copilot.vim",
|
||||
event = "BufRead",
|
||||
config = function()
|
||||
vim.api.nvim_set_keymap("i", "<C-f>", 'copilot#Accept("\\<CR>")', { expr = true, silent = true })
|
||||
end,
|
||||
},
|
||||
-- { "hrsh7th/cmp-buffer", event = "BufRead" },
|
||||
-- { "hrsh7th/cmp-path", event = "BufRead" },
|
||||
{
|
||||
"onsails/lspkind.nvim",
|
||||
opts = {
|
||||
symbol_map = require("plugins.configs.ui.lspkind"),
|
||||
},
|
||||
},
|
||||
{
|
||||
"saghen/blink.cmp",
|
||||
event = { "InsertEnter", "CmdlineEnter", "BufEnter" },
|
||||
version = "^1",
|
||||
opts_extend = { "sources.default", "cmdline.sources", "term.sources" },
|
||||
opts = {
|
||||
-- remember to enable your providers here
|
||||
sources = {
|
||||
default = { "lsp", "path", "snippets", "buffer" },
|
||||
},
|
||||
keymap = {
|
||||
["<C-Space>"] = { "show", "show_documentation", "hide_documentation" },
|
||||
["<Up>"] = { "select_prev", "fallback" },
|
||||
["<Down>"] = { "select_next", "fallback" },
|
||||
["<C-N>"] = { "select_next", "show" },
|
||||
["<C-P>"] = { "select_prev", "show" },
|
||||
["<C-J>"] = { "select_next", "fallback" },
|
||||
["<C-K>"] = { "select_prev", "fallback" },
|
||||
["<C-U>"] = { "scroll_documentation_up", "fallback" },
|
||||
["<C-D>"] = { "scroll_documentation_down", "fallback" },
|
||||
["<C-e>"] = { "hide", "fallback" },
|
||||
["<CR>"] = { "accept", "fallback" },
|
||||
["<C-f>"] = false,
|
||||
|
||||
local function has_words_before()
|
||||
local line, col = (unpack or table.unpack)(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match "%s" == nil
|
||||
end
|
||||
-- vim.api.nvim_set_keymap("i", "<C-f>", 'copilot#Accept("\\<CR>")', { expr = true, silent = true }),
|
||||
|
||||
cmp.config.sources {
|
||||
{ name = "nvim_lsp", priority = 1000 },
|
||||
{ name = "cmdline", priority = 800 },
|
||||
{ name = "path", priority = 250 },
|
||||
}
|
||||
["<Tab>"] = {
|
||||
"select_next",
|
||||
"snippet_forward",
|
||||
function(cmp)
|
||||
if has_words_before() or vim.api.nvim_get_mode().mode == "c" then
|
||||
return cmp.show()
|
||||
end
|
||||
end,
|
||||
"fallback",
|
||||
},
|
||||
["<S-Tab>"] = {
|
||||
"select_prev",
|
||||
"snippet_backward",
|
||||
function(cmp)
|
||||
if vim.api.nvim_get_mode().mode == "c" then
|
||||
return cmp.show()
|
||||
end
|
||||
end,
|
||||
"fallback",
|
||||
},
|
||||
},
|
||||
completion = {
|
||||
list = { selection = { preselect = true, auto_insert = false } },
|
||||
ghost_text = {
|
||||
enabled = false,
|
||||
},
|
||||
menu = {
|
||||
auto_show = function(ctx)
|
||||
return ctx.mode ~= "cmdline"
|
||||
end,
|
||||
border = "rounded",
|
||||
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder,CursorLine:PmenuSel,Search:None",
|
||||
draw = {
|
||||
treesitter = { "lsp" },
|
||||
columns = {
|
||||
{ "kind_icon", "label", gap = 1 },
|
||||
{ "kind" },
|
||||
},
|
||||
components = {
|
||||
kind = {
|
||||
-- (optional) use highlights from mini.icons
|
||||
highlight = function(ctx)
|
||||
local _, hl, _ = require("mini.icons").get("lsp", ctx.kind)
|
||||
return hl
|
||||
end,
|
||||
},
|
||||
kind_icon = {
|
||||
text = function(ctx)
|
||||
local icon = ctx.kind_icon
|
||||
if vim.tbl_contains({ "Path" }, ctx.source_name) then
|
||||
local dev_icon, _ = require("nvim-web-devicons").get_icon(ctx.label)
|
||||
if dev_icon then
|
||||
icon = dev_icon
|
||||
end
|
||||
else
|
||||
icon = require("lspkind").symbolic(ctx.kind, {
|
||||
mode = "symbol",
|
||||
})
|
||||
end
|
||||
|
||||
-- `:` cmdline setup.
|
||||
cmp.setup.cmdline(":", {
|
||||
mapping = cmp.mapping.preset.cmdline {
|
||||
["<CR>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.confirm { select = true }
|
||||
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<CR>", true, true, true), "n", true)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "c" }),
|
||||
},
|
||||
sources = cmp.config.sources({
|
||||
{ name = "path" },
|
||||
}, {
|
||||
{
|
||||
name = "cmdline",
|
||||
option = {
|
||||
-- code for me options for processing command when press enter
|
||||
return icon .. ctx.icon_gap
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
accept = {
|
||||
auto_brackets = { enabled = true },
|
||||
},
|
||||
documentation = {
|
||||
auto_show = true,
|
||||
auto_show_delay_ms = 0,
|
||||
window = {
|
||||
border = "rounded",
|
||||
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder,CursorLine:PmenuSel,Search:None",
|
||||
},
|
||||
},
|
||||
},
|
||||
signature = {
|
||||
window = {
|
||||
border = "rounded",
|
||||
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||
},
|
||||
},
|
||||
},
|
||||
specs = {
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
optional = true,
|
||||
specs = { { "Saghen/blink.cmp", opts = { snippets = { preset = "luasnip" } } } },
|
||||
},
|
||||
{
|
||||
"AstroNvim/astrolsp",
|
||||
optional = true,
|
||||
opts = function(_, opts)
|
||||
opts.capabilities = require("blink.cmp").get_lsp_capabilities(opts.capabilities)
|
||||
|
||||
ignore_cmds = {
|
||||
"q",
|
||||
"qa",
|
||||
"qall",
|
||||
"quitall",
|
||||
"quit",
|
||||
"wall",
|
||||
"wq",
|
||||
},
|
||||
},
|
||||
},
|
||||
}),
|
||||
})
|
||||
|
||||
return require("astrocore").extend_tbl(opts, {
|
||||
-- Configure window style
|
||||
window = {
|
||||
completion = {
|
||||
winhighlight = "Normal:Pmenu,CursorLine:PmenuSel,Search:None",
|
||||
-- border = "none",
|
||||
side_padding = 0,
|
||||
},
|
||||
},
|
||||
formatting = {
|
||||
-- Show icon at the beginning and menu at the end
|
||||
fields = { "kind", "abbr", "menu" },
|
||||
format = function(entry, vim_item)
|
||||
local kind = require("lspkind").cmp_format { mode = "symbol_text", maxwidth = 50 }(entry, vim_item)
|
||||
local strings = vim.split(kind.kind, "%s", { trimetry = true })
|
||||
kind.kind = " " .. (strings[1] or "") .. " "
|
||||
kind.menu = " [" .. (strings[2] or "") .. "]"
|
||||
return kind
|
||||
end,
|
||||
},
|
||||
-- Always select the first option
|
||||
completion = {
|
||||
completeopt = "menu,menuone,noinsert",
|
||||
},
|
||||
-- Custom mapping
|
||||
mapping = {
|
||||
-- Esc to close completion menu
|
||||
["<Esc>"] = cmp.mapping { i = cmp.mapping.abort(), c = cmp.mapping.close() },
|
||||
|
||||
|
||||
-- Tab to select completion
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() and has_words_before() then
|
||||
fallback()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
|
||||
-- Use <C-n> and <C-p> to select luasnip
|
||||
["<C-n>"] = cmp.mapping(function(fallback)
|
||||
if luasnip.jumpable(1) then
|
||||
luasnip.jump(1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<C-p>"] = cmp.mapping(function(fallback)
|
||||
if luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
|
||||
-- NOTE: disable tabl when using copilot PART2
|
||||
vim.api.nvim_set_keymap("i", "<C-f>", 'copilot#Accept("\\<CR>")', { expr = true, silent = true }),
|
||||
-- ["<C-f>"] = cmp.mapping(function(fallback)
|
||||
-- -- Check if Copilot is suggesting something
|
||||
-- if vim.fn["copilot#Accept"]() ~= "" then
|
||||
-- else
|
||||
-- fallback() -- If no suggestion, fallback to default behavior
|
||||
-- end
|
||||
-- end, { "i", "s" }), -- Enable in insert and command-line mode
|
||||
},
|
||||
experimental = {
|
||||
ghost_text = false, -- this feature conflict with copilot.vim's preview.
|
||||
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
-- disable AstroLSP signature help if `blink.cmp` is providing it
|
||||
local blink_opts = require("astrocore").plugin_opts("blink.cmp")
|
||||
if vim.tbl_get(blink_opts, "signature", "enabled") == true then
|
||||
if not opts.features then
|
||||
opts.features = {}
|
||||
end
|
||||
opts.features.signature_help = false
|
||||
end
|
||||
end,
|
||||
},
|
||||
{
|
||||
"folke/lazydev.nvim",
|
||||
optional = true,
|
||||
specs = {
|
||||
{
|
||||
"Saghen/blink.cmp",
|
||||
opts = function(_, opts)
|
||||
if pcall(require, "lazydev.integrations.blink") then
|
||||
return require("astrocore").extend_tbl(opts, {
|
||||
sources = {
|
||||
-- add lazydev to your completion providers
|
||||
default = { "lazydev" },
|
||||
providers = {
|
||||
lazydev = {
|
||||
name = "LazyDev",
|
||||
module = "lazydev.integrations.blink",
|
||||
score_offset = 100,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
-- disable built in completion plugins
|
||||
-- { "hrsh7th/cmp-cmdline", event = "CmdlineEnter" },
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user