koron / gomigemo

Go/Migemo implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2回目以降のmacher.Pattern()でパターン文字列が取得できない

JanFish opened this issue · comments

例えば、以下のようなコードのときに、ふたつめの以降は空文字が表示されます。

m, err := dict.Matcher("ai")
p, err := m.Pattern()
fmt.Println(p)
p, err := m.Pattern()
fmt.Println(p)

pattern.go内のPattern()関数内の最初にある以下の箇所が原因ではないと思います。

if m.patterned {
   return pattern, nil
}

これは下記が正しいのではないでしょうか?

if m.patterned {
   return m.pattern, nil
}

また、上記の変更をしても、MacherOptionsを変更してパターン文字列を取得しても、パターンは変更されません。

m, err := dict.Matcher("ai")
m.SetOptions(emacsMacherOptions)
p, err := m.Pattern()
fmt.Println(p)

m.SetOptions(vimMacherOptions)
p, err := m.Pattern()
fmt.Println(p)

たまたまテストコードを書いているときに発見したので、本来、このような使い方はしないと思うので問題ないのかもしれませんが、報告します。

ありがとうございます。修正しました 🙇

@JanFish 後半の件は、別途 issue を建ててもらえますか?

ごめんなさい。こちらで建てておきます。

@JanFish #9 この内容で相違ないか、念のため確認してください。

修正後のソースを入れて確認しました。無事動作しました。修正ありがとうございました。