Vim: Отступ огурца для линий "А" - PullRequest
4 голосов
/ 19 марта 2011

В языке огурца Огурека допускается отступать строки А примерно так:

Scenario:
  Given there is a user named Chris
    And I am logged in as Chris
  When I go to the home page
  Then I should see "hi Chris"
    And I should not see "log in"

Мне нравится этот стиль отступа гораздо лучше, чем стиль с одинаковыми отступами, но с сценариями Тума Cucumber для ТимаVim , я должен вручную сделать отступ для строк And и вручную сделать отступ для следующих строк, и иногда Vim автоматически делает отступ для строк, и все получается неправильно.

Как лучше всего работать с отступами и строками Andв Vim?Или проще всего отказаться от этого?

Ответы [ 2 ]

2 голосов
/ 21 апреля 2011

Вот разница для indent/cucumber.vim, основанная на ответе Энди:

--- .vim/indent/cucumber.vim.bak    2011-03-24 18:44:27.000000000 +0100
+++ .vim/indent/cucumber.vim    2011-03-24 19:09:41.000000000 +0100
@@ -47,6 +47,10 @@
     return indent(prevnonblank(v:lnum-1)) + &sw
   elseif cline =~# '^\s*[^|# \t]' && line =~# '^\s*|'
     return indent(prevnonblank(v:lnum-1)) - &sw
+  elseif cline =~# '^\s*\%(And\|But\)' && line !~# '^\s*\%(And\|But\)' 
+    return indent(prevnonblank(v:lnum-1)) + &sw
+  elseif cline !~# '^\s*\%(And\|But\)' && line =~# '^\s*\%(And\|But\)' 
+    return indent(prevnonblank(v:lnum-1)) - &sw
   elseif cline =~# '^\s*$' && line =~# '^\s*|'
     let in = indent(prevnonblank(v:lnum-1))
     return in == indent(v:lnum) ? in : in - &sw
2 голосов
/ 21 марта 2011

Я думаю, вы можете настроить indent/cucumber.vim (онлайн здесь ), чтобы увеличить отступ в строках, начинающихся с ^\s*And.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...