### Required

[\[1\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/core/graphGenerator.ts#L461-L461)[\[2\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/core/textTransformer.ts#L182-L182)[\[3\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/core/textTransformer.ts#L224-L224)[\[4\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/core/textTransformer.ts#L260-L260)[\[5\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/core/textTransformer.ts#L357-L357)[\[6\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/core/textTransformer.ts#L441-L441)[\[7\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/core/textTransformer.ts#L642-L642)[\[8\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L70-L70)[\[9\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L149-L149)[\[10\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L337-L337)[\[11\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/context-control-panel.ts#L57-L57)[\[12\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/context-control-panel.ts#L257-L257)[\[13\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/CustomProviderModal.ts#L115-L115)[\[14\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/ModelSelectionModal.ts#L89-L89)[\[15\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/custom-prompt-modal.ts#L67-L67)[\[16\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/custom-prompt-modal.ts#L71-L71)[\[17\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/settings.ts#L78-L78)[\[18\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/settings.ts#L115-L115)[\[19\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/settings.ts#L142-L142)[\[20\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/settings.ts#L165-L165)[\[21\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/settings.ts#L178-L178)[\[22\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/settings.ts#L407-L407)
Use sentence case for UI text.

[\[1\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/core/textTransformer.ts#L2-L2)[\[2\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/editor/suggestion-handler.ts#L2-L2)[\[3\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/editor/suggestion-state.ts#L2-L2)
'@codemirror/state' should be listed in the project's dependencies. Run 'npm i -S @codemirror/state' to add it

[\[1\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/utils.ts#L13-L13)[\[2\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/lib/utils.ts#L33-L33)
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[\[1\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L87-L87)[\[2\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L155-L155)[\[3\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L284-L284)[\[4\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L313-L313)[\[5\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L341-L341)[\[6\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L358-L358)[\[7\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L414-L414)[\[8\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/services/ModelService.ts#L73-L97)[\[9\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/ModelSelectionModal.ts#L49-L49)[\[10\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/custom-prompt-modal.ts#L59-L59)[\[11\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/custom-prompt-modal.ts#L121-L121)
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/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L114-L114)[\[2\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/main.ts#L161-L161)[\[3\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/settings.ts#L99-L99)[\[4\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/settings.ts#L131-L131)
Promise-returning function provided to property where a void return was expected.

[\[1\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/context-control-panel.ts#L370-L385)[\[2\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/ModelSelectionModal.ts#L271-L275)
Promise returned in function argument where a void return was expected.

[\[1\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/ModelSelectionModal.ts#L119-L119)
Avoid setting styles directly via `element.style.setProperty`. Use CSS classes for better theming and maintainability.

[\[1\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/custom-prompt-modal.ts#L78-L78)
Async arrow function has no 'await' expression.

[\[1\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/single-input-modal.ts#L49-L49)
This assertion is unnecessary since it does not change the type of the expression.



---

### Optional

[\[1\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/services/ModelService.ts#L40-L40)[\[2\]](https://github.com/samwega/obsidian-wordsmith/blob/8c0bc0752d8bdc1f46e229ccd9bc0fcba65742c9/src/ui/modals/CustomProviderModal.ts#L171-L171)
'_error' is defined but never used.

