#if の3行目以降がインデントされない #1000

Closed
k-takata opened this Issue Jan 2, 2017 · 11 comments

Projects

None yet

2 participants

@k-takata
Member
k-takata commented Jan 2, 2017

質問・報告の内容

C/C++ で #if や #define を書いたとき(= 'cindent' が on のとき)に、\ で行を続けているにもかかわらず 3行目以降がインデントされません。

vim -u NONE -N "+set cindent"

入力: i#if aaa\<CR>bbb\<CR>ccc<ESC>

結果:

#if aaa\
	bbb\
ccc

期待値:

#if aaa\
	bbb\
	ccc

Vimのバージョン

7.4.2367 (Cygwin)
8.0.134 (Win10)

使用している or 関係していそうなプラグイン

なし

@h-east
Member
h-east commented Jan 2, 2017

新年あけましておめでとうございVim。
新春patchです。
https://gist.github.com/h-east/ebac02153db3c4f7cc57dc6b260231cb

make testはALL DONEになりましたが、indent系のテストは少なかった気がする。
皆さん、動作確認をお願いします。

OKならmisc1.c修正部分のwrapを直してtest追加します。

@h-east h-east self-assigned this Jan 2, 2017
@k-takata
Member
k-takata commented Jan 2, 2017

良さそうです。 👍

@h-east
Member
h-east commented Jan 4, 2017 edited

test3.{in,ok} (cindentのold style test)をnew style testに変換しようとしてるんですけど、例えば1つめのcindent対象が約1000行あるんです。それをcall assert_equal(expect, getline(1, '$'))してNGだった場合、

From test_cindent.vim:
Executing Test_cindent()
Executed 1 test
1 FAILED:
Found errors in Test_cindent():
function RunTheTest[13]..Test_cindent line 5: Expected [1000のリストの内容] but got [1000のリストの内容]

とリスト数1000の内容が2つガーッと表示されて全然有益じゃないウザいだけの表示になってしまうのですが、なんかいい方法ないですかね?

@k-takata
Member
k-takata commented Jan 7, 2017

assert_equal() の第3引数にいい感じのメッセージを入れればいいんじゃないでしょうか。

@h-east
Member
h-east commented Jan 7, 2017

diff -ru okファイル outファイル相当の文字列を作って~~ と思ったんですがちょっと面倒いので保留。
とりあえず今回はtest3にテスト追加してpatch投げることにします。←今まさにこの作業をやりかけてました。

@h-east
Member
h-east commented Jan 7, 2017

Old style test(test3)にテストを追加してvim_devに投げました。
https://groups.google.com/d/msg/vim_dev/Ri2kR6UOkeA/KpMrhPjPBQAJ

@h-east
Member
h-east commented Jan 7, 2017

test3をNew style testに置き換える作業は途中の状態で置いてます。春に再始動!?
test3(old style test) convert to test_cindent.vim(new style test) [WIP]
https://gist.github.com/h-east/8e5fb53b928d4ac1ab7e0e9cadcf5f80

@k-takata
Member
k-takata commented Jan 7, 2017

This test might be easier as an old style test.

だそうで。

@h-east
Member
h-east commented Jan 7, 2017

@k-takata assert_equal_unified_diff()的な関数作って~🐈💨

  • リスト専用で
  • 差分があった場合、unified diffな出力をしてくれる
@k-takata
Member
k-takata commented Jan 7, 2017

8.0.0148
https://groups.google.com/d/topic/vim_dev/ujnDZrgfl2o/discussion
ありがとうございました。

差分があった場合、unified diffな出力をしてくれる

Vim自身がdiff機能を持たないといけなくなるじゃないですか~。

@k-takata k-takata closed this Jan 7, 2017
@k-takata k-takata added the xlose/fixed label Jan 7, 2017
@h-east
Member
h-east commented Jan 7, 2017

引数を追加した関数のprototype宣言が消されててあれ?ってなってBram氏に突っ込みを入れたけど、関数本体が使用箇所より先にあるからOKなのか。。
https://groups.google.com/d/msg/vim_dev/ujnDZrgfl2o/ZEH01ObXBQAJ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment