@enjoys/context-engine 1.5.0 → 1.6.0

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 (238) hide show
  1. package/README.md +214 -62
  2. package/data/codeActions/css.json +119 -111
  3. package/data/codeActions/dart.json +190 -31
  4. package/data/codeActions/nestjs.json +124 -124
  5. package/data/codeActions/r.json +69 -71
  6. package/data/codeActions/sb.json +2 -2
  7. package/data/codeActions/scala.json +154 -26
  8. package/data/codeActions/shadcn.json +112 -112
  9. package/data/codeActions/shell.json +2 -2
  10. package/data/codeActions/tailwindcss.json +83 -76
  11. package/data/codeLens/abap.json +4 -2
  12. package/data/codeLens/angular.json +141 -22
  13. package/data/codeLens/apex.json +4 -2
  14. package/data/codeLens/awk.json +2 -2
  15. package/data/codeLens/azcli.json +4 -3
  16. package/data/codeLens/bicep.json +4 -2
  17. package/data/codeLens/c.json +4 -4
  18. package/data/codeLens/caddy.json +2 -2
  19. package/data/codeLens/cameligo.json +4 -2
  20. package/data/codeLens/clojure.json +4 -2
  21. package/data/codeLens/coffee.json +4 -2
  22. package/data/codeLens/crontab.json +2 -2
  23. package/data/codeLens/doctest.json +4 -3
  24. package/data/codeLens/ecl.json +4 -2
  25. package/data/codeLens/elixir.json +4 -2
  26. package/data/codeLens/flow9.json +4 -2
  27. package/data/codeLens/freemarker2.json +4 -2
  28. package/data/codeLens/hcl.json +4 -4
  29. package/data/codeLens/html.json +4 -4
  30. package/data/codeLens/julia.json +4 -2
  31. package/data/codeLens/less.json +4 -2
  32. package/data/codeLens/lexon.json +4 -2
  33. package/data/codeLens/liquid.json +4 -2
  34. package/data/codeLens/lua.json +4 -4
  35. package/data/codeLens/m3.json +4 -2
  36. package/data/codeLens/mdx.json +4 -2
  37. package/data/codeLens/mips.json +4 -2
  38. package/data/codeLens/msdax.json +4 -2
  39. package/data/codeLens/mysql.json +4 -2
  40. package/data/codeLens/nginx.json +4 -4
  41. package/data/codeLens/objective-c.json +4 -2
  42. package/data/codeLens/pascal.json +4 -2
  43. package/data/codeLens/pascaligo.json +4 -2
  44. package/data/codeLens/pgsql.json +4 -2
  45. package/data/codeLens/pla.json +4 -3
  46. package/data/codeLens/postiats.json +4 -2
  47. package/data/codeLens/powerquery.json +4 -2
  48. package/data/codeLens/qsharp.json +4 -2
  49. package/data/codeLens/razor.json +4 -2
  50. package/data/codeLens/redshift.json +4 -2
  51. package/data/codeLens/restructuredtext.json +4 -2
  52. package/data/codeLens/sb.json +4 -2
  53. package/data/codeLens/scheme.json +4 -2
  54. package/data/codeLens/scss.json +4 -2
  55. package/data/codeLens/shadcn.json +117 -89
  56. package/data/codeLens/shell.json +4 -2
  57. package/data/codeLens/sol.json +4 -2
  58. package/data/codeLens/sparql.json +4 -2
  59. package/data/codeLens/st.json +4 -2
  60. package/data/codeLens/systemverilog.json +4 -2
  61. package/data/codeLens/tcl.json +4 -2
  62. package/data/codeLens/twig.json +4 -2
  63. package/data/codeLens/vb.json +4 -2
  64. package/data/codeLens/wgsl.json +4 -2
  65. package/data/codeLens/xml.json +4 -4
  66. package/data/commands/ab.json +80 -0
  67. package/data/commands/act.json +82 -0
  68. package/data/commands/age.json +68 -0
  69. package/data/commands/argocd.json +109 -0
  70. package/data/commands/asdf.json +102 -0
  71. package/data/commands/astro.json +106 -0
  72. package/data/commands/at.json +52 -0
  73. package/data/commands/babel.json +83 -0
  74. package/data/commands/buildah.json +105 -0
  75. package/data/commands/cabal.json +114 -0
  76. package/data/commands/cdk.json +127 -0
  77. package/data/commands/changeset.json +68 -0
  78. package/data/commands/checkov.json +75 -0
  79. package/data/commands/commitlint.json +60 -0
  80. package/data/commands/concurrently.json +62 -0
  81. package/data/commands/conventional-commits.json +30 -0
  82. package/data/commands/cosign.json +103 -0
  83. package/data/commands/crane.json +109 -0
  84. package/data/commands/cron.json +29 -0
  85. package/data/commands/crystal.json +102 -0
  86. package/data/commands/csvkit.json +96 -0
  87. package/data/commands/cut.json +62 -0
  88. package/data/commands/df.json +66 -0
  89. package/data/commands/diff.json +72 -0
  90. package/data/commands/dig.json +67 -0
  91. package/data/commands/dmesg.json +65 -0
  92. package/data/commands/dotnet.json +136 -0
  93. package/data/commands/du.json +71 -0
  94. package/data/commands/echo.json +45 -0
  95. package/data/commands/eksctl.json +101 -0
  96. package/data/commands/eleventy.json +73 -0
  97. package/data/commands/entr.json +50 -0
  98. package/data/commands/env.json +43 -0
  99. package/data/commands/erlang.json +76 -0
  100. package/data/commands/esbuild.json +91 -0
  101. package/data/commands/ffmpeg.json +115 -0
  102. package/data/commands/fnm.json +100 -0
  103. package/data/commands/free.json +63 -0
  104. package/data/commands/func.json +89 -0
  105. package/data/commands/gatsby.json +106 -0
  106. package/data/commands/ghc.json +79 -0
  107. package/data/commands/ghostscript.json +77 -0
  108. package/data/commands/git-lfs.json +95 -0
  109. package/data/commands/gpg.json +112 -0
  110. package/data/commands/grafana-cli.json +97 -0
  111. package/data/commands/grpcurl.json +74 -0
  112. package/data/commands/grype.json +75 -0
  113. package/data/commands/hadolint.json +61 -0
  114. package/data/commands/head.json +48 -0
  115. package/data/commands/hexo.json +101 -0
  116. package/data/commands/hey.json +91 -0
  117. package/data/commands/hostname.json +52 -0
  118. package/data/commands/httpie.json +101 -0
  119. package/data/commands/hugo.json +106 -0
  120. package/data/commands/husky.json +52 -0
  121. package/data/commands/id.json +50 -0
  122. package/data/commands/ifconfig.json +47 -0
  123. package/data/commands/imagemagick.json +117 -0
  124. package/data/commands/inotifywait.json +70 -0
  125. package/data/commands/ip.json +103 -0
  126. package/data/commands/istioctl.json +105 -0
  127. package/data/commands/javac.json +87 -0
  128. package/data/commands/jekyll.json +105 -0
  129. package/data/commands/kill.json +57 -0
  130. package/data/commands/killall.json +60 -0
  131. package/data/commands/kind.json +98 -0
  132. package/data/commands/ko.json +89 -0
  133. package/data/commands/kustomize.json +70 -0
  134. package/data/commands/latex.json +65 -0
  135. package/data/commands/lerna.json +125 -0
  136. package/data/commands/ln.json +54 -0
  137. package/data/commands/lsof.json +69 -0
  138. package/data/commands/manifest.json +1 -1
  139. package/data/commands/miller.json +58 -0
  140. package/data/commands/mise.json +107 -0
  141. package/data/commands/mix.json +128 -0
  142. package/data/commands/mkdir.json +43 -0
  143. package/data/commands/mount.json +63 -0
  144. package/data/commands/nc.json +71 -0
  145. package/data/commands/netstat.json +74 -0
  146. package/data/commands/nim.json +104 -0
  147. package/data/commands/nohup.json +28 -0
  148. package/data/commands/nslookup.json +46 -0
  149. package/data/commands/nvm.json +91 -0
  150. package/data/commands/ocaml.json +68 -0
  151. package/data/commands/opam.json +111 -0
  152. package/data/commands/pandoc.json +100 -0
  153. package/data/commands/parallel.json +73 -0
  154. package/data/commands/patch.json +55 -0
  155. package/data/commands/ping.json +73 -0
  156. package/data/commands/podman.json +151 -0
  157. package/data/commands/postman.json +82 -0
  158. package/data/commands/pre-commit.json +101 -0
  159. package/data/commands/prometheus.json +65 -0
  160. package/data/commands/pyenv.json +87 -0
  161. package/data/commands/q.json +63 -0
  162. package/data/commands/rbenv.json +85 -0
  163. package/data/commands/rebar3.json +110 -0
  164. package/data/commands/remix.json +80 -0
  165. package/data/commands/rollup.json +74 -0
  166. package/data/commands/route.json +53 -0
  167. package/data/commands/rustc.json +90 -0
  168. package/data/commands/sam.json +122 -0
  169. package/data/commands/sdkman.json +89 -0
  170. package/data/commands/semantic-release.json +58 -0
  171. package/data/commands/semgrep.json +97 -0
  172. package/data/commands/serverless.json +121 -0
  173. package/data/commands/shellcheck.json +61 -0
  174. package/data/commands/skopeo.json +79 -0
  175. package/data/commands/socat.json +43 -0
  176. package/data/commands/sops.json +85 -0
  177. package/data/commands/sort.json +75 -0
  178. package/data/commands/sqlite-utils.json +109 -0
  179. package/data/commands/ss.json +75 -0
  180. package/data/commands/stack.json +115 -0
  181. package/data/commands/storybook.json +90 -0
  182. package/data/commands/strace.json +71 -0
  183. package/data/commands/svelte.json +89 -0
  184. package/data/commands/swc.json +73 -0
  185. package/data/commands/swiftc.json +83 -0
  186. package/data/commands/syft.json +77 -0
  187. package/data/commands/tail.json +58 -0
  188. package/data/commands/tee.json +38 -0
  189. package/data/commands/tflint.json +83 -0
  190. package/data/commands/touch.json +57 -0
  191. package/data/commands/traceroute.json +70 -0
  192. package/data/commands/tracert.json +49 -0
  193. package/data/commands/umount.json +49 -0
  194. package/data/commands/uniq.json +59 -0
  195. package/data/commands/vagrant.json +112 -0
  196. package/data/commands/vegeta.json +59 -0
  197. package/data/commands/volta.json +87 -0
  198. package/data/commands/watch.json +58 -0
  199. package/data/commands/wc.json +50 -0
  200. package/data/commands/webpack.json +94 -0
  201. package/data/commands/which.json +34 -0
  202. package/data/commands/whoami.json +27 -0
  203. package/data/commands/wrangler.json +124 -0
  204. package/data/commands/wrk.json +63 -0
  205. package/data/commands/xargs.json +66 -0
  206. package/data/commands/xsv.json +119 -0
  207. package/data/commands/zig.json +114 -0
  208. package/data/completion/redis-cli.json +3465 -3405
  209. package/data/documentHighlight/nextjs.json +270 -212
  210. package/data/documentSymbol/azcli.json +6 -3
  211. package/data/documentSymbol/caddy.json +7 -4
  212. package/data/documentSymbol/crontab.json +6 -3
  213. package/data/documentSymbol/css.json +14 -14
  214. package/data/documentSymbol/doctest.json +6 -3
  215. package/data/documentSymbol/dotenv.json +6 -3
  216. package/data/documentSymbol/flow9.json +8 -4
  217. package/data/documentSymbol/graphql.json +1 -1
  218. package/data/documentSymbol/ini.json +6 -3
  219. package/data/documentSymbol/json.json +6 -3
  220. package/data/documentSymbol/lexon.json +6 -3
  221. package/data/documentSymbol/mips.json +6 -3
  222. package/data/documentSymbol/msdax.json +6 -3
  223. package/data/documentSymbol/pla.json +6 -3
  224. package/data/documentSymbol/powerquery.json +6 -3
  225. package/data/documentSymbol/restructuredtext.json +6 -3
  226. package/data/documentSymbol/sb.json +6 -3
  227. package/data/documentSymbol/sparql.json +6 -3
  228. package/data/documentSymbol/ssh_config.json +6 -3
  229. package/data/documentSymbol/systemd.json +6 -3
  230. package/data/documentSymbol/xml.json +6 -3
  231. package/data/hover/caddy.json +530 -458
  232. package/data/hover/dockerfile.json +355 -283
  233. package/data/hover/lua.json +1391 -971
  234. package/data/hover/nginx.json +957 -891
  235. package/data/hover/redis-cli.json +2168 -1088
  236. package/data/hover/sql.json +1405 -1273
  237. package/data/manifest.json +4 -6
  238. package/package.json +2 -2
@@ -1,26 +1,154 @@
1
- {
2
- "language": "scala",
3
- "codeActions": [
4
- {"title": "Extract method", "kind": "refactor.extract", "description": "Extract selected code into a new method", "pattern": ".*", "isPreferred": false},
5
- {"title": "Convert to for-comprehension", "kind": "refactor.rewrite", "description": "Convert chained flatMap/map/filter calls to a for-comprehension", "pattern": "\\.(?:flatMap|map|filter)\\s*[{(]", "isPreferred": false},
6
- {"title": "Organize imports", "kind": "source.organizeImports", "description": "Sort, group, and remove unused imports", "pattern": "^import\\s+", "isPreferred": true},
7
- {"title": "Convert to case class", "kind": "refactor.rewrite", "description": "Convert a regular class to a case class with auto-generated methods", "pattern": "^\\s*class\\s+\\w+\\s*\\(", "isPreferred": false},
8
- {"title": "Add type annotation", "kind": "quickfix", "description": "Add explicit type annotation to val/var/def", "pattern": "(?:val|var|def)\\s+\\w+\\s*=", "isPreferred": false},
9
- {"title": "Convert to pattern match", "kind": "refactor.rewrite", "description": "Convert if-else chain to pattern match expression", "pattern": "if\\s*\\(.*\\).*else\\s+if", "isPreferred": false},
10
- {"title": "Inline variable", "kind": "refactor.inline", "description": "Inline a val or var at its usage sites", "pattern": "(?:val|var)\\s+\\w+\\s*=", "isPreferred": false},
11
- {"title": "Convert to given", "kind": "refactor.rewrite", "description": "Convert implicit val/def to Scala 3 given instance", "pattern": "implicit\\s+(?:val|def)\\s+\\w+", "isPreferred": false},
12
- {"title": "Extract to trait", "kind": "refactor.extract", "description": "Extract selected methods into a new trait", "pattern": "def\\s+\\w+", "isPreferred": false},
13
- {"title": "Add override modifier", "kind": "quickfix", "description": "Add override keyword to a method that overrides a parent member", "pattern": "def\\s+\\w+.*(?:extends|with)", "isPreferred": true},
14
- {"title": "Convert string interpolation", "kind": "refactor.rewrite", "description": "Convert string concatenation to string interpolation or vice versa", "pattern": "\"[^\"]*\"\\s*\\+|s\"[^\"]*\\$", "isPreferred": false},
15
- {"title": "Add missing import", "kind": "quickfix", "description": "Add import for an unresolved symbol", "pattern": "\\b[A-Z]\\w+", "isPreferred": true},
16
- {"title": "Convert to extension method", "kind": "refactor.rewrite", "description": "Convert implicit class to Scala 3 extension method", "pattern": "implicit\\s+class\\s+\\w+", "isPreferred": false},
17
- {"title": "Implement abstract members", "kind": "quickfix", "description": "Generate stub implementations for abstract members from trait/class", "pattern": "class\\s+\\w+\\s*.*(?:extends|with)", "isPreferred": true},
18
- {"title": "Extract local variable", "kind": "refactor.extract", "description": "Extract an expression into a local val", "pattern": ".*", "isPreferred": false},
19
- {"title": "Convert to using clause", "kind": "refactor.rewrite", "description": "Convert implicit parameter to Scala 3 using clause", "pattern": "\\(implicit\\s+", "isPreferred": false},
20
- {"title": "Rename symbol", "kind": "refactor.rename", "description": "Rename a symbol across all usages in the workspace", "pattern": "\\b\\w+\\b", "isPreferred": false},
21
- {"title": "Convert match to if-else", "kind": "refactor.rewrite", "description": "Convert a simple match expression to an if-else chain", "pattern": "\\s+match\\s*\\{", "isPreferred": false},
22
- {"title": "Add exhaustive cases", "kind": "quickfix", "description": "Add missing cases for sealed type in match expression", "pattern": "match\\s*\\{", "isPreferred": true},
23
- {"title": "Convert to enum", "kind": "refactor.rewrite", "description": "Convert sealed trait + case objects to Scala 3 enum", "pattern": "sealed\\s+trait\\s+\\w+", "isPreferred": false}
24
- ],
25
- "providedCodeActionKinds": ["quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "refactor.rename", "source", "source.organizeImports"]
26
- }
1
+ {
2
+ "language": "scala",
3
+ "codeActions": [
4
+ {
5
+ "title": "Extract method",
6
+ "kind": "refactor.extract",
7
+ "description": "Extract selected code into a new method",
8
+ "pattern": ".*",
9
+ "isPreferred": false
10
+ },
11
+ {
12
+ "title": "Convert to for-comprehension",
13
+ "kind": "refactor.rewrite",
14
+ "description": "Convert chained flatMap/map/filter calls to a for-comprehension",
15
+ "pattern": "\\.(?:flatMap|map|filter)\\s*[{(]",
16
+ "isPreferred": false
17
+ },
18
+ {
19
+ "title": "Organize imports",
20
+ "kind": "source.organizeImports",
21
+ "description": "Sort, group, and remove unused imports",
22
+ "pattern": "^import\\s+",
23
+ "isPreferred": true
24
+ },
25
+ {
26
+ "title": "Convert to case class",
27
+ "kind": "refactor.rewrite",
28
+ "description": "Convert a regular class to a case class with auto-generated methods",
29
+ "pattern": "^\\s*class\\s+\\w+\\s*\\(",
30
+ "isPreferred": false
31
+ },
32
+ {
33
+ "title": "Add type annotation",
34
+ "kind": "quickfix",
35
+ "description": "Add explicit type annotation to val/var/def",
36
+ "pattern": "(?:val|var|def)\\s+\\w+\\s*=",
37
+ "isPreferred": false
38
+ },
39
+ {
40
+ "title": "Convert to pattern match",
41
+ "kind": "refactor.rewrite",
42
+ "description": "Convert if-else chain to pattern match expression",
43
+ "pattern": "if\\s*\\(.*\\).*else\\s+if",
44
+ "isPreferred": false
45
+ },
46
+ {
47
+ "title": "Inline variable",
48
+ "kind": "refactor.inline",
49
+ "description": "Inline a val or var at its usage sites",
50
+ "pattern": "(?:val|var)\\s+\\w+\\s*=",
51
+ "isPreferred": false
52
+ },
53
+ {
54
+ "title": "Convert to given",
55
+ "kind": "refactor.rewrite",
56
+ "description": "Convert implicit val/def to Scala 3 given instance",
57
+ "pattern": "implicit\\s+(?:val|def)\\s+\\w+",
58
+ "isPreferred": false
59
+ },
60
+ {
61
+ "title": "Extract to trait",
62
+ "kind": "refactor.extract",
63
+ "description": "Extract selected methods into a new trait",
64
+ "pattern": "def\\s+\\w+",
65
+ "isPreferred": false
66
+ },
67
+ {
68
+ "title": "Add override modifier",
69
+ "kind": "quickfix",
70
+ "description": "Add override keyword to a method that overrides a parent member",
71
+ "pattern": "def\\s+\\w+.*(?:extends|with)",
72
+ "isPreferred": true
73
+ },
74
+ {
75
+ "title": "Convert string interpolation",
76
+ "kind": "refactor.rewrite",
77
+ "description": "Convert string concatenation to string interpolation or vice versa",
78
+ "pattern": "\"[^\"]*\"\\s*\\+|s\"[^\"]*\\$",
79
+ "isPreferred": false
80
+ },
81
+ {
82
+ "title": "Add missing import",
83
+ "kind": "quickfix",
84
+ "description": "Add import for an unresolved symbol",
85
+ "pattern": "\\b[A-Z]\\w+",
86
+ "isPreferred": true
87
+ },
88
+ {
89
+ "title": "Convert to extension method",
90
+ "kind": "refactor.rewrite",
91
+ "description": "Convert implicit class to Scala 3 extension method",
92
+ "pattern": "implicit\\s+class\\s+\\w+",
93
+ "isPreferred": false
94
+ },
95
+ {
96
+ "title": "Implement abstract members",
97
+ "kind": "quickfix",
98
+ "description": "Generate stub implementations for abstract members from trait/class",
99
+ "pattern": "class\\s+\\w+\\s*.*(?:extends|with)",
100
+ "isPreferred": true
101
+ },
102
+ {
103
+ "title": "Extract local variable",
104
+ "kind": "refactor.extract",
105
+ "description": "Extract an expression into a local val",
106
+ "pattern": ".*",
107
+ "isPreferred": false
108
+ },
109
+ {
110
+ "title": "Convert to using clause",
111
+ "kind": "refactor.rewrite",
112
+ "description": "Convert implicit parameter to Scala 3 using clause",
113
+ "pattern": "\\(implicit\\s+",
114
+ "isPreferred": false
115
+ },
116
+ {
117
+ "title": "Rename symbol",
118
+ "kind": "refactor.rewrite",
119
+ "description": "Rename a symbol across all usages in the workspace",
120
+ "pattern": "\\b\\w+\\b",
121
+ "isPreferred": false
122
+ },
123
+ {
124
+ "title": "Convert match to if-else",
125
+ "kind": "refactor.rewrite",
126
+ "description": "Convert a simple match expression to an if-else chain",
127
+ "pattern": "\\s+match\\s*\\{",
128
+ "isPreferred": false
129
+ },
130
+ {
131
+ "title": "Add exhaustive cases",
132
+ "kind": "quickfix",
133
+ "description": "Add missing cases for sealed type in match expression",
134
+ "pattern": "match\\s*\\{",
135
+ "isPreferred": true
136
+ },
137
+ {
138
+ "title": "Convert to enum",
139
+ "kind": "refactor.rewrite",
140
+ "description": "Convert sealed trait + case objects to Scala 3 enum",
141
+ "pattern": "sealed\\s+trait\\s+\\w+",
142
+ "isPreferred": false
143
+ }
144
+ ],
145
+ "providedCodeActionKinds": [
146
+ "quickfix",
147
+ "refactor",
148
+ "refactor.extract",
149
+ "refactor.inline",
150
+ "refactor.rewrite",
151
+ "source",
152
+ "source.organizeImports"
153
+ ]
154
+ }
@@ -1,112 +1,112 @@
1
- {
2
- "language": "shadcn",
3
- "codeActions": [
4
- {
5
- "title": "Add component import from @/components/ui",
6
- "kind": "quickfix",
7
- "description": "Add missing import statement for a shadcn/ui component from @/components/ui/*",
8
- "pattern": "<(Accordion|Alert|Avatar|Badge|Button|Calendar|Card|Carousel|Checkbox|Collapsible|Command|ContextMenu|Dialog|Drawer|DropdownMenu|Form|HoverCard|Input|Label|Menubar|NavigationMenu|Pagination|Popover|Progress|RadioGroup|ScrollArea|Select|Separator|Sheet|Skeleton|Slider|Switch|Table|Tabs|Textarea|Toast|Toaster|Toggle|ToggleGroup|Tooltip)",
9
- "isPreferred": true
10
- },
11
- {
12
- "title": "Convert className string to cn() utility",
13
- "kind": "refactor.rewrite",
14
- "description": "Replace static className string with cn() utility for conditional class merging",
15
- "pattern": "className=\"[^\"]+\"",
16
- "isPreferred": false
17
- },
18
- {
19
- "title": "Convert to variant prop",
20
- "kind": "refactor.rewrite",
21
- "description": "Extract inline classes to a cva() variant definition",
22
- "pattern": "className=\\{cn\\(",
23
- "isPreferred": false
24
- },
25
- {
26
- "title": "Extract to shadcn/ui component",
27
- "kind": "refactor.extract",
28
- "description": "Extract selected JSX into a separate reusable shadcn/ui-styled component",
29
- "pattern": "<(div|section|article)\\s+className=",
30
- "isPreferred": false
31
- },
32
- {
33
- "title": "Add form validation with zod",
34
- "kind": "quickfix",
35
- "description": "Add zod schema validation and react-hook-form integration to a form",
36
- "pattern": "<form\\s",
37
- "isPreferred": false
38
- },
39
- {
40
- "title": "Wrap with TooltipProvider",
41
- "kind": "quickfix",
42
- "description": "Wrap Tooltip component with required TooltipProvider ancestor",
43
- "pattern": "<Tooltip[^P]",
44
- "isPreferred": true
45
- },
46
- {
47
- "title": "Add toast notification",
48
- "kind": "source.addImport",
49
- "description": "Import useToast hook and add toast notification call",
50
- "pattern": "\\btoast\\b|\\buseToast\\b",
51
- "isPreferred": false
52
- },
53
- {
54
- "title": "Add dark mode support",
55
- "kind": "refactor.rewrite",
56
- "description": "Add dark mode CSS variables and class-based dark mode toggle support",
57
- "pattern": ":root\\s*\\{|@layer\\s+base",
58
- "isPreferred": false
59
- },
60
- {
61
- "title": "Import from @/components/ui",
62
- "kind": "source.addImport",
63
- "description": "Add import statement for shadcn/ui component from the @/components/ui directory",
64
- "pattern": "\\b(Button|Card|Dialog|Sheet|Form|Input|Select|Table|Tabs|Badge)\\b",
65
- "isPreferred": false
66
- },
67
- {
68
- "title": "Add missing variant props",
69
- "kind": "quickfix",
70
- "description": "Add variant and size props to a shadcn/ui component missing them",
71
- "pattern": "<(Button|Badge|Alert|Toggle)\\s*(?!.*variant)[^>]*>",
72
- "isPreferred": false
73
- },
74
- {
75
- "title": "Organize component imports",
76
- "kind": "source.organizeImports",
77
- "description": "Sort and group shadcn/ui component imports by module path",
78
- "pattern": "from\\s+['\"]@/components/ui/",
79
- "isPreferred": true
80
- },
81
- {
82
- "title": "Convert to controlled component",
83
- "kind": "refactor.rewrite",
84
- "description": "Convert uncontrolled component to controlled with React state",
85
- "pattern": "defaultValue=|defaultChecked=",
86
- "isPreferred": false
87
- },
88
- {
89
- "title": "Add asChild prop for composition",
90
- "kind": "quickfix",
91
- "description": "Add asChild prop to Radix UI trigger component for element composition",
92
- "pattern": "<(DialogTrigger|AlertDialogTrigger|PopoverTrigger|DropdownMenuTrigger|SheetTrigger|TooltipTrigger)(?!.*asChild)",
93
- "isPreferred": false
94
- },
95
- {
96
- "title": "Add Toaster to layout",
97
- "kind": "quickfix",
98
- "description": "Add <Toaster /> component to the root layout file for toast notifications to work",
99
- "pattern": "useToast|\\btoast\\(",
100
- "isPreferred": false
101
- }
102
- ],
103
- "providedCodeActionKinds": [
104
- "quickfix",
105
- "refactor",
106
- "refactor.extract",
107
- "refactor.rewrite",
108
- "source",
109
- "source.addImport",
110
- "source.organizeImports"
111
- ]
112
- }
1
+ {
2
+ "language": "shadcn",
3
+ "codeActions": [
4
+ {
5
+ "title": "Add component import from @/components/ui",
6
+ "kind": "quickfix",
7
+ "description": "Add missing import statement for a shadcn/ui component from @/components/ui/*",
8
+ "pattern": "<(Accordion|Alert|Avatar|Badge|Button|Calendar|Card|Carousel|Checkbox|Collapsible|Command|ContextMenu|Dialog|Drawer|DropdownMenu|Form|HoverCard|Input|Label|Menubar|NavigationMenu|Pagination|Popover|Progress|RadioGroup|ScrollArea|Select|Separator|Sheet|Skeleton|Slider|Switch|Table|Tabs|Textarea|Toast|Toaster|Toggle|ToggleGroup|Tooltip)",
9
+ "isPreferred": true
10
+ },
11
+ {
12
+ "title": "Convert className string to cn() utility",
13
+ "kind": "refactor.rewrite",
14
+ "description": "Replace static className string with cn() utility for conditional class merging",
15
+ "pattern": "className=\"[^\"]+\"",
16
+ "isPreferred": false
17
+ },
18
+ {
19
+ "title": "Convert to variant prop",
20
+ "kind": "refactor.rewrite",
21
+ "description": "Extract inline classes to a cva() variant definition",
22
+ "pattern": "className=\\{cn\\(",
23
+ "isPreferred": false
24
+ },
25
+ {
26
+ "title": "Extract to shadcn/ui component",
27
+ "kind": "refactor.extract",
28
+ "description": "Extract selected JSX into a separate reusable shadcn/ui-styled component",
29
+ "pattern": "<(div|section|article)\\s+className=",
30
+ "isPreferred": false
31
+ },
32
+ {
33
+ "title": "Add form validation with zod",
34
+ "kind": "quickfix",
35
+ "description": "Add zod schema validation and react-hook-form integration to a form",
36
+ "pattern": "<form\\s",
37
+ "isPreferred": false
38
+ },
39
+ {
40
+ "title": "Wrap with TooltipProvider",
41
+ "kind": "quickfix",
42
+ "description": "Wrap Tooltip component with required TooltipProvider ancestor",
43
+ "pattern": "<Tooltip[^P]",
44
+ "isPreferred": true
45
+ },
46
+ {
47
+ "title": "Add toast notification",
48
+ "kind": "source.fixAll",
49
+ "description": "Import useToast hook and add toast notification call",
50
+ "pattern": "\\btoast\\b|\\buseToast\\b",
51
+ "isPreferred": false
52
+ },
53
+ {
54
+ "title": "Add dark mode support",
55
+ "kind": "refactor.rewrite",
56
+ "description": "Add dark mode CSS variables and class-based dark mode toggle support",
57
+ "pattern": ":root\\s*\\{|@layer\\s+base",
58
+ "isPreferred": false
59
+ },
60
+ {
61
+ "title": "Import from @/components/ui",
62
+ "kind": "source.fixAll",
63
+ "description": "Add import statement for shadcn/ui component from the @/components/ui directory",
64
+ "pattern": "\\b(Button|Card|Dialog|Sheet|Form|Input|Select|Table|Tabs|Badge)\\b",
65
+ "isPreferred": false
66
+ },
67
+ {
68
+ "title": "Add missing variant props",
69
+ "kind": "quickfix",
70
+ "description": "Add variant and size props to a shadcn/ui component missing them",
71
+ "pattern": "<(Button|Badge|Alert|Toggle)\\s*(?!.*variant)[^>]*>",
72
+ "isPreferred": false
73
+ },
74
+ {
75
+ "title": "Organize component imports",
76
+ "kind": "source.organizeImports",
77
+ "description": "Sort and group shadcn/ui component imports by module path",
78
+ "pattern": "from\\s+['\"]@/components/ui/",
79
+ "isPreferred": true
80
+ },
81
+ {
82
+ "title": "Convert to controlled component",
83
+ "kind": "refactor.rewrite",
84
+ "description": "Convert uncontrolled component to controlled with React state",
85
+ "pattern": "defaultValue=|defaultChecked=",
86
+ "isPreferred": false
87
+ },
88
+ {
89
+ "title": "Add asChild prop for composition",
90
+ "kind": "quickfix",
91
+ "description": "Add asChild prop to Radix UI trigger component for element composition",
92
+ "pattern": "<(DialogTrigger|AlertDialogTrigger|PopoverTrigger|DropdownMenuTrigger|SheetTrigger|TooltipTrigger)(?!.*asChild)",
93
+ "isPreferred": false
94
+ },
95
+ {
96
+ "title": "Add Toaster to layout",
97
+ "kind": "quickfix",
98
+ "description": "Add <Toaster /> component to the root layout file for toast notifications to work",
99
+ "pattern": "useToast|\\btoast\\(",
100
+ "isPreferred": false
101
+ }
102
+ ],
103
+ "providedCodeActionKinds": [
104
+ "quickfix",
105
+ "refactor",
106
+ "refactor.extract",
107
+ "refactor.rewrite",
108
+ "source",
109
+ "source.fixAll",
110
+ "source.organizeImports"
111
+ ]
112
+ }
@@ -160,10 +160,10 @@
160
160
  "quickfix",
161
161
  "refactor",
162
162
  "refactor.extract",
163
- "source",
164
- "source.fixAll",
165
163
  "refactor.inline",
166
164
  "refactor.rewrite",
165
+ "source",
166
+ "source.fixAll",
167
167
  "source.organizeImports"
168
168
  ]
169
169
  }
@@ -1,76 +1,83 @@
1
- {
2
- "language": "tailwindcss",
3
- "codeActions": [
4
- {
5
- "title": "Sort Tailwind CSS classes (Headwind order)",
6
- "kind": "source.sortTailwindClasses",
7
- "description": "Reorders Tailwind utility classes following the recommended Headwind/Prettier-plugin-tailwindcss sort order for consistency.",
8
- "pattern": "class\\s*=\\s*[\"'][^\"']*[\"']",
9
- "isPreferred": true
10
- },
11
- {
12
- "title": "Extract classes to @apply component",
13
- "kind": "refactor.extract.apply",
14
- "description": "Extracts selected Tailwind utility classes into a reusable CSS component using @apply directive.",
15
- "pattern": "class\\s*=\\s*[\"']([^\"']{20,})[\"']",
16
- "isPreferred": false
17
- },
18
- {
19
- "title": "Convert arbitrary value to theme config",
20
- "kind": "refactor.rewrite",
21
- "description": "Converts an arbitrary value like `bg-[#1da1f2]` or `w-[200px]` to a named theme value in tailwind.config.js.",
22
- "pattern": "\\w+-\\[[^\\]]+\\]",
23
- "isPreferred": false
24
- },
25
- {
26
- "title": "Group responsive variants",
27
- "kind": "refactor.organize",
28
- "description": "Groups utility classes by responsive breakpoint prefix (sm:, md:, lg:, xl:, 2xl:) for better readability.",
29
- "pattern": "(?:sm|md|lg|xl|2xl):[\\w-]+",
30
- "isPreferred": false
31
- },
32
- {
33
- "title": "Remove duplicate Tailwind classes",
34
- "kind": "quickfix.removeDuplicates",
35
- "description": "Detects and removes duplicate utility classes within a class attribute.",
36
- "pattern": "class\\s*=\\s*[\"'][^\"']*[\"']",
37
- "isPreferred": true
38
- },
39
- {
40
- "title": "Convert @apply to inline utilities",
41
- "kind": "refactor.inline",
42
- "description": "Replaces an @apply rule with the individual utility classes inlined directly in the HTML class attribute.",
43
- "pattern": "@apply\\s+[\\w\\s:-]+;",
44
- "isPreferred": false
45
- },
46
- {
47
- "title": "Convert inline utilities to @apply",
48
- "kind": "refactor.extract.apply",
49
- "description": "Extracts inline Tailwind utility classes from a class attribute into a new CSS rule using @apply.",
50
- "pattern": "class\\s*=\\s*[\"']([^\"']{30,})[\"']",
51
- "isPreferred": false
52
- },
53
- {
54
- "title": "Wrap in responsive variant",
55
- "kind": "refactor.wrap",
56
- "description": "Wraps selected utility classes with a responsive breakpoint prefix (sm:, md:, lg:, xl:, 2xl:).",
57
- "pattern": "[\\w-]+",
58
- "isPreferred": false
59
- },
60
- {
61
- "title": "Add dark mode variant",
62
- "kind": "refactor.wrap",
63
- "description": "Adds dark: prefix to selected utility classes for dark mode support.",
64
- "pattern": "(?:bg|text|border|ring|shadow)-[\\w-]+",
65
- "isPreferred": false
66
- },
67
- {
68
- "title": "Convert to arbitrary value",
69
- "kind": "refactor.rewrite",
70
- "description": "Converts a standard utility value to an arbitrary value notation, e.g. `p-4` to `p-[1rem]`.",
71
- "pattern": "\\w+-\\d+",
72
- "isPreferred": false
73
- }
74
- ],
75
- "providedCodeActionKinds": ["quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source"]
76
- }
1
+ {
2
+ "language": "tailwindcss",
3
+ "codeActions": [
4
+ {
5
+ "title": "Sort Tailwind CSS classes (Headwind order)",
6
+ "kind": "source.fixAll",
7
+ "description": "Reorders Tailwind utility classes following the recommended Headwind/Prettier-plugin-tailwindcss sort order for consistency.",
8
+ "pattern": "class\\s*=\\s*[\"'][^\"']*[\"']",
9
+ "isPreferred": true
10
+ },
11
+ {
12
+ "title": "Extract classes to @apply component",
13
+ "kind": "refactor.rewrite",
14
+ "description": "Extracts selected Tailwind utility classes into a reusable CSS component using @apply directive.",
15
+ "pattern": "class\\s*=\\s*[\"']([^\"']{20,})[\"']",
16
+ "isPreferred": false
17
+ },
18
+ {
19
+ "title": "Convert arbitrary value to theme config",
20
+ "kind": "refactor.rewrite",
21
+ "description": "Converts an arbitrary value like `bg-[#1da1f2]` or `w-[200px]` to a named theme value in tailwind.config.js.",
22
+ "pattern": "\\w+-\\[[^\\]]+\\]",
23
+ "isPreferred": false
24
+ },
25
+ {
26
+ "title": "Group responsive variants",
27
+ "kind": "refactor.rewrite",
28
+ "description": "Groups utility classes by responsive breakpoint prefix (sm:, md:, lg:, xl:, 2xl:) for better readability.",
29
+ "pattern": "(?:sm|md|lg|xl|2xl):[\\w-]+",
30
+ "isPreferred": false
31
+ },
32
+ {
33
+ "title": "Remove duplicate Tailwind classes",
34
+ "kind": "quickfix",
35
+ "description": "Detects and removes duplicate utility classes within a class attribute.",
36
+ "pattern": "class\\s*=\\s*[\"'][^\"']*[\"']",
37
+ "isPreferred": true
38
+ },
39
+ {
40
+ "title": "Convert @apply to inline utilities",
41
+ "kind": "refactor.inline",
42
+ "description": "Replaces an @apply rule with the individual utility classes inlined directly in the HTML class attribute.",
43
+ "pattern": "@apply\\s+[\\w\\s:-]+;",
44
+ "isPreferred": false
45
+ },
46
+ {
47
+ "title": "Convert inline utilities to @apply",
48
+ "kind": "refactor.rewrite",
49
+ "description": "Extracts inline Tailwind utility classes from a class attribute into a new CSS rule using @apply.",
50
+ "pattern": "class\\s*=\\s*[\"']([^\"']{30,})[\"']",
51
+ "isPreferred": false
52
+ },
53
+ {
54
+ "title": "Wrap in responsive variant",
55
+ "kind": "refactor.rewrite",
56
+ "description": "Wraps selected utility classes with a responsive breakpoint prefix (sm:, md:, lg:, xl:, 2xl:).",
57
+ "pattern": "[\\w-]+",
58
+ "isPreferred": false
59
+ },
60
+ {
61
+ "title": "Add dark mode variant",
62
+ "kind": "refactor.rewrite",
63
+ "description": "Adds dark: prefix to selected utility classes for dark mode support.",
64
+ "pattern": "(?:bg|text|border|ring|shadow)-[\\w-]+",
65
+ "isPreferred": false
66
+ },
67
+ {
68
+ "title": "Convert to arbitrary value",
69
+ "kind": "refactor.rewrite",
70
+ "description": "Converts a standard utility value to an arbitrary value notation, e.g. `p-4` to `p-[1rem]`.",
71
+ "pattern": "\\w+-\\d+",
72
+ "isPreferred": false
73
+ }
74
+ ],
75
+ "providedCodeActionKinds": [
76
+ "quickfix",
77
+ "refactor",
78
+ "refactor.extract",
79
+ "refactor.inline",
80
+ "refactor.rewrite",
81
+ "source"
82
+ ]
83
+ }
@@ -5,13 +5,15 @@
5
5
  "pattern": "^\\s*METHOD\\s+(\\w+)",
6
6
  "captureGroup": 1,
7
7
  "title": "method",
8
- "command": "editor.action.referenceSearch"
8
+ "commandId": "editor.action.referenceSearch.trigger",
9
+ "description": "method"
9
10
  },
10
11
  {
11
12
  "pattern": "^\\s*CLASS\\s+(\\w+)\\s+DEFINITION",
12
13
  "captureGroup": 1,
13
14
  "title": "class",
14
- "command": "editor.action.referenceSearch"
15
+ "commandId": "editor.action.referenceSearch.trigger",
16
+ "description": "class"
15
17
  },
16
18
  {
17
19
  "pattern": "(?:function|def|fn|func|sub|proc)\\s+(\\w+)",