@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
package/data/hover/redis.json
CHANGED
|
@@ -1,40 +1,355 @@
|
|
|
1
|
-
{
|
|
2
|
-
"language": "redis",
|
|
3
|
-
"hovers": {
|
|
4
|
-
"SET": {
|
|
5
|
-
"contents": [
|
|
6
|
-
{
|
|
7
|
-
"value": "**SET**
|
|
8
|
-
}
|
|
9
|
-
]
|
|
10
|
-
},
|
|
11
|
-
"GET": {
|
|
12
|
-
"contents": [
|
|
13
|
-
{
|
|
14
|
-
"value": "**GET**
|
|
15
|
-
}
|
|
16
|
-
]
|
|
17
|
-
},
|
|
18
|
-
"DEL": {
|
|
19
|
-
"contents": [
|
|
20
|
-
{
|
|
21
|
-
"value": "**DEL** —
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
},
|
|
25
|
-
"EXISTS": {
|
|
26
|
-
"contents": [
|
|
27
|
-
{
|
|
28
|
-
"value": "**EXISTS**
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
},
|
|
32
|
-
"EXPIRE": {
|
|
33
|
-
"contents": [
|
|
34
|
-
{
|
|
35
|
-
"value": "**EXPIRE**
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
1
|
+
{
|
|
2
|
+
"language": "redis",
|
|
3
|
+
"hovers": {
|
|
4
|
+
"SET": {
|
|
5
|
+
"contents": [
|
|
6
|
+
{
|
|
7
|
+
"value": "```redis\nSET key value [EX seconds] [PX milliseconds] [NX|XX] [KEEPTTL]\n```\n**SET** stores a string value at the given key. `EX` sets expiry in seconds, `PX` in milliseconds. `NX` sets only if key does not exist, `XX` only if it already exists. Returns OK on success."
|
|
8
|
+
}
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
"GET": {
|
|
12
|
+
"contents": [
|
|
13
|
+
{
|
|
14
|
+
"value": "```redis\nGET key\n```\n**GET** retrieves the string value of a key. Returns the value or `nil` if the key does not exist. Only works with string values."
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"DEL": {
|
|
19
|
+
"contents": [
|
|
20
|
+
{
|
|
21
|
+
"value": "```redis\nDEL key [key ...]\n```\n**DEL** removes one or more keys and their associated values. Returns the number of keys removed. Blocking operation — for large datasets consider `UNLINK`."
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"EXISTS": {
|
|
26
|
+
"contents": [
|
|
27
|
+
{
|
|
28
|
+
"value": "```redis\nEXISTS key [key ...]\n```\n**EXISTS** checks if one or more keys exist. Returns the count of existing keys."
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"EXPIRE": {
|
|
33
|
+
"contents": [
|
|
34
|
+
{
|
|
35
|
+
"value": "```redis\nEXPIRE key seconds [NX|XX|GT|LT]\n```\n**EXPIRE** sets a timeout on a key in seconds. After expiry the key is automatically deleted. Returns 1 if set, 0 if key doesn't exist."
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"TTL": {
|
|
40
|
+
"contents": [
|
|
41
|
+
{
|
|
42
|
+
"value": "```redis\nTTL key\n```\n**TTL** returns the remaining time-to-live of a key in seconds. Returns `-1` if no expiry, `-2` if key does not exist."
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"PTTL": {
|
|
47
|
+
"contents": [
|
|
48
|
+
{
|
|
49
|
+
"value": "```redis\nPTTL key\n```\n**PTTL** returns the remaining time-to-live in milliseconds. Returns `-1` if no expiry, `-2` if key does not exist."
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"MSET": {
|
|
54
|
+
"contents": [
|
|
55
|
+
{
|
|
56
|
+
"value": "```redis\nMSET key1 value1 key2 value2 [key value ...]\n```\n**MSET** sets multiple keys to multiple values atomically. Always succeeds. Use `MSETNX` to set only if none of the keys exist."
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"MGET": {
|
|
61
|
+
"contents": [
|
|
62
|
+
{
|
|
63
|
+
"value": "```redis\nMGET key1 key2 [key ...]\n```\n**MGET** returns the values of all specified keys. For missing keys, `nil` is returned in that position."
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"INCR": {
|
|
68
|
+
"contents": [
|
|
69
|
+
{
|
|
70
|
+
"value": "```redis\nINCR key\n```\n**INCR** atomically increments the integer value of a key by 1. If the key doesn't exist, it's set to 0 before incrementing. Errors if value is not an integer."
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"INCRBY": {
|
|
75
|
+
"contents": [
|
|
76
|
+
{
|
|
77
|
+
"value": "```redis\nINCRBY key increment\n```\n**INCRBY** atomically increments the integer value by the given amount. Supports negative values for decrementing."
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"DECR": {
|
|
82
|
+
"contents": [
|
|
83
|
+
{
|
|
84
|
+
"value": "```redis\nDECR key\n```\n**DECR** atomically decrements the integer value of a key by 1."
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"APPEND": {
|
|
89
|
+
"contents": [
|
|
90
|
+
{
|
|
91
|
+
"value": "```redis\nAPPEND key value\n```\n**APPEND** appends a value to the end of a string key. Creates the key if it doesn't exist. Returns the new string length."
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"HSET": {
|
|
96
|
+
"contents": [
|
|
97
|
+
{
|
|
98
|
+
"value": "```redis\nHSET key field value [field value ...]\n```\n**HSET** sets one or more field-value pairs in a hash. Creates the hash if it doesn't exist. Returns the number of new fields added."
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"HGET": {
|
|
103
|
+
"contents": [
|
|
104
|
+
{
|
|
105
|
+
"value": "```redis\nHGET key field\n```\n**HGET** returns the value of a field in a hash. Returns `nil` if the field or key doesn't exist."
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"HGETALL": {
|
|
110
|
+
"contents": [
|
|
111
|
+
{
|
|
112
|
+
"value": "```redis\nHGETALL key\n```\n**HGETALL** returns all fields and values of a hash. Caution: expensive on large hashes — use `HSCAN` instead."
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"HDEL": {
|
|
117
|
+
"contents": [
|
|
118
|
+
{
|
|
119
|
+
"value": "```redis\nHDEL key field [field ...]\n```\n**HDEL** deletes one or more fields from a hash. Returns the number of fields removed."
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
"HEXISTS": {
|
|
124
|
+
"contents": [
|
|
125
|
+
{
|
|
126
|
+
"value": "```redis\nHEXISTS key field\n```\n**HEXISTS** checks if a field exists in a hash. Returns 1 if present, 0 otherwise."
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"HINCRBY": {
|
|
131
|
+
"contents": [
|
|
132
|
+
{
|
|
133
|
+
"value": "```redis\nHINCRBY key field increment\n```\n**HINCRBY** atomically increments a hash field's integer value. Creates the field with 0 if it doesn't exist."
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
},
|
|
137
|
+
"LPUSH": {
|
|
138
|
+
"contents": [
|
|
139
|
+
{
|
|
140
|
+
"value": "```redis\nLPUSH key element [element ...]\n```\n**LPUSH** inserts elements at the head (left) of a list. Creates the list if it doesn't exist. Returns the new list length."
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"RPUSH": {
|
|
145
|
+
"contents": [
|
|
146
|
+
{
|
|
147
|
+
"value": "```redis\nRPUSH key element [element ...]\n```\n**RPUSH** inserts elements at the tail (right) of a list. Returns the new length."
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
"LPOP": {
|
|
152
|
+
"contents": [
|
|
153
|
+
{
|
|
154
|
+
"value": "```redis\nLPOP key [count]\n```\n**LPOP** removes and returns the first element(s) from a list. Returns `nil` if empty."
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
"RPOP": {
|
|
159
|
+
"contents": [
|
|
160
|
+
{
|
|
161
|
+
"value": "```redis\nRPOP key [count]\n```\n**RPOP** removes and returns the last element(s) from a list."
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
},
|
|
165
|
+
"LRANGE": {
|
|
166
|
+
"contents": [
|
|
167
|
+
{
|
|
168
|
+
"value": "```redis\nLRANGE key start stop\n```\n**LRANGE** returns a range of elements from a list. `LRANGE key 0 -1` returns the entire list."
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
"LLEN": {
|
|
173
|
+
"contents": [
|
|
174
|
+
{
|
|
175
|
+
"value": "```redis\nLLEN key\n```\n**LLEN** returns the length of a list. Returns 0 if the key doesn't exist."
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
"SADD": {
|
|
180
|
+
"contents": [
|
|
181
|
+
{
|
|
182
|
+
"value": "```redis\nSADD key member [member ...]\n```\n**SADD** adds members to a set. Ignores duplicates. Returns the number of new members added."
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
"SMEMBERS": {
|
|
187
|
+
"contents": [
|
|
188
|
+
{
|
|
189
|
+
"value": "```redis\nSMEMBERS key\n```\n**SMEMBERS** returns all members of a set. Use `SSCAN` for large sets."
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
"SISMEMBER": {
|
|
194
|
+
"contents": [
|
|
195
|
+
{
|
|
196
|
+
"value": "```redis\nSISMEMBER key member\n```\n**SISMEMBER** checks if a member exists in a set. Returns 1 if present, 0 otherwise. O(1)."
|
|
197
|
+
}
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
"SREM": {
|
|
201
|
+
"contents": [
|
|
202
|
+
{
|
|
203
|
+
"value": "```redis\nSREM key member [member ...]\n```\n**SREM** removes members from a set. Returns the number removed."
|
|
204
|
+
}
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
"ZADD": {
|
|
208
|
+
"contents": [
|
|
209
|
+
{
|
|
210
|
+
"value": "```redis\nZADD key [NX|XX] [GT|LT] [CH] score member [score member ...]\n```\n**ZADD** adds members with scores to a sorted set. `NX` only adds new, `XX` only updates existing, `CH` returns changed count."
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"ZRANGE": {
|
|
215
|
+
"contents": [
|
|
216
|
+
{
|
|
217
|
+
"value": "```redis\nZRANGE key min max [BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES]\n```\n**ZRANGE** returns members from a sorted set by index, score, or lex range. `WITHSCORES` includes scores."
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
},
|
|
221
|
+
"ZRANK": {
|
|
222
|
+
"contents": [
|
|
223
|
+
{
|
|
224
|
+
"value": "```redis\nZRANK key member\n```\n**ZRANK** returns the 0-based rank of a member ordered by score (low to high). Returns `nil` if not found."
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"SUBSCRIBE": {
|
|
229
|
+
"contents": [
|
|
230
|
+
{
|
|
231
|
+
"value": "```redis\nSUBSCRIBE channel [channel ...]\n```\n**SUBSCRIBE** listens for messages on channels. The client enters subscriber mode and can only use SUBSCRIBE/UNSUBSCRIBE/PING."
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
},
|
|
235
|
+
"PUBLISH": {
|
|
236
|
+
"contents": [
|
|
237
|
+
{
|
|
238
|
+
"value": "```redis\nPUBLISH channel message\n```\n**PUBLISH** sends a message to all subscribers of a channel. Returns the number of clients that received it."
|
|
239
|
+
}
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
"PSUBSCRIBE": {
|
|
243
|
+
"contents": [
|
|
244
|
+
{
|
|
245
|
+
"value": "```redis\nPSUBSCRIBE pattern [pattern ...]\n```\n**PSUBSCRIBE** subscribes to channels matching a glob pattern. `*` matches any sequence, `?` one character."
|
|
246
|
+
}
|
|
247
|
+
]
|
|
248
|
+
},
|
|
249
|
+
"KEYS": {
|
|
250
|
+
"contents": [
|
|
251
|
+
{
|
|
252
|
+
"value": "```redis\nKEYS pattern\n```\n**KEYS** returns all keys matching a glob pattern. **Warning:** blocks the server on large datasets. Use `SCAN` in production."
|
|
253
|
+
}
|
|
254
|
+
]
|
|
255
|
+
},
|
|
256
|
+
"SCAN": {
|
|
257
|
+
"contents": [
|
|
258
|
+
{
|
|
259
|
+
"value": "```redis\nSCAN cursor [MATCH pattern] [COUNT count] [TYPE type]\n```\n**SCAN** iterates keys incrementally. Cursor 0 means complete. Non-blocking alternative to `KEYS`."
|
|
260
|
+
}
|
|
261
|
+
]
|
|
262
|
+
},
|
|
263
|
+
"TYPE": {
|
|
264
|
+
"contents": [
|
|
265
|
+
{
|
|
266
|
+
"value": "```redis\nTYPE key\n```\n**TYPE** returns the data type: `string`, `list`, `set`, `zset`, `hash`, `stream`, or `none`."
|
|
267
|
+
}
|
|
268
|
+
]
|
|
269
|
+
},
|
|
270
|
+
"PERSIST": {
|
|
271
|
+
"contents": [
|
|
272
|
+
{
|
|
273
|
+
"value": "```redis\nPERSIST key\n```\n**PERSIST** removes the expiration from a key. Returns 1 if removed, 0 if key has no expiry or doesn't exist."
|
|
274
|
+
}
|
|
275
|
+
]
|
|
276
|
+
},
|
|
277
|
+
"RENAME": {
|
|
278
|
+
"contents": [
|
|
279
|
+
{
|
|
280
|
+
"value": "```redis\nRENAME key newkey\n```\n**RENAME** renames a key. Overwrites `newkey` if it exists. Use `RENAMENX` to rename only if newkey doesn't exist."
|
|
281
|
+
}
|
|
282
|
+
]
|
|
283
|
+
},
|
|
284
|
+
"UNLINK": {
|
|
285
|
+
"contents": [
|
|
286
|
+
{
|
|
287
|
+
"value": "```redis\nUNLINK key [key ...]\n```\n**UNLINK** removes keys asynchronously in a background thread. Non-blocking alternative to `DEL`."
|
|
288
|
+
}
|
|
289
|
+
]
|
|
290
|
+
},
|
|
291
|
+
"MULTI": {
|
|
292
|
+
"contents": [
|
|
293
|
+
{
|
|
294
|
+
"value": "```redis\nMULTI\nSET key1 val1\nSET key2 val2\nEXEC\n```\n**MULTI** starts a transaction. Commands are queued until `EXEC`. `DISCARD` cancels."
|
|
295
|
+
}
|
|
296
|
+
]
|
|
297
|
+
},
|
|
298
|
+
"EXEC": {
|
|
299
|
+
"contents": [
|
|
300
|
+
{
|
|
301
|
+
"value": "```redis\nEXEC\n```\n**EXEC** executes all queued commands after `MULTI` atomically. Returns `nil` if `WATCH` detected changes."
|
|
302
|
+
}
|
|
303
|
+
]
|
|
304
|
+
},
|
|
305
|
+
"WATCH": {
|
|
306
|
+
"contents": [
|
|
307
|
+
{
|
|
308
|
+
"value": "```redis\nWATCH key [key ...]\n```\n**WATCH** implements optimistic locking. If any watched key changes before `EXEC`, the transaction aborts."
|
|
309
|
+
}
|
|
310
|
+
]
|
|
311
|
+
},
|
|
312
|
+
"XADD": {
|
|
313
|
+
"contents": [
|
|
314
|
+
{
|
|
315
|
+
"value": "```redis\nXADD key [MAXLEN|MINID [=|~] threshold] * field value [field value ...]\n```\n**XADD** appends an entry to a stream. `*` auto-generates the ID. `MAXLEN ~` trims approximately."
|
|
316
|
+
}
|
|
317
|
+
]
|
|
318
|
+
},
|
|
319
|
+
"XREAD": {
|
|
320
|
+
"contents": [
|
|
321
|
+
{
|
|
322
|
+
"value": "```redis\nXREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] id [id ...]\n```\n**XREAD** reads entries from streams. `BLOCK 0` waits indefinitely. Use `$` to read only new entries."
|
|
323
|
+
}
|
|
324
|
+
]
|
|
325
|
+
},
|
|
326
|
+
"INFO": {
|
|
327
|
+
"contents": [
|
|
328
|
+
{
|
|
329
|
+
"value": "```redis\nINFO [section]\n```\n**INFO** returns server information. Sections: `server`, `clients`, `memory`, `stats`, `replication`, `cpu`, `keyspace`, `all`."
|
|
330
|
+
}
|
|
331
|
+
]
|
|
332
|
+
},
|
|
333
|
+
"CONFIG": {
|
|
334
|
+
"contents": [
|
|
335
|
+
{
|
|
336
|
+
"value": "```redis\nCONFIG GET parameter\nCONFIG SET parameter value\n```\n**CONFIG** reads or modifies server configuration at runtime. Use `CONFIG REWRITE` to persist changes."
|
|
337
|
+
}
|
|
338
|
+
]
|
|
339
|
+
},
|
|
340
|
+
"SELECT": {
|
|
341
|
+
"contents": [
|
|
342
|
+
{
|
|
343
|
+
"value": "```redis\nSELECT index\n```\n**SELECT** switches to a different database (0-15 by default). Database 0 is the default."
|
|
344
|
+
}
|
|
345
|
+
]
|
|
346
|
+
},
|
|
347
|
+
"FLUSHDB": {
|
|
348
|
+
"contents": [
|
|
349
|
+
{
|
|
350
|
+
"value": "```redis\nFLUSHDB [ASYNC|SYNC]\n```\n**FLUSHDB** deletes all keys in the current database. `ASYNC` performs deletion in background. **Destructive.**"
|
|
351
|
+
}
|
|
352
|
+
]
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
@@ -4,42 +4,287 @@
|
|
|
4
4
|
"Host": {
|
|
5
5
|
"contents": [
|
|
6
6
|
{
|
|
7
|
-
"value": "
|
|
7
|
+
"value": "```ssh_config\nHost myserver\n HostName 10.0.1.50\n User deploy\n\nHost *.internal\n ProxyJump bastion\n\nHost *\n ServerAliveInterval 60\n```\n**Host** blocks match by name/pattern. `Host *` sets defaults. Wildcards and negation (`!pattern`) supported."
|
|
8
|
+
}
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
"HostName": {
|
|
12
|
+
"contents": [
|
|
13
|
+
{
|
|
14
|
+
"value": "```ssh_config\nHost myserver\n HostName 192.168.1.100\n\nHost staging\n HostName staging.example.com\n```\n**HostName** specifies the real hostname or IP to connect to. Allows the `Host` alias to differ from the actual address."
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"User": {
|
|
19
|
+
"contents": [
|
|
20
|
+
{
|
|
21
|
+
"value": "```ssh_config\nHost production\n User deploy\n\nHost *\n User myusername\n```\n**User** sets the login username. Overrides the default (current local user) for specific hosts."
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"Port": {
|
|
26
|
+
"contents": [
|
|
27
|
+
{
|
|
28
|
+
"value": "```ssh_config\nHost myserver\n Port 2222\n\nHost *\n Port 22\n```\n**Port** specifies the remote SSH port. Default is 22. Some servers use non-standard ports for security."
|
|
8
29
|
}
|
|
9
30
|
]
|
|
10
31
|
},
|
|
11
32
|
"IdentityFile": {
|
|
12
33
|
"contents": [
|
|
13
34
|
{
|
|
14
|
-
"value": "
|
|
35
|
+
"value": "```ssh_config\nIdentityFile ~/.ssh/id_ed25519\nIdentityFile ~/.ssh/work_key\n```\n**IdentityFile** specifies the private key file. Multiple keys can be listed — SSH tries them in order."
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"IdentitiesOnly": {
|
|
40
|
+
"contents": [
|
|
41
|
+
{
|
|
42
|
+
"value": "```ssh_config\nHost work\n IdentityFile ~/.ssh/work_key\n IdentitiesOnly yes\n```\n**IdentitiesOnly** restricts authentication to the specified IdentityFile(s) only, ignoring keys from ssh-agent."
|
|
15
43
|
}
|
|
16
44
|
]
|
|
17
45
|
},
|
|
18
46
|
"ProxyJump": {
|
|
19
47
|
"contents": [
|
|
20
48
|
{
|
|
21
|
-
"value": "
|
|
49
|
+
"value": "```ssh_config\nHost internal\n HostName 10.0.1.50\n ProxyJump bastion\n\n# Chaining: ProxyJump host1,host2\n```\n**ProxyJump** connects through a bastion/jump host. Supports chaining multiple jumps."
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"ProxyCommand": {
|
|
54
|
+
"contents": [
|
|
55
|
+
{
|
|
56
|
+
"value": "```ssh_config\nHost internal\n ProxyCommand ssh -W %h:%p bastion\n\nHost corporate\n ProxyCommand nc -x proxy:1080 %h %p\n```\n**ProxyCommand** specifies a command to connect to the server. `%h` and `%p` are replaced with host and port."
|
|
22
57
|
}
|
|
23
58
|
]
|
|
24
59
|
},
|
|
25
60
|
"LocalForward": {
|
|
26
61
|
"contents": [
|
|
27
62
|
{
|
|
28
|
-
"value": "
|
|
63
|
+
"value": "```ssh_config\nLocalForward 5432 db-server:5432\nLocalForward 8080 localhost:80\n```\n**LocalForward** tunnels a local port to a remote destination via SSH. Great for accessing internal databases."
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"RemoteForward": {
|
|
68
|
+
"contents": [
|
|
69
|
+
{
|
|
70
|
+
"value": "```ssh_config\nRemoteForward 8080 localhost:3000\n```\n**RemoteForward** makes a local service accessible from the remote host. The remote port forwards back to local."
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"DynamicForward": {
|
|
75
|
+
"contents": [
|
|
76
|
+
{
|
|
77
|
+
"value": "```ssh_config\nDynamicForward 1080\n```\n**DynamicForward** creates a SOCKS proxy on the specified local port. All traffic through the proxy is tunneled over SSH."
|
|
29
78
|
}
|
|
30
79
|
]
|
|
31
80
|
},
|
|
32
81
|
"ForwardAgent": {
|
|
33
82
|
"contents": [
|
|
34
83
|
{
|
|
35
|
-
"value": "
|
|
84
|
+
"value": "```ssh_config\nForwardAgent yes\n# Security: only enable for trusted hosts\n```\n**ForwardAgent** forwards your SSH agent to the remote host. Useful for multi-hop but risky on untrusted servers."
|
|
36
85
|
}
|
|
37
86
|
]
|
|
38
87
|
},
|
|
39
88
|
"ServerAliveInterval": {
|
|
40
89
|
"contents": [
|
|
41
90
|
{
|
|
42
|
-
"value": "
|
|
91
|
+
"value": "```ssh_config\nHost *\n ServerAliveInterval 60\n ServerAliveCountMax 3\n```\n**ServerAliveInterval** sends keep-alive packets every N seconds. Prevents idle disconnections."
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"ServerAliveCountMax": {
|
|
96
|
+
"contents": [
|
|
97
|
+
{
|
|
98
|
+
"value": "```ssh_config\nServerAliveCountMax 3\n```\n**ServerAliveCountMax** sets how many keep-alive messages can go unanswered before disconnecting. With interval 60 and max 3, timeout is 180s."
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"AddKeysToAgent": {
|
|
103
|
+
"contents": [
|
|
104
|
+
{
|
|
105
|
+
"value": "```ssh_config\nHost *\n AddKeysToAgent yes\n```\n**AddKeysToAgent** automatically adds keys to the running ssh-agent after first use. Values: `yes`, `no`, `ask`, `confirm`, or a time limit."
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"StrictHostKeyChecking": {
|
|
110
|
+
"contents": [
|
|
111
|
+
{
|
|
112
|
+
"value": "```ssh_config\nHost *\n StrictHostKeyChecking ask\n\nHost *.test\n StrictHostKeyChecking no\n UserKnownHostsFile /dev/null\n```\n**StrictHostKeyChecking** controls host key verification. `ask` (default) prompts, `yes` rejects unknown, `no` accepts all (insecure)."
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"UserKnownHostsFile": {
|
|
117
|
+
"contents": [
|
|
118
|
+
{
|
|
119
|
+
"value": "```ssh_config\nUserKnownHostsFile ~/.ssh/known_hosts\nUserKnownHostsFile /dev/null\n```\n**UserKnownHostsFile** specifies the file for storing known host keys. Use `/dev/null` to disable (with `StrictHostKeyChecking no`)."
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
"Compression": {
|
|
124
|
+
"contents": [
|
|
125
|
+
{
|
|
126
|
+
"value": "```ssh_config\nHost slow-link\n Compression yes\n```\n**Compression** enables zlib compression. Useful for slow connections but can increase latency on fast ones."
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"TCPKeepAlive": {
|
|
131
|
+
"contents": [
|
|
132
|
+
{
|
|
133
|
+
"value": "```ssh_config\nTCPKeepAlive yes\n```\n**TCPKeepAlive** sends TCP keepalive messages to detect dead connections. Different from `ServerAliveInterval` (application-level)."
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
},
|
|
137
|
+
"ControlMaster": {
|
|
138
|
+
"contents": [
|
|
139
|
+
{
|
|
140
|
+
"value": "```ssh_config\nHost *\n ControlMaster auto\n ControlPath ~/.ssh/sockets/%r@%h-%p\n ControlPersist 600\n```\n**ControlMaster** enables connection multiplexing. Subsequent connections to the same host reuse the existing TCP connection."
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"ControlPath": {
|
|
145
|
+
"contents": [
|
|
146
|
+
{
|
|
147
|
+
"value": "```ssh_config\nControlPath ~/.ssh/sockets/%r@%h-%p\n```\n**ControlPath** specifies the Unix socket file for connection multiplexing. `%r` = user, `%h` = host, `%p` = port."
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
"ControlPersist": {
|
|
152
|
+
"contents": [
|
|
153
|
+
{
|
|
154
|
+
"value": "```ssh_config\nControlPersist 600\nControlPersist yes\n```\n**ControlPersist** keeps the master connection open after the last session closes. Value in seconds, or `yes` for indefinite."
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
"Match": {
|
|
159
|
+
"contents": [
|
|
160
|
+
{
|
|
161
|
+
"value": "```ssh_config\nMatch host *.internal user deploy\n ProxyJump bastion\n\nMatch exec \"test -f ~/.ssh/work_key\"\n IdentityFile ~/.ssh/work_key\n```\n**Match** applies settings conditionally by host, user, or command result. More flexible than `Host`."
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
},
|
|
165
|
+
"Include": {
|
|
166
|
+
"contents": [
|
|
167
|
+
{
|
|
168
|
+
"value": "```ssh_config\nInclude ~/.ssh/config.d/*\nInclude ~/.ssh/work_config\n```\n**Include** imports other config files. Supports glob patterns. Useful for splitting configs by project or team."
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
"LogLevel": {
|
|
173
|
+
"contents": [
|
|
174
|
+
{
|
|
175
|
+
"value": "```ssh_config\nHost problematic\n LogLevel DEBUG3\n\nHost *\n LogLevel ERROR\n```\n**LogLevel** controls SSH client logging verbosity. Levels: `QUIET`, `FATAL`, `ERROR`, `INFO`, `VERBOSE`, `DEBUG`, `DEBUG1`-`DEBUG3`."
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
"RequestTTY": {
|
|
180
|
+
"contents": [
|
|
181
|
+
{
|
|
182
|
+
"value": "```ssh_config\nHost scripts\n RequestTTY no\n\nHost interactive\n RequestTTY force\n```\n**RequestTTY** controls pseudo-terminal allocation. `no` for scripts, `force` for interactive. Equivalent to `-t`/`-T` flags."
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
"BatchMode": {
|
|
187
|
+
"contents": [
|
|
188
|
+
{
|
|
189
|
+
"value": "```ssh_config\nHost automated\n BatchMode yes\n```\n**BatchMode** disables password prompting and host key confirmation. Useful for scripts where no user interaction is possible."
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
"ConnectTimeout": {
|
|
194
|
+
"contents": [
|
|
195
|
+
{
|
|
196
|
+
"value": "```ssh_config\nHost *\n ConnectTimeout 10\n```\n**ConnectTimeout** sets the connection timeout in seconds. Default uses the system TCP timeout."
|
|
197
|
+
}
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
"ConnectionAttempts": {
|
|
201
|
+
"contents": [
|
|
202
|
+
{
|
|
203
|
+
"value": "```ssh_config\nHost unreliable\n ConnectionAttempts 3\n```\n**ConnectionAttempts** specifies the number of connection retry attempts before giving up. Default is 1."
|
|
204
|
+
}
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
"Ciphers": {
|
|
208
|
+
"contents": [
|
|
209
|
+
{
|
|
210
|
+
"value": "```ssh_config\nHost *\n Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com\n```\n**Ciphers** specifies allowed encryption algorithms in preference order."
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
"KexAlgorithms": {
|
|
215
|
+
"contents": [
|
|
216
|
+
{
|
|
217
|
+
"value": "```ssh_config\nKexAlgorithms curve25519-sha256,diffie-hellman-group16-sha512\n```\n**KexAlgorithms** specifies allowed key exchange algorithms. Modern setups prefer curve25519."
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
},
|
|
221
|
+
"PubkeyAuthentication": {
|
|
222
|
+
"contents": [
|
|
223
|
+
{
|
|
224
|
+
"value": "```ssh_config\nHost *\n PubkeyAuthentication yes\n PasswordAuthentication no\n```\n**PubkeyAuthentication** enables/disables public key authentication. Best practice: enable keys, disable passwords."
|
|
225
|
+
}
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"PasswordAuthentication": {
|
|
229
|
+
"contents": [
|
|
230
|
+
{
|
|
231
|
+
"value": "```ssh_config\nHost legacy-server\n PasswordAuthentication yes\n\nHost *\n PasswordAuthentication no\n```\n**PasswordAuthentication** controls password-based login. Disable for security when key auth is available."
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
},
|
|
235
|
+
"ForwardX11": {
|
|
236
|
+
"contents": [
|
|
237
|
+
{
|
|
238
|
+
"value": "```ssh_config\nHost desktop\n ForwardX11 yes\n ForwardX11Trusted yes\n```\n**ForwardX11** enables X11 forwarding for running graphical applications remotely. `Trusted` bypasses X11 security."
|
|
239
|
+
}
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
"SendEnv": {
|
|
243
|
+
"contents": [
|
|
244
|
+
{
|
|
245
|
+
"value": "```ssh_config\nHost *\n SendEnv LANG LC_*\n SetEnv MY_VAR=value\n```\n**SendEnv** sends local environment variables to the remote server. Server must accept them via `AcceptEnv`."
|
|
246
|
+
}
|
|
247
|
+
]
|
|
248
|
+
},
|
|
249
|
+
"SetEnv": {
|
|
250
|
+
"contents": [
|
|
251
|
+
{
|
|
252
|
+
"value": "```ssh_config\nHost staging\n SetEnv ENV=staging\n SetEnv DEBUG=1\n```\n**SetEnv** sets environment variables on the remote session. Does not require server-side `AcceptEnv` configuration."
|
|
253
|
+
}
|
|
254
|
+
]
|
|
255
|
+
},
|
|
256
|
+
"PermitLocalCommand": {
|
|
257
|
+
"contents": [
|
|
258
|
+
{
|
|
259
|
+
"value": "```ssh_config\nHost *\n PermitLocalCommand yes\n LocalCommand echo \"Connected to %h\"\n```\n**PermitLocalCommand** allows running local commands after connecting. `LocalCommand` specifies the command."
|
|
260
|
+
}
|
|
261
|
+
]
|
|
262
|
+
},
|
|
263
|
+
"CanonicalizeHostname": {
|
|
264
|
+
"contents": [
|
|
265
|
+
{
|
|
266
|
+
"value": "```ssh_config\nCanonicalizeHostname yes\nCanonicalDomains example.com internal.example.com\n```\n**CanonicalizeHostname** resolves short hostnames to FQDNs using `CanonicalDomains`. Useful in corporate networks."
|
|
267
|
+
}
|
|
268
|
+
]
|
|
269
|
+
},
|
|
270
|
+
"AddressFamily": {
|
|
271
|
+
"contents": [
|
|
272
|
+
{
|
|
273
|
+
"value": "```ssh_config\nHost *\n AddressFamily inet\n```\n**AddressFamily** restricts connections to `inet` (IPv4), `inet6` (IPv6), or `any` (default). Use `inet` to avoid IPv6 issues."
|
|
274
|
+
}
|
|
275
|
+
]
|
|
276
|
+
},
|
|
277
|
+
"PreferredAuthentications": {
|
|
278
|
+
"contents": [
|
|
279
|
+
{
|
|
280
|
+
"value": "```ssh_config\nHost *\n PreferredAuthentications publickey,keyboard-interactive,password\n```\n**PreferredAuthentications** sets the order of authentication methods to try."
|
|
281
|
+
}
|
|
282
|
+
]
|
|
283
|
+
},
|
|
284
|
+
"GSSAPIAuthentication": {
|
|
285
|
+
"contents": [
|
|
286
|
+
{
|
|
287
|
+
"value": "```ssh_config\nHost *.corp.example.com\n GSSAPIAuthentication yes\n GSSAPIDelegateCredentials yes\n\nHost *\n GSSAPIAuthentication no\n```\n**GSSAPIAuthentication** enables Kerberos/GSSAPI authentication. Common in corporate environments with Active Directory."
|
|
43
288
|
}
|
|
44
289
|
]
|
|
45
290
|
}
|