Un'estensione per VS Code, e la metto gratis
Oggi niente assembly e niente pixel: si scende dall'altro banco di lavoro. Remote SFTP/FTP è un'estensione per Visual Studio Code, la uso tutti i giorni, e da oggi si scarica da qui.
Da anni sposto file su server remoti mentre sviluppo, e da anni la stessa scena: apri il file con un client FTP, lo modifichi in un editor diverso da quello che stai usando per il progetto, salvi, ricarichi. Oppure installi una delle estensioni che fanno la stessa cosa, e scopri che la password del server di produzione è finita in chiaro dentro un file JSON nella cartella del progetto, a un «git add .» di distanza dal repository. L'ho scritta per togliermi questo problema, e visto che funziona la metto a disposizione gratuitamente.
Cosa fa. Configuri la connessione una volta, SFTP su SSH oppure FTP e FTPS, e nella barra laterale compare l'albero delle cartelle remote. Clicchi un file, si apre; premi Salva, e il file viene riscritto sul server. Nessuna copia locale che dopo due giorni non sai più se è più aggiornata di quella remota, nessuna sincronizzazione da lanciare e da ricordarsi. Una cartella remota può anche diventare la radice del workspace.
Sulle connessioni SSH c'è il terminale remoto, e qui c'è un dettaglio a cui tengo: la shell si apre sulla stessa connessione già aperta per i file. Nessun secondo login, nessuna seconda password. La funzione che uso di più, però, è la ricerca: scegli da quale cartella partire e cosa cercare, e se l'account SSH ha una shell la ricerca gira direttamente sul server, con grep e find. In rete passa solo l'elenco dei risultati, non i file. Clicchi un risultato e il file si apre alla riga giusta. Su FTP, dove una shell non esiste, l'estensione scandaglia le cartelle dal client: più lenta, ma funziona. E poi c'è il trascinamento, anche fra due connessioni diverse per copiare da un server a un altro: in quel caso i dati passano da un flusso all'altro senza toccare né il disco né la memoria, quindi un file da qualche centinaio di megabyte non è un problema.
Le tre cose di cui vado più fiero non si vedono, ed è per quelle che l'ho scritta. Le password stanno nel portachiavi di sistema, non in un file dentro il progetto. La chiave del server viene verificata contro il tuo known_hosts esattamente come fa ssh: se l'host è nuovo ti mostra l'impronta e ti chiede conferma, e se la chiave è cambiata ti avverte in modo esplicito, perché può essere una rotazione legittima oppure qualcuno in mezzo. E il salvataggio non sovrascrive di nascosto: se un collega ha toccato quel file dopo che l'hai aperto, prima di scrivere ci si ferma e puoi confrontare le due versioni.
Qualche limite, detto subito. È provata su macOS e Linux; su Windows no. I file oltre 16 megabyte non si aprono nell'editor, ed è un vincolo di VS Code, che riceve i file remoti in un blocco unico: per quelli conviene usare il download. Il terminale SSH aperto non sopravvive a una caduta di connessione e va riaperto. E la ricerca nel contenuto su FTP, come dicevo, è più lenta.
La licenza è gratuita per qualunque uso, anche commerciale e in azienda, senza registrazione e senza limiti di tempo o di postazioni. Non è open source. L'unica cosa che chiedo è di non ridistribuire il file altrove: linkate la pagina, così chi la installa ha sempre la versione corrente. Le istruzioni di installazione, passo per passo, sono sulla scheda. Se la provate e trovate qualcosa che non va, scrivetemi.
Detto questo: no, non è questa la sorpresa promessa a settembre. Quella riguarda tutt'altro banco di lavoro, e regge ancora.