Pull to refresh

Comments 30

А ещё можно просто переключиться на jsonnet :)


С соответствующими плагинами и подсветкой синтаксиса он нисколько не отстаёт от yaml по читаемости и удобству редактирования, но также привносит новые возможности и позволяет полностью избавится от повторяемости однотипных структур.


пример простого loop
{
  [x.login]: {
    job: 'Developer',
    name: x.name,
    skills: x.skills,
  }
  for x in [
    {
      login: 'martin',
      name: "Martin D'vloper",
      skills: ['python', 'perl', 'pascal'],
    },
    {
      login: 'tabitha',
      name: 'Tabitha Bitumen',
      skills: ['lisp', 'fortran', 'erlang'],
    },
  ]
}

как это выглядит с подсветкой синтаксиса

Я получил адский wtf в yaml на таком примере:


continious_queries:
  -  name: cq1
     on: db1
   - name: cq2
     on: db1

Догадайтесь, во что превратилось 'on:db1'? Правильно, в true:"db1", потому что какой-то умник в yaml решил, что on, true, yes — всё это bool.

UFO just landed and posted this here

Писал руками, пропустил.

UFO just landed and posted this here
Тема якорей и подстановок для создания циклов в дереве не раскрыта :)

Мне ямл нравится за работу с многострочными текстами. Выбрал его для своего проекта как формат бизнесправил. Удобный.

Или переходите на Tree. Его парсер можно написать всего за пол часа на любом языке. В нём не надо решать проблему "табы или пробелы" — она уже решена.


Пример:


martin
    name \Martin D'vloper
    job \Developer
    skill \python
    skill \perl
    skill \pascal
    about \
        \Клёвый чел.
        \Но помер, прочитав спецификацию YAML до конца.
tabitha
    name \Tabitha Bitumen
    job \Developer
    skill \lisp
    skill \fortran
    skill \erlang
    about \
        \Написал свой YAML парсер.
        \С тех пор умеет ходить на руках.
        \Пятью разными способами.

Закопайте это, оно уродливо.

Уродливость определяется не размером парсера, а возможностями решить проблему. Вот в этом новоизобретённом формате, запишите мне вот этот yaml, пожалуйста:


- " ": "  "
- "\": |
          skill \lisp
          skill \fortran
          skill \erlang
          # not a comment
     # this is a comment

Ямл может это с минимальной болью.

Сперва расшифруйте, что вы написали, и объясните, что за проблему вы решали таким непонятным, уродливым и, что самое смешное, в очередной раз невалидным кодом.

Список, в котором первый элемент — словарь у которого ключ пробел, а значение два пробела, второй элемент — словарь, в котором ключ '\', а значение — буквальный текст


skill \lisp
skill \fortran
skill \erlang
# not a comment

(прям как есть, с переводами строк)
А дальше там комментарий.

У меня к вам 2 вопроса:


  1. Вы хоть раз смогли написать валидный YAML с первого раза?
  2. В какой задаче может потребоваться объявлять в словаре пробел и бэкслеш в качестве ключей словаря?

Очень хочу ответить про ямл. У меня правила на нем, 1000строк. Пишу постоянно и легко. Sublime умеет подсвечивать скобки и пр выделители, ставит вертикальные полосы на отступах и автодополнение пашет с подсветкой синтаксиса. В общем ямл в таких условиях хорош, особенно хорошо когда многострочники писать надо.

У меня правила на нем, 1000строк.

Покажете пример?


В общем ямл в таких условиях хорош

Тут скорее Sublime хорош. Для Tree тоже есть к нему плагин.


особенно хорошо когда многострочники писать надо

Если речь про многострочный текст, то можете обратить внимание на пример tree-кода выше.

Примеров ямла полно ;) А правила эти принадлежат конторе в которой я работаю.

Примеров хороших стихов полно, но я вам их не расскажу.

UFO just landed and posted this here

Странным выглядит предложение конвертить yaml в json для чтения, а не наоборот. Ведь миссия yaml как раз в повышении человеко-читаемости. И на мой взгляд он хорошо справляется с этим, попробуйте прочитать или написать с нуля без IDE — xml, json и yaml.

Как только верхнеуровневый элемент уходит с экрана, какие кужа и откуда отступы уже не понять. Без редактора ямл чиьается плохо

Эта проблема есть у всех форматов так-то.

У форматов, не зависящих от отступов ее нет. Например джейсон. Скобки решают. Смесь ямла и джейсона идеал :)

Скобки точно так же выходят сверху и снизу за границы экрана. И по закрывающей скобке точно так же не понятно что она закрывает.


Эта проблема на уровне формата не решаема в принципе, а значит решаться должна на уровне редактора.

Достаточно их считать. Мне хватает. Обычный стек в уме.

А отступы типа не посчитать? Переполнение стека в уме?

И вот вам надо добавить элемент на том же уровне, что и три экрана вверх, а пробелы не показаны, и вертикальной разметки нет :)

Через терминал, на мобилке, с завязанными руками.


А если серьёзно, то в tree используются табы, никаких пробелов для отступов и связанных с ними проблем.

Sign up to leave a comment.