Как выделить вложенную структуру в структурированном поиске SourceGraph?

У меня есть следующий структурированный поиск SourceGraph:repo:… file:… "tls_certs" {...default = {...}...}что правильно соответствует:

      variable "tls_certs" {
  description = "…"
  type        = map(string)
  default = {
    …
  }
}

В настоящее время он выделяет весь"tls_certs"блокировать. Я хотел бы выделить толькоdefault =блокировать. Предполагая, что это возможно, как это сделать?

1 ответ

(Я предполагаю, что вы хотите ограничить поиск файлами Terraform на основе предоставленного примера совпадения)

Попробуйте это и посмотрите, работает ли это для вас::[~[\s\n]]default = {...} lang:Terraform

Он будет соответствовать блоку формыdefault = {...}которому предшествует пробел или новая строка. Строго не гарантируется соответствие только вложенным структурам, но, похоже, он хорошо работает сlang:Terraformфильтр.

Он использует как...и:[~regexp]синтаксис структурного поиска. (Справочные документы по синтаксису: https://docs.sourcegraph.com/code_search/reference/structural#syntax-reference)

Пример: https://sourcegraph.com/search?q=context:global+:%5B~%5B%5Cs%5Cn%5D%5Ddefault+%3D+%7B...%7D+lang:Terraform+-repo:%5Egithub%5C.com/Wilfred/difftastic$&patternType=структурный

Другие вопросы по тегам