Giter Club home page Giter Club logo

vscode-merge-tool-adapter-cli's Introduction

Утилита которая дружит vscode и 1С:Предприятие

Что надо знать:

Про Visual Studio Code

  1. Что такое vscode и где его взять
  2. three-way merge
  3. Command Line Interface (CLI)

Про поставку конфигураций 1С

  1. Поставка и поддержка конфигурации
  2. Настройки внешних программ для операций сравнения/объединения

VSCode CLI

--diff <file1> <file2> - Open a file difference editor. Requires two file paths as arguments.

--merge <path1> <path2> <base> <result> - Perform a three-way merge by providing paths for two modified versions of a file, the common origin of both modified versions, and the output file to save merge results.

--wait - Wait for the files to be closed before returning.

--new-window - Opens a new session of VS Code instead of restoring the previous session (default).

--sync <on | off> - Turn sync on or off.

Perforce P4Merge конфигурация для 1С:Предприятия

Compare two files:

-C utf8-bom -nl %baseCfgTitle -nr %secondCfgTitle %baseCfg %secondCfg

Three-way merge:

-C utf8-bom -nl %baseCfgTitle -nr %secondCfgTitle -nb %oldVendorCfgTitle %oldVendorCfg %baseCfg %secondCfg %merged

По функциональности похоже на vscode. Используем этот шаблон для составления утилиты которая будет запускать vscode.

VSCode

Compare two files:

--diff %baseCfg %secondCfg --new-window --sync off

Three-way merge:

--merge %baseCfg %secondCfg %oldVendorCfg %merged --new-window --sync off --wait

Особенности

Платформа кидает пути со смешанными слешами, например такие:

"C:\Users\zeegin\AppData\Local\Temp\mrg/CommonModule.DistributedModule.Module(File C__Users_zeegin_Downloads_1Cv8_1.0.2.cf).txt"

Пути в файлах кидаются с расширением .txt а чтобы в vscode работала подсветка должны быть .bsl. Потому надо обернуть в создание файлов .bsl копированием.

Платформа ожидает результат в %merged, однако сам файл не создает. vscode хочет чтобы в --merge ... <result> файл уже был. Потому надо файл создать, например копированием %secondCfg, а после завершения работы vscode уже кинуть в путь, который ожидает платформа.

У батч скриптов есть два варианта получения параметров коммандной строки:

  • %1 - получает параметр по индексу 1 включая кавычки " если они есть.
  • %~1 - получает параметр по индексу 1 исключая кавычки " если они есть.

Обычная команда copy плохо работает с путями со смешанными слешами, потому лучше использовать xcopy.

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

  1. При установке vscode выбирите пункт добавление программы в PATH, тогда ее можно открывать командой консоли code.
  2. Выбирите в конфигураторе Сервис -> Параметры -> Сравнение/Объединение -> Создать.
  3. Переименуйте в VSCode.
  4. Впишите исполняемый файл полный путь до vscode-adapter.cmd, например C:\git\vscode-merge-tool-adapter-cli\vscode-adapter.cmd.
  5. Введите команду для сравнения двух файлов:
    --diff %baseCfg %secondCfg
    
  6. Введите команду для трехстороннего объединения:
    --merge %baseCfg %secondCfg %oldVendorCfg %merged
    
  7. Выбирите VSCode в качестве редактора.
    • Показывать различия без учета структуры.
    • Режим Объединить с помощью внешней программы.

Скриншоты

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.