* ignore Enter keypress when menu has no selection
supersedes #1622
Builds on the work in #1285. I want to allow Enter to create a newline
when there is no selection in the autocomplete menu.
This occurs somewhat often when using LSP autocomplete in Elixir which
uses `do/end` blocks (and I set the autocomplete menu delay to 0 which
exacerbates the problem):
```elixir
defmodule MyModule do
def do_foo(x) do
x
end
def other_function(y) do|
end
```
Here the cursor is `|` in insert mode. The LSP suggests `do_foo` but I
want to create a newline. Hitting Enter currently closes the menu,
so I end up having to hit Enter twice when the module contains any
local with a `do` prefix, which can be inconsistent. With this change,
we ignore the Enter keypress to end up creating the newline in this case.
* pop compositor layer when ignoring Enter keypress
* move closing function out of consumed event result closure
* explicitly label close_fn as an 'Option<Callback>'