zmk/docs/src/keymap-upgrade/behaviors.ts

28 lines
718 B
TypeScript

import type { Tree } from "web-tree-sitter";
import { Devicetree, findCapture } from "./parser";
import { TextEdit, getUpgradeEdits } from "./textedit";
// Map of { "deprecated": "replacement" } behavior names (not including "&" prefixes).
const BEHAVIORS = {
cp: "kp",
inc_dec_cp: "inc_dec_kp",
reset: "sys_reset",
};
export function upgradeBehaviors(tree: Tree) {
const edits: TextEdit[] = [];
const query = Devicetree.query("(reference label: (identifier) @ref)");
const matches = query.matches(tree.rootNode);
for (const { captures } of matches) {
const node = findCapture("ref", captures);
if (node) {
edits.push(...getUpgradeEdits(node, BEHAVIORS));
}
}
return edits;
}