ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0.9 months ago (distributed domain, exempt) |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://github.com/L13/vscode-diff |
| Last Crawled | 2026-03-23 16:06:10 (26 days ago) |
| First Indexed | 2019-12-20 03:59:40 (6 years ago) |
| HTTP Status Code | 200 |
| Meta Title | GitHub - L13/vscode-diff: Compare two folders in Visual Studio Code · GitHub |
| Meta Description | Compare two folders in Visual Studio Code. Contribute to L13/vscode-diff development by creating an account on GitHub. |
| Meta Canonical | null |
| Boilerpipe Text | Compare two folders in Visual Studio Code.
What's new in Diff Folders 1.3.0
Added
Export Favorites
to export favorites and groups as a JSON file.
Added
Import Favorites
to import favorites and groups from a JSON file.
Index
Available Commands
Available Settings
Predefined Variables
Mouse and Keyboard Shortcuts
Custom Keybindings
Workspace Trust
Recommended Settings
Recommended Extensions
Basics
Favorites
Search, Filter or Select
List and Navigator
Logging and Stats
Supports the Extension
Projects
Available Commands
New Diff Panel
- Open the diff panel.
Clear History
- Clear the history of recently used files, folders and previous comparisons.
Delete All Favorites
- Delete all favorites.
Show Output Channel
- Open the output channel for the current comparison.
Export Favorites
- Export all favorites and groups to a JSON file.
Import Favorites
- Import favorites and groups from a JSON file. The limit is 1000 entries.
Available Settings
l13Diff.maxRecentlyUsed
- Defines the max length of recently used entries in the menu.
l13Diff.openToSide
- Set true if a diff or file should open to the side.
l13Diff.abortOnError
- If false scan process will not be canceled if an error occurs.
l13Diff.useCaseSensitiveFileName
- Indiciates if filenames should be treated as case sensitive for a comparison. This also affects the property
l13Diff.exclude
.
detect
- (default) Detect the file system case sensitivity.
on
- Enable case sensitive file names.
off
- Disable case sensitive file names.
l13Diff.exclude
- A list of files and folders which should be ignored. If the folder for a comparison or one of its parent folders contains the
.vscode/settings.json
file and is not the current workspace folder, the file will be automatically detected and the values of the property will also be used for the comparison. If the folder is part of the current workspace, the workspace settings will be used instead of the local settings. Supports the following glob patterns:
*
matches zero or more characters in a path segment e.g.
*.txt
.
?
matches on one character in a path segment.
**
matches any number of path segments including none e.g.
**/node_modules
.
l13Diff.openInNewDiffPanel
- If true a click on a favorite diff or a previous comparison opens in a new diff panel.
l13Diff.confirmCaseInsensitiveCompare
- If false confirm dialog for comparing case insensitive on a case sensitive file system does not appear.
l13Diff.confirmCopy
- If false confirm dialog for copying files does not appear.
l13Diff.confirmCaseInsensitiveCopy
- If false confirm dialog for copying case sensitive on a case insensitive file system does not appear.
l13Diff.confirmDelete
- If false confirm dialog for deleting files does not appear. Is not used if you have to decide which side have to be deleted.
l13Diff.confirmOpenMultipleDiffPanels
- If true
Compare All
and
Compare All Side By Side
shows a dialog if more than 3 diff panels will be opened at once.
l13Diff.initialFavoriteGroupsState
- Set the initial state of a group.
remember
- (default) Remember the collpased and expanded state of each group.
collapsed
- Show all groups collapsed at start.
expanded
- Show all groups expanded at start.
l13Diff.labelFormat
- Indicates how the label of a tab should be formatted.
complete
- (default) Show relative paths including the common path.
compact
- Show relative paths including base folders.
relative
- Show only the relative paths.
filename
- Show only the filenames.
l13Diff.ignoreContents
- If true files will only be compared by size and the contents will be ignored.
l13Diff.maxFileSize
- Indicates the maximum file size in MB for a comparison. If the value is 0 no limit is used instead.
l13Diff.ignoreEndOfLine
[1] - Set true if a comparison for text files should ignore line endings (CR/LF).
l13Diff.ignoreTrimWhitespace
[1] - Ignores leading and trailing whitespace in text files.
default
- (default) Uses the value of
diffEditor.ignoreTrimWhitespace
.
on
- Ignores leading and trailing whitespace for a comparison in a text file.
off
- Does not ignore leading and trailing whitespace for a comparison in a text file.
l13Diff.ignoreByteOrderMark
[1] - Set true if a comparison should ignore the BOM in UTF-8 or UTF-16BE text files.
l13Diff.enableTrash
- Moves files and folders to the OS trash when deleting or delete files and folders permanently.
default
- (default) Uses the value of
files.enableTrash
.
on
- Moves files and folders to the OS trash.
off
- Deletes files and folders permanently.
[1] Supports only ASCII based and UTF-16 BE/LE encoded files. The text file detection uses the extension name definitions of all installed extensions or the property
files.associations
in the user settings. If a file isn't detected as a text file the extension name has to be added to
files.associations
like
"*.extname": "language"
. If the file size exceeds the maximum buffer length the file will be treated as a binary file.
Predefined Variables
${workspaceFolder}
- Use the current workspace folder for the diff e.g.
${workspaceFolder}/path/to/folder
${workspaceFolder:NAME}
- Use a specific workspace folder by name for the diff e.g.
${workspaceFolder:workspace-a}/path/to/folder
. If a folder has a closing brace
}
in its name the char has to be escaped like
${workspaceFolder:name-{1\}}
.
Mouse and Keyboard Shortcuts
Global
macOS
Cmd + L Cmd + L
- Open the diff panel.
Cmd + D
- Add the current paths to favorites. Diff panel has to be active editor.
Cmd + L Cmd + O
- Open the output channel. Provides logging and stats for the current diff.
Cmd + L Cmd + F
- Open favorites explorer.
Windows / Linux
Ctrl + L Ctrl + L
- Open the diff panel.
Ctrl + D
- Add the current paths to favorites. Diff panel has to be active editor.
Ctrl + L Ctrl + F
- Open favorites explorer.
Windows
Ctrl + L Ctrl + O
- Open the output channel. Provides logging and stats for the current diff.
If the key bindings don't work, please check
Preferences -> Keyboard Shortcuts
.
Input Menu
Click
- Select a path in the menu.
ArrowUp/ArrowDown
- Move the cursor to the previous/next list item in the menu.
Enter
- If the menu is visible, the selected path will be filled in, otherwise a comparison starts.
Escape
- Hide the menu if visible.
Input Icon
Click
- Open dialog to pick a folder.
Alt + Click
- Open dialog to pick a file.
Swap Button
All platforms
Click
- Swaps just the values of the input fields.
Alt + Click
- Swaps the values of the input fields and the diff result.
macOS
Cmd + S
- Same as
Click
.
Alt + Cmd + S
- Same as
Alt + Click
.
Windows / Linux
Ctrl + S
- Same as
Click
.
Alt + Ctrl + S
- Same as
Alt + Click
.
Status Buttons
macOS
Alt + Cmd + 1
- Toggle
Show All Unchanged Files
Alt + Cmd + 2
- Toggle
Show All Deleted Files
Alt + Cmd + 3
- Toggle
Show All Modified Files
Alt + Cmd + 4
- Toggle
Show All Created Files
Alt + Cmd + 5
- Toggle
Show All Ignored Files
Windows / Linux
Alt + Ctrl + 1
- Toggle
Show All Unchanged Files
Alt + Ctrl + 2
- Toggle
Show All Deleted Files
Alt + Ctrl + 3
- Toggle
Show All Modified Files
Alt + Ctrl + 4
- Toggle
Show All Created Files
Alt + Ctrl + 5
- Toggle
Show All Ignored Files
Compare Button
All Platforms
Click
- Start a comparison.
Alt + Click
- Start a comparison in all diff panels.
macOS
Cmd + C
- Same as
Click
.
Alt + Cmd + C
- Same as
Alt + Click
.
Windows / Linux
Ctrl + C
- Same as
Click
.
Alt + Ctrl + C
- Same as
Alt + Click
.
Actions
Copy files to the left/right folder.
Click
- Copy all selected files to the other folder.
Alt + Click
- Copy all selected files in one diff panel in all other diff panels from one source to the other folders at once. Open two or more diff panels and make a comparison with the same folder on the same side. Select all the files you want to copy in one diff panel and press the button with
Alt + Click
to copy all the files from the same source to all other folders, too.
List
All Platforms
Click
- Select a file or folder in the list view.
Shift + Click
- Add files and folders from the last selected item to the current selected item in the list view.
Double Click
- Open a diff or file.
Alt + Double Click
- Open diff or file to side.
Enter
- Same as
Double Click
.
Ctrl + Enter
- Same as
Alt + Double Click
.
Escape
- Unselect all items in the list view.
Space
- Show preview of diff or file to side if
l13Diff.enablePreview
is true. If multiple files are selected the last selection will be opened as a preview and the rest will be opened like
Double Click
.
macOS
Cmd + Click
- Add or remove a file or folder to or from the current selection.
Cmd + A
- Select all items in the list view.
ArrowUp/ArrowDown
- Move the cursor to the previous/next list item.
Alt + ArrowUp/ArrowDown
- Move the cursor to the start/end of list view.
Shift + ArrowUp/ArrowDown
- Add the previous/next list item to the selection.
Shift + Alt + ArrowUp/ArrowDown
- Add all list items until start/end of the list view to the selection.
Home/End
- Scroll to the start/end of the list view.
PageUp/PageDown
- Scroll to the previous/next page of the list view.
Cmd + Backspace
- Delete selected files and folders. Opens a dialog to choose which files (left, right or all) should be deleted.
Windows / Linux
Ctrl + Click
- Add or remove a file or folder to or from the current selection.
Ctrl + A
- Select all items in the list view.
ArrowUp/ArrowDown
- Move the cursor to the previous/next list item.
Shift + ArrowUp/ArrowDown
- Add the previous/next list item to the selection.
Home/End
- Move the cursor to the start/end of list view.
Shift + Home/End
- Add all list items until start/end of the list view to the selection.
PageUp/PageDown
- Move the cursor to the start/end of the previous/next page of the list view.
Shift + PageUp/PageDown
- Add all list items of the previous/next page to the selection.
Delete
- Delete selected files and folders. Opens a dialog to choose which files (left, right or all) should be deleted.
List Context Menu
All Platforms
Copy
- If one or more list items are selected and the icon will be clicked on one of those items all selected files will be copied to the other folder. If the icon will be clicked and the list item isn't seleted only the current file will be copied. This button supports copying files to multiple folders at once with
Alt + Click
, too. Please read the description for
Copy files to the left/right folder
to see how it works.
Go to File
- If one or more list items are selected and the icon will be clicked on one of those items all selected files will be opened. If the icon will be clicked and the list item isn't seleted only the current file will be opened.
Delete
- If one or more list items are selected and the icon will be clicked on one of those items all selected files will be deleted. If the icon will be clicked and the list item isn't seleted only the current file will be deleted.
macOS
Reveal in Finder
- Shows the current file in the finder.
Windows
Reveal in File Explorer
- Shows the current file in the explorer.
Linux
Open Containing Folder
- Shows the current file in the file manager.
List Drag'n Drop
Drag'n Drop
- Drag a path in the list view to another path of the same type (file, folder or symbolic link) and let it drop to open a diff with these two files. Paths can also be dropped into the input fields and the search widget.
List Tooltip
Shows the full path, the size, the creation and modification time and date of a file.
List Info
If
l13Diff.ignoreByteOrderMark
,
l13Diff.ignoreEndOfLine
or
l13Diff.ignoreTrimWhitespace
is true a file will be modified for a comparison. An info appears on the right side of the filename in the list view to see which changes has been done. The information is only visible for files where the modification results in
unchanged
.
Ignored EOL
- Line endings have been converted from Windows to Unix.
Ignored BOM
- Byte Order Mark for a UTF-8 and UTF-16BE file has been removed.
Ignored Whitespace
- Leading and trailing whitespaces have been removed.
Search Widget
All Platforms
Escape
- Hide search widget.
macOS
Cmd + F
- Show search widget.
Cmd + Alt + C
- Toggle match case.
Cmd + Alt + R
- Toggle use regular expression.
Cmd + Alt + F
- Toggle show files.
Cmd + Alt + D
- Toggle show directories.
Cmd + Alt + L
- Toggle show symbolic links.
Cmd + Alt + X
- Toggle show conflicts.
Cmd + Alt + O
- Toggle show errors andf others.
Windows / Linux
Ctrl + F
- Show search widget.
Alt + C
- Toggle match case.
Alt + R
- Toggle use regular expression.
Alt + F
- Toggle show files.
Alt + D
- Toggle show directories.
Alt + L
- Toggle show symbolic links.
Alt + X
- Toggle show conflicts.
Alt + O
- Toggle show errors and others.
Favorites
Click
- Start the favorite diff immediately in the current active panel. If
l13Diff.openInNewDiffPanel
is true the comparison opens in a new diff panel.
Favorites Context Icons
New Diff Panel
- Open a new panel.
New Group
- Add a new group.
Collapse All
- Collapse all groups.
Favorites Context Menu
Compare
- Start the favorite diff immediately in the current active panel. Ignores
l13Diff.openInNewDiffPanel
.
Compare in New Panel
- Start the favorite diff immediately in a new diff panel. Ignores
l13Diff.openInNewDiffPanel
.
Reveal in Finder/Explorer
- Reveal the left or right file/folder in the finder/explorer. Requires version 0.20.0 of
Projects
.
Open in Integrated Terminal
- Open the left or right path in the integrated terminal. Requires version 0.20.0 of
Projects
.
Open Workspace
- Open the left or right path as a workspace. Requires version 0.20.0 of
Projects
.
Open as Workspace
- Open the two paths as a workspace. Requires version 0.20.0 of
Projects
.
Add Folders to Workspace
- Add the paths to the current workspace. Requires version 0.20.0 of
Projects
.
Add to Group
- Add a favorite diff to a group.
Copy Left Path
- Copy the left path of the favorite diff to the clipboard.
Copy Right Path
- Copy the right path of the favorite diff to the clipboard.
Remove from Group
- Remove a favorite diff from a group.
Rename
- Change the name of a favorite diff.
Delete
- Delete a favorite diff.
Favorite Groups Context Menu
Compare All
- Compare all favorite diffs of a group at once.
Compare All Side By Side
- Compare all favorite diffs of a group at once side by side.
Rename
- Change the name of a favorite group.
Delete
- Delete a favorite group. Optionally you can delete also all favorites in the group.
History
Click
- Open the previous comparison and start a comparison immediately.
Context Icons
Diff Folders: Clear History
- Clear the history of recently used files, folders and previous comparisons.
Context Menu
Compare
- Start the previous comparison immediately in the current active panel. Ignores
l13Diff.openInNewDiffPanel
.
Compare in New Panel
[2] - Start the previous comparison immediately in a new diff panel. Ignores
l13Diff.openInNewDiffPanel
.
Reveal in Finder/Explorer
- Reveal the left or right file/folder in the finder/explorer. Requires version 0.20.0 of
Projects
.
Open in Integrated Terminal
[2] - Open the left or right path in the integrated terminal. Requires version 0.20.0 of
Projects
.
Open Workspace
[2] - Open the left or right path as a workspace. Requires version 0.20.0 of
Projects
.
Open as Workspace
[2] - Open the two paths as a workspace. Requires version 0.20.0 of
Projects
.
Add Folders to Workspace
[2] - Add the paths to the current workspace. Requires version 0.20.0 of
Projects
.
Add to Favorites
- Add a previous comparison to favorites.
Copy Left Path
- Copy the left path of the previous comparison to the clipboard.
Copy Right Path
- Copy the right path of the previous comparison to the clipboard.
Delete
- Delete the previous comparison from the history.
[2] Only available for previous folder comparisons.
Statusbar
Click
- Open the output channel for logging and stats.
Navigator
Click
- Drag'n drop the scrollbar thumb of the navigator to scroll the list or click elsewhere in the navigator and jump to this part of the list.
Visual Studio Code Explorer
Context Menu
Select for Compare
- Select a folder for a comparison.
Compare with Selected
- Compare the folder with the selected one.
Compare Selected
- Compare the two selected folders.
Projects
Context Menu
Select for Compare
- Select a folder, repository or project for a comparison.
Compare with Selected
- Compare the folder, repository or project with the selected one.
Compare with Workspace
- Compare the folder, repository or project with the current workspace.
Open in Diff Folders
- Open the folder, repository or project in Diff Folders.
Custom Keybindings
Custom keyboard shortcuts can be assigned to the commands. But not every command works properly because the right context is required. If a command has no default keyboard shortcut it is maybe necessary to add a when clause. The following list of context values are available in different view states.
l13DiffFocus
- The value is true if a diff panel has focus.
l13DiffListFocus
- The value is true if the list view has focus.
l13DiffInputFocus
- The value is true if the left or right input has focus.
l13DiffSearchFocus
- The value is true if the search input has focus.
Workspace Trust
The extension is written with security in mind. Paths will be sanitized before they are used and if the file
.vscode/settings.json
is available in a workspace the content will be parsed with the native JSON parser to get the values of
l13Diff.exclude
.
Right now it is not possible to show a message if files will be copied from an untrusted workspace to a trusted one because there is no API to figure out if a workspace, which is not the current one, is trusted or not. Please always be careful when copying files and folders.
Recommended Settings
The fastest and most accurate way to compare files is
{
"l13Diff.ignoreEndOfLine"
:
false
,
"l13Diff.ignoreTrimWhitespace"
:
"
default
"
,
"diffEditor.ignoreTrimWhitespace"
:
false
,
"l13Diff.ignoreByteOrderMark"
:
false
}
Recommended Extensions
Projects
Extension Pack |
| Markdown | [Skip to content](https://github.com/L13/vscode-diff#start-of-content)
## Navigation Menu
Toggle navigation
[Sign in](https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FL13%2Fvscode-diff)
Appearance settings
- Platform
- AI CODE CREATION
- [GitHub CopilotWrite better code with AI](https://github.com/features/copilot)
- [GitHub SparkBuild and deploy intelligent apps](https://github.com/features/spark)
- [GitHub ModelsManage and compare prompts](https://github.com/features/models)
- [MCP RegistryNewIntegrate external tools](https://github.com/mcp)
- DEVELOPER WORKFLOWS
- [ActionsAutomate any workflow](https://github.com/features/actions)
- [CodespacesInstant dev environments](https://github.com/features/codespaces)
- [IssuesPlan and track work](https://github.com/features/issues)
- [Code ReviewManage code changes](https://github.com/features/code-review)
- APPLICATION SECURITY
- [GitHub Advanced SecurityFind and fix vulnerabilities](https://github.com/security/advanced-security)
- [Code securitySecure your code as you build](https://github.com/security/advanced-security/code-security)
- [Secret protectionStop leaks before they start](https://github.com/security/advanced-security/secret-protection)
- EXPLORE
- [Why GitHub](https://github.com/why-github)
- [Documentation](https://docs.github.com/)
- [Blog](https://github.blog/)
- [Changelog](https://github.blog/changelog)
- [Marketplace](https://github.com/marketplace)
[View all features](https://github.com/features)
- Solutions
- BY COMPANY SIZE
- [Enterprises](https://github.com/enterprise)
- [Small and medium teams](https://github.com/team)
- [Startups](https://github.com/enterprise/startups)
- [Nonprofits](https://github.com/solutions/industry/nonprofits)
- BY USE CASE
- [App Modernization](https://github.com/solutions/use-case/app-modernization)
- [DevSecOps](https://github.com/solutions/use-case/devsecops)
- [DevOps](https://github.com/solutions/use-case/devops)
- [CI/CD](https://github.com/solutions/use-case/ci-cd)
- [View all use cases](https://github.com/solutions/use-case)
- BY INDUSTRY
- [Healthcare](https://github.com/solutions/industry/healthcare)
- [Financial services](https://github.com/solutions/industry/financial-services)
- [Manufacturing](https://github.com/solutions/industry/manufacturing)
- [Government](https://github.com/solutions/industry/government)
- [View all industries](https://github.com/solutions/industry)
[View all solutions](https://github.com/solutions)
- Resources
- EXPLORE BY TOPIC
- [AI](https://github.com/resources/articles?topic=ai)
- [Software Development](https://github.com/resources/articles?topic=software-development)
- [DevOps](https://github.com/resources/articles?topic=devops)
- [Security](https://github.com/resources/articles?topic=security)
- [View all topics](https://github.com/resources/articles)
- EXPLORE BY TYPE
- [Customer stories](https://github.com/customer-stories)
- [Events & webinars](https://github.com/resources/events)
- [Ebooks & reports](https://github.com/resources/whitepapers)
- [Business insights](https://github.com/solutions/executive-insights)
- [GitHub Skills](https://skills.github.com/)
- SUPPORT & SERVICES
- [Documentation](https://docs.github.com/)
- [Customer support](https://support.github.com/)
- [Community forum](https://github.com/orgs/community/discussions)
- [Trust center](https://github.com/trust-center)
- [Partners](https://github.com/partners)
[View all resources](https://github.com/resources)
- Open Source
- COMMUNITY
- [GitHub SponsorsFund open source developers](https://github.com/sponsors)
- PROGRAMS
- [Security Lab](https://securitylab.github.com/)
- [Maintainer Community](https://maintainers.github.com/)
- [Accelerator](https://github.com/accelerator)
- [GitHub Stars](https://stars.github.com/)
- [Archive Program](https://archiveprogram.github.com/)
- REPOSITORIES
- [Topics](https://github.com/topics)
- [Trending](https://github.com/trending)
- [Collections](https://github.com/collections)
- Enterprise
- ENTERPRISE SOLUTIONS
- [Enterprise platformAI-powered developer platform](https://github.com/enterprise)
- AVAILABLE ADD-ONS
- [GitHub Advanced SecurityEnterprise-grade security features](https://github.com/security/advanced-security)
- [Copilot for BusinessEnterprise-grade AI features](https://github.com/features/copilot/copilot-business)
- [Premium SupportEnterprise-grade 24/7 support](https://github.com/premium-support)
- [Pricing](https://github.com/pricing)
Search or jump to...
# Search code, repositories, users, issues, pull requests...
[Search syntax tips](https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax)
# Provide feedback
Cancel
Submit feedback
# Saved searches
## Use saved searches to filter your results more quickly
Cancel
Create saved search
[Sign in](https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FL13%2Fvscode-diff)
[Sign up](https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=L13%2Fvscode-diff)
Appearance settings
Resetting focus
You signed in with another tab or window. [Reload](https://github.com/L13/vscode-diff) to refresh your session. You signed out in another tab or window. [Reload](https://github.com/L13/vscode-diff) to refresh your session. You switched accounts on another tab or window. [Reload](https://github.com/L13/vscode-diff) to refresh your session.
Dismiss alert
{{ message }}
[L13](https://github.com/L13) / **[vscode-diff](https://github.com/L13/vscode-diff)** Public
- [Notifications](https://github.com/login?return_to=%2FL13%2Fvscode-diff)
You must be signed in to change notification settings
- [Fork 10](https://github.com/login?return_to=%2FL13%2Fvscode-diff)
- [Star 105](https://github.com/login?return_to=%2FL13%2Fvscode-diff)
- [Code](https://github.com/L13/vscode-diff)
- [Issues 17](https://github.com/L13/vscode-diff/issues)
- [Pull requests 0](https://github.com/L13/vscode-diff/pulls)
- [Security 0](https://github.com/L13/vscode-diff/security)
- [Insights](https://github.com/L13/vscode-diff/pulse)
Additional navigation options
- [Code](https://github.com/L13/vscode-diff)
- [Issues](https://github.com/L13/vscode-diff/issues)
- [Pull requests](https://github.com/L13/vscode-diff/pulls)
- [Security](https://github.com/L13/vscode-diff/security)
- [Insights](https://github.com/L13/vscode-diff/pulse)
# L13/vscode-diff
master
[**2** Branches](https://github.com/L13/vscode-diff/branches)
[**44** Tags](https://github.com/L13/vscode-diff/tags)
Go to file
Code
Open more actions menu
## Folders and files
| Name | Name | Last commit message | Last commit date |
|---|---|---|---|
| Latest commit [](https://github.com/L13)[L13](https://github.com/L13/vscode-diff/commits?author=L13) [Merge pull request](https://github.com/L13/vscode-diff/commit/2148b337f101bb7a39df31919dddeadf59821dcb) [\#172](https://github.com/L13/vscode-diff/pull/172) [from L13/develop](https://github.com/L13/vscode-diff/commit/2148b337f101bb7a39df31919dddeadf59821dcb) Open commit details Jun 30, 2025 [2148b33](https://github.com/L13/vscode-diff/commit/2148b337f101bb7a39df31919dddeadf59821dcb) · Jun 30, 2025 History [626 Commits](https://github.com/L13/vscode-diff/commits/master/) Open commit details 626 Commits | | | |
## Repository files navigation
- [README](https://github.com/L13/vscode-diff)
- [License](https://github.com/L13/vscode-diff)
# Diff Folders
Compare two folders in Visual Studio Code.
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview.png)
## What's new in Diff Folders 1.3.0
- Added `Export Favorites` to export favorites and groups as a JSON file.
- Added `Import Favorites` to import favorites and groups from a JSON file.
## Index
1. [Available Commands](https://github.com/L13/vscode-diff#available-commands)
2. [Available Settings](https://github.com/L13/vscode-diff#available-settings)
3. [Predefined Variables](https://github.com/L13/vscode-diff#predefined-variables)
4. [Mouse and Keyboard Shortcuts](https://github.com/L13/vscode-diff#mouse-and-keyboard-shortcuts)
5. [Custom Keybindings](https://github.com/L13/vscode-diff#custom-keybindings)
6. [Workspace Trust](https://github.com/L13/vscode-diff#workspace-trust)
7. [Recommended Settings](https://github.com/L13/vscode-diff#recommended-settings)
8. [Recommended Extensions](https://github.com/L13/vscode-diff#recommended-extensions)
### Basics
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-start.png)
### Favorites
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-favorites.png)
### Search, Filter or Select
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-search.png)
### List and Navigator
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-select.png)
### Logging and Stats
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-stats.png)
### Supports the Extension [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects)
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-projects.png)
## Available Commands
- `New Diff Panel` - Open the diff panel.
- `Clear History` - Clear the history of recently used files, folders and previous comparisons.
- `Delete All Favorites` - Delete all favorites.
- `Show Output Channel` - Open the output channel for the current comparison.
- `Export Favorites` - Export all favorites and groups to a JSON file.
- `Import Favorites` - Import favorites and groups from a JSON file. The limit is 1000 entries.
## Available Settings
- `l13Diff.maxRecentlyUsed` - Defines the max length of recently used entries in the menu.
- `l13Diff.openToSide` - Set true if a diff or file should open to the side.
- `l13Diff.abortOnError` - If false scan process will not be canceled if an error occurs.
- `l13Diff.useCaseSensitiveFileName` - Indiciates if filenames should be treated as case sensitive for a comparison. This also affects the property `l13Diff.exclude`.
- `detect` - (default) Detect the file system case sensitivity.
- `on` - Enable case sensitive file names.
- `off` - Disable case sensitive file names.
- `l13Diff.exclude` - A list of files and folders which should be ignored. If the folder for a comparison or one of its parent folders contains the `.vscode/settings.json` file and is not the current workspace folder, the file will be automatically detected and the values of the property will also be used for the comparison. If the folder is part of the current workspace, the workspace settings will be used instead of the local settings. Supports the following glob patterns:
- `*` matches zero or more characters in a path segment e.g. `*.txt`.
- `?` matches on one character in a path segment.
- `**` matches any number of path segments including none e.g. `**/node_modules`.
- `l13Diff.openInNewDiffPanel` - If true a click on a favorite diff or a previous comparison opens in a new diff panel.
- `l13Diff.confirmCaseInsensitiveCompare` - If false confirm dialog for comparing case insensitive on a case sensitive file system does not appear.
- `l13Diff.confirmCopy` - If false confirm dialog for copying files does not appear.
- `l13Diff.confirmCaseInsensitiveCopy` - If false confirm dialog for copying case sensitive on a case insensitive file system does not appear.
- `l13Diff.confirmDelete` - If false confirm dialog for deleting files does not appear. Is not used if you have to decide which side have to be deleted.
- `l13Diff.confirmOpenMultipleDiffPanels` - If true `Compare All` and `Compare All Side By Side` shows a dialog if more than 3 diff panels will be opened at once.
- `l13Diff.initialFavoriteGroupsState` - Set the initial state of a group.
- `remember` - (default) Remember the collpased and expanded state of each group.
- `collapsed` - Show all groups collapsed at start.
- `expanded` - Show all groups expanded at start.
- `l13Diff.labelFormat` - Indicates how the label of a tab should be formatted.
- `complete` - (default) Show relative paths including the common path.
- `compact` - Show relative paths including base folders.
- `relative` - Show only the relative paths.
- `filename` - Show only the filenames.
- `l13Diff.ignoreContents` - If true files will only be compared by size and the contents will be ignored.
- `l13Diff.maxFileSize` - Indicates the maximum file size in MB for a comparison. If the value is 0 no limit is used instead.
- `l13Diff.ignoreEndOfLine` \[1\] - Set true if a comparison for text files should ignore line endings (CR/LF).
- `l13Diff.ignoreTrimWhitespace` \[1\] - Ignores leading and trailing whitespace in text files.
- `default` - (default) Uses the value of `diffEditor.ignoreTrimWhitespace`.
- `on` - Ignores leading and trailing whitespace for a comparison in a text file.
- `off` - Does not ignore leading and trailing whitespace for a comparison in a text file.
- `l13Diff.ignoreByteOrderMark` \[1\] - Set true if a comparison should ignore the BOM in UTF-8 or UTF-16BE text files.
- `l13Diff.enableTrash` - Moves files and folders to the OS trash when deleting or delete files and folders permanently.
- `default` - (default) Uses the value of `files.enableTrash`.
- `on` - Moves files and folders to the OS trash.
- `off` - Deletes files and folders permanently.
\[1\] Supports only ASCII based and UTF-16 BE/LE encoded files. The text file detection uses the extension name definitions of all installed extensions or the property `files.associations` in the user settings. If a file isn't detected as a text file the extension name has to be added to `files.associations` like `"*.extname": "language"`. If the file size exceeds the maximum buffer length the file will be treated as a binary file.
## Predefined Variables
- `${workspaceFolder}` - Use the current workspace folder for the diff e.g. `${workspaceFolder}/path/to/folder`
- `${workspaceFolder:NAME}` - Use a specific workspace folder by name for the diff e.g. `${workspaceFolder:workspace-a}/path/to/folder`. If a folder has a closing brace `}` in its name the char has to be escaped like `${workspaceFolder:name-{1\}}`.
## Mouse and Keyboard Shortcuts
### Global
#### macOS
- `Cmd + L Cmd + L` - Open the diff panel.
- `Cmd + D` - Add the current paths to favorites. Diff panel has to be active editor.
- `Cmd + L Cmd + O` - Open the output channel. Provides logging and stats for the current diff.
- `Cmd + L Cmd + F` - Open favorites explorer.
#### Windows / Linux
- `Ctrl + L Ctrl + L` - Open the diff panel.
- `Ctrl + D` - Add the current paths to favorites. Diff panel has to be active editor.
- `Ctrl + L Ctrl + F` - Open favorites explorer.
#### Windows
- `Ctrl + L Ctrl + O` - Open the output channel. Provides logging and stats for the current diff.
If the key bindings don't work, please check `Preferences -> Keyboard Shortcuts`.
### Input Menu
- `Click` - Select a path in the menu.
- `ArrowUp/ArrowDown` - Move the cursor to the previous/next list item in the menu.
- `Enter` - If the menu is visible, the selected path will be filled in, otherwise a comparison starts.
- `Escape` - Hide the menu if visible.
### Input Icon
- `Click` - Open dialog to pick a folder.
- `Alt + Click` - Open dialog to pick a file.
### Swap Button
#### All platforms
- `Click` - Swaps just the values of the input fields.
- `Alt + Click` - Swaps the values of the input fields and the diff result.
#### macOS
- `Cmd + S` - Same as `Click`.
- `Alt + Cmd + S` - Same as `Alt + Click`.
#### Windows / Linux
- `Ctrl + S` - Same as `Click`.
- `Alt + Ctrl + S` - Same as `Alt + Click`.
### Status Buttons
#### macOS
- `Alt + Cmd + 1` - Toggle `Show All Unchanged Files`
- `Alt + Cmd + 2` - Toggle `Show All Deleted Files`
- `Alt + Cmd + 3` - Toggle `Show All Modified Files`
- `Alt + Cmd + 4` - Toggle `Show All Created Files`
- `Alt + Cmd + 5` - Toggle `Show All Ignored Files`
#### Windows / Linux
- `Alt + Ctrl + 1` - Toggle `Show All Unchanged Files`
- `Alt + Ctrl + 2` - Toggle `Show All Deleted Files`
- `Alt + Ctrl + 3` - Toggle `Show All Modified Files`
- `Alt + Ctrl + 4` - Toggle `Show All Created Files`
- `Alt + Ctrl + 5` - Toggle `Show All Ignored Files`
### Compare Button
#### All Platforms
- `Click` - Start a comparison.
- `Alt + Click` - Start a comparison in all diff panels.
#### macOS
- `Cmd + C` - Same as `Click`.
- `Alt + Cmd + C` - Same as `Alt + Click`.
#### Windows / Linux
- `Ctrl + C` - Same as `Click`.
- `Alt + Ctrl + C` - Same as `Alt + Click`.
### Actions
#### Copy files to the left/right folder.
- `Click` - Copy all selected files to the other folder.
- `Alt + Click` - Copy all selected files in one diff panel in all other diff panels from one source to the other folders at once. Open two or more diff panels and make a comparison with the same folder on the same side. Select all the files you want to copy in one diff panel and press the button with `Alt + Click` to copy all the files from the same source to all other folders, too.
### List
#### All Platforms
- `Click` - Select a file or folder in the list view.
- `Shift + Click` - Add files and folders from the last selected item to the current selected item in the list view.
- `Double Click` - Open a diff or file.
- `Alt + Double Click` - Open diff or file to side.
- `Enter` - Same as `Double Click`.
- `Ctrl + Enter` - Same as `Alt + Double Click`.
- `Escape` - Unselect all items in the list view.
- `Space` - Show preview of diff or file to side if `l13Diff.enablePreview` is true. If multiple files are selected the last selection will be opened as a preview and the rest will be opened like `Double Click`.
#### macOS
- `Cmd + Click` - Add or remove a file or folder to or from the current selection.
- `Cmd + A` - Select all items in the list view.
- `ArrowUp/ArrowDown` - Move the cursor to the previous/next list item.
- `Alt + ArrowUp/ArrowDown` - Move the cursor to the start/end of list view.
- `Shift + ArrowUp/ArrowDown` - Add the previous/next list item to the selection.
- `Shift + Alt + ArrowUp/ArrowDown` - Add all list items until start/end of the list view to the selection.
- `Home/End` - Scroll to the start/end of the list view.
- `PageUp/PageDown` - Scroll to the previous/next page of the list view.
- `Cmd + Backspace` - Delete selected files and folders. Opens a dialog to choose which files (left, right or all) should be deleted.
#### Windows / Linux
- `Ctrl + Click` - Add or remove a file or folder to or from the current selection.
- `Ctrl + A` - Select all items in the list view.
- `ArrowUp/ArrowDown` - Move the cursor to the previous/next list item.
- `Shift + ArrowUp/ArrowDown` - Add the previous/next list item to the selection.
- `Home/End` - Move the cursor to the start/end of list view.
- `Shift + Home/End` - Add all list items until start/end of the list view to the selection.
- `PageUp/PageDown` - Move the cursor to the start/end of the previous/next page of the list view.
- `Shift + PageUp/PageDown` - Add all list items of the previous/next page to the selection.
- `Delete` - Delete selected files and folders. Opens a dialog to choose which files (left, right or all) should be deleted.
### List Context Menu
#### All Platforms
- `Copy` - If one or more list items are selected and the icon will be clicked on one of those items all selected files will be copied to the other folder. If the icon will be clicked and the list item isn't seleted only the current file will be copied. This button supports copying files to multiple folders at once with `Alt + Click`, too. Please read the description for `Copy files to the left/right folder` to see how it works.
- `Go to File` - If one or more list items are selected and the icon will be clicked on one of those items all selected files will be opened. If the icon will be clicked and the list item isn't seleted only the current file will be opened.
- `Delete` - If one or more list items are selected and the icon will be clicked on one of those items all selected files will be deleted. If the icon will be clicked and the list item isn't seleted only the current file will be deleted.
#### macOS
- `Reveal in Finder` - Shows the current file in the finder.
#### Windows
- `Reveal in File Explorer` - Shows the current file in the explorer.
#### Linux
- `Open Containing Folder` - Shows the current file in the file manager.
### List Drag'n Drop
- `Drag'n Drop` - Drag a path in the list view to another path of the same type (file, folder or symbolic link) and let it drop to open a diff with these two files. Paths can also be dropped into the input fields and the search widget.
### List Tooltip
- Shows the full path, the size, the creation and modification time and date of a file.
### List Info
If `l13Diff.ignoreByteOrderMark`, `l13Diff.ignoreEndOfLine` or `l13Diff.ignoreTrimWhitespace` is true a file will be modified for a comparison. An info appears on the right side of the filename in the list view to see which changes has been done. The information is only visible for files where the modification results in **unchanged**.
- `Ignored EOL` - Line endings have been converted from Windows to Unix.
- `Ignored BOM` - Byte Order Mark for a UTF-8 and UTF-16BE file has been removed.
- `Ignored Whitespace` - Leading and trailing whitespaces have been removed.
### Search Widget
#### All Platforms
- `Escape` - Hide search widget.
#### macOS
- `Cmd + F` - Show search widget.
- `Cmd + Alt + C` - Toggle match case.
- `Cmd + Alt + R` - Toggle use regular expression.
- `Cmd + Alt + F` - Toggle show files.
- `Cmd + Alt + D` - Toggle show directories.
- `Cmd + Alt + L` - Toggle show symbolic links.
- `Cmd + Alt + X` - Toggle show conflicts.
- `Cmd + Alt + O` - Toggle show errors andf others.
#### Windows / Linux
- `Ctrl + F` - Show search widget.
- `Alt + C` - Toggle match case.
- `Alt + R` - Toggle use regular expression.
- `Alt + F` - Toggle show files.
- `Alt + D` - Toggle show directories.
- `Alt + L` - Toggle show symbolic links.
- `Alt + X` - Toggle show conflicts.
- `Alt + O` - Toggle show errors and others.
### Favorites
- `Click` - Start the favorite diff immediately in the current active panel. If `l13Diff.openInNewDiffPanel` is true the comparison opens in a new diff panel.
#### Favorites Context Icons
- `New Diff Panel` - Open a new panel.
- `New Group` - Add a new group.
- `Collapse All` - Collapse all groups.
#### Favorites Context Menu
- `Compare` - Start the favorite diff immediately in the current active panel. Ignores `l13Diff.openInNewDiffPanel`.
- `Compare in New Panel` - Start the favorite diff immediately in a new diff panel. Ignores `l13Diff.openInNewDiffPanel`.
- `Reveal in Finder/Explorer` - Reveal the left or right file/folder in the finder/explorer. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open in Integrated Terminal` - Open the left or right path in the integrated terminal. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open Workspace` - Open the left or right path as a workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open as Workspace` - Open the two paths as a workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Add Folders to Workspace` - Add the paths to the current workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Add to Group` - Add a favorite diff to a group.
- `Copy Left Path` - Copy the left path of the favorite diff to the clipboard.
- `Copy Right Path` - Copy the right path of the favorite diff to the clipboard.
- `Remove from Group` - Remove a favorite diff from a group.
- `Rename` - Change the name of a favorite diff.
- `Delete` - Delete a favorite diff.
#### Favorite Groups Context Menu
- `Compare All` - Compare all favorite diffs of a group at once.
- `Compare All Side By Side` - Compare all favorite diffs of a group at once side by side.
- `Rename` - Change the name of a favorite group.
- `Delete` - Delete a favorite group. Optionally you can delete also all favorites in the group.
### History
- `Click` - Open the previous comparison and start a comparison immediately.
#### Context Icons
- `Diff Folders: Clear History` - Clear the history of recently used files, folders and previous comparisons.
#### Context Menu
- `Compare` - Start the previous comparison immediately in the current active panel. Ignores `l13Diff.openInNewDiffPanel`.
- `Compare in New Panel` \[2\] - Start the previous comparison immediately in a new diff panel. Ignores `l13Diff.openInNewDiffPanel`.
- `Reveal in Finder/Explorer` - Reveal the left or right file/folder in the finder/explorer. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open in Integrated Terminal` \[2\] - Open the left or right path in the integrated terminal. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open Workspace` \[2\] - Open the left or right path as a workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open as Workspace` \[2\] - Open the two paths as a workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Add Folders to Workspace` \[2\] - Add the paths to the current workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Add to Favorites` - Add a previous comparison to favorites.
- `Copy Left Path` - Copy the left path of the previous comparison to the clipboard.
- `Copy Right Path` - Copy the right path of the previous comparison to the clipboard.
- `Delete` - Delete the previous comparison from the history.
\[2\] Only available for previous folder comparisons.
### Statusbar
- `Click` - Open the output channel for logging and stats.
### Navigator
- `Click` - Drag'n drop the scrollbar thumb of the navigator to scroll the list or click elsewhere in the navigator and jump to this part of the list.
### Visual Studio Code Explorer
#### Context Menu
- `Select for Compare` - Select a folder for a comparison.
- `Compare with Selected` - Compare the folder with the selected one.
- `Compare Selected` - Compare the two selected folders.
### [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects)
#### Context Menu
- `Select for Compare` - Select a folder, repository or project for a comparison.
- `Compare with Selected` - Compare the folder, repository or project with the selected one.
- `Compare with Workspace` - Compare the folder, repository or project with the current workspace.
- `Open in Diff Folders` - Open the folder, repository or project in Diff Folders.
## Custom Keybindings
Custom keyboard shortcuts can be assigned to the commands. But not every command works properly because the right context is required. If a command has no default keyboard shortcut it is maybe necessary to add a when clause. The following list of context values are available in different view states.
- `l13DiffFocus` - The value is true if a diff panel has focus.
- `l13DiffListFocus` - The value is true if the list view has focus.
- `l13DiffInputFocus` - The value is true if the left or right input has focus.
- `l13DiffSearchFocus` - The value is true if the search input has focus.
## Workspace Trust
The extension is written with security in mind. Paths will be sanitized before they are used and if the file `.vscode/settings.json` is available in a workspace the content will be parsed with the native JSON parser to get the values of `l13Diff.exclude`.
Right now it is not possible to show a message if files will be copied from an untrusted workspace to a trusted one because there is no API to figure out if a workspace, which is not the current one, is trusted or not. Please always be careful when copying files and folders.
## Recommended Settings
The fastest and most accurate way to compare files is
```
{
"l13Diff.ignoreEndOfLine": false,
"l13Diff.ignoreTrimWhitespace": "default",
"diffEditor.ignoreTrimWhitespace": false,
"l13Diff.ignoreByteOrderMark": false
}
```
## Recommended Extensions
- [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects)
- [Extension Pack](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-extension-pack)
## About
Compare two folders in Visual Studio Code
[marketplace.visualstudio.com/items?itemName=L13RARY.l13-diff](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-diff "https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-diff")
### Topics
[diff](https://github.com/topics/diff "Topic: diff") [vscode](https://github.com/topics/vscode "Topic: vscode") [vscode-extension](https://github.com/topics/vscode-extension "Topic: vscode-extension") [compare](https://github.com/topics/compare "Topic: compare") [compare-files](https://github.com/topics/compare-files "Topic: compare-files") [diff-files](https://github.com/topics/diff-files "Topic: diff-files") [compare-folders](https://github.com/topics/compare-folders "Topic: compare-folders") [diff-folders](https://github.com/topics/diff-folders "Topic: diff-folders")
### Resources
[Readme](https://github.com/L13/vscode-diff#readme-ov-file)
### License
[View license](https://github.com/L13/vscode-diff#License-1-ov-file)
### Uh oh\!
There was an error while loading. [Please reload this page](https://github.com/L13/vscode-diff).
[Activity](https://github.com/L13/vscode-diff/activity)
### Stars
[**105** stars](https://github.com/L13/vscode-diff/stargazers)
### Watchers
[**1** watching](https://github.com/L13/vscode-diff/watchers)
### Forks
[**10** forks](https://github.com/L13/vscode-diff/forks)
[Report repository](https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2FL13%2Fvscode-diff&report=L13+%28user%29)
## [Releases](https://github.com/L13/vscode-diff/releases)
[44 tags](https://github.com/L13/vscode-diff/tags)
### Uh oh\!
There was an error while loading. [Please reload this page](https://github.com/L13/vscode-diff).
## [Contributors 1](https://github.com/L13/vscode-diff/graphs/contributors)
- [](https://github.com/L13) [**L13** L13\|RARY](https://github.com/L13)
## Languages
- [TypeScript 83.8%](https://github.com/L13/vscode-diff/search?l=typescript)
- [JavaScript 9.4%](https://github.com/L13/vscode-diff/search?l=javascript)
- [SCSS 6.2%](https://github.com/L13/vscode-diff/search?l=scss)
- [HTML 0.6%](https://github.com/L13/vscode-diff/search?l=html)
## Footer
© 2026 GitHub, Inc.
### Footer navigation
- [Terms](https://docs.github.com/site-policy/github-terms/github-terms-of-service)
- [Privacy](https://docs.github.com/site-policy/privacy-policies/github-privacy-statement)
- [Security](https://github.com/security)
- [Status](https://www.githubstatus.com/)
- [Community](https://github.community/)
- [Docs](https://docs.github.com/)
- [Contact](https://support.github.com/?tags=dotcom-footer)
- Manage cookies
- Do not share my personal information
You can’t perform that action at this time. |
| Readable Markdown | Compare two folders in Visual Studio Code.
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview.png)
What's new in Diff Folders 1.3.0
- Added `Export Favorites` to export favorites and groups as a JSON file.
- Added `Import Favorites` to import favorites and groups from a JSON file.
Index
1. [Available Commands](https://github.com/L13/vscode-diff#available-commands)
2. [Available Settings](https://github.com/L13/vscode-diff#available-settings)
3. [Predefined Variables](https://github.com/L13/vscode-diff#predefined-variables)
4. [Mouse and Keyboard Shortcuts](https://github.com/L13/vscode-diff#mouse-and-keyboard-shortcuts)
5. [Custom Keybindings](https://github.com/L13/vscode-diff#custom-keybindings)
6. [Workspace Trust](https://github.com/L13/vscode-diff#workspace-trust)
7. [Recommended Settings](https://github.com/L13/vscode-diff#recommended-settings)
8. [Recommended Extensions](https://github.com/L13/vscode-diff#recommended-extensions)
Basics
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-start.png)
Favorites
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-favorites.png)
Search, Filter or Select
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-search.png)
List and Navigator
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-select.png)
Logging and Stats
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-stats.png)
Supports the Extension [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects)
[](https://github.com/L13/vscode-diff/blob/master/images/previews/preview-projects.png)
Available Commands
- `New Diff Panel` - Open the diff panel.
- `Clear History` - Clear the history of recently used files, folders and previous comparisons.
- `Delete All Favorites` - Delete all favorites.
- `Show Output Channel` - Open the output channel for the current comparison.
- `Export Favorites` - Export all favorites and groups to a JSON file.
- `Import Favorites` - Import favorites and groups from a JSON file. The limit is 1000 entries.
Available Settings
- `l13Diff.maxRecentlyUsed` - Defines the max length of recently used entries in the menu.
- `l13Diff.openToSide` - Set true if a diff or file should open to the side.
- `l13Diff.abortOnError` - If false scan process will not be canceled if an error occurs.
- `l13Diff.useCaseSensitiveFileName` - Indiciates if filenames should be treated as case sensitive for a comparison. This also affects the property `l13Diff.exclude`.
- `detect` - (default) Detect the file system case sensitivity.
- `on` - Enable case sensitive file names.
- `off` - Disable case sensitive file names.
- `l13Diff.exclude` - A list of files and folders which should be ignored. If the folder for a comparison or one of its parent folders contains the `.vscode/settings.json` file and is not the current workspace folder, the file will be automatically detected and the values of the property will also be used for the comparison. If the folder is part of the current workspace, the workspace settings will be used instead of the local settings. Supports the following glob patterns:
- `*` matches zero or more characters in a path segment e.g. `*.txt`.
- `?` matches on one character in a path segment.
- `**` matches any number of path segments including none e.g. `**/node_modules`.
- `l13Diff.openInNewDiffPanel` - If true a click on a favorite diff or a previous comparison opens in a new diff panel.
- `l13Diff.confirmCaseInsensitiveCompare` - If false confirm dialog for comparing case insensitive on a case sensitive file system does not appear.
- `l13Diff.confirmCopy` - If false confirm dialog for copying files does not appear.
- `l13Diff.confirmCaseInsensitiveCopy` - If false confirm dialog for copying case sensitive on a case insensitive file system does not appear.
- `l13Diff.confirmDelete` - If false confirm dialog for deleting files does not appear. Is not used if you have to decide which side have to be deleted.
- `l13Diff.confirmOpenMultipleDiffPanels` - If true `Compare All` and `Compare All Side By Side` shows a dialog if more than 3 diff panels will be opened at once.
- `l13Diff.initialFavoriteGroupsState` - Set the initial state of a group.
- `remember` - (default) Remember the collpased and expanded state of each group.
- `collapsed` - Show all groups collapsed at start.
- `expanded` - Show all groups expanded at start.
- `l13Diff.labelFormat` - Indicates how the label of a tab should be formatted.
- `complete` - (default) Show relative paths including the common path.
- `compact` - Show relative paths including base folders.
- `relative` - Show only the relative paths.
- `filename` - Show only the filenames.
- `l13Diff.ignoreContents` - If true files will only be compared by size and the contents will be ignored.
- `l13Diff.maxFileSize` - Indicates the maximum file size in MB for a comparison. If the value is 0 no limit is used instead.
- `l13Diff.ignoreEndOfLine` \[1\] - Set true if a comparison for text files should ignore line endings (CR/LF).
- `l13Diff.ignoreTrimWhitespace` \[1\] - Ignores leading and trailing whitespace in text files.
- `default` - (default) Uses the value of `diffEditor.ignoreTrimWhitespace`.
- `on` - Ignores leading and trailing whitespace for a comparison in a text file.
- `off` - Does not ignore leading and trailing whitespace for a comparison in a text file.
- `l13Diff.ignoreByteOrderMark` \[1\] - Set true if a comparison should ignore the BOM in UTF-8 or UTF-16BE text files.
- `l13Diff.enableTrash` - Moves files and folders to the OS trash when deleting or delete files and folders permanently.
- `default` - (default) Uses the value of `files.enableTrash`.
- `on` - Moves files and folders to the OS trash.
- `off` - Deletes files and folders permanently.
\[1\] Supports only ASCII based and UTF-16 BE/LE encoded files. The text file detection uses the extension name definitions of all installed extensions or the property `files.associations` in the user settings. If a file isn't detected as a text file the extension name has to be added to `files.associations` like `"*.extname": "language"`. If the file size exceeds the maximum buffer length the file will be treated as a binary file.
Predefined Variables
- `${workspaceFolder}` - Use the current workspace folder for the diff e.g. `${workspaceFolder}/path/to/folder`
- `${workspaceFolder:NAME}` - Use a specific workspace folder by name for the diff e.g. `${workspaceFolder:workspace-a}/path/to/folder`. If a folder has a closing brace `}` in its name the char has to be escaped like `${workspaceFolder:name-{1\}}`.
Mouse and Keyboard Shortcuts
Global
macOS
- `Cmd + L Cmd + L` - Open the diff panel.
- `Cmd + D` - Add the current paths to favorites. Diff panel has to be active editor.
- `Cmd + L Cmd + O` - Open the output channel. Provides logging and stats for the current diff.
- `Cmd + L Cmd + F` - Open favorites explorer.
Windows / Linux
- `Ctrl + L Ctrl + L` - Open the diff panel.
- `Ctrl + D` - Add the current paths to favorites. Diff panel has to be active editor.
- `Ctrl + L Ctrl + F` - Open favorites explorer.
Windows
- `Ctrl + L Ctrl + O` - Open the output channel. Provides logging and stats for the current diff.
If the key bindings don't work, please check `Preferences -> Keyboard Shortcuts`.
Input Menu
- `Click` - Select a path in the menu.
- `ArrowUp/ArrowDown` - Move the cursor to the previous/next list item in the menu.
- `Enter` - If the menu is visible, the selected path will be filled in, otherwise a comparison starts.
- `Escape` - Hide the menu if visible.
Input Icon
- `Click` - Open dialog to pick a folder.
- `Alt + Click` - Open dialog to pick a file.
Swap Button
All platforms
- `Click` - Swaps just the values of the input fields.
- `Alt + Click` - Swaps the values of the input fields and the diff result.
macOS
- `Cmd + S` - Same as `Click`.
- `Alt + Cmd + S` - Same as `Alt + Click`.
Windows / Linux
- `Ctrl + S` - Same as `Click`.
- `Alt + Ctrl + S` - Same as `Alt + Click`.
Status Buttons
macOS
- `Alt + Cmd + 1` - Toggle `Show All Unchanged Files`
- `Alt + Cmd + 2` - Toggle `Show All Deleted Files`
- `Alt + Cmd + 3` - Toggle `Show All Modified Files`
- `Alt + Cmd + 4` - Toggle `Show All Created Files`
- `Alt + Cmd + 5` - Toggle `Show All Ignored Files`
Windows / Linux
- `Alt + Ctrl + 1` - Toggle `Show All Unchanged Files`
- `Alt + Ctrl + 2` - Toggle `Show All Deleted Files`
- `Alt + Ctrl + 3` - Toggle `Show All Modified Files`
- `Alt + Ctrl + 4` - Toggle `Show All Created Files`
- `Alt + Ctrl + 5` - Toggle `Show All Ignored Files`
Compare Button
All Platforms
- `Click` - Start a comparison.
- `Alt + Click` - Start a comparison in all diff panels.
macOS
- `Cmd + C` - Same as `Click`.
- `Alt + Cmd + C` - Same as `Alt + Click`.
Windows / Linux
- `Ctrl + C` - Same as `Click`.
- `Alt + Ctrl + C` - Same as `Alt + Click`.
Actions
Copy files to the left/right folder.
- `Click` - Copy all selected files to the other folder.
- `Alt + Click` - Copy all selected files in one diff panel in all other diff panels from one source to the other folders at once. Open two or more diff panels and make a comparison with the same folder on the same side. Select all the files you want to copy in one diff panel and press the button with `Alt + Click` to copy all the files from the same source to all other folders, too.
List
All Platforms
- `Click` - Select a file or folder in the list view.
- `Shift + Click` - Add files and folders from the last selected item to the current selected item in the list view.
- `Double Click` - Open a diff or file.
- `Alt + Double Click` - Open diff or file to side.
- `Enter` - Same as `Double Click`.
- `Ctrl + Enter` - Same as `Alt + Double Click`.
- `Escape` - Unselect all items in the list view.
- `Space` - Show preview of diff or file to side if `l13Diff.enablePreview` is true. If multiple files are selected the last selection will be opened as a preview and the rest will be opened like `Double Click`.
macOS
- `Cmd + Click` - Add or remove a file or folder to or from the current selection.
- `Cmd + A` - Select all items in the list view.
- `ArrowUp/ArrowDown` - Move the cursor to the previous/next list item.
- `Alt + ArrowUp/ArrowDown` - Move the cursor to the start/end of list view.
- `Shift + ArrowUp/ArrowDown` - Add the previous/next list item to the selection.
- `Shift + Alt + ArrowUp/ArrowDown` - Add all list items until start/end of the list view to the selection.
- `Home/End` - Scroll to the start/end of the list view.
- `PageUp/PageDown` - Scroll to the previous/next page of the list view.
- `Cmd + Backspace` - Delete selected files and folders. Opens a dialog to choose which files (left, right or all) should be deleted.
Windows / Linux
- `Ctrl + Click` - Add or remove a file or folder to or from the current selection.
- `Ctrl + A` - Select all items in the list view.
- `ArrowUp/ArrowDown` - Move the cursor to the previous/next list item.
- `Shift + ArrowUp/ArrowDown` - Add the previous/next list item to the selection.
- `Home/End` - Move the cursor to the start/end of list view.
- `Shift + Home/End` - Add all list items until start/end of the list view to the selection.
- `PageUp/PageDown` - Move the cursor to the start/end of the previous/next page of the list view.
- `Shift + PageUp/PageDown` - Add all list items of the previous/next page to the selection.
- `Delete` - Delete selected files and folders. Opens a dialog to choose which files (left, right or all) should be deleted.
List Context Menu
All Platforms
- `Copy` - If one or more list items are selected and the icon will be clicked on one of those items all selected files will be copied to the other folder. If the icon will be clicked and the list item isn't seleted only the current file will be copied. This button supports copying files to multiple folders at once with `Alt + Click`, too. Please read the description for `Copy files to the left/right folder` to see how it works.
- `Go to File` - If one or more list items are selected and the icon will be clicked on one of those items all selected files will be opened. If the icon will be clicked and the list item isn't seleted only the current file will be opened.
- `Delete` - If one or more list items are selected and the icon will be clicked on one of those items all selected files will be deleted. If the icon will be clicked and the list item isn't seleted only the current file will be deleted.
macOS
- `Reveal in Finder` - Shows the current file in the finder.
Windows
- `Reveal in File Explorer` - Shows the current file in the explorer.
Linux
- `Open Containing Folder` - Shows the current file in the file manager.
List Drag'n Drop
- `Drag'n Drop` - Drag a path in the list view to another path of the same type (file, folder or symbolic link) and let it drop to open a diff with these two files. Paths can also be dropped into the input fields and the search widget.
List Tooltip
- Shows the full path, the size, the creation and modification time and date of a file.
List Info
If `l13Diff.ignoreByteOrderMark`, `l13Diff.ignoreEndOfLine` or `l13Diff.ignoreTrimWhitespace` is true a file will be modified for a comparison. An info appears on the right side of the filename in the list view to see which changes has been done. The information is only visible for files where the modification results in **unchanged**.
- `Ignored EOL` - Line endings have been converted from Windows to Unix.
- `Ignored BOM` - Byte Order Mark for a UTF-8 and UTF-16BE file has been removed.
- `Ignored Whitespace` - Leading and trailing whitespaces have been removed.
Search Widget
All Platforms
- `Escape` - Hide search widget.
macOS
- `Cmd + F` - Show search widget.
- `Cmd + Alt + C` - Toggle match case.
- `Cmd + Alt + R` - Toggle use regular expression.
- `Cmd + Alt + F` - Toggle show files.
- `Cmd + Alt + D` - Toggle show directories.
- `Cmd + Alt + L` - Toggle show symbolic links.
- `Cmd + Alt + X` - Toggle show conflicts.
- `Cmd + Alt + O` - Toggle show errors andf others.
Windows / Linux
- `Ctrl + F` - Show search widget.
- `Alt + C` - Toggle match case.
- `Alt + R` - Toggle use regular expression.
- `Alt + F` - Toggle show files.
- `Alt + D` - Toggle show directories.
- `Alt + L` - Toggle show symbolic links.
- `Alt + X` - Toggle show conflicts.
- `Alt + O` - Toggle show errors and others.
Favorites
- `Click` - Start the favorite diff immediately in the current active panel. If `l13Diff.openInNewDiffPanel` is true the comparison opens in a new diff panel.
Favorites Context Icons
- `New Diff Panel` - Open a new panel.
- `New Group` - Add a new group.
- `Collapse All` - Collapse all groups.
Favorites Context Menu
- `Compare` - Start the favorite diff immediately in the current active panel. Ignores `l13Diff.openInNewDiffPanel`.
- `Compare in New Panel` - Start the favorite diff immediately in a new diff panel. Ignores `l13Diff.openInNewDiffPanel`.
- `Reveal in Finder/Explorer` - Reveal the left or right file/folder in the finder/explorer. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open in Integrated Terminal` - Open the left or right path in the integrated terminal. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open Workspace` - Open the left or right path as a workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open as Workspace` - Open the two paths as a workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Add Folders to Workspace` - Add the paths to the current workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Add to Group` - Add a favorite diff to a group.
- `Copy Left Path` - Copy the left path of the favorite diff to the clipboard.
- `Copy Right Path` - Copy the right path of the favorite diff to the clipboard.
- `Remove from Group` - Remove a favorite diff from a group.
- `Rename` - Change the name of a favorite diff.
- `Delete` - Delete a favorite diff.
Favorite Groups Context Menu
- `Compare All` - Compare all favorite diffs of a group at once.
- `Compare All Side By Side` - Compare all favorite diffs of a group at once side by side.
- `Rename` - Change the name of a favorite group.
- `Delete` - Delete a favorite group. Optionally you can delete also all favorites in the group.
History
- `Click` - Open the previous comparison and start a comparison immediately.
Context Icons
- `Diff Folders: Clear History` - Clear the history of recently used files, folders and previous comparisons.
Context Menu
- `Compare` - Start the previous comparison immediately in the current active panel. Ignores `l13Diff.openInNewDiffPanel`.
- `Compare in New Panel` \[2\] - Start the previous comparison immediately in a new diff panel. Ignores `l13Diff.openInNewDiffPanel`.
- `Reveal in Finder/Explorer` - Reveal the left or right file/folder in the finder/explorer. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open in Integrated Terminal` \[2\] - Open the left or right path in the integrated terminal. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open Workspace` \[2\] - Open the left or right path as a workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Open as Workspace` \[2\] - Open the two paths as a workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Add Folders to Workspace` \[2\] - Add the paths to the current workspace. Requires version 0.20.0 of [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects).
- `Add to Favorites` - Add a previous comparison to favorites.
- `Copy Left Path` - Copy the left path of the previous comparison to the clipboard.
- `Copy Right Path` - Copy the right path of the previous comparison to the clipboard.
- `Delete` - Delete the previous comparison from the history.
\[2\] Only available for previous folder comparisons.
Statusbar
- `Click` - Open the output channel for logging and stats.
Navigator
- `Click` - Drag'n drop the scrollbar thumb of the navigator to scroll the list or click elsewhere in the navigator and jump to this part of the list.
Visual Studio Code Explorer
Context Menu
- `Select for Compare` - Select a folder for a comparison.
- `Compare with Selected` - Compare the folder with the selected one.
- `Compare Selected` - Compare the two selected folders.
[Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects)
Context Menu
- `Select for Compare` - Select a folder, repository or project for a comparison.
- `Compare with Selected` - Compare the folder, repository or project with the selected one.
- `Compare with Workspace` - Compare the folder, repository or project with the current workspace.
- `Open in Diff Folders` - Open the folder, repository or project in Diff Folders.
Custom Keybindings
Custom keyboard shortcuts can be assigned to the commands. But not every command works properly because the right context is required. If a command has no default keyboard shortcut it is maybe necessary to add a when clause. The following list of context values are available in different view states.
- `l13DiffFocus` - The value is true if a diff panel has focus.
- `l13DiffListFocus` - The value is true if the list view has focus.
- `l13DiffInputFocus` - The value is true if the left or right input has focus.
- `l13DiffSearchFocus` - The value is true if the search input has focus.
Workspace Trust
The extension is written with security in mind. Paths will be sanitized before they are used and if the file `.vscode/settings.json` is available in a workspace the content will be parsed with the native JSON parser to get the values of `l13Diff.exclude`.
Right now it is not possible to show a message if files will be copied from an untrusted workspace to a trusted one because there is no API to figure out if a workspace, which is not the current one, is trusted or not. Please always be careful when copying files and folders.
Recommended Settings
The fastest and most accurate way to compare files is
```
{
"l13Diff.ignoreEndOfLine": false,
"l13Diff.ignoreTrimWhitespace": "default",
"diffEditor.ignoreTrimWhitespace": false,
"l13Diff.ignoreByteOrderMark": false
}
```
Recommended Extensions
- [Projects](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-projects)
- [Extension Pack](https://marketplace.visualstudio.com/items?itemName=L13RARY.l13-extension-pack) |
| Shard | 174 (laksa) |
| Root Hash | 6325672905007345774 |
| Unparsed URL | com,github!/L13/vscode-diff s443 |