hanlint 0.0.16 → 0.0.18

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 (54) hide show
  1. package/README.md +12 -10
  2. package/data/calqueFrame.json +60 -0
  3. package/data/cliches.json +10 -0
  4. package/data/collocationStops.txt +28 -0
  5. package/data/easyWords.json +0 -234
  6. package/data/exemplars.json +23 -2
  7. package/data/koreanProse.txt +64 -0
  8. package/data/patterns.json +2 -2
  9. package/data/phraseRepeat.json +11 -0
  10. package/data/ruleCategories.json +2 -0
  11. package/data/ruleDocs.json +18 -16
  12. package/data/ruleMechanisms.json +2 -0
  13. package/data/screenNarration.json +7 -7
  14. package/data/screenSentence.json +56 -8
  15. package/data/screenTone.json +4 -4
  16. package/data/screenWord.json +48 -88
  17. package/data/spacing.json +1 -1
  18. package/data/usageCounts.report.json +1676 -0
  19. package/data/version.json +1 -1
  20. package/package.json +1 -1
  21. package/src/analysis/index.js +1 -1
  22. package/src/analysis/tokenize.js +30 -15
  23. package/src/cli/help.js +3 -2
  24. package/src/cli/main.js +227 -88
  25. package/src/cli/walk.js +1 -1
  26. package/src/cli/welcome.js +1 -1
  27. package/src/config/settings.js +17 -0
  28. package/src/data/profiles.js +2 -2
  29. package/src/data/prose.js +27 -0
  30. package/src/document/sourceText.js +199 -36
  31. package/src/fingerprint/build.js +13 -4
  32. package/src/fingerprint/dictionaries.js +31 -4
  33. package/src/fingerprint/markers.js +22 -0
  34. package/src/index.js +3 -1
  35. package/src/report/compactReport.js +7 -3
  36. package/src/report/jsonReport.js +2 -2
  37. package/src/report/sheet.js +0 -0
  38. package/src/report/textReport.js +27 -8
  39. package/src/report/writingSpec.js +3 -3
  40. package/src/rules/registry.js +5 -1
  41. package/src/rules/screen/screenWord.js +2 -1
  42. package/src/rules/sentence/calqueFrame.js +11 -0
  43. package/src/rules/sentence/cliche.js +7 -3
  44. package/src/rules/sentence/hardWord.js +6 -3
  45. package/src/rules/sentence/japaneseLoan.js +7 -3
  46. package/src/rules/sentence/nounPile.js +10 -4
  47. package/src/rules/sentence/phraseRepeat.js +53 -0
  48. package/src/rules/sentence/redundantPair.js +7 -3
  49. package/src/rules/sentence/translationese.js +7 -3
  50. package/src/rules/shared/dictionaryRule.js +37 -6
  51. package/src/text.js +1 -1
  52. package/src/usage/counts.js +54 -0
  53. package/src/usage/index.js +8 -0
  54. package/src/usage/sentences.js +681 -0
@@ -2,217 +2,177 @@
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": "은 개발 어휘다",
70
+ "why": "은 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
80
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": "는 개발 어휘다",
75
+ "why": "은 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
92
76
  "source": "개발 어휘"
93
77
  },
94
78
  {
95
79
  "pattern": "(?<![가-힣a-zA-Z])스키마{조사}",
96
- "fix": "구조",
97
- "why": "는 개발 어휘다",
80
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
98
81
  "source": "개발 어휘"
99
82
  },
100
83
  {
101
84
  "pattern": "(?<![가-힣a-zA-Z])페이로드{조사}",
102
- "fix": "내용",
103
- "why": "는 개발 어휘다",
85
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
104
86
  "source": "개발 어휘"
105
87
  },
106
88
  {
107
89
  "pattern": "(?<![가-힣a-zA-Z])큐{조사}",
108
- "fix": "대기열",
109
- "why": "는 개발 어휘다",
90
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
110
91
  "source": "개발 어휘"
111
92
  },
112
93
  {
113
94
  "pattern": "(?<![가-힣a-zA-Z])런타임{조사}",
114
- "fix": "실행 환경",
115
- "why": "은 개발 어휘다",
95
+ "why": "은 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
116
96
  "source": "개발 어휘"
117
97
  },
118
98
  {
119
99
  "pattern": "(?<![가-힣a-zA-Z])쿼리{조사}",
120
- "fix": "조회",
121
- "why": "는 개발 어휘다",
100
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
122
101
  "source": "개발 어휘"
123
102
  },
124
103
  {
125
104
  "pattern": "(?<![가-힣a-zA-Z])파라미터{조사}",
126
- "fix": "항목",
127
- "why": "는 개발 어휘다",
105
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
128
106
  "source": "개발 어휘"
129
107
  },
130
108
  {
131
109
  "pattern": "(?<![가-힣a-zA-Z])마이그레이션{조사}",
132
- "fix": "이전",
133
- "why": "은 개발 어휘다",
110
+ "why": "은 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
134
111
  "source": "개발 어휘"
135
112
  },
136
113
  {
137
114
  "pattern": "(?<![가-힣a-zA-Z])타임아웃{조사}",
138
- "fix": "시간 초과",
139
- "why": "은 개발 어휘다",
115
+ "why": "은 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
140
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": "은 개발 어휘다",
120
+ "why": "은 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
152
121
  "source": "개발 어휘"
153
122
  },
154
123
  {
155
124
  "pattern": "(?<![가-힣a-zA-Z])엔드포인트{조사}",
156
- "fix": "주소",
157
- "why": "는 개발 어휘다",
125
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
158
126
  "source": "개발 어휘"
159
127
  },
160
128
  {
161
129
  "pattern": "(?<![가-힣a-zA-Z])리다이렉트{조사}",
162
- "fix": "이동",
163
- "why": "는 개발 어휘다",
130
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
164
131
  "source": "개발 어휘"
165
132
  },
166
133
  {
167
134
  "pattern": "(?<![가-힣a-zA-Z])롤백{조사}",
168
- "fix": "되돌리기",
169
- "why": "은 개발 어휘다",
135
+ "why": "은 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
170
136
  "source": "개발 어휘"
171
137
  },
172
138
  {
173
139
  "pattern": "(?<![가-힣a-zA-Z])스코프{조사}",
174
- "fix": "범위",
175
- "why": "는 개발 어휘다",
140
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
176
141
  "source": "개발 어휘"
177
142
  },
178
143
  {
179
144
  "pattern": "(?<![가-힣a-zA-Z])뷰포트{조사}",
180
- "fix": "화면",
181
- "why": "는 개발 어휘다",
145
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
182
146
  "source": "개발 어휘"
183
147
  },
184
148
  {
185
149
  "pattern": "(?<![가-힣a-zA-Z])오버플로{조사}",
186
- "fix": "넘침",
187
- "why": "는 개발 어휘다",
150
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
188
151
  "source": "개발 어휘"
189
152
  },
190
153
  {
191
154
  "pattern": "(?<![가-힣a-zA-Z])세그먼트{조사}",
192
- "fix": "구간",
193
- "why": "는 개발 어휘다",
155
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
194
156
  "source": "개발 어휘"
195
157
  },
196
158
  {
197
159
  "pattern": "(?<![가-힣a-zA-Z])프로퍼티{조사}",
198
- "fix": "속성",
199
- "why": "는 개발 어휘다",
160
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
200
161
  "source": "개발 어휘"
201
162
  },
202
163
  {
203
164
  "pattern": "(?<![가-힣a-zA-Z])레거시{조사}",
204
- "fix": "이전 방식",
205
- "why": "는 개발 어휘다",
165
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
206
166
  "source": "개발 어휘"
207
167
  },
208
168
  {
209
169
  "pattern": "(?<![가-힣a-zA-Z])(?:핸들러|리스너|인스턴스|스레드|버퍼|포인터|프록시|래퍼|헬퍼|픽스처|디버그|빌드|브랜치|머지|해시|워커|플래그|이스케이프|직렬화|역직렬화){조사}",
210
- "why": "는 개발 어휘다. 사용자에게 보이는 것의 이름으로 쓴다",
170
+ "why": "는 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
211
171
  "source": "개발 어휘"
212
172
  },
213
173
  {
214
174
  "pattern": "(?<![가-힣a-zA-Z])(?:콜백|소켓|스텁|싱글턴|리팩터링|리팩토링|디버깅|로직|커밋|체크섬|데몬|널){조사}",
215
- "why": "은 개발 어휘다. 사용자에게 보이는 것의 이름으로 쓴다",
175
+ "why": "은 문맥에 따라 설명이 필요한 용어다. 이름을 유지하고 정의나 예시를 덧붙일지 검토한다",
216
176
  "source": "개발 어휘"
217
177
  }
218
178
  ]
package/data/spacing.json CHANGED
@@ -55,7 +55,7 @@
55
55
  "source": "한글 맞춤법 제42항"
56
56
  },
57
57
  {
58
- "pattern": "({ㄹ})때(?=[가는도마다에의]?(?![가-힣]))",
58
+ "pattern": "(?<!물때)((?!물){ㄹ})때(?=[가는도마다에의]?(?![가-힣]))",
59
59
  "fix": "$1 때",
60
60
  "why": "때 는 명사라 관형형 뒤에서 띄어 쓴다. 할 때",
61
61
  "source": "한글 맞춤법 제2항"