On Tue, Jan 19, 2010 at 14:25, Andreas Jonsson <[email protected]> wrote:
> Thomas Mortagne wrote:
>> On Mon, Jan 18, 2010 at 19:53, Andreas Jonsson <[email protected]> wrote:
>>
>>> Unexpected: No empty lines event is generated if there are exactly two
>>>            new lines before something that is not a paragraph.
>>> Expected:   Empty lines event should always be generated on
>>>            sequences of two or more new lines characters.
>>>
>>
>> You mean you don't have newline event with:
>>
>> {{macro/}}
>>
>>
>> {{macro/}}
>> <<<<<<<<<<<<<<<<<<<<<<<<<<
>> ? In that case yes it's a bug IMO
>>
>>
>
> Actually, I should have written "in front of anything which is not a
> paragraph, macro block, or verbatim block".  Any place where
> sendOnEmptyLinesEvent(true) is called.  For example in this case:
>
> paragraph
> <NL>
> <NL>
> | table
>
> I guess I trusted the comment ;) . Notice that fContext.onEmptyLines
> will never be called with argument 1 if shouldIncrement is true:
>
> /**
>  * If shouldIncrement is true send one more empty lines. All block
>  * elements other than paragraph should call shouldIncremet with
>  * true since we need to emit one more new line for them (since the
>  * lexer "eats" a NewLine token to recognize these block elements.
>  */
> void sendOnEmptyLinesEvent(boolean shouldIncrement):
> {
> }
> {
>    {
>        if (emptyLinesCount > 1) {
>            fContext.onEmptyLines(shouldIncrement ? emptyLinesCount :
> emptyLinesCount - 1);
>        }
>        emptyLinesCount = 0;
>    }
> }
>
>>> Unexpected: If there are block parameters before an empty line, an
>>>            empty paragraph is generated and the parameters are
>>>            applied to these.
>>> Expected:   Block parameters should be applied to the following
>>>            header, table, paragraph etc.
>>>
>>
>> I don't agree for the paragraph, that's the general rule: spaces are
>> meaningful. Space is a character like another and there is no reason
>> it does not behave like another. Now i agree that it's understandable
>> for other blocks like header/table/... Thing is it looks like a pain
>> to do it one way for paragraph and another for other blocks.
>>
>>
> A reasonable alternative is that the parameters should be
> applied to the element that represents the empty line.  But this
> is not what is happening in the parser.  Actually, there are no
> code that deals with this situation specifically.  It is just
> happens to be caught by the paragraph production, despite
> the fact that there is no paragraph after the parameters.

You have a paragraph because you have a inline character, here it's
<SPACE>. Skipping <SPACE> when following element is a header or
something is a hack from parser general rule point of view.

>
>
> /Andreas Jonsson
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to