first commit

This commit is contained in:
2026-02-13 04:20:30 +01:00
commit 2bd6b181f4
159 changed files with 194785 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
line_endings = 'Unix'
indent_type = 'Spaces'
indent_width = 2
quote_style = 'AutoPreferSingle'
call_parentheses = 'Always'
[sort_requires]
enabled = true

View File

@@ -0,0 +1,4 @@
-- set default tab width to 2 spaces
vim.opt_local.tabstop = 2 -- number of spaces that a tab counts for
vim.opt_local.shiftwidth = 2 -- size of an autoindented shift
vim.opt_local.softtabstop = 0 -- indentation size

View File

@@ -0,0 +1 @@
vim.opt_local.expandtab = false -- use tabs instead of spaces

View File

@@ -0,0 +1,4 @@
-- set default tab width to 2 spaces
vim.opt_local.tabstop = 2 -- number of spaces that a tab counts for
vim.opt_local.shiftwidth = 2 -- size of an autoindented shift
vim.opt_local.softtabstop = 0 -- indentation size

View File

@@ -0,0 +1,8 @@
-- load settings
require('config.settings')
-- load plugins
require('config.lazy')
-- load keybindings
require('config.keybindings')

View File

@@ -0,0 +1,36 @@
{
"LuaSnip": { "branch": "master", "commit": "dae4f5aaa3574bd0c2b9dd20fb9542a02c10471c" },
"catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"conform.nvim": { "branch": "master", "commit": "c2526f1cde528a66e086ab1668e996d162c75f4f" },
"gitsigns.nvim": { "branch": "main", "commit": "abf82a65f185bd54adc0679f74b7d6e1ada690c9" },
"guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"lspkind.nvim": { "branch": "master", "commit": "c7274c48137396526b59d86232eabcdc7fed8a32" },
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "c953789db7fd28eafe5eb5659846d34b5024b3cc" },
"mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" },
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
"nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" },
"nvim-config-local": { "branch": "main", "commit": "990f3e35e0fba8fb83012d7e85f9a6a77de7f87f" },
"nvim-lint": { "branch": "master", "commit": "bcd1a44edbea8cd473af7e7582d3f7ffc60d8e81" },
"nvim-lspconfig": { "branch": "master", "commit": "3f58aeca0c6ece8a9fb8782ea3fcb6024f285be3" },
"nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" },
"nvim-treesitter": { "branch": "main", "commit": "4967fa48b0fe7a7f92cee546c76bb4bb61bb14d5" },
"nvim-ts-autotag": { "branch": "main", "commit": "db15f2e0df2f5db916e511e3fffb682ef2f6354f" },
"nvim-web-devicons": { "branch": "master", "commit": "803353450c374192393f5387b6a0176d0972b848" },
"orgmode": { "branch": "master", "commit": "c421c7677b7332f5fd543023283a2290cf8dd4ff" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"undotree": { "branch": "master", "commit": "fc28931fbfba66ab75d9af23fe46ffbbb9de6e8c" },
"vim-indent-object": { "branch": "master", "commit": "8ab36d5ec2a3a60468437a95e142ce994df598c6" },
"vim-tmux-clipboard": { "branch": "master", "commit": "d4774dc7dfdd4b8a60613355ed32e6a1c18220cf" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}

View File

@@ -0,0 +1,3 @@
-- keep in visual mode after indenting
vim.keymap.set('v', '<', '<gv')
vim.keymap.set('v', '>', '>gv')

View File

@@ -0,0 +1,37 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
local out = vim.fn.system({ 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ 'Failed to clone lazy.nvim:\n', 'ErrorMsg' },
{ out, 'WarningMsg' },
{ '\nPress any key to exit...' },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
vim.g.mapleader = ' '
vim.g.maplocalleader = '\\'
-- Setup lazy.nvim
require('lazy').setup({
spec = {
-- import your plugins
{ import = 'plugins' },
},
-- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins.
install = { colorscheme = { 'catppuccin' } },
-- configure ui
ui = { border = 'rounded' },
-- automatically check for plugin updates
checker = { enabled = true, notify = false },
})

View File

@@ -0,0 +1,101 @@
-- true color support
vim.o.termguicolors = true
-- fix transparency issues with alacritty
local highlights = {
'Normal',
'LineNr',
'Folded',
'NonText',
'SpecialKey',
'VertSplit',
'SignColumn',
'EndOfBuffer',
'TablineFill', -- this is specific to how I like my tabline to look like
}
for _, name in pairs(highlights) do
vim.cmd.highlight(name .. ' guibg=none ctermbg=none')
end
-- disable arrow keys
local all_modes = { 'n', 'i', 'v', 'o' }
vim.keymap.set(all_modes, '<Up>', '<Nop>', { noremap = true, silent = true })
vim.keymap.set(all_modes, '<Down>', '<Nop>', { noremap = true, silent = true })
vim.keymap.set(all_modes, '<Left>', '<Nop>', { noremap = true, silent = true })
vim.keymap.set(all_modes, '<Right>', '<Nop>', { noremap = true, silent = true })
vim.o.number = true -- display line numbers
vim.opt.clipboard:append({ 'unnamedplus', 'unnamed' }) -- always use clipboard in x11
vim.o.encoding = 'UTF-8' -- sets the character encoding used inside vim
vim.o.title = true -- when on, the title of the window will be set to the value of 'titlestring'
vim.o.signcolumn = 'yes'
-- spell checking
vim.o.spell = true
vim.opt.spelllang:append({ 'en_us', 'en_gb', 'pl' })
vim.opt.spelloptions:append({ 'camel' })
vim.o.spellcapcheck = ''
-- persistent undo
local undodir = vim.fn.stdpath('state') .. 'undo'
vim.fn.mkdir(undodir, 'p', '0700')
vim.o.undodir = undodir
vim.o.undofile = true
-- set proper file types for files in ~/ansible directory
vim.filetype.add({
pattern = {
[os.getenv('HOME') .. '/ansible/.*%.yml'] = 'yaml.ansible',
},
})
-- neovim terminal configuration
local augroup_term = vim.api.nvim_create_augroup('augroup_term', { clear = true })
vim.api.nvim_create_autocmd('TermOpen', { -- enter insert mode automatically
group = augroup_term,
pattern = '*',
callback = vim.cmd.startinsert,
})
vim.api.nvim_create_autocmd('TermOpen', { -- disable number lines on terminal buffers
group = augroup_term,
pattern = '*',
callback = function()
vim.o.number = false
vim.o.relativenumber = false
end,
})
vim.api.nvim_create_autocmd('TermOpen', { -- allow use ctrl-c on terminal windows
group = augroup_term,
pattern = '*',
callback = function(args)
vim.keymap.set('n', '<C-c>', 'i<C-c>', { buffer = args.buf })
end,
})
vim.api.nvim_create_autocmd('TermEnter', { -- no sign column
group = augroup_term,
pattern = '*',
callback = function()
vim.opt_local.signcolumn = false
end,
})
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>') -- esc to exit insert mode
-- set default tab width to 4 spaces
vim.o.tabstop = 4 -- number of spaces that a tab counts for
vim.o.shiftwidth = 4 -- number of spaces that are inserted during indent operations
vim.o.softtabstop = 4 -- number of spaces that are inserted after pressing tab
vim.o.expandtab = true -- use spaces instead of tabs
-- c/c++ settings
vim.opt.cinoptions:append({ 'N-s' })
-- web dev settings
vim.g.html_indent_autotags = 'html,thead,tbody,tfoot'
vim.g.html_indent_script1 = 'auto'
vim.g.html_indent_style1 = 'auto'
-- set cursor shape to underline in the normal and command mode,
-- in the insert mode change shape to vertical bar, and disable
-- blinking in all modes
vim.opt.guicursor:append({ 'n-c:hor20', 'i:ver20', 'a:blinkon0' })

View File

@@ -0,0 +1,15 @@
return {
'catppuccin/nvim',
name = 'catppuccin',
priority = 1000,
lazy = false,
config = function()
require('catppuccin').setup({
flavour = 'mocha', -- latte, frappe, macchiato, mocha
transparent_background = true, -- disables setting the background color.
})
-- setup must be called before loading
vim.cmd.colorscheme('catppuccin')
end,
}

View File

@@ -0,0 +1,6 @@
return {
-- 'norcalli/nvim-colorizer.lua',
-- config = function()
-- require('colorizer').setup({ '*' })
-- end,
}

View File

@@ -0,0 +1,37 @@
return {
'stevearc/conform.nvim',
event = { 'BufReadPre', 'BufNewFile' },
config = function()
local conform = require('conform')
conform.setup({
formatters_by_ft = {
lua = { 'stylua' },
cpp = { 'clang-format' },
c = { 'clang-format' },
html = { 'prettier' },
css = { 'prettier' },
javascript = { 'prettier' },
python = { 'autopep8', 'isort' },
bash = { 'beautysh' },
csh = { 'beautysh' },
ksh = { 'beautysh' },
sh = { 'beautysh' },
zsh = { 'beautysh' },
},
-- format_on_save = {
-- lsp_fallback = true,
-- async = false,
-- timeout_ms = 1000,
-- },
})
vim.keymap.set({ 'n', 'v' }, '<leader>cf', function()
conform.format({
lsp_fallback = true,
async = false,
timeout_ms = 1000,
})
end, { desc = 'Format file or range (in visual mode)' })
end,
}

View File

@@ -0,0 +1,48 @@
return {
'lewis6991/gitsigns.nvim',
config = function()
local gitsigns = require('gitsigns')
gitsigns.setup({
signs = {
add = { text = '' },
change = { text = '' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
untracked = { text = '' },
},
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
interval = 1000,
follow_files = true,
},
attach_to_untracked = true,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
},
current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>',
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000, -- Disable if file is longer than this (in lines)
preview_config = {
-- Options passed to nvim_open_win
border = 'single',
style = 'minimal',
relative = 'cursor',
row = 0,
col = 1,
},
-- yadm = {
-- enable = false,
-- },
})
end,
}

View File

@@ -0,0 +1,4 @@
return {
'nmac427/guess-indent.nvim',
config = true,
}

View File

@@ -0,0 +1,102 @@
return {
'neovim/nvim-lspconfig',
event = { 'BufReadPre', 'BufNewFile' },
dependencies = {
'hrsh7th/cmp-nvim-lsp', -- LSP source for nvim-cmp,
{ 'folke/neodev.nvim', config = true },
},
config = function()
require('vim.lsp.protocol')
require('mason-lspconfig').setup({
automatic_enable = true,
})
vim.lsp.config('*', {
capabilities = {
textDocument = {
completion = {
completionItem = {
snippetSupport = false,
},
},
},
},
})
vim.lsp.config('lua_ls', {
on_init = function(client)
if client.workspace_folders then
local path = client.workspace_folders[1].name
if
path ~= vim.fn.stdpath('config')
and (vim.uv.fs_stat(path .. '/.luarc.json') or vim.uv.fs_stat(path .. '/.luarc.jsonc'))
then
return
end
end
client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
runtime = {
-- Tell the language server which version of Lua you're using (most
-- likely LuaJIT in the case of Neovim)
version = 'LuaJIT',
-- Tell the language server how to find Lua modules same way as Neovim
-- (see `:h lua-module-load`)
path = {
'lua/?.lua',
'lua/?/init.lua',
},
},
-- Make the server aware of Neovim runtime files
workspace = {
checkThirdParty = false,
library = {
vim.env.VIMRUNTIME,
-- Depending on the usage, you might want to add additional paths
-- here.
'${3rd}/luv/library'
-- '${3rd}/busted/library'
},
-- Or pull in all of 'runtimepath'.
-- NOTE: this is a lot slower and will cause issues when working on
-- your own configuration.
-- See https://github.com/neovim/nvim-lspconfig/issues/3189
-- library = {
-- vim.api.nvim_get_runtime_file('', true),
-- }
},
})
end,
settings = {
Lua = {},
},
})
vim.diagnostic.config({
virtual_text = {
prefix = '', -- Could be '■', '●', '▎', 'x'
},
signs = {
text = {
[vim.diagnostic.severity.ERROR] = '󰅚 ',
[vim.diagnostic.severity.WARN] = '󰀪 ',
[vim.diagnostic.severity.INFO] = '',
[vim.diagnostic.severity.HINT] = '󰌶 ',
},
texthl = {
[vim.diagnostic.severity.ERROR] = 'DiagnosticSignError',
[vim.diagnostic.severity.WARN] = 'DiagnosticSignWarn',
[vim.diagnostic.severity.INFO] = 'DiagnosticSignInfo',
[vim.diagnostic.severity.HINT] = 'DiagnosticSignHint',
},
numhl = {
[vim.diagnostic.severity.ERROR] = 'DiagnosticSignError',
[vim.diagnostic.severity.WARN] = 'DiagnosticSignWarn',
[vim.diagnostic.severity.INFO] = 'DiagnosticSignInfo',
[vim.diagnostic.severity.HINT] = 'DiagnosticSignHint',
},
},
})
end,
}

View File

@@ -0,0 +1,11 @@
return {
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' },
opts = {
options = {
theme = 'catppuccin',
section_separators = { left = '', right = '' },
component_separators = { left = '', right = '' },
},
},
}

View File

@@ -0,0 +1,75 @@
return {
'williamboman/mason.nvim',
dependencies = {
'williamboman/mason-lspconfig.nvim',
'WhoIsSethDaniel/mason-tool-installer.nvim',
},
config = function()
require('mason').setup({
ui = { border = 'rounded' },
})
require('mason-lspconfig').setup({
automatic_enable = true,
})
require('mason-tool-installer').setup({
ensure_installed = {
-- lua scripting
'stylua', -- lua formatter
'lua_ls',
-- vimrc editing
'vimls',
-- editorconfig stuff
'editorconfig-checker',
-- system administration's related stuff
'ansiblels',
'yamllint',
'systemdlint',
-- 'nginx_language_server',
'dockerls',
'docker_compose_language_service',
-- shell scripting
'shellcheck',
'bashls',
'beautysh',
-- python
'python-lsp-server',
'pylint',
'autopep8',
'mypy',
'isort',
-- c/c++
'clangd',
'clang-format',
'cmakelang',
'cmakelint',
'checkmake',
-- latex
'texlab',
'latexindent',
-- web development
'html',
'cssls',
'stylelint',
'eslint',
'standardjs',
'jsonlint',
-- databases
'sqlfluff',
-- misc
'jinja_lsp',
},
})
end,
}

View File

@@ -0,0 +1,9 @@
return {
'rcarriga/nvim-notify',
config = function()
vim.notify = require("notify")
vim.notify.setup({
background_colour = "#000000",
})
end
}

View File

@@ -0,0 +1,10 @@
return {
'windwp/nvim-autopairs',
event = 'InsertEnter',
opts = {
disable_filetype = { 'TelescopePrompt', 'spectre_panel', 'snacks_picker_input', 'vim' },
enable_afterquote = false,
enable_bracket_in_quote = false,
ignored_next_char = '[%w%.]', -- will ignore alphanumeric and `.` symbol
},
}

View File

@@ -0,0 +1,76 @@
return {
'hrsh7th/nvim-cmp',
dependencies = {
'hrsh7th/cmp-buffer', -- source for text in buffer
'hrsh7th/cmp-path', -- source for file system paths
'saadparwaiz1/cmp_luasnip', -- snippets source for nvim-cmp
{ 'L3MON4D3/LuaSnip', config = true }, -- snippets plugin
'onsails/lspkind.nvim', -- vs-code like pictograms
},
config = function()
local cmp = require('cmp')
local luasnip = require('luasnip')
local window_style = cmp.config.window.bordered({
winhighlight = 'Normal:Pmenu,FloatBorder:Pmenu,Search:None',
col_offset = -3,
side_padding = 0,
})
cmp.setup({
view = {
docs = { auto_open = false },
},
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body) -- use luasnip engine
end,
},
window = {
completion = window_style,
documentation = window_style,
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-g>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = false }),
['<C-d>'] = cmp.mapping(function(fallback)
if cmp.visible_docs() then
cmp.close_docs()
elseif cmp.visible() then
cmp.open_docs()
else
fallback()
end
end),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp', max_item_count = 10, keyword_length = 1 },
{ name = 'luasnip', max_item_count = 10, keyword_length = 1 },
{ name = 'buffer', max_item_count = 10, keyword_length = 1 },
{ name = 'path', max_item_count = 10, keyword_length = 1 },
}),
formatting = {
fields = { 'kind', 'abbr', 'menu' },
format = function(entry, vim_item)
local kind = require('lspkind').cmp_format({ mode = 'symbol_text', maxwidth = 50 })(entry, vim_item)
local strings = vim.split(kind.kind, '%s', { trimempty = true })
kind.kind = ' ' .. (strings[1] or '') .. ' '
kind.menu = ' (' .. (strings[2] or '') .. ')'
return kind
end,
},
enabled = function()
-- disable completion in comments
local context = require('cmp.config.context')
-- keep command mode completion enabled when cursor is in a comment
if vim.api.nvim_get_mode().mode == 'c' then
return true
else
return not context.in_treesitter_capture('comment') and not context.in_syntax_group('Comment')
end
end,
})
end,
}

View File

@@ -0,0 +1,19 @@
return {
'klen/nvim-config-local',
config = function()
require('config-local').setup({
-- Default options (optional)
-- Config file patterns to load (lua supported)
config_files = { '.nvim.lua', '.nvimrc', '.exrc' },
-- Where the plugin keeps files data
hashfile = vim.fn.stdpath('data') .. '/config-local',
autocommands_create = true, -- Create autocommands (VimEnter, DirectoryChanged)
commands_create = true, -- Create commands (ConfigLocalSource, ConfigLocalEdit, ConfigLocalTrust, ConfigLocalDeny)
silent = true, -- Disable plugin messages (Config loaded/denied)
lookup_parents = false, -- Lookup config files in parent directories
})
end,
}

View File

@@ -0,0 +1,30 @@
return {
'mfussenegger/nvim-lint',
config = function()
require('lint').linters_by_ft = {
['yaml.ansible'] = { 'ansible_lint' },
bash = { 'shellcheck' },
make = { 'checkmake' },
cmake = { 'cmakelint' },
cpp = { 'clangtidy' },
c = { 'clangtidy' },
editorconfig = { 'editorconfig-checker' },
html = { 'tidy' },
json = { 'jsonlint' },
sql = { 'sqlfluff' },
js = { 'standardjs' },
css = { 'stylelint' },
systemd = { 'systemdlint' },
yaml = { 'yamllint' },
zsh = { 'zsh' },
python = { 'pylint', 'mypy' },
}
vim.api.nvim_create_autocmd({ 'BufWritePost' }, {
callback = function()
-- try_lint without arguments runs the linters defined in `linters_by_ft`
-- for the current filetype
require('lint').try_lint()
end,
})
end,
}

View File

@@ -0,0 +1,22 @@
return {
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
lazy = false,
config = function()
local treesitter = require('nvim-treesitter')
treesitter.setup({})
treesitter.install({
'c',
'cpp',
'lua',
'bash',
'json',
'yaml',
'vim',
'dockerfile',
'gitignore',
'html',
'css',
})
end,
}

View File

@@ -0,0 +1,13 @@
return {
'windwp/nvim-ts-autotag',
config = function()
require('nvim-ts-autotag').setup({
opts = {
-- Defaults
enable_close = true, -- Auto close tags
enable_rename = true, -- Auto rename pairs of tags
enable_close_on_slash = false, -- Auto close on trailing </
},
})
end,
}

View File

@@ -0,0 +1,11 @@
return {
'nvim-orgmode/orgmode',
event = 'VeryLazy',
config = function()
-- Setup orgmode
require('orgmode').setup({
org_agenda_files = '~/orgfiles/**/*',
org_default_notes_file = '~/orgfiles/refile.org',
})
end,
}

View File

@@ -0,0 +1,21 @@
return {
'nvim-telescope/telescope.nvim',
tag = '0.1.8',
dependencies = { 'nvim-lua/plenary.nvim' },
config = function()
require('telescope').setup({
pickers = {
find_files = { theme = 'dropdown' },
grep_string = { theme = 'dropdown' },
live_grep = { theme = 'dropdown' },
},
})
-- key bindings
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' })
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
end,
}

View File

@@ -0,0 +1,5 @@
return {
'folke/todo-comments.nvim',
dependencies = { 'nvim-lua/plenary.nvim' },
config = true,
}

View File

@@ -0,0 +1,37 @@
return {
'folke/trouble.nvim',
opts = {}, -- for default options, refer to the configuration section for custom setup.
cmd = 'Trouble',
keys = {
{
'<leader>xx',
'<cmd>Trouble diagnostics toggle<cr>',
desc = 'Diagnostics (Trouble)',
},
{
'<leader>xX',
'<cmd>Trouble diagnostics toggle filter.buf=0<cr>',
desc = 'Buffer Diagnostics (Trouble)',
},
{
'<leader>cs',
'<cmd>Trouble symbols toggle focus=false<cr>',
desc = 'Symbols (Trouble)',
},
{
'<leader>cl',
'<cmd>Trouble lsp toggle focus=false win.position=right<cr>',
desc = 'LSP Definitions / references / ... (Trouble)',
},
{
'<leader>xL',
'<cmd>Trouble loclist toggle<cr>',
desc = 'Location List (Trouble)',
},
{
'<leader>xQ',
'<cmd>Trouble qflist toggle<cr>',
desc = 'Quickfix List (Trouble)',
},
},
}

View File

@@ -0,0 +1,6 @@
return {
'mbbill/undotree',
config = function()
vim.keymap.set('n', '<leader>ut', vim.cmd.UndotreeToggle)
end,
}

View File

@@ -0,0 +1,4 @@
return {
'michaeljsmith/vim-indent-object',
config = function() end,
}

View File

@@ -0,0 +1,4 @@
return {
'roxma/vim-tmux-clipboard',
config = function() end,
}

View File

@@ -0,0 +1,18 @@
return {
'folke/which-key.nvim',
event = 'VeryLazy',
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
keys = {
{
'<leader>?',
function()
require('which-key').show({ global = false })
end,
desc = 'Buffer Local Keymaps (which-key)',
},
},
}