diff --git a/cli/fd/config/fd/ignore b/cli/fd/config/fd/ignore new file mode 100644 index 0000000..b04e3ce --- /dev/null +++ b/cli/fd/config/fd/ignore @@ -0,0 +1,3 @@ +!.env +.git + diff --git a/nvim/nvim/config/new/lua/lsp/cmp.lua b/nvim/nvim/config/new/lua/lsp/cmp.lua index 91e07de..44c0b5f 100644 --- a/nvim/nvim/config/new/lua/lsp/cmp.lua +++ b/nvim/nvim/config/new/lua/lsp/cmp.lua @@ -3,6 +3,39 @@ if not cmp_status_ok then return end +local lsn_status_ok, luasnip = pcall(require, "luasnip") +if not lsn_status_ok then + return +end + +local kind_icons = { + Text = "", + Method = "m", + 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({ snippet = { expand = function(args) @@ -10,6 +43,8 @@ cmp.setup({ end, }, mapping = { + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), [""] = cmp.mapping.select_prev_item(), [""] = cmp.mapping.select_next_item(), [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), @@ -21,12 +56,44 @@ cmp.setup({ c = cmp.mapping.close(), }), [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), }, sources = cmp.config.sources({ { name = "nvim_lsp" }, { name = "buffer" }, { name = "path" }, - }) + }), + formatting = { + fields = { "abbr", "kind" }, + format = function(entry, vim_item) + vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) + vim_item.menu = ({ + nvim_lsp = "[LSP]", + luasnip = "[Snippet]", + buffer = "[Buffer]", + path = "[Path]", + })[entry.source.name] + return vim_item + end, + }, }) cmp.setup.cmdline('/', { diff --git a/nvim/nvim/config/new/lua/lsp/handlers.lua b/nvim/nvim/config/new/lua/lsp/handlers.lua index 79b3008..04cc8ff 100644 --- a/nvim/nvim/config/new/lua/lsp/handlers.lua +++ b/nvim/nvim/config/new/lua/lsp/handlers.lua @@ -1,29 +1,5 @@ local M = {} -M.icons = { - Class = " ", - Color = " ", - Constant = " ", - Constructor = " ", - Enum = "了 ", - EnumMember = " ", - Field = " ", - File = " ", - Folder = " ", - Function = " ", - Interface = "ﰮ ", - Keyword = " ", - Method = "ƒ ", - Module = " ", - Property = " ", - Snippet = "﬌ ", - Struct = " ", - Text = " ", - Unit = " ", - Value = " ", - Variable = " ", -} - M.setup = function() local signs = { { name = "DiagnosticSignError", text = "" }, @@ -39,11 +15,6 @@ M.setup = function() virtual_text = false, update_in_insert = true, }) - - local kinds = vim.lsp.protocol.CompletionItemKind - for i, kind in ipairs(kinds) do - kinds[i] = M.icons[kind] or kind - end end local function lsp_highlight_document(client) diff --git a/nvim/nvim/config/new/lua/plugins.lua b/nvim/nvim/config/new/lua/plugins.lua index a0c2c58..fc72efd 100644 --- a/nvim/nvim/config/new/lua/plugins.lua +++ b/nvim/nvim/config/new/lua/plugins.lua @@ -49,6 +49,12 @@ return packer.startup(function(use) use "folke/tokyonight.nvim" + use { + 'nvim-telescope/telescope.nvim', + requires = { {'nvim-lua/plenary.nvim'} } + } + use {'nvim-telescope/telescope-fzf-native.nvim', run = 'make' } + use "folke/which-key.nvim" use "akinsho/toggleterm.nvim" diff --git a/nvim/nvim/config/new/lua/windows/init.lua b/nvim/nvim/config/new/lua/windows/init.lua index 30b07d3..e428f20 100644 --- a/nvim/nvim/config/new/lua/windows/init.lua +++ b/nvim/nvim/config/new/lua/windows/init.lua @@ -1,3 +1,4 @@ require "windows.toggleterm" require "windows.which-key" +require "windows.telescope" diff --git a/nvim/nvim/config/new/lua/windows/telescope.lua b/nvim/nvim/config/new/lua/windows/telescope.lua new file mode 100644 index 0000000..d5f8a3c --- /dev/null +++ b/nvim/nvim/config/new/lua/windows/telescope.lua @@ -0,0 +1,25 @@ +local status_ok, telescope = pcall(require, "telescope") +if not status_ok then + return +end + +telescope.setup({ + defaults = { + prompt_prefix = " ", + selection_caret = " ", + }, + extensions = { + fzf = { + fuzzy = true, -- false will only do exact matching + override_generic_sorter = true, -- override the generic sorter + override_file_sorter = true, -- override the file sorter + } + }, + pickers = { + find_files = { + hidden = true, + }, + }, +}) + +require('telescope').load_extension('fzf')