feat: add ssh config

This commit is contained in:
ObserverOfTime 2023-09-17 12:41:06 +03:00
parent 6f3f89a6dd
commit c0f4363b72
6 changed files with 121 additions and 0 deletions

View file

@ -542,6 +542,9 @@
"squirrel": {
"revision": "e8b5835296f931bcaa1477d3c5a68a0c5c2ba034"
},
"ssh_config": {
"revision": "f1039c88c488f77a10a616c6de5ec1c4c6e8572f"
},
"starlark": {
"revision": "c45ce2b39062bbd12ea1c210bd200db250efb24a"
},

View file

@ -1597,6 +1597,15 @@ list.squirrel = {
maintainers = { "@amaanq" },
}
list.ssh_config = {
install_info = {
url = "https://github.com/ObserverOfTime/tree-sitter-ssh-config",
files = { "src/parser.c" },
},
filetype = "sshconfig",
maintainers = { "@ObserverOfTime" },
}
list.starlark = {
install_info = {
url = "https://github.com/amaanq/tree-sitter-starlark",

View file

@ -0,0 +1,4 @@
[
(host_declaration)
(match_declaration)
] @fold

View file

@ -0,0 +1,81 @@
; Literals
(string) @string
(pattern) @string.regex
(token) @character
[
(number)
(bytes)
(time)
] @number
[
(kex)
(mac)
(cipher)
(key_sig)
] @parameter
[
; generic
"yes" "no"
"ask" "auto"
"none" "any"
; ControlMaster
"autoask"
; FingerprintHash
"md5" "sha256"
; PubkeyAuthentication
"unbound" "host-bound"
; RequestTTY
"force"
; SessionType
"subsystem" "default"
; StrictHostKeyChecking
"accept-new" "off"
; Tunnel
"point-to-point" "ethernet"
(ipqos)
(verbosity)
(facility)
(authentication)
] @constant.builtin
(uri) @text.uri
; Keywords
[ "Host" "Match" ] @keyword
(parameter keyword: _ @keyword)
(host_declaration argument: _ @namespace)
(match_declaration
(condition criteria: _ @attribute))
"all" @attribute
; Misc
[
"SSH_AUTH_SOCK"
(variable)
] @constant
(comment) @comment @spell
(ERROR) @error
; Punctuation
[ "${" "}" ] @punctuation.special
[ "\"" "," ":" "@" ] @punctuation.delimiter
[ "=" "!" "+" "-" "^" ] @operator
[ "*" "?" ] @character.special

View file

@ -0,0 +1,7 @@
[
(host_declaration)
(match_declaration)
] @indent.begin
; incomplete declarations
(ERROR . [ "Host" "Match" ]) @indent.begin

View file

@ -0,0 +1,17 @@
((comment) @injection.content
(#set! injection.language "comment"))
((condition
criteria: "exec"
argument: (string) @injection.content)
(#set! injection.language "bash"))
((parameter
keyword: [
"KnownHostsCommand"
"LocalCommand"
"RemoteCommand"
"ProxyCommand"
]
argument: (string) @injection.content)
(#set! injection.language "bash"))