We welcome contributions, but please read first! To ensure a smooth process and that your valuable work aligns with our roadmap, please keep the following in mind to help manage expectations:
Before undertaking any changes or new features, please discuss your plans with us. This helps align on scope, design, technical approach, and priority.
Even bug fixes can have unforeseen impacts or alternative solutions better suited for the codebase, so please ask first, we will be happy to discuss.
Please raise a request with support. (Snyk employees, use #ask-ide)
Consider whether your proposed change should be implemented within the IDE extension(s) or in the shared Language Server and related stack.
If your change is applicable to other Snyk IDE plugins as well, we may expect you to submit similar PRs for the other relevant IDE repositories after your initial PR has been reviewed and approved, as they will usually need to be merged all at once or not at all.
All changes must be thoroughly manually tested by you.
For visual changes the PR template asks for screenshots, so this is a good opportunity to snap them.
Any user-facing changes will require documentation changes, which you will need to prepare. If you do not have access to our content management system (you are not a Snyk employee), please add the documentation changes required (including new wording and screenshots) to the PR description.
We can instruct you on what to add to the CHANGELOG.md, so please ask.
Download and install Visual Studio 2022 from official website.
Install the Visual Studio SDK as part of a Visual Studio installation. For details, please, see this page.
Visual Studio components could be modified using "Modify" button.
Please, check the "Visual Studio extension development" checkbox to install extensions SDK.
Double click on snyk-visual-studio-plugin.sln 
Snyk Visual Studio extension consists of several main projects:
- Snyk.VisualStudio.Extension - vsix configuration project for 2015-2019 Visual Studio versions.
- Snyk.VisualStudio.Extension.2022 - vsix configuration project for 20222 Visual Studio version.
- Snyk.VisualStudio.Extension.Shared - project with all source code Snyk.VisualStudio.Extension and Snyk.VisualStudio.Extension.2022 reference to this project.
To run Snyk extension under 2017-2019 Visual Studio versions you need to set Snyk.VisualStudio.Extension as startup project.
And select needed Visual Studio version.
You can build a release using Visual Studio.
In this case you need to setup environemnt variables for Snyk.Common/appsettings.json file or modify it manually
{
"SegmentAnalyticsWriteKey": "",
"SnykCodeApiEndpointUrl": "",
"SentryDsn": "",
"Environment": ""
}
- SnykCodeApiEndpointUrl - could be empty.
- Environment - could be production or development
You can build a release using GitHub. For this, please, use this action.
- Visual Studio extension use XAML for UI development, but Visual Studio Settings use WinForms for UI.
- WinForms designer not work in Shared projects (this is known Visual Studio limitation). If you need to modify WinForms controls (Settings controls) you could do it manually or move this files to other project, modify and move it back.

- To support lowest version of Visual Studio (right now it's 2015) we use lowest versions of some important libraries. For example, Community.VisualStudio.Toolkit.14.





