cargo-snippet icon indicating copy to clipboard operation
cargo-snippet copied to clipboard

マクロの定義と使用部分が一行ですべて出力されてしまう

Open henoc opened this issue 6 years ago • 2 comments

マクロをsnippetとして定義したりsnippet内で使用したりするとスニペット出力時に改行が無くなってしまうようなのですが、これは設定で変更したりできますか?

henoc avatar May 06 '19 04:05 henoc

cargo-snippetは、

  1. synでコードをパースする
  • この時点でコードのインデントなどの情報は失われる
  1. (synのAST上でいろいろ処理したあと)ASTからインデントのないトークン列を出してrustfmtで整形してスニペットを出力する

という感じで動いているのですが、rustfmtが対応していないのでマクロの定義などの出力がトークン列そのままになってしまっています。

https://github.com/rust-lang/rustfmt/issues/8

なので現状rustfmtの対応待ちで簡単な解決策はとくにありません :cry:

hatoo avatar May 06 '19 08:05 hatoo

なるほど、rustfmtがそのまま出力するからなんですね、、一旦構文木に直すことを考えると確かにそうでした ありがとうございます🙇

henoc avatar May 06 '19 08:05 henoc