Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

code snippet provider #13018

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

code snippet provider #13018

wants to merge 1 commit into from

Conversation

lukka
Copy link
Member

@lukka lukka commented Dec 4, 2024

No description provided.

snippetsKind = kind;
// //?? TODO Add telemetry for Computed vs Cached.

return codeSnippets ?? [];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Won't matter if we're the only provider, but we may want to experiment with lowering the importance if the snippets were from the cache.


export async function registerCopilotContextProvider(): Promise<void> {
try {
const isCustomSnippetProviderApiEnabled = await telemetry.isExperimentEnabled("CppToolsCustomSnippetsApi");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't do audience filtering and set this flag at the same time. Instead, on the Copilot side you'll need to modify the construction of activeExperiments in CompletionContext to check for the experiment, then update the resolver here to respect activeExperiments.

Alternatively, if the intent of this check was to act as a kill-switch then you can leave it as-is (although we'll still need the activeExperiments plumbing). We'll just need to be sure that CppToolsCustomSnippetsApi is at 100% rollout for all VS Code traffic before starting the actual experiment.

@benmcmorran
Copy link
Member

@lukka Soon you should be able to take a dependency on https://www.npmjs.com/package/@github/copilot-language-server to get appropriate typings. The types aren't quite there yet, but https://github.com/github/copilot-client/pull/6250 is adding them.

@lukka lukka force-pushed the dev/lucappa/cop-ctx-api branch 2 times, most recently from 991df60 to 22235f3 Compare December 7, 2024 03:09
import { randomUUID } from 'crypto';
import * as telemetry from '../telemetry';

export class CopilotContextTelemetry {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

more appropriate name should be CopilotCompletionContextTelemetry

private readonly metrics: Record<string, number> = {};
private readonly properties: Record<string, string> = {};
private readonly id: string;
constructor(correlationId?: string) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be a blank newline before constructor.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll add it manually Should this be enforced by whatever the formatter is? I think I have enabled ESLint and formatting the document should be the "correct" one.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure which formatter we're using for TypeScript. We have "editor.defaultFormatter": "vscode.typescript-language-features", set in settings.json but we also have "eslint.format.enable": true, -- I've seen cases recently where the 2 formatters had different opinions and so I had to disable the vscode.typescript-language-features in order to fix the eslint issue.

I think eslint formatting is deprecated.

I'm not sure if there's a formatter rule for a newline before a member function, but feel free to add one if you know of a rule.

@lukka lukka force-pushed the dev/lucappa/cop-ctx-api branch from 22235f3 to 0679bab Compare December 19, 2024 04:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Pull Request
Development

Successfully merging this pull request may close these issues.

3 participants