Word highlighting, lsp_signature, calendar and settings / keybindings
Plugins: - added word highlighting plugin mywords - added lsp_signature plugin to show parameter signature while typing a function call - added calendar.vim - added lush.nvim needed for some theme definitions, though not for the nice and current default lunaperche Keybindings: - <space>m[mrc] for mywords - <C-W>0 and <C-W>1 for window close / make single - <C-,> for lsp references - <C-.> for lsp definitions Options: - highlight last search term - add I to shortmess to start with an empty file instead of splash screen - fzf uses default-title as theme - fzf registered as vim.ui.select implementation - which_key shows global definitions, too
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
-- Setup fzf-lua keybindings
|
-- Setup fzf-lua keybindings and some other searches
|
||||||
local fzf = require('fzf-lua')
|
local fzf = require('fzf-lua')
|
||||||
vim.keymap.set('n', '<leader>ff', fzf.files, { desc = "Find file" })
|
vim.keymap.set('n', '<leader>ff', fzf.files, { desc = "Find file" })
|
||||||
vim.keymap.set('n', '<leader>fs', fzf.blines, { desc = "Search buffer" })
|
vim.keymap.set('n', '<leader>fs', fzf.blines, { desc = "Search buffer" })
|
||||||
@@ -43,3 +43,22 @@ workspaces_fzf_picker = function(opts)
|
|||||||
end, opts)
|
end, opts)
|
||||||
end
|
end
|
||||||
vim.keymap.set('n', '<leader>w', workspaces_fzf_picker, { desc = "Workspaces" } )
|
vim.keymap.set('n', '<leader>w', workspaces_fzf_picker, { desc = "Workspaces" } )
|
||||||
|
|
||||||
|
------------------------------------------
|
||||||
|
--
|
||||||
|
-- Word higlighting
|
||||||
|
--
|
||||||
|
------------------------------------------
|
||||||
|
local mywords = require('mywords')
|
||||||
|
vim.keymap.set('n', '<space>mm', mywords.hl_toggle, { desc = "Highlight current word" })
|
||||||
|
vim.keymap.set('n', '<space>mr', mywords.hl_toggle_regex, { desc = "Highlight regexp" })
|
||||||
|
vim.keymap.set('n', '<space>mc', mywords.uhl_all, { desc = "Clear all highlights" })
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------
|
||||||
|
--
|
||||||
|
-- Shortcuts which are known from Emacs
|
||||||
|
--
|
||||||
|
------------------------------------------
|
||||||
|
vim.keymap.set('n', '<C-W>1', ":wincmd o<CR>", { desc = "Win: close others" })
|
||||||
|
vim.keymap.set('n', '<C-W>0', ":only<CR>", { desc = "Win: close current" })
|
||||||
|
|||||||
11
lua/lsp.lua
11
lua/lsp.lua
@@ -25,8 +25,9 @@ require('mason-lspconfig').setup({
|
|||||||
-- Customized on_attach function
|
-- Customized on_attach function
|
||||||
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
|
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
|
||||||
local opts = { noremap = true, silent = true }
|
local opts = { noremap = true, silent = true }
|
||||||
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
|
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, { noremap = true, silent = true, desc = "Popup diagnostics" })
|
||||||
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
|
-- 2024-09-23 - currently unused
|
||||||
|
-- vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
|
||||||
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
|
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
|
||||||
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
|
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
|
||||||
|
|
||||||
@@ -58,13 +59,13 @@ local on_attach = function(client, bufnr)
|
|||||||
-- 2024-09-09 - some ccflow commands
|
-- 2024-09-09 - some ccflow commands
|
||||||
|
|
||||||
local fzf = require('fzf-lua')
|
local fzf = require('fzf-lua')
|
||||||
vim.keymap.set('n', '<space>d', fzf.diagnostics_document, { desc = "Doc diagnostics" })
|
vim.keymap.set('n', '<space>d', fzf.diagnostics_document, { desc = "Document diagnostics" })
|
||||||
vim.keymap.set('n', '<space>D', fzf.diagnostics_workspace, { desc = "Workspace diagnostics" })
|
vim.keymap.set('n', '<space>D', fzf.diagnostics_workspace, { desc = "Workspace diagnostics" })
|
||||||
vim.keymap.set('n', '<space>s', fzf.lsp_document_symbols, { desc = "Doc symbols" })
|
vim.keymap.set('n', '<space>s', fzf.lsp_document_symbols, { desc = "Doc symbols" })
|
||||||
vim.keymap.set('n', '<space>c', fzf.lsp_code_actions, { desc = "Code Actions" })
|
vim.keymap.set('n', '<space>c', fzf.lsp_code_actions, { desc = "Code Actions" })
|
||||||
-- vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
|
-- vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
|
||||||
vim.keymap.set('n', '<C-[>', fzf.lsp_references, { desc = "Find References" })
|
vim.keymap.set('n', '<C-,>', fzf.lsp_references, { desc = "Find References" })
|
||||||
vim.keymap.set('n', '<C-]>', fzf.lsp_definitions, { desc = "Find References" })
|
vim.keymap.set('n', '<C-.>', fzf.lsp_definitions, { desc = "Find References" })
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Set different settings for different languages' LSP
|
-- Set different settings for different languages' LSP
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ vim.opt.showmode = false -- we are experienced, wo don't need the "-- INSE
|
|||||||
|
|
||||||
-- Searching
|
-- Searching
|
||||||
vim.opt.incsearch = true -- search as characters are entered
|
vim.opt.incsearch = true -- search as characters are entered
|
||||||
vim.opt.hlsearch = false -- do not highlight matches
|
vim.opt.hlsearch = true -- do not highlight matches
|
||||||
vim.opt.ignorecase = true -- ignore case in searches by default
|
vim.opt.ignorecase = true -- ignore case in searches by default
|
||||||
vim.opt.smartcase = true -- but make it case sensitive if an uppercase is entered
|
vim.opt.smartcase = true -- but make it case sensitive if an uppercase is entered
|
||||||
|
|
||||||
@@ -45,3 +45,11 @@ vim.opt.wrap = false
|
|||||||
-- Spelling
|
-- Spelling
|
||||||
vim.opt.spell = true
|
vim.opt.spell = true
|
||||||
vim.opt.spelllang = "de,en"
|
vim.opt.spelllang = "de,en"
|
||||||
|
|
||||||
|
--------------------------------------------------
|
||||||
|
--
|
||||||
|
-- Other options
|
||||||
|
--
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
vim.opt.shortmess = vim.opt.shortmess + 'I'
|
||||||
|
|||||||
@@ -43,10 +43,19 @@ require("lazy").setup({
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- LSP manager
|
--
|
||||||
|
-- LSP manager and others
|
||||||
|
--
|
||||||
"williamboman/mason.nvim",
|
"williamboman/mason.nvim",
|
||||||
"williamboman/mason-lspconfig.nvim",
|
"williamboman/mason-lspconfig.nvim",
|
||||||
"neovim/nvim-lspconfig",
|
"neovim/nvim-lspconfig",
|
||||||
|
-- show lsp signature while coding
|
||||||
|
{
|
||||||
|
"ray-x/lsp_signature.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = {},
|
||||||
|
config = function(_, opts) require 'lsp_signature'.setup(opts) end
|
||||||
|
},
|
||||||
|
|
||||||
-- neogit setup
|
-- neogit setup
|
||||||
{
|
{
|
||||||
@@ -90,7 +99,9 @@ require("lazy").setup({
|
|||||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
config = function()
|
config = function()
|
||||||
-- calling `setup` is optional for customization
|
-- calling `setup` is optional for customization
|
||||||
require("fzf-lua").setup({})
|
local fzf = require("fzf-lua")
|
||||||
|
fzf.setup({ "default-title" })
|
||||||
|
fzf.register_ui_select()
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -119,7 +130,7 @@ require("lazy").setup({
|
|||||||
{
|
{
|
||||||
"<leader>?",
|
"<leader>?",
|
||||||
function()
|
function()
|
||||||
require("which-key").show({ global = false })
|
require("which-key").show({ global = true })
|
||||||
end,
|
end,
|
||||||
desc = "Buffer Local Keymaps (which-key)",
|
desc = "Buffer Local Keymaps (which-key)",
|
||||||
},
|
},
|
||||||
@@ -247,4 +258,25 @@ require("lazy").setup({
|
|||||||
-- refer to the configuration section below
|
-- refer to the configuration section below
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- highlight word under cursor
|
||||||
|
{
|
||||||
|
"dwrdx/mywords.nvim",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Calendar view
|
||||||
|
{
|
||||||
|
"itchyny/calendar.vim"
|
||||||
|
},
|
||||||
|
|
||||||
|
--------------------------------------------------
|
||||||
|
--
|
||||||
|
-- Color schemes
|
||||||
|
--
|
||||||
|
--------------------------------------------------
|
||||||
|
{
|
||||||
|
"rktjmp/lush.nvim"
|
||||||
|
-- if you wish to use your own colorscheme:
|
||||||
|
-- { dir = '/absolute/path/to/colorscheme', lazy = true },
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user