--- @@ instruction_ocm
--[[
說明蝦米各種掛接
--]]
local function init(env)
  env.table_sd_1 = {
        { "    ※ 輸入【項目】每字第一碼（正碼），調出相關符號。", "𝟎" }
      , { "   【表情】【自然】【飲食】【活動】【旅遊】【物品】", "𝟏" }
      , { "   【符號】【國旗】【微笑】【大笑】【冒汗】【喜愛】", "𝟐" }
      , { "   【討厭】【無奈】【哭泣】【冷淡】【驚訝】【生氣】", "𝟑" }
      , { "   【懷疑】【頭像】【人物】【獸面】【貓頭】【怪物】", "𝟒" }
      , { "   【五官】【手勢】【亞裔】【白人】【黑人】【非裔】", "𝟓" }
      , { "   【天氣】【下雪】【天體】【夜空】【地球】【景色】", "𝟔" }
      , { "   【名勝】【月相】【日本】【美國】【法國】【建築】", "𝟕" }
      , { "   【生肖】【娛樂】【遊戲】【運動】【球具】【獎項】", "𝟖" }
      , { "   【獎牌】【食物】【正飯】【午餐】【午飯】【早飯】", "𝟗" }
      , { "【早點】【中餐】【西食】【快餐】【速食】【米飯】", "𝟏𝟎" }
      , { "【捲物】【串物】【甜食】【零食】【飲料】【熱飲】", "𝟏𝟏" }
      , { "【酒精】【酒類】【植物】【水果】【蔬菜】【粗糧】", "𝟏𝟐" }
      , { "【餐具】【花卉】【葉子】【動物】【肉類】【肉品】", "𝟏𝟑" }
      , { "【牲畜】【禽類】【魚圖】【魚類】【家禽】【蟲類】", "𝟏𝟒" }
      , { "【蟲圖】【器官】【血液】【血型】【服裝】【衣物】", "𝟏𝟓" }
      , { "【衣服】【褲子】【眼鏡】【帽子】【包包】【頭髮】", "𝟏𝟔" }
      , { "【膚色】【化妝】【愛情】【兩性】【效果】【宗教】", "𝟏𝟕" }
      , { "【音樂】【工具】【時鐘】【號誌】【圖示】【介面】", "𝟏𝟖" }
      , { "【箭標】【精怪】【指示】【回收】【有害】【通訊】", "𝟏𝟗" }
      , { "【電腦】【工業】【交通】【電子】【武器】【象棋】", "𝟐𝟎" }
      , { "【麻將】【骰子】【撲克】【船隻】【飛機】【汽車】", "𝟐𝟏" }
      , { "【車輛】【公交】【軌道】【火車】【錢財】【金錢】", "𝟐𝟐" }
      , { "【鈔票】【紙鈔】【貨幣】【單位】【數學】【分數】", "𝟐𝟑" }
      , { "【打勾】【星號】【箭頭】【線段】【幾何】【三角】", "𝟐𝟒" }
      , { "【方塊】【圓形】【填色】【單線】【雙線】【星座】", "𝟐𝟓" }
      , { "【易經】【八卦】【卦名】【天干】【地支】【干支】", "𝟐𝟔" }
      , { "【節氣】【月份】【日期】【曜日】【時間】【符碼】", "𝟐𝟕" }
      , { "【標點】【合字】【部首】【偏旁】【筆畫】【倉頡】", "𝟐𝟖" }
      , { "【結構】【拼音】【注音】【聲調】【羅馬】【希臘】", "𝟐𝟗" }
      , { "【俄語】【韓文】【麵包(gn)】", "𝟑𝟎" }
      , { "【幾何圖】【鞋子圖】【電器圖】【節日圖】【佳節圖】", "𝟑𝟏" }
      , { "【甜點圖】【動物圖】【禽類圖】【鳥類圖】【標誌圖】", "𝟑𝟐" }
      , { "【科學圖】【交通圖】【景點圖】【飛行器】【多媒體】", "𝟑𝟑" }
      , { "【愛心圖】【黃種人】【白種人】【拉美裔】【拉丁裔】", "𝟑𝟒" }
      , { "【棕色人】【阿拉伯】【顏色塊】【動物臉】【猴子頭】", "𝟑𝟓" }
      , { "【咧嘴笑】【做運動】【日本菜】【食物捲】【辦公室】", "𝟑𝟔" }
      , { "【警消護】【大自然】【遊樂園】【撲克牌】【西洋棋】", "𝟑𝟕" }
      , { "【樂器圖】【日用品】【單線框】【雙線框】【色塊心】", "𝟑𝟖" }
      , { "【色塊方】【色塊圓】【填色塊】【占星術】【十字架】", "𝟑𝟗" }
      , { "【星座名】【十二宮】【太玄經】【蘇州碼】【標點直】", "𝟒𝟎" }
      , { "【輸入法】【羅馬大】【希臘大】【俄語大】【字母圈】", "𝟒𝟏" }
      , { "【字母括】【字母方】【字母框】【數字圈】【數字括】", "𝟒𝟐" }
      , { "【數字點】【數字標】【漢字圈】【漢字框】【漢字括】", "𝟒𝟑" }
      , { "【韓文圈】【韓文括】【假名圈】【運動女】【運動男】", "𝟒𝟒" }
      , { "【精怪女】【精怪男】【日本年】【假名半(形)】", "𝟒𝟓" }
      , { "【箭頭色(塊)】【數字色(塊)】【漢字色(塊)】", "𝟒𝟔" }
      , { "【IRO(いろは順)】【文化(第一字全碼)】", "𝟒𝟕" }
      , { "【平假名(第一碼全碼)】【片假名(第一碼全碼)】", "𝟒𝟖" }
      , { "【上標(第一字全碼)】【下標(第一字全碼)】", "𝟒𝟗" }
      , { "【猴子表情】【十二生肖】【交通工具】【公共運輸】", "𝟓𝟎" }
      , { "【野生動物】【日式料理】【日本料理】【日本星期】", "𝟓𝟏" }
      , { "【羅馬數字】【數字圈黑】【數字黑圈】【字母圈大】", "𝟓𝟐" }
      , { "【字母括大】【字母黑圈】【字母圈黑】【字母黑方】", "𝟓𝟑" }
      , { "【字母方黑】【字母框黑】【字母黑框】【易經卦名】", "𝟓𝟒" }
      , { "【六十四卦】【六十四卦名】【羅馬數字大】", "𝟓𝟓" }
      , { "【 a 假名】【 i 假名】【 u 假名】【 e 假名】【 o 假名】", "𝟓𝟔" }
      , { "【 k 假名】【 g 假名】【 s 假名】【 z 假名】【 t 假名】", "𝟓𝟕" }
      , { "【 d 假名】【 n 假名】【 h 假名】【 b 假名】【 p 假名】", "𝟓𝟖" }
      , { "【 m 假名】【 y 假名】【 r 假名】【 w 假名】", "𝟓𝟗" }
      , { " ｢圈｣｢框｣｢括｣數字字母：【 0 ~ 10 】【 1-0 ~ 5-0 】【 a ~ z 】", "𝟔𝟎" }
      , { "═══  結束  ═══  ", "𝟔𝟏" }
      -- -- , { "===========  結束  ===========    ", "𝟔𝟏" }
      -- , { "", "𝟔𝟐" }
      -- , { "", "𝟔𝟑" }
      -- , { "", "𝟔𝟒" }
      -- , { "", "𝟔𝟓" }
      -- , { "", "𝟔𝟔" }
      -- , { "", "𝟔𝟕" }
      -- , { "", "𝟔𝟖" }
      -- , { "", "𝟔𝟗" }
      -- , { "", "𝟕𝟎" }
  }
  env.table_sd_2 = {
        { "   〖 a ~ z 〗字母變化      ※ 以下 顏文字：", "𝟘" }
      , { "   〖 1 〗開心 〖 2 〗喜歡 〖 3 〗傷心", "𝟙" }
      , { "   〖 4 〗生氣 〖 5 〗驚訝 〖 6 〗無奈", "𝟚" }
      , { "   〖 7 〗喜     〖 8 〗樂     〖 9 〗怒", "𝟛" }
      , { "   〖 0 〗指示和圖示          〖 - 〗回話", "𝟜" }
      , { "    ═══  結束  ═══  ", "𝟝" }
      -- -- , { "    ===========  結束  ===========    ", "𝟝" }
      , { "", "𝟞" }
      , { "", "𝟟" }
      , { "", "𝟠" }
      , { "", "𝟡" }
      -- , { "", "𝟙𝟘" }
  }
end

-- local function instruction_ocm(input, seg, env)
local function translate(input, seg, env)
  engine = env.engine
  context = engine.context
  caret_pos = context.caret_pos
  -- local check_semicolon = string.match(input, "^;$")
  -- local check_semicolon2 = string.match(input, "^;;$")

  -- if input:find("^;$") then
  -- if check_semicolon and caret_pos == 1 then
  if input == ";" and caret_pos == 1 then
    -- for cand in input:iter() do
    --   yield(cand)
    -- end
    for k, v in ipairs(env.table_sd_1) do
      local cand = Candidate("simp_help", seg.start, seg._end, v[2], " " .. v[1])
      -- cand.preedit = input .. "\t※ 輸入〔項目〕每字第一個注音，調出相關符號。"
      yield(cand)
    end
  end

  -- if input:find("^;;$") then
  -- if check_semicolon2 and caret_pos == 2 then
  if  input == ";;" and caret_pos == 2 then
    for k, v in ipairs(env.table_sd_2) do
      local cand = Candidate("simp_help", seg.start, seg._end, v[2], " " .. v[1])
      -- cand.preedit = input .. "\t※ 輸入【項目】每字第一個注音，調出相關符號。"
      cand.preedit = input .. "\t《EMOJI集》▶"
      yield(cand)
    end
  end

end

-- return instruction_ocm
return {init = init, func = translate}