feat: nvim config updates

This commit is contained in:
2024-11-18 17:16:17 -05:00
parent 2e3c750979
commit 23bd867430
3 changed files with 27 additions and 127 deletions

View File

@@ -2,6 +2,7 @@ return {
"hrsh7th/nvim-cmp",
event = "InsertEnter",
dependencies = {
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer", -- source for text in buffer
"hrsh7th/cmp-path", -- source for file system paths
"L3MON4D3/LuaSnip", -- snippet engine
@@ -33,7 +34,17 @@ return {
["<C-j>"] = cmp.mapping.select_next_item(), -- next suggestion
["<C-Space>"] = cmp.mapping.complete(), -- show completion suggestions
["<C-e>"] = cmp.mapping.abort(), -- close completion window
["<CR>"] = cmp.mapping.confirm({ select = false, behavior = cmp.ConfirmBehavior.Replace }),
["<CR>"] = cmp.mapping(function(fallback)
if cmp.visible() then
if luasnip.expandable() then
luasnip.expand()
else
cmp.confirm({ select = true })
end
else
fallback()
end
end),
-- TODO:
-- The next two mappings are also implemented in the LuaSnip configuration,
-- as <C-j> and <C-k> do they actually need to be here??
@@ -69,119 +80,3 @@ return {
})
end,
}
-- return {
-- "hrsh7th/nvim-cmp",
-- enabled = true,
-- dependencies = {
-- "hrsh7th/cmp-nvim-lsp",
-- "hrsh7th/cmp-buffer",
-- "hrsh7th/cmp-path",
-- "hrsh7th/cmp-cmdline",
-- "hrsh7th/cmp-vsnip",
-- "hrsh7th/vim-vsnip",
-- "saadparwaiz1/cmp_luasnip",
-- "f3fora/cmp-spell",
-- "hrsh7th/cmp-calc",
-- "hrsh7th/cmp-emoji",
-- "L3MON4D3/LuaSnip",
-- -- Adds a number of user-friendly snippets
-- "rafamadriz/friendly-snippets",
-- "onsails/lspkind.nvim", -- vs-code like pictograms
-- },
-- event = { "BufReadPre", "BufNewFile" },
-- config = function()
-- -- Setup nvim-cmp.
-- local cmp = require("cmp")
-- local lspkind = require("lspkind")
-- local capabilities = vim.lsp.protocol.make_client_capabilities()
-- capabilities = require("cmp_nvim_lsp").default_capabilities(capabilities)
-- local luasnip = require("luasnip")
-- require("luasnip.loaders.from_vscode").lazy_load()
--
-- require("lspconfig").sourcekit.setup({
-- capabilities = capabilities,
-- })
--
-- lspkind.init({
-- symbol_map = {
--
-- Text = "",
-- Method = "󰡱",
-- Function = "󰡱",
-- Constructor = "",
-- Field = "ﰠ",
-- Variable = "",
-- Class = "ﴯ",
-- Interface = "",
-- Module = "",
-- Property = "ﰠ",
-- Unit = "塞",
-- Value = "",
-- Enum = "",
-- Keyword = "",
-- Snippet = "",
-- Color = "",
-- File = "",
-- Reference = "",
-- Folder = "",
-- EnumMember = "",
-- Constant = "",
-- Struct = "פּ",
-- Event = "",
-- Operator = "",
-- TypeParameter = "",
-- },
-- })
--
-- cmp.setup({
-- completion = {
-- completeopt = "menu,menuone,preview",
-- },
-- snippet = { -- configure how nvim-cmp interacts with snippet engine
-- expand = function(args)
-- luasnip.lsp_expand(args.body)
-- end,
-- },
-- mapping = cmp.mapping.preset.insert({
-- ["<C-k>"] = cmp.mapping.select_prev_item(), -- previous suggestion
-- ["<C-j>"] = cmp.mapping.select_next_item(), -- next suggestion
-- ["<C-Space>"] = cmp.mapping.complete(), -- show completion suggestions
-- ["<C-e>"] = cmp.mapping.abort(), -- close completion window
-- ["<CR>"] = cmp.mapping.confirm({ select = false, behavior = cmp.ConfirmBehavior.Replace }),
-- ["<C-b>"] = cmp.mapping(function(fallback)
-- if luasnip.jumpable(-1) then
-- luasnip.jump(-1)
-- else
-- fallback()
-- end
-- end, { "i", "s" }),
-- ["<C-f>"] = cmp.mapping(function(fallback)
-- if luasnip.jumpable(1) then
-- luasnip.jump(1)
-- else
-- fallback()
-- end
-- end, { "i", "s" }),
-- }),
-- -- sources for autocompletion
-- sources = cmp.config.sources({
-- { name = "nvim_lsp" },
-- { name = "luasnip" }, -- snippets
-- { name = "buffer" }, -- text within current buffer
-- { name = "path" }, -- file system paths
-- --{ name = "calc" },
-- --{ name = "emoji" },
-- --{ name = "spell" },
-- }),
-- -- configure lspkind for vs-code like pictograms in completion menu
-- formatting = {
-- expandable_indicator = true,
-- fields = { "abbr", "kind", "menu" },
-- format = lspkind.cmp_format({
-- maxwidth = 50,
-- ellipsis_char = "...",
-- }),
-- },
-- })
-- end,
-- }

View File

@@ -1,14 +1,12 @@
return {
"L3MON4D3/LuaSnip",
opts = {
history = true,
enable_autosnippets = false, -- don't automatically expand snippets.
updatevents = "TextChanged,TextChangedI",
},
config = function()
local ls = require("luasnip")
local types = require("luasnip.util.types")
ls.setup({
history = true,
enable_autosnippets = false,
updatevents = "TextChanged,TextChangedI",
extra_opts = {
[types.choiceNode] = {
active = {

View File

@@ -12,7 +12,7 @@ local rep = require("luasnip.extras").rep
-- Add snippets
ls.add_snippets("swift", {
-- Add a dependency snippet.
s("@d", fmt("@Dependency(\\.{}) var {}", { i(1), rep(1) })),
s({ trig = "@d", desc = "Add a dependency." }, fmt("@Dependency(\\.{}) var {}", { i(1), rep(1) })),
-- Add a dependency client.
s(
@@ -66,19 +66,23 @@ ls.add_snippets("swift", {
)
),
s({ trig = "spi", desc = "Add spi modifier." }, fmt("@_spi({})", { i(1, "name") })),
-- Decorate a type or function with an @_spi(...)
s({ trig = "@_s", desc = "Add spi modifier." }, fmt("@_spi({})", { i(1, "name") })),
-- Add an @_spi(...) import ...
s(
{ trig = "sii", desc = "Import with spi." },
{ trig = "@_si", desc = "Import with spi." },
fmt(
[[
@_spi({}) import {}
{}
]],
{ i(1, "name"), i(2, "modlue"), i(0) }
{ i(1, "name"), i(2, "module"), i(0) }
)
),
-- Document a function
-- TODO: add dynamic number of prameters.
s(
{ trig = "docf", desc = "Document a function." },
fmt(
@@ -88,10 +92,11 @@ ls.add_snippets("swift", {
/// - Parameters:
/// - {}: {}
]],
{ i(1, "A short description."), i(2, "<param>"), i(3, "<param-description>") }
{ i(1, "A short description."), i(2, "<param>"), i(3, "Describe the parameter.") }
)
),
-- Add a parameter to a documentation string.
s(
{ trig = "param", desc = "Add a parameter to documentation" },
fmt(
@@ -101,6 +106,8 @@ ls.add_snippets("swift", {
{ i(1, "<param>"), i(2, "<description>") }
)
),
-- Add a withDependencies
s(
{ trig = "wd", desc = "withDependencies" },
fmt(