d3 условный абзац с eslint - PullRequest
       10

d3 условный абзац с eslint

0 голосов
/ 30 августа 2018

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

По соглашению, методы выбора, которые возвращают текущий выбор, используют четыре пробела отступа, в то время как методы, которые возвращают новый выбор, используют только два. Это помогает выявить изменения контекста, заставляя их торчать из цепочки:

Предоставление кода, который выглядит следующим образом:

d3.select("body")
  .append("svg")
    .attr("width", 960)
    .attr("height", 500)
  .append("g")
    .attr("transform", "translate(20,20)")
  .append("rect")
    .attr("width", 920)
    .attr("height", 460);

Есть ли способ настроить eslint для работы с этим, чтобы он не жаловался на неожиданные уровни отступов постоянно?

Правило eslint indent имеет опцию MemberExpression, так что вы можете игнорировать все отступы для связанных вызовов методов, но я хочу, чтобы они применялись по-разному, только для разных методов. Есть также опция ignoredNodes, которая может выбирать определенные узлы AST, которые нужно игнорировать, но я не знаю из документации, может ли это выбрать точность, которую я хочу. Хотя отключение проверки некоторых связанных методов не очень хорошо, это лучше, чем ничего. В этом случае я сомневаюсь, что это исчерпывающий список, но все, что я использую в отступе с четырьмя пробелами:

.attr()
.style()
.text()
.call()
.on()

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

Редактировать: Удалено .data() и .enter() из списка, как указал Герардо Фуртадо, что они возвращают новые выборы.

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