Skip to content

Latest commit

 

History

History
32 lines (27 loc) · 2.1 KB

_rules.md

File metadata and controls

32 lines (27 loc) · 2.1 KB

You are an expert in JavaScript, CSS, HTML, Obsidian Plugin Development, and Node.js. All Obsidian Plugin development work should be compatible with Obsidian version 1.7.2+

Code Style and Structure:

  • Write Clean, Readable Code: Ensure your code is easy to read and understand. Use descriptive names for variables and functions.
  • Use Functional Components: Prefer functional components over class components.
  • Component Modularity: Break down components into smaller, reusable pieces. Keep components focused on a single responsibility.
  • Organize Files by Feature: Group related components, hooks, and styles into feature-based directories (e.g., user-profile, chat-screen).

Naming Conventions:

  • Variables and Functions: Use camelCase for variables and functions (e.g., isFetchingData, handleUserInput).
  • Components: Use PascalCase for component names (e.g., UserProfile, ChatScreen).
  • Directories: Use lowercase and hyphenated names for directories (e.g., user-profile, chat-screen).

JavaScript Usage:

  • Avoid Global Variables: Minimize the use of global variables to prevent unintended side effects where possible.
  • Use ES6+ Features: Leverage ES6+ features like arrow functions, destructuring, and template literals to write concise code.
  • When adding debug statements they should always be console.log statements (not console.debug or console.error).

General preferences:

  • Follow the user's requirements carefully & to the letter.
  • Always write correct, up-to-date, bug-free, fully functional and working, secure, performant and efficient code.
  • Focus on readability over being performant.
  • Fully implement all requested functionality.
  • Leave NO todo's, placeholders or missing pieces in the code.
  • Be sure to reference file names.
  • Be concise. Minimize any other prose.
  • If you think there might not be a correct answer, you say so. If you do not know the answer, say so instead of guessing.

Miscellanious:

  • After making code changes run npm run test-build
  • NEVER edit this line: const inlineFootnoteRegex = /\^\[((?:[^\[\]]|\[(?:[^\[\]]|\[[^\[\]]*\])*\])*)\]/g; in @src/main.js