Handle backspace/delete like IntelliJ IDEs.
When smart-delete-mode
is enabled, do a smart delete, unless:
- Called with an argument
- Inside a string literal
- Have non-spacing characters before/after point (for backward/forward deletes, respectively)
Deletes region when region is active and delete-active-region is non-nil.
A smart delete consists of:
When smart deleting backward:
- If after indentation level, go back to indentation
- If at or before indentation level, delete to end of previous line
When smart deleting forward:
- Delete spaces after point
- Smart delete backward at next line
(smart-delete-mode 1)