nvim-treesitter революция в подсветке кода для Neovim

03 Apr, 2026

Это архивный репозиторий и может быть устаревшим.

13,988
🔱 1,426
👥 81

Когда последний раз ваш редактор кода неправильно определял структуру программы? С nvim-treesitter такие проблемы останутся в прошлом. Этот плагин выводит подсветку синтаксиса и анализ кода на принципиально новый уровень благодаря интеграции с парсером Tree-sitter.

Почему обычной подсветки синтаксиса уже недостаточно

Традиционные системы подсветки кода работают на основе регулярных выражений, что часто приводит к ошибкам:

  • Неправильное определение контекста (например, комментарии внутри строк)
  • Проблемы с вложенными конструкциями
  • Ограниченные возможности анализа структуры кода

Сравнение подсветки

Как видно на примере C++, nvim-treesitter обеспечивает более точное понимание кода благодаря синтаксическому дереву.

Что умеет nvim-treesitter

1. Умная подсветка синтаксиса

Плагин анализирует не текст, а абстрактное синтаксическое дерево (AST), что даёт:

Реклама
  • Контекстно-зависимую подсветку
  • Поддержку всех современных языков
  • Автоматическое обновление при изменении кода
-- Пример настройки подсветки
require'nvim-treesitter.configs'.setup {
  highlight = {
    enable = true,
    disable = {"html", "markdown"}, -- исключения
    additional_vim_regex_highlighting = false
  }
}

2. Инкрементальное выделение

Выделяйте логические блоки кода с помощью клавиш:

  • gnn — начать выделение
  • grn — расширить до следующего узла
  • grc — выделить текущую область видимости

3. Автоматическое сворачивание кода

Фолдинг на основе синтаксического дерева работает точнее традиционных методов:

" Включение фолдинга
set foldmethod=expr
set foldexpr=v:lua.vim.treesitter.foldexpr()

Как начать использовать

  1. Установите Neovim 0.10+ (рекомендуется nightly build)
  2. Добавьте плагин через ваш менеджер пакетов:
-- Для lazy.nvim
require("lazy").setup({
  {"nvim-treesitter/nvim-treesitter", build = ":TSUpdate"}
})
  1. Установите парсеры для нужных языков:
:TSInstall python javascript typescript

Поддержка языков

Проект поддерживает более 150 языков программирования, включая:

  • Основные (C++, Java, Python, Go)
  • Современные (Rust, Zig, Kotlin)
  • Специализированные (Terraform, GraphQL, SQL)

Полный список можно посмотреть командой :TSInstallInfo.

Расширенные возможности

Добавление собственных парсеров

Если ваш язык не поддерживается, можно добавить его вручную:

local parser_config = require "nvim-treesitter.parsers".get_parser_configs()
parser_config.my_lang = {
  install_info = {
    url = "~/projects/tree-sitter-my-lang",
    files = {"src/parser.c"}
  },
  filetype = "mylang"
}

Настройка запросов

Вы можете кастомизировать подсветку, определив свои правила:

-- Подсветка @function.call как Identifier
vim.api.nvim_set_hl(0, "@function.call", {link = "Identifier"})

Проблемы и решения

Если что-то не работает:

  1. Запустите :checkhealth nvim-treesitter
  2. Обновите парсеры: :TSUpdate
  3. Проверьте правильность определения filetype

Почему стоит попробовать

nvim-treesitter — это:

  • Более точная подсветка кода
  • Поддержка современных языков
  • Расширенные возможности анализа кода
  • Активное сообщество и постоянное развитие

Для разработчиков, которые проводят много времени в редакторе, этот плагин станет незаменимым помощником, делая работу с кодом более комфортной и эффективной.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.