diff options
| author | Kyren223 <ulmliad223@gmail.com> | 2024-07-11 20:13:10 +0300 |
|---|---|---|
| committer | Kyren223 <ulmliad223@gmail.com> | 2024-07-11 20:13:10 +0300 |
| commit | 46915185a44a40b909821c3a0187b7f9cc840f71 (patch) | |
| tree | 3e9ec12edbfb42311ed079e9753f45548df256a6 /.config/nvim/lua/custom | |
| parent | 6f98acd1dac05792c4b53107be96b9c8ace4fa0a (diff) | |
Neovim: worked on lsp nicities and also git configuration
Diffstat (limited to '.config/nvim/lua/custom')
| -rw-r--r-- | .config/nvim/lua/custom/completion.lua | 42 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/git.lua | 29 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/lsp.lua | 59 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/TODO-lsp_signature.lua | 20 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/TODO-none-ls.lua | 13 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/plugins/lsp.lua | 20 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/snippets/lua.lua | 3 | ||||
| -rw-r--r-- | .config/nvim/lua/custom/telescope.lua | 25 |
8 files changed, 132 insertions, 79 deletions
diff --git a/.config/nvim/lua/custom/completion.lua b/.config/nvim/lua/custom/completion.lua index 507d807..85a963f 100644 --- a/.config/nvim/lua/custom/completion.lua +++ b/.config/nvim/lua/custom/completion.lua @@ -79,3 +79,45 @@ cmp.setup({ end, }, }) + +-- -- Customization for Pmenu +-- vim.api.nvim_set_hl(0, 'PmenuSel', { bg = '#282C34', fg = 'NONE' }) +-- vim.api.nvim_set_hl(0, 'Pmenu', { fg = '#C5CDD9', bg = '#22252A' }) +-- +vim.api.nvim_set_hl(0, 'CmpItemAbbrDeprecated', { fg = '#ff8294', bg = 'NONE', strikethrough = true }) +-- vim.api.nvim_set_hl(0, 'CmpItemAbbrMatch', { fg = '#82AAFF', bg = 'NONE', bold = true }) +-- vim.api.nvim_set_hl(0, 'CmpItemAbbrMatchFuzzy', { fg = '#82AAFF', bg = 'NONE', bold = true }) +-- vim.api.nvim_set_hl(0, 'CmpItemMenu', { fg = '#C792EA', bg = 'NONE', italic = true }) +-- +-- vim.api.nvim_set_hl(0, 'CmpItemKindField', { fg = '#EED8DA', bg = '#B5585F' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindProperty', { fg = '#EED8DA', bg = '#B5585F' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindEvent', { fg = '#EED8DA', bg = '#B5585F' }) +-- +-- vim.api.nvim_set_hl(0, 'CmpItemKindText', { fg = '#C3E88D', bg = '#9FBD73' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindEnum', { fg = '#C3E88D', bg = '#9FBD73' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindKeyword', { fg = '#C3E88D', bg = '#9FBD73' }) +-- +-- vim.api.nvim_set_hl(0, 'CmpItemKindConstant', { fg = '#FFE082', bg = '#D4BB6C' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindConstructor', { fg = '#FFE082', bg = '#D4BB6C' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindReference', { fg = '#FFE082', bg = '#D4BB6C' }) +-- +-- vim.api.nvim_set_hl(0, 'CmpItemKindFunction', { fg = '#EADFF0', bg = '#A377BF' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindStruct', { fg = '#EADFF0', bg = '#A377BF' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindClass', { fg = '#EADFF0', bg = '#A377BF' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindModule', { fg = '#EADFF0', bg = '#A377BF' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindOperator', { fg = '#EADFF0', bg = '#A377BF' }) +-- +-- vim.api.nvim_set_hl(0, 'CmpItemKindVariable', { fg = '#C5CDD9', bg = '#7E8294' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindFile', { fg = '#C5CDD9', bg = '#7E8294' }) +-- +-- vim.api.nvim_set_hl(0, 'CmpItemKindUnit', { fg = '#F5EBD9', bg = '#D4A959' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindSnippet', { fg = '#F5EBD9', bg = '#D4A959' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindFolder', { fg = '#F5EBD9', bg = '#D4A959' }) +-- +-- vim.api.nvim_set_hl(0, 'CmpItemKindMethod', { fg = '#DDE5F5', bg = '#6C8ED4' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindValue', { fg = '#DDE5F5', bg = '#6C8ED4' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindEnumMember', { fg = '#DDE5F5', bg = '#6C8ED4' }) +-- +-- vim.api.nvim_set_hl(0, 'CmpItemKindInterface', { fg = '#D8EEEB', bg = '#58B5A8' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindColor', { fg = '#D8EEEB', bg = '#58B5A8' }) +-- vim.api.nvim_set_hl(0, 'CmpItemKindTypeParameter', { fg = '#D8EEEB', bg = '#58B5A8' }) diff --git a/.config/nvim/lua/custom/git.lua b/.config/nvim/lua/custom/git.lua index 34320aa..34caa04 100644 --- a/.config/nvim/lua/custom/git.lua +++ b/.config/nvim/lua/custom/git.lua @@ -1,7 +1,18 @@ local set = vim.keymap.set local gitsigns = require('gitsigns') gitsigns.setup() -require('neogit').setup({}) +require('neogit').setup({ + mappings = { + commit_editor = { + ['<C-y>'] = 'Submit', + ['<C-n>'] = 'Abort', + }, + commit_editor_I = { + ['<C-y>'] = 'Submit', + ['<C-n>'] = 'Abort', + }, + }, +}) require('octo').setup() require('diffview').setup({ enhanced_diff_hl = true, @@ -31,21 +42,25 @@ vim.api.nvim_create_autocmd('FileType', { }) -- GitHub keymaps -set('n', '<leader>gi', '<cmd>Octo issue search<cr>', { desc = '[G]ithub [I]ssues' }) -set('n', '<leader>pr', '<cmd>Octo issue search<cr>', { desc = 'Github [PR]s' }) +set('n', '<leader>gi', '<cmd>Octo issue search<cr>', { desc = '[G]ithub [I]ssues (local)' }) +set('n', '<leader>pr', '<cmd>Octo pr search<cr>', { desc = 'Github [PR]s (local)' }) +set('n', '<leader>gI', '<cmd>Octo search is:issue is:open author:@me<cr>', { desc = '[G]ithub [I]ssues (global)' }) +set('n', '<leader>pR', '<cmd>Octo search is:pr author:@me<cr>', { desc = 'Github [PR]s (global)' }) -- Git keymaps -set('n', '<leader>gb', gitsigns.toggle_current_line_blame, { desc = '[G]it [B]lame Line' }) +set('n', '<leader>gB', gitsigns.toggle_current_line_blame, { desc = '[G]it [B]lame Line' }) set('n', '<leader>gD', gitsigns.toggle_deleted, { desc = '[G]it [D]eleted' }) +set('n', '<leader>gb', '<cmd>Neogit branch<cr>', { desc = '[G]it [B]ranch' }) set('n', '<leader>gd', '<cmd>DiffviewOpen<cr>', { desc = '[G]it [D]iff' }) -set('n', '<leader>gl', '<cmd>DiffviewFileHistory<cr>', { desc = '[G]it [L]og' }) +set('n', '<leader>gl', '<cmd>DiffviewFileHistory<cr>', { desc = '[G]it [L]og (diffview)' }) +set('n', '<leader>gL', '<cmd>Neogit log<cr>', { desc = '[G]it [L]og (neogit)' }) set('n', '<leader>gs', '<cmd>Neogit<cr>', { desc = '[G]it [S]tatus' }) set('n', '<leader>gc', '<cmd>Neogit commit<cr>', { desc = '[G]it [C]ommit' }) set('n', '<leader>gp', '<cmd>Neogit push<cr>', { desc = '[G]it [P]ush' }) set('n', '<leader>gP', '<cmd>Neogit pull<cr>', { desc = '[G]it [P]ull' }) --- NOTE: Waiting to actually have my next merge conflict and +-- NOTE: Waiting to actually have my next merge conflict and -- see how diffview handles and then deciding if I want to use --- neogit or diffview for merge (prob diffview), same with rebase +-- neogit or diffview for merge (prob diffview), same with rebase -- althoug I don't think I will use rebase anytime soon set('n', '<leader>gr', 'TODO:', { desc = '[G]it [R]ebase' }) set('n', '<leader>gm', 'TODO:', { desc = '[G]it [M]erge' }) diff --git a/.config/nvim/lua/custom/lsp.lua b/.config/nvim/lua/custom/lsp.lua index 2acbed1..ff85390 100644 --- a/.config/nvim/lua/custom/lsp.lua +++ b/.config/nvim/lua/custom/lsp.lua @@ -1,18 +1,37 @@ +-- Setup null-ls +local null_ls = require('null-ls') +null_ls.setup({ + sources = { + null_ls.builtins.formatting.stylua, + }, +}) + +-- Setup lsp signature +-- FIXME: fork the repo and fix the following issues +-- Remove documentation, show just the signature (in insert AND normal) +-- Make both insert and normal be toggelable rather than insert always showing and normal toggleable +require('lsp_signature').setup({ + bind = true, -- This is mandatory, otherwise border config won't get registered. + handler_opts = { border = 'single' }, + doc_lines = 0, + hint_enable = false, +}) + -- NOTE: A list of language servers (and potentially their config) -- Accepts either true to enable, false to disable or a table with settings local servers = { - lua_ls = true, -- lua - clangd = true, -- C/C++ - gradle_ls = true, -- java package manager - jdtls = true, -- java eclipse lsp + lua_ls = true, -- lua + clangd = true, -- C/C++ + gradle_ls = true, -- java package manager + jdtls = true, -- java eclipse lsp kotlin_language_server = true, -- kotlin - pyright = true, -- python - rust_analyzer = true, -- rust - bashls = true, -- bash - taplo = true, -- toml - lemminx = true, -- xml - yamlls = true, -- yaml - jsonls = true, -- json + pyright = true, -- python + rust_analyzer = true, -- rust + bashls = true, -- bash + taplo = true, -- toml + lemminx = true, -- xml + yamlls = true, -- yaml + jsonls = true, -- json } -- NOTE: Not language servers but still make sure mason installs them @@ -91,6 +110,18 @@ vim.api.nvim_create_autocmd('LspAttach', { -- }) -- end, -- }) --- --- require('lsp_lines').setup() --- vim.diagnostic.config({ virtual_text = false }) + +require('lsp_lines').setup() +vim.diagnostic.config({ virtual_text = false }) +vim.keymap.set('', '<Leader>dt', require('lsp_lines').toggle, { desc = '[D]iagnostics [T]oggle inline' }) + +-- LSP Keybindings +local builtin = require('telescope.builtin') +vim.keymap.set('n', 'gd', builtin.lsp_definitions, { desc = '[G]oto [D]efinition' }) +vim.keymap.set('n', 'gu', builtin.lsp_references, { desc = '[G]oto [U]sages' }) +vim.keymap.set('n', 'gi', builtin.lsp_implementations, { desc = '[G]oto [I]mplementations' }) +-- vim.keymap.set('n', 'gt', builtin.lsp_type_definitions, { desc = '[G]oto [T]ype Definitions' }) +vim.keymap.set('n', 'gw', builtin.diagnostics, { desc = '[G]oto [W]arnings' }) +vim.keymap.set('n', '<leader>ds', builtin.lsp_document_symbols, { desc = '[D]ocument [S]symbols' }) +vim.keymap.set('n', '<leader>ps', builtin.lsp_workspace_symbols, { desc = '[P]roject [S]ymbols' }) +vim.keymap.set({ 'n', 'i' }, '<C-p>', vim.lsp.buf.signature_help, { desc = 'List [P]arameters' }) diff --git a/.config/nvim/lua/custom/plugins/TODO-lsp_signature.lua b/.config/nvim/lua/custom/plugins/TODO-lsp_signature.lua deleted file mode 100644 index 33c2429..0000000 --- a/.config/nvim/lua/custom/plugins/TODO-lsp_signature.lua +++ /dev/null @@ -1,20 +0,0 @@ -return { - -- 'ray-x/lsp_signature.nvim', - -- event = 'VeryLazy', - -- config = function() - -- local lsp_signature = require('lsp_signature') - -- vim.api.nvim_create_autocmd('LspAttach', { - -- callback = function(args) - -- local bufnr = args.buf - -- local client = vim.lsp.get_client_by_id(args.data.client_id) - -- if vim.tbl_contains({ 'null-ls' }, client.name) then - -- return - -- end - -- lsp_signature.on_attach({}, bufnr) - -- end, - -- }) - -- - -- require('lsp_signature').setup({}) - -- vim.keymap.set({ 'i', 'n' }, '<C-p>', lsp_signature.toggle_float_win, { desc = 'toggle signature' }) - -- end, -} diff --git a/.config/nvim/lua/custom/plugins/TODO-none-ls.lua b/.config/nvim/lua/custom/plugins/TODO-none-ls.lua deleted file mode 100644 index 3a09d95..0000000 --- a/.config/nvim/lua/custom/plugins/TODO-none-ls.lua +++ /dev/null @@ -1,13 +0,0 @@ -return { - 'nvimtools/none-ls.nvim', - config = function() - local null_ls = require('null-ls') - null_ls.setup({ - sources = { - null_ls.builtins.formatting.stylua, - }, - }) - - vim.keymap.set('n', '=', vim.lsp.buf.format, { desc = 'Format File' }) - end, -} diff --git a/.config/nvim/lua/custom/plugins/lsp.lua b/.config/nvim/lua/custom/plugins/lsp.lua index 8972299..77e4499 100644 --- a/.config/nvim/lua/custom/plugins/lsp.lua +++ b/.config/nvim/lua/custom/plugins/lsp.lua @@ -6,13 +6,29 @@ return { 'williamboman/mason.nvim', 'williamboman/mason-lspconfig.nvim', + 'nvimtools/none-ls.nvim', + + -- NOTE: [Good alternative](https://github.com/rachartier/tiny-inline-diagnostic.nvim) + -- although, this plugin is amazing, so I wouldn't switch it most likely + { 'https://git.sr.ht/~whynothugo/lsp_lines.nvim' }, + + { + 'nvimdev/lspsaga.nvim', + dependencies = { + 'nvim-treesitter/nvim-treesitter', + 'nvim-tree/nvim-web-devicons', + }, + }, { 'folke/lazydev.nvim', ft = 'lua', opts = { library = { { path = 'luvit-meta/library', words = { 'vim%.uv' } } } }, }, - - { 'j-hui/fidget.nvim', opts = { notification = { window = { winblend = 0 } } } }, + { + 'ray-x/lsp_signature.nvim', + event = 'VeryLazy', + }, + { 'j-hui/fidget.nvim', opts = { notification = { window = { winblend = 0 } } } }, -- AUtoformatting -- 'stevear/conform.nvim', diff --git a/.config/nvim/lua/custom/snippets/lua.lua b/.config/nvim/lua/custom/snippets/lua.lua index a2f5290..625bf56 100644 --- a/.config/nvim/lua/custom/snippets/lua.lua +++ b/.config/nvim/lua/custom/snippets/lua.lua @@ -10,6 +10,7 @@ local function s(abbr, expansion, args) end ls.add_snippets('lua', { - s('fu', 'function {}({})\n {}\nend', { i(1), i(2), i(0) }), s('desc', "{{ desc = '{}' }}", { i(0) }), + s('cmd', '<cmd>{}<cr>', { i(0) }), + s('scmd', "'<cmd>{}<cr>'", { i(0) }), }) diff --git a/.config/nvim/lua/custom/telescope.lua b/.config/nvim/lua/custom/telescope.lua index 2be1c78..22d7593 100644 --- a/.config/nvim/lua/custom/telescope.lua +++ b/.config/nvim/lua/custom/telescope.lua @@ -7,10 +7,10 @@ telescope.setup({ }, extensions = { fzf = { - fuzzy = true, -- false will only do exact matching + fuzzy = true, -- false will only do exact matching override_generic_sorter = true, -- override the generic sorter - override_file_sorter = true, -- override the file sorter - case_mode = 'smart_case', -- default "smart_case" or "ignore_case" or "respect_case" + override_file_sorter = true, -- override the file sorter + case_mode = 'smart_case', -- default "smart_case" or "ignore_case" or "respect_case" }, ['ui-select'] = { require('telescope.themes').get_dropdown({}), @@ -22,7 +22,6 @@ pcall(telescope.load_extension('ui-select')) pcall(telescope.load_extension('fzf')) local builtin = require('telescope.builtin') - vim.keymap.set('n', '<leader>fs', builtin.find_files, { desc = '[F]ile [S]ystem' }) vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = '[F]ind [H]elp' }) vim.keymap.set('n', '<leader>fm', builtin.man_pages, { desc = '[F]ind [M]an Pages' }) @@ -31,21 +30,3 @@ vim.keymap.set('n', '<leader>lv', builtin.live_grep, { desc = '[L]ive [G]rep' }) vim.keymap.set('n', '<leader>f.', builtin.oldfiles, { desc = '[F]ind Recent Files' }) vim.keymap.set('n', '<leader>th', builtin.colorscheme, { desc = 'List [Th]eme' }) -- vim.keymap.set('n', '<leader>ob', builtin.buffers, { desc = '[O]pen [B]uffers' }) - -vim.keymap.set('n', 'gd', builtin.lsp_definitions, { desc = '[G]oto [D]efinition' }) -vim.keymap.set('n', 'gu', builtin.lsp_references, { desc = '[G]oto [U]sages' }) -vim.keymap.set('n', 'gi', builtin.lsp_implementations, { desc = '[G]oto [I]mplementations' }) --- vim.keymap.set('n', 'gt', builtin.lsp_type_definitions, { desc = '[G]oto [T]ype Definitions' }) -vim.keymap.set('n', 'gw', builtin.diagnostics, { desc = '[G]oto [W]arnings' }) - -vim.keymap.set('n', '<leader>ds', builtin.lsp_document_symbols, { desc = '[D]ocument [S]symbols' }) -vim.keymap.set('n', '<leader>ps', builtin.lsp_workspace_symbols, { desc = '[P]roject [S]ymbols' }) - -vim.keymap.set('n', '<leader>sb', builtin.git_branches, { desc = '[S]earch [B]ranches' }) -vim.keymap.set('n', '<leader>sc', builtin.git_commits, { desc = '[S]earch [C]ommits' }) - --- TODO: Look into the following --- builtin.git_commits --- builtin.git_branches --- builtin.git_status --- builtin.git_stash |
