Skip to content

Latest commit

 

History

History
113 lines (86 loc) · 2.63 KB

other.md

File metadata and controls

113 lines (86 loc) · 2.63 KB

補完機能

補完機能とは

snippet

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": "ブロックの文言"
  }
}

snippets

"snippet": "microbit.display_text(\"こんにちは!\")",

code

"description": "(こんにちは!)を表示する"

block

その他

こまごまとした仕様?を書きます

argsの取り方

基本的な取り方としては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といった形で問題ありません。