{
  "_id": "6a2162ddcd65a98ecbd3358b",
  "Package": "lintr",
  "Title": "A 'Linter' for R Code",
  "Version": "3.3.0.9000",
  "Authors@R": "c(\nperson(\"Jim\", \"Hester\", , role = \"aut\"),\nperson(\"Florent\", \"Angly\", role = \"aut\",\ncomment = c(GitHub = \"fangly\")),\nperson(\"Russ\", \"Hyde\", role = \"aut\"),\nperson(\"Michael\", \"Chirico\", email = \"michaelchirico4@gmail.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0003-0787-087X\")),\nperson(\"Kun\", \"Ren\", role = \"aut\"),\nperson(\"Alexander\", \"Rosenstock\", role = \"aut\",\ncomment = c(GitHub = \"AshesITR\")),\nperson(\"Indrajeet\", \"Patil\", email = \"patilindrajeet.science@gmail.com\", role = \"aut\",\ncomment = c(ORCID = \"0000-0003-1995-6531\")),\nperson(\"Hugo\", \"Gruson\", role = \"aut\",\ncomment = c(ORCID = \"0000-0002-4094-1476\")),\nperson(\"Emmanuel\", \"Ferdman\", role = \"aut\")\n)",
  "Description": "Checks adherence to a given style, syntax errors and\npossible semantic issues.  Supports on the fly checking of R\ncode edited with 'RStudio IDE', 'Emacs', 'Vim', 'Sublime Text',\n'Atom' and 'Visual Studio Code'.",
  "License": "MIT + file LICENSE",
  "URL": "https://lintr.r-lib.org, https://github.com/r-lib/lintr",
  "BugReports": "https://github.com/r-lib/lintr/issues",
  "VignetteBuilder": "knitr",
  "Config/Needs/website": "tidyverse/tidytemplate",
  "Config/Needs/development": "pkgload, testthat, patrick",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Collate": "'make_linter_from_xpath.R' 'xp_utils.R' 'utils.R' 'AAA.R'\n'T_and_F_symbol_linter.R' 'absolute_path_linter.R' 'actions.R'\n'addins.R' 'all_equal_linter.R' 'any_duplicated_linter.R'\n'any_is_na_linter.R' 'assignment_linter.R' 'backport_linter.R'\n'boolean_arithmetic_linter.R' 'brace_linter.R' 'cache.R'\n'class_equals_linter.R' 'coalesce_linter.R' 'commas_linter.R'\n'commented_code_linter.R' 'comparison_negation_linter.R'\n'condition_call_linter.R' 'condition_message_linter.R'\n'conjunct_test_linter.R' 'consecutive_assertion_linter.R'\n'consecutive_mutate_linter.R' 'cyclocomp_linter.R'\n'declared_functions.R' 'deprecated.R' 'download_file_linter.R'\n'duplicate_argument_linter.R' 'empty_assignment_linter.R'\n'equals_na_linter.R' 'exclude.R' 'expect_comparison_linter.R'\n'expect_identical_linter.R' 'expect_length_linter.R'\n'expect_lint.R' 'expect_named_linter.R' 'expect_not_linter.R'\n'expect_null_linter.R' 'expect_s3_class_linter.R'\n'expect_s4_class_linter.R' 'expect_true_false_linter.R'\n'expect_type_linter.R' 'extract.R' 'fixed_regex_linter.R'\n'for_loop_index_linter.R' 'function_argument_linter.R'\n'function_left_parentheses_linter.R' 'function_return_linter.R'\n'get_source_expressions.R' 'ids_with_token.R'\n'if_not_else_linter.R' 'if_switch_linter.R'\n'ifelse_censor_linter.R' 'implicit_assignment_linter.R'\n'implicit_integer_linter.R' 'indentation_linter.R'\n'infix_spaces_linter.R' 'inner_combine_linter.R'\n'is_lint_level.R' 'is_numeric_linter.R'\n'keyword_quote_linter.R' 'length_levels_linter.R'\n'length_test_linter.R' 'lengths_linter.R'\n'library_call_linter.R' 'line_length_linter.R' 'lint.R'\n'linter_tag_docs.R' 'linter_tags.R' 'lintr-package.R'\n'list2df_linter.R' 'list_comparison_linter.R'\n'literal_coercion_linter.R' 'make_linter_from_regex.R'\n'matrix_apply_linter.R' 'methods.R' 'missing_argument_linter.R'\n'missing_package_linter.R' 'namespace.R' 'namespace_linter.R'\n'nested_ifelse_linter.R' 'nested_pipe_linter.R'\n'nonportable_path_linter.R' 'shared_constants.R'\n'nrow_subset_linter.R' 'numeric_leading_zero_linter.R'\n'nzchar_linter.R' 'object_length_linter.R'\n'object_name_linter.R' 'object_overwrite_linter.R'\n'object_usage_linter.R' 'one_call_pipe_linter.R'\n'outer_negation_linter.R' 'package_hooks_linter.R'\n'paren_body_linter.R' 'paste_linter.R' 'path_utils.R'\n'pipe_call_linter.R' 'pipe_consistency_linter.R'\n'pipe_continuation_linter.R' 'pipe_return_linter.R'\n'print_linter.R' 'quotes_linter.R' 'redundant_equals_linter.R'\n'redundant_ifelse_linter.R' 'regex_subset_linter.R'\n'rep_len_linter.R' 'repeat_linter.R' 'return_linter.R'\n'routine_registration_linter.R' 'sample_int_linter.R'\n'scalar_in_linter.R' 'semicolon_linter.R' 'seq_linter.R'\n'settings.R' 'settings_utils.R' 'sort_linter.R'\n'source_utils.R' 'spaces_inside_linter.R'\n'spaces_left_parentheses_linter.R' 'sprintf_linter.R'\n'stopifnot_all_linter.R' 'string_boundary_linter.R'\n'strings_as_factors_linter.R' 'system_file_linter.R'\n'terminal_close_linter.R' 'todo_comment_linter.R'\n'trailing_blank_lines_linter.R' 'trailing_whitespace_linter.R'\n'tree_utils.R' 'undesirable_function_linter.R'\n'undesirable_operator_linter.R'\n'unnecessary_concatenation_linter.R'\n'unnecessary_lambda_linter.R' 'unnecessary_nesting_linter.R'\n'unnecessary_placeholder_linter.R' 'unreachable_code_linter.R'\n'unused_import_linter.R' 'use_lintr.R' 'vector_logic_linter.R'\n'which_grepl_linter.R' 'whitespace_linter.R' 'with.R'\n'with_id.R' 'xml_nodes_to_lints.R' 'xml_utils.R'\n'yoda_test_linter.R' 'zzz.R'",
  "Language": "en-US",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "libxml2-dev",
  "Repository": "https://r-lib.r-universe.dev",
  "Date/Publication": "2026-06-04 06:34:09 UTC",
  "RemoteUrl": "https://github.com/r-lib/lintr",
  "RemoteRef": "HEAD",
  "RemoteSha": "e31244f3c4a487a02dddf6953f5532770d57edc8",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-04 11:06:15 UTC",
    "User": "root"
  },
  "Author": "Jim Hester [aut],\nFlorent Angly [aut] (GitHub: fangly),\nRuss Hyde [aut],\nMichael Chirico [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-0787-087X>),\nKun Ren [aut],\nAlexander Rosenstock [aut] (GitHub: AshesITR),\nIndrajeet Patil [aut] (ORCID: <https://orcid.org/0000-0003-1995-6531>),\nHugo Gruson [aut] (ORCID: <https://orcid.org/0000-0002-4094-1476>),\nEmmanuel Ferdman [aut]",
  "Maintainer": "Michael Chirico <michaelchirico4@gmail.com>",
  "MD5sum": "d46c7ec0d065c45af5b1d92d5b4a4b6b",
  "_user": "r-lib",
  "_type": "src",
  "_file": "lintr_3.3.0.9000.tar.gz",
  "_fileid": "8d03a6f7306bcba47aab0b1f24079b9e7a49ade8694a7e00b9dc58c91e0ebaba",
  "_filesize": 1749057,
  "_sha256": "8d03a6f7306bcba47aab0b1f24079b9e7a49ade8694a7e00b9dc58c91e0ebaba",
  "_created": "2026-06-04T11:06:15.000Z",
  "_published": "2026-06-04T11:34:53.324Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79505469384,
      "time": 202,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7409891135"
    },
    {
      "job": 79505469354,
      "time": 202,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7409890303"
    },
    {
      "job": 79505469417,
      "time": 195,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7410337685"
    },
    {
      "job": 79505469399,
      "time": 121,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7410355032"
    },
    {
      "job": 79504929615,
      "time": 203,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7409826138"
    },
    {
      "job": 79505469396,
      "time": 127,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7409864681"
    },
    {
      "job": 79505469385,
      "time": 206,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7409892024"
    },
    {
      "job": 79505469411,
      "time": 177,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7409881993"
    },
    {
      "job": 79505469486,
      "time": 203,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7409891035"
    }
  ],
  "_buildurl": "https://github.com/r-universe/r-lib/actions/runs/26947740676",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/r-lib/lintr",
  "_commit": {
    "id": "e31244f3c4a487a02dddf6953f5532770d57edc8",
    "author": "Michael Chirico <chiricom@google.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Don't trip over capture groups in lint(exclude=) regex (#3025)\n\n* initial pass via Gemini\n\n* tweak name\n\n* more tests\n\n* delint\n\n* nofuzz\n\n* update lint message\n\n* nolint start/next coverage tests\n\n* also nofuzz for comments",
    "time": 1780554849
  },
  "_maintainer": {
    "name": "Michael Chirico",
    "email": "michaelchirico4@gmail.com",
    "login": "michaelchirico",
    "mastodon": "@michaelchirico@fosstodon.org",
    "bluesky": "@michaelchirico.bsky.social",
    "twitter": "@michael_chirico",
    "description": "Economics PhD, Google Data Scientist, ex-@grab",
    "uuid": 7606389,
    "orcid": "0000-0003-0787-087X"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "cli",
      "version": ">= 3.4.0",
      "role": "Imports"
    },
    {
      "package": "codetools",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Imports"
    },
    {
      "package": "rex",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "xfun",
      "role": "Imports"
    },
    {
      "package": "xml2",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "xmlparsedata",
      "version": ">= 1.0.5",
      "role": "Imports"
    },
    {
      "package": "bookdown",
      "role": "Suggests"
    },
    {
      "package": "cyclocomp",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "patrick",
      "version": ">= 0.2.0",
      "role": "Suggests"
    },
    {
      "package": "rlang",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "rstudioapi",
      "version": ">= 0.2",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.3.0",
      "role": "Suggests"
    },
    {
      "package": "tibble",
      "role": "Suggests"
    },
    {
      "package": "tufte",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "version": ">= 2.5.0",
      "role": "Suggests"
    },
    {
      "package": "data.table",
      "role": "Enhances"
    }
  ],
  "_owner": "r-lib",
  "_selfowned": true,
  "_usedby": 36,
  "_updates": [
    {
      "week": "2025-23",
      "n": 1
    },
    {
      "week": "2025-25",
      "n": 2
    },
    {
      "week": "2025-26",
      "n": 5
    },
    {
      "week": "2025-28",
      "n": 2
    },
    {
      "week": "2025-29",
      "n": 5
    },
    {
      "week": "2025-30",
      "n": 9
    },
    {
      "week": "2025-31",
      "n": 5
    },
    {
      "week": "2025-32",
      "n": 2
    },
    {
      "week": "2025-34",
      "n": 1
    },
    {
      "week": "2025-35",
      "n": 1
    },
    {
      "week": "2025-38",
      "n": 2
    },
    {
      "week": "2025-41",
      "n": 2
    },
    {
      "week": "2025-42",
      "n": 6
    },
    {
      "week": "2025-43",
      "n": 3
    },
    {
      "week": "2025-44",
      "n": 3
    },
    {
      "week": "2025-45",
      "n": 1
    },
    {
      "week": "2025-46",
      "n": 3
    },
    {
      "week": "2025-47",
      "n": 2
    },
    {
      "week": "2025-48",
      "n": 11
    },
    {
      "week": "2025-49",
      "n": 3
    },
    {
      "week": "2025-50",
      "n": 1
    },
    {
      "week": "2025-51",
      "n": 3
    },
    {
      "week": "2026-01",
      "n": 1
    },
    {
      "week": "2026-02",
      "n": 2
    },
    {
      "week": "2026-03",
      "n": 7
    },
    {
      "week": "2026-04",
      "n": 4
    },
    {
      "week": "2026-09",
      "n": 2
    },
    {
      "week": "2026-10",
      "n": 2
    },
    {
      "week": "2026-11",
      "n": 2
    },
    {
      "week": "2026-13",
      "n": 1
    },
    {
      "week": "2026-14",
      "n": 1
    },
    {
      "week": "2026-21",
      "n": 2
    },
    {
      "week": "2026-22",
      "n": 2
    },
    {
      "week": "2026-23",
      "n": 3
    }
  ],
  "_tags": [
    {
      "name": "v3.3.0-1",
      "date": "2025-11-27"
    }
  ],
  "_topics": [
    "linter"
  ],
  "_stars": 1279,
  "_contributors": [
    {
      "user": "michaelchirico",
      "count": 742,
      "uuid": 7606389
    },
    {
      "user": "jimhester",
      "count": 432,
      "uuid": 205275
    },
    {
      "user": "ashesitr",
      "count": 325,
      "uuid": 2363178
    },
    {
      "user": "indrajeetpatil",
      "count": 229,
      "uuid": 11330453
    },
    {
      "user": "fangly",
      "count": 58,
      "uuid": 231905
    },
    {
      "user": "renkun-ken",
      "count": 52,
      "uuid": 4662568
    },
    {
      "user": "russhyde",
      "count": 33,
      "uuid": 7734886
    },
    {
      "user": "bisaloo",
      "count": 22,
      "uuid": 10783929
    },
    {
      "user": "dragosmg",
      "count": 11,
      "uuid": 13176361
    },
    {
      "user": "gaborcsardi",
      "count": 9,
      "uuid": 660288
    },
    {
      "user": "saurfang",
      "count": 8,
      "uuid": 4317392
    },
    {
      "user": "michaelquinn32",
      "count": 8,
      "uuid": 3473921
    },
    {
      "user": "meo265",
      "count": 7,
      "uuid": 99362508
    },
    {
      "user": "mcol",
      "count": 7,
      "uuid": 6078177
    },
    {
      "user": "jrnold",
      "count": 6,
      "uuid": 123968
    },
    {
      "user": "salim-b",
      "count": 6,
      "uuid": 20040931
    },
    {
      "user": "schloerke",
      "count": 6,
      "uuid": 93231
    },
    {
      "user": "etiennebacher",
      "count": 5,
      "uuid": 52219252
    },
    {
      "user": "krlmlr",
      "count": 5,
      "uuid": 1741643
    },
    {
      "user": "emmanuel-ferdman",
      "count": 5,
      "uuid": 35470921
    },
    {
      "user": "jennybc",
      "count": 4,
      "uuid": 599454
    },
    {
      "user": "olivroy",
      "count": 4,
      "uuid": 52606734
    },
    {
      "user": "huisman",
      "count": 4,
      "uuid": 23581164
    },
    {
      "user": "jonkeane",
      "count": 4,
      "uuid": 700357
    },
    {
      "user": "jhossepaul",
      "count": 4,
      "uuid": 12739015
    },
    {
      "user": "eitsupi",
      "count": 3,
      "uuid": 50911393
    },
    {
      "user": "laurentgatto",
      "count": 3,
      "uuid": 32748897
    },
    {
      "user": "kpagacz",
      "count": 3,
      "uuid": 24480246
    },
    {
      "user": "fabian-s",
      "count": 3,
      "uuid": 998541
    },
    {
      "user": "f-noelle",
      "count": 3,
      "uuid": 169450768
    },
    {
      "user": "dpprdan",
      "count": 3,
      "uuid": 1423562
    },
    {
      "user": "f-ritter",
      "count": 3,
      "uuid": 73236215
    },
    {
      "user": "yu-iskw",
      "count": 2,
      "uuid": 1523515
    },
    {
      "user": "infotroph",
      "count": 2,
      "uuid": 1256435
    },
    {
      "user": "bfgray3",
      "count": 2,
      "uuid": 20310144
    },
    {
      "user": "dmurdoch",
      "count": 2,
      "uuid": 1935680
    },
    {
      "user": "mwaldstein",
      "count": 2,
      "uuid": 80634
    },
    {
      "user": "maelle",
      "count": 2,
      "uuid": 8360597
    },
    {
      "user": "klmr",
      "count": 2,
      "uuid": 38931
    },
    {
      "user": "jabranham",
      "count": 2,
      "uuid": 11914377
    },
    {
      "user": "ashbaldry",
      "count": 2,
      "uuid": 8420419
    },
    {
      "user": "dankessler",
      "count": 2,
      "uuid": 903328
    },
    {
      "user": "dchiu911",
      "count": 2,
      "uuid": 8665632
    },
    {
      "user": "karawoo",
      "count": 2,
      "uuid": 4452678
    },
    {
      "user": "enchufa2",
      "count": 2,
      "uuid": 4542928
    },
    {
      "user": "hadley",
      "count": 2,
      "uuid": 4196
    },
    {
      "user": "gdequeiroz",
      "count": 2,
      "uuid": 1934546
    },
    {
      "user": "batpigandme",
      "count": 1,
      "uuid": 831732
    },
    {
      "user": "mschilli87",
      "count": 1,
      "uuid": 12913701
    },
    {
      "user": "lschneiderbauer",
      "count": 1,
      "uuid": 422100
    },
    {
      "user": "prosoitos",
      "count": 1,
      "uuid": 4634851
    },
    {
      "user": "alessandro-gentilini",
      "count": 1,
      "uuid": 2438459
    },
    {
      "user": "markromanmiller",
      "count": 1,
      "uuid": 1994318
    },
    {
      "user": "mattyb",
      "count": 1,
      "uuid": 52160
    },
    {
      "user": "thisisnic",
      "count": 1,
      "uuid": 13715823
    },
    {
      "user": "nicholas-masel",
      "count": 1,
      "uuid": 61123199
    },
    {
      "user": "pdil",
      "count": 1,
      "uuid": 13912591
    },
    {
      "user": "paulkaefer",
      "count": 1,
      "uuid": 2408155
    },
    {
      "user": "paulstaab",
      "count": 1,
      "uuid": 2339377
    },
    {
      "user": "randy3k",
      "count": 1,
      "uuid": 1690993
    },
    {
      "user": "shaopeng-gh",
      "count": 1,
      "uuid": 81775155
    },
    {
      "user": "stefanbras",
      "count": 1,
      "uuid": 28559054
    },
    {
      "user": "marberts",
      "count": 1,
      "uuid": 62676717
    },
    {
      "user": "stufield",
      "count": 1,
      "uuid": 25203086
    },
    {
      "user": "gitter-badger",
      "count": 1,
      "uuid": 8518239
    },
    {
      "user": "timtaylor",
      "count": 1,
      "uuid": 43499035
    },
    {
      "user": "tonyk7440",
      "count": 1,
      "uuid": 4944073
    },
    {
      "user": "wesleyburr",
      "count": 1,
      "uuid": 882471
    },
    {
      "user": "wlandau",
      "count": 1,
      "uuid": 1580860
    },
    {
      "user": "arekbee",
      "count": 1,
      "uuid": 961862
    },
    {
      "user": "bahadzie",
      "count": 1,
      "uuid": 41001537
    },
    {
      "user": "clerousset",
      "count": 1,
      "uuid": 17267572
    },
    {
      "user": "jeffwong-nflx",
      "count": 1,
      "uuid": 15387157
    },
    {
      "user": "jmaspons",
      "count": 1,
      "uuid": 102644
    },
    {
      "user": "ttriche",
      "count": 1,
      "uuid": 4386
    },
    {
      "user": "ax42",
      "count": 1,
      "uuid": 1254869
    },
    {
      "user": "andrewychoi",
      "count": 1,
      "uuid": 903803
    },
    {
      "user": "andyquinterom",
      "count": 1,
      "uuid": 51521150
    },
    {
      "user": "1beb",
      "count": 1,
      "uuid": 421859
    },
    {
      "user": "cdiener",
      "count": 1,
      "uuid": 7153935
    },
    {
      "user": "rundel",
      "count": 1,
      "uuid": 273926
    },
    {
      "user": "danielinteractive",
      "count": 1,
      "uuid": 1071227
    },
    {
      "user": "dave-lovell",
      "count": 1,
      "uuid": 18400442
    },
    {
      "user": "ellisvalentiner",
      "count": 1,
      "uuid": 9932219
    },
    {
      "user": "fdlk",
      "count": 1,
      "uuid": 1523838
    },
    {
      "user": "fkohrt",
      "count": 1,
      "uuid": 12914806
    },
    {
      "user": "fvd",
      "count": 1,
      "uuid": 2441145
    },
    {
      "user": "frederic-mahe",
      "count": 1,
      "uuid": 2270759
    },
    {
      "user": "guillawme",
      "count": 1,
      "uuid": 9656546
    },
    {
      "user": "hfrick",
      "count": 1,
      "uuid": 12950918
    },
    {
      "user": "ha0ye",
      "count": 1,
      "uuid": 5835366
    },
    {
      "user": "hedsnz",
      "count": 1,
      "uuid": 30429955
    },
    {
      "user": "henninglorenzen-ext-bayer",
      "count": 1,
      "uuid": 89191115
    },
    {
      "user": "yutannihilation",
      "count": 1,
      "uuid": 1978793
    },
    {
      "user": "jjallaire",
      "count": 1,
      "uuid": 104391
    },
    {
      "user": "jcken95",
      "count": 1,
      "uuid": 57638616
    },
    {
      "user": "bairdj",
      "count": 1,
      "uuid": 6016948
    },
    {
      "user": "jamierowen",
      "count": 1,
      "uuid": 22748393
    },
    {
      "user": "jmwerner",
      "count": 1,
      "uuid": 5588771
    }
  ],
  "_userbio": {
    "uuid": 22618716,
    "type": "organization",
    "name": "R infrastructure"
  },
  "_downloads": {
    "count": 68483,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/lintr"
  },
  "_devurl": "https://github.com/r-lib/lintr",
  "_pkgdown": "https://lintr.r-lib.org",
  "_searchresults": 1330,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/lintr.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/r-lib/lintr",
  "_realowner": "r-lib",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2014-12-01"
    },
    {
      "version": "0.3.1",
      "date": "2015-09-03"
    },
    {
      "version": "0.3.2",
      "date": "2015-09-08"
    },
    {
      "version": "0.3.3",
      "date": "2015-09-15"
    },
    {
      "version": "1.0.0",
      "date": "2016-04-15"
    },
    {
      "version": "1.0.1",
      "date": "2017-08-10"
    },
    {
      "version": "1.0.2",
      "date": "2017-11-08"
    },
    {
      "version": "1.0.3",
      "date": "2018-11-08"
    },
    {
      "version": "2.0.0",
      "date": "2019-10-01"
    },
    {
      "version": "2.0.1",
      "date": "2020-02-19"
    },
    {
      "version": "3.0.0",
      "date": "2022-06-14"
    },
    {
      "version": "3.0.1",
      "date": "2022-09-13"
    },
    {
      "version": "3.0.2",
      "date": "2022-10-19"
    },
    {
      "version": "3.1.0",
      "date": "2023-07-19"
    },
    {
      "version": "3.1.1",
      "date": "2023-11-07"
    },
    {
      "version": "3.1.2",
      "date": "2024-03-25"
    },
    {
      "version": "3.2.0",
      "date": "2025-02-12"
    },
    {
      "version": "3.3.0-1",
      "date": "2025-11-27"
    }
  ],
  "_exports": [
    "absolute_path_linter",
    "all_equal_linter",
    "all_linters",
    "all_undesirable_functions",
    "all_undesirable_operators",
    "any_duplicated_linter",
    "any_is_na_linter",
    "assignment_linter",
    "available_linters",
    "available_tags",
    "backport_linter",
    "boolean_arithmetic_linter",
    "brace_linter",
    "checkstyle_output",
    "class_equals_linter",
    "clear_cache",
    "coalesce_linter",
    "commas_linter",
    "commented_code_linter",
    "comparison_negation_linter",
    "condition_call_linter",
    "condition_message_linter",
    "conjunct_test_linter",
    "consecutive_assertion_linter",
    "consecutive_mutate_linter",
    "cyclocomp_linter",
    "default_linters",
    "default_settings",
    "default_undesirable_functions",
    "default_undesirable_operators",
    "download_file_linter",
    "duplicate_argument_linter",
    "empty_assignment_linter",
    "equals_na_linter",
    "expect_comparison_linter",
    "expect_identical_linter",
    "expect_length_linter",
    "expect_lint",
    "expect_lint_free",
    "expect_named_linter",
    "expect_no_lint",
    "expect_not_linter",
    "expect_null_linter",
    "expect_s3_class_linter",
    "expect_s4_class_linter",
    "expect_true_false_linter",
    "expect_type_linter",
    "fixed_regex_linter",
    "for_loop_index_linter",
    "function_argument_linter",
    "function_left_parentheses_linter",
    "function_return_linter",
    "get_r_string",
    "get_source_expressions",
    "gitlab_output",
    "ids_with_token",
    "if_not_else_linter",
    "if_switch_linter",
    "ifelse_censor_linter",
    "implicit_assignment_linter",
    "implicit_integer_linter",
    "indentation_linter",
    "infix_spaces_linter",
    "inner_combine_linter",
    "is_lint_level",
    "is_numeric_linter",
    "keyword_quote_linter",
    "length_levels_linter",
    "length_test_linter",
    "lengths_linter",
    "library_call_linter",
    "line_length_linter",
    "lint",
    "Lint",
    "lint_dir",
    "lint_package",
    "Linter",
    "linters_with_defaults",
    "linters_with_tags",
    "list_comparison_linter",
    "list2df_linter",
    "literal_coercion_linter",
    "make_linter_from_function_xpath",
    "make_linter_from_xpath",
    "matrix_apply_linter",
    "missing_argument_linter",
    "missing_package_linter",
    "modify_defaults",
    "namespace_linter",
    "nested_ifelse_linter",
    "nested_pipe_linter",
    "nonportable_path_linter",
    "nrow_subset_linter",
    "numeric_leading_zero_linter",
    "nzchar_linter",
    "object_length_linter",
    "object_name_linter",
    "object_overwrite_linter",
    "object_usage_linter",
    "one_call_pipe_linter",
    "outer_negation_linter",
    "package_hooks_linter",
    "paren_body_linter",
    "paste_linter",
    "pipe_call_linter",
    "pipe_consistency_linter",
    "pipe_continuation_linter",
    "pipe_return_linter",
    "print_linter",
    "quotes_linter",
    "redundant_equals_linter",
    "redundant_ifelse_linter",
    "regex_subset_linter",
    "rep_len_linter",
    "repeat_linter",
    "return_linter",
    "routine_registration_linter",
    "sample_int_linter",
    "sarif_output",
    "scalar_in_linter",
    "semicolon_linter",
    "seq_linter",
    "sort_linter",
    "spaces_inside_linter",
    "spaces_left_parentheses_linter",
    "sprintf_linter",
    "stopifnot_all_linter",
    "string_boundary_linter",
    "strings_as_factors_linter",
    "system_file_linter",
    "T_and_F_symbol_linter",
    "terminal_close_linter",
    "todo_comment_linter",
    "trailing_blank_lines_linter",
    "trailing_whitespace_linter",
    "undesirable_function_linter",
    "undesirable_operator_linter",
    "unnecessary_concatenation_linter",
    "unnecessary_lambda_linter",
    "unnecessary_nesting_linter",
    "unnecessary_placeholder_linter",
    "unreachable_code_linter",
    "unused_import_linter",
    "use_lintr",
    "vector_logic_linter",
    "which_grepl_linter",
    "whitespace_linter",
    "with_id",
    "xml_nodes_to_lints",
    "xp_call_name",
    "yoda_test_linter"
  ],
  "_help": [
    {
      "page": "absolute_path_linter",
      "title": "Absolute path linter",
      "topics": [
        "absolute_path_linter"
      ]
    },
    {
      "page": "all_equal_linter",
      "title": "Warn about invalid usage of 'all.equal()'",
      "topics": [
        "all_equal_linter"
      ]
    },
    {
      "page": "all_linters",
      "title": "Create a linter configuration based on all available linters",
      "topics": [
        "all_linters"
      ]
    },
    {
      "page": "default_undesirable_functions",
      "title": "Default undesirable functions and operators",
      "topics": [
        "all_undesirable_functions",
        "all_undesirable_operators",
        "default_undesirable_functions",
        "default_undesirable_operators"
      ]
    },
    {
      "page": "any_duplicated_linter",
      "title": "Require usage of 'anyDuplicated(x) > 0' over 'any(duplicated(x))'",
      "topics": [
        "any_duplicated_linter"
      ]
    },
    {
      "page": "any_is_na_linter",
      "title": "Require usage of 'anyNA(x)' over 'any(is.na(x))'",
      "topics": [
        "any_is_na_linter"
      ]
    },
    {
      "page": "assignment_linter",
      "title": "Assignment linter",
      "topics": [
        "assignment_linter"
      ]
    },
    {
      "page": "available_linters",
      "title": "Get Linter metadata from a package",
      "topics": [
        "available_linters",
        "available_tags"
      ]
    },
    {
      "page": "backport_linter",
      "title": "Backport linter",
      "topics": [
        "backport_linter"
      ]
    },
    {
      "page": "best_practices_linters",
      "title": "Best practices linters",
      "topics": [
        "best_practices_linters"
      ]
    },
    {
      "page": "boolean_arithmetic_linter",
      "title": "Require usage of boolean operators over equivalent arithmetic",
      "topics": [
        "boolean_arithmetic_linter"
      ]
    },
    {
      "page": "brace_linter",
      "title": "Brace linter",
      "topics": [
        "brace_linter"
      ]
    },
    {
      "page": "checkstyle_output",
      "title": "Checkstyle Report for lint results",
      "topics": [
        "checkstyle_output"
      ]
    },
    {
      "page": "class_equals_linter",
      "title": "Block comparison of class with '=='",
      "topics": [
        "class_equals_linter"
      ]
    },
    {
      "page": "clear_cache",
      "title": "Clear the lintr cache",
      "topics": [
        "clear_cache"
      ]
    },
    {
      "page": "coalesce_linter",
      "title": "Encourage usage of the null coalescing operator %||%",
      "topics": [
        "coalesce_linter"
      ]
    },
    {
      "page": "commas_linter",
      "title": "Commas linter",
      "topics": [
        "commas_linter"
      ]
    },
    {
      "page": "commented_code_linter",
      "title": "Commented code linter",
      "topics": [
        "commented_code_linter"
      ]
    },
    {
      "page": "common_mistakes_linters",
      "title": "Common mistake linters",
      "topics": [
        "common_mistakes_linters"
      ]
    },
    {
      "page": "comparison_negation_linter",
      "title": "Block usages like !(x == y) where a direct relational operator is appropriate",
      "topics": [
        "comparison_negation_linter"
      ]
    },
    {
      "page": "condition_call_linter",
      "title": "Recommend usage of 'call. = FALSE' in conditions",
      "topics": [
        "condition_call_linter"
      ]
    },
    {
      "page": "condition_message_linter",
      "title": "Block usage of 'paste()' and 'paste0()' with messaging functions using '...'",
      "topics": [
        "condition_message_linter"
      ]
    },
    {
      "page": "configurable_linters",
      "title": "Configurable linters",
      "topics": [
        "configurable_linters"
      ]
    },
    {
      "page": "conjunct_test_linter",
      "title": "Force '&&' conditions to be written separately where appropriate",
      "topics": [
        "conjunct_test_linter"
      ]
    },
    {
      "page": "consecutive_assertion_linter",
      "title": "Force consecutive calls to assertions into just one when possible",
      "topics": [
        "consecutive_assertion_linter"
      ]
    },
    {
      "page": "consecutive_mutate_linter",
      "title": "Require consecutive calls to mutate() to be combined when possible",
      "topics": [
        "consecutive_mutate_linter"
      ]
    },
    {
      "page": "consistency_linters",
      "title": "Consistency linters",
      "topics": [
        "consistency_linters"
      ]
    },
    {
      "page": "correctness_linters",
      "title": "Correctness linters",
      "topics": [
        "correctness_linters"
      ]
    },
    {
      "page": "cyclocomp_linter",
      "title": "Cyclomatic complexity linter",
      "topics": [
        "cyclocomp_linter"
      ]
    },
    {
      "page": "default_linters",
      "title": "Default linters",
      "topics": [
        "default_linters"
      ]
    },
    {
      "page": "default_settings",
      "title": "Default lintr settings",
      "topics": [
        ".lintr",
        "config",
        "default_settings",
        "lintr-config",
        "lintr-settings",
        "settings"
      ]
    },
    {
      "page": "deprecated_linters",
      "title": "Deprecated linters",
      "topics": [
        "deprecated_linters"
      ]
    },
    {
      "page": "download_file_linter",
      "title": "Recommend usage of a portable 'mode' value for downloading files",
      "topics": [
        "download_file_linter"
      ]
    },
    {
      "page": "duplicate_argument_linter",
      "title": "Duplicate argument linter",
      "topics": [
        "duplicate_argument_linter"
      ]
    },
    {
      "page": "efficiency_linters",
      "title": "Efficiency linters",
      "topics": [
        "efficiency_linters"
      ]
    },
    {
      "page": "empty_assignment_linter",
      "title": "Block assignment of '{}'",
      "topics": [
        "empty_assignment_linter"
      ]
    },
    {
      "page": "equals_na_linter",
      "title": "Equality check with NA linter",
      "topics": [
        "equals_na_linter"
      ]
    },
    {
      "page": "executing_linters",
      "title": "Code executing linters",
      "topics": [
        "executing_linters"
      ]
    },
    {
      "page": "expect_comparison_linter",
      "title": "Require usage of 'expect_gt(x, y)' over 'expect_true(x > y)' (and similar)",
      "topics": [
        "expect_comparison_linter"
      ]
    },
    {
      "page": "expect_identical_linter",
      "title": "Require usage of 'expect_identical(x, y)' where appropriate",
      "topics": [
        "expect_identical_linter"
      ]
    },
    {
      "page": "expect_length_linter",
      "title": "Require usage of 'expect_length(x, n)' over 'expect_equal(length(x), n)'",
      "topics": [
        "expect_length_linter"
      ]
    },
    {
      "page": "expect_lint",
      "title": "Lint expectation",
      "topics": [
        "expect_lint",
        "expect_no_lint"
      ]
    },
    {
      "page": "expect_lint_free",
      "title": "Test that the package is lint free",
      "topics": [
        "expect_lint_free"
      ]
    },
    {
      "page": "expect_named_linter",
      "title": "Require usage of 'expect_named(x, n)' over 'expect_equal(names(x), n)'",
      "topics": [
        "expect_named_linter"
      ]
    },
    {
      "page": "expect_not_linter",
      "title": "Require usage of 'expect_false(x)' over 'expect_true(!x)'",
      "topics": [
        "expect_not_linter"
      ]
    },
    {
      "page": "expect_null_linter",
      "title": "Require usage of 'expect_null' for checking 'NULL'",
      "topics": [
        "expect_null_linter"
      ]
    },
    {
      "page": "expect_s3_class_linter",
      "title": "Require usage of 'expect_s3_class()'",
      "topics": [
        "expect_s3_class_linter"
      ]
    },
    {
      "page": "expect_s4_class_linter",
      "title": "Require usage of 'expect_s4_class(x, k)' over 'expect_true(is(x, k))'",
      "topics": [
        "expect_s4_class_linter"
      ]
    },
    {
      "page": "expect_true_false_linter",
      "title": "Require usage of 'expect_true(x)' over 'expect_equal(x, TRUE)'",
      "topics": [
        "expect_true_false_linter"
      ]
    },
    {
      "page": "expect_type_linter",
      "title": "Require usage of 'expect_type(x, type)' over 'expect_equal(typeof(x), type)'",
      "topics": [
        "expect_type_linter"
      ]
    },
    {
      "page": "fixed_regex_linter",
      "title": "Require usage of 'fixed=TRUE' in regular expressions where appropriate",
      "topics": [
        "fixed_regex_linter"
      ]
    },
    {
      "page": "for_loop_index_linter",
      "title": "Block usage of for loops directly overwriting the indexing variable",
      "topics": [
        "for_loop_index_linter"
      ]
    },
    {
      "page": "function_argument_linter",
      "title": "Function argument linter",
      "topics": [
        "function_argument_linter"
      ]
    },
    {
      "page": "function_left_parentheses_linter",
      "title": "Function left parentheses linter",
      "topics": [
        "function_left_parentheses_linter"
      ]
    },
    {
      "page": "function_return_linter",
      "title": "Lint common mistakes/style issues cropping up from return statements",
      "topics": [
        "function_return_linter"
      ]
    },
    {
      "page": "get_r_string",
      "title": "Extract text from 'STR_CONST' nodes",
      "topics": [
        "get_r_string"
      ]
    },
    {
      "page": "get_source_expressions",
      "title": "Parsed sourced file from a filename",
      "topics": [
        "get_source_expressions"
      ]
    },
    {
      "page": "gitlab_output",
      "title": "GitLab Report for lint results",
      "topics": [
        "gitlab_output"
      ]
    },
    {
      "page": "ids_with_token",
      "title": "Get parsed IDs by token",
      "topics": [
        "ids_with_token",
        "with_id"
      ]
    },
    {
      "page": "if_not_else_linter",
      "title": "Block statements like if (!A) x else y",
      "topics": [
        "if_not_else_linter"
      ]
    },
    {
      "page": "if_switch_linter",
      "title": "Require usage of switch() over repeated if/else blocks",
      "topics": [
        "if_switch_linter"
      ]
    },
    {
      "page": "ifelse_censor_linter",
      "title": "Block usage of 'ifelse()' where 'pmin()' or 'pmax()' is more appropriate",
      "topics": [
        "ifelse_censor_linter"
      ]
    },
    {
      "page": "implicit_assignment_linter",
      "title": "Avoid implicit assignment in function calls",
      "topics": [
        "implicit_assignment_linter"
      ]
    },
    {
      "page": "implicit_integer_linter",
      "title": "Implicit integer linter",
      "topics": [
        "implicit_integer_linter"
      ]
    },
    {
      "page": "indentation_linter",
      "title": "Check that indentation is consistent",
      "topics": [
        "indentation_linter"
      ]
    },
    {
      "page": "infix_spaces_linter",
      "title": "Infix spaces linter",
      "topics": [
        "infix_spaces_linter"
      ]
    },
    {
      "page": "inner_combine_linter",
      "title": "Require 'c()' to be applied before relatively expensive vectorized functions",
      "topics": [
        "inner_combine_linter"
      ]
    },
    {
      "page": "is_lint_level",
      "title": "Is this an expression- or a file-level source object?",
      "topics": [
        "is_lint_level"
      ]
    },
    {
      "page": "is_numeric_linter",
      "title": "Redirect 'is.numeric(x) || is.integer(x)' to just use 'is.numeric(x)'",
      "topics": [
        "is_numeric_linter"
      ]
    },
    {
      "page": "keyword_quote_linter",
      "title": "Block unnecessary quoting in calls",
      "topics": [
        "keyword_quote_linter"
      ]
    },
    {
      "page": "length_levels_linter",
      "title": "Require usage of nlevels over length(levels(.))",
      "topics": [
        "length_levels_linter"
      ]
    },
    {
      "page": "length_test_linter",
      "title": "Check for a common mistake where a size check like 'length' is applied in the wrong place",
      "topics": [
        "length_test_linter"
      ]
    },
    {
      "page": "lengths_linter",
      "title": "Require usage of 'lengths()' where possible",
      "topics": [
        "lengths_linter"
      ]
    },
    {
      "page": "library_call_linter",
      "title": "Library call linter",
      "topics": [
        "library_call_linter"
      ]
    },
    {
      "page": "line_length_linter",
      "title": "Line length linter",
      "topics": [
        "line_length_linter"
      ]
    },
    {
      "page": "lint",
      "title": "Lint a file, directory, or package",
      "topics": [
        "lint",
        "lint_dir",
        "lint_package"
      ]
    },
    {
      "page": "lint-s3",
      "title": "Create a 'lint' object",
      "topics": [
        "Lint",
        "lint-s3"
      ]
    },
    {
      "page": "Linter",
      "title": "Create a 'linter' closure",
      "topics": [
        "Linter"
      ]
    },
    {
      "page": "linters",
      "title": "Available linters",
      "topics": [
        "linters"
      ]
    },
    {
      "page": "linters_with_defaults",
      "title": "Create a linter configuration based on defaults",
      "topics": [
        "linters_with_defaults"
      ]
    },
    {
      "page": "linters_with_tags",
      "title": "Create a tag-based linter configuration",
      "topics": [
        "linters_with_tags"
      ]
    },
    {
      "page": "list_comparison_linter",
      "title": "Block usage of comparison operators with known-list() functions like lapply",
      "topics": [
        "list_comparison_linter"
      ]
    },
    {
      "page": "list2df_linter",
      "title": "Recommend direct usage of 'data.frame()' to create a data.frame from a list",
      "topics": [
        "list2df_linter"
      ]
    },
    {
      "page": "literal_coercion_linter",
      "title": "Require usage of correctly-typed literals over literal coercions",
      "topics": [
        "literal_coercion_linter"
      ]
    },
    {
      "page": "make_linter_from_xpath",
      "title": "Create a linter from an XPath",
      "topics": [
        "make_linter_from_function_xpath",
        "make_linter_from_xpath"
      ]
    },
    {
      "page": "matrix_apply_linter",
      "title": "Require usage of 'colSums(x)' or 'rowSums(x)' over 'apply(x, ., sum)'",
      "topics": [
        "matrix_apply_linter"
      ]
    },
    {
      "page": "missing_argument_linter",
      "title": "Missing argument linter",
      "topics": [
        "missing_argument_linter"
      ]
    },
    {
      "page": "missing_package_linter",
      "title": "Missing package linter",
      "topics": [
        "missing_package_linter"
      ]
    },
    {
      "page": "modify_defaults",
      "title": "Modify lintr defaults",
      "topics": [
        "modify_defaults"
      ]
    },
    {
      "page": "namespace_linter",
      "title": "Namespace linter",
      "topics": [
        "namespace_linter"
      ]
    },
    {
      "page": "nested_ifelse_linter",
      "title": "Block usage of nested 'ifelse()' calls",
      "topics": [
        "nested_ifelse_linter"
      ]
    },
    {
      "page": "nested_pipe_linter",
      "title": "Block usage of pipes nested inside other calls",
      "topics": [
        "nested_pipe_linter"
      ]
    },
    {
      "page": "nonportable_path_linter",
      "title": "Non-portable path linter",
      "topics": [
        "nonportable_path_linter"
      ]
    },
    {
      "page": "nrow_subset_linter",
      "title": "Block usage of 'nrow(subset(x, .))'",
      "topics": [
        "nrow_subset_linter"
      ]
    },
    {
      "page": "numeric_leading_zero_linter",
      "title": "Require usage of a leading zero in all fractional numerics",
      "topics": [
        "numeric_leading_zero_linter"
      ]
    },
    {
      "page": "nzchar_linter",
      "title": "Require usage of nzchar where appropriate",
      "topics": [
        "nzchar_linter"
      ]
    },
    {
      "page": "object_length_linter",
      "title": "Object length linter",
      "topics": [
        "object_length_linter"
      ]
    },
    {
      "page": "object_name_linter",
      "title": "Object name linter",
      "topics": [
        "object_name_linter"
      ]
    },
    {
      "page": "object_overwrite_linter",
      "title": "Block assigning any variables whose name clashes with a 'base' R function",
      "topics": [
        "object_overwrite_linter"
      ]
    },
    {
      "page": "object_usage_linter",
      "title": "Object usage linter",
      "topics": [
        "object_usage_linter"
      ]
    },
    {
      "page": "one_call_pipe_linter",
      "title": "Block single-call magrittr pipes",
      "topics": [
        "one_call_pipe_linter"
      ]
    },
    {
      "page": "outer_negation_linter",
      "title": "Require usage of '!any(x)' over 'all(!x)', '!all(x)' over 'any(!x)'",
      "topics": [
        "outer_negation_linter"
      ]
    },
    {
      "page": "package_development_linters",
      "title": "Package development linters",
      "topics": [
        "package_development_linters"
      ]
    },
    {
      "page": "package_hooks_linter",
      "title": "Package hooks linter",
      "topics": [
        "package_hooks_linter"
      ]
    },
    {
      "page": "paren_body_linter",
      "title": "Parenthesis before body linter",
      "topics": [
        "paren_body_linter"
      ]
    },
    {
      "page": "paste_linter",
      "title": "Raise lints for several common poor usages of 'paste()'",
      "topics": [
        "paste_linter"
      ]
    },
    {
      "page": "pipe_call_linter",
      "title": "Pipe call linter",
      "topics": [
        "pipe_call_linter"
      ]
    },
    {
      "page": "pipe_consistency_linter",
      "title": "Pipe consistency linter",
      "topics": [
        "pipe_consistency_linter"
      ]
    },
    {
      "page": "pipe_continuation_linter",
      "title": "Pipe continuation linter",
      "topics": [
        "pipe_continuation_linter"
      ]
    },
    {
      "page": "pipe_return_linter",
      "title": "Block usage of return() in magrittr pipelines",
      "topics": [
        "pipe_return_linter"
      ]
    },
    {
      "page": "pkg_testthat_linters",
      "title": "Testthat linters",
      "topics": [
        "pkg_testthat_linters"
      ]
    },
    {
      "page": "print_linter",
      "title": "Block usage of print() for logging",
      "topics": [
        "print_linter"
      ]
    },
    {
      "page": "quotes_linter",
      "title": "Character string quote linter",
      "topics": [
        "quotes_linter"
      ]
    },
    {
      "page": "read_settings",
      "title": "Read lintr settings",
      "topics": [
        "read_settings"
      ]
    },
    {
      "page": "readability_linters",
      "title": "Readability linters",
      "topics": [
        "readability_linters"
      ]
    },
    {
      "page": "redundant_equals_linter",
      "title": "Block usage of '==', '!=' on logical vectors",
      "topics": [
        "redundant_equals_linter"
      ]
    },
    {
      "page": "redundant_ifelse_linter",
      "title": "Prevent 'ifelse()' from being used to produce 'TRUE'/'FALSE' or '1'/'0'",
      "topics": [
        "redundant_ifelse_linter"
      ]
    },
    {
      "page": "regex_linters",
      "title": "Regular expression linters",
      "topics": [
        "regex_linters"
      ]
    },
    {
      "page": "regex_subset_linter",
      "title": "Require usage of direct methods for subsetting strings via regex",
      "topics": [
        "regex_subset_linter"
      ]
    },
    {
      "page": "rep_len_linter",
      "title": "Require usage of rep_len(x, n) over rep(x, length.out = n)",
      "topics": [
        "rep_len_linter"
      ]
    },
    {
      "page": "repeat_linter",
      "title": "Repeat linter",
      "topics": [
        "repeat_linter"
      ]
    },
    {
      "page": "return_linter",
      "title": "Return linter",
      "topics": [
        "return_linter"
      ]
    },
    {
      "page": "robustness_linters",
      "title": "Robustness linters",
      "topics": [
        "robustness_linters"
      ]
    },
    {
      "page": "routine_registration_linter",
      "title": "Identify unregistered native routines",
      "topics": [
        "routine_registration_linter"
      ]
    },
    {
      "page": "sample_int_linter",
      "title": "Require usage of sample.int(n, m, ...) over sample(1:n, m, ...)",
      "topics": [
        "sample_int_linter"
      ]
    },
    {
      "page": "sarif_output",
      "title": "SARIF Report for lint results",
      "topics": [
        "sarif_output"
      ]
    },
    {
      "page": "scalar_in_linter",
      "title": "Block usage like x %in% \"a\"",
      "topics": [
        "scalar_in_linter"
      ]
    },
    {
      "page": "semicolon_linter",
      "title": "Semicolon linter",
      "topics": [
        "semicolon_linter"
      ]
    },
    {
      "page": "seq_linter",
      "title": "Sequence linter",
      "topics": [
        "seq_linter"
      ]
    },
    {
      "page": "sort_linter",
      "title": "Check for common mistakes around sorting vectors",
      "topics": [
        "sort_linter"
      ]
    },
    {
      "page": "spaces_inside_linter",
      "title": "Spaces inside linter",
      "topics": [
        "spaces_inside_linter"
      ]
    },
    {
      "page": "spaces_left_parentheses_linter",
      "title": "Spaces before parentheses linter",
      "topics": [
        "spaces_left_parentheses_linter"
      ]
    },
    {
      "page": "sprintf_linter",
      "title": "Require correct 'sprintf()' calls",
      "topics": [
        "sprintf_linter"
      ]
    },
    {
      "page": "stopifnot_all_linter",
      "title": "Block usage of all() within stopifnot()",
      "topics": [
        "stopifnot_all_linter"
      ]
    },
    {
      "page": "string_boundary_linter",
      "title": "Require usage of 'startsWith()' and 'endsWith()' over 'grepl()'/'substr()' versions",
      "topics": [
        "string_boundary_linter"
      ]
    },
    {
      "page": "strings_as_factors_linter",
      "title": "Identify cases where 'stringsAsFactors' should be supplied explicitly",
      "topics": [
        "strings_as_factors_linter"
      ]
    },
    {
      "page": "style_linters",
      "title": "Style linters",
      "topics": [
        "style_linters"
      ]
    },
    {
      "page": "system_file_linter",
      "title": "Block usage of 'file.path()' with 'system.file()'",
      "topics": [
        "system_file_linter"
      ]
    },
    {
      "page": "T_and_F_symbol_linter",
      "title": "'T' and 'F' symbol linter",
      "topics": [
        "T_and_F_symbol_linter"
      ]
    },
    {
      "page": "terminal_close_linter",
      "title": "Prohibit close() from terminating a function definition",
      "topics": [
        "terminal_close_linter"
      ]
    },
    {
      "page": "tidy_design_linters",
      "title": "Tidyverse design linters",
      "topics": [
        "tidy_design_linters"
      ]
    },
    {
      "page": "todo_comment_linter",
      "title": "TODO comment linter",
      "topics": [
        "todo_comment_linter"
      ]
    },
    {
      "page": "trailing_blank_lines_linter",
      "title": "Trailing blank lines linter",
      "topics": [
        "trailing_blank_lines_linter"
      ]
    },
    {
      "page": "trailing_whitespace_linter",
      "title": "Trailing whitespace linter",
      "topics": [
        "trailing_whitespace_linter"
      ]
    },
    {
      "page": "undesirable_function_linter",
      "title": "Undesirable function linter",
      "topics": [
        "undesirable_function_linter"
      ]
    },
    {
      "page": "undesirable_operator_linter",
      "title": "Undesirable operator linter",
      "topics": [
        "undesirable_operator_linter"
      ]
    },
    {
      "page": "unnecessary_concatenation_linter",
      "title": "Unneeded concatenation linter",
      "topics": [
        "unnecessary_concatenation_linter"
      ]
    },
    {
      "page": "unnecessary_lambda_linter",
      "title": "Block usage of anonymous functions in iteration functions when unnecessary",
      "topics": [
        "unnecessary_lambda_linter"
      ]
    },
    {
      "page": "unnecessary_nesting_linter",
      "title": "Block instances of unnecessary nesting",
      "topics": [
        "unnecessary_nesting_linter"
      ]
    },
    {
      "page": "unnecessary_placeholder_linter",
      "title": "Block usage of pipeline placeholders if unnecessary",
      "topics": [
        "unnecessary_placeholder_linter"
      ]
    },
    {
      "page": "unreachable_code_linter",
      "title": "Block unreachable code and comments following return statements",
      "topics": [
        "unreachable_code_linter"
      ]
    },
    {
      "page": "unused_import_linter",
      "title": "Check that imported packages are actually used",
      "topics": [
        "unused_import_linter"
      ]
    },
    {
      "page": "use_lintr",
      "title": "Use lintr in your project",
      "topics": [
        "use_lintr"
      ]
    },
    {
      "page": "vector_logic_linter",
      "title": "Enforce usage of scalar logical operators in conditional statements",
      "topics": [
        "vector_logic_linter"
      ]
    },
    {
      "page": "which_grepl_linter",
      "title": "Require usage of grep over which(grepl(.))",
      "topics": [
        "which_grepl_linter"
      ]
    },
    {
      "page": "whitespace_linter",
      "title": "Whitespace linter",
      "topics": [
        "whitespace_linter"
      ]
    },
    {
      "page": "xml_nodes_to_lints",
      "title": "Convert an XML node or nodeset into a Lint",
      "topics": [
        "xml_nodes_to_lints"
      ]
    },
    {
      "page": "xp_call_name",
      "title": "Get the name of the function matched by an XPath",
      "topics": [
        "xp_call_name"
      ]
    },
    {
      "page": "yoda_test_linter",
      "title": "Block obvious \"yoda tests\"",
      "topics": [
        "yoda_test_linter"
      ]
    }
  ],
  "_pkglogo": "https://github.com/r-lib/lintr/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/r-lib/lintr/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "codetools",
    "digest",
    "evaluate",
    "glue",
    "highr",
    "knitr",
    "rex",
    "rlang",
    "withr",
    "xfun",
    "xml2",
    "xmlparsedata",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "continuous-integration.Rmd",
      "filename": "continuous-integration.html",
      "title": "Continuous integration",
      "engine": "knitr::rmarkdown",
      "headings": [
        "For packages",
        "GitHub Actions",
        "For projects",
        "Super-Linter"
      ],
      "created": "2022-05-24 19:41:20",
      "modified": "2024-02-29 07:18:17",
      "commits": 10
    },
    {
      "source": "creating_linters.Rmd",
      "filename": "creating_linters.html",
      "title": "Creating new linters",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Writing the linter",
        "Writing linter tests",
        "Other utilities for writing custom linters",
        "Contributing to",
        "More details about writing tests for new {lintr} linters",
        "Adding your linter to the default_linters",
        "Submit pull request"
      ],
      "created": "2014-11-04 18:52:46",
      "modified": "2025-11-29 17:15:07",
      "commits": 18
    },
    {
      "source": "editors.Rmd",
      "filename": "editors.html",
      "title": "Editor setup",
      "engine": "knitr::rmarkdown",
      "headings": [
        "RStudio",
        "Emacs",
        "Installation",
        "Configuration",
        "Vim - syntastic",
        "Vim - ALE",
        "Sublime Text 3",
        "Atom",
        "Visual Studio Code"
      ],
      "created": "2022-05-24 19:41:20",
      "modified": "2022-10-23 07:12:24",
      "commits": 7
    },
    {
      "source": "lintr.Rmd",
      "filename": "lintr.html",
      "title": "Using lintr",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Running lintr on a project",
        "Configuring linters",
        "The .lintr file",
        ".lintr File Example",
        "Other configuration options",
        "Using options()",
        "Using arguments to lint()",
        "Defaults",
        "Customizing active linters",
        "Using all available linters",
        "Advanced: programmatic retrieval of linters",
        "Exclusions",
        "Excluding lines of code",
        "Excluding only some linters",
        "Excluding multiple lines of codes",
        "Excluding lines via the config file",
        "Excluding files completely",
        "Excluding directories completely"
      ],
      "created": "2022-05-24 19:41:20",
      "modified": "2025-08-07 18:16:22",
      "commits": 18
    }
  ],
  "_score": 16.92346370633504,
  "_indexed": true,
  "_nocasepkg": "lintr",
  "_universes": [
    "r-lib",
    "michaelchirico"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "3.3.0.9000",
      "date": "2026-06-04T11:08:42.000Z",
      "distro": "noble",
      "commit": "e31244f3c4a487a02dddf6953f5532770d57edc8",
      "fileid": "99787c219f7791faacba8b4f3d1694a26d7b65e009aad25128cecbe3ccd136af",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/26947740676"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "3.3.0.9000",
      "date": "2026-06-04T11:08:41.000Z",
      "distro": "noble",
      "commit": "e31244f3c4a487a02dddf6953f5532770d57edc8",
      "fileid": "c26085e6c0e22b9bbd2bc8f8758da0c11e04a91445e16bdd57304bbb283ebfda",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/26947740676"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "3.3.0.9000",
      "date": "2026-06-04T11:32:10.000Z",
      "commit": "e31244f3c4a487a02dddf6953f5532770d57edc8",
      "fileid": "9d3c9de9d0f81e5b9f0882a9ffc90ac3cb35bbd4af6bd631f3aef5c0a7725b30",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/26947740676"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "3.3.0.9000",
      "date": "2026-06-04T11:33:37.000Z",
      "commit": "e31244f3c4a487a02dddf6953f5532770d57edc8",
      "fileid": "a66382948235110f8ee795cf8e2fb5a2292f5803444336076e2c650dacc36145",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/26947740676"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "3.3.0.9000",
      "date": "2026-06-04T11:08:51.000Z",
      "commit": "e31244f3c4a487a02dddf6953f5532770d57edc8",
      "fileid": "b3324cecfecd01da86f8ffedbe3cec9770cd78cbc6ff279d32bb9e221688fbda",
      "status": "success",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/26947740676"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "3.3.0.9000",
      "date": "2026-06-04T11:07:49.000Z",
      "commit": "e31244f3c4a487a02dddf6953f5532770d57edc8",
      "fileid": "2c72445a66e5513d635e7cd058d287e102aaa2fbb858051c8e5529aee06c16bc",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/26947740676"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "3.3.0.9000",
      "date": "2026-06-04T11:07:45.000Z",
      "commit": "e31244f3c4a487a02dddf6953f5532770d57edc8",
      "fileid": "535ff423f09e136235664f252d0eeec15ffd82187ec09069cf6da7fe04b6c584",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/26947740676"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "3.3.0.9000",
      "date": "2026-06-04T11:07:42.000Z",
      "commit": "e31244f3c4a487a02dddf6953f5532770d57edc8",
      "fileid": "cb89794f014dd0c2590e6028bcd424d7a15ca9a76f84653e4326ca3962737b7e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/26947740676"
    }
  ]
}