vim-jp / ctags

Use https://ctags.io instead (This was fork of http://ctags.sourceforge.net/)
GNU General Public License v2.0
26 stars 7 forks source link

jcodeについて #11

Closed mattn closed 9 years ago

mattn commented 10 years ago

これは質問なのですが、jcode の意味ってソースコードのエンコーディングを表す物と思って良いですか?

現状はマルチバイト文字を意識して後続バイトをスキップする処理が入っています。

/*あいうえお*/

みたいなコメントがあったとしてこの*/をマルチバイトの後続バイトと間違わない様にする為の物だと思います。現状 ascii/sjis/euc/utf8 をサポートしてますが、Shift_JIS の後続バイトは最少値でも 0x40、EUC だと 0xA1、UTF-8 だと 0x80 になります。 つまりコメントの終了である */ を見つけたり、改行コードを判定するならば Shift_JIS, EUC, UTF-8 の区別は必要ないと思っています。言い換えるなら jcode が無くてもコメントの終了は判定出来る、という意味です。何か問題があっての事でしょうか?

あと個人的には _TAG_FILE_ENCODING は utf-8 決め打ちで、Shift_JIS で書かれたソースファイルのコメントを utf-8 変換して tags に書き込む、というのがいいのかなーと思いますがどうでしょうか?

h-east commented 10 years ago

何か問題があっての事でしょうか?

特にないです。 jcodeの値を参照してTAGFILE_ENCODINGに書き込むようにしたのは結構後ですしね。

あと個人的には TAGFILE_ENCODING は utf-8 決め打ちで、Shift_JIS で書かれたソースファイルのコメントを utf-8 変換して tags に書き込む、というのがいいのかなーと思いますがどうでしょうか?

複数ファイル食わせた場合に複数の文字コードが混在している場合は言われているように出力文字コードに変換する処理を入れるべきだと思います。 ただ、単一文字コードの場合は無変換で出力したほうが処理時間的には良いですね。 オプションで指定できるようになればBESTかな。

mattn commented 10 years ago

オプションで指定できるようになればBESTかな。

okです。数日前からネタ仕込んでました。

h-east commented 10 years ago

おぉ!期待してます!

mattn commented 9 years ago

すいません。タグ付け間違えた上に連打してもた。

mattn commented 9 years ago

こちらは iconv 対応と統合したいと思います。