Eclipse Toolchain
The Arduino IDE feels a bit limiting, I miss the nice features of a full-up IDE. So I'm trying Eclipse again. I already have Eclipse for C/C++ installed, so I can't help you there (it's not hard).
Hold off on using the following, it's still very rough (and I went a number of failed directions).
I installed PlatformIO Core, using the pip method. with sudo (sudo pip install -U platformio. I've already got python 2.7 installed so that was all it took.
Then, I followed the instructions for eclipse integration, using a copy of an exiting project. I didn't quite understand why I needed step 2. "open a file from the src directory". I'll watch more carefully next time. But it saw the platformio.ini file and created a bunch of build targets that all look useful.
Build: It compiled first time, but failed to link since I didn't bring over my .ino file (has setup and loop functions). I created a new .cpp file and dropped the contents of my .ino file, and that compiled and linked.
But you've got to pay $9.99/mo to get the debugger. I'll do the 30 day trial, and decide if it's worth it.
Parking Lot: bunch of bad things I did before trying platformio:
https://exploreembedded.com/wiki/Setting_up_Bare_Metal_Development_Toolchain_for_ESP32
Alert!! Don't try what I've done below quite yet. I think there's an easier way if you're only interested in the NodeMCU. If you're doing avr work, though, it might be OK (as far as it goes).
http://tuanpm.net/esp8266-development-kit-on-mac-os-yosemite-and-eclipse-ide/
http://tuanpm.net/esp8266-development-kit-on-mac-os-yosemite-and-eclipse-ide/
https://github.com/pfalcon/esp-open-sdk
https://github.com/esp8266/Arduino
http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_GCC_Toolchain
https://playground.arduino.cc/Code/Eclipse
Note - my network DNS settings went only to my fios router, I changed that to Google's 8.8.8.8
installed the Eclipse Arduino plugin. But I already had eclipse, so I chose Help->"Launch Eclipse Marketplace" and searched for Arduino. I chose not to use "Sloeber", I found a post by the author saying it was better for beginners. So I ended up with: "Eclipse C++ IDE for Arduino 3.0". Install is straightforward from there, you do have to restart Eclipse after.
Eclipse needs a cross compiler and remote debugging tools. They are probably already on my computer, since I've got the Arduino IDE installed and running. But who knows if they are compatible, and if so how to cross-wire to Eclipse. If you follow the link above, you might get to this link for the MacOS "cross pack". Which led to disappointment since I want support for the espressive processor for my nodeMCU. Nice to be able to program avr boards though. So it's installed but not tested yet.
I searched for esp8266 on eclipse, and found this. I've got Xcode but had to install MacPorts first. It is now part of my install tool collection. I ran the following, but you'll see later there's a homebrew version of this recommended by the esptools sdk instructions. However there was one little glitch in that, so you might want to try the MacPorts approach vs the sdk recommendation. Unless that doesn't work.
sudo port install git gsed gawk binutils gperf grep gettext py-serial wget libtool autoconf automake
But got a waring that I don't have the Xcode command line tools. So I ran:
xcode-select --install
Took a while to download, but then the port install command worked. It created a huge list of dependencies for each of those install items. From the log messages, it built many of them from source. And installed them using sudo, so it's likely my mac will never work the same. Hopefully that's good. Well except there were "notes" at the end.
---> Some of the ports you installed have notes: binutils has the following notes: Having binutils installed will cause some other ports to fail to build. Consider uninstalling binutils. libidn has the following notes: Please be aware that GNU libidn2 is the successor of GNU libidn. It comes with IDNA 2008 and TR46 implementations and also provides a compatibility layer for GNU libidn. python27 has the following notes: To make this the default Python or Python 2 (i.e., the version run by the 'python' or 'python2' commands), run one or both of: sudo port select --set python python27 sudo port select --set python2 python27 rsync has the following notes: To use the rsyncd server you must copy /opt/local/etc/rsyncd.conf.example to rsyncd.conf and add your modules there. See 'man rsyncd.conf' for more information. wget has the following notes: To customize wget, you can copy /opt/local/etc/wgetrc.sample to /opt/local/etc/wgetrc and then make changes.
The next step is to install the esptools SDK. I've already got a case-sensitive filesystem, and I'm on GitHub, so I cloned the esptools SDK directly.
At this point, I'll skip the step by step. I actually ran the hombrew dependency install for MacOS, so now I've got dueling dependencies. sigh.
Looking back, I'd stick with the instructions from the original link. They ran fine, except the fancy sed commands failed. I found an unrelated link suggesting "alias sed /usr/bin/sed" would fix a similar problem. And it did. So you'd probably do better with the MacPorts.