@tai-kun/vp-lint-plugins 0.0.4 → 0.0.6

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 (79) hide show
  1. package/dist/src/index.d.ts +1 -6
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +1 -6
  4. package/dist/src/plugin.js +2 -12
  5. package/dist/src/rules/_blank-line-utils.d.ts +30 -0
  6. package/dist/src/rules/_blank-line-utils.d.ts.map +1 -0
  7. package/dist/src/rules/_blank-line-utils.js +103 -0
  8. package/dist/src/rules/{comment-utils.d.ts → _comment-utils.d.ts} +1 -1
  9. package/dist/src/rules/_comment-utils.d.ts.map +1 -0
  10. package/dist/src/rules/{comment-utils.js → _comment-utils.js} +2 -1
  11. package/dist/src/rules/{jsdoc-utils.d.ts → _jsdoc-utils.d.ts} +1 -1
  12. package/dist/src/rules/_jsdoc-utils.d.ts.map +1 -0
  13. package/dist/src/rules/{jsdoc-utils.js → _jsdoc-utils.js} +1 -1
  14. package/dist/src/rules/{object-sort-utils.d.ts → _object-sort-utils.d.ts} +1 -1
  15. package/dist/src/rules/_object-sort-utils.d.ts.map +1 -0
  16. package/dist/src/rules/blank-line.d.ts +5 -14
  17. package/dist/src/rules/blank-line.d.ts.map +1 -1
  18. package/dist/src/rules/blank-line.js +426 -66
  19. package/dist/src/rules/comment-japanese-spacing.js +1 -1
  20. package/dist/src/rules/comment-one-sentence-per-line.d.ts +1 -1
  21. package/dist/src/rules/comment-one-sentence-per-line.js +2 -2
  22. package/dist/src/rules/jsdoc-param-order.js +1 -1
  23. package/dist/src/rules/jsdoc-tag-lines.js +1 -1
  24. package/dist/src/rules/jsdoc-tag-order.js +1 -1
  25. package/dist/src/rules/object-properties-newline.d.ts +2 -1
  26. package/dist/src/rules/object-properties-newline.d.ts.map +1 -1
  27. package/dist/src/rules/object-properties-newline.js +39 -8
  28. package/dist/src/rules/overload-signatures-adjacent.js +1 -1
  29. package/dist/src/rules/sort-import-export-specifiers.js +1 -1
  30. package/dist/src/rules/sort-jsx-props.js +1 -1
  31. package/dist/src/rules/sort-object-properties.js +1 -1
  32. package/dist/src/rules/sort-type-members.js +1 -1
  33. package/package.json +1 -1
  34. package/src/index.ts +1 -6
  35. package/src/plugin.ts +2 -12
  36. package/src/rules/_blank-line-utils.ts +165 -0
  37. package/src/rules/{comment-utils.ts → _comment-utils.ts} +2 -1
  38. package/src/rules/{jsdoc-utils.ts → _jsdoc-utils.ts} +1 -1
  39. package/src/rules/blank-line.ts +555 -97
  40. package/src/rules/comment-japanese-spacing.ts +2 -2
  41. package/src/rules/comment-one-sentence-per-line.ts +3 -3
  42. package/src/rules/jsdoc-param-order.ts +1 -1
  43. package/src/rules/jsdoc-tag-lines.ts +2 -2
  44. package/src/rules/jsdoc-tag-order.ts +1 -1
  45. package/src/rules/object-properties-newline.ts +93 -10
  46. package/src/rules/overload-signatures-adjacent.ts +1 -1
  47. package/src/rules/sort-import-export-specifiers.ts +1 -1
  48. package/src/rules/sort-jsx-props.ts +1 -1
  49. package/src/rules/sort-object-properties.ts +1 -1
  50. package/src/rules/sort-type-members.ts +1 -1
  51. package/dist/src/rules/blank-line-after-control-block.d.ts +0 -7
  52. package/dist/src/rules/blank-line-after-control-block.d.ts.map +0 -1
  53. package/dist/src/rules/blank-line-after-control-block.js +0 -54
  54. package/dist/src/rules/blank-line-after-declaration.d.ts +0 -7
  55. package/dist/src/rules/blank-line-after-declaration.d.ts.map +0 -1
  56. package/dist/src/rules/blank-line-after-declaration.js +0 -79
  57. package/dist/src/rules/blank-line-after-variable-declaration.d.ts +0 -9
  58. package/dist/src/rules/blank-line-after-variable-declaration.d.ts.map +0 -1
  59. package/dist/src/rules/blank-line-after-variable-declaration.js +0 -118
  60. package/dist/src/rules/blank-line-before-return.d.ts +0 -7
  61. package/dist/src/rules/blank-line-before-return.d.ts.map +0 -1
  62. package/dist/src/rules/blank-line-before-return.js +0 -81
  63. package/dist/src/rules/blank-line-between-class-members.d.ts +0 -8
  64. package/dist/src/rules/blank-line-between-class-members.d.ts.map +0 -1
  65. package/dist/src/rules/blank-line-between-class-members.js +0 -85
  66. package/dist/src/rules/blank-line-between-switch-cases.d.ts +0 -8
  67. package/dist/src/rules/blank-line-between-switch-cases.d.ts.map +0 -1
  68. package/dist/src/rules/blank-line-between-switch-cases.js +0 -45
  69. package/dist/src/rules/comment-utils.d.ts.map +0 -1
  70. package/dist/src/rules/jsdoc-utils.d.ts.map +0 -1
  71. package/dist/src/rules/object-sort-utils.d.ts.map +0 -1
  72. package/src/rules/blank-line-after-control-block.ts +0 -82
  73. package/src/rules/blank-line-after-declaration.ts +0 -106
  74. package/src/rules/blank-line-after-variable-declaration.ts +0 -165
  75. package/src/rules/blank-line-before-return.ts +0 -101
  76. package/src/rules/blank-line-between-class-members.ts +0 -112
  77. package/src/rules/blank-line-between-switch-cases.ts +0 -53
  78. /package/dist/src/rules/{object-sort-utils.js → _object-sort-utils.js} +0 -0
  79. /package/src/rules/{object-sort-utils.ts → _object-sort-utils.ts} +0 -0
@@ -1,112 +0,0 @@
1
- import { defineRule } from "vite-plus/lint/plugins";
2
- import type { ESTree } from "vite-plus/lint/plugins";
3
-
4
- import { hasBlankLine, getBlankLineFix, getInsertionTarget } from "./blank-line.js";
5
-
6
- function getKeyName(member: ESTree.ClassElement): string | null {
7
- if (member.type === "TSIndexSignature" || member.type === "StaticBlock") {
8
- return null;
9
- }
10
-
11
- if (member.computed) {
12
- return null;
13
- }
14
-
15
- const key = member.key;
16
-
17
- if (key.type === "Identifier") {
18
- return key.name;
19
- }
20
-
21
- if (key.type === "Literal" && (typeof key.value === "string" || typeof key.value === "number")) {
22
- return String(key.value);
23
- }
24
-
25
- return null;
26
- }
27
-
28
- function isOverload(member: ESTree.ClassElement): boolean {
29
- return member.type === "MethodDefinition" && member.value.body === null;
30
- }
31
-
32
- function isGetterSetterPair(previous: ESTree.ClassElement, next: ESTree.ClassElement): boolean {
33
- if (previous.type !== "MethodDefinition" || next.type !== "MethodDefinition") {
34
- return false;
35
- }
36
-
37
- if (
38
- !(
39
- (previous.kind === "get" && next.kind === "set") ||
40
- (previous.kind === "set" && next.kind === "get")
41
- )
42
- ) {
43
- return false;
44
- }
45
-
46
- const previousName = getKeyName(previous);
47
- const nextName = getKeyName(next);
48
-
49
- return previousName !== null && previousName === nextName;
50
- }
51
-
52
- function getMemberStart(member: ESTree.ClassElement): ESTree.ClassElement | ESTree.Decorator {
53
- if (member.type === "TSIndexSignature" || member.type === "StaticBlock") {
54
- return member;
55
- }
56
-
57
- return member.decorators[0] ?? member;
58
- }
59
-
60
- /**
61
- * クラスメンバーの間に空行を 1 行以上確保します。
62
- *
63
- * オーバーロード署名と getter/setter のペアは連続させます。
64
- */
65
- const blankLineBetweenClassMembers = defineRule({
66
- meta: {
67
- docs: {
68
- description: "Require a blank line between class members.",
69
- },
70
- type: "layout",
71
- fixable: "whitespace",
72
- messages: {
73
- blankLine: "Expected a blank line between class members.",
74
- },
75
- },
76
- create(context) {
77
- const sourceCode = context.sourceCode;
78
-
79
- return {
80
- ClassBody(node): void {
81
- for (let index = 1; index < node.body.length; index += 1) {
82
- const previous = node.body[index - 1];
83
- const next = node.body[index];
84
-
85
- if (previous === undefined || next === undefined) {
86
- continue;
87
- }
88
-
89
- if (isOverload(previous) || isGetterSetterPair(previous, next)) {
90
- continue;
91
- }
92
-
93
- const target = getInsertionTarget(previous, getMemberStart(next), sourceCode);
94
-
95
- if (hasBlankLine(previous, target)) {
96
- continue;
97
- }
98
-
99
- context.report({
100
- fix(fixer) {
101
- return getBlankLineFix(fixer, sourceCode, previous, target);
102
- },
103
- node: next,
104
- messageId: "blankLine",
105
- });
106
- }
107
- },
108
- };
109
- },
110
- });
111
-
112
- export default blankLineBetweenClassMembers;
@@ -1,53 +0,0 @@
1
- import { defineRule } from "vite-plus/lint/plugins";
2
-
3
- import { hasBlankLine, getBlankLineFix, getInsertionTarget } from "./blank-line.js";
4
-
5
- /**
6
- * 空でない switch の case の間に空行を 1 行以上確保します。
7
- *
8
- * 連続する case はフォールスルーとみなし、対象外にします。
9
- */
10
- const blankLineBetweenSwitchCases = defineRule({
11
- meta: {
12
- docs: {
13
- description: "Require a blank line between non-empty switch cases.",
14
- },
15
- type: "layout",
16
- fixable: "whitespace",
17
- messages: {
18
- blankLine: "Expected a blank line between switch cases.",
19
- },
20
- },
21
- create(context) {
22
- const sourceCode = context.sourceCode;
23
-
24
- return {
25
- SwitchStatement(node): void {
26
- for (let index = 1; index < node.cases.length; index += 1) {
27
- const previous = node.cases[index - 1];
28
- const next = node.cases[index];
29
-
30
- if (previous === undefined || next === undefined || previous.consequent.length === 0) {
31
- continue;
32
- }
33
-
34
- const target = getInsertionTarget(previous, next, sourceCode);
35
-
36
- if (hasBlankLine(previous, target)) {
37
- continue;
38
- }
39
-
40
- context.report({
41
- fix(fixer) {
42
- return getBlankLineFix(fixer, sourceCode, previous, target);
43
- },
44
- node: next,
45
- messageId: "blankLine",
46
- });
47
- }
48
- },
49
- };
50
- },
51
- });
52
-
53
- export default blankLineBetweenSwitchCases;