suite init и suite add: заведение набора и конвенции в двух режимах
- suite init создаёт директорию и манифест со скелетом таблиц; suite add пишет файл конвенции и вправляет запись в suite.toml, сохраняя комментарии - без аргументов команды спрашивают поля с подсказками, с флагами берут всё сразу и не спрашивают ничего; без терминала пустой вызов отказывает - строка о версии языка генерируется из словаря набора, поэтому созданный файл проходит suite check без правок - починено разрешение extends: короткая форма бралась по суффиксу и могла указать на сам файл; теперь неоднозначность либо избегается при записи, либо сообщается ошибкой
This commit is contained in:
@@ -95,6 +95,17 @@ type Vocabulary struct {
|
||||
Modals map[string]Level
|
||||
Marks map[string]Mark
|
||||
Scenario map[string]Connective
|
||||
// Line is the language version line, with a single verb for the version
|
||||
// number. Every convention names the language by one such line, and the
|
||||
// wording around the words is as much a property of the natural language
|
||||
// as the words themselves — which is why it lives here and not in a
|
||||
// template inside the command that writes a new file.
|
||||
Line string
|
||||
}
|
||||
|
||||
// VersionLine renders the language version line for this vocabulary.
|
||||
func (v Vocabulary) VersionLine() string {
|
||||
return fmt.Sprintf(v.Line, v.Version)
|
||||
}
|
||||
|
||||
// Modal reports the step of a word if the word belongs to this scale.
|
||||
@@ -200,6 +211,9 @@ var registry = map[int]map[string]Vocabulary{
|
||||
"И": And,
|
||||
"ИЛИ": Or,
|
||||
},
|
||||
Line: "Ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ДОПУСКАЕТСЯ и метки\n" +
|
||||
"ПОЧЕМУ, ПРИМЕРЫ, МЕХАНИЗИРОВАНО и СНЯТО толкуются как описано в языке\n" +
|
||||
"конвенций версии %d — тогда и только тогда, когда написаны заглавными.",
|
||||
},
|
||||
"en": {
|
||||
Version: 1,
|
||||
@@ -223,6 +237,9 @@ var registry = map[int]map[string]Vocabulary{
|
||||
"AND": And,
|
||||
"OR": Or,
|
||||
},
|
||||
Line: "The key words MUST, MUST NOT, SHOULD, SHOULD NOT, MAY and the marks WHY,\n" +
|
||||
"EXAMPLES, MECHANIZED and RETIRED are to be interpreted as described in the\n" +
|
||||
"conventions language, version %d, and only when written in capitals.",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user