@enjoys/context-engine 1.4.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/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/nginx.json +1 -1
- package/data/codeLens/pla.json +10 -10
- package/data/codeLens/xml.json +1 -1
- package/data/commands/angular.json +670 -312
- 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 -731
- 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 -273
- package/data/commands/nextjs.json +250 -123
- 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 -210
- 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 -410
- 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/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/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/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/ssh_config.json +906 -158
- package/data/completion/xml.json +906 -158
- package/data/definition/abap.json +127 -1
- 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/r.json +692 -83
- package/data/definition/ruby.json +789 -669
- package/data/definition/rust.json +852 -206
- package/data/definition/sb.json +339 -1
- package/data/definition/st.json +367 -1
- package/data/documentRangeFormatting/nestjs.json +57 -17
- package/data/documentRangeFormatting/nextjs.json +57 -17
- package/data/documentRangeFormatting/react.json +82 -78
- package/data/documentSymbol/abap.json +54 -12
- 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/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/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/shell.json +1 -1
- package/data/documentSymbol/sql.json +1 -1
- package/data/documentSymbol/swift.json +88 -16
- 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 -99
- package/data/foldingRange/nestjs.json +94 -26
- package/data/foldingRange/nextjs.json +94 -26
- package/data/foldingRange/react.json +118 -120
- package/data/foldingRange/shadcn.json +94 -93
- package/data/formatting/abap.json +19 -11
- package/data/formatting/angular.json +63 -21
- 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/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/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 -61
- package/data/formatting/shell.json +1 -1
- 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/apex.json +281 -6
- package/data/hover/awk.json +251 -6
- package/data/hover/crontab.json +251 -6
- 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/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/redis.json +355 -40
- package/data/hover/ssh_config.json +251 -6
- package/data/hover/xml.json +231 -7
- 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/pgsql.json +34 -34
- package/data/inlineCompletions/php.json +43 -1
- package/data/inlineCompletions/python.json +73 -1
- 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/shell.json +1 -1
- package/data/inlineCompletions/sql.json +43 -1
- package/data/inlineCompletions/swift.json +112 -22
- package/data/inlineCompletions/typescript.json +97 -1
- 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 -10
- package/data/linkedEditingRange/nextjs.json +24 -11
- package/data/linkedEditingRange/pla.json +6 -6
- package/data/linkedEditingRange/react.json +74 -75
- package/data/linkedEditingRange/redis-cli.json +6 -6
- package/data/linkedEditingRange/redis.json +6 -6
- 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/onTypeFormatting/angular.json +63 -14
- package/data/onTypeFormatting/nestjs.json +64 -16
- package/data/onTypeFormatting/nextjs.json +72 -17
- package/data/onTypeFormatting/react.json +148 -127
- package/data/onTypeFormatting/shadcn.json +63 -54
- package/data/rangeSemanticTokens/angular.json +196 -140
- package/data/rangeSemanticTokens/nestjs.json +195 -27
- package/data/rangeSemanticTokens/nextjs.json +199 -28
- package/data/rangeSemanticTokens/react.json +77 -216
- package/data/rangeSemanticTokens/shadcn.json +203 -140
- package/data/rename/angular.json +121 -131
- package/data/rename/nestjs.json +122 -32
- package/data/rename/nextjs.json +116 -31
- package/data/rename/react.json +133 -88
- package/data/rename/shadcn.json +73 -79
- package/data/selectionRange/abap.json +58 -34
- package/data/selectionRange/angular.json +126 -95
- 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 -21
- package/data/selectionRange/nextjs.json +35 -22
- 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 -87
- 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 -89
- package/data/selectionRange/shell.json +1 -1
- 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 -198
- package/data/semanticTokens/nestjs.json +245 -35
- package/data/semanticTokens/nextjs.json +265 -38
- package/data/semanticTokens/react.json +230 -215
- package/data/semanticTokens/shadcn.json +235 -180
- package/data/signatureHelp/nestjs.json +201 -128
- package/data/signatureHelp/nextjs.json +185 -127
- package/data/signatureHelp/react.json +285 -281
- package/package.json +1 -1
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
{
|
|
2
|
-
"language": "systemverilog",
|
|
3
|
-
"formatting": {
|
|
4
|
-
"defaultTabSize": 4,
|
|
5
|
-
"defaultInsertSpaces": true,
|
|
6
|
-
"rules": [
|
|
7
|
-
{
|
|
8
|
-
"description": "Remove trailing whitespace",
|
|
9
|
-
"pattern": "\\s+$",
|
|
10
|
-
"replacement": ""
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"description": "Normalize line endings",
|
|
14
|
-
"pattern": "\\r\\n",
|
|
15
|
-
"replacement": "\\n"
|
|
16
|
-
}
|
|
17
|
-
]
|
|
18
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"language": "systemverilog",
|
|
3
|
+
"formatting": {
|
|
4
|
+
"defaultTabSize": 4,
|
|
5
|
+
"defaultInsertSpaces": true,
|
|
6
|
+
"rules": [
|
|
7
|
+
{
|
|
8
|
+
"description": "Remove trailing whitespace",
|
|
9
|
+
"pattern": "\\s+$",
|
|
10
|
+
"replacement": ""
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"description": "Normalize line endings",
|
|
14
|
+
"pattern": "\\r\\n",
|
|
15
|
+
"replacement": "\\n"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
19
|
}
|
package/data/formatting/tcl.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
{
|
|
2
|
-
"language": "tcl",
|
|
3
|
-
"formatting": {
|
|
4
|
-
"defaultTabSize": 4,
|
|
5
|
-
"defaultInsertSpaces": true,
|
|
6
|
-
"rules": [
|
|
7
|
-
{
|
|
8
|
-
"description": "Remove trailing whitespace",
|
|
9
|
-
"pattern": "\\s+$",
|
|
10
|
-
"replacement": ""
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"description": "Normalize line endings",
|
|
14
|
-
"pattern": "\\r\\n",
|
|
15
|
-
"replacement": "\\n"
|
|
16
|
-
}
|
|
17
|
-
]
|
|
18
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"language": "tcl",
|
|
3
|
+
"formatting": {
|
|
4
|
+
"defaultTabSize": 4,
|
|
5
|
+
"defaultInsertSpaces": true,
|
|
6
|
+
"rules": [
|
|
7
|
+
{
|
|
8
|
+
"description": "Remove trailing whitespace",
|
|
9
|
+
"pattern": "\\s+$",
|
|
10
|
+
"replacement": ""
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"description": "Normalize line endings",
|
|
14
|
+
"pattern": "\\r\\n",
|
|
15
|
+
"replacement": "\\n"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
19
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
{
|
|
2
|
-
"language": "twig",
|
|
3
|
-
"formatting": {
|
|
4
|
-
"defaultTabSize": 4,
|
|
5
|
-
"defaultInsertSpaces": true,
|
|
6
|
-
"rules": [
|
|
7
|
-
{
|
|
8
|
-
"description": "Remove trailing whitespace",
|
|
9
|
-
"pattern": "\\s+$",
|
|
10
|
-
"replacement": ""
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"description": "Normalize line endings",
|
|
14
|
-
"pattern": "\\r\\n",
|
|
15
|
-
"replacement": "\\n"
|
|
16
|
-
}
|
|
17
|
-
]
|
|
18
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"language": "twig",
|
|
3
|
+
"formatting": {
|
|
4
|
+
"defaultTabSize": 4,
|
|
5
|
+
"defaultInsertSpaces": true,
|
|
6
|
+
"rules": [
|
|
7
|
+
{
|
|
8
|
+
"description": "Remove trailing whitespace",
|
|
9
|
+
"pattern": "\\s+$",
|
|
10
|
+
"replacement": ""
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"description": "Normalize line endings",
|
|
14
|
+
"pattern": "\\r\\n",
|
|
15
|
+
"replacement": "\\n"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
19
|
}
|
package/data/formatting/vb.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
{
|
|
2
|
-
"language": "vb",
|
|
3
|
-
"formatting": {
|
|
4
|
-
"defaultTabSize": 4,
|
|
5
|
-
"defaultInsertSpaces": true,
|
|
6
|
-
"rules": [
|
|
7
|
-
{
|
|
8
|
-
"description": "Remove trailing whitespace",
|
|
9
|
-
"pattern": "\\s+$",
|
|
10
|
-
"replacement": ""
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"description": "Normalize line endings",
|
|
14
|
-
"pattern": "\\r\\n",
|
|
15
|
-
"replacement": "\\n"
|
|
16
|
-
}
|
|
17
|
-
]
|
|
18
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"language": "vb",
|
|
3
|
+
"formatting": {
|
|
4
|
+
"defaultTabSize": 4,
|
|
5
|
+
"defaultInsertSpaces": true,
|
|
6
|
+
"rules": [
|
|
7
|
+
{
|
|
8
|
+
"description": "Remove trailing whitespace",
|
|
9
|
+
"pattern": "\\s+$",
|
|
10
|
+
"replacement": ""
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"description": "Normalize line endings",
|
|
14
|
+
"pattern": "\\r\\n",
|
|
15
|
+
"replacement": "\\n"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
19
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
{
|
|
2
|
-
"language": "wgsl",
|
|
3
|
-
"formatting": {
|
|
4
|
-
"defaultTabSize": 4,
|
|
5
|
-
"defaultInsertSpaces": true,
|
|
6
|
-
"rules": [
|
|
7
|
-
{
|
|
8
|
-
"description": "Remove trailing whitespace",
|
|
9
|
-
"pattern": "\\s+$",
|
|
10
|
-
"replacement": ""
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"description": "Normalize line endings",
|
|
14
|
-
"pattern": "\\r\\n",
|
|
15
|
-
"replacement": "\\n"
|
|
16
|
-
}
|
|
17
|
-
]
|
|
18
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"language": "wgsl",
|
|
3
|
+
"formatting": {
|
|
4
|
+
"defaultTabSize": 4,
|
|
5
|
+
"defaultInsertSpaces": true,
|
|
6
|
+
"rules": [
|
|
7
|
+
{
|
|
8
|
+
"description": "Remove trailing whitespace",
|
|
9
|
+
"pattern": "\\s+$",
|
|
10
|
+
"replacement": ""
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"description": "Normalize line endings",
|
|
14
|
+
"pattern": "\\r\\n",
|
|
15
|
+
"replacement": "\\n"
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
19
|
}
|
package/data/formatting/xml.json
CHANGED
|
@@ -13,6 +13,31 @@
|
|
|
13
13
|
"description": "Normalize line endings",
|
|
14
14
|
"pattern": "\\\\r\\\\n",
|
|
15
15
|
"replacement": "\\n"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"description": "Indent nested elements",
|
|
19
|
+
"pattern": "<[^/!][^>]*[^/]>\\s*$",
|
|
20
|
+
"action": "indent"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"description": "Dedent closing tags",
|
|
24
|
+
"pattern": "^\\s*</",
|
|
25
|
+
"action": "dedent"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"description": "Self-closing tags on one line",
|
|
29
|
+
"pattern": "<\\w+[^>]*/>",
|
|
30
|
+
"action": "nothing"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"description": "No trailing whitespace",
|
|
34
|
+
"pattern": "\\s+$",
|
|
35
|
+
"replacement": ""
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"description": "Attribute alignment",
|
|
39
|
+
"pattern": "\\s{2,}(?=\\w+=)",
|
|
40
|
+
"replacement": " "
|
|
16
41
|
}
|
|
17
42
|
],
|
|
18
43
|
"indentation": {
|
|
@@ -20,4 +45,4 @@
|
|
|
20
45
|
"decreasePattern": "^\\\\s*</"
|
|
21
46
|
}
|
|
22
47
|
}
|
|
23
|
-
}
|
|
48
|
+
}
|
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
|
+
}
|