Skip to content

Releases: Appsilon/box.linters

v0.10.5

18 Oct 14:17
27df08a
Compare
Choose a tag to compare
  • Fix for treesitter.r update to version 1.1.0. Change in how treesitter returns the start row of the program node.

v0.10.4

06 Sep 11:50
79e3fa9
Compare
Choose a tag to compare

box.linters 0.10.4

  • Fix critical bug of style_box_use_*() converting all lines to NA if there is no box::use() call found.
  • R version (>= 4.3.0) compatibility fix for MacOS.
  • Implement exclude_files in style_box_use_dir() to exclude files from styling.
  • Implemented linter tags file compatible with lintr::available_linters() and
    lintr::available_tags() functions.
  • box_unused_att_pkg_fun_linter() allows functions passed into other functions by name without ().
  • package::function() check is exclusive to namespace_function_calls().
  • Move treesitter dependencies to Suggests because of the R >= 4.3.0 requirement. Functions that depend on treesitter now check if it is installed and handle the absence gracefully.

v0.10.0

15 Jul 11:13
820e263
Compare
Choose a tag to compare
  • Add checks for package::function() calls. Allow box::*() by default.
  • [Bug fix] Allow relative box module paths (#110)
  • Less verbose box_alphabetical_calls_linter(). Reports only the first out-of-place function.
  • Added styling functions for box::use() calls.
  • [Bug fix] Allow multiple box::use(pkg) calls (#111)

v0.9.1

03 Jun 08:14
2631943
Compare
Choose a tag to compare
  • Handle box recommended method of testing private methods.
  • Added handler for glue string templates.
  • Added box_mod_fun_exists_linter() to default linters
  • [bug fix] box_trailing_commas_linter() now properly handles a #nolint for other linters
  • [bug fix] box_unused_att_pkg_fun_linter() had issues with lists of functions. Linter function
    now drops the nested function name and retains the list name (list_name$function_name()) when
    performing the check.
  • [bug fix] get_attached_modules() was not properly finding whole modules attached with short path/module declarations

v0.9.0

24 May 08:39
91e0821
Compare
Choose a tag to compare
  • Handle box-exported functions and objects
  • Handle functional programming, cloned functions, curried functions
  • R6 class awareness
  • Very basic handling of objects inside function definitions
    • Data objects inside function definitions should not lint
    • Functions passed as arguments and used inside function definitions should not lint
    • List data objects passed into functions should not lint
    • Functions in lists should not lint. Same x$y() pattern as package$function()
    • ... in function signature should not lint.
  • Test for dplyr column names
  • Rationalize file names
  • Linting on box::use(local_module) patterns
    • All box-attached modules with or without aliases should be used
    • All box-attached module functions with or without aliases should be used
    • Catches non-existing module[function] or module[data_object] imports
    • Catches non-existing module$function() or module$data_object calls
    • Catches functions that are not box-imported
  • Linting on box::use(package) patterns
    • All box-attached packages with or without aliases should be used
    • All box-attached functions with or without aliases should be used
    • Catches non-existing package[function] imports
    • Catches non-existing package$function() calls
    • Catches functions that are not box-imported
  • Local source linting
    • Catches functions that are not defined
    • All defined functions should be used
    • Handles internal R6 class object calls
  • Added rhino_default_linters
  • Migrated existing box linters from rhino 1.7.0
    • Import calls should be alphabetical
    • Maximum quantity of function imports
    • Separate packages and modules
    • Enforce trailing commas
    • Block universal [...] imports