Настроить поведение линтеров R в Sublime 3

Я использую lintr в Sublime 3 с помощью SublimeLinter 3 и SublimeLinter-contrib-lintr плагин. На lintrREADME.md В файле есть краткое упоминание о том, как настроить какие линтеры следует использовать:

{
  "user": {
    "linters": {
      "r": {
        "linters": "with_defaults(line_length_linter(120))"
      }
    }
  }
}

Тем не менее, я использую его в сочетании с SublimeLinter-contrib-lintr и я не могу заставить его работать. мой SublimeLinter.sublime-settings файл выглядит так:

{
    "user": {
        "debug": true,
        "delay": 0.25,
        "error_color": "D02000",
        "gutter_theme": "Packages/SublimeLinter/gutter-themes/Default/Default.gutter-theme",
        "gutter_theme_excludes": [],
        "lint_mode": "background",
        "linters": {
            "lintr": {
                "@disable": false,
                "args": [],
                "cache": "TRUE",
                "excludes": [],
                "linters": "default_linters"
            }
        },
        "mark_style": "outline",
        "no_column_highlights_line": false,
        "passive_warnings": false,
        "paths": {
            "linux": [],
            "osx": [],
            "windows": [
                "C:/Program Files/R/R-3.3.3/bin/x64"
            ]
        },
        "python_paths": {
            "linux": [],
            "osx": [],
            "windows": []
        },
        "rc_search_limit": 3,
        "shell_timeout": 10,
        "show_errors_on_save": false,
        "show_marks_in_minimap": true,
        "syntax_map": {
            "r extended": "r"
        },
        "warning_color": "DDB700",
        "wrap_find": true
    }
}

lintr Пакет содержит кучу линтеров (см. эту ссылку). Чего бы я хотел достичь - это отказаться от некоторых из них (например, не использовать, например, assignment_linter). У вас есть идеи, как этого добиться? Это должно быть возможно, верно?


Изменить 1:

Я заметил, что, изменив "linters": "default_linters" в "linters": "assignment_linter" только ошибки подпадают под assignment_linter будет выбран Я пытался расширить его с помощью массива, но он не работает:

...
"lintr": {
    "@disable": false,
    "args": [],
    "cache": "TRUE",
    "excludes": [],
    "linters": [
        "assignment_linter",
        "object_name_linter"
    ]
}
...

Внутри Sublime 3 консоль, сообщение об ошибке сообщения с этой попыткой: Error: unexpected '[' in "lint(cache = TRUE, commandArgs(TRUE), [",


Редактировать 2: возможное решение

Смотря на with_defaults внутри lintr В пакете я нашел два способа выбора только тех линтеров, которые мне интересны. Предполагая, что я хочу только assignment_linter а также no_tab_linter Конфигурация:

  • "linters": "default_linters[c('assignment_linter', 'no_tab_linter')]" или же
  • "linters": "with_defaults(assignment_linter, no_tab_linter, default = NULL)"

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

0 ответов

Что касается вашего вопроса для "Edit 2", вы можете отказаться от одного линтера следующим образом:

{
  "user": {
    "linters": {
      "r": {
        "linters": "with_defaults(some_default_linter = NULL)"
      }
    }
  }
}

... где some_default_linter имя линтера из списка lintr::default_linters.

Другие вопросы по тегам