📌
[Feature #20525] インデントをサポートする %記法や String#dedent メソッドを追加する提案
[Feature #20525] Percent string literal with indentation support or String#dedent
- インデントをサポートする %記法や
String#dedent
メソッドを追加する提案 - 例えば以下のようなヒアドキュメントを書いたときに
ContentSlide(title: "Why Phlex?"){
Markdown <<~MARKDOWN
* Because its fun
* Because its super-de-dooper
MARKDOWN
},
-
Markdown
の名前が重複しているので以下のように{}
で書きたいのがモチベーションみたいですね - 例えば %記法だと以下のような感じでかけて
ContentSlide(title: "Why Phlex?"){
Markdown %~{
# Why do you like markdown?
* Because its fun
* Because its super-de-dooper
}
},
-
String#dedent
だと以下のようにかけるイメージです
ContentSlide(title: "Why Phlex?"){
Markdown %{
# Why do you like markdown?
* Because its fun
* Because its super-de-dooper
}.dedent
},
- これに対して %記法の方は以下のコードと競合するとコメントされていますね
# 以下は現在でも有効な %記法
# ~ から ~ までが文字列として定義される
pp %~{~
# => "{"
- また
<<~"}"
を使う書き方もコメントされていますね
ContentSlide(title: "Why Phlex?"){
Markdown <<~"}"
* Because its fun
* Because its super-de-dooper
}
},
- 個人的には
{}
の方が見栄えはいいんですがヒアドキュメントの識別子をEOS
で一貫しているのでそこまで気にはならないすねえ -
String#dedent
はそれはそれでよさそうな気がしたんですが入れるとしたら<<~
以外のケースでどれだけ利用するケースがあるのか、ってところになりそうですかねー
Discussion