Skip to content

2024-05-17

Compare
Choose a tag to compare
@robertoaloi robertoaloi released this 17 May 12:18
· 465 commits to main since this release

Highlights

⚙️ Easier configuration for custom projects

So far, it was only possible to use ELP with buck2 or rebar3 projects (via a plugin). An option to provide a custom build_info.json file was already available, but cumbersome for the user since it required creating and maintaining a large JSON file which listed all projects applications and dependencies.

You can now specify the structure of your project via a dedicated [build_info] section in the ELP config file. For example:

[build_info]
apps = "apps/*"
deps = "deps/*"

We hope this will make it easier to try ELP!

🎯 Precise ranges for undefined functions

We used to report a diagnostic for the whole -export attribute in case of an undefined function. We now restrict the range to the actual culprit.

Before:

Screenshot 2024-05-17 at 14 07 53

After:

Screenshot 2024-05-17 at 14 09 05

🐞 Bug Fixes

  • Fix a bug which caused the language server to report spurious diagnostics after switching branches
  • Do not try to compute code lenses for .config and .app.src files
  • Do not report syntax errors when the maybe (?=) operator is used
  • Avoid panic while calculating project-wide eqwalizer diagnostics due to 0 chunk size
  • Report correct ranges for diagnostics in presence of CRLF line endings
  • Fix handling of -file attributes
  • Fix detection of generated pragma in module preamble (fixes #24)

Full Changelog

ca7d3ab Bump version to 0.24.0 (Roberto Aloi)
e755c76 Add a test project for elp bxl query (Alan Zimmerman)
2bb78a7 Fix build by commenting out meta_only line (Alan Zimmerman)
50a2f7c Add config option to select buck project model query (Alan Zimmerman)
77d5d98 Include raw buck query result in elp project-info (Alan Zimmerman)
42b1f68 Temporarily ignore some files for CI 'elp parse-elp' (Alan Zimmerman)
e984d23 Handle -file attribute in .erl files (Roberto Aloi)
2957db5 Introduce build_info section in ELP config file (Roberto Aloi)
cbbec20 Generate dynamically build_info file (Roberto Aloi)
1f39bbc Add glob crate (Roberto Aloi)
64bd24a Bump tree-sitter-erlang version to 0.6.0 (for OSS) (Alan Zimmerman)
8efc68c Disarm unused trait method warning (Alan Zimmerman)
cc60e18 regen eqwalizer snapshot test (Ilya Klyuchnikov)
e2f6fbd Bump version to 0.6.0 (Alan Zimmerman)
113f969 Fix detection of generated pragma when 2001 is not a char boundary (Roberto Aloi)
0b99dae Add testcase for sigils (Roberto Aloi)
d197467 Add testcase for docstrings (Roberto Aloi)
18c7026 Bump tree-sitter crate to 0.22.5 (Alan Zimmerman)
fcdd3c1 Bump tree-sitter-cli to 0.22.5 (Alan Zimmerman)
e516a37 more precise handling of maps:remove (Ilya Klyuchnikov)
20130c8 BE: fix flaky test (Alan Zimmerman)
17cc6c7 Uncovered clause detection (Victor Lanvin)
d5627c5 Do not warn about usages of binary_to_term (Roberto Aloi)
99ebfe9 combine related errors for eqwalizer cli reporting too (Alan Zimmerman)
27769e0 Import epp_dodger from OTP 27 in Erlang Service (Roberto Aloi)
a07c9a4 Fix branch change diagnostic problem (Alan Zimmerman)
bb9612f Restrict L1227 (undefined function) diagnostics range (Roberto Aloi)
4f3b9eb Add test case showing the range for L1227 (undefined function) diagnostics (Roberto Aloi)
ee4b03d Do not panic if provided list of files is empty (Roberto Aloi)
fbd43eb Only generate lenses for elp-supported files (Alan Zimmerman)
bbd75be Add support for on-call links (Roberto Aloi)
ecb40d7 Add meta-only doc links (Roberto Aloi)
ee84c5b BE: make cross_node_eval config completely static (Alan Zimmerman)
076deb2 BE: make atoms_exhaustion config completely static (Alan Zimmerman)
bf8e8bf BE: make application_env BAD_MATCH completely static (Alan Zimmerman)