diff options
| author | srdusr <trevorgray@srdusr.com> | 2023-03-08 09:18:59 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2023-03-08 09:18:59 +0200 |
| commit | 25d5d4d39c9895702b01af56d14ca609cdd74fee (patch) | |
| tree | a7dcb3685768c7e55fa7c5972179259257a3ad15 /.config/nvim/lua/plugins | |
| parent | 4c6d385b35c9a9e84224d8705864a0f72f7d1f90 (diff) | |
| parent | 8c6b1a59acec18c2e4ec34fa586421b9ab7bd587 (diff) | |
| download | dotfiles-25d5d4d39c9895702b01af56d14ca609cdd74fee.tar.gz dotfiles-25d5d4d39c9895702b01af56d14ca609cdd74fee.zip | |
Merge commit 'ea9278c7ef76f36503029667f8ed9a29abea0655'
Diffstat (limited to '.config/nvim/lua/plugins')
| -rw-r--r-- | .config/nvim/lua/plugins/autopairs.lua | 5 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/dashboard.lua | 30 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/goto-preview.lua | 18 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/lsp.lua | 20 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/null-ls.lua | 249 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/telescope.lua | 4 | ||||
| -rw-r--r-- | .config/nvim/lua/plugins/toggleterm.lua | 26 |
7 files changed, 248 insertions, 104 deletions
diff --git a/.config/nvim/lua/plugins/autopairs.lua b/.config/nvim/lua/plugins/autopairs.lua index fc39d2e..90c6d35 100644 --- a/.config/nvim/lua/plugins/autopairs.lua +++ b/.config/nvim/lua/plugins/autopairs.lua @@ -1,4 +1,3 @@ --- Setup nvim-cmp. local status_ok, npairs = pcall(require, "nvim-autopairs") if not status_ok then return @@ -18,9 +17,9 @@ npairs.setup { disable_filetype = { "TelescopePrompt", "spectre_panel" }, disable_in_macro = true, disable_in_visualblock = true, - enalbe_moveright = true, + enable_moveright = true, enable_afterquote = true, -- add bracket pairs after quote - enable_check_bracket_line = true, --- check bracket in same line + enable_check_bracket_line = false, --- check bracket in same line enable_bracket_in_quote = true, -- break_undo = true, -- switch for basic rule break undo sequence fast_wrap = { diff --git a/.config/nvim/lua/plugins/dashboard.lua b/.config/nvim/lua/plugins/dashboard.lua index dd50c65..c6c610d 100644 --- a/.config/nvim/lua/plugins/dashboard.lua +++ b/.config/nvim/lua/plugins/dashboard.lua @@ -20,25 +20,43 @@ db.setup({ }, disable_move = false, shortcut = { - { desc = " Plugins", group = "@property", action = "PackerStatus", key = "p" }, + { desc = " Plugins", group = "Number", action = "PackerStatus", key = "p" }, + --{ desc = " Plugins", group = "@property", action = "PackerStatus", key = "p" }, { desc = " Files", - group = "Label", + group = "Number", + --group = "Label", action = "Telescope find_files", key = "f", }, { - desc = " Text", - group = "DiagnosticHint", - action = "Telescope live_grep", + desc = " Text", + group = "Number", + --group = "Label", + action = 'enew', key = "t", }, { + desc = " Grep", + group = "Number", + --group = "Label", + action = "Telescope live_grep", + key = "g", + }, + { desc = " Scheme", - group = "Number", + group = "Number", + --group = "Label", action = "Telescope colorscheme", key = "s", }, + { + desc = ' Config', + group = "Number", + --group = "Label", + action = ':edit ~/.config.nvim/init.lua', + key = "c", + }, }, }, hide = { diff --git a/.config/nvim/lua/plugins/goto-preview.lua b/.config/nvim/lua/plugins/goto-preview.lua new file mode 100644 index 0000000..d4d2c67 --- /dev/null +++ b/.config/nvim/lua/plugins/goto-preview.lua @@ -0,0 +1,18 @@ +require('goto-preview').setup { + width = 120; -- Width of the floating window + height = 15; -- Height of the floating window + border = {"↖", "─" ,"┐", "│", "┘", "─", "└", "│"}; -- Border characters of the floating window + default_mappings = false; -- Bind default mappings + debug = false; -- Print debug information + opacity = nil; -- 0-100 opacity level of the floating window where 100 is fully transparent. + resizing_mappings = false; -- Binds arrow keys to resizing the floating window. + post_open_hook = nil; -- A function taking two arguments, a buffer and a window to be ran as a hook. + references = { -- Configure the telescope UI for slowing the references cycling window. + telescope = require("telescope.themes").get_dropdown({ hide_preview = false }) + }; + -- These two configs can also be passed down to the goto-preview definition and implementation calls for one off "peak" functionality. + focus_on_open = true; -- Focus the floating window when opening it. + dismiss_on_move = false; -- Dismiss the floating window when moving the cursor. + force_close = true, -- passed into vim.api.nvim_win_close's second argument. See :h nvim_win_close + bufhidden = "wipe", -- the bufhidden option to set on the floating window. See :h bufhidden +} diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua index 7962308..855818f 100644 --- a/.config/nvim/lua/plugins/lsp.lua +++ b/.config/nvim/lua/plugins/lsp.lua @@ -48,20 +48,23 @@ local on_attach = function(client, bufnr) opts.buffer = bufnr keymap.set(mode, l, r, opts) end - -- Mappings map("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>") - map("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>") - map("n", "gi", "<Cmd>lua vim.lsp.buf.implementation()<CR>") - map("n", "gr", "<Cmd>lua vim.lsp.buf.references()<CR>") + --map("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>") + map("n", "gd", "<cmd>lua require('goto-preview').goto_preview_definition()<CR>") + --map("n", "gi", "<Cmd>lua vim.lsp.buf.implementation()<CR>") + map("n", "gi", "<cmd>lua require('goto-preview').goto_preview_implementation()<CR>") + --map("n", "gr", "<Cmd>lua vim.lsp.buf.references()<CR>") + map("n", "gr", "<cmd>lua require('goto-preview').goto_preview_references()<CR>") map("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>") -- most lsp servers don't implement textDocument/Declaration, so gD is useless for now. map("n", "<leader>k", "<Cmd>lua vim.lsp.buf.signature_help()<CR>") - map("n", "gt", "<Cmd>lua vim.lsp.buf.type_definition()<CR>") + --map("n", "gt", "<Cmd>lua vim.lsp.buf.type_definition()<CR>") + map("n", "gt", "<cmd>lua require('goto-preview').goto_preview_type_definition()<CR>") map("n", "gn", "<Cmd>lua vim.lsp.buf.rename()<CR>") map("n", "ga", "<Cmd>lua vim.lsp.buf.code_action()<CR>") map("n", "gf", "<Cmd>lua vim.lsp.buf.formatting()<CR>") - --map("n", "go", "<Cmd>lua vim.diagnostic.open_float()<CR>") - map("n", "go", ":call utils#ToggleDiagnosticsOpenFloat()<CR> | :echom ('Toggle Diagnostics Float open/close...')<CR> | :sl! | echo ('')<CR>") + map("n", "go", "<Cmd>lua vim.diagnostic.open_float()<CR>") + map("n", "<leader>go", ":call utils#ToggleDiagnosticsOpenFloat()<CR> | :echom ('Toggle Diagnostics Float open/close...')<CR> | :sl! | echo ('')<CR>") map("n", "[d", "<Cmd>lua vim.diagnostic.goto_prev()<CR>") map("n", "]d", "<Cmd>lua vim.diagnostic.goto_next()<CR>") map("n", "gs", "<Cmd>lua vim.lsp.buf.document_symbol()<CR>") @@ -297,11 +300,12 @@ vim.diagnostic.config({ underline = false, signs = true, virtual_text = false, + virtual_lines = { only_current_line = true }, float = { show_header = true, source = 'if_many', border = 'rounded', - focusable = false, + focusable = true, }, update_in_insert = false, -- default to false severity_sort = false, -- default to false diff --git a/.config/nvim/lua/plugins/null-ls.lua b/.config/nvim/lua/plugins/null-ls.lua index b96d883..8e7ddd7 100644 --- a/.config/nvim/lua/plugins/null-ls.lua +++ b/.config/nvim/lua/plugins/null-ls.lua @@ -2,89 +2,174 @@ -- -- null-language-server i.e. a sort of language server which does not provide any services such as formatting and diagnostics you expect from a language server. Instead it will need to install corresponding external “sources” and then hook these sources into the neovim lsp client through null-ls. -- -require("null-ls").setup({ - --debug = true, - disabled_filetypes = { "PKGBUILD" }, - timeout_ms = 5000, - --async = true, - debounce = 150, - log = { - enable = true, - level = 'warn', - use_console = 'async', +local null_ls = require "null-ls" +local builtins = null_ls.builtins + +local eslint_opts = { + -- condition = function(utils) + -- return utils.root_has_file ".eslintrc.js" or utils.root_has_file ".eslintrc" or utils.root_has_file ".eslintrc.json" + -- end, + -- diagnostics_format = "#{m} [#{c}]", + prefer_local = true, +} + +local sources = { + builtins.formatting.stylua, + builtins.formatting.shfmt.with({ + filetypes = { "bash", "zsh", "sh" }, + extra_args = { "-i", "2", "-ci" }, + }), + builtins.formatting.shellharden, + builtins.formatting.trim_whitespace.with { filetypes = { "tmux", "teal", "zsh" } }, + builtins.formatting.clang_format, + builtins.formatting.rustfmt, + builtins.formatting.sql_formatter, + builtins.formatting.prettierd.with { + filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact", "json", "yaml", "markdown", "html", "css", "scss", "less", "graphql", "vue", "svelte" }, + condition = function(utils) + return utils.root_has_file ".prettierrc" or utils.root_has_file ".prettierrc.js" or utils.root_has_file ".prettierrc.json" or utils.root_has_file "prettier.config.js" or utils.root_has_file "prettier.config.cjs" + end, }, - update_in_insert = false, - --fallback_severity = vim.diagnostic.severity.ERROR, - --log_level = "warn", - --on_attach = nil, - --on_init = nil, - --on_exit = nil, - sources = { - --require("null-ls").builtins.formatting.shfmt, -- shell script formatting - require("null-ls").builtins.diagnostics.dotenv_linter, - --require("null-ls").builtins.diagnostics.editorconfig_checker, - require("null-ls").builtins.formatting.shfmt.with({ - filetypes = { "bash", "zsh", "sh" }, - extra_args = { "-i", "2", "-ci" }, - }), - require("null-ls").builtins.formatting.prettier, -- markdown formatting - --require("null-ls").builtins.diagnostics.shellcheck, -- shell script diagnostics - require("null-ls").builtins.diagnostics.shellcheck.with({ - diagnostic_config = { - -- see :help vim.diagnostic.config() - underline = true, - virtual_text = false, - signs = true, - update_in_insert = false, - severity_sort = true, - }, - diagnostics_format = "[#{c}] #{m} (#{s})", - -- this will run every time the source runs, - -- so you should prefer caching results if possible - }), --- require("null-ls").builtins.formatting.stylua, -- lua formatting --- require("null-ls").builtins.formatting.prettier.with({ -- markdown, html/js formatting --- filetypes = { "html", "css", "javascript", "javascriptreact", "markdown", "json", "yaml" }, --- }), --- require("null-ls").builtins.formatting.black, --- require("null-ls").builtins.formatting.prettierd, --- require("null-ls").builtins.diagnostics.cspell.with { --- filetypes = { "python", "rust", "typescript" }, --- }, --- --require("null-ls").builtins.diagnostics.luacheck, --- --require("null-ls").builtins.diagnostics.eslint, --- --require("null-ls").builtins.diagnostics.eslint_d, --- require("null-ls").builtins.diagnostics.mdl, --- require("null-ls").builtins.diagnostics.vint, --- require("null-ls").builtins.completion.spell, + + builtins.diagnostics.dotenv_linter, + builtins.diagnostics.shellcheck.with({ -- shell script diagnostics + diagnostic_config = { + -- see :help vim.diagnostic.config() + underline = true, + virtual_text = false, + signs = true, + update_in_insert = false, + severity_sort = true, + }, + diagnostics_format = "[#{c}] #{m} (#{s})", + -- this will run every time the source runs, + -- so you should prefer caching results if possible + }), + builtins.diagnostics.eslint_d.with(eslint_opts), + builtins.diagnostics.todo_comments, + builtins.diagnostics.vint, + + builtins.code_actions.shellcheck, -- shell script code actions + builtins.code_actions.eslint_d.with(eslint_opts), + builtins.code_actions.gitsigns, + builtins.code_actions.gitrebase, + builtins.hover.dictionary, + builtins.hover.printenv, +} + +local M = {} + +M.setup = function(on_attach) + local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) + + null_ls.setup { + sources = sources, + debug = false, + on_attach = function(client, bufnr) + on_attach(client, bufnr) + -- Format on save + -- vim.cmd [[autocmd BufWritePost <buffer> lua vim.lsp.buf.formatting()]] + + -- if client.supports_method "textDocument/formatting" then + -- vim.api.nvim_clear_autocmds { group = augroup, buffer = bufnr } + -- vim.api.nvim_create_autocmd("BufWritePre", { + -- group = augroup, + -- buffer = bufnr, + -- callback = function() + -- -- on 0.8, you should use vim.lsp.buf.format({ bufnr = bufnr }) instead + -- vim.lsp.buf.format { bufnr = bufnr } + -- end, + -- }) + -- end + end, + } +end + +return M + +--require("null-ls").setup({ +-- --debug = true, +-- disabled_filetypes = { "PKGBUILD" }, +-- timeout_ms = 5000, +-- async = true, +-- debounce = 150, +-- --log = { +-- -- enable = true, +-- -- level = 'warn', +-- -- use_console = 'async', +-- --}, +-- update_in_insert = false, +-- --fallback_severity = vim.diagnostic.severity.ERROR, +-- --log_level = "warn", +-- --on_attach = nil, +-- --on_init = nil, +-- --on_exit = nil, +-- sources = { +-- --require("null-ls").builtins.formatting.shfmt, -- shell script formatting +-- require("null-ls").builtins.diagnostics.dotenv_linter, +-- --require("null-ls").builtins.diagnostics.editorconfig_checker, +-- require("null-ls").builtins.formatting.shfmt.with({ +-- filetypes = { "bash", "zsh", "sh" }, +-- extra_args = { "-i", "2", "-ci" }, +-- }), +-- require("null-ls").builtins.formatting.prettier, -- markdown formatting +-- --require("null-ls").builtins.diagnostics.shellcheck, -- shell script diagnostics +-- require("null-ls").builtins.diagnostics.shellcheck.with({ +-- diagnostic_config = { +-- -- see :help vim.diagnostic.config() +-- underline = true, +-- virtual_text = false, +-- signs = true, +-- update_in_insert = false, +-- severity_sort = true, +-- }, +-- diagnostics_format = "[#{c}] #{m} (#{s})", +-- -- this will run every time the source runs, +-- -- so you should prefer caching results if possible +-- }), +---- require("null-ls").builtins.formatting.stylua, -- lua formatting +---- require("null-ls").builtins.formatting.prettier.with({ -- markdown, html/js formatting +---- filetypes = { "html", "css", "javascript", "javascriptreact", "markdown", "json", "yaml" }, +---- }), +---- require("null-ls").builtins.formatting.black, +---- require("null-ls").builtins.formatting.prettierd, +---- require("null-ls").builtins.diagnostics.cspell.with { +---- filetypes = { "python", "rust", "typescript" }, +---- }, +---- --require("null-ls").builtins.diagnostics.luacheck, +---- --require("null-ls").builtins.diagnostics.eslint, +---- --require("null-ls").builtins.diagnostics.eslint_d, +---- require("null-ls").builtins.diagnostics.mdl, +---- require("null-ls").builtins.diagnostics.vint, +---- require("null-ls").builtins.completion.spell, +---- require("null-ls").builtins.formatting.clang_format, +---- require("null-ls").builtins.formatting.rustfmt, +---- require("null-ls").builtins.formatting.sql_formatter, +---- --require("null-ls").builtins.formatting.google_java_format, +---- require("null-ls").builtins.diagnostics.cppcheck, +-- require("null-ls").builtins.formatting.shellharden, +---- --require("null-ls").builtins.code_actions.eslint_d, +-- require("null-ls").builtins.code_actions.shellcheck, -- shell script code actions -- require("null-ls").builtins.formatting.clang_format, -- require("null-ls").builtins.formatting.rustfmt, +-- --require("null-ls").builtins.formatting.beautysh, -- require("null-ls").builtins.formatting.sql_formatter, --- --require("null-ls").builtins.formatting.google_java_format, --- require("null-ls").builtins.diagnostics.cppcheck, - require("null-ls").builtins.formatting.shellharden, --- --require("null-ls").builtins.code_actions.eslint_d, - require("null-ls").builtins.code_actions.shellcheck, -- shell script code actions - require("null-ls").builtins.formatting.clang_format, - require("null-ls").builtins.formatting.rustfmt, - --require("null-ls").builtins.formatting.beautysh, - require("null-ls").builtins.formatting.sql_formatter, - require("null-ls").builtins.diagnostics.todo_comments, - --require("null-ls").builtins.diagnostics.zsh, - require("null-ls").builtins.hover.dictionary, - require("null-ls").builtins.hover.printenv, - }, - -- default_timeout = 5000, - -- diagnostics_format = '[#{c}] #{m} (#{s})', - -- fallback_severity = vim.diagnostic.severity.ERROR, - -- log = { - -- enable = true, - -- level = 'warn', - -- use_console = 'async', - -- }, - --on_attach = nil, - --on_init = nil, - --on_exit = nil, - --update_in_insert = false, - --update_in_leave = false, -}) +-- require("null-ls").builtins.diagnostics.todo_comments, +-- --require("null-ls").builtins.diagnostics.zsh, +-- require("null-ls").builtins.hover.dictionary, +-- require("null-ls").builtins.hover.printenv, +-- }, +-- -- default_timeout = 5000, +-- -- diagnostics_format = '[#{c}] #{m} (#{s})', +-- -- fallback_severity = vim.diagnostic.severity.ERROR, +-- -- log = { +-- -- enable = true, +-- -- level = 'warn', +-- -- use_console = 'async', +-- -- }, +-- --on_attach = nil, +-- --on_init = nil, +-- --on_exit = nil, +-- --update_in_insert = false, +-- --update_in_leave = false, +--}) diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua index 6cd41ae..95a5dd6 100644 --- a/.config/nvim/lua/plugins/telescope.lua +++ b/.config/nvim/lua/plugins/telescope.lua @@ -281,6 +281,7 @@ function M.find_configs() "~/.config/bspwm", "~/.config/sxhkd", "~/.config/picom", + "~/.bashrc", }, -- cwd = "~/.config/nvim/", file_ignore_patterns = { @@ -300,7 +301,8 @@ end function M.find_scripts() require("telescope.builtin").find_files { hidden = true, - prompt_title = " Find Notes", + no_ignore = true, + prompt_title = " Find Scripts", path_display = { "smart" }, search_dirs = { "~/.local/bin/scripts", diff --git a/.config/nvim/lua/plugins/toggleterm.lua b/.config/nvim/lua/plugins/toggleterm.lua index 5875fc6..a9bd450 100644 --- a/.config/nvim/lua/plugins/toggleterm.lua +++ b/.config/nvim/lua/plugins/toggleterm.lua @@ -2,7 +2,6 @@ local status_ok, toggleterm = pcall(require, "toggleterm") if not status_ok then return end - toggleterm.setup({ --size = function(term) -- if term.direction == "horizontal" then @@ -13,6 +12,7 @@ toggleterm.setup({ --end, --size = 20, open_mapping = [[<leader>tt]], + --autochdir = true, hide_numbers = true, shade_filetypes = {}, shade_terminals = false, @@ -77,12 +77,11 @@ end -- if you only want these mappings for toggle term use term://*toggleterm#* instead vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') ---vim.cmd("autocmd! TermOpen term://*toggleterm#* lua set_terminal_keymaps()") - local Terminal = require("toggleterm.terminal").Terminal local lazygit = Terminal:new({ cmd = "lazygit", count = 5, + id = 1000, dir = "git_dir", direction = "float", on_open = float_handler, @@ -92,6 +91,7 @@ local lazygit = Terminal:new({ width = 150, height = 40 }, + ---- Function to run on opening the terminal --on_open = function(term) -- vim.api.nvim_buf_set_keymap(term.bufnr, 'n', 'q', '<cmd>close<CR>', @@ -108,7 +108,25 @@ local lazygit = Terminal:new({ }) function Lazygit_toggle() - lazygit:toggle() + -- cwd is the root of project. if cwd is changed, change the git. + local cwd = vim.fn.getcwd() + if cwd ~= Cur_cwd then + Cur_cwd = cwd + lazygit:close() + lazygit = Terminal:new({ + cmd = "lazygit", + dir = "git_dir", + direction = "float", + hidden = true, + on_open = float_handler, + float_opts = { + border = { '╒', '═', '╕', '│', '╛', '═', '╘', '│' }, + width = 150, + height = 40 + }, + }) + end + lazygit:toggle() end local node = Terminal:new({ cmd = "node", hidden = true }) |
