eclipse-xtext / eclipse-xtext/xtext

Bad Indentation Behavior of Rich-String with AFTER Clause

Open
#2,274 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug confirmed
Dominant language
Java
Stars
831
Forks
330
Avg merge
3d 7h
Merged PRs (30d)
12

Description

class Sample {
    def static void main(String[] args) {
        val a = #[1,3,5]
        val b = #[2,4,6]
        println('''
        demo:
            «FOR ax : a AFTER "\n"»
                call «ax»
            «ENDFOR»
            «FOR ax : b AFTER "\n"»
                call «ax»
            «ENDFOR»
        ''')
    }
}

results in

demo:
    call 1
    call 3
    call 5

        call 2
    call 4
    call 6

expected is

demo:
    call 1
    call 3
    call 5

    call 2
    call 4
    call 6

possible workaround

class Sample {
    def static void main(String[] args) {
        val a = #[1,3,5]
        val b = #[2,4,6]
        println('''
        demo:
            «FOR ax : a AFTER "\n"»
                call «ax»
            «ENDFOR»
            «FOR ax : b AFTER "\n"»
            	«""»
            	call «ax»
            «ENDFOR»
        ''')
    }
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the provided Sample rich-string example with two FOR clauses using AFTER "\n" and compare its output with the expected output. Trace the rich-string indentation handling for the second loop; done means both loop blocks retain the same four-space indentation without requiring the empty-string workaround.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.