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

ContextProvider resolve handler improvements #13296

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

Conversation

lukka
Copy link
Member

@lukka lukka commented Feb 20, 2025

Changes:
-new feature: add traits for C++ lang version
-telemetry: fix cancellation events.
-telemetry: more diag event for registration failure.

@lukka lukka marked this pull request as ready for review February 20, 2025 18:16
@lukka lukka requested a review from a team as a code owner February 20, 2025 18:16
@lukka lukka changed the title ContextProvider resolved improvements ContextProvider resolve handler improvements Feb 20, 2025
Copy link
Contributor

@sean-mcmanus sean-mcmanus left a comment

Choose a reason for hiding this comment

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

Should SnippetEntry be removed? It doesn't appear to be referenced anymore?

@kuchungmsft
Copy link
Contributor

FYI, I have a PR opened to clean up the compiler argument traits, which may impact this PR, see #13278.

@sean-mcmanus
Copy link
Contributor

FYI, I have a PR opened to clean up the compiler argument traits, which may impact this PR, see #13278.

Should your PR get checked in first, right?

kuchungmsft
kuchungmsft previously approved these changes Feb 26, 2025
Copy link
Contributor

@sean-mcmanus sean-mcmanus left a comment

Choose a reason for hiding this comment

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

cppCodeSnippetsFeatureNames doesn't work if it's lowercased -- that seems a little error prone and unexpected, because the other C_Cpp settings values are case insensitive I believe.

Copy link
Contributor

@sean-mcmanus sean-mcmanus left a comment

Choose a reason for hiding this comment

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

Oh, but that doesn't appear to be a regression -- it looks like I modified the setting value to be lowercase and expected it to work.

Copy link
Contributor

@sean-mcmanus sean-mcmanus left a comment

Choose a reason for hiding this comment

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

getEnabledFeatureNames splits by "," and breaks if ", " with a space after the comma is used -- that seems error prone. Should it be changed to handle space after a comma?

-telemetry: fix cancellation events.
-telemetry: more diag event for registration failure.
-add fallback to SimilarFiles providers such as openTabs and/or
related-files
sean-mcmanus

This comment was marked as resolved.

}
telemetry.addTraitsMetadata(projectContext, telemetryProperties, telemetryMetrics);

return copilotCompletionContext;
} else {
logMessage += `, result is missing`;
telemetry.addResponseMetadata(true);
return undefined;
Copy link
Contributor

Choose a reason for hiding this comment

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

This returning undefined is a little strange because it's losing information that the caller seems to want to check.

}
telemetry.addCompletionContextKind(copilotCompletionContextKind);
telemetry.addResponseMetadata(copilotCompletionContext?.isResultMissing ?? true,
copilotCompletionContext?.snippets?.length, copilotCompletionContext?.translationUnitUri,
copilotCompletionContext?.caretOffset, copilotCompletionContext?.featureFlag);
logMessage += ` (id:${copilotCompletionContext?.requestId}) `;
Copy link
Contributor

@sean-mcmanus sean-mcmanus Feb 26, 2025

Choose a reason for hiding this comment

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

This is odd/confusing, because ${copilotCompletionContext?.requestId will be undefined if isResultMissing.

By returning the undefined as mention earlier, you're losing the requestId. Maybe that doesn't really matter but it makes the logging a little confusing.

Copy link
Contributor

@sean-mcmanus sean-mcmanus left a comment

Choose a reason for hiding this comment

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

@lukka Should the snippets be trimmed for whitespace?

image

Copy link
Contributor

@sean-mcmanus sean-mcmanus left a comment

Choose a reason for hiding this comment

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

I still see unnecessary stuff sent to TypeScript like endLine. Can you remove that?

Copy link
Contributor

@sean-mcmanus sean-mcmanus left a comment

Choose a reason for hiding this comment

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

I'm approving but it seems like some of the data sent to TypeScript could be cleaned up on the cpptools side.

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.

4 participants