···11+return { -- Autocompletion
22+ "hrsh7th/nvim-cmp",
33+ event = "InsertEnter",
44+ dependencies = {
55+ -- Snippet Engine & its associated nvim-cmp source
66+ {
77+ "L3MON4D3/LuaSnip",
88+ build = (function()
99+ -- Build Step is needed for regex support in snippets.
1010+ -- This step is not supported in many windows environments.
1111+ -- Remove the below condition to re-enable on windows.
1212+ if vim.fn.has("win32") == 1 or vim.fn.executable("make") == 0 then
1313+ return
1414+ end
1515+ return "make install_jsregexp"
1616+ end)(),
1717+ dependencies = {
1818+ -- `friendly-snippets` contains a variety of premade snippets.
1919+ -- See the README about individual language/framework/plugin snippets:
2020+ -- https://github.com/rafamadriz/friendly-snippets
2121+ -- {
2222+ -- 'rafamadriz/friendly-snippets',
2323+ -- config = function()
2424+ -- require('luasnip.loaders.from_vscode').lazy_load()
2525+ -- end,
2626+ -- },
2727+ },
2828+ },
2929+ "saadparwaiz1/cmp_luasnip",
3030+3131+ -- Adds other completion capabilities.
3232+ -- nvim-cmp does not ship with all sources by default. They are split
3333+ -- into multiple repos for maintenance purposes.
3434+ "hrsh7th/cmp-nvim-lsp",
3535+ "hrsh7th/cmp-path",
3636+ },
3737+ config = function()
3838+ -- See `:help cmp`
3939+ local cmp = require("cmp")
4040+ local luasnip = require("luasnip")
4141+ luasnip.config.setup({})
4242+4343+ cmp.setup({
4444+ snippet = {
4545+ expand = function(args)
4646+ luasnip.lsp_expand(args.body)
4747+ end,
4848+ },
4949+ completion = { completeopt = "menu,menuone,noinsert" },
5050+5151+ -- For an understanding of why these mappings were
5252+ -- chosen, you will need to read `:help ins-completion`
5353+ --
5454+ -- No, but seriously. Please read `:help ins-completion`, it is really good!
5555+ mapping = cmp.mapping.preset.insert({
5656+ -- Select the [n]ext item
5757+ ["<C-n>"] = cmp.mapping.select_next_item(),
5858+ -- Select the [p]revious item
5959+ ["<C-p>"] = cmp.mapping.select_prev_item(),
6060+6161+ -- Scroll the documentation window [b]ack / [f]orward
6262+ ["<C-b>"] = cmp.mapping.scroll_docs(-4),
6363+ ["<C-f>"] = cmp.mapping.scroll_docs(4),
6464+6565+ -- Accept ([y]es) the completion.
6666+ -- This will auto-import if your LSP supports it.
6767+ -- This will expand snippets if the LSP sent a snippet.
6868+ ["<C-y>"] = cmp.mapping.confirm({ select = true }),
6969+7070+ -- If you prefer more traditional completion keymaps,
7171+ -- you can uncomment the following lines
7272+ --['<CR>'] = cmp.mapping.confirm { select = true },
7373+ --['<Tab>'] = cmp.mapping.select_next_item(),
7474+ --['<S-Tab>'] = cmp.mapping.select_prev_item(),
7575+7676+ -- Manually trigger a completion from nvim-cmp.
7777+ -- Generally you don't need this, because nvim-cmp will display
7878+ -- completions whenever it has completion options available.
7979+ ["<C-Space>"] = cmp.mapping.complete({}),
8080+8181+ -- Think of <c-l> as moving to the right of your snippet expansion.
8282+ -- So if you have a snippet that's like:
8383+ -- function $name($args)
8484+ -- $body
8585+ -- end
8686+ --
8787+ -- <c-l> will move you to the right of each of the expansion locations.
8888+ -- <c-h> is similar, except moving you backwards.
8989+ ["<C-l>"] = cmp.mapping(function()
9090+ if luasnip.expand_or_locally_jumpable() then
9191+ luasnip.expand_or_jump()
9292+ end
9393+ end, { "i", "s" }),
9494+ ["<C-h>"] = cmp.mapping(function()
9595+ if luasnip.locally_jumpable(-1) then
9696+ luasnip.jump(-1)
9797+ end
9898+ end, { "i", "s" }),
9999+100100+ -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
101101+ -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
102102+ }),
103103+ sources = {
104104+ {name = "cody" },
105105+ {
106106+ name = "lazydev",
107107+ -- set group index to 0 to skip loading LuaLS completions as lazydev recommends it
108108+ group_index = 0,
109109+ },
110110+ { name = "nvim_lsp" },
111111+ { name = "luasnip" },
112112+ { name = "path" },
113113+ },
114114+ })
115115+ end,
116116+}
···11+return {
22+ -- Main LSP Configuration
33+ "neovim/nvim-lspconfig",
44+ dependencies = {
55+ -- Automatically install LSPs and related tools to stdpath for Neovim
66+ { "williamboman/mason.nvim", config = true }, -- NOTE: Must be loaded before dependants
77+ "williamboman/mason-lspconfig.nvim",
88+ "WhoIsSethDaniel/mason-tool-installer.nvim",
99+1010+ -- Useful status updates for LSP.
1111+ -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
1212+ { "j-hui/fidget.nvim", opts = {} },
1313+1414+ -- Allows extra capabilities provided by nvim-cmp
1515+ "hrsh7th/cmp-nvim-lsp",
1616+ },
1717+ config = function()
1818+ vim.api.nvim_create_autocmd("LspAttach", {
1919+ group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
2020+ callback = function(event)
2121+ -- NOTE: Remember that Lua is a real programming language, and as such it is possible
2222+ -- to define small helper and utility functions so you don't have to repeat yourself.
2323+ --
2424+ -- In this case, we create a function that lets us more easily define mappings specific
2525+ -- for LSP related items. It sets the mode, buffer and description for us each time.
2626+ local map = function(keys, func, desc, mode)
2727+ mode = mode or "n"
2828+ vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
2929+ end
3030+3131+ -- Jump to the definition of the word under your cursor.
3232+ -- This is where a variable was first declared, or where a function is defined, etc.
3333+ -- To jump back, press <C-t>.
3434+ map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition")
3535+3636+ map("<leader>lr", ":LspRestart<CR>", "Restart LSP")
3737+3838+ map("K", function()
3939+ vim.lsp.buf.hover()
4040+ end, "Show documentation for symbol under cursor")
4141+4242+ map("<leader>rr", function()
4343+ vim.lsp.buf.references()
4444+ end, "[R]eferences")
4545+4646+ -- Find references for the word under your cursor.
4747+ map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
4848+4949+ -- Jump to the implementation of the word under your cursor.
5050+ -- Useful when your language has ways of declaring types without an actual implementation.
5151+ map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation")
5252+5353+ -- Jump to the type of the word under your cursor.
5454+ -- Useful when you're not sure what type a variable is and you want to see
5555+ -- the definition of its *type*, not where it was *defined*.
5656+ map("<leader>D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition")
5757+5858+ -- Fuzzy find all the symbols in your current document.
5959+ -- Symbols are things like variables, functions, types, etc.
6060+ map("<leader>ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols")
6161+6262+ -- Fuzzy find all the symbols in your current workspace.
6363+ -- Similar to document symbols, except searches over your entire project.
6464+ --map("<leader>ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols")
6565+6666+ -- Rename the variable under your cursor.
6767+ -- Most Language Servers support renaming across files, etc.
6868+ map("<leader>rn", function()
6969+ vim.api.nvim_create_autocmd({ "CmdlineEnter" }, {
7070+ callback = function()
7171+ local key = vim.api.nvim_replace_termcodes("<C-f>", true, false, true)
7272+ vim.api.nvim_feedkeys(key, "c", false)
7373+ vim.api.nvim_feedkeys("0", "n", false)
7474+ return true
7575+ end,
7676+ })
7777+ vim.lsp.buf.rename()
7878+ end, "[R]e[n]ame")
7979+8080+ -- Execute a code action, usually your cursor needs to be on top of an error
8181+ -- or a suggestion from your LSP for this to activate.
8282+ map("<leader>ca", vim.lsp.buf.code_action, "[C]ode [A]ction", { "n", "x" })
8383+8484+ -- WARN: This is not Goto Definition, this is Goto Declaration.
8585+ -- For example, in C this would take you to the header.
8686+ map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
8787+8888+ map("<leader>vd", function()
8989+ vim.diagnostic.open_float()
9090+ end, "[V]iew [D]iagnostics")
9191+9292+ map("[d", function()
9393+ vim.diagnostic.goto_prev()
9494+ end, "Prev Diagnostic")
9595+ map("]d", function()
9696+ vim.diagnostic.goto_next()
9797+ end, "Next Diagnostic")
9898+9999+ -- The following two autocommands are used to highlight references of the
100100+ -- word under your cursor when your cursor rests there for a little while.
101101+ -- See `:help CursorHold` for information about when this is executed
102102+ --
103103+ -- When you move your cursor, the highlights will be cleared (the second autocommand).
104104+ local client = vim.lsp.get_client_by_id(event.data.client_id)
105105+ if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then
106106+ local highlight_augroup = vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false })
107107+ vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
108108+ buffer = event.buf,
109109+ group = highlight_augroup,
110110+ callback = vim.lsp.buf.document_highlight,
111111+ })
112112+113113+ vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
114114+ buffer = event.buf,
115115+ group = highlight_augroup,
116116+ callback = vim.lsp.buf.clear_references,
117117+ })
118118+119119+ vim.api.nvim_create_autocmd("LspDetach", {
120120+ group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }),
121121+ callback = function(event2)
122122+ vim.lsp.buf.clear_references()
123123+ vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event2.buf })
124124+ end,
125125+ })
126126+ end
127127+128128+ -- The following code creates a keymap to toggle inlay hints in your
129129+ -- code, if the language server you are using supports them
130130+ --
131131+ -- This may be unwanted, since they displace some of your code
132132+ if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
133133+ map("<leader>th", function()
134134+ vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
135135+ end, "[T]oggle Inlay [H]ints")
136136+ end
137137+ end,
138138+ })
139139+140140+ -- LSP servers and clients are able to communicate to each other what features they support.
141141+ -- By default, Neovim doesn't support everything that is in the LSP specification.
142142+ -- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
143143+ -- So, we create new capabilities with nvim cmp, and then broadcast that to the servers.
144144+ local capabilities = vim.lsp.protocol.make_client_capabilities()
145145+ capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities())
146146+147147+ local mason_registry = require("mason-registry")
148148+ local vue_language_server_path = mason_registry.get_package("vue-language-server"):get_install_path()
149149+ .. "/node_modules/@vue/language-server"
150150+151151+ -- Enable the following language servers
152152+ -- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
153153+ --
154154+ -- Add any additional override configuration in the following tables. Available keys are:
155155+ -- - cmd (table): Override the default command used to start the server
156156+ -- - filetypes (table): Override the default list of associated filetypes for the server
157157+ -- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features.
158158+ -- - settings (table): Override the default settings passed when initializing the server.
159159+ -- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
160160+ local servers = {
161161+ -- clangd = {},
162162+ -- gopls = {},
163163+ -- pyright = {},
164164+ -- rust_analyzer = {},
165165+ -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
166166+ --
167167+ -- Some languages (like typescript) have entire language plugins that can be useful:
168168+ -- https://github.com/pmizio/typescript-tools.nvim
169169+ --
170170+ -- But for many setups, the LSP (`tsserver`) will work just fine
171171+ -- tsserver = {},
172172+ --
173173+ --
174174+ tsserver = {
175175+ init_options = {
176176+ plugins = {
177177+ {
178178+ -- this happneed to be installed, maybe it does not need to be added manually but if it does not work then try to install it
179179+ name = "@vue/typescript-plugin",
180180+ location = vue_language_server_path,
181181+ languages = { "vue" },
182182+ },
183183+ },
184184+ },
185185+ filetypes = { "typescript", "javascript", "javascriptreact", "typescriptreact", "vue" },
186186+ commands = {
187187+ OrganizeImports = {
188188+ function()
189189+ local params = {
190190+ command = "_typescript.organizeImports",
191191+ arguments = { vim.api.nvim_buf_get_name(0) },
192192+ title = "",
193193+ }
194194+ vim.lsp.buf.execute_command(params)
195195+ end,
196196+ description = "Organize Imports",
197197+ },
198198+ },
199199+ },
200200+201201+ volar = {},
202202+203203+ lua_ls = {
204204+ -- cmd = {...},
205205+ -- filetypes = { ...},
206206+ -- capabilities = {},
207207+ settings = {
208208+ Lua = {
209209+ completion = {
210210+ callSnippet = "Replace",
211211+ },
212212+ diagnostics = {
213213+ globals = { "vim" },
214214+ },
215215+ -- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings
216216+ -- diagnostics = { disable = { 'missing-fields' } },
217217+ },
218218+ },
219219+ },
220220+ }
221221+222222+ -- Ensure the servers and tools above are installed
223223+ -- To check the current status of installed tools and/or manually install
224224+ -- other tools, you can run
225225+ -- :Mason
226226+ --
227227+ -- You can press `g?` for help in this menu.
228228+ require("mason").setup()
229229+230230+ -- You can add other tools here that you want Mason to install
231231+ -- for you, so that they are available from within Neovim.
232232+ local ensure_installed = vim.tbl_keys(servers or {})
233233+ vim.list_extend(ensure_installed, {
234234+ "stylua", -- Used to format Lua code
235235+ })
236236+ require("mason-tool-installer").setup({ ensure_installed = ensure_installed })
237237+238238+ require("mason-lspconfig").setup({
239239+ handlers = {
240240+ function(server_name)
241241+ local server = servers[server_name] or {}
242242+ -- This handles overriding only values explicitly passed
243243+ -- by the server configuration above. Useful when disabling
244244+ -- certain features of an LSP (for example, turning off formatting for tsserver)
245245+ server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {})
246246+ require("lspconfig")[server_name].setup(server)
247247+ end,
248248+ },
249249+ })
250250+251251+ -- Setup specific LSPs
252252+253253+ -- Styling
254254+ vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" })
255255+256256+ vim.lsp.handlers["textDocument/signatureHelp"] =
257257+ vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded" })
258258+259259+ vim.diagnostic.config({
260260+ -- update_in_insert = true,
261261+ float = {
262262+ focusable = false,
263263+ style = "minimal",
264264+ border = "rounded",
265265+ source = "always",
266266+ header = "",
267267+ prefix = "",
268268+ },
269269+ })
270270+ end,
271271+}
···11+return {
22+ "stevearc/oil.nvim",
33+ ---@module 'oil'
44+ ---@type oil.SetupOpts
55+ opts = {
66+ -- Oil will take over directory buffers (e.g. `vim .` or `:e src/`)
77+ -- Set to false if you want some other plugin (e.g. netrw) to open when you edit directories.
88+ default_file_explorer = true,
99+ -- Id is automatically added at the beginning, and name at the end
1010+ -- See :help oil-columns
1111+ columns = {
1212+ "icon",
1313+ -- "permissions",
1414+ -- "size",
1515+ -- "mtime",
1616+ },
1717+ -- Buffer-local options to use for oil buffers
1818+ buf_options = {
1919+ buflisted = false,
2020+ bufhidden = "hide",
2121+ },
2222+ -- Window-local options to use for oil buffers
2323+ win_options = {
2424+ wrap = false,
2525+ signcolumn = "no",
2626+ cursorcolumn = false,
2727+ foldcolumn = "0",
2828+ spell = false,
2929+ list = false,
3030+ conceallevel = 3,
3131+ concealcursor = "nvic",
3232+ },
3333+ -- Send deleted files to the trash instead of permanently deleting them (:help oil-trash)
3434+ delete_to_trash = false,
3535+ -- Skip the confirmation popup for simple operations (:help oil.skip_confirm_for_simple_edits)
3636+ skip_confirm_for_simple_edits = false,
3737+ -- Selecting a new/moved/renamed file or directory will prompt you to save changes first
3838+ -- (:help prompt_save_on_select_new_entry)
3939+ prompt_save_on_select_new_entry = true,
4040+ -- Oil will automatically delete hidden buffers after this delay
4141+ -- You can set the delay to false to disable cleanup entirely
4242+ -- Note that the cleanup process only starts when none of the oil buffers are currently displayed
4343+ cleanup_delay_ms = 2000,
4444+ lsp_file_methods = {
4545+ -- Enable or disable LSP file operations
4646+ enabled = true,
4747+ -- Time to wait for LSP file operations to complete before skipping
4848+ timeout_ms = 1000,
4949+ -- Set to true to autosave buffers that are updated with LSP willRenameFiles
5050+ -- Set to "unmodified" to only save unmodified buffers
5151+ autosave_changes = false,
5252+ },
5353+ -- Constrain the cursor to the editable parts of the oil buffer
5454+ -- Set to `false` to disable, or "name" to keep it on the file names
5555+ constrain_cursor = "editable",
5656+ -- Set to true to watch the filesystem for changes and reload oil
5757+ watch_for_changes = true,
5858+ -- Keymaps in oil buffer. Can be any value that `vim.keymap.set` accepts OR a table of keymap
5959+ -- options with a `callback` (e.g. { callback = function() ... end, desc = "", mode = "n" })
6060+ -- Additionally, if it is a string that matches "actions.<name>",
6161+ -- it will use the mapping at require("oil.actions").<name>
6262+ -- Set to `false` to remove a keymap
6363+ -- See :help oil-actions for a list of all available actions
6464+ keymaps = {
6565+ ["g?"] = "actions.show_help",
6666+ ["<CR>"] = "actions.select",
6767+ ["<C-s>"] = { "actions.select", opts = { vertical = true }, desc = "Open the entry in a vertical split" },
6868+ ["<C-h>"] = {
6969+ "actions.select",
7070+ opts = { horizontal = true },
7171+ desc = "Open the entry in a horizontal split",
7272+ },
7373+ ["<C-t>"] = { "actions.select", opts = { tab = true }, desc = "Open the entry in new tab" },
7474+ ["<C-p>"] = "actions.preview",
7575+ ["<C-c>"] = "actions.close",
7676+ ["<C-l>"] = "actions.refresh",
7777+ ["-"] = "actions.parent",
7878+ ["_"] = "actions.open_cwd",
7979+ ["`"] = "actions.cd",
8080+ ["~"] = { "actions.cd", opts = { scope = "tab" }, desc = ":tcd to the current oil directory", mode = "n" },
8181+ ["gs"] = "actions.change_sort",
8282+ ["gx"] = "actions.open_external",
8383+ ["g."] = "actions.toggle_hidden",
8484+ ["g\\"] = "actions.toggle_trash",
8585+ },
8686+ -- Set to false to disable all of the above keymaps
8787+ use_default_keymaps = true,
8888+ view_options = {
8989+ -- Show files and directories that start with "."
9090+ show_hidden = false,
9191+ -- This function defines what is considered a "hidden" file
9292+ is_hidden_file = function(name, bufnr)
9393+ local m = name:match("^%.")
9494+ return m ~= nil
9595+ end,
9696+ -- This function defines what will never be shown, even when `show_hidden` is set
9797+ is_always_hidden = function(name, bufnr)
9898+ return false
9999+ end,
100100+ -- Sort file names with numbers in a more intuitive order for humans.
101101+ -- Can be "fast", true, or false. "fast" will turn it off for large directories.
102102+ natural_order = "fast",
103103+ -- Sort file and directory names case insensitive
104104+ case_insensitive = false,
105105+ sort = {
106106+ -- sort order can be "asc" or "desc"
107107+ -- see :help oil-columns to see which columns are sortable
108108+ { "type", "asc" },
109109+ { "name", "asc" },
110110+ },
111111+ },
112112+ -- Extra arguments to pass to SCP when moving/copying files over SSH
113113+ extra_scp_args = {},
114114+ -- EXPERIMENTAL support for performing file operations with git
115115+ git = {
116116+ -- Return true to automatically git add/mv/rm files
117117+ add = function(path)
118118+ return false
119119+ end,
120120+ mv = function(src_path, dest_path)
121121+ return false
122122+ end,
123123+ rm = function(path)
124124+ return false
125125+ end,
126126+ },
127127+ -- Configuration for the floating window in oil.open_float
128128+ float = {
129129+ -- Padding around the floating window
130130+ padding = 2,
131131+ max_width = 0,
132132+ max_height = 0,
133133+ border = "rounded",
134134+ win_options = {
135135+ winblend = 0,
136136+ },
137137+ -- optionally override the oil buffers window title with custom function: fun(winid: integer): string
138138+ get_win_title = nil,
139139+ -- preview_split: Split direction: "auto", "left", "right", "above", "below".
140140+ preview_split = "auto",
141141+ -- This is the config that will be passed to nvim_open_win.
142142+ -- Change values here to customize the layout
143143+ override = function(conf)
144144+ return conf
145145+ end,
146146+ },
147147+ -- Configuration for the file preview window
148148+ preview_win = {
149149+ -- Whether the preview window is automatically updated when the cursor is moved
150150+ update_on_cursor_moved = true,
151151+ -- How to open the preview window "load"|"scratch"|"fast_scratch"
152152+ preview_method = "fast_scratch",
153153+ -- A function that returns true to disable preview on a file e.g. to avoid lag
154154+ disable_preview = function(filename)
155155+ return false
156156+ end,
157157+ -- Window-local options to use for preview window buffers
158158+ win_options = {},
159159+ },
160160+ -- Configuration for the floating action confirmation window
161161+ confirmation = {
162162+ -- Width dimensions can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
163163+ -- min_width and max_width can be a single value or a list of mixed integer/float types.
164164+ -- max_width = {100, 0.8} means "the lesser of 100 columns or 80% of total"
165165+ max_width = 0.9,
166166+ -- min_width = {40, 0.4} means "the greater of 40 columns or 40% of total"
167167+ min_width = { 40, 0.4 },
168168+ -- optionally define an integer/float for the exact width of the preview window
169169+ width = nil,
170170+ -- Height dimensions can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
171171+ -- min_height and max_height can be a single value or a list of mixed integer/float types.
172172+ -- max_height = {80, 0.9} means "the lesser of 80 columns or 90% of total"
173173+ max_height = 0.9,
174174+ -- min_height = {5, 0.1} means "the greater of 5 columns or 10% of total"
175175+ min_height = { 5, 0.1 },
176176+ -- optionally define an integer/float for the exact height of the preview window
177177+ height = nil,
178178+ border = "rounded",
179179+ win_options = {
180180+ winblend = 0,
181181+ },
182182+ },
183183+ -- Configuration for the floating progress window
184184+ progress = {
185185+ max_width = 0.9,
186186+ min_width = { 40, 0.4 },
187187+ width = nil,
188188+ max_height = { 10, 0.9 },
189189+ min_height = { 5, 0.1 },
190190+ height = nil,
191191+ border = "rounded",
192192+ minimized_border = "none",
193193+ win_options = {
194194+ winblend = 0,
195195+ },
196196+ },
197197+ -- Configuration for the floating SSH window
198198+ ssh = {
199199+ border = "rounded",
200200+ },
201201+ -- Configuration for the floating keymaps help window
202202+ keymaps_help = {
203203+ border = "rounded",
204204+ },
205205+ },
206206+ -- Optional dependencies
207207+ dependencies = { { "echasnovski/mini.icons", opts = {} } },
208208+ -- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if prefer nvim-web-devicons
209209+}
···11+-- Use your favorite package manager to install, for example in lazy.nvim
22+-- Optionally, you can also install nvim-telescope/telescope.nvim to use some search functionality.
33+return {
44+ {
55+ --enabled:
66+ "sourcegraph/sg.nvim",
77+ dependencies = { "nvim-lua/plenary.nvim", --[[ "nvim-telescope/telescope.nvim ]] },
88+ enabled = false,
99+ config = function()
1010+ require("sg").setup()
1111+ end,
1212+ },
1313+}