Open angelozerr opened 1 year ago
Given this template:
{@String[] items} {#for item in items} {i| {/for}
Open completion after {i, completions shows nothing, but LSP traces of completion returns something. I suspect it is a matter of text edit which is not computed correcty of filter text?
If exression is closed {i|} it works.
{i|}
I tested that with vscode and IJ.
Here th LSP trace:
Result: { "isIncomplete": false, "items": [ { "label": "config:integer(propertyName : String) : Object", "kind": 3, "sortText": "Zcconfig:integer(propertyName : String) : Object", "filterText": "config:integer", "insertTextFormat": 2, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "config:integer(${1:propertyName})$0" } }, { "label": "config:property(propertyName : String) : Object", "kind": 3, "sortText": "Zcconfig:property(propertyName : String) : Object", "filterText": "config:property", "insertTextFormat": 2, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "config:property(${1:propertyName})$0" } }, { "label": "item_isLast", "kind": 14, "detail": "`isLast` - true if hasNext == false", "sortText": "Zaitem_isLast", "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "item_isLast" } }, { "label": "str:fmt(ignoredPropertyName : String, format : String, args : Object...) : String", "kind": 3, "sortText": "Zcstr:fmt(ignoredPropertyName : String, format : String, args : Object...) : String", "filterText": "str:fmt", "insertTextFormat": 2, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "str:fmt(${1:ignoredPropertyName}, ${2:format}, ${3:args})$0" } }, { "label": "item_indexParity", "kind": 14, "detail": "`indexParity` - outputs `odd` or `even` based on the zero-based index value", "sortText": "Zaitem_indexParity", "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "item_indexParity" } }, { "label": "item_count", "kind": 14, "detail": "`count` - 1-based index", "sortText": "Zaitem_count", "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "item_count" } }, { "label": "str:fmt(ignoredPropertyName : String, locale : Locale, format : String, args : Object...) : String", "kind": 3, "sortText": "Zcstr:fmt(ignoredPropertyName : String, locale : Locale, format : String, args : Object...) : String", "filterText": "str:fmt", "insertTextFormat": 2, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "str:fmt(${1:ignoredPropertyName}, ${2:locale}, ${3:format}, ${4:args})$0" } }, { "label": "time:format(dateTimeObject : Object, pattern : String, locale : Locale) : String", "kind": 3, "sortText": "Zctime:format(dateTimeObject : Object, pattern : String, locale : Locale) : String", "filterText": "time:format", "insertTextFormat": 2, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "time:format(${1:dateTimeObject}, ${2:pattern}, ${3:locale})$0" } }, { "label": "item_index", "kind": 14, "detail": "`index` - zero-based index", "sortText": "Zaitem_index", "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "item_index" } }, { "label": "config:boolean(propertyName : String) : Object", "kind": 3, "sortText": "Zcconfig:boolean(propertyName : String) : Object", "filterText": "config:boolean", "insertTextFormat": 2, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "config:boolean(${1:propertyName})$0" } }, { "label": "item_even", "kind": 14, "detail": "`even` - true if the zero-based index is even", "sortText": "Zaitem_even", "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "item_even" } }, { "label": "items", "kind": 18, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "items" } }, { "label": "item_hasNext", "kind": 14, "detail": "`hasNext` - true if the iteration has more elements", "sortText": "Zaitem_hasNext", "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "item_hasNext" } }, { "label": "item", "kind": 18, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "item" } }, { "label": "time:format(dateTimeObject : Object, pattern : String) : String", "kind": 3, "sortText": "Zctime:format(dateTimeObject : Object, pattern : String) : String", "filterText": "time:format", "insertTextFormat": 2, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "time:format(${1:dateTimeObject}, ${2:pattern})$0" } }, { "label": "item_isFirst", "kind": 14, "detail": "`isFirst` - true if count == 1", "sortText": "Zaitem_isFirst", "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "item_isFirst" } }, { "label": "inject:vertxRequest", "kind": 5, "sortText": "Zbinject:vertxRequest", "filterText": "inject:vertxRequest", "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "inject:vertxRequest" } }, { "label": "time:format(dateTimeObject : Object, pattern : String, locale : Locale, timeZone : ZoneId) : String", "kind": 3, "sortText": "Zctime:format(dateTimeObject : Object, pattern : String, locale : Locale, timeZone : ZoneId) : String", "filterText": "time:format", "insertTextFormat": 2, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "time:format(${1:dateTimeObject}, ${2:pattern}, ${3:locale}, ${4:timeZone})$0" } }, { "label": "config:*(propertyName : String) : Object", "kind": 3, "sortText": "Zcconfig:*(propertyName : String) : Object", "filterText": "config:*", "insertTextFormat": 2, "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "config:${1:propertyName}$0" } }, { "label": "item_odd", "kind": 14, "detail": "`odd` - true if the zero-based index is odd", "sortText": "Zaitem_odd", "textEdit": { "range": { "start": { "line": 2, "character": 2 }, "end": { "line": 3, "character": 5 } }, "newText": "item_odd" } } ] }
Given this template:
Open completion after {i, completions shows nothing, but LSP traces of completion returns something. I suspect it is a matter of text edit which is not computed correcty of filter text?
If exression is closed
{i|}
it works.I tested that with vscode and IJ.
Here th LSP trace: