+ {markdown.split('\n').filter(line => line.trim().length > 0).map((line, index) => {
+ const key = `${index}-${line}`;
+ if (line.startsWith('## ')) return
{line.slice(3)}
;
+ if (line.startsWith('# ')) return
{line.slice(2)}
;
+ if (line.startsWith('- ')) return
• {line.slice(2)}
;
+ return
{line}
;
+ })}
+
+);
+
+const sampleIssues: MarkdownSuggestion[] = [
+ { id: '101', insertText: 'example/project#101', label: 'Add sample export', detail: 'example/project#101', annotation: 'Issue' },
+ { id: '102', insertText: 'example/project#102', label: 'Fix sample import', detail: 'example/project#102', annotation: 'Pull request' },
+ { id: '103', insertText: 'example/project#103', label: 'Document sample settings', detail: 'example/project#103', annotation: 'Issue' },
+];
+
+const issueCompletion: MarkdownCompletion = {
+ trigger: '#',
+ allowSpaces: true,
+ label: 'Issues and pull requests',
+ suggest: query =>
+ new Promise(resolve =>
+ setTimeout(
+ () => resolve(sampleIssues.filter(issue => `${issue.id} ${issue.label}`.toLowerCase().includes(query.toLowerCase()))),
+ 100,
+ ),
+ ),
+};
+
+const Editor = (props: Omit