From f87299f1b7512ac06e96c77eeb22459389573ada Mon Sep 17 00:00:00 2001 From: Pascal Kuthe Date: Mon, 13 Mar 2023 19:30:58 +0100 Subject: allow empty placeholders --- helix-lsp/src/snippet.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'helix-lsp/src') diff --git a/helix-lsp/src/snippet.rs b/helix-lsp/src/snippet.rs index f64f29f2..13e7609f 100644 --- a/helix-lsp/src/snippet.rs +++ b/helix-lsp/src/snippet.rs @@ -336,7 +336,12 @@ mod parser { "${", digit(), ":", - one_or_more(anything(TEXT_ESCAPE_CHARS)), + // according to the grammar there is just a single anything here. + // However in the procese it is explained that placeholders can be nested + // the example there contains both a placeholder text and a nested placeholder + // which indicates a list. Looking at the VSCode sourcecode, the placeholder + // is indeed parsed as zero_or_more so the grammar is simply incorrect here + zero_or_more(anything(TEXT_ESCAPE_CHARS)), "}" ), |seq| SnippetElement::Placeholder { -- cgit v1.2.3-70-g09d2