@@ -126,7 +126,7 @@ export const setupSuggestion = (
126126
127127 const componentProps = findComponentProps ( componentName , projectComponents . value as ComponentMeta [ ] )
128128 const suggestions = componentProps . filter ( prop => typeof attributes [ prop . name ] === 'undefined' ) . map ( ( prop ) => {
129- const insertText = `${ prop . name } ="\${1:${ unwrapQuotes ( prop . default || ' value') } }"`
129+ const insertText = `${ prop . name } ="\${1:${ unwrapQuotes ( prop . default || t ( 'studio.monaco.snippets. value') ) } }"`
130130 return {
131131 label : prop . name ,
132132 filterText : prop . name ,
@@ -162,42 +162,46 @@ function findComponentProps(componentName: string, components: ComponentMeta[])
162162 return component . meta . props || [ ]
163163}
164164
165+ function normalizeText ( str : string ) {
166+ return str . toLowerCase ( ) . normalize ( 'NFD' ) . replace ( / [ \u0300 - \u036F ] / g, '' ) . replace ( ' ' , '-' )
167+ }
168+
165169function getGlobalCompletionItems ( monaco : Monaco , range : IRange , trigger = '/' , t : TFunction ) : CompletionItem [ ] {
166170 return [
167171 {
168172 label : t ( 'studio.monaco.headings.h1' ) ,
169- filterText : trigger + 'heading 1' ,
173+ filterText : trigger + normalizeText ( t ( 'studio.monaco.headings.h1' ) ) ,
170174 detail : '#' ,
171- insertText : '# ${1:title}' ,
175+ insertText : `# \ ${1:${ t ( 'studio.monaco.snippets. title' ) } }` ,
172176 kind : monaco . languages . CompletionItemKind . Function ,
173177 insertTextRules : monaco . languages . CompletionItemInsertTextRule . InsertAsSnippet ,
174178 type : 'block' ,
175179 range,
176180 } ,
177181 {
178182 label : t ( 'studio.monaco.headings.h2' ) ,
179- filterText : trigger + 'heading 2' ,
183+ filterText : trigger + normalizeText ( t ( 'studio.monaco.headings.h2' ) ) ,
180184 detail : '##' ,
181- insertText : ' ## ${1:title}' ,
185+ insertText : ` ## \ ${1:${ t ( 'studio.monaco.snippets. title' ) } }` ,
182186 kind : monaco . languages . CompletionItemKind . Function ,
183187 insertTextRules : monaco . languages . CompletionItemInsertTextRule . InsertAsSnippet ,
184188 type : 'block' ,
185189 range,
186190 } ,
187191 {
188192 label : t ( 'studio.monaco.headings.h3' ) ,
189- filterText : trigger + 'heading 3' ,
193+ filterText : trigger + normalizeText ( t ( 'studio.monaco.headings.h3' ) ) ,
190194 detail : '###' ,
191- insertText : ' ### ${1:title}' ,
195+ insertText : ` ### \ ${1:${ t ( 'studio.monaco.snippets. title' ) } }` ,
192196 kind : monaco . languages . CompletionItemKind . Function ,
193197 insertTextRules : monaco . languages . CompletionItemInsertTextRule . InsertAsSnippet ,
194198 type : 'block' ,
195199 range,
196200 } ,
197201 {
198202 label : t ( 'studio.monaco.styles.bold' ) ,
199- filterText : trigger + ' bold',
200- insertText : '** ${1:title}**' ,
203+ filterText : trigger + normalizeText ( t ( 'studio.monaco.styles. bold') ) ,
204+ insertText : `**\ ${1:${ t ( 'studio.monaco.snippets. title' ) } }**` ,
201205 detail : '**' ,
202206 kind : monaco . languages . CompletionItemKind . Field ,
203207 insertTextRules : monaco . languages . CompletionItemInsertTextRule . InsertAsSnippet ,
@@ -206,8 +210,8 @@ function getGlobalCompletionItems(monaco: Monaco, range: IRange, trigger = '/',
206210 } ,
207211 {
208212 label : t ( 'studio.monaco.styles.italic' ) ,
209- filterText : trigger + ' italic',
210- insertText : '_ ${1:title}_' ,
213+ filterText : trigger + normalizeText ( t ( 'studio.monaco.styles. italic') ) ,
214+ insertText : `_\ ${1:${ t ( 'studio.monaco.snippets. title' ) } }_` ,
211215 detail : '_' ,
212216 kind : monaco . languages . CompletionItemKind . Field ,
213217 insertTextRules : monaco . languages . CompletionItemInsertTextRule . InsertAsSnippet ,
@@ -216,7 +220,7 @@ function getGlobalCompletionItems(monaco: Monaco, range: IRange, trigger = '/',
216220 } ,
217221 {
218222 label : t ( 'studio.monaco.other.emojis' ) ,
219- filterText : trigger + 'emoji' ,
223+ filterText : trigger + normalizeText ( t ( 'studio.monaco.other.emojis' ) ) ,
220224 insertText : ':${1}:' ,
221225 detail : ':' ,
222226 kind : monaco . languages . CompletionItemKind . Field ,
@@ -226,8 +230,8 @@ function getGlobalCompletionItems(monaco: Monaco, range: IRange, trigger = '/',
226230 } ,
227231 {
228232 label : t ( 'studio.monaco.lists.bulleted' ) ,
229- filterText : trigger + ' bulleted-list' ,
230- insertText : '- ${1:Item 1} \n- ${2:Item 2} \n\n${3}' ,
233+ filterText : trigger + normalizeText ( t ( 'studio.monaco.lists. bulleted' ) ) ,
234+ insertText : `- \ ${1:${ t ( 'studio.monaco.snippets.item1' ) } } \n- \ ${2:${ t ( 'studio.monaco.snippets.item2' ) } } \n\n\ ${3}` ,
231235 detail : '-' ,
232236 kind : monaco . languages . CompletionItemKind . Function ,
233237 insertTextRules : monaco . languages . CompletionItemInsertTextRule . InsertAsSnippet ,
@@ -236,8 +240,8 @@ function getGlobalCompletionItems(monaco: Monaco, range: IRange, trigger = '/',
236240 } ,
237241 {
238242 label : t ( 'studio.monaco.lists.numbered' ) ,
239- filterText : trigger + ' numbered-list' ,
240- insertText : ' 1. ${1:Item 1} \n2. ${2:Item 2} \n\n${3}' ,
243+ filterText : trigger + normalizeText ( t ( 'studio.monaco.lists. numbered' ) ) ,
244+ insertText : ` 1. \ ${1:${ t ( 'studio.monaco.snippets.item1' ) } } \n2. \ ${2:${ t ( 'studio.monaco.snippets.item2' ) } } \n\n\ ${3}` ,
241245 detail : '1.' ,
242246 kind : monaco . languages . CompletionItemKind . Function ,
243247 insertTextRules : monaco . languages . CompletionItemInsertTextRule . InsertAsSnippet ,
@@ -246,7 +250,7 @@ function getGlobalCompletionItems(monaco: Monaco, range: IRange, trigger = '/',
246250 } ,
247251 {
248252 label : t ( 'studio.monaco.other.blockquote' ) ,
249- filterText : trigger + ' blockquote',
253+ filterText : trigger + normalizeText ( t ( 'studio.monaco.other. blockquote') ) ,
250254 insertText : '> ${1}\n> ${2}\n\n${3}' ,
251255 detail : '>' ,
252256 kind : monaco . languages . CompletionItemKind . Function ,
@@ -256,8 +260,8 @@ function getGlobalCompletionItems(monaco: Monaco, range: IRange, trigger = '/',
256260 } ,
257261 {
258262 label : t ( 'studio.monaco.other.code' ) ,
259- filterText : trigger + ' code',
260- insertText : '```${1:language}\n${2:code}\n```\n\n${3}' ,
263+ filterText : trigger + normalizeText ( t ( 'studio.monaco.other. code') ) ,
264+ insertText : '```${1:' + t ( 'studio.monaco.snippets. language' ) + ' }\n${2:' + t ( 'studio.monaco.snippets. code' ) + ' }\n```\n\n${3}',
261265 detail : '```' ,
262266 kind : monaco . languages . CompletionItemKind . Function ,
263267 insertTextRules : monaco . languages . CompletionItemInsertTextRule . InsertAsSnippet ,
@@ -266,7 +270,7 @@ function getGlobalCompletionItems(monaco: Monaco, range: IRange, trigger = '/',
266270 } ,
267271 {
268272 label : t ( 'studio.monaco.other.inlineCode' ) ,
269- filterText : trigger + 'code-inline' ,
273+ filterText : trigger + normalizeText ( t ( 'studio.monaco.other.inlineCode' ) ) ,
270274 insertText : '`$1` $2' ,
271275 detail : '`' ,
272276 kind : monaco . languages . CompletionItemKind . Field ,
@@ -276,23 +280,23 @@ function getGlobalCompletionItems(monaco: Monaco, range: IRange, trigger = '/',
276280 } ,
277281 {
278282 label : t ( 'studio.monaco.other.link' ) ,
279- filterText : trigger + ' link',
283+ filterText : trigger + normalizeText ( t ( 'studio.monaco.other. link') ) ,
280284 detail : '[]()' ,
281285 documentation : [
282286 '[Studio](https://content.nuxt.com)' ,
283287 ] . join ( '\n' ) ,
284288 kind : monaco . languages . CompletionItemKind . Field ,
285- insertText : '[ ${1:title}]( ${2:link})' ,
289+ insertText : `[\ ${1:${ t ( 'studio.monaco.snippets. title' ) } }](\ ${2:${ t ( 'studio.monaco.snippets. link' ) } })` ,
286290 insertTextRules : monaco . languages . CompletionItemInsertTextRule . InsertAsSnippet ,
287291 type : 'inline' ,
288292 range,
289293 } ,
290294 {
291295 label : t ( 'studio.monaco.other.image' ) ,
292- filterText : trigger + ' image',
296+ filterText : trigger + normalizeText ( t ( 'studio.monaco.other. image') ) ,
293297 detail : '![]()' ,
294298 kind : monaco . languages . CompletionItemKind . Field ,
295- insertText : '' ,
299+ insertText : ` } })` ,
296300 insertTextRules : monaco . languages . CompletionItemInsertTextRule . InsertAsSnippet ,
297301 type : 'inline' ,
298302 range,
0 commit comments