Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(fmt): improve width calculation #16982

Merged
merged 1 commit into from
Dec 7, 2022

Conversation

dsherret
Copy link
Member

@dsherret dsherret commented Dec 7, 2022

Formats code according to Unicode Standard Annex #11 rules (https://crates.io/crates/unicode-width).

This aligns deno fmt more with prettier.

Input

const a = () => (
  <div>
    대충 한국어로 아무 말이나 적고 있습니다. '아무말' 표준국어대사전에 등재되지 않은 단어이므로 '아무 말' 띄어 씁니다. 아무 말일까요? 누군가에게는 적절한 더미 텍스트일 수도 있고 누군가에게는 그냥 지루한 문단일  있습니다. 문장이 긴데 보여질 폭은 좁을  어디에서 줄바꿈을 해야 할지는 중요한 이슈가 되어 왔습니다. 한국어는 띄어쓰기가 자주 등장하는 만큼 단어 사이를 끊는 것을 싫어하지만 끊는 부분에 타우마타와카탕이항아코아우아우오타마테아투리푸카카피키마웅아호로누쿠포카이웨누아키타나타후 같은 단어가 존재하면 엄청난 공백이 등장하게 됩니다. 직접 줄바꿈을 삽입하자는 의견도 나오지만 다양한 스크린 폭에 대응되지 못하는 것을 탐탁치 않아 하는 사람도 있습니다. 대충 한국어로 아무 말이나 적었습니다.
  </div>
);

Before

const a = () => (
  <div>
    대충 한국어로 아무 말이나 적고 있습니다. '아무말' 표준국어대사전에 등재되지 않은 단어이므로 '아무 말' 띄어 씁니다. 아무
    말일까요? 누군가에게는 적절한 더미 텍스트일 수도 있고 누군가에게는 그냥 지루한 문단일  있습니다. 문장이 긴데 보여질 폭은 좁을 
    어디에서 줄바꿈을 해야 할지는 중요한 이슈가 되어 왔습니다. 한국어는 띄어쓰기가 자주 등장하는 만큼 단어 사이를 끊는 것을 싫어하지만
    끊는 부분에 타우마타와카탕이항아코아우아우오타마테아투리푸카카피키마웅아호로누쿠포카이웨누아키타나타후 같은 단어가 존재하면 엄청난 공백이
    등장하게 됩니다. 직접 줄바꿈을 삽입하자는 의견도 나오지만 다양한 스크린 폭에 대응되지 못하는 것을 탐탁치 않아 하는 사람도 있습니다.
    대충 한국어로 아무 말이나 적었습니다.
  </div>
);

After

Now aligns with prettier:

const a = () => (
  <div>
    대충 한국어로 아무 말이나 적고 있습니다. '아무말' 표준국어대사전에
    등재되지 않은 단어이므로 '아무 말' 띄어 씁니다. 아무 말일까요?
    누군가에게는 적절한 더미 텍스트일 수도 있고 누군가에게는 그냥 지루한 문단일
     있습니다. 문장이 긴데 보여질 폭은 좁을  어디에서 줄바꿈을 해야 할지는
    중요한 이슈가 되어 왔습니다. 한국어는 띄어쓰기가 자주 등장하는 만큼 단어
    사이를 끊는 것을 싫어하지만 끊는 부분에
    타우마타와카탕이항아코아우아우오타마테아투리푸카카피키마웅아호로누쿠포카이웨누아키타나타후
    같은 단어가 존재하면 엄청난 공백이 등장하게 됩니다. 직접 줄바꿈을 삽입하자는
    의견도 나오지만 다양한 스크린 폭에 대응되지 못하는 것을 탐탁치 않아 하는
    사람도 있습니다. 대충 한국어로 아무 말이나 적었습니다.
  </div>
);

dprint/dprint-plugin-typescript#452

@dsherret dsherret changed the title feat(fmt): improve display width calculation feat(fmt): improve width calculation Dec 7, 2022
@dsherret dsherret added this to the 1.29 milestone Dec 7, 2022
Copy link
Member

@bartlomieju bartlomieju left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants