-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of github.com:vknabel/vscode-swiftlint
- Loading branch information
Showing
1 changed file
with
27 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Contributing | ||
|
||
First of all, thanks for considering to improve Swift support for Visual Studio Code! | ||
In general most of these extensions are created similarly and share the general architecture. | ||
|
||
- [vscode-swiftlint](https://github.com/vknabel/vscode-swiftlint) | ||
- [vscode-swiftformat](https://github.com/vknabel/vscode-swiftformat) | ||
- [vscode-apple-swift-format](https://github.com/vknabel/vscode-apple-swift-format) | ||
|
||
## Architecture | ||
|
||
Each of these project above have the following, central files. Many of them are shared, but might differ between extensions. When fixing bugs, it might make sense to replicate them to different extensions. | ||
|
||
- extension.ts acts as the entrypoint for the extension. | ||
- Current.ts mostly encapsulating external dependencies for system and vscode access. | ||
- UserInteraction.ts which handles alerts and displaying error messages. | ||
- some *Provider.ts representing the core of the extension. | ||
- execShell.ts provides a platform independent way for shell access. | ||
|
||
## Releasing | ||
|
||
If you want to release an update to this extension, follow these steps: | ||
|
||
1. Commit the new version number to the `package.json`. | ||
2. Create an according release tag in the form of vX.X.X. | ||
3. Create a release on GitHub for the tag with autogenerated release notes. | ||
4. A new release build should automatically start off. |