Согласно документации 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()
из списка, как указал Герардо Фуртадо, что они возвращают новые выборы.