### Required

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/dev-utils.ts#L1-L1)
Do not import Node.js builtin module "console"

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/dev-utils.ts#L6-L6)[\[2\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/dev-utils.ts#L24-L24)[\[3\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/main.ts#L12-L12)
Unexpected console statement. Only these console methods are allowed: warn, error, debug.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/dev-utils.ts#L16-L16)[\[2\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/dev-utils.ts#L16-L16)[\[3\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/dev-utils.ts#L22-L22)[\[4\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/dev-utils.ts#L22-L22)
Unexpected any. Specify a different type.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/dev-utils.ts#L30-L30)
Invalid operand for a '+' operation. Operands must each be a number or string, allowing a string + any of: `any`, `boolean`, `null`, `RegExp`, `undefined`. Got `{}`.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/dev-utils.ts#L36-L36)
The `Function` type accepts any function-like value.
Prefer explicitly defining any function parameters and return type.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/dev-utils.ts#L36-L36)
Explicit undefined is unnecessary on an optional parameter.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/main.ts#L11-L11)
Async method 'onload' has no 'await' expression.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/main.ts#L17-L17)[\[2\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/main.ts#L23-L23)
The command ID should not include the plugin ID.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/smart-selection-delegate.ts#L49-L49)[\[2\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/smart-selection-delegate.ts#L152-L152)
Unexpected aliasing of 'this' to local variable.



---

### Optional

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/smart-selection-delegate.ts#L5-L5)
'toSelection' is defined but never used.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/smart-selection-delegate.ts#L6-L6)
'posEquals' is defined but never used.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/smart-selection-delegate.ts#L7-L7)
'posGTE' is defined but never used.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/smart-selection-delegate.ts#L8-L8)
'posGT' is defined but never used.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/smart-selection-delegate.ts#L9-L9)
'posLTE' is defined but never used.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/smart-selection-delegate.ts#L10-L10)
'posLT' is defined but never used.

[\[1\]](https://github.com/sabotagedninja/obsidian-smart-selection/blob/b53abea0bc931838ad92c379b2dc1e67523596e9/src/smart-selection-delegate.ts#L15-L15)
'rangeIntersects' is defined but never used.

