### Required

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L18-L18)
Do not assign a view instance to a plugin property within `registerView`. This can cause memory leaks. Create and return the view directly.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L24-L24)[\[2\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L31-L31)[\[3\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L77-L77)[\[4\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L91-L91)[\[5\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/rsvp-view.ts#L233-L233)[\[6\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L80-L80)[\[7\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L83-L83)[\[8\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L86-L86)[\[9\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L142-L142)[\[10\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L145-L145)[\[11\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L179-L179)[\[12\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L229-L229)[\[13\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L363-L363)[\[14\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L431-L431)[\[15\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L454-L454)[\[16\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L456-L456)
Use sentence case for UI text.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L25-L25)[\[2\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L33-L33)[\[3\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L44-L48)[\[4\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L63-L67)[\[5\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L94-L98)[\[6\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L156-L156)[\[7\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/rsvp-view.ts#L695-L695)
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/main.ts#L30-L30)
The command ID should not include the plugin ID.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/logger.ts#L16-L16)[\[2\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/logger.ts#L25-L25)[\[3\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/logger.ts#L34-L34)[\[4\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/view-state.ts#L80-L80)[\[5\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/view-state.ts#L80-L80)[\[6\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/view-state.ts#L339-L339)[\[7\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/view-state.ts#L339-L339)
Unexpected any. Specify a different type.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/logger.ts#L18-L18)
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/markdown-parser.ts#L25-L25)[\[2\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/markdown-parser.ts#L28-L28)
Unnecessary escape character: \).

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/markdown-parser.ts#L36-L36)[\[2\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/markdown-parser.ts#L37-L37)[\[3\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/markdown-parser.ts#L39-L39)
Unnecessary escape character: \*.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/rsvp-view.ts#L248-L248)
Async method 'onOpen' has no 'await' expression.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/rsvp-view.ts#L289-L289)
Async method 'onClose' has no 'await' expression.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/rsvp-view.ts#L339-L339)
Promise-returning function provided to property where a void return was expected.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/rsvp-view.ts#L410-L410)
Avoid setting styles directly via `element.style.width`. Use CSS classes for better theming and maintainability.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L52-L73)
Promise returned in function argument where a void return was expected.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L80-L80)[\[2\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L83-L83)[\[3\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L142-L142)[\[4\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L193-L193)[\[5\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L229-L229)[\[6\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L256-L256)[\[7\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L279-L279)[\[8\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L404-L404)[\[9\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L431-L431)[\[10\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/settings.ts#L454-L454)
Use `new Setting(containerEl).setName(...).setHeading()` instead of creating HTML heading elements directly.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/ui-builders.ts#L736-L736)
`ConditionalGroupConfig` is deprecated. Use direct style.display manipulation instead



---

### Optional

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/rsvp-view.ts#L56-L56)
'HeadingContext' is defined but never used.

[\[1\]](https://github.com/inattendu/dashreader/blob/a9389b9d76f088ef937bc97443c41148ef914cda/src/rsvp-view.ts#L56-L56)
'HeadingInfo' is defined but never used.

