mirror of https://github.com/zmkfirmware/zmk.git
28 lines
718 B
TypeScript
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;
|
|
}
|