wiki:els

Erlang LS diagnostics

RefactorErl? now can integrate its diagnostics into Erlang LS. The following page will help you with the setup and give you some feature highlight.

What you need

How to set it up

RefactorErl? is like any other diagnostics in ELS, just it is computed outside of it. To enable you need to enable it in the config file of ELS. To learn more about how to config Erlang LS visit: ELS Configuration

diagnostics:
  enabled:
    - refactorerl

Some extra configuration is needed as the diagnostics are computed on the RefactorErl? node. You need to add a new root entry to diagnostic file, containing the node's name where RefactorErl? is running. (you must start the tool in distributed mode)

refactorerl:
  node: "nodeName@hostName" 		

By default all of the diagnostics are disabled, even if the tool is enabled as an Erlang LS diagnostic. You need to enable certain diagnostics manually. You need to create a new entry under node and tell the system which diagnostics you wish to run. See the currently supported diagnostics and the IDs of them below. You should have something similar in you config file:

diagnostics:
  enabled:
    - refactorerl

refactorerl:
  node: "nodeName@hostName" 		
  diagnostics:
    - "unused_macros"			
    - "unsecure_os_call"

Available diagnostics

Diagnostic ID Diagnostic Description
unused_macros Unused Macros
unsecure_interoperability Lists interoperability related weaknesses
unsecure_concurrency Identifies concurrency related issues
unsecure_os_call Checks for OS injection
unsecure_port_creation Identifies port creation related issues
unsecure_file_operation Lists unsecure file handling
unstable_call Shows possible atom exhaustion
nif_calls Identifies unsecure NIF calls
unsecure_port_drivers Lists the unsecure ddll usage
decommissioned_crypto Lists the legacy functions from crypto module
unsecure_compile_operations Shows unsecure compile/code loading related operations
unsecure_process_linkage Lists unsecure process linkage
unsecure_prioritization Identifies unsecure process prioritization
unsecure_ets_traversal Lists unsecure ETS traversal
unsafe_network Checks for unsecure kernel related operation
unsecure_xml_usage Identifies unsecure xml parsing
unsecure_communication Lists unsecure communication related settings
Last modified 15 months ago Last modified on Feb 6, 2023, 10:01:24 PM

Attachments (1)

Download all attachments as: .zip