Split plugins into files by category

This commit is contained in:
2025-09-21 18:21:43 +02:00
parent f33ecb78ee
commit 78698d82e6
13 changed files with 259 additions and 267 deletions

View File

@@ -26,11 +26,10 @@ vim.opt.signcolumn = 'yes'
vim.opt.mouse = 'a' -- " Enable mouse in all modes. vim.opt.mouse = 'a' -- " Enable mouse in all modes.
-- --
-- Packer -- Plugin management
-- --
require("config.lazy") require("config.lazy")
require("config.plugins") require("config.lspserver")
require'lspserver'
-- --
-- Theme -- Theme

View File

@@ -2,7 +2,7 @@ require'lsphelp'
vim.lsp.config('hls', { vim.lsp.config('hls', {
on_attach = default_on_attach, on_attach = default_on_attach,
capabilities = capabilities, capabilities = _G['capabilities'],
flags = { flags = {
debounce_text_changes = 150, debounce_text_changes = 150,
}, },
@@ -27,7 +27,7 @@ vim.lsp.config('intelephense', {
licenceKey = os.getenv('HOME') .. '/Documents/Schluessel/intelephense.key', licenceKey = os.getenv('HOME') .. '/Documents/Schluessel/intelephense.key',
storagePath = '/tmp/intelephense' storagePath = '/tmp/intelephense'
}, },
capabilities = capabilities, capabilities = _G['capabilities'],
settings = { settings = {
intelephense = { intelephense = {
environment = { environment = {
@@ -40,7 +40,7 @@ vim.lsp.enable('intelephense')
vim.lsp.config('clangd', { vim.lsp.config('clangd', {
on_attach = default_on_attach, on_attach = default_on_attach,
capabilities = capabilities capabilities = _G['capabilities']
}) })
vim.lsp.enable('clangd') vim.lsp.enable('clangd')
@@ -50,13 +50,13 @@ require('flutter-tools').setup {
}, },
lsp = { lsp = {
on_attach = default_on_attach, on_attach = default_on_attach,
capabilities = capabilities capabilities = _G['capabilities']
} }
} }
vim.lsp.config('twiggy_language_server', { vim.lsp.config('twiggy_language_server', {
on_attach = default_on_attach, on_attach = default_on_attach,
capabilities = capabilities, capabilities = _G['capabilities'],
settings = { settings = {
twiggy = { twiggy = {
framework = 'symfony', framework = 'symfony',

View File

@@ -1,68 +0,0 @@
--
-- ALE
--
-- Run linters only on save
vim.g.ale_lint_on_text_changed = 'never'
vim.g.ale_lint_on_insert_leave = 0
-- Include the linter name (e.g. 'hack' or 'hhast'), code, and message in errors
vim.g.ale_echo_msg_format = '[%linter%] %s'
vim.g.ale_linters = {
hack = {'hack', 'hhast'},
haskell = {"hlint"},
javascript = {'eslint'},
d = {'dmd'},
php = {'phpcs', 'phpstan'},
ruby = {'rubocop'},
cpp = {},
asm = {},
}
vim.g.ale_ruby_rubocop_executable = 'bundle'
vim.g.ale_cpp_cc_options = '-std=c++17 -Wall'
vim.g.ale_open_list = 1
vim.g.ale_disable_lsp = 1
-- Setup lspconfig.
local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())
capabilities.textDocument.foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true
}
--
-- Telescope
--
require('telescope').setup {
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown {
}
}
}
}
require("telescope").load_extension("ui-select")
vim.api.nvim_set_keymap('n', '<leader>ff', "<cmd>lua require('telescope.builtin').find_files()<cr>",
{ noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>fg', "<cmd>lua require('telescope.builtin').live_grep()<cr>",
{ noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>fb', "<cmd>lua require('telescope.builtin').buffers()<cr>",
{ noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<leader>fh', "<cmd>lua require('telescope.builtin').help_tags()<cr>",
{ noremap = true, silent = true })
--
-- Vista
--
vim.g.vista_default_executive = 'nvim_lsp'
--
-- Vdebug
--
vim.g.vdebug_options = { port = '9000' }
--
-- sonokai
--
vim.g.sonokai_style = "shusia"

View File

@@ -29,3 +29,10 @@ function default_on_attach(client, bufnr)
nnoremap('gr', vim.lsp.buf.references, "Find references") nnoremap('gr', vim.lsp.buf.references, "Find references")
nnoremap('<space>f', function() vim.lsp.buf.format { async = true } end, "Format file") nnoremap('<space>f', function() vim.lsp.buf.format { async = true } end, "Format file")
end end
-- Setup lspconfig.
capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())
capabilities.textDocument.foldingRange = {
dynamicRegistration = false,
lineFoldingOnly = true
}

View File

@@ -1,190 +0,0 @@
return {
{
'mfussenegger/nvim-dap',
config = function()
vim.keymap.set('n', '<F5>', function() require('dap').continue() end)
vim.keymap.set('n', '<F10>', function() require('dap').step_over() end)
vim.keymap.set('n', '<F11>', function() require('dap').step_into() end)
vim.keymap.set('n', '<F12>', function() require('dap').step_out() end)
vim.keymap.set('n', '<Leader>b', function() require('dap').toggle_breakpoint() end)
vim.keymap.set('n', '<Leader>B', function() require('dap').set_breakpoint() end)
vim.keymap.set('n', '<Leader>lp', function() require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end)
vim.keymap.set('n', '<Leader>dr', function() require('dap').repl.open() end)
vim.keymap.set('n', '<Leader>dl', function() require('dap').run_last() end)
vim.keymap.set({'n', 'v'}, '<Leader>dh', function()
require('dap.ui.widgets').hover()
end)
vim.keymap.set({'n', 'v'}, '<Leader>dp', function()
require('dap.ui.widgets').preview()
end)
vim.keymap.set('n', '<Leader>df', function()
local widgets = require('dap.ui.widgets')
widgets.centered_float(widgets.frames)
end)
vim.keymap.set('n', '<Leader>ds', function()
local widgets = require('dap.ui.widgets')
widgets.centered_float(widgets.scopes)
end)
local dap = require("dap")
dap.adapters.gdb = {
type = "executable",
command = "gdb",
args = { "-i", "dap" }
}
dap.configurations.cpp = {
{
name = "Launch",
type = "gdb",
request = "launch",
program = function()
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
end,
cwd = "${workspaceFolder}",
stopAtBeginningOfMainSubprogram = false,
},
}
end
},
{ 'airblade/vim-gitgutter' },
{ 'neovim/nvim-lspconfig' },
{ 'dense-analysis/ale' },
{ 'liuchengxu/vista.vim' }, -- Tag bar.
{
'nvim-treesitter/nvim-treesitter',
lazy = false,
build = ':TSUpdate',
config = function()
require'nvim-treesitter.configs'.setup {
ensure_installed = {
'haskell', 'php', 'lua', 'css', 'dockerfile', 'html', 'javascript', 'markdown', 'ruby', 'vue'
},
highlight = {
enable = true,
additional_vim_regex_highlighting = true
}
}
end
},
-- Git.
{ 'tpope/vim-fugitive' },
{
'sindrets/diffview.nvim',
dependencies = {'nvim-lua/plenary.nvim'},
opts = {}
},
-- File browser.
{
'kyazdani42/nvim-tree.lua',
dependencies = {'nvim-tree/nvim-web-devicons'},
lazy = false,
keys = {
{ "<C-n>", ":NvimTreeToggle<CR>" },
{ "<leader>r", ":NvimTreeRefresh<CR>" },
{ "<leader>n", ":NvimTreeFindFile<CR>" },
},
opts = {}
}, -- optional, for file icon
{
'nvim-telescope/telescope.nvim',
dependencies = {'nvim-lua/plenary.nvim'},
lazy = false,
config = function()
end
},
{ 'nvim-telescope/telescope-ui-select.nvim', lazy = false },
{
'kevinhwang91/nvim-ufo',
dependencies = {'kevinhwang91/promise-async'},
config = function()
vim.wo.foldcolumn = '1'
vim.wo.foldlevel = 99 -- feel free to decrease the value
vim.wo.foldenable = true
require('ufo').setup()
end
},
-- Theme.
{
'sainnhe/sonokai',
config = function()
vim.cmd('colorscheme sonokai')
end
},
{
'nvim-lualine/lualine.nvim',
dependencies = {'nvim-tree/nvim-web-devicons'},
opts = {
options = {
theme = 'sonokai'
},
extensions = {'quickfix', 'nvim-tree', 'fugitive'},
sections = {
lualine_c = {
'filename'
}
}
}
}, -- optional, for status line icons
-- Syntax.
{ 'leafOfTree/vim-vue-plugin' },
{ 'mfussenegger/nvim-jdtls' },
{ 'dart-lang/dart-vim-plugin' },
{
'akinsho/flutter-tools.nvim',
dependencies = { 'nvim-lua/plenary.nvim' }
},
{ 'vim-vdebug/vdebug' },
-- nvim-cmp
{ 'dcampos/nvim-snippy' },
{
'hrsh7th/nvim-cmp',
dependencies = {
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-path',
'hrsh7th/cmp-buffer',
'dcampos/cmp-snippy'
},
lazy = false,
config = function()
local cmp = require'cmp'
cmp.setup({
snippet = {
-- REQUIRED - you must specify a snippet engine
expand = function(args)
require'snippy'.expand_snippet(args.body)
end,
},
mapping = {
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
-- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
['<C-y>'] = cmp.config.disable,
['<C-e>'] = cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
}),
['<CR>'] = cmp.mapping.confirm({ select = false }),
},
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'snippy' },
}, {
{ name = 'path' },
}, {
{ name = 'buffer' },
}),
view = {
entries = 'native',
},
})
end
}
}

View File

@@ -0,0 +1,49 @@
return {
-- nvim-cmp
{ 'dcampos/nvim-snippy' },
{
'hrsh7th/nvim-cmp',
dependencies = {
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-path',
'hrsh7th/cmp-buffer',
'dcampos/cmp-snippy'
},
lazy = false,
config = function()
local cmp = require'cmp'
cmp.setup({
snippet = {
-- REQUIRED - you must specify a snippet engine
expand = function(args)
require'snippy'.expand_snippet(args.body)
end,
},
mapping = {
['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
-- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
['<C-y>'] = cmp.config.disable,
['<C-e>'] = cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
}),
['<CR>'] = cmp.mapping.confirm({ select = false }),
},
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'snippy' },
}, {
{ name = 'path' },
}, {
{ name = 'buffer' },
}),
view = {
entries = 'native',
},
})
end
}
}

View File

@@ -0,0 +1,9 @@
return {
{ 'airblade/vim-gitgutter' },
{ 'tpope/vim-fugitive' },
{
'sindrets/diffview.nvim',
dependencies = {'nvim-lua/plenary.nvim'},
opts = {}
}
}

View File

@@ -0,0 +1,55 @@
return {
{
'mfussenegger/nvim-dap',
config = function()
vim.keymap.set('n', '<F5>', function() require('dap').continue() end)
vim.keymap.set('n', '<F10>', function() require('dap').step_over() end)
vim.keymap.set('n', '<F11>', function() require('dap').step_into() end)
vim.keymap.set('n', '<F12>', function() require('dap').step_out() end)
vim.keymap.set('n', '<Leader>b', function() require('dap').toggle_breakpoint() end)
vim.keymap.set('n', '<Leader>B', function() require('dap').set_breakpoint() end)
vim.keymap.set('n', '<Leader>lp', function() require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end)
vim.keymap.set('n', '<Leader>dr', function() require('dap').repl.open() end)
vim.keymap.set('n', '<Leader>dl', function() require('dap').run_last() end)
vim.keymap.set({'n', 'v'}, '<Leader>dh', function()
require('dap.ui.widgets').hover()
end)
vim.keymap.set({'n', 'v'}, '<Leader>dp', function()
require('dap.ui.widgets').preview()
end)
vim.keymap.set('n', '<Leader>df', function()
local widgets = require('dap.ui.widgets')
widgets.centered_float(widgets.frames)
end)
vim.keymap.set('n', '<Leader>ds', function()
local widgets = require('dap.ui.widgets')
widgets.centered_float(widgets.scopes)
end)
local dap = require("dap")
dap.adapters.gdb = {
type = "executable",
command = "gdb",
args = { "-i", "dap" }
}
dap.configurations.cpp = {
{
name = "Launch",
type = "gdb",
request = "launch",
program = function()
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
end,
cwd = "${workspaceFolder}",
stopAtBeginningOfMainSubprogram = false,
},
}
end
},
{
'vim-vdebug/vdebug',
config = function()
vim.g.vdebug_options = { port = '9000' }
end
}
}

View File

@@ -0,0 +1,63 @@
return {
{ 'neovim/nvim-lspconfig' },
{
'dense-analysis/ale',
config = function()
-- Run linters only on save
vim.g.ale_lint_on_text_changed = 'never'
vim.g.ale_lint_on_insert_leave = 0
-- Include the linter name (e.g. 'hack' or 'hhast'), code, and message in errors
vim.g.ale_echo_msg_format = '[%linter%] %s'
vim.g.ale_linters = {
hack = {'hack', 'hhast'},
haskell = {"hlint"},
javascript = {'eslint'},
d = {'dmd'},
php = {'phpcs', 'phpstan'},
ruby = {'rubocop'},
cpp = {},
asm = {},
}
vim.g.ale_ruby_rubocop_executable = 'bundle'
vim.g.ale_cpp_cc_options = '-std=c++17 -Wall'
vim.g.ale_open_list = 1
vim.g.ale_disable_lsp = 1
end
},
{ -- Tag bar.
'liuchengxu/vista.vim',
lazy = false,
config = function()
vim.g.vista_default_executive = 'nvim_lsp'
end
},
{
'nvim-treesitter/nvim-treesitter',
lazy = false,
build = ':TSUpdate',
config = function()
require'nvim-treesitter.configs'.setup {
ensure_installed = {
'haskell', 'php', 'lua', 'css', 'dockerfile', 'html', 'javascript', 'markdown', 'ruby', 'vue'
},
highlight = {
enable = true,
additional_vim_regex_highlighting = true
}
}
end
},
{
'kevinhwang91/nvim-ufo',
dependencies = {'kevinhwang91/promise-async'},
config = function()
vim.wo.foldcolumn = '1'
vim.wo.foldlevel = 99 -- feel free to decrease the value
vim.wo.foldenable = true
require('ufo').setup()
end
},
}

View File

@@ -0,0 +1,8 @@
return {
{ 'leafOfTree/vim-vue-plugin' },
{ 'dart-lang/dart-vim-plugin' },
{
'akinsho/flutter-tools.nvim',
dependencies = { 'nvim-lua/plenary.nvim' }
}
}

View File

@@ -0,0 +1,25 @@
return {
{
'nvim-telescope/telescope.nvim',
dependencies = { 'nvim-lua/plenary.nvim' },
lazy = false,
config = function()
require('telescope').setup {
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown {
}
}
}
}
require("telescope").load_extension("ui-select")
end,
keys = {
{ '<leader>ff', "<cmd>lua require('telescope.builtin').find_files()<cr>", noremap = true, silent = true },
{ '<leader>fg', "<cmd>lua require('telescope.builtin').live_grep()<cr>", noremap = true, silent = true },
{ '<leader>fb', "<cmd>lua require('telescope.builtin').buffers()<cr>", noremap = true, silent = true },
{ '<leader>fh', "<cmd>lua require('telescope.builtin').help_tags()<cr>", noremap = true, silent = true },
}
},
{ 'nvim-telescope/telescope-ui-select.nvim' }
}

View File

@@ -0,0 +1,35 @@
return {
{
'sainnhe/sonokai',
config = function()
vim.g.sonokai_style = "maia"
vim.cmd('colorscheme sonokai')
end
},
{
'nvim-lualine/lualine.nvim',
dependencies = {'nvim-tree/nvim-web-devicons'},
opts = {
options = {
theme = 'sonokai'
},
extensions = {'quickfix', 'nvim-tree', 'fugitive'},
sections = {
lualine_c = {
'filename'
}
}
}
},
{
'kyazdani42/nvim-tree.lua',
dependencies = {'nvim-tree/nvim-web-devicons'},
lazy = false,
keys = {
{ "<C-n>", ":NvimTreeToggle<CR>" },
{ "<leader>r", ":NvimTreeRefresh<CR>" },
{ "<leader>n", ":NvimTreeFindFile<CR>" },
},
opts = {}
}
}

2
.gitignore vendored
View File

@@ -1,2 +1,2 @@
.config/nvim/config .config/nvim/config
.config/nvim/plugin/ .config/nvim/lazy-lock.json