2015-05-03 19 views
11

C'è qualche scorciatoia che mi consenta di generare automaticamente le mie importazioni di dattiloscritto? Come premere ctrl + spazio accanto al nome del tipo e avere la dichiarazione di importazione posta nella parte superiore del file. Se no, che dire di intellisense per aver compilato il percorso di riferimento del modulo in modo che non debba farlo manualmente? Mi piacerebbe davvero usare vscode ma dover fare le importazioni manuali per dattiloscritto mi sta uccidendo.Esiste una funzionalità di importazione automatica per dattiloscritto in Visual Studio Code?

risposta

2

Ci sono voci che lo fanno supportare tsconfig.json (beh, meglio delle voci). Questo ci consentirà di essere in grado di utilizzare tutti i file per i nostri riferimenti.

La tua funzione sarebbe quella di creare un'importazione automatica di tutte le librerie di terze parti comunemente utilizzate nelle digitazioni. Forse scansionare automaticamente i file e creare un elenco di quelli da raccogliere. Non sarebbe bello avere un modo rapido per aggiungere molti di questi usando tsd direttamente dal codice (in modo interattivo)?

+0

Ciao John. Grazie per la risposta. Che dire quando si importano moduli esterni. C'è qualche aiuto in questo? –

0

Gli attributi di file nel file tsconfig.json consentono di impostare le importazioni di riferimento nell'intero progetto. È supportato con Visual Studio Code, ma tieni presente che se stai utilizzando una specifica catena di build (come tsify/browserify) potrebbe non funzionare durante la compilazione del tuo progetto.

+0

Ciao Frédéric. Grazie per la risposta. Che dire quando si importano moduli esterni. C'è qualche aiuto in questo? –

1

so una soluzione per Visual Studio (non Visual Studio Codice, sto usando l'edizione 2015 della Comunità, che è gratuito), ma ha bisogno di qualche messa a punto e la codifica - tuttavia, trovo i risultati di essere adeguato.

In sostanza, in Visual Studio, quando si utilizza l'estensione Web Essentials, .ts file possono essere trascinati nel documento attivo per generare automaticamente un percorso relativo di riferimento commento:

/// <reference path="lib/foo.ts" /> 

Con che ovviamente potremmo puliscilo bene, perché è una dichiarazione import di cui abbiamo bisogno, non un commento di riferimento.

Per questo motivo, ho recentemente scritto il seguente snippet di comando per Visual Commander, ma dovrebbe essere facilmente adattabile anche ad altri usi casese. Con Visual Comandante, trascinamento delle importazioni necessarie nel documento aperto, quindi eseguire la seguente macro:

using EnvDTE; 
using EnvDTE80; 
using System.Text.RegularExpressions; 

public class C : VisualCommanderExt.ICommand 
{ 
    // Called by Visual Commander extension. 
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    { 
     TextDocument doc = (TextDocument)(DTE.ActiveDocument.Object("TextDocument")); 
     var p = doc.StartPoint.CreateEditPoint(); 
     string s = p.GetText(doc.EndPoint); 

     p.ReplaceText(doc.EndPoint, this.ReplaceReferences(s), (int)vsEPReplaceTextOptions.vsEPReplaceTextKeepMarkers); 
    } 

    // Converts "reference" syntax to "ES6 import" syntax. 
    private string ReplaceReferences(string text) 
    { 
     string pattern = "\\/\\/\\/ *<reference *path *= *\"([^\"]*)(?:\\.ts)\" *\\/>"; 

     var regex = new Regex(pattern); 
     var matches = Regex.Matches(text, pattern); 

     return Regex.Replace(text, pattern, "import {} from \"./$1\";"); 
    } 
} 

Quando si esegue questo frammento di codice, tutti i commenti di riferimento nel documento attivo verrà sostituito con import dichiarazioni. L'esempio precedente viene convertito in:

import {} from "./lib/foo"; 
1

Credo che il plugin chiamato "Importatore dattiloscritto" fa esattamente quello che vuoi dire: https://marketplace.visualstudio.com/items?itemName=pmneo.tsimporter.

Cerca automaticamente le definizioni TypeScript nei file dello spazio di lavoro e fornisce tutti i simboli noti come elemento di completamento per consentire il completamento del codice.

enter image description here

Con esso si può veramente usare Ctrl +Spazio di scegliere che cosa esattamente si vorrebbe essere importato.

È possibile trovare e installarlo da Ctrl +Maiusc menù + X o semplicemente incollando ext install tsimporter nel menu di scelta rapida aperto aperto con Ctrl +P.

+1

Un collegamento a una soluzione è il benvenuto, ma per favore assicurati che la tua risposta sia utile senza di essa: [aggiungi contesto intorno al link] (// meta.stackexchange.com/a/8259) in modo che i tuoi utenti abbiano qualche idea di cosa sia e perché è lì, quindi cita la parte più pertinente della pagina a cui stai collegando nel caso in cui la pagina di destinazione non sia disponibile. [Le risposte che sono poco più di un collegamento possono essere cancellate.] (// stackoverflow.com/help/deleted-answers) –

+0

@MAR, eh, non sono un fan di contrassegnare la risposta come 'non utile' quando semplicemente non soddisfa i tuoi standard per la 'risposta perfetta' ... Comunque, è meglio adesso? – kcpr

+1

Non ero il downvoter, quindi non posso fornire una ragione per un downvote che non ho fatto. –

0

Questo è appena stato rilasciato in version 1.18.

Dalle note di rilascio:

importazione automatica per Javascript e dattiloscritto

Velocizza il tuo codice con le importazioni di auto per Javascript e dattiloscritto. L'elenco dei suggerimenti ora include tutti i simboli esportati nel progetto corrente. Basta iniziare a digitare:

Global symbols are now shown in the suggestion list

Se si sceglie una delle suggerimento da un altro file o modulo, codice VS aggiungerà automaticamente un'importazione per esso. In questo esempio, codice VS aggiunge un'importazione per Hercules alla parte superiore del file:

After selecting a symbol form a different file, an import is added for it automatically

importazioni di auto richiede dattiloscritto 2.6+. È possibile disabilitare le importazioni automatiche impostando "typescript.autoImportSuggestions.enabled": false.

Problemi correlati