Here is a minimal example to replicate the issue:
return {
s("abc", fmt('a{} = "some {} string {}"', { i(1), i(2), i(3) })),
s({
trig = "(\\w)tri",
trigEngine = "ecma",
}, {
t("a_"),
}),
}
First I trigger the abc-snippet. Then I type "tri" for the second snippet and expand that one (either manually or set or by making it an autosnippet). Because "a" is part of the trigger (and the beginning of the parent snippet abc) the tabstops are lost and I can no longer jump into the string. When I replace
a{} = "some {} string {}"
with
local a{} = "some {} string {}"
it works, as now the beginning is not part of the trigger of the second snippet. I know the example seems useless but I have some real usecase (which is not as simple) that would require that to work.
Here is a minimal example to replicate the issue:
First I trigger the abc-snippet. Then I type "tri" for the second snippet and expand that one (either manually or set or by making it an autosnippet). Because "a" is part of the trigger (and the beginning of the parent snippet abc) the tabstops are lost and I can no longer jump into the string. When I replace
with
it works, as now the beginning is not part of the trigger of the second snippet. I know the example seems useless but I have some real usecase (which is not as simple) that would require that to work.