racket / racket/scribble

`at-exp' changes indentation in whole document

Open
#54 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Racket
Stars
250
Forks
102
Avg merge
11d 11h
Merged PRs (30d)
1

Description

CURRENT BEHAVIOR

In #lang racket, {braces} work the same as (parentheses) and expressions using either are indented the same:

#lang racket

(define foo
  `{(a)
    (b)})

(define foo-paren
  `((a)
    (b)))

In #lang at-exp, the @-expressions with {braces} are indented differently:

#lang at-exp racket

@foo{bar
 bar}

And that difference applies even to non-@-expressions with {braces}:

#lang at-exp racket

(define foo
  `{(a)
 (b)})

(define foo-paren
  `((a)
    (b)))

EXPECTED BEHAVIOR

Using #lang at-exp does not affect the indentation of non-@-expressions:

#lang at-exp racket

@foo{bar
 bar}

(define foo
  `{(a)
    (b)})

(define foo-paren
  `((a)
    (b)))

RELATED DISCUSSION

https://github.com/mbutterick/pollen/issues/124


Do you think this makes sense? If so, how can I help turning this idea into code?

Contributor guide

No contributing guide indexed for this repository

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

No implementation files or tests are named. Start by comparing the indentation examples for #lang racket and #lang at-exp racket, then review the related Pollen discussion to understand the intended scope. Done means non-@ brace expressions retain their normal indentation under at-exp while @-expressions keep their expected indentation.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.