Автоформатирование в разных ide

Как решаете проблему, если на проекте люди работают в разных IDE и используется система контроля версий. Проблема в следующем - при использовании автоформатирования система контроля версий естественно новый автоформат видит как изменения. В итоге отслеживать историю изменений в гите неудобно, так как закомичено много “шума”.
Кто-то сталкивался с таким? Реально ли сделать чтобы автоморматировало одинаково по какому-то одному стандарту и набору правил?

Есть такая штука как http://editorconfig.org. Но набор настроек достаточно беден, как на мой вкус. Работает через плагины для различных иде и блокнотов.

В нашем случае в команде используются вебшторм, одни и те же настройки форматирования, вложены в сам репозиторий. При этом форматирование джаваскрипта достаточно богатое. Для идеи это файл настроек лежит тут: ${PROJECT_FOLDER}/.idea/codeStyleSettings.xml. Изменять их в project settings -> code style -> javascript.
В .gitignore добавлено исключение всех проектных файлов, за исключением файла настроек:

.idea/**
!.idea/codeStyleSettings.xml # forced include

Из плюшек - возможность включения автоформатирования при комите для всей команды.

1 лайк

Еще в том же вебшторме есть настройка при просмотре дифов, которая отключает подсветку пробелов. Смотри дифф окно вверху слева:

И еще один возможный вариант решения вашей задачи: использование внешнего инструмента форматирования типа https://github.com/beautify-web/js-beautify#javascript. Он позволяет хранить настройки в файле https://github.com/beautify-web/js-beautify#options, следовательно и в самом репозитории проекта. Всем членам команды поставить pre-commit hook, на форматирование файлов, попадающих в коммит. Этот вариант мне нравится меньше всех.