Skip to content

Commit a7b0622

Browse files
author
Deep Furiya
committed
add telemetry to autocomplete providers
1 parent 689fc1b commit a7b0622

8 files changed

+16
-0
lines changed

src/autocomplete/ConditionCompletionProvider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { TopLevelSection } from '../context/ContextType';
44
import { getEntityMap } from '../context/SectionContextBuilder';
55
import { SyntaxTreeManager } from '../context/syntaxtree/SyntaxTreeManager';
66
import { LoggerFactory } from '../telemetry/LoggerFactory';
7+
import { Measure } from '../telemetry/TelemetryDecorator';
78
import { getFuzzySearchFunction } from '../utils/FuzzySearchUtil';
89
import { CompletionProvider } from './CompletionProvider';
910
import { createCompletionItem } from './CompletionUtils';
@@ -21,6 +22,7 @@ export class ConditionCompletionProvider implements CompletionProvider {
2122

2223
public constructor(private readonly syntaxTreeManager: SyntaxTreeManager) {}
2324

25+
@Measure({ name: 'getConditionCompletions' })
2426
public getCompletions(context: Context, params: CompletionParams): CompletionItem[] | undefined {
2527
const syntaxTree = this.syntaxTreeManager.getSyntaxTree(params.textDocument.uri);
2628
if (!syntaxTree) {

src/autocomplete/IntrinsicFunctionArgumentCompletionProvider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { SyntaxTreeManager } from '../context/syntaxtree/SyntaxTreeManager';
1010
import { DocumentManager } from '../document/DocumentManager';
1111
import { SchemaRetriever } from '../schema/SchemaRetriever';
1212
import { LoggerFactory } from '../telemetry/LoggerFactory';
13+
import { Measure } from '../telemetry/TelemetryDecorator';
1314
import { getFuzzySearchFunction } from '../utils/FuzzySearchUtil';
1415
import {
1516
determineGetAttPosition,
@@ -55,6 +56,7 @@ export class IntrinsicFunctionArgumentCompletionProvider implements CompletionPr
5556
private readonly documentManager: DocumentManager,
5657
) {}
5758

59+
@Measure({ name: 'getIntrinsicFunctionArgumentCompletions' })
5860
getCompletions(context: Context, params: CompletionParams): CompletionItem[] | undefined {
5961
const syntaxTree = this.syntaxTreeManager.getSyntaxTree(params.textDocument.uri);
6062
if (!syntaxTree) {

src/autocomplete/IntrinsicFunctionCompletionProvider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { CompletionItem, CompletionItemKind, CompletionParams, TextEdit } from '
22
import { Context } from '../context/Context';
33
import { Intrinsics } from '../context/ContextType';
44
import { DocumentType } from '../document/Document';
5+
import { Measure } from '../telemetry/TelemetryDecorator';
56
import { getFuzzySearchFunction } from '../utils/FuzzySearchUtil';
67
import { CompletionProvider } from './CompletionProvider';
78
import { createCompletionItem, createReplacementRange } from './CompletionUtils';
@@ -16,6 +17,7 @@ export class IntrinsicFunctionCompletionProvider implements CompletionProvider {
1617
ignoreLocation: false,
1718
});
1819

20+
@Measure({ name: 'getIntrinsicFunctionCompletions' })
1921
getCompletions(context: Context, params: CompletionParams): CompletionItem[] | undefined {
2022
const triggerChar = params.context?.triggerCharacter ?? '';
2123
const isYaml = context.documentType !== DocumentType.JSON;

src/autocomplete/ParameterTypeValueCompletionProvider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { CompletionItem, CompletionItemKind, CompletionParams } from 'vscode-lan
22
import { Context } from '../context/Context';
33
import { PARAMETER_TYPES } from '../context/semantic/parameter/ParameterType';
44
import { LoggerFactory } from '../telemetry/LoggerFactory';
5+
import { Measure } from '../telemetry/TelemetryDecorator';
56
import { getFuzzySearchFunction } from '../utils/FuzzySearchUtil';
67
import { CompletionProvider } from './CompletionProvider';
78
import { createCompletionItem } from './CompletionUtils';
@@ -17,6 +18,7 @@ export class ParameterTypeValueCompletionProvider implements CompletionProvider
1718
ignoreLocation: false,
1819
});
1920

21+
@Measure({ name: 'getParameterTypeValueCompletions' })
2022
public getCompletions(context: Context, _: CompletionParams): CompletionItem[] | undefined {
2123
const items = this.getParameterTypesAsCompletionItems();
2224

src/autocomplete/ResourcePropertyCompletionProvider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { CommonNodeTypes } from '../context/syntaxtree/utils/TreeSitterTypes';
2828
import { propertyTypesToMarkdown } from '../hover/HoverFormatter';
2929
import { PropertyType, ResourceSchema } from '../schema/ResourceSchema';
3030
import { SchemaRetriever } from '../schema/SchemaRetriever';
31+
import { Measure } from '../telemetry/TelemetryDecorator';
3132
import { getFuzzySearchFunction } from '../utils/FuzzySearchUtil';
3233
import { templatePathToJsonPointerPath } from '../utils/PathUtils';
3334
import { CompletionItemData, ExtendedCompletionItem } from './CompletionFormatter';
@@ -47,6 +48,7 @@ export class ResourcePropertyCompletionProvider implements CompletionProvider {
4748

4849
constructor(private readonly schemaRetriever: SchemaRetriever) {}
4950

51+
@Measure({ name: 'getResourcePropertyCompletions' })
5052
getCompletions(context: Context, _params: CompletionParams): CompletionItem[] | undefined {
5153
// Use unified property completion method for all scenarios
5254
const { completions: propertyCompletions, skipFuzzySearch } = this.getPropertyCompletions(context);

src/autocomplete/ResourceSectionCompletionProvider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { CfnExternal } from '../server/CfnExternal';
66
import { CfnInfraCore } from '../server/CfnInfraCore';
77
import { CfnLspProviders } from '../server/CfnLspProviders';
88
import { LoggerFactory } from '../telemetry/LoggerFactory';
9+
import { Measure } from '../telemetry/TelemetryDecorator';
910
import { CompletionProvider } from './CompletionProvider';
1011
import { ResourceEntityCompletionProvider } from './ResourceEntityCompletionProvider';
1112
import { ResourcePropertyCompletionProvider } from './ResourcePropertyCompletionProvider';
@@ -29,6 +30,7 @@ export class ResourceSectionCompletionProvider implements CompletionProvider {
2930
private readonly resourceProviders = createResourceCompletionProviders(core, external, providers),
3031
) {}
3132

33+
@Measure({ name: 'getResourceSectionCompletions' })
3234
getCompletions(
3335
context: Context,
3436
params: CompletionParams,

src/autocomplete/ResourceTypeCompletionProvider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { CompletionItem, CompletionItemKind, CompletionParams, TextEdit } from 'vscode-languageserver';
22
import { Context } from '../context/Context';
33
import { SchemaRetriever } from '../schema/SchemaRetriever';
4+
import { Measure } from '../telemetry/TelemetryDecorator';
45
import { getFuzzySearchFunction } from '../utils/FuzzySearchUtil';
56
import { CompletionProvider } from './CompletionProvider';
67
import { createCompletionItem, createReplacementRange } from './CompletionUtils';
@@ -10,6 +11,7 @@ export class ResourceTypeCompletionProvider implements CompletionProvider {
1011

1112
constructor(private readonly schemaRetriever: SchemaRetriever) {}
1213

14+
@Measure({ name: 'getResourceTypeCompletions' })
1315
getCompletions(context: Context, _params: CompletionParams): CompletionItem[] | undefined {
1416
const resourceTypeCompletions = this.getResourceTypeCompletions(context);
1517
return this.fuzzySearch(resourceTypeCompletions, context.text);

src/autocomplete/TopLevelSectionCompletionProvider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { SyntaxTreeManager } from '../context/syntaxtree/SyntaxTreeManager';
55
import { DocumentType } from '../document/Document';
66
import { DocumentManager } from '../document/DocumentManager';
77
import { LoggerFactory } from '../telemetry/LoggerFactory';
8+
import { Measure } from '../telemetry/TelemetryDecorator';
89
import { getFuzzySearchFunction } from '../utils/FuzzySearchUtil';
910
import { applySnippetIndentation } from '../utils/IndentationUtils';
1011
import { CompletionFormatter, ExtendedCompletionItem } from './CompletionFormatter';
@@ -84,6 +85,7 @@ ${CompletionFormatter.getIndentPlaceholder(1)}\${1:ConditionName}: $2`,
8485
private readonly documentManager: DocumentManager,
8586
) {}
8687

88+
@Measure({ name: 'getTopLevelSectionCompletions' })
8789
getCompletions(context: Context, params: CompletionParams): CompletionItem[] | undefined {
8890
// Get both regular and snippet completions
8991
const stringCompletions = this.getTopLevelSectionCompletions();

0 commit comments

Comments
 (0)