@enjoys/context-engine 1.5.0 → 1.5.1

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 (95) hide show
  1. package/data/codeActions/css.json +119 -111
  2. package/data/codeActions/dart.json +190 -31
  3. package/data/codeActions/nestjs.json +124 -124
  4. package/data/codeActions/r.json +69 -71
  5. package/data/codeActions/sb.json +2 -2
  6. package/data/codeActions/scala.json +154 -26
  7. package/data/codeActions/shadcn.json +112 -112
  8. package/data/codeActions/shell.json +2 -2
  9. package/data/codeActions/tailwindcss.json +83 -76
  10. package/data/codeLens/abap.json +4 -2
  11. package/data/codeLens/angular.json +141 -22
  12. package/data/codeLens/apex.json +4 -2
  13. package/data/codeLens/awk.json +2 -2
  14. package/data/codeLens/azcli.json +4 -3
  15. package/data/codeLens/bicep.json +4 -2
  16. package/data/codeLens/c.json +4 -4
  17. package/data/codeLens/caddy.json +2 -2
  18. package/data/codeLens/cameligo.json +4 -2
  19. package/data/codeLens/clojure.json +4 -2
  20. package/data/codeLens/coffee.json +4 -2
  21. package/data/codeLens/crontab.json +2 -2
  22. package/data/codeLens/doctest.json +4 -3
  23. package/data/codeLens/ecl.json +4 -2
  24. package/data/codeLens/elixir.json +4 -2
  25. package/data/codeLens/flow9.json +4 -2
  26. package/data/codeLens/freemarker2.json +4 -2
  27. package/data/codeLens/hcl.json +4 -4
  28. package/data/codeLens/html.json +4 -4
  29. package/data/codeLens/julia.json +4 -2
  30. package/data/codeLens/less.json +4 -2
  31. package/data/codeLens/lexon.json +4 -2
  32. package/data/codeLens/liquid.json +4 -2
  33. package/data/codeLens/lua.json +4 -4
  34. package/data/codeLens/m3.json +4 -2
  35. package/data/codeLens/mdx.json +4 -2
  36. package/data/codeLens/mips.json +4 -2
  37. package/data/codeLens/msdax.json +4 -2
  38. package/data/codeLens/mysql.json +4 -2
  39. package/data/codeLens/nginx.json +4 -4
  40. package/data/codeLens/objective-c.json +4 -2
  41. package/data/codeLens/pascal.json +4 -2
  42. package/data/codeLens/pascaligo.json +4 -2
  43. package/data/codeLens/pgsql.json +4 -2
  44. package/data/codeLens/pla.json +4 -3
  45. package/data/codeLens/postiats.json +4 -2
  46. package/data/codeLens/powerquery.json +4 -2
  47. package/data/codeLens/qsharp.json +4 -2
  48. package/data/codeLens/razor.json +4 -2
  49. package/data/codeLens/redshift.json +4 -2
  50. package/data/codeLens/restructuredtext.json +4 -2
  51. package/data/codeLens/sb.json +4 -2
  52. package/data/codeLens/scheme.json +4 -2
  53. package/data/codeLens/scss.json +4 -2
  54. package/data/codeLens/shadcn.json +117 -89
  55. package/data/codeLens/shell.json +4 -2
  56. package/data/codeLens/sol.json +4 -2
  57. package/data/codeLens/sparql.json +4 -2
  58. package/data/codeLens/st.json +4 -2
  59. package/data/codeLens/systemverilog.json +4 -2
  60. package/data/codeLens/tcl.json +4 -2
  61. package/data/codeLens/twig.json +4 -2
  62. package/data/codeLens/vb.json +4 -2
  63. package/data/codeLens/wgsl.json +4 -2
  64. package/data/codeLens/xml.json +4 -4
  65. package/data/completion/redis-cli.json +3465 -3405
  66. package/data/documentHighlight/nextjs.json +270 -212
  67. package/data/documentSymbol/azcli.json +6 -3
  68. package/data/documentSymbol/caddy.json +7 -4
  69. package/data/documentSymbol/crontab.json +6 -3
  70. package/data/documentSymbol/css.json +14 -14
  71. package/data/documentSymbol/doctest.json +6 -3
  72. package/data/documentSymbol/dotenv.json +6 -3
  73. package/data/documentSymbol/flow9.json +8 -4
  74. package/data/documentSymbol/graphql.json +1 -1
  75. package/data/documentSymbol/ini.json +6 -3
  76. package/data/documentSymbol/json.json +6 -3
  77. package/data/documentSymbol/lexon.json +6 -3
  78. package/data/documentSymbol/mips.json +6 -3
  79. package/data/documentSymbol/msdax.json +6 -3
  80. package/data/documentSymbol/pla.json +6 -3
  81. package/data/documentSymbol/powerquery.json +6 -3
  82. package/data/documentSymbol/restructuredtext.json +6 -3
  83. package/data/documentSymbol/sb.json +6 -3
  84. package/data/documentSymbol/sparql.json +6 -3
  85. package/data/documentSymbol/ssh_config.json +6 -3
  86. package/data/documentSymbol/systemd.json +6 -3
  87. package/data/documentSymbol/xml.json +6 -3
  88. package/data/hover/caddy.json +530 -458
  89. package/data/hover/dockerfile.json +355 -283
  90. package/data/hover/lua.json +1391 -971
  91. package/data/hover/nginx.json +957 -891
  92. package/data/hover/redis-cli.json +2168 -1088
  93. package/data/hover/sql.json +1405 -1273
  94. package/data/manifest.json +4 -6
  95. package/package.json +1 -1
@@ -1,111 +1,119 @@
1
- {
2
- "language": "css",
3
- "codeActions": [
4
- {
5
- "title": "Sort properties alphabetically",
6
- "kind": "source.sortProperties",
7
- "description": "Reorders all CSS property declarations within a rule block in alphabetical order for consistency and readability.",
8
- "pattern": "\\{[^}]*[a-z-]+\\s*:[^}]*\\}",
9
- "isPreferred": false
10
- },
11
- {
12
- "title": "Remove duplicate properties",
13
- "kind": "quickfix",
14
- "description": "Detects and removes duplicate CSS property declarations within the same rule block, keeping the last occurrence.",
15
- "pattern": "([a-z-]+)\\s*:[^;]+;[\\s\\S]*\\1\\s*:",
16
- "isPreferred": true
17
- },
18
- {
19
- "title": "Convert px to rem",
20
- "kind": "refactor.convert",
21
- "description": "Converts pixel values to rem units using a base font size of 16px (e.g., 16px → 1rem, 24px → 1.5rem).",
22
- "pattern": ":\\s*(-?\\d+(\\.\\d+)?)px",
23
- "isPreferred": false
24
- },
25
- {
26
- "title": "Convert rem to px",
27
- "kind": "refactor.convert",
28
- "description": "Converts rem values to pixel units using a base font size of 16px (e.g., 1rem → 16px, 0.75rem → 12px).",
29
- "pattern": ":\\s*(-?\\d+(\\.\\d+)?)rem",
30
- "isPreferred": false
31
- },
32
- {
33
- "title": "Add vendor prefixes",
34
- "kind": "source.addPrefixes",
35
- "description": "Adds -webkit-, -moz-, -ms-, -o- prefixed versions for properties that require vendor prefixes for broader browser support (e.g., transform, appearance, backdrop-filter).",
36
- "pattern": "(?:transform|appearance|backdrop-filter|user-select|text-size-adjust|hyphens|writing-mode)\\s*:",
37
- "isPreferred": false
38
- },
39
- {
40
- "title": "Convert hex to rgb()",
41
- "kind": "refactor.convert",
42
- "description": "Converts hexadecimal color values to rgb() functional notation (e.g., #ff0000 → rgb(255, 0, 0)).",
43
- "pattern": "#([0-9a-fA-F]{3,8})\\b",
44
- "isPreferred": false
45
- },
46
- {
47
- "title": "Convert hex to hsl()",
48
- "kind": "refactor.convert",
49
- "description": "Converts hexadecimal color values to hsl() functional notation (e.g., #ff0000 → hsl(0, 100%, 50%)).",
50
- "pattern": "#([0-9a-fA-F]{3,8})\\b",
51
- "isPreferred": false
52
- },
53
- {
54
- "title": "Convert rgb() to hex",
55
- "kind": "refactor.convert",
56
- "description": "Converts rgb() or rgba() functional notation to hexadecimal color values (e.g., rgb(255, 0, 0) → #ff0000).",
57
- "pattern": "rgba?\\(\\s*\\d+",
58
- "isPreferred": false
59
- },
60
- {
61
- "title": "Extract CSS custom property",
62
- "kind": "refactor.extract",
63
- "description": "Extracts a repeated value into a CSS custom property (variable) defined on :root and replaces all occurrences with var(--name).",
64
- "pattern": ":\\s*([^;]+);",
65
- "isPreferred": false
66
- },
67
- {
68
- "title": "Add missing semicolons",
69
- "kind": "quickfix",
70
- "description": "Inserts missing semicolons at the end of CSS property declarations within rule blocks.",
71
- "pattern": "[a-z-]+\\s*:[^;{}]+(?=\\s*[}\\n])",
72
- "isPreferred": true
73
- },
74
- {
75
- "title": "Expand shorthand property",
76
- "kind": "refactor.expand",
77
- "description": "Expands a shorthand property (margin, padding, border, background, font, animation, transition) into its individual longhand properties.",
78
- "pattern": "(?:margin|padding|border|background|font|animation|transition|flex|grid|overflow|border-radius)\\s*:",
79
- "isPreferred": false
80
- },
81
- {
82
- "title": "Collapse to shorthand property",
83
- "kind": "refactor.collapse",
84
- "description": "Combines individual longhand properties (e.g., margin-top, margin-right, margin-bottom, margin-left) into their shorthand equivalent.",
85
- "pattern": "(margin|padding|border|overflow)-(top|right|bottom|left)\\s*:",
86
- "isPreferred": false
87
- },
88
- {
89
- "title": "Convert named color to hex",
90
- "kind": "refactor.convert",
91
- "description": "Converts a CSS named color (e.g., red, blue, rebeccapurple) to its hexadecimal equivalent.",
92
- "pattern": ":\\s*(red|blue|green|white|black|gray|grey|orange|purple|yellow|pink|cyan|magenta|rebeccapurple|transparent|currentColor)\\b",
93
- "isPreferred": false
94
- },
95
- {
96
- "title": "Add fallback for CSS custom property",
97
- "kind": "quickfix",
98
- "description": "Adds a fallback value to var() expressions that are missing one: var(--name) → var(--name, fallback).",
99
- "pattern": "var\\(--[a-zA-Z0-9-]+\\s*\\)",
100
- "isPreferred": false
101
- },
102
- {
103
- "title": "Convert to logical properties",
104
- "kind": "refactor.convert",
105
- "description": "Converts physical properties (margin-left, padding-right, border-top, width, height) to their logical property equivalents (margin-inline-start, padding-inline-end, border-block-start, inline-size, block-size) for better internationalization support.",
106
- "pattern": "(?:margin|padding|border)-(top|right|bottom|left)\\s*:|\\b(width|height)\\s*:",
107
- "isPreferred": false
108
- }
109
- ],
110
- "providedCodeActionKinds": ["quickfix", "refactor", "refactor.convert", "refactor.extract", "refactor.expand", "refactor.collapse", "source", "source.sortProperties", "source.addPrefixes"]
111
- }
1
+ {
2
+ "language": "css",
3
+ "codeActions": [
4
+ {
5
+ "title": "Sort properties alphabetically",
6
+ "kind": "source.organizeImports",
7
+ "description": "Reorders all CSS property declarations within a rule block in alphabetical order for consistency and readability.",
8
+ "pattern": "\\{[^}]*[a-z-]+\\s*:[^}]*\\}",
9
+ "isPreferred": false
10
+ },
11
+ {
12
+ "title": "Remove duplicate properties",
13
+ "kind": "quickfix",
14
+ "description": "Detects and removes duplicate CSS property declarations within the same rule block, keeping the last occurrence.",
15
+ "pattern": "([a-z-]+)\\s*:[^;]+;[\\s\\S]*\\1\\s*:",
16
+ "isPreferred": true
17
+ },
18
+ {
19
+ "title": "Convert px to rem",
20
+ "kind": "refactor.rewrite",
21
+ "description": "Converts pixel values to rem units using a base font size of 16px (e.g., 16px → 1rem, 24px → 1.5rem).",
22
+ "pattern": ":\\s*(-?\\d+(\\.\\d+)?)px",
23
+ "isPreferred": false
24
+ },
25
+ {
26
+ "title": "Convert rem to px",
27
+ "kind": "refactor.rewrite",
28
+ "description": "Converts rem values to pixel units using a base font size of 16px (e.g., 1rem → 16px, 0.75rem → 12px).",
29
+ "pattern": ":\\s*(-?\\d+(\\.\\d+)?)rem",
30
+ "isPreferred": false
31
+ },
32
+ {
33
+ "title": "Add vendor prefixes",
34
+ "kind": "source.fixAll",
35
+ "description": "Adds -webkit-, -moz-, -ms-, -o- prefixed versions for properties that require vendor prefixes for broader browser support (e.g., transform, appearance, backdrop-filter).",
36
+ "pattern": "(?:transform|appearance|backdrop-filter|user-select|text-size-adjust|hyphens|writing-mode)\\s*:",
37
+ "isPreferred": false
38
+ },
39
+ {
40
+ "title": "Convert hex to rgb()",
41
+ "kind": "refactor.rewrite",
42
+ "description": "Converts hexadecimal color values to rgb() functional notation (e.g., #ff0000 → rgb(255, 0, 0)).",
43
+ "pattern": "#([0-9a-fA-F]{3,8})\\b",
44
+ "isPreferred": false
45
+ },
46
+ {
47
+ "title": "Convert hex to hsl()",
48
+ "kind": "refactor.rewrite",
49
+ "description": "Converts hexadecimal color values to hsl() functional notation (e.g., #ff0000 → hsl(0, 100%, 50%)).",
50
+ "pattern": "#([0-9a-fA-F]{3,8})\\b",
51
+ "isPreferred": false
52
+ },
53
+ {
54
+ "title": "Convert rgb() to hex",
55
+ "kind": "refactor.rewrite",
56
+ "description": "Converts rgb() or rgba() functional notation to hexadecimal color values (e.g., rgb(255, 0, 0) → #ff0000).",
57
+ "pattern": "rgba?\\(\\s*\\d+",
58
+ "isPreferred": false
59
+ },
60
+ {
61
+ "title": "Extract CSS custom property",
62
+ "kind": "refactor.extract",
63
+ "description": "Extracts a repeated value into a CSS custom property (variable) defined on :root and replaces all occurrences with var(--name).",
64
+ "pattern": ":\\s*([^;]+);",
65
+ "isPreferred": false
66
+ },
67
+ {
68
+ "title": "Add missing semicolons",
69
+ "kind": "quickfix",
70
+ "description": "Inserts missing semicolons at the end of CSS property declarations within rule blocks.",
71
+ "pattern": "[a-z-]+\\s*:[^;{}]+(?=\\s*[}\\n])",
72
+ "isPreferred": true
73
+ },
74
+ {
75
+ "title": "Expand shorthand property",
76
+ "kind": "refactor.rewrite",
77
+ "description": "Expands a shorthand property (margin, padding, border, background, font, animation, transition) into its individual longhand properties.",
78
+ "pattern": "(?:margin|padding|border|background|font|animation|transition|flex|grid|overflow|border-radius)\\s*:",
79
+ "isPreferred": false
80
+ },
81
+ {
82
+ "title": "Collapse to shorthand property",
83
+ "kind": "refactor.rewrite",
84
+ "description": "Combines individual longhand properties (e.g., margin-top, margin-right, margin-bottom, margin-left) into their shorthand equivalent.",
85
+ "pattern": "(margin|padding|border|overflow)-(top|right|bottom|left)\\s*:",
86
+ "isPreferred": false
87
+ },
88
+ {
89
+ "title": "Convert named color to hex",
90
+ "kind": "refactor.rewrite",
91
+ "description": "Converts a CSS named color (e.g., red, blue, rebeccapurple) to its hexadecimal equivalent.",
92
+ "pattern": ":\\s*(red|blue|green|white|black|gray|grey|orange|purple|yellow|pink|cyan|magenta|rebeccapurple|transparent|currentColor)\\b",
93
+ "isPreferred": false
94
+ },
95
+ {
96
+ "title": "Add fallback for CSS custom property",
97
+ "kind": "quickfix",
98
+ "description": "Adds a fallback value to var() expressions that are missing one: var(--name) → var(--name, fallback).",
99
+ "pattern": "var\\(--[a-zA-Z0-9-]+\\s*\\)",
100
+ "isPreferred": false
101
+ },
102
+ {
103
+ "title": "Convert to logical properties",
104
+ "kind": "refactor.rewrite",
105
+ "description": "Converts physical properties (margin-left, padding-right, border-top, width, height) to their logical property equivalents (margin-inline-start, padding-inline-end, border-block-start, inline-size, block-size) for better internationalization support.",
106
+ "pattern": "(?:margin|padding|border)-(top|right|bottom|left)\\s*:|\\b(width|height)\\s*:",
107
+ "isPreferred": false
108
+ }
109
+ ],
110
+ "providedCodeActionKinds": [
111
+ "quickfix",
112
+ "refactor",
113
+ "refactor.extract",
114
+ "refactor.rewrite",
115
+ "source",
116
+ "source.fixAll",
117
+ "source.organizeImports"
118
+ ]
119
+ }
@@ -1,31 +1,190 @@
1
- {
2
- "language": "dart",
3
- "codeActions": [
4
- {"title": "Convert to StatefulWidget", "kind": "refactor.rewrite", "description": "Convert a StatelessWidget to a StatefulWidget with State class", "pattern": "class\\s+\\w+\\s+extends\\s+StatelessWidget", "isPreferred": false},
5
- {"title": "Convert to StatelessWidget", "kind": "refactor.rewrite", "description": "Convert a StatefulWidget to a StatelessWidget", "pattern": "class\\s+\\w+\\s+extends\\s+StatefulWidget", "isPreferred": false},
6
- {"title": "Extract widget", "kind": "refactor.extract", "description": "Extract the selected widget tree into a new widget class", "pattern": "\\w+\\(", "isPreferred": false},
7
- {"title": "Wrap with widget", "kind": "refactor.rewrite", "description": "Wrap a widget with a parent widget (Container, Padding, Center, etc.)", "pattern": "\\w+\\(", "isPreferred": false},
8
- {"title": "Wrap with Builder", "kind": "refactor.rewrite", "description": "Wrap widget with a Builder for a new BuildContext", "pattern": "\\w+\\(", "isPreferred": false},
9
- {"title": "Add const modifier", "kind": "quickfix", "description": "Add const to constructors and literals for compile-time optimization", "pattern": "\\w+\\(", "isPreferred": true},
10
- {"title": "Remove const modifier", "kind": "quickfix", "description": "Remove unnecessary const modifier", "pattern": "const\\s+\\w+", "isPreferred": false},
11
- {"title": "Organize imports", "kind": "source.organizeImports", "description": "Sort and remove unused imports", "pattern": "^import\\s+", "isPreferred": true},
12
- {"title": "Convert to expression body", "kind": "refactor.rewrite", "description": "Convert a block body with single return to => expression", "pattern": "\\{\\s*return\\s+", "isPreferred": false},
13
- {"title": "Convert to block body", "kind": "refactor.rewrite", "description": "Convert an expression body (=>) to a block body with return", "pattern": "=>\\s+", "isPreferred": false},
14
- {"title": "Add required keyword", "kind": "quickfix", "description": "Add required keyword to named parameter", "pattern": "\\{[^}]*\\w+\\s+\\w+", "isPreferred": true},
15
- {"title": "Sort child properties last", "kind": "refactor.rewrite", "description": "Move child/children property to the end of the widget constructor", "pattern": "child:", "isPreferred": false},
16
- {"title": "Add null check", "kind": "quickfix", "description": "Add null safety check (! or ?? default)", "pattern": "\\w+\\?", "isPreferred": false},
17
- {"title": "Convert to switch expression", "kind": "refactor.rewrite", "description": "Convert switch statement to switch expression (Dart 3)", "pattern": "switch\\s*\\(", "isPreferred": false},
18
- {"title": "Create missing override", "kind": "quickfix", "description": "Create missing override methods from superclass or interface", "pattern": "class\\s+\\w+\\s+(?:extends|implements)", "isPreferred": true},
19
- {"title": "Add type annotation", "kind": "quickfix", "description": "Add explicit type annotation to var/final declaration", "pattern": "(?:var|final)\\s+\\w+\\s*=", "isPreferred": false},
20
- {"title": "Convert to for-in", "kind": "refactor.rewrite", "description": "Convert indexed for loop to for-in loop", "pattern": "for\\s*\\(\\s*(?:var|int)\\s+\\w+\\s*=\\s*0", "isPreferred": false},
21
- {"title": "Add trailing comma", "kind": "quickfix", "description": "Add trailing comma for better formatting", "pattern": "\\w+\\([^)]+\\)", "isPreferred": false},
22
- {"title": "Convert to relative import", "kind": "refactor.rewrite", "description": "Convert package: import to relative import", "pattern": "import\\s+'package:", "isPreferred": false},
23
- {"title": "Extract method", "kind": "refactor.extract", "description": "Extract selected code into a new method", "pattern": ".*", "isPreferred": false},
24
- {"title": "Extract local variable", "kind": "refactor.extract", "description": "Extract selected expression into a local variable", "pattern": ".*", "isPreferred": false},
25
- {"title": "Inline method", "kind": "refactor.inline", "description": "Inline the body of a method at its call sites", "pattern": "\\w+\\s*\\(", "isPreferred": false},
26
- {"title": "Convert to multiline string", "kind": "refactor.rewrite", "description": "Convert a string to a multiline (triple-quoted) string", "pattern": "'[^']*'|\"[^\"]*\"", "isPreferred": false},
27
- {"title": "Wrap with Column", "kind": "refactor.rewrite", "description": "Wrap selected widget with a Column", "pattern": "\\w+\\(", "isPreferred": false},
28
- {"title": "Wrap with Row", "kind": "refactor.rewrite", "description": "Wrap selected widget with a Row", "pattern": "\\w+\\(", "isPreferred": false}
29
- ],
30
- "providedCodeActionKinds": ["quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.fixAll", "source.organizeImports", "source.sortMembers"]
31
- }
1
+ {
2
+ "language": "dart",
3
+ "codeActions": [
4
+ {
5
+ "title": "Convert to StatefulWidget",
6
+ "kind": "refactor.rewrite",
7
+ "description": "Convert a StatelessWidget to a StatefulWidget with State class",
8
+ "pattern": "class\\s+\\w+\\s+extends\\s+StatelessWidget",
9
+ "isPreferred": false
10
+ },
11
+ {
12
+ "title": "Convert to StatelessWidget",
13
+ "kind": "refactor.rewrite",
14
+ "description": "Convert a StatefulWidget to a StatelessWidget",
15
+ "pattern": "class\\s+\\w+\\s+extends\\s+StatefulWidget",
16
+ "isPreferred": false
17
+ },
18
+ {
19
+ "title": "Extract widget",
20
+ "kind": "refactor.extract",
21
+ "description": "Extract the selected widget tree into a new widget class",
22
+ "pattern": "\\w+\\(",
23
+ "isPreferred": false
24
+ },
25
+ {
26
+ "title": "Wrap with widget",
27
+ "kind": "refactor.rewrite",
28
+ "description": "Wrap a widget with a parent widget (Container, Padding, Center, etc.)",
29
+ "pattern": "\\w+\\(",
30
+ "isPreferred": false
31
+ },
32
+ {
33
+ "title": "Wrap with Builder",
34
+ "kind": "refactor.rewrite",
35
+ "description": "Wrap widget with a Builder for a new BuildContext",
36
+ "pattern": "\\w+\\(",
37
+ "isPreferred": false
38
+ },
39
+ {
40
+ "title": "Add const modifier",
41
+ "kind": "quickfix",
42
+ "description": "Add const to constructors and literals for compile-time optimization",
43
+ "pattern": "\\w+\\(",
44
+ "isPreferred": true
45
+ },
46
+ {
47
+ "title": "Remove const modifier",
48
+ "kind": "quickfix",
49
+ "description": "Remove unnecessary const modifier",
50
+ "pattern": "const\\s+\\w+",
51
+ "isPreferred": false
52
+ },
53
+ {
54
+ "title": "Organize imports",
55
+ "kind": "source.organizeImports",
56
+ "description": "Sort and remove unused imports",
57
+ "pattern": "^import\\s+",
58
+ "isPreferred": true
59
+ },
60
+ {
61
+ "title": "Convert to expression body",
62
+ "kind": "refactor.rewrite",
63
+ "description": "Convert a block body with single return to => expression",
64
+ "pattern": "\\{\\s*return\\s+",
65
+ "isPreferred": false
66
+ },
67
+ {
68
+ "title": "Convert to block body",
69
+ "kind": "refactor.rewrite",
70
+ "description": "Convert an expression body (=>) to a block body with return",
71
+ "pattern": "=>\\s+",
72
+ "isPreferred": false
73
+ },
74
+ {
75
+ "title": "Add required keyword",
76
+ "kind": "quickfix",
77
+ "description": "Add required keyword to named parameter",
78
+ "pattern": "\\{[^}]*\\w+\\s+\\w+",
79
+ "isPreferred": true
80
+ },
81
+ {
82
+ "title": "Sort child properties last",
83
+ "kind": "refactor.rewrite",
84
+ "description": "Move child/children property to the end of the widget constructor",
85
+ "pattern": "child:",
86
+ "isPreferred": false
87
+ },
88
+ {
89
+ "title": "Add null check",
90
+ "kind": "quickfix",
91
+ "description": "Add null safety check (! or ?? default)",
92
+ "pattern": "\\w+\\?",
93
+ "isPreferred": false
94
+ },
95
+ {
96
+ "title": "Convert to switch expression",
97
+ "kind": "refactor.rewrite",
98
+ "description": "Convert switch statement to switch expression (Dart 3)",
99
+ "pattern": "switch\\s*\\(",
100
+ "isPreferred": false
101
+ },
102
+ {
103
+ "title": "Create missing override",
104
+ "kind": "quickfix",
105
+ "description": "Create missing override methods from superclass or interface",
106
+ "pattern": "class\\s+\\w+\\s+(?:extends|implements)",
107
+ "isPreferred": true
108
+ },
109
+ {
110
+ "title": "Add type annotation",
111
+ "kind": "quickfix",
112
+ "description": "Add explicit type annotation to var/final declaration",
113
+ "pattern": "(?:var|final)\\s+\\w+\\s*=",
114
+ "isPreferred": false
115
+ },
116
+ {
117
+ "title": "Convert to for-in",
118
+ "kind": "refactor.rewrite",
119
+ "description": "Convert indexed for loop to for-in loop",
120
+ "pattern": "for\\s*\\(\\s*(?:var|int)\\s+\\w+\\s*=\\s*0",
121
+ "isPreferred": false
122
+ },
123
+ {
124
+ "title": "Add trailing comma",
125
+ "kind": "quickfix",
126
+ "description": "Add trailing comma for better formatting",
127
+ "pattern": "\\w+\\([^)]+\\)",
128
+ "isPreferred": false
129
+ },
130
+ {
131
+ "title": "Convert to relative import",
132
+ "kind": "refactor.rewrite",
133
+ "description": "Convert package: import to relative import",
134
+ "pattern": "import\\s+'package:",
135
+ "isPreferred": false
136
+ },
137
+ {
138
+ "title": "Extract method",
139
+ "kind": "refactor.extract",
140
+ "description": "Extract selected code into a new method",
141
+ "pattern": ".*",
142
+ "isPreferred": false
143
+ },
144
+ {
145
+ "title": "Extract local variable",
146
+ "kind": "refactor.extract",
147
+ "description": "Extract selected expression into a local variable",
148
+ "pattern": ".*",
149
+ "isPreferred": false
150
+ },
151
+ {
152
+ "title": "Inline method",
153
+ "kind": "refactor.inline",
154
+ "description": "Inline the body of a method at its call sites",
155
+ "pattern": "\\w+\\s*\\(",
156
+ "isPreferred": false
157
+ },
158
+ {
159
+ "title": "Convert to multiline string",
160
+ "kind": "refactor.rewrite",
161
+ "description": "Convert a string to a multiline (triple-quoted) string",
162
+ "pattern": "'[^']*'|\"[^\"]*\"",
163
+ "isPreferred": false
164
+ },
165
+ {
166
+ "title": "Wrap with Column",
167
+ "kind": "refactor.rewrite",
168
+ "description": "Wrap selected widget with a Column",
169
+ "pattern": "\\w+\\(",
170
+ "isPreferred": false
171
+ },
172
+ {
173
+ "title": "Wrap with Row",
174
+ "kind": "refactor.rewrite",
175
+ "description": "Wrap selected widget with a Row",
176
+ "pattern": "\\w+\\(",
177
+ "isPreferred": false
178
+ }
179
+ ],
180
+ "providedCodeActionKinds": [
181
+ "quickfix",
182
+ "refactor",
183
+ "refactor.extract",
184
+ "refactor.inline",
185
+ "refactor.rewrite",
186
+ "source",
187
+ "source.fixAll",
188
+ "source.organizeImports"
189
+ ]
190
+ }