]> Sergey Matveev's repositories - stargrave-blog.git/commitdiff
Форматирование C кода: фигурные скобки после сигнатуры функции
authorSergey Matveev <stargrave@stargrave.org>
Tue, 21 Apr 2020 09:06:03 +0000 (12:06 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Tue, 21 Apr 2020 09:06:03 +0000 (12:06 +0300)
Уже какую неделю я страдал от того, что в vi команды [[ и ]] не прыгают
по функам, как это сделано для Python или Go. В этих двух языках это
возможно банально просто из-за наличия "func", "def", "class" и подобных
слов, по которым превосходно можно делать навигацию. В C же, разбитое
на множество строк объявление функи, невозможно просто так регуляркой
выцепить.

Для форматирования кода я использую clang-format, у которого очень много
ручек настройки этого форматирования. Руками я вообще ничего не делаю. И
меня осенило что [[ и ]] прыгают по фигурным скобкам на начале строки и
clang-format-у можно сказать чтобы он все функи вот так и форматировал:

    int main()
    {
        ...
    }

Я много видел странного форматирования и такое вот меня бесило. Ладно,
самое странное и безумное что я видел -- GNU стиль. Хотя наверное там не
просто так всё. Вот и тут эти фигурные скобки бьют по глазам, но зато
теперь навигация по коду стала невероятно простой. До этого хака я вовсю
использовал https://github.com/jeetsukumaran/vim-indentwise плагин, но с
ним приходилось глазами понимать где находится мой курсор и какую
команду надо дать чтобы прыгнуть на основе indentation в начало функи.


No differences found