From bebb26efb23cc528becd10e099fd63cc1bec7dc8 Mon Sep 17 00:00:00 2001 From: Josh Bodah Date: Wed, 26 Apr 2017 10:37:10 -0400 Subject: [PATCH] fix #330 - support `else` indent with matching `with` --- autoload/elixir/indent.vim | 2 +- spec/indent/blocks_spec.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/autoload/elixir/indent.vim b/autoload/elixir/indent.vim index d0cda304..c3e375a9 100644 --- a/autoload/elixir/indent.vim +++ b/autoload/elixir/indent.vim @@ -177,7 +177,7 @@ endfunction function! elixir#indent#handle_starts_with_mid_or_end_block_keyword(lnum, text, _prev_nb_lnum, _prev_nb_text) if elixir#indent#starts_with(a:text, elixir#indent#keyword('catch\|rescue\|after\|else'), a:lnum) - let pair_lnum = elixir#indent#searchpair_back(elixir#indent#keyword('receive\|try\|if\|fn'), elixir#indent#keyword('catch\|rescue\|after\|else').'\zs', elixir#indent#keyword('end')) + let pair_lnum = elixir#indent#searchpair_back(elixir#indent#keyword('with\|receive\|try\|if\|fn'), elixir#indent#keyword('catch\|rescue\|after\|else').'\zs', elixir#indent#keyword('end')) return indent(pair_lnum) else return -1 diff --git a/spec/indent/blocks_spec.rb b/spec/indent/blocks_spec.rb index 95121c27..631825d9 100644 --- a/spec/indent/blocks_spec.rb +++ b/spec/indent/blocks_spec.rb @@ -185,4 +185,13 @@ def handle_info(:tick, state = %{policy_iteration: []) do {:noreply, state} end EOF + + i <<~EOF + with {:ok, msg} <- Msgpax.unpack(payload) do + {:ok, rebuild(msg)} + else + error -> error + end + EOF + end