diff options
Diffstat (limited to 'nvim/lua/plugins')
-rw-r--r-- | nvim/lua/plugins/blankline.lua | 6 | ||||
-rw-r--r-- | nvim/lua/plugins/bufferline.lua | 182 | ||||
-rw-r--r-- | nvim/lua/plugins/cmp.lua | 138 | ||||
-rw-r--r-- | nvim/lua/plugins/dap.lua | 95 | ||||
-rw-r--r-- | nvim/lua/plugins/git-worktree.lua | 4 | ||||
-rw-r--r-- | nvim/lua/plugins/lsp-installer.lua | 121 | ||||
-rw-r--r-- | nvim/lua/plugins/lspconfig.lua | 97 | ||||
-rw-r--r-- | nvim/lua/plugins/lspkind.lua | 29 | ||||
-rw-r--r-- | nvim/lua/plugins/lspstatus.lua | 12 | ||||
-rw-r--r-- | nvim/lua/plugins/lualine.lua | 5 | ||||
-rw-r--r-- | nvim/lua/plugins/luasnip.lua | 13 | ||||
-rw-r--r-- | nvim/lua/plugins/neogit.lua | 1 | ||||
-rw-r--r-- | nvim/lua/plugins/null-ls.lua | 12 | ||||
-rw-r--r-- | nvim/lua/plugins/nvim-tree.lua | 7 | ||||
-rw-r--r-- | nvim/lua/plugins/telescope.lua | 51 | ||||
-rw-r--r-- | nvim/lua/plugins/treesitter.lua | 9 |
16 files changed, 782 insertions, 0 deletions
diff --git a/nvim/lua/plugins/blankline.lua b/nvim/lua/plugins/blankline.lua new file mode 100644 index 0000000..d68ccf9 --- /dev/null +++ b/nvim/lua/plugins/blankline.lua @@ -0,0 +1,6 @@ +require("indent_blankline").setup { + -- for example, context is off by default, use this to turn it on + show_current_context = true, + show_current_context_start = true, + show_end_of_line = true +} diff --git a/nvim/lua/plugins/bufferline.lua b/nvim/lua/plugins/bufferline.lua new file mode 100644 index 0000000..bd3192d --- /dev/null +++ b/nvim/lua/plugins/bufferline.lua @@ -0,0 +1,182 @@ +local diagnostics_signs = { + ['error'] = '', + warning = '', + default = '', +} + +require('bufferline').setup{ + options = { + always_show_bufferline = false, + diagnostics = 'nvim_lsp', + diagnostics_indicator = function(count, level, diagnostics_dict, context) + local s = ' ' + for e, n in pairs(diagnostics_dict) do + local sym = diagnostics_signs[e] or diagnostics_signs.default + s = s .. (#s > 1 and ' ' or '') .. sym .. ' ' .. n + end + return s + end, + separator_style = 'slant', + indicator_icon = ' ', + buffer_close_icon = '', + modified_icon = '●', + close_icon = '', + close_command = "Bdelete %d", + right_mouse_command = "Bdelete! %d", + left_trunc_marker = '', + right_trunc_marker = '', + offsets = {{filetype = "NvimTree", text = "EXPLORER", text_align = "center"}}, + show_tab_indicators = true, + show_close_icon = false + }, + highlights = { + fill = { + guifg = {attribute = "fg", highlight = "Normal"}, + guibg = {attribute = "bg", highlight = "StatusLineNC"}, + }, + background = { + guifg = {attribute = "fg", highlight = "Normal"}, + guibg = {attribute = "bg", highlight = "StatusLine"} + }, + buffer_visible = { + gui = "", + guifg = {attribute = "fg", highlight = "Normal"}, + guibg = {attribute = "bg", highlight = "Normal"} + }, + buffer_selected = { + gui = "", + guifg = {attribute = "fg", highlight = "Normal"}, + guibg = {attribute = "bg", highlight = "Normal"} + }, + separator = { + guifg = {attribute = "bg", highlight = "Normal"}, + guibg = {attribute = "bg", highlight = "StatusLine"}, + }, + separator_selected = { + guifg = {attribute = "fg", highlight = "Special"}, + guibg = {attribute = "bg", highlight = "Normal"} + }, + separator_visible = { + guifg = {attribute = "fg", highlight = "Normal"}, + guibg = {attribute = "bg", highlight = "StatusLineNC"}, + }, + close_button = { + guifg = {attribute = "fg", highlight = "Normal"}, + guibg = {attribute = "bg", highlight = "StatusLine"} + }, + close_button_selected = { + guifg = {attribute = "fg", highlight = "normal"}, + guibg = {attribute = "bg", highlight = "normal"} + }, + close_button_visible = { + guifg = {attribute = "fg", highlight = "normal"}, + guibg = {attribute = "bg", highlight = "normal"} + }, + + } +} + +-- local map = require('utils').map +-- local bufferline = require 'bufferline' + +-- local bar_bg = '#1f1f1f' +-- local bar_fg = '#c9c9c9' +-- local elem_bg = '#2d2d2d' +-- local elem_fg = '#8c8c8c' +-- local selected_bg = '#444444' +-- local selected_fg = '#efefef' +-- local error_fg = '#ca241a' +-- local warning_fg = '#fabd2f' +-- local info_fg = '#83a5cb' +-- local pick_fg = '#870000' + +-- local colors = { +-- bar = { guifg = bar_fg, guibg = bar_bg }, +-- elem = { guifg = elem_fg, guibg = elem_bg }, +-- elem_inactive = { guifg = elem_fg, guibg = elem_bg }, +-- elem_selected = { guifg = selected_fg, guibg = selected_bg }, +-- separator = { guifg = bar_bg, guibg = elem_bg }, +-- separator_selected = { guifg = bar_bg, guibg = selected_bg }, +-- error = { guifg = error_fg, guibg = elem_bg, guisp = error_fg }, +-- error_selected = { guifg = error_fg, guibg = selected_bg, gui = '' }, +-- warning = { guifg = warning_fg, guibg = elem_bg, guisp = warning_fg }, +-- warning_selected = { guifg = warning_fg, guibg = selected_bg, gui = '' }, +-- info = { guifg = info_fg, guibg = elem_bg, guisp = info_fg }, +-- info_selected = { guifg = info_fg, guibg = selected_bg, gui = '' }, +-- pick = { guifg = pick_fg, guibg = elem_bg }, +-- pick_selected = { guifg = pick_fg, guibg = selected_bg }, +-- } + +-- local diagnostics_signs = { +-- ['error'] = '', +-- warning = '', +-- default = '', +-- } + +-- require('bufferline').setup{ +-- options = { +-- always_show_bufferline = false, +-- diagnostics = 'nvim_lsp', +-- diagnostics_indicator = function(count, level, diagnostics_dict, context) +-- local s = ' ' +-- for e, n in pairs(diagnostics_dict) do +-- local sym = diagnostics_signs[e] or diagnostics_signs.default +-- s = s .. (#s > 1 and ' ' or '') .. sym .. ' ' .. n +-- end +-- return s +-- end, +-- separator_style = 'slant', +-- }, +-- highlights = { +-- background = colors.elem_inactive, +-- buffer_selected = colors.elem_selected, +-- buffer_visible = colors.elem_inactive, +-- close_button = colors.elem, +-- close_button_selected = colors.elem_selected, +-- close_button_visible = colors.elem, +-- diagnostic = colors.info, +-- diagnostic_selected = colors.info_selected, +-- diagnostic_visible = colors.info, +-- duplicate = colors.elem, +-- duplicate_selected = colors.elem_selected, +-- duplicate_visible = colors.elem, +-- error = colors.error, +-- error_diagnostic = colors.error, +-- error_diagnostic_selected = colors.error_selected, +-- error_selected = colors.error_selected, +-- fill = colors.bar, +-- hint = colors.info, +-- hint_diagnostic = colors.info, +-- hint_diagnostic_selected = colors.info_selected, +-- hint_diagnostic_visible = colors.info, +-- hint_selected = colors.info_selected, +-- hint_visible = colors.info, +-- info = colors.info, +-- info_diagnostic = colors.info, +-- info_diagnostic_selected = colors.info_selected, +-- info_diagnostic_visible = colors.info, +-- info_selected = colors.info_selected, +-- info_visible = colors.info, +-- modified = colors.elem, +-- modified_selected = colors.elem_selected, +-- modified_visible = colors.elem, +-- pick = colors.pick, +-- pick_selected = colors.pick_selected, +-- separator = colors.separator, +-- separator_selected = colors.separator_selected, +-- separator_visible = colors.separator, +-- tab = colors.elem, +-- tab_close = colors.bar, +-- tab_selected = colors.elem_selected, +-- warning = colors.warning, +-- warning_diagnostic = colors.warning, +-- warning_diagnostic_selected = colors.warning_selected, +-- warning_diagnostic_visible = colors.warning, +-- warning_selected = colors.warning_selected, +-- warning_visible = colors.warning, +-- }, +-- } + +-- local opts = { silent = true, nowait = true } +-- map('n', 'gb', '<cmd>BufferLinePick<cr>', opts) +-- map('n', '<leader>d', '<cmd>bdelete!<cr>', opts) diff --git a/nvim/lua/plugins/cmp.lua b/nvim/lua/plugins/cmp.lua new file mode 100644 index 0000000..2729b0e --- /dev/null +++ b/nvim/lua/plugins/cmp.lua @@ -0,0 +1,138 @@ +-- Set completeopt to have a better completion experience +vim.o.completeopt = 'menuone,noselect' +local cmp = require 'cmp' + +cmp.setup({ + completion = { + -- completeopt = 'menu,menuone,noinsert', + }, + snippet = { + expand = function(args) require('luasnip').lsp_expand(args.body) end + }, + formatting = { + format = function(entry, vim_item) + -- fancy icons and a name of kind + vim_item.kind = require("lspkind").presets.default[vim_item.kind] + -- set a name for each source + vim_item.menu = ({ + buffer = "[Buff]", + nvim_lsp = "[LSP]", + luasnip = "[LuaSnip]", + nvim_lua = "[Lua]", + latex_symbols = "[Latex]" + })[entry.source.name] + return vim_item + end + }, + sources = { + {name = 'nvim_lsp'}, + {name = 'nvim_lua'}, + {name = 'path'}, + {name = 'luasnip'}, + {name = 'buffer', keyword_length = 1}, + {name = 'calc'} + }, + experimental = { + -- ghost_text = true, + } + +}) + +-- Require function for tab to work with LUA-SNIP +local has_words_before = function() + local line, col = 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 + +cmp.setup({ + mapping = { + ['<C-Space>'] = cmp.mapping.complete(), + ['<C-e>'] = cmp.mapping.close(), + ['<C-u>'] = cmp.mapping.scroll_docs(-4), + ['<C-d>'] = cmp.mapping.scroll_docs(4), + ['<CR>'] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Replace, + select = false + }), + + ["<Tab>"] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, {"i", "s"}), + + ["<S-Tab>"] = 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"}) + + } +}) + +-- local luasnip = require("luasnip") + +-- local source_mapping = { +-- nvim_lsp = "[LSP]", +-- nvim_lua = "[Lua]", +-- path = "[Path]", +-- buffer = "[Buffer]", +-- luasnip = "[LuaSnip]", +-- nvim_lsp_signature_help = "[LspSignatureHelp]", +-- calc = "[Calc]", +-- } + +-- cmp.setup({ +-- snippet = { +-- expand = function(args) require('luasnip').lsp_expand(args.body) end +-- }, + +-- mapping = { +-- ['<C-p>'] = cmp.mapping.select_prev_item(), +-- ['<C-n>'] = cmp.mapping.select_next_item(), +-- -- Add tab support +-- ['<S-Tab>'] = cmp.mapping.select_prev_item(), +-- ['<Tab>'] = cmp.mapping.select_next_item(), +-- ['<C-d>'] = cmp.mapping.scroll_docs(-4), +-- ['<C-u>'] = cmp.mapping.scroll_docs(4), +-- ['<C-Space>'] = cmp.mapping.complete(), +-- ['<C-e>'] = cmp.mapping.close(), +-- ['<CR>'] = cmp.mapping.confirm({ +-- behavior = cmp.ConfirmBehavior.Replace, +-- select = true, +-- }) +-- }, + +-- formatting = { +-- format = function(entry, vim_item) +-- vim_item.kind = require("lspkind").presets.default[vim_item.kind] +-- local menu = source_mapping[entry.source.name] +-- vim_item.menu = menu +-- return vim_item +-- end, +-- }, +-- -- Installed sources +-- sources = { +-- -- { name = 'path' }, +-- { name = "nvim_lsp" }, +-- { name = "nvim_lua" }, +-- { name = 'path' }, +-- { name = "luasnip" }, +-- { name = "buffer", keyword_length = 1 }, +-- { name = 'nvim_lsp_signature_help' }, +-- { name = 'calc' }, +-- }, +-- })
\ No newline at end of file diff --git a/nvim/lua/plugins/dap.lua b/nvim/lua/plugins/dap.lua new file mode 100644 index 0000000..065cead --- /dev/null +++ b/nvim/lua/plugins/dap.lua @@ -0,0 +1,95 @@ + +local dap = require("dap"); + +dap.configurations.typescriptreact = { -- change to typescript if needed + { + type = "chrome", + request = "attach", + program = "${file}", + cwd = vim.fn.getcwd(), + sourceMaps = true, + protocol = "inspector", + port = 9222, + webRoot = "${workspaceFolder}" + } +} + +require('dap.ext.vscode').load_launchjs() + +-- Debugpy +dap.adapters.python = { + type = 'executable', + command = 'python', + args = { '-m', 'debugpy.adapter' }, +} + +dap.configurations.python = { + { + type = 'python', + request = 'launch', + name = 'Launch file', + program = '${file}', + pythonPath = function() + local venv_path = vim.fn.getenv 'VIRTUAL_ENVIRONMENT' + if venv_path ~= vim.NIL and venv_path ~= '' then + return venv_path .. '/bin/python' + else + return '/usr/bin/python' + end + end, + }, +} + +-- Neovim Lua +dap.adapters.nlua = function(callback, config) + callback { type = 'server', host = config.host, port = config.port } +end + +dap.configurations.lua = { + { + type = 'nlua', + request = 'attach', + name = 'Attach to running Neovim instance', + host = function() + local value = vim.fn.input 'Host [127.0.0.1]: ' + if value ~= '' then + return value + end + return '127.0.0.1' + end, + port = function() + local val = tonumber(vim.fn.input 'Port: ') + assert(val, 'Please provide a port number') + return val + end, + }, +} + +-- lldb +dap.adapters.lldb = { + type = 'executable', + command = '/usr/bin/lldb-vscode', + name = 'lldb', +} + +dap.configurations.cpp = { + { + name = 'Launch', + type = 'lldb', + request = 'launch', + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + cwd = '${workspaceFolder}', + stopOnEntry = false, + args = {}, + runInTerminal = false, + }, +} + +dap.configurations.c = dap.configurations.cpp +dap.configurations.rust = dap.configurations.cpp + +vim.cmd [[command! BreakpointToggle lua require('dap').toggle_breakpoint()]] +vim.cmd [[command! Debug lua require('dap').continue()]] +vim.cmd [[command! DapREPL lua require('dap').repl.open()]] diff --git a/nvim/lua/plugins/git-worktree.lua b/nvim/lua/plugins/git-worktree.lua new file mode 100644 index 0000000..d34e41c --- /dev/null +++ b/nvim/lua/plugins/git-worktree.lua @@ -0,0 +1,4 @@ +require("git-worktree").setup({ +}) + +require("telescope").load_extension("git_worktree")
\ No newline at end of file diff --git a/nvim/lua/plugins/lsp-installer.lua b/nvim/lua/plugins/lsp-installer.lua new file mode 100644 index 0000000..da61bbc --- /dev/null +++ b/nvim/lua/plugins/lsp-installer.lua @@ -0,0 +1,121 @@ +local lsp_installer = require("nvim-lsp-installer") + +-- Provide settings first! +lsp_installer.settings { + ui = { + icons = { + server_installed = "✓", + server_pending = "➜", + server_uninstalled = "✗" + } + }, + + -- Limit for the maximum amount of servers to be installed at the same time. Once this limit is reached, any further + -- servers that are requested to be installed will be put in a queue. + max_concurrent_installers = 4 +} + +--------------------------------------------------- +local enhance_server_opts = { + ["eslintls"] = function(opts) + opts.settings = { + format = { + enable = true, + }, + } + end, + ["gopls"] = function(opts) + opts.cmd = { + "gopls", + "serve", + } + opts.settings = { + gopls = { + staticcheck = true, + analyses = { + unusedparams = true, + }, + }, + } + end +} + + +local function make_server_ready(attach) + lsp_installer.on_server_ready(function(server) + -- Specify the default options which we'll use to setup all servers + local opts = { + on_attach = on_attach, + } + if server.name == "rust_analyzer" then + local rustopts = { + tools = { + autoSetHints = true, + hover_with_actions = false, + inlay_hints = { + show_parameter_hints = true, + parameter_hints_prefix = "", + other_hints_prefix = "", + }, + }, + server = vim.tbl_deep_extend("force", server:get_default_options(), opts, { + settings = { + ["rust-analyzer"] = { + completion = { + postfix = { + enable = false + } + }, + checkOnSave = { + command = "clippy" + }, + } + } + }), + } + require("rust-tools").setup(rustopts) + server:attach_buffers() + else + if enhance_server_opts[server.name] then + -- Enhance the default opts with the server-specific ones + enhance_server_opts[server.name](opts) + end + -- This setup() function is exactly the same as lspconfig's setup function (:help lspconfig-quickstart) + server:setup(opts) + end + + vim.cmd [[ do User LspAttachBuffers ]] + end) +end +--------------------------------------------------- + +--------------------------------------------------- +local servers = { + "rust_analyzer", + "tsserver", -- for javascript + "jsonls", -- for json + "texlab", -- for latex + "ltex", + "sqlls", -- for sql + "pylsp", -- for python + "sumneko_lua", -- for lua + "gopls", -- for go + "yamlls", + "bashls", + "dockerls" +} + +-- setup the LS +require "plugins.lspconfig" +make_server_ready(On_attach) -- LSP mappings + +-- install the LS +for _, name in pairs(servers) do + local server_is_found, server = lsp_installer.get_server(name) + if server_is_found then + if not server:is_installed() then + print("Installing " .. name) + server:install() + end + end +end
\ No newline at end of file diff --git a/nvim/lua/plugins/lspconfig.lua b/nvim/lua/plugins/lspconfig.lua new file mode 100644 index 0000000..c10e1dc --- /dev/null +++ b/nvim/lua/plugins/lspconfig.lua @@ -0,0 +1,97 @@ +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities.textDocument.completion.completionItem.snippetSupport = true + +vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( + vim.lsp.diagnostic.on_publish_diagnostics, { + underline = true, + signs = true, + update_in_insert = true, + virtual_text = { + true, + spacing = 6, + --severity_limit='Error' -- Only show virtual text on error + }, + } +) + +local function config(_config) + return vim.tbl_deep_extend("force", { + capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities()), + on_attach = function() + Nnoremap("gd", ":lua vim.lsp.buf.definition()<CR>") + Nnoremap("K", ":lua vim.lsp.buf.hover()<CR>") + Nnoremap("<leader>vws", ":lua vim.lsp.buf.workspace_symbol()<CR>") + Nnoremap("<leader>vd", ":lua vim.diagnostic.open_float()<CR>") + Nnoremap("[d", ":lua vim.lsp.diagnostic.goto_next()<CR>") + Nnoremap("]d", ":lua vim.lsp.diagnostic.goto_prev()<CR>") + Nnoremap("<leader>vca", ":lua vim.lsp.buf.code_action()<CR>") + Nnoremap("<leader>vrr", ":lua vim.lsp.buf.references()<CR>") + Nnoremap("<leader>vrn", ":lua vim.lsp.buf.rename()<CR>") + Inoremap("<C-h>", "<cmd>lua vim.lsp.buf.signature_help()<CR>") + end, + }, _config or {}) +end + +require("lspconfig").tsserver.setup(config()) + +require("lspconfig").ccls.setup(config()) + +require("lspconfig").jedi_language_server.setup(config()) + +require("lspconfig").svelte.setup(config()) + +require("lspconfig").solang.setup(config()) + +require("lspconfig").cssls.setup(config()) + +require("lspconfig").gopls.setup(config({ + cmd = { "gopls", "serve" }, + settings = { + gopls = { + analyses = { + unusedparams = true, + }, + staticcheck = true, + }, + }, +})) + +local rustopts = { + tools = { + autoSetHints = true, + hover_with_actions = true, + runnables = { + use_telescope = true + }, + inlay_hints = { + show_parameter_hints = false, + parameter_hints_prefix = "", + other_hints_prefix = "", + }, + }, + server = { + settings = { + ["rust-analyzer"] = { + checkOnSave = { + command = "clippy" + }, + } + } + }, +} + +require("rust-tools").setup(rustopts) + +local opts = { + -- whether to highlight the currently hovered symbol + -- disable if your cpu usage is higher than you want it + -- or you just hate the highlight + -- default: true + highlight_hovered_item = true, + + -- whether to show outline guides + -- default: true + show_guides = true, +} + +require("symbols-outline").setup(opts) diff --git a/nvim/lua/plugins/lspkind.lua b/nvim/lua/plugins/lspkind.lua new file mode 100644 index 0000000..d2b437a --- /dev/null +++ b/nvim/lua/plugins/lspkind.lua @@ -0,0 +1,29 @@ +require('lspkind').init({ + -- enables text annotations (default: 'default') + -- default symbol map can be either 'default' or 'codicons' for codicon preset (requires vscode-codicons font installed) + preset = 'codicons', + + -- override preset symbols (default: {}) + symbol_map = { + Text = '', + Method = 'ƒ', + Function = '', + Constructor = '', + Variable = '', + Class = '', + Interface = 'ﰮ', + Module = '', + Property = '', + Unit = '', + Value = '', + Enum = '了', + Keyword = '', + Snippet = '', + Color = '', + File = '', + Folder = '', + EnumMember = '', + Constant = '', + Struct = '' + }, +})
\ No newline at end of file diff --git a/nvim/lua/plugins/lspstatus.lua b/nvim/lua/plugins/lspstatus.lua new file mode 100644 index 0000000..ce34ab7 --- /dev/null +++ b/nvim/lua/plugins/lspstatus.lua @@ -0,0 +1,12 @@ +require('lsp-status').status() +require('lsp-status').register_progress() +require('lsp-status').config({ + indicator_errors = '✗', + indicator_warnings = '⚠', + indicator_info = '', + indicator_hint = '', + indicator_ok = '✔', + current_function = true, + update_interval = 100, + status_symbol = ' 🇻', +})
\ No newline at end of file diff --git a/nvim/lua/plugins/lualine.lua b/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..825ae08 --- /dev/null +++ b/nvim/lua/plugins/lualine.lua @@ -0,0 +1,5 @@ +require('lualine').setup { + options = { + theme = 'vscode' + } +} diff --git a/nvim/lua/plugins/luasnip.lua b/nvim/lua/plugins/luasnip.lua new file mode 100644 index 0000000..50c5457 --- /dev/null +++ b/nvim/lua/plugins/luasnip.lua @@ -0,0 +1,13 @@ +require("luasnip").config.set_config({ + history = true, + updateevents = "TextChanged,TextChangedI" +}) + +require("luasnip").snippets = {all = {}, html = {}} + +require("luasnip").snippets.javascript = require("luasnip").snippets.html +require("luasnip").snippets.javascriptreact = require("luasnip").snippets.html +require("luasnip").snippets.typescriptreact = require("luasnip").snippets.html +require("luasnip/loaders/from_vscode").load({include = {"html"}}) + +require('luasnip/loaders/from_vscode').lazy_load()
\ No newline at end of file diff --git a/nvim/lua/plugins/neogit.lua b/nvim/lua/plugins/neogit.lua new file mode 100644 index 0000000..5d2e47b --- /dev/null +++ b/nvim/lua/plugins/neogit.lua @@ -0,0 +1 @@ +require('neogit').setup {}
\ No newline at end of file diff --git a/nvim/lua/plugins/null-ls.lua b/nvim/lua/plugins/null-ls.lua new file mode 100644 index 0000000..44ee62c --- /dev/null +++ b/nvim/lua/plugins/null-ls.lua @@ -0,0 +1,12 @@ +local null_ls = require("null-ls") + +local formatting = null_ls.builtins.formatting + +null_ls.setup({ + sources = { + formatting.prettier, + formatting.black, + formatting.stylua, + formatting.rustfmt, + }, +})
\ No newline at end of file diff --git a/nvim/lua/plugins/nvim-tree.lua b/nvim/lua/plugins/nvim-tree.lua new file mode 100644 index 0000000..c2499d8 --- /dev/null +++ b/nvim/lua/plugins/nvim-tree.lua @@ -0,0 +1,7 @@ +require("nvim-tree").setup { + git = { + enable = true, + ignore = false, + timeout = 500 + } +}
\ No newline at end of file diff --git a/nvim/lua/plugins/telescope.lua b/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..d26a4c7 --- /dev/null +++ b/nvim/lua/plugins/telescope.lua @@ -0,0 +1,51 @@ +require('telescope').setup { + defaults = { + file_ignore_patterns = {"node_modules", ".git", "dist"}, + vimgrep_arguments = { + "rg", + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + "--hidden", + "--iglob", + "!yarn.lock", + "--smart-case", + "-u" + }, + layout_strategy = 'flex', + scroll_strategy = 'cycle', + }, + extensions = { + project = { + base_dirs = { + {path = "~/src", max_depth = 1} + }, + hidden_files = true + }, + fzf = { + fuzzy = true, + override_generic_sorter = true, + override_file_sorter = true, + case_mode = 'smart_case', + }, + }, + pickers = { + find_files = { + find_command = {"rg", "--files", "--hidden"} + }, + lsp_references = { theme = 'dropdown' }, + lsp_code_actions = { theme = 'dropdown' }, + lsp_definitions = { theme = 'dropdown' }, + lsp_implementations = { theme = 'dropdown' }, + buffers = { + sort_lastused = true, + }, + }, +} + +-- Extensions +require('telescope').load_extension('frecency') +require('telescope').load_extension('fzf') +require('telescope').load_extension('dap') diff --git a/nvim/lua/plugins/treesitter.lua b/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..826693a --- /dev/null +++ b/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,9 @@ +require("nvim-treesitter.configs").setup { + indent = { + enable = true + }, + highlight = { + enable = true, + additional_vim_regex_highlighting = false + } +}
\ No newline at end of file |