Добавьте директиву 'library' к коду дротика, сгенерированному с помощью protoc - PullRequest
0 голосов
/ 23 сентября 2018

Может кто-нибудь сказать мне, как получить protoc для генерации файлов dart с директивой library ?

Я использую dart-protoc-plugin (v0.10.2) для генерациимои модели dart, c ++, c #, js и java из протос файлов.У меня было впечатление, что не было никакого способа заставить protoc добавить директиву 'library' к сгенерированным файлам dart, пока я не заметил директиву, появляющуюся в другом проекте (см. date.pb.dart ).

Если я возьму тот же файл ( date.proto ), я не смогу получить protoc для создания файла дротика, содержащего директиву 'library'.

Короче говоря: я хочувозьмите файл .proto со следующим содержимым

syntax = "proto3";

package another.proj.nspace;

message MyObj {
  ...
}

и создайте файл .dart с ведущей директивой 'library', подобный следующему фрагменту

///
//  Generated code. Do not modify.
///
// ignore_for_file: non_constant_identifier_names,library_prefixes
library another.proj.nspace;
...

NOTE : Меня не волнует фактическое значение директивы, поскольку я могу реструктурировать свой код, чтобы получить желаемый результат.Мне просто нужен способ для protoc добавить директиву library ...

Основная команда, которую я использую для генерации файлов дротиков:

protoc --proto_path=./ --dart_out="./" ./another/proj/nspace/date.proto

К сожалению, README модуля dart-protoc-plugin не очень полезен, и мне пришлось просмотреть исходный код, чтобы узнать, какие опции доступны;и в настоящее время кажется, что единственный специфичный для дротиков вариант связан с grpc.

Я пробовал варианты из других языков (например, «библиотека» и «базовый путь») без какого-либо успеха.

Если бы это было возможно, это немного упростило бы мой рабочий процесс, но у меня начинает складываться впечатление, что директива библиотеки в date.pb.dart добавляется после генерации кода ...

1 Ответ

0 голосов
/ 26 сентября 2018

Немного поинтересовавшись, кажется, что директива library была удалена из плагина protoc на каком-то этапе ( см. Запрос на извлечение ), поэтому она больше не поддерживается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...