### Required

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/eslint.config.js#L1-L1)
'@eslint/js' should be listed in the project's dependencies. Run 'npm i -S @eslint/js' to add it

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/TreeCacheManager.ts#L41-L41)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/TreeCacheManager.ts#L70-L70)[\[3\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/TreeCacheManager.ts#L85-L85)[\[4\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/TreeCacheManager.ts#L104-L104)
Expected the Promise rejection reason to be an Error.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/TreeRenderUtils.ts#L49-L49)
Static async method 'renderFromCache' has no 'await' expression.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/VirtualTreeCore.ts#L85-L85)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/misc/measure.ts#L38-L38)[\[3\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/ui/UIUtils.ts#L20-L20)
Avoid setting styles directly via `element.style.height`. Use CSS classes for better theming and maintainability.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/VirtualTreeManager.ts#L56-L56)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/VirtualTreeManager.ts#L204-L204)[\[3\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L84-L84)[\[4\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L93-L93)[\[5\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L103-L103)[\[6\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L114-L114)[\[7\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L128-L128)[\[8\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L167-L167)[\[9\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L183-L183)[\[10\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L199-L199)[\[11\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L227-L227)[\[12\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L238-L238)[\[13\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L337-L337)[\[14\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/file/FileUtils.ts#L119-L119)[\[15\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/rename/RenameDialogUIUtils.ts#L154-L154)[\[16\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/components/PluginMainPanel.ts#L171-L173)[\[17\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/components/PluginMainPanel.ts#L172-L172)[\[18\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/components/PluginMainPanel.ts#L176-L178)[\[19\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/components/PluginMainPanel.ts#L177-L177)[\[20\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/components/PluginMainPanel.ts#L226-L226)[\[21\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/misc/FileOperations.ts#L47-L47)[\[22\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/misc/FileOperations.ts#L95-L95)[\[23\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/RenameDialog.ts#L97-L97)[\[24\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/row/rowEvents.ts#L37-L37)[\[25\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/row/rowEvents.ts#L41-L41)[\[26\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/row/rowEvents.ts#L234-L234)
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/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L4-L4)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L7-L7)[\[3\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L8-L8)[\[4\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L9-L9)[\[5\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L10-L10)[\[6\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L11-L11)[\[7\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L12-L12)[\[8\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L13-L13)[\[9\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L16-L16)[\[10\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L17-L17)[\[11\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L37-L37)[\[12\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L47-L47)[\[13\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L50-L50)[\[14\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L51-L51)[\[15\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L64-L64)[\[16\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L74-L74)[\[17\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L76-L76)[\[18\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L77-L77)[\[19\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L97-L97)[\[20\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L146-L146)[\[21\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L147-L147)[\[22\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L148-L148)[\[23\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L149-L149)[\[24\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/i18n/en.ts#L160-L160)[\[25\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L90-L90)[\[26\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/settings/SchemaSettings.ts#L131-L131)
Use sentence case for UI text.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L78-L78)
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/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/main.ts#L221-L221)
Async method 'activateView' has no 'await' expression.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/settings/CustomCommandsSettings.ts#L143-L152)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/rename/RenameDialogUIUtils.ts#L148-L148)[\[3\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/components/PluginMainPanel.ts#L180-L182)
Promise returned in function argument where a void return was expected.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/settings/SettingsTab.ts#L37-L37)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/settings/SettingsTab.ts#L60-L60)
Use `new Setting(containerEl).setName(...).setHeading()` instead of creating HTML heading elements directly.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/rename/RenameManager.ts#L37-L37)
Async method 'showRenameDialog' has no 'await' expression.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/components/PluginMainPanel.ts#L347-L347)
Async method 'onClose' has no 'await' expression.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/MobileKeyboardHandler.ts#L98-L98)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/MobileKeyboardHandler.ts#L126-L126)
Avoid using the navigator API to detect the operating system. Use the Platform API instead.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/MobileKeyboardHandler.ts#L173-L173)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/MobileKeyboardHandler.ts#L193-L193)
Avoid setting styles directly via `element.style.position`. Use CSS classes for better theming and maintainability.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/MobileKeyboardHandler.ts#L182-L182)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/MobileKeyboardHandler.ts#L199-L199)
Avoid setting styles directly via `element.style.overflowY`. Use CSS classes for better theming and maintainability.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/MobileKeyboardHandler.ts#L192-L192)
Avoid setting styles directly via `element.style.bottom`. Use CSS classes for better theming and maintainability.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/MobileKeyboardHandler.ts#L198-L198)
Avoid setting styles directly via `element.style.maxHeight`. Use CSS classes for better theming and maintainability.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/RenameDialog.ts#L63-L63)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/rename/RenameDialog.ts#L133-L133)
Promise-returning function provided to property where a void return was expected.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/tree/VirtualizedTree.ts#L335-L335)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/utils/renderUtils.ts#L94-L94)
Avoid setting styles directly via `element.style.width`. Use CSS classes for better theming and maintainability.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/tree/treeActions.ts#L24-L24)
Async function 'revealPath' has no 'await' expression.



---

### Optional

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/SchemaUtils.ts#L9-L9)
'_ruleSuggesterMap' is assigned a value but never used.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/SchemaUtils.ts#L98-L98)
'_processedCount' is assigned a value but never used.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/core/SchemaUtils.ts#L180-L180)
'_key' is assigned a value but never used.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/misc/AutocompleteUtils.ts#L131-L131)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/misc/AutocompleteUtils.ts#L186-L186)
'_textSpan' is assigned a value but never used.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/misc/AutocompleteUtils.ts#L139-L139)
'_emptyMsg' is assigned a value but never used.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/misc/AutocompleteUtils.ts#L197-L197)
'_noResultsMsg' is assigned a value but never used.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/rename/RenameWithProgress.ts#L247-L247)[\[2\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/row/rowEvents.ts#L82-L82)[\[3\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/utils/menuUtils.ts#L55-L55)
Use 'FileManager.trashFile()' instead of 'Vault.delete()' to respect the user's file deletion preference.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/utils/validation/PathValidationUtils.ts#L46-L46)
'_introText' is assigned a value but never used.

[\[1\]](https://github.com/jeansordes/dot-navigator/blob/f8c7957b39666b9ec483bfba57d8cb9c0264be54/src/views/components/ViewInitialization.ts#L30-L30)
'_maxAttempts' is assigned a value but never used.

