|
21 | 21 | - **Debugging**: See `docs/debugger/` for advanced .NET debugging, including runtime and external library debugging. |
22 | 22 | - **Roslyn Copilot Language Server**: To update/test, see instructions in `CONTRIBUTING.md` (triggers pipeline, checks logs for install, etc.) |
23 | 23 |
|
| 24 | +## Infrastructure Tasks |
| 25 | +- **Tasks Directory**: Build automation is in `tasks/` using Gulp. Key modules: |
| 26 | + - `testTasks.ts`: Test orchestration for unit/integration tests across components |
| 27 | + - `offlinePackagingTasks.ts`: VSIX packaging for different platforms (`vsix:release:package:*`) |
| 28 | + - `componentUpdateTasks.ts`: Automated updates for Roslyn Copilot components |
| 29 | + - `snapTasks.ts`: Version bumping and changelog management for releases |
| 30 | + - `gitTasks.ts`: Git operations for automated PR creation and branch management |
| 31 | +- **Adding New Tasks**: Create `.ts` file in `tasks/`, define `gulp.task()` functions, require in `gulpfile.ts` |
| 32 | +- **Task Patterns**: Use `projectPaths.ts` for consistent path references, follow existing naming conventions (`test:integration:*`, `vsix:*`, etc.) |
| 33 | + |
24 | 34 | ## Project Conventions & Patterns |
25 | 35 | - **TypeScript**: Follows strict linting (`.eslintrc.js`), including header/license blocks and camelCase filenames (except for interfaces and special files). |
26 | 36 | - **Component Downloads**: Language servers and debuggers are downloaded at runtime; see `package.json` for URLs and install logic. |
27 | 37 | - **Copilot Providers**: Use `registerCopilotContextProviders` and `registerCopilotRelatedFilesProvider` to extend Copilot context for C#. |
28 | | -- **Testing**: Tests are in `test/` and use Jest. Some grammars and language configs are embedded for Razor and XAML. |
| 38 | +- **Testing**: Prefer integration tests over unit tests for features. Structure follows: |
| 39 | + - `test/lsptoolshost/integrationTests/` for Roslyn/LSP features |
| 40 | + - `test/omnisharp/omnisharpIntegrationTests/` for OmniSharp features |
| 41 | + - `test/razor/razorIntegrationTests/` for Razor features |
| 42 | + - Use `test/*/integrationTests/integrationHelpers.ts` for test setup utilities |
| 43 | + - Tests use Jest with VS Code test environment and require workspace test assets |
| 44 | + - Run with `npm run test:integration:*` commands (e.g., `npm run test:integration:csharp`) |
29 | 45 |
|
30 | 46 | ## Integration Points |
31 | 47 | - **GitHub Copilot**: Extension registers C# context and related files providers if Copilot/Copilot Chat extensions are present. |
|
0 commit comments