vscode-bazel
vscode-bazel copied to clipboard
Add Uri schemes to document selectors
The debug console when running our extension shows messages like these at activation time:
[UriError]: Scheme is missing: {scheme: "", authority: "", path: "", query: "", fragment: ""}
extensionHostProcess.js:76
Extension 'BazelBuild.vscode-bazel' uses a document selector without scheme. Learn more about this: https://go.microsoft.com/fwlink/?linkid=872305
extensionHostProcess.js:732
According to https://go.microsoft.com/fwlink/?linkid=872305, we should be explicit about the file
scheme for our document selectors to ensure that we can safely use the vscode.Uri.fsPath
property to find the file (because it could be a remote file, or not saved yet).
The first seems to have gone away, I did a quick attempt at the second with:
diff --git a/src/extension/extension.ts b/src/extension/extension.ts
index 9d87e79..29745a5 100644
--- a/src/extension/extension.ts
+++ b/src/extension/extension.ts
@@ -82,26 +82,32 @@ export function activate(context: vscode.ExtensionContext) {
),
// CodeLens provider for BUILD files
vscode.languages.registerCodeLensProvider(
- [{ pattern: "**/BUILD" }, { pattern: "**/BUILD.bazel" }],
+ [
+ { scheme: "file", pattern: "**/BUILD" },
+ { scheme: "file", pattern: "**/BUILD.bazel" },
+ ],
codeLensProvider,
),
// Buildifier formatting support
vscode.languages.registerDocumentFormattingEditProvider(
[
- { pattern: "**/BUILD" },
- { pattern: "**/BUILD.bazel" },
- { pattern: "**/WORKSPACE" },
- { pattern: "**/WORKSPACE.bazel" },
- { pattern: "**/*.BUILD" },
- { pattern: "**/*.bzl" },
- { pattern: "**/*.sky" },
+ { scheme: "file", pattern: "**/BUILD" },
+ { scheme: "file", pattern: "**/BUILD.bazel" },
+ { scheme: "file", pattern: "**/WORKSPACE" },
+ { scheme: "file", pattern: "**/WORKSPACE.bazel" },
+ { scheme: "file", pattern: "**/*.BUILD" },
+ { scheme: "file", pattern: "**/*.bzl" },
+ { scheme: "file", pattern: "**/*.sky" },
],
new BuildifierFormatProvider(),
),
buildifierDiagnostics,
// Symbol provider for BUILD files
vscode.languages.registerDocumentSymbolProvider(
- [{ pattern: "**/BUILD" }, { pattern: "**/BUILD.bazel" }],
+ [
+ { scheme: "file", pattern: "**/BUILD" },
+ { scheme: "file", pattern: "**/BUILD.bazel" },
+ ],
new BazelTargetSymbolProvider(),
),
// Task events.
But I still get the message, so I'm not sure what's triggering it.