Настройте Sorbet для обработки всех файлов без комментариев, как если бы они были напечатаны: игнорировать комментарий

Мой вопрос связан с этим each-file">1, но я не против добавлять комментарии к файлам с аннотациями типов. Мы просто не хотим, чтобы автоматически генерировались комментарии к сотням файлов, хотя в файлах больше ничего не происходило. Есть ли способ настроить Sorbet для такой работы?


person Linus    schedule 28.05.2020    source источник


Ответы (2)


Согласно документации:

# набрано: false значение по умолчанию для файлов без сигилов.

Таким образом, желаемое поведение уже должно быть на месте.

person Tom Lord    schedule 28.05.2020
comment
Спасибо за ваш ответ. К сожалению, у меня был тип в заголовке, на самом деле он должен быть typed: ignore вместо typed: false. Я понимаю, что описания в вопросе было недостаточно, чтобы прояснить это самостоятельно. Я обновил заголовок вопроса соответственно. - person Linus; 28.05.2020
comment
Судя по вашему описанию, typed: false по умолчанию для файлов без сигилов должно быть разумным. Sorbet не будет трогать эти файлы и только проверять такие вещи, как отсутствующие константы или опечатки. typed: ignore очень ограничен и, скорее всего, вы захотите использовать его только в редких случаях, когда хотите скрыть какой-то код от сорбета. Команда даже рекомендует не игнорировать файлы. - person hdoan; 28.05.2020

Вы можете пройти долгий путь, используя следующие флаги Sorbet:

$ srb tc --help
Typechecker for Ruby
Usage:
  sorbet [OPTION...] <path 1> <path 2> ...
...
      --ignore string           Ignores input files that contain the given
                                string in their paths (relative to the input
                                path passed to Sorbet). Strings beginning with /
                                match against the prefix of these relative
                                paths; others are substring matchs. Matches must
                                be against whole folder and file names, so
                                `foo` matches `/foo/bar.rb` and `/bar/foo/baz.rb`
                                but not `/foo.rb` or `/foo2/bar.rb`.
...
      --typed-override filepath.yaml
                                Yaml config that overrides strictness levels
                                on files (default: "")
...

Если все файлы, которые вы хотите игнорировать, находятся в одной папке или могут быть сопоставлены с некоторыми совпадениями пути, то несколько --ignore строк в вашем sorbet/config файле должны делать то, что вы хотите.

В противном случае вы можете использовать типизированные переопределения из файла YAML, чтобы заставить Sorbet интерпретировать нужные вам файлы как typed: ignore. Вы должны, опять же, иметь возможность добавить этот флаг в свой файл sorbet/config.

person paracycle    schedule 29.05.2020