Language-tools: λŒ€μš©λŸ‰ νŒŒμΌμ—μ„œ 의미 체계 토큰 κΈ°λŠ₯을 ν™œμ„±ν™”ν•˜λ©΄ μ–Έμ–΄ μ„œλ²„κ°€ λΉ„μ •μƒμ μœΌλ‘œ λŠλ €μ§‘λ‹ˆλ‹€.

에 λ§Œλ“  2021λ…„ 01μ›” 18일  Β·  4μ½”λ©˜νŠΈ  Β·  좜처: sveltejs/language-tools

버그 μ„€λͺ…

VS Code Svelte ν”ŒλŸ¬κ·ΈμΈ v104.0.0은 μ‹œλ§¨ν‹± 토큰에 λŒ€ν•œ 지원을 λ„μž…ν–ˆμŠ΅λ‹ˆλ‹€. 기본적으둜 ν™œμ„±ν™”λ©λ‹ˆλ‹€.

// The default
"svelte.plugin.typescript.semanticTokens.enable": true

... κ·ΈλŸ¬λ‚˜ 이둜 인해 <script lang="ts"> μš”μ†Œκ°€ λ§Žμ€ μ–‘μ˜ TypeScript (제 κ²½μš°μ—λŠ” 2,600 쀄)둜 κ΅¬μ„±λœ .svelte νŒŒμΌμ—μ„œ μƒλ‹Ήν•œ 속도 μ €ν•˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. μ–Έμ–΄ μ„œλ²„λŠ” μœ ν˜• 검사가 1 λΆ„ 이상 걸리고 "λ‘œλ“œ 쀑 ..."μ—μ„œ 도ꡬ μ„€λͺ…이 λ¬΄κΈ°ν•œ κ³ μ •λ˜μ–΄ 사싀상 μ‘λ‹΅ν•˜μ§€ μ•Šκ²Œλ©λ‹ˆλ‹€.

μž¬μƒμ‚°ν•˜λ €λ©΄

VS Code Svelte ν”ŒλŸ¬κ·ΈμΈ v104.0.0이 μ„€μΉ˜λ˜κ³  "svelte.plugin.typescript.semanticTokens.enable": true 의 κΈ°λ³Έ μ˜΅μ…˜μ΄ 적용된 μƒνƒœμ—μ„œ 예λ₯Ό λ“€μ–΄ 2,600 μ€„μ˜ TypeScript μ½”λ“œλ‘œ .svelte νŒŒμΌμ„ λ§Œλ“­λ‹ˆλ‹€. μ˜λ„μ μœΌλ‘œ 컴파일 νƒ€μž„ 였λ₯˜λ₯Ό μƒμ„±ν•˜κ³  λͺ¨λ“  μœ ν˜• 검사가 μ‘λ‹΅ν•˜λŠ” 데 맀우 였랜 μ‹œκ°„μ΄ κ±Έλ¦¬λŠ” 것을 ν™•μΈν•˜μ‹­μ‹œμ˜€.

섀정을 "svelte.plugin.typescript.semanticTokens.enable": false μ—…λ°μ΄νŠΈν•˜λ©΄ μ¦‰μ‹œ λ‹€μ‹œ λ°˜μ‘ν•˜λŠ” 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λ³€κ²½ 사항을 ν™•μΈν•˜κΈ° μœ„ν•΄ μ–Έμ–΄ μ„œλ²„λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜κ±°λ‚˜ VS Codeλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

μ˜ˆμƒλ˜λŠ” 행동

TypeScript μŠ€ν¬λ¦½νŠΈκ°€ 포함 된 .svelte νŒŒμΌμ€ 슀크립트 크기에 상관없이 응닡 성을 μœ μ§€ν•΄μ•Όν•˜λ©° μ‚¬μš© κ°€λŠ₯ν•œ μ„±λŠ₯을 μœ μ§€ν•˜κΈ° μœ„ν•΄ κ°œλ°œμžκ°€ μΆ”κ°€ ꡬ성을 ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

μ‹œμŠ€ν…œ (λ‹€μŒ 정보λ₯Ό μž‘μ„±ν•˜μ‹­μ‹œμ˜€) :

  • 운영체제 : macOS 10.15.7
  • IDE : VS μ½”λ“œ 1.52.1
  • ν”ŒλŸ¬κ·ΈμΈ / νŒ¨ν‚€μ§€ : "Svelte for VSCode"

μΆ”κ°€ μ»¨ν…μŠ€νŠΈ

#language-tools Svelte Discordμ—μ„œ

Discord의 @dummdidumm μ—μ„œ :

dummdidumm : 예, 큰 νŒŒμΌμ—μ„œλŠ” μ‹œλ§¨ν‹± 토큰이 느렀질 수 μžˆμŠ΅λ‹ˆλ‹€. 특히 λ§Žμ€ μ†ŒμŠ€ 맡 λ§€ν•‘μ„ν•΄μ•Όν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
dummdidumm : @ jasonlyu09 μ•„λ§ˆλ„ μš°λ¦¬λŠ” 큰 파일 / λ²”μœ„μ— λŒ€ν•΄ μ•½κ°„μ˜ μ œν•œμ„ μΆ”κ°€ν•΄μ•Ό ν•  κ²ƒμž…λ‹ˆλ‹€. 뢄석 ν•  μš”μ²­ 된 λ²”μœ„κ°€ λ„ˆλ¬΄ 컀지면 본질적으둜 μš”μ²­μ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. VS μ½”λ“œκ°€ λΉ„μŠ·ν•œ μΌμ„ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

Fixed bug

λͺ¨λ“  4 λŒ“κΈ€

예, VSCode의 typescript ν™•μž₯은 100000으둜 μ œν•œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.ν•˜μ§€λ§Œ μ†ŒμŠ€ λ§€ν•‘μœΌλ‘œ 인해 μ—¬μ „νžˆ 맀우 λŠλ¦¬λ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€. 50000으둜 μ œν•œ ν•  것이라고 μƒκ°ν•©λ‹ˆλ‹€.

예, VSCode의 typescript ν™•μž₯은 100000으둜 μ œν•œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.ν•˜μ§€λ§Œ μ†ŒμŠ€ λ§€ν•‘μœΌλ‘œ 인해 μ—¬μ „νžˆ 맀우 λŠλ¦¬λ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€. 50000으둜 μ œν•œ ν•  것이라고 μƒκ°ν•©λ‹ˆλ‹€.

@ jasonlyu123 100,000의 무엇? λ‚΄ 2,600 라인 νŒŒμΌμ—λŠ” 128,292 λ¬Έμžκ°€ μžˆμœΌλ―€λ‘œ 100,000 λ¬Έμžκ°€ λ„˜λŠ” νŒŒμΌμ— λŒ€ν•΄ μ‹œλ§¨ν‹± 토큰을 λΉ„ν™œμ„±ν™”ν•œλ‹€κ³  κ°€μ •ν•˜λ©΄ μ „ν˜€ κ·Έλ ‡κ²Œν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

μ†ŒμŠ€ μžμ²΄κ°€ μ•„λ‹ˆλΌ 생성 된 파일의 길이 (PR에 TSXκ°€ μ–ΈκΈ‰λ˜μ–΄ μžˆμœΌλ―€λ‘œ μ•„λ§ˆλ„ 그럴 μˆ˜λ„ 있음) 정도라면 생성 된 파일의 길이λ₯Ό μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

문자, js / ts 파일이 ν•΄λ‹Ή 문자λ₯Ό μ΄ˆκ³Όν•˜λŠ” 경우 typescript ν™•μž₯은 전체 파일 의미 토큰을 μ²˜λ¦¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 디버그 λͺ¨λ“œμ—μ„œ svelte ν™•μž₯ 번호λ₯Ό μ‹œλ„ν–ˆμ§€λ§Œ μ—¬μ „νžˆ λ„ˆλ¬΄ 느린 것 κ°™μŠ΅λ‹ˆλ‹€.

μ–Έμ–΄ μ„œλ²„κ°€ κ΅¬ν˜„ν•  μˆ˜μžˆλŠ” μ—¬λŸ¬ μœ ν˜•μ˜ 의미 토큰 μš”μ²­μ΄ μžˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” ν˜„μž¬ typescript ν™•μž₯κ³Ό 같은 λ²”μœ„ 및 전체 νŒŒμΌμ„ κ΅¬ν˜„ν•©λ‹ˆλ‹€. λ‚΄ 이해에 λ”°λ₯΄λ©΄ vscodeλŠ” 전체 νŒŒμΌμ„ μ‚¬μš©ν•  수 없을 λ•Œλ§Œ λ²”μœ„κ°€ μ§€μ •λœ κ²°κ³Όλ₯Ό μ–»μœΌλ €κ³  μ‹œλ„ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 그리고 λ²”μœ„ 1은 λ¬Έμ„œλ₯Ό μ•„λž˜λ‘œ 슀크둀 ν•  λ•Œ κ°‘μžκΈ° 색상이 λ³€κ²½λ˜λŠ” μ΄μœ μž…λ‹ˆλ‹€.

이제 μ œν•œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ‹œλ§¨ν‹± 토큰을 μΌ€ λ•Œ λ‹€μ‹œ μ‚¬μš©ν•  수 μžˆλ‹€λ©΄ 이제 λ³΄κ² μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰