Pela simplicidade e facilidade de acesso as vezes eu uso a IDE do Arduino quando preciso fazer algum teste, ou escrever um sketch/programa rápido em uma plaquina de desenvovimento, como o Arduino UNO, Micro, Mini, etc.
Na versão 1.8 da IDE, antes de executar uma compilação ou upload a IDE sempre pedia para eu salvar o código antes de continuar. Porém recentemente eu atualizei para a versão 2 e o programa não mais me pede para salvar e cabe a mim salvar o código. Aparentemente não tem uma função de salvar automaticamente, ou melhor, uma opção de restaurar programas não salvos depois de um crash.
Eu estou trabalhando num programinha para contar pulsos de luz usando um sensor de laser, e escrevi um programinha que já tinha debugado o suficiente para atender as minhas necessidades. Só que mais tarde o meu Windows 10 travou e tive que fazer um hard reboot nele. Consequentemente o que não estava salvo foi perdido, ou pelo menos assim me pareceu.
Mas daí eu lembrei que independente de eu ter salvo o meu sketch, para compilar a IDE precisa salvar o código em algum arquivo e passar esse arquivo para compilador que roda em background. E portanto ainda tinha esperança de encontrar o arquivo fonte.
Depois de vasculhar um pouco encontrei. O IDE Arduino mantém uma pasta/diretório dentro deo TEMP do windows. Para encontrar eu digitei: %temp% na barra de caminhos do Windows explorer e busquei por pastas com o nome .arduinoIDE-xxx . Cada uma das pastas com esse nome vai conter uma outra pasta sketch_xxx, e dentro dela vai estar o arquivo .ino salvo pela IDE Arduino.
Assim, bastou copiar e colar esse arquivo na interface do IDE, certificando-me em salva-lo novamente em um local definido para meus projetos pessoais.
Felicidades!