Just to follow up, I now have it working properly in Linux and on Mac with v3.2. The key points are:
- Set CMake options to "-DIDF_PATH=..." in Preferences > Build, Execution, Deployment > CMake
- and add an entry to the Environments table to set IDF_PATH as well.
- I also set PYTHON (to my pyenv virtualenv python bin) and PYTHONPATH (to the virtualenv's sitepackages directory).
- Set the Generation Path to 'build' as that is the default for idf.py
This is sufficient to avoid the old "make" workflow entirely.