Kaynağa Gözat

Added previews for lsp definition and references windows

Alexey Dorokhov 2 yıl önce
ebeveyn
işleme
8aae801d67
1 değiştirilmiş dosya ile 13 ekleme ve 2 silme
  1. 13 2
      init.lua

+ 13 - 2
init.lua

@@ -53,6 +53,9 @@ require("lazy").setup({
     }
   },
 
+	-- Show definitions and referenes in a floating window
+	'rmagatti/goto-preview',
+
   -- Autocompletion
   {
     'hrsh7th/nvim-cmp',
@@ -267,6 +270,13 @@ vim.keymap.set('n', '<Leader>dn', vim.diagnostic.goto_next, { desc = 'Go to next
 vim.keymap.set('n', '<leader>de', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' })
 vim.keymap.set('n', '<leader>dl', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' })
 
+require('goto-preview').setup {
+  default_mappings = false,
+  references = { -- Configure the telescope UI for slowing the references cycling window.
+    telescope = require("telescope.themes").get_dropdown({ hide_preview = false })
+  },
+}
+
 -- Configure LSP
 --  This function gets run when an LSP connects to a particular buffer.
 local on_attach = function(_, bufnr)
@@ -287,8 +297,9 @@ local on_attach = function(_, bufnr)
   nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
   nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
 
-  nmap('gd', vim.lsp.buf.definition, '[G]oto [D]efinition')
-  nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
+  nmap('gd', require('goto-preview').goto_preview_definition, '[G]oto [D]efinition')
+  nmap('gr', require('goto-preview').goto_preview_references, '[G]oto [R]eferences')
+  nmap('gc', require('goto-preview').close_all_win, 'Close all preview windows')
   nmap('gI', vim.lsp.buf.implementation, '[G]oto [I]mplementation')
   nmap('<leader>D', vim.lsp.buf.type_definition, 'Type [D]efinition')
   nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')