Skip to content

Commit d253581

Browse files
authored
add configuration validation fo gopls (#136)
1 parent a0517fd commit d253581

File tree

5 files changed

+24
-0
lines changed

5 files changed

+24
-0
lines changed

src/services/languages/csharp/languageExtractor.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,8 @@ export class CSharpLanguageExtractor implements ILanguageExtractor
3434
new CSharpSpanExtractor(codeInspector),
3535
];
3636
}
37+
38+
public async validateConfiguration(): Promise<void>{
39+
40+
}
3741
}

src/services/languages/extractors.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,5 @@ export interface ILanguageExtractor {
7575
get methodExtractors(): IMethodExtractor[];
7676
getEndpointExtractors(codeInspector: CodeInspector): IEndpointExtractor[];
7777
getSpanExtractors(codeInspector: CodeInspector): ISpanExtractor[];
78+
validateConfiguration():Promise<void>
7879
}

src/services/languages/go/languageExtractor.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as vscode from 'vscode';
22
import { CodeInspector } from '../../codeInspector';
3+
import { Logger } from '../../logger';
34
import { IEndpointExtractor, ILanguageExtractor, IMethodExtractor, ISpanExtractor } from '../extractors';
45
import { GoMethodExtractor } from './methodExtractor';
56
import { GoSpanExtractor } from './spanExtractor';
@@ -33,4 +34,19 @@ export class GoLanguageExtractor implements ILanguageExtractor
3334
new GoSpanExtractor(codeInspector)
3435
];
3536
}
37+
public async validateConfiguration(): Promise<void>{
38+
const section:any = vscode.workspace.getConfiguration().get("gopls");
39+
if(section !== undefined && section["ui.semanticTokens"]){
40+
return;
41+
}
42+
43+
const extension = vscode.extensions.getExtension(this.requiredExtensionId);
44+
if(extension){
45+
Logger.info(`adding gopls missing configuration: ui.semanticTokens=true`);
46+
await vscode.workspace.getConfiguration().update("gopls", {"ui.semanticTokens": true});
47+
Logger.info(`Starting activating "${extension.id}" extension`);
48+
await extension.activate();
49+
Logger.info(`Finished activating "${extension.id}" extension`);
50+
}
51+
}
3652
}

src/services/languages/python/languageExtractor.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,6 @@ export class PythonLanguageExtractor implements ILanguageExtractor
3535
new PythonSpanExtractor(codeInspector)
3636
];
3737
}
38+
public async validateConfiguration(): Promise<void>{
39+
}
3840
}

src/services/languages/symbolProvider.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,7 @@ export class SymbolProvider
262262

263263

264264
language.requiredExtensionLoaded = true;
265+
await language.validateConfiguration();
265266
return true;
266267
}
267268
}

0 commit comments

Comments
 (0)