Add TypeScript support, split keymaps, and custom plugins

- Enable ts_ls LSP with prettier formatter and eslint_d linter
- Add prettier and eslint_d auto-install via Mason
- Enable lint plugin for JS/TS filetypes
- Add split keymaps (<leader>sv, <leader>sh)
- Add bufdelete, editorconfig, and toggleterm plugins
- Enable custom plugins import

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
probalazs 2026-04-16 19:46:07 +02:00
parent 217f4f0526
commit 967d525c9d
3 changed files with 37 additions and 10 deletions

View File

@ -212,6 +212,10 @@ vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right win
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
vim.keymap.set('n', '<leader>sv', '<cmd>vsp<CR>', { desc = '[S]plit [V]ertical' })
vim.keymap.set('n', '<leader>sh', '<cmd>sp<CR>', { desc = '[S]plit [H]orizontal' })
-- NOTE: Some terminals have colliding keymaps or are not able to send distinct keycodes
-- vim.keymap.set("n", "<C-S-h>", "<C-w>H", { desc = "Move window to the left" })
-- vim.keymap.set("n", "<C-S-l>", "<C-w>L", { desc = "Move window to the right" })
@ -606,7 +610,7 @@ require('lazy').setup({
-- https://github.com/pmizio/typescript-tools.nvim
--
-- But for many setups, the LSP (`ts_ls`) will work just fine
-- ts_ls = {},
ts_ls = {},
stylua = {}, -- Used to format Lua code
@ -649,7 +653,8 @@ require('lazy').setup({
-- You can press `g?` for help in this menu.
local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, {
-- You can add other tools here that you want Mason to install
'prettier',
'eslint_d',
})
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
@ -693,11 +698,12 @@ require('lazy').setup({
end,
formatters_by_ft = {
lua = { 'stylua' },
-- Conform can also run multiple formatters sequentially
-- python = { "isort", "black" },
--
-- You can use 'stop_after_first' to run the first available formatter from the list
-- javascript = { "prettierd", "prettier", stop_after_first = true },
javascript = { 'prettier', stop_after_first = true },
typescript = { 'prettier', stop_after_first = true },
javascriptreact = { 'prettier', stop_after_first = true },
typescriptreact = { 'prettier', stop_after_first = true },
json = { 'prettier', stop_after_first = true },
css = { 'prettier', stop_after_first = true },
},
},
},
@ -928,7 +934,7 @@ require('lazy').setup({
--
-- require 'kickstart.plugins.debug',
-- require 'kickstart.plugins.indent_line',
-- require 'kickstart.plugins.lint',
require 'kickstart.plugins.lint',
require 'kickstart.plugins.autopairs',
require 'kickstart.plugins.neo-tree',
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommended keymaps
@ -937,7 +943,7 @@ require('lazy').setup({
-- This is the easiest way to modularize your config.
--
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
-- { import = 'custom.plugins' },
{ import = 'custom.plugins' },
--
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
-- Or use telescope!

View File

@ -5,4 +5,21 @@
---@module 'lazy'
---@type LazySpec
return {}
return {
{
'famiu/bufdelete.nvim',
keys = {
{ '<leader>bd', '<cmd>Bdelete<CR>', desc = '[B]uffer [D]elete' },
},
},
{ 'editorconfig/editorconfig-vim' },
{
'akinsho/toggleterm.nvim',
version = '*',
opts = {
open_mapping = [[<C-\>]],
direction = 'horizontal',
size = 15,
},
},
}

View File

@ -9,6 +9,10 @@ return {
local lint = require 'lint'
lint.linters_by_ft = {
markdown = { 'markdownlint' }, -- Make sure to install `markdownlint` via mason / npm
javascript = { 'eslint_d' },
typescript = { 'eslint_d' },
javascriptreact = { 'eslint_d' },
typescriptreact = { 'eslint_d' },
}
-- To allow other plugins to add linters to require('lint').linters_by_ft,