extensions/configuration-editing/src/settingsDocumentHelper.ts/SettingsDocument/provideLanguageOverridesCompletionItems
class SettingsDocument:	private provideLanguageOverridesCompletionItems(location: Location, position: vscode.Position): vscode.ProviderResult<vscode.CompletionItem[]> {

		if (location.path.length === 0) {

			let range = this.document.getWordRangeAtPosition(position, /^\s*\[.*]?/) || new vscode.Range(position, position);
			let text = this.document.getText(range);
			if (text && text.trim().startsWith('[')) {
				range = new vscode.Range(new vscode.Position(range.start.line, range.start.character + text.indexOf('[')), range.end);
				return this.provideLanguageCompletionItemsForLanguageOverrides(location, range, language => `"[${language}]"`);
			}

			range = this.document.getWordRangeAtPosition(position) || new vscode.Range(position, position);
			text = this.document.getText(range);
			let snippet = '"[${1:language}]": {\n\t"$0"\n}';

			// Suggestion model word matching includes quotes,
			// hence exclude the starting quote from the snippet and the range
			// ending quote gets replaced
			if (text && text.startsWith('"')) {
				range = new vscode.Range(new vscode.Position(range.start.line, range.start.character + 1), range.end);
				snippet = snippet.substring(1);
			}

			return Promise.resolve([this.newSnippetCompletionItem({
				label: localize('languageSpecificEditorSettings', "Language specific editor settings"),
				documentation: localize('languageSpecificEditorSettingsDescription', "Override editor settings for language"),
				snippet,
				range
			})]);
		}

		if (location.path.length === 1 && location.previousNode && typeof location.previousNode.value === 'string' && location.previousNode.value.startsWith('[')) {
			// Suggestion model word matching includes closed sqaure bracket and ending quote
			// Hence include them in the proposal to replace
			const range = this.document.getWordRangeAtPosition(position) || new vscode.Range(position, position);
			return this.provideLanguageCompletionItemsForLanguageOverrides(location, range, language => `"[${language}]"`);
		}
		return Promise.resolve([]);
	}