Skip to content

Commit 05ec979

Browse files
authored
Merge branch 'master' into add-inlayhint-textedit
2 parents 2be1c7d + 9981d44 commit 05ec979

File tree

4 files changed

+17
-13
lines changed

4 files changed

+17
-13
lines changed

src/omnisharp/launcher.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,17 @@ export async function findLaunchTargets(options: Options): Promise<LaunchTarget[
6565

6666
const projectFiles = await vscode.workspace.findFiles(
6767
/*include*/ '{**/*.sln,**/*.slnf,**/*.csproj,**/project.json,**/*.csx,**/*.cake}',
68-
/*exclude*/ '{**/node_modules/**,**/.git/**,**/bower_components/**}',
69-
/*maxResults*/ options.maxProjectResults);
68+
/*exclude*/ '{**/node_modules/**,**/.git/**,**/bower_components/**}');
7069

7170
const csFiles = await vscode.workspace.findFiles(
7271
/*include*/ '{**/*.cs}',
7372
/*exclude*/ '{**/node_modules/**,**/.git/**,**/bower_components/**}',
74-
/*maxResults*/ options.maxProjectResults);
73+
/*maxResults*/ 1);
7574

76-
return resourcesToLaunchTargets(projectFiles.concat(csFiles));
75+
return resourcesToLaunchTargets(projectFiles.concat(csFiles), options.maxProjectResults);
7776
}
7877

79-
export function resourcesToLaunchTargets(resources: vscode.Uri[]): LaunchTarget[] {
78+
export function resourcesToLaunchTargets(resources: vscode.Uri[], maxProjectResults: number): LaunchTarget[] {
8079
// The list of launch targets is calculated like so:
8180
// * If there are .csproj files, .sln and .slnf files are considered as launch targets.
8281
// * Any project.json file is considered a launch target.
@@ -117,10 +116,10 @@ export function resourcesToLaunchTargets(resources: vscode.Uri[]): LaunchTarget[
117116
}
118117
}
119118

120-
return resourcesAndFolderMapToLaunchTargets(resources, vscode.workspace.workspaceFolders.concat(), workspaceFolderToUriMap);
119+
return resourcesAndFolderMapToLaunchTargets(resources, vscode.workspace.workspaceFolders.concat(), workspaceFolderToUriMap, maxProjectResults);
121120
}
122121

123-
export function resourcesAndFolderMapToLaunchTargets(resources: vscode.Uri[], workspaceFolders: vscode.WorkspaceFolder[], workspaceFolderToUriMap: Map<number, vscode.Uri[]>): LaunchTarget[] {
122+
export function resourcesAndFolderMapToLaunchTargets(resources: vscode.Uri[], workspaceFolders: vscode.WorkspaceFolder[], workspaceFolderToUriMap: Map<number, vscode.Uri[]>, maxProjectResults: number): LaunchTarget[] {
124123
let solutionTargets: LaunchTarget[] = [];
125124
let projectJsonTargets: LaunchTarget[] = [];
126125
let projectRootTargets: LaunchTarget[] = [];
@@ -241,7 +240,7 @@ export function resourcesAndFolderMapToLaunchTargets(resources: vscode.Uri[], wo
241240
projectJsonTargets = projectJsonTargets.sort((a, b) => a.directory.localeCompare(b.directory));
242241
projectTargets = projectTargets.sort((a, b) => a.directory.localeCompare(b.directory));
243242

244-
return otherTargets.concat(solutionTargets).concat(projectRootTargets).concat(projectJsonTargets).concat(projectTargets);
243+
return otherTargets.concat(solutionTargets).concat(projectRootTargets).concat(projectJsonTargets).concat(projectTargets).slice(0, maxProjectResults);
245244
}
246245

247246
function isCSharpProject(resource: vscode.Uri): boolean {

test/integrationTests/launcher.test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { LaunchTargetKind, resourcesAndFolderMapToLaunchTargets, resourcesToLaun
99

1010
suite(`launcher:`, () => {
1111
const workspaceFolders: vscode.WorkspaceFolder[] = [{ uri: vscode.Uri.parse('/'), name: "root", index: 0 }];
12+
const maxProjectResults = 250;
1213

1314
test(`Returns the LiveShare launch target when processing vsls resources`, () => {
1415
const testResources: vscode.Uri[] = [
@@ -17,7 +18,7 @@ suite(`launcher:`, () => {
1718
vscode.Uri.parse(`${vsls}:/test/Program.cs`),
1819
];
1920

20-
const launchTargets = resourcesToLaunchTargets(testResources);
21+
const launchTargets = resourcesToLaunchTargets(testResources, maxProjectResults);
2122

2223
const liveShareTarget = launchTargets.find(target => target === vslsTarget);
2324
assert.exists(liveShareTarget, "Launch targets was not the Visual Studio Live Share target.");
@@ -31,7 +32,7 @@ suite(`launcher:`, () => {
3132
];
3233
const folderMap = new Map<number, vscode.Uri[]>([[0, testResources]]);
3334

34-
const launchTargets = resourcesAndFolderMapToLaunchTargets(testResources, workspaceFolders, folderMap);
35+
const launchTargets = resourcesAndFolderMapToLaunchTargets(testResources, workspaceFolders, folderMap, maxProjectResults);
3536

3637
const liveShareTarget = launchTargets.find(target => target === vslsTarget);
3738
assert.notExists(liveShareTarget, "Launch targets contained the Visual Studio Live Share target.");
@@ -45,7 +46,7 @@ suite(`launcher:`, () => {
4546
];
4647
const folderMap = new Map<number, vscode.Uri[]>([[0, testResources]]);
4748

48-
const launchTargets = resourcesAndFolderMapToLaunchTargets(testResources, workspaceFolders, folderMap);
49+
const launchTargets = resourcesAndFolderMapToLaunchTargets(testResources, workspaceFolders, folderMap, maxProjectResults);
4950

5051
const solutionTarget = launchTargets.find(target => target.workspaceKind === LaunchTargetKind.Solution && target.label === "test.sln");
5152
assert.exists(solutionTarget, "Launch targets did not include `/test.sln`");

test/runFeatureTests.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ async function main() {
1717
const extensionTestsPath = path.resolve(__dirname, './featureTests/index');
1818

1919
// Download VS Code, unzip it and run the integration test
20-
await runTests({ extensionDevelopmentPath, extensionTestsPath, launchArgs: ['-n', '--verbose'] });
20+
const exitCode = await runTests({ extensionDevelopmentPath, extensionTestsPath, launchArgs: ['-n', '--verbose'] });
21+
22+
process.exit(exitCode);
2123
} catch (err) {
2224
console.error(err);
2325
console.error('Failed to run tests');

test/runIntegrationTests.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ async function main() {
4343
}
4444

4545
// Download VS Code, unzip it and run the integration test
46-
await runTests({ extensionDevelopmentPath, extensionTestsPath, launchArgs: [workspacePath, '-n', '--verbose'], extensionTestsEnv: process.env });
46+
const exitCode = await runTests({ extensionDevelopmentPath, extensionTestsPath, launchArgs: [workspacePath, '-n', '--verbose'], extensionTestsEnv: process.env });
47+
48+
process.exit(exitCode);
4749
} catch (err) {
4850
console.error(err);
4951
console.error('Failed to run tests');

0 commit comments

Comments
 (0)