2022-02-06 11:30:46
Доделал конфиг по nvim - https://github.com/itxor/new-nvim-config, осталось докинуть туда инструкцию по сборке и настроить отладчик, и можно забыть про vs code. От Goland я давно уже отказался - чего-то особенного он не даёт, вся работа с кодом воспроизводилась и в vs code, + у меня есть старый ноут, где иногда приходится пописать на гошке, а запускать jetbrains IDE там подобно смерти.
Что касается PHP - сейчас я пишу на нём всё меньше, и в скором времени, надеюсь, перейду на go полностью. Поэтому, на настройку nvim-конфигов для PHP я забил и продолжаю с ним работать в PHPStorm с включенным vim-плагином.
В целом, пока настраивал - заметил интересную вещь. Подход к настройке nvim значительно изменился за последние пару лет, всё стало проще и понятней. Если раньше нужно было искать кучу плагинов только для нормальной поддержки языка, не особо надеяться на их быстрое обновление, в случае обновления ЯП, то теперь концепция иная.
Если коротко: есть такая штука как https://tree-sitter.github.io/tree-sitter/ - это синтаксический анализатор, строящий из открытого файла с исходным кодом полноценное синтаксическое дерево, и обновляющий его по мере редактирования самого файла. Есть его адаптер под nvim: https://github.com/nvim-treesitter/nvim-treesitter. Один только этот плагин позволяет парой команд установить поддержку ЯП (весь список поддерживаемых - https://github.com/nvim-treesitter/nvim-treesitter#supported-languages) и даёт нормальный и быстрый фолдинг (возможность сворачивать и разворачивать блоки кода).
Второй обязательный плагин - nvim-lspconfig (https://github.com/neovim/nvim-lspconfig). Мне очень нравится его идея: плагин имеет адаптеры к lsp-серверам языков, с которыми работают коммерческие редакторы и IDE, и позволяет подтягивать их к nvim. Это даёт 90% всех плюшек по работе с кодом: go-to-definition, поиск ссылок, умеет показывать, какой интерфейс реализует структура, даёт возможность массового переименования, рефакторинга, и ещё много приятных вещей.
Что lspconfig не даёт и что нужно поставить отдельно - это автокомплит. Для этого есть https://github.com/hrsh7th/nvim-cmp.
Ну и так как я привык к double-shift в jetbrains ide, то я ставлю ещё telescope (https://github.com/nvim-telescope/telescope.nvim) - по заданной комбинации он открывает модалку, где можно искать полнотекстовым поиском по названию файлов, по содержимому файлов и в целом по всему контенту, что есть в проекте. Лично я именно для этого юзал double-shift в jb ide.
В остальном - интерфейсные плюшки, вроде тем, статус-бара снизу, дерева файлов слева и подсветки в коде коммита и его автора. За подробностями - го в репу. Если будут вопросы или решишь поставить этот пак себе - смело пиши, с радостью отвечу :)
255 viewsedited 08:30