
I want to implement outlining functionality for my language.
My language's IF statement is like this:
IF D < 0 THEN
statement
statement
ELSIF D = 0 THEN
statement
statement
ELSE
statement
statement
END_IF;
Each IF/ELSIF/ELSE element is an outlining node.
Then, for example, if all nodes are closed, the code will look like this:
+ IF D < 0 THEN
+ ELSIF D = 0 THEN
+ ELSE
END_IF;
issue 1:
An "ELSIF" token ends an outlining node for an IF element.
Furthermore, this "ELSIF" token starts another outlining node(outlining node for ELSIF element).
issue 2:
ELSIF/ELSE elements are optional.
So, when the ELSIF element is absent, an "ELSE" token ends an "IF" outlining node.
When both ELSIF and ELSE elements are absent, an "END_IF" token ends an "IF" outlining node.
Is there any way to achieve this using Token-Based Outlining Sources?
Or do I have to use Range-Based Outlining Sources?
[Modified 8 years ago]