estensione per vs code · gratis
Il server
dentro l'editor.
Remote SFTP/FTP porta i server remoti dentro Visual Studio Code: SFTP su SSH, FTP e FTPS, l'albero delle cartelle nella barra laterale, il terminale sulla stessa connessione dei file, la ricerca eseguita sul server. Le password stanno nel portachiavi di sistema, non in un file dentro il progetto.
l'albero remoto nella barra laterale, il file aperto direttamente dal server, la shell sulla stessa connessione.
Perché l'ho scritto
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 per VS Code 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.
Ho scritto Remote SFTP/FTP per togliermi questo problema, e visto che funziona lo metto a disposizione gratuitamente.
Il server diventa parte dell'editor
L'idea è semplice. 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. Lo modifichi, premi Salva, e il file viene riscritto sul server. Non c'è nessuna copia locale che dopo due giorni non sai più se è più aggiornata di quella remota, e non c'è nessuna sincronizzazione da lanciare e da ricordarsi. Una cartella remota può anche diventare la radice del workspace, e a quel punto ci lavori esattamente come su un progetto sul tuo disco.
Terminale, ricerca, trascinamento
Sulle connessioni SSH c'è anche 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. Se lanci il comando da una cartella dell'albero, la shell parte già lì dentro.
La funzione che uso di più, però, è la ricerca. Cercare una stringa dentro un progetto su un server remoto è di solito una scocciatura: o scarichi tutto, o entri in SSH e ti arrangi con grep. Qui scegli da quale cartella partire e cosa cercare, e se l'account SSH ha una shell la ricerca viene eseguita 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. Sulle connessioni FTP, dove una shell non esiste, l'estensione scandaglia le cartelle dal client: più lenta, ma funziona.
Sotto l'albero delle connessioni c'è anche una struttura del file aperto: classi, funzioni e metodi, con un clic per saltarci dentro. Funziona anche sui file remoti il cui linguaggio non ha un language server attivo, grazie a una lettura testuale di riserva.
C'è poi tutta la parte di trascinamento. File e cartelle dal gestore file del sistema verso una cartella remota per caricarli, elementi dentro l'albero remoto per spostarli sul server senza far transitare i dati dal tuo computer, e persino 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.
Se usi già altri strumenti
Non devi riconfigurare niente a mano: c'è un comando che legge le connessioni dal tuo ~/.ssh/config, dai file sftp.json dei progetti e da un'altra estensione diffusa, ti mostra cosa ha trovato e importa quelle che scegli, unendo i doppioni. Le password e le passphrase che trova finiscono nel portachiavi, non nella configurazione.
Sono supportati anche i server raggiungibili solo attraverso un bastione, e se la connessione cade l'operazione in corso viene ripresa da sola: un salvataggio o un trasferimento sopravvivono a un buco di rete senza finestre d'errore.
Le tre cose di cui vado più fiero
Non si vedono, ed è per quelle che l'ho scritto.
Nel portachiavi, non nel progetto
Le password stanno nel portachiavi di sistema, attraverso l'archivio sicuro di VS Code. Non in un file dentro la cartella del progetto, quindi non in un commit per distrazione.
La chiave del server viene verificata
Come fa ssh: se l'host è nuovo ti mostra l'impronta e ti chiede conferma; se la chiave è cambiata ti avverte in modo esplicito, perché può essere una rotazione legittima oppure qualcuno in mezzo.
Niente sovrascritture di nascosto
Se un collega ha toccato quel file dopo che l'hai aperto, prima di scrivere ci si ferma: puoi confrontare le due versioni e decidere tu.
Limiti
- È provata su macOS e Linux; su Windows no.
- I file oltre 16 megabyte non si aprono nell'editor: è 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.
- La ricerca nel contenuto su FTP, come dicevo, è più lenta.
Come si installa
Install from VSIX
Estensioni (Cmd/Ctrl+Shift+X) › menu ··· › Install from VSIX... › scegli il file.
Oppure dal terminale:
Su macOS code va abilitato una volta: Cmd+Shift+P › «Shell Command: Install 'code' command in PATH».
Ricarica la finestra e collegati
Cmd/Ctrl+Shift+P › «Reload Window». Poi l'icona SFTP / FTP nella barra laterale.
Serve VS Code 1.85+. Per aggiornare, stessa procedura col file nuovo: le connessioni restano.
Licenza
Gratis, per qualunque uso, anche commerciale. Non è open source: non ridistribuire il file, linka questa pagina.