mirror of https://github.com/zmkfirmware/zmk.git
50 lines
1.9 KiB
TypeScript
50 lines
1.9 KiB
TypeScript
import type { Tree } from "web-tree-sitter";
|
|
|
|
import { findDevicetreeNode } from "./parser";
|
|
import { TextEdit } from "./textedit";
|
|
|
|
// Map of { "deprecated path": "replacement name" } for devicetree nodes.
|
|
// Relocating nodes to another place in the tree is not supported.
|
|
const NODES = {
|
|
"/behaviors/behavior_backlight": "bcklight",
|
|
"/behaviors/behavior_caps_word": "caps_word",
|
|
"/behaviors/behavior_ext_power": "extpower",
|
|
"/behaviors/behavior_key_press": "key_press",
|
|
"/behaviors/behavior_key_repeat": "key_repeat",
|
|
"/behaviors/behavior_key_toggle": "key_toggle",
|
|
"/behaviors/behavior_layer_tap": "layer_tap",
|
|
"/behaviors/behavior_mod_tap": "mod_tap",
|
|
"/behaviors/behavior_momentary_layer": "momentary_layer",
|
|
"/behaviors/behavior_none": "none",
|
|
"/behaviors/behavior_outputs": "outputs",
|
|
"/behaviors/behavior_behavior_reset": "sysreset",
|
|
"/behaviors/behavior_reset_dfu": "bootload",
|
|
"/behaviors/behavior_rgb_underglow": "rgb_ug",
|
|
"/behaviors/behavior_sensor_rotate_key_press": "enc_key_press",
|
|
"/behaviors/behavior_sticky_key": "sticky_key",
|
|
"/behaviors/behavior_sticky_layer": "sticky_layer",
|
|
"/behaviors/behavior_to_layer": "to_layer",
|
|
"/behaviors/behavior_toggle_layer": "toggle_layer",
|
|
"/behaviors/behavior_transparent": "transparent",
|
|
"/behaviors/macro_control_mode_tap": "macro_tap",
|
|
"/behaviors/macro_control_mode_press": "macro_press",
|
|
"/behaviors/macro_control_mode_release": "macro_release",
|
|
"/behaviors/macro_control_tap_time": "macro_tap_time",
|
|
"/behaviors/macro_control_wait_time": "macro_wait_time",
|
|
};
|
|
|
|
export function upgradeNodeNames(tree: Tree) {
|
|
const edits: TextEdit[] = [];
|
|
|
|
for (const [path, newName] of Object.entries(NODES)) {
|
|
for (const node of findDevicetreeNode(tree, path)) {
|
|
const name = node.childForFieldName("name");
|
|
if (name) {
|
|
edits.push(TextEdit.fromNode(name, newName));
|
|
}
|
|
}
|
|
}
|
|
|
|
return edits;
|
|
}
|