ruby タブでコードを補完してくれる機能
メソッドの簡単な説明がついている
smt-gui/src/containers/ruby-tab/
にsample-snippets.json
を作成します。
{
"command0": {
"snippet": "puts \"command0\"",
"description": "command0 と表示"
},
"command1": {
"snippet": "puts (command1, \"hello\", 0)",
"description": "command1 (hello) (0) を表示"
}
}
smt-gui/src/containers/ruby-tab/snippets-completer.js
に内容を追加します。
//略
import SampleSnippets from "./sample-snippets.json";
//略
const snippetsList = [
MotionSnippets,
LooksSnippets,
SoundSnippets,
EventsSnippets,
ControlSnippets,
SensingSnippets,
OperatorsSnippets,
VariablesSnippets,
ProcedureSnippets,
MusicSnippets,
PenSnippets,
VideoSensingSnippets,
TextToSpeechSnippets,
TranslateSnippets,
MicrobitSnippets,
MeshSnippets,
SmalrubotS1Snippets,
MicrobitMoreSnippets,
SampleSnippets, //追加
];
書く内容は以下のようになる
{
"メソッド名": {
"snippet": "簡単なメソッドの例",
"description": "ブロックの文言"
}
}
"snippet": "microbit.display_text(\"こんにちは!\")",
"description": "(こんにちは!)を表示する"
こまごまとした仕様?を書きます
基本的な取り方としてはargs[0]
のように取ります。
swap(num1, num2);
というメソッドがあった場合、
1 つ目の引数を取る場合はargs[0]
となります。
2 つ目の引数を取る場合はargs[1]
となります。
swap(first: num1, second: num2, third: num3)
というメソッドがあった場合、
1 つ目の引数を取る場合はargs[0].get('sym:first')
となります。
2 つ目の引数を取る場合はargs[0].get('sym:second')
となります。
3 つ目の引数を取る場合はargs[0].get('sym:third')
となります。
ハッシュは 1つの変数としてカウントされます
また引数の値を読み取る場合はargs[0].value
という風に取ります。
引数に入っているのが値かブロックか分からないため、基本的に型の確認や引数を渡す際はargs[0]
といった形で渡しましょう。
ただブロックを受け入れない場合などはargs[0].value
といった形で問題ありません。