UNPKG

eslint-plugin-obsidianmd

Version:

Validates guidelines for Obsidian plugins

54 lines (53 loc) 1.7 kB
import { ESLintUtils } from "@typescript-eslint/utils"; const ruleCreator = ESLintUtils.RuleCreator((name) => `https://github.com/obsidianmd/eslint-plugin/blob/master/docs/rules/${name}.md`); const sampleNames = [ "MyPlugin", "MyPluginSettings", "SampleSettingTab", "SampleModal", "mySetting", ]; export default ruleCreator({ name: "sample-names", meta: { docs: { description: "Rename sample plugin class names", url: "https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines#Rename+placeholder+class+names", }, type: "problem", messages: { rename: "Rename the sample classes.", }, schema: [], }, defaultOptions: [], create(context) { return { TSInterfaceDeclaration(node) { if (sampleNames.includes(node.id.name)) { context.report({ node: node.id, messageId: "rename", }); } }, ClassDeclaration(node) { if (node.id && sampleNames.includes(node.id.name)) { context.report({ node: node.id, messageId: "rename", }); } }, PropertySignature(node) { if (node.key.type === "Identifier" && sampleNames.includes(node.key.name)) { context.report({ node: node.key, messageId: "rename", }); } }, }; }, });