+ Parts of my smartparens config that were personal preference have been
moved to my private module.
+ The css-mode config was redundant and was removed
+ Moved lang-specific config to their respective modules
+ Markdown config was redundant with native electric support, and thus
removed.
When trying to use +ivy-tasks in one of my projects it was failing w/ error:
`(Stack overflow in regexp matcher)`. This was due to ripgrep searching a folder
in the project root containing a minified bootstrap CSS source map file (which
had a `TODO:` in it). Since that file was a single line of text concatenated
together, the regex was getting passed ~540KB of text.
To make it easier to recognize what is causing +ivy-tasks to fail I wrapped the
failing code in `condition-case-unless-debug` and report the error and the file
causing the error using `message!`. So now if there is a failure during the
extraction of task from the search cmd's results it moves onto the next and
alerts the user in separate pop-up.
To avoid including the bootstrap file in the ripgrep search result, I added a
`.ignore` file to the project that tells `rg` to ignore it.
NOTE: I was surprised that this problem file was include in the ivy-tasks search
because I expected the search to respect projectile ignore settings. Respecting
projectile's ignored/unignored files and directories wouldn't be too difficult
considering projectile provides a robust collection of functions to help support
this. Also projectile's `projectile-ag` function is a great reference.
Properly initialize a new workspace, switch to the fallback buffer
(scratch/dash), update its default-directory to the project root, and
fuzzy-prompt for a file to open.
+ Now uses selection if region is active. Prompts for the query
otherwise, with the thing at point as the initial input.
+ On first use, prompts for provider. On consecutive uses, reuses
previous provider. If universal argument is supplied, force the prompt
to appear.