Пример QooXDoo для config.json из-за ошибки pretty-print вручную

#python #qooxdoo

#python #qooxdoo

Вопрос:

Я беру пример из документа 1.4 для ключа задания «pretty-print» в моем config.json.

 "jobs" :   {
    "pretty-print" :    { 
        "general" :     { ..... },
        "comments" :    {  ...... },
        "blocks" :    { ....... }
    },
  

python Generate.py создайте это:

Предупреждение: ! Неизвестный ключ конфигурации задания «блокирует» — игнорируется.
Предупреждение: ! Неизвестный ключ конфигурации задания «комментарии» — игнорируется.
Предупреждение: ! Неизвестный ключ конфигурации задания «general» — игнорируется.

Я просмотрел everywere, doc amp; source и не понимаю, почему

ОТРЕДАКТИРОВАНО, я использую QooXdoo 1.4 с Python 2.6

Я работаю с исходным кодом javascript, сгенерированным из другой системы, мне нужно переформатировать source .js и изменить стандартные настройки, которые использует QooXdoo

Из http://manual.qooxdoo.org/1.4.x/pages/tool/generator_config_ref.html я беру пример:

 "pretty-print" :
{
  "general" :
  {
    "indent-string"        : "    "
  },
  "comments" :
  {
    "trailing" :
    {
      "keep-column"        : false,
      "comment-cols"       : [50, 70, 90],
      "padding"            : "    "
    }
  },
  "blocks" :
  {
    "align-with-curlies"   : false,
    "open-curly" :
    {
      "newline-before"     : "N",
      "indent-before"      : false
    }
  }
}
  

и помещаю в config.json моего приложения

задание «pretty-print» выполняется, но игнорируется настройка

ОТРЕДАКТИРОВАНО ЗАНОВО, у меня проблема только с этим ключом «pretty-print», другой вариант config.json в порядке

Комментарии:

1. здесь слишком мало контекста, можете ли вы предоставить полный минимальный пример кода, в котором есть проблема?

Ответ №1:

Вы поняли это почти правильно, вы просто пропустили один уровень вложенности.

Общая структура jobs карты выглядит следующим образом (что также задокументировано здесь):

 "jobs" : {
     "job-name" : {
          "pretty-print" : { ... }
          ...
     }
     ...
}
  

Итак, вам просто нужно вставить имя задания между «jobs» и «pretty-print»; имя задания — это просто свободно выбираемая строка. (Вы можете представить карту «jobs» как контейнер, [job-name] как отдельные объекты в этом контейнере, а «pretty-print» и все другие ключи, которые вы видели задокументированными на generator_config_ref.html , как свойства конкретного пользователя).

Теперь вы можете определить объект задания с нуля, например, присвоив ему уникальное имя, такое как my-pretty-print . Но для успешного выполнения задания требуется, чтобы вы собрали воедино все необходимые свойства задания (на это намекает примечание о одноранговых ключах, приведенное со многими описаниями ключей).

Я скорее рекомендую использовать предварительно определенное задание и доработать его. В вашем случае используйте задание по умолчанию pretty и доработайте его. Называя задание в вашей собственной конфигурации pretty , вы автоматически наследуете все свойства из предварительно определенного задания. Поэтому просто добавляю

 "jobs" : {
    "pretty" : {}
}
  

для вашей карты конфигурации будет создано пользовательское задание pretty , которое выполняет то же самое, что и задание по умолчанию с тем же именем (поскольку у вас ничего не изменилось). Теперь вы можете просто предоставить то, что вы хотите по-другому, чем задание по умолчанию, например

 "jobs" : {
    "pretty" : { "general" : { "indent-string" : "    " }}
}
  

будут использоваться все настройки по умолчанию, за исключением того, что строка отступа будет содержать 4 пробела вместо 2. Это должно заставить вас работать.

Комментарии:

1. Танки, вы направили меня в правильном направлении решение: «jobs»: { «pretty» : { «pretty-print» : { «general» : { «indent-string»: » » } } }