AI prompts
base on WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle. # WinMerge
[](https://github.com/WinMerge/winmerge)
[WinMerge](https://winmerge.org/) is an open source differencing and merging tool for Windows. It can compare files and folders, presenting differences in a visual format that is easy to understand and manipulate. It has been in active development since 2000.
[](https://ci.appveyor.com/project/sdottaka/winmerge/build/artifacts)
[](https://github.com/WinMerge/winmerge/actions)
[](https://sourceforge.net/projects/winmerge/files/)
[](https://github.com/WinMerge/winmerge/releases/latest)
[](https://github.com/WinMerge/winmerge/blob/master/Translations/TranslationsStatus.md)
---
## What Can WinMerge Do?
WinMerge's features include:
- **File Comparison**: visually compare the content of two or three text files side by side, highlighting the differences between them line by line. It can also highlight differences within a line.
- **Folder Comparison**: compare the contents of two folders, showing which files are different, missing, or only present in one of the folders.
- **Merging**: merge changes between files or folders. You can choose which differences to incorporate from one to the other.
- **Syntax Highlighting**: syntax highlighting for various programming languages and file formats, making it easier to identify changes in code or structured text.
- **Patch File Creation**: generate patch files (in normal, context, and unified formats) that describe the differences between files.
- **Ignore Options**: configure it to ignore whitespace differences, case changes, or specific lines based on regular expressions.
- **Shell Integration**: integrates with Windows Explorer, allowing you to right-click on files or folders and compare them directly with WinMerge.
- **Archive Support**: using 7-Zip, compare files within archive formats.
In essence, this is a tool for anyone who needs to track changes in files, compare different versions of documents or code, or merge modifications made by different people.
---
## How to Contribute
If you think you've found a bug or would like to request a feature, [submit an issue](https://github.com/WinMerge/winmerge/issues).
To contribute code, [fork the main WinMerge repository](https://github.com/WinMerge/winmerge/fork) and create a branch on that fork.
Format your code using [Eric Allman indentation](https://en.wikipedia.org/wiki/Indentation_style#Allman_style).
When your code is ready for review/merge, create a [Pull Request](https://github.com/WinMerge/winmerge/pulls), explaining the changes made.
---
## Themes
WinMerge allows you to choose from several pre-made themes and create your own.
### Quick theming instructions
1. open `Options` and navigate to the `Colors` section
2. adjust colors to your liking in each subsection
3. the `Export...` option will give you an `ini` file with all settings
4. copy `[your install folder]\WinMerge\ColorSchemes\Twilight.ini` to `YourNewTheme.ini`
5. copy the corresponding color settings from the exported `ini` file to `YourNewTheme.ini`
6. you can then place your theme file in to the `ColorSchemes` folder and select it in `Options`
---
## Folder Structure
Source code for WinMerge, its plugins, filters, setup program, and various utilities are all kept in the subfolders:
- `ArchiveSupport/Merge7z` - Contains Merge7z dlls, which connect WinMerge with 7-Zip, required to compile `WinMergeU.exe`. There is also a standalone installer for Merge7z dlls.
- `Build` - Created by the compiler when WinMerge is compiled. It contains compiled executables, libraries, the user manual, etc.
- `BuildTmp` - Created by the compiler when WinMerge is compiled. It contains temporary files created during the compilation and can be safely deleted.
- `ColorSchemes` - Color schemes / themes.
- `Docs` - Both user and developer documentation, in different subfolders. Can be browsed by opening `index.html` in the `Docs` folder.
- `Externals` - Contains several libraries from outside the WinMerge project. Required for building and possibly customized for WinMerge. Libraries include an XML parser and a regular expression parser.
- `Filters` - WinMerge file filters.
- `Installer` - Installer for WinMerge.
- `Plugins` - Source code and binaries for WinMerge runtime plugin dlls & scripts.
- `ShellExtension` - Windows Shell (Explorer) integration. Adds menu items to Explorer context menu.
- `Src` - Source code for the WinMerge program.
- `Testing` - A suite of test diff files and a script to run them and report the results. This folder also has a `Google Test` subfolder containing unit tests made with [Google Test Framework](https://github.com/google/googletest).
- `Tools/Scripts` - Various utilities used by WinMerge developers - see readme files in each.
- `Translation` - Language files for translation.
The changelog is in [Docs/Users/ChangeLog.md](https://github.com/WinMerge/winmerge/blob/master/Docs/Users/ChangeLog.md).
---
## How to RUN and DEBUG
The WinMerge folder has different Visual Studio solution files (.sln) that you can use to build, debug and run while you test your changes.
If you have run any of the BuildAll scripts you can run WinMerge from path `\Build\X64\Release\WinMergeU.exe`
If your architecture is not `X64` look for any of the other folders generated after the build has finished.
Another way to Debug, run the exe from previous step, then from VS attach to the running process.
---
## Build WinMerge
### Visual Studio 2017
- *Community*, *Professional* or *Enterprise* Edition
- VC++ 2017 latest v141 tools
- Visual C++ compilers and libraries for (ARM, ARM64)
- Windows XP support for C++
- Visual C++ MFC for (x86 and x64, ARM, ARM64)
- Visual C++ ATL for (x86 and x64, ARM, ARM64)
- Windows 10 SDK
### Visual Studio 2019
- *Community*, *Professional* or *Enterprise* Edition
- MSVC v142 - VS 2019 C++ (x64/x86, ARM, ARM64) build tools (Latest)
- C++ MFC for latest v142 build tools (x86 & x64, ARM, ARM64)
- C++ ATL for latest v142 build tools (x86 & x64, ARM, ARM64)
- Windows 10 SDK
### Visual Studio 2022
- *Community*, *Professional* or *Enterprise* Edition
- MSVC v143 Buildtools (x64/x86, ARM, ARM64)
- C++ MFC for latest v143 build tools (x64/x86, ARM, ARM64)
- C++ ATL for latest v143 build tools (x64/x86, ARM, ARM64)
- Windows 10 SDK
### Other utilities/programs
- git
- Inno Setup 5.x and 6.x
- 7-Zip
- Python
- Pandoc
- MSYS2 and MSYS2 packages (po4a and diffutils)
## How to Build
```git
git clone --recurse-submodules https://github.com/WinMerge/winmerge
cd winmerge
DownloadDeps.cmd
BuildAll.vs2022.cmd [x86|x64|ARM|ARM64] or BuildAll.vs2019.cmd [x86|x64|ARM|ARM64] or BuildAll.vs2017.cmd [x86|x64|ARM|ARM64]
```
", Assign "at most 3 tags" to the expected json: {"id":"5137","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"