web.lua
-- Web-разработка: TS/TSX, HTML, CSS.
-- LSP-серверы (vtsls, eslint, html, cssls, tailwindcss, emmet, jsonls) и
-- форматирование prettier настроены в init.lua и custom/plugins/conform.lua.
return {
-- Автозакрытие и переименование HTML/JSX-тегов
{
'windwp/nvim-ts-autotag',
ft = {
'html',
'htmldjango',
'xml',
'javascript',
'javascriptreact',
'typescript',
'typescriptreact',
'svelte',
'vue',
'markdown',
},
opts = {
opts = {
enable_close = true,
enable_rename = true,
enable_close_on_slash = false,
},
},
},
-- Подсветка цветов прямо в коде: #a7c080, rgb(...), tailwind-классы
{
'brenoprata10/nvim-highlight-colors',
event = { 'BufReadPost', 'BufNewFile' },
opts = {
render = 'virtual',
virtual_symbol = '',
virtual_symbol_position = 'eol',
enable_named_colors = true,
enable_tailwind = true,
},
},
-- Читаемые ошибки TypeScript вместо простыней tsserver
{
'dmmulroy/ts-error-translator.nvim',
ft = { 'typescript', 'typescriptreact', 'javascript', 'javascriptreact', 'svelte', 'vue' },
opts = {},
},
-- Версии зависимостей и уязвимости прямо в package.json
{
'vuki656/package-info.nvim',
dependencies = { 'MunifTanjim/nui.nvim' },
event = { 'BufRead package.json' },
opts = { hide_up_to_date = true, package_manager = 'npm' },
keys = {
{ '<leader>ns', function() require('package-info').show() end, desc = 'package.json: показать версии' },
{ '<leader>nu', function() require('package-info').update() end, desc = 'package.json: обновить пакет' },
{ '<leader>ni', function() require('package-info').install() end, desc = 'package.json: установить пакет' },
{ '<leader>nc', function() require('package-info').change_version() end, desc = 'package.json: сменить версию' },
},
},
}