Prohibit nodes from overlapping

An issue I have encountered is that when you paste a node once to many they end up on top of each other.
A solution would be to not allow a positioning (or dropping) of a node when it overlaps with another. Don't move the nodes you are bumping into, this to not create the Microsoft Word issue where moving a picture ruins all other layout.

Comming from a PLC IDE background there it is not possible to have function blocks overlap on a code section.

IIRC, nrlint can warn about overlapping nodes.

I often use overlapping nodes deliberately, for example when I have a simulation or troubleshooting node which I want to hide when not in use.
I concur with @Steve-Mcl

Thanks @Steve-Mcl, this works great.
This would be a neat core feature IMHO.

Sadly this can't be added to a flowfuse instance since it requires editing of the settings.js-file.
This file is overwritten on restart of the agent.
Or you could prove me wrong, that would be awesome as well.

You can add nrlint to the instance settings -> palette -> installed modules

@Steve-Mcl, I don't have the installed modules menu.
Is this an authorisation issue? I have owner permission in the flowfuse team.

Are you working with a remote instance or hosted instance?

Hosted instances have a Palette section under Settings

Remote instances do not have this section (you can install additional palette nodes locally on your device using npm install nrlint in the user directory typically /opt/flowfuse-device/project )

We work mostly with remote instances. Will try this next week at a customer.

It also seems to work without adding the nrlint: require("./.nrlintrc.js"), to the settings file.
What is the reason you would need to do this?

you dont need to edit settings at all - nrlint is a plugin (and installs just like any other contrib node package).

The only time you need to do that is if you are importing a non plugin/non contrib package (like a generic node module that you want to use in a function node - but then, that is mostly not required since you can add modules on the settings tab of a function node).