Skip to content

Commit b683473

Browse files
committed
updated multi-root support with a more native impl
1 parent be4c6d4 commit b683473

File tree

6 files changed

+54
-125
lines changed

6 files changed

+54
-125
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ meta.json
88
stats.html
99
server
1010
test/result
11+
*.bazel.lock

package-lock.json

Lines changed: 40 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,6 @@
232232
{
233233
"id": "bazelTaskOutline",
234234
"name": "Bazel Run Targets"
235-
},
236-
{
237-
"id": "rootFileViewer",
238-
"name": "Project Root (Files)",
239-
"when": "isMultiRoot"
240235
}
241236
]
242237
},
@@ -333,7 +328,7 @@
333328
"@typescript-eslint/eslint-plugin": "^6.0.0",
334329
"@typescript-eslint/parser": "^6.0.0",
335330
"@vscode/test-electron": "^2.3.4",
336-
"@vscode/vsce": "^3.0.0",
331+
"@vscode/vsce": "^3.2.1",
337332
"esbuild": "0.19.8",
338333
"esbuild-plugin-eslint": "^0.3.7",
339334
"esbuild-visualizer": "^0.4.1",

src/extension.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import { registerLSClient } from './loggingTCPServer';
2121
import { ProjectViewManager } from './projectViewManager';
2222
import { BazelRunTargetProvider } from './provider/bazelRunTargetProvider';
2323
import { BazelTaskProvider } from './provider/bazelTaskProvider';
24-
import { RootFileViewProvider } from './provider/rootFileViewProvider';
2524
import {
2625
getWorkspaceRoot,
2726
initBazelProjectFile,
@@ -46,10 +45,6 @@ export async function activate(context: ExtensionContext) {
4645
BazelRunTargetProvider.instance
4746
);
4847
tasks.registerTaskProvider('bazel', new BazelTaskProvider());
49-
window.registerTreeDataProvider(
50-
'rootFileViewer',
51-
RootFileViewProvider.instance
52-
);
5348

5449
BazelLanguageServerTerminal.trace('extension activated');
5550

src/projectViewManager.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,19 @@ export namespace ProjectViewManager {
4141
extensions: await getVscodeConfig('extensions'),
4242
};
4343
writeFileSync(
44-
`${workspaceRoot}/${workspaceRootName}.code-workspace`,
44+
`${workspaceRoot}/workspace.code-workspace`,
4545
Buffer.from(JSON.stringify(workspaceFile, null, 2))
4646
);
4747

48+
// cleanup all old single root workspace files
49+
await workspace.fs.delete(Uri.file(`${workspaceRoot}/.vscode`), {
50+
recursive: true,
51+
});
52+
4853
// reload the window using the new workspace
4954
commands.executeCommand(
5055
'vscode.openFolder',
51-
Uri.file(`${workspaceRoot}/${workspaceRootName}.code-workspace`)
56+
Uri.file(`${workspaceRoot}/workspace.code-workspace`)
5257
);
5358
}
5459
return;
@@ -77,6 +82,9 @@ export namespace ProjectViewManager {
7782

7883
async function getDisplayFolders(): Promise<string[]> {
7984
let displayFolders = new Set<string>(['.eclipse']); // TODO bubble this out to a setting
85+
if (isMultiRoot()) {
86+
displayFolders.add('.');
87+
}
8088
try {
8189
const bazelProjectFile = await getBazelProjectFile();
8290
if (bazelProjectFile.directories.includes('.')) {
@@ -164,11 +172,11 @@ export namespace ProjectViewManager {
164172
k.includes('.eclipse')
165173
).length;
166174

167-
const viewAll = displayFolders.includes('.');
175+
const viewAll = displayFolders.includes('.') && !isMultiRoot();
168176

169177
const fileWatcherExcludePattern = viewAll
170178
? ''
171-
: `**/!(${Array.from(displayFolders.sort()).join('|')})/**`;
179+
: `**/!(${Array.from(displayFolders.filter((s) => s !== '.').sort()).join('|')})/**`;
172180

173181
if (viewAll) {
174182
// if viewAll and existing config doesn't contain .eclipse return

src/provider/rootFileViewProvider.ts

Lines changed: 0 additions & 76 deletions
This file was deleted.

0 commit comments

Comments
 (0)