Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/containers/ruby-tab/control-snippets.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,27 @@
"description": "(1) 秒待つ"
},
"times": {
"snippet": "${1:10}.times do\n${2}\nend\n",
"snippet": "${1:10}.times do\n\t${2}\nend",
"description": "(10) 回繰り返す"
},
"loop": {
"snippet": "loop do\n${1}\nend\n",
"snippet": "loop do\n\t${1}\nend",
"description": "ずっと"
},
"if": {
"snippet": "if ${1:false}\n${2}\nend\n",
"snippet": "if ${1:false}\n\t${2}\nend",
"description": "もし < > なら"
},
"if-else": {
"snippet": "if ${1:false}\n${2}\nelse\n${3}\nend\n",
"snippet": "if ${1:false}\n\t${2}\nelse\n\t${3}\nend",
"description": "もし < > なら、でなければ"
},
"wait-until": {
"snippet": "wait until ${1:false}",
"description": "< > まで待つ"
},
"until": {
"snippet": "until ${1:false}\n${2}\nend\n",
"snippet": "until ${1:false}\n\t${2}\nend",
"description": "< > まで繰り返す"
},
"stop-all": {
Expand All @@ -40,7 +40,7 @@
"description": "[スプライトの他のスクリプトを止める▼]"
},
"when_start_as_a_clone": {
"snippet": "when_start_as_a_clone do\n${1}\nend\n",
"snippet": "when_start_as_a_clone do\n\t${1}\nend",
"description": "クローンされたとき"
},
"create_clone": {
Expand Down
12 changes: 6 additions & 6 deletions src/containers/ruby-tab/events-snippets.json
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
{
"when_flag_clicked": {
"snippet": "when_flag_clicked do\n${1}\nend\n",
"snippet": "when_flag_clicked do\n\t${1}\nend",
"description": "旗が押されたとき"
},
"when_key_pressed": {
"snippet": "when_key_pressed(\"${1:space}\") do\n${2}\nend\n",
"snippet": "when_key_pressed(\"${1:space}\") do\n\t${2}\nend",
"description": "[スペース▼] キーが押されたとき"
},
"when_clicked": {
"snippet": "when_clicked do\n${1}\nend\n",
"snippet": "when_clicked do\n\t${1}\nend",
"description": "このスプライトが押されたとき"
},
"when_backdrop_switches": {
"snippet": "when_backdrop_switches(\"${1:背景1}\") do\n${2}\nend\n",
"snippet": "when_backdrop_switches(\"${1:背景1}\") do\n\t${2}\nend",
"description": "背景が [背景1▼] になったとき"
},
"when_greater_than": {
"snippet": "when_greater_than(\"${1:loudness}\", ${2:10}) do\n${3}\nend\n",
"snippet": "when_greater_than(\"${1:loudness}\", ${2:10}) do\n\t${3}\nend",
"description": "[音量▼] > (10) のとき"
},
"when_receive": {
"snippet": "when_receive(\"${1:メッセージ1}\") do\n${2}\nend\n",
"snippet": "when_receive(\"${1:メッセージ1}\") do\n\t${2}\nend",
"description": "[メッセージ1▼] を受け取ったとき"
},
"broadcast": {
Expand Down
122 changes: 121 additions & 1 deletion src/containers/ruby-tab/microbit-more-snippets.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,126 @@
{
"microbit_more.when_microbit": {
"snippet": "microbit_more.when_microbit(\"${1:connected}\") do\n\t${2}\nend",
"description": "micro:bit と [つながった▼] とき"
},
"microbit_more.when_button_is": {
"snippet": "microbit_more.when_button_is(\"${1:A}\", \"${2:down}\") do\n${3}\nend\n",
"snippet": "microbit_more.when_button_is(\"${1:A}\", \"${2:down}\") do\n\t${3}\nend",
"description": "ボタン [A▼] が [押された▼] とき"
},
"microbit_more.button_pressed?": {
"snippet": "microbit_more.button_pressed?(\"${1:A}\")",
"description": "ボタン [A▼] が押されている"
},
"microbit_more.when_pin_is": {
"snippet": "microbit_more.when_pin_is(\"${1:LOGO}\", \"${2:touched}\") do\n\t${3}\nend",
"description": "ピン [ロゴ▼] が [タッチされた▼] とき"
},
"microbit_more.pin_is_touched?": {
"snippet": "microbit_more.pin_is_touched?(\"${1:LOGO}\")",
"description": "ピン [ログ▼] がタッチされている"
},
"microbit_more.when": {
"snippet": "microbit_more.when(\"${1:shake}\") do\n\t${2}\nend",
"description": "[ゆさぶられた▼] とき"
},
"microbit_more.display_pattern": {
"snippet": "microbit_more.display_pattern(\n\t\"${1:.1.1.}\",\n\t\"${2:1.1.1}\",\n\t\"${3:1...1}\",\n\t\"${4:.1.1.}\",\n\t\"${5:..1..}\"\n)",
"description": "パターン (♡▼) を表示する"
},
"microbit_more.display_text_delay": {
"snippet": "microbit_more.display_text_delay(\"${1:Hello!}\", ${2:120})",
"description": "文字 (Hello!) を (120) ミリ秒間隔で流す"
},
"microbit_more.clear_display": {
"snippet": "microbit_more.clear_display",
"description": "画面を消す"
},
"microbit_more.light_intensity": {
"snippet": "microbit_more.light_intensity",
"description": "明るさ"
},
"microbit_more.temperature": {
"snippet": "microbit_more.temperature",
"description": "温度"
},
"microbit_more.angle_with_north": {
"snippet": "microbit_more.angle_with_north",
"description": "北からの角度"
},
"microbit_more.pitch": {
"snippet": "microbit_more.pitch",
"description": "ピッチ"
},
"microbit_more.roll": {
"snippet": "microbit_more.roll",
"description": "ロール"
},
"microbit_more.sound_level": {
"snippet": "microbit_more.sound_level",
"description": "音の大きさ"
},
"microbit_more.magnetic_force": {
"snippet": "microbit_more.magnetic_force(\"${1:absolute}\")",
"description": "磁力 [大きさ▼]"
},
"microbit_more.acceleration": {
"snippet": "microbit_more.acceleration(\"${1:x}\")",
"description": "加速度 [x▼]"
},
"microbit_more.analog_value": {
"snippet": "microbit_more.analog_value(\"${1:P0}\")",
"description": "ピン [P0▼] のアナログレベル"
},
"microbit_more.set_pin_to_input_pull": {
"snippet": "microbit_more.set_pin_to_input_pull(\"P0\", \"up\")",
"description": "ピン [P0▼] を [プルアップ▼] 入力にする"
},
"microbit_more.is_pin_high?": {
"snippet": "microbit_more.is_pin_high?(\"${1:P0}\")",
"description": "ピン [P0▼] がハイである"
},
"microbit_more.set_digital": {
"snippet": "microbit_more.set_digital(\"${1:P0}\", \"${2:Low}\")",
"description": "ピン [P0▼] をデジタル出力 [ロー▼] にする"
},
"microbit_more.set_analog": {
"snippet": "microbit_more.set_analog(\"${1:P0}\", ${2:0})",
"description": "ピン [P0▼] をアナログ出力 [LEVEL] %にする"
},
"microbit_more.set_servo": {
"snippet": "microbit_more.set_servo(\"${1:P0}\", ${2:0})",
"description": "ピン [P0▼] をサーボ (0) 度にする"
},
"microbit_more.play_tone": {
"snippet": "microbit_more.play_tone(${1:440}, ${2:100})",
"description": "(440) Hzの音を (100) %の大きさで鳴らす"
},
"microbit_more.stop_tone": {
"snippet": "microbit_more.stop_tone",
"description": "音を止める"
},
"microbit_more.listen_event_on": {
"snippet": "microbit_more.listen_event_on(\"${1:none}\", \"${2:P0}\")",
"description": "ピン [P0▼] の [イベントを受けない▼]"
},
"microbit_more.when_catch_at_pin": {
"snippet": "microbit_more.when_catch_at_pin(\"${1:low pulse}\", \"${2:P0}\") do\n\t${3}\nend",
"description": "ピン [P0▼] で [ローパルス▼] イベントが起きたとき"
},
"microbit_more.value_of": {
"snippet": "microbit_more.value_of(\"${1:low pulse}\", \"${2:P0}\")",
"description": "ピン [P0▼] の [ローパルスの期間▼]"
},
"microbit_more.when_data_received_from_microbit": {
"snippet": "microbit_more.when_data_received_from_microbit(\"${1:label-01}\") do\n\t${2}\nend",
"description": "micro:bit からラベル (label-01) のデータを受け取ったとき"
},
"microbit_more.data": {
"snippet": "microbit_more.data[\"${1:label-01}\"]",
"description": "ラベル (label-01) のデータ"
},
"microbit_more.send_data_to_microbit": {
"snippet": "microbit_more.send_data_to_microbit(\"${1:data}\", \"${2:label-01}\")",
"description": "micro:bit へデータ (data) にラベル (label-01) を付けて送る"
}
}
10 changes: 5 additions & 5 deletions src/containers/ruby-tab/microbit-snippets.json
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
{
"microbit.when_button_pressed": {
"snippet": "microbit.when_button_pressed(\"${1:A}\") do\n${2}\nend\n",
"snippet": "microbit.when_button_pressed(\"${1:A}\") do\n\t${2}\nend",
"description": "ボタン (A▼) が押されたとき"
},
"microbit.button_pressed?": {
"snippet": "microbit.button_pressed?(\"${1:A}\")",
"description": "ボタン (A▼) が押された"
},
"microbit.when": {
"snippet": "microbit.when(\"${1:moved}\") do\n${2}\nend\n",
"snippet": "microbit.when(\"${1:moved}\") do\n\t${2}\nend",
"description": "(動いた▼) とき"
},
"microbit.display_text": {
"snippet": "microbit.display_text(\"${1:こんにちは!}\")",
"description": "(こんにちは!) を表示する"
},
"microbit.display": {
"snippet": "microbit.display(\n \"${1:.1.1.}\",\n \"${2:1.1.1}\",\n \"${3:1...1}\",\n \"${4:.1.1.}\",\n \"${5:..1..}\"\n)\n",
"snippet": "microbit.display(\n \"${1:.1.1.}\",\n \"${2:1.1.1}\",\n \"${3:1...1}\",\n \"${4:.1.1.}\",\n \"${5:..1..}\"\n)",
"description": "(♡▼) を表示する"
},
"microbit.when_tilted": {
"snippet": "microbit.when_tilted(\"${1:any}\") do\n${2}\nend\n",
"snippet": "microbit.when_tilted(\"${1:any}\") do\n\t${2}\nend",
"description": "(どれかの向き▼) に傾いたとき"
},
"microbit.tilted?": {
Expand All @@ -32,7 +32,7 @@
"description": "(前▼) 方向の傾き"
},
"microbit.when_pin_connected": {
"snippet": "microbit.when_pin_connected(${1:0}) do\n${2}\nend\n",
"snippet": "microbit.when_pin_connected(${1:0}) do\n\t${2}\nend",
"description": "ピン (0▼) がつながったとき"
}
}
2 changes: 1 addition & 1 deletion src/containers/ruby-tab/procedure-snippets.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"def": {
"snippet": "def self.${1:ブロック名}(${2:number_or_text})\n${3}\nend\n",
"snippet": "def self.${1:ブロック名}(${2:number_or_text})\n\t${3}\nend",
"description": "定義 ブロック名 (number_or_text)"
}
}
2 changes: 1 addition & 1 deletion src/containers/ruby-tab/video-sensing-snippets.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"video_sensing.when_video_motion>": {
"snippet": "video_sensing.when_video_motion_greater_than(${1:10}) do\n${2}\nend\n",
"snippet": "video_sensing.when_video_motion_greater_than(${1:10}) do\n\t${2}\nend",
"description": "ビデオモーション > (10) のとき"
},
"video_sensing.video": {
Expand Down
5 changes: 3 additions & 2 deletions src/lib/ruby-generator/microbit_more.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,9 @@ export default function (Generator) {
return ['microbit_more.sound_level', Generator.ORDER_FUNCTION_CALL];
};

Generator.microbitMore_getMagneticForce = function () {
return ['microbit_more.magnetic_force', Generator.ORDER_FUNCTION_CALL];
Generator.microbitMore_getMagneticForce = function (block) {
const axis = Generator.quote_(Generator.getFieldValue(block, 'AXIS', 'absolute'));
return [`microbit_more.magnetic_force(${axis})`, Generator.ORDER_FUNCTION_CALL];
};

Generator.microbitMore_getAcceleration = function (block) {
Expand Down
17 changes: 14 additions & 3 deletions src/lib/ruby-to-blocks-converter/microbit_more.js
Original file line number Diff line number Diff line change
Expand Up @@ -311,10 +311,21 @@ const MicrobitMoreConverter = {
return converter.changeRubyExpressionBlock(receiver, 'microbitMore_getSoundLevel', 'value');
});

converter.registerCallMethod(MicrobitMore, 'magnetic_force', 0, params => {
const {receiver} = params;
converter.registerCallMethod(MicrobitMore, 'magnetic_force', 1, params => {
const {receiver, args} = params;

return converter.changeRubyExpressionBlock(receiver, 'microbitMore_getMagneticForce', 'value');
if (converter.isString(args[0])) {
const index = AccelerationMenu.indexOf(args[0].toString().toLowerCase());
if (index < 0) return null;

args[0] = new Primitive('str', AccelerationMenu[index], args[0].node);
} else {
return null;
}

const block = converter.changeRubyExpressionBlock(receiver, 'microbitMore_getMagneticForce', 'value');
converter.addField(block, 'AXIS', args[0]);
return block;
});

converter.registerCallMethod(MicrobitMore, 'acceleration', 1, params => {
Expand Down
4 changes: 3 additions & 1 deletion test/integration/ruby-tab/extension_microbit_more.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,9 @@ describe('Ruby Tab: Microbit More v2 extension blocks', () => {

microbit_more.sound_level

microbit_more.magnetic_force
microbit_more.magnetic_force("absolute")

microbit_more.magnetic_force("x")

microbit_more.acceleration("x")

Expand Down