hanlint 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +23 -20
  2. package/data/calqueFrame.json +60 -0
  3. package/data/cliches.json +39 -29
  4. package/data/collocationStops.txt +28 -0
  5. package/data/confusable.json +20 -20
  6. package/data/easyWords.json +12 -246
  7. package/data/exemplars.json +50 -29
  8. package/data/hiddenDeps.txt +11 -11
  9. package/data/japaneseLoan.json +27 -27
  10. package/data/koreanProse.txt +64 -0
  11. package/data/patterns.json +26 -26
  12. package/data/phraseRepeat.json +11 -0
  13. package/data/platformApis.txt +11 -11
  14. package/data/redundantPair.json +16 -16
  15. package/data/ruleCategories.json +2 -0
  16. package/data/ruleDocs.json +56 -54
  17. package/data/ruleMechanisms.json +2 -0
  18. package/data/screenNarration.json +10 -10
  19. package/data/screenSentence.json +60 -12
  20. package/data/screenTone.json +6 -6
  21. package/data/screenWord.json +70 -110
  22. package/data/spacing.json +12 -12
  23. package/data/spelling.json +29 -29
  24. package/data/translationese.json +23 -24
  25. package/data/usageCounts.report.json +1676 -0
  26. package/data/version.json +1 -1
  27. package/package.json +1 -1
  28. package/src/analysis/grammar/ending.js +1 -1
  29. package/src/analysis/grammar/hangul.js +4 -4
  30. package/src/analysis/grammar/josa.js +1 -1
  31. package/src/analysis/grammar/register.js +1 -1
  32. package/src/analysis/grammar/voice.js +1 -1
  33. package/src/analysis/index.js +3 -3
  34. package/src/analysis/josa.js +1 -1
  35. package/src/analysis/splitSentences.js +1 -1
  36. package/src/analysis/tokenize.js +41 -26
  37. package/src/baseline/store.js +8 -8
  38. package/src/cli/help.js +11 -10
  39. package/src/cli/main.js +332 -182
  40. package/src/cli/walk.js +2 -2
  41. package/src/cli/welcome.js +8 -8
  42. package/src/config/loadConfig.js +3 -3
  43. package/src/config/patch.js +6 -6
  44. package/src/config/readerContract.js +26 -26
  45. package/src/config/settings.js +44 -25
  46. package/src/config/toml.js +9 -9
  47. package/src/data/exemplars.js +21 -21
  48. package/src/data/load.js +6 -6
  49. package/src/data/operations.js +14 -14
  50. package/src/data/patches.js +10 -10
  51. package/src/data/patterns.js +5 -5
  52. package/src/data/profiles.js +6 -6
  53. package/src/data/prose.js +27 -0
  54. package/src/document/model.js +4 -4
  55. package/src/document/parseMarkdown.js +7 -7
  56. package/src/document/plainText.js +3 -3
  57. package/src/document/sourceText.js +117 -19
  58. package/src/edit/applyFixes.js +0 -0
  59. package/src/fingerprint/build.js +18 -9
  60. package/src/fingerprint/codeBlocks.js +3 -3
  61. package/src/fingerprint/codeMarkers.js +4 -4
  62. package/src/fingerprint/dictionaries.js +34 -7
  63. package/src/fingerprint/markers.js +27 -5
  64. package/src/fingerprint/readerState.js +9 -9
  65. package/src/fingerprint/sourceSentence.js +1 -1
  66. package/src/fingerprint/topics.js +1 -1
  67. package/src/guard/contract.js +6 -6
  68. package/src/guard/editLocality.js +1 -1
  69. package/src/guard/outline.js +1 -1
  70. package/src/guard/receipt.js +13 -13
  71. package/src/guard/surface.js +4 -4
  72. package/src/index.js +9 -7
  73. package/src/learn/edits.js +2 -2
  74. package/src/learn/operations.js +1 -1
  75. package/src/regex.js +2 -2
  76. package/src/report/compactReport.js +7 -3
  77. package/src/report/fingerprintJson.js +2 -2
  78. package/src/report/githubReport.js +1 -1
  79. package/src/report/jsonReport.js +3 -3
  80. package/src/report/registerMatch.js +2 -2
  81. package/src/report/sheet.js +0 -0
  82. package/src/report/textReport.js +35 -16
  83. package/src/report/writingSpec.js +17 -17
  84. package/src/rules/code/inputFileSource.js +1 -1
  85. package/src/rules/code/installImport.js +2 -2
  86. package/src/rules/code/platformApi.js +1 -1
  87. package/src/rules/document/countMismatch.js +2 -1
  88. package/src/rules/document/enoughOnce.js +2 -1
  89. package/src/rules/document/fieldEcho.js +10 -6
  90. package/src/rules/document/keywordHeading.js +1 -1
  91. package/src/rules/document/keywordMissing.js +1 -1
  92. package/src/rules/document/noQuestion.js +2 -2
  93. package/src/rules/document/promiseRecall.js +1 -1
  94. package/src/rules/document/tableOddCell.js +1 -1
  95. package/src/rules/finding.js +4 -4
  96. package/src/rules/paragraph/factListParagraph.js +1 -1
  97. package/src/rules/paragraph/paraFragment.js +1 -1
  98. package/src/rules/readerDebt.js +1 -1
  99. package/src/rules/registry.js +30 -26
  100. package/src/rules/screen/screenWord.js +2 -1
  101. package/src/rules/sentence/calqueFrame.js +11 -0
  102. package/src/rules/sentence/cliche.js +7 -3
  103. package/src/rules/sentence/connectorRepeat.js +2 -1
  104. package/src/rules/sentence/danglingDeixis.js +1 -1
  105. package/src/rules/sentence/dash.js +1 -1
  106. package/src/rules/sentence/deixis.js +1 -1
  107. package/src/rules/sentence/doubleNegative.js +2 -1
  108. package/src/rules/sentence/doublePassive.js +2 -1
  109. package/src/rules/sentence/draftHistory.js +2 -1
  110. package/src/rules/sentence/endingRepeat.js +3 -2
  111. package/src/rules/sentence/euiChain.js +1 -1
  112. package/src/rules/sentence/fillerOpener.js +1 -1
  113. package/src/rules/sentence/hardWord.js +6 -3
  114. package/src/rules/sentence/imperativePeriod.js +1 -1
  115. package/src/rules/sentence/japaneseLoan.js +7 -3
  116. package/src/rules/sentence/longSentence.js +1 -1
  117. package/src/rules/sentence/negationRedefine.js +1 -1
  118. package/src/rules/sentence/nounPile.js +10 -4
  119. package/src/rules/sentence/numberOrphan.js +1 -1
  120. package/src/rules/sentence/outsideProfile.js +8 -3
  121. package/src/rules/sentence/phraseRepeat.js +54 -0
  122. package/src/rules/sentence/redundantPair.js +7 -3
  123. package/src/rules/sentence/translationese.js +7 -3
  124. package/src/rules/shared/candidates.js +2 -2
  125. package/src/rules/shared/dictionaryRule.js +46 -8
  126. package/src/rules/shared/repeat.js +2 -2
  127. package/src/rules/structure/bridgeRepeat.js +3 -3
  128. package/src/rules/structure/emojiBullet.js +1 -1
  129. package/src/rules/structure/headingSkip.js +1 -1
  130. package/src/rules/structure/headingUniform.js +2 -1
  131. package/src/rules/structure/loneSubheading.js +1 -1
  132. package/src/rules/structure/moreLater.js +1 -1
  133. package/src/text.js +2 -2
  134. package/src/usage/counts.js +54 -0
  135. package/src/usage/index.js +8 -0
  136. package/src/usage/sentences.js +681 -0
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "blockUnread": "threshold",
3
3
  "bridgeRepeat": "repeat",
4
+ "calqueFrame": "dictionary",
4
5
  "cliche": "dictionary",
5
6
  "confusable": "dictionary",
6
7
  "connectorRepeat": "repeat",
@@ -41,6 +42,7 @@
41
42
  "numberOrphan": "reader",
42
43
  "outsideProfile": "threshold",
43
44
  "paraFragment": "repeat",
45
+ "phraseRepeat": "repeat",
44
46
  "platformApi": "dictionary",
45
47
  "promiseRecall": "reader",
46
48
  "redundantPair": "dictionary",
@@ -2,28 +2,28 @@
2
2
  "entry": [
3
3
  {
4
4
  "pattern": "(?:오면|되면|도착하면|쌓이면|끝나면|생기면|들어오면)[^.]*여기(?:에|서)",
5
- "why": "는 빈 자리를 예고하는 말이다. 빈 상태는 `<대상> 없음` 한 낱말로 쓴다 (요청 없음, 계약 없음)",
6
- "source": "Taxly 화면 낱말 규약"
5
+ "why": "빈 곳을 미리 알리는 말이다. 빈 상태는 `요청 없음`, `계약 없음`처럼 `<대상> 없음`으로 쓴다",
6
+ "source": ""
7
7
  },
8
8
  {
9
9
  "pattern": "여기(?:에|서)[^.]*(?:표시|보입|보인|열립|열린|쌓입|쌓인|나타|나옵|나온)",
10
- "why": "는 빈 자리를 예고하는 말이다. 빈 상태는 `<대상> 없음` 한 낱말로 쓴다 (요청 없음, 계약 없음)",
11
- "source": "Taxly 화면 낱말 규약"
10
+ "why": "빈 곳을 미리 알리는 말이다. 빈 상태는 `요청 없음`, `계약 없음`처럼 `<대상> 없음`으로 쓴다",
11
+ "source": ""
12
12
  },
13
13
  {
14
14
  "pattern": "(?<![가-힣])(?:이|현재) (?:화면|탭|창|페이지|목록|카드|표|칸)(?:은|는|이|가|에서|에|을|를|만|으로)",
15
- "why": "는 화면이 자기를 설명하는 말이다. 제목과 데이터가 무엇인지 말하므로 지운다",
16
- "source": "Taxly 화면 낱말 규약"
15
+ "why": "화면이 스스로를 설명하는 말이다. 제목과 데이터가 무엇인지 이미 보여 주므로 지운다",
16
+ "source": ""
17
17
  },
18
18
  {
19
19
  "pattern": "(?:잠시 뒤|잠시 후|나중에 다시|잠시만 기다)",
20
- "why": "는 재시도를 서술하는 말이다. 실패는 `<대상> <동작> 실패` 로 쓰고 다시 시도는 단추다",
21
- "source": "Taxly 화면 낱말 규약"
20
+ "why": "다시 시도하라고 안내하는 말이다. 실패는 `<대상> <동작> 실패`로 쓰고 다시 시도는 버튼으로 둔다",
21
+ "source": ""
22
22
  },
23
23
  {
24
24
  "pattern": "(?:할|볼|쓸|열|받을|고를|바꿀|지울|더할|뺄|열람할|확인할|계산할|이어갈|사용할) 수 (?:있습니다|없습니다|있다|없다|있어요|없어요)",
25
- "why": "는 할 수 있는 일을 서술하는 말이다. 할 수 있는 것은 단추와 칸이 보이고 할 수 없는 것은 `<동작> 불가` 로 쓴다",
26
- "source": "Taxly 화면 낱말 규약"
25
+ "why": "할 수 있는 일을 문장으로 설명하는 말이다. 할 수 있는 일은 버튼과 입력란으로 보이고, 할 수 없는 일은 `<동작> 불가`로 쓴다",
26
+ "source": ""
27
27
  }
28
28
  ]
29
29
  }
@@ -2,33 +2,81 @@
2
2
  "entry": [
3
3
  {
4
4
  "pattern": "(?:하고|보고|가고|오고|열고|만들고|찾고|기다리고|계산하고|확인하고|연결하고|정리하고|읽고|쓰고) (?:있습니다|있다|있어요)",
5
- "why": "는 진행을 문장으로 쓴 것이다. `<동작> 중` 한 낱말로 쓴다 (대시보드 여는 중, 시작 준비 확인 중)",
6
- "source": "Taxly 화면 낱말 규약"
5
+ "to": [
6
+ [
7
+ "^(.*?)(?:을|를|이|가)? ?([가-힣]*?)열고 (?:있습니다|있다|있어요)\\.?$",
8
+ "$1 $2여는 중"
9
+ ],
10
+ [
11
+ "^(.*?)(?:을|를|이|가)? ?([가-힣]*?)만들고 (?:있습니다|있다|있어요)\\.?$",
12
+ "$1 $2만드는 중"
13
+ ],
14
+ [
15
+ "^(.*?)(?:을|를|이|가)? ?([가-힣]*?(?:하|보|가|오|찾|기다리|계산하|확인하|연결하|정리하|읽|쓰))고 (?:있습니다|있다|있어요)\\.?$",
16
+ "$1 $2는 중"
17
+ ]
18
+ ],
19
+ "why": "진행 상태를 문장으로 쓴 것이다. `대시보드 여는 중`, `시작 준비 확인 중`처럼 `<동작> 중`으로 쓴다",
20
+ "source": ""
7
21
  },
8
22
  {
9
23
  "pattern": "(?:하지|되지|찾지|열지|만들지|가지|오지|읽지|쓰지|받지) (?:못했습니다|않았습니다|못합니다|못했다|않았다|못한다|못했어요|않았어요|못해요)",
10
- "why": "는 실패를 문장으로 쓴 것이다. `<대상> <동작> 실패` 로 쓴다 (요청 실패, 자료 불러오기 실패)",
11
- "source": "Taxly 화면 낱말 규약"
24
+ "to": [
25
+ [
26
+ "^(.*?)(?:을|를|이|가)? ?([가-힣]+?)(?:하지|되지) (?:못했습니다|않았습니다|못합니다|못했다|않았다|못한다|못했어요|않았어요|못해요)\\.?$",
27
+ "$1 $2 실패"
28
+ ],
29
+ [
30
+ "^(.*?)(?:을|를|이|가)? ?([가-힣]*?(?:찾|열|만들|가|오|읽|쓰|받|불러오|내려받))지 (?:못했습니다|않았습니다|못합니다|못했다|않았다|못한다|못했어요|않았어요|못해요)\\.?$",
31
+ "$1 $2기 실패"
32
+ ]
33
+ ],
34
+ "why": "실패를 문장으로 쓴 것이다. `요청 실패`, `데이터 불러오기 실패`처럼 `<대상> <동작> 실패`로 쓴다",
35
+ "source": ""
12
36
  },
13
37
  {
14
38
  "pattern": "(?:필요합니다|필요하다|필요해요|해야 합니다|해야 한다|해야 해요|하셔야 합니다)",
15
- "why": "는 요구를 문장으로 쓴 것이다. `<대상> 필요` 로 쓴다 (로그인 필요, 사전 승인 IP 필요)",
16
- "source": "Taxly 화면 낱말 규약"
39
+ "to": [
40
+ [
41
+ "^(.*?)(?:이|가)? ?(?:필요합니다|필요하다|필요해요)\\.?$",
42
+ "$1 필요"
43
+ ],
44
+ [
45
+ "^(.*?)(?:을|를|이|가)? ?([가-힣]+?)(?:해야 합니다|해야 한다|해야 해요|하셔야 합니다)\\.?$",
46
+ "$1 $2 필요"
47
+ ]
48
+ ],
49
+ "why": "요구를 문장으로 쓴 것이다. `로그인 필요`, `사전 승인 IP 필요`처럼 `<대상> 필요`로 쓴다",
50
+ "source": ""
17
51
  },
18
52
  {
19
53
  "pattern": "(?:입력해 주세요|입력하세요|입력하십시오|선택해 주세요|선택하세요|체크해 주세요|눌러 주세요|누르세요)",
20
- "why": "는 칸의 이름표가 할 말이다. 이름표가 무엇을 넣는지 말하고 빠진 값은 `<대상> 필요` 로 쓴다",
21
- "source": "Taxly 화면 낱말 규약"
54
+ "why": "입력란의 라벨이 할 말이다. 라벨이 무엇을 넣는지 말하고 빠진 값은 `<대상> 필요`로 쓴다",
55
+ "source": ""
22
56
  },
23
57
  {
24
58
  "pattern": "(?:했습니다|됐습니다|되었습니다|끝났습니다|했다|됐다|되었다|끝났다|했어요|됐어요|되었어요|끝났어요)",
25
- "why": "는 끝난 일을 문장으로 쓴 것이다. 상태 한 낱말로 쓴다 (승인됨, 변경됨, 완료)",
26
- "source": "Taxly 화면 낱말 규약"
59
+ "to": [
60
+ [
61
+ "^(.*?)(?:을|를|이|가)? ?([가-힣]+?)(?:했습니다|했다|했어요)\\.?$",
62
+ "$1 $2됨"
63
+ ],
64
+ [
65
+ "^(.*?)(?:이|가)? ?([가-힣]+?)(?:됐습니다|되었습니다|됐다|되었다|됐어요|되었어요)\\.?$",
66
+ "$1 $2됨"
67
+ ],
68
+ [
69
+ "^(.*?)(?:이|가)? ?끝났(?:습니다|다|어요)\\.?$",
70
+ "$1 완료"
71
+ ]
72
+ ],
73
+ "why": "끝난 일을 문장으로 쓴 것이다. `승인됨`, `변경됨`, `완료`처럼 상태를 나타내는 단어로 쓴다",
74
+ "source": ""
27
75
  },
28
76
  {
29
77
  "pattern": "(?:습니다|입니다|합니다|됩니다|세요|십시오|해요|돼요|예요|이에요|있어요|없어요)|(?:한다|된다|있다|없다|이다|아니다|았다|었다|였다|겠다|하다|되다|같다|다르다|않다|는다|온다|간다|본다|낸다|준다|든다)(?=\\s*[.!]?\\s*$)|[가-힣]다\\.|까\\?",
30
- "why": "는 종결어미다. 낱말 자리에 문장을 두지 않는다. 문장이 정말 필요한 글 (장표, 고지, 실패 원인) 은 문장이 허용된 글 모듈로 옮기고 chat 프리셋으로 잰다",
31
- "source": "Taxly 화면 낱말 규약"
78
+ "why": "종결어미다. 단어를 쓸 곳에 문장을 두지 않는다. 문장이 정말 필요한 글(장표, 고지, 실패 원인)은 문장을 쓰는 글 모듈로 옮기고 chat 프리셋으로 검사한다",
79
+ "source": ""
32
80
  }
33
81
  ]
34
82
  }
@@ -2,18 +2,18 @@
2
2
  "entry": [
3
3
  {
4
4
  "pattern": "(?:언제든|안심하|안심해|안심시|걱정 없이|걱정하지|편하게|간편하게|자유롭게|바로 살펴|그대로 두셔도)",
5
- "why": "는 안심시키는 말이다. 정보가 아니므로 지운다",
6
- "source": "Taxly 화면 낱말 규약"
5
+ "why": "안심시키는 말이다. 정보가 아니므로 지운다",
6
+ "source": ""
7
7
  },
8
8
  {
9
9
  "pattern": "(?:살펴보세요|살펴보십시오|살펴봐요|해 보세요|해 보십시오|해 봐요|확인해 보세요|시작해 보세요|이어가세요)",
10
- "why": "는 사용자를 초대하는 말이다. 다음 동작은 단추다",
11
- "source": "Taxly 화면 낱말 규약"
10
+ "why": "사용자에게 해 보라고 권하는 말이다. 다음 동작은 버튼으로 둔다",
11
+ "source": ""
12
12
  },
13
13
  {
14
14
  "pattern": "(?:하시면|하셔도|하실|하신|해 주시면|주시고|드립니다|드리겠습니다|드린다|드려요|보여드립니다|보여 드립니다|부르겠습니다|부르겠다|부를게요)",
15
- "why": "는 접객 말투다. 화면의 글은 낱말이므로 지운다",
16
- "source": "Taxly 화면 낱말 규약"
15
+ "why": "손님을 대하듯 높이는 말투다. 화면의 글은 단어로 쓰므로 지운다",
16
+ "source": ""
17
17
  }
18
18
  ]
19
19
  }
@@ -2,218 +2,178 @@
2
2
  "entry": [
3
3
  {
4
4
  "pattern": "(?<![가-힣a-zA-Z])메타데이터{조사}",
5
- "why": "는 개발 어휘다. 무엇의 정보인지 그 이름으로 쓴다 (계약 정보, 감사 기록)",
6
- "source": "Taxly 화면 낱말 규약"
5
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
6
+ "source": ""
7
7
  },
8
8
  {
9
9
  "pattern": "(?<![가-힣a-zA-Z])컴포넌트{조사}",
10
- "why": "는 개발 어휘다. 사용자가 보는 것의 이름으로 쓴다 (차트, 카드, 표)",
11
- "source": "Taxly 화면 낱말 규약"
10
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
11
+ "source": ""
12
12
  },
13
13
  {
14
14
  "pattern": "(?<![가-힣a-zA-Z])트랜잭션{조사}",
15
- "fix": "작업 단위",
16
- "why": "은 개발 어휘다",
17
- "source": "Taxly 화면 낱말 규약"
15
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
16
+ "source": ""
18
17
  },
19
18
  {
20
19
  "pattern": "(?<![가-힣a-zA-Z])디렉터리{조사}",
21
- "fix": "폴더",
22
- "why": "는 개발 어휘다",
23
- "source": "Taxly 화면 낱말 규약"
20
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
21
+ "source": ""
24
22
  },
25
23
  {
26
24
  "pattern": "(?<![가-힣a-zA-Z])라이브러리{조사}",
27
- "fix": "목록",
28
- "why": "는 개발 어휘다",
29
- "source": "Taxly 화면 낱말 규약"
25
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
26
+ "source": ""
30
27
  },
31
28
  {
32
29
  "pattern": "(?<![가-힣a-zA-Z])백필{조사}",
33
- "fix": "과거 기간 채우기",
34
- "why": "은 개발 어휘다",
35
- "source": "Taxly 화면 낱말 규약"
30
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
31
+ "source": ""
36
32
  },
37
33
  {
38
34
  "pattern": "(?<![가-힣a-zA-Z])스트림{조사}",
39
- "why": "은 개발 어휘다. 무엇이 흐르는지 그 이름으로 쓴다 (전체 행)",
40
- "source": "Taxly 화면 낱말 규약"
35
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
36
+ "source": ""
41
37
  },
42
38
  {
43
39
  "pattern": "(?<![가-힣a-zA-Z])축출{조사}",
44
- "why": "은 개발 어휘다. 누가 무엇을 지우는지 쓴다 (브라우저 삭제 대상)",
45
- "source": "Taxly 화면 낱말 규약"
40
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
41
+ "source": ""
46
42
  },
47
43
  {
48
44
  "pattern": "(?<![가-힣a-zA-Z])원자적{조사}",
49
- "fix": "한 번에",
50
- "why": "은 개발 어휘다",
51
- "source": "Taxly 화면 낱말 규약"
45
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
46
+ "source": ""
52
47
  },
53
48
  {
54
49
  "pattern": "(?<![가-힣a-zA-Z])클립보드{조사}",
55
- "why": "는 개발 어휘다. 복사한 것의 이름으로 쓴다 (링크 복사)",
56
- "source": "Taxly 화면 낱말 규약"
50
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
51
+ "source": ""
57
52
  },
58
53
  {
59
54
  "pattern": "(?<![가-힣a-zA-Z])릴레이{조사}",
60
- "fix": "중계",
61
- "why": "는 개발 어휘다",
62
- "source": "Taxly 화면 낱말 규약"
55
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
56
+ "source": ""
63
57
  },
64
58
  {
65
59
  "pattern": "(?<![가-힣a-zA-Z])릴리스{조사}",
66
- "fix": "배포",
67
- "why": "는 개발 어휘다",
68
- "source": "Taxly 화면 낱말 규약"
60
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
61
+ "source": ""
69
62
  },
70
63
  {
71
64
  "pattern": "(?<![가-힣a-zA-Z])매핑{조사}",
72
- "fix": "연결",
73
- "why": "은 개발 어휘다",
74
- "source": "Taxly 화면 낱말 규약"
65
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
66
+ "source": ""
75
67
  },
76
68
  {
77
69
  "pattern": "(?<![가-힣a-zA-Z])파싱{조사}",
78
- "fix": "해석",
79
- "why": "은 개발 어휘다",
80
- "source": "개발 어휘"
70
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
71
+ "source": ""
81
72
  },
82
73
  {
83
74
  "pattern": "(?<![가-힣a-zA-Z])렌더링{조사}",
84
- "fix": "그리기",
85
- "why": "은 개발 어휘다",
86
- "source": "개발 어휘"
87
- },
88
- {
89
- "pattern": "(?<![가-힣a-zA-Z])캐시{조사}",
90
- "fix": "임시 저장",
91
- "why": "는 개발 어휘다",
92
- "source": "개발 어휘"
75
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
76
+ "source": ""
93
77
  },
94
78
  {
95
79
  "pattern": "(?<![가-힣a-zA-Z])스키마{조사}",
96
- "fix": "구조",
97
- "why": "는 개발 어휘다",
98
- "source": "개발 어휘"
80
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
81
+ "source": ""
99
82
  },
100
83
  {
101
84
  "pattern": "(?<![가-힣a-zA-Z])페이로드{조사}",
102
- "fix": "내용",
103
- "why": "는 개발 어휘다",
104
- "source": "개발 어휘"
85
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
86
+ "source": ""
105
87
  },
106
88
  {
107
89
  "pattern": "(?<![가-힣a-zA-Z])큐{조사}",
108
- "fix": "대기열",
109
- "why": "는 개발 어휘다",
110
- "source": "개발 어휘"
90
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
91
+ "source": ""
111
92
  },
112
93
  {
113
94
  "pattern": "(?<![가-힣a-zA-Z])런타임{조사}",
114
- "fix": "실행 환경",
115
- "why": "은 개발 어휘다",
116
- "source": "개발 어휘"
95
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
96
+ "source": ""
117
97
  },
118
98
  {
119
99
  "pattern": "(?<![가-힣a-zA-Z])쿼리{조사}",
120
- "fix": "조회",
121
- "why": "는 개발 어휘다",
122
- "source": "개발 어휘"
100
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
101
+ "source": ""
123
102
  },
124
103
  {
125
104
  "pattern": "(?<![가-힣a-zA-Z])파라미터{조사}",
126
- "fix": "항목",
127
- "why": "는 개발 어휘다",
128
- "source": "개발 어휘"
105
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
106
+ "source": ""
129
107
  },
130
108
  {
131
109
  "pattern": "(?<![가-힣a-zA-Z])마이그레이션{조사}",
132
- "fix": "이전",
133
- "why": "은 개발 어휘다",
134
- "source": "개발 어휘"
110
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
111
+ "source": ""
135
112
  },
136
113
  {
137
114
  "pattern": "(?<![가-힣a-zA-Z])타임아웃{조사}",
138
- "fix": "시간 초과",
139
- "why": "은 개발 어휘다",
140
- "source": "개발 어휘"
115
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
116
+ "source": ""
141
117
  },
142
118
  {
143
119
  "pattern": "(?<![가-힣a-zA-Z])폴링{조사}",
144
- "fix": "주기 확인",
145
- "why": "은 개발 어휘다",
146
- "source": "개발 어휘"
147
- },
148
- {
149
- "pattern": "(?<![가-힣a-zA-Z])스냅샷{조사}",
150
- "fix": "저장본",
151
- "why": "은 개발 어휘다",
152
- "source": "개발 어휘"
120
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
121
+ "source": ""
153
122
  },
154
123
  {
155
124
  "pattern": "(?<![가-힣a-zA-Z])엔드포인트{조사}",
156
- "fix": "주소",
157
- "why": "는 개발 어휘다",
158
- "source": "개발 어휘"
125
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
126
+ "source": ""
159
127
  },
160
128
  {
161
129
  "pattern": "(?<![가-힣a-zA-Z])리다이렉트{조사}",
162
- "fix": "이동",
163
- "why": "는 개발 어휘다",
164
- "source": "개발 어휘"
130
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
131
+ "source": ""
165
132
  },
166
133
  {
167
134
  "pattern": "(?<![가-힣a-zA-Z])롤백{조사}",
168
- "fix": "되돌리기",
169
- "why": "은 개발 어휘다",
170
- "source": "개발 어휘"
135
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
136
+ "source": ""
171
137
  },
172
138
  {
173
139
  "pattern": "(?<![가-힣a-zA-Z])스코프{조사}",
174
- "fix": "범위",
175
- "why": "는 개발 어휘다",
176
- "source": "개발 어휘"
140
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
141
+ "source": ""
177
142
  },
178
143
  {
179
144
  "pattern": "(?<![가-힣a-zA-Z])뷰포트{조사}",
180
- "fix": "화면",
181
- "why": "는 개발 어휘다",
182
- "source": "개발 어휘"
145
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
146
+ "source": ""
183
147
  },
184
148
  {
185
149
  "pattern": "(?<![가-힣a-zA-Z])오버플로{조사}",
186
- "fix": "넘침",
187
- "why": "는 개발 어휘다",
188
- "source": "개발 어휘"
150
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
151
+ "source": ""
189
152
  },
190
153
  {
191
154
  "pattern": "(?<![가-힣a-zA-Z])세그먼트{조사}",
192
- "fix": "구간",
193
- "why": "는 개발 어휘다",
194
- "source": "개발 어휘"
155
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
156
+ "source": ""
195
157
  },
196
158
  {
197
159
  "pattern": "(?<![가-힣a-zA-Z])프로퍼티{조사}",
198
- "fix": "속성",
199
- "why": "는 개발 어휘다",
200
- "source": "개발 어휘"
160
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
161
+ "source": ""
201
162
  },
202
163
  {
203
164
  "pattern": "(?<![가-힣a-zA-Z])레거시{조사}",
204
- "fix": "이전 방식",
205
- "why": "는 개발 어휘다",
206
- "source": "개발 어휘"
165
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
166
+ "source": ""
207
167
  },
208
168
  {
209
169
  "pattern": "(?<![가-힣a-zA-Z])(?:핸들러|리스너|인스턴스|스레드|버퍼|포인터|프록시|래퍼|헬퍼|픽스처|디버그|빌드|브랜치|머지|해시|워커|플래그|이스케이프|직렬화|역직렬화){조사}",
210
- "why": "는 개발 어휘다. 사용자에게 보이는 것의 이름으로 쓴다",
211
- "source": "개발 어휘"
170
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
171
+ "source": ""
212
172
  },
213
173
  {
214
174
  "pattern": "(?<![가-힣a-zA-Z])(?:콜백|소켓|스텁|싱글턴|리팩터링|리팩토링|디버깅|로직|커밋|체크섬|데몬|널){조사}",
215
- "why": "은 개발 어휘다. 사용자에게 보이는 것의 이름으로 쓴다",
216
- "source": "개발 어휘"
175
+ "why": "문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
176
+ "source": ""
217
177
  }
218
178
  ]
219
179
  }
package/data/spacing.json CHANGED
@@ -3,61 +3,61 @@
3
3
  {
4
4
  "pattern": "(?![실술])({ㄹ})수 ?(있|없)",
5
5
  "fix": "$1 수 $2",
6
- "why": "수 는 의존 명사라 앞말과 띄어 쓴다. 할 수 있다",
6
+ "why": "의존 명사 `수`를 앞말과 띄어 `할 수 있다`로 쓴다",
7
7
  "source": "한글 맞춤법 제42항"
8
8
  },
9
9
  {
10
10
  "pattern": "(?![실술])({ㄹ})수밖에",
11
11
  "fix": "$1 수밖에",
12
- "why": "수 는 의존 명사라 띄어 쓰고 조사 밖에 는 붙여 쓴다. 할 수밖에",
12
+ "why": "의존 명사 `수`는 띄어 쓰고 조사 `밖에`는 붙여 써서 `할 수밖에`로 쓴다",
13
13
  "source": "한글 맞춤법 제41항, 제42항"
14
14
  },
15
15
  {
16
16
  "pattern": "수 밖에(?![가-힣])",
17
17
  "fix": "수밖에",
18
- "why": "밖에 는 조사라 앞말에 붙여 쓴다",
18
+ "why": "조사 `밖에`를 앞말에 붙여 `수밖에`로 쓴다",
19
19
  "source": "한글 맞춤법 제41항"
20
20
  },
21
21
  {
22
22
  "pattern": "(것|거)같(?=[다아은을지네습])",
23
23
  "fix": "$1 같",
24
- "why": "것 과 같다 는 다른 낱말이라 띄어 쓴다. 것 같다",
24
+ "why": "`것`과 `같다`가 다른 단어라 `것 같다`로 띄어 쓴다",
25
25
  "source": "한글 맞춤법 제42항"
26
26
  },
27
27
  {
28
28
  "pattern": "뿐만아니라",
29
29
  "fix": "뿐만 아니라",
30
- "why": "아니라 는 용언이라 앞말과 띄어 쓴다",
31
- "source": "한글 맞춤법 제2항 (문장의 각 단어는 띄어 쓴다)"
30
+ "why": "`아니라`가 용언이라 앞말과 띄어 `뿐만 아니라`로 쓴다",
31
+ "source": "한글 맞춤법 제2항, 문장의 각 단어는 띄어 쓴다"
32
32
  },
33
33
  {
34
34
  "pattern": "그럼에도불구하고",
35
35
  "fix": "그럼에도 불구하고",
36
- "why": "불구하고 는 용언이라 앞말과 띄어 쓴다",
36
+ "why": "`불구하고`가 용언이라 앞말과 띄어 `그럼에도 불구하고`로 쓴다",
37
37
  "source": "한글 맞춤법 제2항"
38
38
  },
39
39
  {
40
40
  "pattern": "한번도(?![가-힣])",
41
41
  "fix": "한 번도",
42
- "why": "횟수를 세는 번 은 단위 명사라 띄어 쓴다. 한번 은 시도나 강조일 때만 붙인다",
42
+ "why": "횟수를 세는 단위 명사 `번`을 띄어 `한 번도`로 쓴다. `한번`은 시도나 강조일 때만 붙여 쓴다",
43
43
  "source": "한글 맞춤법 제43항"
44
44
  },
45
45
  {
46
46
  "pattern": "(두|세|네|다섯|여섯|일곱|여덟|아홉|열)번(?![가-힣])",
47
47
  "fix": "$1 번",
48
- "why": "횟수를 세는 번 은 단위 명사라 띄어 쓴다",
48
+ "why": "횟수를 세는 단위 명사 `번`을 띄어 쓴다",
49
49
  "source": "한글 맞춤법 제43항"
50
50
  },
51
51
  {
52
52
  "pattern": "({ㄹ})줄 (?=알|모르|아는|모르는|압|몰)",
53
53
  "fix": "$1 줄 ",
54
- "why": "방법이나 셈을 뜻하는 줄 은 의존 명사라 띄어 쓴다. 할 줄 안다",
54
+ "why": "방법이나 셈을 뜻하는 의존 명사 `줄`을 띄어 `할 줄 안다`로 쓴다",
55
55
  "source": "한글 맞춤법 제42항"
56
56
  },
57
57
  {
58
- "pattern": "({ㄹ})때(?=[가는도마다에의]?(?![가-힣]))",
58
+ "pattern": "(?<!물때)((?!물){ㄹ})때(?=[가는도마다에의]?(?![가-힣]))",
59
59
  "fix": "$1 때",
60
- "why": "때 는 명사라 관형형 뒤에서 띄어 쓴다. 할 때",
60
+ "why": "명사 `때`를 관형형 뒤에서 띄어 `할 때`로 쓴다",
61
61
  "source": "한글 맞춤법 제2항"
62
62
  }
63
63
  ]