Устранен самый большой недостаток использования VS Code по сравнению с WebStorm.

Я ждал эту функцию все эти годы! И это, пожалуй, самое главное, что останавливало людей от перехода на VS Code с WebStorm. И теперь, наконец, у нас есть трехсторонний редактор для разрешения конфликтов слияния, где мы можем видеть текущие, входящие и окончательные результаты слияния.

Я уже пытался перебазировать разные ветки в своих проектах и ​​решать массовые конфликты слияния с помощью нового редактора слияния. Итак, давайте посмотрим, насколько это круто и может ли быть лучше.

Во-первых, нам нужно включить редактор слияния. На данный момент нам нужно сделать это вручную, но в будущих выпусках это будет включено по умолчанию. Откройте настройки, найдите Редактор слияния и установите флажок в значение true.

Или добавить в config.json строчку: "git.mergeEditor": true.

Теперь конфликты слияния в VS Code будут отображаться в новом редакторе слияния.

Как это работает

Вот как это было раньше:

И стать:

Мы можем выбрать любой блок кода сверху, установив флажки, и этот блок кода появится на панели результатов. Разработчик, как обычно, может отредактировать результат. Все функции редактора кода, такие как автозаполнение, переход или форматирование, работают на этой панели.

Одна из интересных вещей, которые я обнаружил, это то, как он автоматически объединяет объекты. Допустим, у вас есть объект:

const room = {
  name: ''
};

И вы добавили еще одно поле. И ваш товарищ по команде также добавил еще одно свойство.

// My changes
const room = {
  name: '',
  tool: 'planning'
};
// Changes from my teammate
const room = {
  name: '',
  numbers: 'fibonacci'
};

Как видите, строки с новыми свойствами объекта не заканчиваются запятой. Но после выбора обоих изменений в редакторе слияния VS Code может интеллектуально добавить оба свойства к результату и разделить их запятой.

// Result
const room = {
  name: '',
  numbers: 'fibonacci',
  tool: 'planning'
};

Можно сказать, что это такая второстепенная особенность. Но подобные мелочи могут существенно повлиять на наш комфорт и производительность.

Кроме того, если вы и ваш товарищ по команде изменили одну и ту же строку, VS Code поддерживает сравнение на уровне слов и пытается автоматически объединить ее, насколько это возможно.

Если важно, что должно идти первым после слияния, вы все равно можете поменять местами слова с помощью команды.

И не забывайте, мы можем отредактировать его вручную в панели результатов в любом неправильном случае. К счастью, мы можем объединить основные части конфликтов, установив флажки.

Что можно улучшить

Самая большая проблема, с которой я столкнулся, — это выделение уже объединенного кода. Даже если она разрешилась автоматически и не потребовала от меня никаких действий, редактор слияния покажет эти строки с выделенным фоном и предварительно установленными чекбоксами.

Мне это выделение не нужно, и я не буду его снимать. Например, во входящих изменениях файл имеет новый импорт вверху. Он не конфликтует с моими текущими изменениями, и git удалось решить его автоматически.

По-старому VS Code вообще не показывал, что git разрешал автоматически. А Web Storm даже не выделяет конфликты, исправленные вручную.

Вторая проблема не является реальной проблемой, а скорее запросом функции. VS Code имеет отличное интерактивное представление перебазирования, где вы можете сжимать или редактировать свои коммиты. Но это представление в настоящее время не имеет интеграции с новым редактором слияния.

Таким образом, при перемещении вы не можете напрямую перейти к редактору слияния, если у вас есть какие-либо конфликты. Но вместо этого вы увидите пустой интерактивный инструмент перебазирования. И вам нужно проверить вкладку git слева, чтобы понять, что у вас есть конфликты. После разрешения всех конфликтов не предлагает вернуться к просмотру rebase.

Я хочу видеть редактор слияния автоматически во время перебазирования и продолжать автоматически перебазировать после разрешения конфликтов слияния 😊.

Краткое содержание

Ранее я писал руководство по переходу с Web Storm на бесплатный VS Code, где разрешение конфликтов слияния было, пожалуй, самой сложной частью. Теперь эта тема решена, и я буду использовать VS Code в качестве основного инструмента для своего проекта, даже с лицензией Web Storm.



Я уже провел пару рабочих дней, используя новый редактор слияния, и я в восторге! Работает быстро, понятно и очень удобно! 👌

Обновлено

Если по какой-то причине вам нужно отключить эту функцию и вернуться к предыдущему редактору слияния, просто снова зайдите в настройки и снимите флажок редактора слияния.

Привет! Большое спасибо, что прочитали мою статью! Если вы не являетесь участником Medium и хотели бы поддержать меня, вы можете сделать это, перейдя по этой ссылке. Членство в Medium позволит вам читать мои посты и посты других людей на Medium. Еще раз спасибо за вашу поддержку!

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.