@enjoys/context-engine 1.3.1 → 1.4.2
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.
- package/data/codeActions/angular.json +126 -0
- package/data/codeActions/nestjs.json +124 -0
- package/data/codeActions/nextjs.json +198 -0
- package/data/codeActions/react.json +154 -0
- package/data/codeActions/shadcn.json +112 -0
- package/data/codeActions/shell.json +169 -26
- package/data/codeLens/angular.json +22 -0
- package/data/codeLens/awk.json +1 -1
- package/data/codeLens/azcli.json +10 -10
- package/data/codeLens/c.json +1 -1
- package/data/codeLens/caddy.json +1 -1
- package/data/codeLens/crontab.json +1 -1
- package/data/codeLens/doctest.json +10 -10
- package/data/codeLens/hcl.json +1 -1
- package/data/codeLens/html.json +1 -1
- package/data/codeLens/lua.json +1 -1
- package/data/codeLens/nestjs.json +21 -0
- package/data/codeLens/nextjs.json +117 -0
- package/data/codeLens/nginx.json +1 -1
- package/data/codeLens/pla.json +10 -10
- package/data/codeLens/react.json +89 -0
- package/data/codeLens/shadcn.json +89 -0
- package/data/codeLens/shell.json +59 -17
- package/data/codeLens/tailwindcss.json +56 -0
- package/data/codeLens/xml.json +1 -1
- package/data/color/angular.json +21 -0
- package/data/color/nestjs.json +18 -0
- package/data/color/nextjs.json +22 -0
- package/data/color/react.json +93 -0
- package/data/color/shadcn.json +66 -0
- package/data/color/shell.json +106 -80
- package/data/commands/angular.json +670 -0
- package/data/commands/c.json +30 -30
- package/data/commands/cpp.json +30 -30
- package/data/commands/crontab.json +25 -30
- package/data/commands/cypher.json +26 -30
- package/data/commands/dockerfile.json +26 -2
- package/data/commands/doctest.json +23 -24
- package/data/commands/dotenv.json +24 -11
- package/data/commands/ecl.json +26 -30
- package/data/commands/flow9.json +24 -24
- package/data/commands/freemarker2.json +24 -18
- package/data/commands/graphql.json +25 -11
- package/data/commands/html.json +25 -11
- package/data/commands/ini.json +26 -12
- package/data/commands/javascript.json +29 -30
- package/data/commands/less.json +25 -29
- package/data/commands/lexon.json +23 -11
- package/data/commands/liquid.json +26 -11
- package/data/commands/m3.json +26 -12
- package/data/commands/manifest.json +35 -726
- package/data/commands/markdown.json +26 -12
- package/data/commands/mdx.json +23 -10
- package/data/commands/mips.json +26 -18
- package/data/commands/msdax.json +23 -11
- package/data/commands/nestjs.json +516 -0
- package/data/commands/nextjs.json +250 -0
- package/data/commands/objective-c.json +26 -24
- package/data/commands/pascal.json +27 -24
- package/data/commands/pascaligo.json +26 -24
- package/data/commands/perl.json +30 -30
- package/data/commands/pla.json +23 -11
- package/data/commands/postiats.json +26 -24
- package/data/commands/powerquery.json +23 -11
- package/data/commands/powershell.json +28 -30
- package/data/commands/protobuf.json +27 -30
- package/data/commands/qsharp.json +26 -30
- package/data/commands/razor.json +25 -29
- package/data/commands/react.json +244 -0
- package/data/commands/redshift.json +27 -18
- package/data/commands/restructuredtext.json +29 -30
- package/data/commands/sb.json +23 -11
- package/data/commands/scheme.json +25 -18
- package/data/commands/scss.json +26 -29
- package/data/commands/shadcn.json +564 -0
- package/data/commands/shell.json +571 -41
- package/data/commands/sol.json +27 -30
- package/data/commands/sparql.json +25 -11
- package/data/commands/sql.json +16 -2
- package/data/commands/ssh_config.json +31 -30
- package/data/commands/st.json +23 -11
- package/data/commands/systemverilog.json +26 -24
- package/data/commands/tailwindcss.json +60 -53
- package/data/commands/tcl.json +23 -18
- package/data/commands/toml.json +25 -11
- package/data/commands/twig.json +23 -10
- package/data/commands/vb.json +27 -24
- package/data/commands/wgsl.json +24 -11
- package/data/commands/yaml.json +29 -30
- package/data/completion/angular.json +1490 -0
- package/data/completion/awk.json +906 -202
- package/data/completion/azcli.json +886 -237
- package/data/completion/bicep.json +862 -367
- package/data/completion/crontab.json +906 -202
- package/data/completion/css.json +793 -0
- package/data/completion/dotenv.json +895 -169
- package/data/completion/graphql.json +895 -180
- package/data/completion/hcl.json +906 -191
- package/data/completion/ini.json +906 -136
- package/data/completion/json.json +895 -169
- package/data/completion/lexon.json +856 -295
- package/data/completion/makefile.json +906 -202
- package/data/completion/markdown.json +906 -224
- package/data/completion/mdx.json +895 -87
- package/data/completion/mips.json +872 -377
- package/data/completion/nestjs.json +1454 -0
- package/data/completion/nextjs.json +1373 -0
- package/data/completion/perl.json +961 -202
- package/data/completion/pla.json +895 -154
- package/data/completion/powershell.json +906 -224
- package/data/completion/protobuf.json +884 -180
- package/data/completion/react.json +1319 -0
- package/data/completion/shadcn.json +1202 -0
- package/data/completion/shell.json +2446 -510
- package/data/completion/ssh_config.json +906 -158
- package/data/completion/xml.json +906 -158
- package/data/declaration/angular.json +46 -0
- package/data/declaration/nestjs.json +47 -0
- package/data/declaration/nextjs.json +274 -0
- package/data/declaration/react.json +199 -0
- package/data/declaration/shadcn.json +211 -0
- package/data/declaration/shell.json +343 -24
- package/data/declaration/tailwindcss.json +72 -0
- package/data/definition/abap.json +127 -1
- package/data/definition/angular.json +670 -0
- package/data/definition/apex.json +97 -1
- package/data/definition/coffee.json +51 -1
- package/data/definition/dart.json +105 -1
- package/data/definition/elixir.json +115 -1
- package/data/definition/flow9.json +208 -1
- package/data/definition/freemarker2.json +283 -1
- package/data/definition/html.json +853 -558
- package/data/definition/java.json +1127 -183
- package/data/definition/kotlin.json +72 -1
- package/data/definition/nestjs.json +684 -0
- package/data/definition/nextjs.json +439 -0
- package/data/definition/r.json +692 -83
- package/data/definition/react.json +397 -0
- package/data/definition/ruby.json +789 -669
- package/data/definition/rust.json +852 -206
- package/data/definition/sb.json +339 -1
- package/data/definition/shadcn.json +99 -0
- package/data/definition/shell.json +820 -0
- package/data/definition/st.json +367 -1
- package/data/documentHighlight/angular.json +414 -0
- package/data/documentHighlight/css.json +77 -2
- package/data/documentHighlight/nestjs.json +115 -0
- package/data/documentHighlight/nextjs.json +212 -0
- package/data/documentHighlight/react.json +119 -0
- package/data/documentHighlight/shadcn.json +168 -0
- package/data/documentHighlight/shell.json +664 -334
- package/data/documentHighlight/tailwindcss.json +105 -10
- package/data/documentRangeFormatting/angular.json +45 -0
- package/data/documentRangeFormatting/nestjs.json +57 -0
- package/data/documentRangeFormatting/nextjs.json +57 -0
- package/data/documentRangeFormatting/react.json +82 -0
- package/data/documentRangeFormatting/shadcn.json +45 -0
- package/data/documentRangeFormatting/shell.json +120 -53
- package/data/documentSymbol/abap.json +54 -12
- package/data/documentSymbol/angular.json +180 -0
- package/data/documentSymbol/apex.json +40 -10
- package/data/documentSymbol/awk.json +15 -1
- package/data/documentSymbol/bicep.json +39 -39
- package/data/documentSymbol/c.json +1 -1
- package/data/documentSymbol/clojure.json +46 -46
- package/data/documentSymbol/css.json +96 -96
- package/data/documentSymbol/dart.json +109 -19
- package/data/documentSymbol/dockerfile.json +1 -1
- package/data/documentSymbol/elixir.json +39 -39
- package/data/documentSymbol/go.json +1 -1
- package/data/documentSymbol/graphql.json +1 -1
- package/data/documentSymbol/hcl.json +1 -1
- package/data/documentSymbol/html.json +29 -1
- package/data/documentSymbol/java.json +1 -1
- package/data/documentSymbol/javascript.json +1 -1
- package/data/documentSymbol/julia.json +46 -46
- package/data/documentSymbol/kotlin.json +74 -14
- package/data/documentSymbol/less.json +25 -25
- package/data/documentSymbol/lua.json +22 -1
- package/data/documentSymbol/makefile.json +15 -1
- package/data/documentSymbol/markdown.json +36 -1
- package/data/documentSymbol/mysql.json +32 -32
- package/data/documentSymbol/nestjs.json +152 -0
- package/data/documentSymbol/nextjs.json +159 -0
- package/data/documentSymbol/nginx.json +1 -1
- package/data/documentSymbol/pascal.json +46 -46
- package/data/documentSymbol/perl.json +1 -1
- package/data/documentSymbol/pgsql.json +39 -39
- package/data/documentSymbol/php.json +1 -1
- package/data/documentSymbol/powershell.json +1 -1
- package/data/documentSymbol/protobuf.json +1 -1
- package/data/documentSymbol/python.json +1 -1
- package/data/documentSymbol/r.json +67 -67
- package/data/documentSymbol/react.json +145 -0
- package/data/documentSymbol/redshift.json +60 -18
- package/data/documentSymbol/ruby.json +1 -1
- package/data/documentSymbol/rust.json +1 -1
- package/data/documentSymbol/scala.json +116 -20
- package/data/documentSymbol/scheme.json +25 -25
- package/data/documentSymbol/scss.json +39 -39
- package/data/documentSymbol/shadcn.json +131 -0
- package/data/documentSymbol/shell.json +165 -25
- package/data/documentSymbol/sql.json +1 -1
- package/data/documentSymbol/swift.json +88 -16
- package/data/documentSymbol/tailwindcss.json +49 -0
- package/data/documentSymbol/typescript.json +1 -1
- package/data/documentSymbol/vb.json +53 -53
- package/data/documentSymbol/yaml.json +1 -1
- package/data/foldingRange/angular.json +100 -0
- package/data/foldingRange/nestjs.json +94 -0
- package/data/foldingRange/nextjs.json +94 -0
- package/data/foldingRange/react.json +118 -0
- package/data/foldingRange/shadcn.json +94 -0
- package/data/foldingRange/shell.json +106 -46
- package/data/formatting/abap.json +19 -11
- package/data/formatting/angular.json +63 -0
- package/data/formatting/apex.json +19 -11
- package/data/formatting/awk.json +1 -1
- package/data/formatting/azcli.json +18 -18
- package/data/formatting/bicep.json +18 -18
- package/data/formatting/c.json +1 -1
- package/data/formatting/caddy.json +1 -1
- package/data/formatting/cameligo.json +18 -18
- package/data/formatting/clojure.json +18 -18
- package/data/formatting/coffee.json +18 -18
- package/data/formatting/cpp.json +1 -1
- package/data/formatting/crontab.json +1 -1
- package/data/formatting/csharp.json +1 -1
- package/data/formatting/css.json +73 -73
- package/data/formatting/cypher.json +18 -18
- package/data/formatting/dart.json +43 -15
- package/data/formatting/docker-compose.json +24 -24
- package/data/formatting/dockerfile.json +1 -1
- package/data/formatting/doctest.json +18 -18
- package/data/formatting/dotenv.json +1 -1
- package/data/formatting/ecl.json +18 -18
- package/data/formatting/elixir.json +43 -18
- package/data/formatting/flow9.json +18 -18
- package/data/formatting/freemarker2.json +18 -18
- package/data/formatting/go.json +1 -1
- package/data/formatting/graphql.json +1 -1
- package/data/formatting/hcl.json +26 -1
- package/data/formatting/html.json +26 -1
- package/data/formatting/ini.json +1 -1
- package/data/formatting/java.json +1 -1
- package/data/formatting/javascript.json +1 -1
- package/data/formatting/julia.json +18 -18
- package/data/formatting/kotlin.json +33 -13
- package/data/formatting/less.json +48 -18
- package/data/formatting/lexon.json +18 -18
- package/data/formatting/liquid.json +18 -18
- package/data/formatting/lua.json +1 -1
- package/data/formatting/m3.json +18 -18
- package/data/formatting/makefile.json +1 -1
- package/data/formatting/markdown.json +26 -1
- package/data/formatting/mdx.json +18 -18
- package/data/formatting/mips.json +18 -18
- package/data/formatting/msdax.json +18 -18
- package/data/formatting/mysql.json +43 -18
- package/data/formatting/nestjs.json +23 -0
- package/data/formatting/nextjs.json +23 -0
- package/data/formatting/nginx.json +1 -1
- package/data/formatting/objective-c.json +18 -18
- package/data/formatting/pascal.json +18 -18
- package/data/formatting/pascaligo.json +18 -18
- package/data/formatting/perl.json +1 -1
- package/data/formatting/pgsql.json +43 -18
- package/data/formatting/php.json +1 -1
- package/data/formatting/pla.json +18 -18
- package/data/formatting/postiats.json +18 -18
- package/data/formatting/powerquery.json +18 -18
- package/data/formatting/powershell.json +1 -1
- package/data/formatting/protobuf.json +1 -1
- package/data/formatting/python.json +1 -1
- package/data/formatting/qsharp.json +18 -18
- package/data/formatting/r.json +32 -32
- package/data/formatting/razor.json +18 -18
- package/data/formatting/react.json +71 -0
- package/data/formatting/redis-cli.json +1 -1
- package/data/formatting/redis.json +18 -18
- package/data/formatting/redshift.json +43 -18
- package/data/formatting/restructuredtext.json +18 -18
- package/data/formatting/ruby.json +1 -1
- package/data/formatting/rust.json +1 -1
- package/data/formatting/sb.json +18 -18
- package/data/formatting/scala.json +48 -16
- package/data/formatting/scheme.json +18 -18
- package/data/formatting/scss.json +48 -18
- package/data/formatting/shadcn.json +63 -0
- package/data/formatting/shell.json +102 -18
- package/data/formatting/sol.json +18 -18
- package/data/formatting/sparql.json +18 -18
- package/data/formatting/sql.json +1 -1
- package/data/formatting/ssh_config.json +1 -1
- package/data/formatting/st.json +18 -18
- package/data/formatting/swift.json +58 -18
- package/data/formatting/systemd.json +1 -1
- package/data/formatting/systemverilog.json +18 -18
- package/data/formatting/tcl.json +18 -18
- package/data/formatting/toml.json +1 -1
- package/data/formatting/twig.json +18 -18
- package/data/formatting/typescript.json +1 -1
- package/data/formatting/vb.json +18 -18
- package/data/formatting/wgsl.json +18 -18
- package/data/formatting/xml.json +26 -1
- package/data/formatting/yaml.json +1 -1
- package/data/hover/angular.json +455 -0
- package/data/hover/apex.json +281 -6
- package/data/hover/awk.json +251 -6
- package/data/hover/crontab.json +251 -6
- package/data/hover/css.json +232 -0
- package/data/hover/dotenv.json +242 -4
- package/data/hover/graphql.json +251 -6
- package/data/hover/lexon.json +250 -5
- package/data/hover/markdown.json +226 -9
- package/data/hover/mdx.json +250 -5
- package/data/hover/nestjs.json +296 -0
- package/data/hover/nextjs.json +305 -0
- package/data/hover/perl.json +251 -6
- package/data/hover/pla.json +264 -5
- package/data/hover/powershell.json +252 -7
- package/data/hover/protobuf.json +251 -6
- package/data/hover/react.json +173 -0
- package/data/hover/redis.json +355 -40
- package/data/hover/shadcn.json +450 -0
- package/data/hover/shell.json +684 -75
- package/data/hover/ssh_config.json +251 -6
- package/data/hover/xml.json +231 -7
- package/data/implementation/angular.json +22 -0
- package/data/implementation/nestjs.json +24 -0
- package/data/implementation/nextjs.json +137 -0
- package/data/implementation/react.json +125 -0
- package/data/implementation/shadcn.json +89 -0
- package/data/implementation/shell.json +59 -3
- package/data/inlayHints/angular.json +24 -0
- package/data/inlayHints/nestjs.json +24 -0
- package/data/inlayHints/nextjs.json +143 -0
- package/data/inlayHints/react.json +177 -0
- package/data/inlayHints/shadcn.json +109 -0
- package/data/inlayHints/shell.json +223 -35
- package/data/inlineCompletions/angular.json +135 -0
- package/data/inlineCompletions/c.json +49 -1
- package/data/inlineCompletions/cpp.json +61 -1
- package/data/inlineCompletions/csharp.json +73 -1
- package/data/inlineCompletions/css.json +125 -125
- package/data/inlineCompletions/dart.json +136 -26
- package/data/inlineCompletions/elixir.json +34 -34
- package/data/inlineCompletions/go.json +67 -1
- package/data/inlineCompletions/html.json +1 -1
- package/data/inlineCompletions/java.json +67 -1
- package/data/inlineCompletions/javascript.json +97 -1
- package/data/inlineCompletions/kotlin.json +88 -18
- package/data/inlineCompletions/less.json +76 -28
- package/data/inlineCompletions/lua.json +37 -1
- package/data/inlineCompletions/mysql.json +34 -34
- package/data/inlineCompletions/nestjs.json +25 -0
- package/data/inlineCompletions/nextjs.json +179 -0
- package/data/inlineCompletions/pgsql.json +34 -34
- package/data/inlineCompletions/php.json +43 -1
- package/data/inlineCompletions/python.json +73 -1
- package/data/inlineCompletions/react.json +203 -0
- package/data/inlineCompletions/ruby.json +49 -1
- package/data/inlineCompletions/rust.json +61 -1
- package/data/inlineCompletions/scala.json +130 -25
- package/data/inlineCompletions/scss.json +34 -34
- package/data/inlineCompletions/shadcn.json +115 -0
- package/data/inlineCompletions/shell.json +184 -34
- package/data/inlineCompletions/sql.json +43 -1
- package/data/inlineCompletions/swift.json +112 -22
- package/data/inlineCompletions/typescript.json +97 -1
- package/data/linkedEditingRange/angular.json +23 -0
- package/data/linkedEditingRange/azcli.json +6 -6
- package/data/linkedEditingRange/crontab.json +6 -6
- package/data/linkedEditingRange/docker-compose.json +6 -6
- package/data/linkedEditingRange/doctest.json +6 -6
- package/data/linkedEditingRange/dotenv.json +13 -6
- package/data/linkedEditingRange/ini.json +13 -6
- package/data/linkedEditingRange/json.json +13 -6
- package/data/linkedEditingRange/lexon.json +6 -6
- package/data/linkedEditingRange/mips.json +6 -6
- package/data/linkedEditingRange/msdax.json +6 -6
- package/data/linkedEditingRange/nestjs.json +18 -0
- package/data/linkedEditingRange/nextjs.json +24 -0
- package/data/linkedEditingRange/pla.json +6 -6
- package/data/linkedEditingRange/react.json +74 -0
- package/data/linkedEditingRange/redis-cli.json +6 -6
- package/data/linkedEditingRange/redis.json +6 -6
- package/data/linkedEditingRange/shadcn.json +23 -0
- package/data/linkedEditingRange/shell.json +25 -25
- package/data/linkedEditingRange/ssh_config.json +6 -6
- package/data/linkedEditingRange/systemd.json +6 -6
- package/data/linkedEditingRange/toml.json +13 -6
- package/data/linkedEditingRange/wgsl.json +6 -6
- package/data/linkedEditingRange/xml.json +13 -13
- package/data/linkedEditingRange/yaml.json +13 -6
- package/data/links/angular.json +95 -0
- package/data/links/nestjs.json +130 -0
- package/data/links/nextjs.json +91 -0
- package/data/links/react.json +75 -0
- package/data/links/shadcn.json +98 -0
- package/data/links/shell.json +56 -0
- package/data/links/tailwindcss.json +25 -0
- package/data/manifest.json +339 -152
- package/data/onTypeFormatting/angular.json +63 -0
- package/data/onTypeFormatting/nestjs.json +64 -0
- package/data/onTypeFormatting/nextjs.json +72 -0
- package/data/onTypeFormatting/react.json +148 -0
- package/data/onTypeFormatting/shadcn.json +63 -0
- package/data/onTypeFormatting/shell.json +72 -68
- package/data/rangeSemanticTokens/angular.json +196 -0
- package/data/rangeSemanticTokens/nestjs.json +195 -0
- package/data/rangeSemanticTokens/nextjs.json +199 -0
- package/data/rangeSemanticTokens/react.json +77 -0
- package/data/rangeSemanticTokens/shadcn.json +203 -0
- package/data/rangeSemanticTokens/shell.json +247 -69
- package/data/rangeSemanticTokens/tailwindcss.json +99 -8
- package/data/references/angular.json +26 -0
- package/data/references/nestjs.json +24 -0
- package/data/references/nextjs.json +178 -0
- package/data/references/react.json +192 -0
- package/data/references/shadcn.json +101 -0
- package/data/references/shell.json +323 -92
- package/data/references/tailwindcss.json +66 -0
- package/data/rename/angular.json +121 -0
- package/data/rename/nestjs.json +122 -0
- package/data/rename/nextjs.json +116 -0
- package/data/rename/react.json +133 -0
- package/data/rename/shadcn.json +73 -0
- package/data/rename/shell.json +101 -31
- package/data/selectionRange/abap.json +58 -34
- package/data/selectionRange/angular.json +126 -0
- package/data/selectionRange/apex.json +58 -34
- package/data/selectionRange/awk.json +56 -34
- package/data/selectionRange/azcli.json +43 -24
- package/data/selectionRange/bicep.json +56 -34
- package/data/selectionRange/c.json +62 -39
- package/data/selectionRange/caddy.json +53 -34
- package/data/selectionRange/cameligo.json +56 -34
- package/data/selectionRange/clojure.json +57 -34
- package/data/selectionRange/coffee.json +59 -34
- package/data/selectionRange/cpp.json +73 -44
- package/data/selectionRange/crontab.json +39 -29
- package/data/selectionRange/csharp.json +69 -39
- package/data/selectionRange/css.json +95 -55
- package/data/selectionRange/cypher.json +57 -34
- package/data/selectionRange/dart.json +65 -34
- package/data/selectionRange/docker-compose.json +54 -34
- package/data/selectionRange/dockerfile.json +56 -34
- package/data/selectionRange/doctest.json +47 -24
- package/data/selectionRange/dotenv.json +33 -24
- package/data/selectionRange/ecl.json +58 -34
- package/data/selectionRange/elixir.json +63 -34
- package/data/selectionRange/flow9.json +57 -34
- package/data/selectionRange/freemarker2.json +58 -34
- package/data/selectionRange/go.json +64 -39
- package/data/selectionRange/graphql.json +58 -34
- package/data/selectionRange/hcl.json +56 -34
- package/data/selectionRange/html.json +63 -34
- package/data/selectionRange/ini.json +38 -24
- package/data/selectionRange/java.json +68 -39
- package/data/selectionRange/javascript.json +65 -39
- package/data/selectionRange/julia.json +65 -39
- package/data/selectionRange/kotlin.json +68 -39
- package/data/selectionRange/less.json +58 -34
- package/data/selectionRange/lexon.json +38 -24
- package/data/selectionRange/liquid.json +58 -34
- package/data/selectionRange/lua.json +59 -34
- package/data/selectionRange/m3.json +57 -34
- package/data/selectionRange/makefile.json +53 -34
- package/data/selectionRange/markdown.json +57 -34
- package/data/selectionRange/mdx.json +63 -34
- package/data/selectionRange/mips.json +43 -29
- package/data/selectionRange/msdax.json +52 -34
- package/data/selectionRange/mysql.json +51 -34
- package/data/selectionRange/nestjs.json +35 -0
- package/data/selectionRange/nextjs.json +35 -0
- package/data/selectionRange/nginx.json +53 -34
- package/data/selectionRange/objective-c.json +64 -39
- package/data/selectionRange/pascal.json +53 -34
- package/data/selectionRange/pascaligo.json +57 -34
- package/data/selectionRange/perl.json +59 -34
- package/data/selectionRange/pgsql.json +50 -34
- package/data/selectionRange/php.json +65 -39
- package/data/selectionRange/pla.json +52 -29
- package/data/selectionRange/postiats.json +61 -34
- package/data/selectionRange/powerquery.json +56 -34
- package/data/selectionRange/powershell.json +65 -39
- package/data/selectionRange/protobuf.json +58 -34
- package/data/selectionRange/python.json +66 -39
- package/data/selectionRange/qsharp.json +62 -39
- package/data/selectionRange/r.json +57 -34
- package/data/selectionRange/razor.json +63 -34
- package/data/selectionRange/react.json +103 -0
- package/data/selectionRange/redis-cli.json +38 -24
- package/data/selectionRange/redis.json +38 -24
- package/data/selectionRange/redshift.json +49 -34
- package/data/selectionRange/restructuredtext.json +58 -34
- package/data/selectionRange/ruby.json +65 -39
- package/data/selectionRange/rust.json +73 -44
- package/data/selectionRange/sb.json +43 -29
- package/data/selectionRange/scala.json +65 -39
- package/data/selectionRange/scheme.json +52 -34
- package/data/selectionRange/scss.json +58 -34
- package/data/selectionRange/shadcn.json +120 -0
- package/data/selectionRange/shell.json +64 -34
- package/data/selectionRange/sol.json +63 -39
- package/data/selectionRange/sparql.json +58 -34
- package/data/selectionRange/sql.json +50 -34
- package/data/selectionRange/ssh_config.json +37 -29
- package/data/selectionRange/st.json +49 -29
- package/data/selectionRange/swift.json +73 -44
- package/data/selectionRange/systemd.json +47 -34
- package/data/selectionRange/systemverilog.json +62 -39
- package/data/selectionRange/tailwindcss.json +49 -34
- package/data/selectionRange/tcl.json +57 -34
- package/data/selectionRange/toml.json +49 -29
- package/data/selectionRange/twig.json +58 -34
- package/data/selectionRange/typescript.json +75 -44
- package/data/selectionRange/vb.json +59 -39
- package/data/selectionRange/wgsl.json +61 -34
- package/data/selectionRange/xml.json +51 -34
- package/data/selectionRange/yaml.json +54 -34
- package/data/semanticTokens/angular.json +269 -0
- package/data/semanticTokens/nestjs.json +245 -0
- package/data/semanticTokens/nextjs.json +265 -0
- package/data/semanticTokens/react.json +230 -0
- package/data/semanticTokens/shadcn.json +235 -0
- package/data/semanticTokens/shell.json +238 -65
- package/data/signatureHelp/angular.json +182 -0
- package/data/signatureHelp/nestjs.json +201 -0
- package/data/signatureHelp/nextjs.json +185 -0
- package/data/signatureHelp/react.json +285 -0
- package/data/signatureHelp/shadcn.json +237 -0
- package/data/signatureHelp/shell.json +797 -104
- package/data/typeDefinition/angular.json +362 -0
- package/data/typeDefinition/nestjs.json +334 -0
- package/data/typeDefinition/nextjs.json +285 -0
- package/data/typeDefinition/react.json +236 -0
- package/data/typeDefinition/shadcn.json +292 -0
- package/data/typeDefinition/shell.json +104 -40
- package/package.json +1 -1
- package/data/codeActions/bash.json +0 -169
- package/data/codeActions/zsh.json +0 -49
- package/data/codeLens/bash.json +0 -75
- package/data/codeLens/zsh.json +0 -19
- package/data/color/bash.json +0 -100
- package/data/color/zsh.json +0 -80
- package/data/commands/bash.json +0 -102
- package/data/commands/zsh.json +0 -166
- package/data/completion/bash.json +0 -1184
- package/data/completion/zsh.json +0 -973
- package/data/declaration/bash.json +0 -301
- package/data/declaration/zsh.json +0 -205
- package/data/definition/bash.json +0 -565
- package/data/definition/zsh.json +0 -350
- package/data/documentHighlight/bash.json +0 -393
- package/data/documentHighlight/zsh.json +0 -266
- package/data/documentRangeFormatting/bash.json +0 -41
- package/data/documentRangeFormatting/zsh.json +0 -59
- package/data/documentSymbol/bash.json +0 -124
- package/data/documentSymbol/zsh.json +0 -26
- package/data/foldingRange/bash.json +0 -76
- package/data/foldingRange/zsh.json +0 -46
- package/data/formatting/bash.json +0 -88
- package/data/formatting/zsh.json +0 -28
- package/data/hover/bash.json +0 -579
- package/data/hover/zsh.json +0 -96
- package/data/implementation/bash.json +0 -44
- package/data/implementation/zsh.json +0 -41
- package/data/inlayHints/bash.json +0 -207
- package/data/inlayHints/zsh.json +0 -43
- package/data/inlineCompletions/bash.json +0 -155
- package/data/inlineCompletions/zsh.json +0 -17
- package/data/linkedEditingRange/bash.json +0 -25
- package/data/linkedEditingRange/zsh.json +0 -25
- package/data/links/bash.json +0 -56
- package/data/links/zsh.json +0 -15
- package/data/onTypeFormatting/bash.json +0 -68
- package/data/onTypeFormatting/zsh.json +0 -68
- package/data/rangeSemanticTokens/bash.json +0 -90
- package/data/rangeSemanticTokens/zsh.json +0 -76
- package/data/references/bash.json +0 -221
- package/data/references/zsh.json +0 -166
- package/data/rename/bash.json +0 -37
- package/data/rename/zsh.json +0 -31
- package/data/selectionRange/bash.json +0 -35
- package/data/selectionRange/zsh.json +0 -35
- package/data/semanticTokens/bash.json +0 -71
- package/data/semanticTokens/zsh.json +0 -71
- package/data/signatureHelp/bash.json +0 -111
- package/data/signatureHelp/zsh.json +0 -118
- package/data/typeDefinition/bash.json +0 -95
- package/data/typeDefinition/zsh.json +0 -40
package/data/hover/apex.json
CHANGED
|
@@ -1,10 +1,285 @@
|
|
|
1
1
|
{
|
|
2
2
|
"language": "apex",
|
|
3
3
|
"hovers": {
|
|
4
|
-
"class": {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
"class": {
|
|
5
|
+
"contents": [
|
|
6
|
+
{
|
|
7
|
+
"value": "```apex\npublic class AccountService {\n public Account getById(Id accountId) {\n return [SELECT Id, Name FROM Account WHERE Id = :accountId];\n }\n}\n```\n**class** declares an Apex class. Access modifiers: `public`, `private`, `global`, `protected`. Use `with sharing` for security."
|
|
8
|
+
}
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
"trigger": {
|
|
12
|
+
"contents": [
|
|
13
|
+
{
|
|
14
|
+
"value": "```apex\ntrigger AccountTrigger on Account (before insert, after update) {\n AccountTriggerHandler.handle(Trigger.new, Trigger.oldMap);\n}\n```\n**trigger** fires on DML events. Best practice: delegate to handler class."
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"SOQL": {
|
|
19
|
+
"contents": [
|
|
20
|
+
{
|
|
21
|
+
"value": "```apex\nList<Account> accts = [\n SELECT Id, Name, Industry,\n (SELECT Id, Amount FROM Opportunities)\n FROM Account\n WHERE CreatedDate = TODAY\n LIMIT 100\n];\n```\n**SOQL** queries Salesforce data. Supports relationships, aggregates, bind variables (`:var`), date literals."
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"SOSL": {
|
|
26
|
+
"contents": [
|
|
27
|
+
{
|
|
28
|
+
"value": "```apex\nList<List<SObject>> results = [FIND 'Acme*' IN ALL FIELDS\n RETURNING Account(Name, Industry),\n Contact(FirstName, LastName)\n LIMIT 20\n];\n```\n**SOSL** performs full-text searches across multiple objects. Returns a list of lists."
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"DML": {
|
|
33
|
+
"contents": [
|
|
34
|
+
{
|
|
35
|
+
"value": "```apex\ninsert newAccount;\nupdate existingAccount;\nupsert records ExternalId__c;\ndelete oldRecords;\nundelete recoveredRecords;\n```\n**DML** statements modify data. Use `Database.insert(records, false)` for partial success."
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"System.debug": {
|
|
40
|
+
"contents": [
|
|
41
|
+
{
|
|
42
|
+
"value": "```apex\nSystem.debug('Value: ' + myVar);\nSystem.debug(LoggingLevel.ERROR, 'Critical issue');\n```\n**System.debug()** writes to the debug log. Levels: `ERROR`, `WARN`, `INFO`, `DEBUG`, `FINE`, `FINER`, `FINEST`."
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"Test": {
|
|
47
|
+
"contents": [
|
|
48
|
+
{
|
|
49
|
+
"value": "```apex\n@isTest\nprivate class AccountServiceTest {\n @TestSetup\n static void setup() {\n insert new Account(Name = 'Test');\n }\n @isTest\n static void testGetById() {\n Test.startTest();\n // test code\n Test.stopTest();\n System.assertEquals(expected, actual);\n }\n}\n```\n**@isTest** marks test classes/methods. Minimum 75% code coverage for deployment."
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"interface": {
|
|
54
|
+
"contents": [
|
|
55
|
+
{
|
|
56
|
+
"value": "```apex\npublic interface Schedulable {\n void execute(SchedulableContext ctx);\n}\npublic class MyJob implements Schedulable {\n public void execute(SchedulableContext ctx) { }\n}\n```\n**interface** defines a contract. Common: `Schedulable`, `Batchable`, `Queueable`."
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"enum": {
|
|
61
|
+
"contents": [
|
|
62
|
+
{
|
|
63
|
+
"value": "```apex\npublic enum Season { SPRING, SUMMER, AUTUMN, WINTER }\nSeason s = Season.SUMMER;\nString name = s.name();\n```\n**enum** defines a fixed set of constants with `name()`, `ordinal()`, `values()` methods."
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"List": {
|
|
68
|
+
"contents": [
|
|
69
|
+
{
|
|
70
|
+
"value": "```apex\nList<String> names = new List<String>{'Alice', 'Bob'};\nnames.add('Charlie');\nnames.size();\nnames.contains('Bob');\n```\n**List** is an ordered collection. Equivalent to `String[]` array notation."
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"Map": {
|
|
75
|
+
"contents": [
|
|
76
|
+
{
|
|
77
|
+
"value": "```apex\nMap<Id, Account> accountMap = new Map<Id, Account>(\n [SELECT Id, Name FROM Account]\n);\nAccount a = accountMap.get(someId);\n```\n**Map** stores key-value pairs. Can be initialized from SOQL. Methods: `get()`, `put()`, `keySet()`, `values()`."
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"Set": {
|
|
82
|
+
"contents": [
|
|
83
|
+
{
|
|
84
|
+
"value": "```apex\nSet<Id> accountIds = new Set<Id>();\naccountIds.add(record.AccountId);\naccountIds.contains(someId);\n```\n**Set** stores unique, unordered elements. Useful for deduplication."
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"Trigger.new": {
|
|
89
|
+
"contents": [
|
|
90
|
+
{
|
|
91
|
+
"value": "```apex\nList<Account> newRecords = Trigger.new;\nMap<Id, Account> oldMap = Trigger.oldMap;\nBoolean isBefore = Trigger.isBefore;\nBoolean isInsert = Trigger.isInsert;\n```\n**Trigger context variables** provide access to records being processed."
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"Database.insert": {
|
|
96
|
+
"contents": [
|
|
97
|
+
{
|
|
98
|
+
"value": "```apex\nDatabase.SaveResult[] results = Database.insert(records, false);\nfor (Database.SaveResult sr : results) {\n if (!sr.isSuccess()) {\n for (Database.Error err : sr.getErrors())\n System.debug(err.getMessage());\n }\n}\n```\n**Database methods** allow partial success with `allOrNone = false`."
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"Batchable": {
|
|
103
|
+
"contents": [
|
|
104
|
+
{
|
|
105
|
+
"value": "```apex\npublic class MyBatch implements Database.Batchable<SObject> {\n public Database.QueryLocator start(Database.BatchableContext bc) {\n return Database.getQueryLocator('SELECT Id FROM Account');\n }\n public void execute(Database.BatchableContext bc, List<Account> scope) { }\n public void finish(Database.BatchableContext bc) { }\n}\n```\n**Database.Batchable** processes large data sets in chunks (default 200)."
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"Queueable": {
|
|
110
|
+
"contents": [
|
|
111
|
+
{
|
|
112
|
+
"value": "```apex\npublic class MyQueueable implements Queueable {\n public void execute(QueueableContext ctx) {\n // async work, can chain jobs\n }\n}\nId jobId = System.enqueueJob(new MyQueueable());\n```\n**Queueable** runs asynchronous jobs. Supports non-primitive parameters and chaining."
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"future": {
|
|
117
|
+
"contents": [
|
|
118
|
+
{
|
|
119
|
+
"value": "```apex\n@future(callout=true)\npublic static void makeCallout(Set<Id> recordIds) {\n // async execution with callouts\n}\n```\n**@future** runs methods asynchronously. Parameters must be primitives. Use `callout=true` for HTTP."
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
"Schedulable": {
|
|
124
|
+
"contents": [
|
|
125
|
+
{
|
|
126
|
+
"value": "```apex\npublic class MySchedule implements Schedulable {\n public void execute(SchedulableContext ctx) {\n Database.executeBatch(new MyBatch());\n }\n}\n// System.schedule('Nightly', '0 0 1 * * ?', new MySchedule());\n```\n**Schedulable** runs code on a cron schedule."
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"AuraEnabled": {
|
|
131
|
+
"contents": [
|
|
132
|
+
{
|
|
133
|
+
"value": "```apex\n@AuraEnabled(cacheable=true)\npublic static List<Account> getAccounts() {\n return [SELECT Id, Name FROM Account LIMIT 50];\n}\n```\n**@AuraEnabled** exposes methods to Lightning Web Components. `cacheable=true` enables caching."
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
},
|
|
137
|
+
"HttpCallout": {
|
|
138
|
+
"contents": [
|
|
139
|
+
{
|
|
140
|
+
"value": "```apex\nHttpRequest req = new HttpRequest();\nreq.setEndpoint('https://api.example.com/data');\nreq.setMethod('GET');\nreq.setHeader('Authorization', 'Bearer ' + token);\nHttp http = new Http();\nHttpResponse res = http.send(req);\n```\n**HTTP Callouts** make external API requests. Endpoint must be in Remote Site Settings."
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"JSON": {
|
|
145
|
+
"contents": [
|
|
146
|
+
{
|
|
147
|
+
"value": "```apex\nString jsonStr = JSON.serialize(myObject);\nAccount a = (Account) JSON.deserialize(jsonStr, Account.class);\nMap<String, Object> raw = (Map<String, Object>)\n JSON.deserializeUntyped(jsonStr);\n```\n**JSON** class provides serialization and deserialization."
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
"with sharing": {
|
|
152
|
+
"contents": [
|
|
153
|
+
{
|
|
154
|
+
"value": "```apex\npublic with sharing class SecureService { }\npublic without sharing class AdminService { }\npublic inherited sharing class FlexService { }\n```\n**with sharing** enforces record-level security. `without sharing` bypasses it. `inherited sharing` inherits caller context."
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
"governor_limits": {
|
|
159
|
+
"contents": [
|
|
160
|
+
{
|
|
161
|
+
"value": "```apex\n// Key limits per transaction:\n// SOQL queries: 100 (sync), 200 (async)\n// DML statements: 150\n// Records retrieved: 50,000\n// CPU time: 10,000ms (sync)\nSystem.debug(Limits.getQueries() + '/' + Limits.getLimitQueries());\n```\n**Governor limits** enforce multi-tenant resource sharing. Use `Limits` class to monitor."
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
},
|
|
165
|
+
"try_catch": {
|
|
166
|
+
"contents": [
|
|
167
|
+
{
|
|
168
|
+
"value": "```apex\ntry {\n insert newRecord;\n} catch (DmlException e) {\n System.debug('DML error: ' + e.getMessage());\n} catch (Exception e) {\n System.debug(e.getTypeName() + ': ' + e.getMessage());\n} finally {\n // cleanup\n}\n```\n**try/catch/finally** handles exceptions. Common: `DmlException`, `QueryException`, `NullPointerException`."
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
"Id": {
|
|
173
|
+
"contents": [
|
|
174
|
+
{
|
|
175
|
+
"value": "```apex\nId accountId = '001000000000001';\nSObjectType objType = accountId.getSObjectType();\n```\n**Id** is the 15/18-character Salesforce record identifier. `getSObjectType()` returns the object type."
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
"String": {
|
|
180
|
+
"contents": [
|
|
181
|
+
{
|
|
182
|
+
"value": "```apex\nString s = 'Hello';\ns.contains('ell');\ns.toUpperCase();\nString.isBlank(s);\nString.format('{0} {1}', new List<String>{'Hi', 'World'});\n```\n**String** methods for text manipulation. Strings are immutable."
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
"Date": {
|
|
187
|
+
"contents": [
|
|
188
|
+
{
|
|
189
|
+
"value": "```apex\nDate today = Date.today();\nDate future = today.addDays(30);\nInteger diff = today.daysBetween(future);\n```\n**Date** represents a date without time. Methods: `addDays()`, `addMonths()`, `daysBetween()`."
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
"DateTime": {
|
|
194
|
+
"contents": [
|
|
195
|
+
{
|
|
196
|
+
"value": "```apex\nDatetime now = Datetime.now();\nString formatted = now.format('yyyy-MM-dd HH:mm:ss');\nLong epoch = now.getTime();\n```\n**Datetime** includes date and time. `format()` uses Java SimpleDateFormat patterns."
|
|
197
|
+
}
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
"Decimal": {
|
|
201
|
+
"contents": [
|
|
202
|
+
{
|
|
203
|
+
"value": "```apex\nDecimal price = 19.99;\nDecimal rounded = price.setScale(2, RoundingMode.HALF_UP);\n```\n**Decimal** is arbitrary-precision. Preferred for currency. Use `setScale()` for rounding."
|
|
204
|
+
}
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
"SObject": {
|
|
208
|
+
"contents": [
|
|
209
|
+
{
|
|
210
|
+
"value": "```apex\nSObject record = new Account(Name = 'Test');\nrecord.put('Industry', 'Tech');\nString name = (String) record.get('Name');\n```\n**SObject** is the base type for all Salesforce objects. `get()`/`put()` for dynamic field access."
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"Schema": {
|
|
215
|
+
"contents": [
|
|
216
|
+
{
|
|
217
|
+
"value": "```apex\nSchema.DescribeSObjectResult descr = Account.SObjectType.getDescribe();\nMap<String, Schema.SObjectField> fields = descr.fields.getMap();\n```\n**Schema** provides metadata about objects and fields. Use for dynamic Apex and security checks."
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
},
|
|
221
|
+
"UserInfo": {
|
|
222
|
+
"contents": [
|
|
223
|
+
{
|
|
224
|
+
"value": "```apex\nId userId = UserInfo.getUserId();\nString userName = UserInfo.getUserName();\nId orgId = UserInfo.getOrganizationId();\n```\n**UserInfo** provides info about the current user and org."
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"assert": {
|
|
229
|
+
"contents": [
|
|
230
|
+
{
|
|
231
|
+
"value": "```apex\nSystem.assertEquals(expected, actual, 'Values should match');\nSystem.assertNotEquals(null, result);\nSystem.assert(list.size() > 0);\n```\n**Assert methods** verify expected behavior in tests. Optional message aids debugging."
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
},
|
|
235
|
+
"TestSetup": {
|
|
236
|
+
"contents": [
|
|
237
|
+
{
|
|
238
|
+
"value": "```apex\n@TestSetup\nstatic void makeData() {\n insert new Account(Name = 'Test Account');\n}\n```\n**@TestSetup** creates test data once for all methods in the class. Each method gets its own copy."
|
|
239
|
+
}
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
"Test.startTest": {
|
|
243
|
+
"contents": [
|
|
244
|
+
{
|
|
245
|
+
"value": "```apex\nTest.startTest();\n// fresh governor limits\nTest.stopTest(); // forces async to complete\n```\n**Test.startTest()/stopTest()** resets governor limits and forces async operations to complete."
|
|
246
|
+
}
|
|
247
|
+
]
|
|
248
|
+
},
|
|
249
|
+
"HttpCalloutMock": {
|
|
250
|
+
"contents": [
|
|
251
|
+
{
|
|
252
|
+
"value": "```apex\n@isTest\nprivate class MyMock implements HttpCalloutMock {\n public HttpResponse respond(HttpRequest req) {\n HttpResponse res = new HttpResponse();\n res.setStatusCode(200);\n res.setBody('{\"status\":\"ok\"}');\n return res;\n }\n}\n// Test.setMock(HttpCalloutMock.class, new MyMock());\n```\n**HttpCalloutMock** provides fake HTTP responses in tests."
|
|
253
|
+
}
|
|
254
|
+
]
|
|
255
|
+
},
|
|
256
|
+
"Custom_Metadata": {
|
|
257
|
+
"contents": [
|
|
258
|
+
{
|
|
259
|
+
"value": "```apex\nList<My_Setting__mdt> settings = My_Setting__mdt.getAll().values();\nMy_Setting__mdt s = My_Setting__mdt.getInstance('Default');\n```\n**Custom Metadata Types** (`__mdt`) store deployable configuration. Queries don't cost SOQL limits."
|
|
260
|
+
}
|
|
261
|
+
]
|
|
262
|
+
},
|
|
263
|
+
"Platform_Event": {
|
|
264
|
+
"contents": [
|
|
265
|
+
{
|
|
266
|
+
"value": "```apex\nMy_Event__e evt = new My_Event__e(Message__c = 'Hello');\nEventBus.publish(evt);\n```\n**Platform Events** (`__e`) enable event-driven architecture. Publishers and subscribers are decoupled."
|
|
267
|
+
}
|
|
268
|
+
]
|
|
269
|
+
},
|
|
270
|
+
"Invocable": {
|
|
271
|
+
"contents": [
|
|
272
|
+
{
|
|
273
|
+
"value": "```apex\npublic class MyInvocable {\n @InvocableMethod(label='Process Records')\n public static List<String> process(List<Request> requests) {\n return new List<String>{'Success'};\n }\n public class Request {\n @InvocableVariable(required=true)\n public Id recordId;\n }\n}\n```\n**@InvocableMethod** exposes Apex to Flows and Process Builder."
|
|
274
|
+
}
|
|
275
|
+
]
|
|
276
|
+
},
|
|
277
|
+
"for_loop": {
|
|
278
|
+
"contents": [
|
|
279
|
+
{
|
|
280
|
+
"value": "```apex\n// SOQL for loop (200 records at a time, memory-efficient)\nfor (Account a : [SELECT Id, Name FROM Account]) {\n a.Name = a.Name.toUpperCase();\n}\n```\n**SOQL for loops** batch records in chunks of 200 to avoid heap limits."
|
|
281
|
+
}
|
|
282
|
+
]
|
|
283
|
+
}
|
|
9
284
|
}
|
|
10
|
-
}
|
|
285
|
+
}
|
package/data/hover/awk.json
CHANGED
|
@@ -4,42 +4,287 @@
|
|
|
4
4
|
"fields": {
|
|
5
5
|
"contents": [
|
|
6
6
|
{
|
|
7
|
-
"value": "```awk\n# input: \"John 30 Engineer\"\n# $0 = \"John 30 Engineer\" (whole line)\n# $1 = \"John\" (1st field)\n# $
|
|
7
|
+
"value": "```awk\n# input: \"John 30 Engineer\"\n# $0 = \"John 30 Engineer\" (whole line)\n# $1 = \"John\" (1st field)\n# $NF = \"Engineer\" (last field)\n# NF = 3 (field count)\n```\n**Fields** — Awk splits lines by FS (default: whitespace). Access with `$1`, `$2`, etc."
|
|
8
8
|
}
|
|
9
9
|
]
|
|
10
10
|
},
|
|
11
11
|
"pattern_action": {
|
|
12
12
|
"contents": [
|
|
13
13
|
{
|
|
14
|
-
"value": "```awk\n/error/ { print } # regex match\n$3 > 100 { print $1, $3 } # field condition\nNR == 1 { print \"Header:\", $0 }\
|
|
14
|
+
"value": "```awk\n/error/ { print } # regex match\n$3 > 100 { print $1, $3 } # field condition\nNR == 1 { print \"Header:\", $0 }\nEND { print sum } # final output\n```\n**pattern { action }** is the fundamental awk structure."
|
|
15
15
|
}
|
|
16
16
|
]
|
|
17
17
|
},
|
|
18
18
|
"arrays": {
|
|
19
19
|
"contents": [
|
|
20
20
|
{
|
|
21
|
-
"value": "```awk\n
|
|
21
|
+
"value": "```awk\n{ count[$1]++ }\n{ total[$1] += $2 }\nEND {\n for (k in count)\n print k, count[k]\n}\nif (\"key\" in arr) ...\ndelete arr[\"key\"]\n```\n**Arrays** are associative (hash maps). No declaration needed."
|
|
22
22
|
}
|
|
23
23
|
]
|
|
24
24
|
},
|
|
25
25
|
"one_liners": {
|
|
26
26
|
"contents": [
|
|
27
27
|
{
|
|
28
|
-
"value": "```bash\
|
|
28
|
+
"value": "```bash\nawk '{print $2}' file.txt # print 2nd column\nawk '{s+=$1} END{print s}' data.txt # sum column\nawk -F, 'NR>1 {print $1}' data.csv # CSV skip header\nawk '!seen[$0]++' file.txt # unique lines\n```\n**One-liners** — awk excels as a command-line data processor."
|
|
29
29
|
}
|
|
30
30
|
]
|
|
31
31
|
},
|
|
32
32
|
"printf": {
|
|
33
33
|
"contents": [
|
|
34
34
|
{
|
|
35
|
-
"value": "```awk\nprintf \"%-20s %5d %8.2f\\n\", $1, $2, $3\n
|
|
35
|
+
"value": "```awk\nprintf \"%-20s %5d %8.2f\\n\", $1, $2, $3\n# %s string %d integer %f float\n# %x hex %o octal %e scientific\n```\n**printf** provides C-style formatted output. No automatic newline."
|
|
36
36
|
}
|
|
37
37
|
]
|
|
38
38
|
},
|
|
39
39
|
"built_in_vars": {
|
|
40
40
|
"contents": [
|
|
41
41
|
{
|
|
42
|
-
"value": "```awk\nNR
|
|
42
|
+
"value": "```awk\nNR # total record (line) number\nFNR # record number in current file\nNF # number of fields in current line\nFS # input field separator (default: space)\nOFS # output field separator\nRS # input record separator (default: newline)\nORS # output record separator\nFILENAME # current input filename\n```\n**Built-in variables** control how awk reads and writes data."
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"BEGIN": {
|
|
47
|
+
"contents": [
|
|
48
|
+
{
|
|
49
|
+
"value": "```awk\nBEGIN {\n FS = \",\"\n OFS = \"\\t\"\n print \"Name\\tAge\\tCity\"\n}\n{ print $1, $2, $3 }\n```\n**BEGIN** runs once before any input is processed. Use for initialization and headers."
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"END": {
|
|
54
|
+
"contents": [
|
|
55
|
+
{
|
|
56
|
+
"value": "```awk\n{ sum += $1; count++ }\nEND {\n print \"Total:\", sum\n print \"Average:\", sum/count\n}\n```\n**END** runs once after all input is processed. Use for summaries and final output."
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"FS": {
|
|
61
|
+
"contents": [
|
|
62
|
+
{
|
|
63
|
+
"value": "```awk\nBEGIN { FS = \",\" } # CSV\nBEGIN { FS = \"\\t\" } # TSV\nBEGIN { FS = \":\" } # /etc/passwd\n# Or from command line:\n# awk -F, '{print $1}' file.csv\n```\n**FS** (field separator) controls how lines are split into fields. Default is whitespace."
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"OFS": {
|
|
68
|
+
"contents": [
|
|
69
|
+
{
|
|
70
|
+
"value": "```awk\nBEGIN { OFS = \",\" }\n{ print $1, $2, $3 } # output: field1,field2,field3\n\n# Force recalculation:\n{ $1 = $1; print } # rebuild $0 with OFS\n```\n**OFS** (output field separator) is used between fields in print. Set `$1=$1` to rebuild `$0`."
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"RS": {
|
|
75
|
+
"contents": [
|
|
76
|
+
{
|
|
77
|
+
"value": "```awk\nBEGIN { RS = \"\" } # paragraph mode (blank line separates records)\nBEGIN { RS = \";\" } # semicolon-separated records\n```\n**RS** (record separator) controls how input is split into records. Default is newline."
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"NR": {
|
|
82
|
+
"contents": [
|
|
83
|
+
{
|
|
84
|
+
"value": "```awk\n{ print NR, $0 } # line numbers\nNR == 5 { print } # print 5th line\nNR >= 10 && NR <= 20 # lines 10-20\nEND { print NR, \"lines\" }\n```\n**NR** is the total number of records (lines) read so far across all files."
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"FNR": {
|
|
89
|
+
"contents": [
|
|
90
|
+
{
|
|
91
|
+
"value": "```awk\n# FNR resets for each file, NR doesn't:\nFNR == 1 { print \"--- New file:\", FILENAME }\n{ print FNR, $0 }\n```\n**FNR** is the record number in the current file. Resets to 1 for each new input file."
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"NF": {
|
|
96
|
+
"contents": [
|
|
97
|
+
{
|
|
98
|
+
"value": "```awk\n{ print NF } # count fields per line\nNF > 0 { print } # skip blank lines\n{ print $NF } # print last field\n{ print $(NF-1) } # print second-to-last\n```\n**NF** is the number of fields in the current record. `$NF` accesses the last field."
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"FILENAME": {
|
|
103
|
+
"contents": [
|
|
104
|
+
{
|
|
105
|
+
"value": "```awk\n{ print FILENAME, NR, $0 }\n```\n**FILENAME** is the name of the current input file."
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"getline": {
|
|
110
|
+
"contents": [
|
|
111
|
+
{
|
|
112
|
+
"value": "```awk\n# Read next line:\ngetline line\n\n# Read from file:\ngetline line < \"file.txt\"\n\n# Read from command:\n\"date\" | getline today\nclose(\"date\")\n```\n**getline** reads the next line. Can read from current input, a file, or a command pipe."
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"gsub": {
|
|
117
|
+
"contents": [
|
|
118
|
+
{
|
|
119
|
+
"value": "```awk\n{ gsub(/old/, \"new\") } # replace all in $0\n{ gsub(/,/, \"\\t\", $0) } # CSV to TSV\nn = gsub(/pattern/, \"rep\") # returns replacement count\n```\n**gsub** globally substitutes pattern matches. Modifies the target in place. Returns count."
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
"sub": {
|
|
124
|
+
"contents": [
|
|
125
|
+
{
|
|
126
|
+
"value": "```awk\n{ sub(/^[ \\t]+/, \"\") } # trim leading whitespace\n{ sub(/pattern/, \"rep\") } # replace first match only\n```\n**sub** substitutes the first occurrence only. Use `gsub` for all occurrences."
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"match": {
|
|
131
|
+
"contents": [
|
|
132
|
+
{
|
|
133
|
+
"value": "```awk\nif (match($0, /[0-9]+/)) {\n print substr($0, RSTART, RLENGTH)\n}\n```\n**match** finds a regex in a string. Sets `RSTART` and `RLENGTH`. Returns position or 0."
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
},
|
|
137
|
+
"substr": {
|
|
138
|
+
"contents": [
|
|
139
|
+
{
|
|
140
|
+
"value": "```awk\nsubstr($0, 1, 10) # first 10 characters\nsubstr($0, 5) # from position 5 to end\n```\n**substr(string, start, length)** extracts a substring. Position is 1-based."
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"split": {
|
|
145
|
+
"contents": [
|
|
146
|
+
{
|
|
147
|
+
"value": "```awk\nn = split($0, arr, \":\")\nfor (i = 1; i <= n; i++)\n print arr[i]\n```\n**split(string, array, separator)** splits a string into an array. Returns the number of elements."
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
"length": {
|
|
152
|
+
"contents": [
|
|
153
|
+
{
|
|
154
|
+
"value": "```awk\nlength($0) # string length\nlength(arr) # array size (gawk)\n```\n**length** returns the number of characters in a string or elements in an array (gawk)."
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
"tolower": {
|
|
159
|
+
"contents": [
|
|
160
|
+
{
|
|
161
|
+
"value": "```awk\n{ print tolower($0) }\n{ print toupper($1) }\n```\n**tolower/toupper** convert strings to lower/upper case."
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
},
|
|
165
|
+
"sprintf": {
|
|
166
|
+
"contents": [
|
|
167
|
+
{
|
|
168
|
+
"value": "```awk\nresult = sprintf(\"%.2f\", $1 * 1.08)\nformatted = sprintf(\"%04d\", NR)\n```\n**sprintf** returns a formatted string (like printf but doesn't print)."
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
"system": {
|
|
173
|
+
"contents": [
|
|
174
|
+
{
|
|
175
|
+
"value": "```awk\n{ system(\"mkdir -p \" $1) }\nsystem(\"echo done\")\n```\n**system(command)** executes a shell command. Returns the exit status."
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
"pipe": {
|
|
180
|
+
"contents": [
|
|
181
|
+
{
|
|
182
|
+
"value": "```awk\n{ print $0 | \"sort\" }\n{ print $0 | \"sort -u > output.txt\" }\nEND { close(\"sort\") }\n```\n**Pipe** sends output to a command. Always `close()` pipes to flush output."
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
"print_to_file": {
|
|
187
|
+
"contents": [
|
|
188
|
+
{
|
|
189
|
+
"value": "```awk\n{ print $0 > \"output.txt\" } # overwrite\n{ print $0 >> \"append.txt\" } # append\n{ print $1 > ($2 \".txt\") } # dynamic filename\n```\n**Output redirection** — `>` overwrites, `>>` appends. Close files when done."
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
"ternary": {
|
|
194
|
+
"contents": [
|
|
195
|
+
{
|
|
196
|
+
"value": "```awk\n{ print ($1 > 0 ? \"positive\" : \"non-positive\") }\n{ max = ($1 > $2 ? $1 : $2) }\n```\n**Ternary operator** `condition ? true_val : false_val` for inline conditionals."
|
|
197
|
+
}
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
"string_concat": {
|
|
201
|
+
"contents": [
|
|
202
|
+
{
|
|
203
|
+
"value": "```awk\n{ result = $1 \" \" $2 } # space concatenation\n{ name = first \"_\" last } # with separator\n{ s = s $0 \"\\n\" } # accumulate lines\n```\n**String concatenation** is done by juxtaposition (placing strings next to each other)."
|
|
204
|
+
}
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
"regex_match": {
|
|
208
|
+
"contents": [
|
|
209
|
+
{
|
|
210
|
+
"value": "```awk\n$0 ~ /pattern/ { print } # line matches\n$1 !~ /^[0-9]/ { print } # field doesn't match\n/^#/ { next } # skip comments\n```\n**Regex operators** — `~` matches, `!~` doesn't match. Bare `/regex/` matches against `$0`."
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"next": {
|
|
215
|
+
"contents": [
|
|
216
|
+
{
|
|
217
|
+
"value": "```awk\n/^#/ { next } # skip comment lines\nNR == 1 { next } # skip header\n{ process($0) }\n```\n**next** skips to the next input line, bypassing remaining rules for the current line."
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
},
|
|
221
|
+
"exit": {
|
|
222
|
+
"contents": [
|
|
223
|
+
{
|
|
224
|
+
"value": "```awk\nNR == 100 { exit } # stop after 100 lines\n/STOP/ { exit 1 } # exit with error code\nEND { print \"done\" } # END still runs after exit\n```\n**exit** stops processing input. Optional status code. END block still executes."
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"function": {
|
|
229
|
+
"contents": [
|
|
230
|
+
{
|
|
231
|
+
"value": "```awk\nfunction max(a, b) {\n return (a > b ? a : b)\n}\n\nfunction trim(s) {\n gsub(/^[ \\t]+|[ \\t]+$/, \"\", s)\n return s\n}\n\n{ print max($1, $2) }\n```\n**function** defines user functions. Parameters are local. Extra params after actual args are local variables."
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
},
|
|
235
|
+
"ARGV": {
|
|
236
|
+
"contents": [
|
|
237
|
+
{
|
|
238
|
+
"value": "```awk\nBEGIN {\n print \"Program:\", ARGV[0]\n print \"Files:\", ARGC - 1\n for (i = 1; i < ARGC; i++)\n print ARGV[i]\n}\n```\n**ARGV/ARGC** — command-line arguments. ARGV[0] is `awk`, subsequent entries are input files."
|
|
239
|
+
}
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
"multiple_files": {
|
|
243
|
+
"contents": [
|
|
244
|
+
{
|
|
245
|
+
"value": "```bash\n# Process multiple files:\nawk '{print FILENAME, FNR, $0}' file1.txt file2.txt\n\n# Join two files (like paste):\nawk 'FNR==NR {a[FNR]=$0; next} {print a[FNR], $0}' file1 file2\n```\n**Multiple files** — FNR resets per file, NR keeps counting. `FNR==NR` trick processes first file only."
|
|
246
|
+
}
|
|
247
|
+
]
|
|
248
|
+
},
|
|
249
|
+
"csv_parsing": {
|
|
250
|
+
"contents": [
|
|
251
|
+
{
|
|
252
|
+
"value": "```awk\n# Simple CSV:\nBEGIN { FS = \",\" }\n{ print $1, $3 }\n\n# Quoted CSV (gawk with FPAT):\nBEGIN { FPAT = \"([^,]*)|\\\"([^\\\"]*)\\\"\" }\n{ print $1, $2 }\n```\n**CSV parsing** — Simple with `-F,` but quoted fields need FPAT (gawk) or a proper CSV parser."
|
|
253
|
+
}
|
|
254
|
+
]
|
|
255
|
+
},
|
|
256
|
+
"OFMT": {
|
|
257
|
+
"contents": [
|
|
258
|
+
{
|
|
259
|
+
"value": "```awk\nBEGIN { OFMT = \"%.2f\" }\n{ print $1 + 0 } # outputs with 2 decimal places\n```\n**OFMT** controls the output format for numbers converted to strings. Default is `%.6g`."
|
|
260
|
+
}
|
|
261
|
+
]
|
|
262
|
+
},
|
|
263
|
+
"SUBSEP": {
|
|
264
|
+
"contents": [
|
|
265
|
+
{
|
|
266
|
+
"value": "```awk\n{ count[$1, $2]++ } # multi-dimensional array key\nfor (key in count) {\n split(key, parts, SUBSEP)\n print parts[1], parts[2], count[key]\n}\n```\n**SUBSEP** (subscript separator, `\\034`) joins multi-dimensional array indices. Split with `SUBSEP` to recover keys."
|
|
267
|
+
}
|
|
268
|
+
]
|
|
269
|
+
},
|
|
270
|
+
"delete_array": {
|
|
271
|
+
"contents": [
|
|
272
|
+
{
|
|
273
|
+
"value": "```awk\ndelete arr[\"key\"] # delete one element\ndelete arr # delete entire array (gawk)\n\nfor (k in arr) delete arr[k] # portable delete all\n```\n**delete** removes array elements. `delete arr` clears entire array (gawk extension)."
|
|
274
|
+
}
|
|
275
|
+
]
|
|
276
|
+
},
|
|
277
|
+
"ERRNO": {
|
|
278
|
+
"contents": [
|
|
279
|
+
{
|
|
280
|
+
"value": "```awk\nif ((getline line < \"file.txt\") < 0)\n print \"Error:\", ERRNO\n```\n**ERRNO** (gawk) contains the error message when I/O operations fail."
|
|
281
|
+
}
|
|
282
|
+
]
|
|
283
|
+
},
|
|
284
|
+
"gawk_extensions": {
|
|
285
|
+
"contents": [
|
|
286
|
+
{
|
|
287
|
+
"value": "```awk\n# gawk-specific features:\n@include \"library.awk\" # include files\nBEGINFILE { print FILENAME } # per-file begin\nENDFILE { print FNR, \"lines\" } # per-file end\nswitch ($1) { case /pat/: ...; default: ... }\n```\n**gawk extensions** add includes, BEGINFILE/ENDFILE, switch/case, and more."
|
|
43
288
|
}
|
|
44
289
|
]
|
|
45
290
|
}
|