summaryrefslogtreecommitdiff
path: root/.config/nvim
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim')
-rw-r--r--.config/nvim/lazy-lock.json3
-rw-r--r--.config/nvim/lua/custom/completion.lua42
-rw-r--r--.config/nvim/lua/custom/git.lua29
-rw-r--r--.config/nvim/lua/custom/lsp.lua59
-rw-r--r--.config/nvim/lua/custom/plugins/TODO-lsp_signature.lua20
-rw-r--r--.config/nvim/lua/custom/plugins/TODO-none-ls.lua13
-rw-r--r--.config/nvim/lua/custom/plugins/lsp.lua20
-rw-r--r--.config/nvim/lua/custom/snippets/lua.lua3
-rw-r--r--.config/nvim/lua/custom/telescope.lua25
-rw-r--r--.config/nvim/plugin/keymaps.lua4
10 files changed, 138 insertions, 80 deletions
diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json
index b59ecc2..0af83db 100644
--- a/.config/nvim/lazy-lock.json
+++ b/.config/nvim/lazy-lock.json
@@ -24,6 +24,8 @@
"lazy.nvim": { "branch": "main", "commit": "159036c5762a97246689299e61311fc88523a8fa" },
"lazydev.nvim": { "branch": "main", "commit": "cea5d0fb556cdc35122d9cae772e7e0ed65b4505" },
"leap.nvim": { "branch": "main", "commit": "c099aecaf858574909bd38cbadb8543c4dd16611" },
+ "lsp_lines.nvim": { "branch": "main", "commit": "7d9e2748b61bff6ebba6e30adbc7173ccf21c055" },
+ "lsp_signature.nvim": { "branch": "master", "commit": "a38da0a61c172bb59e34befc12efe48359884793" },
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
"lspsaga.nvim": { "branch": "main", "commit": "6f920cfabddb9b7de5a3a4d0b7cd4f0774ae23e2" },
"lualine.nvim": { "branch": "master", "commit": "6a40b530539d2209f7dc0492f3681c8c126647ad" },
@@ -65,7 +67,6 @@
"tokyonight.nvim": { "branch": "main", "commit": "0a84c2df1dc65610ee0d9b516b2fb342e4b0ed6f" },
"trouble.nvim": { "branch": "main", "commit": "4453fea6bb597830fbd58d2c484612f37b97bd8c" },
"undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" },
- "vim-fugitive": { "branch": "master", "commit": "8c8cdf4405cb8bdb70dd9812a33bb52363a87dbc" },
"vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" },
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
"vim-tmux-navigator": { "branch": "master", "commit": "5b3c701686fb4e6629c100ed32e827edf8dad01e" },
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
diff --git a/.config/nvim/plugin/keymaps.lua b/.config/nvim/plugin/keymaps.lua
index ee34aa2..0221834 100644
--- a/.config/nvim/plugin/keymaps.lua
+++ b/.config/nvim/plugin/keymaps.lua
@@ -7,6 +7,7 @@ local function unbind(mode, keymap)
end
-- Misc
+set('n', 'q:', ':', { noremap = true }) -- disables opening some window if q was accidentally typed before :
set({ 'n', 'i' }, '<C-a>', '<Esc>ggVG', { desc = 'Visually Highlight [A]ll' })
set('n', '<Esc>', '<cmd>nohlsearch<CR>', silent)
set({ 'i', 'c' }, '<C-v>', function()
@@ -42,3 +43,6 @@ set('v', '>', '>gv')
-- Execute lua file or line
set('n', '<leader>x', '<cmd>.lua<CR>', { desc = 'Execute the current line' })
set('n', '<leader><leader>x', '<cmd>source %<CR>', { desc = 'Execute the current file' })
+
+-- Reformats file using lsp
+set('n', '=', vim.lsp.buf.format, { desc = 'Format File' })