anchor.diff:          scrollTo(findLineWithText(text));
       }
   
  +    function showOnlyScenariosThatPassFilterOnNavigationList(filter) {
  +        if (filter != null || filter != "") {
  +            var jqueryExpression = "";
  +            $.each(filter.split(/\s+/), function(index, word) {
  +                if (word.match(/^~/)) {
  +                    jqueryExpression += ':not(:contains(\'' + word.replace('~','') + '\'))';
  +                }
  +                else {
  +                    jqueryExpression += ':contains(\'' + word + '\')';
  +                }
  +            })
  +
  +            var show_expression = "ul.navigator_list > li" + jqueryExpression;
  +            $("ul.navigator_list > li").hide();
  +            $(show_expression).show();
  +        }
  +        else {
  +            $("ul.navigator_list > li").show();
  +        }
  +    }
  +
  +    function navigationFilter() {
  +        showOnlyScenariosThatPassFilterOnNavigationList($('#navigation_query').attr('value'));
  +    }
  +
   </script>
positive.code:           </li>
          </ul>
        </div>
        <h3>Navigation</h3>
        <ul class="navigator_list">
        </ul>
      </div>
  
negative.code:         $.each(editorLines(), function(index, line) {
              if (line_before.match(/^\s*@.+/)) {
                  tags_line = line_before;
                  if (tags_line.match(/@\d+/)) {
                      var estimation_tag = tags_line.match(/@\d+/)
                      estimation = estimation_tag[0].replace('@', '');
                  }
              }
              else {
  