@shopify/theme-language-server-common
Version:
<h1 align="center" style="position: relative;" > <br> <img src="https://github.com/Shopify/theme-check-vscode/blob/main/images/shopify_glyph.png?raw=true" alt="logo" width="141" height="160"> <br> Theme Language Server </h1>
40 lines (34 loc) • 1.21 kB
text/typescript
import { CompletionItemKind, MarkupKind } from 'vscode-json-languageservice';
import { renderTranslation, translationValue } from '../../../../translations';
import { Translations } from '@shopify/theme-check-common';
import { JSONCompletionItem } from 'vscode-json-languageservice/lib/umd/jsonContributions';
export function schemaSettingsPropertyCompletionItems(
parsedSchema: any,
translations: Translations,
): JSONCompletionItem[] {
return parsedSchema.settings
.filter((setting: any) => setting.id)
.map((setting: any) => {
let docValue = '';
if (setting.label) {
if (setting.label.startsWith('t:')) {
const translation = translationValue(setting.label.substring(2), translations);
if (translation) {
docValue = renderTranslation(translation);
}
} else {
docValue = setting.label;
}
}
const completionText = setting.id ? `"${setting.id}"` : '';
return {
kind: CompletionItemKind.Property,
label: completionText,
insertText: completionText,
documentation: {
kind: MarkupKind.Markdown,
value: docValue,
},
};
});
}