mirror of
https://github.com/laurent22/joplin.git
synced 2026-10-25 02:47:28 +00:00
30 lines
2.1 KiB
Markdown
30 lines
2.1 KiB
Markdown
# Joplin Guidelines
|
|
|
|
## Quick Reference
|
|
|
|
- Tabs for indentation
|
|
- Single quotes for strings
|
|
- Proper TypeScript types (avoid `any`)
|
|
- Don't annotate return types or const types when TypeScript can infer them. Annotate only when TypeScript would otherwise infer `any`.
|
|
- Comments should be only with `//` and should not contain jsdoc syntax
|
|
- If you duplicate a substantial block of code, add a comment above it noting the duplication and referencing the original location.
|
|
- When creating Jest tests, there should be only one `describe()` statement in the file.
|
|
- Focus on testing essential behaviour and edge cases — avoid adding tests for every minor detail.
|
|
- Avoid duplicating code in tests; when testing the same logic with different inputs, use `test.each` or shared helpers instead of repeating similar test blocks.
|
|
- Do not make white space changes - do not add unnecessary new lines, or spaces to existing code, or wrap existing code.
|
|
- If you add a new TypeScript file, run `yarn updateIgnored` from the root.
|
|
- When an unknown word is detected by cSpell, handle it as per the specification in `readme/dev/spellcheck.md`
|
|
- To compile TypeScript, use `yarn tsc`. To type-check without emitting files, use `yarn tsc --noEmit`.
|
|
- Default to no comments. Only add one when the why is non-obvious (workaround, hidden constraint, subtle invariant). Never explain what the code does — names handle that. Keep necessary comments to one or two line where possible.
|
|
- SQL queries should only be done from within models (in packages/lib/models).
|
|
- In markdown files, do not hard-wrap paragraphs. Let the renderer wrap lines; only insert newlines for actual paragraph or list breaks.
|
|
|
|
## Styling (desktop app)
|
|
|
|
Use RSCSS + SCSS files for the desktop app, never inline `style={{...}}` or styled-components — see readme/dev/spec/desktop_styling.md. Inline `style` is only for genuinely dynamic per-instance values (computed width, position). Use `var(--joplin-*)` CSS variables for theme colours instead of reading the theme in JS.
|
|
|
|
## Full Documentation
|
|
|
|
- Coding style: [readme/dev/coding_style.md](readme/dev/coding_style.md)
|
|
- Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)
|