hchunhui / librime-lua

Extending RIME with Lua scripts
BSD 3-Clause "New" or "Revised" License
357 stars 43 forks source link

Wrap Translation::Peek() and Translation::Next() #352

Open ksqsf opened 5 months ago

ksqsf commented 5 months ago

有的时候只需要简单地查看前一两个候选,直接使用 Peek() 和 Next() 会比 iter() 方便一点。

shewer commented 5 months ago

272

ksqsf commented 5 months ago

i see. 不过我不太赞同「有了 iter 就不要其他接口」。比如想抛弃 sentence 的时候,如果有 peek,我可以保留其他代码,而不用引入别的代码。

if tran:peek() and tran:peek().type == "sentence" then
  tran:next()
end

-- other logic
yield(cand1)
yield(cand2)
--

for cand in tran:iter() do
  yield(cand)
end